xref: /rk3399_rockchip-uboot/drivers/rknand/rk_ftl_arm_v7.S (revision f05ce84792cbd2e5573a414010d421eb8fbb7689)
1/*
2 * Copyright (c) 2016-2018, Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 * date: 2018-09-5
9 */
10	.arch armv7-a
11	.eabi_attribute 20, 1
12	.eabi_attribute 21, 1
13	.eabi_attribute 23, 3
14	.eabi_attribute 24, 1
15	.eabi_attribute 25, 1
16	.eabi_attribute 26, 2
17	.eabi_attribute 30, 4
18	.eabi_attribute 34, 0
19	.eabi_attribute 18, 2
20	.file	"rk_ftl_arm_v7.c"
21	.section	.text.ftl_set_blk_mode.part.10,"ax",%progbits
22	.align	1
23	.syntax unified
24	.thumb
25	.thumb_func
26	.fpu softvfp
27	.type	ftl_set_blk_mode.part.10, %function
28ftl_set_blk_mode.part.10:
29	@ args = 0, pretend = 0, frame = 0
30	@ frame_needed = 0, uses_anonymous_args = 0
31	@ link register save eliminated.
32	ldr	r3, .L2
33	lsrs	r1, r0, #5
34	and	r0, r0, #31
35	ldr	r2, [r3]
36	movs	r3, #1
37	lsl	r0, r3, r0
38	ldr	r3, [r2, r1, lsl #2]
39	orrs	r3, r3, r0
40	str	r3, [r2, r1, lsl #2]
41	bx	lr
42.L3:
43	.align	2
44.L2:
45	.word	.LANCHOR0
46	.size	ftl_set_blk_mode.part.10, .-ftl_set_blk_mode.part.10
47	.section	.text.FlashMemCmp8,"ax",%progbits
48	.align	1
49	.global	FlashMemCmp8
50	.syntax unified
51	.thumb
52	.thumb_func
53	.fpu softvfp
54	.type	FlashMemCmp8, %function
55FlashMemCmp8:
56	@ args = 0, pretend = 0, frame = 0
57	@ frame_needed = 0, uses_anonymous_args = 0
58	ldr	r3, .L12
59	push	{r4, r5, lr}
60	ldrb	r3, [r3]	@ zero_extendqisi2
61	cbz	r3, .L7
62	ldrb	r4, [r0, #1]	@ zero_extendqisi2
63	ldrb	r3, [r1, #1]	@ zero_extendqisi2
64	cmp	r4, r3
65	beq	.L11
66	movs	r3, #0
67.L7:
68	cmp	r3, r2
69	bne	.L9
70.L11:
71	movs	r0, #0
72	pop	{r4, r5, pc}
73.L9:
74	ldrb	r5, [r0, r3]	@ zero_extendqisi2
75	ldrb	r4, [r1, r3]	@ zero_extendqisi2
76	adds	r3, r3, #1
77	cmp	r5, r4
78	beq	.L7
79	mov	r0, r3
80	pop	{r4, r5, pc}
81.L13:
82	.align	2
83.L12:
84	.word	.LANCHOR1
85	.size	FlashMemCmp8, .-FlashMemCmp8
86	.section	.text.FlashRsvdBlkChk,"ax",%progbits
87	.align	1
88	.global	FlashRsvdBlkChk
89	.syntax unified
90	.thumb
91	.thumb_func
92	.fpu softvfp
93	.type	FlashRsvdBlkChk, %function
94FlashRsvdBlkChk:
95	@ args = 0, pretend = 0, frame = 0
96	@ frame_needed = 0, uses_anonymous_args = 0
97	@ link register save eliminated.
98	ldr	r3, .L17
99	ldrb	r2, [r3]	@ zero_extendqisi2
100	ldr	r3, .L17+4
101	ldr	r3, [r3]
102	muls	r3, r2, r3
103	cmp	r3, r1
104	bls	.L16
105	adds	r0, r0, #0
106	it	ne
107	movne	r0, #1
108	bx	lr
109.L16:
110	movs	r0, #1
111	bx	lr
112.L18:
113	.align	2
114.L17:
115	.word	.LANCHOR2
116	.word	.LANCHOR3
117	.size	FlashRsvdBlkChk, .-FlashRsvdBlkChk
118	.section	.text.FlashGetRandomizer,"ax",%progbits
119	.align	1
120	.global	FlashGetRandomizer
121	.syntax unified
122	.thumb
123	.thumb_func
124	.fpu softvfp
125	.type	FlashGetRandomizer, %function
126FlashGetRandomizer:
127	@ args = 0, pretend = 0, frame = 0
128	@ frame_needed = 0, uses_anonymous_args = 0
129	ldr	r3, .L27
130	and	r2, r1, #127
131	push	{r4, lr}
132	ldrh	r4, [r3, r2, lsl #1]
133	ldr	r3, .L27+4
134	ldrb	r3, [r3]	@ zero_extendqisi2
135	cbz	r3, .L19
136	bl	FlashRsvdBlkChk
137	cbz	r0, .L19
138	orr	r4, r4, #-1073741824
139.L19:
140	mov	r0, r4
141	pop	{r4, pc}
142.L28:
143	.align	2
144.L27:
145	.word	.LANCHOR4
146	.word	.LANCHOR5
147	.size	FlashGetRandomizer, .-FlashGetRandomizer
148	.section	.text.FlashSetRandomizer,"ax",%progbits
149	.align	1
150	.global	FlashSetRandomizer
151	.syntax unified
152	.thumb
153	.thumb_func
154	.fpu softvfp
155	.type	FlashSetRandomizer, %function
156FlashSetRandomizer:
157	@ args = 0, pretend = 0, frame = 0
158	@ frame_needed = 0, uses_anonymous_args = 0
159	push	{r3, r4, r5, lr}
160	and	r2, r1, #127
161	ldr	r3, .L37
162	mov	r5, r0
163	ldrh	r4, [r3, r2, lsl #1]
164	ldr	r3, .L37+4
165	ldrb	r3, [r3]	@ zero_extendqisi2
166	cbz	r3, .L30
167	bl	FlashRsvdBlkChk
168	cbz	r0, .L30
169	orr	r4, r4, #-1073741824
170.L30:
171	ldr	r3, .L37+8
172	ldr	r3, [r3, r5, lsl #3]
173	str	r4, [r3, #336]
174	pop	{r3, r4, r5, pc}
175.L38:
176	.align	2
177.L37:
178	.word	.LANCHOR4
179	.word	.LANCHOR5
180	.word	.LANCHOR6
181	.size	FlashSetRandomizer, .-FlashSetRandomizer
182	.section	.text.FlashReadCmd,"ax",%progbits
183	.align	1
184	.global	FlashReadCmd
185	.syntax unified
186	.thumb
187	.thumb_func
188	.fpu softvfp
189	.type	FlashReadCmd, %function
190FlashReadCmd:
191	@ args = 0, pretend = 0, frame = 0
192	@ frame_needed = 0, uses_anonymous_args = 0
193	@ link register save eliminated.
194	push	{r4, r5}
195	lsrs	r2, r1, #16
196	ldr	r4, .L40
197	ldr	r3, [r4, r0, lsl #3]
198	add	r4, r4, r0, lsl #3
199	ldrb	r4, [r4, #4]	@ zero_extendqisi2
200	add	r3, r3, r4, lsl #8
201	movs	r4, #0
202	str	r4, [r3, #2056]
203	str	r4, [r3, #2052]
204	str	r4, [r3, #2052]
205	uxtb	r4, r1
206	str	r4, [r3, #2052]
207	lsrs	r4, r1, #8
208	str	r4, [r3, #2052]
209	str	r2, [r3, #2052]
210	movs	r2, #48
211	str	r2, [r3, #2056]
212	pop	{r4, r5}
213	b	FlashSetRandomizer
214.L41:
215	.align	2
216.L40:
217	.word	.LANCHOR6
218	.size	FlashReadCmd, .-FlashReadCmd
219	.section	.text.FlashReadDpDataOutCmd,"ax",%progbits
220	.align	1
221	.global	FlashReadDpDataOutCmd
222	.syntax unified
223	.thumb
224	.thumb_func
225	.fpu softvfp
226	.type	FlashReadDpDataOutCmd, %function
227FlashReadDpDataOutCmd:
228	@ args = 0, pretend = 0, frame = 0
229	@ frame_needed = 0, uses_anonymous_args = 0
230	@ link register save eliminated.
231	ldr	r2, .L46
232	push	{r4, r5, r6}
233	uxtb	r6, r1
234	ldr	r4, .L46+4
235	lsrs	r5, r1, #8
236	ldr	r3, [r2, r0, lsl #3]
237	add	r2, r2, r0, lsl #3
238	ldrb	r4, [r4, #16]	@ zero_extendqisi2
239	ldrb	r2, [r2, #4]	@ zero_extendqisi2
240	cmp	r4, #1
241	lsr	r4, r1, #16
242	lsl	r2, r2, #8
243	add	r3, r3, r2
244	bne	.L43
245	movs	r2, #6
246	str	r2, [r3, #2056]
247	movs	r2, #0
248	str	r2, [r3, #2052]
249	str	r2, [r3, #2052]
250	str	r6, [r3, #2052]
251	str	r5, [r3, #2052]
252	str	r4, [r3, #2052]
253.L45:
254	movs	r2, #224
255	str	r2, [r3, #2056]
256	pop	{r4, r5, r6}
257	b	FlashSetRandomizer
258.L43:
259	movs	r2, #0
260	str	r2, [r3, #2056]
261	str	r2, [r3, #2052]
262	str	r2, [r3, #2052]
263	str	r6, [r3, #2052]
264	str	r5, [r3, #2052]
265	str	r4, [r3, #2052]
266	movs	r4, #5
267	str	r4, [r3, #2056]
268	str	r2, [r3, #2052]
269	str	r2, [r3, #2052]
270	b	.L45
271.L47:
272	.align	2
273.L46:
274	.word	.LANCHOR6
275	.word	.LANCHOR7
276	.size	FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
277	.section	.text.flash_enter_slc_mode,"ax",%progbits
278	.align	1
279	.global	flash_enter_slc_mode
280	.syntax unified
281	.thumb
282	.thumb_func
283	.fpu softvfp
284	.type	flash_enter_slc_mode, %function
285flash_enter_slc_mode:
286	@ args = 0, pretend = 0, frame = 0
287	@ frame_needed = 0, uses_anonymous_args = 0
288	@ link register save eliminated.
289	ldr	r3, .L53
290	ldrb	r3, [r3]	@ zero_extendqisi2
291	cbz	r3, .L48
292	ldr	r3, .L53+4
293	ldr	r2, [r3, r0, lsl #3]
294	add	r3, r3, r0, lsl #3
295	ldrb	r3, [r3, #4]	@ zero_extendqisi2
296	add	r3, r2, r3, lsl #8
297	movs	r2, #218
298	str	r2, [r3, #2056]
299.L48:
300	bx	lr
301.L54:
302	.align	2
303.L53:
304	.word	.LANCHOR8
305	.word	.LANCHOR6
306	.size	flash_enter_slc_mode, .-flash_enter_slc_mode
307	.section	.text.flash_exit_slc_mode,"ax",%progbits
308	.align	1
309	.global	flash_exit_slc_mode
310	.syntax unified
311	.thumb
312	.thumb_func
313	.fpu softvfp
314	.type	flash_exit_slc_mode, %function
315flash_exit_slc_mode:
316	@ args = 0, pretend = 0, frame = 0
317	@ frame_needed = 0, uses_anonymous_args = 0
318	@ link register save eliminated.
319	ldr	r3, .L60
320	ldrb	r3, [r3]	@ zero_extendqisi2
321	cbz	r3, .L55
322	ldr	r3, .L60+4
323	ldr	r2, [r3, r0, lsl #3]
324	add	r3, r3, r0, lsl #3
325	ldrb	r3, [r3, #4]	@ zero_extendqisi2
326	add	r3, r2, r3, lsl #8
327	movs	r2, #223
328	str	r2, [r3, #2056]
329.L55:
330	bx	lr
331.L61:
332	.align	2
333.L60:
334	.word	.LANCHOR8
335	.word	.LANCHOR6
336	.size	flash_exit_slc_mode, .-flash_exit_slc_mode
337	.section	.text.FlashProgFirstCmd,"ax",%progbits
338	.align	1
339	.global	FlashProgFirstCmd
340	.syntax unified
341	.thumb
342	.thumb_func
343	.fpu softvfp
344	.type	FlashProgFirstCmd, %function
345FlashProgFirstCmd:
346	@ args = 0, pretend = 0, frame = 0
347	@ frame_needed = 0, uses_anonymous_args = 0
348	@ link register save eliminated.
349	push	{r4, r5}
350	lsrs	r2, r1, #16
351	ldr	r4, .L63
352	ldr	r3, [r4, r0, lsl #3]
353	add	r4, r4, r0, lsl #3
354	ldrb	r4, [r4, #4]	@ zero_extendqisi2
355	add	r3, r3, r4, lsl #8
356	movs	r4, #128
357	str	r4, [r3, #2056]
358	movs	r4, #0
359	str	r4, [r3, #2052]
360	str	r4, [r3, #2052]
361	uxtb	r4, r1
362	str	r4, [r3, #2052]
363	lsrs	r4, r1, #8
364	str	r4, [r3, #2052]
365	str	r2, [r3, #2052]
366	pop	{r4, r5}
367	b	FlashSetRandomizer
368.L64:
369	.align	2
370.L63:
371	.word	.LANCHOR6
372	.size	FlashProgFirstCmd, .-FlashProgFirstCmd
373	.section	.text.FlashEraseCmd,"ax",%progbits
374	.align	1
375	.global	FlashEraseCmd
376	.syntax unified
377	.thumb
378	.thumb_func
379	.fpu softvfp
380	.type	FlashEraseCmd, %function
381FlashEraseCmd:
382	@ args = 0, pretend = 0, frame = 0
383	@ frame_needed = 0, uses_anonymous_args = 0
384	push	{r4, lr}
385	ldr	r4, .L70
386	ldr	r3, [r4, r0, lsl #3]
387	add	r4, r4, r0, lsl #3
388	ldrb	r0, [r4, #4]	@ zero_extendqisi2
389	lsls	r0, r0, #8
390	cbz	r2, .L66
391	adds	r2, r3, r0
392	movs	r4, #96
393	str	r4, [r2, #2056]
394	uxtb	r4, r1
395	str	r4, [r2, #2052]
396	lsrs	r4, r1, #8
397	str	r4, [r2, #2052]
398	lsrs	r4, r1, #16
399	str	r4, [r2, #2052]
400	ldr	r2, .L70+4
401	ldr	r2, [r2]
402	add	r1, r1, r2
403.L66:
404	add	r3, r3, r0
405	movs	r2, #96
406	str	r2, [r3, #2056]
407	uxtb	r2, r1
408	str	r2, [r3, #2052]
409	lsrs	r2, r1, #8
410	lsrs	r1, r1, #16
411	str	r2, [r3, #2052]
412	movs	r2, #208
413	str	r1, [r3, #2052]
414	str	r2, [r3, #2056]
415	pop	{r4, pc}
416.L71:
417	.align	2
418.L70:
419	.word	.LANCHOR6
420	.word	.LANCHOR3
421	.size	FlashEraseCmd, .-FlashEraseCmd
422	.section	.text.FlashProgDpSecondCmd,"ax",%progbits
423	.align	1
424	.global	FlashProgDpSecondCmd
425	.syntax unified
426	.thumb
427	.thumb_func
428	.fpu softvfp
429	.type	FlashProgDpSecondCmd, %function
430FlashProgDpSecondCmd:
431	@ args = 0, pretend = 0, frame = 0
432	@ frame_needed = 0, uses_anonymous_args = 0
433	@ link register save eliminated.
434	push	{r4, r5}
435	lsrs	r2, r1, #16
436	ldr	r4, .L73
437	ldr	r3, [r4, r0, lsl #3]
438	add	r4, r4, r0, lsl #3
439	ldrb	r5, [r4, #4]	@ zero_extendqisi2
440	ldr	r4, .L73+4
441	ldrb	r4, [r4, #11]	@ zero_extendqisi2
442	add	r3, r3, r5, lsl #8
443	str	r4, [r3, #2056]
444	movs	r4, #0
445	str	r4, [r3, #2052]
446	str	r4, [r3, #2052]
447	uxtb	r4, r1
448	str	r4, [r3, #2052]
449	lsrs	r4, r1, #8
450	str	r4, [r3, #2052]
451	str	r2, [r3, #2052]
452	pop	{r4, r5}
453	b	FlashSetRandomizer
454.L74:
455	.align	2
456.L73:
457	.word	.LANCHOR6
458	.word	.LANCHOR7
459	.size	FlashProgDpSecondCmd, .-FlashProgDpSecondCmd
460	.section	.text.FlashProgSecondCmd,"ax",%progbits
461	.align	1
462	.global	FlashProgSecondCmd
463	.syntax unified
464	.thumb
465	.thumb_func
466	.fpu softvfp
467	.type	FlashProgSecondCmd, %function
468FlashProgSecondCmd:
469	@ args = 0, pretend = 0, frame = 0
470	@ frame_needed = 0, uses_anonymous_args = 0
471	@ link register save eliminated.
472	ldr	r3, .L76
473	ldr	r2, [r3, r0, lsl #3]
474	add	r3, r3, r0, lsl #3
475	ldrb	r3, [r3, #4]	@ zero_extendqisi2
476	add	r3, r2, r3, lsl #8
477	movs	r2, #16
478	str	r2, [r3, #2056]
479	bx	lr
480.L77:
481	.align	2
482.L76:
483	.word	.LANCHOR6
484	.size	FlashProgSecondCmd, .-FlashProgSecondCmd
485	.section	.text.FlashProgDpFirstCmd,"ax",%progbits
486	.align	1
487	.global	FlashProgDpFirstCmd
488	.syntax unified
489	.thumb
490	.thumb_func
491	.fpu softvfp
492	.type	FlashProgDpFirstCmd, %function
493FlashProgDpFirstCmd:
494	@ args = 0, pretend = 0, frame = 0
495	@ frame_needed = 0, uses_anonymous_args = 0
496	@ link register save eliminated.
497	ldr	r3, .L79
498	ldr	r1, .L79+4
499	ldr	r2, [r3, r0, lsl #3]
500	add	r3, r3, r0, lsl #3
501	ldrb	r1, [r1, #10]	@ zero_extendqisi2
502	ldrb	r3, [r3, #4]	@ zero_extendqisi2
503	add	r3, r2, r3, lsl #8
504	str	r1, [r3, #2056]
505	bx	lr
506.L80:
507	.align	2
508.L79:
509	.word	.LANCHOR6
510	.word	.LANCHOR7
511	.size	FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
512	.section	.text.FlashReadStatus,"ax",%progbits
513	.align	1
514	.global	FlashReadStatus
515	.syntax unified
516	.thumb
517	.thumb_func
518	.fpu softvfp
519	.type	FlashReadStatus, %function
520FlashReadStatus:
521	@ args = 0, pretend = 0, frame = 0
522	@ frame_needed = 0, uses_anonymous_args = 0
523	push	{r3, r4, r5, lr}
524	movs	r2, #112
525	ldr	r3, .L82
526	ldr	r5, [r3, r0, lsl #3]
527	add	r3, r3, r0, lsl #3
528	movs	r0, #80
529	ldrb	r4, [r3, #4]	@ zero_extendqisi2
530	add	r3, r5, r4, lsl #8
531	adds	r4, r4, #8
532	lsls	r4, r4, #8
533	str	r2, [r3, #2056]
534	bl	udelay
535	ldr	r0, [r5, r4]
536	pop	{r3, r4, r5, pc}
537.L83:
538	.align	2
539.L82:
540	.word	.LANCHOR6
541	.size	FlashReadStatus, .-FlashReadStatus
542	.section	.text.JSHash,"ax",%progbits
543	.align	1
544	.global	JSHash
545	.syntax unified
546	.thumb
547	.thumb_func
548	.fpu softvfp
549	.type	JSHash, %function
550JSHash:
551	@ args = 0, pretend = 0, frame = 0
552	@ frame_needed = 0, uses_anonymous_args = 0
553	ldr	r3, .L87
554	add	r1, r1, r0
555	push	{r4, lr}
556.L85:
557	cmp	r0, r1
558	bne	.L86
559	mov	r0, r3
560	pop	{r4, pc}
561.L86:
562	lsrs	r2, r3, #2
563	ldrb	r4, [r0], #1	@ zero_extendqisi2
564	add	r2, r2, r3, lsl #5
565	add	r2, r2, r4
566	eors	r3, r3, r2
567	b	.L85
568.L88:
569	.align	2
570.L87:
571	.word	1204201446
572	.size	JSHash, .-JSHash
573	.section	.text.FlashLoadIdbInfo,"ax",%progbits
574	.align	1
575	.global	FlashLoadIdbInfo
576	.syntax unified
577	.thumb
578	.thumb_func
579	.fpu softvfp
580	.type	FlashLoadIdbInfo, %function
581FlashLoadIdbInfo:
582	@ args = 0, pretend = 0, frame = 0
583	@ frame_needed = 0, uses_anonymous_args = 0
584	@ link register save eliminated.
585	movs	r0, #0
586	bx	lr
587	.size	FlashLoadIdbInfo, .-FlashLoadIdbInfo
588	.section	.text.FlashPrintInfo,"ax",%progbits
589	.align	1
590	.global	FlashPrintInfo
591	.syntax unified
592	.thumb
593	.thumb_func
594	.fpu softvfp
595	.type	FlashPrintInfo, %function
596FlashPrintInfo:
597	@ args = 0, pretend = 0, frame = 0
598	@ frame_needed = 0, uses_anonymous_args = 0
599	@ link register save eliminated.
600	bx	lr
601	.size	FlashPrintInfo, .-FlashPrintInfo
602	.section	.text.ToshibaSetRRPara,"ax",%progbits
603	.align	1
604	.global	ToshibaSetRRPara
605	.syntax unified
606	.thumb
607	.thumb_func
608	.fpu softvfp
609	.type	ToshibaSetRRPara, %function
610ToshibaSetRRPara:
611	@ args = 0, pretend = 0, frame = 0
612	@ frame_needed = 0, uses_anonymous_args = 0
613	push	{r3, r4, r5, r6, r7, r8, r10, lr}
614	add	r7, r1, r1, lsl #2
615	ldr	r10, .L99+12
616	mov	r5, r0
617	mov	r6, r1
618	movs	r4, #0
619	ldr	r8, .L99+16
620.L92:
621	ldrb	r3, [r10]	@ zero_extendqisi2
622	cmp	r4, r3
623	bcc	.L96
624	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
625.L96:
626	movs	r3, #85
627	movs	r0, #200
628	str	r3, [r5, #8]
629	ldrsb	r3, [r4, r8]
630	str	r3, [r5, #4]
631	bl	udelay
632	ldr	r3, .L99
633	ldrb	r3, [r3]	@ zero_extendqisi2
634	cmp	r3, #34
635	bne	.L93
636	adds	r3, r4, r7
637	add	r3, r3, r8
638.L98:
639	ldrsb	r3, [r3, #5]
640.L97:
641	str	r3, [r5]
642	adds	r4, r4, #1
643	b	.L92
644.L93:
645	cmp	r3, #35
646	bne	.L95
647	ldr	r3, .L99+4
648	adds	r2, r4, r7
649	add	r3, r3, r2
650	b	.L98
651.L95:
652	ldr	r3, .L99+8
653	ldrsb	r3, [r3, r6]
654	b	.L97
655.L100:
656	.align	2
657.L99:
658	.word	.LANCHOR10
659	.word	.LANCHOR11
660	.word	.LANCHOR12
661	.word	.LANCHOR13
662	.word	.LANCHOR9
663	.size	ToshibaSetRRPara, .-ToshibaSetRRPara
664	.section	.text.SamsungSetRRPara,"ax",%progbits
665	.align	1
666	.global	SamsungSetRRPara
667	.syntax unified
668	.thumb
669	.thumb_func
670	.fpu softvfp
671	.type	SamsungSetRRPara, %function
672SamsungSetRRPara:
673	@ args = 0, pretend = 0, frame = 0
674	@ frame_needed = 0, uses_anonymous_args = 0
675	push	{r3, r4, r5, r6, r7, r8, r10, lr}
676	mov	r6, r0
677	ldr	r7, .L104
678	movs	r4, #0
679	mov	r10, #161
680	ldr	r8, .L104+4
681	add	r1, r7, r1, lsl #2
682	adds	r5, r1, #3
683.L102:
684	ldrb	r3, [r8]	@ zero_extendqisi2
685	cmp	r4, r3
686	bcc	.L103
687	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
688.L103:
689	movs	r3, #0
690	str	r10, [r6, #8]
691	str	r3, [r6]
692	mov	r0, #300
693	ldrsb	r3, [r7, r4]
694	adds	r4, r4, #1
695	str	r3, [r6]
696	ldrsb	r3, [r5, #1]!
697	str	r3, [r6]
698	bl	udelay
699	b	.L102
700.L105:
701	.align	2
702.L104:
703	.word	.LANCHOR14
704	.word	.LANCHOR13
705	.size	SamsungSetRRPara, .-SamsungSetRRPara
706	.global	__aeabi_uidiv
707	.global	__aeabi_uidivmod
708	.section	.text.LogAddr2PhyAddr,"ax",%progbits
709	.align	1
710	.global	LogAddr2PhyAddr
711	.syntax unified
712	.thumb
713	.thumb_func
714	.fpu softvfp
715	.type	LogAddr2PhyAddr, %function
716LogAddr2PhyAddr:
717	@ args = 4, pretend = 0, frame = 8
718	@ frame_needed = 0, uses_anonymous_args = 0
719	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
720	mov	r6, r3
721	ldr	r3, .L111
722	mov	r8, r1
723	mov	r7, r2
724	mov	r5, r0
725	ldrh	r4, [r3, #14]
726	ldrh	r3, [r3, #12]
727	smulbb	r4, r4, r3
728	ldr	r3, .L111+4
729	ldrh	fp, [r3]
730	uxth	r4, r4
731	ldr	r3, .L111+8
732	ldrb	r3, [r3]	@ zero_extendqisi2
733	cmp	r3, #1
734	ldr	r3, [r0, #4]
735	it	eq
736	lsleq	r1, fp, #1
737	ubfx	r2, r3, #10, #16
738	it	eq
739	uxtheq	fp, r1
740	mov	r0, r2
741	str	r3, [sp, #4]
742	mov	r1, r4
743	str	r2, [sp]
744	bl	__aeabi_uidiv
745	ldr	r2, [sp]
746	uxth	r10, r0
747	mov	r1, r4
748	mov	r0, r2
749	bl	__aeabi_uidivmod
750	ldr	r3, [sp, #4]
751	cmp	r8, #1
752	uxth	r1, r1
753	ubfx	r3, r3, #0, #10
754	bne	.L108
755	ldr	r2, .L111+12
756	ldrb	r2, [r2]	@ zero_extendqisi2
757	cbnz	r2, .L108
758	ldr	r2, .L111+16
759	ldrh	r3, [r2, r3, lsl #1]
760.L108:
761	ldr	r2, .L111+20
762	ldr	r2, [r2, r10, lsl #2]
763	mla	r1, fp, r1, r2
764	add	r1, r1, r3
765	ldrb	r3, [sp, #40]	@ zero_extendqisi2
766	str	r1, [r7]
767	str	r10, [r6]
768	cmp	r3, #1
769	bls	.L110
770	ldr	r0, [r5, #4]
771	ldr	r3, [r5, #40]
772	add	r0, r0, #1024
773	subs	r3, r0, r3
774	rsbs	r0, r3, #0
775	adcs	r0, r0, r3
776.L109:
777	add	sp, sp, #8
778	@ sp needed
779	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
780.L110:
781	movs	r0, #0
782	b	.L109
783.L112:
784	.align	2
785.L111:
786	.word	.LANCHOR15
787	.word	.LANCHOR3
788	.word	.LANCHOR1
789	.word	.LANCHOR8
790	.word	.LANCHOR16
791	.word	.LANCHOR17
792	.size	LogAddr2PhyAddr, .-LogAddr2PhyAddr
793	.section	.text.FlashReadStatusEN,"ax",%progbits
794	.align	1
795	.global	FlashReadStatusEN
796	.syntax unified
797	.thumb
798	.thumb_func
799	.fpu softvfp
800	.type	FlashReadStatusEN, %function
801FlashReadStatusEN:
802	@ args = 0, pretend = 0, frame = 0
803	@ frame_needed = 0, uses_anonymous_args = 0
804	ldr	r3, .L125
805	push	{r4, r5, r6, lr}
806	ldr	r5, [r3, r0, lsl #3]
807	add	r3, r3, r0, lsl #3
808	ldrb	r4, [r3, #4]	@ zero_extendqisi2
809	ldr	r3, .L125+4
810	ldr	r3, [r3]
811	ldrb	r3, [r3, #8]	@ zero_extendqisi2
812	cmp	r3, #2
813	lsl	r3, r4, #8
814	add	r4, r4, #8
815	bne	.L114
816	ldr	r0, .L125+8
817	cbnz	r2, .L115
818	ldrb	r2, [r0, #13]	@ zero_extendqisi2
819.L124:
820	add	r3, r3, r5
821	str	r2, [r3, #2056]
822	ldrb	r0, [r0, #15]	@ zero_extendqisi2
823	cbz	r0, .L119
824	add	r6, r5, r4, lsl #8
825	movs	r2, #0
826.L118:
827	cmp	r2, r0
828	bcc	.L120
829.L119:
830	lsls	r4, r4, #8
831	movs	r0, #80
832	bl	udelay
833	ldr	r0, [r5, r4]
834	uxtb	r0, r0
835	pop	{r4, r5, r6, pc}
836.L115:
837	ldrb	r2, [r0, #14]	@ zero_extendqisi2
838	b	.L124
839.L120:
840	lsls	r3, r2, #3
841	adds	r2, r2, #1
842	lsr	r3, r1, r3
843	uxtb	r3, r3
844	str	r3, [r6, #4]
845	b	.L118
846.L114:
847	add	r3, r3, r5
848	movs	r2, #112
849	str	r2, [r3, #2056]
850	b	.L119
851.L126:
852	.align	2
853.L125:
854	.word	.LANCHOR6
855	.word	.LANCHOR18
856	.word	.LANCHOR7
857	.size	FlashReadStatusEN, .-FlashReadStatusEN
858	.section	.text.FlashWaitReadyEN,"ax",%progbits
859	.align	1
860	.global	FlashWaitReadyEN
861	.syntax unified
862	.thumb
863	.thumb_func
864	.fpu softvfp
865	.type	FlashWaitReadyEN, %function
866FlashWaitReadyEN:
867	@ args = 0, pretend = 0, frame = 0
868	@ frame_needed = 0, uses_anonymous_args = 0
869	push	{r4, r5, r6, lr}
870	mov	r4, r0
871	mov	r5, r1
872	mov	r6, r2
873.L131:
874	mov	r2, r6
875	mov	r1, r5
876	mov	r0, r4
877	bl	FlashReadStatusEN
878	cmp	r0, #255
879	mov	r3, r0
880	beq	.L131
881	lsls	r3, r3, #25
882	bpl	.L131
883	pop	{r4, r5, r6, pc}
884	.size	FlashWaitReadyEN, .-FlashWaitReadyEN
885	.section	.text.NandcReadDontCaseBusyEn,"ax",%progbits
886	.align	1
887	.global	NandcReadDontCaseBusyEn
888	.syntax unified
889	.thumb
890	.thumb_func
891	.fpu softvfp
892	.type	NandcReadDontCaseBusyEn, %function
893NandcReadDontCaseBusyEn:
894	@ args = 0, pretend = 0, frame = 0
895	@ frame_needed = 0, uses_anonymous_args = 0
896	@ link register save eliminated.
897	bx	lr
898	.size	NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn
899	.section	.text.NandcGetChipIf,"ax",%progbits
900	.align	1
901	.global	NandcGetChipIf
902	.syntax unified
903	.thumb
904	.thumb_func
905	.fpu softvfp
906	.type	NandcGetChipIf, %function
907NandcGetChipIf:
908	@ args = 0, pretend = 0, frame = 0
909	@ frame_needed = 0, uses_anonymous_args = 0
910	@ link register save eliminated.
911	ldr	r2, .L136
912	add	r3, r2, r0, lsl #3
913	ldr	r0, [r2, r0, lsl #3]
914	ldrb	r3, [r3, #4]	@ zero_extendqisi2
915	adds	r3, r3, #8
916	add	r0, r0, r3, lsl #8
917	bx	lr
918.L137:
919	.align	2
920.L136:
921	.word	.LANCHOR6
922	.size	NandcGetChipIf, .-NandcGetChipIf
923	.section	.text.NandcSetDdrPara,"ax",%progbits
924	.align	1
925	.global	NandcSetDdrPara
926	.syntax unified
927	.thumb
928	.thumb_func
929	.fpu softvfp
930	.type	NandcSetDdrPara, %function
931NandcSetDdrPara:
932	@ args = 0, pretend = 0, frame = 0
933	@ frame_needed = 0, uses_anonymous_args = 0
934	@ link register save eliminated.
935	ldr	r3, .L139
936	ldr	r2, [r3]
937	lsls	r3, r0, #8
938	orr	r0, r3, r0, lsl #16
939	orr	r0, r0, #1
940	str	r0, [r2, #304]
941	bx	lr
942.L140:
943	.align	2
944.L139:
945	.word	.LANCHOR19
946	.size	NandcSetDdrPara, .-NandcSetDdrPara
947	.section	.text.NandcSetDdrDiv,"ax",%progbits
948	.align	1
949	.global	NandcSetDdrDiv
950	.syntax unified
951	.thumb
952	.thumb_func
953	.fpu softvfp
954	.type	NandcSetDdrDiv, %function
955NandcSetDdrDiv:
956	@ args = 0, pretend = 0, frame = 0
957	@ frame_needed = 0, uses_anonymous_args = 0
958	@ link register save eliminated.
959	ldr	r3, .L142
960	orr	r0, r0, #16640
961	ldr	r3, [r3]
962	str	r0, [r3, #344]
963	bx	lr
964.L143:
965	.align	2
966.L142:
967	.word	.LANCHOR19
968	.size	NandcSetDdrDiv, .-NandcSetDdrDiv
969	.section	.text.NandcSetDdrMode,"ax",%progbits
970	.align	1
971	.global	NandcSetDdrMode
972	.syntax unified
973	.thumb
974	.thumb_func
975	.fpu softvfp
976	.type	NandcSetDdrMode, %function
977NandcSetDdrMode:
978	@ args = 0, pretend = 0, frame = 0
979	@ frame_needed = 0, uses_anonymous_args = 0
980	@ link register save eliminated.
981	ldr	r3, .L147
982	ldr	r2, [r3]
983	ldr	r3, [r2]
984	cbnz	r0, .L145
985	bfi	r3, r0, #13, #1
986.L146:
987	str	r3, [r2]
988	bx	lr
989.L145:
990	orr	r3, r3, #253952
991	b	.L146
992.L148:
993	.align	2
994.L147:
995	.word	.LANCHOR19
996	.size	NandcSetDdrMode, .-NandcSetDdrMode
997	.section	.text.NandcSetMode,"ax",%progbits
998	.align	1
999	.global	NandcSetMode
1000	.syntax unified
1001	.thumb
1002	.thumb_func
1003	.fpu softvfp
1004	.type	NandcSetMode, %function
1005NandcSetMode:
1006	@ args = 0, pretend = 0, frame = 0
1007	@ frame_needed = 0, uses_anonymous_args = 0
1008	@ link register save eliminated.
1009	ldr	r3, .L156
1010	ands	r1, r0, #6
1011	ldr	r2, [r3]
1012	ldr	r3, [r2]
1013	beq	.L150
1014	lsls	r1, r0, #29
1015	movw	r1, #16641
1016	str	r1, [r2, #344]
1017	orr	r3, r3, #24576
1018	ldr	r1, .L156+4
1019	bfc	r3, #15, #1
1020	orr	r3, r3, #196608
1021	it	mi
1022	orrmi	r3, r3, #32768
1023	str	r1, [r2, #304]
1024	movs	r1, #38
1025	str	r1, [r2, #308]
1026	movs	r1, #39
1027	str	r1, [r2, #308]
1028.L152:
1029	str	r3, [r2]
1030	movs	r0, #0
1031	bx	lr
1032.L150:
1033	bfi	r3, r1, #13, #1
1034	b	.L152
1035.L157:
1036	.align	2
1037.L156:
1038	.word	.LANCHOR19
1039	.word	1710595
1040	.size	NandcSetMode, .-NandcSetMode
1041	.section	.text.NandcFlashCs,"ax",%progbits
1042	.align	1
1043	.global	NandcFlashCs
1044	.syntax unified
1045	.thumb
1046	.thumb_func
1047	.fpu softvfp
1048	.type	NandcFlashCs, %function
1049NandcFlashCs:
1050	@ args = 0, pretend = 0, frame = 0
1051	@ frame_needed = 0, uses_anonymous_args = 0
1052	@ link register save eliminated.
1053	ldr	r3, .L159
1054	movs	r2, #1
1055	ldr	r1, [r3, r0, lsl #3]
1056	add	r0, r3, r0, lsl #3
1057	ldrb	r0, [r0, #4]	@ zero_extendqisi2
1058	ldr	r3, [r1]
1059	lsls	r2, r2, r0
1060	bfi	r3, r2, #0, #8
1061	str	r3, [r1]
1062	bx	lr
1063.L160:
1064	.align	2
1065.L159:
1066	.word	.LANCHOR6
1067	.size	NandcFlashCs, .-NandcFlashCs
1068	.section	.text.NandcFlashDeCs,"ax",%progbits
1069	.align	1
1070	.global	NandcFlashDeCs
1071	.syntax unified
1072	.thumb
1073	.thumb_func
1074	.fpu softvfp
1075	.type	NandcFlashDeCs, %function
1076NandcFlashDeCs:
1077	@ args = 0, pretend = 0, frame = 0
1078	@ frame_needed = 0, uses_anonymous_args = 0
1079	@ link register save eliminated.
1080	ldr	r3, .L162
1081	ldr	r2, [r3, r0, lsl #3]
1082	ldr	r3, [r2]
1083	bfc	r3, #0, #8
1084	bfc	r3, #17, #1
1085	str	r3, [r2]
1086	bx	lr
1087.L163:
1088	.align	2
1089.L162:
1090	.word	.LANCHOR6
1091	.size	NandcFlashDeCs, .-NandcFlashDeCs
1092	.section	.text.HynixSetRRPara,"ax",%progbits
1093	.align	1
1094	.global	HynixSetRRPara
1095	.syntax unified
1096	.thumb
1097	.thumb_func
1098	.fpu softvfp
1099	.type	HynixSetRRPara, %function
1100HynixSetRRPara:
1101	@ args = 0, pretend = 0, frame = 8
1102	@ frame_needed = 0, uses_anonymous_args = 0
1103	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
1104	mov	r7, r3
1105	ldr	r3, .L171
1106	mov	r5, r0
1107	mov	r6, r1
1108	mov	r10, r2
1109	ldr	r4, .L171+4
1110	ldr	r3, [r3]
1111	ldrb	r3, [r3, #19]	@ zero_extendqisi2
1112	cmp	r3, #6
1113	bne	.L165
1114	movs	r3, #20
1115	add	r3, r3, r0, lsl #6
1116	add	r3, r3, r7, lsl #2
1117.L170:
1118	add	r4, r4, r3
1119.L166:
1120	ldr	r3, .L171+8
1121	mov	r0, r5
1122	subs	r6, r6, #1
1123	subs	r4, r4, #1
1124	add	r6, r6, r10
1125	ldr	r8, [r3, r5, lsl #3]
1126	add	r3, r3, r5, lsl #3
1127	ldrb	fp, [r3, #4]	@ zero_extendqisi2
1128	bl	NandcFlashCs
1129	movs	r3, #54
1130	lsl	fp, fp, #8
1131	add	r0, r8, fp
1132	str	r3, [r0, #2056]
1133	add	r3, r10, #-1
1134	mov	r10, r0
1135.L168:
1136	cmp	r3, r6
1137	bne	.L169
1138	movs	r3, #22
1139	add	r8, r8, fp
1140	str	r3, [r8, #2056]
1141	mov	r0, r5
1142	bl	NandcFlashDeCs
1143	ldr	r3, .L171+12
1144	strb	r7, [r3, r5]
1145	add	sp, sp, #8
1146	@ sp needed
1147	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1148.L165:
1149	cmp	r3, #7
1150	bne	.L167
1151	movs	r3, #160
1152	movs	r2, #28
1153	smlabb	r2, r3, r0, r2
1154	movs	r3, #10
1155	smlabb	r3, r3, r7, r2
1156	b	.L170
1157.L167:
1158	adds	r3, r7, #2
1159	add	r3, r3, r0, lsl #3
1160	add	r4, r4, r3, lsl #3
1161	adds	r4, r4, #4
1162	b	.L166
1163.L169:
1164	ldrb	r2, [r3, #1]!	@ zero_extendqisi2
1165	movs	r0, #200
1166	str	r2, [r10, #2052]
1167	str	r3, [sp, #4]
1168	bl	udelay
1169	ldrsb	r2, [r4, #1]!
1170	ldr	r3, [sp, #4]
1171	str	r2, [r10, #2048]
1172	b	.L168
1173.L172:
1174	.align	2
1175.L171:
1176	.word	.LANCHOR18
1177	.word	.LANCHOR20
1178	.word	.LANCHOR6
1179	.word	.LANCHOR21
1180	.size	HynixSetRRPara, .-HynixSetRRPara
1181	.section	.text.FlashSetReadRetryDefault,"ax",%progbits
1182	.align	1
1183	.global	FlashSetReadRetryDefault
1184	.syntax unified
1185	.thumb
1186	.thumb_func
1187	.fpu softvfp
1188	.type	FlashSetReadRetryDefault, %function
1189FlashSetReadRetryDefault:
1190	@ args = 0, pretend = 0, frame = 0
1191	@ frame_needed = 0, uses_anonymous_args = 0
1192	ldr	r3, .L179
1193	push	{r4, r5, r6, lr}
1194	ldr	r3, [r3]
1195	ldrb	r3, [r3, #19]	@ zero_extendqisi2
1196	subs	r3, r3, #1
1197	cmp	r3, #6
1198	bhi	.L173
1199	ldr	r5, .L179+4
1200	movs	r4, #0
1201	adds	r6, r5, #4
1202.L176:
1203	ldr	r3, .L179+8
1204	uxtb	r0, r4
1205	ldrb	r3, [r3, r4, lsl #3]	@ zero_extendqisi2
1206	cmp	r3, #173
1207	bne	.L175
1208	movs	r3, #0
1209	mov	r2, r6
1210	ldrb	r1, [r5, #1]	@ zero_extendqisi2
1211	bl	HynixSetRRPara
1212.L175:
1213	adds	r4, r4, #1
1214	cmp	r4, #4
1215	bne	.L176
1216.L173:
1217	pop	{r4, r5, r6, pc}
1218.L180:
1219	.align	2
1220.L179:
1221	.word	.LANCHOR18
1222	.word	.LANCHOR20
1223	.word	.LANCHOR22
1224	.size	FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
1225	.section	.text.FlashWaitCmdDone,"ax",%progbits
1226	.align	1
1227	.global	FlashWaitCmdDone
1228	.syntax unified
1229	.thumb
1230	.thumb_func
1231	.fpu softvfp
1232	.type	FlashWaitCmdDone, %function
1233FlashWaitCmdDone:
1234	@ args = 0, pretend = 0, frame = 0
1235	@ frame_needed = 0, uses_anonymous_args = 0
1236	ldr	r2, .L188
1237	lsls	r3, r0, #4
1238	push	{r4, r5, r6, lr}
1239	mov	r6, r0
1240	adds	r4, r2, r3
1241	ldr	r1, [r4, #8]
1242	cbz	r1, .L183
1243	ldrb	r5, [r2, r3]	@ zero_extendqisi2
1244	mov	r0, r5
1245	bl	NandcFlashCs
1246	ldr	r3, .L188+4
1247	mov	r0, r5
1248	ldr	r1, [r4, #4]
1249	ldr	r2, [r3, r6, lsl #2]
1250	adds	r2, r2, #0
1251	it	ne
1252	movne	r2, #1
1253	bl	FlashWaitReadyEN
1254	mov	r1, r0
1255	mov	r0, r5
1256	bl	NandcFlashDeCs
1257	ldr	r3, [r4, #8]
1258	sbfx	r1, r1, #0, #1
1259	ldr	r2, [r4, #12]
1260	str	r1, [r3]
1261	movs	r3, #0
1262	str	r3, [r4, #8]
1263	cbz	r2, .L183
1264	str	r1, [r2]
1265	str	r3, [r4, #12]
1266.L183:
1267	movs	r0, #0
1268	pop	{r4, r5, r6, pc}
1269.L189:
1270	.align	2
1271.L188:
1272	.word	.LANCHOR23
1273	.word	.LANCHOR17
1274	.size	FlashWaitCmdDone, .-FlashWaitCmdDone
1275	.section	.text.NandcDelayns,"ax",%progbits
1276	.align	1
1277	.global	NandcDelayns
1278	.syntax unified
1279	.thumb
1280	.thumb_func
1281	.fpu softvfp
1282	.type	NandcDelayns, %function
1283NandcDelayns:
1284	@ args = 0, pretend = 0, frame = 0
1285	@ frame_needed = 0, uses_anonymous_args = 0
1286	push	{r3, lr}
1287	bl	udelay
1288	movs	r0, #0
1289	pop	{r3, pc}
1290	.size	NandcDelayns, .-NandcDelayns
1291	.section	.text.NandcWaitFlashReady,"ax",%progbits
1292	.align	1
1293	.global	NandcWaitFlashReady
1294	.syntax unified
1295	.thumb
1296	.thumb_func
1297	.fpu softvfp
1298	.type	NandcWaitFlashReady, %function
1299NandcWaitFlashReady:
1300	@ args = 0, pretend = 0, frame = 8
1301	@ frame_needed = 0, uses_anonymous_args = 0
1302	ldr	r3, .L196
1303	push	{r0, r1, r2, r4, r5, lr}
1304	ldr	r4, .L196+4
1305	ldr	r5, [r3, r0, lsl #3]
1306.L193:
1307	movs	r0, #100
1308	bl	udelay
1309	ldr	r3, [r5]
1310	str	r3, [sp, #4]
1311	ldr	r3, [sp, #4]
1312	lsls	r3, r3, #22
1313	bmi	.L194
1314	subs	r4, r4, #1
1315	bne	.L193
1316	mov	r0, #-1
1317.L191:
1318	add	sp, sp, #12
1319	@ sp needed
1320	pop	{r4, r5, pc}
1321.L194:
1322	movs	r0, #0
1323	b	.L191
1324.L197:
1325	.align	2
1326.L196:
1327	.word	.LANCHOR6
1328	.word	100000
1329	.size	NandcWaitFlashReady, .-NandcWaitFlashReady
1330	.section	.text.FlashReset,"ax",%progbits
1331	.align	1
1332	.global	FlashReset
1333	.syntax unified
1334	.thumb
1335	.thumb_func
1336	.fpu softvfp
1337	.type	FlashReset, %function
1338FlashReset:
1339	@ args = 0, pretend = 0, frame = 0
1340	@ frame_needed = 0, uses_anonymous_args = 0
1341	ldr	r3, .L199
1342	push	{r4, r5, r6, lr}
1343	mov	r4, r0
1344	ldr	r5, [r3, r0, lsl #3]
1345	add	r3, r3, r0, lsl #3
1346	ldrb	r6, [r3, #4]	@ zero_extendqisi2
1347	bl	NandcFlashCs
1348	movs	r3, #255
1349	mov	r0, r4
1350	add	r5, r5, r6, lsl #8
1351	str	r3, [r5, #2056]
1352	bl	NandcWaitFlashReady
1353	mov	r0, r4
1354	pop	{r4, r5, r6, lr}
1355	b	NandcFlashDeCs
1356.L200:
1357	.align	2
1358.L199:
1359	.word	.LANCHOR6
1360	.size	FlashReset, .-FlashReset
1361	.section	.text.FlashEraseBlock,"ax",%progbits
1362	.align	1
1363	.global	FlashEraseBlock
1364	.syntax unified
1365	.thumb
1366	.thumb_func
1367	.fpu softvfp
1368	.type	FlashEraseBlock, %function
1369FlashEraseBlock:
1370	@ args = 0, pretend = 0, frame = 0
1371	@ frame_needed = 0, uses_anonymous_args = 0
1372	push	{r4, r5, r6, lr}
1373	mov	r4, r0
1374	mov	r5, r1
1375	mov	r6, r2
1376	bl	NandcWaitFlashReady
1377	mov	r0, r4
1378	bl	NandcFlashCs
1379	mov	r2, r6
1380	mov	r1, r5
1381	mov	r0, r4
1382	bl	FlashEraseCmd
1383	mov	r0, r4
1384	bl	NandcWaitFlashReady
1385	mov	r1, r5
1386	mov	r0, r4
1387	bl	FlashReadStatus
1388	mov	r1, r0
1389	mov	r0, r4
1390	bl	NandcFlashDeCs
1391	and	r0, r1, #1
1392	pop	{r4, r5, r6, pc}
1393	.size	FlashEraseBlock, .-FlashEraseBlock
1394	.section	.text.FlashSetInterfaceMode,"ax",%progbits
1395	.align	1
1396	.global	FlashSetInterfaceMode
1397	.syntax unified
1398	.thumb
1399	.thumb_func
1400	.fpu softvfp
1401	.type	FlashSetInterfaceMode, %function
1402FlashSetInterfaceMode:
1403	@ args = 0, pretend = 0, frame = 8
1404	@ frame_needed = 0, uses_anonymous_args = 0
1405	ldr	r3, .L230
1406	mov	ip, #128
1407	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
1408	movs	r5, #0
1409	movs	r7, #239
1410	mov	lr, #1
1411	mov	r8, #35
1412	mov	r10, #32
1413	ldrb	r3, [r3]	@ zero_extendqisi2
1414	and	r2, r3, #4
1415	and	r3, r3, #1
1416	str	r2, [sp]
1417	mov	r2, r5
1418	str	r3, [sp, #4]
1419.L212:
1420	ldr	r3, .L230+4
1421	ldrb	r4, [r5, r3]	@ zero_extendqisi2
1422	cmp	r4, #152
1423	beq	.L203
1424	cmp	r4, #69
1425	beq	.L203
1426	cmp	r4, #173
1427	beq	.L203
1428	cmp	r4, #44
1429	bne	.L204
1430.L203:
1431	ldr	r3, .L230+8
1432	cmp	r0, #1
1433	ldr	r1, [r5, r3]
1434	add	r3, r3, r5
1435	ldrb	r3, [r3, #4]	@ zero_extendqisi2
1436	bne	.L205
1437	ldr	r6, [sp, #4]
1438	cbz	r6, .L204
1439	lsls	r3, r3, #8
1440	cmp	r4, #173
1441	add	fp, r1, r3
1442	str	r7, [fp, #2056]
1443	bne	.L206
1444	str	r0, [fp, #2052]
1445.L229:
1446	str	r2, [fp, #2048]
1447	b	.L210
1448.L206:
1449	cmp	r4, #44
1450	ittet	eq
1451	moveq	r4, #5
1452	streq	r0, [fp, #2052]
1453	strne	ip, [fp, #2052]
1454	streq	r4, [fp, #2048]
1455	it	ne
1456	strne	r0, [fp, #2048]
1457.L210:
1458	add	r3, r3, r1
1459	str	r2, [r3, #2048]
1460	str	r2, [r3, #2048]
1461	str	r2, [r3, #2048]
1462.L204:
1463	adds	r5, r5, #8
1464	cmp	r5, #32
1465	bne	.L212
1466	movs	r0, #0
1467	bl	NandcWaitFlashReady
1468	movs	r0, #0
1469	add	sp, sp, #8
1470	@ sp needed
1471	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1472.L205:
1473	ldr	r6, [sp]
1474	cmp	r6, #0
1475	beq	.L204
1476	lsls	r3, r3, #8
1477	cmp	r4, #173
1478	add	fp, r1, r3
1479	str	r7, [fp, #2056]
1480	bne	.L209
1481	str	lr, [fp, #2052]
1482	str	r10, [fp, #2048]
1483	b	.L210
1484.L209:
1485	cmp	r4, #44
1486	bne	.L211
1487	str	lr, [fp, #2052]
1488	str	r8, [fp, #2048]
1489	b	.L210
1490.L211:
1491	str	ip, [fp, #2052]
1492	b	.L229
1493.L231:
1494	.align	2
1495.L230:
1496	.word	.LANCHOR24
1497	.word	.LANCHOR22
1498	.word	.LANCHOR6
1499	.size	FlashSetInterfaceMode, .-FlashSetInterfaceMode
1500	.section	.text.SandiskSetRRPara,"ax",%progbits
1501	.align	1
1502	.global	SandiskSetRRPara
1503	.syntax unified
1504	.thumb
1505	.thumb_func
1506	.fpu softvfp
1507	.type	SandiskSetRRPara, %function
1508SandiskSetRRPara:
1509	@ args = 0, pretend = 0, frame = 0
1510	@ frame_needed = 0, uses_anonymous_args = 0
1511	push	{r3, r4, r5, r6, r7, lr}
1512	movs	r3, #239
1513	str	r3, [r0, #8]
1514	movs	r3, #17
1515	mov	r5, r0
1516	mov	r4, r1
1517	str	r3, [r0, #4]
1518	movs	r0, #200
1519	bl	udelay
1520	ldr	r3, .L238
1521	add	r4, r4, r4, lsl #2
1522	ldr	r6, .L238+4
1523	movs	r2, #0
1524	ldr	r7, .L238+8
1525	ldrb	r1, [r3]	@ zero_extendqisi2
1526	ldr	r3, .L238+12
1527	ldrb	r0, [r3]	@ zero_extendqisi2
1528.L233:
1529	cmp	r2, r1
1530	bcc	.L236
1531	movs	r0, #0
1532	pop	{r3, r4, r5, r6, r7, lr}
1533	b	NandcWaitFlashReady
1534.L236:
1535	adds	r3, r2, r4
1536	cmp	r0, #67
1537	ite	eq
1538	addeq	r3, r3, r7
1539	addne	r3, r3, r6
1540	ldrsb	r3, [r3, #5]
1541	adds	r2, r2, #1
1542	str	r3, [r5]
1543	b	.L233
1544.L239:
1545	.align	2
1546.L238:
1547	.word	.LANCHOR13
1548	.word	.LANCHOR11
1549	.word	.LANCHOR9
1550	.word	.LANCHOR10
1551	.size	SandiskSetRRPara, .-SandiskSetRRPara
1552	.section	.text.micron_auto_read_calibration_config,"ax",%progbits
1553	.align	1
1554	.global	micron_auto_read_calibration_config
1555	.syntax unified
1556	.thumb
1557	.thumb_func
1558	.fpu softvfp
1559	.type	micron_auto_read_calibration_config, %function
1560micron_auto_read_calibration_config:
1561	@ args = 0, pretend = 0, frame = 0
1562	@ frame_needed = 0, uses_anonymous_args = 0
1563	push	{r4, r5, r6, lr}
1564	mov	r5, r0
1565	mov	r6, r1
1566	bl	NandcWaitFlashReady
1567	ldr	r0, .L241
1568	ldr	r4, [r0, r5, lsl #3]
1569	add	r0, r0, r5, lsl #3
1570	ldrb	r3, [r0, #4]	@ zero_extendqisi2
1571	movs	r0, #200
1572	add	r4, r4, r3, lsl #8
1573	movs	r3, #239
1574	str	r3, [r4, #2056]
1575	movs	r3, #150
1576	str	r3, [r4, #2052]
1577	bl	udelay
1578	movs	r3, #0
1579	str	r6, [r4, #2048]
1580	str	r3, [r4, #2048]
1581	str	r3, [r4, #2048]
1582	str	r3, [r4, #2048]
1583	pop	{r4, r5, r6, pc}
1584.L242:
1585	.align	2
1586.L241:
1587	.word	.LANCHOR6
1588	.size	micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
1589	.section	.text.FlashEraseSLc2KBlocks,"ax",%progbits
1590	.align	1
1591	.global	FlashEraseSLc2KBlocks
1592	.syntax unified
1593	.thumb
1594	.thumb_func
1595	.fpu softvfp
1596	.type	FlashEraseSLc2KBlocks, %function
1597FlashEraseSLc2KBlocks:
1598	@ args = 0, pretend = 0, frame = 8
1599	@ frame_needed = 0, uses_anonymous_args = 0
1600	push	{r4, r5, r6, r7, r8, r10, lr}
1601	mov	r7, r1
1602	ldr	r8, .L253+12
1603	sub	sp, sp, #20
1604	mov	r5, r0
1605	movs	r6, #0
1606	ldr	r10, .L253+16
1607.L244:
1608	cmp	r6, r7
1609	bne	.L249
1610	movs	r0, #0
1611	add	sp, sp, #20
1612	@ sp needed
1613	pop	{r4, r5, r6, r7, r8, r10, pc}
1614.L249:
1615	subs	r3, r7, r6
1616	add	r2, sp, #8
1617	uxtb	r3, r3
1618	movs	r1, #0
1619	mov	r0, r5
1620	str	r3, [sp]
1621	add	r3, sp, #12
1622	bl	LogAddr2PhyAddr
1623	ldr	r3, [sp, #12]
1624	ldrb	r2, [r8]	@ zero_extendqisi2
1625	cmp	r2, r3
1626	bhi	.L245
1627	mov	r3, #-1
1628	str	r3, [r5]
1629.L246:
1630	adds	r6, r6, #1
1631	adds	r5, r5, #36
1632	b	.L244
1633.L245:
1634	ldrb	r4, [r10, r3]	@ zero_extendqisi2
1635	lsls	r3, r3, #4
1636	ldr	r2, .L253
1637	mov	r0, r4
1638	strb	r4, [r2, r3]
1639	bl	NandcWaitFlashReady
1640	mov	r0, r4
1641	bl	NandcFlashCs
1642	movs	r2, #0
1643	ldr	r1, [sp, #8]
1644	mov	r0, r4
1645	bl	FlashEraseCmd
1646	mov	r0, r4
1647	bl	NandcWaitFlashReady
1648	ldr	r1, [sp, #8]
1649	mov	r0, r4
1650	bl	FlashReadStatus
1651	ldr	r3, .L253+4
1652	sbfx	r0, r0, #0, #1
1653	str	r0, [r5]
1654	movs	r2, #0
1655	ldr	r1, [sp, #8]
1656	mov	r0, r4
1657	ldr	r3, [r3]
1658	add	r1, r1, r3
1659	bl	FlashEraseCmd
1660	mov	r0, r4
1661	bl	NandcWaitFlashReady
1662	ldr	r1, [sp, #8]
1663	mov	r0, r4
1664	bl	FlashReadStatus
1665	lsls	r3, r0, #31
1666	itt	mi
1667	movmi	r3, #-1
1668	strmi	r3, [r5]
1669	ldr	r3, [r5]
1670	adds	r3, r3, #1
1671	bne	.L248
1672	ldr	r1, [sp, #8]
1673	ldr	r0, .L253+8
1674	bl	printf
1675.L248:
1676	mov	r0, r4
1677	bl	NandcFlashDeCs
1678	b	.L246
1679.L254:
1680	.align	2
1681.L253:
1682	.word	.LANCHOR23
1683	.word	.LANCHOR3
1684	.word	.LC1
1685	.word	.LANCHOR25
1686	.word	.LANCHOR26
1687	.size	FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks
1688	.section	.text.FlashEraseBlocks,"ax",%progbits
1689	.align	1
1690	.global	FlashEraseBlocks
1691	.syntax unified
1692	.thumb
1693	.thumb_func
1694	.fpu softvfp
1695	.type	FlashEraseBlocks, %function
1696FlashEraseBlocks:
1697	@ args = 0, pretend = 0, frame = 16
1698	@ frame_needed = 0, uses_anonymous_args = 0
1699	ldr	r3, .L286
1700	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1701	mov	r8, r0
1702	sub	sp, sp, #24
1703	mov	fp, r1
1704	mov	r7, r2
1705	ldrb	r4, [r3]	@ zero_extendqisi2
1706	cbnz	r4, .L256
1707	ldr	r10, .L286+8
1708.L257:
1709	cmp	r4, r7
1710	bcc	.L266
1711	ldr	r5, .L286+4
1712	movs	r4, #0
1713	ldr	r6, .L286+8
1714.L267:
1715	ldr	r3, .L286+12
1716	ldrb	r3, [r3]	@ zero_extendqisi2
1717	cmp	r4, r3
1718	bcc	.L269
1719	ldr	r3, .L286+16
1720	ldr	r3, [r3]
1721	cmp	r3, #0
1722	bne	.L270
1723.L271:
1724	movs	r0, #0
1725	b	.L255
1726.L256:
1727	mov	r1, r2
1728	bl	FlashEraseSLc2KBlocks
1729.L255:
1730	add	sp, sp, #24
1731	@ sp needed
1732	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1733.L266:
1734	movs	r5, #36
1735	add	r2, sp, #16
1736	muls	r5, r4, r5
1737	movs	r1, #0
1738	add	r3, r8, r5
1739	str	r3, [sp, #12]
1740	subs	r3, r7, r4
1741	uxtb	r3, r3
1742	ldr	r0, [sp, #12]
1743	str	r3, [sp]
1744	add	r3, sp, #20
1745	bl	LogAddr2PhyAddr
1746	ldr	r3, .L286+12
1747	mov	r6, r0
1748	ldr	r0, [sp, #20]
1749	ldrb	r3, [r3]	@ zero_extendqisi2
1750	cmp	r3, r0
1751	bhi	.L259
1752	mov	r3, #-1
1753	str	r3, [r8, r5]
1754.L260:
1755	adds	r4, r4, #1
1756	b	.L257
1757.L259:
1758	ldr	r3, .L286+20
1759	ldrb	r3, [r3]	@ zero_extendqisi2
1760	cmp	r3, #0
1761	add	r3, r10, r0, lsl #4
1762	it	eq
1763	moveq	r6, #0
1764	ldr	r3, [r3, #8]
1765	cbz	r3, .L262
1766	uxtb	r0, r0
1767	bl	FlashWaitCmdDone
1768.L262:
1769	ldr	r1, [sp, #20]
1770	ldr	r0, [sp, #12]
1771	lsls	r2, r1, #4
1772	add	r3, r10, r2
1773	str	r0, [r3, #8]
1774	movs	r0, #0
1775	str	r0, [r3, #12]
1776	ldr	r0, [sp, #16]
1777	str	r0, [r3, #4]
1778	cbz	r6, .L263
1779	adds	r5, r5, #36
1780	add	r5, r5, r8
1781	str	r5, [r3, #12]
1782.L263:
1783	ldr	r3, .L286+24
1784	ldrb	r5, [r3, r1]	@ zero_extendqisi2
1785	mov	r0, r5
1786	strb	r5, [r10, r2]
1787	bl	NandcFlashCs
1788	cmp	fp, #1
1789	mov	r0, r5
1790	bne	.L264
1791	ldr	r3, .L286+4
1792	ldrb	r3, [r3]	@ zero_extendqisi2
1793	cbz	r3, .L264
1794	bl	flash_enter_slc_mode
1795.L265:
1796	ldr	r3, .L286+28
1797	mov	r0, r5
1798	ldr	r2, [sp, #20]
1799	add	r4, r4, r6
1800	ldr	r1, [sp, #16]
1801	ldr	r2, [r3, r2, lsl #2]
1802	adds	r2, r2, #0
1803	it	ne
1804	movne	r2, #1
1805	bl	FlashWaitReadyEN
1806	mov	r2, r6
1807	ldr	r1, [sp, #16]
1808	mov	r0, r5
1809	bl	FlashEraseCmd
1810	mov	r0, r5
1811	bl	NandcFlashDeCs
1812	b	.L260
1813.L264:
1814	bl	flash_exit_slc_mode
1815	b	.L265
1816.L269:
1817	uxtb	r0, r4
1818	bl	FlashWaitCmdDone
1819	cmp	fp, #1
1820	bne	.L268
1821	ldrb	r3, [r5]	@ zero_extendqisi2
1822	cbz	r3, .L268
1823	lsls	r3, r4, #4
1824	ldrb	r0, [r6, r3]	@ zero_extendqisi2
1825	bl	flash_exit_slc_mode
1826.L268:
1827	adds	r4, r4, #1
1828	b	.L267
1829.L270:
1830	ldr	r3, .L286+32
1831	ldrb	r3, [r3]	@ zero_extendqisi2
1832	cmp	r3, #69
1833	bne	.L271
1834	movs	r3, #0
1835	movs	r2, #36
1836	mov	r1, r3
1837.L272:
1838	cmp	r3, r7
1839	beq	.L271
1840	mul	r0, r2, r3
1841	adds	r3, r3, #1
1842	str	r1, [r8, r0]
1843	b	.L272
1844.L287:
1845	.align	2
1846.L286:
1847	.word	.LANCHOR1
1848	.word	.LANCHOR8
1849	.word	.LANCHOR23
1850	.word	.LANCHOR25
1851	.word	.LANCHOR28
1852	.word	.LANCHOR27
1853	.word	.LANCHOR26
1854	.word	.LANCHOR17
1855	.word	.LANCHOR22
1856	.size	FlashEraseBlocks, .-FlashEraseBlocks
1857	.section	.text.FlashReadDpCmd,"ax",%progbits
1858	.align	1
1859	.global	FlashReadDpCmd
1860	.syntax unified
1861	.thumb
1862	.thumb_func
1863	.fpu softvfp
1864	.type	FlashReadDpCmd, %function
1865FlashReadDpCmd:
1866	@ args = 0, pretend = 0, frame = 0
1867	@ frame_needed = 0, uses_anonymous_args = 0
1868	push	{r3, r4, r5, r6, r7, r8, r10, lr}
1869	mov	r5, r2
1870	ldr	r3, .L292
1871	mov	r6, r1
1872	uxtb	lr, r1
1873	mov	r7, r0
1874	lsrs	r1, r1, #8
1875	uxtb	r8, r5
1876	ldr	r10, [r3, r0, lsl #3]
1877	add	r3, r3, r0, lsl #3
1878	ldrb	r4, [r3, #4]	@ zero_extendqisi2
1879	ldr	r3, .L292+4
1880	ldrb	r2, [r3, #16]	@ zero_extendqisi2
1881	lsls	r4, r4, #8
1882	ldrb	ip, [r3, #8]	@ zero_extendqisi2
1883	add	r4, r4, r10
1884	ldrb	r3, [r3, #9]	@ zero_extendqisi2
1885	cmp	r2, #1
1886	lsr	r2, r6, #16
1887	str	ip, [r4, #2056]
1888	bne	.L289
1889	mov	r10, #0
1890	str	r10, [r4, #2052]
1891	str	r10, [r4, #2052]
1892	str	lr, [r4, #2052]
1893	str	r1, [r4, #2052]
1894	str	r2, [r4, #2052]
1895	str	r3, [r4, #2056]
1896	bl	NandcWaitFlashReady
1897	str	r10, [r4, #2056]
1898	str	r10, [r4, #2052]
1899	str	r10, [r4, #2052]
1900.L291:
1901	lsrs	r3, r5, #8
1902	lsrs	r5, r5, #16
1903	str	r8, [r4, #2052]
1904	str	r3, [r4, #2052]
1905	movs	r3, #48
1906	str	r5, [r4, #2052]
1907	mov	r1, r6
1908	str	r3, [r4, #2056]
1909	mov	r0, r7
1910	pop	{r3, r4, r5, r6, r7, r8, r10, lr}
1911	b	FlashSetRandomizer
1912.L289:
1913	str	lr, [r4, #2052]
1914	str	r1, [r4, #2052]
1915	str	r2, [r4, #2052]
1916	str	r3, [r4, #2056]
1917	b	.L291
1918.L293:
1919	.align	2
1920.L292:
1921	.word	.LANCHOR6
1922	.word	.LANCHOR7
1923	.size	FlashReadDpCmd, .-FlashReadDpCmd
1924	.section	.text.FlashDeInit,"ax",%progbits
1925	.align	1
1926	.global	FlashDeInit
1927	.syntax unified
1928	.thumb
1929	.thumb_func
1930	.fpu softvfp
1931	.type	FlashDeInit, %function
1932FlashDeInit:
1933	@ args = 0, pretend = 0, frame = 0
1934	@ frame_needed = 0, uses_anonymous_args = 0
1935	push	{r4, lr}
1936	movs	r0, #0
1937	bl	NandcWaitFlashReady
1938	bl	FlashSetReadRetryDefault
1939	ldr	r3, .L303
1940	ldr	r2, [r3]
1941	ldr	r3, .L303+4
1942	cmp	r2, r3
1943	bne	.L295
1944	movs	r0, #0
1945	bl	flash_enter_slc_mode
1946.L295:
1947	ldr	r4, .L303+8
1948	ldrb	r3, [r4]	@ zero_extendqisi2
1949	cbz	r3, .L296
1950	ldr	r3, .L303+12
1951	ldrb	r3, [r3]	@ zero_extendqisi2
1952	lsls	r3, r3, #31
1953	bpl	.L296
1954	movs	r0, #1
1955	bl	FlashSetInterfaceMode
1956	movs	r0, #1
1957	bl	NandcSetMode
1958	movs	r3, #0
1959	strb	r3, [r4]
1960.L296:
1961	ldr	r3, .L303+16
1962	movs	r0, #0
1963	ldr	r3, [r3]
1964	str	r0, [r3, #336]
1965	pop	{r4, pc}
1966.L304:
1967	.align	2
1968.L303:
1969	.word	.LANCHOR29
1970	.word	1446522928
1971	.word	.LANCHOR30
1972	.word	.LANCHOR24
1973	.word	.LANCHOR6
1974	.size	FlashDeInit, .-FlashDeInit
1975	.section	.text.NandcRandmzSel,"ax",%progbits
1976	.align	1
1977	.global	NandcRandmzSel
1978	.syntax unified
1979	.thumb
1980	.thumb_func
1981	.fpu softvfp
1982	.type	NandcRandmzSel, %function
1983NandcRandmzSel:
1984	@ args = 0, pretend = 0, frame = 0
1985	@ frame_needed = 0, uses_anonymous_args = 0
1986	@ link register save eliminated.
1987	ldr	r3, .L306
1988	ldr	r3, [r3, r0, lsl #3]
1989	str	r1, [r3, #336]
1990	bx	lr
1991.L307:
1992	.align	2
1993.L306:
1994	.word	.LANCHOR6
1995	.size	NandcRandmzSel, .-NandcRandmzSel
1996	.section	.text.NandcTimeCfg,"ax",%progbits
1997	.align	1
1998	.global	NandcTimeCfg
1999	.syntax unified
2000	.thumb
2001	.thumb_func
2002	.fpu softvfp
2003	.type	NandcTimeCfg, %function
2004NandcTimeCfg:
2005	@ args = 0, pretend = 0, frame = 0
2006	@ frame_needed = 0, uses_anonymous_args = 0
2007	@ link register save eliminated.
2008	ldr	r3, .L313
2009	cmp	r0, #35
2010	ldr	r3, [r3]
2011	bhi	.L309
2012	movw	r2, #4193
2013.L312:
2014	str	r2, [r3, #4]
2015	bx	lr
2016.L309:
2017	cmp	r0, #99
2018	ite	hi
2019	movwhi	r2, #8322
2020	movwls	r2, #4225
2021	b	.L312
2022.L314:
2023	.align	2
2024.L313:
2025	.word	.LANCHOR19
2026	.size	NandcTimeCfg, .-NandcTimeCfg
2027	.section	.text.FlashTimingCfg,"ax",%progbits
2028	.align	1
2029	.global	FlashTimingCfg
2030	.syntax unified
2031	.thumb
2032	.thumb_func
2033	.fpu softvfp
2034	.type	FlashTimingCfg, %function
2035FlashTimingCfg:
2036	@ args = 0, pretend = 0, frame = 0
2037	@ frame_needed = 0, uses_anonymous_args = 0
2038	@ link register save eliminated.
2039	ldr	r3, .L316
2040	ldrb	r0, [r3, #21]	@ zero_extendqisi2
2041	b	NandcTimeCfg
2042.L317:
2043	.align	2
2044.L316:
2045	.word	.LANCHOR31
2046	.size	FlashTimingCfg, .-FlashTimingCfg
2047	.section	.text.NandcBchSel,"ax",%progbits
2048	.align	1
2049	.global	NandcBchSel
2050	.syntax unified
2051	.thumb
2052	.thumb_func
2053	.fpu softvfp
2054	.type	NandcBchSel, %function
2055NandcBchSel:
2056	@ args = 0, pretend = 0, frame = 0
2057	@ frame_needed = 0, uses_anonymous_args = 0
2058	ldr	r3, .L326
2059	movs	r1, #0
2060	push	{r4, lr}
2061	movs	r4, #16
2062	cmp	r0, r4
2063	ldr	r2, [r3]
2064	mov	r3, #1
2065	str	r3, [r2, #8]
2066	ldr	r3, .L326+4
2067	str	r0, [r3]
2068	mov	r3, r1
2069	bfi	r3, r4, #8, #8
2070	bfi	r3, r1, #18, #1
2071	bne	.L319
2072.L322:
2073	bfc	r3, #4, #1
2074.L320:
2075	orr	r3, r3, #1
2076	str	r3, [r2, #12]
2077	pop	{r4, pc}
2078.L319:
2079	cmp	r0, #24
2080	bne	.L321
2081	orr	r3, r3, #16
2082	b	.L320
2083.L321:
2084	cmp	r0, #40
2085	orr	r3, r3, #262144
2086	orr	r3, r3, #16
2087	bne	.L320
2088	b	.L322
2089.L327:
2090	.align	2
2091.L326:
2092	.word	.LANCHOR19
2093	.word	.LANCHOR32
2094	.size	NandcBchSel, .-NandcBchSel
2095	.section	.text.FlashBchSel,"ax",%progbits
2096	.align	1
2097	.global	FlashBchSel
2098	.syntax unified
2099	.thumb
2100	.thumb_func
2101	.fpu softvfp
2102	.type	FlashBchSel, %function
2103FlashBchSel:
2104	@ args = 0, pretend = 0, frame = 0
2105	@ frame_needed = 0, uses_anonymous_args = 0
2106	@ link register save eliminated.
2107	ldr	r3, .L329
2108	strb	r0, [r3]
2109	b	NandcBchSel
2110.L330:
2111	.align	2
2112.L329:
2113	.word	.LANCHOR33
2114	.size	FlashBchSel, .-FlashBchSel
2115	.section	.text.NandCIrqEnable,"ax",%progbits
2116	.align	1
2117	.global	NandCIrqEnable
2118	.syntax unified
2119	.thumb
2120	.thumb_func
2121	.fpu softvfp
2122	.type	NandCIrqEnable, %function
2123NandCIrqEnable:
2124	@ args = 0, pretend = 0, frame = 0
2125	@ frame_needed = 0, uses_anonymous_args = 0
2126	@ link register save eliminated.
2127	bx	lr
2128	.size	NandCIrqEnable, .-NandCIrqEnable
2129	.section	.text.NandCIrqDisable,"ax",%progbits
2130	.align	1
2131	.global	NandCIrqDisable
2132	.syntax unified
2133	.thumb
2134	.thumb_func
2135	.fpu softvfp
2136	.type	NandCIrqDisable, %function
2137NandCIrqDisable:
2138	@ args = 0, pretend = 0, frame = 0
2139	@ frame_needed = 0, uses_anonymous_args = 0
2140	@ link register save eliminated.
2141	bx	lr
2142	.size	NandCIrqDisable, .-NandCIrqDisable
2143	.section	.text.rk_nandc_get_irq_status,"ax",%progbits
2144	.align	1
2145	.global	rk_nandc_get_irq_status
2146	.syntax unified
2147	.thumb
2148	.thumb_func
2149	.fpu softvfp
2150	.type	rk_nandc_get_irq_status, %function
2151rk_nandc_get_irq_status:
2152	@ args = 0, pretend = 0, frame = 0
2153	@ frame_needed = 0, uses_anonymous_args = 0
2154	@ link register save eliminated.
2155	ldr	r0, [r0, #372]
2156	bx	lr
2157	.size	rk_nandc_get_irq_status, .-rk_nandc_get_irq_status
2158	.section	.text.rk_nandc_flash_ready,"ax",%progbits
2159	.align	1
2160	.global	rk_nandc_flash_ready
2161	.syntax unified
2162	.thumb
2163	.thumb_func
2164	.fpu softvfp
2165	.type	rk_nandc_flash_ready, %function
2166rk_nandc_flash_ready:
2167	@ args = 0, pretend = 0, frame = 0
2168	@ frame_needed = 0, uses_anonymous_args = 0
2169	@ link register save eliminated.
2170	bx	lr
2171	.size	rk_nandc_flash_ready, .-rk_nandc_flash_ready
2172	.section	.text.NandcIqrWaitFlashReady,"ax",%progbits
2173	.align	1
2174	.global	NandcIqrWaitFlashReady
2175	.syntax unified
2176	.thumb
2177	.thumb_func
2178	.fpu softvfp
2179	.type	NandcIqrWaitFlashReady, %function
2180NandcIqrWaitFlashReady:
2181	@ args = 0, pretend = 0, frame = 0
2182	@ frame_needed = 0, uses_anonymous_args = 0
2183	@ link register save eliminated.
2184	bx	lr
2185	.size	NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady
2186	.section	.text.rk_nandc_flash_xfer_completed,"ax",%progbits
2187	.align	1
2188	.global	rk_nandc_flash_xfer_completed
2189	.syntax unified
2190	.thumb
2191	.thumb_func
2192	.fpu softvfp
2193	.type	rk_nandc_flash_xfer_completed, %function
2194rk_nandc_flash_xfer_completed:
2195	@ args = 0, pretend = 0, frame = 0
2196	@ frame_needed = 0, uses_anonymous_args = 0
2197	@ link register save eliminated.
2198	bx	lr
2199	.size	rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
2200	.section	.text.NandcSendDumpDataStart,"ax",%progbits
2201	.align	1
2202	.global	NandcSendDumpDataStart
2203	.syntax unified
2204	.thumb
2205	.thumb_func
2206	.fpu softvfp
2207	.type	NandcSendDumpDataStart, %function
2208NandcSendDumpDataStart:
2209	@ args = 0, pretend = 0, frame = 8
2210	@ frame_needed = 0, uses_anonymous_args = 0
2211	@ link register save eliminated.
2212	ldr	r2, [r0, #16]
2213	sub	sp, sp, #8
2214	ldr	r3, .L338
2215	str	r2, [sp, #4]
2216	ldr	r2, [sp, #4]
2217	bfc	r2, #2, #1
2218	str	r2, [sp, #4]
2219	ldr	r2, [sp, #4]
2220	str	r2, [r0, #16]
2221	str	r3, [r0, #8]
2222	orr	r3, r3, #4
2223	str	r3, [r0, #8]
2224	add	sp, sp, #8
2225	@ sp needed
2226	bx	lr
2227.L339:
2228	.align	2
2229.L338:
2230	.word	538969130
2231	.size	NandcSendDumpDataStart, .-NandcSendDumpDataStart
2232	.section	.text.NandcSendDumpDataDone,"ax",%progbits
2233	.align	1
2234	.global	NandcSendDumpDataDone
2235	.syntax unified
2236	.thumb
2237	.thumb_func
2238	.fpu softvfp
2239	.type	NandcSendDumpDataDone, %function
2240NandcSendDumpDataDone:
2241	@ args = 0, pretend = 0, frame = 8
2242	@ frame_needed = 0, uses_anonymous_args = 0
2243	@ link register save eliminated.
2244	sub	sp, sp, #8
2245.L341:
2246	ldr	r3, [r0, #8]
2247	str	r3, [sp, #4]
2248	ldr	r3, [sp, #4]
2249	lsls	r3, r3, #11
2250	bpl	.L341
2251	add	sp, sp, #8
2252	@ sp needed
2253	bx	lr
2254	.size	NandcSendDumpDataDone, .-NandcSendDumpDataDone
2255	.section	.text.NandcXferStart,"ax",%progbits
2256	.align	1
2257	.global	NandcXferStart
2258	.syntax unified
2259	.thumb
2260	.thumb_func
2261	.fpu softvfp
2262	.type	NandcXferStart, %function
2263NandcXferStart:
2264	@ args = 8, pretend = 0, frame = 24
2265	@ frame_needed = 0, uses_anonymous_args = 0
2266	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2267	sub	sp, sp, #24
2268	mov	r7, r1
2269	ldr	r1, [sp, #60]
2270	str	r2, [sp, #4]
2271	ldr	fp, [sp, #56]
2272	cmp	r1, #0
2273	bne	.L358
2274	adds	r5, fp, #0
2275	it	ne
2276	movne	r5, #1
2277.L345:
2278	ldr	r1, .L363
2279	movs	r4, #0
2280	ldr	r6, [r1, r0, lsl #3]
2281	add	r1, r1, r0, lsl #3
2282	movs	r0, #16
2283	ldr	r8, [r6, #12]
2284	ldrb	r1, [r1, #4]	@ zero_extendqisi2
2285	bfi	r8, r0, #8, #8
2286	bfi	r8, r4, #3, #1
2287	bfi	r4, r7, #1, #1
2288	bfi	r8, r1, #5, #3
2289	orr	r4, r4, #8
2290	movs	r1, #1
2291	bfi	r4, r1, #5, #2
2292	lsrs	r3, r3, r1
2293	orr	r4, r4, #536870912
2294	orr	r4, r4, #1024
2295	bfi	r4, r3, #4, #1
2296	ldr	r3, .L363+4
2297	ldr	r3, [r3]
2298	cmp	r3, #3
2299	bls	.L346
2300	ldr	r3, [r6, #16]
2301	str	r3, [sp, #20]
2302	ldr	r3, [sp, #20]
2303	bfc	r3, #2, #1
2304	str	r3, [sp, #20]
2305	cmp	r5, #0
2306	beq	.L347
2307	ldr	r5, .L363+8
2308	cmp	r7, #0
2309	bne	.L348
2310.L356:
2311	ldr	r2, [sp, #4]
2312	adds	r2, r2, #1
2313	asrs	r2, r2, #1
2314	bfi	r4, r2, #22, #6
2315	cmp	fp, #0
2316	beq	.L349
2317	mov	r0, fp
2318.L350:
2319	ldr	r3, [r5, #4]
2320	add	r1, r0, #63
2321	ubfx	r10, r4, #22, #5
2322	bic	r1, r1, #63
2323	str	r0, [r5, #8]
2324	add	r1, r1, r10, lsl #10
2325	str	r0, [r5, #16]
2326	bic	r0, r0, #63
2327	str	r3, [r5, #12]
2328	clz	r7, r7
2329	str	r3, [r5, #20]
2330	lsrs	r7, r7, #5
2331	bl	flush_dcache_range
2332	ldr	r0, [r5, #20]
2333	add	r1, r0, #63
2334	bic	r0, r0, #63
2335	bic	r1, r1, #63
2336	add	r1, r1, r10, lsl #7
2337	bl	flush_dcache_range
2338	movs	r3, #1
2339	movs	r2, #16
2340	str	r3, [r5, #24]
2341	tst	fp, #3
2342	ldr	r3, [r5, #16]
2343	str	r3, [r6, #20]
2344	ldr	r3, [r5, #20]
2345	str	r3, [r6, #24]
2346	mov	r3, #0
2347	str	r3, [sp, #20]
2348	ldr	r3, [sp, #20]
2349	bfi	r3, r2, #9, #5
2350	it	eq
2351	moveq	r2, #2
2352	str	r3, [sp, #20]
2353	ldr	r3, [sp, #20]
2354	orr	r3, r3, #448
2355	str	r3, [sp, #20]
2356	ittt	eq
2357	ldreq	r3, [sp, #20]
2358	bfieq	r3, r2, #3, #3
2359	streq	r3, [sp, #20]
2360	ldr	r3, [sp, #20]
2361	orr	r3, r3, #4
2362	str	r3, [sp, #20]
2363	ldr	r3, [sp, #20]
2364	bfi	r3, r7, #1, #1
2365	str	r3, [sp, #20]
2366	ldr	r3, [sp, #20]
2367	orr	r3, r3, #1
2368	str	r3, [sp, #20]
2369.L347:
2370	ldr	r3, [sp, #20]
2371	str	r3, [r6, #16]
2372.L346:
2373	str	r8, [r6, #12]
2374	str	r4, [r6, #8]
2375	orr	r4, r4, #4
2376	str	r4, [r6, #8]
2377	add	sp, sp, #24
2378	@ sp needed
2379	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2380.L358:
2381	movs	r5, #1
2382	b	.L345
2383.L348:
2384	ldr	r3, .L363+12
2385	movs	r1, #0
2386	ldr	lr, [r5, #4]
2387	mov	r0, r1
2388	ldr	r3, [r3]
2389	cmp	r3, #25
2390	ite	cc
2391	movcc	r3, #64
2392	movcs	r3, #128
2393	str	r3, [sp, #8]
2394	ldr	r3, [sp, #4]
2395	lsrs	r3, r3, #1
2396	str	r3, [sp, #12]
2397	ldr	r3, [sp, #60]
2398.L352:
2399	ldr	r2, [sp, #12]
2400	cmp	r0, r2
2401	bcs	.L356
2402	ldr	r2, [sp, #60]
2403	bic	r10, r1, #3
2404	cbz	r2, .L353
2405	ldrh	ip, [r3]
2406	adds	r3, r3, #4
2407	ldrh	r2, [r3, #-2]
2408	orr	ip, ip, r2, lsl #16
2409	str	ip, [lr, r10]
2410.L354:
2411	ldr	r2, [sp, #8]
2412	adds	r0, r0, #1
2413	add	r1, r1, r2
2414	b	.L352
2415.L353:
2416	mov	r2, #-1
2417	str	r2, [lr, r10]
2418	b	.L354
2419.L349:
2420	ldr	r3, .L363+8
2421	ldr	r0, [r3]
2422	b	.L350
2423.L364:
2424	.align	2
2425.L363:
2426	.word	.LANCHOR6
2427	.word	.LANCHOR34
2428	.word	.LANCHOR35
2429	.word	.LANCHOR32
2430	.size	NandcXferStart, .-NandcXferStart
2431	.section	.text.NandcXferComp,"ax",%progbits
2432	.align	1
2433	.global	NandcXferComp
2434	.syntax unified
2435	.thumb
2436	.thumb_func
2437	.fpu softvfp
2438	.type	NandcXferComp, %function
2439NandcXferComp:
2440	@ args = 0, pretend = 0, frame = 8
2441	@ frame_needed = 0, uses_anonymous_args = 0
2442	ldr	r3, .L393
2443	push	{r0, r1, r4, lr}
2444	ldr	r1, [r3, r0, lsl #3]
2445	ldr	r3, .L393+4
2446	ldr	r0, [r3]
2447	cmp	r0, #3
2448	bls	.L386
2449	ldr	r3, [r1, #16]
2450	lsls	r2, r3, #29
2451	bpl	.L386
2452	ldr	r3, [r1, #16]
2453	tst	r3, #2
2454	ldr	r3, [r1, #8]
2455	str	r3, [sp]
2456	beq	.L373
2457.L369:
2458	ldr	r2, [r1, #28]
2459	ldr	r3, [sp]
2460	ubfx	r2, r2, #16, #5
2461	ubfx	r3, r3, #22, #6
2462	cmp	r2, r3
2463	bge	.L370
2464	cmp	r0, #5
2465	bls	.L369
2466	ldr	r3, [r1]
2467	str	r3, [sp, #4]
2468	ldr	r3, [sp, #4]
2469	lsls	r3, r3, #18
2470	bpl	.L369
2471	ldr	r3, [sp, #4]
2472	lsls	r4, r3, #14
2473	bpl	.L369
2474.L370:
2475	ldr	r3, .L393+8
2476	movs	r2, #0
2477	str	r2, [r3, #24]
2478.L365:
2479	add	sp, sp, #8
2480	@ sp needed
2481	pop	{r4, pc}
2482.L374:
2483	ldr	r3, [r1, #8]
2484	str	r3, [sp]
2485.L373:
2486	ldr	r3, [sp]
2487	lsls	r2, r3, #11
2488	bpl	.L374
2489	ldr	r4, .L393+12
2490	ldr	r2, [r4]
2491	cbz	r2, .L375
2492	mov	r0, r1
2493	bl	NandcSendDumpDataStart
2494.L375:
2495	ldr	r3, [r4]
2496	cmp	r3, #0
2497	beq	.L370
2498	mov	r0, r1
2499	bl	NandcSendDumpDataDone
2500	b	.L370
2501.L386:
2502	ldr	r3, [r1, #8]
2503	str	r3, [sp]
2504	ldr	r3, [sp]
2505	lsls	r3, r3, #11
2506	bpl	.L386
2507	b	.L365
2508.L394:
2509	.align	2
2510.L393:
2511	.word	.LANCHOR6
2512	.word	.LANCHOR34
2513	.word	.LANCHOR35
2514	.word	.LANCHOR36
2515	.size	NandcXferComp, .-NandcXferComp
2516	.section	.text.Ftl_log2,"ax",%progbits
2517	.align	1
2518	.global	Ftl_log2
2519	.syntax unified
2520	.thumb
2521	.thumb_func
2522	.fpu softvfp
2523	.type	Ftl_log2, %function
2524Ftl_log2:
2525	@ args = 0, pretend = 0, frame = 0
2526	@ frame_needed = 0, uses_anonymous_args = 0
2527	@ link register save eliminated.
2528	movs	r1, #0
2529	movs	r2, #1
2530.L396:
2531	cmp	r2, r0
2532	uxth	r3, r1
2533	add	r1, r1, #1
2534	bls	.L397
2535	subs	r0, r3, #1
2536	uxth	r0, r0
2537	bx	lr
2538.L397:
2539	lsls	r2, r2, #1
2540	b	.L396
2541	.size	Ftl_log2, .-Ftl_log2
2542	.section	.text.FtlPrintInfo,"ax",%progbits
2543	.align	1
2544	.global	FtlPrintInfo
2545	.syntax unified
2546	.thumb
2547	.thumb_func
2548	.fpu softvfp
2549	.type	FtlPrintInfo, %function
2550FtlPrintInfo:
2551	@ args = 0, pretend = 0, frame = 0
2552	@ frame_needed = 0, uses_anonymous_args = 0
2553	@ link register save eliminated.
2554	bx	lr
2555	.size	FtlPrintInfo, .-FtlPrintInfo
2556	.section	.text.FtlSysBlkNumInit,"ax",%progbits
2557	.align	1
2558	.global	FtlSysBlkNumInit
2559	.syntax unified
2560	.thumb
2561	.thumb_func
2562	.fpu softvfp
2563	.type	FtlSysBlkNumInit, %function
2564FtlSysBlkNumInit:
2565	@ args = 0, pretend = 0, frame = 0
2566	@ frame_needed = 0, uses_anonymous_args = 0
2567	@ link register save eliminated.
2568	ldr	r3, .L400
2569	cmp	r0, #24
2570	it	cc
2571	movcc	r0, #24
2572	ldr	r2, .L400+4
2573	str	r0, [r3]
2574	ldr	r3, .L400+8
2575	ldrh	r3, [r3]
2576	muls	r3, r0, r3
2577	str	r3, [r2]
2578	ldr	r2, .L400+12
2579	ldrh	r2, [r2]
2580	subs	r0, r2, r0
2581	ldr	r2, .L400+16
2582	strh	r0, [r2]	@ movhi
2583	movs	r0, #0
2584	ldr	r2, .L400+20
2585	ldr	r2, [r2]
2586	subs	r3, r2, r3
2587	ldr	r2, .L400+24
2588	str	r3, [r2]
2589	bx	lr
2590.L401:
2591	.align	2
2592.L400:
2593	.word	.LANCHOR37
2594	.word	.LANCHOR39
2595	.word	.LANCHOR38
2596	.word	.LANCHOR41
2597	.word	.LANCHOR40
2598	.word	.LANCHOR43
2599	.word	.LANCHOR42
2600	.size	FtlSysBlkNumInit, .-FtlSysBlkNumInit
2601	.global	__aeabi_idiv
2602	.section	.text.FtlConstantsInit,"ax",%progbits
2603	.align	1
2604	.global	FtlConstantsInit
2605	.syntax unified
2606	.thumb
2607	.thumb_func
2608	.fpu softvfp
2609	.type	FtlConstantsInit, %function
2610FtlConstantsInit:
2611	@ args = 0, pretend = 0, frame = 24
2612	@ frame_needed = 0, uses_anonymous_args = 0
2613	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2614	mov	r10, r0
2615	ldrh	r7, [r0, #8]
2616	sub	sp, sp, #24
2617	ldr	r3, .L429
2618	ldr	r1, .L429+4
2619	ldrh	r6, [r10, #14]
2620	ldr	r2, .L429+8
2621	strh	r7, [r3]	@ movhi
2622	ldrh	r3, [r0, #10]
2623	ldrh	r0, [r0, #12]
2624	strh	r6, [r1]	@ movhi
2625	str	r1, [sp, #20]
2626	ldr	r1, .L429+12
2627	ldr	r4, .L429+16
2628	strh	r0, [r2]	@ movhi
2629	movs	r2, #0
2630	strh	r3, [r4]	@ movhi
2631	str	r4, [sp, #8]
2632.L403:
2633	strb	r2, [r2, r1]
2634	adds	r2, r2, #1
2635	cmp	r2, #32
2636	bne	.L403
2637	ldrh	r1, [r10, #14]
2638	ldrh	r2, [r10, #20]
2639	cmp	r2, r1, lsr #8
2640	bcs	.L404
2641	uxtb	r8, r0
2642	lsl	r2, r8, #1
2643	uxtb	r2, r2
2644	str	r2, [sp, #4]
2645	subs	r2, r3, #1
2646	muls	r2, r0, r2
2647	str	r2, [sp, #12]
2648	movs	r2, #0
2649.L405:
2650	cmp	r2, r0
2651	bcs	.L407
2652	ldr	r4, [sp, #12]
2653	sub	fp, r2, r0
2654	uxtb	r1, r2
2655	adds	r5, r2, r4
2656	ldr	r4, .L429+12
2657	add	r4, r4, r5
2658	movs	r5, #0
2659	mov	lr, r4
2660	ldr	r4, .L429+12
2661	mov	ip, r5
2662	add	fp, fp, r4
2663	b	.L408
2664.L406:
2665	add	r4, r8, r1
2666	strb	r1, [fp, r5]
2667	str	r4, [sp, #16]
2668	add	ip, ip, #1
2669	ldrb	r4, [sp, #16]	@ zero_extendqisi2
2670	strb	r4, [lr, r5]
2671	ldr	r4, [sp, #4]
2672	add	r1, r1, r4
2673	uxtb	r1, r1
2674.L408:
2675	cmp	ip, r3
2676	add	r5, r5, r0
2677	bcc	.L406
2678	adds	r2, r2, #1
2679	b	.L405
2680.L407:
2681	ldr	r2, [sp, #8]
2682	lsls	r3, r3, #1
2683	lsrs	r6, r6, #1
2684	strh	r3, [r2]	@ movhi
2685	ldr	r3, .L429+4
2686	strh	r6, [r3]	@ movhi
2687.L404:
2688	ldr	r3, .L429+20
2689	movs	r2, #5
2690	cmp	r7, #1
2691	mov	r1, #0
2692	strh	r2, [r3]	@ movhi
2693	ldr	r2, .L429+24
2694	it	eq
2695	strheq	r7, [r3]	@ movhi
2696	ldr	r3, .L429+28
2697	strh	r1, [r2]	@ movhi
2698	mov	r1, #4352
2699	strh	r1, [r3]	@ movhi
2700	ldr	r1, .L429+32
2701	ldrb	r1, [r1]	@ zero_extendqisi2
2702	str	r1, [sp, #4]
2703	cbz	r1, .L410
2704	mov	r1, #384
2705	strh	r1, [r3]	@ movhi
2706.L410:
2707	ldr	r3, [sp, #8]
2708	str	r2, [sp, #16]
2709	ldr	fp, .L429+120
2710	ldrh	r5, [r3]
2711	ldr	r3, .L429+36
2712	ldr	r8, .L429+124
2713	smulbb	r5, r5, r0
2714	uxth	r5, r5
2715	strh	r5, [r3]	@ movhi
2716	ldr	r3, [sp, #20]
2717	ldrh	r4, [r3]
2718	ldr	r3, .L429+40
2719	smulbb	r0, r0, r4
2720	uxth	r0, r0
2721	strh	r0, [r3]	@ movhi
2722	bl	Ftl_log2
2723	ldr	r3, .L429+44
2724	ldrh	r6, [r10, #16]
2725	ldrh	r1, [r10, #18]
2726	strh	r0, [r3]	@ movhi
2727	ldr	r3, .L429+48
2728	smulbb	r0, r5, r6
2729	strh	r6, [fp]	@ movhi
2730	str	r1, [sp, #12]
2731	strh	r1, [r3]	@ movhi
2732	ldr	r3, .L429+52
2733	strh	r0, [r3]	@ movhi
2734	ldrh	r3, [r10, #20]
2735	mov	r0, r3
2736	strh	r3, [r8]	@ movhi
2737	str	r3, [sp, #8]
2738	bl	Ftl_log2
2739	ldr	r3, [sp, #8]
2740	mov	r7, r0
2741	ldr	ip, .L429+128
2742	cmp	r4, #1024
2743	ldr	lr, .L429+132
2744	ldr	r2, [sp, #16]
2745	strh	r0, [ip]	@ movhi
2746	lsl	r0, r3, #9
2747	ldr	r1, [sp, #12]
2748	uxth	r0, r0
2749	strh	r0, [lr]	@ movhi
2750	lsr	r0, r0, #8
2751	ldr	lr, .L429+136
2752	mul	r1, r3, r1
2753	strh	r0, [lr]	@ movhi
2754	ldrh	lr, [r10, #26]
2755	mov	r10, ip
2756	ldr	r0, .L429+56
2757	strh	lr, [r0]	@ movhi
2758	mul	lr, r4, r5
2759	ldr	r0, .L429+60
2760	str	lr, [r0]
2761	itt	hi
2762	uxtbhi	r0, r4
2763	strhhi	r0, [r2]	@ movhi
2764	ldrh	r2, [r2]
2765	subs	r2, r4, r2
2766	muls	r2, r5, r2
2767	muls	r2, r3, r2
2768	muls	r6, r2, r6
2769	ldr	r2, .L429+64
2770	asrs	r6, r6, #11
2771	str	r6, [r2]
2772	ldr	r6, .L429+28
2773	ldrh	r0, [r6]
2774	lsls	r0, r0, #3
2775	bl	__aeabi_idiv
2776	uxth	r0, r0
2777	mov	r3, r6
2778	ldr	r6, .L429+68
2779	cmp	r0, #4
2780	itt	ls
2781	movls	r2, #4
2782	strhls	r2, [r6]	@ movhi
2783	ldr	r2, [sp, #4]
2784	it	hi
2785	strhhi	r0, [r6]	@ movhi
2786	cbz	r2, .L414
2787	mov	r2, #640
2788	strh	r2, [r3]	@ movhi
2789.L414:
2790	ldrh	r3, [r3]
2791	lsls	r4, r4, #6
2792	ldr	r2, .L429+72
2793	mov	r1, r5
2794	ldrh	r0, [r6]
2795	asrs	r3, r3, r7
2796	adds	r7, r7, #9
2797	asrs	r4, r4, r7
2798	ldr	r7, .L429+76
2799	adds	r3, r3, #2
2800	strh	r3, [r2]	@ movhi
2801	ldr	r3, .L429+80
2802	strh	r4, [r3]	@ movhi
2803	uxth	r4, r4
2804	mul	r3, r4, r5
2805	adds	r4, r4, #8
2806	str	r3, [r7]
2807	bl	__aeabi_uidiv
2808	uxtah	r0, r4, r0
2809	ldr	r4, .L429+84
2810	cmp	r5, #1
2811	ldr	r5, .L429+88
2812	it	eq
2813	addeq	r0, r0, #4
2814	str	r0, [r4]
2815	ldrh	r0, [r4]
2816	bl	FtlSysBlkNumInit
2817	ldr	r2, [r4]
2818	movs	r0, #24
2819	ldr	r3, .L429+92
2820	ldrb	r5, [r5]	@ zero_extendqisi2
2821	str	r2, [r3]
2822	ldr	r3, .L429+96
2823	ldr	r2, [r3]
2824	ldrh	r3, [fp]
2825	lsls	r2, r2, #2
2826	muls	r3, r2, r3
2827	ldrh	r2, [r10]
2828	adds	r2, r2, #9
2829	lsrs	r3, r3, r2
2830	ldr	r2, .L429+100
2831	adds	r3, r3, #2
2832	uxth	r3, r3
2833	strh	r3, [r2]	@ movhi
2834	ldr	r2, .L429+104
2835	strh	r0, [r2]	@ movhi
2836	movs	r0, #0
2837	ldr	r2, .L429+108
2838	str	r0, [r2]
2839	ldrh	r0, [r6]
2840	adds	r2, r0, #3
2841	strh	r2, [r6]	@ movhi
2842	ldr	r2, [r7]
2843	adds	r4, r2, #3
2844	str	r4, [r7]
2845	cbz	r5, .L417
2846	adds	r2, r2, #5
2847	adds	r0, r0, #4
2848	strh	r0, [r6]	@ movhi
2849.L428:
2850	str	r2, [r7]
2851.L418:
2852	ldr	r1, .L429+112
2853	movs	r2, #0
2854	strh	r2, [r1]	@ movhi
2855	ldr	r2, .L429+116
2856	ldrh	r0, [r2]
2857	lsrs	r2, r0, #3
2858	add	r2, r2, r0, lsl #1
2859	movs	r0, #0
2860	adds	r2, r2, #52
2861	add	r3, r2, r3, lsl #2
2862	ldrh	r2, [r8]
2863	cmp	r3, r2, lsl #9
2864	itt	cc
2865	movcc	r3, #1
2866	strhcc	r3, [r1]	@ movhi
2867	add	sp, sp, #24
2868	@ sp needed
2869	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2870.L417:
2871	cmp	r4, #7
2872	bhi	.L418
2873	movs	r2, #8
2874	b	.L428
2875.L430:
2876	.align	2
2877.L429:
2878	.word	.LANCHOR44
2879	.word	.LANCHOR41
2880	.word	.LANCHOR46
2881	.word	.LANCHOR47
2882	.word	.LANCHOR45
2883	.word	.LANCHOR48
2884	.word	.LANCHOR49
2885	.word	.LANCHOR50
2886	.word	.LANCHOR1
2887	.word	.LANCHOR38
2888	.word	.LANCHOR51
2889	.word	.LANCHOR52
2890	.word	.LANCHOR54
2891	.word	.LANCHOR55
2892	.word	.LANCHOR60
2893	.word	.LANCHOR43
2894	.word	.LANCHOR61
2895	.word	.LANCHOR62
2896	.word	.LANCHOR63
2897	.word	.LANCHOR65
2898	.word	.LANCHOR64
2899	.word	.LANCHOR37
2900	.word	.LANCHOR8
2901	.word	.LANCHOR66
2902	.word	.LANCHOR42
2903	.word	.LANCHOR67
2904	.word	.LANCHOR68
2905	.word	.LANCHOR69
2906	.word	.LANCHOR70
2907	.word	.LANCHOR40
2908	.word	.LANCHOR53
2909	.word	.LANCHOR56
2910	.word	.LANCHOR57
2911	.word	.LANCHOR58
2912	.word	.LANCHOR59
2913	.size	FtlConstantsInit, .-FtlConstantsInit
2914	.section	.text.IsBlkInVendorPart,"ax",%progbits
2915	.align	1
2916	.global	IsBlkInVendorPart
2917	.syntax unified
2918	.thumb
2919	.thumb_func
2920	.fpu softvfp
2921	.type	IsBlkInVendorPart, %function
2922IsBlkInVendorPart:
2923	@ args = 0, pretend = 0, frame = 0
2924	@ frame_needed = 0, uses_anonymous_args = 0
2925	@ link register save eliminated.
2926	ldr	r3, .L438
2927	ldrh	r3, [r3]
2928	cbz	r3, .L437
2929	ldr	r3, .L438+4
2930	ldr	r2, .L438+8
2931	ldr	r3, [r3]
2932	ldrh	r2, [r2]
2933	add	r2, r3, r2, lsl #1
2934.L433:
2935	cmp	r3, r2
2936	bne	.L434
2937.L437:
2938	movs	r0, #0
2939	bx	lr
2940.L434:
2941	ldrh	r1, [r3], #2
2942	cmp	r0, r1
2943	bne	.L433
2944	movs	r0, #1
2945	bx	lr
2946.L439:
2947	.align	2
2948.L438:
2949	.word	.LANCHOR71
2950	.word	.LANCHOR72
2951	.word	.LANCHOR62
2952	.size	IsBlkInVendorPart, .-IsBlkInVendorPart
2953	.section	.text.FtlGetCap,"ax",%progbits
2954	.align	1
2955	.global	FtlGetCap
2956	.syntax unified
2957	.thumb
2958	.thumb_func
2959	.fpu softvfp
2960	.type	FtlGetCap, %function
2961FtlGetCap:
2962	@ args = 0, pretend = 0, frame = 0
2963	@ frame_needed = 0, uses_anonymous_args = 0
2964	@ link register save eliminated.
2965	ldr	r3, .L441
2966	ldr	r0, [r3]
2967	bx	lr
2968.L442:
2969	.align	2
2970.L441:
2971	.word	.LANCHOR69
2972	.size	FtlGetCap, .-FtlGetCap
2973	.section	.text.FtlGetCapacity,"ax",%progbits
2974	.align	1
2975	.global	FtlGetCapacity
2976	.syntax unified
2977	.thumb
2978	.thumb_func
2979	.fpu softvfp
2980	.type	FtlGetCapacity, %function
2981FtlGetCapacity:
2982	@ args = 0, pretend = 0, frame = 0
2983	@ frame_needed = 0, uses_anonymous_args = 0
2984	@ link register save eliminated.
2985	ldr	r3, .L444
2986	ldr	r0, [r3]
2987	bx	lr
2988.L445:
2989	.align	2
2990.L444:
2991	.word	.LANCHOR69
2992	.size	FtlGetCapacity, .-FtlGetCapacity
2993	.section	.text.ftl_get_density,"ax",%progbits
2994	.align	1
2995	.global	ftl_get_density
2996	.syntax unified
2997	.thumb
2998	.thumb_func
2999	.fpu softvfp
3000	.type	ftl_get_density, %function
3001ftl_get_density:
3002	@ args = 0, pretend = 0, frame = 0
3003	@ frame_needed = 0, uses_anonymous_args = 0
3004	@ link register save eliminated.
3005	ldr	r3, .L447
3006	ldr	r0, [r3]
3007	bx	lr
3008.L448:
3009	.align	2
3010.L447:
3011	.word	.LANCHOR69
3012	.size	ftl_get_density, .-ftl_get_density
3013	.section	.text.FtlGetLpn,"ax",%progbits
3014	.align	1
3015	.global	FtlGetLpn
3016	.syntax unified
3017	.thumb
3018	.thumb_func
3019	.fpu softvfp
3020	.type	FtlGetLpn, %function
3021FtlGetLpn:
3022	@ args = 0, pretend = 0, frame = 0
3023	@ frame_needed = 0, uses_anonymous_args = 0
3024	@ link register save eliminated.
3025	ldr	r3, .L450
3026	ldr	r0, [r3]
3027	bx	lr
3028.L451:
3029	.align	2
3030.L450:
3031	.word	.LANCHOR73
3032	.size	FtlGetLpn, .-FtlGetLpn
3033	.section	.text.FtlGetCurEraseBlock,"ax",%progbits
3034	.align	1
3035	.global	FtlGetCurEraseBlock
3036	.syntax unified
3037	.thumb
3038	.thumb_func
3039	.fpu softvfp
3040	.type	FtlGetCurEraseBlock, %function
3041FtlGetCurEraseBlock:
3042	@ args = 0, pretend = 0, frame = 0
3043	@ frame_needed = 0, uses_anonymous_args = 0
3044	@ link register save eliminated.
3045	ldr	r2, .L453
3046	ldr	r3, .L453+4
3047	ldr	r0, [r2]
3048	ldrh	r3, [r3]
3049	muls	r0, r3, r0
3050	bx	lr
3051.L454:
3052	.align	2
3053.L453:
3054	.word	.LANCHOR74
3055	.word	.LANCHOR38
3056	.size	FtlGetCurEraseBlock, .-FtlGetCurEraseBlock
3057	.section	.text.FtlGetAllBlockNum,"ax",%progbits
3058	.align	1
3059	.global	FtlGetAllBlockNum
3060	.syntax unified
3061	.thumb
3062	.thumb_func
3063	.fpu softvfp
3064	.type	FtlGetAllBlockNum, %function
3065FtlGetAllBlockNum:
3066	@ args = 0, pretend = 0, frame = 0
3067	@ frame_needed = 0, uses_anonymous_args = 0
3068	@ link register save eliminated.
3069	ldr	r2, .L456
3070	ldr	r3, .L456+4
3071	ldrh	r0, [r2]
3072	ldrh	r3, [r3]
3073	muls	r0, r3, r0
3074	bx	lr
3075.L457:
3076	.align	2
3077.L456:
3078	.word	.LANCHOR38
3079	.word	.LANCHOR41
3080	.size	FtlGetAllBlockNum, .-FtlGetAllBlockNum
3081	.section	.text.FtlBbmMapBadBlock,"ax",%progbits
3082	.align	1
3083	.global	FtlBbmMapBadBlock
3084	.syntax unified
3085	.thumb
3086	.thumb_func
3087	.fpu softvfp
3088	.type	FtlBbmMapBadBlock, %function
3089FtlBbmMapBadBlock:
3090	@ args = 0, pretend = 0, frame = 0
3091	@ frame_needed = 0, uses_anonymous_args = 0
3092	ldr	r3, .L459
3093	push	{r0, r1, r2, r4, r5, r6, r7, lr}
3094	mov	r5, r0
3095	ldrh	r4, [r3]
3096	mov	r1, r4
3097	bl	__aeabi_uidiv
3098	mov	r1, r4
3099	ldr	r4, .L459+4
3100	uxth	r6, r0
3101	mov	r0, r5
3102	bl	__aeabi_uidivmod
3103	add	r2, r4, r6, lsl #2
3104	uxth	r3, r1
3105	ldr	r2, [r2, #28]
3106	lsrs	r1, r3, #5
3107	and	r7, r3, #31
3108	movs	r0, #1
3109	lsls	r0, r0, r7
3110	ldr	r7, [r2, r1, lsl #2]
3111	orrs	r0, r0, r7
3112	str	r0, [r2, r1, lsl #2]
3113	mov	r2, r6
3114	str	r0, [sp]
3115	mov	r1, r5
3116	ldr	r0, .L459+8
3117	bl	printf
3118	ldrh	r3, [r4, #6]
3119	movs	r0, #0
3120	adds	r3, r3, #1
3121	strh	r3, [r4, #6]	@ movhi
3122	add	sp, sp, #12
3123	@ sp needed
3124	pop	{r4, r5, r6, r7, pc}
3125.L460:
3126	.align	2
3127.L459:
3128	.word	.LANCHOR51
3129	.word	.LANCHOR75
3130	.word	.LC2
3131	.size	FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
3132	.section	.text.FtlBbmIsBadBlock,"ax",%progbits
3133	.align	1
3134	.global	FtlBbmIsBadBlock
3135	.syntax unified
3136	.thumb
3137	.thumb_func
3138	.fpu softvfp
3139	.type	FtlBbmIsBadBlock, %function
3140FtlBbmIsBadBlock:
3141	@ args = 0, pretend = 0, frame = 0
3142	@ frame_needed = 0, uses_anonymous_args = 0
3143	ldr	r3, .L462
3144	push	{r4, r5, r6, lr}
3145	mov	r6, r0
3146	ldrh	r5, [r3]
3147	mov	r1, r5
3148	bl	__aeabi_uidivmod
3149	mov	r0, r6
3150	uxth	r4, r1
3151	mov	r1, r5
3152	bl	__aeabi_uidiv
3153	ldr	r3, .L462+4
3154	uxth	r0, r0
3155	lsrs	r2, r4, #5
3156	and	r4, r4, #31
3157	add	r0, r3, r0, lsl #2
3158	ldr	r3, [r0, #28]
3159	ldr	r0, [r3, r2, lsl #2]
3160	lsrs	r0, r0, r4
3161	and	r0, r0, #1
3162	pop	{r4, r5, r6, pc}
3163.L463:
3164	.align	2
3165.L462:
3166	.word	.LANCHOR51
3167	.word	.LANCHOR75
3168	.size	FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
3169	.section	.text.FtlBbtInfoPrint,"ax",%progbits
3170	.align	1
3171	.global	FtlBbtInfoPrint
3172	.syntax unified
3173	.thumb
3174	.thumb_func
3175	.fpu softvfp
3176	.type	FtlBbtInfoPrint, %function
3177FtlBbtInfoPrint:
3178	@ args = 0, pretend = 0, frame = 0
3179	@ frame_needed = 0, uses_anonymous_args = 0
3180	@ link register save eliminated.
3181	bx	lr
3182	.size	FtlBbtInfoPrint, .-FtlBbtInfoPrint
3183	.section	.text.V2P_block,"ax",%progbits
3184	.align	1
3185	.global	V2P_block
3186	.syntax unified
3187	.thumb
3188	.thumb_func
3189	.fpu softvfp
3190	.type	V2P_block, %function
3191V2P_block:
3192	@ args = 0, pretend = 0, frame = 0
3193	@ frame_needed = 0, uses_anonymous_args = 0
3194	push	{r3, r4, r5, r6, r7, lr}
3195	mov	r5, r1
3196	ldr	r3, .L466
3197	mov	r7, r0
3198	ldrh	r6, [r3]
3199	mov	r1, r6
3200	bl	__aeabi_uidiv
3201	ldr	r3, .L466+4
3202	smulbb	r5, r6, r5
3203	mov	r1, r6
3204	ldrh	r4, [r3]
3205	smulbb	r4, r4, r0
3206	mov	r0, r7
3207	bl	__aeabi_uidivmod
3208	adds	r0, r5, r1
3209	add	r0, r0, r4
3210	uxth	r0, r0
3211	pop	{r3, r4, r5, r6, r7, pc}
3212.L467:
3213	.align	2
3214.L466:
3215	.word	.LANCHOR46
3216	.word	.LANCHOR51
3217	.size	V2P_block, .-V2P_block
3218	.section	.text.P2V_plane,"ax",%progbits
3219	.align	1
3220	.global	P2V_plane
3221	.syntax unified
3222	.thumb
3223	.thumb_func
3224	.fpu softvfp
3225	.type	P2V_plane, %function
3226P2V_plane:
3227	@ args = 0, pretend = 0, frame = 0
3228	@ frame_needed = 0, uses_anonymous_args = 0
3229	ldr	r3, .L469
3230	push	{r4, r5, r6, lr}
3231	mov	r6, r0
3232	ldrh	r5, [r3]
3233	ldr	r3, .L469+4
3234	ldrh	r1, [r3]
3235	bl	__aeabi_uidiv
3236	smulbb	r4, r0, r5
3237	mov	r1, r5
3238	mov	r0, r6
3239	bl	__aeabi_uidivmod
3240	add	r1, r1, r4
3241	uxth	r0, r1
3242	pop	{r4, r5, r6, pc}
3243.L470:
3244	.align	2
3245.L469:
3246	.word	.LANCHOR46
3247	.word	.LANCHOR51
3248	.size	P2V_plane, .-P2V_plane
3249	.section	.text.P2V_block_in_plane,"ax",%progbits
3250	.align	1
3251	.global	P2V_block_in_plane
3252	.syntax unified
3253	.thumb
3254	.thumb_func
3255	.fpu softvfp
3256	.type	P2V_block_in_plane, %function
3257P2V_block_in_plane:
3258	@ args = 0, pretend = 0, frame = 0
3259	@ frame_needed = 0, uses_anonymous_args = 0
3260	push	{r3, lr}
3261	ldr	r3, .L472
3262	ldrh	r1, [r3]
3263	bl	__aeabi_uidivmod
3264	ldr	r3, .L472+4
3265	uxth	r0, r1
3266	ldrh	r1, [r3]
3267	bl	__aeabi_uidiv
3268	uxth	r0, r0
3269	pop	{r3, pc}
3270.L473:
3271	.align	2
3272.L472:
3273	.word	.LANCHOR51
3274	.word	.LANCHOR46
3275	.size	P2V_block_in_plane, .-P2V_block_in_plane
3276	.section	.text.ftl_cmp_data_ver,"ax",%progbits
3277	.align	1
3278	.global	ftl_cmp_data_ver
3279	.syntax unified
3280	.thumb
3281	.thumb_func
3282	.fpu softvfp
3283	.type	ftl_cmp_data_ver, %function
3284ftl_cmp_data_ver:
3285	@ args = 0, pretend = 0, frame = 0
3286	@ frame_needed = 0, uses_anonymous_args = 0
3287	@ link register save eliminated.
3288	cmp	r0, r1
3289	bls	.L475
3290	subs	r0, r0, r1
3291	cmp	r0, #-2147483648
3292	ite	hi
3293	movhi	r0, #0
3294	movls	r0, #1
3295	bx	lr
3296.L475:
3297	subs	r0, r1, r0
3298	cmp	r0, #-2147483648
3299	ite	ls
3300	movls	r0, #0
3301	movhi	r0, #1
3302	bx	lr
3303	.size	ftl_cmp_data_ver, .-ftl_cmp_data_ver
3304	.section	.text.FtlFreeSysBlkQueueEmpty,"ax",%progbits
3305	.align	1
3306	.global	FtlFreeSysBlkQueueEmpty
3307	.syntax unified
3308	.thumb
3309	.thumb_func
3310	.fpu softvfp
3311	.type	FtlFreeSysBlkQueueEmpty, %function
3312FtlFreeSysBlkQueueEmpty:
3313	@ args = 0, pretend = 0, frame = 0
3314	@ frame_needed = 0, uses_anonymous_args = 0
3315	@ link register save eliminated.
3316	ldr	r3, .L478
3317	ldrh	r0, [r3, #6]
3318	clz	r0, r0
3319	lsrs	r0, r0, #5
3320	bx	lr
3321.L479:
3322	.align	2
3323.L478:
3324	.word	.LANCHOR76
3325	.size	FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
3326	.section	.text.FtlFreeSysBlkQueueFull,"ax",%progbits
3327	.align	1
3328	.global	FtlFreeSysBlkQueueFull
3329	.syntax unified
3330	.thumb
3331	.thumb_func
3332	.fpu softvfp
3333	.type	FtlFreeSysBlkQueueFull, %function
3334FtlFreeSysBlkQueueFull:
3335	@ args = 0, pretend = 0, frame = 0
3336	@ frame_needed = 0, uses_anonymous_args = 0
3337	@ link register save eliminated.
3338	ldr	r3, .L481
3339	ldrh	r0, [r3, #6]
3340	sub	r3, r0, #1024
3341	rsbs	r0, r3, #0
3342	adcs	r0, r0, r3
3343	bx	lr
3344.L482:
3345	.align	2
3346.L481:
3347	.word	.LANCHOR76
3348	.size	FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
3349	.section	.text.FtlFreeSysBlkQueueIn,"ax",%progbits
3350	.align	1
3351	.global	FtlFreeSysBlkQueueIn
3352	.syntax unified
3353	.thumb
3354	.thumb_func
3355	.fpu softvfp
3356	.type	FtlFreeSysBlkQueueIn, %function
3357FtlFreeSysBlkQueueIn:
3358	@ args = 0, pretend = 0, frame = 0
3359	@ frame_needed = 0, uses_anonymous_args = 0
3360	subs	r3, r0, #1
3361	movw	r2, #65533
3362	uxth	r3, r3
3363	push	{r4, r5, r6, lr}
3364	mov	r5, r0
3365	cmp	r3, r2
3366	bhi	.L483
3367	ldr	r4, .L492
3368	ldrh	r3, [r4, #6]
3369	cmp	r3, #1024
3370	beq	.L483
3371	cbz	r1, .L485
3372	ldr	r3, .L492+4
3373	ldr	r3, [r3]
3374	cbnz	r3, .L485
3375	bl	P2V_block_in_plane
3376	ldr	r3, .L492+8
3377	mov	r6, r0
3378	movs	r2, #1
3379	mov	r1, r2
3380	ldr	r0, [r3]
3381	lsls	r3, r5, #10
3382	str	r3, [r0, #4]
3383	bl	FlashEraseBlocks
3384	ldr	r3, .L492+12
3385	ldr	r2, [r3]
3386	ldrh	r3, [r2, r6, lsl #1]
3387	adds	r3, r3, #1
3388	strh	r3, [r2, r6, lsl #1]	@ movhi
3389	ldr	r2, .L492+16
3390	ldr	r3, [r2]
3391	adds	r3, r3, #1
3392	str	r3, [r2]
3393.L485:
3394	ldrh	r3, [r4, #6]
3395	adds	r3, r3, #1
3396	strh	r3, [r4, #6]	@ movhi
3397	ldrh	r3, [r4, #4]
3398	adds	r2, r3, #4
3399	adds	r3, r3, #1
3400	ubfx	r3, r3, #0, #10
3401	strh	r5, [r4, r2, lsl #1]	@ movhi
3402	strh	r3, [r4, #4]	@ movhi
3403.L483:
3404	pop	{r4, r5, r6, pc}
3405.L493:
3406	.align	2
3407.L492:
3408	.word	.LANCHOR76
3409	.word	.LANCHOR77
3410	.word	.LANCHOR78
3411	.word	.LANCHOR79
3412	.word	.LANCHOR80
3413	.size	FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
3414	.section	.text.FtlFreeSysBLkSort,"ax",%progbits
3415	.align	1
3416	.global	FtlFreeSysBLkSort
3417	.syntax unified
3418	.thumb
3419	.thumb_func
3420	.fpu softvfp
3421	.type	FtlFreeSysBLkSort, %function
3422FtlFreeSysBLkSort:
3423	@ args = 0, pretend = 0, frame = 0
3424	@ frame_needed = 0, uses_anonymous_args = 0
3425	ldr	r3, .L503
3426	push	{r4, r5, r6, lr}
3427	ldrh	r2, [r3, #6]
3428	cbz	r2, .L494
3429	ldr	r2, .L503+4
3430	movs	r6, #0
3431	ldrh	r1, [r3, #2]
3432	mov	r5, r6
3433	ldrh	r4, [r2, #28]
3434	ldrh	r2, [r3, #4]
3435	and	r4, r4, #31
3436.L496:
3437	uxth	r0, r6
3438	adds	r6, r6, #1
3439	cmp	r4, r0
3440	bgt	.L497
3441	cbz	r5, .L494
3442	strh	r1, [r3, #2]	@ movhi
3443	strh	r2, [r3, #4]	@ movhi
3444.L494:
3445	pop	{r4, r5, r6, pc}
3446.L497:
3447	adds	r0, r1, #4
3448	adds	r1, r1, #1
3449	ldrh	r5, [r3, r0, lsl #1]
3450	adds	r0, r2, #4
3451	ubfx	r1, r1, #0, #10
3452	strh	r5, [r3, r0, lsl #1]	@ movhi
3453	movs	r5, #1
3454	add	r2, r2, r5
3455	ubfx	r2, r2, #0, #10
3456	b	.L496
3457.L504:
3458	.align	2
3459.L503:
3460	.word	.LANCHOR76
3461	.word	.LANCHOR81
3462	.size	FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
3463	.section	.text.FtlFreeSysBlkQueueOut,"ax",%progbits
3464	.align	1
3465	.global	FtlFreeSysBlkQueueOut
3466	.syntax unified
3467	.thumb
3468	.thumb_func
3469	.fpu softvfp
3470	.type	FtlFreeSysBlkQueueOut, %function
3471FtlFreeSysBlkQueueOut:
3472	@ args = 0, pretend = 0, frame = 0
3473	@ frame_needed = 0, uses_anonymous_args = 0
3474	push	{r3, r4, r5, r6, r7, r8, r10, lr}
3475	ldr	r4, .L515
3476	mov	r6, r4
3477.L506:
3478	ldrh	r1, [r4, #6]
3479	cmp	r1, #0
3480	beq	.L507
3481	ldrh	r3, [r4, #2]
3482	subs	r1, r1, #1
3483	strh	r1, [r4, #6]	@ movhi
3484	adds	r2, r3, #4
3485	adds	r3, r3, #1
3486	ubfx	r3, r3, #0, #10
3487	ldrh	r5, [r4, r2, lsl #1]
3488	strh	r3, [r4, #2]	@ movhi
3489	ldr	r3, .L515+4
3490	ldr	r10, [r3]
3491	cmp	r10, #0
3492	bne	.L508
3493	ldr	r8, .L515+28
3494	mov	r0, r5
3495	bl	P2V_block_in_plane
3496	mov	r7, r0
3497	lsls	r3, r5, #10
3498	ldr	r0, [r8]
3499	str	r3, [r0, #4]
3500	ldr	r3, .L515+8
3501	ldrb	r3, [r3]	@ zero_extendqisi2
3502	cbz	r3, .L509
3503	movs	r2, #1
3504	mov	r1, r10
3505	bl	FlashEraseBlocks
3506.L509:
3507	movs	r2, #1
3508	ldr	r0, [r8]
3509	mov	r1, r2
3510	bl	FlashEraseBlocks
3511	ldr	r3, .L515+12
3512	ldr	r2, [r3]
3513	ldrh	r3, [r2, r7, lsl #1]
3514	adds	r3, r3, #1
3515	strh	r3, [r2, r7, lsl #1]	@ movhi
3516	ldr	r2, .L515+16
3517	ldr	r3, [r2]
3518	adds	r3, r3, #1
3519	str	r3, [r2]
3520.L508:
3521	subs	r3, r5, #1
3522	movw	r2, #65533
3523	uxth	r3, r3
3524	cmp	r3, r2
3525	bls	.L511
3526	ldrh	r2, [r6, #6]
3527	mov	r1, r5
3528	ldr	r0, .L515+20
3529	bl	printf
3530	b	.L506
3531.L507:
3532	ldr	r0, .L515+24
3533	bl	printf
3534.L510:
3535	b	.L510
3536.L511:
3537	mov	r0, r5
3538	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
3539.L516:
3540	.align	2
3541.L515:
3542	.word	.LANCHOR76
3543	.word	.LANCHOR77
3544	.word	.LANCHOR8
3545	.word	.LANCHOR79
3546	.word	.LANCHOR80
3547	.word	.LC4
3548	.word	.LC3
3549	.word	.LANCHOR78
3550	.size	FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
3551	.section	.text.test_node_in_list,"ax",%progbits
3552	.align	1
3553	.global	test_node_in_list
3554	.syntax unified
3555	.thumb
3556	.thumb_func
3557	.fpu softvfp
3558	.type	test_node_in_list, %function
3559test_node_in_list:
3560	@ args = 0, pretend = 0, frame = 0
3561	@ frame_needed = 0, uses_anonymous_args = 0
3562	ldr	r3, .L522
3563	push	{r4, r5, lr}
3564	movw	r5, #65535
3565	ldr	r2, [r0]
3566	ldr	r4, [r3]
3567	subs	r3, r2, r4
3568	asrs	r0, r3, #1
3569	ldr	r3, .L522+4
3570	muls	r3, r0, r3
3571	movs	r0, #6
3572	uxth	r3, r3
3573.L519:
3574	cmp	r3, r1
3575	beq	.L520
3576	ldrh	r3, [r2]
3577	cmp	r3, r5
3578	beq	.L521
3579	mla	r2, r0, r3, r4
3580	b	.L519
3581.L520:
3582	movs	r0, #1
3583	pop	{r4, r5, pc}
3584.L521:
3585	movs	r0, #0
3586	pop	{r4, r5, pc}
3587.L523:
3588	.align	2
3589.L522:
3590	.word	.LANCHOR82
3591	.word	-1431655765
3592	.size	test_node_in_list, .-test_node_in_list
3593	.section	.text.insert_data_list,"ax",%progbits
3594	.align	1
3595	.global	insert_data_list
3596	.syntax unified
3597	.thumb
3598	.thumb_func
3599	.fpu softvfp
3600	.type	insert_data_list, %function
3601insert_data_list:
3602	@ args = 0, pretend = 0, frame = 16
3603	@ frame_needed = 0, uses_anonymous_args = 0
3604	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
3605	ldr	r3, .L540
3606	ldrh	lr, [r3]
3607	cmp	lr, r0
3608	bls	.L526
3609	ldr	r3, .L540+4
3610	movs	r5, #6
3611	ldr	r4, [r3]
3612	mul	r3, r5, r0
3613	str	r3, [sp, #4]
3614	adds	r1, r4, r3
3615	ldr	r2, [sp, #4]
3616	movw	r3, #65535
3617	strh	r3, [r1, #2]	@ movhi
3618	strh	r3, [r4, r2]	@ movhi
3619	ldr	r3, .L540+8
3620	ldr	ip, [r3]
3621	cmp	ip, #0
3622	bne	.L527
3623.L539:
3624	str	r1, [r3]
3625.L526:
3626	movs	r0, #0
3627	add	sp, sp, #16
3628	@ sp needed
3629	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3630.L527:
3631	ldr	r3, .L540+12
3632	lsls	r2, r0, #1
3633	ldr	r3, [r3]
3634	str	r3, [sp, #8]
3635	ldrh	r6, [r3, r0, lsl #1]
3636	ldrh	r3, [r1, #4]
3637	cbz	r3, .L537
3638	mul	fp, r3, r6
3639.L528:
3640	sub	r3, ip, r4
3641	asrs	r6, r3, #1
3642	ldr	r3, .L540+16
3643	muls	r3, r6, r3
3644	ldr	r6, .L540+20
3645	ldr	r8, [r6]
3646	movs	r6, #0
3647	uxth	r3, r3
3648	add	r2, r8, r2
3649	str	r2, [sp, #12]
3650	mov	r2, ip
3651.L535:
3652	adds	r6, r6, #1
3653	uxth	r6, r6
3654	cmp	lr, r6
3655	bcc	.L526
3656	cmp	r3, r0
3657	beq	.L526
3658	ldr	r7, [sp, #8]
3659	lsl	r10, r3, #1
3660	ldrh	r7, [r7, r3, lsl #1]
3661	mov	r5, r7
3662	ldrh	r7, [r2, #4]
3663	cbz	r7, .L538
3664	muls	r7, r5, r7
3665.L530:
3666	cmp	fp, r7
3667	bne	.L531
3668	ldr	r5, [sp, #12]
3669	ldrh	r10, [r8, r10]
3670	ldrh	r7, [r5]
3671	cmp	r10, r7
3672	bcc	.L533
3673.L532:
3674	ldr	r5, [sp, #4]
3675	cmp	r2, ip
3676	strh	r3, [r4, r5]	@ movhi
3677	ldrh	r3, [r2, #2]
3678	strh	r3, [r1, #2]	@ movhi
3679	bne	.L536
3680	strh	r0, [r2, #2]	@ movhi
3681	ldr	r3, .L540+8
3682	b	.L539
3683.L537:
3684	mov	fp, #-1
3685	b	.L528
3686.L538:
3687	mov	r7, #-1
3688	b	.L530
3689.L531:
3690	bcc	.L532
3691.L533:
3692	ldrh	r7, [r2]
3693	movw	r5, #65535
3694	cmp	r7, r5
3695	bne	.L534
3696	strh	r3, [r1, #2]	@ movhi
3697	strh	r0, [r2]	@ movhi
3698	ldr	r3, .L540+24
3699	b	.L539
3700.L534:
3701	movs	r3, #6
3702	mla	r2, r3, r7, r4
3703	mov	r3, r7
3704	b	.L535
3705.L536:
3706	ldrh	r1, [r2, #2]
3707	movs	r3, #6
3708	muls	r3, r1, r3
3709	strh	r0, [r4, r3]	@ movhi
3710	strh	r0, [r2, #2]	@ movhi
3711	b	.L526
3712.L541:
3713	.align	2
3714.L540:
3715	.word	.LANCHOR40
3716	.word	.LANCHOR82
3717	.word	.LANCHOR83
3718	.word	.LANCHOR84
3719	.word	-1431655765
3720	.word	.LANCHOR79
3721	.word	.LANCHOR85
3722	.size	insert_data_list, .-insert_data_list
3723	.section	.text.INSERT_DATA_LIST,"ax",%progbits
3724	.align	1
3725	.global	INSERT_DATA_LIST
3726	.syntax unified
3727	.thumb
3728	.thumb_func
3729	.fpu softvfp
3730	.type	INSERT_DATA_LIST, %function
3731INSERT_DATA_LIST:
3732	@ args = 0, pretend = 0, frame = 0
3733	@ frame_needed = 0, uses_anonymous_args = 0
3734	push	{r3, lr}
3735	bl	insert_data_list
3736	ldr	r2, .L544
3737	ldrh	r3, [r2]
3738	adds	r3, r3, #1
3739	uxth	r3, r3
3740	strh	r3, [r2]	@ movhi
3741	ldr	r2, .L544+4
3742	ldrh	r2, [r2]
3743	cmp	r2, r3
3744	bcs	.L542
3745	ldr	r1, .L544+8
3746	movs	r2, #210
3747	ldr	r0, .L544+12
3748	bl	printf
3749	ldr	r1, .L544+16
3750	ldr	r0, .L544+20
3751	pop	{r3, lr}
3752	b	printf
3753.L542:
3754	pop	{r3, pc}
3755.L545:
3756	.align	2
3757.L544:
3758	.word	.LANCHOR86
3759	.word	.LANCHOR40
3760	.word	.LANCHOR87
3761	.word	.LC5
3762	.word	.LC6
3763	.word	.LC7
3764	.size	INSERT_DATA_LIST, .-INSERT_DATA_LIST
3765	.section	.text.insert_free_list,"ax",%progbits
3766	.align	1
3767	.global	insert_free_list
3768	.syntax unified
3769	.thumb
3770	.thumb_func
3771	.fpu softvfp
3772	.type	insert_free_list, %function
3773insert_free_list:
3774	@ args = 0, pretend = 0, frame = 0
3775	@ frame_needed = 0, uses_anonymous_args = 0
3776	movw	r1, #65535
3777	push	{r4, r5, r6, r7, r8, r10, fp, lr}
3778	cmp	r0, r1
3779	beq	.L547
3780	ldr	r3, .L553
3781	mov	r10, #6
3782	mul	r7, r10, r0
3783	ldr	r4, [r3]
3784	ldr	r3, .L553+4
3785	adds	r5, r4, r7
3786	ldr	r6, [r3]
3787	mov	lr, r3
3788	strh	r1, [r5, #2]	@ movhi
3789	strh	r1, [r4, r7]	@ movhi
3790	cbnz	r6, .L548
3791	str	r5, [r3]
3792.L547:
3793	movs	r0, #0
3794	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3795.L548:
3796	ldr	r3, .L553+8
3797	subs	r2, r6, r4
3798	mov	fp, r1
3799	ldr	ip, [r3]
3800	asrs	r3, r2, #1
3801	ldr	r2, .L553+12
3802	ldrh	r8, [ip, r0, lsl #1]
3803	muls	r2, r3, r2
3804	mov	r3, r6
3805	uxth	r2, r2
3806.L551:
3807	ldrh	r1, [ip, r2, lsl #1]
3808	cmp	r1, r8
3809	bcs	.L549
3810	ldrh	r1, [r3]
3811	cmp	r1, fp
3812	bne	.L550
3813	strh	r2, [r5, #2]	@ movhi
3814	strh	r0, [r3]	@ movhi
3815	b	.L547
3816.L550:
3817	mla	r3, r10, r1, r4
3818	mov	r2, r1
3819	b	.L551
3820.L549:
3821	ldrh	r1, [r3, #2]
3822	cmp	r3, r6
3823	strh	r1, [r5, #2]	@ movhi
3824	it	ne
3825	ldrhne	r1, [r3, #2]
3826	strh	r2, [r4, r7]	@ movhi
3827	iteet	ne
3828	movne	r2, #6
3829	strheq	r0, [r3, #2]	@ movhi
3830	streq	r5, [lr]
3831	mulne	r2, r2, r1
3832	itt	ne
3833	strhne	r0, [r4, r2]	@ movhi
3834	strhne	r0, [r3, #2]	@ movhi
3835	b	.L547
3836.L554:
3837	.align	2
3838.L553:
3839	.word	.LANCHOR82
3840	.word	.LANCHOR88
3841	.word	.LANCHOR79
3842	.word	-1431655765
3843	.size	insert_free_list, .-insert_free_list
3844	.section	.text.INSERT_FREE_LIST,"ax",%progbits
3845	.align	1
3846	.global	INSERT_FREE_LIST
3847	.syntax unified
3848	.thumb
3849	.thumb_func
3850	.fpu softvfp
3851	.type	INSERT_FREE_LIST, %function
3852INSERT_FREE_LIST:
3853	@ args = 0, pretend = 0, frame = 0
3854	@ frame_needed = 0, uses_anonymous_args = 0
3855	push	{r3, lr}
3856	bl	insert_free_list
3857	ldr	r2, .L557
3858	ldrh	r3, [r2]
3859	adds	r3, r3, #1
3860	uxth	r3, r3
3861	strh	r3, [r2]	@ movhi
3862	ldr	r2, .L557+4
3863	ldrh	r2, [r2]
3864	cmp	r2, r3
3865	bcs	.L555
3866	ldr	r1, .L557+8
3867	movs	r2, #203
3868	ldr	r0, .L557+12
3869	bl	printf
3870	ldr	r1, .L557+16
3871	ldr	r0, .L557+20
3872	pop	{r3, lr}
3873	b	printf
3874.L555:
3875	pop	{r3, pc}
3876.L558:
3877	.align	2
3878.L557:
3879	.word	.LANCHOR89
3880	.word	.LANCHOR40
3881	.word	.LANCHOR90
3882	.word	.LC5
3883	.word	.LC6
3884	.word	.LC7
3885	.size	INSERT_FREE_LIST, .-INSERT_FREE_LIST
3886	.section	.text.List_remove_node,"ax",%progbits
3887	.align	1
3888	.global	List_remove_node
3889	.syntax unified
3890	.thumb
3891	.thumb_func
3892	.fpu softvfp
3893	.type	List_remove_node, %function
3894List_remove_node:
3895	@ args = 0, pretend = 0, frame = 0
3896	@ frame_needed = 0, uses_anonymous_args = 0
3897	push	{r4, r5, r6, r7, r8, lr}
3898	movs	r6, #6
3899	ldr	r5, .L565
3900	muls	r6, r1, r6
3901	movw	r3, #65535
3902	mov	r8, r0
3903	ldr	r7, [r5]
3904	adds	r4, r7, r6
3905	ldrh	r2, [r4, #2]
3906	cmp	r2, r3
3907	bne	.L560
3908	ldr	r3, [r0]
3909	cmp	r4, r3
3910	beq	.L560
3911	ldr	r1, .L565+4
3912	mov	r2, #386
3913	ldr	r0, .L565+8
3914	bl	printf
3915	ldr	r1, .L565+12
3916	ldr	r0, .L565+16
3917	bl	printf
3918.L560:
3919	ldr	r3, [r8]
3920	movw	r1, #65535
3921	cmp	r4, r3
3922	ldrh	r3, [r7, r6]
3923	bne	.L561
3924	cmp	r3, r1
3925	ittee	ne
3926	ldrne	r0, [r5]
3927	movne	r2, #6
3928	moveq	r3, #0
3929	streq	r3, [r8]
3930	ittt	ne
3931	mlane	r3, r2, r3, r0
3932	strne	r3, [r8]
3933	strhne	r1, [r3, #2]	@ movhi
3934.L563:
3935	movw	r3, #65535
3936	movs	r0, #0
3937	strh	r3, [r7, r6]	@ movhi
3938	strh	r3, [r4, #2]	@ movhi
3939	pop	{r4, r5, r6, r7, r8, pc}
3940.L561:
3941	cmp	r3, r1
3942	ldrh	r1, [r4, #2]
3943	bne	.L564
3944	cmp	r1, r3
3945	beq	.L563
3946	movs	r2, #6
3947	ldr	r0, [r5]
3948	muls	r1, r2, r1
3949	strh	r3, [r0, r1]	@ movhi
3950	b	.L563
3951.L564:
3952	ldr	r0, [r5]
3953	movs	r2, #6
3954	mla	r5, r2, r3, r0
3955	strh	r1, [r5, #2]	@ movhi
3956	ldrh	r1, [r4, #2]
3957	muls	r2, r1, r2
3958	strh	r3, [r0, r2]	@ movhi
3959	b	.L563
3960.L566:
3961	.align	2
3962.L565:
3963	.word	.LANCHOR82
3964	.word	.LANCHOR91
3965	.word	.LC5
3966	.word	.LC6
3967	.word	.LC7
3968	.size	List_remove_node, .-List_remove_node
3969	.section	.text.List_pop_index_node,"ax",%progbits
3970	.align	1
3971	.global	List_pop_index_node
3972	.syntax unified
3973	.thumb
3974	.thumb_func
3975	.fpu softvfp
3976	.type	List_pop_index_node, %function
3977List_pop_index_node:
3978	@ args = 0, pretend = 0, frame = 0
3979	@ frame_needed = 0, uses_anonymous_args = 0
3980	ldr	r3, [r0]
3981	push	{r4, r5, r6, lr}
3982	cbz	r3, .L573
3983	ldr	r2, .L574
3984	movw	r5, #65535
3985	movs	r6, #6
3986	ldr	r2, [r2]
3987.L569:
3988	cbnz	r1, .L570
3989.L572:
3990	ldr	r4, .L574+4
3991	subs	r3, r3, r2
3992	asrs	r3, r3, #1
3993	muls	r4, r3, r4
3994	uxth	r1, r4
3995	bl	List_remove_node
3996	uxth	r0, r4
3997	pop	{r4, r5, r6, pc}
3998.L570:
3999	ldrh	r4, [r3]
4000	cmp	r4, r5
4001	beq	.L572
4002	subs	r1, r1, #1
4003	mla	r3, r6, r4, r2
4004	uxth	r1, r1
4005	b	.L569
4006.L573:
4007	movw	r0, #65535
4008	pop	{r4, r5, r6, pc}
4009.L575:
4010	.align	2
4011.L574:
4012	.word	.LANCHOR82
4013	.word	-1431655765
4014	.size	List_pop_index_node, .-List_pop_index_node
4015	.section	.text.List_get_gc_head_node,"ax",%progbits
4016	.align	1
4017	.global	List_get_gc_head_node
4018	.syntax unified
4019	.thumb
4020	.thumb_func
4021	.fpu softvfp
4022	.type	List_get_gc_head_node, %function
4023List_get_gc_head_node:
4024	@ args = 0, pretend = 0, frame = 0
4025	@ frame_needed = 0, uses_anonymous_args = 0
4026	ldr	r3, .L582
4027	push	{r4, lr}
4028	ldr	r3, [r3]
4029	cbz	r3, .L581
4030	ldr	r2, .L582+4
4031	movs	r4, #6
4032	ldr	r1, [r2]
4033	movw	r2, #65535
4034.L578:
4035	cbz	r0, .L579
4036	ldrh	r3, [r3]
4037	cmp	r3, r2
4038	bne	.L580
4039.L581:
4040	movw	r0, #65535
4041	pop	{r4, pc}
4042.L580:
4043	subs	r0, r0, #1
4044	mla	r3, r4, r3, r1
4045	uxth	r0, r0
4046	b	.L578
4047.L579:
4048	ldr	r0, .L582+8
4049	subs	r3, r3, r1
4050	asrs	r3, r3, #1
4051	muls	r3, r0, r3
4052	uxth	r0, r3
4053	pop	{r4, pc}
4054.L583:
4055	.align	2
4056.L582:
4057	.word	.LANCHOR83
4058	.word	.LANCHOR82
4059	.word	-1431655765
4060	.size	List_get_gc_head_node, .-List_get_gc_head_node
4061	.section	.text.List_update_data_list,"ax",%progbits
4062	.align	1
4063	.global	List_update_data_list
4064	.syntax unified
4065	.thumb
4066	.thumb_func
4067	.fpu softvfp
4068	.type	List_update_data_list, %function
4069List_update_data_list:
4070	@ args = 0, pretend = 0, frame = 0
4071	@ frame_needed = 0, uses_anonymous_args = 0
4072	ldr	r3, .L595
4073	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4074	mov	r4, r0
4075	ldrh	r3, [r3]
4076	cmp	r3, r0
4077	beq	.L586
4078	ldr	r3, .L595+4
4079	ldrh	r3, [r3]
4080	cmp	r3, r0
4081	beq	.L586
4082	ldr	r3, .L595+8
4083	ldrh	r3, [r3]
4084	cmp	r3, r0
4085	beq	.L586
4086	ldr	r7, .L595+12
4087	movs	r6, #6
4088	ldr	r3, .L595+16
4089	muls	r6, r0, r6
4090	ldr	fp, [r7]
4091	ldr	r3, [r3]
4092	add	r10, fp, r6
4093	cmp	r10, r3
4094	beq	.L586
4095	ldr	r3, .L595+20
4096	ldrh	r5, [r10, #4]
4097	ldr	r2, [r3]
4098	mov	r8, r3
4099	ldrh	r2, [r2, r0, lsl #1]
4100	cmp	r5, #0
4101	beq	.L593
4102	muls	r5, r2, r5
4103.L588:
4104	ldrh	r3, [r10, #2]
4105	movw	r2, #65535
4106	cmp	r3, r2
4107	bne	.L589
4108	ldrh	r2, [fp, r6]
4109	cmp	r2, r3
4110	bne	.L589
4111	ldr	r1, .L595+24
4112	mov	r2, #504
4113	ldr	r0, .L595+28
4114	bl	printf
4115	ldr	r1, .L595+32
4116	ldr	r0, .L595+36
4117	bl	printf
4118.L589:
4119	ldrh	r3, [r10, #2]
4120	movw	r2, #65535
4121	cmp	r3, r2
4122	bne	.L590
4123	ldrh	r2, [fp, r6]
4124	cmp	r2, r3
4125	beq	.L586
4126.L590:
4127	movs	r2, #6
4128	muls	r2, r3, r2
4129	ldr	r3, .L595+40
4130	asrs	r1, r2, #1
4131	muls	r3, r1, r3
4132	ldr	r1, [r8]
4133	ldrh	r0, [r1, r3, lsl #1]
4134	ldr	r1, [r7]
4135	add	r2, r2, r1
4136	ldrh	r3, [r2, #4]
4137	cbz	r3, .L594
4138	muls	r3, r0, r3
4139.L591:
4140	cmp	r5, r3
4141	bcs	.L586
4142	ldr	r5, .L595+44
4143	mov	r1, r4
4144	ldr	r0, .L595+16
4145	bl	List_remove_node
4146	ldrh	r3, [r5]
4147	cbnz	r3, .L592
4148	ldr	r1, .L595+24
4149	movw	r2, #515
4150	ldr	r0, .L595+28
4151	bl	printf
4152	ldr	r1, .L595+32
4153	ldr	r0, .L595+36
4154	bl	printf
4155.L592:
4156	ldrh	r3, [r5]
4157	mov	r0, r4
4158	subs	r3, r3, #1
4159	strh	r3, [r5]	@ movhi
4160	bl	INSERT_DATA_LIST
4161.L586:
4162	movs	r0, #0
4163	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4164.L593:
4165	mov	r5, #-1
4166	b	.L588
4167.L594:
4168	mov	r3, #-1
4169	b	.L591
4170.L596:
4171	.align	2
4172.L595:
4173	.word	.LANCHOR92
4174	.word	.LANCHOR93
4175	.word	.LANCHOR94
4176	.word	.LANCHOR82
4177	.word	.LANCHOR83
4178	.word	.LANCHOR84
4179	.word	.LANCHOR95
4180	.word	.LC5
4181	.word	.LC6
4182	.word	.LC7
4183	.word	-1431655765
4184	.word	.LANCHOR86
4185	.size	List_update_data_list, .-List_update_data_list
4186	.section	.text.ftl_map_blk_alloc_new_blk,"ax",%progbits
4187	.align	1
4188	.global	ftl_map_blk_alloc_new_blk
4189	.syntax unified
4190	.thumb
4191	.thumb_func
4192	.fpu softvfp
4193	.type	ftl_map_blk_alloc_new_blk, %function
4194ftl_map_blk_alloc_new_blk:
4195	@ args = 0, pretend = 0, frame = 0
4196	@ frame_needed = 0, uses_anonymous_args = 0
4197	ldrh	r1, [r0, #10]
4198	ldr	r2, [r0, #12]
4199	push	{r3, r4, r5, r6, r7, lr}
4200	mov	r4, r0
4201	movs	r3, #0
4202.L598:
4203	uxth	r5, r3
4204	cmp	r5, r1
4205	bcs	.L601
4206	mov	r7, r2
4207	adds	r3, r3, #1
4208	ldrh	r6, [r7]
4209	adds	r2, r2, #2
4210	cmp	r6, #0
4211	bne	.L598
4212	bl	FtlFreeSysBlkQueueOut
4213	subs	r3, r0, #1
4214	movw	r2, #65533
4215	uxth	r3, r3
4216	mov	r1, r0
4217	strh	r0, [r7]	@ movhi
4218	cmp	r3, r2
4219	bls	.L599
4220	ldr	r3, .L605
4221	ldr	r0, .L605+4
4222	ldrh	r2, [r3, #6]
4223	bl	printf
4224.L600:
4225	b	.L600
4226.L599:
4227	ldr	r3, [r4, #28]
4228	strh	r6, [r4, #2]	@ movhi
4229	strh	r5, [r4]	@ movhi
4230	adds	r3, r3, #1
4231	str	r3, [r4, #28]
4232	ldrh	r3, [r4, #8]
4233	adds	r3, r3, #1
4234	strh	r3, [r4, #8]	@ movhi
4235.L601:
4236	ldrh	r3, [r4, #10]
4237	cmp	r3, r5
4238	bhi	.L603
4239	ldr	r1, .L605+8
4240	movw	r2, #629
4241	ldr	r0, .L605+12
4242	bl	printf
4243	ldr	r1, .L605+16
4244	ldr	r0, .L605+20
4245	bl	printf
4246.L603:
4247	movs	r0, #0
4248	pop	{r3, r4, r5, r6, r7, pc}
4249.L606:
4250	.align	2
4251.L605:
4252	.word	.LANCHOR76
4253	.word	.LC8
4254	.word	.LANCHOR96
4255	.word	.LC5
4256	.word	.LC6
4257	.word	.LC7
4258	.size	ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
4259	.section	.text.select_l2p_ram_region,"ax",%progbits
4260	.align	1
4261	.global	select_l2p_ram_region
4262	.syntax unified
4263	.thumb
4264	.thumb_func
4265	.fpu softvfp
4266	.type	select_l2p_ram_region, %function
4267select_l2p_ram_region:
4268	@ args = 0, pretend = 0, frame = 0
4269	@ frame_needed = 0, uses_anonymous_args = 0
4270	push	{r3, r4, r5, r6, r7, lr}
4271	movs	r1, #0
4272	ldr	r3, .L617
4273	movs	r0, #12
4274	movw	r5, #65535
4275	ldrh	r2, [r3]
4276	ldr	r3, .L617+4
4277	ldr	r3, [r3]
4278.L608:
4279	uxth	r4, r1
4280	cmp	r4, r2
4281	bcc	.L610
4282	mov	r4, r2
4283	movs	r1, #0
4284	mov	r6, #-2147483648
4285	movs	r7, #12
4286.L611:
4287	uxth	r5, r1
4288	cmp	r5, r2
4289	bcc	.L613
4290	cmp	r4, r2
4291	bcc	.L609
4292	ldr	r1, .L617+8
4293	mov	r4, r2
4294	mov	r0, #-1
4295	ldrh	r7, [r1]
4296	movs	r1, #0
4297.L614:
4298	uxth	r5, r1
4299	cmp	r5, r2
4300	bcc	.L616
4301	cmp	r4, r2
4302	bcc	.L609
4303	movw	r2, #855
4304	ldr	r1, .L617+12
4305	ldr	r0, .L617+16
4306	bl	printf
4307	ldr	r1, .L617+20
4308	ldr	r0, .L617+24
4309	bl	printf
4310	b	.L609
4311.L610:
4312	adds	r1, r1, #1
4313	mla	r6, r0, r1, r3
4314	ldrh	r6, [r6, #-12]
4315	cmp	r6, r5
4316	bne	.L608
4317.L609:
4318	mov	r0, r4
4319	pop	{r3, r4, r5, r6, r7, pc}
4320.L613:
4321	mla	r0, r7, r1, r3
4322	ldr	r0, [r0, #4]
4323	cmp	r0, #0
4324	blt	.L612
4325	cmp	r6, r0
4326	itt	hi
4327	movhi	r6, r0
4328	movhi	r4, r5
4329.L612:
4330	adds	r1, r1, #1
4331	b	.L611
4332.L616:
4333	ldr	r6, [r3, #4]
4334	cmp	r0, r6
4335	bls	.L615
4336	ldrh	ip, [r3]
4337	cmp	ip, r7
4338	itt	ne
4339	movne	r0, r6
4340	movne	r4, r5
4341.L615:
4342	adds	r1, r1, #1
4343	adds	r3, r3, #12
4344	b	.L614
4345.L618:
4346	.align	2
4347.L617:
4348	.word	.LANCHOR68
4349	.word	.LANCHOR97
4350	.word	.LANCHOR98
4351	.word	.LANCHOR99
4352	.word	.LC5
4353	.word	.LC6
4354	.word	.LC7
4355	.size	select_l2p_ram_region, .-select_l2p_ram_region
4356	.section	.text.FtlUpdateVaildLpn,"ax",%progbits
4357	.align	1
4358	.global	FtlUpdateVaildLpn
4359	.syntax unified
4360	.thumb
4361	.thumb_func
4362	.fpu softvfp
4363	.type	FtlUpdateVaildLpn, %function
4364FtlUpdateVaildLpn:
4365	@ args = 0, pretend = 0, frame = 0
4366	@ frame_needed = 0, uses_anonymous_args = 0
4367	ldr	r2, .L629
4368	push	{r4, r5, r6, lr}
4369	mov	r1, r2
4370	ldrh	r3, [r2]
4371	cmp	r3, #4
4372	bhi	.L620
4373	cbnz	r0, .L620
4374	adds	r3, r3, #1
4375	strh	r3, [r2]	@ movhi
4376	pop	{r4, r5, r6, pc}
4377.L620:
4378	movs	r3, #0
4379	ldr	r0, .L629+4
4380	strh	r3, [r1]	@ movhi
4381	movw	r6, #65535
4382	ldr	r1, .L629+8
4383	ldrh	r4, [r0]
4384	mov	r0, r3
4385	ldr	r2, .L629+12
4386	ldr	r1, [r1]
4387	str	r3, [r2]
4388	add	r4, r1, r4, lsl #1
4389.L621:
4390	cmp	r1, r4
4391	bne	.L623
4392	cbz	r3, .L619
4393	str	r0, [r2]
4394.L619:
4395	pop	{r4, r5, r6, pc}
4396.L623:
4397	ldrh	r5, [r1], #2
4398	cmp	r5, r6
4399	itt	ne
4400	addne	r0, r0, r5
4401	movne	r3, #1
4402	b	.L621
4403.L630:
4404	.align	2
4405.L629:
4406	.word	.LANCHOR100
4407	.word	.LANCHOR40
4408	.word	.LANCHOR84
4409	.word	.LANCHOR101
4410	.size	FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
4411	.section	.text.ftl_set_blk_mode,"ax",%progbits
4412	.align	1
4413	.global	ftl_set_blk_mode
4414	.syntax unified
4415	.thumb
4416	.thumb_func
4417	.fpu softvfp
4418	.type	ftl_set_blk_mode, %function
4419ftl_set_blk_mode:
4420	@ args = 0, pretend = 0, frame = 0
4421	@ frame_needed = 0, uses_anonymous_args = 0
4422	@ link register save eliminated.
4423	mov	r3, r0
4424	cbz	r1, .L632
4425	b	ftl_set_blk_mode.part.10
4426.L632:
4427	ldr	r2, .L633
4428	lsrs	r0, r0, #5
4429	and	r3, r3, #31
4430	ldr	r1, [r2]
4431	movs	r2, #1
4432	lsl	r3, r2, r3
4433	ldr	r2, [r1, r0, lsl #2]
4434	bic	r2, r2, r3
4435	str	r2, [r1, r0, lsl #2]
4436	bx	lr
4437.L634:
4438	.align	2
4439.L633:
4440	.word	.LANCHOR0
4441	.size	ftl_set_blk_mode, .-ftl_set_blk_mode
4442	.section	.text.ftl_get_blk_mode,"ax",%progbits
4443	.align	1
4444	.global	ftl_get_blk_mode
4445	.syntax unified
4446	.thumb
4447	.thumb_func
4448	.fpu softvfp
4449	.type	ftl_get_blk_mode, %function
4450ftl_get_blk_mode:
4451	@ args = 0, pretend = 0, frame = 0
4452	@ frame_needed = 0, uses_anonymous_args = 0
4453	@ link register save eliminated.
4454	ldr	r3, .L636
4455	lsrs	r2, r0, #5
4456	and	r0, r0, #31
4457	ldr	r3, [r3]
4458	ldr	r3, [r3, r2, lsl #2]
4459	lsr	r0, r3, r0
4460	and	r0, r0, #1
4461	bx	lr
4462.L637:
4463	.align	2
4464.L636:
4465	.word	.LANCHOR0
4466	.size	ftl_get_blk_mode, .-ftl_get_blk_mode
4467	.section	.text.ftl_sb_update_avl_pages,"ax",%progbits
4468	.align	1
4469	.global	ftl_sb_update_avl_pages
4470	.syntax unified
4471	.thumb
4472	.thumb_func
4473	.fpu softvfp
4474	.type	ftl_sb_update_avl_pages, %function
4475ftl_sb_update_avl_pages:
4476	@ args = 0, pretend = 0, frame = 0
4477	@ frame_needed = 0, uses_anonymous_args = 0
4478	movs	r3, #0
4479	push	{r4, r5, r6, lr}
4480	strh	r3, [r0, #4]	@ movhi
4481	movw	r6, #65535
4482	ldr	r3, .L645
4483	ldrh	r4, [r3]
4484	add	r3, r0, r2, lsl #1
4485	adds	r3, r3, #14
4486.L639:
4487	cmp	r2, r4
4488	bcc	.L641
4489	ldr	r3, .L645+4
4490	add	r5, r0, #16
4491	movw	r6, #65535
4492	ldrh	r3, [r3]
4493	subs	r3, r3, #1
4494	subs	r1, r3, r1
4495	movs	r3, #0
4496	uxth	r1, r1
4497.L642:
4498	uxth	r2, r3
4499	cmp	r4, r2
4500	bhi	.L644
4501	pop	{r4, r5, r6, pc}
4502.L641:
4503	ldrh	r5, [r3, #2]!
4504	adds	r2, r2, #1
4505	uxth	r2, r2
4506	cmp	r5, r6
4507	ittt	ne
4508	ldrhne	r5, [r0, #4]
4509	addne	r5, r5, #1
4510	strhne	r5, [r0, #4]	@ movhi
4511	b	.L639
4512.L644:
4513	ldrh	r2, [r5], #2
4514	adds	r3, r3, #1
4515	cmp	r2, r6
4516	ittt	ne
4517	ldrhne	r2, [r0, #4]
4518	addne	r2, r2, r1
4519	strhne	r2, [r0, #4]	@ movhi
4520	b	.L642
4521.L646:
4522	.align	2
4523.L645:
4524	.word	.LANCHOR38
4525	.word	.LANCHOR53
4526	.size	ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
4527	.section	.text.make_superblock,"ax",%progbits
4528	.align	1
4529	.global	make_superblock
4530	.syntax unified
4531	.thumb
4532	.thumb_func
4533	.fpu softvfp
4534	.type	make_superblock, %function
4535make_superblock:
4536	@ args = 0, pretend = 0, frame = 0
4537	@ frame_needed = 0, uses_anonymous_args = 0
4538	ldr	r3, .L660
4539	ldrh	r2, [r0]
4540	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4541	mov	r4, r0
4542	ldrh	r3, [r3]
4543	cmp	r2, r3
4544	bcc	.L648
4545	ldr	r1, .L660+4
4546	mov	r2, #2544
4547	ldr	r0, .L660+8
4548	bl	printf
4549	ldr	r1, .L660+12
4550	ldr	r0, .L660+16
4551	bl	printf
4552.L648:
4553	ldr	r3, .L660+20
4554	add	r6, r4, #16
4555	ldr	r10, .L660+40
4556	movw	r7, #65535
4557	movs	r5, #0
4558	ldrh	r8, [r3]
4559	strh	r5, [r4, #4]	@ movhi
4560	strb	r5, [r4, #7]
4561.L649:
4562	uxth	r3, r5
4563	cmp	r8, r3
4564	bhi	.L651
4565	ldr	r2, .L660+24
4566	ldrb	r3, [r4, #7]	@ zero_extendqisi2
4567	ldrh	r2, [r2]
4568	smulbb	r3, r3, r2
4569	strh	r3, [r4, #4]	@ movhi
4570	movs	r3, #0
4571	strb	r3, [r4, #9]
4572	ldr	r3, .L660+28
4573	ldr	r3, [r3]
4574	cbz	r3, .L652
4575	ldr	r3, .L660+32
4576	ldrh	r2, [r4]
4577	ldr	r3, [r3]
4578	ldrh	r3, [r3, r2, lsl #1]
4579	cmp	r3, #79
4580	itt	ls
4581	movls	r3, #1
4582	strbls	r3, [r4, #9]
4583.L652:
4584	ldr	r3, .L660+36
4585	ldrb	r3, [r3]	@ zero_extendqisi2
4586	cbz	r3, .L653
4587	movs	r3, #1
4588	strb	r3, [r4, #9]
4589.L653:
4590	movs	r0, #0
4591	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4592.L651:
4593	ldrh	r1, [r4]
4594	ldrb	r0, [r10, r5]	@ zero_extendqisi2
4595	bl	V2P_block
4596	strh	r7, [r6]	@ movhi
4597	mov	fp, r0
4598	bl	FtlBbmIsBadBlock
4599	cbnz	r0, .L650
4600	strh	fp, [r6]	@ movhi
4601	ldrb	r3, [r4, #7]	@ zero_extendqisi2
4602	adds	r3, r3, #1
4603	strb	r3, [r4, #7]
4604.L650:
4605	adds	r5, r5, #1
4606	adds	r6, r6, #2
4607	b	.L649
4608.L661:
4609	.align	2
4610.L660:
4611	.word	.LANCHOR40
4612	.word	.LANCHOR102
4613	.word	.LC5
4614	.word	.LC6
4615	.word	.LC7
4616	.word	.LANCHOR38
4617	.word	.LANCHOR53
4618	.word	.LANCHOR28
4619	.word	.LANCHOR79
4620	.word	.LANCHOR1
4621	.word	.LANCHOR47
4622	.size	make_superblock, .-make_superblock
4623	.section	.text.update_multiplier_value,"ax",%progbits
4624	.align	1
4625	.global	update_multiplier_value
4626	.syntax unified
4627	.thumb
4628	.thumb_func
4629	.fpu softvfp
4630	.type	update_multiplier_value, %function
4631update_multiplier_value:
4632	@ args = 0, pretend = 0, frame = 0
4633	@ frame_needed = 0, uses_anonymous_args = 0
4634	push	{r3, r4, r5, r6, r7, r8, r10, lr}
4635	movs	r5, #0
4636	ldr	r3, .L668
4637	mov	r6, r0
4638	mov	r4, r5
4639	ldr	r10, .L668+12
4640	ldrh	r7, [r3]
4641	ldr	r3, .L668+4
4642	ldrh	r8, [r3]
4643.L663:
4644	uxth	r3, r5
4645	cmp	r7, r3
4646	bhi	.L665
4647	cbz	r4, .L667
4648	mov	r1, r4
4649	mov	r0, #32768
4650	bl	__aeabi_idiv
4651.L666:
4652	ldr	r3, .L668+8
4653	movs	r2, #6
4654	ldr	r3, [r3]
4655	mla	r6, r2, r6, r3
4656	strh	r0, [r6, #4]	@ movhi
4657	movs	r0, #0
4658	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
4659.L665:
4660	mov	r1, r6
4661	ldrb	r0, [r10, r5]	@ zero_extendqisi2
4662	bl	V2P_block
4663	bl	FtlBbmIsBadBlock
4664	cbnz	r0, .L664
4665	add	r4, r4, r8
4666	uxth	r4, r4
4667.L664:
4668	adds	r5, r5, #1
4669	b	.L663
4670.L667:
4671	mov	r0, r4
4672	b	.L666
4673.L669:
4674	.align	2
4675.L668:
4676	.word	.LANCHOR38
4677	.word	.LANCHOR53
4678	.word	.LANCHOR82
4679	.word	.LANCHOR47
4680	.size	update_multiplier_value, .-update_multiplier_value
4681	.section	.text.GetFreeBlockMinEraseCount,"ax",%progbits
4682	.align	1
4683	.global	GetFreeBlockMinEraseCount
4684	.syntax unified
4685	.thumb
4686	.thumb_func
4687	.fpu softvfp
4688	.type	GetFreeBlockMinEraseCount, %function
4689GetFreeBlockMinEraseCount:
4690	@ args = 0, pretend = 0, frame = 0
4691	@ frame_needed = 0, uses_anonymous_args = 0
4692	@ link register save eliminated.
4693	ldr	r3, .L673
4694	ldr	r0, [r3]
4695	cbz	r0, .L671
4696	ldr	r3, .L673+4
4697	ldr	r3, [r3]
4698	subs	r0, r0, r3
4699	ldr	r3, .L673+8
4700	asrs	r0, r0, #1
4701	muls	r0, r3, r0
4702	ldr	r3, .L673+12
4703	ldr	r3, [r3]
4704	uxth	r0, r0
4705	ldrh	r0, [r3, r0, lsl #1]
4706.L671:
4707	bx	lr
4708.L674:
4709	.align	2
4710.L673:
4711	.word	.LANCHOR88
4712	.word	.LANCHOR82
4713	.word	-1431655765
4714	.word	.LANCHOR79
4715	.size	GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
4716	.section	.text.GetFreeBlockMaxEraseCount,"ax",%progbits
4717	.align	1
4718	.global	GetFreeBlockMaxEraseCount
4719	.syntax unified
4720	.thumb
4721	.thumb_func
4722	.fpu softvfp
4723	.type	GetFreeBlockMaxEraseCount, %function
4724GetFreeBlockMaxEraseCount:
4725	@ args = 0, pretend = 0, frame = 0
4726	@ frame_needed = 0, uses_anonymous_args = 0
4727	ldr	r3, .L683
4728	push	{r4, r5, r6, lr}
4729	ldr	r3, [r3]
4730	cbz	r3, .L681
4731	ldr	r2, .L683+4
4732	movs	r5, #6
4733	movw	r6, #65535
4734	ldrh	r2, [r2]
4735	rsb	r2, r2, r2, lsl #3
4736	asrs	r2, r2, #3
4737	cmp	r0, r2
4738	it	gt
4739	uxthgt	r0, r2
4740	ldr	r2, .L683+8
4741	ldr	r1, [r2]
4742	ldr	r2, .L683+12
4743	subs	r3, r3, r1
4744	asrs	r3, r3, #1
4745	muls	r3, r2, r3
4746	movs	r2, #0
4747	uxth	r3, r3
4748.L678:
4749	uxth	r4, r2
4750	cmp	r0, r4
4751	bls	.L680
4752	mul	r4, r5, r3
4753	adds	r2, r2, #1
4754	ldrh	r4, [r1, r4]
4755	cmp	r4, r6
4756	bne	.L682
4757.L680:
4758	ldr	r2, .L683+16
4759	ldr	r2, [r2]
4760	ldrh	r0, [r2, r3, lsl #1]
4761	pop	{r4, r5, r6, pc}
4762.L682:
4763	mov	r3, r4
4764	b	.L678
4765.L681:
4766	mov	r0, r3
4767	pop	{r4, r5, r6, pc}
4768.L684:
4769	.align	2
4770.L683:
4771	.word	.LANCHOR88
4772	.word	.LANCHOR89
4773	.word	.LANCHOR82
4774	.word	-1431655765
4775	.word	.LANCHOR79
4776	.size	GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
4777	.section	.text.free_data_superblock,"ax",%progbits
4778	.align	1
4779	.global	free_data_superblock
4780	.syntax unified
4781	.thumb
4782	.thumb_func
4783	.fpu softvfp
4784	.type	free_data_superblock, %function
4785free_data_superblock:
4786	@ args = 0, pretend = 0, frame = 0
4787	@ frame_needed = 0, uses_anonymous_args = 0
4788	movw	r2, #65535
4789	push	{r3, lr}
4790	cmp	r0, r2
4791	beq	.L686
4792	ldr	r2, .L687
4793	movs	r1, #0
4794	ldr	r2, [r2]
4795	strh	r1, [r2, r0, lsl #1]	@ movhi
4796	bl	INSERT_FREE_LIST
4797.L686:
4798	movs	r0, #0
4799	pop	{r3, pc}
4800.L688:
4801	.align	2
4802.L687:
4803	.word	.LANCHOR84
4804	.size	free_data_superblock, .-free_data_superblock
4805	.section	.text.FtlGcBufInit,"ax",%progbits
4806	.align	1
4807	.global	FtlGcBufInit
4808	.syntax unified
4809	.thumb
4810	.thumb_func
4811	.fpu softvfp
4812	.type	FtlGcBufInit, %function
4813FtlGcBufInit:
4814	@ args = 0, pretend = 0, frame = 8
4815	@ frame_needed = 0, uses_anonymous_args = 0
4816	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
4817	movs	r3, #0
4818	ldr	r1, .L694
4819	mov	fp, #1
4820	ldr	r2, .L694+4
4821	ldr	r5, [r1]
4822	ldr	r1, .L694+8
4823	str	r3, [r2]
4824	ldr	r2, .L694+12
4825	mov	r0, r5
4826	ldr	r1, [r1]
4827	ldrh	r2, [r2]
4828	str	r1, [sp, #4]
4829	ldr	r1, .L694+16
4830	ldrh	r1, [r1]
4831	str	r1, [sp]
4832	ldr	r1, .L694+20
4833	ldr	r10, [r1]
4834	ldr	r1, .L694+24
4835	ldrh	r7, [r1]
4836	ldr	r1, .L694+28
4837	ldr	r4, [r1]
4838	movs	r1, #12
4839	mla	r1, r2, r1, r1
4840	adds	r4, r4, #8
4841	add	r8, r5, r1
4842	mov	r1, r3
4843.L690:
4844	adds	r0, r0, #12
4845	ldr	r6, [sp]
4846	cmp	r0, r8
4847	add	ip, r3, r7
4848	add	r4, r4, #36
4849	add	lr, r1, r6
4850	bne	.L691
4851	ldr	r3, .L694+32
4852	mov	lr, #12
4853	mov	r8, #0
4854	ldr	r0, [r3]
4855	ldr	r3, .L694+8
4856	ldr	r4, [r3]
4857	ldr	r3, .L694+20
4858	ldr	ip, [r3]
4859.L692:
4860	cmp	r2, r0
4861	bcc	.L693
4862	add	sp, sp, #8
4863	@ sp needed
4864	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4865.L691:
4866	bic	r1, r1, #3
4867	bic	r3, r3, #3
4868	mov	r6, r1
4869	ldr	r1, [sp, #4]
4870	add	r3, r3, r10
4871	str	fp, [r0, #-4]
4872	str	r3, [r0, #-8]
4873	add	r6, r6, r1
4874	mov	r1, lr
4875	str	r6, [r0, #-12]
4876	str	r3, [r4, #-32]
4877	mov	r3, ip
4878	str	r6, [r4, #-36]
4879	b	.L690
4880.L693:
4881	ldr	r3, [sp]
4882	mul	r10, lr, r2
4883	muls	r3, r2, r3
4884	add	r1, r5, r10
4885	str	r8, [r1, #8]
4886	bic	r3, r3, #3
4887	add	r3, r3, r4
4888	str	r3, [r5, r10]
4889	mul	r3, r2, r7
4890	adds	r2, r2, #1
4891	uxth	r2, r2
4892	bic	r3, r3, #3
4893	add	r3, r3, ip
4894	str	r3, [r1, #4]
4895	b	.L692
4896.L695:
4897	.align	2
4898.L694:
4899	.word	.LANCHOR104
4900	.word	.LANCHOR103
4901	.word	.LANCHOR105
4902	.word	.LANCHOR38
4903	.word	.LANCHOR58
4904	.word	.LANCHOR106
4905	.word	.LANCHOR59
4906	.word	.LANCHOR107
4907	.word	.LANCHOR108
4908	.size	FtlGcBufInit, .-FtlGcBufInit
4909	.section	.text.FtlGcBufFree,"ax",%progbits
4910	.align	1
4911	.global	FtlGcBufFree
4912	.syntax unified
4913	.thumb
4914	.thumb_func
4915	.fpu softvfp
4916	.type	FtlGcBufFree, %function
4917FtlGcBufFree:
4918	@ args = 0, pretend = 0, frame = 0
4919	@ frame_needed = 0, uses_anonymous_args = 0
4920	ldr	r3, .L703
4921	mov	ip, #12
4922	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4923	movs	r4, #0
4924	mov	fp, #36
4925	mov	lr, r4
4926	ldr	r7, [r3]
4927	ldr	r3, .L703+4
4928	ldr	r5, [r3]
4929.L697:
4930	uxth	r3, r4
4931	cmp	r1, r3
4932	bls	.L696
4933	mla	r8, fp, r3, r0
4934	movs	r2, #0
4935.L698:
4936	uxth	r3, r2
4937	cmp	r7, r3
4938	bls	.L699
4939	mul	r3, ip, r3
4940	ldr	r6, [r8, #8]
4941	adds	r2, r2, #1
4942	add	r10, r5, r3
4943	ldr	r3, [r5, r3]
4944	cmp	r3, r6
4945	bne	.L698
4946	str	lr, [r10, #8]
4947.L699:
4948	adds	r4, r4, #1
4949	b	.L697
4950.L696:
4951	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4952.L704:
4953	.align	2
4954.L703:
4955	.word	.LANCHOR108
4956	.word	.LANCHOR104
4957	.size	FtlGcBufFree, .-FtlGcBufFree
4958	.section	.text.FtlGcBufAlloc,"ax",%progbits
4959	.align	1
4960	.global	FtlGcBufAlloc
4961	.syntax unified
4962	.thumb
4963	.thumb_func
4964	.fpu softvfp
4965	.type	FtlGcBufAlloc, %function
4966FtlGcBufAlloc:
4967	@ args = 0, pretend = 0, frame = 0
4968	@ frame_needed = 0, uses_anonymous_args = 0
4969	ldr	r3, .L712
4970	movs	r2, #0
4971	push	{r4, r5, r6, r7, r8, r10, lr}
4972	mov	ip, #12
4973	movs	r7, #1
4974	mov	lr, #36
4975	ldr	r4, [r3]
4976	ldr	r3, .L712+4
4977	ldr	r5, [r3]
4978.L706:
4979	uxth	r8, r2
4980	cmp	r1, r8
4981	bhi	.L710
4982	pop	{r4, r5, r6, r7, r8, r10, pc}
4983.L710:
4984	mov	r10, #0
4985.L707:
4986	uxth	r3, r10
4987	cmp	r4, r3
4988	bls	.L708
4989	mla	r3, ip, r3, r5
4990	add	r10, r10, #1
4991	ldr	r6, [r3, #8]
4992	cmp	r6, #0
4993	bne	.L707
4994	mla	r8, lr, r8, r0
4995	str	r7, [r3, #8]
4996	ldr	r6, [r3]
4997	ldr	r3, [r3, #4]
4998	str	r6, [r8, #8]
4999	str	r3, [r8, #12]
5000.L708:
5001	adds	r2, r2, #1
5002	b	.L706
5003.L713:
5004	.align	2
5005.L712:
5006	.word	.LANCHOR108
5007	.word	.LANCHOR104
5008	.size	FtlGcBufAlloc, .-FtlGcBufAlloc
5009	.section	.text.IsBlkInGcList,"ax",%progbits
5010	.align	1
5011	.global	IsBlkInGcList
5012	.syntax unified
5013	.thumb
5014	.thumb_func
5015	.fpu softvfp
5016	.type	IsBlkInGcList, %function
5017IsBlkInGcList:
5018	@ args = 0, pretend = 0, frame = 0
5019	@ frame_needed = 0, uses_anonymous_args = 0
5020	@ link register save eliminated.
5021	ldr	r3, .L719
5022	ldr	r2, .L719+4
5023	ldr	r3, [r3]
5024	ldrh	r2, [r2]
5025	add	r2, r3, r2, lsl #1
5026.L715:
5027	cmp	r3, r2
5028	bne	.L717
5029	movs	r0, #0
5030	bx	lr
5031.L717:
5032	ldrh	r1, [r3], #2
5033	cmp	r1, r0
5034	bne	.L715
5035	movs	r0, #1
5036	bx	lr
5037.L720:
5038	.align	2
5039.L719:
5040	.word	.LANCHOR109
5041	.word	.LANCHOR110
5042	.size	IsBlkInGcList, .-IsBlkInGcList
5043	.section	.text.FtlGcUpdatePage,"ax",%progbits
5044	.align	1
5045	.global	FtlGcUpdatePage
5046	.syntax unified
5047	.thumb
5048	.thumb_func
5049	.fpu softvfp
5050	.type	FtlGcUpdatePage, %function
5051FtlGcUpdatePage:
5052	@ args = 0, pretend = 0, frame = 0
5053	@ frame_needed = 0, uses_anonymous_args = 0
5054	push	{r3, r4, r5, r6, r7, lr}
5055	mov	r5, r0
5056	ldr	r4, .L725
5057	ubfx	r0, r0, #10, #16
5058	mov	r6, r1
5059	mov	r7, r2
5060	bl	P2V_block_in_plane
5061	ldr	r3, .L725+4
5062	ldrh	r1, [r4]
5063	ldr	r2, [r3]
5064	movs	r3, #0
5065.L722:
5066	uxth	ip, r3
5067	cmp	ip, r1
5068	bcc	.L724
5069	bne	.L723
5070	strh	r0, [r2, ip, lsl #1]	@ movhi
5071	ldrh	r3, [r4]
5072	adds	r3, r3, #1
5073	strh	r3, [r4]	@ movhi
5074	b	.L723
5075.L724:
5076	adds	r3, r3, #1
5077	add	ip, r2, r3, lsl #1
5078	ldrh	ip, [ip, #-2]
5079	cmp	ip, r0
5080	bne	.L722
5081.L723:
5082	ldr	r2, .L725+8
5083	movs	r0, #12
5084	ldr	r1, .L725+12
5085	ldrh	r3, [r2]
5086	ldr	r1, [r1]
5087	muls	r0, r3, r0
5088	adds	r3, r3, #1
5089	adds	r4, r1, r0
5090	str	r6, [r4, #4]
5091	str	r7, [r4, #8]
5092	str	r5, [r1, r0]
5093	strh	r3, [r2]	@ movhi
5094	pop	{r3, r4, r5, r6, r7, pc}
5095.L726:
5096	.align	2
5097.L725:
5098	.word	.LANCHOR110
5099	.word	.LANCHOR109
5100	.word	.LANCHOR111
5101	.word	.LANCHOR112
5102	.size	FtlGcUpdatePage, .-FtlGcUpdatePage
5103	.section	.text.FtlGcRefreshOpenBlock,"ax",%progbits
5104	.align	1
5105	.global	FtlGcRefreshOpenBlock
5106	.syntax unified
5107	.thumb
5108	.thumb_func
5109	.fpu softvfp
5110	.type	FtlGcRefreshOpenBlock, %function
5111FtlGcRefreshOpenBlock:
5112	@ args = 0, pretend = 0, frame = 0
5113	@ frame_needed = 0, uses_anonymous_args = 0
5114	ldr	ip, .L732+12
5115	push	{r4, r5, r6, r7, lr}
5116	ldrh	lr, [ip]
5117	cmp	lr, r0
5118	beq	.L728
5119	ldr	r6, .L732
5120	ldrh	r7, [r6]
5121	cmp	r0, r7
5122	beq	.L728
5123	ldr	r4, .L732+4
5124	ldrh	r5, [r4]
5125	cmp	r0, r5
5126	beq	.L728
5127	ldr	r2, .L732+8
5128	ldrh	r1, [r2]
5129	cmp	r0, r1
5130	beq	.L728
5131	movw	r3, #65535
5132	cmp	lr, r3
5133	bne	.L729
5134	strh	r0, [ip]	@ movhi
5135.L728:
5136	movs	r0, #0
5137	pop	{r4, r5, r6, r7, pc}
5138.L729:
5139	cmp	r7, r3
5140	bne	.L730
5141	strh	r0, [r6]	@ movhi
5142	b	.L728
5143.L730:
5144	cmp	r5, r3
5145	bne	.L731
5146	strh	r0, [r4]	@ movhi
5147	b	.L728
5148.L731:
5149	cmp	r1, r3
5150	it	eq
5151	strheq	r0, [r2]	@ movhi
5152	b	.L728
5153.L733:
5154	.align	2
5155.L732:
5156	.word	.LANCHOR114
5157	.word	.LANCHOR115
5158	.word	.LANCHOR116
5159	.word	.LANCHOR113
5160	.size	FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock
5161	.section	.text.FtlGcRefreshBlock,"ax",%progbits
5162	.align	1
5163	.global	FtlGcRefreshBlock
5164	.syntax unified
5165	.thumb
5166	.thumb_func
5167	.fpu softvfp
5168	.type	FtlGcRefreshBlock, %function
5169FtlGcRefreshBlock:
5170	@ args = 0, pretend = 0, frame = 0
5171	@ frame_needed = 0, uses_anonymous_args = 0
5172	ldr	ip, .L744+12
5173	push	{r4, r5, r6, r7, lr}
5174	ldrh	lr, [ip]
5175	cmp	lr, r0
5176	beq	.L742
5177	ldr	r6, .L744
5178	ldrh	r7, [r6]
5179	cmp	r0, r7
5180	beq	.L742
5181	ldr	r4, .L744+4
5182	ldrh	r5, [r4]
5183	cmp	r0, r5
5184	beq	.L742
5185	ldr	r2, .L744+8
5186	ldrh	r1, [r2]
5187	cmp	r0, r1
5188	beq	.L742
5189	movw	r3, #65535
5190	cmp	lr, r3
5191	bne	.L736
5192	strh	r0, [ip]	@ movhi
5193.L742:
5194	movs	r0, #0
5195	pop	{r4, r5, r6, r7, pc}
5196.L736:
5197	cmp	r7, r3
5198	bne	.L737
5199	strh	r0, [r6]	@ movhi
5200	b	.L742
5201.L737:
5202	cmp	r5, r3
5203	bne	.L738
5204	strh	r0, [r4]	@ movhi
5205	b	.L742
5206.L738:
5207	cmp	r1, r3
5208	bne	.L743
5209	strh	r0, [r2]	@ movhi
5210	b	.L742
5211.L743:
5212	mov	r0, #-1
5213	pop	{r4, r5, r6, r7, pc}
5214.L745:
5215	.align	2
5216.L744:
5217	.word	.LANCHOR114
5218	.word	.LANCHOR115
5219	.word	.LANCHOR116
5220	.word	.LANCHOR113
5221	.size	FtlGcRefreshBlock, .-FtlGcRefreshBlock
5222	.section	.text.FtlGcMarkBadPhyBlk,"ax",%progbits
5223	.align	1
5224	.global	FtlGcMarkBadPhyBlk
5225	.syntax unified
5226	.thumb
5227	.thumb_func
5228	.fpu softvfp
5229	.type	FtlGcMarkBadPhyBlk, %function
5230FtlGcMarkBadPhyBlk:
5231	@ args = 0, pretend = 0, frame = 0
5232	@ frame_needed = 0, uses_anonymous_args = 0
5233	push	{r3, r4, r5, lr}
5234	mov	r4, r0
5235	bl	P2V_block_in_plane
5236	mov	r5, r0
5237	bl	FtlGcRefreshBlock
5238	ldr	r3, .L754
5239	ldr	r3, [r3]
5240	cbz	r3, .L747
5241	ldr	r3, .L754+4
5242	ldr	r2, [r3]
5243	ldrh	r3, [r2, r5, lsl #1]
5244	cmp	r3, #39
5245	itt	hi
5246	subhi	r3, r3, #40
5247	strhhi	r3, [r2, r5, lsl #1]	@ movhi
5248.L747:
5249	ldr	r2, .L754+8
5250	movs	r1, #0
5251	ldr	r5, .L754+12
5252	ldrh	r3, [r2]
5253.L748:
5254	uxth	r0, r1
5255	cmp	r3, r0
5256	bhi	.L750
5257	cmp	r3, #15
5258	itttt	ls
5259	addls	r1, r3, #1
5260	strhls	r1, [r2]	@ movhi
5261	ldrls	r2, .L754+12
5262	strhls	r4, [r2, r3, lsl #1]	@ movhi
5263	b	.L749
5264.L750:
5265	adds	r1, r1, #1
5266	add	r0, r5, r1, lsl #1
5267	ldrh	r0, [r0, #-2]
5268	cmp	r0, r4
5269	bne	.L748
5270.L749:
5271	movs	r0, #0
5272	pop	{r3, r4, r5, pc}
5273.L755:
5274	.align	2
5275.L754:
5276	.word	.LANCHOR28
5277	.word	.LANCHOR79
5278	.word	.LANCHOR117
5279	.word	.LANCHOR118
5280	.size	FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
5281	.section	.text.FtlGcReFreshBadBlk,"ax",%progbits
5282	.align	1
5283	.global	FtlGcReFreshBadBlk
5284	.syntax unified
5285	.thumb
5286	.thumb_func
5287	.fpu softvfp
5288	.type	FtlGcReFreshBadBlk, %function
5289FtlGcReFreshBadBlk:
5290	@ args = 0, pretend = 0, frame = 0
5291	@ frame_needed = 0, uses_anonymous_args = 0
5292	ldr	r3, .L762
5293	push	{r4, lr}
5294	ldrh	r3, [r3]
5295	cbz	r3, .L757
5296	ldr	r2, .L762+4
5297	ldrh	r1, [r2]
5298	movw	r2, #65535
5299	cmp	r1, r2
5300	bne	.L757
5301	ldr	r4, .L762+8
5302	ldrh	r2, [r4]
5303	cmp	r2, r3
5304	itt	cs
5305	movcs	r3, #0
5306	strhcs	r3, [r4]	@ movhi
5307	ldr	r3, .L762+12
5308	ldrh	r2, [r4]
5309	ldrh	r0, [r3, r2, lsl #1]
5310	bl	P2V_block_in_plane
5311	bl	FtlGcRefreshBlock
5312	ldrh	r3, [r4]
5313	adds	r3, r3, #1
5314	strh	r3, [r4]	@ movhi
5315.L757:
5316	movs	r0, #0
5317	pop	{r4, pc}
5318.L763:
5319	.align	2
5320.L762:
5321	.word	.LANCHOR117
5322	.word	.LANCHOR113
5323	.word	.LANCHOR119
5324	.word	.LANCHOR118
5325	.size	FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
5326	.section	.text.flash_boot_enter_slc_mode,"ax",%progbits
5327	.align	1
5328	.global	flash_boot_enter_slc_mode
5329	.syntax unified
5330	.thumb
5331	.thumb_func
5332	.fpu softvfp
5333	.type	flash_boot_enter_slc_mode, %function
5334flash_boot_enter_slc_mode:
5335	@ args = 0, pretend = 0, frame = 0
5336	@ frame_needed = 0, uses_anonymous_args = 0
5337	@ link register save eliminated.
5338	ldr	r3, .L766
5339	ldr	r2, [r3]
5340	ldr	r3, .L766+4
5341	cmp	r2, r3
5342	bne	.L764
5343	b	flash_enter_slc_mode
5344.L764:
5345	bx	lr
5346.L767:
5347	.align	2
5348.L766:
5349	.word	.LANCHOR29
5350	.word	1446522928
5351	.size	flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode
5352	.section	.text.flash_boot_exit_slc_mode,"ax",%progbits
5353	.align	1
5354	.global	flash_boot_exit_slc_mode
5355	.syntax unified
5356	.thumb
5357	.thumb_func
5358	.fpu softvfp
5359	.type	flash_boot_exit_slc_mode, %function
5360flash_boot_exit_slc_mode:
5361	@ args = 0, pretend = 0, frame = 0
5362	@ frame_needed = 0, uses_anonymous_args = 0
5363	@ link register save eliminated.
5364	ldr	r3, .L770
5365	ldr	r2, [r3]
5366	ldr	r3, .L770+4
5367	cmp	r2, r3
5368	bne	.L768
5369	b	flash_exit_slc_mode
5370.L768:
5371	bx	lr
5372.L771:
5373	.align	2
5374.L770:
5375	.word	.LANCHOR29
5376	.word	1446522928
5377	.size	flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode
5378	.section	.text.FW_FlashBlockErase.constprop.41,"ax",%progbits
5379	.align	1
5380	.syntax unified
5381	.thumb
5382	.thumb_func
5383	.fpu softvfp
5384	.type	FW_FlashBlockErase.constprop.41, %function
5385FW_FlashBlockErase.constprop.41:
5386	@ args = 0, pretend = 0, frame = 0
5387	@ frame_needed = 0, uses_anonymous_args = 0
5388	ldr	r3, .L773
5389	push	{r4, lr}
5390	mov	r4, r0
5391	movs	r0, #0
5392	ldr	r3, [r3]
5393	ldrb	r1, [r3, #9]	@ zero_extendqisi2
5394	bl	flash_boot_enter_slc_mode
5395	mov	r0, r4
5396	bl	__aeabi_uidiv
5397	movs	r2, #0
5398	mov	r1, r0
5399	mov	r0, r2
5400	bl	FlashEraseBlock
5401	mov	r1, r0
5402	movs	r0, #0
5403	bl	flash_boot_exit_slc_mode
5404	uxtb	r0, r1
5405	pop	{r4, pc}
5406.L774:
5407	.align	2
5408.L773:
5409	.word	.LANCHOR18
5410	.size	FW_FlashBlockErase.constprop.41, .-FW_FlashBlockErase.constprop.41
5411	.section	.text.ftl_memset,"ax",%progbits
5412	.align	1
5413	.global	ftl_memset
5414	.syntax unified
5415	.thumb
5416	.thumb_func
5417	.fpu softvfp
5418	.type	ftl_memset, %function
5419ftl_memset:
5420	@ args = 0, pretend = 0, frame = 0
5421	@ frame_needed = 0, uses_anonymous_args = 0
5422	@ link register save eliminated.
5423	b	memset
5424	.size	ftl_memset, .-ftl_memset
5425	.section	.text.BuildFlashLsbPageTable,"ax",%progbits
5426	.align	1
5427	.global	BuildFlashLsbPageTable
5428	.syntax unified
5429	.thumb
5430	.thumb_func
5431	.fpu softvfp
5432	.type	BuildFlashLsbPageTable, %function
5433BuildFlashLsbPageTable:
5434	@ args = 0, pretend = 0, frame = 0
5435	@ frame_needed = 0, uses_anonymous_args = 0
5436	push	{r4, lr}
5437	mov	r4, r1
5438	cbnz	r0, .L777
5439	ldr	r3, .L814
5440.L778:
5441	strh	r0, [r3, r0, lsl #1]	@ movhi
5442	adds	r0, r0, #1
5443	cmp	r0, #256
5444	bne	.L778
5445.L784:
5446	movs	r1, #255
5447	mov	r2, #1024
5448	ldr	r0, .L814+4
5449	uxth	r4, r4
5450	bl	ftl_memset
5451	ldr	r1, .L814
5452	movs	r3, #0
5453	ldr	r0, .L814+4
5454.L779:
5455	uxth	r2, r3
5456	cmp	r4, r2
5457	bhi	.L801
5458	pop	{r4, pc}
5459.L777:
5460	cmp	r0, #1
5461	bne	.L780
5462	ldr	r1, .L814
5463	movs	r3, #0
5464.L783:
5465	cmp	r3, #3
5466	uxth	r2, r3
5467	bls	.L781
5468	tst	r2, #1
5469	ite	ne
5470	movne	r0, #3
5471	moveq	r0, #2
5472	rsb	r2, r0, r2, lsl #1
5473	uxth	r2, r2
5474.L781:
5475	strh	r2, [r1, r3, lsl #1]	@ movhi
5476	adds	r3, r3, #1
5477	cmp	r3, #256
5478	bne	.L783
5479	b	.L784
5480.L780:
5481	cmp	r0, #2
5482	bne	.L785
5483	ldr	r1, .L814
5484	movs	r2, #0
5485.L787:
5486	uxth	r3, r2
5487	cmp	r2, #1
5488	ittt	hi
5489	lslhi	r3, r3, #1
5490	addhi	r3, r3, #-1
5491	uxthhi	r3, r3
5492	strh	r3, [r1, r2, lsl #1]	@ movhi
5493	adds	r2, r2, #1
5494	cmp	r2, #256
5495	bne	.L787
5496	b	.L784
5497.L785:
5498	cmp	r0, #3
5499	bne	.L788
5500	ldr	r1, .L814
5501	movs	r3, #0
5502.L791:
5503	cmp	r3, #5
5504	uxth	r2, r3
5505	bls	.L789
5506	tst	r2, #1
5507	ite	ne
5508	movne	r0, #5
5509	moveq	r0, #4
5510	rsb	r2, r0, r2, lsl #1
5511	uxth	r2, r2
5512.L789:
5513	strh	r2, [r1, r3, lsl #1]	@ movhi
5514	adds	r3, r3, #1
5515	cmp	r3, #256
5516	bne	.L791
5517	b	.L784
5518.L788:
5519	cmp	r0, #4
5520	mov	r3, #0
5521	bne	.L792
5522	ldr	r2, .L814
5523	strh	r3, [r2]	@ movhi
5524	movs	r3, #1
5525	strh	r3, [r2, #2]	@ movhi
5526	movs	r3, #2
5527	strh	r3, [r2, #4]	@ movhi
5528	movs	r3, #3
5529	strh	r3, [r2, #6]	@ movhi
5530	movs	r3, #5
5531	strh	r3, [r2, #10]	@ movhi
5532	movs	r3, #7
5533	strh	r3, [r2, #12]	@ movhi
5534	movs	r3, #8
5535	strh	r0, [r2, #8]	@ movhi
5536	strh	r3, [r2, #14]!	@ movhi
5537.L794:
5538	tst	r3, #1
5539	ite	ne
5540	movne	r1, #7
5541	moveq	r1, #6
5542	rsb	r1, r1, r3, lsl #1
5543	adds	r3, r3, #1
5544	uxth	r3, r3
5545	strh	r1, [r2, #2]!	@ movhi
5546	cmp	r3, #256
5547	bne	.L794
5548	b	.L784
5549.L792:
5550	cmp	r0, #5
5551	bne	.L795
5552	ldr	r2, .L814
5553.L796:
5554	strh	r3, [r2, r3, lsl #1]	@ movhi
5555	adds	r3, r3, #1
5556	cmp	r3, #16
5557	bne	.L796
5558	ldr	r2, .L814+8
5559.L797:
5560	strh	r3, [r2, #2]!	@ movhi
5561	adds	r3, r3, #2
5562	uxth	r3, r3
5563	cmp	r3, #496
5564	bne	.L797
5565	b	.L784
5566.L795:
5567	cmp	r0, #6
5568	bne	.L784
5569	ldr	r0, .L814
5570	mov	r1, r3
5571.L800:
5572	cmp	r1, #5
5573	uxth	r2, r1
5574	bls	.L798
5575	tst	r2, #1
5576	ite	ne
5577	movne	r2, #12
5578	moveq	r2, #10
5579	subs	r2, r3, r2
5580	uxth	r2, r2
5581.L798:
5582	strh	r2, [r0, r1, lsl #1]	@ movhi
5583	adds	r1, r1, #1
5584	cmp	r1, #256
5585	add	r3, r3, #3
5586	uxth	r3, r3
5587	bne	.L800
5588	b	.L784
5589.L801:
5590	ldrh	r2, [r1, r3, lsl #1]
5591	adds	r3, r3, #1
5592	strh	r2, [r0, r2, lsl #1]	@ movhi
5593	b	.L779
5594.L815:
5595	.align	2
5596.L814:
5597	.word	.LANCHOR16
5598	.word	.LANCHOR120
5599	.word	.LANCHOR16+30
5600	.size	BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
5601	.section	.text.FlashDieInfoInit,"ax",%progbits
5602	.align	1
5603	.global	FlashDieInfoInit
5604	.syntax unified
5605	.thumb
5606	.thumb_func
5607	.fpu softvfp
5608	.type	FlashDieInfoInit, %function
5609FlashDieInfoInit:
5610	@ args = 0, pretend = 0, frame = 8
5611	@ frame_needed = 0, uses_anonymous_args = 0
5612	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
5613	movs	r3, #0
5614	ldr	r2, .L834
5615	ldr	r4, .L834+4
5616	strb	r3, [r2]
5617	str	r2, [sp]
5618	strb	r3, [r4]
5619	ldr	r3, .L834+8
5620	ldr	r7, .L834+12
5621	ldrh	r3, [r3, #10]
5622	cmp	r3, #256
5623	bls	.L817
5624	mov	r3, #512
5625.L833:
5626	movs	r2, #8
5627	movs	r1, #0
5628	ldr	r0, .L834+16
5629	movs	r6, #0
5630	str	r3, [r7]
5631	bl	ftl_memset
5632	movs	r2, #32
5633	movs	r1, #0
5634	ldr	r0, .L834+20
5635	bl	ftl_memset
5636	movs	r2, #128
5637	movs	r1, #0
5638	ldr	r0, .L834+24
5639	bl	ftl_memset
5640	ldr	r3, .L834+28
5641	ldr	fp, .L834+36
5642	ldr	r5, [r3]
5643	ldr	r3, .L834+16
5644	ldrb	r10, [r5]	@ zero_extendqisi2
5645	add	r8, r5, #1
5646.L821:
5647	mov	r2, r10
5648	add	r1, fp, r6, lsl #3
5649	mov	r0, r8
5650	str	r3, [sp, #4]
5651	bl	FlashMemCmp8
5652	ldr	r3, [sp, #4]
5653	cbnz	r0, .L820
5654	ldrb	r2, [r4]	@ zero_extendqisi2
5655	ldr	r1, .L834+20
5656	strb	r6, [r3, r2]
5657	str	r0, [r1, r2, lsl #2]
5658	adds	r1, r2, #1
5659	strb	r1, [r4]
5660.L820:
5661	adds	r6, r6, #1
5662	cmp	r6, #4
5663	bne	.L821
5664	ldrb	r3, [r4]	@ zero_extendqisi2
5665	ldr	r2, [sp]
5666	strb	r3, [r2]
5667	ldrb	r3, [r5, #8]	@ zero_extendqisi2
5668	cmp	r3, #2
5669	beq	.L822
5670.L826:
5671	ldrh	r2, [r5, #14]
5672	ldrb	r3, [r4]	@ zero_extendqisi2
5673	smulbb	r3, r3, r2
5674	ldrb	r2, [r5, #13]	@ zero_extendqisi2
5675	smulbb	r3, r3, r2
5676	ldr	r2, .L834+32
5677	strh	r3, [r2]	@ movhi
5678	add	sp, sp, #8
5679	@ sp needed
5680	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5681.L817:
5682	cmp	r3, #128
5683	it	hi
5684	movhi	r3, #256
5685	b	.L833
5686.L822:
5687	ldr	fp, [r7]
5688	movs	r6, #0
5689	ldr	r7, .L834+20
5690	ldr	r3, .L834+16
5691.L825:
5692	str	r3, [sp]
5693	mov	r2, r10
5694	ldr	r3, .L834+36
5695	mov	r0, r8
5696	add	r1, r3, r6, lsl #3
5697	bl	FlashMemCmp8
5698	ldr	r3, [sp]
5699	cbnz	r0, .L823
5700	ldrh	r2, [r5, #14]
5701	ldrb	r1, [r4]	@ zero_extendqisi2
5702	and	r0, r2, #65280
5703	ldrb	r2, [r5, #13]	@ zero_extendqisi2
5704	mul	r2, fp, r2
5705	muls	r2, r0, r2
5706	str	r2, [r7, r1, lsl #2]
5707	ldrb	r0, [r5, #23]	@ zero_extendqisi2
5708	cbz	r0, .L824
5709	lsls	r2, r2, #1
5710	str	r2, [r7, r1, lsl #2]
5711.L824:
5712	adds	r2, r1, #1
5713	strb	r6, [r3, r1]
5714	strb	r2, [r4]
5715.L823:
5716	adds	r6, r6, #1
5717	cmp	r6, #4
5718	bne	.L825
5719	b	.L826
5720.L835:
5721	.align	2
5722.L834:
5723	.word	.LANCHOR121
5724	.word	.LANCHOR25
5725	.word	.LANCHOR31
5726	.word	.LANCHOR3
5727	.word	.LANCHOR26
5728	.word	.LANCHOR17
5729	.word	.LANCHOR23
5730	.word	.LANCHOR18
5731	.word	.LANCHOR122
5732	.word	.LANCHOR22
5733	.size	FlashDieInfoInit, .-FlashDieInfoInit
5734	.section	.text.ReadFlashInfo,"ax",%progbits
5735	.align	1
5736	.global	ReadFlashInfo
5737	.syntax unified
5738	.thumb
5739	.thumb_func
5740	.fpu softvfp
5741	.type	ReadFlashInfo, %function
5742ReadFlashInfo:
5743	@ args = 0, pretend = 0, frame = 0
5744	@ frame_needed = 0, uses_anonymous_args = 0
5745	push	{r4, r5, r6, lr}
5746	movs	r2, #11
5747	movs	r1, #0
5748	mov	r4, r0
5749	bl	ftl_memset
5750	ldr	r3, .L839
5751	movs	r2, #0
5752	ldr	r1, [r3]
5753	ldr	r3, .L839+4
5754	ldrb	r0, [r1, #9]	@ zero_extendqisi2
5755	ldr	r3, [r3]
5756	smulbb	r3, r3, r0
5757	uxth	r3, r3
5758	strb	r3, [r4, #4]
5759	lsrs	r3, r3, #8
5760	strb	r3, [r4, #5]
5761	ldr	r3, .L839+8
5762	ldrb	r3, [r3]	@ zero_extendqisi2
5763	strb	r3, [r4, #7]
5764	ldr	r3, .L839+12
5765	ldrb	r5, [r3]	@ zero_extendqisi2
5766	strb	r5, [r4]
5767	ldrb	r5, [r3, #1]	@ zero_extendqisi2
5768	strb	r5, [r4, #1]
5769	ldrb	r5, [r3, #2]	@ zero_extendqisi2
5770	ldrb	r3, [r3, #3]	@ zero_extendqisi2
5771	strb	r0, [r4, #6]
5772	strb	r5, [r4, #2]
5773	movs	r5, #1
5774	strb	r3, [r4, #3]
5775	movs	r3, #32
5776	strb	r3, [r4, #8]
5777	ldrb	r3, [r1, #7]	@ zero_extendqisi2
5778	ldr	r0, .L839+16
5779	strb	r2, [r4, #10]
5780	strb	r3, [r4, #9]
5781	ldr	r3, .L839+20
5782	ldrb	r1, [r3]	@ zero_extendqisi2
5783	mov	r3, r2
5784.L837:
5785	uxtb	r2, r3
5786	cmp	r1, r2
5787	bhi	.L838
5788	pop	{r4, r5, r6, pc}
5789.L838:
5790	ldrb	r2, [r3, r0]	@ zero_extendqisi2
5791	adds	r3, r3, #1
5792	ldrb	r6, [r4, #10]	@ zero_extendqisi2
5793	lsl	r2, r5, r2
5794	orrs	r2, r2, r6
5795	strb	r2, [r4, #10]
5796	b	.L837
5797.L840:
5798	.align	2
5799.L839:
5800	.word	.LANCHOR18
5801	.word	.LANCHOR3
5802	.word	.LANCHOR33
5803	.word	.LANCHOR69
5804	.word	.LANCHOR26
5805	.word	.LANCHOR25
5806	.size	ReadFlashInfo, .-ReadFlashInfo
5807	.section	.text.FtlBbt2Bitmap,"ax",%progbits
5808	.align	1
5809	.global	FtlBbt2Bitmap
5810	.syntax unified
5811	.thumb
5812	.thumb_func
5813	.fpu softvfp
5814	.type	FtlBbt2Bitmap, %function
5815FtlBbt2Bitmap:
5816	@ args = 0, pretend = 0, frame = 0
5817	@ frame_needed = 0, uses_anonymous_args = 0
5818	ldr	r3, .L847
5819	push	{r4, r5, r6, r7, r8, lr}
5820	mov	r5, r0
5821	ldr	r7, .L847+4
5822	mov	r6, r1
5823	subs	r4, r5, #2
5824	addw	r5, r5, #1022
5825	ldrh	r2, [r3]
5826	movs	r1, #0
5827	ldr	r8, .L847+20
5828	mov	r0, r6
5829	lsls	r2, r2, #2
5830	bl	ftl_memset
5831.L844:
5832	ldrh	r3, [r4, #2]
5833	movw	r2, #65535
5834	cmp	r3, r2
5835	beq	.L841
5836	ldrh	r2, [r7]
5837	cmp	r2, r3
5838	bhi	.L843
5839	mov	r1, r8
5840	movs	r2, #79
5841	ldr	r0, .L847+8
5842	bl	printf
5843	ldr	r1, .L847+12
5844	ldr	r0, .L847+16
5845	bl	printf
5846.L843:
5847	ldrh	r3, [r4, #2]!
5848	movs	r2, #1
5849	cmp	r5, r4
5850	lsr	r1, r3, #5
5851	and	r3, r3, #31
5852	lsl	r3, r2, r3
5853	ldr	r2, [r6, r1, lsl #2]
5854	orr	r2, r2, r3
5855	str	r2, [r6, r1, lsl #2]
5856	bne	.L844
5857.L841:
5858	pop	{r4, r5, r6, r7, r8, pc}
5859.L848:
5860	.align	2
5861.L847:
5862	.word	.LANCHOR123
5863	.word	.LANCHOR51
5864	.word	.LC5
5865	.word	.LC6
5866	.word	.LC7
5867	.word	.LANCHOR124
5868	.size	FtlBbt2Bitmap, .-FtlBbt2Bitmap
5869	.section	.text.FtlBbtMemInit,"ax",%progbits
5870	.align	1
5871	.global	FtlBbtMemInit
5872	.syntax unified
5873	.thumb
5874	.thumb_func
5875	.fpu softvfp
5876	.type	FtlBbtMemInit, %function
5877FtlBbtMemInit:
5878	@ args = 0, pretend = 0, frame = 0
5879	@ frame_needed = 0, uses_anonymous_args = 0
5880	@ link register save eliminated.
5881	ldr	r0, .L850
5882	movw	r3, #65535
5883	movs	r2, #16
5884	movs	r1, #255
5885	strh	r3, [r0]	@ movhi
5886	movs	r3, #0
5887	strh	r3, [r0, #6]	@ movhi
5888	adds	r0, r0, #12
5889	b	ftl_memset
5890.L851:
5891	.align	2
5892.L850:
5893	.word	.LANCHOR75
5894	.size	FtlBbtMemInit, .-FtlBbtMemInit
5895	.section	.text.FtlFreeSysBlkQueueInit,"ax",%progbits
5896	.align	1
5897	.global	FtlFreeSysBlkQueueInit
5898	.syntax unified
5899	.thumb
5900	.thumb_func
5901	.fpu softvfp
5902	.type	FtlFreeSysBlkQueueInit, %function
5903FtlFreeSysBlkQueueInit:
5904	@ args = 0, pretend = 0, frame = 0
5905	@ frame_needed = 0, uses_anonymous_args = 0
5906	ldr	r3, .L853
5907	mov	r2, #2048
5908	push	{r4, lr}
5909	movs	r4, #0
5910	mov	r1, r4
5911	strh	r4, [r3, #2]	@ movhi
5912	strh	r4, [r3, #4]	@ movhi
5913	strh	r4, [r3, #6]	@ movhi
5914	strh	r0, [r3], #8	@ movhi
5915	mov	r0, r3
5916	bl	ftl_memset
5917	mov	r0, r4
5918	pop	{r4, pc}
5919.L854:
5920	.align	2
5921.L853:
5922	.word	.LANCHOR76
5923	.size	FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
5924	.section	.text.ftl_free_no_use_map_blk,"ax",%progbits
5925	.align	1
5926	.global	ftl_free_no_use_map_blk
5927	.syntax unified
5928	.thumb
5929	.thumb_func
5930	.fpu softvfp
5931	.type	ftl_free_no_use_map_blk, %function
5932ftl_free_no_use_map_blk:
5933	@ args = 0, pretend = 0, frame = 8
5934	@ frame_needed = 0, uses_anonymous_args = 0
5935	ldrh	r2, [r0, #10]
5936	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
5937	mov	r4, r0
5938	ldr	r5, [r0, #20]
5939	movs	r1, #0
5940	ldr	r7, [r0, #12]
5941	lsls	r2, r2, #1
5942	ldr	r6, [r0, #24]
5943	mov	r0, r5
5944	bl	ftl_memset
5945	movs	r3, #0
5946.L856:
5947	ldrh	r1, [r4, #6]
5948	uxth	r2, r3
5949	cmp	r1, r2
5950	bhi	.L860
5951	ldr	r3, .L875
5952	movs	r6, #0
5953	mov	r10, r6
5954	ldrh	r2, [r3]
5955	ldrh	r3, [r4]
5956	strh	r2, [r5, r3, lsl #1]	@ movhi
5957	mov	r2, r6
5958	ldrh	fp, [r5]
5959.L861:
5960	ldrh	r3, [r4, #10]
5961	uxth	ip, r6
5962	cmp	r3, ip
5963	bhi	.L865
5964	mov	r0, r10
5965	add	sp, sp, #8
5966	@ sp needed
5967	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5968.L860:
5969	uxth	r2, r3
5970	ldr	r1, [r6, r2, lsl #2]
5971	movs	r2, #0
5972	ubfx	r1, r1, #10, #16
5973.L857:
5974	ldrh	ip, [r4, #10]
5975	uxth	r0, r2
5976	cmp	ip, r0
5977	bhi	.L859
5978	adds	r3, r3, #1
5979	b	.L856
5980.L859:
5981	uxth	r0, r2
5982	ldrh	ip, [r7, r0, lsl #1]
5983	cmp	ip, r1
5984	bne	.L858
5985	cbz	r1, .L858
5986	ldrh	ip, [r5, r0, lsl #1]
5987	add	ip, ip, #1
5988	strh	ip, [r5, r0, lsl #1]	@ movhi
5989.L858:
5990	adds	r2, r2, #1
5991	b	.L857
5992.L865:
5993	uxth	r1, r6
5994	ldrh	r3, [r5, r1, lsl #1]
5995	lsl	r8, r1, #1
5996	cmp	fp, r3
5997	bls	.L862
5998	ldrh	r0, [r7, r1, lsl #1]
5999	add	r8, r8, r7
6000	cbnz	r0, .L863
6001.L864:
6002	adds	r6, r6, #1
6003	b	.L861
6004.L862:
6005	cmp	r3, #0
6006	bne	.L864
6007	ldrh	r0, [r7, r1, lsl #1]
6008	add	r8, r8, r7
6009	cmp	r0, #0
6010	beq	.L864
6011.L866:
6012	movs	r1, #1
6013	str	r2, [sp, #4]
6014	bl	FtlFreeSysBlkQueueIn
6015	ldr	r2, [sp, #4]
6016	strh	r2, [r8]	@ movhi
6017	ldrh	r3, [r4, #8]
6018	subs	r3, r3, #1
6019	strh	r3, [r4, #8]	@ movhi
6020	b	.L864
6021.L863:
6022	mov	r10, ip
6023	mov	fp, r3
6024	cmp	r3, #0
6025	beq	.L866
6026	b	.L864
6027.L876:
6028	.align	2
6029.L875:
6030	.word	.LANCHOR54
6031	.size	ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
6032	.section	.text.FtlL2PDataInit,"ax",%progbits
6033	.align	1
6034	.global	FtlL2PDataInit
6035	.syntax unified
6036	.thumb
6037	.thumb_func
6038	.fpu softvfp
6039	.type	FtlL2PDataInit, %function
6040FtlL2PDataInit:
6041	@ args = 0, pretend = 0, frame = 0
6042	@ frame_needed = 0, uses_anonymous_args = 0
6043	push	{r4, r5, r6, r7, r8, lr}
6044	movs	r1, #0
6045	ldr	r5, .L880
6046	ldr	r4, .L880+4
6047	ldr	r2, [r5]
6048	ldr	r7, .L880+8
6049	ldr	r6, .L880+12
6050	ldr	r0, [r4]
6051	lsls	r2, r2, #1
6052	ldr	r8, .L880+44
6053	bl	ftl_memset
6054	ldrh	r3, [r7]
6055	movs	r1, #255
6056	ldrh	r2, [r6]
6057	ldr	r0, [r8]
6058	muls	r2, r3, r2
6059	bl	ftl_memset
6060	ldr	r3, .L880+16
6061	movw	r0, #65535
6062	ldrh	r1, [r6]
6063	ldr	ip, [r8]
6064	ldr	r2, [r3]
6065	movs	r3, #12
6066	ldrh	r7, [r7]
6067	mla	r3, r1, r3, r3
6068	adds	r1, r2, r3
6069	movs	r3, #0
6070	mov	lr, r3
6071.L878:
6072	adds	r2, r2, #12
6073	adds	r6, r3, r7
6074	cmp	r2, r1
6075	bne	.L879
6076	ldr	r3, .L880+20
6077	ldr	r2, [r5]
6078	strh	r0, [r3, #2]	@ movhi
6079	strh	r2, [r3, #10]	@ movhi
6080	movw	r2, #61634
6081	strh	r2, [r3, #4]	@ movhi
6082	ldr	r2, .L880+24
6083	strh	r0, [r3]	@ movhi
6084	ldrh	r2, [r2]
6085	strh	r2, [r3, #8]	@ movhi
6086	ldr	r2, .L880+28
6087	ldrh	r2, [r2]
6088	strh	r2, [r3, #6]	@ movhi
6089	ldr	r2, .L880+32
6090	ldr	r2, [r2]
6091	str	r2, [r3, #12]
6092	ldr	r2, .L880+36
6093	ldr	r2, [r2]
6094	str	r2, [r3, #16]
6095	ldr	r2, [r4]
6096	str	r2, [r3, #20]
6097	ldr	r2, .L880+40
6098	ldr	r2, [r2]
6099	str	r2, [r3, #24]
6100	pop	{r4, r5, r6, r7, r8, pc}
6101.L879:
6102	bic	r3, r3, #3
6103	str	lr, [r2, #-8]
6104	add	r3, r3, ip
6105	strh	r0, [r2, #-12]	@ movhi
6106	str	r3, [r2, #-4]
6107	mov	r3, r6
6108	b	.L878
6109.L881:
6110	.align	2
6111.L880:
6112	.word	.LANCHOR65
6113	.word	.LANCHOR125
6114	.word	.LANCHOR58
6115	.word	.LANCHOR68
6116	.word	.LANCHOR97
6117	.word	.LANCHOR127
6118	.word	.LANCHOR128
6119	.word	.LANCHOR67
6120	.word	.LANCHOR129
6121	.word	.LANCHOR130
6122	.word	.LANCHOR131
6123	.word	.LANCHOR126
6124	.size	FtlL2PDataInit, .-FtlL2PDataInit
6125	.section	.text.FtlVariablesInit,"ax",%progbits
6126	.align	1
6127	.global	FtlVariablesInit
6128	.syntax unified
6129	.thumb
6130	.thumb_func
6131	.fpu softvfp
6132	.type	FtlVariablesInit, %function
6133FtlVariablesInit:
6134	@ args = 0, pretend = 0, frame = 0
6135	@ frame_needed = 0, uses_anonymous_args = 0
6136	push	{r3, r4, r5, lr}
6137	movs	r4, #0
6138	ldr	r3, .L883
6139	movw	r2, #65535
6140	mov	r1, r4
6141	ldr	r5, .L883+4
6142	str	r4, [r3]
6143	ldr	r3, .L883+8
6144	strh	r2, [r3]	@ movhi
6145	mov	r2, #-1
6146	ldr	r3, .L883+12
6147	str	r4, [r3]
6148	ldr	r3, .L883+16
6149	str	r4, [r3]
6150	ldr	r3, .L883+20
6151	str	r2, [r3]
6152	ldr	r3, .L883+24
6153	str	r4, [r3]
6154	ldr	r3, .L883+28
6155	strh	r4, [r3]	@ movhi
6156	ldr	r3, .L883+32
6157	ldrh	r2, [r3]
6158	ldr	r3, .L883+36
6159	lsls	r2, r2, #1
6160	ldr	r0, [r3]
6161	bl	ftl_memset
6162	ldrh	r2, [r5]
6163	mov	r1, r4
6164	ldr	r3, .L883+40
6165	lsls	r2, r2, #1
6166	ldr	r0, [r3]
6167	bl	ftl_memset
6168	ldrh	r2, [r5]
6169	mov	r1, r4
6170	ldr	r3, .L883+44
6171	lsls	r2, r2, #1
6172	ldr	r0, [r3]
6173	bl	ftl_memset
6174	mov	r1, r4
6175	movs	r2, #48
6176	ldr	r0, .L883+48
6177	bl	ftl_memset
6178	mov	r2, #512
6179	mov	r1, r4
6180	ldr	r0, .L883+52
6181	bl	ftl_memset
6182	bl	FtlGcBufInit
6183	bl	FtlL2PDataInit
6184	mov	r0, r4
6185	pop	{r3, r4, r5, pc}
6186.L884:
6187	.align	2
6188.L883:
6189	.word	.LANCHOR132
6190	.word	.LANCHOR41
6191	.word	.LANCHOR133
6192	.word	.LANCHOR134
6193	.word	.LANCHOR135
6194	.word	.LANCHOR136
6195	.word	.LANCHOR28
6196	.word	.LANCHOR71
6197	.word	.LANCHOR62
6198	.word	.LANCHOR72
6199	.word	.LANCHOR79
6200	.word	.LANCHOR137
6201	.word	.LANCHOR81
6202	.word	.LANCHOR138
6203	.size	FtlVariablesInit, .-FtlVariablesInit
6204	.section	.text.SupperBlkListInit,"ax",%progbits
6205	.align	1
6206	.global	SupperBlkListInit
6207	.syntax unified
6208	.thumb
6209	.thumb_func
6210	.fpu softvfp
6211	.type	SupperBlkListInit, %function
6212SupperBlkListInit:
6213	@ args = 0, pretend = 0, frame = 24
6214	@ frame_needed = 0, uses_anonymous_args = 0
6215	ldr	r3, .L896
6216	movs	r2, #6
6217	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6218	movs	r1, #0
6219	ldr	r6, .L896+4
6220	sub	sp, sp, #24
6221	movs	r4, #0
6222	ldrh	r3, [r3]
6223	mov	r8, r4
6224	ldr	r0, [r6]
6225	mov	r5, r4
6226	mov	r10, r6
6227	muls	r2, r3, r2
6228	bl	ftl_memset
6229	ldr	r3, .L896+8
6230	ldr	r2, .L896+12
6231	ldr	r1, .L896+16
6232	str	r4, [r3]
6233	ldr	r3, .L896+20
6234	strh	r4, [r2]	@ movhi
6235	strh	r4, [r1]	@ movhi
6236	str	r4, [r3]
6237	ldr	r3, .L896+24
6238	str	r2, [sp, #8]
6239	str	r4, [r3]
6240	ldr	r3, .L896+28
6241	mov	fp, r3
6242	strh	r4, [r3]	@ movhi
6243.L886:
6244	ldr	r3, .L896+32
6245	sxth	r7, r4
6246	ldrh	r3, [r3]
6247	cmp	r7, r3
6248	bge	.L893
6249	ldr	r3, .L896+36
6250	uxth	r1, r4
6251	str	r1, [sp, #12]
6252	ldrh	r2, [r3]
6253	ldr	r3, .L896+40
6254	ldrh	r3, [r3]
6255	str	r3, [sp, #4]
6256	movs	r3, #0
6257	mov	r6, r3
6258	b	.L894
6259.L888:
6260	str	r3, [sp, #20]
6261	ldr	r3, .L896+44
6262	ldr	r1, [sp, #12]
6263	str	r2, [sp, #16]
6264	ldrb	r0, [r3, r0]	@ zero_extendqisi2
6265	bl	V2P_block
6266	bl	FtlBbmIsBadBlock
6267	ldr	r2, [sp, #16]
6268	ldr	r3, [sp, #20]
6269	cbnz	r0, .L887
6270	ldr	r1, [sp, #4]
6271	add	r6, r6, r1
6272	sxth	r6, r6
6273.L887:
6274	adds	r3, r3, #1
6275.L894:
6276	sxth	r0, r3
6277	cmp	r0, r2
6278	blt	.L888
6279	lsls	r3, r7, #1
6280	cbz	r6, .L889
6281	mov	r1, r6
6282	str	r3, [sp, #4]
6283	mov	r0, #32768
6284	bl	__aeabi_idiv
6285	ldr	r3, [sp, #4]
6286	sxth	r6, r0
6287.L890:
6288	ldr	r2, [r10]
6289	add	r3, r3, r7
6290	add	r2, r2, r3, lsl #1
6291	ldr	r3, .L896+48
6292	strh	r6, [r2, #4]	@ movhi
6293	ldrh	r3, [r3]
6294	cmp	r7, r3
6295	beq	.L891
6296	ldr	r3, .L896+52
6297	ldrh	r3, [r3]
6298	cmp	r7, r3
6299	beq	.L891
6300	ldr	r3, .L896+56
6301	ldrh	r3, [r3]
6302	cmp	r7, r3
6303	beq	.L891
6304	ldr	r3, .L896+60
6305	uxth	r0, r4
6306	ldr	r3, [r3]
6307	ldrh	r3, [r3, r7, lsl #1]
6308	cbnz	r3, .L892
6309	add	r8, r8, #1
6310	uxth	r8, r8
6311	bl	INSERT_FREE_LIST
6312.L891:
6313	adds	r4, r4, #1
6314	b	.L886
6315.L889:
6316	ldr	r2, .L896+60
6317	movw	r1, #65535
6318	ldr	r2, [r2]
6319	strh	r1, [r2, r7, lsl #1]	@ movhi
6320	b	.L890
6321.L892:
6322	adds	r5, r5, #1
6323	uxth	r5, r5
6324	bl	INSERT_DATA_LIST
6325	b	.L891
6326.L893:
6327	ldr	r2, [sp, #8]
6328	strh	r8, [fp]	@ movhi
6329	strh	r5, [r2]	@ movhi
6330	add	r5, r5, r8
6331	cmp	r3, r5
6332	bge	.L895
6333	ldr	r1, .L896+64
6334	movw	r2, #2614
6335	ldr	r0, .L896+68
6336	bl	printf
6337	ldr	r1, .L896+72
6338	ldr	r0, .L896+76
6339	bl	printf
6340.L895:
6341	movs	r0, #0
6342	add	sp, sp, #24
6343	@ sp needed
6344	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6345.L897:
6346	.align	2
6347.L896:
6348	.word	.LANCHOR41
6349	.word	.LANCHOR82
6350	.word	.LANCHOR88
6351	.word	.LANCHOR86
6352	.word	.LANCHOR139
6353	.word	.LANCHOR83
6354	.word	.LANCHOR85
6355	.word	.LANCHOR89
6356	.word	.LANCHOR40
6357	.word	.LANCHOR38
6358	.word	.LANCHOR53
6359	.word	.LANCHOR47
6360	.word	.LANCHOR92
6361	.word	.LANCHOR93
6362	.word	.LANCHOR94
6363	.word	.LANCHOR84
6364	.word	.LANCHOR140
6365	.word	.LC5
6366	.word	.LC6
6367	.word	.LC7
6368	.size	SupperBlkListInit, .-SupperBlkListInit
6369	.section	.text.FtlGcPageVarInit,"ax",%progbits
6370	.align	1
6371	.global	FtlGcPageVarInit
6372	.syntax unified
6373	.thumb
6374	.thumb_func
6375	.fpu softvfp
6376	.type	FtlGcPageVarInit, %function
6377FtlGcPageVarInit:
6378	@ args = 0, pretend = 0, frame = 0
6379	@ frame_needed = 0, uses_anonymous_args = 0
6380	ldr	r2, .L899
6381	movs	r3, #0
6382	push	{r4, lr}
6383	movs	r1, #255
6384	ldr	r4, .L899+4
6385	strh	r3, [r2]	@ movhi
6386	ldr	r2, .L899+8
6387	strh	r3, [r2]	@ movhi
6388	ldrh	r2, [r4]
6389	ldr	r3, .L899+12
6390	lsls	r2, r2, #1
6391	ldr	r0, [r3]
6392	bl	ftl_memset
6393	ldrh	r3, [r4]
6394	movs	r2, #12
6395	movs	r1, #255
6396	muls	r2, r3, r2
6397	ldr	r3, .L899+16
6398	ldr	r0, [r3]
6399	bl	ftl_memset
6400	pop	{r4, lr}
6401	b	FtlGcBufInit
6402.L900:
6403	.align	2
6404.L899:
6405	.word	.LANCHOR110
6406	.word	.LANCHOR55
6407	.word	.LANCHOR111
6408	.word	.LANCHOR109
6409	.word	.LANCHOR112
6410	.size	FtlGcPageVarInit, .-FtlGcPageVarInit
6411	.section	.text.idb_init,"ax",%progbits
6412	.align	1
6413	.global	idb_init
6414	.syntax unified
6415	.thumb
6416	.thumb_func
6417	.fpu softvfp
6418	.type	idb_init, %function
6419idb_init:
6420	@ args = 0, pretend = 0, frame = 0
6421	@ frame_needed = 0, uses_anonymous_args = 0
6422	push	{r3, lr}
6423	mov	r2, #262144
6424	movs	r1, #0
6425	ldr	r0, .L902
6426	bl	ftl_memset
6427	movs	r0, #0
6428	pop	{r3, pc}
6429.L903:
6430	.align	2
6431.L902:
6432	.word	idb_buf
6433	.size	idb_init, .-idb_init
6434	.section	.text.ftl_memcpy,"ax",%progbits
6435	.align	1
6436	.global	ftl_memcpy
6437	.syntax unified
6438	.thumb
6439	.thumb_func
6440	.fpu softvfp
6441	.type	ftl_memcpy, %function
6442ftl_memcpy:
6443	@ args = 0, pretend = 0, frame = 0
6444	@ frame_needed = 0, uses_anonymous_args = 0
6445	@ link register save eliminated.
6446	b	memcpy
6447	.size	ftl_memcpy, .-ftl_memcpy
6448	.section	.text.FlashReadIdbData,"ax",%progbits
6449	.align	1
6450	.global	FlashReadIdbData
6451	.syntax unified
6452	.thumb
6453	.thumb_func
6454	.fpu softvfp
6455	.type	FlashReadIdbData, %function
6456FlashReadIdbData:
6457	@ args = 0, pretend = 0, frame = 0
6458	@ frame_needed = 0, uses_anonymous_args = 0
6459	push	{r3, lr}
6460	mov	r2, #2048
6461	ldr	r1, .L906
6462	bl	ftl_memcpy
6463	movs	r0, #0
6464	pop	{r3, pc}
6465.L907:
6466	.align	2
6467.L906:
6468	.word	.LANCHOR141
6469	.size	FlashReadIdbData, .-FlashReadIdbData
6470	.section	.text.FlashLoadPhyInfoInRam,"ax",%progbits
6471	.align	1
6472	.global	FlashLoadPhyInfoInRam
6473	.syntax unified
6474	.thumb
6475	.thumb_func
6476	.fpu softvfp
6477	.type	FlashLoadPhyInfoInRam, %function
6478FlashLoadPhyInfoInRam:
6479	@ args = 0, pretend = 0, frame = 0
6480	@ frame_needed = 0, uses_anonymous_args = 0
6481	push	{r4, r5, r6, r7, r8, lr}
6482	movs	r6, #0
6483	ldr	r7, .L916
6484	ldr	r5, .L916+4
6485.L911:
6486	ldrb	r2, [r7, #-1]	@ zero_extendqisi2
6487	mov	r1, r5
6488	mov	r0, r7
6489	lsl	r8, r6, #5
6490	bl	FlashMemCmp8
6491	mov	r4, r0
6492	cbnz	r0, .L909
6493	ldr	r5, .L916+8
6494	mov	r3, r4
6495	ldr	r2, .L916+12
6496	add	r5, r5, r8
6497	ldrb	r0, [r5, #22]	@ zero_extendqisi2
6498	mov	r1, r2
6499.L910:
6500	lsls	r6, r3, #5
6501	ldrb	r6, [r6, r2]	@ zero_extendqisi2
6502	cmp	r6, r0
6503	beq	.L913
6504	adds	r3, r3, #1
6505	cmp	r3, #4
6506	bne	.L910
6507.L913:
6508	add	r1, r1, r3, lsl #5
6509	movs	r2, #32
6510	ldr	r0, .L916+16
6511	bl	ftl_memcpy
6512	movs	r2, #32
6513	mov	r1, r5
6514	ldr	r0, .L916+20
6515	bl	ftl_memcpy
6516	b	.L908
6517.L909:
6518	adds	r6, r6, #1
6519	adds	r7, r7, #32
6520	cmp	r6, #77
6521	bne	.L911
6522	mov	r4, #-1
6523.L908:
6524	mov	r0, r4
6525	pop	{r4, r5, r6, r7, r8, pc}
6526.L917:
6527	.align	2
6528.L916:
6529	.word	.LANCHOR142+1
6530	.word	.LANCHOR22
6531	.word	.LANCHOR142
6532	.word	.LANCHOR143
6533	.word	.LANCHOR7
6534	.word	.LANCHOR31
6535	.size	FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam
6536	.section	.text.ftl_memcpy32,"ax",%progbits
6537	.align	1
6538	.global	ftl_memcpy32
6539	.syntax unified
6540	.thumb
6541	.thumb_func
6542	.fpu softvfp
6543	.type	ftl_memcpy32, %function
6544ftl_memcpy32:
6545	@ args = 0, pretend = 0, frame = 0
6546	@ frame_needed = 0, uses_anonymous_args = 0
6547	movs	r3, #0
6548	push	{r4, lr}
6549.L919:
6550	cmp	r3, r2
6551	bne	.L920
6552	pop	{r4, pc}
6553.L920:
6554	ldr	r4, [r1, r3, lsl #2]
6555	str	r4, [r0, r3, lsl #2]
6556	adds	r3, r3, #1
6557	b	.L919
6558	.size	ftl_memcpy32, .-ftl_memcpy32
6559	.section	.text.NandcCopy1KB,"ax",%progbits
6560	.align	1
6561	.global	NandcCopy1KB
6562	.syntax unified
6563	.thumb
6564	.thumb_func
6565	.fpu softvfp
6566	.type	NandcCopy1KB, %function
6567NandcCopy1KB:
6568	@ args = 4, pretend = 0, frame = 0
6569	@ frame_needed = 0, uses_anonymous_args = 0
6570	cmp	r1, #1
6571	push	{r4, r5, r6, lr}
6572	mov	r4, r2
6573	add	r2, r0, #4096
6574	add	r6, r0, #512
6575	add	r0, r2, r4, lsl #9
6576	ldr	r5, [sp, #16]
6577	bne	.L922
6578	cbz	r3, .L923
6579	lsls	r1, r3, #30
6580	bne	.L924
6581	mov	r2, #256
6582	mov	r1, r3
6583	bl	ftl_memcpy32
6584.L923:
6585	cbz	r5, .L921
6586	ldrb	r2, [r5, #1]	@ zero_extendqisi2
6587	lsrs	r4, r4, #1
6588	ldrb	r3, [r5]	@ zero_extendqisi2
6589	add	r4, r4, r4, lsl #1
6590	lsls	r4, r4, #4
6591	orr	r3, r3, r2, lsl #8
6592	ldrb	r2, [r5, #2]	@ zero_extendqisi2
6593	orr	r3, r3, r2, lsl #16
6594	ldrb	r2, [r5, #3]	@ zero_extendqisi2
6595	orr	r3, r3, r2, lsl #24
6596	str	r3, [r6, r4]
6597	pop	{r4, r5, r6, pc}
6598.L924:
6599	mov	r2, #1024
6600	mov	r1, r3
6601	bl	ftl_memcpy
6602	b	.L923
6603.L922:
6604	cbz	r3, .L927
6605	lsls	r2, r3, #30
6606	bne	.L928
6607	mov	r1, r0
6608	mov	r2, #256
6609	mov	r0, r3
6610	bl	ftl_memcpy32
6611.L927:
6612	cbz	r5, .L921
6613	lsrs	r4, r4, #1
6614	add	r4, r4, r4, lsl #1
6615	lsls	r4, r4, #4
6616	ldr	r3, [r6, r4]
6617	strb	r3, [r5]
6618	lsrs	r2, r3, #8
6619	strb	r2, [r5, #1]
6620	lsrs	r2, r3, #16
6621	lsrs	r3, r3, #24
6622	strb	r2, [r5, #2]
6623	strb	r3, [r5, #3]
6624.L921:
6625	pop	{r4, r5, r6, pc}
6626.L928:
6627	mov	r1, r0
6628	mov	r2, #1024
6629	mov	r0, r3
6630	bl	ftl_memcpy
6631	b	.L927
6632	.size	NandcCopy1KB, .-NandcCopy1KB
6633	.section	.text.NandcXferData,"ax",%progbits
6634	.align	1
6635	.global	NandcXferData
6636	.syntax unified
6637	.thumb
6638	.thumb_func
6639	.fpu softvfp
6640	.type	NandcXferData, %function
6641NandcXferData:
6642	@ args = 4, pretend = 0, frame = 88
6643	@ frame_needed = 0, uses_anonymous_args = 0
6644	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6645	mov	r7, r3
6646	ldr	r3, .L975
6647	sub	sp, sp, #96
6648	mov	r6, r0
6649	mov	r10, r2
6650	str	r1, [sp, #12]
6651	ldr	r5, [r3, r0, lsl #3]
6652	lsls	r3, r7, #26
6653	ldr	r4, [sp, #128]
6654	bne	.L940
6655	cbnz	r4, .L941
6656	add	r4, sp, #32
6657	movs	r2, #64
6658	movs	r1, #255
6659	add	r0, sp, #32
6660	bl	ftl_memset
6661.L941:
6662	movs	r3, #0
6663	mov	r2, r10
6664	ldr	r1, [sp, #12]
6665	mov	r0, r6
6666	str	r4, [sp, #4]
6667	str	r7, [sp]
6668	bl	NandcXferStart
6669	mov	r0, r6
6670	bl	NandcXferComp
6671	ldr	r3, [sp, #12]
6672	cmp	r3, #0
6673	bne	.L965
6674	ldr	r2, .L975+4
6675	lsr	r0, r10, #1
6676	ldr	ip, .L975+12
6677	ldr	r3, [r2]
6678	cmp	r3, #25
6679	ldr	r3, [sp, #12]
6680	ite	cc
6681	movcc	r7, #64
6682	movcs	r7, #128
6683	mov	r1, r3
6684.L944:
6685	cmp	r1, r0
6686	add	r4, r4, #4
6687	add	r6, r7, r3
6688	bcc	.L945
6689	ldr	r3, .L975+8
6690	lsr	r4, r10, #2
6691	ldr	r0, [r2]
6692	movs	r2, #0
6693	mov	r8, r2
6694	ldr	r1, [r3]
6695.L946:
6696	cmp	r2, r4
6697	bcs	.L942
6698	cbnz	r0, .L952
6699.L942:
6700	movs	r3, #0
6701	str	r3, [r5, #16]
6702.L953:
6703	ldr	r3, .L975+8
6704	ldr	r3, [r3]
6705	cmp	r3, #5
6706	bls	.L939
6707	ldr	r3, [sp, #12]
6708	cbnz	r3, .L939
6709	ldr	r3, [r5]
6710	and	r2, r3, #139264
6711	cmp	r2, #139264
6712	ittt	eq
6713	moveq	r8, #-1
6714	orreq	r3, r3, #131072
6715	streq	r3, [r5]
6716.L939:
6717	mov	r0, r8
6718	add	sp, sp, #96
6719	@ sp needed
6720	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6721.L945:
6722	bic	lr, r3, #3
6723	ldr	r3, [ip, #4]
6724	adds	r1, r1, #1
6725	ldr	r3, [r3, lr]
6726	strb	r3, [r4, #-4]
6727	lsr	lr, r3, #8
6728	strb	lr, [r4, #-3]
6729	lsr	lr, r3, #16
6730	lsrs	r3, r3, #24
6731	strb	lr, [r4, #-2]
6732	strb	r3, [r4, #-1]
6733	mov	r3, r6
6734	b	.L944
6735.L952:
6736	add	r3, r2, #8
6737	ldr	r3, [r5, r3, lsl #2]
6738	str	r3, [sp, #28]
6739	ldr	r3, [sp, #28]
6740	lsls	r6, r3, #29
6741	bmi	.L968
6742	ldr	r3, [sp, #28]
6743	ubfx	r3, r3, #15, #1
6744	cmp	r3, #0
6745	bne	.L968
6746	cmp	r1, #5
6747	bls	.L948
6748	ldr	r6, [sp, #28]
6749	ldr	r3, [sp, #28]
6750	ubfx	r6, r6, #3, #5
6751	ubfx	ip, r3, #27, #1
6752	ldr	r3, [sp, #28]
6753	ldr	r7, [sp, #28]
6754	orr	r6, r6, ip, lsl #5
6755	ubfx	r3, r3, #16, #5
6756	ubfx	r7, r7, #29, #1
6757	orr	r3, r3, r7, lsl #5
6758	cmp	r6, r3
6759	ldr	r3, [sp, #28]
6760	itete	hi
6761	ldrhi	r6, [sp, #28]
6762	ldrls	r6, [sp, #28]
6763	ubfxhi	r3, r3, #3, #5
6764	ubfxls	r3, r3, #16, #5
6765	ite	hi
6766	ubfxhi	r6, r6, #27, #1
6767	ubfxls	r6, r6, #29, #1
6768.L974:
6769	orr	r3, r3, r6, lsl #5
6770.L950:
6771	cmp	r8, r3
6772	it	cc
6773	movcc	r8, r3
6774.L947:
6775	adds	r2, r2, #1
6776	b	.L946
6777.L948:
6778	cmp	r1, #3
6779	bls	.L950
6780	ldr	r6, [sp, #28]
6781	ldr	r3, [sp, #28]
6782	ubfx	r6, r6, #3, #5
6783	ubfx	ip, r3, #28, #1
6784	ldr	r3, [sp, #28]
6785	ldr	r7, [sp, #28]
6786	orr	r6, r6, ip, lsl #5
6787	ubfx	r3, r3, #16, #5
6788	ubfx	r7, r7, #30, #1
6789	orr	r3, r3, r7, lsl #5
6790	cmp	r6, r3
6791	ldr	r3, [sp, #28]
6792	itete	hi
6793	ldrhi	r6, [sp, #28]
6794	ldrls	r6, [sp, #28]
6795	ubfxhi	r3, r3, #3, #5
6796	ubfxls	r3, r3, #16, #5
6797	ite	hi
6798	ubfxhi	r6, r6, #28, #1
6799	ubfxls	r6, r6, #30, #1
6800	b	.L974
6801.L968:
6802	mov	r8, #-1
6803	b	.L947
6804.L965:
6805	mov	r8, #0
6806	b	.L942
6807.L940:
6808	ldr	r3, [sp, #12]
6809	cmp	r3, #1
6810	bne	.L954
6811	cmp	r4, #0
6812	mov	r8, #0
6813	ite	ne
6814	movne	r3, #4
6815	moveq	r3, #0
6816	str	r3, [sp, #16]
6817.L955:
6818	cmp	r8, r10
6819	bcc	.L957
6820	mov	r8, #0
6821	b	.L953
6822.L957:
6823	and	fp, r8, #3
6824	cbz	r7, .L970
6825	add	r3, r7, r8, lsl #9
6826.L956:
6827	str	r4, [sp]
6828	mov	r2, fp
6829	movs	r1, #1
6830	mov	r0, r5
6831	bl	NandcCopy1KB
6832	movs	r3, #0
6833	movs	r2, #2
6834	str	r3, [sp, #4]
6835	movs	r1, #1
6836	str	r3, [sp]
6837	mov	r0, r6
6838	mov	r3, fp
6839	add	r8, r8, #2
6840	bl	NandcXferStart
6841	mov	r0, r6
6842	bl	NandcXferComp
6843	ldr	r3, [sp, #16]
6844	add	r4, r4, r3
6845	b	.L955
6846.L970:
6847	mov	r3, r7
6848	b	.L956
6849.L954:
6850	mov	r8, #0
6851	movs	r2, #2
6852	mov	r3, r8
6853	str	r8, [sp, #4]
6854	str	r8, [sp]
6855	mov	r1, r8
6856	bl	NandcXferStart
6857	mov	fp, r7
6858	cmp	r4, r8
6859	str	r4, [sp, #16]
6860	mov	r4, r8
6861	ite	ne
6862	movne	r3, #4
6863	moveq	r3, r8
6864	str	r3, [sp, #20]
6865.L958:
6866	cmp	r4, r10
6867	bcs	.L953
6868	mov	r0, r6
6869	adds	r4, r4, #2
6870	bl	NandcXferComp
6871	ldr	r3, [r5, #32]
6872	cmp	r10, r4
6873	str	r3, [sp, #28]
6874	bls	.L959
6875	movs	r3, #0
6876	movs	r2, #2
6877	str	r3, [sp, #4]
6878	movs	r1, #0
6879	str	r3, [sp]
6880	mov	r0, r6
6881	and	r3, r4, #3
6882	bl	NandcXferStart
6883.L959:
6884	ldr	r3, [sp, #28]
6885	lsls	r3, r3, #29
6886	bmi	.L971
6887	ldr	r3, [sp, #28]
6888	ldr	r2, [sp, #28]
6889	ubfx	r3, r3, #3, #5
6890	ubfx	r2, r2, #27, #1
6891	orr	r3, r3, r2, lsl #5
6892	cmp	r8, r3
6893	it	cc
6894	movcc	r8, r3
6895.L960:
6896	ldr	r3, [sp, #16]
6897	cmp	r7, #0
6898	sub	r2, r4, #2
6899	mov	r1, #0
6900	and	r2, r2, #3
6901	mov	r0, r5
6902	str	r3, [sp]
6903	ite	ne
6904	movne	r3, fp
6905	moveq	r3, #0
6906	add	fp, fp, #1024
6907	bl	NandcCopy1KB
6908	ldr	r3, [sp, #16]
6909	ldr	r2, [sp, #20]
6910	add	r3, r3, r2
6911	str	r3, [sp, #16]
6912	b	.L958
6913.L971:
6914	mov	r8, #-1
6915	b	.L960
6916.L976:
6917	.align	2
6918.L975:
6919	.word	.LANCHOR6
6920	.word	.LANCHOR32
6921	.word	.LANCHOR34
6922	.word	.LANCHOR35
6923	.size	NandcXferData, .-NandcXferData
6924	.section	.text.FlashReadRawPage,"ax",%progbits
6925	.align	1
6926	.global	FlashReadRawPage
6927	.syntax unified
6928	.thumb
6929	.thumb_func
6930	.fpu softvfp
6931	.type	FlashReadRawPage, %function
6932FlashReadRawPage:
6933	@ args = 0, pretend = 0, frame = 0
6934	@ frame_needed = 0, uses_anonymous_args = 0
6935	push	{r0, r1, r4, r5, r6, r7, r8, lr}
6936	mov	r8, r3
6937	ldr	r3, .L979
6938	mov	r6, r1
6939	mov	r7, r2
6940	mov	r4, r0
6941	ldrb	r5, [r3, #9]	@ zero_extendqisi2
6942	cbnz	r0, .L978
6943	ldr	r3, .L979+4
6944	ldr	r2, .L979+8
6945	ldrb	r3, [r3]	@ zero_extendqisi2
6946	ldr	r0, [r2]
6947	muls	r0, r3, r0
6948	cmp	r0, r1
6949	it	hi
6950	movhi	r5, #4
6951.L978:
6952	mov	r0, r4
6953	bl	NandcWaitFlashReady
6954	mov	r0, r4
6955	bl	NandcFlashCs
6956	mov	r1, r6
6957	mov	r0, r4
6958	bl	FlashReadCmd
6959	mov	r0, r4
6960	bl	NandcWaitFlashReady
6961	mov	r3, r7
6962	mov	r2, r5
6963	str	r8, [sp]
6964	movs	r1, #0
6965	mov	r0, r4
6966	bl	NandcXferData
6967	mov	r1, r0
6968	mov	r0, r4
6969	bl	NandcFlashDeCs
6970	mov	r0, r1
6971	add	sp, sp, #8
6972	@ sp needed
6973	pop	{r4, r5, r6, r7, r8, pc}
6974.L980:
6975	.align	2
6976.L979:
6977	.word	.LANCHOR31
6978	.word	.LANCHOR2
6979	.word	.LANCHOR3
6980	.size	FlashReadRawPage, .-FlashReadRawPage
6981	.section	.text.FlashDdrTunningRead,"ax",%progbits
6982	.align	1
6983	.global	FlashDdrTunningRead
6984	.syntax unified
6985	.thumb
6986	.thumb_func
6987	.fpu softvfp
6988	.type	FlashDdrTunningRead, %function
6989FlashDdrTunningRead:
6990	@ args = 4, pretend = 0, frame = 24
6991	@ frame_needed = 0, uses_anonymous_args = 0
6992	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6993	mov	r7, r3
6994	ldr	r3, .L1006
6995	sub	sp, sp, #24
6996	str	r0, [sp, #8]
6997	ldr	r3, [r3]
6998	str	r1, [sp, #12]
6999	str	r2, [sp, #4]
7000	ldr	r3, [r3, #304]
7001	str	r3, [sp, #20]
7002	ldr	r3, .L1006+4
7003	ldr	r3, [r3]
7004	cmp	r3, #8
7005	ldr	r3, [sp, #56]
7006	ite	cc
7007	movcc	fp, #6
7008	movcs	fp, #12
7009	cmp	r3, #0
7010	beq	.L995
7011	movs	r0, #1
7012	ldr	r4, .L1006+8
7013	bl	FlashSetInterfaceMode
7014	movs	r0, #1
7015	bl	NandcSetMode
7016	ldr	r0, [sp, #8]
7017	bl	FlashReset
7018	mov	r3, r7
7019	ldr	r2, [sp, #4]
7020	ldr	r1, [sp, #12]
7021	ldr	r0, [sp, #8]
7022	bl	FlashReadRawPage
7023	mov	r6, r0
7024	ldrb	r0, [r4]	@ zero_extendqisi2
7025	bl	FlashSetInterfaceMode
7026	ldrb	r0, [r4]	@ zero_extendqisi2
7027	bl	NandcSetMode
7028	adds	r3, r6, #1
7029	bne	.L984
7030.L993:
7031	mov	r6, #-1
7032.L981:
7033	mov	r0, r6
7034	add	sp, sp, #24
7035	@ sp needed
7036	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7037.L984:
7038	mov	r2, r6
7039	ldr	r1, [sp, #12]
7040	ldr	r0, .L1006+12
7041	bl	printf
7042	ldr	r2, .L1006+16
7043	ldr	r3, [r2]
7044	adds	r3, r3, #1
7045	cmp	r3, #2048
7046	bcs	.L986
7047	str	r3, [r2]
7048	b	.L981
7049.L986:
7050	movs	r7, #0
7051	str	r7, [r2]
7052	str	r7, [sp, #4]
7053.L983:
7054	mov	r10, #0
7055	mov	r8, #-1
7056	mov	r5, r10
7057	mov	r4, r10
7058	str	r10, [sp, #16]
7059.L991:
7060	uxtb	r0, fp
7061	bl	NandcSetDdrPara
7062	mov	r3, r7
7063	ldr	r2, [sp, #4]
7064	ldr	r1, [sp, #12]
7065	ldr	r0, [sp, #8]
7066	bl	FlashReadRawPage
7067	adds	r3, r6, #1
7068	cmp	r0, r3
7069	bhi	.L987
7070	cmp	r0, #2
7071	bhi	.L997
7072	adds	r4, r4, #1
7073	cmp	r4, #9
7074	bls	.L997
7075	mov	r3, r5
7076	mov	r6, r0
7077	sub	r5, fp, r4
7078	mov	r8, #0
7079.L989:
7080	ldr	r2, [sp, #16]
7081	cmp	r4, r2
7082	it	ls
7083	movls	r5, r3
7084.L990:
7085	cbz	r5, .L992
7086	mov	r1, r5
7087	ldr	r0, .L1006+20
7088	bl	printf
7089	uxtb	r0, r5
7090	bl	NandcSetDdrPara
7091.L992:
7092	cmp	r8, #0
7093	beq	.L981
7094	ldr	r2, [sp, #12]
7095	ldr	r1, [sp, #8]
7096	ldr	r0, .L1006+24
7097	bl	printf
7098	ldr	r3, [sp, #56]
7099	cmp	r3, #0
7100	beq	.L993
7101	ldr	r3, [sp, #20]
7102	ubfx	r0, r3, #8, #8
7103	bl	NandcSetDdrPara
7104	b	.L981
7105.L995:
7106	mov	r6, #1024
7107	b	.L983
7108.L987:
7109	ldr	r3, [sp, #16]
7110	cmp	r4, r3
7111	bls	.L998
7112	cmp	r4, #7
7113	sub	r5, r10, r4
7114	bhi	.L990
7115	str	r4, [sp, #16]
7116.L998:
7117	movs	r4, #0
7118	b	.L988
7119.L997:
7120	mov	r8, #0
7121	mov	r10, fp
7122	mov	r6, r0
7123	mov	r7, r8
7124	str	r8, [sp, #4]
7125.L988:
7126	add	fp, fp, #2
7127	cmp	fp, #69
7128	bls	.L991
7129	mov	r3, r5
7130	mov	r5, r10
7131	b	.L989
7132.L1007:
7133	.align	2
7134.L1006:
7135	.word	.LANCHOR19
7136	.word	.LANCHOR34
7137	.word	.LANCHOR24
7138	.word	.LC9
7139	.word	.LANCHOR144
7140	.word	.LC10
7141	.word	.LC11
7142	.size	FlashDdrTunningRead, .-FlashDdrTunningRead
7143	.section	.text.FlashReadPage,"ax",%progbits
7144	.align	1
7145	.global	FlashReadPage
7146	.syntax unified
7147	.thumb
7148	.thumb_func
7149	.fpu softvfp
7150	.type	FlashReadPage, %function
7151FlashReadPage:
7152	@ args = 0, pretend = 0, frame = 0
7153	@ frame_needed = 0, uses_anonymous_args = 0
7154	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7155	mov	r7, r2
7156	mov	r5, r0
7157	mov	r6, r1
7158	mov	r8, r3
7159	bl	FlashReadRawPage
7160	adds	r2, r0, #1
7161	mov	r4, r0
7162	bne	.L1009
7163	ldr	r10, .L1027+20
7164	ldrb	fp, [r10]	@ zero_extendqisi2
7165	cmp	fp, #0
7166	bne	.L1010
7167.L1012:
7168	ldr	r3, .L1027
7169	ldrb	r3, [r3]	@ zero_extendqisi2
7170	cbz	r3, .L1009
7171	ldr	r3, .L1027+4
7172	mov	r1, r6
7173	mov	r2, r7
7174	mov	r0, r5
7175	ldr	r3, [r3]
7176	ldr	r10, [r3, #304]
7177	movs	r3, #1
7178	str	r3, [sp]
7179	mov	r3, r8
7180	bl	FlashDdrTunningRead
7181	adds	r1, r0, #1
7182	mov	r4, r0
7183	beq	.L1013
7184	ldr	r3, .L1027+8
7185	ldrb	r3, [r3]	@ zero_extendqisi2
7186	cmp	r0, r3, lsr #1
7187	bls	.L1009
7188.L1013:
7189	ubfx	r0, r10, #8, #8
7190	bl	NandcSetDdrPara
7191	b	.L1009
7192.L1010:
7193	movs	r3, #0
7194	mov	r2, r7
7195	strb	r3, [r10]
7196	mov	r1, r6
7197	mov	r3, r8
7198	mov	r0, r5
7199	bl	FlashReadRawPage
7200	adds	r3, r0, #1
7201	strb	fp, [r10]
7202	beq	.L1012
7203	mov	r4, r0
7204.L1009:
7205	ldr	r10, .L1027+24
7206	ldr	fp, [r10]
7207	cmp	fp, #0
7208	beq	.L1008
7209	adds	r2, r4, #1
7210	bne	.L1008
7211	mov	r3, r8
7212	mov	r2, r7
7213	mov	r1, r6
7214	mov	r0, r5
7215	blx	fp
7216	mov	r3, r6
7217	mov	r4, r0
7218	mov	r1, r0
7219	mov	r2, r5
7220	ldr	r0, .L1027+12
7221	bl	printf
7222	adds	r3, r4, #1
7223	bne	.L1008
7224	ldr	r3, .L1027+16
7225	ldrb	r3, [r3]	@ zero_extendqisi2
7226	cbz	r3, .L1008
7227	mov	r0, r5
7228	bl	flash_enter_slc_mode
7229	ldr	r4, [r10]
7230	mov	r3, r8
7231	mov	r2, r7
7232	mov	r1, r6
7233	mov	r0, r5
7234	blx	r4
7235	mov	r4, r0
7236	mov	r0, r5
7237	bl	flash_exit_slc_mode
7238.L1008:
7239	mov	r0, r4
7240	add	sp, sp, #8
7241	@ sp needed
7242	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7243.L1028:
7244	.align	2
7245.L1027:
7246	.word	.LANCHOR30
7247	.word	.LANCHOR19
7248	.word	.LANCHOR33
7249	.word	.LC12
7250	.word	.LANCHOR8
7251	.word	.LANCHOR5
7252	.word	.LANCHOR145
7253	.size	FlashReadPage, .-FlashReadPage
7254	.section	.text.FlashDdrParaScan,"ax",%progbits
7255	.align	1
7256	.global	FlashDdrParaScan
7257	.syntax unified
7258	.thumb
7259	.thumb_func
7260	.fpu softvfp
7261	.type	FlashDdrParaScan, %function
7262FlashDdrParaScan:
7263	@ args = 0, pretend = 0, frame = 0
7264	@ frame_needed = 0, uses_anonymous_args = 0
7265	push	{r0, r1, r4, r5, r6, r7, r8, lr}
7266	mov	r6, r0
7267	ldr	r4, .L1040
7268	movs	r5, #0
7269	mov	r7, r1
7270	ldrb	r0, [r4]	@ zero_extendqisi2
7271	bl	FlashSetInterfaceMode
7272	ldrb	r0, [r4]	@ zero_extendqisi2
7273	bl	NandcSetMode
7274	mov	r3, r5
7275	mov	r2, r5
7276	str	r5, [sp]
7277	mov	r1, r7
7278	mov	r0, r6
7279	bl	FlashDdrTunningRead
7280	mov	r3, r5
7281	mov	r2, r5
7282	mov	r8, r0
7283	mov	r1, r7
7284	mov	r0, r6
7285	ldr	r5, .L1040+4
7286	bl	FlashReadRawPage
7287	adds	r0, r0, #1
7288	beq	.L1030
7289	cmp	r8, #-1
7290	bne	.L1031
7291.L1030:
7292	ldrb	r3, [r4]	@ zero_extendqisi2
7293	lsls	r3, r3, #31
7294	bpl	.L1031
7295	movs	r0, #1
7296	bl	FlashSetInterfaceMode
7297	movs	r0, #1
7298	bl	NandcSetMode
7299	movs	r3, #0
7300.L1039:
7301	movs	r0, #0
7302	strb	r3, [r5]
7303	add	sp, sp, #8
7304	@ sp needed
7305	pop	{r4, r5, r6, r7, r8, pc}
7306.L1031:
7307	movs	r3, #1
7308	b	.L1039
7309.L1041:
7310	.align	2
7311.L1040:
7312	.word	.LANCHOR24
7313	.word	.LANCHOR30
7314	.size	FlashDdrParaScan, .-FlashDdrParaScan
7315	.section	.text.FlashLoadPhyInfo,"ax",%progbits
7316	.align	1
7317	.global	FlashLoadPhyInfo
7318	.syntax unified
7319	.thumb
7320	.thumb_func
7321	.fpu softvfp
7322	.type	FlashLoadPhyInfo, %function
7323FlashLoadPhyInfo:
7324	@ args = 0, pretend = 0, frame = 24
7325	@ frame_needed = 0, uses_anonymous_args = 0
7326	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7327	movs	r3, #60
7328	sub	sp, sp, #24
7329	ldr	fp, .L1057+8
7330	movs	r4, #0
7331	movs	r7, #4
7332	strb	r3, [sp, #20]
7333	movs	r3, #40
7334	strb	r3, [sp, #21]
7335	movs	r3, #24
7336	strb	r3, [sp, #22]
7337	movs	r3, #16
7338	ldr	r1, .L1057
7339	mov	r0, r4
7340	strb	r3, [sp, #23]
7341	mov	r6, #-1
7342	ldrh	r3, [fp, #10]
7343	ldr	r8, .L1057+36
7344	ldr	r5, .L1057+4
7345	str	r3, [sp, #4]
7346	ldr	r3, [r1]
7347	str	r4, [r8]
7348	str	r3, [r5]
7349	bl	flash_enter_slc_mode
7350	mov	r10, r1
7351	str	r8, [sp, #12]
7352.L1043:
7353	mov	r8, #0
7354	adds	r3, r4, #1
7355	str	r3, [sp, #8]
7356.L1045:
7357	add	r3, sp, #20
7358	ldrb	r0, [r3, r8]	@ zero_extendqisi2
7359	bl	FlashBchSel
7360	movs	r3, #0
7361	ldr	r2, [r10]
7362	mov	r1, r4
7363	mov	r0, r3
7364	bl	FlashReadRawPage
7365	adds	r0, r0, #1
7366	bne	.L1044
7367	movs	r3, #0
7368	ldr	r2, [r10]
7369	ldr	r1, [sp, #8]
7370	mov	r0, r3
7371	bl	FlashReadRawPage
7372	adds	r0, r0, #1
7373	bne	.L1044
7374	add	r8, r8, #1
7375	cmp	r8, #4
7376	bne	.L1045
7377.L1046:
7378	ldr	r3, [sp, #4]
7379	subs	r7, r7, #1
7380	add	r4, r4, r3
7381	bne	.L1043
7382	mov	r0, r7
7383	b	.L1056
7384.L1047:
7385	movw	r1, #2036
7386	add	r0, r8, #12
7387	bl	JSHash
7388	ldr	r3, [r8, #8]
7389	cmp	r3, r0
7390	bne	.L1053
7391	movs	r2, #32
7392	add	r1, r8, #160
7393	ldr	r0, .L1057+8
7394	bl	ftl_memcpy
7395	ldr	r1, [r5]
7396	movs	r2, #32
7397	ldr	r0, .L1057+12
7398	adds	r1, r1, #192
7399	bl	ftl_memcpy
7400	ldr	r1, [r5]
7401	mov	r2, #852
7402	ldr	r0, .L1057+16
7403	adds	r1, r1, #224
7404	bl	ftl_memcpy
7405	ldr	r6, [r5]
7406	mov	r0, r4
7407	ldr	r3, .L1057+20
7408	ldrh	r1, [fp, #10]
7409	ldr	r2, [r6, #1076]
7410	strb	r2, [r3]
7411	ldr	r3, [sp, #12]
7412	str	r4, [r3]
7413	bl	__aeabi_uidiv
7414	ldr	r3, .L1057+24
7415	adds	r2, r0, #1
7416	cbz	r0, .L1049
7417.L1055:
7418	str	r2, [r3]
7419	ldrh	r2, [r6, #14]
7420	movs	r6, #0
7421	ldr	r3, .L1057+28
7422	strb	r2, [r3]
7423	b	.L1046
7424.L1049:
7425	movs	r2, #2
7426	b	.L1055
7427.L1053:
7428	mov	r6, #-1
7429	b	.L1046
7430.L1044:
7431	ldr	r8, [r5]
7432	ldr	r2, .L1057+32
7433	ldr	r3, [r8]
7434	cmp	r3, r2
7435	bne	.L1046
7436	cmp	r6, #0
7437	bne	.L1047
7438	ldrh	r1, [fp, #10]
7439	mov	r0, r4
7440	bl	__aeabi_uidiv
7441	ldr	r3, .L1057+24
7442	adds	r0, r0, #1
7443	str	r0, [r3]
7444	mov	r0, r6
7445.L1056:
7446	bl	flash_exit_slc_mode
7447	mov	r0, r6
7448	add	sp, sp, #24
7449	@ sp needed
7450	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7451.L1058:
7452	.align	2
7453.L1057:
7454	.word	.LANCHOR147
7455	.word	.LANCHOR146
7456	.word	.LANCHOR31
7457	.word	.LANCHOR7
7458	.word	.LANCHOR20
7459	.word	.LANCHOR30
7460	.word	.LANCHOR149
7461	.word	.LANCHOR150
7462	.word	1312902724
7463	.word	.LANCHOR148
7464	.size	FlashLoadPhyInfo, .-FlashLoadPhyInfo
7465	.section	.text.ToshibaReadRetrial,"ax",%progbits
7466	.align	1
7467	.global	ToshibaReadRetrial
7468	.syntax unified
7469	.thumb
7470	.thumb_func
7471	.fpu softvfp
7472	.type	ToshibaReadRetrial, %function
7473ToshibaReadRetrial:
7474	@ args = 0, pretend = 0, frame = 24
7475	@ frame_needed = 0, uses_anonymous_args = 0
7476	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7477	sub	sp, sp, #24
7478	mov	r6, r0
7479	str	r2, [sp, #12]
7480	mov	fp, r3
7481	str	r1, [sp, #20]
7482	bl	NandcWaitFlashReady
7483	ldr	r3, .L1086
7484	ldr	r2, .L1086+4
7485	ldr	r4, [r3, r6, lsl #3]
7486	add	r3, r3, r6, lsl #3
7487	str	r2, [sp, #16]
7488	ldrb	r7, [r3, #4]	@ zero_extendqisi2
7489	ldrb	r3, [r2]	@ zero_extendqisi2
7490	add	r5, r7, #8
7491	subs	r3, r3, #67
7492	add	r5, r4, r5, lsl #8
7493	cmp	r3, #1
7494	bls	.L1076
7495	ldr	r3, .L1086+8
7496	ldrb	r3, [r3]	@ zero_extendqisi2
7497	cbz	r3, .L1077
7498	movs	r0, #0
7499	bl	NandcSetDdrMode
7500	movs	r3, #1
7501.L1077:
7502	str	r3, [sp, #8]
7503	add	r3, r4, r7, lsl #8
7504	movs	r2, #92
7505	str	r2, [r3, #2056]
7506	movs	r2, #197
7507	str	r2, [r3, #2056]
7508.L1060:
7509	mov	r8, #1
7510	mov	r3, #-1
7511	str	r3, [sp, #4]
7512.L1062:
7513	ldr	r3, .L1086+12
7514	ldrb	r3, [r3]	@ zero_extendqisi2
7515	adds	r3, r3, #1
7516	cmp	r8, r3
7517	bcc	.L1071
7518	ldr	r10, [sp, #4]
7519.L1070:
7520	ldr	r3, [sp, #16]
7521	movs	r1, #0
7522	mov	r0, r5
7523	ldrb	r2, [r3]	@ zero_extendqisi2
7524	subs	r2, r2, #67
7525	cmp	r2, #1
7526	bhi	.L1072
7527	bl	SandiskSetRRPara
7528.L1073:
7529	add	r4, r4, r7, lsl #8
7530	movs	r2, #255
7531	str	r2, [r4, #2056]
7532	ldr	r2, .L1086+16
7533	ldrb	r2, [r2]	@ zero_extendqisi2
7534	add	r2, r2, r2, lsl #1
7535	cmp	r10, r2, asr #2
7536	bcc	.L1074
7537	cmp	r10, #-1
7538	it	ne
7539	movne	r10, #256
7540.L1074:
7541	mov	r0, r6
7542	bl	NandcWaitFlashReady
7543	ldr	r3, [sp, #8]
7544	cbz	r3, .L1059
7545	movs	r0, #4
7546	bl	NandcSetDdrMode
7547.L1059:
7548	mov	r0, r10
7549	add	sp, sp, #24
7550	@ sp needed
7551	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7552.L1076:
7553	movs	r3, #0
7554	str	r3, [sp, #8]
7555	b	.L1060
7556.L1071:
7557	ldr	r3, [sp, #16]
7558	mov	r0, r5
7559	uxtb	r1, r8
7560	ldrb	r3, [r3]	@ zero_extendqisi2
7561	subs	r3, r3, #67
7562	cmp	r3, #1
7563	bhi	.L1063
7564	bl	SandiskSetRRPara
7565.L1064:
7566	ldr	r3, [sp, #16]
7567	ldrb	r3, [r3]	@ zero_extendqisi2
7568	cmp	r3, #34
7569	bne	.L1065
7570	ldr	r3, .L1086+12
7571	ldrb	r3, [r3]	@ zero_extendqisi2
7572	subs	r3, r3, #3
7573	cmp	r8, r3
7574	ittt	eq
7575	addeq	r3, r4, r7, lsl #8
7576	moveq	r2, #179
7577	streq	r2, [r3, #2056]
7578.L1065:
7579	add	r3, r4, r7, lsl #8
7580	movs	r2, #38
7581	str	r2, [r3, #2056]
7582	movs	r2, #93
7583	str	r2, [r3, #2056]
7584	ldr	r3, [sp, #8]
7585	cbz	r3, .L1066
7586	movs	r0, #4
7587	bl	NandcSetDdrMode
7588	mov	r3, fp
7589	ldr	r2, [sp, #12]
7590	ldr	r1, [sp, #20]
7591	mov	r0, r6
7592	bl	FlashReadRawPage
7593	mov	r10, r0
7594	movs	r0, #0
7595	bl	NandcSetDdrMode
7596.L1067:
7597	cmp	r10, #-1
7598	beq	.L1068
7599	ldr	r2, .L1086+16
7600	ldr	r3, [sp, #4]
7601	ldrb	r2, [r2]	@ zero_extendqisi2
7602	cmp	r3, #-1
7603	it	eq
7604	moveq	r3, r10
7605	str	r3, [sp, #4]
7606	add	r2, r2, r2, lsl #1
7607	cmp	r10, r2, asr #2
7608	bcc	.L1070
7609	mov	fp, #0
7610	str	fp, [sp, #12]
7611.L1068:
7612	add	r8, r8, #1
7613	b	.L1062
7614.L1063:
7615	bl	ToshibaSetRRPara
7616	b	.L1064
7617.L1066:
7618	mov	r3, fp
7619	ldr	r2, [sp, #12]
7620	ldr	r1, [sp, #20]
7621	mov	r0, r6
7622	bl	FlashReadRawPage
7623	mov	r10, r0
7624	b	.L1067
7625.L1072:
7626	bl	ToshibaSetRRPara
7627	b	.L1073
7628.L1087:
7629	.align	2
7630.L1086:
7631	.word	.LANCHOR6
7632	.word	.LANCHOR10
7633	.word	.LANCHOR30
7634	.word	.LANCHOR151
7635	.word	.LANCHOR33
7636	.size	ToshibaReadRetrial, .-ToshibaReadRetrial
7637	.section	.text.SamsungReadRetrial,"ax",%progbits
7638	.align	1
7639	.global	SamsungReadRetrial
7640	.syntax unified
7641	.thumb
7642	.thumb_func
7643	.fpu softvfp
7644	.type	SamsungReadRetrial, %function
7645SamsungReadRetrial:
7646	@ args = 0, pretend = 0, frame = 0
7647	@ frame_needed = 0, uses_anonymous_args = 0
7648	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7649	mov	r7, r0
7650	mov	r10, r2
7651	mov	r8, r3
7652	mov	fp, r1
7653	movs	r6, #1
7654	bl	NandcWaitFlashReady
7655	ldr	r2, .L1101
7656	mov	r4, #-1
7657	add	r3, r2, r7, lsl #3
7658	ldrb	r5, [r3, #4]	@ zero_extendqisi2
7659	add	r3, r5, #8
7660	ldr	r5, [r2, r7, lsl #3]
7661	add	r5, r5, r3, lsl #8
7662.L1089:
7663	ldr	r3, .L1101+4
7664	ldrb	r3, [r3]	@ zero_extendqisi2
7665	adds	r3, r3, #1
7666	cmp	r6, r3
7667	bcc	.L1093
7668.L1092:
7669	movs	r1, #0
7670	mov	r0, r5
7671	bl	SamsungSetRRPara
7672	ldr	r3, .L1101+8
7673	ldrb	r3, [r3]	@ zero_extendqisi2
7674	add	r3, r3, r3, lsl #1
7675	cmp	r4, r3, asr #2
7676	bcc	.L1088
7677	adds	r3, r4, #1
7678	it	ne
7679	movne	r4, #256
7680.L1088:
7681	mov	r0, r4
7682	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7683.L1093:
7684	uxtb	r1, r6
7685	mov	r0, r5
7686	bl	SamsungSetRRPara
7687	mov	r2, r10
7688	mov	r3, r8
7689	mov	r1, fp
7690	mov	r0, r7
7691	bl	FlashReadRawPage
7692	adds	r2, r0, #1
7693	beq	.L1090
7694	ldr	r3, .L1101+8
7695	cmp	r4, #-1
7696	it	eq
7697	moveq	r4, r0
7698	ldrb	r3, [r3]	@ zero_extendqisi2
7699	add	r3, r3, r3, lsl #1
7700	cmp	r0, r3, asr #2
7701	bcc	.L1096
7702	mov	r8, #0
7703	mov	r10, r8
7704.L1090:
7705	adds	r6, r6, #1
7706	b	.L1089
7707.L1096:
7708	mov	r4, r0
7709	b	.L1092
7710.L1102:
7711	.align	2
7712.L1101:
7713	.word	.LANCHOR6
7714	.word	.LANCHOR151
7715	.word	.LANCHOR33
7716	.size	SamsungReadRetrial, .-SamsungReadRetrial
7717	.section	.text.MicronReadRetrial,"ax",%progbits
7718	.align	1
7719	.global	MicronReadRetrial
7720	.syntax unified
7721	.thumb
7722	.thumb_func
7723	.fpu softvfp
7724	.type	MicronReadRetrial, %function
7725MicronReadRetrial:
7726	@ args = 0, pretend = 0, frame = 32
7727	@ frame_needed = 0, uses_anonymous_args = 0
7728	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7729	mov	r7, r3
7730	ldr	r3, .L1128
7731	sub	sp, sp, #40
7732	mov	r5, r0
7733	str	r2, [sp, #16]
7734	ldrb	r2, [r3]	@ zero_extendqisi2
7735	ldr	r3, .L1128+4
7736	str	r1, [sp, #28]
7737	ldrb	r3, [r3]	@ zero_extendqisi2
7738	cmp	r3, #0
7739	bne	.L1104
7740	add	r2, r2, r2, lsl #1
7741	asrs	r3, r2, #2
7742.L1127:
7743.L1105:
7744	mov	r8, #0
7745	str	r3, [sp, #12]
7746	mov	r6, r8
7747.L1115:
7748	mov	r0, r5
7749	mov	r10, #0
7750	bl	NandcWaitFlashReady
7751	ldr	r3, .L1128+8
7752	mov	r4, #-1
7753	ldr	r2, [r3, r5, lsl #3]
7754	add	r3, r3, r5, lsl #3
7755	ldrb	fp, [r3, #4]	@ zero_extendqisi2
7756	str	r2, [sp, #24]
7757	lsl	r3, fp, #8
7758	str	r3, [sp, #32]
7759.L1106:
7760	ldr	r3, .L1128+12
7761	ldrb	r3, [r3]	@ zero_extendqisi2
7762	cmp	r10, r3
7763	bcc	.L1110
7764.L1109:
7765	ldr	r3, [sp, #24]
7766	movs	r0, #200
7767	add	fp, r3, fp, lsl #8
7768	movs	r3, #239
7769	str	r3, [fp, #2056]
7770	movs	r3, #137
7771	str	r3, [fp, #2052]
7772	bl	udelay
7773	ldr	r3, [sp, #12]
7774	str	r6, [fp, #2048]
7775	str	r6, [fp, #2048]
7776	cmp	r4, r3
7777	str	r6, [fp, #2048]
7778	str	r6, [fp, #2048]
7779	bcc	.L1111
7780	adds	r1, r4, #1
7781	mov	r3, r10
7782	it	ne
7783	movne	r4, #256
7784	ldr	r2, [sp, #28]
7785	str	r4, [sp]
7786	mov	r1, r10
7787	ldr	r0, .L1128+16
7788	bl	printf
7789	cmp	r8, #0
7790	bne	.L1113
7791	ldr	r3, .L1128+4
7792	ldrb	r3, [r3]	@ zero_extendqisi2
7793	cmp	r3, #0
7794	beq	.L1103
7795	adds	r2, r4, #1
7796	bne	.L1103
7797	movs	r1, #3
7798	mov	r0, r5
7799	bl	micron_auto_read_calibration_config
7800	mov	r8, #1
7801	b	.L1115
7802.L1104:
7803	ldr	r3, .L1128+20
7804	smull	r2, r3, r2, r3
7805	b	.L1127
7806.L1110:
7807	ldr	r2, [sp, #32]
7808	movs	r0, #200
7809	ldr	r3, [sp, #24]
7810	add	r3, r3, r2
7811	movs	r2, #239
7812	str	r2, [r3, #2056]
7813	movs	r2, #137
7814	str	r2, [r3, #2052]
7815	str	r3, [sp, #36]
7816	bl	udelay
7817	add	r3, r10, #1
7818	ldr	r1, [sp, #28]
7819	mov	r2, r3
7820	str	r3, [sp, #20]
7821	ldr	r3, [sp, #36]
7822	mov	r0, r5
7823	str	r2, [r3, #2048]
7824	str	r6, [r3, #2048]
7825	ldr	r2, [sp, #16]
7826	str	r6, [r3, #2048]
7827	str	r6, [r3, #2048]
7828	mov	r3, r7
7829	bl	FlashReadRawPage
7830	adds	r3, r0, #1
7831	beq	.L1107
7832	ldr	r3, [sp, #12]
7833	cmp	r4, #-1
7834	it	eq
7835	moveq	r4, r0
7836	cmp	r0, r3
7837	bcc	.L1117
7838	movs	r7, #0
7839	str	r7, [sp, #16]
7840.L1107:
7841	ldr	r10, [sp, #20]
7842	b	.L1106
7843.L1117:
7844	movs	r7, #0
7845	mov	r4, r0
7846	str	r7, [sp, #16]
7847	b	.L1109
7848.L1113:
7849	movs	r1, #0
7850	mov	r0, r5
7851	bl	micron_auto_read_calibration_config
7852	adds	r3, r4, #1
7853	it	ne
7854	movne	r4, #256
7855.L1103:
7856	mov	r0, r4
7857	add	sp, sp, #40
7858	@ sp needed
7859	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7860.L1111:
7861	cmp	r8, #0
7862	beq	.L1103
7863	movs	r1, #0
7864	mov	r0, r5
7865	bl	micron_auto_read_calibration_config
7866	mov	r4, #256
7867	b	.L1103
7868.L1129:
7869	.align	2
7870.L1128:
7871	.word	.LANCHOR33
7872	.word	.LANCHOR8
7873	.word	.LANCHOR6
7874	.word	.LANCHOR151
7875	.word	.LC13
7876	.word	1431655766
7877	.size	MicronReadRetrial, .-MicronReadRetrial
7878	.section	.text.HynixReadRetrial,"ax",%progbits
7879	.align	1
7880	.global	HynixReadRetrial
7881	.syntax unified
7882	.thumb
7883	.thumb_func
7884	.fpu softvfp
7885	.type	HynixReadRetrial, %function
7886HynixReadRetrial:
7887	@ args = 0, pretend = 0, frame = 8
7888	@ frame_needed = 0, uses_anonymous_args = 0
7889	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7890	mov	fp, r2
7891	ldr	r4, .L1147
7892	mov	r8, #0
7893	mov	r6, #-1
7894	mov	r10, r3
7895	mov	r7, r0
7896	str	r1, [sp, #4]
7897	ldrb	r2, [r4, #2]	@ zero_extendqisi2
7898	adds	r3, r4, r0
7899	ldrb	r5, [r3, #12]	@ zero_extendqisi2
7900	str	r2, [sp]
7901	ldr	r2, .L1147+4
7902	ldr	r2, [r2]
7903	ldrb	r2, [r2, #19]	@ zero_extendqisi2
7904	cmp	r2, #7
7905	it	eq
7906	ldrbeq	r5, [r3, #20]	@ zero_extendqisi2
7907	bl	NandcWaitFlashReady
7908.L1132:
7909	ldr	r3, [sp]
7910	cmp	r8, r3
7911	bcc	.L1137
7912.L1136:
7913	ldr	r3, .L1147+4
7914	add	r4, r4, r7
7915	ldr	r3, [r3]
7916	ldrb	r3, [r3, #19]	@ zero_extendqisi2
7917	cmp	r3, #7
7918	ldr	r3, .L1147+8
7919	ite	eq
7920	strbeq	r5, [r4, #20]
7921	strbne	r5, [r4, #12]
7922	ldrb	r3, [r3]	@ zero_extendqisi2
7923	add	r3, r3, r3, lsl #1
7924	cmp	r6, r3, asr #2
7925	bcc	.L1130
7926	adds	r3, r6, #1
7927	it	ne
7928	movne	r6, #256
7929.L1130:
7930	mov	r0, r6
7931	add	sp, sp, #8
7932	@ sp needed
7933	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7934.L1137:
7935	ldr	r3, [sp]
7936	adds	r5, r5, #1
7937	uxtb	r5, r5
7938	ldr	r2, .L1147+12
7939	ldrb	r1, [r4, #1]	@ zero_extendqisi2
7940	mov	r0, r7
7941	cmp	r3, r5
7942	it	ls
7943	movls	r5, #0
7944	mov	r3, r5
7945	bl	HynixSetRRPara
7946	mov	r2, fp
7947	mov	r3, r10
7948	ldr	r1, [sp, #4]
7949	mov	r0, r7
7950	bl	FlashReadRawPage
7951	adds	r2, r0, #1
7952	beq	.L1134
7953	ldr	r3, .L1147+8
7954	cmp	r6, #-1
7955	it	eq
7956	moveq	r6, r0
7957	ldrb	r3, [r3]	@ zero_extendqisi2
7958	add	r3, r3, r3, lsl #1
7959	cmp	r0, r3, asr #2
7960	bcc	.L1141
7961	mov	r10, #0
7962	mov	fp, r10
7963.L1134:
7964	add	r8, r8, #1
7965	b	.L1132
7966.L1141:
7967	mov	r6, r0
7968	b	.L1136
7969.L1148:
7970	.align	2
7971.L1147:
7972	.word	.LANCHOR20
7973	.word	.LANCHOR18
7974	.word	.LANCHOR33
7975	.word	.LANCHOR20+4
7976	.size	HynixReadRetrial, .-HynixReadRetrial
7977	.section	.text.FlashProgPage,"ax",%progbits
7978	.align	1
7979	.global	FlashProgPage
7980	.syntax unified
7981	.thumb
7982	.thumb_func
7983	.fpu softvfp
7984	.type	FlashProgPage, %function
7985FlashProgPage:
7986	@ args = 0, pretend = 0, frame = 0
7987	@ frame_needed = 0, uses_anonymous_args = 0
7988	push	{r0, r1, r4, r5, r6, r7, r8, lr}
7989	mov	r8, r3
7990	ldr	r3, .L1152
7991	mov	r5, r1
7992	mov	r7, r2
7993	mov	r4, r0
7994	ldrb	r6, [r3, #9]	@ zero_extendqisi2
7995	cbnz	r0, .L1150
7996	ldr	r3, .L1152+4
7997	ldr	r2, .L1152+8
7998	ldrb	r3, [r3]	@ zero_extendqisi2
7999	ldr	r1, [r2]
8000	muls	r1, r3, r1
8001	cmp	r1, r5
8002	bls	.L1150
8003	ldr	r3, .L1152+12
8004	ldrb	r3, [r3]	@ zero_extendqisi2
8005	cbnz	r3, .L1151
8006	subs	r6, r6, #2
8007.L1150:
8008	mov	r0, r4
8009	bl	NandcWaitFlashReady
8010	mov	r0, r4
8011	bl	NandcFlashCs
8012	mov	r1, r5
8013	mov	r0, r4
8014	bl	FlashProgFirstCmd
8015	mov	r3, r7
8016	uxtb	r2, r6
8017	str	r8, [sp]
8018	movs	r1, #1
8019	mov	r0, r4
8020	bl	NandcXferData
8021	mov	r1, r5
8022	mov	r0, r4
8023	bl	FlashProgSecondCmd
8024	mov	r0, r4
8025	bl	NandcWaitFlashReady
8026	mov	r1, r5
8027	mov	r0, r4
8028	bl	FlashReadStatus
8029	mov	r1, r0
8030	mov	r0, r4
8031	bl	NandcFlashDeCs
8032	and	r0, r1, #1
8033	add	sp, sp, #8
8034	@ sp needed
8035	pop	{r4, r5, r6, r7, r8, pc}
8036.L1151:
8037	movs	r6, #4
8038	b	.L1150
8039.L1153:
8040	.align	2
8041.L1152:
8042	.word	.LANCHOR31
8043	.word	.LANCHOR2
8044	.word	.LANCHOR3
8045	.word	.LANCHOR1
8046	.size	FlashProgPage, .-FlashProgPage
8047	.section	.text.FlashSavePhyInfo,"ax",%progbits
8048	.align	1
8049	.global	FlashSavePhyInfo
8050	.syntax unified
8051	.thumb
8052	.thumb_func
8053	.fpu softvfp
8054	.type	FlashSavePhyInfo, %function
8055FlashSavePhyInfo:
8056	@ args = 0, pretend = 0, frame = 8
8057	@ frame_needed = 0, uses_anonymous_args = 0
8058	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
8059	ldr	r7, .L1163
8060	ldr	r4, .L1163+4
8061	ldr	r3, [r7]
8062	ldr	r10, .L1163+60
8063	ldr	r8, .L1163+64
8064	str	r3, [r4]
8065	ldr	r3, .L1163+8
8066	ldrb	r0, [r3]	@ zero_extendqisi2
8067	bl	FlashBchSel
8068	mov	r2, #2048
8069	movs	r1, #0
8070	ldr	r0, [r7]
8071	bl	ftl_memset
8072	ldr	r0, [r4]
8073	movs	r2, #32
8074	ldr	r3, .L1163+12
8075	ldr	r1, .L1163+16
8076	str	r10, [r0]
8077	adds	r0, r0, #16
8078	ldrb	r3, [r3]	@ zero_extendqisi2
8079	strh	r3, [r0, #-4]	@ movhi
8080	ldr	r3, .L1163+20
8081	ldrb	r3, [r3]	@ zero_extendqisi2
8082	strh	r3, [r0, #-2]	@ movhi
8083	ldr	r3, .L1163+24
8084	ldrb	r3, [r3]	@ zero_extendqisi2
8085	str	r3, [r0, #1060]
8086	bl	ftl_memcpy
8087	ldr	r0, [r4]
8088	movs	r2, #8
8089	ldr	r1, .L1163+28
8090	adds	r0, r0, #80
8091	bl	ftl_memcpy
8092	ldr	r0, [r4]
8093	movs	r2, #32
8094	ldr	r1, .L1163+32
8095	adds	r0, r0, #96
8096	bl	ftl_memcpy
8097	ldr	r0, [r4]
8098	movs	r2, #32
8099	ldr	r1, .L1163+36
8100	adds	r0, r0, #160
8101	bl	ftl_memcpy
8102	ldr	r0, [r4]
8103	movs	r2, #32
8104	ldr	r1, .L1163+40
8105	adds	r0, r0, #192
8106	bl	ftl_memcpy
8107	ldr	r0, [r4]
8108	mov	r2, #852
8109	ldr	r1, .L1163+44
8110	adds	r0, r0, #224
8111	bl	ftl_memcpy
8112	ldr	r5, [r4]
8113	movw	r1, #2036
8114	add	r0, r5, #12
8115	bl	JSHash
8116	ldr	r1, .L1163+48
8117	mov	r3, #1592
8118	str	r3, [r5, #4]
8119	str	r0, [r5, #8]
8120	movs	r0, #0
8121	ldr	r3, [r1]
8122	movs	r5, #0
8123	mov	r6, r5
8124	str	r3, [r4]
8125	bl	flash_enter_slc_mode
8126	mov	fp, r1
8127.L1157:
8128	ldr	r1, [r8]
8129	movs	r2, #0
8130	mov	r0, r2
8131	muls	r1, r6, r1
8132	bl	FlashEraseBlock
8133	ldr	r1, [r8]
8134	movs	r3, #0
8135	ldr	r2, [r7]
8136	mov	r0, r3
8137	muls	r1, r6, r1
8138	bl	FlashProgPage
8139	ldr	r1, [r8]
8140	movs	r3, #0
8141	ldr	r2, [r7]
8142	mov	r0, r3
8143	muls	r1, r6, r1
8144	adds	r1, r1, #1
8145	bl	FlashProgPage
8146	ldr	r1, [r8]
8147	movs	r3, #0
8148	ldr	r2, [fp]
8149	mov	r0, r3
8150	muls	r1, r6, r1
8151	bl	FlashReadRawPage
8152	adds	r0, r0, #1
8153	add	r2, r6, #1
8154	beq	.L1155
8155	ldr	r3, [r4]
8156	ldr	r1, [r3]
8157	cmp	r1, r10
8158	bne	.L1155
8159	add	r0, r3, #12
8160	movw	r1, #2036
8161	str	r2, [sp, #4]
8162	str	r3, [sp]
8163	bl	JSHash
8164	ldr	r3, [sp]
8165	ldr	r2, [sp, #4]
8166	ldr	r3, [r3, #8]
8167	cmp	r3, r0
8168	bne	.L1155
8169	ldr	r3, .L1163+52
8170	cmp	r5, #1
8171	str	r2, [r3]
8172	ldr	r3, [r8]
8173	mul	r6, r6, r3
8174	ldr	r3, .L1163+56
8175	str	r6, [r3]
8176	beq	.L1158
8177	movs	r5, #1
8178.L1155:
8179	cmp	r2, #4
8180	mov	r6, r2
8181	bne	.L1157
8182.L1156:
8183	movs	r0, #0
8184	bl	flash_exit_slc_mode
8185	clz	r0, r5
8186	lsrs	r0, r0, #5
8187	negs	r0, r0
8188	add	sp, sp, #8
8189	@ sp needed
8190	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8191.L1158:
8192	movs	r5, #2
8193	b	.L1156
8194.L1164:
8195	.align	2
8196.L1163:
8197	.word	.LANCHOR147
8198	.word	.LANCHOR146
8199	.word	.LANCHOR152
8200	.word	.LANCHOR25
8201	.word	.LANCHOR22
8202	.word	.LANCHOR2
8203	.word	.LANCHOR30
8204	.word	.LANCHOR26
8205	.word	.LANCHOR17
8206	.word	.LANCHOR31
8207	.word	.LANCHOR7
8208	.word	.LANCHOR20
8209	.word	.LANCHOR153
8210	.word	.LANCHOR149
8211	.word	.LANCHOR148
8212	.word	1312902724
8213	.word	.LANCHOR3
8214	.size	FlashSavePhyInfo, .-FlashSavePhyInfo
8215	.section	.text.FlashReadIdbDataRaw,"ax",%progbits
8216	.align	1
8217	.global	FlashReadIdbDataRaw
8218	.syntax unified
8219	.thumb
8220	.thumb_func
8221	.fpu softvfp
8222	.type	FlashReadIdbDataRaw, %function
8223FlashReadIdbDataRaw:
8224	@ args = 0, pretend = 0, frame = 24
8225	@ frame_needed = 0, uses_anonymous_args = 0
8226	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8227	movs	r3, #60
8228	sub	sp, sp, #24
8229	ldr	r2, .L1177
8230	mov	r10, r0
8231	strb	r3, [sp, #20]
8232	movs	r3, #40
8233	strb	r3, [sp, #21]
8234	movs	r3, #24
8235	strb	r3, [sp, #22]
8236	movs	r3, #16
8237	strb	r3, [sp, #23]
8238	ldr	r3, .L1177+4
8239	ldr	r1, [r2]
8240	str	r2, [sp, #8]
8241	ldrb	r3, [r3]	@ zero_extendqisi2
8242	str	r3, [sp, #4]
8243	ldr	r3, .L1177+8
8244	cmp	r1, r3
8245	str	r3, [sp, #12]
8246	bne	.L1166
8247	movs	r0, #0
8248	bl	flash_enter_slc_mode
8249.L1166:
8250	mov	r7, #-1
8251	movs	r4, #2
8252	mov	r2, #2048
8253	movs	r1, #0
8254	mov	r0, r10
8255	bl	ftl_memset
8256.L1167:
8257	ldr	r3, .L1177+12
8258	ldrb	r3, [r3]	@ zero_extendqisi2
8259	cmp	r4, r3
8260	bcc	.L1172
8261.L1171:
8262	ldr	r0, [sp, #4]
8263	bl	FlashBchSel
8264	ldr	r3, [sp, #8]
8265	ldr	r2, [sp, #12]
8266	ldr	r3, [r3]
8267	cmp	r3, r2
8268	bne	.L1165
8269	movs	r0, #0
8270	bl	flash_exit_slc_mode
8271.L1165:
8272	mov	r0, r7
8273	add	sp, sp, #24
8274	@ sp needed
8275	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8276.L1172:
8277	ldr	r5, .L1177+16
8278	movs	r6, #0
8279	ldr	fp, .L1177+32
8280.L1169:
8281	add	r3, sp, #20
8282	ldrb	r8, [r6, r3]	@ zero_extendqisi2
8283	mov	r0, r8
8284	bl	FlashBchSel
8285	ldr	r1, [fp]
8286	movs	r3, #0
8287	ldr	r2, [r5]
8288	mov	r0, r3
8289	muls	r1, r4, r1
8290	bl	FlashReadRawPage
8291	adds	r0, r0, #1
8292	bne	.L1168
8293	adds	r6, r6, #1
8294	cmp	r6, #4
8295	bne	.L1169
8296.L1170:
8297	adds	r4, r4, #1
8298	b	.L1167
8299.L1175:
8300	movs	r7, #0
8301	b	.L1171
8302.L1168:
8303	ldr	r3, [r5]
8304	ldr	r2, [r3]
8305	ldr	r3, .L1177+20
8306	cmp	r2, r3
8307	bne	.L1170
8308	mov	r1, r8
8309	ldr	r0, .L1177+24
8310	bl	printf
8311	mov	r2, #2048
8312	ldr	r1, [r5]
8313	mov	r0, r10
8314	bl	ftl_memcpy
8315	ldr	r3, [r5]
8316	ldr	r2, .L1177+12
8317	ldr	r3, [r3, #512]
8318	strb	r3, [r2]
8319	ldr	r3, .L1177+28
8320	ldr	r2, [r3]
8321	cmp	r4, r2
8322	bcs	.L1175
8323	str	r4, [r3]
8324	movs	r7, #0
8325	bl	FlashSavePhyInfo
8326	b	.L1170
8327.L1178:
8328	.align	2
8329.L1177:
8330	.word	.LANCHOR29
8331	.word	.LANCHOR33
8332	.word	1446522928
8333	.word	.LANCHOR2
8334	.word	.LANCHOR147
8335	.word	-52655045
8336	.word	.LC14
8337	.word	.LANCHOR149
8338	.word	.LANCHOR3
8339	.size	FlashReadIdbDataRaw, .-FlashReadIdbDataRaw
8340	.section	.text.FlashPageProgMsbFFData,"ax",%progbits
8341	.align	1
8342	.global	FlashPageProgMsbFFData
8343	.syntax unified
8344	.thumb
8345	.thumb_func
8346	.fpu softvfp
8347	.type	FlashPageProgMsbFFData, %function
8348FlashPageProgMsbFFData:
8349	@ args = 0, pretend = 0, frame = 0
8350	@ frame_needed = 0, uses_anonymous_args = 0
8351	push	{r3, r4, r5, r6, r7, r8, r10, lr}
8352	mov	r4, r2
8353	ldr	r5, .L1189
8354	mov	r6, r0
8355	mov	r7, r1
8356	ldr	r3, [r5]
8357	ldrb	r2, [r3, #19]	@ zero_extendqisi2
8358	ldr	r3, .L1189+4
8359	ldrb	r3, [r3]	@ zero_extendqisi2
8360	cbz	r3, .L1180
8361	ldr	r3, .L1189+8
8362	ldr	r1, [r3]
8363	ldr	r3, .L1189+12
8364	cmp	r1, r3
8365	beq	.L1179
8366.L1180:
8367	subs	r3, r2, #5
8368	uxtb	r3, r3
8369	cmp	r3, #30
8370	bhi	.L1181
8371	ldr	r2, .L1189+16
8372	lsr	r3, r2, r3
8373	lsls	r3, r3, #31
8374	bmi	.L1183
8375	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
8376.L1184:
8377	ldrh	r2, [r10, r4, lsl #1]
8378	movw	r3, #65535
8379	cmp	r2, r3
8380	bne	.L1179
8381	mov	r2, #32768
8382	movs	r1, #255
8383	ldr	r0, [r8]
8384	bl	ftl_memset
8385	adds	r1, r4, r7
8386	adds	r4, r4, #1
8387	uxth	r4, r4
8388	movs	r3, #0
8389	ldr	r2, [r8]
8390	mov	r0, r6
8391	bl	FlashProgPage
8392.L1185:
8393	ldr	r3, [r5]
8394	ldrh	r3, [r3, #10]
8395	cmp	r3, r4
8396	bhi	.L1184
8397	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
8398.L1181:
8399	cmp	r2, #68
8400	bne	.L1179
8401.L1183:
8402	ldr	r10, .L1189+20
8403	ldr	r8, .L1189+24
8404	b	.L1185
8405.L1179:
8406	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
8407.L1190:
8408	.align	2
8409.L1189:
8410	.word	.LANCHOR18
8411	.word	.LANCHOR8
8412	.word	.LANCHOR29
8413	.word	1446522928
8414	.word	1073758215
8415	.word	.LANCHOR120
8416	.word	.LANCHOR153
8417	.size	FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
8418	.section	.text.idb_write_data,"ax",%progbits
8419	.align	1
8420	.global	idb_write_data
8421	.syntax unified
8422	.thumb
8423	.thumb_func
8424	.fpu softvfp
8425	.type	idb_write_data, %function
8426idb_write_data:
8427	@ args = 0, pretend = 0, frame = 96
8428	@ frame_needed = 0, uses_anonymous_args = 0
8429	mov	r0, r1
8430	mov	r1, r2
8431	adds	r2, r0, r3
8432	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8433	cmp	r2, #63
8434	sub	sp, sp, #104
8435	bls	.L1192
8436	cmp	r0, #576
8437	bcs	.L1193
8438	ldr	r2, .L1244
8439	cmp	r0, #64
8440	mov	r4, #1
8441	str	r4, [r2]
8442	bhi	.L1194
8443	rsb	r0, r0, #64
8444	subs	r2, r3, r0
8445	add	r1, r1, r0, lsl #9
8446	ldr	r0, .L1244+4
8447	lsls	r2, r2, #9
8448.L1243:
8449	bl	ftl_memcpy
8450.L1232:
8451	movs	r0, #0
8452	add	sp, sp, #104
8453	@ sp needed
8454	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8455.L1194:
8456	rsb	r2, r0, #576
8457	subs	r0, r0, #64
8458	cmp	r2, r3
8459	it	cs
8460	movcs	r2, r3
8461	ldr	r3, .L1244+4
8462	lsls	r2, r2, #9
8463	add	r0, r3, r0, lsl #9
8464	b	.L1243
8465.L1192:
8466	cmp	r0, #576
8467	bcc	.L1232
8468.L1193:
8469	ldr	r3, .L1244
8470	ldr	r3, [r3]
8471	cmp	r3, #0
8472	beq	.L1232
8473	ldr	r3, .L1244+8
8474	ldr	r2, [r3]
8475	ldrb	r3, [r2, #9]	@ zero_extendqisi2
8476	ldrh	r2, [r2, #10]
8477	smulbb	r3, r3, r2
8478	uxth	r3, r3
8479	mov	r1, r3
8480	addw	r0, r3, #511
8481	str	r3, [sp, #8]
8482	bl	__aeabi_uidiv
8483	ldr	r1, .L1244+4
8484	movs	r3, #0
8485	str	r0, [sp, #20]
8486	movw	r2, #65535
8487	mov	r0, r1
8488.L1198:
8489	ldr	r4, [r1, r2, lsl #2]
8490	cbnz	r4, .L1196
8491	ldr	r4, [r1, r3, lsl #2]
8492	adds	r3, r3, #1
8493	cmp	r3, #4096
8494	it	hi
8495	movhi	r3, #0
8496	str	r4, [r1, r2, lsl #2]
8497	subs	r2, r2, #1
8498	cmp	r2, #4096
8499	bne	.L1198
8500.L1196:
8501	ldr	r1, [r0, r2, lsl #2]
8502	mov	r3, #512
8503	ldr	r0, .L1244+12
8504	bl	printf
8505	ldr	r3, .L1244+16
8506	ldr	r2, [sp, #8]
8507	ldr	r3, [r3]
8508	str	r3, [sp, #16]
8509	ldr	r3, [sp, #20]
8510	muls	r3, r2, r3
8511	str	r3, [sp, #36]
8512	ldr	r3, [sp, #16]
8513	mul	r4, r3, r2
8514	movs	r3, #0
8515	str	r3, [sp, #12]
8516.L1199:
8517	ldr	r3, [sp, #16]
8518	cmp	r3, #15
8519	bls	.L1216
8520	ldr	r3, [sp, #12]
8521	cbnz	r3, .L1218
8522	mov	r1, r3
8523	ldr	r0, .L1244+20
8524	bl	printf
8525.L1218:
8526	ldr	r3, .L1244
8527	movs	r2, #0
8528	str	r2, [r3]
8529	b	.L1232
8530.L1245:
8531	.align	2
8532.L1244:
8533	.word	.LANCHOR154
8534	.word	idb_buf
8535	.word	.LANCHOR18
8536	.word	.LC15
8537	.word	.LANCHOR149
8538	.word	.LC17
8539.L1216:
8540	mov	r2, #512
8541	movs	r1, #0
8542	ldr	r0, .L1246
8543	bl	memset
8544	ldr	r3, .L1246+4
8545	mov	r0, r4
8546	ldr	r3, [r3]
8547	ldrb	fp, [r3, #9]	@ zero_extendqisi2
8548	ldrh	r5, [r3, #10]
8549	bl	FW_FlashBlockErase.constprop.41
8550	smulbb	r5, r5, fp
8551	uxth	r5, r5
8552	cmp	r5, #512
8553	bcs	.L1200
8554	adds	r0, r5, r4
8555	bl	FW_FlashBlockErase.constprop.41
8556.L1200:
8557	ldr	r7, .L1246+8
8558	mov	r1, r5
8559	ldr	r10, .L1246+36
8560	mov	r0, r4
8561	bl	__aeabi_uidivmod
8562	mov	r6, r1
8563	subs	r3, r4, r1
8564	str	r3, [sp, #24]
8565.L1204:
8566	lsrs	r2, r6, #2
8567	beq	.L1201
8568	ldr	r0, .L1246+12
8569	adds	r1, r2, #1
8570	ldr	r3, .L1246+16
8571	ldrb	r0, [r0]	@ zero_extendqisi2
8572	ldrh	r3, [r3, r1, lsl #1]
8573	cbz	r0, .L1202
8574	ldr	r0, [r10]
8575	ldr	r5, .L1246+20
8576	cmp	r0, r5
8577	it	eq
8578	moveq	r3, r1
8579.L1202:
8580	add	r3, r3, #1073741824
8581	subs	r3, r3, #1
8582	lsls	r3, r3, #2
8583	str	r3, [sp, #40]
8584.L1201:
8585	movw	r3, #61424
8586	str	r3, [sp, #44]
8587	ldr	r3, .L1246+16
8588	ldrh	r5, [r3, r2, lsl #1]
8589	ldr	r3, .L1246+12
8590	ldrb	r3, [r3]	@ zero_extendqisi2
8591	cbz	r3, .L1203
8592	ldr	r3, [r10]
8593	ldr	r1, .L1246+20
8594	cmp	r3, r1
8595	it	eq
8596	moveq	r5, r2
8597.L1203:
8598	ldr	r3, [sp, #24]
8599	adds	r6, r6, #4
8600	ldr	r2, .L1246+24
8601	ldr	r8, .L1246+4
8602	mla	r3, r5, fp, r3
8603	adds	r5, r5, #1
8604	uxth	r5, r5
8605	str	r3, [sp, #32]
8606	ldrb	r3, [r2]	@ zero_extendqisi2
8607	ldr	r2, .L1246+28
8608	str	r3, [sp, #28]
8609	ldrb	r0, [r2]	@ zero_extendqisi2
8610	bl	FlashBchSel
8611	movs	r0, #0
8612	bl	flash_boot_enter_slc_mode
8613	ldr	r2, [r8]
8614	ldr	r3, [sp, #32]
8615	ldrb	r1, [r2, #9]	@ zero_extendqisi2
8616	mov	r0, r3
8617	bl	__aeabi_uidiv
8618	add	r3, sp, #40
8619	mov	r2, r7
8620	mov	r1, r0
8621	movs	r0, #0
8622	bl	FlashProgPage
8623	movs	r0, #0
8624	add	r7, r7, #2048
8625	bl	flash_boot_exit_slc_mode
8626	ldr	r0, [sp, #28]
8627	bl	FlashBchSel
8628	mov	r1, fp
8629	ldr	r0, [sp, #24]
8630	bl	__aeabi_uidiv
8631	mov	r2, r5
8632	mov	r1, r0
8633	movs	r0, #0
8634	bl	FlashPageProgMsbFFData
8635	ldr	r3, .L1246+32
8636	cmp	r7, r3
8637	bne	.L1204
8638	ldr	r3, [r8]
8639	mov	r0, r4
8640	ldr	r7, .L1246
8641	movs	r6, #0
8642	ldrb	r8, [r3, #9]	@ zero_extendqisi2
8643	ldrh	r1, [r3, #10]
8644	smulbb	r1, r1, r8
8645	uxth	r1, r1
8646	bl	__aeabi_uidivmod
8647	mul	r5, r8, r1
8648	mov	r10, r1
8649	subs	r3, r4, r1
8650	str	r3, [sp, #28]
8651	ubfx	r5, r5, #2, #2
8652.L1205:
8653	cmp	r6, #512
8654	bcs	.L1212
8655	ldr	r1, .L1246+12
8656	rsb	r3, r5, #4
8657	uxth	r3, r3
8658	ldr	r2, .L1246+16
8659	ldrb	r1, [r1]	@ zero_extendqisi2
8660	str	r3, [sp, #24]
8661	add	r3, r10, r6
8662	lsrs	r3, r3, #2
8663	ldrh	r2, [r2, r3, lsl #1]
8664	cbz	r1, .L1206
8665	ldr	r1, .L1246+36
8666	ldr	r0, .L1246+20
8667	ldr	r1, [r1]
8668	cmp	r1, r0
8669	it	eq
8670	moveq	r2, r3
8671.L1206:
8672	ldr	r3, [sp, #28]
8673	add	r5, r5, r3
8674	ldr	r3, .L1246+24
8675	mla	r5, r2, r8, r5
8676	ldrb	r3, [r3]	@ zero_extendqisi2
8677	str	r3, [sp, #32]
8678	ldr	r3, .L1246+4
8679	ldr	r3, [r3]
8680	ldrb	fp, [r3, #9]	@ zero_extendqisi2
8681	ldr	r3, .L1246+40
8682	ldrh	r2, [r3, #26]
8683	ldr	r3, .L1246+44
8684	ldr	r3, [r3]
8685	muls	r3, r2, r3
8686	mul	r3, fp, r3
8687	cmp	r5, r3
8688	bcs	.L1207
8689	ldr	r3, .L1246+28
8690	ldrb	r0, [r3]	@ zero_extendqisi2
8691	bl	FlashBchSel
8692.L1207:
8693	movs	r0, #0
8694	bl	flash_boot_enter_slc_mode
8695	mov	r1, fp
8696	mov	r0, r5
8697	bl	__aeabi_uidiv
8698	add	r3, sp, #40
8699	mov	r1, r0
8700	mov	fp, r0
8701	mov	r2, r7
8702	movs	r0, #0
8703	bl	FlashReadPage
8704	adds	r3, r0, #1
8705	mov	r5, r0
8706	bne	.L1208
8707	ldr	r3, .L1246+28
8708	ldrb	r3, [r3]	@ zero_extendqisi2
8709	cmp	r3, #40
8710	beq	.L1208
8711	movs	r0, #40
8712	bl	FlashBchSel
8713	add	r3, sp, #40
8714	mov	r2, r7
8715	mov	r1, fp
8716	movs	r0, #0
8717	bl	FlashReadPage
8718	mov	r5, r0
8719.L1208:
8720	movs	r0, #0
8721	bl	flash_boot_exit_slc_mode
8722	ldr	r0, [sp, #32]
8723	bl	FlashBchSel
8724	adds	r5, r5, #1
8725	mov	r5, #-1
8726	it	ne
8727	movne	r5, #0
8728	cbz	r5, .L1209
8729.L1212:
8730	ldr	r3, .L1246+8
8731	movs	r5, #0
8732	ldr	r6, .L1246
8733.L1210:
8734	mov	r7, r3
8735	ldr	r1, [r6, r5, lsl #2]
8736	ldr	r2, [r7]
8737	adds	r3, r3, #4
8738	cmp	r1, r2
8739	beq	.L1213
8740	mov	r2, #512
8741	movs	r1, #0
8742	ldr	r0, .L1246
8743	bl	memset
8744	str	r5, [sp]
8745	mov	r1, r4
8746	ldr	r3, [r7]
8747	ldr	r2, [r6, r5, lsl #2]
8748	ldr	r0, .L1246+48
8749	bl	printf
8750	mov	r0, r4
8751	bl	FW_FlashBlockErase.constprop.41
8752	ldr	r3, [sp, #20]
8753	cmp	r3, #1
8754	bls	.L1214
8755	ldr	r3, [sp, #8]
8756	adds	r0, r3, r4
8757	bl	FW_FlashBlockErase.constprop.41
8758.L1214:
8759	ldr	r3, [sp, #16]
8760	ldr	r2, [sp, #20]
8761	add	r3, r3, r2
8762	str	r3, [sp, #16]
8763	ldr	r3, [sp, #36]
8764	add	r4, r4, r3
8765	b	.L1199
8766.L1209:
8767	ldr	r3, [sp, #24]
8768	add	r6, r6, r3
8769	add	r7, r7, r3, lsl #9
8770	uxth	r6, r6
8771	b	.L1205
8772.L1213:
8773	adds	r5, r5, #1
8774	cmp	r5, #65536
8775	bne	.L1210
8776	ldr	r3, [sp, #12]
8777	adds	r3, r3, #1
8778	cmp	r3, #5
8779	str	r3, [sp, #12]
8780	bls	.L1214
8781	b	.L1218
8782.L1247:
8783	.align	2
8784.L1246:
8785	.word	gp_flash_check_buf
8786	.word	.LANCHOR18
8787	.word	idb_buf
8788	.word	.LANCHOR8
8789	.word	.LANCHOR16
8790	.word	1446522928
8791	.word	.LANCHOR33
8792	.word	.LANCHOR152
8793	.word	idb_buf+262144
8794	.word	.LANCHOR29
8795	.word	.LANCHOR15
8796	.word	.LANCHOR3
8797	.word	.LC16
8798	.size	idb_write_data, .-idb_write_data
8799	.section	.text.ftl_memcmp,"ax",%progbits
8800	.align	1
8801	.global	ftl_memcmp
8802	.syntax unified
8803	.thumb
8804	.thumb_func
8805	.fpu softvfp
8806	.type	ftl_memcmp, %function
8807ftl_memcmp:
8808	@ args = 0, pretend = 0, frame = 0
8809	@ frame_needed = 0, uses_anonymous_args = 0
8810	@ link register save eliminated.
8811	b	memcmp
8812	.size	ftl_memcmp, .-ftl_memcmp
8813	.section	.text.rknand_get_clk_rate,"ax",%progbits
8814	.align	1
8815	.global	rknand_get_clk_rate
8816	.syntax unified
8817	.thumb
8818	.thumb_func
8819	.fpu softvfp
8820	.type	rknand_get_clk_rate, %function
8821rknand_get_clk_rate:
8822	@ args = 0, pretend = 0, frame = 0
8823	@ frame_needed = 0, uses_anonymous_args = 0
8824	@ link register save eliminated.
8825	ldr	r0, .L1250
8826	bx	lr
8827.L1251:
8828	.align	2
8829.L1250:
8830	.word	148000000
8831	.size	rknand_get_clk_rate, .-rknand_get_clk_rate
8832	.section	.text.ftl_malloc,"ax",%progbits
8833	.align	1
8834	.global	ftl_malloc
8835	.syntax unified
8836	.thumb
8837	.thumb_func
8838	.fpu softvfp
8839	.type	ftl_malloc, %function
8840ftl_malloc:
8841	@ args = 0, pretend = 0, frame = 0
8842	@ frame_needed = 0, uses_anonymous_args = 0
8843	@ link register save eliminated.
8844	movs	r1, #0
8845	b	kmalloc
8846	.size	ftl_malloc, .-ftl_malloc
8847	.section	.text.NandcInit,"ax",%progbits
8848	.align	1
8849	.global	NandcInit
8850	.syntax unified
8851	.thumb
8852	.thumb_func
8853	.fpu softvfp
8854	.type	NandcInit, %function
8855NandcInit:
8856	@ args = 0, pretend = 0, frame = 0
8857	@ frame_needed = 0, uses_anonymous_args = 0
8858	push	{r3, r4, r5, lr}
8859	movs	r2, #1
8860	ldr	r3, .L1255
8861	movs	r4, #0
8862	ldr	r5, .L1255+4
8863	str	r2, [r3, #12]
8864	movs	r2, #2
8865	str	r2, [r3, #20]
8866	movs	r2, #3
8867	stm	r3, {r0, r4}
8868	str	r0, [r3, #8]
8869	str	r0, [r3, #16]
8870	str	r2, [r3, #28]
8871	str	r0, [r3, #24]
8872	ldr	r3, .L1255+8
8873	ldr	r2, .L1255+12
8874	str	r0, [r3]
8875	ldr	r3, [r0]
8876	and	r3, r3, #253952
8877	ubfx	r1, r3, #13, #1
8878	bfi	r3, r4, #13, #1
8879	str	r1, [r2]
8880	orr	r3, r3, #256
8881	ldr	r2, [r0, #352]
8882	ldr	r1, .L1255+16
8883	ubfx	r2, r2, #16, #4
8884	str	r2, [r1]
8885	ldr	r2, [r0, #352]
8886	str	r2, [r5]
8887	movw	r5, #2049
8888	cmp	r2, r5
8889	itt	eq
8890	moveq	r2, #8
8891	streq	r2, [r1]
8892	str	r3, [r0]
8893	movw	r3, #4225
8894	str	r4, [r0, #336]
8895	str	r3, [r0, #4]
8896	movw	r3, #8322
8897	str	r3, [r0, #344]
8898	ldr	r3, .L1255+20
8899	str	r3, [r0, #304]
8900	mov	r0, #36864
8901	bl	ftl_malloc
8902	ldr	r3, .L1255+24
8903	str	r0, [r3]
8904	ldr	r3, .L1255+28
8905	str	r0, [r3]
8906	add	r0, r0, #32768
8907	str	r0, [r3, #4]
8908	str	r4, [r3, #24]
8909	ldr	r3, .L1255+32
8910	str	r4, [r3]
8911	pop	{r3, r4, r5, pc}
8912.L1256:
8913	.align	2
8914.L1255:
8915	.word	.LANCHOR6
8916	.word	.LANCHOR29
8917	.word	.LANCHOR19
8918	.word	.LANCHOR155
8919	.word	.LANCHOR34
8920	.word	1710593
8921	.word	.LANCHOR156
8922	.word	.LANCHOR35
8923	.word	.LANCHOR36
8924	.size	NandcInit, .-NandcInit
8925	.section	.text.FtlMemInit,"ax",%progbits
8926	.align	1
8927	.global	FtlMemInit
8928	.syntax unified
8929	.thumb
8930	.thumb_func
8931	.fpu softvfp
8932	.type	FtlMemInit, %function
8933FtlMemInit:
8934	@ args = 0, pretend = 0, frame = 0
8935	@ frame_needed = 0, uses_anonymous_args = 0
8936	ldr	r3, .L1262
8937	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8938	movs	r4, #0
8939	ldr	r2, .L1262+4
8940	movs	r6, #12
8941	strh	r4, [r3]	@ movhi
8942	ldr	r3, .L1262+8
8943	ldr	r5, .L1262+12
8944	ldr	r10, .L1262+304
8945	str	r4, [r3]
8946	ldr	r3, .L1262+16
8947	ldr	r8, .L1262+308
8948	ldr	fp, .L1262+312
8949	str	r4, [r3]
8950	ldr	r3, .L1262+20
8951	str	r4, [r3]
8952	ldr	r3, .L1262+24
8953	str	r4, [r3]
8954	ldr	r3, .L1262+28
8955	str	r4, [r3]
8956	ldr	r3, .L1262+32
8957	str	r4, [r3]
8958	ldr	r3, .L1262+36
8959	str	r4, [r3]
8960	ldr	r3, .L1262+40
8961	str	r4, [r3]
8962	ldr	r3, .L1262+44
8963	str	r4, [r3]
8964	ldr	r3, .L1262+48
8965	str	r4, [r3]
8966	ldr	r3, .L1262+52
8967	str	r4, [r3]
8968	ldr	r3, .L1262+56
8969	str	r4, [r3]
8970	ldr	r3, .L1262+60
8971	str	r4, [r3]
8972	ldr	r3, .L1262+64
8973	str	r4, [r3]
8974	ldr	r3, .L1262+68
8975	str	r4, [r3]
8976	ldr	r3, .L1262+72
8977	str	r4, [r3]
8978	ldr	r3, .L1262+76
8979	str	r4, [r3]
8980	movw	r3, #65535
8981	str	r3, [r2]
8982	ldr	r2, .L1262+80
8983	str	r4, [r2]
8984	ldr	r2, .L1262+84
8985	str	r4, [r2]
8986	ldr	r2, .L1262+88
8987	str	r4, [r2]
8988	ldr	r2, .L1262+92
8989	strh	r3, [r2]	@ movhi
8990	ldr	r2, .L1262+96
8991	strh	r3, [r2]	@ movhi
8992	ldr	r2, .L1262+100
8993	strh	r3, [r2]	@ movhi
8994	ldr	r2, .L1262+104
8995	strh	r3, [r2]	@ movhi
8996	movs	r2, #32
8997	ldr	r3, .L1262+108
8998	strh	r2, [r3]	@ movhi
8999	movs	r2, #128
9000	ldr	r3, .L1262+112
9001	strh	r2, [r3]	@ movhi
9002	ldr	r3, .L1262+116
9003	strh	r4, [r3]	@ movhi
9004	ldr	r3, .L1262+120
9005	strh	r4, [r3]	@ movhi
9006	ldr	r3, .L1262+124
9007	strh	r4, [r3]	@ movhi
9008	ldr	r3, .L1262+128
9009	strh	r4, [r3]	@ movhi
9010	ldrh	r0, [r5]
9011	lsls	r0, r0, #1
9012	bl	ftl_malloc
9013	ldr	r3, .L1262+132
9014	str	r0, [r3]
9015	ldrh	r0, [r5]
9016	movs	r5, #36
9017	muls	r0, r6, r0
9018	bl	ftl_malloc
9019	ldr	r3, .L1262+136
9020	str	r0, [r3]
9021	ldrh	r3, [r10]
9022	muls	r5, r3, r5
9023	lsls	r7, r5, #2
9024	mov	r0, r7
9025	bl	ftl_malloc
9026	ldr	r3, .L1262+140
9027	str	r0, [r3]
9028	mov	r0, r5
9029	bl	ftl_malloc
9030	ldr	r3, .L1262+144
9031	str	r0, [r3]
9032	mov	r0, r7
9033	bl	ftl_malloc
9034	ldr	r3, .L1262+148
9035	ldr	r7, .L1262+152
9036	str	r0, [r3]
9037	mov	r0, r5
9038	bl	ftl_malloc
9039	ldr	r3, .L1262+156
9040	str	r0, [r3]
9041	mov	r0, r5
9042	bl	ftl_malloc
9043	ldr	r3, .L1262+160
9044	ldrh	r5, [r7]
9045	str	r0, [r3]
9046	ldrh	r3, [r10]
9047	mov	r0, r5
9048	lsls	r3, r3, #1
9049	adds	r3, r3, #1
9050	str	r3, [r8]
9051	bl	ftl_malloc
9052	ldr	r3, .L1262+164
9053	str	r0, [r3]
9054	mov	r0, r5
9055	bl	ftl_malloc
9056	ldr	r3, .L1262+168
9057	str	r0, [r3]
9058	mov	r0, r5
9059	bl	ftl_malloc
9060	ldr	r3, .L1262+172
9061	str	r0, [r3]
9062	ldr	r0, [r8]
9063	muls	r0, r5, r0
9064	bl	ftl_malloc
9065	ldr	r3, .L1262+176
9066	str	r0, [r3]
9067	mov	r0, r5
9068	bl	ftl_malloc
9069	ldr	r3, .L1262+180
9070	str	r0, [r3]
9071	mov	r0, r5
9072	bl	ftl_malloc
9073	ldr	r3, .L1262+184
9074	str	r0, [r3]
9075	ldr	r0, [r8]
9076	muls	r0, r6, r0
9077	bl	ftl_malloc
9078	ldr	r3, .L1262+188
9079	ldrh	r5, [r10]
9080	ldr	r10, .L1262+316
9081	str	r0, [r3]
9082	ldrh	r3, [fp]
9083	muls	r5, r3, r5
9084	mov	r0, r5
9085	bl	ftl_malloc
9086	ldr	r3, .L1262+192
9087	str	r0, [r3]
9088	lsls	r0, r5, #2
9089	ldr	r5, .L1262+196
9090	bl	ftl_malloc
9091	ldr	r3, .L1262+200
9092	str	r0, [r3]
9093	ldrh	r3, [fp]
9094	ldr	r0, [r8]
9095	ldr	r8, .L1262+320
9096	muls	r0, r3, r0
9097	bl	ftl_malloc
9098	ldr	r3, .L1262+204
9099	str	r0, [r3]
9100	ldrh	r0, [r5]
9101	lsls	r0, r0, #1
9102	uxth	r0, r0
9103	strh	r0, [r8]	@ movhi
9104	bl	ftl_malloc
9105	ldr	r3, .L1262+208
9106	str	r0, [r3]
9107	ldrh	r3, [r8]
9108	ldr	r0, .L1262+212
9109	addw	r3, r3, #547
9110	lsrs	r3, r3, #9
9111	and	r0, r0, r3, lsl #9
9112	strh	r3, [r8]	@ movhi
9113	bl	ftl_malloc
9114	ldr	r3, .L1262+216
9115	str	r0, [r3]
9116	adds	r0, r0, #32
9117	ldr	r3, .L1262+220
9118	str	r0, [r3]
9119	ldrh	r0, [r5]
9120	lsls	r0, r0, #1
9121	bl	ftl_malloc
9122	ldr	r3, .L1262+224
9123	str	r0, [r3]
9124	ldr	r3, [r10]
9125	lsl	r8, r3, #1
9126	mov	r0, r8
9127	bl	ftl_malloc
9128	ldr	r3, .L1262+228
9129	str	r0, [r3]
9130	mov	r0, r8
9131	bl	ftl_malloc
9132	ldr	r3, .L1262+232
9133	ldr	r8, .L1262+324
9134	str	r0, [r3]
9135	ldrh	r0, [r5]
9136	lsrs	r0, r0, #3
9137	adds	r0, r0, #4
9138	bl	ftl_malloc
9139	ldr	r3, .L1262+236
9140	str	r0, [r3]
9141	ldrh	r0, [r8]
9142	lsls	r0, r0, #1
9143	bl	ftl_malloc
9144	ldr	r3, .L1262+240
9145	str	r0, [r3]
9146	ldrh	r0, [r8]
9147	lsls	r0, r0, #1
9148	bl	ftl_malloc
9149	ldr	r3, .L1262+244
9150	str	r0, [r3]
9151	ldrh	r0, [r8]
9152	ldr	r8, .L1262+328
9153	lsls	r0, r0, #2
9154	bl	ftl_malloc
9155	ldr	r3, .L1262+248
9156	str	r0, [r3]
9157	ldrh	r0, [r8]
9158	lsls	r0, r0, #2
9159	bl	ftl_malloc
9160	ldrh	r2, [r8]
9161	mov	r1, r4
9162	ldr	r3, .L1262+252
9163	lsls	r2, r2, #2
9164	str	r0, [r3]
9165	bl	ftl_memset
9166	ldr	r3, .L1262+256
9167	ldrh	r4, [r3]
9168	lsls	r4, r4, #2
9169	mov	r0, r4
9170	bl	ftl_malloc
9171	ldr	r3, .L1262+260
9172	str	r0, [r3]
9173	mov	r0, r4
9174	bl	ftl_malloc
9175	ldr	r3, .L1262+264
9176	ldr	r4, .L1262+268
9177	str	r0, [r3]
9178	ldr	r0, [r10]
9179	lsls	r0, r0, #2
9180	bl	ftl_malloc
9181	ldr	r3, .L1262+272
9182	str	r0, [r3]
9183	ldrh	r0, [r4]
9184	muls	r0, r6, r0
9185	ldr	r6, .L1262+276
9186	bl	ftl_malloc
9187	ldr	r3, .L1262+280
9188	str	r0, [r3]
9189	ldrh	r3, [r4]
9190	ldrh	r0, [r7]
9191	muls	r0, r3, r0
9192	bl	ftl_malloc
9193	ldr	r3, .L1262+284
9194	str	r0, [r3]
9195	movs	r0, #6
9196	ldrh	r3, [r5]
9197	ldr	r5, .L1262+288
9198	muls	r0, r3, r0
9199	bl	ftl_malloc
9200	ldr	r3, .L1262+292
9201	str	r0, [r3]
9202	ldr	r3, .L1262+296
9203	ldrh	r0, [r3]
9204	ldrh	r3, [r6]
9205	adds	r0, r0, #31
9206	asrs	r0, r0, #5
9207	strh	r0, [r5]	@ movhi
9208	muls	r0, r3, r0
9209	lsls	r0, r0, #2
9210	bl	ftl_malloc
9211	ldrh	r1, [r5]
9212	movs	r2, #1
9213	ldr	r3, .L1262+300
9214	ldrh	r6, [r6]
9215	lsls	r1, r1, #2
9216	mov	r4, r3
9217	str	r0, [r4, #28]!
9218	b	.L1263
9219.L1264:
9220	.align	2
9221.L1262:
9222	.word	.LANCHOR139
9223	.word	.LANCHOR173
9224	.word	.LANCHOR157
9225	.word	.LANCHOR55
9226	.word	.LANCHOR158
9227	.word	.LANCHOR159
9228	.word	.LANCHOR160
9229	.word	.LANCHOR161
9230	.word	.LANCHOR162
9231	.word	.LANCHOR163
9232	.word	.LANCHOR164
9233	.word	.LANCHOR165
9234	.word	.LANCHOR166
9235	.word	.LANCHOR167
9236	.word	.LANCHOR168
9237	.word	.LANCHOR80
9238	.word	.LANCHOR169
9239	.word	.LANCHOR170
9240	.word	.LANCHOR171
9241	.word	.LANCHOR172
9242	.word	.LANCHOR174
9243	.word	.LANCHOR175
9244	.word	.LANCHOR74
9245	.word	.LANCHOR113
9246	.word	.LANCHOR114
9247	.word	.LANCHOR115
9248	.word	.LANCHOR116
9249	.word	.LANCHOR176
9250	.word	.LANCHOR177
9251	.word	.LANCHOR178
9252	.word	.LANCHOR117
9253	.word	.LANCHOR179
9254	.word	.LANCHOR119
9255	.word	.LANCHOR109
9256	.word	.LANCHOR112
9257	.word	.LANCHOR180
9258	.word	.LANCHOR181
9259	.word	.LANCHOR182
9260	.word	.LANCHOR58
9261	.word	.LANCHOR78
9262	.word	.LANCHOR107
9263	.word	.LANCHOR183
9264	.word	.LANCHOR184
9265	.word	.LANCHOR185
9266	.word	.LANCHOR105
9267	.word	.LANCHOR186
9268	.word	.LANCHOR187
9269	.word	.LANCHOR104
9270	.word	.LANCHOR188
9271	.word	.LANCHOR41
9272	.word	.LANCHOR189
9273	.word	.LANCHOR106
9274	.word	.LANCHOR137
9275	.word	33553920
9276	.word	.LANCHOR191
9277	.word	.LANCHOR79
9278	.word	.LANCHOR84
9279	.word	.LANCHOR129
9280	.word	.LANCHOR125
9281	.word	.LANCHOR0
9282	.word	.LANCHOR72
9283	.word	.LANCHOR192
9284	.word	.LANCHOR193
9285	.word	.LANCHOR194
9286	.word	.LANCHOR67
9287	.word	.LANCHOR131
9288	.word	.LANCHOR195
9289	.word	.LANCHOR68
9290	.word	.LANCHOR130
9291	.word	.LANCHOR45
9292	.word	.LANCHOR97
9293	.word	.LANCHOR126
9294	.word	.LANCHOR123
9295	.word	.LANCHOR82
9296	.word	.LANCHOR51
9297	.word	.LANCHOR75
9298	.word	.LANCHOR38
9299	.word	.LANCHOR108
9300	.word	.LANCHOR59
9301	.word	.LANCHOR65
9302	.word	.LANCHOR190
9303	.word	.LANCHOR62
9304	.word	.LANCHOR63
9305.L1263:
9306	mov	r0, r1
9307.L1258:
9308	cmp	r2, r6
9309	bcc	.L1259
9310	add	r3, r3, r2, lsl #2
9311	ldr	r2, .L1265
9312	movs	r1, #0
9313	adds	r3, r3, #24
9314.L1260:
9315	cmp	r3, r2
9316	bne	.L1261
9317	movs	r0, #0
9318	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9319.L1259:
9320	ldr	r5, [r3, #28]
9321	adds	r2, r2, #1
9322	add	r5, r5, r0
9323	add	r0, r0, r1
9324	str	r5, [r4, #4]!
9325	b	.L1258
9326.L1261:
9327	str	r1, [r3, #4]!
9328	b	.L1260
9329.L1266:
9330	.align	2
9331.L1265:
9332	.word	.LANCHOR75+56
9333	.size	FtlMemInit, .-FtlMemInit
9334	.section	.text.ftl_free,"ax",%progbits
9335	.align	1
9336	.global	ftl_free
9337	.syntax unified
9338	.thumb
9339	.thumb_func
9340	.fpu softvfp
9341	.type	ftl_free, %function
9342ftl_free:
9343	@ args = 0, pretend = 0, frame = 0
9344	@ frame_needed = 0, uses_anonymous_args = 0
9345	@ link register save eliminated.
9346	b	free
9347	.size	ftl_free, .-ftl_free
9348	.section	.text.StorageSysDataLoad,"ax",%progbits
9349	.align	1
9350	.global	StorageSysDataLoad
9351	.syntax unified
9352	.thumb
9353	.thumb_func
9354	.fpu softvfp
9355	.type	StorageSysDataLoad, %function
9356StorageSysDataLoad:
9357	@ args = 0, pretend = 0, frame = 0
9358	@ frame_needed = 0, uses_anonymous_args = 0
9359	push	{r4, r5, r6, lr}
9360	mov	r4, r1
9361	mov	r5, r0
9362	mov	r2, #512
9363	movs	r1, #0
9364	mov	r0, r4
9365	bl	memset
9366	mov	r3, r4
9367	add	r1, r5, #256
9368	movs	r2, #1
9369	movs	r0, #16
9370	pop	{r4, r5, r6, lr}
9371	b	FtlRead
9372	.size	StorageSysDataLoad, .-StorageSysDataLoad
9373	.section	.text.FlashBootVendorRead,"ax",%progbits
9374	.align	1
9375	.global	FlashBootVendorRead
9376	.syntax unified
9377	.thumb
9378	.thumb_func
9379	.fpu softvfp
9380	.type	FlashBootVendorRead, %function
9381FlashBootVendorRead:
9382	@ args = 0, pretend = 0, frame = 0
9383	@ frame_needed = 0, uses_anonymous_args = 0
9384	@ link register save eliminated.
9385	mov	r3, r2
9386	mov	r1, r0
9387	movs	r2, #1
9388	movs	r0, #16
9389	b	FtlRead
9390	.size	FlashBootVendorRead, .-FlashBootVendorRead
9391	.section	.text.FlashCs123Init,"ax",%progbits
9392	.align	1
9393	.global	FlashCs123Init
9394	.syntax unified
9395	.thumb
9396	.thumb_func
9397	.fpu softvfp
9398	.type	FlashCs123Init, %function
9399FlashCs123Init:
9400	@ args = 0, pretend = 0, frame = 0
9401	@ frame_needed = 0, uses_anonymous_args = 0
9402	@ link register save eliminated.
9403	bx	lr
9404	.size	FlashCs123Init, .-FlashCs123Init
9405	.section	.text.rk_nand_de_init,"ax",%progbits
9406	.align	1
9407	.global	rk_nand_de_init
9408	.syntax unified
9409	.thumb
9410	.thumb_func
9411	.fpu softvfp
9412	.type	rk_nand_de_init, %function
9413rk_nand_de_init:
9414	@ args = 0, pretend = 0, frame = 0
9415	@ frame_needed = 0, uses_anonymous_args = 0
9416	@ link register save eliminated.
9417	b	FlashDeInit
9418	.size	rk_nand_de_init, .-rk_nand_de_init
9419	.section	.text.rk_ftl_get_capacity,"ax",%progbits
9420	.align	1
9421	.global	rk_ftl_get_capacity
9422	.syntax unified
9423	.thumb
9424	.thumb_func
9425	.fpu softvfp
9426	.type	rk_ftl_get_capacity, %function
9427rk_ftl_get_capacity:
9428	@ args = 0, pretend = 0, frame = 0
9429	@ frame_needed = 0, uses_anonymous_args = 0
9430	@ link register save eliminated.
9431	ldr	r3, .L1273
9432	ldr	r0, [r3]
9433	bx	lr
9434.L1274:
9435	.align	2
9436.L1273:
9437	.word	.LANCHOR69
9438	.size	rk_ftl_get_capacity, .-rk_ftl_get_capacity
9439	.section	.text.rknand_print_hex,"ax",%progbits
9440	.align	1
9441	.global	rknand_print_hex
9442	.syntax unified
9443	.thumb
9444	.thumb_func
9445	.fpu softvfp
9446	.type	rknand_print_hex, %function
9447rknand_print_hex:
9448	@ args = 0, pretend = 0, frame = 0
9449	@ frame_needed = 0, uses_anonymous_args = 0
9450	push	{r4, r5, r6, r7, r8, r10, fp, lr}
9451	movs	r5, #0
9452	ldr	r7, .L1284
9453	mov	fp, r0
9454	mov	r6, r1
9455	mov	r8, r2
9456	mov	r10, r3
9457	mov	r4, r5
9458.L1276:
9459	cmp	r4, r10
9460	bne	.L1282
9461	ldr	r1, .L1284+4
9462	ldr	r0, .L1284+8
9463	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
9464	b	printf
9465.L1282:
9466	cbnz	r5, .L1277
9467	mov	r2, r4
9468	mov	r1, fp
9469	ldr	r0, .L1284+12
9470	bl	printf
9471.L1277:
9472	cmp	r8, #4
9473	bne	.L1278
9474	ldr	r1, [r6, r4, lsl #2]
9475.L1283:
9476	mov	r0, r7
9477	adds	r5, r5, #1
9478	bl	printf
9479	cmp	r5, #15
9480	bls	.L1281
9481	movs	r5, #0
9482	ldr	r1, .L1284+4
9483	ldr	r0, .L1284+8
9484	bl	printf
9485.L1281:
9486	adds	r4, r4, #1
9487	b	.L1276
9488.L1278:
9489	cmp	r8, #2
9490	ite	eq
9491	ldrsheq	r1, [r6, r4, lsl #1]
9492	ldrbne	r1, [r6, r4]	@ zero_extendqisi2
9493	b	.L1283
9494.L1285:
9495	.align	2
9496.L1284:
9497	.word	.LC19
9498	.word	.LC20
9499	.word	.LC7
9500	.word	.LC18
9501	.size	rknand_print_hex, .-rknand_print_hex
9502	.section	.text.HynixGetReadRetryDefault,"ax",%progbits
9503	.align	1
9504	.global	HynixGetReadRetryDefault
9505	.syntax unified
9506	.thumb
9507	.thumb_func
9508	.fpu softvfp
9509	.type	HynixGetReadRetryDefault, %function
9510HynixGetReadRetryDefault:
9511	@ args = 0, pretend = 0, frame = 56
9512	@ frame_needed = 0, uses_anonymous_args = 0
9513	push	{r4, r5, r6, r7, r8, r10, fp, lr}
9514	movs	r3, #172
9515	ldr	r5, .L1385
9516	cmp	r0, #2
9517	mov	r1, #173
9518	mov	r2, #174
9519	sub	sp, sp, #56
9520	mov	r4, r0
9521	strb	r3, [r5, #4]
9522	mov	r3, #175
9523	strb	r0, [r5]
9524	strb	r1, [r5, #5]
9525	strb	r2, [r5, #6]
9526	strb	r3, [r5, #7]
9527	bne	.L1287
9528	movs	r3, #167
9529	movs	r2, #247
9530	strb	r3, [r5, #4]
9531	ldr	r3, .L1385+4
9532	strb	r2, [r3, #17]
9533.L1343:
9534	mov	r10, #7
9535	b	.L1379
9536.L1287:
9537	cmp	r0, #3
9538	bne	.L1289
9539	movs	r3, #176
9540	strb	r3, [r5, #4]
9541	movs	r3, #177
9542	strb	r3, [r5, #5]
9543	movs	r3, #178
9544	strb	r3, [r5, #6]
9545	movs	r3, #179
9546	strb	r3, [r5, #7]
9547	movs	r3, #180
9548	strb	r3, [r5, #8]
9549	movs	r3, #181
9550	strb	r3, [r5, #9]
9551	movs	r3, #182
9552	strb	r3, [r5, #10]
9553	movs	r3, #183
9554.L1380:
9555	mov	r10, #8
9556	strb	r3, [r5, #11]
9557	mov	fp, r10
9558.L1288:
9559	subs	r3, r4, #1
9560	cmp	r3, #1
9561	bhi	.L1293
9562	mov	r8, #0
9563.L1294:
9564	ldr	r3, .L1385+8
9565	ldrb	r2, [r3]	@ zero_extendqisi2
9566	uxtb	r3, r8
9567	cmp	r2, r3
9568	bhi	.L1300
9569.L1301:
9570	ldr	r3, .L1385
9571	strb	fp, [r3, #1]
9572	strb	r10, [r3, #2]
9573	add	sp, sp, #56
9574	@ sp needed
9575	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9576.L1289:
9577	cmp	r0, #4
9578	bne	.L1290
9579	movs	r0, #204
9580	strb	r1, [r5, #9]
9581	strb	r0, [r5, #4]
9582	movs	r0, #191
9583	strb	r0, [r5, #5]
9584	movs	r0, #170
9585	strb	r0, [r5, #6]
9586	movs	r0, #171
9587	strb	r0, [r5, #7]
9588	movs	r0, #205
9589	strb	r0, [r5, #8]
9590	strb	r2, [r5, #10]
9591	b	.L1380
9592.L1290:
9593	cmp	r0, #5
9594	bne	.L1291
9595	movs	r3, #56
9596	mov	r10, #8
9597	strb	r3, [r5, #4]
9598	movs	r3, #57
9599	strb	r3, [r5, #5]
9600	movs	r3, #58
9601	strb	r3, [r5, #6]
9602	movs	r3, #59
9603	strb	r3, [r5, #7]
9604.L1379:
9605	mov	fp, #4
9606	b	.L1288
9607.L1291:
9608	cmp	r0, #6
9609	bne	.L1292
9610	movs	r3, #14
9611	mov	r10, #12
9612	strb	r3, [r5, #4]
9613	movs	r3, #15
9614	strb	r3, [r5, #5]
9615	movs	r3, #16
9616	strb	r3, [r5, #6]
9617	movs	r3, #17
9618	strb	r3, [r5, #7]
9619	b	.L1379
9620.L1292:
9621	cmp	r0, #7
9622	bne	.L1343
9623	movs	r3, #176
9624	mov	r10, #12
9625	strb	r3, [r5, #4]
9626	movs	r3, #177
9627	strb	r3, [r5, #5]
9628	movs	r3, #178
9629	strb	r3, [r5, #6]
9630	movs	r3, #179
9631	strb	r3, [r5, #7]
9632	movs	r3, #180
9633	strb	r3, [r5, #8]
9634	movs	r3, #181
9635	strb	r3, [r5, #9]
9636	movs	r3, #182
9637	strb	r3, [r5, #10]
9638	movs	r3, #183
9639	strb	r3, [r5, #11]
9640	movs	r3, #212
9641	strb	r3, [r5, #12]
9642	movs	r3, #213
9643	strb	r3, [r5, #13]
9644	mov	fp, #10
9645	b	.L1288
9646.L1300:
9647	ldr	r2, .L1385+12
9648	movs	r6, #0
9649	ldrb	r2, [r2, r3]	@ zero_extendqisi2
9650	ldr	r3, .L1385+16
9651	ldr	r7, [r3, r2, lsl #3]
9652	add	r4, r5, r2, lsl #6
9653	add	r3, r3, r2, lsl #3
9654	movs	r2, #55
9655	adds	r4, r4, #20
9656	ldrb	r3, [r3, #4]	@ zero_extendqisi2
9657	add	r7, r7, r3, lsl #8
9658	addw	r3, r7, #2056
9659.L1295:
9660	adds	r1, r5, r6
9661	str	r2, [r3]
9662	ldrb	r1, [r1, #4]	@ zero_extendqisi2
9663	movs	r0, #80
9664	str	r2, [sp, #8]
9665	str	r3, [sp, #4]
9666	str	r1, [r7, #2052]
9667	bl	udelay
9668	ldr	r1, [r7, #2048]
9669	ldr	r3, [sp, #4]
9670	ldr	r2, [sp, #8]
9671	strb	r1, [r4, r6]
9672	adds	r6, r6, #1
9673	uxtb	r1, r6
9674	cmp	fp, r1
9675	bhi	.L1295
9676	ldr	r7, .L1385+4
9677	mov	r1, r4
9678	movs	r2, #0
9679.L1298:
9680	movs	r3, #1
9681	adds	r6, r7, r2
9682.L1297:
9683	ldrb	r0, [r6, r3, lsl #2]	@ zero_extendqisi2
9684	ldrb	ip, [r1]	@ zero_extendqisi2
9685	add	r0, r0, ip
9686	strb	r0, [r1, r3, lsl #3]
9687	adds	r3, r3, #1
9688	cmp	r3, #7
9689	bne	.L1297
9690	adds	r2, r2, #1
9691	adds	r1, r1, #1
9692	cmp	r2, #4
9693	bne	.L1298
9694	movs	r3, #0
9695	add	r8, r8, #1
9696	strb	r3, [r4, #16]
9697	strb	r3, [r4, #24]
9698	strb	r3, [r4, #32]
9699	strb	r3, [r4, #40]
9700	strb	r3, [r4, #48]
9701	strb	r3, [r4, #41]
9702	strb	r3, [r4, #49]
9703	b	.L1294
9704.L1293:
9705	subs	r3, r4, #3
9706	cmp	r3, #4
9707	bhi	.L1301
9708	smulbb	r3, r10, fp
9709	asrs	r2, r3, #2
9710	lsls	r3, r3, #4
9711	str	r3, [sp, #52]
9712	lsls	r3, r2, #3
9713	str	r2, [sp, #12]
9714	str	r3, [sp, #48]
9715	lsls	r3, r2, #2
9716	str	r3, [sp, #32]
9717	movs	r3, #0
9718.L1384:
9719	str	r3, [sp, #28]
9720	ldrb	r3, [sp, #28]	@ zero_extendqisi2
9721	str	r3, [sp, #16]
9722	ldr	r3, .L1385+8
9723	ldr	r2, [sp, #16]
9724	ldrb	r3, [r3]	@ zero_extendqisi2
9725	cmp	r3, r2
9726	bls	.L1301
9727	ldr	r2, [sp, #16]
9728	ldr	r3, .L1385+12
9729	ldrb	r8, [r3, r2]	@ zero_extendqisi2
9730	ldr	r3, .L1385+16
9731	mov	r0, r8
9732	ldr	r2, [r3, r8, lsl #3]
9733	add	r3, r3, r8, lsl #3
9734	ldrb	r3, [r3, #4]	@ zero_extendqisi2
9735	str	r2, [sp, #4]
9736	str	r3, [sp, #8]
9737	mov	r3, r2
9738	ldr	r2, [sp, #8]
9739	add	r3, r3, r2, lsl #8
9740	movs	r2, #255
9741	str	r2, [r3, #2056]
9742	bl	NandcWaitFlashReady
9743	ldr	r1, .L1385
9744	cmp	r4, #7
9745	it	eq
9746	moveq	r3, #160
9747	ldr	r2, [sp, #8]
9748	itete	eq
9749	mlaeq	r1, r3, r8, r1
9750	addne	r1, r1, r8, lsl #6
9751	addeq	r3, r1, #28
9752	addne	r3, r1, #20
9753	str	r3, [sp, #36]
9754	cmp	r4, #4
9755	ldr	r3, [sp, #4]
9756	add	r3, r3, r2, lsl #8
9757	mov	r2, #54
9758	str	r2, [r3, #2056]
9759	bne	.L1305
9760	movs	r2, #255
9761	str	r2, [r3, #2052]
9762	movs	r2, #64
9763	str	r2, [r3, #2048]
9764	movs	r2, #204
9765.L1382:
9766	str	r2, [r3, #2052]
9767	movs	r2, #77
9768	b	.L1383
9769.L1305:
9770	subs	r2, r4, #5
9771	cmp	r2, #1
9772	bhi	.L1307
9773	ldr	r2, .L1385
9774	ldrb	r2, [r2, #4]	@ zero_extendqisi2
9775	str	r2, [r3, #2052]
9776	movs	r2, #82
9777.L1383:
9778	str	r2, [r3, #2048]
9779	cmp	r4, #6
9780	ldr	r3, [sp, #4]
9781	mov	r0, r8
9782	ldr	r2, [sp, #8]
9783	add	r5, r3, r2, lsl #8
9784	mov	r3, #22
9785	ldr	r2, [sp, #8]
9786	str	r3, [r5, #2056]
9787	mov	r3, #23
9788	str	r3, [r5, #2056]
9789	mov	r3, #4
9790	str	r3, [r5, #2056]
9791	mov	r3, #25
9792	str	r3, [r5, #2056]
9793	mov	r3, #0
9794	str	r3, [r5, #2056]
9795	str	r3, [r5, #2052]
9796	str	r3, [r5, #2052]
9797	it	eq
9798	moveq	r3, #31
9799	str	r3, [r5, #2052]
9800	movs	r3, #2
9801	str	r3, [r5, #2052]
9802	movs	r3, #0
9803	str	r3, [r5, #2052]
9804	ldr	r3, [sp, #4]
9805	add	r3, r3, r2, lsl #8
9806	movs	r2, #48
9807	str	r2, [r3, #2056]
9808	bl	NandcWaitFlashReady
9809	subs	r3, r4, #5
9810	cmp	r3, #1
9811	str	r3, [sp, #40]
9812	bls	.L1344
9813	cmp	r4, #7
9814	ite	eq
9815	moveq	r2, #32
9816	movne	r2, #2
9817.L1310:
9818	ldr	r3, .L1385+20
9819	subs	r2, r2, #1
9820	ldr	r3, [r3]
9821	subs	r1, r3, #1
9822	uxtab	r2, r3, r2
9823	mov	r0, r1
9824.L1311:
9825	ldr	r6, [r5, #2048]
9826	strb	r6, [r0, #1]!
9827	cmp	r2, r0
9828	bne	.L1311
9829	cmp	r4, #7
9830	bne	.L1312
9831	movs	r2, #0
9832.L1314:
9833	ldrb	r0, [r3, r2, lsl #2]	@ zero_extendqisi2
9834	uxtb	r1, r2
9835	cmp	r0, #12
9836	beq	.L1313
9837	add	r0, r3, r2, lsl #2
9838	ldrb	r0, [r0, #1]	@ zero_extendqisi2
9839	cmp	r0, #10
9840	beq	.L1313
9841	adds	r2, r2, #1
9842	cmp	r2, #8
9843	bne	.L1314
9844.L1315:
9845	movs	r1, #0
9846	ldr	r0, .L1385+24
9847	bl	printf
9848.L1317:
9849	b	.L1317
9850.L1307:
9851	movs	r2, #174
9852	str	r2, [r3, #2052]
9853	movs	r2, #0
9854	str	r2, [r3, #2048]
9855	movs	r2, #176
9856	b	.L1382
9857.L1344:
9858	movs	r2, #16
9859	b	.L1310
9860.L1386:
9861	.align	2
9862.L1385:
9863	.word	.LANCHOR20
9864	.word	.LANCHOR196
9865	.word	.LANCHOR25
9866	.word	.LANCHOR26
9867	.word	.LANCHOR6
9868	.word	.LANCHOR147
9869	.word	.LC21
9870.L1313:
9871	cmp	r1, #6
9872	bhi	.L1315
9873.L1316:
9874	ldr	r3, .L1387
9875	ldr	lr, [r3]
9876	mov	r3, lr
9877.L1321:
9878	ldr	r1, [sp, #52]
9879	sub	r2, r3, lr
9880	cmp	r1, r2
9881	bgt	.L1322
9882	ldr	r3, .L1387
9883	ldr	r1, [r3]
9884	ldr	r3, [sp, #32]
9885	adds	r0, r1, r3
9886	movs	r3, #8
9887.L1324:
9888	mov	r7, r0
9889	movs	r6, #0
9890.L1323:
9891	ldr	r2, [r7]
9892	adds	r6, r6, #1
9893	mvns	r2, r2
9894	str	r2, [r7], #4
9895	ldr	r2, [sp, #12]
9896	cmp	r2, r6
9897	bgt	.L1323
9898	ldr	r2, [sp, #48]
9899	subs	r3, r3, #1
9900	add	r0, r0, r2
9901	bne	.L1324
9902	str	r1, [sp, #20]
9903	str	r3, [sp, #24]
9904.L1330:
9905	movs	r0, #0
9906	mov	r2, r0
9907.L1329:
9908	movs	r3, #1
9909	mov	ip, #0
9910	lsl	r7, r3, r2
9911	movs	r3, #16
9912	str	r3, [sp, #44]
9913	mov	r6, r7
9914	ldr	r7, [sp, #20]
9915.L1327:
9916	ldr	r3, [r7]
9917	bics	r3, r6, r3
9918	ldr	r3, [sp, #32]
9919	it	eq
9920	addeq	ip, ip, #1
9921	add	r7, r7, r3
9922	ldr	r3, [sp, #44]
9923	subs	r3, r3, #1
9924	str	r3, [sp, #44]
9925	bne	.L1327
9926	cmp	ip, #8
9927	add	r2, r2, #1
9928	itt	hi
9929	movhi	r3, r6
9930	orrhi	r0, r0, r3
9931	cmp	r2, #32
9932	bne	.L1329
9933	ldr	r3, [sp, #20]
9934	str	r0, [r3], #4
9935	str	r3, [sp, #20]
9936	ldr	r3, [sp, #24]
9937	adds	r3, r3, #1
9938	str	r3, [sp, #24]
9939	ldr	r2, [sp, #24]
9940	ldr	r3, [sp, #12]
9941	cmp	r3, r2
9942	bgt	.L1330
9943	subs	r2, r1, #4
9944	add	r0, r1, #28
9945	movs	r3, #0
9946.L1333:
9947	ldr	r6, [r2, #4]!
9948	cbnz	r6, .L1332
9949	adds	r3, r3, #1
9950.L1332:
9951	cmp	r0, r2
9952	bne	.L1333
9953	cmp	r3, #7
9954	ble	.L1334
9955	ldr	r0, .L1387+4
9956	mov	r3, #1024
9957	movs	r2, #1
9958	bl	rknand_print_hex
9959	movs	r1, #0
9960	ldr	r0, .L1387+8
9961	bl	printf
9962.L1335:
9963	b	.L1335
9964.L1312:
9965	cmp	r4, #6
9966	bne	.L1316
9967	adds	r3, r3, #7
9968.L1318:
9969	ldrb	r2, [r1, #1]!	@ zero_extendqisi2
9970	cmp	r2, #12
9971	beq	.L1316
9972	ldrb	r2, [r1, #8]	@ zero_extendqisi2
9973	cmp	r2, #4
9974	beq	.L1316
9975	cmp	r3, r1
9976	bne	.L1318
9977	movs	r1, #0
9978	ldr	r0, .L1387+8
9979	bl	printf
9980.L1320:
9981	b	.L1320
9982.L1322:
9983	ldr	r2, [r5, #2048]
9984	strb	r2, [r3], #1
9985	b	.L1321
9986.L1334:
9987	cmp	r4, #6
9988	beq	.L1346
9989	cmp	r4, #7
9990	ite	eq
9991	moveq	ip, #10
9992	movne	ip, #8
9993.L1336:
9994	add	r3, fp, #-1
9995	ldr	r1, [sp, #36]
9996	uxtb	r3, r3
9997	movs	r0, #0
9998	adds	r3, r3, #1
9999.L1337:
10000	mov	r7, r1
10001	mov	r2, lr
10002.L1338:
10003	ldrb	r6, [r2], #1	@ zero_extendqisi2
10004	strb	r6, [r7], #1
10005	sub	r6, r2, lr
10006	uxtb	r6, r6
10007	cmp	fp, r6
10008	bhi	.L1338
10009	adds	r0, r0, #1
10010	add	lr, lr, r3
10011	cmp	r10, r0
10012	add	r1, r1, ip
10013	bgt	.L1337
10014	ldr	r3, [sp, #4]
10015	mov	r0, r8
10016	ldr	r2, [sp, #8]
10017	add	r6, r3, r2, lsl #8
10018	movs	r3, #255
10019	str	r3, [r6, #2056]
10020	bl	NandcWaitFlashReady
10021	ldr	r3, [sp, #40]
10022	cmp	r3, #1
10023	bhi	.L1340
10024	movs	r3, #54
10025	mov	r1, #-1
10026	str	r3, [r6, #2056]
10027	ldr	r3, .L1387+12
10028	ldr	r0, [sp, #16]
10029	ldrb	r3, [r3, #4]	@ zero_extendqisi2
10030	str	r3, [r5, #2052]
10031	movs	r3, #0
10032	str	r3, [r5, #2048]
10033	movs	r3, #22
10034	str	r3, [r6, #2056]
10035	bl	FlashReadCmd
10036.L1341:
10037	mov	r0, r8
10038	bl	NandcWaitFlashReady
10039	ldr	r3, [sp, #28]
10040	adds	r3, r3, #1
10041	b	.L1384
10042.L1346:
10043	mov	ip, #4
10044	b	.L1336
10045.L1340:
10046	movs	r3, #56
10047	str	r3, [r6, #2056]
10048	b	.L1341
10049.L1388:
10050	.align	2
10051.L1387:
10052	.word	.LANCHOR147
10053	.word	.LC22
10054	.word	.LC21
10055	.word	.LANCHOR20
10056	.size	HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
10057	.section	.text.FlashGetReadRetryDefault,"ax",%progbits
10058	.align	1
10059	.global	FlashGetReadRetryDefault
10060	.syntax unified
10061	.thumb
10062	.thumb_func
10063	.fpu softvfp
10064	.type	FlashGetReadRetryDefault, %function
10065FlashGetReadRetryDefault:
10066	@ args = 0, pretend = 0, frame = 0
10067	@ frame_needed = 0, uses_anonymous_args = 0
10068	@ link register save eliminated.
10069	mov	r3, r0
10070	cbz	r0, .L1389
10071	subs	r2, r0, #1
10072	cmp	r2, #6
10073	bhi	.L1391
10074	b	HynixGetReadRetryDefault
10075.L1391:
10076	cmp	r0, #49
10077	bne	.L1392
10078	ldr	r0, .L1412
10079	movs	r2, #64
10080	ldr	r1, .L1412+4
10081	strb	r3, [r0]
10082	movs	r3, #4
10083	strb	r3, [r0, #1]
10084	movs	r3, #15
10085	strb	r3, [r0, #2]
10086.L1410:
10087	adds	r0, r0, #4
10088	b	ftl_memcpy
10089.L1392:
10090	cmp	r0, #33
10091	beq	.L1393
10092	sub	r2, r0, #65
10093	cmp	r2, #1
10094	bhi	.L1394
10095.L1393:
10096	ldr	r0, .L1412
10097	strb	r3, [r0]
10098	movs	r3, #4
10099.L1411:
10100	strb	r3, [r0, #1]
10101	movs	r3, #7
10102	strb	r3, [r0, #2]
10103	movs	r2, #45
10104	ldr	r1, .L1412+8
10105	b	.L1410
10106.L1394:
10107	cmp	r0, #34
10108	beq	.L1395
10109	cmp	r0, #67
10110	bne	.L1396
10111.L1395:
10112	ldr	r0, .L1412
10113	strb	r3, [r0]
10114	movs	r3, #5
10115	b	.L1411
10116.L1396:
10117	cmp	r0, #35
10118	beq	.L1397
10119	cmp	r0, #68
10120	bne	.L1389
10121.L1397:
10122	ldr	r0, .L1412
10123	movs	r2, #95
10124	ldr	r1, .L1412+12
10125	strb	r3, [r0]
10126	movs	r3, #5
10127	strb	r3, [r0, #1]
10128	movs	r3, #17
10129	strb	r3, [r0, #2]
10130	b	.L1410
10131.L1389:
10132	bx	lr
10133.L1413:
10134	.align	2
10135.L1412:
10136	.word	.LANCHOR20
10137	.word	.LANCHOR14
10138	.word	.LANCHOR9
10139	.word	.LANCHOR11
10140	.size	FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
10141	.section	.text.FlashInit,"ax",%progbits
10142	.align	1
10143	.global	FlashInit
10144	.syntax unified
10145	.thumb
10146	.thumb_func
10147	.fpu softvfp
10148	.type	FlashInit, %function
10149FlashInit:
10150	@ args = 0, pretend = 0, frame = 16
10151	@ frame_needed = 0, uses_anonymous_args = 0
10152	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10153	mov	r4, r0
10154	sub	sp, sp, #32
10155	mov	r0, #32768
10156	movs	r5, #0
10157	bl	ftl_malloc
10158	ldr	r3, .L1507
10159	ldr	r10, .L1507+132
10160	ldr	r8, .L1507+136
10161	str	r0, [r3]
10162	mov	r0, #32768
10163	bl	ftl_malloc
10164	ldr	r3, .L1507+4
10165	ldr	r6, .L1507+8
10166	ldr	r7, .L1507+12
10167	str	r0, [r3]
10168	mov	r0, #4096
10169	bl	ftl_malloc
10170	ldr	r3, .L1507+16
10171	str	r0, [r3]
10172	mov	r0, #32768
10173	bl	ftl_malloc
10174	ldr	r3, .L1507+20
10175	str	r0, [r3]
10176	mov	r0, #4096
10177	bl	ftl_malloc
10178	ldr	r3, .L1507+24
10179	ldr	r2, .L1507+28
10180	strb	r5, [r8]
10181	str	r0, [r3]
10182	movs	r3, #50
10183	strb	r3, [r10]
10184	mov	r0, r4
10185	strb	r3, [r2]
10186	movs	r2, #128
10187	ldr	r3, .L1507+32
10188	ldr	r4, .L1507+36
10189	strb	r5, [r7]
10190	str	r5, [r3]
10191	ldr	r3, .L1507+40
10192	str	r2, [r3]
10193	ldr	r3, .L1507+44
10194	str	r5, [r3]
10195	movs	r3, #60
10196	strb	r3, [r6]
10197	bl	NandcInit
10198	str	r10, [sp, #20]
10199	ldr	r10, .L1507+140
10200	str	r8, [sp, #16]
10201	mov	r8, r6
10202	mov	r6, r4
10203.L1419:
10204	uxtb	fp, r5
10205	mov	r0, fp
10206	bl	FlashReset
10207	add	r1, r10, r5, lsl #3
10208	ldr	r3, [r10, r5, lsl #3]
10209	mov	r0, fp
10210	ldrb	r1, [r1, #4]	@ zero_extendqisi2
10211	str	r3, [sp, #28]
10212	str	r1, [sp, #24]
10213	bl	NandcFlashCs
10214	ldr	r1, [sp, #24]
10215	movs	r0, #200
10216	ldr	r3, [sp, #28]
10217	add	r3, r3, r1, lsl #8
10218	movs	r1, #144
10219	str	r1, [r3, #2056]
10220	movs	r1, #0
10221	str	r1, [r3, #2052]
10222	str	r3, [sp, #24]
10223	bl	udelay
10224	ldr	r3, [sp, #24]
10225	mov	r0, fp
10226	ldr	r1, [r3, #2048]
10227	strb	r1, [r4]
10228	ldr	r1, [r3, #2048]
10229	strb	r1, [r4, #1]
10230	ldr	r1, [r3, #2048]
10231	strb	r1, [r4, #2]
10232	ldr	r1, [r3, #2048]
10233	strb	r1, [r4, #3]
10234	ldr	r1, [r3, #2048]
10235	strb	r1, [r4, #4]
10236	ldr	r3, [r3, #2048]
10237	strb	r3, [r4, #5]
10238	bl	NandcFlashDeCs
10239	ldrb	r2, [r4]	@ zero_extendqisi2
10240	subs	r3, r2, #1
10241	uxtb	r3, r3
10242	cmp	r3, #253
10243	bhi	.L1415
10244	ldrb	r1, [r4, #5]	@ zero_extendqisi2
10245	ldrb	r3, [r4, #1]	@ zero_extendqisi2
10246	ldr	r0, .L1507+48
10247	str	r1, [sp, #12]
10248	ldrb	r1, [r4, #4]	@ zero_extendqisi2
10249	str	r1, [sp, #8]
10250	ldrb	r1, [r4, #3]	@ zero_extendqisi2
10251	str	r1, [sp, #4]
10252	ldrb	r1, [r4, #2]	@ zero_extendqisi2
10253	str	r1, [sp]
10254	adds	r1, r5, #1
10255	bl	printf
10256.L1415:
10257	cbnz	r5, .L1416
10258	ldrb	r3, [r6]	@ zero_extendqisi2
10259	subs	r3, r3, #1
10260	uxtb	r3, r3
10261	cmp	r3, #253
10262	bhi	.L1460
10263	ldrb	r3, [r6, #1]	@ zero_extendqisi2
10264	cmp	r3, #255
10265	beq	.L1460
10266.L1416:
10267	ldrb	r3, [r4]	@ zero_extendqisi2
10268	adds	r5, r5, #1
10269	adds	r4, r4, #8
10270	cmp	r3, #181
10271	itt	eq
10272	moveq	r3, #44
10273	strbeq	r3, [r4, #-8]
10274	cmp	r5, #4
10275	bne	.L1419
10276	ldrb	r3, [r6]	@ zero_extendqisi2
10277	cmp	r3, #173
10278	beq	.L1420
10279	ldr	r3, .L1507+52
10280	ldr	r0, [r3]
10281	bl	NandcSetDdrMode
10282.L1420:
10283	mov	r2, #852
10284	movs	r1, #0
10285	ldr	r0, .L1507+56
10286	bl	ftl_memset
10287	ldr	r4, .L1507+60
10288	ldr	r3, .L1507+64
10289	ldr	r5, .L1507+68
10290	str	r3, [r4]
10291	movs	r3, #0
10292	strb	r3, [r5]
10293	ldrb	r3, [r6, #1]	@ zero_extendqisi2
10294	cmp	r3, #161
10295	beq	.L1421
10296	cmp	r3, #218
10297	beq	.L1421
10298	and	r2, r3, #223
10299	cmp	r2, #209
10300	beq	.L1421
10301	cmp	r3, #220
10302	bne	.L1422
10303	ldrb	r2, [r6, #3]	@ zero_extendqisi2
10304	cmp	r2, #149
10305	bne	.L1422
10306.L1421:
10307	ldr	r1, [sp, #16]
10308	movs	r2, #1
10309	strb	r2, [r1]
10310	movs	r2, #16
10311	ldr	r1, [sp, #20]
10312	strb	r2, [r8]
10313	strb	r2, [r1]
10314	ldrb	r1, [r6]	@ zero_extendqisi2
10315	ldr	r2, .L1507+72
10316	cmp	r1, #152
10317	strb	r1, [r2, #1]
10318	strb	r3, [r2, #2]
10319	bne	.L1423
10320	ldrsb	r1, [r6, #4]
10321	cmp	r1, #0
10322	itt	ge
10323	movge	r1, #24
10324	strbge	r1, [r8]
10325.L1423:
10326	ldr	r1, .L1507+76
10327	ldr	r0, .L1507+80
10328	ldr	r1, [r1]
10329	cmp	r1, r0
10330	beq	.L1424
10331	movw	r0, #2049
10332	cmp	r1, r0
10333	bne	.L1425
10334.L1424:
10335	movs	r1, #16
10336	strb	r1, [r8]
10337.L1425:
10338	cmp	r3, #218
10339	bne	.L1426
10340	mov	r1, #2048
10341.L1503:
10342	strh	r1, [r2, #14]	@ movhi
10343	strb	r3, [r2, #2]
10344.L1427:
10345	movs	r2, #32
10346	ldr	r1, .L1507+84
10347	ldr	r0, .L1507+88
10348	bl	ftl_memcpy
10349	movs	r2, #32
10350	ldr	r1, .L1507+72
10351	ldr	r0, .L1507+64
10352	bl	ftl_memcpy
10353.L1422:
10354	ldr	r3, [sp, #16]
10355	ldr	r8, .L1507+144
10356	ldrb	r3, [r3]	@ zero_extendqisi2
10357	cmp	r3, #0
10358	bne	.L1429
10359	bl	FlashLoadPhyInfoInRam
10360	cbnz	r0, .L1431
10361	ldr	r3, [r4]
10362	ldr	r10, .L1507+100
10363	ldrh	r3, [r3, #16]
10364	lsrs	r3, r3, #8
10365	lsls	r1, r3, #31
10366	and	r0, r3, #7
10367	strb	r0, [r10]
10368	bmi	.L1431
10369	movs	r3, #1
10370	strb	r3, [r7]
10371	bl	FlashSetInterfaceMode
10372	ldrb	r0, [r10]	@ zero_extendqisi2
10373	bl	NandcSetMode
10374.L1431:
10375	ldr	r3, [r4]
10376	ldrb	r3, [r3, #26]	@ zero_extendqisi2
10377	strb	r3, [r8]
10378	bl	FlashLoadPhyInfo
10379	cmp	r0, #0
10380	beq	.L1429
10381	ldr	r3, [r4]
10382	ldr	r0, .L1507+92
10383	ldrh	r1, [r3, #14]
10384	bl	printf
10385	bl	FlashLoadPhyInfoInRam
10386	adds	r2, r0, #1
10387	beq	.L1414
10388	bl	FlashDieInfoInit
10389	ldr	r3, [r4]
10390	ldrb	r0, [r3, #19]	@ zero_extendqisi2
10391	bl	FlashGetReadRetryDefault
10392	ldr	r3, [r4]
10393	ldr	r2, .L1507+96
10394	ldrb	r1, [r3, #9]	@ zero_extendqisi2
10395	ldrh	r2, [r2]
10396	addw	r2, r2, #4095
10397	cmp	r1, r2, asr #12
10398	blt	.L1434
10399	ldrh	r2, [r3, #14]
10400	adds	r2, r2, #255
10401	cmp	r1, r2, asr #8
10402	bge	.L1435
10403.L1434:
10404	ldrh	r2, [r3, #14]
10405	bic	r2, r2, #255
10406	strh	r2, [r3, #14]	@ movhi
10407.L1435:
10408	ldr	r3, .L1507+100
10409	ldrb	r3, [r3]	@ zero_extendqisi2
10410	tst	r3, #6
10411	beq	.L1436
10412	bl	FlashSavePhyInfo
10413	ldr	r3, .L1507+104
10414	movs	r0, #0
10415	ldr	r1, [r3]
10416	bl	FlashDdrParaScan
10417.L1436:
10418	bl	FlashSavePhyInfo
10419.L1429:
10420	ldr	fp, [r4]
10421	ldr	r10, .L1507+100
10422	ldrb	r3, [fp, #26]	@ zero_extendqisi2
10423	ldrh	r0, [fp, #10]
10424	strb	r3, [r8]
10425	ldrh	r3, [fp, #16]
10426	ubfx	r2, r3, #7, #1
10427	ubfx	r1, r3, #3, #1
10428	strb	r2, [r5]
10429	ldr	r2, .L1507+108
10430	ldr	r5, .L1507+112
10431	strb	r1, [r2]
10432	ubfx	r1, r3, #4, #1
10433	ldr	r2, .L1507+116
10434	ubfx	r3, r3, #8, #3
10435	strb	r3, [r10]
10436	movs	r3, #0
10437	str	r3, [r5]
10438	strb	r1, [r2]
10439	ldrb	r1, [fp, #12]	@ zero_extendqisi2
10440	bl	__aeabi_idiv
10441	mov	r1, r0
10442	ldrb	r0, [fp, #18]	@ zero_extendqisi2
10443	bl	BuildFlashLsbPageTable
10444	bl	FlashDieInfoInit
10445	ldr	r3, [r4]
10446	mov	ip, r5
10447	ldrh	r2, [r3, #16]
10448	tst	r2, #64
10449	beq	.L1438
10450	ldrb	r0, [r3, #19]	@ zero_extendqisi2
10451	ldr	r3, .L1507+120
10452	ldr	r2, .L1507+124
10453	strb	r0, [r3]
10454	ldr	r3, .L1507+56
10455	ldrb	r1, [r3, #1]	@ zero_extendqisi2
10456	ldrb	lr, [r3, #2]	@ zero_extendqisi2
10457	strb	r1, [r2]
10458	ldr	r1, .L1507+128
10459	strb	lr, [r1]
10460	b	.L1508
10461.L1509:
10462	.align	2
10463.L1507:
10464	.word	.LANCHOR147
10465	.word	.LANCHOR153
10466	.word	.LANCHOR152
10467	.word	.LANCHOR30
10468	.word	.LANCHOR197
10469	.word	.LANCHOR198
10470	.word	.LANCHOR199
10471	.word	.LANCHOR150
10472	.word	.LANCHOR149
10473	.word	.LANCHOR22
10474	.word	.LANCHOR3
10475	.word	.LANCHOR144
10476	.word	.LC23
10477	.word	.LANCHOR155
10478	.word	.LANCHOR20
10479	.word	.LANCHOR18
10480	.word	.LANCHOR31
10481	.word	.LANCHOR5
10482	.word	.LANCHOR200
10483	.word	.LANCHOR29
10484	.word	1446522928
10485	.word	.LANCHOR143+32
10486	.word	.LANCHOR7
10487	.word	.LC24
10488	.word	.LANCHOR122
10489	.word	.LANCHOR24
10490	.word	.LANCHOR148
10491	.word	.LANCHOR201
10492	.word	.LANCHOR145
10493	.word	.LANCHOR27
10494	.word	.LANCHOR10
10495	.word	.LANCHOR13
10496	.word	.LANCHOR151
10497	.word	.LANCHOR2
10498	.word	.LANCHOR1
10499	.word	.LANCHOR6
10500	.word	.LANCHOR8
10501.L1508:
10502	add	lr, r0, #-1
10503	cmp	lr, #6
10504	mov	lr, r1
10505	bhi	.L1439
10506	ldr	r2, .L1510
10507	str	r2, [r5]
10508	subs	r2, r0, #5
10509	cmp	r2, #1
10510	bhi	.L1440
10511	ldr	r2, .L1510+4
10512	adds	r3, r3, #20
10513	movs	r1, #1
10514	str	r1, [r2]
10515.L1441:
10516	subs	r1, r3, #1
10517	movs	r2, #0
10518	adds	r3, r3, #31
10519.L1443:
10520	ldrsb	r5, [r1, #1]!
10521	cbnz	r5, .L1442
10522	adds	r2, r2, #1
10523.L1442:
10524	cmp	r3, r1
10525	bne	.L1443
10526	cmp	r2, #27
10527	bls	.L1438
10528	bl	FlashGetReadRetryDefault
10529	bl	FlashSavePhyInfo
10530.L1438:
10531	ldr	r3, .L1510+8
10532	ldr	r2, [r3]
10533	ldr	r3, .L1510+12
10534	cmp	r2, r3
10535	bne	.L1454
10536	ldrb	r3, [r8]	@ zero_extendqisi2
10537	cbz	r3, .L1454
10538	ldr	r3, [r4]
10539	movs	r2, #0
10540	strb	r2, [r3, #18]
10541.L1454:
10542	ldrb	r3, [r6]	@ zero_extendqisi2
10543	cmp	r3, #44
10544	bne	.L1455
10545	ldrb	r3, [r7]	@ zero_extendqisi2
10546	cbz	r3, .L1455
10547	movs	r3, #0
10548	movs	r0, #1
10549	strb	r3, [r7]
10550	bl	FlashSetInterfaceMode
10551	movs	r0, #1
10552	bl	NandcSetMode
10553.L1455:
10554	movs	r0, #0
10555	bl	flash_enter_slc_mode
10556	ldrb	r3, [r10]	@ zero_extendqisi2
10557	tst	r3, #6
10558	beq	.L1456
10559	ldrb	r2, [r7]	@ zero_extendqisi2
10560	cbnz	r2, .L1457
10561	lsls	r3, r3, #31
10562	bmi	.L1456
10563.L1457:
10564	ldr	r3, .L1510+16
10565	movs	r0, #0
10566	ldr	r1, [r3]
10567	bl	FlashDdrParaScan
10568.L1456:
10569	movs	r0, #0
10570	movs	r7, #16
10571	bl	flash_exit_slc_mode
10572	ldr	r3, [r4]
10573	ldrb	r0, [r3, #20]	@ zero_extendqisi2
10574	bl	FlashBchSel
10575	ldr	r0, .L1510+20
10576	bl	FlashReadIdbDataRaw
10577	ldr	r8, [r4]
10578	ldr	r3, [sp, #20]
10579	ldr	r4, .L1510+24
10580	ldrb	r1, [r8, #12]	@ zero_extendqisi2
10581	strb	r7, [r3]
10582	ldrh	r5, [r8, #10]
10583	strh	r1, [r4, #8]	@ movhi
10584	ldrb	r3, [r8, #7]	@ zero_extendqisi2
10585	mov	r0, r5
10586	str	r3, [r4, #4]
10587	ldr	r3, [r6]
10588	ldrh	r6, [r8, #14]
10589	str	r3, [r4]
10590	ldr	r3, .L1510+28
10591	ldrb	r3, [r3]	@ zero_extendqisi2
10592	strh	r3, [r4, #10]	@ movhi
10593	ldrb	r3, [r8, #13]	@ zero_extendqisi2
10594	strh	r5, [r4, #16]	@ movhi
10595	strh	r6, [r4, #14]	@ movhi
10596	strh	r3, [r4, #12]	@ movhi
10597	bl	__aeabi_idiv
10598	mov	r2, #512
10599	strh	r0, [r4, #18]	@ movhi
10600	ldrb	r3, [r8, #9]	@ zero_extendqisi2
10601	strh	r2, [r4, #24]	@ movhi
10602	ldr	r2, [sp, #16]
10603	strh	r3, [r4, #20]	@ movhi
10604	smulbb	r5, r5, r3
10605	strh	r7, [r4, #26]	@ movhi
10606	ldrb	r2, [r2]	@ zero_extendqisi2
10607	uxth	r5, r5
10608	cmp	r2, #1
10609	strh	r5, [r4, #22]	@ movhi
10610	bne	.L1458
10611	lsls	r3, r3, #1
10612	lsrs	r2, r6, #1
10613	lsls	r5, r5, #1
10614	strh	r3, [r4, #20]	@ movhi
10615	movs	r3, #8
10616	strh	r2, [r4, #14]	@ movhi
10617	strh	r5, [r4, #22]	@ movhi
10618	strh	r3, [r4, #26]	@ movhi
10619.L1458:
10620	ldrb	r0, [r8, #20]	@ zero_extendqisi2
10621	bl	FlashBchSel
10622	movs	r0, #0
10623.L1414:
10624	add	sp, sp, #32
10625	@ sp needed
10626	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10627.L1426:
10628	cmp	r3, #220
10629	bne	.L1427
10630	mov	r1, #4096
10631	b	.L1503
10632.L1440:
10633	add	r2, r3, #28
10634	adds	r3, r3, #20
10635	cmp	r0, #7
10636	it	eq
10637	moveq	r3, r2
10638	b	.L1441
10639.L1439:
10640	sub	r3, r0, #17
10641	cmp	r3, #2
10642	bhi	.L1445
10643	ldr	r3, .L1510+32
10644	cmp	r0, #19
10645	str	r3, [r5]
10646	ite	ne
10647	movne	r3, #7
10648	moveq	r3, #15
10649	strb	r3, [r1]
10650	b	.L1438
10651.L1445:
10652	cmp	r0, #33
10653	beq	.L1447
10654	sub	r3, r0, #65
10655	cmp	r3, #1
10656	bhi	.L1448
10657.L1447:
10658	ldr	r3, .L1510+36
10659	str	r3, [ip]
10660	movs	r3, #4
10661	strb	r3, [r2]
10662	movs	r3, #7
10663	strb	r3, [lr]
10664	b	.L1438
10665.L1448:
10666	sub	r3, r0, #67
10667	uxtb	r3, r3
10668	cmp	r3, #1
10669	bls	.L1449
10670	sub	r1, r0, #34
10671	cmp	r1, #1
10672	bhi	.L1450
10673.L1449:
10674	ldr	r1, .L1510+36
10675	cmp	r0, #35
10676	str	r1, [ip]
10677	ldr	r1, .L1510+40
10678	beq	.L1451
10679	cmp	r0, #68
10680	beq	.L1451
10681	movs	r0, #7
10682.L1504:
10683	cmp	r3, #1
10684	strb	r0, [r1]
10685	ite	ls
10686	movls	r3, #4
10687	movhi	r3, #5
10688	strb	r3, [r2]
10689	b	.L1438
10690.L1451:
10691	movs	r0, #17
10692	b	.L1504
10693.L1450:
10694	cmp	r0, #49
10695	itt	eq
10696	ldreq	r3, .L1510+44
10697	streq	r3, [r5]
10698	b	.L1438
10699.L1460:
10700	mvn	r0, #1
10701	b	.L1414
10702.L1511:
10703	.align	2
10704.L1510:
10705	.word	HynixReadRetrial
10706	.word	.LANCHOR36
10707	.word	.LANCHOR29
10708	.word	1446522928
10709	.word	.LANCHOR148
10710	.word	.LANCHOR141
10711	.word	.LANCHOR15
10712	.word	.LANCHOR25
10713	.word	MicronReadRetrial
10714	.word	ToshibaReadRetrial
10715	.word	.LANCHOR151
10716	.word	SamsungReadRetrial
10717	.size	FlashInit, .-FlashInit
10718	.section	.text.FlashReadSlc2KPages,"ax",%progbits
10719	.align	1
10720	.global	FlashReadSlc2KPages
10721	.syntax unified
10722	.thumb
10723	.thumb_func
10724	.fpu softvfp
10725	.type	FlashReadSlc2KPages, %function
10726FlashReadSlc2KPages:
10727	@ args = 0, pretend = 0, frame = 8
10728	@ frame_needed = 0, uses_anonymous_args = 0
10729	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
10730	mov	r8, r1
10731	ldr	r3, .L1541
10732	mov	fp, r2
10733	mov	r4, r0
10734	movs	r7, #0
10735	ldrb	r10, [r3, #9]	@ zero_extendqisi2
10736.L1513:
10737	cmp	r7, r8
10738	bne	.L1526
10739	movs	r0, #0
10740	add	sp, sp, #16
10741	@ sp needed
10742	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10743.L1526:
10744	sub	r3, r8, r7
10745	add	r2, sp, #12
10746	uxtb	r3, r3
10747	mov	r1, fp
10748	mov	r0, r4
10749	str	r3, [sp]
10750	add	r3, sp, #8
10751	bl	LogAddr2PhyAddr
10752	ldr	r2, .L1541+4
10753	ldr	r3, [sp, #8]
10754	ldrb	r2, [r2]	@ zero_extendqisi2
10755	cmp	r2, r3
10756	bhi	.L1514
10757	mov	r3, #-1
10758	str	r3, [r4]
10759.L1515:
10760	adds	r7, r7, #1
10761	adds	r4, r4, #36
10762	b	.L1513
10763.L1514:
10764	ldr	r2, .L1541+8
10765	ldrb	r5, [r2, r3]	@ zero_extendqisi2
10766	mov	r0, r5
10767	bl	NandcWaitFlashReady
10768	mov	r0, r5
10769	bl	NandcFlashCs
10770	ldr	r1, [sp, #12]
10771	mov	r0, r5
10772	bl	FlashReadCmd
10773	mov	r0, r5
10774	bl	NandcWaitFlashReady
10775	ldr	r3, [r4, #12]
10776	mov	r2, r10
10777	movs	r1, #0
10778	mov	r0, r5
10779	str	r3, [sp]
10780	ldr	r3, [r4, #8]
10781	bl	NandcXferData
10782	ldr	r3, .L1541+12
10783	mov	r6, r0
10784	ldr	r1, [sp, #12]
10785	mov	r0, r5
10786	ldr	r3, [r3]
10787	add	r1, r1, r3
10788	bl	FlashReadCmd
10789	ldr	r3, [r4, #8]
10790	cbz	r3, .L1516
10791	add	r3, r3, #2048
10792.L1516:
10793	ldr	r2, [r4, #12]
10794	cbz	r2, .L1517
10795	adds	r2, r2, #8
10796.L1517:
10797	str	r2, [sp]
10798	movs	r1, #0
10799	mov	r2, r10
10800	mov	r0, r5
10801	bl	NandcXferData
10802	mov	r1, r0
10803	mov	r0, r5
10804	bl	NandcFlashDeCs
10805	ldr	r3, .L1541+16
10806	cmp	r6, r1
10807	it	cc
10808	movcc	r6, r1
10809	ldrb	r2, [r3]	@ zero_extendqisi2
10810	add	r3, r2, r2, lsl #1
10811	cmp	r6, r3, asr #2
10812	bls	.L1518
10813	adds	r5, r6, #1
10814	it	ne
10815	movne	r6, #256
10816	str	r6, [r4]
10817.L1521:
10818	ldr	r3, [r4, #12]
10819	cbz	r3, .L1522
10820	ldr	r1, [r3, #12]
10821	adds	r1, r1, #1
10822	bne	.L1522
10823	ldr	r1, [r3, #8]
10824	adds	r0, r1, #1
10825	bne	.L1522
10826	ldr	r3, [r3]
10827	adds	r3, r3, #1
10828	it	ne
10829	strne	r1, [r4]
10830.L1522:
10831	ldr	r3, [r4]
10832	adds	r1, r3, #1
10833	bne	.L1515
10834	ldr	r1, [r4, #4]
10835	ldr	r0, .L1541+20
10836	bl	printf
10837	ldr	r1, [r4, #8]
10838	cbz	r1, .L1524
10839	movs	r3, #8
10840	movs	r2, #4
10841	ldr	r0, .L1541+24
10842	bl	rknand_print_hex
10843.L1524:
10844	ldr	r1, [r4, #12]
10845	cmp	r1, #0
10846	beq	.L1515
10847	movs	r3, #4
10848	ldr	r0, .L1541+28
10849	mov	r2, r3
10850	bl	rknand_print_hex
10851	b	.L1515
10852.L1518:
10853	movs	r3, #0
10854	str	r3, [r4]
10855	b	.L1521
10856.L1542:
10857	.align	2
10858.L1541:
10859	.word	.LANCHOR31
10860	.word	.LANCHOR25
10861	.word	.LANCHOR26
10862	.word	.LANCHOR3
10863	.word	.LANCHOR33
10864	.word	.LC25
10865	.word	.LC26
10866	.word	.LC27
10867	.size	FlashReadSlc2KPages, .-FlashReadSlc2KPages
10868	.section	.text.FlashReadPages,"ax",%progbits
10869	.align	1
10870	.global	FlashReadPages
10871	.syntax unified
10872	.thumb
10873	.thumb_func
10874	.fpu softvfp
10875	.type	FlashReadPages, %function
10876FlashReadPages:
10877	@ args = 0, pretend = 0, frame = 32
10878	@ frame_needed = 0, uses_anonymous_args = 0
10879	ldr	r3, .L1634
10880	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10881	sub	sp, sp, #40
10882	mov	r10, r0
10883	str	r1, [sp, #24]
10884	ldrb	r3, [r3]	@ zero_extendqisi2
10885	str	r2, [sp, #12]
10886	cbnz	r3, .L1544
10887	ldr	r2, .L1634+4
10888	mov	r8, r3
10889	str	r3, [sp, #8]
10890	ldrb	r2, [r2, #9]	@ zero_extendqisi2
10891	str	r2, [sp, #20]
10892	ldr	r2, .L1634+8
10893	ldrb	r2, [r2]	@ zero_extendqisi2
10894	str	r2, [sp, #28]
10895.L1545:
10896	ldr	r3, [sp, #8]
10897	ldr	r2, [sp, #24]
10898	cmp	r3, r2
10899	bcc	.L1583
10900	movs	r0, #0
10901	b	.L1543
10902.L1544:
10903	bl	FlashReadSlc2KPages
10904.L1543:
10905	add	sp, sp, #40
10906	@ sp needed
10907	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10908.L1583:
10909	ldr	r2, [sp, #8]
10910	movs	r3, #36
10911	ldr	r1, [sp, #12]
10912	mul	fp, r3, r2
10913	add	r7, r10, fp
10914	ldr	r3, [r7, #4]
10915	mov	r0, r7
10916	str	r3, [sp, #16]
10917	ldr	r3, [sp, #24]
10918	subs	r3, r3, r2
10919	add	r2, sp, #36
10920	uxtb	r3, r3
10921	str	r3, [sp]
10922	add	r3, sp, #32
10923	bl	LogAddr2PhyAddr
10924	ldr	r2, .L1634+12
10925	mov	r5, r0
10926	ldr	r3, [sp, #32]
10927	ldrb	r2, [r2]	@ zero_extendqisi2
10928	cmp	r2, r3
10929	bhi	.L1547
10930	mov	r3, #-1
10931	str	r3, [r10, fp]
10932.L1548:
10933	ldr	r3, [sp, #8]
10934	adds	r3, r3, #1
10935	str	r3, [sp, #8]
10936	b	.L1545
10937.L1547:
10938	ldr	r2, .L1634+16
10939	ldrb	r4, [r2, r3]	@ zero_extendqisi2
10940	ldr	r3, .L1634+20
10941	mov	r0, r4
10942	ldrb	r3, [r3]	@ zero_extendqisi2
10943	cmp	r3, #0
10944	it	eq
10945	moveq	r5, #0
10946	bl	NandcWaitFlashReady
10947	ldr	r3, .L1634+24
10948	ldr	r3, [r3]
10949	ldrb	r1, [r3, #19]	@ zero_extendqisi2
10950	subs	r3, r1, #1
10951	cmp	r3, #6
10952	bhi	.L1550
10953	ldr	r3, .L1634+28
10954	cmp	r1, #7
10955	add	r2, r3, r4
10956	ldrb	r3, [r2, #12]	@ zero_extendqisi2
10957	it	eq
10958	ldrbeq	r3, [r2, #20]	@ zero_extendqisi2
10959	ldr	r2, .L1634+32
10960	ldrb	r2, [r2, r4]	@ zero_extendqisi2
10961	cmp	r2, r3
10962	beq	.L1550
10963	ldr	r2, .L1634+36
10964	mov	r0, r4
10965	ldrb	r1, [r2, #-3]	@ zero_extendqisi2
10966	bl	HynixSetRRPara
10967.L1550:
10968	mov	r0, r4
10969	bl	NandcFlashCs
10970	ldr	r3, [sp, #12]
10971	cmp	r3, #1
10972	beq	.L1552
10973	ldr	r3, [sp, #16]
10974	cmp	r3, #0
10975	bge	.L1553
10976.L1552:
10977	ldr	r3, .L1634+40
10978	ldrb	r3, [r3]	@ zero_extendqisi2
10979	cbz	r3, .L1553
10980	mov	r0, r4
10981	bl	flash_enter_slc_mode
10982.L1560:
10983	ldr	r1, [sp, #36]
10984	adds	r6, r1, #1
10985	bne	.L1555
10986	cmp	r4, #255
10987	beq	.L1585
10988.L1555:
10989	cbz	r5, .L1557
10990	ldr	r3, .L1634+44
10991	mov	r0, r4
10992	ldr	r2, [r3]
10993	add	r2, r2, r1
10994	bl	FlashReadDpCmd
10995.L1558:
10996	mov	r0, r4
10997	bl	NandcWaitFlashReady
10998	cbz	r5, .L1556
10999	ldr	r1, [sp, #36]
11000	mov	r0, r4
11001	bl	FlashReadDpDataOutCmd
11002.L1556:
11003	ldr	r3, [r7, #12]
11004	movs	r1, #0
11005	ldr	r2, [sp, #20]
11006	mov	r0, r4
11007	str	r3, [sp]
11008	ldr	r3, [r7, #8]
11009	bl	NandcXferData
11010	ldr	r3, .L1634+8
11011	mov	r6, r0
11012	ldrb	r3, [r3]	@ zero_extendqisi2
11013	cbz	r3, .L1559
11014	adds	r0, r0, #1
11015	bne	.L1559
11016	ldr	r3, .L1634+8
11017	movs	r5, #0
11018	strb	r5, [r3]
11019	b	.L1560
11020.L1553:
11021	mov	r0, r4
11022	bl	flash_exit_slc_mode
11023	b	.L1560
11024.L1557:
11025	mov	r0, r4
11026	bl	FlashReadCmd
11027	b	.L1558
11028.L1585:
11029	movs	r5, #0
11030	b	.L1556
11031.L1559:
11032	cbz	r5, .L1561
11033	ldr	r3, .L1634+44
11034	mov	r0, r4
11035	ldr	r1, [sp, #36]
11036	ldr	r3, [r3]
11037	add	r1, r1, r3
11038	bl	FlashReadDpDataOutCmd
11039	add	r3, fp, #36
11040	movs	r1, #0
11041	add	r3, r3, r10
11042	mov	r0, r4
11043	ldr	r2, [r3, #12]
11044	str	r2, [sp]
11045	ldr	r2, [sp, #20]
11046	ldr	r3, [r3, #8]
11047	bl	NandcXferData
11048	cmp	r0, #-1
11049	mov	r8, r0
11050	it	eq
11051	moveq	r5, #0
11052.L1561:
11053	mov	r0, r4
11054	bl	NandcFlashDeCs
11055	ldr	r3, .L1634+8
11056	adds	r1, r6, #1
11057	ldrb	r2, [sp, #28]	@ zero_extendqisi2
11058	strb	r2, [r3]
11059	bne	.L1562
11060	ldr	r3, .L1634+48
11061	ldrb	r3, [r3]	@ zero_extendqisi2
11062	cbnz	r3, .L1563
11063.L1567:
11064	ldr	r3, .L1634+52
11065	ldr	r5, [r3]
11066	cmp	r5, #0
11067	bne	.L1564
11068	ldr	r3, [r7, #12]
11069	mov	r0, r4
11070	ldr	r2, [r7, #8]
11071	ldr	r1, [sp, #36]
11072	bl	FlashReadRawPage
11073	b	.L1633
11074.L1563:
11075	ldr	r3, .L1634+56
11076	mov	r0, r4
11077	ldr	r1, [sp, #36]
11078	ldr	r3, [r3]
11079	ldr	r5, [r3, #304]
11080	movs	r3, #1
11081	str	r3, [sp]
11082	ldr	r2, [r7, #8]
11083	ldr	r3, [r7, #12]
11084	bl	FlashDdrTunningRead
11085	adds	r2, r0, #1
11086	mov	r6, r0
11087	beq	.L1566
11088	ldr	r3, .L1634+60
11089	ldrb	r3, [r3]	@ zero_extendqisi2
11090	cmp	r0, r3, lsr #1
11091	bls	.L1586
11092.L1566:
11093	ubfx	r0, r5, #8, #8
11094	bl	NandcSetDdrPara
11095	adds	r3, r6, #1
11096	beq	.L1567
11097.L1586:
11098	movs	r5, #0
11099.L1562:
11100	ldr	r3, .L1634+60
11101	ldrb	r3, [r3]	@ zero_extendqisi2
11102	add	r3, r3, r3, lsl #1
11103	cmp	r6, r3, asr #2
11104	bls	.L1575
11105	ldr	r3, .L1634+52
11106	ldr	r3, [r3]
11107	cmp	r3, #0
11108	bne	.L1575
11109	mov	r6, #256
11110	b	.L1570
11111.L1635:
11112	.align	2
11113.L1634:
11114	.word	.LANCHOR1
11115	.word	.LANCHOR31
11116	.word	.LANCHOR5
11117	.word	.LANCHOR25
11118	.word	.LANCHOR26
11119	.word	.LANCHOR201
11120	.word	.LANCHOR18
11121	.word	.LANCHOR20
11122	.word	.LANCHOR21
11123	.word	.LANCHOR20+4
11124	.word	.LANCHOR8
11125	.word	.LANCHOR3
11126	.word	.LANCHOR30
11127	.word	.LANCHOR145
11128	.word	.LANCHOR19
11129	.word	.LANCHOR33
11130.L1564:
11131	ldr	r3, [r7, #12]
11132	mov	r0, r4
11133	ldr	r2, [r7, #8]
11134	ldr	r1, [sp, #36]
11135	blx	r5
11136	adds	r5, r0, #1
11137	mov	r6, r0
11138	bne	.L1568
11139	ldr	r3, .L1636
11140	ldr	r3, [r3]
11141	ldrb	r3, [r3, #19]	@ zero_extendqisi2
11142	subs	r3, r3, #1
11143	cmp	r3, #6
11144	bhi	.L1569
11145	ldr	r2, .L1636+4
11146	movs	r3, #0
11147	mov	r0, r4
11148	ldrb	r1, [r2, #-3]	@ zero_extendqisi2
11149	bl	HynixSetRRPara
11150.L1569:
11151	ldr	r3, [r7, #12]
11152	mov	r0, r4
11153	ldr	r2, [r7, #8]
11154	ldr	r1, [sp, #36]
11155	bl	FlashReadRawPage
11156	ldr	r2, .L1636+8
11157	mov	r6, r0
11158	mov	r3, r0
11159	ldr	r1, [r7, #4]
11160	ldr	r0, .L1636+12
11161	ldrb	r2, [r2]	@ zero_extendqisi2
11162	bl	printf
11163	adds	r0, r6, #1
11164	bne	.L1568
11165	ldr	r3, .L1636+16
11166	ldrb	r5, [r3]	@ zero_extendqisi2
11167	cbz	r5, .L1570
11168	ldr	r3, [sp, #12]
11169	mov	r0, r4
11170	cmp	r3, #1
11171	beq	.L1571
11172	ldr	r3, [sp, #16]
11173	cmp	r3, #0
11174	bge	.L1572
11175.L1571:
11176	bl	flash_enter_slc_mode
11177.L1573:
11178	ldr	r3, .L1636+20
11179	mov	r0, r4
11180	ldr	r2, [r7, #8]
11181	ldr	r1, [sp, #36]
11182	ldr	r5, [r3]
11183	ldr	r3, [r7, #12]
11184	blx	r5
11185.L1633:
11186	adds	r1, r0, #1
11187	mov	r6, r0
11188	mov	r5, #0
11189	bne	.L1575
11190.L1570:
11191	str	r6, [r10, fp]
11192.L1576:
11193	ldr	r3, [r10, fp]
11194	adds	r2, r3, #1
11195	bne	.L1578
11196	ldr	r2, .L1636+8
11197	ldr	r1, [r7, #4]
11198	ldr	r0, .L1636+24
11199	ldrb	r2, [r2]	@ zero_extendqisi2
11200	bl	printf
11201	ldr	r1, [r7, #12]
11202	cbz	r1, .L1578
11203	movs	r3, #4
11204	ldr	r0, .L1636+28
11205	mov	r2, r3
11206	bl	rknand_print_hex
11207.L1578:
11208	cbz	r5, .L1580
11209	ldr	r3, .L1636+8
11210	ldrb	r3, [r3]	@ zero_extendqisi2
11211	add	r3, r3, r3, lsl #1
11212	cmp	r8, r3, asr #2
11213	bls	.L1581
11214	ldr	r3, .L1636+20
11215	ldr	r3, [r3]
11216	cmp	r3, #0
11217	it	eq
11218	moveq	r8, #256
11219.L1581:
11220	cmp	r8, #-1
11221	add	r3, fp, #36
11222	str	r8, [r10, r3]
11223	beq	.L1580
11224	cmp	r8, #256
11225	itt	ne
11226	movne	r2, #0
11227	strne	r2, [r10, r3]
11228.L1580:
11229	ldr	r3, [sp, #8]
11230	add	r3, r3, r5
11231	str	r3, [sp, #8]
11232	ldr	r3, [sp, #12]
11233	cmp	r3, #1
11234	beq	.L1582
11235	ldr	r3, [sp, #16]
11236	cmp	r3, #0
11237	bge	.L1548
11238.L1582:
11239	ldr	r3, .L1636+16
11240	ldrb	r3, [r3]	@ zero_extendqisi2
11241	cmp	r3, #0
11242	beq	.L1548
11243	mov	r0, r4
11244	bl	flash_exit_slc_mode
11245	b	.L1548
11246.L1572:
11247	bl	flash_exit_slc_mode
11248	b	.L1573
11249.L1568:
11250	movs	r5, #0
11251.L1575:
11252	cmp	r6, #256
11253	beq	.L1570
11254	movs	r3, #0
11255	str	r3, [r10, fp]
11256	b	.L1576
11257.L1637:
11258	.align	2
11259.L1636:
11260	.word	.LANCHOR18
11261	.word	.LANCHOR20+4
11262	.word	.LANCHOR33
11263	.word	.LC28
11264	.word	.LANCHOR8
11265	.word	.LANCHOR145
11266	.word	.LC25
11267	.word	.LC27
11268	.size	FlashReadPages, .-FlashReadPages
11269	.section	.text.FlashProgSlc2KPages,"ax",%progbits
11270	.align	1
11271	.global	FlashProgSlc2KPages
11272	.syntax unified
11273	.thumb
11274	.thumb_func
11275	.fpu softvfp
11276	.type	FlashProgSlc2KPages, %function
11277FlashProgSlc2KPages:
11278	@ args = 0, pretend = 0, frame = 56
11279	@ frame_needed = 0, uses_anonymous_args = 0
11280	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11281	sub	sp, sp, #64
11282	str	r3, [sp, #12]
11283	mov	r8, r1
11284	mov	r4, r0
11285	mov	r6, r0
11286	ldr	r3, .L1667
11287	movs	r7, #0
11288	ldr	fp, .L1667+28
11289	str	r2, [sp, #8]
11290	ldrb	r10, [r3, #9]	@ zero_extendqisi2
11291.L1639:
11292	cmp	r7, r8
11293	bne	.L1645
11294	ldr	r3, [sp, #12]
11295	cmp	r3, #0
11296	bne	.L1656
11297.L1666:
11298	movs	r0, #0
11299	add	sp, sp, #64
11300	@ sp needed
11301	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11302.L1645:
11303	sub	r3, r8, r7
11304	add	r2, sp, #20
11305	uxtb	r3, r3
11306	ldr	r1, [sp, #8]
11307	mov	r0, r6
11308	str	r3, [sp]
11309	add	r3, sp, #24
11310	bl	LogAddr2PhyAddr
11311	ldr	r2, .L1667+4
11312	ldr	r3, [sp, #24]
11313	ldrb	r2, [r2]	@ zero_extendqisi2
11314	cmp	r2, r3
11315	bhi	.L1640
11316	mov	r3, #-1
11317	str	r3, [r6]
11318.L1641:
11319	adds	r7, r7, #1
11320	adds	r6, r6, #36
11321	b	.L1639
11322.L1640:
11323	ldr	r2, .L1667+8
11324	ldrb	r5, [r2, r3]	@ zero_extendqisi2
11325	mov	r0, r5
11326	bl	NandcWaitFlashReady
11327	mov	r0, r5
11328	bl	NandcFlashCs
11329	ldr	r1, [sp, #20]
11330	mov	r0, r5
11331	bl	FlashProgFirstCmd
11332	ldr	r3, [r6, #12]
11333	mov	r2, r10
11334	movs	r1, #1
11335	mov	r0, r5
11336	str	r3, [sp]
11337	ldr	r3, [r6, #8]
11338	bl	NandcXferData
11339	ldr	r1, [sp, #20]
11340	mov	r0, r5
11341	bl	FlashProgSecondCmd
11342	mov	r0, r5
11343	bl	NandcWaitFlashReady
11344	ldr	r1, [sp, #20]
11345	mov	r0, r5
11346	bl	FlashReadStatus
11347	sbfx	r0, r0, #0, #1
11348	ldr	r1, [sp, #20]
11349	str	r0, [r6]
11350	mov	r0, r5
11351	ldr	r3, [fp]
11352	add	r1, r1, r3
11353	bl	FlashProgFirstCmd
11354	ldr	r3, [r6, #8]
11355	cbz	r3, .L1642
11356	add	r3, r3, #2048
11357.L1642:
11358	ldr	r2, [r6, #12]
11359	cbz	r2, .L1643
11360	adds	r2, r2, #8
11361.L1643:
11362	str	r2, [sp]
11363	movs	r1, #1
11364	mov	r2, r10
11365	mov	r0, r5
11366	bl	NandcXferData
11367	ldr	r3, [fp]
11368	mov	r0, r5
11369	ldr	r1, [sp, #20]
11370	add	r1, r1, r3
11371	bl	FlashProgSecondCmd
11372	mov	r0, r5
11373	bl	NandcWaitFlashReady
11374	ldr	r1, [sp, #20]
11375	mov	r0, r5
11376	bl	FlashReadStatus
11377	lsls	r2, r0, #31
11378	mov	r0, r5
11379	itt	mi
11380	movmi	r3, #-1
11381	strmi	r3, [r6]
11382	bl	NandcFlashDeCs
11383	b	.L1641
11384.L1652:
11385	ldr	r3, [r4]
11386	adds	r3, r3, #1
11387	bne	.L1647
11388	ldr	r1, [r4, #4]
11389	ldr	r0, .L1667+12
11390	bl	printf
11391.L1648:
11392	add	r8, r8, #1
11393	adds	r4, r4, #36
11394.L1646:
11395	cmp	r7, r8
11396	bne	.L1652
11397	b	.L1666
11398.L1647:
11399	sub	r3, r7, r8
11400	ldr	fp, .L1667+32
11401	uxtb	r3, r3
11402	add	r2, sp, #20
11403	ldr	r1, [sp, #8]
11404	mov	r0, r4
11405	str	r3, [sp]
11406	add	r3, sp, #24
11407	bl	LogAddr2PhyAddr
11408	ldr	lr, [r10]
11409	movs	r3, #0
11410	ldr	ip, [fp]
11411	mov	r6, r4
11412	add	r5, sp, #28
11413	str	r3, [lr]
11414	str	r3, [ip]
11415	ldmia	r6!, {r0, r1, r2, r3}
11416	stmia	r5!, {r0, r1, r2, r3}
11417	str	lr, [sp, #36]
11418	ldmia	r6!, {r0, r1, r2, r3}
11419	str	ip, [sp, #40]
11420	stmia	r5!, {r0, r1, r2, r3}
11421	movs	r1, #1
11422	ldr	r3, [r6]
11423	add	r0, sp, #28
11424	ldr	r2, [sp, #8]
11425	str	r3, [r5]
11426	bl	FlashReadPages
11427	ldr	r5, [sp, #28]
11428	adds	r3, r5, #1
11429	bne	.L1649
11430	ldr	r1, [r4, #4]
11431	ldr	r0, .L1667+16
11432	bl	printf
11433	str	r5, [r4]
11434.L1649:
11435	ldr	r3, [r4, #12]
11436	cbz	r3, .L1650
11437	ldr	r2, [r3]
11438	ldr	r3, [fp]
11439	ldr	r3, [r3]
11440	cmp	r2, r3
11441	beq	.L1650
11442	ldr	r1, [r4, #4]
11443	ldr	r0, .L1667+20
11444	bl	printf
11445	mov	r3, #-1
11446	str	r3, [r4]
11447.L1650:
11448	ldr	r3, [r4, #8]
11449	cmp	r3, #0
11450	beq	.L1648
11451	ldr	r2, [r3]
11452	ldr	r3, [r10]
11453	ldr	r3, [r3]
11454	cmp	r2, r3
11455	beq	.L1648
11456	ldr	r1, [r4, #4]
11457	ldr	r0, .L1667+24
11458	bl	printf
11459	mov	r3, #-1
11460	str	r3, [r4]
11461	b	.L1648
11462.L1656:
11463	mov	r8, #0
11464	ldr	r10, .L1667+36
11465	b	.L1646
11466.L1668:
11467	.align	2
11468.L1667:
11469	.word	.LANCHOR31
11470	.word	.LANCHOR25
11471	.word	.LANCHOR26
11472	.word	.LC29
11473	.word	.LC30
11474	.word	.LC31
11475	.word	.LC32
11476	.word	.LANCHOR3
11477	.word	.LANCHOR199
11478	.word	.LANCHOR198
11479	.size	FlashProgSlc2KPages, .-FlashProgSlc2KPages
11480	.section	.text.FlashProgPages,"ax",%progbits
11481	.align	1
11482	.global	FlashProgPages
11483	.syntax unified
11484	.thumb
11485	.thumb_func
11486	.fpu softvfp
11487	.type	FlashProgPages, %function
11488FlashProgPages:
11489	@ args = 0, pretend = 0, frame = 64
11490	@ frame_needed = 0, uses_anonymous_args = 0
11491	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11492	sub	sp, sp, #72
11493	ldr	r5, .L1721
11494	mov	r4, r0
11495	mov	r8, r2
11496	str	r1, [sp, #8]
11497	ldr	r5, [r5]
11498	str	r3, [sp, #20]
11499	ldrb	r5, [r5, #19]	@ zero_extendqisi2
11500	str	r5, [sp, #16]
11501	ldr	r5, .L1721+4
11502	ldrb	r7, [r5]	@ zero_extendqisi2
11503	cbnz	r7, .L1670
11504	ldr	r3, .L1721+8
11505	ldrb	r3, [r3, #9]	@ zero_extendqisi2
11506	str	r3, [sp, #12]
11507.L1671:
11508	ldr	r3, [sp, #8]
11509	cmp	r7, r3
11510	bcc	.L1684
11511	ldr	r6, .L1721+12
11512	movs	r5, #0
11513	ldr	r7, .L1721+16
11514.L1685:
11515	ldrb	r3, [r6]	@ zero_extendqisi2
11516	cmp	r5, r3
11517	bcc	.L1687
11518	ldr	r3, [sp, #20]
11519	cmp	r3, #0
11520	bne	.L1688
11521.L1696:
11522	movs	r0, #0
11523	b	.L1669
11524.L1670:
11525	bl	FlashProgSlc2KPages
11526.L1669:
11527	add	sp, sp, #72
11528	@ sp needed
11529	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11530.L1684:
11531	ldr	r3, [sp, #8]
11532	movs	r6, #36
11533	muls	r6, r7, r6
11534	add	r2, sp, #28
11535	mov	r1, r8
11536	subs	r3, r3, r7
11537	uxtb	r3, r3
11538	add	fp, r4, r6
11539	str	r3, [sp]
11540	mov	r0, fp
11541	add	r3, sp, #32
11542	bl	LogAddr2PhyAddr
11543	ldr	r3, .L1721+12
11544	mov	r10, r0
11545	ldr	r0, [sp, #32]
11546	ldrb	r3, [r3]	@ zero_extendqisi2
11547	cmp	r3, r0
11548	bhi	.L1673
11549	mov	r3, #-1
11550	str	r3, [r4, r6]
11551.L1674:
11552	adds	r7, r7, #1
11553	b	.L1671
11554.L1673:
11555	ldr	r3, .L1721+20
11556	ldrb	r3, [r3]	@ zero_extendqisi2
11557	cmp	r3, #0
11558	ldr	r3, .L1721+24
11559	it	eq
11560	moveq	r10, #0
11561	add	r3, r3, r0, lsl #4
11562	ldr	r3, [r3, #8]
11563	cbz	r3, .L1676
11564	uxtb	r0, r0
11565	bl	FlashWaitCmdDone
11566.L1676:
11567	ldr	r3, [sp, #32]
11568	movs	r1, #0
11569	ldr	r2, .L1721+24
11570	add	r2, r2, r3, lsl #4
11571	str	r1, [r2, #12]
11572	ldr	r1, [sp, #28]
11573	str	fp, [r2, #8]
11574	str	r1, [r2, #4]
11575	cmp	r10, #0
11576	beq	.L1677
11577	add	r1, r6, #36
11578	add	r1, r1, r4
11579	str	r1, [r2, #12]
11580.L1677:
11581	ldr	r2, .L1721+28
11582	ldrb	r5, [r2, r3]	@ zero_extendqisi2
11583	lsls	r3, r3, #4
11584	ldr	r2, .L1721+24
11585	mov	r0, r5
11586	strb	r5, [r2, r3]
11587	ldr	r3, .L1721+12
11588	ldrb	r3, [r3]	@ zero_extendqisi2
11589	cmp	r3, #1
11590	bne	.L1678
11591	bl	NandcWaitFlashReady
11592.L1679:
11593	ldr	r3, [sp, #16]
11594	subs	r3, r3, #1
11595	cmp	r3, #6
11596	bhi	.L1680
11597	ldr	r3, .L1721+32
11598	ldrb	r3, [r3, r5]	@ zero_extendqisi2
11599	cbz	r3, .L1680
11600	ldr	r1, .L1721+36
11601	movs	r3, #0
11602	mov	r0, r5
11603	adds	r2, r1, #4
11604	ldrb	r1, [r1, #1]	@ zero_extendqisi2
11605	bl	HynixSetRRPara
11606.L1680:
11607	mov	r0, r5
11608	bl	NandcFlashCs
11609	cmp	r8, #1
11610	mov	r0, r5
11611	bne	.L1681
11612	ldr	r3, .L1721+16
11613	ldrb	r3, [r3]	@ zero_extendqisi2
11614	cmp	r3, #0
11615	beq	.L1681
11616	bl	flash_enter_slc_mode
11617.L1682:
11618	ldr	r1, [sp, #28]
11619	mov	r0, r5
11620	bl	FlashProgFirstCmd
11621	ldr	r3, [fp, #12]
11622	movs	r1, #1
11623	ldr	r2, [sp, #12]
11624	mov	r0, r5
11625	str	r3, [sp]
11626	ldr	r3, [fp, #8]
11627	bl	NandcXferData
11628	cmp	r10, #0
11629	beq	.L1683
11630	ldr	r1, [sp, #28]
11631	mov	r0, r5
11632	bl	FlashProgDpFirstCmd
11633	ldr	r3, .L1721+40
11634	mov	r0, r5
11635	ldr	r2, [sp, #32]
11636	adds	r6, r6, #36
11637	ldr	r1, [sp, #28]
11638	add	r6, r6, r4
11639	ldr	r2, [r3, r2, lsl #2]
11640	adds	r2, r2, #0
11641	it	ne
11642	movne	r2, #1
11643	bl	FlashWaitReadyEN
11644	ldr	r3, .L1721+44
11645	mov	r0, r5
11646	ldr	r1, [sp, #28]
11647	ldr	r3, [r3]
11648	add	r1, r1, r3
11649	bl	FlashProgDpSecondCmd
11650	ldr	r3, [r6, #12]
11651	movs	r1, #1
11652	ldr	r2, [sp, #12]
11653	mov	r0, r5
11654	str	r3, [sp]
11655	ldr	r3, [r6, #8]
11656	bl	NandcXferData
11657.L1683:
11658	ldr	r1, [sp, #28]
11659	mov	r0, r5
11660	bl	FlashProgSecondCmd
11661	mov	r0, r5
11662	add	r7, r7, r10
11663	bl	NandcFlashDeCs
11664	b	.L1674
11665.L1678:
11666	bl	NandcFlashCs
11667	ldr	r2, [sp, #32]
11668	mov	r0, r5
11669	ldr	r3, .L1721+40
11670	ldr	r1, [sp, #28]
11671	ldr	r2, [r3, r2, lsl #2]
11672	adds	r2, r2, #0
11673	it	ne
11674	movne	r2, #1
11675	bl	FlashWaitReadyEN
11676	mov	r0, r5
11677	bl	NandcFlashDeCs
11678	b	.L1679
11679.L1681:
11680	bl	flash_exit_slc_mode
11681	b	.L1682
11682.L1687:
11683	uxtb	r0, r5
11684	bl	FlashWaitCmdDone
11685	cmp	r8, #1
11686	bne	.L1686
11687	ldrb	r3, [r7]	@ zero_extendqisi2
11688	cbz	r3, .L1686
11689	ldr	r2, .L1721+24
11690	lsls	r3, r5, #4
11691	ldrb	r0, [r2, r3]	@ zero_extendqisi2
11692	bl	flash_exit_slc_mode
11693.L1686:
11694	adds	r5, r5, #1
11695	b	.L1685
11696.L1688:
11697	ldr	r10, .L1721+64
11698	movs	r7, #0
11699.L1689:
11700	ldr	r3, [sp, #8]
11701	cmp	r7, r3
11702	beq	.L1696
11703	ldr	r3, [r4]
11704	adds	r3, r3, #1
11705	bne	.L1690
11706	ldr	r1, [r4, #4]
11707	ldr	r0, .L1721+48
11708	bl	printf
11709.L1691:
11710	adds	r7, r7, #1
11711	adds	r4, r4, #36
11712	b	.L1689
11713.L1690:
11714	ldr	r3, [sp, #8]
11715	add	r2, sp, #28
11716	ldr	fp, .L1721+68
11717	mov	r1, r8
11718	mov	r0, r4
11719	mov	r6, r4
11720	subs	r3, r3, r7
11721	add	r5, sp, #36
11722	uxtb	r3, r3
11723	str	r3, [sp]
11724	add	r3, sp, #32
11725	bl	LogAddr2PhyAddr
11726	ldr	lr, [r10]
11727	movs	r3, #0
11728	ldr	ip, [fp]
11729	str	r3, [lr]
11730	str	r3, [ip]
11731	ldmia	r6!, {r0, r1, r2, r3}
11732	stmia	r5!, {r0, r1, r2, r3}
11733	str	lr, [sp, #44]
11734	ldmia	r6!, {r0, r1, r2, r3}
11735	str	ip, [sp, #48]
11736	stmia	r5!, {r0, r1, r2, r3}
11737	mov	r2, r8
11738	ldr	r3, [r6]
11739	movs	r1, #1
11740	add	r0, sp, #36
11741	str	r3, [r5]
11742	bl	FlashReadPages
11743	ldr	r5, [sp, #36]
11744	adds	r3, r5, #1
11745	bne	.L1692
11746	ldr	r1, [r4, #4]
11747	ldr	r0, .L1721+52
11748	bl	printf
11749	str	r5, [r4]
11750.L1692:
11751	ldr	r3, [r4, #12]
11752	cbz	r3, .L1693
11753	ldr	r2, [r3]
11754	ldr	r3, [fp]
11755	ldr	r3, [r3]
11756	cmp	r2, r3
11757	beq	.L1693
11758	ldr	r1, [r4, #4]
11759	ldr	r0, .L1721+56
11760	bl	printf
11761	mov	r3, #-1
11762	str	r3, [r4]
11763.L1693:
11764	ldr	r3, [r4, #8]
11765	cmp	r3, #0
11766	beq	.L1691
11767	ldr	r2, [r3]
11768	ldr	r3, [r10]
11769	ldr	r3, [r3]
11770	cmp	r2, r3
11771	beq	.L1691
11772	ldr	r1, [r4, #4]
11773	ldr	r0, .L1721+60
11774	bl	printf
11775	mov	r3, #-1
11776	str	r3, [r4]
11777	b	.L1691
11778.L1722:
11779	.align	2
11780.L1721:
11781	.word	.LANCHOR18
11782	.word	.LANCHOR1
11783	.word	.LANCHOR31
11784	.word	.LANCHOR25
11785	.word	.LANCHOR8
11786	.word	.LANCHOR27
11787	.word	.LANCHOR23
11788	.word	.LANCHOR26
11789	.word	.LANCHOR21
11790	.word	.LANCHOR20
11791	.word	.LANCHOR17
11792	.word	.LANCHOR3
11793	.word	.LC29
11794	.word	.LC30
11795	.word	.LC31
11796	.word	.LC32
11797	.word	.LANCHOR198
11798	.word	.LANCHOR199
11799	.size	FlashProgPages, .-FlashProgPages
11800	.section	.text.FlashTestBlk,"ax",%progbits
11801	.align	1
11802	.global	FlashTestBlk
11803	.syntax unified
11804	.thumb
11805	.thumb_func
11806	.fpu softvfp
11807	.type	FlashTestBlk, %function
11808FlashTestBlk:
11809	@ args = 0, pretend = 0, frame = 104
11810	@ frame_needed = 0, uses_anonymous_args = 0
11811	ldr	r3, .L1726
11812	push	{r4, r5, lr}
11813	mov	r4, r0
11814	sub	sp, sp, #108
11815	ldr	r3, [r3]
11816	cmp	r0, r3
11817	bcc	.L1725
11818	ldr	r5, .L1726+4
11819	add	r0, sp, #40
11820	movs	r2, #32
11821	movs	r1, #165
11822	str	r0, [sp, #16]
11823	lsls	r4, r4, #10
11824	ldr	r3, [r5]
11825	str	r3, [sp, #12]
11826	bl	ftl_memset
11827	movs	r2, #8
11828	movs	r1, #90
11829	ldr	r0, [r5]
11830	bl	ftl_memset
11831	movs	r2, #1
11832	add	r0, sp, #4
11833	mov	r1, r2
11834	str	r4, [sp, #8]
11835	bl	FlashEraseBlocks
11836	movs	r3, #1
11837	add	r0, sp, #4
11838	mov	r2, r3
11839	mov	r1, r3
11840	bl	FlashProgPages
11841	ldr	r4, [sp, #4]
11842	movs	r2, #1
11843	movs	r1, #0
11844	add	r0, sp, #4
11845	adds	r4, r4, #0
11846	it	ne
11847	movne	r4, #1
11848	negs	r4, r4
11849	bl	FlashEraseBlocks
11850.L1723:
11851	mov	r0, r4
11852	add	sp, sp, #108
11853	@ sp needed
11854	pop	{r4, r5, pc}
11855.L1725:
11856	movs	r4, #0
11857	b	.L1723
11858.L1727:
11859	.align	2
11860.L1726:
11861	.word	.LANCHOR149
11862	.word	.LANCHOR153
11863	.size	FlashTestBlk, .-FlashTestBlk
11864	.section	.text.FtlLowFormatEraseBlock,"ax",%progbits
11865	.align	1
11866	.global	FtlLowFormatEraseBlock
11867	.syntax unified
11868	.thumb
11869	.thumb_func
11870	.fpu softvfp
11871	.type	FtlLowFormatEraseBlock, %function
11872FtlLowFormatEraseBlock:
11873	@ args = 0, pretend = 0, frame = 40
11874	@ frame_needed = 0, uses_anonymous_args = 0
11875	ldr	r3, .L1773
11876	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11877	sub	sp, sp, #40
11878	str	r0, [sp, #8]
11879	ldr	r3, [r3]
11880	str	r1, [sp, #4]
11881	cmp	r3, #0
11882	bne	.L1755
11883	ldr	r2, .L1773+4
11884	mov	r10, r3
11885	mov	r5, r3
11886	mov	r4, r3
11887	mov	r8, #36
11888	ldrb	r2, [r2]	@ zero_extendqisi2
11889	str	r2, [sp, #20]
11890	ldr	r2, .L1773+8
11891	ldrb	r2, [r2]	@ zero_extendqisi2
11892	str	r2, [sp, #12]
11893	ldr	r2, .L1773+12
11894	str	r0, [r2]
11895	ldr	r2, .L1773+16
11896	ldrh	fp, [r2]
11897	ldr	r2, .L1773+20
11898	ldr	r7, [r2]
11899	ldr	r2, .L1773+24
11900	ldr	r2, [r2]
11901	str	r2, [sp, #16]
11902	ldr	r2, .L1773+28
11903	ldrh	r2, [r2]
11904	str	r2, [sp, #24]
11905.L1730:
11906	uxth	r2, r10
11907	cmp	fp, r2
11908	bhi	.L1734
11909	cmp	r5, #0
11910	beq	.L1728
11911	ldr	r3, [sp, #12]
11912	mov	r0, r7
11913	ldr	r10, .L1773+4
11914	mov	r8, #0
11915	mov	r2, r5
11916	ldr	r7, .L1773+20
11917	adds	r6, r3, #0
11918	it	ne
11919	movne	r6, #1
11920	strb	r8, [r10]
11921	mov	r1, r6
11922	bl	FlashEraseBlocks
11923	ldrb	r3, [sp, #20]	@ zero_extendqisi2
11924	strb	r3, [r10]
11925	mov	r10, #36
11926.L1736:
11927	uxth	r3, r8
11928	cmp	r5, r3
11929	bhi	.L1738
11930	ldr	r3, [sp, #4]
11931	cmp	r3, #0
11932	bne	.L1739
11933	uxth	r6, r6
11934	movs	r3, #6
11935	str	r3, [sp, #16]
11936	movs	r3, #1
11937	str	r3, [sp, #12]
11938.L1740:
11939	mov	r8, #0
11940.L1749:
11941	ldr	r3, .L1773+16
11942	mov	fp, #0
11943	mov	r5, fp
11944	ldrh	r3, [r3]
11945	str	r3, [sp, #24]
11946	ldr	r3, .L1773+20
11947	ldr	r10, [r3]
11948	ldr	r3, .L1773+32
11949	ldr	r3, [r3]
11950	str	r3, [sp, #28]
11951	ldr	r3, .L1773+36
11952	ldr	r3, [r3]
11953	str	r3, [sp, #32]
11954	ldr	r3, .L1773+28
11955	ldrh	r3, [r3]
11956	str	r3, [sp, #36]
11957.L1741:
11958	ldr	r3, [sp, #24]
11959	uxth	r2, fp
11960	cmp	r3, r2
11961	bhi	.L1744
11962	cbz	r5, .L1728
11963	ldr	fp, .L1773+4
11964	movs	r3, #1
11965	mov	r0, r10
11966	movs	r7, #0
11967	mov	r2, r6
11968	mov	r1, r5
11969	strb	r7, [fp]
11970	bl	FlashProgPages
11971	ldrb	r3, [sp, #20]	@ zero_extendqisi2
11972	ldr	r10, .L1773+20
11973	strb	r3, [fp]
11974	mov	fp, #36
11975.L1746:
11976	uxth	r3, r7
11977	cmp	r5, r3
11978	bhi	.L1748
11979	ldr	r3, [sp, #16]
11980	add	r8, r8, r3
11981	ldr	r3, [sp, #12]
11982	uxth	r8, r8
11983	cmp	r3, r8
11984	bhi	.L1749
11985	ldr	r8, .L1773+20
11986	movs	r7, #0
11987	mov	r10, #36
11988.L1750:
11989	uxth	r3, r7
11990	cmp	r5, r3
11991	bhi	.L1752
11992	ldr	r3, [sp, #8]
11993	cmp	r3, #63
11994	bls	.L1753
11995	ldr	r3, [sp, #4]
11996	cbz	r3, .L1728
11997.L1753:
11998	ldr	r3, .L1773+20
11999	mov	r2, r5
12000	mov	r1, r6
12001	ldr	r0, [r3]
12002	bl	FlashEraseBlocks
12003.L1728:
12004	mov	r0, r4
12005	add	sp, sp, #40
12006	@ sp needed
12007	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12008.L1734:
12009	mul	r2, r8, r10
12010	movs	r3, #0
12011	ldr	r1, [sp, #8]
12012	str	r3, [r7, r2]
12013	ldr	r3, .L1773+40
12014	ldrb	r0, [r3, r10]	@ zero_extendqisi2
12015	bl	V2P_block
12016	ldr	r3, [sp, #4]
12017	mov	r6, r0
12018	cbz	r3, .L1731
12019	bl	IsBlkInVendorPart
12020	cbnz	r0, .L1732
12021.L1731:
12022	mov	r0, r6
12023	bl	FtlBbmIsBadBlock
12024	cbnz	r0, .L1733
12025	ldr	r3, [sp, #24]
12026	mla	r1, r8, r5, r7
12027	lsls	r6, r6, #10
12028	mul	r2, r3, r5
12029	ldr	r3, [sp, #16]
12030	adds	r5, r5, #1
12031	str	r6, [r1, #4]
12032	uxth	r5, r5
12033	str	r0, [r1, #8]
12034	bic	r2, r2, #3
12035	add	r2, r2, r3
12036	str	r2, [r1, #12]
12037.L1732:
12038	add	r10, r10, #1
12039	b	.L1730
12040.L1733:
12041	adds	r4, r4, #1
12042	uxth	r4, r4
12043	b	.L1732
12044.L1738:
12045	mul	r3, r10, r8
12046	ldr	r2, [r7]
12047	adds	r1, r2, r3
12048	ldr	r3, [r2, r3]
12049	adds	r3, r3, #1
12050	bne	.L1737
12051	ldr	r0, [r1, #4]
12052	adds	r4, r4, #1
12053	uxth	r4, r4
12054	ubfx	r0, r0, #10, #16
12055	bl	FtlBbmMapBadBlock
12056.L1737:
12057	add	r8, r8, #1
12058	b	.L1736
12059.L1739:
12060	ldr	r3, .L1773+44
12061	ldrh	r3, [r3]
12062	str	r3, [sp, #12]
12063	ldr	r3, .L1773+8
12064	ldrb	r3, [r3]	@ zero_extendqisi2
12065	cbnz	r3, .L1756
12066	ldr	r3, [sp, #12]
12067	movs	r6, #1
12068	lsrs	r3, r3, #2
12069	str	r3, [sp, #16]
12070	b	.L1740
12071.L1756:
12072	movs	r6, #1
12073	str	r6, [sp, #16]
12074	b	.L1740
12075.L1744:
12076	movs	r3, #36
12077	ldr	r1, [sp, #8]
12078	mul	r2, r3, fp
12079	movs	r3, #0
12080	str	r3, [r10, r2]
12081	ldr	r3, .L1773+40
12082	ldrb	r0, [r3, fp]	@ zero_extendqisi2
12083	bl	V2P_block
12084	ldr	r3, [sp, #4]
12085	mov	r7, r0
12086	cbz	r3, .L1742
12087	bl	IsBlkInVendorPart
12088	cbnz	r0, .L1743
12089.L1742:
12090	mov	r0, r7
12091	bl	FtlBbmIsBadBlock
12092	cbnz	r0, .L1743
12093	movs	r3, #36
12094	add	r7, r8, r7, lsl #10
12095	mla	r1, r3, r5, r10
12096	ldr	r3, [sp, #28]
12097	str	r3, [r1, #8]
12098	ldr	r3, [sp, #36]
12099	str	r7, [r1, #4]
12100	mul	r2, r3, r5
12101	ldr	r3, [sp, #32]
12102	adds	r5, r5, #1
12103	uxth	r5, r5
12104	bic	r2, r2, #3
12105	add	r2, r2, r3
12106	str	r2, [r1, #12]
12107.L1743:
12108	add	fp, fp, #1
12109	b	.L1741
12110.L1748:
12111	mul	r3, fp, r7
12112	ldr	r2, [r10]
12113	adds	r1, r2, r3
12114	ldr	r3, [r2, r3]
12115	cbz	r3, .L1747
12116	ldr	r0, [r1, #4]
12117	adds	r4, r4, #1
12118	uxth	r4, r4
12119	ubfx	r0, r0, #10, #16
12120	bl	FtlBbmMapBadBlock
12121.L1747:
12122	adds	r7, r7, #1
12123	b	.L1746
12124.L1752:
12125	ldr	r3, [sp, #4]
12126	cbz	r3, .L1751
12127	mul	r3, r10, r7
12128	ldr	r2, [r8]
12129	adds	r1, r2, r3
12130	ldr	r3, [r2, r3]
12131	cbnz	r3, .L1751
12132	ldr	r0, [r1, #4]
12133	movs	r1, #1
12134	ubfx	r0, r0, #10, #16
12135	bl	FtlFreeSysBlkQueueIn
12136.L1751:
12137	adds	r7, r7, #1
12138	b	.L1750
12139.L1755:
12140	movs	r4, #0
12141	b	.L1728
12142.L1774:
12143	.align	2
12144.L1773:
12145	.word	.LANCHOR77
12146	.word	.LANCHOR27
12147	.word	.LANCHOR8
12148	.word	.LANCHOR74
12149	.word	.LANCHOR38
12150	.word	.LANCHOR78
12151	.word	.LANCHOR189
12152	.word	.LANCHOR59
12153	.word	.LANCHOR186
12154	.word	.LANCHOR187
12155	.word	.LANCHOR47
12156	.word	.LANCHOR54
12157	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
12158	.section	.text.FtlBbmTblFlush,"ax",%progbits
12159	.align	1
12160	.global	FtlBbmTblFlush
12161	.syntax unified
12162	.thumb
12163	.thumb_func
12164	.fpu softvfp
12165	.type	FtlBbmTblFlush, %function
12166FtlBbmTblFlush:
12167	@ args = 0, pretend = 0, frame = 8
12168	@ frame_needed = 0, uses_anonymous_args = 0
12169	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
12170	ldr	r3, .L1786
12171	ldr	r4, [r3]
12172	str	r3, [sp, #12]
12173	cmp	r4, #0
12174	bne	.L1777
12175	ldr	r3, .L1786+4
12176	mov	r1, r4
12177	ldr	r7, .L1786+8
12178	ldr	r5, .L1786+12
12179	ldr	r3, [r3]
12180	ldr	r0, [r7]
12181	mov	r8, r7
12182	ldr	r6, .L1786+16
12183	str	r3, [r5, #12]
12184	ldr	r7, .L1786+20
12185	ldr	r3, .L1786+24
12186	ldr	r10, .L1786+56
12187	str	r0, [r5, #8]
12188	ldrh	r2, [r3]
12189	bl	ftl_memset
12190.L1778:
12191	ldrh	r3, [r7]
12192	cmp	r4, r3
12193	blt	.L1779
12194	ldr	r6, [r5, #12]
12195	movs	r2, #16
12196	ldr	r4, .L1786+28
12197	movs	r1, #255
12198	movs	r7, #0
12199	mov	r0, r6
12200	bl	ftl_memset
12201	movw	r3, #61649
12202	mov	r10, r4
12203	strh	r3, [r6]	@ movhi
12204	ldr	r3, [r4, #8]
12205	str	r7, [sp, #8]
12206	str	r3, [r6, #4]
12207	ldrh	r3, [r4]
12208	strh	r3, [r6, #2]	@ movhi
12209	ldrh	r3, [r4, #4]
12210	strh	r3, [r6, #8]	@ movhi
12211	ldrh	r3, [r4, #6]
12212	strh	r3, [r6, #10]	@ movhi
12213	ldr	r3, .L1786+32
12214	ldr	r3, [r3]
12215	strh	r3, [r6, #12]	@ movhi
12216.L1780:
12217	ldr	r3, [r8]
12218	mov	fp, #0
12219	ldrh	r2, [r4, #2]
12220	ldrh	r1, [r4]
12221	str	r3, [r5, #8]
12222	ldr	r3, .L1786+4
12223	ldrh	r0, [r6, #10]
12224	str	fp, [r5]
12225	ldr	r3, [r3]
12226	str	r3, [r5, #12]
12227	orr	r3, r2, r1, lsl #10
12228	str	r3, [r5, #4]
12229	ldrh	r3, [r4, #4]
12230	str	r0, [sp]
12231	ldr	r0, .L1786+36
12232	bl	printf
12233	ldr	r3, .L1786+40
12234	ldrh	r2, [r4, #2]
12235	ldrh	r3, [r3]
12236	subs	r3, r3, #1
12237	cmp	r2, r3
12238	blt	.L1781
12239	ldr	r3, [r4, #8]
12240	ldrh	r2, [r4]
12241	strh	fp, [r4, #2]	@ movhi
12242	adds	r3, r3, #1
12243	str	r3, [r4, #8]
12244	str	r3, [r6, #4]
12245	strh	r2, [r6, #8]	@ movhi
12246	ldrh	r3, [r4, #4]
12247	strh	r2, [r4, #4]	@ movhi
12248	ldr	r2, .L1786+44
12249	strh	r3, [r4]	@ movhi
12250	lsls	r3, r3, #10
12251	ldr	r0, [r2]
12252	movs	r2, #1
12253	str	r3, [r5, #4]
12254	mov	r1, r2
12255	str	r3, [r0, #4]
12256	bl	FlashEraseBlocks
12257.L1781:
12258	movs	r3, #1
12259	ldr	r0, .L1786+12
12260	mov	r2, r3
12261	mov	r1, r3
12262	bl	FlashProgPages
12263	ldrh	r3, [r10, #2]
12264	adds	r3, r3, #1
12265	strh	r3, [r10, #2]	@ movhi
12266	ldr	r3, [r5]
12267	adds	r3, r3, #1
12268	bne	.L1782
12269	adds	r7, r7, #1
12270	ldr	r1, [r5, #4]
12271	uxth	r7, r7
12272	ldr	r0, .L1786+48
12273	bl	printf
12274	cmp	r7, #3
12275	bls	.L1780
12276	mov	r2, r7
12277	ldr	r1, [r5, #4]
12278	ldr	r0, .L1786+52
12279	bl	printf
12280	ldr	r2, [sp, #12]
12281	movs	r3, #1
12282	str	r3, [r2]
12283.L1777:
12284	movs	r0, #0
12285	add	sp, sp, #16
12286	@ sp needed
12287	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12288.L1779:
12289	ldrh	r2, [r10]
12290	ldr	r3, [r5, #8]
12291	ldr	r1, [r6, #4]!
12292	mul	r0, r4, r2
12293	lsls	r2, r2, #2
12294	adds	r4, r4, #1
12295	add	r0, r3, r0, lsl #2
12296	bl	ftl_memcpy
12297	b	.L1778
12298.L1782:
12299	ldr	r3, [sp, #8]
12300	cmp	r3, #0
12301	bne	.L1777
12302	movs	r3, #1
12303	str	r3, [sp, #8]
12304	b	.L1780
12305.L1787:
12306	.align	2
12307.L1786:
12308	.word	.LANCHOR77
12309	.word	.LANCHOR188
12310	.word	.LANCHOR183
12311	.word	.LANCHOR202
12312	.word	.LANCHOR75+24
12313	.word	.LANCHOR45
12314	.word	.LANCHOR58
12315	.word	.LANCHOR75
12316	.word	.LANCHOR37
12317	.word	.LC33
12318	.word	.LANCHOR54
12319	.word	.LANCHOR78
12320	.word	.LC34
12321	.word	.LC35
12322	.word	.LANCHOR123
12323	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
12324	.section	.text.allocate_data_superblock,"ax",%progbits
12325	.align	1
12326	.global	allocate_data_superblock
12327	.syntax unified
12328	.thumb
12329	.thumb_func
12330	.fpu softvfp
12331	.type	allocate_data_superblock, %function
12332allocate_data_superblock:
12333	@ args = 0, pretend = 0, frame = 8
12334	@ frame_needed = 0, uses_anonymous_args = 0
12335	ldr	r3, .L1853
12336	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
12337	mov	r4, r0
12338	ldr	r3, [r3]
12339	cmp	r3, #0
12340	bne	.L1790
12341.L1789:
12342	ldr	r3, .L1853+4
12343	ldr	r8, .L1853+60
12344	ldr	r7, .L1853+8
12345	ldrh	r3, [r3]
12346	ldrh	r2, [r8]
12347	add	r3, r3, r2
12348	ldrh	r2, [r7]
12349	cmp	r3, r2
12350	ble	.L1791
12351	ldr	r1, .L1853+12
12352	movw	r2, #3108
12353	ldr	r0, .L1853+16
12354	bl	printf
12355	ldr	r1, .L1853+20
12356	ldr	r0, .L1853+24
12357	bl	printf
12358.L1791:
12359	ldr	r3, .L1853+28
12360	ldrb	r2, [r4, #8]	@ zero_extendqisi2
12361	cmp	r4, r3
12362	bne	.L1792
12363	ldr	r3, .L1853+4
12364	ldrh	r5, [r3]
12365	ldr	r3, .L1853+32
12366	ldr	r3, [r3]
12367	lsrs	r0, r5, #1
12368	adds	r1, r0, #1
12369	mul	r6, r3, r5
12370	add	r1, r1, r6, lsr #2
12371	ldr	r6, .L1853+36
12372	uxth	r1, r1
12373	ldr	r6, [r6]
12374	cbz	r6, .L1793
12375	ldr	r6, .L1853+40
12376	ldr	r6, [r6]
12377	cmp	r6, #39
12378	bhi	.L1793
12379	cmp	r6, #2
12380	bls	.L1827
12381	lsls	r1, r5, #31
12382	bpl	.L1823
12383	cmp	r3, #0
12384	beq	.L1827
12385.L1823:
12386	mov	r1, r0
12387	b	.L1793
12388.L1792:
12389	cmp	r2, #1
12390	bne	.L1827
12391	ldr	r3, .L1853+44
12392	ldrh	r3, [r3]
12393	cmp	r3, #1
12394	beq	.L1827
12395	ldr	r3, .L1853+48
12396	ldrb	r3, [r3]	@ zero_extendqisi2
12397	cmp	r3, #0
12398	bne	.L1827
12399	ldr	r3, .L1853+4
12400	ldr	r0, .L1853+36
12401	ldrh	r3, [r3]
12402	ldr	r0, [r0]
12403	lsrs	r1, r3, #3
12404	cbz	r0, .L1793
12405	ldr	r0, .L1853+40
12406	ldr	r0, [r0]
12407	cmp	r0, #1
12408	bhi	.L1793
12409	rsb	r3, r3, r3, lsl #3
12410	ubfx	r1, r3, #3, #16
12411.L1793:
12412	cbz	r1, .L1794
12413	subs	r1, r1, #1
12414	uxth	r1, r1
12415.L1794:
12416	ldr	r0, .L1853+52
12417	bl	List_pop_index_node
12418	ldr	r3, .L1853+4
12419	mov	r5, r0
12420	uxth	r10, r0
12421	ldrh	r3, [r3]
12422	cbnz	r3, .L1795
12423	ldr	r1, .L1853+12
12424	movw	r2, #3128
12425	ldr	r0, .L1853+16
12426	bl	printf
12427	ldr	r1, .L1853+20
12428	ldr	r0, .L1853+24
12429	bl	printf
12430.L1795:
12431	ldr	r3, .L1853+4
12432	ldr	r2, .L1853+4
12433	ldrh	r3, [r3]
12434	subs	r3, r3, #1
12435	strh	r3, [r2]	@ movhi
12436	ldrh	r3, [r7]
12437	cmp	r3, r10
12438	bls	.L1789
12439	uxth	r5, r5
12440	lsls	r3, r5, #1
12441	str	r3, [sp]
12442	ldr	r3, .L1853+56
12443	ldr	r3, [r3]
12444	ldrh	r6, [r3, r5, lsl #1]
12445	cmp	r6, #0
12446	bne	.L1789
12447	strh	r10, [r4]	@ movhi
12448	mov	r0, r4
12449	bl	make_superblock
12450	ldrb	r3, [r4, #7]	@ zero_extendqisi2
12451	cmp	r3, #0
12452	bne	.L1797
12453	ldr	r3, .L1853+56
12454	movw	r2, #65535
12455	ldr	r3, [r3]
12456	strh	r2, [r3, r5, lsl #1]	@ movhi
12457	ldr	r3, .L1853+4
12458	ldrh	r2, [r8]
12459	ldrh	r3, [r3]
12460	add	r3, r3, r2
12461	ldrh	r2, [r7]
12462	cmp	r3, r2
12463	ble	.L1789
12464	movw	r2, #3144
12465	ldr	r1, .L1853+12
12466	ldr	r0, .L1853+16
12467	bl	printf
12468	ldr	r1, .L1853+20
12469	ldr	r0, .L1853+24
12470	bl	printf
12471	b	.L1789
12472.L1827:
12473	movs	r1, #0
12474	b	.L1794
12475.L1854:
12476	.align	2
12477.L1853:
12478	.word	.LANCHOR77
12479	.word	.LANCHOR89
12480	.word	.LANCHOR40
12481	.word	.LANCHOR203
12482	.word	.LC5
12483	.word	.LC6
12484	.word	.LC7
12485	.word	.LANCHOR94
12486	.word	.LANCHOR172
12487	.word	.LANCHOR28
12488	.word	.LANCHOR170
12489	.word	.LANCHOR44
12490	.word	.LANCHOR8
12491	.word	.LANCHOR88
12492	.word	.LANCHOR84
12493	.word	.LANCHOR86
12494.L1797:
12495	ldr	r3, .L1855
12496	ldrh	r2, [r8]
12497	ldrh	r3, [r3]
12498	add	r3, r3, r2
12499	ldrh	r2, [r7]
12500	cmp	r3, r2
12501	ble	.L1799
12502	ldr	r1, .L1855+4
12503	movw	r2, #3147
12504	ldr	r0, .L1855+8
12505	bl	printf
12506	ldr	r1, .L1855+12
12507	ldr	r0, .L1855+16
12508	bl	printf
12509.L1799:
12510	ldr	r3, .L1855+20
12511	add	lr, r4, #16
12512	ldr	r2, .L1855+24
12513	mov	r8, #0
12514	ldr	ip, [r3]
12515	ldrh	r0, [r2]
12516	movs	r2, #36
12517	mov	r3, ip
12518	mla	r0, r2, r0, ip
12519.L1800:
12520	cmp	r0, r3
12521	bne	.L1802
12522	cbnz	r6, .L1803
12523	ldr	r1, .L1855+4
12524	movw	r2, #3159
12525	ldr	r0, .L1855+8
12526	bl	printf
12527	ldr	r1, .L1855+12
12528	ldr	r0, .L1855+16
12529	bl	printf
12530.L1803:
12531	ldr	r3, .L1855+28
12532	ldr	r8, .L1855+80
12533	ldr	r3, [r3]
12534	cbz	r3, .L1804
12535	ldr	r3, .L1855+32
12536	cmp	r4, r3
12537	bne	.L1804
12538	ldr	r3, [r8]
12539	ldrh	r3, [r3, r5, lsl #1]
12540	cmp	r3, #40
12541	itt	hi
12542	movhi	r3, #0
12543	strbhi	r3, [r4, #8]
12544.L1804:
12545	ldr	r3, .L1855+36
12546	ldrh	r3, [r3]
12547	cmp	r3, r10
12548	bne	.L1805
12549	ldr	r1, .L1855+4
12550	movw	r2, #3166
12551	ldr	r0, .L1855+8
12552	bl	printf
12553	ldr	r1, .L1855+12
12554	ldr	r0, .L1855+16
12555	bl	printf
12556.L1805:
12557	ldrb	r2, [r4, #8]	@ zero_extendqisi2
12558	ldr	r3, .L1855+40
12559	ldr	fp, .L1855+84
12560	cmp	r2, #0
12561	bne	.L1806
12562	ldr	r1, [r8]
12563	ldrh	r2, [r1, r5, lsl #1]
12564	cmp	r2, #0
12565	beq	.L1807
12566	ldr	r0, .L1855+44
12567	ldrh	r0, [r0]
12568	add	r2, r2, r0
12569.L1850:
12570	strh	r2, [r1, r5, lsl #1]	@ movhi
12571	mov	r0, r10
12572	ldr	r2, [r3]
12573	movs	r1, #0
12574	str	r3, [sp, #4]
12575	adds	r2, r2, #1
12576	str	r2, [r3]
12577	bl	ftl_set_blk_mode
12578.L1851:
12579	ldr	r2, [r8]
12580	ldr	r3, [sp, #4]
12581	ldrh	r0, [r2, r5, lsl #1]
12582	ldr	r2, .L1855+48
12583	ldr	r1, [r2]
12584	cmp	r0, r1
12585	ldrh	r1, [r7]
12586	it	hi
12587	strhi	r0, [r2]
12588	ldr	r2, .L1855+44
12589	ldr	r0, [r3]
12590	ldr	r3, [fp]
12591	ldrh	r2, [r2]
12592	ldr	r7, .L1855+52
12593	mla	r0, r0, r2, r3
12594	bl	__aeabi_uidiv
12595	ldr	r3, .L1855+56
12596	str	r0, [r3]
12597	ldr	r3, .L1855+60
12598	ldr	r2, [r3]
12599	ldr	r3, [r2, #16]
12600	adds	r3, r3, #1
12601	str	r3, [r2, #16]
12602	ldr	r3, .L1855+20
12603	ldr	r0, [r3]
12604	movs	r3, #36
12605	adds	r1, r0, #4
12606	mla	r3, r3, r6, r0
12607	adds	r3, r3, #40
12608.L1811:
12609	adds	r1, r1, #36
12610	cmp	r3, r1
12611	bne	.L1812
12612	ldr	r3, .L1855+64
12613	ldrb	r3, [r3]	@ zero_extendqisi2
12614	cbz	r3, .L1813
12615	ldrb	r3, [r4, #8]	@ zero_extendqisi2
12616	mov	r2, r6
12617	cmp	r3, #1
12618	ite	eq
12619	moveq	r1, #0
12620	movne	r1, #1
12621	bl	FlashEraseBlocks
12622.L1813:
12623	ldr	r3, .L1855+20
12624	movs	r7, #0
12625	mov	r8, r7
12626	mov	fp, #36
12627	mov	r2, r6
12628	ldrb	r1, [r4, #8]	@ zero_extendqisi2
12629	ldr	r0, [r3]
12630	bl	FlashEraseBlocks
12631.L1815:
12632	uxth	r3, r7
12633	cmp	r6, r3
12634	bhi	.L1817
12635	cmp	r8, #0
12636	beq	.L1818
12637	mov	r0, r10
12638	bl	update_multiplier_value
12639	bl	FtlBbmTblFlush
12640.L1818:
12641	ldrb	r2, [r4, #7]	@ zero_extendqisi2
12642	cmp	r2, #0
12643	bne	.L1819
12644	ldr	r3, .L1855+68
12645	movw	r2, #65535
12646	ldr	r3, [r3]
12647	strh	r2, [r3, r5, lsl #1]	@ movhi
12648	b	.L1789
12649.L1802:
12650	ldrh	r1, [lr], #2
12651	movw	fp, #65535
12652	str	r8, [r3, #8]
12653	str	r8, [r3, #12]
12654	cmp	r1, fp
12655	beq	.L1801
12656	mla	fp, r2, r6, ip
12657	adds	r6, r6, #1
12658	lsls	r1, r1, #10
12659	uxth	r6, r6
12660	str	r1, [fp, #4]
12661.L1801:
12662	adds	r3, r3, #36
12663	b	.L1800
12664.L1807:
12665	movs	r2, #2
12666	b	.L1850
12667.L1806:
12668	ldr	r1, [r8]
12669	mov	r0, r10
12670	str	r3, [sp, #4]
12671	ldrh	r2, [r1, r5, lsl #1]
12672	adds	r2, r2, #1
12673	strh	r2, [r1, r5, lsl #1]	@ movhi
12674	ldr	r2, [fp]
12675	adds	r2, r2, #1
12676	str	r2, [fp]
12677	bl	ftl_set_blk_mode.part.10
12678	b	.L1851
12679.L1812:
12680	ldr	r2, [r1, #-36]
12681	ands	r2, r2, r7
12682	str	r2, [r1, #-36]
12683	b	.L1811
12684.L1817:
12685	ldr	r2, .L1855+20
12686	mul	r3, fp, r7
12687	ldr	r2, [r2]
12688	adds	r1, r2, r3
12689	ldr	r2, [r2, r3]
12690	adds	r3, r2, #1
12691	bne	.L1816
12692	ldr	r0, [r1, #4]
12693	add	r8, r8, #1
12694	str	r2, [sp, #4]
12695	ubfx	r0, r0, #10, #16
12696	bl	FtlBbmMapBadBlock
12697	ldr	r2, [sp, #4]
12698	add	r3, r4, r7, lsl #1
12699	strh	r2, [r3, #16]	@ movhi
12700	ldrb	r3, [r4, #7]	@ zero_extendqisi2
12701	subs	r3, r3, #1
12702	strb	r3, [r4, #7]
12703.L1816:
12704	adds	r7, r7, #1
12705	b	.L1815
12706.L1819:
12707	ldr	r3, .L1855+72
12708	ldr	r1, .L1855+76
12709	ldrh	r3, [r3]
12710	strh	r10, [r4]	@ movhi
12711	smulbb	r3, r3, r2
12712	movs	r2, #0
12713	strh	r2, [r4, #2]	@ movhi
12714	strb	r2, [r4, #6]
12715	ldr	r2, [r1]
12716	uxth	r3, r3
12717	strh	r3, [r4, #4]	@ movhi
12718	str	r2, [r4, #12]
12719	adds	r2, r2, #1
12720	str	r2, [r1]
12721	ldr	r2, .L1855+68
12722	ldr	r1, [sp]
12723	ldr	r2, [r2]
12724	strh	r3, [r2, r1]	@ movhi
12725	ldrh	r3, [r4, #4]
12726	cbz	r3, .L1820
12727	ldrb	r3, [r4, #7]	@ zero_extendqisi2
12728	cbnz	r3, .L1790
12729.L1820:
12730	ldr	r1, .L1855+4
12731	movw	r2, #3225
12732	ldr	r0, .L1855+8
12733	bl	printf
12734	ldr	r1, .L1855+12
12735	ldr	r0, .L1855+16
12736	bl	printf
12737.L1790:
12738	movs	r0, #0
12739	add	sp, sp, #8
12740	@ sp needed
12741	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12742.L1856:
12743	.align	2
12744.L1855:
12745	.word	.LANCHOR89
12746	.word	.LANCHOR203
12747	.word	.LC5
12748	.word	.LC6
12749	.word	.LC7
12750	.word	.LANCHOR78
12751	.word	.LANCHOR38
12752	.word	.LANCHOR28
12753	.word	.LANCHOR92
12754	.word	.LANCHOR204
12755	.word	.LANCHOR167
12756	.word	.LANCHOR48
12757	.word	.LANCHOR169
12758	.word	-1024
12759	.word	.LANCHOR205
12760	.word	.LANCHOR191
12761	.word	.LANCHOR8
12762	.word	.LANCHOR84
12763	.word	.LANCHOR53
12764	.word	.LANCHOR159
12765	.word	.LANCHOR79
12766	.word	.LANCHOR168
12767	.size	allocate_data_superblock, .-allocate_data_superblock
12768	.section	.text.FtlGcFreeBadSuperBlk,"ax",%progbits
12769	.align	1
12770	.global	FtlGcFreeBadSuperBlk
12771	.syntax unified
12772	.thumb
12773	.thumb_func
12774	.fpu softvfp
12775	.type	FtlGcFreeBadSuperBlk, %function
12776FtlGcFreeBadSuperBlk:
12777	@ args = 0, pretend = 0, frame = 8
12778	@ frame_needed = 0, uses_anonymous_args = 0
12779	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
12780	mov	r10, r0
12781	ldr	r4, .L1869
12782	ldrh	r3, [r4]
12783	cbz	r3, .L1858
12784	ldr	r8, .L1869+12
12785	movs	r7, #0
12786.L1859:
12787	ldr	r3, .L1869+4
12788	ldrh	r2, [r3]
12789	uxth	r3, r7
12790	cmp	r2, r3
12791	bhi	.L1865
12792	bl	FtlGcReFreshBadBlk
12793.L1858:
12794	movs	r0, #0
12795	add	sp, sp, #8
12796	@ sp needed
12797	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12798.L1865:
12799	ldr	r2, .L1869+8
12800	uxth	r3, r7
12801	mov	r1, r10
12802	mov	fp, #0
12803	ldrb	r0, [r2, r3]	@ zero_extendqisi2
12804	bl	V2P_block
12805	mov	r1, r0
12806.L1860:
12807	ldrh	r3, [r4]
12808	uxth	r5, fp
12809	cmp	r3, r5
12810	bhi	.L1864
12811	adds	r7, r7, #1
12812	b	.L1859
12813.L1864:
12814	uxth	r6, fp
12815	ldrh	r3, [r8, r6, lsl #1]
12816	cmp	r3, r1
12817	bne	.L1861
12818	mov	r0, r1
12819	str	r1, [sp, #4]
12820	bl	FtlBbmMapBadBlock
12821	bl	FtlBbmTblFlush
12822	ldrh	r2, [r4]
12823	add	r3, r8, r6, lsl #1
12824	ldr	r1, [sp, #4]
12825.L1862:
12826	cmp	r5, r2
12827	bcc	.L1863
12828	subs	r2, r2, #1
12829	strh	r2, [r4]	@ movhi
12830.L1861:
12831	add	fp, fp, #1
12832	b	.L1860
12833.L1863:
12834	ldrh	r0, [r3, #2]!
12835	adds	r5, r5, #1
12836	uxth	r5, r5
12837	strh	r0, [r3, #-2]	@ movhi
12838	b	.L1862
12839.L1870:
12840	.align	2
12841.L1869:
12842	.word	.LANCHOR117
12843	.word	.LANCHOR38
12844	.word	.LANCHOR47
12845	.word	.LANCHOR118
12846	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
12847	.section	.text.update_vpc_list,"ax",%progbits
12848	.align	1
12849	.global	update_vpc_list
12850	.syntax unified
12851	.thumb
12852	.thumb_func
12853	.fpu softvfp
12854	.type	update_vpc_list, %function
12855update_vpc_list:
12856	@ args = 0, pretend = 0, frame = 0
12857	@ frame_needed = 0, uses_anonymous_args = 0
12858	push	{r3, r4, r5, lr}
12859	mov	r4, r0
12860	ldr	r3, .L1881
12861	ldr	r3, [r3]
12862	ldrh	r3, [r3, r0, lsl #1]
12863	cmp	r3, #0
12864	bne	.L1872
12865	ldr	r2, .L1881+4
12866	ldrh	r1, [r2]
12867	cmp	r1, r0
12868	bne	.L1873
12869	movw	r3, #65535
12870	strh	r3, [r2]	@ movhi
12871.L1874:
12872	ldr	r5, .L1881+8
12873	mov	r1, r4
12874	ldr	r0, .L1881+12
12875	bl	List_remove_node
12876	ldrh	r3, [r5]
12877	cbnz	r3, .L1876
12878	ldr	r1, .L1881+16
12879	movw	r2, #3336
12880	ldr	r0, .L1881+20
12881	bl	printf
12882	ldr	r1, .L1881+24
12883	ldr	r0, .L1881+28
12884	bl	printf
12885.L1876:
12886	ldrh	r3, [r5]
12887	mov	r0, r4
12888	subs	r3, r3, #1
12889	strh	r3, [r5]	@ movhi
12890	bl	free_data_superblock
12891	mov	r0, r4
12892	bl	FtlGcFreeBadSuperBlk
12893	ldr	r3, .L1881+32
12894	ldrh	r2, [r5]
12895	ldrh	r3, [r3]
12896	add	r3, r3, r2
12897	ldr	r2, .L1881+36
12898	ldrh	r2, [r2]
12899	cmp	r3, r2
12900	ble	.L1880
12901	ldr	r1, .L1881+16
12902	movw	r2, #3339
12903	ldr	r0, .L1881+20
12904	bl	printf
12905	ldr	r1, .L1881+24
12906	ldr	r0, .L1881+28
12907	bl	printf
12908.L1880:
12909	movs	r3, #1
12910	b	.L1871
12911.L1873:
12912	ldr	r2, .L1881+40
12913	ldrh	r2, [r2]
12914	cmp	r2, r0
12915	beq	.L1871
12916	ldr	r2, .L1881+44
12917	ldrh	r2, [r2]
12918	cmp	r2, r0
12919	beq	.L1871
12920	ldr	r2, .L1881+48
12921	ldrh	r2, [r2]
12922	cmp	r2, r0
12923	bne	.L1874
12924.L1871:
12925	mov	r0, r3
12926	pop	{r3, r4, r5, pc}
12927.L1872:
12928	bl	List_update_data_list
12929	movs	r3, #0
12930	b	.L1871
12931.L1882:
12932	.align	2
12933.L1881:
12934	.word	.LANCHOR84
12935	.word	.LANCHOR204
12936	.word	.LANCHOR86
12937	.word	.LANCHOR83
12938	.word	.LANCHOR206
12939	.word	.LC5
12940	.word	.LC6
12941	.word	.LC7
12942	.word	.LANCHOR89
12943	.word	.LANCHOR40
12944	.word	.LANCHOR92
12945	.word	.LANCHOR93
12946	.word	.LANCHOR94
12947	.size	update_vpc_list, .-update_vpc_list
12948	.section	.text.decrement_vpc_count,"ax",%progbits
12949	.align	1
12950	.global	decrement_vpc_count
12951	.syntax unified
12952	.thumb
12953	.thumb_func
12954	.fpu softvfp
12955	.type	decrement_vpc_count, %function
12956decrement_vpc_count:
12957	@ args = 0, pretend = 0, frame = 0
12958	@ frame_needed = 0, uses_anonymous_args = 0
12959	movw	r3, #65535
12960	push	{r4, r5, r6, lr}
12961	cmp	r0, r3
12962	mov	r4, r0
12963	beq	.L1884
12964	ldr	r5, .L1895
12965	ldr	r3, [r5]
12966	ldrh	r2, [r3, r0, lsl #1]
12967	cmp	r2, #0
12968	bne	.L1885
12969	mov	r1, r0
12970	ldr	r0, .L1895+4
12971	bl	printf
12972	ldr	r3, [r5]
12973	ldrh	r3, [r3, r4, lsl #1]
12974	cbnz	r3, .L1886
12975	ldr	r1, .L1895+8
12976	movw	r2, #3354
12977	ldr	r0, .L1895+12
12978	bl	printf
12979	ldr	r1, .L1895+16
12980	ldr	r0, .L1895+20
12981	bl	printf
12982.L1886:
12983	ldr	r3, [r5]
12984	movs	r2, #32
12985	mov	r1, r4
12986	ldr	r0, .L1895+24
12987	strh	r2, [r3, r4, lsl #1]	@ movhi
12988	bl	test_node_in_list
12989	cbz	r0, .L1887
12990	ldr	r6, .L1895+28
12991	mov	r1, r4
12992	ldr	r0, .L1895+24
12993	bl	List_remove_node
12994	ldrh	r3, [r6]
12995	cbnz	r3, .L1888
12996	ldr	r1, .L1895+8
12997	movw	r2, #3358
12998	ldr	r0, .L1895+12
12999	bl	printf
13000	ldr	r1, .L1895+16
13001	ldr	r0, .L1895+20
13002	bl	printf
13003.L1888:
13004	ldrh	r3, [r6]
13005	mov	r0, r4
13006	subs	r3, r3, #1
13007	strh	r3, [r6]	@ movhi
13008	bl	INSERT_DATA_LIST
13009	ldr	r3, [r5]
13010	mov	r1, r4
13011	ldr	r0, .L1895+32
13012	ldrh	r2, [r3, r4, lsl #1]
13013	bl	printf
13014.L1887:
13015	mov	r0, r4
13016	bl	FtlGcRefreshBlock
13017.L1891:
13018	movs	r5, #0
13019	b	.L1883
13020.L1885:
13021	subs	r2, r2, #1
13022	strh	r2, [r3, r0, lsl #1]	@ movhi
13023.L1884:
13024	ldr	r6, .L1895+36
13025	movw	r3, #65535
13026	ldrh	r0, [r6]
13027	cmp	r0, r3
13028	bne	.L1890
13029	strh	r4, [r6]	@ movhi
13030	b	.L1891
13031.L1890:
13032	cmp	r4, r0
13033	beq	.L1891
13034	bl	update_vpc_list
13035	ldr	r3, .L1895+40
13036	adds	r5, r0, #0
13037	ldr	r2, .L1895+44
13038	it	ne
13039	movne	r5, #1
13040	strh	r4, [r6]	@ movhi
13041	ldr	r3, [r3]
13042	ldr	r2, [r2]
13043	subs	r3, r3, r2
13044	asrs	r2, r3, #1
13045	ldr	r3, .L1895+48
13046	muls	r3, r2, r3
13047	ldr	r2, .L1895
13048	ldr	r2, [r2]
13049	uxth	r1, r3
13050	ldrh	r2, [r2, r1, lsl #1]
13051	cbnz	r2, .L1883
13052	cmp	r4, r1
13053	beq	.L1883
13054	ldr	r1, .L1895+8
13055	movw	r2, #3379
13056	ldr	r0, .L1895+12
13057	bl	printf
13058	ldr	r1, .L1895+16
13059	ldr	r0, .L1895+20
13060	bl	printf
13061.L1883:
13062	mov	r0, r5
13063	pop	{r4, r5, r6, pc}
13064.L1896:
13065	.align	2
13066.L1895:
13067	.word	.LANCHOR84
13068	.word	.LC36
13069	.word	.LANCHOR207
13070	.word	.LC5
13071	.word	.LC6
13072	.word	.LC7
13073	.word	.LANCHOR88
13074	.word	.LANCHOR89
13075	.word	.LC37
13076	.word	.LANCHOR133
13077	.word	.LANCHOR83
13078	.word	.LANCHOR82
13079	.word	-1431655765
13080	.size	decrement_vpc_count, .-decrement_vpc_count
13081	.section	.text.FtlSlcSuperblockCheck,"ax",%progbits
13082	.align	1
13083	.global	FtlSlcSuperblockCheck
13084	.syntax unified
13085	.thumb
13086	.thumb_func
13087	.fpu softvfp
13088	.type	FtlSlcSuperblockCheck, %function
13089FtlSlcSuperblockCheck:
13090	@ args = 0, pretend = 0, frame = 0
13091	@ frame_needed = 0, uses_anonymous_args = 0
13092	ldrh	r3, [r0, #4]
13093	push	{r4, r5, r6, lr}
13094	mov	r4, r0
13095	cmp	r3, #0
13096	beq	.L1897
13097	ldrh	r2, [r0]
13098	movw	r3, #65535
13099	cmp	r2, r3
13100	beq	.L1897
13101	ldrb	r3, [r0, #6]	@ zero_extendqisi2
13102	ldr	r5, .L1908
13103	ldr	r6, .L1908+4
13104	adds	r3, r3, #8
13105	ldrh	r3, [r0, r3, lsl #1]
13106.L1901:
13107	movw	r2, #65535
13108	cmp	r3, r2
13109	beq	.L1903
13110	ldrb	r3, [r4, #8]	@ zero_extendqisi2
13111	cmp	r3, #1
13112	bne	.L1904
13113	ldrb	r1, [r5]	@ zero_extendqisi2
13114	cbnz	r1, .L1904
13115	ldrh	r1, [r4, #2]
13116	ldrh	r1, [r6, r1, lsl #1]
13117	cmp	r1, r2
13118	bne	.L1904
13119	ldrh	r3, [r4, #4]
13120	ldrh	r0, [r4]
13121	subs	r3, r3, #1
13122	strh	r3, [r4, #4]	@ movhi
13123	bl	decrement_vpc_count
13124	ldrh	r2, [r4, #4]
13125	cbnz	r2, .L1903
13126	ldrh	r3, [r4, #2]
13127	strb	r2, [r4, #6]
13128	adds	r3, r3, #1
13129	strh	r3, [r4, #2]	@ movhi
13130	pop	{r4, r5, r6, pc}
13131.L1903:
13132	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13133	ldr	r2, .L1908+8
13134	adds	r3, r3, #1
13135	ldrh	r2, [r2]
13136	uxtb	r3, r3
13137	strb	r3, [r4, #6]
13138	cmp	r2, r3
13139	bne	.L1902
13140	ldrh	r3, [r4, #2]
13141	adds	r3, r3, #1
13142	strh	r3, [r4, #2]	@ movhi
13143	movs	r3, #0
13144	strb	r3, [r4, #6]
13145.L1902:
13146	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13147	adds	r3, r3, #8
13148	ldrh	r3, [r4, r3, lsl #1]
13149	b	.L1901
13150.L1904:
13151	ldrb	r2, [r5]	@ zero_extendqisi2
13152	cbz	r2, .L1897
13153	cmp	r3, #1
13154	bne	.L1897
13155	ldr	r3, .L1908+12
13156	ldrh	r2, [r4, #2]
13157	ldrh	r3, [r3]
13158	cmp	r2, r3
13159	bcc	.L1897
13160	ldr	r3, .L1908+16
13161	ldrh	r1, [r4]
13162	ldrh	r0, [r4, #4]
13163	ldr	r2, [r3]
13164	ldrh	r3, [r2, r1, lsl #1]
13165	subs	r3, r3, r0
13166	strh	r3, [r2, r1, lsl #1]	@ movhi
13167	movs	r3, #0
13168	ldr	r2, .L1908+20
13169	strh	r3, [r4, #4]	@ movhi
13170	strb	r3, [r4, #6]
13171	ldrh	r2, [r2]
13172	strh	r2, [r4, #2]	@ movhi
13173.L1897:
13174	pop	{r4, r5, r6, pc}
13175.L1909:
13176	.align	2
13177.L1908:
13178	.word	.LANCHOR8
13179	.word	.LANCHOR120
13180	.word	.LANCHOR38
13181	.word	.LANCHOR54
13182	.word	.LANCHOR84
13183	.word	.LANCHOR53
13184	.size	FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
13185	.section	.text.get_new_active_ppa,"ax",%progbits
13186	.align	1
13187	.global	get_new_active_ppa
13188	.syntax unified
13189	.thumb
13190	.thumb_func
13191	.fpu softvfp
13192	.type	get_new_active_ppa, %function
13193get_new_active_ppa:
13194	@ args = 0, pretend = 0, frame = 0
13195	@ frame_needed = 0, uses_anonymous_args = 0
13196	ldrh	r2, [r0]
13197	movw	r3, #65535
13198	push	{r4, r5, r6, r7, r8, lr}
13199	mov	r4, r0
13200	cmp	r2, r3
13201	bne	.L1911
13202	ldr	r1, .L1932
13203	movw	r2, #3276
13204	ldr	r0, .L1932+4
13205	bl	printf
13206	ldr	r1, .L1932+8
13207	ldr	r0, .L1932+12
13208	bl	printf
13209.L1911:
13210	ldr	r5, .L1932+16
13211	ldrh	r2, [r4, #2]
13212	ldrh	r3, [r5]
13213	cmp	r2, r3
13214	bne	.L1912
13215	ldr	r1, .L1932
13216	movw	r2, #3277
13217	ldr	r0, .L1932+4
13218	bl	printf
13219	ldr	r1, .L1932+8
13220	ldr	r0, .L1932+12
13221	bl	printf
13222.L1912:
13223	ldrh	r3, [r4, #4]
13224	cbnz	r3, .L1913
13225	ldr	r1, .L1932
13226	movw	r2, #3278
13227	ldr	r0, .L1932+4
13228	bl	printf
13229	ldr	r1, .L1932+8
13230	ldr	r0, .L1932+12
13231	bl	printf
13232.L1913:
13233	movs	r3, #0
13234	ldr	r7, .L1932+20
13235	strb	r3, [r4, #10]
13236	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13237	ldr	r6, .L1932+24
13238	adds	r3, r3, #8
13239	ldrh	r2, [r4, r3, lsl #1]
13240.L1914:
13241	movw	r0, #65535
13242	cmp	r2, r0
13243	beq	.L1915
13244	ldrb	r3, [r4, #8]	@ zero_extendqisi2
13245	ldrh	r1, [r4, #2]
13246	cmp	r3, #1
13247	ldrh	r3, [r4, #4]
13248	bne	.L1917
13249	ldrb	ip, [r6]	@ zero_extendqisi2
13250	cmp	ip, #0
13251	bne	.L1917
13252	ldr	ip, .L1932+28
13253	ldrh	ip, [ip, r1, lsl #1]
13254	cmp	ip, r0
13255	bne	.L1917
13256	subs	r3, r3, #1
13257	ldrh	r0, [r4]
13258	strh	r3, [r4, #4]	@ movhi
13259	bl	decrement_vpc_count
13260.L1915:
13261	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13262	ldrh	r2, [r7]
13263	adds	r3, r3, #1
13264	uxtb	r3, r3
13265	cmp	r2, r3
13266	strb	r3, [r4, #6]
13267	bne	.L1916
13268	ldrh	r3, [r4, #2]
13269	adds	r3, r3, #1
13270	strh	r3, [r4, #2]	@ movhi
13271	movs	r3, #0
13272	strb	r3, [r4, #6]
13273.L1916:
13274	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13275	adds	r3, r3, #8
13276	ldrh	r2, [r4, r3, lsl #1]
13277	b	.L1914
13278.L1917:
13279	ldr	r8, .L1932+24
13280	orr	r6, r1, r2, lsl #10
13281	subs	r3, r3, #1
13282	strh	r3, [r4, #4]	@ movhi
13283.L1918:
13284	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13285	movw	r2, #65535
13286	ldrh	r0, [r7]
13287.L1920:
13288	adds	r3, r3, #1
13289	uxtb	r3, r3
13290	cmp	r3, r0
13291	itttt	eq
13292	ldrheq	r3, [r4, #2]
13293	addeq	r3, r3, #1
13294	strheq	r3, [r4, #2]	@ movhi
13295	moveq	r3, #0
13296	add	r1, r3, #8
13297	ldrh	r1, [r4, r1, lsl #1]
13298	cmp	r1, r2
13299	beq	.L1920
13300	strb	r3, [r4, #6]
13301	ldrb	r3, [r4, #8]	@ zero_extendqisi2
13302	cmp	r3, #1
13303	bne	.L1921
13304	ldrb	r1, [r8]	@ zero_extendqisi2
13305	ldrh	r3, [r4, #2]
13306	cbnz	r1, .L1922
13307	ldr	r1, .L1932+28
13308	ldrh	r3, [r1, r3, lsl #1]
13309	cmp	r3, r2
13310	bne	.L1921
13311	ldrh	r3, [r4, #4]
13312	cbz	r3, .L1921
13313	subs	r3, r3, #1
13314	ldrh	r0, [r4]
13315	strh	r3, [r4, #4]	@ movhi
13316	bl	decrement_vpc_count
13317	b	.L1918
13318.L1922:
13319	ldr	r2, .L1932+32
13320	ldrh	r2, [r2]
13321	cmp	r3, r2
13322	bcc	.L1921
13323	ldr	r3, .L1932+36
13324	ldrh	r1, [r4]
13325	ldrh	r0, [r4, #4]
13326	ldr	r2, [r3]
13327	ldrh	r3, [r2, r1, lsl #1]
13328	subs	r3, r3, r0
13329	strh	r3, [r2, r1, lsl #1]	@ movhi
13330	movs	r3, #0
13331	ldrh	r2, [r5]
13332	strh	r3, [r4, #4]	@ movhi
13333	strb	r3, [r4, #6]
13334	strh	r2, [r4, #2]	@ movhi
13335.L1921:
13336	ldrh	r2, [r4, #2]
13337	ldrh	r3, [r5]
13338	cmp	r2, r3
13339	bne	.L1910
13340	ldrh	r3, [r4, #4]
13341	cbz	r3, .L1910
13342	ldr	r1, .L1932
13343	movw	r2, #3322
13344	ldr	r0, .L1932+4
13345	bl	printf
13346	ldr	r1, .L1932+8
13347	ldr	r0, .L1932+12
13348	bl	printf
13349.L1910:
13350	mov	r0, r6
13351	pop	{r4, r5, r6, r7, r8, pc}
13352.L1933:
13353	.align	2
13354.L1932:
13355	.word	.LANCHOR208
13356	.word	.LC5
13357	.word	.LC6
13358	.word	.LC7
13359	.word	.LANCHOR53
13360	.word	.LANCHOR38
13361	.word	.LANCHOR8
13362	.word	.LANCHOR120
13363	.word	.LANCHOR54
13364	.word	.LANCHOR84
13365	.size	get_new_active_ppa, .-get_new_active_ppa
13366	.section	.text.FtlVpcTblFlush,"ax",%progbits
13367	.align	1
13368	.global	FtlVpcTblFlush
13369	.syntax unified
13370	.thumb
13371	.thumb_func
13372	.fpu softvfp
13373	.type	FtlVpcTblFlush, %function
13374FtlVpcTblFlush:
13375	@ args = 0, pretend = 0, frame = 8
13376	@ frame_needed = 0, uses_anonymous_args = 0
13377	ldr	r2, .L1954
13378	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
13379	ldr	r3, [r2]
13380	str	r2, [sp, #4]
13381	cmp	r3, #0
13382	bne	.L1936
13383	ldr	r4, .L1954+4
13384	ldr	fp, .L1954+108
13385	ldr	r8, .L1954+112
13386	ldr	r5, .L1954+8
13387	ldr	r0, [fp]
13388	ldr	r6, [r8]
13389	ldrh	r2, [r4]
13390	str	r0, [r5, #8]
13391	str	r6, [r5, #12]
13392	strh	r2, [r6, #2]	@ movhi
13393	movw	r2, #61604
13394	ldr	r7, .L1954+12
13395	strh	r2, [r6]	@ movhi
13396	str	r3, [r6, #12]
13397	ldr	ip, .L1954+116
13398	ldr	r2, [r4, #8]
13399	str	r3, [r6, #8]
13400	ldr	r3, .L1954+16
13401	str	r2, [r6, #4]
13402	stm	r7, {r3, ip}
13403	ldrh	r3, [r4, #6]
13404	strh	r3, [r7, #8]	@ movhi
13405	ldr	r3, .L1954+20
13406	ldrh	r3, [r3]
13407	strb	r3, [r7, #10]
13408	ldr	r3, .L1954+24
13409	ldrh	r2, [r3]
13410	ldrh	r1, [r3, #2]
13411	strh	r2, [r7, #14]	@ movhi
13412	ldrb	r2, [r3, #6]	@ zero_extendqisi2
13413	ldrb	r3, [r3, #8]	@ zero_extendqisi2
13414	strb	r3, [r7, #11]
13415	orr	r2, r2, r1, lsl #6
13416	ldr	r3, .L1954+28
13417	strh	r2, [r7, #16]	@ movhi
13418	ldrh	r2, [r3]
13419	ldrh	r1, [r3, #2]
13420	strh	r2, [r7, #18]	@ movhi
13421	ldrb	r2, [r3, #6]	@ zero_extendqisi2
13422	ldrb	r3, [r3, #8]	@ zero_extendqisi2
13423	strb	r3, [r7, #12]
13424	orr	r2, r2, r1, lsl #6
13425	ldr	r3, .L1954+32
13426	strh	r2, [r7, #20]	@ movhi
13427	ldrh	r2, [r3]
13428	strh	r2, [r7, #22]	@ movhi
13429	ldrh	r1, [r3, #2]
13430	ldrb	r2, [r3, #6]	@ zero_extendqisi2
13431	ldrb	r3, [r3, #8]	@ zero_extendqisi2
13432	strb	r3, [r7, #13]
13433	orr	r2, r2, r1, lsl #6
13434	ldr	r3, .L1954+36
13435	movs	r1, #255
13436	strh	r2, [r7, #24]	@ movhi
13437	ldr	r3, [r3]
13438	str	r3, [r7, #32]
13439	ldr	r3, .L1954+40
13440	ldr	r3, [r3]
13441	str	r3, [r7, #40]
13442	ldr	r3, .L1954+44
13443	ldr	r3, [r3]
13444	str	r3, [r7, #36]
13445	ldr	r3, .L1954+48
13446	ldrh	r3, [r3]
13447	strh	r3, [r7, #44]	@ movhi
13448	ldr	r3, .L1954+52
13449	ldrh	r3, [r3]
13450	strh	r3, [r7, #46]	@ movhi
13451	ldr	r3, .L1954+56
13452	ldrh	r2, [r3]
13453	bl	ftl_memset
13454	mov	r1, r7
13455	ldr	r7, .L1954+60
13456	movs	r2, #48
13457	ldr	r0, [r5, #8]
13458	bl	ftl_memcpy
13459	ldrh	r2, [r7]
13460	ldr	r3, .L1954+64
13461	ldr	r0, [r5, #8]
13462	ldr	r1, [r3]
13463	lsls	r2, r2, #1
13464	adds	r0, r0, #48
13465	bl	ftl_memcpy
13466	ldrh	r0, [r7]
13467	ldr	r3, [r5, #8]
13468	ldr	r1, .L1954+68
13469	lsrs	r2, r0, #3
13470	adds	r0, r0, #24
13471	lsls	r0, r0, #1
13472	ldr	r1, [r1]
13473	adds	r2, r2, #4
13474	bic	r0, r0, #3
13475	add	r0, r0, r3
13476	bl	ftl_memcpy
13477	ldr	r3, .L1954+72
13478	ldrh	r3, [r3]
13479	cbz	r3, .L1937
13480	ldrh	r0, [r7]
13481	ldr	r3, .L1954+76
13482	ldr	r1, .L1954+80
13483	ldrh	r2, [r3]
13484	lsrs	r3, r0, #3
13485	ldr	r1, [r1]
13486	add	r3, r3, r0, lsl #1
13487	ldr	r0, [r5, #8]
13488	adds	r3, r3, #52
13489	lsls	r2, r2, #2
13490	ubfx	r3, r3, #2, #14
13491	add	r0, r0, r3, lsl #2
13492	bl	ftl_memcpy
13493.L1937:
13494	movs	r7, #0
13495	movw	r10, #65535
13496	movs	r0, #0
13497	bl	FtlUpdateVaildLpn
13498.L1938:
13499	ldr	r3, [fp]
13500	ldrh	r1, [r4, #2]
13501	ldrh	r2, [r4]
13502	str	r3, [r5, #8]
13503	ldr	r3, [r8]
13504	str	r3, [r5, #12]
13505	orr	r3, r1, r2, lsl #10
13506	str	r3, [r5, #4]
13507	ldr	r3, .L1954+84
13508	ldrh	r3, [r3]
13509	subs	r3, r3, #1
13510	cmp	r1, r3
13511	blt	.L1939
13512	movs	r3, #0
13513	ldrh	r10, [r4, #4]
13514	strh	r3, [r4, #2]	@ movhi
13515	strh	r2, [r4, #4]	@ movhi
13516	bl	FtlFreeSysBlkQueueOut
13517	ldr	r3, .L1954+40
13518	ldr	r1, .L1954+40
13519	strh	r0, [r4]	@ movhi
13520	ldr	r3, [r3]
13521	adds	r2, r3, #1
13522	str	r3, [r4, #8]
13523	str	r2, [r1]
13524	lsls	r2, r0, #10
13525	str	r2, [r5, #4]
13526	str	r3, [r6, #4]
13527	strh	r0, [r6, #2]	@ movhi
13528.L1939:
13529	movs	r3, #1
13530	ldr	r0, .L1954+8
13531	mov	r2, r3
13532	mov	r1, r3
13533	bl	FlashProgPages
13534	ldrh	r3, [r4, #2]
13535	ldr	r2, [r5]
13536	adds	r3, r3, #1
13537	uxth	r3, r3
13538	adds	r1, r2, #1
13539	strh	r3, [r4, #2]	@ movhi
13540	bne	.L1940
13541	cmp	r3, #1
13542	bne	.L1941
13543	ldr	r1, .L1954+88
13544	movw	r2, #1209
13545	ldr	r0, .L1954+92
13546	bl	printf
13547	ldr	r1, .L1954+96
13548	ldr	r0, .L1954+100
13549	bl	printf
13550.L1941:
13551	ldrh	r3, [r4, #2]
13552	adds	r7, r7, #1
13553	uxth	r7, r7
13554	cmp	r3, #1
13555	itttt	eq
13556	ldreq	r3, .L1954+84
13557	ldrheq	r3, [r3]
13558	addeq	r3, r3, #-1
13559	strheq	r3, [r4, #2]	@ movhi
13560	cmp	r7, #3
13561	bls	.L1938
13562	mov	r2, r7
13563	ldr	r1, [r5, #4]
13564	ldr	r0, .L1954+104
13565	bl	printf
13566	ldr	r2, [sp, #4]
13567	movs	r3, #1
13568	str	r3, [r2]
13569.L1936:
13570	movs	r0, #0
13571	add	sp, sp, #8
13572	@ sp needed
13573	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13574.L1940:
13575	cmp	r3, #1
13576	beq	.L1938
13577	cmp	r2, #256
13578	beq	.L1938
13579	movw	r3, #65535
13580	cmp	r10, r3
13581	beq	.L1936
13582	movs	r1, #1
13583	mov	r0, r10
13584	bl	FtlFreeSysBlkQueueIn
13585	b	.L1936
13586.L1955:
13587	.align	2
13588.L1954:
13589	.word	.LANCHOR77
13590	.word	.LANCHOR209
13591	.word	.LANCHOR202
13592	.word	.LANCHOR81
13593	.word	1179929683
13594	.word	.LANCHOR45
13595	.word	.LANCHOR92
13596	.word	.LANCHOR93
13597	.word	.LANCHOR94
13598	.word	.LANCHOR167
13599	.word	.LANCHOR159
13600	.word	.LANCHOR160
13601	.word	.LANCHOR113
13602	.word	.LANCHOR114
13603	.word	.LANCHOR58
13604	.word	.LANCHOR40
13605	.word	.LANCHOR84
13606	.word	.LANCHOR0
13607	.word	.LANCHOR70
13608	.word	.LANCHOR67
13609	.word	.LANCHOR131
13610	.word	.LANCHOR54
13611	.word	.LANCHOR210
13612	.word	.LC5
13613	.word	.LC6
13614	.word	.LC7
13615	.word	.LC38
13616	.word	.LANCHOR183
13617	.word	.LANCHOR188
13618	.word	1342177360
13619	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
13620	.section	.text.FtlSuperblockPowerLostFix,"ax",%progbits
13621	.align	1
13622	.global	FtlSuperblockPowerLostFix
13623	.syntax unified
13624	.thumb
13625	.thumb_func
13626	.fpu softvfp
13627	.type	FtlSuperblockPowerLostFix, %function
13628FtlSuperblockPowerLostFix:
13629	@ args = 0, pretend = 0, frame = 40
13630	@ frame_needed = 0, uses_anonymous_args = 0
13631	ldr	r3, .L1971
13632	push	{r4, r5, r6, r7, r8, r10, lr}
13633	mov	r4, r0
13634	sub	sp, sp, #44
13635	ldr	r8, [r3]
13636	cmp	r8, #0
13637	bne	.L1956
13638	ldr	r3, .L1971+4
13639	ldrb	r3, [r3]	@ zero_extendqisi2
13640	cmp	r3, #0
13641	beq	.L1967
13642	ldrb	r3, [r0, #8]	@ zero_extendqisi2
13643	cmp	r3, #1
13644	bne	.L1967
13645	ldrh	r6, [r0, #4]
13646	mov	r8, r3
13647.L1958:
13648	mov	r3, #-1
13649	ldr	r2, .L1971+8
13650	str	r3, [sp, #20]
13651	movs	r7, #0
13652	ldr	r3, .L1971+12
13653	ldr	r5, [r2]
13654	mvn	r2, #2
13655	ldr	r10, .L1971+24
13656	ldr	r3, [r3]
13657	str	r5, [sp, #16]
13658	str	r3, [sp, #12]
13659	str	r2, [r5, #8]
13660	mvn	r2, #1
13661	str	r2, [r5, #12]
13662	ldrh	r2, [r4]
13663	strh	r7, [r5]	@ movhi
13664	strh	r2, [r5, #2]	@ movhi
13665	movw	r2, #61589
13666	str	r2, [r3]
13667	add	r2, r2, #304087040
13668	add	r2, r2, #1269760
13669	addw	r2, r2, #1507
13670	str	r2, [r3, #4]
13671.L1959:
13672	adds	r6, r6, #-1
13673	bcc	.L1962
13674	ldrh	r3, [r4, #4]
13675	cbnz	r3, .L1960
13676.L1962:
13677	ldr	r3, .L1971+16
13678	ldrh	r1, [r4]
13679	ldrh	r0, [r4, #4]
13680	ldr	r2, [r3]
13681	ldrh	r3, [r2, r1, lsl #1]
13682	subs	r3, r3, r0
13683	strh	r3, [r2, r1, lsl #1]	@ movhi
13684	ldr	r3, .L1971+20
13685	ldrh	r3, [r3]
13686	strh	r3, [r4, #2]	@ movhi
13687	movs	r3, #0
13688	strb	r3, [r4, #6]
13689	strh	r3, [r4, #4]	@ movhi
13690.L1956:
13691	add	sp, sp, #44
13692	@ sp needed
13693	pop	{r4, r5, r6, r7, r8, r10, pc}
13694.L1967:
13695	movs	r6, #12
13696	b	.L1958
13697.L1960:
13698	mov	r0, r4
13699	bl	get_new_active_ppa
13700	str	r0, [sp, #8]
13701	adds	r0, r0, #1
13702	beq	.L1962
13703	ldr	r3, [r10]
13704	movs	r1, #1
13705	add	r0, sp, #4
13706	str	r3, [r5, #4]
13707	adds	r3, r3, #1
13708	adds	r2, r3, #1
13709	mov	r2, r8
13710	it	eq
13711	moveq	r3, r7
13712	str	r3, [r10]
13713	movs	r3, #0
13714	bl	FlashProgPages
13715	ldrh	r0, [r4]
13716	bl	decrement_vpc_count
13717	b	.L1959
13718.L1972:
13719	.align	2
13720.L1971:
13721	.word	.LANCHOR77
13722	.word	.LANCHOR8
13723	.word	.LANCHOR188
13724	.word	.LANCHOR183
13725	.word	.LANCHOR84
13726	.word	.LANCHOR53
13727	.word	.LANCHOR160
13728	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
13729	.section	.text.FtlLoadFactoryBbt,"ax",%progbits
13730	.align	1
13731	.global	FtlLoadFactoryBbt
13732	.syntax unified
13733	.thumb
13734	.thumb_func
13735	.fpu softvfp
13736	.type	FtlLoadFactoryBbt, %function
13737FtlLoadFactoryBbt:
13738	@ args = 0, pretend = 0, frame = 0
13739	@ frame_needed = 0, uses_anonymous_args = 0
13740	ldr	r3, .L1983
13741	push	{r4, r5, r6, r7, r8, r10, fp, lr}
13742	movs	r6, #0
13743	ldr	r5, .L1983+4
13744	ldr	r3, [r3]
13745	ldr	r7, .L1983+8
13746	ldr	r10, .L1983+20
13747	str	r3, [r5, #8]
13748	ldr	r3, .L1983+12
13749	ldr	r8, [r3]
13750	str	r8, [r5, #12]
13751.L1974:
13752	ldr	r3, .L1983+16
13753	ldrh	r3, [r3]
13754	cmp	r6, r3
13755	bcc	.L1979
13756	movs	r0, #0
13757	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13758.L1979:
13759	ldrh	r4, [r10]
13760	movw	r3, #65535
13761	ldr	fp, .L1983+4
13762	strh	r3, [r7, #2]!	@ movhi
13763	subs	r4, r4, #1
13764	uxth	r4, r4
13765.L1975:
13766	ldrh	r3, [r10]
13767	sub	r2, r3, #15
13768	cmp	r2, r4
13769	bgt	.L1977
13770	mla	r3, r6, r3, r4
13771	movs	r2, #1
13772	mov	r1, r2
13773	mov	r0, fp
13774	lsls	r3, r3, #10
13775	str	r3, [r5, #4]
13776	bl	FlashReadPages
13777	ldr	r3, [r5]
13778	adds	r3, r3, #1
13779	beq	.L1976
13780	ldrh	r2, [r8]
13781	movw	r3, #61664
13782	cmp	r2, r3
13783	bne	.L1976
13784	strh	r4, [r7]	@ movhi
13785.L1977:
13786	adds	r6, r6, #1
13787	b	.L1974
13788.L1976:
13789	subs	r4, r4, #1
13790	uxth	r4, r4
13791	b	.L1975
13792.L1984:
13793	.align	2
13794.L1983:
13795	.word	.LANCHOR183
13796	.word	.LANCHOR202
13797	.word	.LANCHOR75+10
13798	.word	.LANCHOR188
13799	.word	.LANCHOR45
13800	.word	.LANCHOR51
13801	.size	FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
13802	.section	.text.FtlGetLastWrittenPage,"ax",%progbits
13803	.align	1
13804	.global	FtlGetLastWrittenPage
13805	.syntax unified
13806	.thumb
13807	.thumb_func
13808	.fpu softvfp
13809	.type	FtlGetLastWrittenPage, %function
13810FtlGetLastWrittenPage:
13811	@ args = 0, pretend = 0, frame = 104
13812	@ frame_needed = 0, uses_anonymous_args = 0
13813	cmp	r1, #1
13814	push	{r4, r5, r6, r7, r8, lr}
13815	it	eq
13816	ldreq	r3, .L1997
13817	sub	sp, sp, #104
13818	lsl	r7, r0, #10
13819	mov	r2, r1
13820	it	ne
13821	ldrne	r3, .L1997+4
13822	mov	r8, r1
13823	movs	r6, #0
13824	movs	r1, #1
13825	add	r0, sp, #4
13826	ldrh	r5, [r3]
13827	add	r3, sp, #40
13828	str	r3, [sp, #16]
13829	str	r6, [sp, #12]
13830	subs	r5, r5, #1
13831	sxth	r5, r5
13832	orr	r3, r5, r7
13833	str	r3, [sp, #8]
13834	bl	FlashReadPages
13835	ldr	r3, [sp, #40]
13836	adds	r3, r3, #1
13837	bne	.L1988
13838.L1989:
13839	cmp	r6, r5
13840	ble	.L1992
13841.L1988:
13842	mov	r0, r5
13843	add	sp, sp, #104
13844	@ sp needed
13845	pop	{r4, r5, r6, r7, r8, pc}
13846.L1992:
13847	adds	r3, r6, r5
13848	mov	r2, r8
13849	add	r3, r3, r3, lsr #31
13850	movs	r1, #1
13851	add	r0, sp, #4
13852	asrs	r4, r3, #1
13853	sxth	r3, r4
13854	orrs	r3, r3, r7
13855	str	r3, [sp, #8]
13856	bl	FlashReadPages
13857	ldr	r3, [sp, #40]
13858	adds	r3, r3, #1
13859	bne	.L1990
13860	ldr	r3, [sp, #44]
13861	adds	r3, r3, #1
13862	bne	.L1990
13863	ldr	r3, [sp, #4]
13864	adds	r3, r3, #1
13865	beq	.L1990
13866	subs	r4, r4, #1
13867	sxth	r5, r4
13868	b	.L1989
13869.L1990:
13870	adds	r4, r4, #1
13871	sxth	r6, r4
13872	b	.L1989
13873.L1998:
13874	.align	2
13875.L1997:
13876	.word	.LANCHOR54
13877	.word	.LANCHOR53
13878	.size	FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
13879	.section	.text.FtlLoadBbt,"ax",%progbits
13880	.align	1
13881	.global	FtlLoadBbt
13882	.syntax unified
13883	.thumb
13884	.thumb_func
13885	.fpu softvfp
13886	.type	FtlLoadBbt, %function
13887FtlLoadBbt:
13888	@ args = 0, pretend = 0, frame = 0
13889	@ frame_needed = 0, uses_anonymous_args = 0
13890	push	{r3, r4, r5, r6, r7, r8, r10, lr}
13891	ldr	r8, .L2028+48
13892	ldr	r4, .L2028
13893	ldr	r3, [r8]
13894	ldr	r7, .L2028+4
13895	mov	r10, r4
13896	str	r3, [r4, #8]
13897	ldr	r3, .L2028+8
13898	ldr	r6, [r3]
13899	str	r6, [r4, #12]
13900	bl	FtlBbtMemInit
13901	ldrh	r5, [r7]
13902	subs	r5, r5, #1
13903	uxth	r5, r5
13904.L2000:
13905	ldrh	r3, [r7]
13906	subs	r3, r3, #47
13907	cmp	r3, r5
13908	bgt	.L2003
13909	lsls	r3, r5, #10
13910	movs	r2, #1
13911	mov	r1, r2
13912	mov	r0, r10
13913	str	r3, [r4, #4]
13914	bl	FlashReadPages
13915	ldr	r3, [r4]
13916	adds	r3, r3, #1
13917	bne	.L2001
13918	ldr	r3, [r4, #4]
13919	movs	r2, #1
13920	mov	r1, r2
13921	mov	r0, r10
13922	adds	r3, r3, #1
13923	str	r3, [r4, #4]
13924	bl	FlashReadPages
13925.L2001:
13926	ldr	r3, [r4]
13927	adds	r3, r3, #1
13928	beq	.L2002
13929	ldrh	r2, [r6]
13930	movw	r3, #61649
13931	cmp	r2, r3
13932	bne	.L2002
13933	ldr	r3, .L2028+12
13934	ldr	r2, [r6, #4]
13935	strh	r5, [r3]	@ movhi
13936	str	r2, [r3, #8]
13937	ldrh	r2, [r6, #8]
13938	strh	r2, [r3, #4]	@ movhi
13939.L2003:
13940	ldr	r5, .L2028+12
13941	movw	r2, #65535
13942	ldrh	r3, [r5]
13943	cmp	r3, r2
13944	beq	.L2017
13945	ldrh	r3, [r5, #4]
13946	cmp	r3, r2
13947	beq	.L2007
13948	lsls	r3, r3, #10
13949	movs	r2, #1
13950	mov	r1, r2
13951	ldr	r0, .L2028
13952	str	r3, [r4, #4]
13953	bl	FlashReadPages
13954	ldr	r3, [r4]
13955	adds	r3, r3, #1
13956	beq	.L2007
13957	ldrh	r2, [r6]
13958	movw	r3, #61649
13959	cmp	r2, r3
13960	bne	.L2007
13961	ldr	r3, [r6, #4]
13962	ldr	r2, [r5, #8]
13963	cmp	r3, r2
13964	bls	.L2007
13965	ldrh	r2, [r5, #4]
13966	str	r3, [r5, #8]
13967	ldrh	r3, [r6, #8]
13968	strh	r2, [r5]	@ movhi
13969	strh	r3, [r5, #4]	@ movhi
13970.L2007:
13971	ldr	r10, .L2028
13972	movs	r1, #1
13973	ldrh	r0, [r5]
13974	bl	FtlGetLastWrittenPage
13975	sxth	r7, r0
13976	adds	r0, r0, #1
13977	strh	r0, [r5, #2]	@ movhi
13978.L2009:
13979	cmp	r7, #0
13980	bge	.L2012
13981	ldr	r1, .L2028+16
13982	movw	r2, #335
13983	ldr	r0, .L2028+20
13984	bl	printf
13985	ldr	r1, .L2028+24
13986	ldr	r0, .L2028+28
13987	bl	printf
13988.L2011:
13989	ldrh	r3, [r6, #10]
13990	ldrh	r0, [r6, #12]
13991	strh	r3, [r5, #6]	@ movhi
13992	movw	r3, #65535
13993	cmp	r0, r3
13994	beq	.L2014
13995	ldr	r3, .L2028+32
13996	ldr	r2, [r3]
13997	cmp	r0, r2
13998	beq	.L2014
13999	ldr	r3, .L2028+36
14000	ldrh	r3, [r3]
14001	lsrs	r3, r3, #2
14002	cmp	r2, r3
14003	bcs	.L2014
14004	cmp	r0, r3
14005	bcs	.L2014
14006	bl	FtlSysBlkNumInit
14007.L2014:
14008	ldr	r6, .L2028+40
14009	movs	r5, #0
14010	ldr	r7, .L2028+44
14011	ldr	r8, .L2028+52
14012.L2015:
14013	ldrh	r3, [r7]
14014	cmp	r5, r3
14015	bcc	.L2016
14016	movs	r0, #0
14017	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
14018.L2002:
14019	subs	r5, r5, #1
14020	uxth	r5, r5
14021	b	.L2000
14022.L2012:
14023	ldrh	r3, [r5]
14024	movs	r2, #1
14025	mov	r1, r2
14026	mov	r0, r10
14027	orr	r3, r7, r3, lsl #10
14028	str	r3, [r4, #4]
14029	ldr	r3, [r8]
14030	str	r3, [r4, #8]
14031	bl	FlashReadPages
14032	ldr	r3, [r4]
14033	adds	r3, r3, #1
14034	beq	.L2010
14035	ldrh	r2, [r6]
14036	movw	r3, #61649
14037	cmp	r2, r3
14038	beq	.L2011
14039.L2010:
14040	subs	r7, r7, #1
14041	sxth	r7, r7
14042	b	.L2009
14043.L2016:
14044	ldrh	r2, [r8]
14045	ldr	r1, [r4, #8]
14046	ldr	r0, [r6, #4]!
14047	lsls	r2, r2, #2
14048	mla	r1, r5, r2, r1
14049	adds	r5, r5, #1
14050	bl	ftl_memcpy
14051	b	.L2015
14052.L2017:
14053	mov	r0, #-1
14054	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
14055.L2029:
14056	.align	2
14057.L2028:
14058	.word	.LANCHOR202
14059	.word	.LANCHOR51
14060	.word	.LANCHOR188
14061	.word	.LANCHOR75
14062	.word	.LANCHOR211
14063	.word	.LC5
14064	.word	.LC6
14065	.word	.LC7
14066	.word	.LANCHOR37
14067	.word	.LANCHOR41
14068	.word	.LANCHOR75+24
14069	.word	.LANCHOR45
14070	.word	.LANCHOR183
14071	.word	.LANCHOR123
14072	.size	FtlLoadBbt, .-FtlLoadBbt
14073	.section	.text.ftl_map_blk_gc,"ax",%progbits
14074	.align	1
14075	.global	ftl_map_blk_gc
14076	.syntax unified
14077	.thumb
14078	.thumb_func
14079	.fpu softvfp
14080	.type	ftl_map_blk_gc, %function
14081ftl_map_blk_gc:
14082	@ args = 0, pretend = 0, frame = 8
14083	@ frame_needed = 0, uses_anonymous_args = 0
14084	ldr	r3, [r0, #24]
14085	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
14086	mov	r4, r0
14087	ldr	r5, [r0, #12]
14088	str	r3, [sp]
14089	bl	ftl_free_no_use_map_blk
14090	ldrh	r3, [r4, #10]
14091	ldrh	r2, [r4, #8]
14092	subs	r3, r3, #4
14093	cmp	r2, r3
14094	blt	.L2031
14095	uxth	r0, r0
14096	ldrh	r8, [r5, r0, lsl #1]
14097	cmp	r8, #0
14098	beq	.L2031
14099	ldr	r3, [r4, #32]
14100	cbnz	r3, .L2031
14101	movs	r2, #1
14102	str	r2, [r4, #32]
14103	strh	r3, [r5, r0, lsl #1]	@ movhi
14104	ldrh	r3, [r4, #8]
14105	ldrh	r2, [r4, #2]
14106	subs	r3, r3, #1
14107	strh	r3, [r4, #8]	@ movhi
14108	ldr	r3, .L2043
14109	ldrh	r3, [r3]
14110	cmp	r2, r3
14111	bcc	.L2032
14112	mov	r0, r4
14113	bl	ftl_map_blk_alloc_new_blk
14114.L2032:
14115	ldr	r5, .L2043+4
14116	movs	r6, #0
14117.L2033:
14118	ldrh	r3, [r4, #6]
14119	uxth	r10, r6
14120	cmp	r3, r10
14121	bhi	.L2039
14122	movs	r1, #1
14123	mov	r0, r8
14124	bl	FtlFreeSysBlkQueueIn
14125	movs	r3, #0
14126	str	r3, [r4, #32]
14127.L2031:
14128	ldr	r3, .L2043
14129	ldrh	r2, [r4, #2]
14130	ldrh	r3, [r3]
14131	cmp	r2, r3
14132	bcc	.L2037
14133	mov	r0, r4
14134	bl	ftl_map_blk_alloc_new_blk
14135	b	.L2037
14136.L2039:
14137	ldr	r3, [sp]
14138	uxth	fp, r6
14139	add	r3, r3, fp, lsl #2
14140	str	r3, [sp, #4]
14141	ldr	r3, [sp]
14142	ldr	r2, [r3, fp, lsl #2]
14143	cmp	r8, r2, lsr #10
14144	bne	.L2034
14145	ldr	r3, .L2043+8
14146	str	r2, [r5, #4]
14147	movs	r2, #1
14148	ldr	r0, .L2043+4
14149	ldr	r1, [r3]
14150	str	r1, [r5, #8]
14151	ldr	r1, .L2043+12
14152	ldr	r7, [r1]
14153	mov	r1, r2
14154	str	r7, [r5, #12]
14155	bl	FlashReadPages
14156	ldrh	r2, [r7, #8]
14157	cmp	r2, r10
14158	beq	.L2035
14159	ldr	r1, .L2043+16
14160	movw	r2, #661
14161	ldr	r0, .L2043+20
14162	bl	printf
14163	ldr	r1, .L2043+24
14164	ldr	r0, .L2043+28
14165	bl	printf
14166.L2035:
14167	ldr	r2, [r5]
14168	adds	r2, r2, #1
14169	ldrh	r2, [r7, #8]
14170	bne	.L2036
14171.L2038:
14172	ldr	r1, [sp, #4]
14173	movs	r3, #0
14174	ldr	r0, .L2043+32
14175	str	r3, [r1]
14176	ldr	r1, [r5, #4]
14177	bl	printf
14178	ldr	r3, .L2043+36
14179	movs	r2, #1
14180	str	r2, [r3]
14181.L2037:
14182	movs	r0, #0
14183	add	sp, sp, #8
14184	@ sp needed
14185	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14186.L2036:
14187	cmp	r2, r10
14188	bne	.L2038
14189	ldrh	r0, [r7]
14190	ldrh	r1, [r4, #4]
14191	cmp	r0, r1
14192	bne	.L2038
14193	ldr	r2, [r5, #8]
14194	mov	r1, fp
14195	mov	r0, r4
14196	bl	FtlMapWritePage
14197.L2034:
14198	adds	r6, r6, #1
14199	b	.L2033
14200.L2044:
14201	.align	2
14202.L2043:
14203	.word	.LANCHOR54
14204	.word	.LANCHOR202
14205	.word	.LANCHOR184
14206	.word	.LANCHOR188
14207	.word	.LANCHOR212
14208	.word	.LC5
14209	.word	.LC6
14210	.word	.LC7
14211	.word	.LC39
14212	.word	.LANCHOR77
14213	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
14214	.section	.text.Ftl_write_map_blk_to_last_page,"ax",%progbits
14215	.align	1
14216	.global	Ftl_write_map_blk_to_last_page
14217	.syntax unified
14218	.thumb
14219	.thumb_func
14220	.fpu softvfp
14221	.type	Ftl_write_map_blk_to_last_page, %function
14222Ftl_write_map_blk_to_last_page:
14223	@ args = 0, pretend = 0, frame = 0
14224	@ frame_needed = 0, uses_anonymous_args = 0
14225	ldr	r3, .L2055
14226	push	{r4, r5, r6, r7, r8, lr}
14227	mov	r4, r0
14228	ldr	r5, [r3]
14229	cbnz	r5, .L2046
14230	ldrh	r3, [r0]
14231	movw	r2, #65535
14232	ldr	r6, [r0, #12]
14233	cmp	r3, r2
14234	bne	.L2047
14235	ldrh	r3, [r0, #8]
14236	cbz	r3, .L2048
14237	ldr	r1, .L2055+4
14238	movw	r2, #697
14239	ldr	r0, .L2055+8
14240	bl	printf
14241	ldr	r1, .L2055+12
14242	ldr	r0, .L2055+16
14243	bl	printf
14244.L2048:
14245	ldrh	r3, [r4, #8]
14246	adds	r3, r3, #1
14247	strh	r3, [r4, #8]	@ movhi
14248	bl	FtlFreeSysBlkQueueOut
14249	movs	r3, #0
14250	strh	r0, [r6]	@ movhi
14251	strh	r3, [r4, #2]	@ movhi
14252	strh	r3, [r4]	@ movhi
14253	ldr	r3, [r4, #28]
14254	adds	r3, r3, #1
14255	str	r3, [r4, #28]
14256.L2046:
14257	movs	r0, #0
14258	pop	{r4, r5, r6, r7, r8, pc}
14259.L2047:
14260	ldrh	r6, [r6, r3, lsl #1]
14261	movs	r1, #255
14262	ldrh	r3, [r0, #2]
14263	ldr	r2, .L2055+20
14264	ldr	r8, .L2055+32
14265	ldr	r7, [r0, #24]
14266	orr	r3, r3, r6, lsl #10
14267	ldr	r0, [r8]
14268	str	r3, [r2, #4]
14269	ldr	r3, .L2055+24
14270	str	r0, [r2, #8]
14271	ldr	r3, [r3]
14272	str	r3, [r2, #12]
14273	ldr	r2, [r4, #28]
14274	str	r2, [r3, #4]
14275	movw	r2, #64245
14276	strh	r2, [r3, #8]	@ movhi
14277	ldrh	r2, [r4, #4]
14278	strh	r6, [r3, #2]	@ movhi
14279	strh	r2, [r3]	@ movhi
14280	ldr	r3, .L2055+28
14281	ldrh	r2, [r3]
14282	lsls	r2, r2, #3
14283	bl	ftl_memset
14284	ldrh	ip, [r4, #6]
14285	mov	r3, r5
14286	ldr	r1, [r8]
14287	mov	r2, r5
14288.L2049:
14289	uxth	r0, r3
14290	cmp	ip, r0
14291	bhi	.L2051
14292	movs	r2, #1
14293	movs	r3, #0
14294	mov	r1, r2
14295	ldr	r0, .L2055+20
14296	bl	FlashProgPages
14297	ldrh	r3, [r4, #2]
14298	mov	r0, r4
14299	adds	r3, r3, #1
14300	strh	r3, [r4, #2]	@ movhi
14301	bl	ftl_map_blk_gc
14302	b	.L2046
14303.L2051:
14304	ldr	r0, [r7, r3, lsl #2]
14305	cmp	r6, r0, lsr #10
14306	bne	.L2050
14307	adds	r2, r2, #1
14308	uxth	r2, r2
14309	str	r3, [r1, r2, lsl #3]
14310	add	r5, r1, r2, lsl #3
14311	ldr	r0, [r7, r3, lsl #2]
14312	str	r0, [r5, #4]
14313.L2050:
14314	adds	r3, r3, #1
14315	b	.L2049
14316.L2056:
14317	.align	2
14318.L2055:
14319	.word	.LANCHOR77
14320	.word	.LANCHOR213
14321	.word	.LC5
14322	.word	.LC6
14323	.word	.LC7
14324	.word	.LANCHOR202
14325	.word	.LANCHOR188
14326	.word	.LANCHOR54
14327	.word	.LANCHOR183
14328	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
14329	.section	.text.FtlMapWritePage,"ax",%progbits
14330	.align	1
14331	.global	FtlMapWritePage
14332	.syntax unified
14333	.thumb
14334	.thumb_func
14335	.fpu softvfp
14336	.type	FtlMapWritePage, %function
14337FtlMapWritePage:
14338	@ args = 0, pretend = 0, frame = 16
14339	@ frame_needed = 0, uses_anonymous_args = 0
14340	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
14341	mov	r4, r0
14342	ldr	r10, .L2079+40
14343	mov	r8, r1
14344	movs	r6, #0
14345	str	r2, [sp, #4]
14346	mov	fp, r10
14347.L2058:
14348	ldr	r2, .L2079
14349	ldr	r3, [r2]
14350	adds	r3, r3, #1
14351	str	r3, [r2]
14352	ldrh	r3, [r10]
14353	ldrh	r2, [r4, #2]
14354	subs	r3, r3, #1
14355	cmp	r2, r3
14356	bge	.L2059
14357	ldrh	r2, [r4]
14358	movw	r3, #65535
14359	cmp	r2, r3
14360	bne	.L2060
14361.L2059:
14362	mov	r0, r4
14363	bl	Ftl_write_map_blk_to_last_page
14364.L2060:
14365	ldr	r3, .L2079+4
14366	ldr	r2, [r3]
14367	str	r3, [sp, #8]
14368	cmp	r2, #0
14369	bne	.L2075
14370	ldrh	r2, [r4]
14371	ldr	r3, [r4, #12]
14372	ldrh	r3, [r3, r2, lsl #1]
14373	cbnz	r3, .L2062
14374	ldr	r1, .L2079+8
14375	movw	r2, #757
14376	ldr	r0, .L2079+12
14377	bl	printf
14378	ldr	r1, .L2079+16
14379	ldr	r0, .L2079+20
14380	bl	printf
14381.L2062:
14382	ldrh	r2, [r4]
14383	ldrh	r3, [r4, #10]
14384	cmp	r2, r3
14385	bcc	.L2063
14386	ldr	r1, .L2079+8
14387	movw	r2, #758
14388	ldr	r0, .L2079+12
14389	bl	printf
14390	ldr	r1, .L2079+16
14391	ldr	r0, .L2079+20
14392	bl	printf
14393.L2063:
14394	ldrh	r2, [r4]
14395	movs	r1, #0
14396	ldr	r3, [r4, #12]
14397	ldr	r5, .L2079+24
14398	ldrh	r7, [r3, r2, lsl #1]
14399	movs	r2, #16
14400	ldrh	r3, [r4, #2]
14401	orr	r3, r3, r7, lsl #10
14402	str	r3, [r5, #4]
14403	ldr	r3, [sp, #4]
14404	str	r3, [r5, #8]
14405	ldr	r3, .L2079+28
14406	ldr	r0, [r3]
14407	str	r0, [r5, #12]
14408	bl	ftl_memset
14409	ldr	r3, [r5, #12]
14410	mov	r0, r5
14411	ldr	r2, [r4, #28]
14412	strh	r8, [r3, #8]	@ movhi
14413	str	r2, [r3, #4]
14414	ldrh	r2, [r4, #4]
14415	strh	r7, [r3, #2]	@ movhi
14416	strh	r2, [r3]	@ movhi
14417	movs	r3, #1
14418	mov	r2, r3
14419	mov	r1, r3
14420	bl	FlashProgPages
14421	ldrh	r2, [r4, #2]
14422	ldr	r1, [r5]
14423	adds	r2, r2, #1
14424	uxth	r2, r2
14425	adds	r3, r1, #1
14426	mov	r3, r5
14427	strh	r2, [r4, #2]	@ movhi
14428	bne	.L2064
14429	ldr	r1, [r5, #4]
14430	adds	r6, r6, #1
14431	ldr	r0, .L2079+32
14432	uxth	r6, r6
14433	str	r5, [sp, #12]
14434	bl	printf
14435	ldrh	r2, [r4, #2]
14436	ldr	r3, [sp, #12]
14437	cmp	r2, #2
14438	ittt	ls
14439	ldrhls	r2, [fp]
14440	addls	r2, r2, #-1
14441	strhls	r2, [r4, #2]	@ movhi
14442	cmp	r6, #3
14443	bls	.L2058
14444	mov	r2, r6
14445	ldr	r1, [r3, #4]
14446	ldr	r0, .L2079+36
14447	bl	printf
14448	ldr	r2, [sp, #8]
14449	movs	r3, #1
14450	str	r3, [r2]
14451.L2075:
14452	movs	r0, #0
14453	add	sp, sp, #16
14454	@ sp needed
14455	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14456.L2064:
14457	cbz	r1, .L2067
14458	cmp	r2, #1
14459	strh	r7, [r4, #40]	@ movhi
14460	bne	.L2068
14461.L2069:
14462	movs	r3, #0
14463	str	r3, [r4, #36]
14464	b	.L2058
14465.L2068:
14466	cmp	r1, #256
14467.L2078:
14468	beq	.L2069
14469	ldr	r2, [r4, #36]
14470	cmp	r2, #0
14471	bne	.L2069
14472	ldr	r2, [r3, #4]
14473	ldr	r3, [r4, #24]
14474	str	r2, [r3, r8, lsl #2]
14475	b	.L2075
14476.L2067:
14477	cmp	r2, #1
14478	b	.L2078
14479.L2080:
14480	.align	2
14481.L2079:
14482	.word	.LANCHOR165
14483	.word	.LANCHOR77
14484	.word	.LANCHOR214
14485	.word	.LC5
14486	.word	.LC6
14487	.word	.LC7
14488	.word	.LANCHOR202
14489	.word	.LANCHOR188
14490	.word	.LC40
14491	.word	.LC41
14492	.word	.LANCHOR54
14493	.size	FtlMapWritePage, .-FtlMapWritePage
14494	.section	.text.flush_l2p_region,"ax",%progbits
14495	.align	1
14496	.global	flush_l2p_region
14497	.syntax unified
14498	.thumb
14499	.thumb_func
14500	.fpu softvfp
14501	.type	flush_l2p_region, %function
14502flush_l2p_region:
14503	@ args = 0, pretend = 0, frame = 0
14504	@ frame_needed = 0, uses_anonymous_args = 0
14505	push	{r3, r4, r5, lr}
14506	movs	r4, #12
14507	ldr	r5, .L2082
14508	muls	r4, r0, r4
14509	ldr	r0, .L2082+4
14510	ldr	r3, [r5]
14511	adds	r2, r3, r4
14512	ldrh	r1, [r3, r4]
14513	ldr	r2, [r2, #8]
14514	bl	FtlMapWritePage
14515	ldr	r3, [r5]
14516	movs	r0, #0
14517	add	r4, r4, r3
14518	ldr	r3, [r4, #4]
14519	bic	r3, r3, #-2147483648
14520	str	r3, [r4, #4]
14521	pop	{r3, r4, r5, pc}
14522.L2083:
14523	.align	2
14524.L2082:
14525	.word	.LANCHOR97
14526	.word	.LANCHOR127
14527	.size	flush_l2p_region, .-flush_l2p_region
14528	.section	.text.l2p_flush,"ax",%progbits
14529	.align	1
14530	.global	l2p_flush
14531	.syntax unified
14532	.thumb
14533	.thumb_func
14534	.fpu softvfp
14535	.type	l2p_flush, %function
14536l2p_flush:
14537	@ args = 0, pretend = 0, frame = 0
14538	@ frame_needed = 0, uses_anonymous_args = 0
14539	push	{r4, r5, r6, lr}
14540	movs	r4, #0
14541	ldr	r5, .L2088
14542	ldr	r6, .L2088+4
14543.L2085:
14544	ldrh	r3, [r5]
14545	uxth	r0, r4
14546	cmp	r3, r0
14547	bhi	.L2087
14548	movs	r0, #0
14549	pop	{r4, r5, r6, pc}
14550.L2087:
14551	ldr	r2, [r6]
14552	uxth	r3, r4
14553	movs	r1, #12
14554	mla	r3, r1, r3, r2
14555	ldr	r3, [r3, #4]
14556	cmp	r3, #0
14557	bge	.L2086
14558	bl	flush_l2p_region
14559.L2086:
14560	adds	r4, r4, #1
14561	b	.L2085
14562.L2089:
14563	.align	2
14564.L2088:
14565	.word	.LANCHOR68
14566	.word	.LANCHOR97
14567	.size	l2p_flush, .-l2p_flush
14568	.section	.text.FtlVendorPartWrite,"ax",%progbits
14569	.align	1
14570	.global	FtlVendorPartWrite
14571	.syntax unified
14572	.thumb
14573	.thumb_func
14574	.fpu softvfp
14575	.type	FtlVendorPartWrite, %function
14576FtlVendorPartWrite:
14577	@ args = 0, pretend = 0, frame = 56
14578	@ frame_needed = 0, uses_anonymous_args = 0
14579	ldr	r3, .L2102
14580	push	{r4, r5, r6, r7, r8, r10, fp, lr}
14581	sub	sp, sp, #56
14582	str	r2, [sp]
14583	adds	r2, r0, r1
14584	mov	r7, r0
14585	mov	r5, r1
14586	ldrh	r3, [r3]
14587	cmp	r2, r3
14588	bhi	.L2098
14589	ldr	r3, .L2102+4
14590	mov	r8, #0
14591	ldrh	r6, [r3]
14592	lsr	r6, r0, r6
14593	lsl	fp, r6, #2
14594.L2092:
14595	cbnz	r5, .L2097
14596.L2090:
14597	mov	r0, r8
14598	add	sp, sp, #56
14599	@ sp needed
14600	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14601.L2097:
14602	ldr	r3, .L2102+8
14603	mov	r0, r7
14604	ldr	r10, .L2102+24
14605	ldr	r3, [r3]
14606	ldr	r2, [r3, fp]
14607	ldr	r3, .L2102+12
14608	str	r2, [sp, #12]
14609	ldrh	r3, [r3]
14610	mov	r1, r3
14611	str	r3, [sp, #8]
14612	bl	__aeabi_uidivmod
14613	ldr	r3, [sp, #8]
14614	ldr	r2, [sp, #12]
14615	str	r1, [sp, #4]
14616	subs	r4, r3, r1
14617	uxth	r4, r4
14618	cmp	r5, r4
14619	it	cc
14620	uxthcc	r4, r5
14621	cbz	r2, .L2094
14622	cmp	r4, r3
14623	beq	.L2094
14624	ldr	r3, [r10]
14625	add	r0, sp, #20
14626	str	r2, [sp, #24]
14627	movs	r2, #1
14628	mov	r1, r2
14629	str	r3, [sp, #28]
14630	movs	r3, #0
14631	str	r3, [sp, #32]
14632	bl	FlashReadPages
14633.L2095:
14634	lsls	r3, r4, #9
14635	ldr	r0, [r10]
14636	subs	r5, r5, r4
14637	mov	r2, r3
14638	str	r3, [sp, #8]
14639	ldm	sp, {r1, r3}
14640	add	r7, r7, r4
14641	add	fp, fp, #4
14642	add	r0, r0, r3, lsl #9
14643	bl	ftl_memcpy
14644	ldr	r2, [r10]
14645	mov	r1, r6
14646	ldr	r0, .L2102+16
14647	adds	r6, r6, #1
14648	bl	FtlMapWritePage
14649	ldr	r3, [sp]
14650	adds	r0, r0, #1
14651	it	eq
14652	moveq	r8, #-1
14653	mov	r2, r3
14654	ldr	r3, [sp, #8]
14655	add	r2, r2, r3
14656	str	r2, [sp]
14657	b	.L2092
14658.L2094:
14659	ldr	r3, .L2102+20
14660	movs	r1, #0
14661	ldr	r0, [r10]
14662	ldrh	r2, [r3]
14663	bl	ftl_memset
14664	b	.L2095
14665.L2098:
14666	mov	r8, #-1
14667	b	.L2090
14668.L2103:
14669	.align	2
14670.L2102:
14671	.word	.LANCHOR50
14672	.word	.LANCHOR57
14673	.word	.LANCHOR194
14674	.word	.LANCHOR56
14675	.word	.LANCHOR215
14676	.word	.LANCHOR58
14677	.word	.LANCHOR185
14678	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
14679	.section	.text.Ftl_save_ext_data,"ax",%progbits
14680	.align	1
14681	.global	Ftl_save_ext_data
14682	.syntax unified
14683	.thumb
14684	.thumb_func
14685	.fpu softvfp
14686	.type	Ftl_save_ext_data, %function
14687Ftl_save_ext_data:
14688	@ args = 0, pretend = 0, frame = 0
14689	@ frame_needed = 0, uses_anonymous_args = 0
14690	@ link register save eliminated.
14691	ldr	r2, .L2106
14692	ldr	r3, .L2106+4
14693	ldr	r1, [r2]
14694	cmp	r1, r3
14695	bne	.L2104
14696	ldr	r3, .L2106+8
14697	movs	r1, #1
14698	movs	r0, #0
14699	str	r3, [r2, #4]
14700	ldr	r3, .L2106+12
14701	ldr	r3, [r3]
14702	str	r3, [r2, #88]
14703	ldr	r3, .L2106+16
14704	ldr	r3, [r3]
14705	str	r3, [r2, #92]
14706	ldr	r3, .L2106+20
14707	ldr	r3, [r3]
14708	str	r3, [r2, #8]
14709	ldr	r3, .L2106+24
14710	ldr	r3, [r3]
14711	str	r3, [r2, #12]
14712	ldr	r3, .L2106+28
14713	ldr	r3, [r3]
14714	str	r3, [r2, #16]
14715	ldr	r3, .L2106+32
14716	ldr	r3, [r3]
14717	str	r3, [r2, #20]
14718	ldr	r3, .L2106+36
14719	ldr	r3, [r3]
14720	str	r3, [r2, #28]
14721	ldr	r3, .L2106+40
14722	ldr	r3, [r3]
14723	str	r3, [r2, #32]
14724	ldr	r3, .L2106+44
14725	ldr	r3, [r3]
14726	str	r3, [r2, #36]
14727	ldr	r3, .L2106+48
14728	ldr	r3, [r3]
14729	str	r3, [r2, #40]
14730	ldr	r3, .L2106+52
14731	ldr	r3, [r3]
14732	str	r3, [r2, #44]
14733	ldr	r3, .L2106+56
14734	ldr	r3, [r3]
14735	str	r3, [r2, #48]
14736	ldr	r3, .L2106+60
14737	ldr	r3, [r3]
14738	str	r3, [r2, #60]
14739	ldr	r3, .L2106+64
14740	ldr	r3, [r3]
14741	str	r3, [r2, #64]
14742	b	FtlVendorPartWrite
14743.L2104:
14744	bx	lr
14745.L2107:
14746	.align	2
14747.L2106:
14748	.word	.LANCHOR138
14749	.word	1179929683
14750	.word	1342177360
14751	.word	.LANCHOR216
14752	.word	.LANCHOR217
14753	.word	.LANCHOR161
14754	.word	.LANCHOR162
14755	.word	.LANCHOR166
14756	.word	.LANCHOR165
14757	.word	.LANCHOR168
14758	.word	.LANCHOR80
14759	.word	.LANCHOR163
14760	.word	.LANCHOR164
14761	.word	.LANCHOR169
14762	.word	.LANCHOR170
14763	.word	.LANCHOR158
14764	.word	.LANCHOR157
14765	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
14766	.section	.text.FtlEctTblFlush,"ax",%progbits
14767	.align	1
14768	.global	FtlEctTblFlush
14769	.syntax unified
14770	.thumb
14771	.thumb_func
14772	.fpu softvfp
14773	.type	FtlEctTblFlush, %function
14774FtlEctTblFlush:
14775	@ args = 0, pretend = 0, frame = 0
14776	@ frame_needed = 0, uses_anonymous_args = 0
14777	push	{r3, lr}
14778	ldr	r3, .L2115
14779	ldr	r3, [r3]
14780	cmp	r3, #0
14781	beq	.L2113
14782	ldr	r3, .L2115+4
14783	ldr	r3, [r3]
14784	cmp	r3, #39
14785	ite	hi
14786	movhi	r3, #32
14787	movls	r3, #4
14788.L2109:
14789	ldr	r1, .L2115+8
14790	ldrh	r2, [r1]
14791	cmp	r2, #31
14792	ittt	ls
14793	addls	r2, r2, #1
14794	movls	r3, #1
14795	strhls	r2, [r1]	@ movhi
14796	ldr	r2, .L2115+12
14797	cbnz	r0, .L2111
14798	ldr	r1, [r2]
14799	ldr	r0, [r1, #20]
14800	ldr	r1, [r1, #16]
14801	add	r3, r3, r0
14802	cmp	r1, r3
14803	bcc	.L2112
14804.L2111:
14805	ldr	r2, [r2]
14806	movs	r0, #64
14807	ldr	r3, [r2, #16]
14808	str	r3, [r2, #20]
14809	ldr	r3, .L2115+16
14810	str	r3, [r2]
14811	ldr	r3, .L2115+20
14812	ldrh	r1, [r3]
14813	lsls	r3, r1, #9
14814	str	r3, [r2, #12]
14815	ldr	r3, [r2, #8]
14816	adds	r3, r3, #1
14817	str	r3, [r2, #8]
14818	movs	r3, #0
14819	str	r3, [r2, #4]
14820	bl	FtlVendorPartWrite
14821	bl	Ftl_save_ext_data
14822.L2112:
14823	movs	r0, #0
14824	pop	{r3, pc}
14825.L2113:
14826	movs	r3, #32
14827	b	.L2109
14828.L2116:
14829	.align	2
14830.L2115:
14831	.word	.LANCHOR28
14832	.word	.LANCHOR170
14833	.word	.LANCHOR218
14834	.word	.LANCHOR191
14835	.word	1112818501
14836	.word	.LANCHOR190
14837	.size	FtlEctTblFlush, .-FtlEctTblFlush
14838	.section	.text.allocate_new_data_superblock,"ax",%progbits
14839	.align	1
14840	.global	allocate_new_data_superblock
14841	.syntax unified
14842	.thumb
14843	.thumb_func
14844	.fpu softvfp
14845	.type	allocate_new_data_superblock, %function
14846allocate_new_data_superblock:
14847	@ args = 0, pretend = 0, frame = 0
14848	@ frame_needed = 0, uses_anonymous_args = 0
14849	ldr	r3, .L2144
14850	push	{r4, r5, r6, lr}
14851	mov	r4, r0
14852	ldrh	r5, [r0]
14853	ldrh	r3, [r3]
14854	cmp	r3, r5
14855	bcs	.L2118
14856	ldr	r1, .L2144+4
14857	movw	r2, #3233
14858	ldr	r0, .L2144+8
14859	bl	printf
14860	ldr	r1, .L2144+12
14861	ldr	r0, .L2144+16
14862	bl	printf
14863.L2118:
14864	ldr	r3, .L2144+20
14865	ldr	r3, [r3]
14866	cmp	r3, #0
14867	bne	.L2119
14868	movw	r3, #65535
14869	cmp	r5, r3
14870	beq	.L2120
14871	ldr	r3, .L2144+24
14872	mov	r0, r5
14873	ldr	r3, [r3]
14874	ldrh	r3, [r3, r5, lsl #1]
14875	cbz	r3, .L2121
14876	bl	INSERT_DATA_LIST
14877.L2120:
14878	movs	r3, #0
14879	strb	r3, [r4, #8]
14880	ldr	r3, .L2144+28
14881	cmp	r4, r3
14882	beq	.L2122
14883	ldr	r3, .L2144+32
14884	ldrh	r2, [r3]
14885	cmp	r2, #1
14886	beq	.L2122
14887	ldr	r3, .L2144+36
14888	ldrb	r3, [r3]	@ zero_extendqisi2
14889	cbz	r3, .L2123
14890.L2122:
14891	movs	r3, #1
14892	strb	r3, [r4, #8]
14893.L2124:
14894	ldr	r6, .L2144+40
14895	movw	r2, #65535
14896	ldrh	r0, [r6]
14897	cmp	r0, r2
14898	beq	.L2129
14899	cmp	r5, r0
14900	bne	.L2130
14901	ldr	r3, .L2144+24
14902	ldr	r3, [r3]
14903	ldrh	r3, [r3, r0, lsl #1]
14904	cbz	r3, .L2131
14905.L2130:
14906	bl	update_vpc_list
14907.L2131:
14908	movw	r3, #65535
14909	strh	r3, [r6]	@ movhi
14910.L2129:
14911	mov	r0, r4
14912	bl	allocate_data_superblock
14913	bl	l2p_flush
14914	movs	r0, #0
14915	bl	FtlEctTblFlush
14916	bl	FtlVpcTblFlush
14917.L2119:
14918	movs	r0, #0
14919	pop	{r4, r5, r6, pc}
14920.L2121:
14921	bl	INSERT_FREE_LIST
14922	b	.L2120
14923.L2123:
14924	ldr	r3, .L2144+44
14925	cmp	r4, r3
14926	bne	.L2124
14927	cmp	r2, #3
14928	beq	.L2126
14929	ldr	r2, .L2144+48
14930	ldr	r2, [r2]
14931	cmp	r2, #1
14932	bne	.L2127
14933.L2126:
14934	movs	r2, #1
14935	strb	r2, [r3, #8]
14936.L2127:
14937	ldr	r2, .L2144+52
14938	ldr	r2, [r2]
14939	cmp	r2, #0
14940	beq	.L2124
14941	ldr	r2, .L2144+56
14942	ldr	r2, [r2]
14943	cmp	r2, #39
14944	itt	ls
14945	movls	r2, #1
14946	strbls	r2, [r3, #8]
14947	b	.L2124
14948.L2145:
14949	.align	2
14950.L2144:
14951	.word	.LANCHOR40
14952	.word	.LANCHOR219
14953	.word	.LC5
14954	.word	.LC6
14955	.word	.LC7
14956	.word	.LANCHOR77
14957	.word	.LANCHOR84
14958	.word	.LANCHOR93
14959	.word	.LANCHOR44
14960	.word	.LANCHOR8
14961	.word	.LANCHOR133
14962	.word	.LANCHOR92
14963	.word	.LANCHOR158
14964	.word	.LANCHOR28
14965	.word	.LANCHOR170
14966	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
14967	.section	.text.FtlVendorPartRead,"ax",%progbits
14968	.align	1
14969	.global	FtlVendorPartRead
14970	.syntax unified
14971	.thumb
14972	.thumb_func
14973	.fpu softvfp
14974	.type	FtlVendorPartRead, %function
14975FtlVendorPartRead:
14976	@ args = 0, pretend = 0, frame = 56
14977	@ frame_needed = 0, uses_anonymous_args = 0
14978	ldr	r3, .L2156
14979	push	{r4, r5, r6, r7, r8, r10, fp, lr}
14980	mov	r10, r2
14981	adds	r2, r0, r1
14982	sub	sp, sp, #56
14983	mov	r7, r0
14984	mov	r6, r1
14985	ldrh	r3, [r3]
14986	cmp	r2, r3
14987	bhi	.L2155
14988	ldr	r3, .L2156+4
14989	mov	r8, #0
14990	ldr	fp, .L2156+28
14991	ldrh	r5, [r3]
14992	lsr	r5, r0, r5
14993	lsls	r3, r5, #2
14994	str	r3, [sp]
14995.L2148:
14996	cbnz	r6, .L2154
14997.L2146:
14998	mov	r0, r8
14999	add	sp, sp, #56
15000	@ sp needed
15001	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
15002.L2154:
15003	ldr	r3, .L2156+8
15004	mov	r0, r7
15005	ldr	r2, [sp]
15006	ldr	r3, [r3]
15007	ldr	r3, [r3, r2]
15008	ldr	r2, .L2156+12
15009	str	r3, [sp, #8]
15010	ldrh	r4, [r2]
15011	mov	r1, r4
15012	bl	__aeabi_uidivmod
15013	subs	r4, r4, r1
15014	ldr	r3, [sp, #8]
15015	uxth	r4, r4
15016	str	r1, [sp, #4]
15017	cmp	r6, r4
15018	it	cc
15019	uxthcc	r4, r6
15020	lsls	r2, r4, #9
15021	str	r2, [sp, #8]
15022	cmp	r3, #0
15023	beq	.L2150
15024	ldr	r2, [fp]
15025	add	r0, sp, #20
15026	str	r3, [sp, #24]
15027	str	r3, [sp, #12]
15028	str	r2, [sp, #28]
15029	movs	r2, #0
15030	str	r2, [sp, #32]
15031	movs	r2, #1
15032	mov	r1, r2
15033	bl	FlashReadPages
15034	ldr	r2, [sp, #20]
15035	ldr	r3, [sp, #12]
15036	adds	r2, r2, #1
15037	ldr	r2, .L2156+16
15038	it	eq
15039	moveq	r8, #-1
15040	ldr	r2, [r2]
15041	cmp	r2, #256
15042	bne	.L2152
15043	mov	r2, r3
15044	mov	r1, r5
15045	ldr	r0, .L2156+20
15046	bl	printf
15047	ldr	r2, [fp]
15048	mov	r1, r5
15049	ldr	r0, .L2156+24
15050	bl	FtlMapWritePage
15051.L2152:
15052	ldr	r1, [fp]
15053	lsls	r2, r4, #9
15054	ldr	r3, [sp, #4]
15055	mov	r0, r10
15056	add	r1, r1, r3, lsl #9
15057	bl	ftl_memcpy
15058.L2153:
15059	ldr	r3, [sp, #8]
15060	adds	r5, r5, #1
15061	subs	r6, r6, r4
15062	add	r7, r7, r4
15063	add	r10, r10, r3
15064	ldr	r3, [sp]
15065	adds	r3, r3, #4
15066	str	r3, [sp]
15067	b	.L2148
15068.L2150:
15069	lsls	r2, r4, #9
15070	mov	r1, r3
15071	mov	r0, r10
15072	bl	ftl_memset
15073	b	.L2153
15074.L2155:
15075	mov	r8, #-1
15076	b	.L2146
15077.L2157:
15078	.align	2
15079.L2156:
15080	.word	.LANCHOR50
15081	.word	.LANCHOR57
15082	.word	.LANCHOR194
15083	.word	.LANCHOR56
15084	.word	.LANCHOR202
15085	.word	.LC42
15086	.word	.LANCHOR215
15087	.word	.LANCHOR185
15088	.size	FtlVendorPartRead, .-FtlVendorPartRead
15089	.section	.text.FtlLoadEctTbl,"ax",%progbits
15090	.align	1
15091	.global	FtlLoadEctTbl
15092	.syntax unified
15093	.thumb
15094	.thumb_func
15095	.fpu softvfp
15096	.type	FtlLoadEctTbl, %function
15097FtlLoadEctTbl:
15098	@ args = 0, pretend = 0, frame = 0
15099	@ frame_needed = 0, uses_anonymous_args = 0
15100	push	{r3, r4, r5, lr}
15101	movs	r0, #64
15102	ldr	r4, .L2160
15103	ldr	r5, .L2160+4
15104	ldr	r2, [r4]
15105	ldrh	r1, [r5]
15106	bl	FtlVendorPartRead
15107	ldr	r3, [r4]
15108	ldr	r2, [r3]
15109	ldr	r3, .L2160+8
15110	cmp	r2, r3
15111	beq	.L2159
15112	ldr	r1, .L2160+12
15113	ldr	r0, .L2160+16
15114	bl	printf
15115	ldrh	r2, [r5]
15116	movs	r1, #0
15117	ldr	r0, [r4]
15118	lsls	r2, r2, #9
15119	bl	ftl_memset
15120.L2159:
15121	movs	r0, #0
15122	pop	{r3, r4, r5, pc}
15123.L2161:
15124	.align	2
15125.L2160:
15126	.word	.LANCHOR191
15127	.word	.LANCHOR190
15128	.word	1112818501
15129	.word	.LC43
15130	.word	.LC7
15131	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
15132	.section	.text.Ftl_load_ext_data,"ax",%progbits
15133	.align	1
15134	.global	Ftl_load_ext_data
15135	.syntax unified
15136	.thumb
15137	.thumb_func
15138	.fpu softvfp
15139	.type	Ftl_load_ext_data, %function
15140Ftl_load_ext_data:
15141	@ args = 0, pretend = 0, frame = 0
15142	@ frame_needed = 0, uses_anonymous_args = 0
15143	push	{r3, r4, r5, lr}
15144	movs	r1, #1
15145	ldr	r4, .L2166
15146	movs	r0, #0
15147	ldr	r5, .L2166+4
15148	mov	r2, r4
15149	bl	FtlVendorPartRead
15150	ldr	r3, [r4]
15151	cmp	r3, r5
15152	beq	.L2163
15153	mov	r2, #512
15154	movs	r1, #0
15155	mov	r0, r4
15156	bl	ftl_memset
15157	str	r5, [r4]
15158.L2163:
15159	ldr	r3, [r4]
15160	cmp	r3, r5
15161	ldr	r5, .L2166+8
15162	bne	.L2164
15163	ldr	r2, [r4, #88]
15164	ldr	r3, .L2166+12
15165	str	r2, [r3]
15166	ldr	r2, [r4, #92]
15167	ldr	r3, .L2166+16
15168	str	r2, [r3]
15169	ldr	r2, [r4, #8]
15170	ldr	r3, .L2166+20
15171	str	r2, [r3]
15172	ldr	r2, [r4, #12]
15173	ldr	r3, .L2166+24
15174	str	r2, [r3]
15175	ldr	r2, [r4, #16]
15176	ldr	r3, .L2166+28
15177	str	r2, [r3]
15178	ldr	r2, [r4, #20]
15179	ldr	r3, .L2166+32
15180	str	r2, [r3]
15181	ldr	r3, [r4, #28]
15182	ldr	r2, [r4, #32]
15183	str	r3, [r5]
15184	ldr	r3, .L2166+36
15185	str	r2, [r3]
15186	ldr	r2, [r4, #36]
15187	ldr	r3, .L2166+40
15188	str	r2, [r3]
15189	ldr	r2, [r4, #40]
15190	ldr	r3, .L2166+44
15191	str	r2, [r3]
15192	ldr	r2, [r4, #44]
15193	ldr	r3, .L2166+48
15194	str	r2, [r3]
15195	ldr	r2, [r4, #48]
15196	ldr	r3, .L2166+52
15197	str	r2, [r3]
15198	ldr	r2, [r4, #60]
15199	ldr	r3, .L2166+56
15200	str	r2, [r3]
15201.L2164:
15202	ldr	r3, .L2166+60
15203	movs	r2, #0
15204	str	r2, [r3]
15205	ldr	r2, [r4, #68]
15206	ldr	r3, .L2166+64
15207	cmp	r2, r3
15208	bne	.L2165
15209	ldr	r3, .L2166+68
15210	movs	r2, #1
15211	ldr	r1, .L2166+72
15212	ldr	r0, .L2166+76
15213	str	r2, [r3]
15214	bl	printf
15215.L2165:
15216	ldr	r3, .L2166+80
15217	ldr	r1, .L2166+84
15218	ldrh	r2, [r3]
15219	ldr	r3, .L2166+88
15220	ldrh	r1, [r1]
15221	ldr	r0, [r3]
15222	ldr	r3, [r5]
15223	mla	r0, r0, r2, r3
15224	bl	__aeabi_uidiv
15225	ldr	r3, .L2166+92
15226	str	r0, [r3]
15227	pop	{r3, r4, r5, pc}
15228.L2167:
15229	.align	2
15230.L2166:
15231	.word	.LANCHOR138
15232	.word	1179929683
15233	.word	.LANCHOR168
15234	.word	.LANCHOR216
15235	.word	.LANCHOR217
15236	.word	.LANCHOR161
15237	.word	.LANCHOR162
15238	.word	.LANCHOR166
15239	.word	.LANCHOR165
15240	.word	.LANCHOR80
15241	.word	.LANCHOR163
15242	.word	.LANCHOR164
15243	.word	.LANCHOR169
15244	.word	.LANCHOR170
15245	.word	.LANCHOR158
15246	.word	.LANCHOR157
15247	.word	305432421
15248	.word	.LANCHOR28
15249	.word	.LC44
15250	.word	.LC7
15251	.word	.LANCHOR48
15252	.word	.LANCHOR40
15253	.word	.LANCHOR167
15254	.word	.LANCHOR205
15255	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
15256	.section	.text.ftl_vendor_read,"ax",%progbits
15257	.align	1
15258	.global	ftl_vendor_read
15259	.syntax unified
15260	.thumb
15261	.thumb_func
15262	.fpu softvfp
15263	.type	ftl_vendor_read, %function
15264ftl_vendor_read:
15265	@ args = 0, pretend = 0, frame = 0
15266	@ frame_needed = 0, uses_anonymous_args = 0
15267	@ link register save eliminated.
15268	add	r0, r0, #256
15269	b	FtlVendorPartRead
15270	.size	ftl_vendor_read, .-ftl_vendor_read
15271	.section	.text.ftl_sys_read,"ax",%progbits
15272	.align	1
15273	.global	ftl_sys_read
15274	.syntax unified
15275	.thumb
15276	.thumb_func
15277	.fpu softvfp
15278	.type	ftl_sys_read, %function
15279ftl_sys_read:
15280	@ args = 0, pretend = 0, frame = 0
15281	@ frame_needed = 0, uses_anonymous_args = 0
15282	@ link register save eliminated.
15283	add	r0, r0, #512
15284	b	FtlVendorPartRead
15285	.size	ftl_sys_read, .-ftl_sys_read
15286	.section	.text.FtlMapBlkWriteDumpData,"ax",%progbits
15287	.align	1
15288	.global	FtlMapBlkWriteDumpData
15289	.syntax unified
15290	.thumb
15291	.thumb_func
15292	.fpu softvfp
15293	.type	FtlMapBlkWriteDumpData, %function
15294FtlMapBlkWriteDumpData:
15295	@ args = 0, pretend = 0, frame = 0
15296	@ frame_needed = 0, uses_anonymous_args = 0
15297	push	{r3, r4, r5, r6, r7, r8, r10, lr}
15298	mov	r4, r0
15299	ldr	r3, [r0, #36]
15300	cmp	r3, #0
15301	beq	.L2170
15302	movs	r3, #0
15303	ldrh	r6, [r0, #6]
15304	str	r3, [r0, #36]
15305	ldr	r3, .L2184
15306	ldr	r10, [r0, #24]
15307	ldr	r3, [r3]
15308	cmp	r3, #0
15309	bne	.L2170
15310	ldr	r3, .L2184+4
15311	ldr	r5, .L2184+8
15312	ldr	r3, [r3]
15313	mov	r7, r5
15314	str	r3, [r5, #8]
15315	ldr	r3, .L2184+12
15316	ldr	r8, [r3]
15317	ldrh	r3, [r0, #2]
15318	str	r8, [r5, #12]
15319	cbz	r3, .L2174
15320	ldr	r2, .L2184+16
15321	ldrh	r2, [r2]
15322	subs	r2, r2, #1
15323	cmp	r3, r2
15324	bge	.L2174
15325	ldrh	r2, [r0]
15326	movw	r1, #65535
15327	cmp	r2, r1
15328	beq	.L2174
15329	ldr	r1, [r0, #12]
15330	subs	r3, r3, #1
15331	mov	r0, r5
15332	ldrh	r2, [r1, r2, lsl #1]
15333	orr	r3, r3, r2, lsl #10
15334	movs	r2, #1
15335	mov	r1, r2
15336	str	r3, [r5, #4]
15337	bl	FlashReadPages
15338	ldr	r3, [r5]
15339	adds	r3, r3, #1
15340	beq	.L2174
15341	ldr	r3, [r4, #24]
15342	ldrh	r1, [r8, #8]
15343	ldr	r2, [r3, r1, lsl #2]
15344	ldr	r3, [r5, #4]
15345	cmp	r2, r3
15346	bne	.L2174
15347	ldr	r2, [r5, #8]
15348.L2183:
15349	mov	r0, r4
15350	pop	{r3, r4, r5, r6, r7, r8, r10, lr}
15351	b	FtlMapWritePage
15352.L2174:
15353	subs	r6, r6, #1
15354	uxth	r6, r6
15355	ldr	r3, [r10, r6, lsl #2]
15356	str	r3, [r7, #4]
15357	cbz	r3, .L2175
15358	movs	r2, #1
15359	ldr	r0, .L2184+8
15360	mov	r1, r2
15361	bl	FlashReadPages
15362.L2176:
15363	ldr	r2, [r7, #8]
15364	mov	r1, r6
15365	b	.L2183
15366.L2175:
15367	ldr	r3, .L2184+20
15368	movs	r1, #255
15369	ldr	r0, [r7, #8]
15370	ldrh	r2, [r3]
15371	bl	ftl_memset
15372	b	.L2176
15373.L2170:
15374	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
15375.L2185:
15376	.align	2
15377.L2184:
15378	.word	.LANCHOR77
15379	.word	.LANCHOR184
15380	.word	.LANCHOR202
15381	.word	.LANCHOR188
15382	.word	.LANCHOR54
15383	.word	.LANCHOR58
15384	.size	FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData
15385	.section	.text.FtlScanSysBlk,"ax",%progbits
15386	.align	1
15387	.global	FtlScanSysBlk
15388	.syntax unified
15389	.thumb
15390	.thumb_func
15391	.fpu softvfp
15392	.type	FtlScanSysBlk, %function
15393FtlScanSysBlk:
15394	@ args = 0, pretend = 0, frame = 32
15395	@ frame_needed = 0, uses_anonymous_args = 0
15396	push	{r4, r5, r6, r7, r8, r10, fp, lr}
15397	movs	r4, #0
15398	ldr	r5, .L2268
15399	sub	sp, sp, #32
15400	mov	r1, r4
15401	ldr	r3, .L2268+4
15402	ldr	r2, [r5]
15403	ldr	r6, .L2268+8
15404	strh	r4, [r3]	@ movhi
15405	ldr	r3, .L2268+12
15406	lsls	r2, r2, #2
15407	strh	r4, [r6]	@ movhi
15408	ldr	r7, .L2268+16
15409	ldr	r0, [r3]
15410	bl	ftl_memset
15411	ldr	r2, [r5]
15412	mov	r1, r4
15413	ldr	r3, .L2268+20
15414	lsls	r2, r2, #1
15415	ldr	r0, [r3]
15416	bl	ftl_memset
15417	ldrh	r2, [r7]
15418	mov	r1, r4
15419	ldr	r3, .L2268+24
15420	lsls	r2, r2, #2
15421	ldr	r0, [r3]
15422	bl	ftl_memset
15423	ldrh	r2, [r7]
15424	mov	r1, r4
15425	ldr	r3, .L2268+28
15426	lsls	r2, r2, #1
15427	ldr	r0, [r3]
15428	bl	ftl_memset
15429	movs	r2, #12
15430	movs	r1, #255
15431	ldr	r0, .L2268+32
15432	bl	ftl_memset
15433	ldr	r3, .L2268+36
15434	str	r6, [sp, #12]
15435	str	r5, [sp, #16]
15436	ldrh	r3, [r3]
15437	str	r3, [sp, #4]
15438.L2187:
15439	ldr	r3, .L2268+40
15440	ldr	r2, [sp, #4]
15441	ldrh	r3, [r3]
15442	cmp	r3, r2
15443	bls	.L2229
15444	ldr	r3, .L2268+44
15445	movs	r5, #0
15446	ldr	r1, .L2268+48
15447	mov	fp, r5
15448	movs	r7, #36
15449	ldrh	r8, [r3]
15450	ldr	r3, .L2268+52
15451	ldr	r2, [r1]
15452	ldr	r1, .L2268+56
15453	ldr	r6, [r3]
15454	ldr	r3, .L2268+60
15455	str	r2, [sp, #8]
15456	ldrh	r10, [r1]
15457	ldr	r3, [r3]
15458	ldr	r2, .L2268+64
15459	b	.L2230
15460.L2189:
15461	ldrb	r0, [r2, r5]	@ zero_extendqisi2
15462	ldr	r1, [sp, #4]
15463	str	r3, [sp, #28]
15464	str	r2, [sp, #24]
15465	bl	V2P_block
15466	str	r0, [sp, #20]
15467	bl	FtlBbmIsBadBlock
15468	ldr	r2, [sp, #24]
15469	ldr	r3, [sp, #28]
15470	cbnz	r0, .L2188
15471	ldr	r1, [sp, #20]
15472	mla	r0, r7, fp, r6
15473	ldr	r4, [sp, #8]
15474	lsls	r1, r1, #10
15475	str	r3, [r0, #8]
15476	str	r1, [r0, #4]
15477	mul	r1, r10, fp
15478	bic	r1, r1, #3
15479	add	r1, r1, r4
15480	str	r1, [r0, #12]
15481	add	r1, fp, #1
15482	uxth	fp, r1
15483.L2188:
15484	adds	r5, r5, #1
15485.L2230:
15486	uxth	r1, r5
15487	cmp	r8, r1
15488	bhi	.L2189
15489	cmp	fp, #0
15490	bne	.L2190
15491.L2228:
15492	ldr	r3, [sp, #4]
15493	adds	r3, r3, #1
15494	uxth	r3, r3
15495	str	r3, [sp, #4]
15496	b	.L2187
15497.L2190:
15498	movs	r7, #0
15499	movs	r2, #1
15500	mov	r1, fp
15501	mov	r0, r6
15502	bl	FlashReadPages
15503.L2191:
15504	uxth	r3, r7
15505	cmp	fp, r3
15506	bls	.L2228
15507	ldr	r3, .L2268+52
15508	mov	r8, #36
15509	mul	r8, r8, r7
15510	ldr	r3, [r3]
15511	add	r2, r3, r8
15512	ldr	r3, [r3, r8]
15513	ldr	r5, [r2, #4]
15514	ldr	r6, [r2, #12]
15515	adds	r3, r3, #1
15516	ubfx	r5, r5, #10, #16
15517	bne	.L2194
15518	mov	r10, #16
15519.L2196:
15520	ldr	r3, .L2268+52
15521	movs	r2, #1
15522	mov	r1, r2
15523	ldr	r0, [r3]
15524	add	r0, r0, r8
15525	ldr	r3, [r0, #4]
15526	adds	r3, r3, #1
15527	str	r3, [r0, #4]
15528	bl	FlashReadPages
15529	ldrh	r2, [r6]
15530	movw	r3, #65535
15531	cmp	r2, r3
15532	ldr	r3, .L2268+52
15533	ldr	r3, [r3]
15534	bne	.L2193
15535	mov	r2, #-1
15536	str	r2, [r3, r8]
15537	ldr	r3, .L2268+52
15538	ldr	r3, [r3]
15539	ldr	r3, [r3, r8]
15540	cmp	r3, r2
15541	beq	.L2195
15542.L2194:
15543	ldr	r3, .L2268+68
15544	ldr	r2, [r3]
15545	ldr	r3, [r6, #4]
15546	adds	r1, r2, #1
15547	beq	.L2197
15548	cmp	r2, r3
15549	bhi	.L2198
15550.L2197:
15551	adds	r2, r3, #1
15552	ittt	ne
15553	ldrne	r1, .L2268+68
15554	addne	r2, r3, #1
15555	strne	r2, [r1]
15556.L2198:
15557	ldrh	r2, [r6]
15558	movw	r1, #61604
15559	cmp	r2, r1
15560	beq	.L2200
15561	bhi	.L2201
15562	movw	r3, #61574
15563	cmp	r2, r3
15564	beq	.L2202
15565.L2199:
15566	adds	r7, r7, #1
15567	b	.L2191
15568.L2193:
15569	ldr	r3, [r3, r8]
15570	adds	r3, r3, #1
15571	bne	.L2194
15572	add	r10, r10, #-1
15573	uxth	r10, r10
15574	cmp	r10, #0
15575	bne	.L2196
15576.L2195:
15577	ldr	r3, .L2268+72
15578	ldrb	r1, [r3]	@ zero_extendqisi2
15579	cbnz	r1, .L2267
15580.L2226:
15581	mov	r0, r5
15582	bl	FtlFreeSysBlkQueueIn
15583	b	.L2199
15584.L2201:
15585	movw	r3, #61634
15586	cmp	r2, r3
15587	beq	.L2203
15588	movw	r3, #65535
15589	cmp	r2, r3
15590	bne	.L2199
15591.L2267:
15592	movs	r1, #0
15593	b	.L2226
15594.L2203:
15595	ldr	r3, .L2268+8
15596	ldrh	r2, [r3]
15597	ldr	r3, .L2268
15598	ldr	r3, [r3]
15599	cmp	r2, r3
15600	bls	.L2205
15601	ldr	r1, .L2268+76
15602	movw	r2, #1297
15603	ldr	r0, .L2268+80
15604	bl	printf
15605	ldr	r1, .L2268+84
15606	ldr	r0, .L2268+88
15607	bl	printf
15608.L2205:
15609	ldr	r3, [sp, #16]
15610	ldr	r2, [sp, #12]
15611	ldr	r1, [r3]
15612	ldrh	r0, [r2]
15613	ldr	r2, .L2268+12
15614	uxth	r10, r1
15615	ldr	ip, [r2]
15616	add	r3, r10, #-1
15617	sub	r10, r10, r0
15618	add	r10, r10, #-1
15619	sxth	r3, r3
15620	sxth	r10, r10
15621.L2206:
15622	cmp	r3, r10
15623	bgt	.L2212
15624	cmp	r3, #0
15625	bge	.L2245
15626	b	.L2199
15627.L2212:
15628	ldr	r2, [ip, r3, lsl #2]
15629	add	r8, ip, r3, lsl #2
15630	ldr	r4, [r6, #4]
15631	cmp	r4, r2
15632	bls	.L2207
15633	ldr	r2, [ip]
15634	cbnz	r2, .L2208
15635	cmp	r1, r0
15636	ittt	ne
15637	ldrne	r2, .L2268+8
15638	addne	r0, r0, #1
15639	strhne	r0, [r2]	@ movhi
15640.L2208:
15641	ldr	r2, .L2268+20
15642	uxth	r10, r3
15643	ldr	r0, [r2]
15644	movs	r2, #0
15645.L2209:
15646	uxth	lr, r2
15647	sxth	r1, r2
15648	cmp	r10, lr
15649	bhi	.L2210
15650	ldr	r2, [r6, #4]
15651	cmp	r3, #0
15652	str	r2, [r8]
15653	strh	r5, [r0, r3, lsl #1]	@ movhi
15654	blt	.L2199
15655	ldr	r2, .L2268+8
15656	ldrh	r0, [r2]
15657	ldr	r2, .L2268
15658	ldr	r2, [r2]
15659	subs	r2, r2, r0
15660	subs	r2, r2, #1
15661	sxth	r2, r2
15662	cmp	r3, r2
15663	bgt	.L2199
15664.L2245:
15665	ldr	r2, .L2268+8
15666	adds	r0, r0, #1
15667	strh	r0, [r2]	@ movhi
15668	ldr	r2, [r6, #4]
15669	str	r2, [ip, r3, lsl #2]
15670	ldr	r2, .L2268+20
15671.L2265:
15672	ldr	r2, [r2]
15673	strh	r5, [r2, r3, lsl #1]	@ movhi
15674	b	.L2199
15675.L2210:
15676	add	lr, ip, r1, lsl #2
15677	adds	r2, r2, #1
15678	ldr	r4, [lr, #4]
15679	add	lr, r0, r1, lsl #1
15680	ldrh	lr, [lr, #2]
15681	str	r4, [ip, r1, lsl #2]
15682	strh	lr, [r0, r1, lsl #1]	@ movhi
15683	b	.L2209
15684.L2207:
15685	subs	r3, r3, #1
15686	sxth	r3, r3
15687	b	.L2206
15688.L2269:
15689	.align	2
15690.L2268:
15691	.word	.LANCHOR65
15692	.word	.LANCHOR71
15693	.word	.LANCHOR128
15694	.word	.LANCHOR130
15695	.word	.LANCHOR62
15696	.word	.LANCHOR129
15697	.word	.LANCHOR193
15698	.word	.LANCHOR72
15699	.word	.LANCHOR209
15700	.word	.LANCHOR40
15701	.word	.LANCHOR41
15702	.word	.LANCHOR38
15703	.word	.LANCHOR106
15704	.word	.LANCHOR180
15705	.word	.LANCHOR59
15706	.word	.LANCHOR105
15707	.word	.LANCHOR47
15708	.word	.LANCHOR159
15709	.word	.LANCHOR8
15710	.word	.LANCHOR220
15711	.word	.LC5
15712	.word	.LC6
15713	.word	.LC7
15714.L2202:
15715	ldr	r8, .L2270+20
15716	ldr	r10, .L2270+28
15717	ldrh	r2, [r8]
15718	ldrh	r3, [r10]
15719	cmp	r2, r3
15720	bls	.L2215
15721	ldr	r1, .L2270
15722	mov	r2, #1344
15723	ldr	r0, .L2270+4
15724	bl	printf
15725	ldr	r1, .L2270+8
15726	ldr	r0, .L2270+12
15727	bl	printf
15728.L2215:
15729	ldr	r2, .L2270+16
15730	ldrh	lr, [r10]
15731	ldrh	ip, [r8]
15732	ldr	r0, [r2]
15733	add	r10, lr, #-1
15734	sxth	r3, r10
15735	sub	r10, r10, ip
15736.L2216:
15737	cmp	r3, r10
15738	ble	.L2221
15739	ldr	r1, [r6, #4]
15740	add	r8, r0, r3, lsl #2
15741	ldr	r2, [r0, r3, lsl #2]
15742	cmp	r1, r2
15743	bls	.L2217
15744	ldr	r2, [r0]
15745	cbnz	r2, .L2218
15746	cmp	lr, ip
15747	ittt	ne
15748	ldrne	r2, .L2270+20
15749	addne	ip, ip, #1
15750	strhne	ip, [r2]	@ movhi
15751.L2218:
15752	ldr	r2, .L2270+24
15753	uxth	r10, r3
15754	ldr	ip, [r2]
15755	movs	r2, #0
15756.L2219:
15757	uxth	lr, r2
15758	sxth	r1, r2
15759	cmp	r10, lr
15760	bhi	.L2220
15761	ldr	r2, [r6, #4]
15762	str	r2, [r8]
15763	strh	r5, [ip, r3, lsl #1]	@ movhi
15764.L2221:
15765	cmp	r3, #0
15766	blt	.L2199
15767	ldr	r2, .L2270+28
15768	ldr	ip, .L2270+20
15769	ldrh	r2, [r2]
15770	ldrh	r1, [ip]
15771	subs	r2, r2, #1
15772	subs	r2, r2, r1
15773	sxth	r2, r2
15774	cmp	r3, r2
15775	bgt	.L2199
15776	ldr	r2, [r6, #4]
15777	adds	r1, r1, #1
15778	strh	r1, [ip]	@ movhi
15779	str	r2, [r0, r3, lsl #2]
15780	ldr	r2, .L2270+24
15781	b	.L2265
15782.L2220:
15783	add	lr, r0, r1, lsl #2
15784	adds	r2, r2, #1
15785	ldr	r4, [lr, #4]
15786	add	lr, ip, r1, lsl #1
15787	ldrh	lr, [lr, #2]
15788	str	r4, [r0, r1, lsl #2]
15789	strh	lr, [ip, r1, lsl #1]	@ movhi
15790	b	.L2219
15791.L2217:
15792	subs	r3, r3, #1
15793	sxth	r3, r3
15794	b	.L2216
15795.L2200:
15796	ldr	r8, .L2270+48
15797	movw	r2, #65535
15798	ldrh	r1, [r8]
15799	cmp	r1, r2
15800	bne	.L2223
15801.L2266:
15802	strh	r5, [r8]	@ movhi
15803	str	r3, [r8, #8]
15804	b	.L2199
15805.L2223:
15806	ldrh	r0, [r8, #4]
15807	cmp	r0, r2
15808	beq	.L2224
15809	movs	r1, #1
15810	bl	FtlFreeSysBlkQueueIn
15811.L2224:
15812	ldr	r3, [r6, #4]
15813	ldr	r2, [r8, #8]
15814	cmp	r2, r3
15815	bcs	.L2225
15816	ldrh	r2, [r8]
15817	strh	r2, [r8, #4]	@ movhi
15818	b	.L2266
15819.L2225:
15820	strh	r5, [r8, #4]	@ movhi
15821	b	.L2199
15822.L2229:
15823	ldr	r3, .L2270+32
15824	ldr	r2, [r3]
15825	ldrh	r3, [r2]
15826	cbz	r3, .L2231
15827.L2234:
15828	ldr	r3, .L2270+24
15829	ldr	r4, [r3]
15830	ldrh	r2, [r4]
15831	cmp	r2, #0
15832	beq	.L2232
15833.L2233:
15834	ldr	r3, .L2270+36
15835	ldrh	r2, [r3]
15836	ldr	r3, .L2270+40
15837	ldr	r3, [r3]
15838	cmp	r2, r3
15839	bls	.L2264
15840	ldr	r1, .L2270
15841	movw	r2, #1478
15842	ldr	r0, .L2270+4
15843	bl	printf
15844	ldr	r1, .L2270+8
15845	ldr	r0, .L2270+12
15846	bl	printf
15847.L2264:
15848	movs	r0, #0
15849	add	sp, sp, #32
15850	@ sp needed
15851	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
15852.L2231:
15853	ldr	r1, .L2270+36
15854	ldrh	r1, [r1]
15855	cmp	r1, #0
15856	beq	.L2234
15857	ldr	r5, .L2270+40
15858	ldr	r0, [r5]
15859.L2235:
15860	sxth	r1, r3
15861	cmp	r1, r0
15862	bcs	.L2234
15863	ldrh	r4, [r2, r1, lsl #1]
15864	adds	r3, r3, #1
15865	cmp	r4, #0
15866	beq	.L2235
15867	ldr	r3, .L2270+44
15868	movs	r6, #0
15869	ldr	r0, [r3]
15870	mov	r3, r1
15871.L2236:
15872	ldr	r4, [r5]
15873	cmp	r3, r4
15874	bcs	.L2234
15875	ldrh	r7, [r2, r3, lsl #1]
15876	subs	r4, r3, r1
15877	strh	r7, [r2, r4, lsl #1]	@ movhi
15878	ldr	r7, [r0, r3, lsl #2]
15879	str	r7, [r0, r4, lsl #2]
15880	strh	r6, [r2, r3, lsl #1]	@ movhi
15881	adds	r3, r3, #1
15882	sxth	r3, r3
15883	b	.L2236
15884.L2232:
15885	ldr	r3, .L2270+20
15886	ldrh	r3, [r3]
15887	cmp	r3, #0
15888	beq	.L2233
15889	ldr	r5, .L2270+28
15890	ldrh	r1, [r5]
15891.L2241:
15892	sxth	r3, r2
15893	cmp	r3, r1
15894	mov	r6, r3
15895	bge	.L2233
15896	ldrh	r0, [r4, r3, lsl #1]
15897	adds	r2, r2, #1
15898	cmp	r0, #0
15899	beq	.L2241
15900	ldr	r2, .L2270+16
15901	movs	r0, #0
15902	ldr	r2, [r2]
15903.L2242:
15904	ldrh	r1, [r5]
15905	cmp	r3, r1
15906	bge	.L2233
15907	ldrh	r7, [r4, r3, lsl #1]
15908	subs	r1, r3, r6
15909	strh	r7, [r4, r1, lsl #1]	@ movhi
15910	ldr	r7, [r2, r3, lsl #2]
15911	str	r7, [r2, r1, lsl #2]
15912	adds	r1, r3, #1
15913	strh	r0, [r4, r3, lsl #1]	@ movhi
15914	sxth	r3, r1
15915	b	.L2242
15916.L2271:
15917	.align	2
15918.L2270:
15919	.word	.LANCHOR220
15920	.word	.LC5
15921	.word	.LC6
15922	.word	.LC7
15923	.word	.LANCHOR193
15924	.word	.LANCHOR71
15925	.word	.LANCHOR72
15926	.word	.LANCHOR62
15927	.word	.LANCHOR129
15928	.word	.LANCHOR128
15929	.word	.LANCHOR65
15930	.word	.LANCHOR130
15931	.word	.LANCHOR209
15932	.size	FtlScanSysBlk, .-FtlScanSysBlk
15933	.section	.text.FtlLoadSysInfo,"ax",%progbits
15934	.align	1
15935	.global	FtlLoadSysInfo
15936	.syntax unified
15937	.thumb
15938	.thumb_func
15939	.fpu softvfp
15940	.type	FtlLoadSysInfo, %function
15941FtlLoadSysInfo:
15942	@ args = 0, pretend = 0, frame = 8
15943	@ frame_needed = 0, uses_anonymous_args = 0
15944	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
15945	movs	r1, #0
15946	ldr	r8, .L2297+156
15947	ldr	r5, .L2297
15948	ldr	r3, [r8]
15949	ldr	r4, .L2297+4
15950	ldr	r10, .L2297+160
15951	ldrh	r2, [r5]
15952	ldr	r7, .L2297+8
15953	str	r3, [r4, #8]
15954	ldr	r6, .L2297+12
15955	ldr	r3, [r10]
15956	lsls	r2, r2, #1
15957	ldr	r0, [r7]
15958	str	r3, [r4, #12]
15959	bl	ftl_memset
15960	ldrh	r0, [r6]
15961	movw	r3, #65535
15962	str	r7, [sp]
15963	cmp	r0, r3
15964	bne	.L2273
15965.L2282:
15966	mov	r0, #-1
15967.L2272:
15968	add	sp, sp, #8
15969	@ sp needed
15970	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
15971.L2273:
15972	movs	r1, #1
15973	mov	fp, r4
15974	bl	FtlGetLastWrittenPage
15975	ldr	r3, .L2297+16
15976	sxth	r7, r0
15977	adds	r0, r0, #1
15978	strh	r0, [r6, #2]	@ movhi
15979.L2275:
15980	cmp	r7, #0
15981	bge	.L2278
15982	ldr	r1, .L2297+20
15983	movw	r2, #1538
15984	ldr	r0, .L2297+24
15985	bl	printf
15986	ldr	r1, .L2297+28
15987	ldr	r0, .L2297+32
15988	bl	printf
15989.L2277:
15990	ldr	r2, .L2297+36
15991	ldrh	r3, [r5]
15992	ldrh	r2, [r2]
15993	adds	r3, r3, #24
15994	cmp	r2, r3, lsl #1
15995	bcs	.L2280
15996	ldr	r1, .L2297+20
15997	movw	r2, #1540
15998	ldr	r0, .L2297+24
15999	bl	printf
16000	ldr	r1, .L2297+28
16001	ldr	r0, .L2297+32
16002	bl	printf
16003.L2280:
16004	movs	r2, #48
16005	ldr	r1, [r4, #8]
16006	ldr	r0, .L2297+40
16007	bl	ftl_memcpy
16008	ldrh	r2, [r5]
16009	ldr	r3, [sp]
16010	ldr	r1, [r4, #8]
16011	lsls	r2, r2, #1
16012	ldr	r0, [r3]
16013	adds	r1, r1, #48
16014	bl	ftl_memcpy
16015	ldrh	r1, [r5]
16016	ldr	r3, [r4, #8]
16017	lsrs	r2, r1, #3
16018	adds	r1, r1, #24
16019	lsls	r1, r1, #1
16020	adds	r2, r2, #4
16021	bic	r1, r1, #3
16022	add	r1, r1, r3
16023	ldr	r3, .L2297+44
16024	ldr	r0, [r3]
16025	bl	ftl_memcpy
16026	ldr	r3, .L2297+48
16027	ldrh	r3, [r3]
16028	cbz	r3, .L2281
16029	ldrh	r1, [r5]
16030	ldr	r3, .L2297+52
16031	ldrh	r2, [r3]
16032	lsrs	r3, r1, #3
16033	add	r3, r3, r1, lsl #1
16034	ldr	r1, [r4, #8]
16035	adds	r3, r3, #52
16036	lsls	r2, r2, #2
16037	ubfx	r3, r3, #2, #14
16038	add	r1, r1, r3, lsl #2
16039	ldr	r3, .L2297+56
16040	ldr	r0, [r3]
16041	bl	ftl_memcpy
16042.L2281:
16043	ldr	r4, .L2297+40
16044	ldr	r3, .L2297+16
16045	ldr	r2, [r4]
16046	cmp	r2, r3
16047	bne	.L2282
16048	ldr	r3, .L2297+60
16049	ldrb	r2, [r4, #10]	@ zero_extendqisi2
16050	ldrh	r5, [r4, #8]
16051	ldrh	r3, [r3]
16052	strh	r5, [r6, #6]	@ movhi
16053	cmp	r2, r3
16054	bne	.L2282
16055	ldr	r3, .L2297+64
16056	ldr	r2, .L2297+68
16057	str	r5, [r3]
16058	ldr	r3, .L2297+72
16059	ldrh	r3, [r3]
16060	muls	r3, r5, r3
16061	str	r3, [r2]
16062	ldr	r2, .L2297+76
16063	ldrh	r2, [r2]
16064	muls	r3, r2, r3
16065	ldr	r2, .L2297+80
16066	str	r3, [r2]
16067	ldr	r3, .L2297+84
16068	ldr	r6, [r3]
16069	ldr	r3, .L2297+88
16070	ldrh	r0, [r3, #6]
16071	ldr	r3, .L2297+92
16072	subs	r0, r6, r0
16073	ldrh	r1, [r3]
16074	subs	r0, r0, r5
16075	bl	__aeabi_uidiv
16076	ldr	r3, .L2297+96
16077	cmp	r5, r6
16078	strh	r0, [r3]	@ movhi
16079	bls	.L2283
16080	ldr	r1, .L2297+20
16081	movw	r2, #1567
16082	ldr	r0, .L2297+24
16083	bl	printf
16084	ldr	r1, .L2297+28
16085	ldr	r0, .L2297+32
16086	bl	printf
16087.L2283:
16088	ldrh	r2, [r4, #16]
16089	ldr	r3, .L2297+100
16090	ldrh	ip, [r4, #14]
16091	ldr	r7, .L2297+104
16092	lsrs	r1, r2, #6
16093	and	r2, r2, #63
16094	strb	r2, [r3, #6]
16095	ldrb	r2, [r4, #11]	@ zero_extendqisi2
16096	strh	r1, [r3, #2]	@ movhi
16097	ldr	r1, .L2297+108
16098	strb	r2, [r3, #8]
16099	ldrh	r2, [r4, #18]
16100	strh	ip, [r3]	@ movhi
16101	movw	r3, #65535
16102	strh	r3, [r7]	@ movhi
16103	movs	r3, #0
16104	strh	r2, [r1]	@ movhi
16105	ldrh	r2, [r4, #20]
16106	strh	r3, [r7, #2]	@ movhi
16107	strb	r3, [r7, #6]
16108	strb	r3, [r7, #8]
16109	lsrs	r5, r2, #6
16110	and	r2, r2, #63
16111	strb	r2, [r1, #6]
16112	ldrb	r2, [r4, #12]	@ zero_extendqisi2
16113	strh	r5, [r1, #2]	@ movhi
16114	ldrh	r5, [r4, #22]
16115	strb	r2, [r1, #8]
16116	ldr	r2, .L2297+112
16117	strh	r5, [r2]	@ movhi
16118	ldrh	r5, [r4, #24]
16119	lsrs	r6, r5, #6
16120	and	r5, r5, #63
16121	strb	r5, [r2, #6]
16122	ldrb	r5, [r4, #13]	@ zero_extendqisi2
16123	strh	r6, [r2, #2]	@ movhi
16124	ldr	r6, [r4, #32]
16125	strb	r5, [r2, #8]
16126	ldr	r5, .L2297+116
16127	str	r3, [r5]
16128	ldr	r5, .L2297+120
16129	str	r3, [r5]
16130	ldr	r5, .L2297+124
16131	str	r3, [r5]
16132	ldr	r5, .L2297+128
16133	str	r3, [r5]
16134	ldr	r5, .L2297+132
16135	str	r6, [r5]
16136	mov	r6, r1
16137	ldr	r5, .L2297+136
16138	str	r3, [r5]
16139	ldr	r5, .L2297+140
16140	str	r3, [r5]
16141	ldr	r5, .L2297+144
16142	ldr	lr, [r4, #40]
16143	str	r3, [r5]
16144	ldr	r3, .L2297+148
16145	ldr	r5, [r3]
16146	cmp	lr, r5
16147	mov	r5, r2
16148	it	hi
16149	strhi	lr, [r3]
16150	ldr	r3, .L2297+152
16151	ldr	r2, [r4, #36]
16152	ldr	r1, [r3]
16153	cmp	r2, r1
16154	it	hi
16155	strhi	r2, [r3]
16156	movw	r3, #65535
16157	cmp	ip, r3
16158	beq	.L2286
16159	ldr	r0, .L2297+100
16160	bl	make_superblock
16161.L2286:
16162	ldrh	r2, [r6]
16163	movw	r3, #65535
16164	cmp	r2, r3
16165	beq	.L2287
16166	ldr	r0, .L2297+108
16167	bl	make_superblock
16168.L2287:
16169	ldrh	r2, [r5]
16170	movw	r3, #65535
16171	cmp	r2, r3
16172	beq	.L2288
16173	ldr	r0, .L2297+112
16174	bl	make_superblock
16175.L2288:
16176	ldrh	r2, [r7]
16177	movw	r3, #65535
16178	cmp	r2, r3
16179	beq	.L2289
16180	ldr	r0, .L2297+104
16181	bl	make_superblock
16182.L2289:
16183	movs	r0, #0
16184	b	.L2272
16185.L2278:
16186	ldrh	r2, [r6]
16187	mov	r0, fp
16188	str	r3, [sp, #4]
16189	orr	r2, r7, r2, lsl #10
16190	str	r2, [r4, #4]
16191	ldr	r2, [r8]
16192	str	r2, [r4, #8]
16193	movs	r2, #1
16194	mov	r1, r2
16195	bl	FlashReadPages
16196	ldr	r2, [r4]
16197	ldr	r3, [sp, #4]
16198	adds	r2, r2, #1
16199	beq	.L2276
16200	ldr	r2, [r8]
16201	ldr	r2, [r2]
16202	cmp	r2, r3
16203	bne	.L2276
16204	ldr	r2, [r10]
16205	ldrh	r1, [r2]
16206	movw	r2, #61604
16207	cmp	r1, r2
16208	beq	.L2277
16209.L2276:
16210	subs	r7, r7, #1
16211	sxth	r7, r7
16212	b	.L2275
16213.L2298:
16214	.align	2
16215.L2297:
16216	.word	.LANCHOR40
16217	.word	.LANCHOR202
16218	.word	.LANCHOR84
16219	.word	.LANCHOR209
16220	.word	1179929683
16221	.word	.LANCHOR221
16222	.word	.LC5
16223	.word	.LC6
16224	.word	.LC7
16225	.word	.LANCHOR58
16226	.word	.LANCHOR81
16227	.word	.LANCHOR0
16228	.word	.LANCHOR70
16229	.word	.LANCHOR67
16230	.word	.LANCHOR195
16231	.word	.LANCHOR45
16232	.word	.LANCHOR222
16233	.word	.LANCHOR73
16234	.word	.LANCHOR53
16235	.word	.LANCHOR56
16236	.word	.LANCHOR69
16237	.word	.LANCHOR42
16238	.word	.LANCHOR75
16239	.word	.LANCHOR38
16240	.word	.LANCHOR223
16241	.word	.LANCHOR92
16242	.word	.LANCHOR204
16243	.word	.LANCHOR93
16244	.word	.LANCHOR94
16245	.word	.LANCHOR161
16246	.word	.LANCHOR162
16247	.word	.LANCHOR166
16248	.word	.LANCHOR165
16249	.word	.LANCHOR167
16250	.word	.LANCHOR168
16251	.word	.LANCHOR169
16252	.word	.LANCHOR164
16253	.word	.LANCHOR159
16254	.word	.LANCHOR160
16255	.word	.LANCHOR183
16256	.word	.LANCHOR188
16257	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
16258	.section	.text.FtlDumpBlockInfo,"ax",%progbits
16259	.align	1
16260	.global	FtlDumpBlockInfo
16261	.syntax unified
16262	.thumb
16263	.thumb_func
16264	.fpu softvfp
16265	.type	FtlDumpBlockInfo, %function
16266FtlDumpBlockInfo:
16267	@ args = 0, pretend = 0, frame = 64
16268	@ frame_needed = 0, uses_anonymous_args = 0
16269	push	{r4, r5, r6, r7, r8, r10, fp, lr}
16270	ubfx	r0, r0, #10, #16
16271	ldr	r4, .L2311
16272	sub	sp, sp, #88
16273	mov	r8, r1
16274	ldrh	r3, [r4]
16275	str	r3, [sp, #24]
16276	bl	P2V_block_in_plane
16277	ldr	r1, .L2311+4
16278	mov	r6, r0
16279	ldr	r0, .L2311+8
16280	bl	printf
16281	ldr	r3, .L2311+12
16282	mov	r1, r6
16283	ldr	r0, .L2311+16
16284	ldr	r3, [r3]
16285	ldrh	r2, [r3, r6, lsl #1]
16286	bl	printf
16287	add	r0, sp, #88
16288	strh	r6, [r0, #-48]!	@ movhi
16289	bl	make_superblock
16290	ldr	r3, .L2311+20
16291	ldrb	r5, [r3]	@ zero_extendqisi2
16292	cbz	r5, .L2300
16293	cmp	r8, #0
16294	bne	.L2309
16295	mov	r0, r6
16296	bl	ftl_get_blk_mode
16297	cmp	r0, #1
16298	mov	r5, r0
16299	bne	.L2300
16300	ldr	r3, .L2311+24
16301	ldrh	r3, [r3]
16302	str	r3, [sp, #24]
16303.L2300:
16304	movs	r6, #0
16305	ldrh	r3, [r4]
16306	ldr	r2, [sp, #24]
16307	mov	r1, r5
16308	ldr	r0, .L2311+28
16309	bl	printf
16310.L2301:
16311	ldr	r3, .L2311+32
16312	movs	r2, #0
16313	add	ip, sp, #54
16314	mov	r4, r2
16315	movw	r10, #65535
16316	mov	fp, #36
16317	ldrh	lr, [r3]
16318	ldr	r3, .L2311+36
16319	ldr	r0, [r3]
16320	ldr	r3, .L2311+40
16321	ldr	r3, [r3]
16322	str	r3, [sp, #28]
16323	ldr	r3, .L2311+44
16324	ldrh	r3, [r3]
16325	str	r3, [sp, #32]
16326	ldr	r3, .L2311+48
16327	ldr	r3, [r3]
16328	str	r3, [sp, #36]
16329	ldr	r3, .L2311+52
16330	ldrh	r8, [r3]
16331.L2302:
16332	uxth	r3, r2
16333	cmp	lr, r3
16334	bhi	.L2304
16335	ldr	fp, .L2311+56
16336	mov	r8, #0
16337	mov	r10, #36
16338	mov	r2, r5
16339	mov	r1, r4
16340	bl	FlashReadPages
16341.L2305:
16342	uxth	r3, r8
16343	cmp	r4, r3
16344	bhi	.L2306
16345	adds	r6, r6, #1
16346	ldr	r3, [sp, #24]
16347	uxth	r6, r6
16348	cmp	r3, r6
16349	bne	.L2301
16350.L2307:
16351	movs	r0, #0
16352	add	sp, sp, #88
16353	@ sp needed
16354	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
16355.L2309:
16356	movs	r5, #0
16357	b	.L2300
16358.L2304:
16359	ldrh	r3, [ip, #2]!
16360	cmp	r3, r10
16361	beq	.L2303
16362	mla	r1, fp, r4, r0
16363	ldr	r7, [sp, #28]
16364	orr	r3, r6, r3, lsl #10
16365	str	r3, [r1, #4]
16366	ldr	r3, [sp, #32]
16367	muls	r3, r4, r3
16368	bic	r3, r3, #3
16369	add	r3, r3, r7
16370	ldr	r7, [sp, #36]
16371	str	r3, [r1, #8]
16372	mul	r3, r8, r4
16373	adds	r4, r4, #1
16374	uxth	r4, r4
16375	bic	r3, r3, #3
16376	add	r3, r3, r7
16377	str	r3, [r1, #12]
16378.L2303:
16379	adds	r2, r2, #1
16380	b	.L2302
16381.L2306:
16382	ldr	r3, .L2311+36
16383	mul	r0, r10, r8
16384	ldrh	r1, [sp, #40]
16385	add	r8, r8, #1
16386	ldr	ip, [r3]
16387	add	r2, ip, r0
16388	ldr	lr, [r2, #8]
16389	ldr	r3, [r2, #12]
16390	ldr	r7, [lr, #4]
16391	str	r7, [sp, #20]
16392	ldr	r7, [lr]
16393	str	r7, [sp, #16]
16394	ldr	r7, [r3, #12]
16395	str	r7, [sp, #12]
16396	ldr	r7, [r3, #8]
16397	str	r7, [sp, #8]
16398	ldr	r7, [r3, #4]
16399	str	r7, [sp, #4]
16400	ldr	r3, [r3]
16401	str	r3, [sp]
16402	ldr	r3, [r2, #4]
16403	ldr	r2, [ip, r0]
16404	mov	r0, fp
16405	bl	printf
16406	b	.L2305
16407.L2312:
16408	.align	2
16409.L2311:
16410	.word	.LANCHOR53
16411	.word	.LANCHOR224
16412	.word	.LC45
16413	.word	.LANCHOR84
16414	.word	.LC46
16415	.word	.LANCHOR8
16416	.word	.LANCHOR54
16417	.word	.LC47
16418	.word	.LANCHOR38
16419	.word	.LANCHOR180
16420	.word	.LANCHOR105
16421	.word	.LANCHOR58
16422	.word	.LANCHOR106
16423	.word	.LANCHOR59
16424	.word	.LC48
16425	.size	FtlDumpBlockInfo, .-FtlDumpBlockInfo
16426	.section	.text.FtlScanAllBlock,"ax",%progbits
16427	.align	1
16428	.global	FtlScanAllBlock
16429	.syntax unified
16430	.thumb
16431	.thumb_func
16432	.fpu softvfp
16433	.type	FtlScanAllBlock, %function
16434FtlScanAllBlock:
16435	@ args = 0, pretend = 0, frame = 64
16436	@ frame_needed = 0, uses_anonymous_args = 0
16437	push	{r4, r5, r6, r7, r8, r10, fp, lr}
16438	sub	sp, sp, #88
16439	ldr	r6, .L2323
16440	ldr	r1, .L2323+4
16441	ldr	r0, .L2323+8
16442	bl	printf
16443	movs	r3, #0
16444	str	r3, [sp, #28]
16445.L2314:
16446	ldr	r3, .L2323+12
16447	ldrh	r0, [sp, #28]
16448	ldrh	r3, [r3]
16449	cmp	r3, r0
16450	bhi	.L2322
16451	movs	r0, #0
16452	add	sp, sp, #88
16453	@ sp needed
16454	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
16455.L2322:
16456	add	r4, sp, #88
16457	add	r7, sp, #54
16458	strh	r0, [r4, #-48]!	@ movhi
16459	movw	r10, #65535
16460	bl	ftl_get_blk_mode
16461	ldr	r3, .L2323+16
16462	mov	fp, #36
16463	ldrh	r1, [sp, #28]
16464	ldr	r2, [r3]
16465	mov	r3, r0
16466	ldr	r0, .L2323+20
16467	ldrh	r2, [r2, r1, lsl #1]
16468	bl	printf
16469	mov	r0, r4
16470	bl	make_superblock
16471	ldr	r3, .L2323+24
16472	movs	r2, #0
16473	ldr	r0, [r6]
16474	mov	r4, r2
16475	ldrh	lr, [r3]
16476	ldr	r3, .L2323+28
16477	ldr	r3, [r3]
16478	str	r3, [sp, #32]
16479	ldr	r3, .L2323+32
16480	ldrh	ip, [r3]
16481	ldr	r3, .L2323+36
16482	ldr	r3, [r3]
16483	str	r3, [sp, #36]
16484	ldr	r3, .L2323+40
16485	ldrh	r8, [r3]
16486.L2315:
16487	uxth	r3, r2
16488	cmp	lr, r3
16489	bhi	.L2317
16490	ldr	r10, .L2323+44
16491	movs	r7, #0
16492	mov	r8, #36
16493	movs	r2, #0
16494	mov	r1, r4
16495	bl	FlashReadPages
16496.L2318:
16497	uxth	r3, r7
16498	cmp	r4, r3
16499	bhi	.L2319
16500	ldr	r10, .L2323+48
16501	movs	r7, #0
16502	mov	r8, #36
16503	movs	r2, #1
16504	mov	r1, r4
16505	ldr	r0, [r6]
16506	bl	FlashReadPages
16507.L2320:
16508	uxth	r3, r7
16509	cmp	r4, r3
16510	bhi	.L2321
16511	ldr	r3, [sp, #28]
16512	adds	r3, r3, #1
16513	str	r3, [sp, #28]
16514	b	.L2314
16515.L2317:
16516	ldrh	r3, [r7, #2]!
16517	cmp	r3, r10
16518	beq	.L2316
16519	mla	r1, fp, r4, r0
16520	ldr	r5, [sp, #32]
16521	lsls	r3, r3, #10
16522	str	r3, [r1, #4]
16523	mul	r3, ip, r4
16524	bic	r3, r3, #3
16525	add	r3, r3, r5
16526	ldr	r5, [sp, #36]
16527	str	r3, [r1, #8]
16528	mul	r3, r8, r4
16529	adds	r4, r4, #1
16530	uxth	r4, r4
16531	bic	r3, r3, #3
16532	add	r3, r3, r5
16533	str	r3, [r1, #12]
16534.L2316:
16535	adds	r2, r2, #1
16536	b	.L2315
16537.L2319:
16538	mul	r2, r8, r7
16539	ldr	r0, [r6]
16540	ldrh	r1, [sp, #40]
16541	adds	r7, r7, #1
16542	add	lr, r0, r2
16543	ldr	fp, [lr, #8]
16544	ldr	r3, [lr, #12]
16545	ldr	r5, [fp, #4]
16546	str	r5, [sp, #20]
16547	ldr	r5, [fp]
16548	str	r5, [sp, #16]
16549	ldr	r5, [r3, #12]
16550	str	r5, [sp, #12]
16551	ldr	r5, [r3, #8]
16552	str	r5, [sp, #8]
16553	ldr	r5, [r3, #4]
16554	str	r5, [sp, #4]
16555	ldr	r3, [r3]
16556	str	r3, [sp]
16557	ldr	r2, [r0, r2]
16558	mov	r0, r10
16559	ldr	r3, [lr, #4]
16560	bl	printf
16561	b	.L2318
16562.L2321:
16563	mul	r2, r8, r7
16564	ldr	r0, [r6]
16565	ldrh	r1, [sp, #40]
16566	adds	r7, r7, #1
16567	add	lr, r0, r2
16568	ldr	fp, [lr, #8]
16569	ldr	r3, [lr, #12]
16570	ldr	r5, [fp, #4]
16571	str	r5, [sp, #20]
16572	ldr	r5, [fp]
16573	str	r5, [sp, #16]
16574	ldr	r5, [r3, #12]
16575	str	r5, [sp, #12]
16576	ldr	r5, [r3, #8]
16577	str	r5, [sp, #8]
16578	ldr	r5, [r3, #4]
16579	str	r5, [sp, #4]
16580	ldr	r3, [r3]
16581	str	r3, [sp]
16582	ldr	r2, [r0, r2]
16583	mov	r0, r10
16584	ldr	r3, [lr, #4]
16585	bl	printf
16586	b	.L2320
16587.L2324:
16588	.align	2
16589.L2323:
16590	.word	.LANCHOR180
16591	.word	.LANCHOR225
16592	.word	.LC45
16593	.word	.LANCHOR41
16594	.word	.LANCHOR84
16595	.word	.LC49
16596	.word	.LANCHOR38
16597	.word	.LANCHOR105
16598	.word	.LANCHOR58
16599	.word	.LANCHOR106
16600	.word	.LANCHOR59
16601	.word	.LC50
16602	.word	.LC51
16603	.size	FtlScanAllBlock, .-FtlScanAllBlock
16604	.section	.text.FtlMapTblRecovery,"ax",%progbits
16605	.align	1
16606	.global	FtlMapTblRecovery
16607	.syntax unified
16608	.thumb
16609	.thumb_func
16610	.fpu softvfp
16611	.type	FtlMapTblRecovery, %function
16612FtlMapTblRecovery:
16613	@ args = 0, pretend = 0, frame = 24
16614	@ frame_needed = 0, uses_anonymous_args = 0
16615	ldr	r3, [r0, #16]
16616	movs	r1, #0
16617	push	{r4, r5, r6, r7, r8, r10, fp, lr}
16618	sub	sp, sp, #24
16619	ldrh	fp, [r0, #6]
16620	mov	r4, r0
16621	movs	r6, #0
16622	ldr	r8, [r0, #24]
16623	str	r3, [sp, #12]
16624	ldrh	r3, [r0, #8]
16625	lsl	r2, fp, #2
16626	ldr	r10, [r0, #12]
16627	mov	r0, r8
16628	ldr	r5, .L2352
16629	str	r3, [sp, #4]
16630	bl	ftl_memset
16631	ldr	r3, .L2352+4
16632	str	r6, [r4, #32]
16633	str	r6, [r4, #28]
16634	ldr	r2, [r3]
16635	str	r3, [sp, #8]
16636	str	r2, [r5, #8]
16637	ldr	r2, .L2352+8
16638	ldr	r7, [r2]
16639	movw	r2, #65535
16640	str	r7, [r5, #12]
16641	strh	r2, [r4]	@ movhi
16642	strh	r2, [r4, #2]	@ movhi
16643	movs	r2, #1
16644	str	r2, [r4, #36]
16645.L2326:
16646	ldr	r2, [sp, #4]
16647	sxth	r3, r6
16648	cmp	r3, r2
16649	bge	.L2343
16650	ldr	r2, [sp, #4]
16651	subs	r2, r2, #1
16652	cmp	r3, r2
16653	lsl	r2, r3, #1
16654	bne	.L2327
16655	ldrh	r0, [r10, r3, lsl #1]
16656	movs	r1, #1
16657	add	r5, r10, r2
16658	str	r3, [sp, #4]
16659	bl	FtlGetLastWrittenPage
16660	ldr	r3, [sp, #12]
16661	sxth	r10, r0
16662	strh	r6, [r4]	@ movhi
16663	movs	r6, #0
16664	adds	r0, r0, #1
16665	mov	r2, r3
16666	ldr	r3, [sp, #4]
16667	strh	r0, [r4, #2]	@ movhi
16668	ldr	r3, [r2, r3, lsl #2]
16669	str	r3, [r4, #28]
16670	ldr	r3, .L2352
16671.L2328:
16672	sxth	r2, r6
16673	cmp	r2, r10
16674	ble	.L2330
16675.L2343:
16676	mov	r0, r4
16677	bl	ftl_free_no_use_map_blk
16678	ldr	r3, .L2352+12
16679	ldrh	r2, [r4, #2]
16680	ldrh	r3, [r3]
16681	cmp	r2, r3
16682	bne	.L2332
16683	mov	r0, r4
16684	bl	ftl_map_blk_alloc_new_blk
16685.L2332:
16686	mov	r0, r4
16687	bl	ftl_map_blk_gc
16688	mov	r0, r4
16689	bl	ftl_map_blk_gc
16690	movs	r0, #0
16691	add	sp, sp, #24
16692	@ sp needed
16693	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
16694.L2330:
16695	ldrh	r1, [r5]
16696	ldr	r0, .L2352
16697	str	r3, [sp, #4]
16698	orr	r2, r2, r1, lsl #10
16699	str	r2, [r3, #4]
16700	movs	r2, #1
16701	mov	r1, r2
16702	bl	FlashReadPages
16703	ldr	r3, [sp, #4]
16704	ldr	r2, [r3]
16705	adds	r2, r2, #1
16706	beq	.L2329
16707	ldrh	r2, [r7, #8]
16708	cmp	fp, r2
16709	bls	.L2329
16710	ldrh	r1, [r4, #4]
16711	ldrh	r0, [r7]
16712	cmp	r0, r1
16713	itt	eq
16714	ldreq	r1, [r3, #4]
16715	streq	r1, [r8, r2, lsl #2]
16716.L2329:
16717	adds	r6, r6, #1
16718	b	.L2328
16719.L2327:
16720	ldr	r1, [sp, #8]
16721	add	r2, r10, r2
16722	str	r2, [sp, #16]
16723	ldr	r0, .L2352
16724	ldr	r1, [r1]
16725	str	r1, [r5, #8]
16726	ldrh	r1, [r10, r3, lsl #1]
16727	ldr	r3, .L2352+12
16728	ldrh	r2, [r3]
16729	str	r3, [sp, #20]
16730	subs	r2, r2, #1
16731	orr	r2, r2, r1, lsl #10
16732	str	r2, [r5, #4]
16733	movs	r2, #1
16734	mov	r1, r2
16735	bl	FlashReadPages
16736	ldr	r2, [r5]
16737	adds	r2, r2, #1
16738	beq	.L2345
16739	ldrh	r1, [r7]
16740	ldrh	r2, [r4, #4]
16741	ldr	r3, [sp, #20]
16742	cmp	r1, r2
16743	bne	.L2345
16744	ldrh	r1, [r7, #8]
16745	movw	r2, #64245
16746	cmp	r1, r2
16747	beq	.L2334
16748.L2345:
16749	movs	r3, #0
16750.L2335:
16751	ldr	r1, .L2352+12
16752	sxth	r2, r3
16753	ldrh	r1, [r1]
16754	cmp	r2, r1
16755	bge	.L2341
16756	str	r3, [sp, #20]
16757	ldr	r3, [sp, #16]
16758	ldr	r0, .L2352
16759	ldrh	r1, [r3]
16760	orr	r2, r2, r1, lsl #10
16761	str	r2, [r5, #4]
16762	movs	r2, #1
16763	mov	r1, r2
16764	bl	FlashReadPages
16765	ldr	r2, [r5]
16766	ldr	r3, [sp, #20]
16767	adds	r2, r2, #1
16768	beq	.L2339
16769	ldrh	r2, [r7, #8]
16770	cmp	fp, r2
16771	bls	.L2339
16772	ldrh	r1, [r4, #4]
16773	ldrh	r0, [r7]
16774	cmp	r0, r1
16775	itt	eq
16776	ldreq	r1, [r5, #4]
16777	streq	r1, [r8, r2, lsl #2]
16778.L2339:
16779	adds	r3, r3, #1
16780	b	.L2335
16781.L2334:
16782	ldrh	r2, [r3]
16783	movs	r1, #0
16784	ldr	r3, [sp, #8]
16785	subs	r2, r2, #1
16786	ldr	ip, [r3]
16787.L2336:
16788	sxth	r3, r1
16789	cmp	r3, r2
16790	blt	.L2338
16791.L2341:
16792	adds	r6, r6, #1
16793	b	.L2326
16794.L2338:
16795	lsls	r0, r3, #3
16796	ldr	r3, [ip, r3, lsl #3]
16797	adds	r1, r1, #1
16798	uxth	lr, r3
16799	cmp	fp, lr
16800	itttt	hi
16801	addhi	r0, r0, ip
16802	movhi	r3, lr
16803	ldrhi	r0, [r0, #4]
16804	strhi	r0, [r8, r3, lsl #2]
16805	b	.L2336
16806.L2353:
16807	.align	2
16808.L2352:
16809	.word	.LANCHOR202
16810	.word	.LANCHOR183
16811	.word	.LANCHOR188
16812	.word	.LANCHOR54
16813	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
16814	.section	.text.FtlLoadVonderInfo,"ax",%progbits
16815	.align	1
16816	.global	FtlLoadVonderInfo
16817	.syntax unified
16818	.thumb
16819	.thumb_func
16820	.fpu softvfp
16821	.type	FtlLoadVonderInfo, %function
16822FtlLoadVonderInfo:
16823	@ args = 0, pretend = 0, frame = 0
16824	@ frame_needed = 0, uses_anonymous_args = 0
16825	push	{r3, lr}
16826	ldr	r3, .L2355
16827	ldr	r0, .L2355+4
16828	ldrh	r3, [r3]
16829	strh	r3, [r0, #10]	@ movhi
16830	movw	r3, #61574
16831	strh	r3, [r0, #4]	@ movhi
16832	ldr	r3, .L2355+8
16833	ldrh	r3, [r3]
16834	strh	r3, [r0, #8]	@ movhi
16835	ldr	r3, .L2355+12
16836	ldrh	r3, [r3]
16837	strh	r3, [r0, #6]	@ movhi
16838	ldr	r3, .L2355+16
16839	ldr	r3, [r3]
16840	str	r3, [r0, #12]
16841	ldr	r3, .L2355+20
16842	ldr	r3, [r3]
16843	str	r3, [r0, #16]
16844	ldr	r3, .L2355+24
16845	ldr	r3, [r3]
16846	str	r3, [r0, #20]
16847	ldr	r3, .L2355+28
16848	ldr	r3, [r3]
16849	str	r3, [r0, #24]
16850	bl	FtlMapTblRecovery
16851	movs	r0, #0
16852	pop	{r3, pc}
16853.L2356:
16854	.align	2
16855.L2355:
16856	.word	.LANCHOR62
16857	.word	.LANCHOR215
16858	.word	.LANCHOR71
16859	.word	.LANCHOR63
16860	.word	.LANCHOR72
16861	.word	.LANCHOR193
16862	.word	.LANCHOR192
16863	.word	.LANCHOR194
16864	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
16865	.section	.text.FtlLoadMapInfo,"ax",%progbits
16866	.align	1
16867	.global	FtlLoadMapInfo
16868	.syntax unified
16869	.thumb
16870	.thumb_func
16871	.fpu softvfp
16872	.type	FtlLoadMapInfo, %function
16873FtlLoadMapInfo:
16874	@ args = 0, pretend = 0, frame = 0
16875	@ frame_needed = 0, uses_anonymous_args = 0
16876	push	{r3, lr}
16877	bl	FtlL2PDataInit
16878	ldr	r0, .L2358
16879	bl	FtlMapTblRecovery
16880	movs	r0, #0
16881	pop	{r3, pc}
16882.L2359:
16883	.align	2
16884.L2358:
16885	.word	.LANCHOR127
16886	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
16887	.section	.text.FtlGcScanTempBlk,"ax",%progbits
16888	.align	1
16889	.global	FtlGcScanTempBlk
16890	.syntax unified
16891	.thumb
16892	.thumb_func
16893	.fpu softvfp
16894	.type	FtlGcScanTempBlk, %function
16895FtlGcScanTempBlk:
16896	@ args = 0, pretend = 0, frame = 24
16897	@ frame_needed = 0, uses_anonymous_args = 0
16898	ldr	r3, .L2387
16899	movw	r2, #65535
16900	push	{r4, r5, r6, r7, r8, r10, fp, lr}
16901	sub	sp, sp, #24
16902	mov	r5, r0
16903	ldrh	r4, [r3]
16904	str	r3, [sp, #16]
16905	cmp	r4, r2
16906	beq	.L2378
16907	cbnz	r4, .L2361
16908.L2362:
16909	bl	FtlGcPageVarInit
16910	b	.L2363
16911.L2378:
16912	movs	r4, #0
16913.L2361:
16914	ldr	r3, .L2387+4
16915	ldrh	r3, [r3]
16916	cmp	r3, r1
16917	beq	.L2362
16918.L2363:
16919	ldr	fp, .L2387+44
16920	mov	r3, #-1
16921	str	r3, [sp, #8]
16922.L2375:
16923	ldrh	r2, [r5]
16924	movw	r3, #65535
16925	movs	r0, #0
16926	strb	r0, [r5, #8]
16927	cmp	r2, r3
16928	beq	.L2364
16929.L2377:
16930	ldr	r3, .L2387+8
16931	movw	ip, #65535
16932	ldr	r0, [fp]
16933	mov	lr, #36
16934	ldrh	r8, [r3]
16935	ldr	r3, .L2387+12
16936	ldr	r3, [r3]
16937	str	r3, [sp, #12]
16938	ldr	r3, .L2387+16
16939	ldrh	r10, [r3]
16940	add	r3, r5, #16
16941	str	r3, [sp, #4]
16942	movs	r3, #0
16943	mov	r6, r3
16944.L2365:
16945	uxth	r2, r3
16946	cmp	r8, r2
16947	bhi	.L2367
16948	movs	r7, #0
16949	mov	r10, #36
16950	movs	r2, #0
16951	mov	r1, r6
16952	bl	FlashReadPages
16953.L2368:
16954	uxth	r3, r7
16955	cmp	r6, r3
16956	bhi	.L2376
16957	ldr	r3, .L2387+4
16958	adds	r4, r4, #1
16959	uxth	r4, r4
16960	ldrh	r3, [r3]
16961	cmp	r3, r4
16962	bhi	.L2377
16963	movs	r0, #0
16964	b	.L2364
16965.L2367:
16966	ldr	r1, [sp, #4]
16967	ldrh	r2, [r1], #2
16968	cmp	r2, ip
16969	str	r1, [sp, #4]
16970	beq	.L2366
16971	mla	r1, lr, r6, r0
16972	orr	r2, r4, r2, lsl #10
16973	str	r2, [r1, #4]
16974	movs	r2, #0
16975	str	r2, [r1, #8]
16976	mul	r2, r10, r6
16977	adds	r6, r6, #1
16978	uxth	r6, r6
16979	bic	r2, r2, #3
16980	mov	r7, r2
16981	ldr	r2, [sp, #12]
16982	add	r7, r7, r2
16983	str	r7, [r1, #12]
16984.L2366:
16985	adds	r3, r3, #1
16986	b	.L2365
16987.L2376:
16988	mul	r8, r10, r7
16989	ldr	r2, [fp]
16990	str	r2, [sp, #20]
16991	add	r3, r2, r8
16992	ldr	r1, [r3, #4]
16993	str	r3, [sp, #12]
16994	ubfx	r0, r1, #10, #16
16995	str	r1, [sp, #4]
16996	bl	P2V_plane
16997	ldr	r2, [sp, #20]
16998	ldr	r1, [sp, #4]
16999	ldr	r2, [r2, r8]
17000	cbnz	r2, .L2369
17001	ldr	r3, [sp, #12]
17002	movw	ip, #65535
17003	adds	r7, r7, #1
17004	ldr	r3, [r3, #12]
17005	ldrh	r2, [r3]
17006	cmp	r2, ip
17007	bne	.L2370
17008	ldr	r3, .L2387+20
17009	movs	r2, #1
17010	str	r2, [r3]
17011.L2364:
17012	ldr	r2, [sp, #16]
17013	movw	r3, #65535
17014	strb	r0, [r5, #6]
17015	mov	r1, r4
17016	strh	r4, [r5, #2]	@ movhi
17017	strh	r3, [r2]	@ movhi
17018	mov	r2, r0
17019	mov	r0, r5
17020	bl	ftl_sb_update_avl_pages
17021	ldr	r0, [sp, #8]
17022	add	sp, sp, #24
17023	@ sp needed
17024	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
17025.L2370:
17026	ldr	r2, [r3, #8]
17027	ldr	r0, [r3, #12]
17028	bl	FtlGcUpdatePage
17029	b	.L2368
17030.L2369:
17031	mov	r2, r1
17032	ldr	r0, .L2387+24
17033	ldrh	r1, [r5]
17034	bl	printf
17035	ldr	r3, .L2387+28
17036	ldrh	r2, [r5]
17037	ldr	r3, [r3]
17038	cbnz	r3, .L2371
17039	ldr	r3, .L2387+32
17040	ldrb	r3, [r3]	@ zero_extendqisi2
17041	cbz	r3, .L2372
17042.L2371:
17043	ldr	r3, .L2387+36
17044	ldr	r3, [r3]
17045	ldrh	r3, [r3, r2, lsl #1]
17046	cmp	r3, #159
17047	bls	.L2373
17048.L2372:
17049	ldr	r3, [fp]
17050	ldr	r3, [r3, r8]
17051	adds	r3, r3, #1
17052	bne	.L2374
17053.L2373:
17054	ldr	r3, [fp]
17055	add	r3, r3, r8
17056	ldr	r3, [r3, #4]
17057	str	r3, [sp, #8]
17058.L2374:
17059	ldr	r3, .L2387+40
17060	movs	r4, #0
17061	ldr	r3, [r3]
17062	strh	r4, [r3, r2, lsl #1]	@ movhi
17063	ldrh	r0, [r5]
17064	bl	INSERT_FREE_LIST
17065	movw	r3, #65535
17066	strh	r3, [r5]	@ movhi
17067	bl	FtlGcPageVarInit
17068	b	.L2375
17069.L2388:
17070	.align	2
17071.L2387:
17072	.word	.LANCHOR226
17073	.word	.LANCHOR53
17074	.word	.LANCHOR38
17075	.word	.LANCHOR106
17076	.word	.LANCHOR59
17077	.word	.LANCHOR135
17078	.word	.LC52
17079	.word	.LANCHOR28
17080	.word	.LANCHOR8
17081	.word	.LANCHOR79
17082	.word	.LANCHOR84
17083	.word	.LANCHOR180
17084	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
17085	.section	.text.FlashReadFacBbtData,"ax",%progbits
17086	.align	1
17087	.global	FlashReadFacBbtData
17088	.syntax unified
17089	.thumb
17090	.thumb_func
17091	.fpu softvfp
17092	.type	FlashReadFacBbtData, %function
17093FlashReadFacBbtData:
17094	@ args = 0, pretend = 0, frame = 48
17095	@ frame_needed = 0, uses_anonymous_args = 0
17096	push	{r4, r5, r6, r7, r8, r10, fp, lr}
17097	mov	fp, r2
17098	ldr	r2, .L2402
17099	sub	sp, sp, #48
17100	mov	r6, r1
17101	mov	r4, r0
17102	ldr	r7, .L2402+4
17103	ldrh	r3, [r2, #14]
17104	ldrh	r2, [r2, #12]
17105	smulbb	r3, r3, r2
17106	ldr	r2, [r7]
17107	uxth	r3, r3
17108	str	r2, [sp, #20]
17109	ldr	r2, .L2402+8
17110	subs	r5, r3, #1
17111	mul	r10, r6, r3
17112	uxth	r5, r5
17113	subs	r3, r3, #15
17114	ldr	r1, [r2]
17115	mov	r8, r2
17116	str	r1, [sp, #24]
17117.L2390:
17118	cmp	r3, r5
17119	ble	.L2397
17120	mov	r0, #-1
17121	b	.L2389
17122.L2397:
17123	add	r2, r5, r10
17124	add	r0, sp, #12
17125	lsls	r2, r2, #10
17126	str	r3, [sp, #4]
17127	str	r2, [sp, #16]
17128	movs	r2, #1
17129	mov	r1, r2
17130	bl	FlashReadPages
17131	ldr	r2, [sp, #12]
17132	ldr	r3, [sp, #4]
17133	adds	r2, r2, #1
17134	beq	.L2391
17135	ldr	r2, [r8]
17136	ldrh	r1, [r2]
17137	movw	r2, #61664
17138	cmp	r1, r2
17139	bne	.L2391
17140	cbz	r4, .L2398
17141	cbz	r6, .L2393
17142.L2396:
17143	mov	r2, fp
17144	ldr	r1, [r7]
17145	mov	r0, r4
17146	bl	ftl_memcpy
17147	movs	r3, #4
17148	ldr	r0, .L2402+12
17149	mov	r2, r3
17150	mov	r1, r4
17151	bl	rknand_print_hex
17152	movs	r0, #0
17153.L2389:
17154	add	sp, sp, #48
17155	@ sp needed
17156	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
17157.L2393:
17158	ldr	r1, [r7]
17159	mov	ip, #1
17160	ldr	r5, .L2402+16
17161.L2394:
17162	ldr	r0, [r5]
17163	uxth	r3, r6
17164	adds	r6, r6, #1
17165	cmp	r3, r0
17166	bcs	.L2396
17167	lsrs	r0, r3, #5
17168	and	r3, r3, #31
17169	lsl	r3, ip, r3
17170	ldr	r2, [r1, r0, lsl #2]
17171	orrs	r3, r3, r2
17172	str	r3, [r1, r0, lsl #2]
17173	b	.L2394
17174.L2391:
17175	subs	r5, r5, #1
17176	uxth	r5, r5
17177	b	.L2390
17178.L2398:
17179	mov	r0, r4
17180	b	.L2389
17181.L2403:
17182	.align	2
17183.L2402:
17184	.word	.LANCHOR15
17185	.word	.LANCHOR147
17186	.word	.LANCHOR197
17187	.word	.LC53
17188	.word	.LANCHOR149
17189	.size	FlashReadFacBbtData, .-FlashReadFacBbtData
17190	.section	.text.FlashGetBadBlockList,"ax",%progbits
17191	.align	1
17192	.global	FlashGetBadBlockList
17193	.syntax unified
17194	.thumb
17195	.thumb_func
17196	.fpu softvfp
17197	.type	FlashGetBadBlockList, %function
17198FlashGetBadBlockList:
17199	@ args = 0, pretend = 0, frame = 0
17200	@ frame_needed = 0, uses_anonymous_args = 0
17201	push	{r3, r4, r5, r6, r7, lr}
17202	mov	r5, r0
17203	ldr	r3, .L2414
17204	ldr	r6, .L2414+4
17205	ldr	r3, [r3]
17206	ldr	r0, [r6]
17207	ldrb	r4, [r3, #13]	@ zero_extendqisi2
17208	ldrh	r3, [r3, #14]
17209	smulbb	r4, r4, r3
17210	uxth	r4, r4
17211	adds	r2, r4, #7
17212	asrs	r2, r2, #3
17213	bl	FlashReadFacBbtData
17214	adds	r0, r0, #1
17215	bne	.L2405
17216.L2409:
17217	movs	r3, #0
17218.L2406:
17219	movw	r2, #65535
17220	movs	r0, #0
17221	strh	r2, [r5, r3, lsl #1]	@ movhi
17222	pop	{r3, r4, r5, r6, r7, pc}
17223.L2405:
17224	ldr	r7, [r6]
17225	movs	r2, #0
17226	lsr	ip, r4, #4
17227	mov	r3, r2
17228	subs	r4, r4, #1
17229	mov	lr, #1
17230.L2407:
17231	uxth	r1, r2
17232	cmp	r1, r4
17233	bge	.L2406
17234	lsrs	r6, r1, #5
17235	and	r0, r1, #31
17236	lsl	r0, lr, r0
17237	adds	r2, r2, #1
17238	ldr	r6, [r7, r6, lsl #2]
17239	tst	r0, r6
17240	ittt	ne
17241	addne	r0, r3, #1
17242	strhne	r1, [r5, r3, lsl #1]	@ movhi
17243	uxthne	r3, r0
17244	cmp	r3, ip
17245	bcc	.L2407
17246	b	.L2409
17247.L2415:
17248	.align	2
17249.L2414:
17250	.word	.LANCHOR18
17251	.word	.LANCHOR153
17252	.size	FlashGetBadBlockList, .-FlashGetBadBlockList
17253	.section	.text.FtlMakeBbt,"ax",%progbits
17254	.align	1
17255	.global	FtlMakeBbt
17256	.syntax unified
17257	.thumb
17258	.thumb_func
17259	.fpu softvfp
17260	.type	FtlMakeBbt, %function
17261FtlMakeBbt:
17262	@ args = 0, pretend = 0, frame = 8
17263	@ frame_needed = 0, uses_anonymous_args = 0
17264	ldr	r3, .L2436
17265	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
17266	ldr	r7, [r3]
17267	cmp	r7, #0
17268	bne	.L2417
17269	ldr	r8, .L2436+40
17270	ldr	r4, .L2436+4
17271	bl	FtlBbtMemInit
17272	sub	r10, r8, #18
17273	bl	FtlLoadFactoryBbt
17274.L2418:
17275	ldr	r3, .L2436+8
17276	ldrh	r3, [r3]
17277	cmp	r7, r3
17278	bcc	.L2424
17279	ldr	r5, .L2436+12
17280	movs	r4, #0
17281.L2425:
17282	ldrh	r3, [r5]
17283	uxth	r0, r4
17284	adds	r4, r4, #1
17285	cmp	r3, r0
17286	bhi	.L2426
17287	ldr	r4, .L2436+16
17288	movw	r6, #65535
17289	ldrh	r5, [r4, #12]
17290	subs	r5, r5, #1
17291	uxth	r5, r5
17292.L2427:
17293	ldrh	r3, [r4, #12]
17294	subs	r3, r3, #47
17295	cmp	r3, r5
17296	bgt	.L2431
17297	mov	r0, r5
17298	bl	FtlBbmIsBadBlock
17299	cmp	r0, #1
17300	beq	.L2428
17301	mov	r0, r5
17302	bl	FlashTestBlk
17303	cmp	r0, #0
17304	beq	.L2429
17305	mov	r0, r5
17306	bl	FtlBbmMapBadBlock
17307.L2428:
17308	subs	r5, r5, #1
17309	uxth	r5, r5
17310	b	.L2427
17311.L2424:
17312	ldr	r3, .L2436+20
17313	movw	r1, #65535
17314	ldrh	r2, [r10, #2]!
17315	ldr	r0, [r3]
17316	ldr	r3, .L2436+24
17317	cmp	r2, r1
17318	str	r0, [r4, #8]
17319	ldr	fp, [r3]
17320	str	r3, [sp, #4]
17321	ldr	r3, .L2436+28
17322	str	fp, [r4, #12]
17323	beq	.L2419
17324	ldrh	r6, [r3]
17325	mov	r0, r4
17326	str	r3, [sp]
17327	mla	r6, r7, r6, r2
17328	lsls	r2, r6, #10
17329	str	r2, [r4, #4]
17330	movs	r2, #1
17331	mov	r1, r2
17332	bl	FlashReadPages
17333	ldr	r3, [sp]
17334	ldr	r1, [r4, #8]
17335	ldr	r0, [r8]
17336	ldrh	r2, [r3]
17337	adds	r2, r2, #7
17338	asrs	r2, r2, #3
17339	bl	ftl_memcpy
17340.L2420:
17341	uxth	r0, r6
17342	adds	r7, r7, #1
17343	add	r8, r8, #4
17344	bl	FtlBbmMapBadBlock
17345	b	.L2418
17346.L2419:
17347	mov	r1, r7
17348	str	r3, [sp]
17349	bl	FlashGetBadBlockList
17350	ldr	r1, [r8]
17351	ldr	r0, [r4, #8]
17352	bl	FtlBbt2Bitmap
17353	ldr	r3, [sp]
17354	ldrh	r5, [r3]
17355.L2422:
17356	subs	r5, r5, #1
17357	uxth	r5, r5
17358.L2421:
17359	ldr	r3, [sp]
17360	ldrh	r0, [r3]
17361	smlabb	r0, r0, r7, r5
17362	uxth	r0, r0
17363	bl	FtlBbmIsBadBlock
17364	cmp	r0, #1
17365	beq	.L2422
17366	ldr	r3, [sp, #4]
17367	movs	r2, #16
17368	movs	r1, #0
17369	strh	r5, [r10]	@ movhi
17370	ldr	r0, [r3]
17371	bl	ftl_memset
17372	ldr	r2, [sp]
17373	movw	r3, #61664
17374	strh	r3, [fp]	@ movhi
17375	movs	r3, #0
17376	str	r3, [fp, #4]
17377	ldrh	r6, [r2]
17378	ldrh	r3, [r10]
17379	ldr	r1, [r8]
17380	ldr	r0, [r4, #8]
17381	strh	r3, [fp, #2]	@ movhi
17382	mla	r6, r7, r6, r3
17383	lsls	r3, r6, #10
17384	str	r3, [r4, #4]
17385	ldr	r3, .L2436+32
17386	ldrh	r2, [r3]
17387	lsls	r2, r2, #2
17388	bl	ftl_memcpy
17389	movs	r2, #1
17390	mov	r0, r4
17391	mov	r1, r2
17392	bl	FlashEraseBlocks
17393	movs	r3, #1
17394	mov	r0, r4
17395	mov	r2, r3
17396	mov	r1, r3
17397	bl	FlashProgPages
17398	ldr	r3, [r4]
17399	adds	r3, r3, #1
17400	bne	.L2420
17401	uxth	r0, r6
17402	bl	FtlBbmMapBadBlock
17403	b	.L2421
17404.L2426:
17405	bl	FtlBbmMapBadBlock
17406	b	.L2425
17407.L2429:
17408	ldrh	r3, [r4]
17409	cmp	r3, r6
17410	bne	.L2430
17411	strh	r5, [r4]	@ movhi
17412	b	.L2428
17413.L2430:
17414	strh	r5, [r4, #4]	@ movhi
17415.L2431:
17416	ldr	r3, .L2436+36
17417	movs	r5, #0
17418	str	r5, [r4, #8]
17419	movs	r2, #2
17420	movs	r1, #1
17421	strh	r5, [r4, #2]	@ movhi
17422	ldr	r0, [r3]
17423	ldrh	r3, [r4]
17424	lsls	r3, r3, #10
17425	str	r3, [r0, #4]
17426	ldrh	r3, [r4, #4]
17427	lsls	r3, r3, #10
17428	str	r3, [r0, #40]
17429	bl	FlashEraseBlocks
17430	ldrh	r0, [r4]
17431	bl	FtlBbmMapBadBlock
17432	ldrh	r0, [r4, #4]
17433	bl	FtlBbmMapBadBlock
17434	bl	FtlBbmTblFlush
17435	ldr	r3, [r4, #8]
17436	ldrh	r2, [r4, #4]
17437	strh	r5, [r4, #2]	@ movhi
17438	adds	r3, r3, #1
17439	str	r3, [r4, #8]
17440	ldrh	r3, [r4]
17441	strh	r2, [r4]	@ movhi
17442	strh	r3, [r4, #4]	@ movhi
17443	bl	FtlBbmTblFlush
17444.L2417:
17445	movs	r0, #0
17446	add	sp, sp, #8
17447	@ sp needed
17448	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
17449.L2437:
17450	.align	2
17451.L2436:
17452	.word	.LANCHOR77
17453	.word	.LANCHOR202
17454	.word	.LANCHOR45
17455	.word	.LANCHOR60
17456	.word	.LANCHOR75
17457	.word	.LANCHOR183
17458	.word	.LANCHOR188
17459	.word	.LANCHOR51
17460	.word	.LANCHOR123
17461	.word	.LANCHOR78
17462	.word	.LANCHOR75+28
17463	.size	FtlMakeBbt, .-FtlMakeBbt
17464	.section	.text.log2phys,"ax",%progbits
17465	.align	1
17466	.global	log2phys
17467	.syntax unified
17468	.thumb
17469	.thumb_func
17470	.fpu softvfp
17471	.type	log2phys, %function
17472log2phys:
17473	@ args = 0, pretend = 0, frame = 16
17474	@ frame_needed = 0, uses_anonymous_args = 0
17475	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
17476	ldr	r3, .L2457
17477	str	r2, [sp, #8]
17478	ldrh	r3, [r3]
17479	str	r1, [sp, #4]
17480	adds	r2, r3, #7
17481	movs	r3, #1
17482	lsls	r3, r3, r2
17483	lsr	r7, r0, r2
17484	subs	r3, r3, #1
17485	uxth	r6, r7
17486	ands	r3, r3, r0
17487	uxth	fp, r3
17488	ldr	r3, .L2457+4
17489	ldr	r3, [r3]
17490	cmp	r0, r3
17491	bcc	.L2439
17492	ldr	r1, .L2457+8
17493	mov	r2, #880
17494	ldr	r0, .L2457+12
17495	bl	printf
17496	ldr	r1, .L2457+16
17497	ldr	r0, .L2457+20
17498	bl	printf
17499.L2439:
17500	ldr	r5, .L2457+24
17501	movs	r4, #12
17502	ldr	r3, .L2457+28
17503	ldr	r1, [r5]
17504	ldrh	r2, [r3]
17505	movs	r3, #0
17506.L2440:
17507	uxth	r10, r3
17508	cmp	r10, r2
17509	bcc	.L2445
17510	bl	select_l2p_ram_region
17511	muls	r4, r0, r4
17512	ldr	r3, [r5]
17513	mov	r10, r0
17514	ldrh	r1, [r3, r4]
17515	adds	r2, r3, r4
17516	movw	r3, #65535
17517	cmp	r1, r3
17518	beq	.L2446
17519	ldr	r3, [r2, #4]
17520	cmp	r3, #0
17521	bge	.L2446
17522	bl	flush_l2p_region
17523.L2446:
17524	ldr	r3, .L2457+32
17525	ldrh	r3, [r3]
17526	cmp	r3, r6
17527	bcs	.L2447
17528	ldr	r1, .L2457+36
17529	movw	r2, #526
17530	ldr	r0, .L2457+12
17531	bl	printf
17532	ldr	r1, .L2457+16
17533	ldr	r0, .L2457+20
17534	bl	printf
17535.L2447:
17536	ldr	r3, .L2457+40
17537	uxth	r7, r7
17538	ldr	r3, [r3]
17539	ldr	r3, [r3, r7, lsl #2]
17540	cmp	r3, #0
17541	bne	.L2448
17542	ldr	r2, [r5]
17543	movs	r1, #255
17544	str	r3, [sp]
17545	adds	r0, r2, r4
17546	ldr	r2, .L2457+44
17547	ldr	r0, [r0, #8]
17548	ldrh	r2, [r2]
17549	bl	ftl_memset
17550	ldr	r2, [r5]
17551	ldr	r3, [sp]
17552	adds	r1, r2, r4
17553	strh	r6, [r2, r4]	@ movhi
17554	str	r3, [r1, #4]
17555	b	.L2441
17556.L2445:
17557	adds	r3, r3, #1
17558	mla	r0, r4, r3, r1
17559	ldrh	r0, [r0, #-12]
17560	cmp	r0, r6
17561	bne	.L2440
17562.L2441:
17563	ldr	r2, [sp, #8]
17564	movs	r3, #12
17565	ldr	r1, .L2457+24
17566	cbnz	r2, .L2442
17567	ldr	r2, [r1]
17568	mla	r3, r3, r10, r2
17569	ldr	r2, [sp, #4]
17570	ldr	r3, [r3, #8]
17571	ldr	r3, [r3, fp, lsl #2]
17572	str	r3, [r2]
17573.L2443:
17574	ldr	r2, [r1]
17575	movs	r3, #12
17576	mla	r10, r3, r10, r2
17577	ldr	r3, [r10, #4]
17578	adds	r2, r3, #1
17579	beq	.L2454
17580	adds	r3, r3, #1
17581	str	r3, [r10, #4]
17582.L2454:
17583	movs	r0, #0
17584	add	sp, sp, #16
17585	@ sp needed
17586	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
17587.L2442:
17588	ldr	r2, [r5]
17589	mla	r3, r3, r10, r2
17590	ldr	r2, [sp, #4]
17591	ldr	r0, [r2]
17592	ldr	r2, [r3, #8]
17593	str	r0, [r2, fp, lsl #2]
17594	ldr	r2, [r3, #4]
17595	orr	r2, r2, #-2147483648
17596	str	r2, [r3, #4]
17597	ldr	r3, .L2457+48
17598	strh	r6, [r3]	@ movhi
17599	b	.L2443
17600.L2448:
17601	ldr	r2, [r5]
17602	ldr	r8, .L2457+80
17603	str	r3, [sp, #12]
17604	add	r2, r2, r4
17605	ldr	r2, [r2, #8]
17606	mov	r0, r8
17607	str	r3, [r8, #4]
17608	str	r2, [r8, #8]
17609	ldr	r2, .L2457+52
17610	ldr	r2, [r2]
17611	str	r2, [r8, #12]
17612	movs	r2, #1
17613	mov	r1, r2
17614	bl	FlashReadPages
17615	ldr	r3, [r8, #12]
17616	ldrh	r2, [r3, #8]
17617	str	r3, [sp]
17618	ldr	r3, [sp, #12]
17619	cmp	r2, r6
17620	beq	.L2449
17621	mov	r2, r3
17622	mov	r1, r7
17623	ldr	r0, .L2457+56
17624	bl	printf
17625	movs	r3, #4
17626	ldr	r1, [r8, #12]
17627	mov	r2, r3
17628	ldr	r0, .L2457+60
17629	bl	rknand_print_hex
17630	ldr	r3, .L2457+32
17631	movs	r2, #4
17632	ldr	r1, .L2457+40
17633	ldr	r0, .L2457+64
17634	ldrh	r3, [r3]
17635	ldr	r1, [r1]
17636	bl	rknand_print_hex
17637	ldr	r3, .L2457+68
17638	movs	r2, #1
17639	str	r2, [r3]
17640.L2450:
17641	ldr	r3, [sp]
17642	ldrh	r3, [r3, #8]
17643	cmp	r3, r6
17644	beq	.L2451
17645	ldr	r1, .L2457+36
17646	mov	r2, #552
17647	ldr	r0, .L2457+12
17648	bl	printf
17649	ldr	r1, .L2457+16
17650	ldr	r0, .L2457+20
17651	bl	printf
17652.L2451:
17653	ldr	r3, .L2457+24
17654	movs	r1, #0
17655	ldr	r3, [r3]
17656	adds	r2, r3, r4
17657	str	r1, [r2, #4]
17658	strh	r6, [r3, r4]	@ movhi
17659	b	.L2441
17660.L2449:
17661	ldr	r2, [r8]
17662	cmp	r2, #256
17663	bne	.L2450
17664	mov	r2, r3
17665	mov	r1, r7
17666	ldr	r0, .L2457+72
17667	bl	printf
17668	ldr	r3, [r5]
17669	mov	r1, r7
17670	ldr	r0, .L2457+76
17671	add	r3, r3, r4
17672	ldr	r2, [r3, #8]
17673	bl	FtlMapWritePage
17674	b	.L2450
17675.L2458:
17676	.align	2
17677.L2457:
17678	.word	.LANCHOR57
17679	.word	.LANCHOR73
17680	.word	.LANCHOR227
17681	.word	.LC5
17682	.word	.LC6
17683	.word	.LC7
17684	.word	.LANCHOR97
17685	.word	.LANCHOR68
17686	.word	.LANCHOR67
17687	.word	.LANCHOR228
17688	.word	.LANCHOR131
17689	.word	.LANCHOR58
17690	.word	.LANCHOR98
17691	.word	.LANCHOR188
17692	.word	.LC54
17693	.word	.LC27
17694	.word	.LC55
17695	.word	.LANCHOR77
17696	.word	.LC56
17697	.word	.LANCHOR127
17698	.word	.LANCHOR202
17699	.size	log2phys, .-log2phys
17700	.section	.text.FtlProgPages,"ax",%progbits
17701	.align	1
17702	.global	FtlProgPages
17703	.syntax unified
17704	.thumb
17705	.thumb_func
17706	.fpu softvfp
17707	.type	FtlProgPages, %function
17708FtlProgPages:
17709	@ args = 0, pretend = 0, frame = 16
17710	@ frame_needed = 0, uses_anonymous_args = 0
17711	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
17712	mov	r4, r3
17713	ldr	r3, .L2479
17714	mov	r5, r0
17715	mov	r10, r1
17716	ldr	r7, [r3]
17717	mov	r8, r3
17718	cbnz	r7, .L2459
17719	ldr	r3, .L2479+4
17720	ldrb	r3, [r3]	@ zero_extendqisi2
17721	cbz	r3, .L2474
17722	ldrb	r6, [r4, #8]	@ zero_extendqisi2
17723	subs	r3, r6, #1
17724	rsbs	r6, r3, #0
17725	adcs	r6, r6, r3
17726.L2461:
17727	ldr	fp, .L2479+40
17728	mov	r2, r6
17729	ldrb	r3, [r4, #9]	@ zero_extendqisi2
17730	mov	r1, r10
17731	mov	r0, r5
17732	bl	FlashProgPages
17733.L2462:
17734	cmp	r7, r10
17735	bne	.L2472
17736	ldr	r3, .L2479+8
17737	ldrb	r2, [r4, #6]	@ zero_extendqisi2
17738	ldrh	r3, [r3]
17739	cmp	r2, r3
17740	bcc	.L2459
17741	ldr	r1, .L2479+12
17742	mov	r2, #1600
17743	ldr	r0, .L2479+16
17744	bl	printf
17745	ldr	r1, .L2479+20
17746	ldr	r0, .L2479+24
17747	bl	printf
17748.L2459:
17749	add	sp, sp, #16
17750	@ sp needed
17751	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
17752.L2474:
17753	mov	r6, r7
17754	b	.L2461
17755.L2465:
17756	ldr	r0, [r5, #4]
17757	ubfx	r0, r0, #10, #16
17758	bl	P2V_block_in_plane
17759	ldrh	r3, [r4]
17760	cmp	r3, r0
17761	bne	.L2463
17762	ldr	r1, [fp]
17763	ldrh	r0, [r4, #4]
17764	ldrh	r2, [r1, r3, lsl #1]
17765	subs	r2, r2, r0
17766	strh	r2, [r1, r3, lsl #1]	@ movhi
17767	ldr	r3, .L2479+28
17768	ldrh	r3, [r3]
17769	strh	r3, [r4, #2]	@ movhi
17770	movs	r3, #0
17771	strb	r3, [r4, #6]
17772	strh	r3, [r4, #4]	@ movhi
17773.L2463:
17774	ldrh	r3, [r4, #4]
17775	cbnz	r3, .L2464
17776	mov	r0, r4
17777	bl	allocate_new_data_superblock
17778.L2464:
17779	ldr	r2, .L2479+32
17780	ldr	r3, [r2, #96]
17781	adds	r3, r3, #1
17782	str	r3, [r2, #96]
17783	ldr	r0, [r5, #4]
17784	ubfx	r0, r0, #10, #16
17785	bl	FtlGcMarkBadPhyBlk
17786	mov	r0, r4
17787	bl	get_new_active_ppa
17788	mov	r2, r6
17789	str	r0, [r5, #4]
17790	str	r0, [sp, #12]
17791	movs	r1, #1
17792	ldrb	r3, [r4, #9]	@ zero_extendqisi2
17793	mov	r0, r5
17794	bl	FlashProgPages
17795	ldr	r3, [r8]
17796	cmp	r3, #0
17797	bne	.L2459
17798.L2472:
17799	ldr	r3, [r5]
17800	adds	r3, r3, #1
17801	beq	.L2465
17802	ldr	r3, .L2479+8
17803	ldrb	r2, [r4, #6]	@ zero_extendqisi2
17804	ldrh	r3, [r3]
17805	cmp	r2, r3
17806	bcc	.L2466
17807	ldr	r1, .L2479+12
17808	movw	r2, #1583
17809	ldr	r0, .L2479+16
17810	bl	printf
17811	ldr	r1, .L2479+20
17812	ldr	r0, .L2479+24
17813	bl	printf
17814.L2466:
17815	ldr	r3, [r5, #4]
17816	cbnz	r6, .L2467
17817.L2478:
17818	movs	r2, #1
17819	add	r1, sp, #12
17820	ldr	r0, [r5, #16]
17821	str	r3, [sp, #12]
17822	bl	log2phys
17823	ldr	r3, [r5, #12]
17824	ldr	r2, [r3, #12]
17825	ubfx	r0, r2, #10, #16
17826	str	r2, [sp, #4]
17827	bl	P2V_block_in_plane
17828	ldr	r2, [sp, #4]
17829	mov	r3, r0
17830	adds	r2, r2, #1
17831	beq	.L2469
17832	ldr	r2, [fp]
17833	ldrh	r2, [r2, r0, lsl #1]
17834	cbnz	r2, .L2470
17835	mov	r1, r0
17836	str	r0, [sp, #4]
17837	ldr	r0, .L2479+36
17838	bl	printf
17839	ldr	r3, [sp, #4]
17840.L2470:
17841	mov	r0, r3
17842	bl	decrement_vpc_count
17843.L2469:
17844	adds	r7, r7, #1
17845	adds	r5, r5, #36
17846	b	.L2462
17847.L2467:
17848	orr	r3, r3, #-2147483648
17849	b	.L2478
17850.L2480:
17851	.align	2
17852.L2479:
17853	.word	.LANCHOR77
17854	.word	.LANCHOR8
17855	.word	.LANCHOR38
17856	.word	.LANCHOR229
17857	.word	.LC5
17858	.word	.LC6
17859	.word	.LC7
17860	.word	.LANCHOR53
17861	.word	.LANCHOR138
17862	.word	.LC57
17863	.word	.LANCHOR84
17864	.size	FtlProgPages, .-FtlProgPages
17865	.section	.text.FtlCacheWriteBack,"ax",%progbits
17866	.align	1
17867	.global	FtlCacheWriteBack
17868	.syntax unified
17869	.thumb
17870	.thumb_func
17871	.fpu softvfp
17872	.type	FtlCacheWriteBack, %function
17873FtlCacheWriteBack:
17874	@ args = 0, pretend = 0, frame = 0
17875	@ frame_needed = 0, uses_anonymous_args = 0
17876	push	{r3, r4, r5, lr}
17877	ldr	r3, .L2486
17878	ldr	r4, [r3]
17879	cbnz	r4, .L2482
17880	ldr	r5, .L2486+4
17881	ldr	r0, [r5]
17882	cbz	r0, .L2482
17883	ldr	r3, .L2486+8
17884	mov	r2, r4
17885	movs	r1, #1
17886	ldr	r3, [r3]
17887	bl	FtlProgPages
17888	str	r4, [r5]
17889.L2482:
17890	movs	r0, #0
17891	pop	{r3, r4, r5, pc}
17892.L2487:
17893	.align	2
17894.L2486:
17895	.word	.LANCHOR77
17896	.word	.LANCHOR132
17897	.word	.LANCHOR230
17898	.size	FtlCacheWriteBack, .-FtlCacheWriteBack
17899	.section	.text.FtlSysFlush,"ax",%progbits
17900	.align	1
17901	.global	FtlSysFlush
17902	.syntax unified
17903	.thumb
17904	.thumb_func
17905	.fpu softvfp
17906	.type	FtlSysFlush, %function
17907FtlSysFlush:
17908	@ args = 0, pretend = 0, frame = 0
17909	@ frame_needed = 0, uses_anonymous_args = 0
17910	push	{r3, lr}
17911	ldr	r3, .L2490
17912	ldr	r3, [r3]
17913	cbnz	r3, .L2489
17914	bl	FtlCacheWriteBack
17915	bl	l2p_flush
17916	movs	r0, #1
17917	bl	FtlEctTblFlush
17918	bl	FtlVpcTblFlush
17919.L2489:
17920	movs	r0, #0
17921	pop	{r3, pc}
17922.L2491:
17923	.align	2
17924.L2490:
17925	.word	.LANCHOR77
17926	.size	FtlSysFlush, .-FtlSysFlush
17927	.section	.text.FtlDeInit,"ax",%progbits
17928	.align	1
17929	.global	FtlDeInit
17930	.syntax unified
17931	.thumb
17932	.thumb_func
17933	.fpu softvfp
17934	.type	FtlDeInit, %function
17935FtlDeInit:
17936	@ args = 0, pretend = 0, frame = 0
17937	@ frame_needed = 0, uses_anonymous_args = 0
17938	push	{r3, lr}
17939	ldr	r3, .L2494
17940	ldr	r3, [r3]
17941	cmp	r3, #1
17942	bne	.L2493
17943	bl	FtlSysFlush
17944.L2493:
17945	movs	r0, #0
17946	pop	{r3, pc}
17947.L2495:
17948	.align	2
17949.L2494:
17950	.word	.LANCHOR231
17951	.size	FtlDeInit, .-FtlDeInit
17952	.section	.text.rk_ftl_de_init,"ax",%progbits
17953	.align	1
17954	.global	rk_ftl_de_init
17955	.syntax unified
17956	.thumb
17957	.thumb_func
17958	.fpu softvfp
17959	.type	rk_ftl_de_init, %function
17960rk_ftl_de_init:
17961	@ args = 0, pretend = 0, frame = 0
17962	@ frame_needed = 0, uses_anonymous_args = 0
17963	push	{r3, lr}
17964	bl	FlashDeInit
17965	bl	FtlDeInit
17966	pop	{r3, lr}
17967	b	FlashDeInit
17968	.size	rk_ftl_de_init, .-rk_ftl_de_init
17969	.section	.text.ftl_discard,"ax",%progbits
17970	.align	1
17971	.global	ftl_discard
17972	.syntax unified
17973	.thumb
17974	.thumb_func
17975	.fpu softvfp
17976	.type	ftl_discard, %function
17977ftl_discard:
17978	@ args = 0, pretend = 0, frame = 8
17979	@ frame_needed = 0, uses_anonymous_args = 0
17980	ldr	r3, .L2512
17981	push	{r0, r1, r4, r5, r6, r7, r8, lr}
17982	mov	r5, r2
17983	adds	r2, r1, r2
17984	mov	r6, r1
17985	ldr	r3, [r3]
17986	cmp	r2, r3
17987	bhi	.L2505
17988	cmp	r5, #31
17989	bhi	.L2499
17990.L2500:
17991	movs	r0, #0
17992.L2497:
17993	add	sp, sp, #8
17994	@ sp needed
17995	pop	{r4, r5, r6, r7, r8, pc}
17996.L2499:
17997	ldr	r3, .L2512+4
17998	ldr	r3, [r3]
17999	cmp	r3, #0
18000	bne	.L2500
18001	ldr	r8, .L2512+16
18002	bl	FtlCacheWriteBack
18003	mov	r0, r6
18004	ldrh	r4, [r8]
18005	mov	r1, r4
18006	bl	__aeabi_uidiv
18007	smulbb	r3, r0, r4
18008	mov	r7, r0
18009	subs	r6, r6, r3
18010	uxth	r6, r6
18011	cbz	r6, .L2501
18012	subs	r4, r4, r6
18013	adds	r7, r7, #1
18014	cmp	r4, r5
18015	it	cs
18016	movcs	r4, r5
18017	uxth	r4, r4
18018	subs	r5, r5, r4
18019.L2501:
18020	ldr	r4, .L2512+8
18021	mov	r3, #-1
18022	ldr	r6, .L2512+12
18023	str	r3, [sp, #4]
18024.L2502:
18025	ldrh	r3, [r8]
18026	cmp	r5, r3
18027	bcs	.L2504
18028	ldr	r3, .L2512+8
18029	ldr	r2, [r3]
18030	cmp	r2, #32
18031	bls	.L2500
18032	movs	r4, #0
18033	str	r4, [r3]
18034	bl	l2p_flush
18035	bl	FtlVpcTblFlush
18036	b	.L2500
18037.L2504:
18038	movs	r2, #0
18039	mov	r1, sp
18040	mov	r0, r7
18041	bl	log2phys
18042	ldr	r3, [sp]
18043	adds	r3, r3, #1
18044	beq	.L2503
18045	ldr	r3, [r4]
18046	movs	r2, #1
18047	add	r1, sp, #4
18048	mov	r0, r7
18049	adds	r3, r3, #1
18050	str	r3, [r4]
18051	ldr	r3, [r6]
18052	adds	r3, r3, #1
18053	str	r3, [r6]
18054	bl	log2phys
18055	ldr	r0, [sp]
18056	ubfx	r0, r0, #10, #16
18057	bl	P2V_block_in_plane
18058	bl	decrement_vpc_count
18059.L2503:
18060	ldrh	r3, [r8]
18061	adds	r7, r7, #1
18062	subs	r5, r5, r3
18063	b	.L2502
18064.L2505:
18065	mov	r0, #-1
18066	b	.L2497
18067.L2513:
18068	.align	2
18069.L2512:
18070	.word	.LANCHOR69
18071	.word	.LANCHOR77
18072	.word	.LANCHOR232
18073	.word	.LANCHOR163
18074	.word	.LANCHOR56
18075	.size	ftl_discard, .-ftl_discard
18076	.section	.text.Ftlscanalldata,"ax",%progbits
18077	.align	1
18078	.global	Ftlscanalldata
18079	.syntax unified
18080	.thumb
18081	.thumb_func
18082	.fpu softvfp
18083	.type	Ftlscanalldata, %function
18084Ftlscanalldata:
18085	@ args = 0, pretend = 0, frame = 8
18086	@ frame_needed = 0, uses_anonymous_args = 0
18087	push	{r4, r5, r6, r7, r8, lr}
18088	movs	r5, #0
18089	ldr	r7, .L2528
18090	sub	sp, sp, #32
18091	movs	r1, #0
18092	ldr	r8, .L2528+24
18093	ldr	r0, .L2528+4
18094	bl	printf
18095.L2515:
18096	ldr	r3, [r7]
18097	cmp	r5, r3
18098	bcc	.L2521
18099	add	sp, sp, #32
18100	@ sp needed
18101	pop	{r4, r5, r6, r7, r8, pc}
18102.L2521:
18103	movs	r2, #0
18104	add	r1, sp, #28
18105	mov	r0, r5
18106	bl	log2phys
18107	ubfx	r3, r5, #0, #11
18108	cbnz	r3, .L2516
18109	ldr	r2, [sp, #28]
18110	mov	r1, r5
18111	mov	r0, r8
18112	bl	printf
18113.L2516:
18114	ldr	r3, [sp, #28]
18115	adds	r2, r3, #1
18116	beq	.L2518
18117	ldr	r4, .L2528+8
18118	movs	r2, #0
18119	movs	r1, #1
18120	str	r3, [r4, #4]
18121	mov	r0, r4
18122	ldr	r3, .L2528+12
18123	str	r5, [r4, #16]
18124	str	r2, [r4]
18125	ldr	r3, [r3]
18126	str	r3, [r4, #8]
18127	ldr	r3, .L2528+16
18128	ldr	r6, [r3]
18129	str	r6, [r4, #12]
18130	bl	FlashReadPages
18131	ldr	r3, [r4]
18132	cmp	r3, #256
18133	beq	.L2519
18134	adds	r3, r3, #1
18135	beq	.L2519
18136	ldr	r3, [r6, #8]
18137	cmp	r5, r3
18138	beq	.L2518
18139.L2519:
18140	ldr	r2, [r4, #8]
18141	ldr	r3, [r4, #12]
18142	ldr	r0, .L2528+20
18143	ldr	r1, [r2, #4]
18144	str	r1, [sp, #16]
18145	mov	r1, r5
18146	ldr	r2, [r2]
18147	str	r2, [sp, #12]
18148	ldr	r2, [r3, #12]
18149	str	r2, [sp, #8]
18150	ldr	r2, [r3, #8]
18151	str	r2, [sp, #4]
18152	ldr	r2, [r3, #4]
18153	str	r2, [sp]
18154	ldr	r2, [r4, #4]
18155	ldr	r3, [r3]
18156	bl	printf
18157.L2518:
18158	adds	r5, r5, #1
18159	b	.L2515
18160.L2529:
18161	.align	2
18162.L2528:
18163	.word	.LANCHOR73
18164	.word	.LC58
18165	.word	.LANCHOR202
18166	.word	.LANCHOR183
18167	.word	.LANCHOR188
18168	.word	.LC60
18169	.word	.LC59
18170	.size	Ftlscanalldata, .-Ftlscanalldata
18171	.section	.text.FtlReUsePrevPpa,"ax",%progbits
18172	.align	1
18173	.global	FtlReUsePrevPpa
18174	.syntax unified
18175	.thumb
18176	.thumb_func
18177	.fpu softvfp
18178	.type	FtlReUsePrevPpa, %function
18179FtlReUsePrevPpa:
18180	@ args = 0, pretend = 0, frame = 8
18181	@ frame_needed = 0, uses_anonymous_args = 0
18182	push	{r0, r1, r4, r5, r6, r7, r8, lr}
18183	mov	r6, r0
18184	ldr	r5, .L2540
18185	ubfx	r0, r1, #10, #16
18186	str	r1, [sp, #4]
18187	bl	P2V_block_in_plane
18188	ldr	r2, [r5]
18189	mov	r7, r0
18190	ldrh	r3, [r2, r0, lsl #1]
18191	cmp	r3, #0
18192	bne	.L2531
18193	ldr	r2, .L2540+4
18194	ldr	r4, [r2]
18195	cmp	r4, #0
18196	beq	.L2532
18197	ldr	r2, .L2540+8
18198	movw	lr, #65535
18199	ldr	ip, .L2540+32
18200	ldr	r0, .L2540+12
18201	ldr	r2, [r2]
18202	ldrh	r1, [r0]
18203	mov	r8, r0
18204	subs	r4, r4, r2
18205	asrs	r4, r4, #1
18206	mul	r4, ip, r4
18207	mov	ip, #6
18208	uxth	r4, r4
18209.L2533:
18210	uxth	r0, r3
18211	cmp	r1, r0
18212	bls	.L2532
18213	cmp	r4, r7
18214	bne	.L2534
18215	mov	r1, r4
18216	ldr	r0, .L2540+4
18217	bl	List_remove_node
18218	ldrh	r3, [r8]
18219	cbnz	r3, .L2535
18220	ldr	r1, .L2540+16
18221	movw	r2, #2070
18222	ldr	r0, .L2540+20
18223	bl	printf
18224	ldr	r1, .L2540+24
18225	ldr	r0, .L2540+28
18226	bl	printf
18227.L2535:
18228	ldrh	r3, [r8]
18229	mov	r0, r4
18230	subs	r3, r3, #1
18231	strh	r3, [r8]	@ movhi
18232	bl	INSERT_DATA_LIST
18233	ldr	r2, [r5]
18234	ldrh	r3, [r2, r7, lsl #1]
18235.L2531:
18236	adds	r3, r3, #1
18237	strh	r3, [r2, r7, lsl #1]	@ movhi
18238	b	.L2532
18239.L2534:
18240	mul	r4, ip, r4
18241	adds	r3, r3, #1
18242	ldrh	r4, [r2, r4]
18243	cmp	r4, lr
18244	bne	.L2533
18245.L2532:
18246	movs	r2, #1
18247	add	r1, sp, #4
18248	mov	r0, r6
18249	bl	log2phys
18250	add	sp, sp, #8
18251	@ sp needed
18252	pop	{r4, r5, r6, r7, r8, pc}
18253.L2541:
18254	.align	2
18255.L2540:
18256	.word	.LANCHOR84
18257	.word	.LANCHOR88
18258	.word	.LANCHOR82
18259	.word	.LANCHOR89
18260	.word	.LANCHOR233
18261	.word	.LC5
18262	.word	.LC6
18263	.word	.LC7
18264	.word	-1431655765
18265	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
18266	.section	.text.FtlRecoverySuperblock,"ax",%progbits
18267	.align	1
18268	.global	FtlRecoverySuperblock
18269	.syntax unified
18270	.thumb
18271	.thumb_func
18272	.fpu softvfp
18273	.type	FtlRecoverySuperblock, %function
18274FtlRecoverySuperblock:
18275	@ args = 0, pretend = 0, frame = 56
18276	@ frame_needed = 0, uses_anonymous_args = 0
18277	ldrh	r3, [r0]
18278	movw	r2, #65535
18279	push	{r4, r5, r6, r7, r8, r10, fp, lr}
18280	mov	r10, r0
18281	sub	sp, sp, #56
18282	cmp	r3, r2
18283	beq	.L2702
18284	ldrh	r3, [r0, #2]
18285	str	r3, [sp, #12]
18286	ldrb	r3, [r0, #6]	@ zero_extendqisi2
18287	ldr	r1, [sp, #12]
18288	str	r3, [sp, #28]
18289	ldr	r3, .L2711
18290	ldrh	r3, [r3]
18291	cmp	r3, r1
18292	mov	r3, #0
18293	bne	.L2545
18294	strh	r3, [r0, #4]	@ movhi
18295.L2709:
18296	strb	r3, [r10, #6]
18297.L2702:
18298	movs	r0, #0
18299	add	sp, sp, #56
18300	@ sp needed
18301	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
18302.L2545:
18303	ldrh	r0, [r0, #16]
18304.L2546:
18305	cmp	r0, r2
18306	uxth	r5, r3
18307	add	r3, r3, #1
18308	beq	.L2547
18309	ldrb	r1, [r10, #8]	@ zero_extendqisi2
18310	cmp	r1, #1
18311	bne	.L2548
18312	bl	FtlGetLastWrittenPage
18313	adds	r6, r0, #1
18314	mov	r4, r0
18315	beq	.L2549
18316	ldr	r3, .L2711+4
18317	ldrb	r3, [r3]	@ zero_extendqisi2
18318	cmp	r3, #0
18319	bne	.L2626
18320	ldr	r3, .L2711+8
18321	ldrh	r5, [r3, r0, lsl #1]
18322.L2550:
18323	ldr	r3, .L2711+12
18324	movw	r8, #65535
18325	mov	fp, #36
18326	ldrh	ip, [r3]
18327	ldr	r3, .L2711+16
18328	ldr	r0, [r3]
18329	ldr	r3, .L2711+20
18330	ldr	r3, [r3]
18331	str	r3, [sp, #8]
18332	ldr	r3, .L2711+24
18333	ldrh	lr, [r3]
18334	add	r3, r10, #16
18335	str	r3, [sp, #20]
18336	str	r3, [sp, #4]
18337	movs	r3, #0
18338	mov	r6, r3
18339.L2551:
18340	uxth	r2, r3
18341	cmp	ip, r2
18342	bhi	.L2555
18343	ldrb	r3, [r10, #8]	@ zero_extendqisi2
18344	cmp	r3, #1
18345	bne	.L2627
18346	ldr	r3, .L2711+4
18347	ldrb	r3, [r3]	@ zero_extendqisi2
18348	adds	r3, r3, #0
18349	it	ne
18350	movne	r3, #1
18351.L2703:
18352	str	r3, [sp, #36]
18353	mov	r1, r6
18354	ldr	r2, [sp, #36]
18355	movs	r7, #0
18356	bl	FlashReadPages
18357	ldr	r3, .L2711+28
18358	movw	fp, #65535
18359	ldr	r8, .L2711+16
18360	ldr	r3, [r3]
18361	subs	r3, r3, #1
18362	str	r3, [sp, #4]
18363.L2557:
18364	uxth	r3, r7
18365	cmp	r6, r3
18366	bhi	.L2562
18367	bne	.L2560
18368	adds	r4, r4, #1
18369	uxth	r3, r4
18370	str	r3, [sp, #8]
18371	ldr	r3, [r8]
18372	ldr	r0, [r3, #4]
18373.L2704:
18374	ubfx	r0, r0, #10, #16
18375	bl	P2V_plane
18376	ldrb	r3, [r10, #8]	@ zero_extendqisi2
18377	str	r0, [sp, #16]
18378	cmp	r3, #1
18379	bne	.L2564
18380	ldr	r2, .L2711+4
18381	ldrb	r2, [r2]	@ zero_extendqisi2
18382	cbnz	r2, .L2564
18383	ldr	r1, [sp, #8]
18384	ldr	r2, .L2711+8
18385	ldrh	r2, [r2, r1, lsl #1]
18386	str	r2, [sp, #8]
18387.L2564:
18388	ldr	r2, .L2711
18389	ldr	r1, [sp, #8]
18390	ldrh	r2, [r2]
18391	cmp	r2, r1
18392	bne	.L2565
18393	ldrh	r2, [sp, #8]
18394	strh	r2, [r10, #2]	@ movhi
18395	movs	r2, #0
18396	strb	r2, [r10, #6]
18397	strh	r2, [r10, #4]	@ movhi
18398.L2565:
18399	ldr	r2, [sp, #8]
18400	ldr	r1, [sp, #12]
18401	cmp	r2, r1
18402	bne	.L2566
18403	ldr	r2, [sp, #16]
18404	ldr	r1, [sp, #28]
18405	cmp	r2, r1
18406	bne	.L2566
18407.L2710:
18408	ldr	r1, [sp, #8]
18409	mov	r0, r10
18410	bl	ftl_sb_update_avl_pages
18411	b	.L2702
18412.L2547:
18413	uxth	r1, r3
18414	adds	r1, r1, #8
18415	ldrh	r0, [r10, r1, lsl #1]
18416	b	.L2546
18417.L2548:
18418	movs	r1, #0
18419	bl	FtlGetLastWrittenPage
18420	mov	r4, r0
18421	adds	r0, r0, #1
18422	beq	.L2549
18423.L2626:
18424	mov	r5, r4
18425	b	.L2550
18426.L2549:
18427	ldr	r3, [sp, #12]
18428	cbz	r3, .L2552
18429	ldr	r1, .L2711+32
18430	movw	r2, #2141
18431	ldr	r0, .L2711+36
18432	bl	printf
18433	ldr	r1, .L2711+40
18434	ldr	r0, .L2711+44
18435	bl	printf
18436.L2552:
18437	ldr	r3, [sp, #28]
18438	cbz	r3, .L2553
18439	cmp	r5, r3
18440	beq	.L2553
18441	ldr	r1, .L2711+32
18442	movw	r2, #2142
18443	ldr	r0, .L2711+36
18444	bl	printf
18445	ldr	r1, .L2711+40
18446	ldr	r0, .L2711+44
18447	bl	printf
18448.L2553:
18449	movs	r3, #0
18450	strh	r3, [r10, #2]	@ movhi
18451	b	.L2709
18452.L2555:
18453	ldr	r1, [sp, #4]
18454	ldrh	r2, [r1], #2
18455	cmp	r2, r8
18456	str	r1, [sp, #4]
18457	beq	.L2554
18458	mla	r1, fp, r6, r0
18459	orr	r2, r5, r2, lsl #10
18460	str	r2, [r1, #4]
18461	movs	r2, #0
18462	str	r2, [r1, #8]
18463	mul	r2, lr, r6
18464	adds	r6, r6, #1
18465	uxth	r6, r6
18466	bic	r2, r2, #3
18467	mov	r7, r2
18468	ldr	r2, [sp, #8]
18469	add	r7, r7, r2
18470	str	r7, [r1, #12]
18471.L2554:
18472	adds	r3, r3, #1
18473	b	.L2551
18474.L2627:
18475	movs	r3, #0
18476	b	.L2703
18477.L2562:
18478	movs	r3, #36
18479	ldr	r1, [r8]
18480	muls	r3, r7, r3
18481	adds	r2, r1, r3
18482	ldr	r3, [r1, r3]
18483	cbnz	r3, .L2558
18484	ldr	r2, [r2, #12]
18485	ldr	r3, [r2, #4]
18486	adds	r1, r3, #1
18487	beq	.L2559
18488	ldr	r1, .L2711+28
18489	mov	r0, r3
18490	ldr	r1, [r1]
18491	bl	ftl_cmp_data_ver
18492	cbz	r0, .L2559
18493	ldr	r1, .L2711+28
18494	adds	r3, r3, #1
18495	str	r3, [r1]
18496.L2559:
18497	ldr	r3, [r2]
18498	adds	r3, r3, #1
18499	bne	.L2561
18500.L2560:
18501	uxth	r3, r4
18502	uxth	r7, r7
18503	str	r3, [sp, #8]
18504	movs	r2, #36
18505	ldr	r3, [r8]
18506	mla	r7, r2, r7, r3
18507	ldr	r0, [r7, #4]
18508	b	.L2704
18509.L2558:
18510	ldr	r1, [r2, #4]
18511	uxth	fp, r5
18512	ldr	r0, .L2711+48
18513	bl	printf
18514	ldrh	r2, [r10]
18515	ldr	r3, .L2711+52
18516	strh	r2, [r3]	@ movhi
18517.L2561:
18518	adds	r7, r7, #1
18519	b	.L2557
18520.L2566:
18521	movw	r2, #65535
18522	cmp	fp, r2
18523	bne	.L2567
18524	cmp	r3, #0
18525	bne	.L2568
18526.L2567:
18527	ldr	r3, .L2711+56
18528	uxth	fp, r5
18529	uxth	r5, r5
18530	mov	r7, #-1
18531	mov	r6, r7
18532	ldr	r2, [r3]
18533	adds	r2, r2, #1
18534	itt	eq
18535	ldreq	r2, [sp, #4]
18536	streq	r2, [r3]
18537	ldr	r3, [r3]
18538	str	r3, [sp, #24]
18539	ldr	r3, [sp, #12]
18540	adds	r3, r3, #7
18541	cmp	r5, r3
18542	itet	gt
18543	subgt	r4, fp, #7
18544	ldrle	r4, [sp, #12]
18545	uxthgt	r4, r4
18546.L2571:
18547	cmp	r4, fp
18548	bhi	.L2586
18549	ldr	r3, .L2711+12
18550	movw	lr, #65535
18551	mov	ip, #36
18552	ldrh	r8, [r3]
18553	ldr	r3, .L2711+16
18554	ldr	r0, [r3]
18555	ldr	r3, [sp, #20]
18556	str	r3, [sp, #32]
18557	movs	r3, #0
18558	mov	r5, r3
18559	b	.L2587
18560.L2573:
18561	ldr	r1, [sp, #32]
18562	ldrh	r2, [r1], #2
18563	cmp	r2, lr
18564	str	r1, [sp, #32]
18565	beq	.L2572
18566	mla	r1, ip, r5, r0
18567	adds	r5, r5, #1
18568	orr	r2, r4, r2, lsl #10
18569	uxth	r5, r5
18570	str	r2, [r1, #4]
18571.L2572:
18572	adds	r3, r3, #1
18573.L2587:
18574	uxth	r2, r3
18575	cmp	r8, r2
18576	bhi	.L2573
18577	mov	r1, r5
18578	ldr	r2, [sp, #36]
18579	bl	FlashReadPages
18580	ldr	r2, .L2711+4
18581	movs	r1, #36
18582	ldr	r3, .L2711+56
18583	movs	r0, #0
18584	movw	ip, #65535
18585	ldrb	lr, [r2]	@ zero_extendqisi2
18586	ldr	r2, .L2711+16
18587	ldr	r3, [r3]
18588	ldr	r2, [r2]
18589	mla	r5, r1, r5, r2
18590.L2574:
18591	cmp	r5, r2
18592	bne	.L2584
18593	cbz	r0, .L2585
18594	ldr	r2, .L2711+56
18595	str	r3, [r2]
18596.L2585:
18597	adds	r4, r4, #1
18598	uxth	r4, r4
18599	b	.L2571
18600.L2712:
18601	.align	2
18602.L2711:
18603	.word	.LANCHOR53
18604	.word	.LANCHOR8
18605	.word	.LANCHOR16
18606	.word	.LANCHOR38
18607	.word	.LANCHOR180
18608	.word	.LANCHOR106
18609	.word	.LANCHOR59
18610	.word	.LANCHOR160
18611	.word	.LANCHOR234
18612	.word	.LC5
18613	.word	.LC6
18614	.word	.LC7
18615	.word	.LC61
18616	.word	.LANCHOR235
18617	.word	.LANCHOR136
18618.L2584:
18619	ldr	r1, [r2]
18620	cbnz	r1, .L2575
18621	ldr	r1, [r2, #12]
18622	ldrh	r8, [r1]
18623	cmp	r8, ip
18624	beq	.L2630
18625	ldr	r1, [r1, #4]
18626	cmp	r1, #-1
18627	beq	.L2630
18628	adds	r0, r7, #1
18629	bne	.L2632
18630	ldr	r0, .L2713
18631	ldrh	r0, [r0, r4, lsl #1]
18632	cmp	r0, ip
18633	bne	.L2577
18634	cmp	lr, #0
18635	beq	.L2632
18636.L2577:
18637	ldr	r0, [sp, #4]
18638	cmp	r0, r3
18639	it	ne
18640	movne	r7, r3
18641.L2632:
18642	movs	r0, #1
18643	b	.L2576
18644.L2575:
18645	cbz	r0, .L2578
18646	ldr	r2, .L2713+4
18647	str	r3, [r2]
18648.L2578:
18649	ldr	r3, .L2713+8
18650	ldrh	r2, [r10]
18651	strh	r2, [r3]	@ movhi
18652	ldrb	r3, [r10, #8]	@ zero_extendqisi2
18653	cbnz	r3, .L2568
18654	ldr	r3, .L2713
18655	ldrh	r2, [r3, r4, lsl #1]
18656	movw	r3, #65535
18657	cmp	r2, r3
18658	bne	.L2580
18659	adds	r1, r7, #1
18660	ldr	r3, .L2713+4
18661	beq	.L2581
18662	str	r7, [r3]
18663.L2568:
18664	ldr	fp, [sp, #12]
18665	movs	r2, #1
18666	ldr	r6, .L2713+12
18667	ldr	r3, .L2713+16
18668	strh	r2, [r3]	@ movhi
18669.L2588:
18670	ldr	r3, .L2713+20
18671	movw	ip, #65535
18672	ldr	r0, [r6]
18673	mov	lr, #36
18674	ldr	r1, [sp, #20]
18675	movs	r2, #0
18676	ldrh	r5, [r3]
18677	ldr	r3, .L2713+24
18678	str	r2, [sp, #24]
18679	ldrb	r7, [r3]	@ zero_extendqisi2
18680.L2589:
18681	uxth	r3, r2
18682	cmp	r3, r5
18683	bcc	.L2592
18684	ldr	r2, [sp, #36]
18685	ldr	r1, [sp, #24]
18686	bl	FlashReadPages
18687	movs	r3, #0
18688.L2708:
18689	str	r3, [sp, #32]
18690	ldr	r2, [sp, #24]
18691	ldrh	r3, [sp, #32]
18692	cmp	r2, r3
18693	bhi	.L2620
18694	ldrb	r3, [r10, #8]	@ zero_extendqisi2
18695	add	fp, fp, #1
18696	uxth	fp, fp
18697	cmp	r3, #1
18698	bne	.L2621
18699	ldr	r3, .L2713+24
18700	ldrb	r3, [r3]	@ zero_extendqisi2
18701	cbz	r3, .L2621
18702	ldr	r3, .L2713+28
18703	ldrh	r3, [r3]
18704	cmp	r3, fp
18705	bne	.L2621
18706	ldr	r3, [sp, #8]
18707	cmp	r3, fp
18708	beq	.L2597
18709.L2621:
18710	ldr	r3, .L2713+32
18711	ldrh	r3, [r3]
18712	cmp	r3, fp
18713	bne	.L2588
18714	ldr	r2, .L2713+20
18715	movw	r0, #65535
18716	movs	r3, #0
18717	strh	fp, [r10, #2]	@ movhi
18718	strh	r3, [r10, #4]	@ movhi
18719	ldrh	r2, [r2]
18720.L2622:
18721	uxth	r1, r3
18722	cmp	r1, r2
18723	bcs	.L2702
18724	ldr	r1, [sp, #20]
18725	ldrh	r4, [r1], #2
18726	cmp	r4, r0
18727	str	r1, [sp, #20]
18728	add	r1, r3, #1
18729	bne	.L2709
18730	mov	r3, r1
18731	b	.L2622
18732.L2581:
18733	ldr	r2, [sp, #4]
18734	ldr	r1, [sp, #24]
18735	cmp	r2, r1
18736	itet	eq
18737	ldreq	r2, [r3]
18738	movne	r2, r1
18739	addeq	r2, r2, #-1
18740.L2705:
18741	str	r2, [r3]
18742	b	.L2568
18743.L2580:
18744	ldr	r3, [sp, #4]
18745	cmp	r6, r3
18746	beq	.L2583
18747	adds	r2, r6, #1
18748	beq	.L2568
18749	ldr	r3, .L2713+4
18750	str	r6, [r3]
18751	b	.L2568
18752.L2583:
18753	ldr	r2, .L2713+4
18754	ldr	r1, [sp, #4]
18755	ldr	r3, [r2]
18756	cmp	r1, r3
18757	beq	.L2568
18758	subs	r3, r3, #1
18759	str	r3, [r2]
18760	b	.L2568
18761.L2630:
18762	mov	r1, r3
18763	mov	r3, r6
18764.L2576:
18765	mov	r6, r3
18766	adds	r2, r2, #36
18767	mov	r3, r1
18768	b	.L2574
18769.L2586:
18770	mov	r2, #-1
18771	ldr	r3, .L2713+4
18772	b	.L2705
18773.L2592:
18774	ldrh	r3, [r1], #2
18775	cmp	r3, ip
18776	beq	.L2590
18777	ldr	r4, [sp, #24]
18778	orr	r3, fp, r3, lsl #10
18779	mla	r4, lr, r4, r0
18780	str	r3, [r4, #4]
18781	ldrb	r8, [r10, #8]	@ zero_extendqisi2
18782	cmp	r8, #1
18783	bne	.L2591
18784	cbz	r7, .L2591
18785	orr	r3, r3, #-2147483648
18786	str	r3, [r4, #4]
18787.L2591:
18788	ldr	r3, [sp, #24]
18789	adds	r3, r3, #1
18790	uxth	r3, r3
18791	str	r3, [sp, #24]
18792.L2590:
18793	adds	r2, r2, #1
18794	b	.L2589
18795.L2620:
18796	ldr	r3, [sp, #32]
18797	movs	r5, #36
18798	ldr	r8, [r6]
18799	muls	r5, r3, r5
18800	add	r7, r8, r5
18801	ldr	r4, [r7, #4]
18802	ubfx	r0, r4, #10, #16
18803	str	r4, [sp, #52]
18804	bl	P2V_plane
18805	ldr	r3, [sp, #12]
18806	cmp	fp, r3
18807	bcc	.L2594
18808	bne	.L2595
18809	ldr	r3, [sp, #28]
18810	cmp	r3, r0
18811	bhi	.L2594
18812.L2595:
18813	ldr	r3, [sp, #8]
18814	cmp	fp, r3
18815	bne	.L2596
18816	ldr	r3, [sp, #16]
18817	cmp	r3, r0
18818	beq	.L2597
18819.L2596:
18820	ldr	r3, [r8, r5]
18821	adds	r3, r3, #1
18822	beq	.L2598
18823	ldr	r3, [r7, #12]
18824	movw	r2, #61589
18825	ldrh	r1, [r3]
18826	cmp	r1, r2
18827	beq	.L2599
18828	ldrh	r0, [r10]
18829.L2706:
18830	bl	decrement_vpc_count
18831	b	.L2594
18832.L2599:
18833	ldr	r2, [r3, #4]
18834	str	r2, [sp, #4]
18835	adds	r2, r2, #1
18836	beq	.L2600
18837	ldr	r2, .L2713+36
18838	ldr	r0, [sp, #4]
18839	ldr	r1, [r2]
18840	bl	ftl_cmp_data_ver
18841	cbz	r0, .L2600
18842	ldr	r1, [sp, #4]
18843	adds	r1, r1, #1
18844	str	r1, [r2]
18845.L2600:
18846	ldr	r4, [r3, #8]
18847	add	r1, sp, #48
18848	ldr	r3, [r3, #12]
18849	movs	r2, #0
18850	mov	r0, r4
18851	str	r3, [sp, #44]
18852	bl	log2phys
18853	ldr	r3, .L2713+4
18854	ldr	r1, [r3]
18855	adds	r3, r1, #1
18856	beq	.L2601
18857	ldr	r0, [sp, #4]
18858	bl	ftl_cmp_data_ver
18859	cmp	r0, #0
18860	beq	.L2601
18861	ldr	r3, [sp, #44]
18862	adds	r7, r3, #1
18863	beq	.L2602
18864	ldr	r0, [r6]
18865	movs	r2, #0
18866	movs	r1, #1
18867	add	r0, r0, r5
18868	str	r3, [r0, #4]
18869	ldr	r7, [r0, #12]
18870	bl	FlashReadPages
18871	ldr	r2, [r6]
18872	ldr	r1, [r2, r5]
18873	adds	r3, r2, r5
18874	adds	r1, r1, #1
18875	bne	.L2603
18876.L2604:
18877	mov	r3, #-1
18878	str	r3, [sp, #44]
18879.L2611:
18880	ldr	r7, [sp, #44]
18881	adds	r0, r7, #1
18882	beq	.L2594
18883.L2625:
18884	ubfx	r0, r7, #10, #16
18885	bl	P2V_block_in_plane
18886	ldr	r3, .L2713+40
18887	mov	r4, r0
18888	ldrh	r3, [r3]
18889	cmp	r3, r0
18890	bhi	.L2616
18891	ldr	r1, .L2713+44
18892	movw	r2, #2425
18893	ldr	r0, .L2713+48
18894	bl	printf
18895	ldr	r1, .L2713+52
18896	ldr	r0, .L2713+56
18897	bl	printf
18898.L2616:
18899	ldr	r3, .L2713+60
18900	ldr	r3, [r3]
18901	ldrh	r3, [r3, r4, lsl #1]
18902	cmp	r3, #0
18903	beq	.L2617
18904	mov	r0, r4
18905	b	.L2706
18906.L2602:
18907	ldr	r3, [sp, #52]
18908	ldr	r2, [sp, #48]
18909	cmp	r2, r3
18910	bne	.L2594
18911	movs	r2, #1
18912	add	r1, sp, #44
18913	mov	r0, r4
18914	bl	log2phys
18915.L2594:
18916	ldr	r3, [sp, #32]
18917	adds	r3, r3, #1
18918	b	.L2708
18919.L2603:
18920	ldr	r1, [r7, #8]
18921	cmp	r4, r1
18922	bne	.L2604
18923	ldr	r8, [r7, #4]
18924	ldr	r0, .L2713+4
18925	mov	r1, r8
18926	ldr	r0, [r0]
18927	bl	ftl_cmp_data_ver
18928	cmp	r0, #0
18929	beq	.L2604
18930	ldr	r1, [sp, #48]
18931	ldr	r0, [sp, #52]
18932	cmp	r1, r0
18933	bne	.L2606
18934.L2609:
18935	ldr	r1, [sp, #44]
18936	mov	r0, r4
18937	bl	FtlReUsePrevPpa
18938	b	.L2604
18939.L2714:
18940	.align	2
18941.L2713:
18942	.word	.LANCHOR120
18943	.word	.LANCHOR136
18944	.word	.LANCHOR235
18945	.word	.LANCHOR180
18946	.word	.LANCHOR236
18947	.word	.LANCHOR38
18948	.word	.LANCHOR8
18949	.word	.LANCHOR54
18950	.word	.LANCHOR53
18951	.word	.LANCHOR160
18952	.word	.LANCHOR40
18953	.word	.LANCHOR234
18954	.word	.LC5
18955	.word	.LC6
18956	.word	.LC7
18957	.word	.LANCHOR84
18958.L2606:
18959	ldr	r0, [sp, #44]
18960	cmp	r1, r0
18961	beq	.L2604
18962	adds	r0, r1, #1
18963	beq	.L2607
18964	str	r1, [r3, #4]
18965	movs	r2, #0
18966	movs	r1, #1
18967	mov	r0, r3
18968	ldr	r7, [r3, #12]
18969	bl	FlashReadPages
18970.L2608:
18971	ldr	r3, [r6]
18972	ldr	r3, [r3, r5]
18973	adds	r3, r3, #1
18974	beq	.L2609
18975	ldr	r3, [r7, #4]
18976	ldr	r2, .L2715
18977	mov	r1, r3
18978	ldr	r0, [r2]
18979	bl	ftl_cmp_data_ver
18980	cmp	r0, #0
18981	beq	.L2609
18982	mov	r1, r3
18983	mov	r0, r8
18984	bl	ftl_cmp_data_ver
18985	cmp	r0, #0
18986	beq	.L2604
18987	b	.L2609
18988.L2607:
18989	str	r1, [r2, r5]
18990	b	.L2608
18991.L2601:
18992	ldr	r3, [sp, #52]
18993	ldr	r2, [sp, #48]
18994	cmp	r2, r3
18995	beq	.L2611
18996	movs	r2, #1
18997	add	r1, sp, #52
18998	mov	r0, r4
18999	bl	log2phys
19000	ldr	r7, [sp, #48]
19001	adds	r5, r7, #1
19002	beq	.L2611
19003	ldr	r3, [sp, #44]
19004	cmp	r7, r3
19005	beq	.L2625
19006	ubfx	r0, r7, #10, #16
19007	bl	P2V_block_in_plane
19008	ldr	r3, .L2715+4
19009	ldrh	r3, [r3]
19010	cmp	r3, r0
19011	beq	.L2615
19012	ldr	r3, .L2715+8
19013	ldrh	r3, [r3]
19014	cmp	r3, r0
19015	beq	.L2615
19016	ldr	r3, .L2715+12
19017	ldrh	r3, [r3]
19018	cmp	r3, r0
19019	bne	.L2611
19020.L2615:
19021	ldr	r0, [r6]
19022	movs	r2, #0
19023	movs	r1, #1
19024	str	r7, [r0, #4]
19025	ldr	r5, [r0, #12]
19026	bl	FlashReadPages
19027	ldr	r3, [r6]
19028	ldr	r3, [r3]
19029	adds	r3, r3, #1
19030	beq	.L2611
19031	ldr	r1, [r5, #4]
19032	ldr	r0, [sp, #4]
19033	bl	ftl_cmp_data_ver
19034	cmp	r0, #0
19035	bne	.L2611
19036	movs	r2, #1
19037	add	r1, sp, #48
19038	mov	r0, r4
19039	bl	log2phys
19040	b	.L2611
19041.L2617:
19042	mov	r1, r4
19043	ldr	r0, .L2715+16
19044	bl	printf
19045	b	.L2594
19046.L2598:
19047	ldrh	r3, [r10]
19048	mov	r1, r4
19049	ldr	r2, .L2715+20
19050	ldr	r0, .L2715+24
19051	strh	r3, [r2]	@ movhi
19052	ldr	r2, [sp, #4]
19053	bl	printf
19054	ldr	r2, .L2715+28
19055	ldr	r3, [r2]
19056	cmp	r3, #31
19057	bhi	.L2618
19058	ldr	r0, [sp, #52]
19059	ldr	r1, .L2715+32
19060	str	r0, [r1, r3, lsl #2]
19061	adds	r3, r3, #1
19062	str	r3, [r2]
19063.L2618:
19064	ldrh	r0, [r10]
19065	bl	decrement_vpc_count
19066	ldr	r3, .L2715
19067	ldr	r2, [r3]
19068	adds	r1, r2, #1
19069	bne	.L2619
19070	ldr	r2, [sp, #4]
19071.L2707:
19072	str	r2, [r3]
19073	b	.L2594
19074.L2619:
19075	ldr	r1, [sp, #4]
19076	cmp	r1, r2
19077	bcs	.L2594
19078	mov	r2, r1
19079	b	.L2707
19080.L2597:
19081	ldrb	r3, [sp, #16]	@ zero_extendqisi2
19082	ldr	r2, [sp, #16]
19083	strb	r3, [r10, #6]
19084	ldrh	r3, [sp, #8]
19085	strh	r3, [r10, #2]	@ movhi
19086	b	.L2710
19087.L2716:
19088	.align	2
19089.L2715:
19090	.word	.LANCHOR136
19091	.word	.LANCHOR92
19092	.word	.LANCHOR93
19093	.word	.LANCHOR94
19094	.word	.LC62
19095	.word	.LANCHOR235
19096	.word	.LC63
19097	.word	.LANCHOR237
19098	.word	.LANCHOR238
19099	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
19100	.section	.text.FtlGcFreeTempBlock,"ax",%progbits
19101	.align	1
19102	.global	FtlGcFreeTempBlock
19103	.syntax unified
19104	.thumb
19105	.thumb_func
19106	.fpu softvfp
19107	.type	FtlGcFreeTempBlock, %function
19108FtlGcFreeTempBlock:
19109	@ args = 0, pretend = 0, frame = 16
19110	@ frame_needed = 0, uses_anonymous_args = 0
19111	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
19112	ldr	r3, .L2740
19113	ldr	r3, [r3]
19114	cbz	r3, .L2718
19115.L2723:
19116	movs	r0, #0
19117.L2717:
19118	add	sp, sp, #16
19119	@ sp needed
19120	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
19121.L2718:
19122	ldr	r0, .L2740+4
19123	movw	r3, #65535
19124	ldr	r5, .L2740+8
19125	ldrh	r6, [r0]
19126	mov	r4, r0
19127	cmp	r6, r3
19128	beq	.L2720
19129	ldr	r3, .L2740+12
19130	ldrh	r1, [r3]
19131	bl	FtlGcScanTempBlk
19132	str	r0, [sp, #12]
19133	adds	r0, r0, #1
19134	beq	.L2720
19135	ldr	r3, .L2740+16
19136	ldr	r2, [r3]
19137	ldrh	r3, [r2, r6, lsl #1]
19138	cmp	r3, #4
19139	bls	.L2721
19140	subs	r3, r3, #5
19141	movs	r0, #1
19142	strh	r3, [r2, r6, lsl #1]	@ movhi
19143	bl	FtlEctTblFlush
19144.L2721:
19145	ldr	r3, [r5]
19146	cbnz	r3, .L2722
19147	ldr	r2, .L2740+20
19148	ldr	r0, [sp, #12]
19149	ldr	r3, [r2, #96]
19150	ubfx	r0, r0, #10, #16
19151	adds	r3, r3, #1
19152	str	r3, [r2, #96]
19153	bl	FtlBbmMapBadBlock
19154	bl	FtlBbmTblFlush
19155.L2722:
19156	movs	r3, #0
19157	movs	r0, #1
19158	str	r3, [r5]
19159	b	.L2717
19160.L2720:
19161	ldrh	r2, [r4]
19162	movs	r3, #0
19163	str	r3, [r5]
19164	movw	r3, #65535
19165	cmp	r2, r3
19166	beq	.L2723
19167	ldr	r6, .L2740+12
19168	bl	FtlCacheWriteBack
19169	ldrb	r0, [r4, #7]	@ zero_extendqisi2
19170	ldrh	r2, [r6]
19171	ldr	r5, .L2740+24
19172	muls	r2, r0, r2
19173	ldrh	r1, [r5]
19174	cmp	r1, r2
19175	beq	.L2724
19176	ldr	r1, .L2740+28
19177	movs	r2, #163
19178	ldr	r0, .L2740+32
19179	bl	printf
19180	ldr	r1, .L2740+36
19181	ldr	r0, .L2740+40
19182	bl	printf
19183.L2724:
19184	ldrh	r6, [r6]
19185	ldrb	r3, [r4, #7]	@ zero_extendqisi2
19186	ldr	r2, .L2740+44
19187	ldrh	r0, [r4]
19188	ldr	fp, .L2740+84
19189	smulbb	r3, r3, r6
19190	ldr	r1, [r2]
19191	movs	r6, #0
19192	str	r2, [sp, #4]
19193	strh	r3, [r1, r0, lsl #1]	@ movhi
19194	ldr	r1, .L2740+48
19195	ldrh	r3, [r5]
19196	ldr	r0, [r1]
19197	add	r3, r3, r0
19198	str	r3, [r1]
19199.L2725:
19200	ldrh	r2, [r5]
19201	uxth	r3, r6
19202	cmp	r2, r3
19203	bhi	.L2729
19204	movw	r0, #65535
19205	bl	decrement_vpc_count
19206	ldr	r3, .L2740+52
19207	ldrb	r3, [r3]	@ zero_extendqisi2
19208	cbz	r3, .L2730
19209	ldrh	r1, [r4]
19210	ldr	r0, .L2740+56
19211	bl	printf
19212.L2730:
19213	ldr	r3, [sp, #4]
19214	ldrh	r0, [r4]
19215	ldr	r3, [r3]
19216	ldrh	r3, [r3, r0, lsl #1]
19217	cmp	r3, #0
19218	beq	.L2731
19219	bl	INSERT_DATA_LIST
19220.L2732:
19221	ldr	r3, .L2740+60
19222	movw	r6, #65535
19223	strh	r6, [r4]	@ movhi
19224	movs	r4, #0
19225	strh	r4, [r5]	@ movhi
19226	strh	r4, [r3]	@ movhi
19227	bl	l2p_flush
19228	bl	FtlVpcTblFlush
19229	ldr	r3, .L2740+64
19230	strh	r6, [r3]	@ movhi
19231	ldr	r3, .L2740+68
19232	ldrh	r2, [r3]
19233	ldr	r3, .L2740+72
19234	ldrh	r3, [r3]
19235	add	r3, r3, r3, lsl #1
19236	cmp	r2, r3, asr #2
19237	ble	.L2723
19238	ldr	r3, .L2740+76
19239	movs	r2, #20
19240	mov	r0, r4
19241	strh	r2, [r3]	@ movhi
19242	b	.L2717
19243.L2729:
19244	uxth	r3, r6
19245	movs	r7, #12
19246	ldr	r2, [fp]
19247	muls	r7, r3, r7
19248	ldr	r3, .L2740+80
19249	ldr	r8, [r3]
19250	add	r10, r8, r7
19251	ldr	r1, [r10, #8]
19252	cmp	r1, r2
19253	bcc	.L2726
19254	ldr	r1, .L2740+28
19255	movs	r2, #168
19256	ldr	r0, .L2740+32
19257	bl	printf
19258	ldr	r1, .L2740+36
19259	ldr	r0, .L2740+40
19260	bl	printf
19261.L2726:
19262	movs	r2, #0
19263	add	r1, sp, #12
19264	ldr	r0, [r10, #8]
19265	bl	log2phys
19266	ldr	r2, [sp, #12]
19267	ldr	r0, [r8, r7]
19268	cmp	r0, r2
19269	bne	.L2727
19270	ubfx	r0, r0, #10, #16
19271	bl	P2V_block_in_plane
19272	movs	r2, #1
19273	mov	r7, r0
19274	add	r1, r10, #4
19275	ldr	r0, [r10, #8]
19276	bl	log2phys
19277	mov	r0, r7
19278.L2739:
19279	bl	decrement_vpc_count
19280.L2728:
19281	adds	r6, r6, #1
19282	b	.L2725
19283.L2727:
19284	ldr	r3, [r10, #4]
19285	cmp	r2, r3
19286	beq	.L2728
19287	ldrh	r0, [r4]
19288	b	.L2739
19289.L2731:
19290	bl	INSERT_FREE_LIST
19291	b	.L2732
19292.L2741:
19293	.align	2
19294.L2740:
19295	.word	.LANCHOR77
19296	.word	.LANCHOR94
19297	.word	.LANCHOR135
19298	.word	.LANCHOR53
19299	.word	.LANCHOR79
19300	.word	.LANCHOR138
19301	.word	.LANCHOR111
19302	.word	.LANCHOR239
19303	.word	.LC5
19304	.word	.LC6
19305	.word	.LC7
19306	.word	.LANCHOR84
19307	.word	.LANCHOR161
19308	.word	.LANCHOR8
19309	.word	.LC64
19310	.word	.LANCHOR110
19311	.word	.LANCHOR204
19312	.word	.LANCHOR89
19313	.word	.LANCHOR223
19314	.word	.LANCHOR176
19315	.word	.LANCHOR112
19316	.word	.LANCHOR73
19317	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
19318	.section	.text.FtlGcPageRecovery,"ax",%progbits
19319	.align	1
19320	.global	FtlGcPageRecovery
19321	.syntax unified
19322	.thumb
19323	.thumb_func
19324	.fpu softvfp
19325	.type	FtlGcPageRecovery, %function
19326FtlGcPageRecovery:
19327	@ args = 0, pretend = 0, frame = 0
19328	@ frame_needed = 0, uses_anonymous_args = 0
19329	push	{r3, r4, r5, lr}
19330	ldr	r4, .L2744
19331	ldr	r5, .L2744+4
19332	ldrh	r1, [r4]
19333	mov	r0, r5
19334	bl	FtlGcScanTempBlk
19335	ldrh	r2, [r5, #2]
19336	ldrh	r3, [r4]
19337	cmp	r2, r3
19338	bcc	.L2742
19339	ldr	r0, .L2744+8
19340	bl	FtlMapBlkWriteDumpData
19341	movs	r0, #0
19342	bl	FtlGcFreeTempBlock
19343	ldr	r3, .L2744+12
19344	movs	r2, #0
19345	str	r2, [r3]
19346.L2742:
19347	pop	{r3, r4, r5, pc}
19348.L2745:
19349	.align	2
19350.L2744:
19351	.word	.LANCHOR53
19352	.word	.LANCHOR94
19353	.word	.LANCHOR127
19354	.word	.LANCHOR135
19355	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
19356	.section	.text.FtlPowerLostRecovery,"ax",%progbits
19357	.align	1
19358	.global	FtlPowerLostRecovery
19359	.syntax unified
19360	.thumb
19361	.thumb_func
19362	.fpu softvfp
19363	.type	FtlPowerLostRecovery, %function
19364FtlPowerLostRecovery:
19365	@ args = 0, pretend = 0, frame = 0
19366	@ frame_needed = 0, uses_anonymous_args = 0
19367	push	{r3, r4, r5, lr}
19368	movs	r4, #0
19369	ldr	r5, .L2747
19370	ldr	r3, .L2747+4
19371	mov	r0, r5
19372	str	r4, [r3]
19373	bl	FtlRecoverySuperblock
19374	mov	r0, r5
19375	ldr	r5, .L2747+8
19376	bl	FtlSlcSuperblockCheck
19377	mov	r0, r5
19378	bl	FtlRecoverySuperblock
19379	mov	r0, r5
19380	bl	FtlSlcSuperblockCheck
19381	bl	FtlGcPageRecovery
19382	movw	r0, #65535
19383	bl	decrement_vpc_count
19384	mov	r0, r4
19385	pop	{r3, r4, r5, pc}
19386.L2748:
19387	.align	2
19388.L2747:
19389	.word	.LANCHOR92
19390	.word	.LANCHOR237
19391	.word	.LANCHOR93
19392	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
19393	.section	.text.FtlSysBlkInit,"ax",%progbits
19394	.align	1
19395	.global	FtlSysBlkInit
19396	.syntax unified
19397	.thumb
19398	.thumb_func
19399	.fpu softvfp
19400	.type	FtlSysBlkInit, %function
19401FtlSysBlkInit:
19402	@ args = 0, pretend = 0, frame = 0
19403	@ frame_needed = 0, uses_anonymous_args = 0
19404	push	{r3, r4, r5, r6, r7, lr}
19405	movs	r3, #0
19406	ldr	r4, .L2758
19407	movw	r5, #65535
19408	strh	r3, [r4]	@ movhi
19409	ldr	r3, .L2758+4
19410	strh	r5, [r3]	@ movhi
19411	ldr	r3, .L2758+8
19412	ldrh	r0, [r3]
19413	bl	FtlFreeSysBlkQueueInit
19414	bl	FtlScanSysBlk
19415	ldr	r3, .L2758+12
19416	ldrh	r3, [r3]
19417	cmp	r3, r5
19418	mov	r5, r4
19419	bne	.L2750
19420.L2752:
19421	mov	r4, #-1
19422.L2749:
19423	mov	r0, r4
19424	pop	{r3, r4, r5, r6, r7, pc}
19425.L2750:
19426	bl	FtlLoadSysInfo
19427	mov	r4, r0
19428	cmp	r0, #0
19429	bne	.L2752
19430	bl	FtlLoadMapInfo
19431	bl	FtlLoadVonderInfo
19432	bl	Ftl_load_ext_data
19433	bl	FtlLoadEctTbl
19434	bl	FtlFreeSysBLkSort
19435	bl	SupperBlkListInit
19436	bl	FtlPowerLostRecovery
19437	movs	r0, #1
19438	bl	FtlUpdateVaildLpn
19439	ldr	r3, .L2758+16
19440	movs	r0, #12
19441	ldrh	r2, [r3]
19442	ldr	r3, .L2758+20
19443	ldr	r1, [r3]
19444	mov	r3, r4
19445.L2753:
19446	cmp	r3, r2
19447	blt	.L2755
19448	ldrh	r3, [r5]
19449	cmp	r3, #0
19450	beq	.L2756
19451.L2754:
19452	ldr	r3, .L2758+24
19453	ldr	r1, [r3]
19454	ldr	r3, .L2758+28
19455	ldrh	r0, [r3]
19456	ldrh	r5, [r3, #4]
19457	ldrh	r2, [r1, r0, lsl #1]
19458	subs	r2, r2, r5
19459	ldr	r5, .L2758+32
19460	strh	r2, [r1, r0, lsl #1]	@ movhi
19461	ldrh	r2, [r5]
19462	strh	r2, [r3, #2]	@ movhi
19463	movs	r2, #0
19464	strh	r2, [r3, #4]	@ movhi
19465	strb	r2, [r3, #6]
19466	ldr	r3, .L2758+36
19467	ldrh	r6, [r3]
19468	ldrh	r7, [r3, #4]
19469	ldrh	r0, [r1, r6, lsl #1]
19470	subs	r0, r0, r7
19471	strh	r0, [r1, r6, lsl #1]	@ movhi
19472	strb	r2, [r3, #6]
19473	ldrh	r1, [r5]
19474	strh	r2, [r3, #4]	@ movhi
19475	ldr	r2, .L2758+40
19476	strh	r1, [r3, #2]	@ movhi
19477	ldrh	r3, [r2, #30]
19478	adds	r3, r3, #1
19479	strh	r3, [r2, #30]	@ movhi
19480	bl	l2p_flush
19481	bl	FtlVpcTblFlush
19482.L2757:
19483	bl	FtlVpcTblFlush
19484	b	.L2749
19485.L2755:
19486	mla	r6, r0, r3, r1
19487	ldr	r6, [r6, #4]
19488	cmp	r6, #0
19489	blt	.L2754
19490	adds	r3, r3, #1
19491	b	.L2753
19492.L2756:
19493	bl	l2p_flush
19494	b	.L2757
19495.L2759:
19496	.align	2
19497.L2758:
19498	.word	.LANCHOR236
19499	.word	.LANCHOR235
19500	.word	.LANCHOR39
19501	.word	.LANCHOR209
19502	.word	.LANCHOR68
19503	.word	.LANCHOR97
19504	.word	.LANCHOR84
19505	.word	.LANCHOR92
19506	.word	.LANCHOR53
19507	.word	.LANCHOR93
19508	.word	.LANCHOR81
19509	.size	FtlSysBlkInit, .-FtlSysBlkInit
19510	.section	.text.FtlLowFormat,"ax",%progbits
19511	.align	1
19512	.global	FtlLowFormat
19513	.syntax unified
19514	.thumb
19515	.thumb_func
19516	.fpu softvfp
19517	.type	FtlLowFormat, %function
19518FtlLowFormat:
19519	@ args = 0, pretend = 0, frame = 24
19520	@ frame_needed = 0, uses_anonymous_args = 0
19521	ldr	r3, .L2791
19522	push	{r4, r5, r6, r7, r8, r10, fp, lr}
19523	sub	sp, sp, #24
19524	ldr	r4, [r3]
19525	cmp	r4, #0
19526	bne	.L2762
19527	ldr	r5, .L2791+4
19528	mov	r1, r4
19529	ldr	r3, .L2791+8
19530	ldr	r6, .L2791+12
19531	ldrh	r2, [r5]
19532	ldr	r0, [r3]
19533	lsls	r2, r2, #2
19534	bl	ftl_memset
19535	ldrh	r2, [r5]
19536	mov	r1, r4
19537	ldr	r3, .L2791+16
19538	ldr	r5, .L2791+20
19539	lsls	r2, r2, #2
19540	ldr	r0, [r3]
19541	bl	ftl_memset
19542	ldr	r3, .L2791+24
19543	ldrh	r0, [r6]
19544	str	r4, [r5]
19545	str	r4, [r3]
19546	bl	FtlFreeSysBlkQueueInit
19547	bl	FtlLoadBbt
19548	cbz	r0, .L2763
19549	bl	FtlMakeBbt
19550.L2763:
19551	ldr	r3, .L2791+28
19552	ldr	r2, .L2791+32
19553	ldr	ip, .L2791+112
19554	ldrh	r1, [r3]
19555	ldr	r4, [r2]
19556	ldr	r2, .L2791+36
19557	str	r3, [sp, #12]
19558	lsls	r1, r1, #7
19559	ldr	r7, [r2]
19560	movs	r2, #0
19561.L2764:
19562	uxth	r3, r2
19563	adds	r2, r2, #1
19564	cmp	r3, r1
19565	blt	.L2765
19566	ldr	r3, .L2791+40
19567	movs	r7, #0
19568	ldr	fp, .L2791+116
19569	ldrh	r4, [r3]
19570	mov	r8, r3
19571	mov	r10, fp
19572.L2766:
19573	ldrh	r3, [fp]
19574	cmp	r3, r4
19575	bhi	.L2767
19576	ldr	r4, .L2791+44
19577	subs	r3, r7, #2
19578	ldrh	r1, [r4]
19579	cmp	r3, r1, lsl #1
19580	bgt	.L2768
19581.L2772:
19582	movs	r7, #0
19583	mov	r6, r7
19584.L2769:
19585	ldrh	r3, [r8]
19586	uxth	r0, r7
19587	adds	r7, r7, #1
19588	cmp	r3, r0
19589	bhi	.L2773
19590	ldrh	r2, [r10]
19591	ldr	r3, .L2791+48
19592	ldrh	r4, [r4]
19593	ldr	r7, .L2791+52
19594	str	r2, [r3]
19595	ldr	r3, .L2791+56
19596	mov	r1, r4
19597	ldr	r3, [r3]
19598	mov	r0, r3
19599	str	r3, [sp, #16]
19600	bl	__aeabi_uidiv
19601	ldr	r1, .L2791+60
19602	ubfx	r3, r0, #5, #16
19603	add	r2, r3, #36
19604	mov	fp, r0
19605	str	r0, [r7]
19606	strh	r2, [r1]	@ movhi
19607	movs	r2, #24
19608	muls	r2, r4, r2
19609	str	r3, [sp, #4]
19610	str	r1, [sp, #8]
19611	cmp	r6, r2
19612	ble	.L2774
19613	ldr	r3, [sp, #16]
19614	mov	r1, r4
19615	subs	r0, r3, r6
19616	bl	__aeabi_uidiv
19617	ldr	r3, [sp, #8]
19618	str	r0, [r7]
19619	lsrs	r0, r0, #5
19620	adds	r0, r0, #24
19621	strh	r0, [r3]	@ movhi
19622.L2774:
19623	ldr	r3, .L2791+64
19624	ldr	r3, [r3]
19625	cmp	r3, #1
19626	bne	.L2775
19627	ldr	r2, .L2791+60
19628	mov	r1, r4
19629	mov	r0, r6
19630	ldrh	r3, [r2]
19631	str	r2, [sp, #20]
19632	str	r3, [sp, #16]
19633	bl	__aeabi_uidiv
19634	ldr	r3, [sp, #16]
19635	ldr	r2, [sp, #20]
19636	uxtah	r0, r3, r0
19637	add	r3, r3, r0, asr #2
19638	strh	r3, [r2]	@ movhi
19639.L2775:
19640	ldr	r3, .L2791+68
19641	ldrb	r3, [r3]	@ zero_extendqisi2
19642	cbz	r3, .L2776
19643	ldr	r2, .L2791+60
19644	mov	r1, r4
19645	mov	r0, r6
19646	ldrh	r3, [r2]
19647	str	r2, [sp, #20]
19648	str	r3, [sp, #16]
19649	bl	__aeabi_uidiv
19650	ldr	r3, [sp, #16]
19651	ldr	r2, [sp, #20]
19652	uxtah	r0, r3, r0
19653	add	r3, r3, r0, asr #2
19654	strh	r3, [r2]	@ movhi
19655.L2776:
19656	ldr	r3, .L2791+72
19657	ldrh	r3, [r3]
19658	cbz	r3, .L2778
19659	ldr	r2, .L2791+60
19660	ldrh	r1, [r2]
19661	add	r1, r1, r3, lsr #1
19662	strh	r1, [r2]	@ movhi
19663	mul	r1, r4, r3
19664	cmp	r6, r1
19665	bge	.L2778
19666	ldr	r1, [sp, #4]
19667	adds	r3, r3, #32
19668	str	fp, [r7]
19669	add	r1, r1, r3
19670	strh	r1, [r2]	@ movhi
19671.L2778:
19672	ldr	r3, [sp, #8]
19673	ldr	r6, .L2791+76
19674	ldrh	r2, [r3]
19675	ldr	r3, [r7]
19676	subs	r3, r3, r2
19677	muls	r4, r3, r4
19678	ldr	r3, .L2791+80
19679	ldrh	r3, [r3]
19680	str	r4, [r6]
19681	muls	r4, r3, r4
19682	ldr	r3, [sp, #12]
19683	ldrh	r3, [r3]
19684	str	r4, [r7]
19685	ldr	r7, .L2791+84
19686	muls	r4, r3, r4
19687	ldr	r3, .L2791+88
19688	str	r4, [r3]
19689	movw	r4, #65535
19690	bl	FtlBbmTblFlush
19691	ldrh	r2, [r10]
19692	movs	r1, #0
19693	ldr	r10, .L2791+120
19694	lsls	r2, r2, #1
19695	ldr	r0, [r10]
19696	bl	ftl_memset
19697	ldr	r2, .L2791+92
19698	movs	r3, #0
19699	strh	r3, [r7, #2]	@ movhi
19700	movs	r1, #255
19701	strb	r3, [r7, #6]
19702	str	r3, [r2]
19703	ldr	r2, .L2791+96
19704	strh	r3, [r7]	@ movhi
19705	strh	r3, [r2, #2]	@ movhi
19706	strb	r3, [r2, #6]
19707	strb	r3, [r2, #8]
19708	movs	r3, #1
19709	strh	r4, [r2]	@ movhi
19710	ldrh	r2, [r8]
19711	mov	r8, r10
19712	strb	r3, [r7, #8]
19713	mov	r10, r7
19714	ldr	r3, .L2791+100
19715	lsrs	r2, r2, #3
19716	ldr	r0, [r3]
19717	bl	ftl_memset
19718.L2780:
19719	mov	r0, r10
19720	bl	make_superblock
19721	ldrb	r3, [r7, #7]	@ zero_extendqisi2
19722	ldrh	r2, [r7]
19723	cmp	r3, #0
19724	bne	.L2781
19725	ldr	r3, [r8]
19726	strh	r4, [r3, r2, lsl #1]	@ movhi
19727	ldrh	r3, [r7]
19728	adds	r3, r3, #1
19729	strh	r3, [r7]	@ movhi
19730	b	.L2780
19731.L2765:
19732	mvns	r0, r3
19733	orr	r0, r3, r0, lsl #16
19734	str	r0, [r4, r3, lsl #2]
19735	str	ip, [r7, r3, lsl #2]
19736	b	.L2764
19737.L2767:
19738	mov	r0, r4
19739	movs	r1, #1
19740	bl	FtlLowFormatEraseBlock
19741	adds	r4, r4, #1
19742	add	r7, r7, r0
19743	uxth	r7, r7
19744	uxth	r4, r4
19745	b	.L2766
19746.L2768:
19747	mov	r0, r7
19748	bl	__aeabi_uidiv
19749	ldr	r3, .L2791+104
19750	ldr	r3, [r3]
19751	add	r0, r0, r3
19752	uxth	r0, r0
19753	bl	FtlSysBlkNumInit
19754	ldrh	r0, [r6]
19755	bl	FtlFreeSysBlkQueueInit
19756	ldrh	r6, [r8]
19757.L2770:
19758	ldrh	r3, [r10]
19759	cmp	r3, r6
19760	bls	.L2772
19761	mov	r0, r6
19762	movs	r1, #1
19763	adds	r6, r6, #1
19764	bl	FtlLowFormatEraseBlock
19765	uxth	r6, r6
19766	b	.L2770
19767.L2773:
19768	movs	r1, #0
19769	bl	FtlLowFormatEraseBlock
19770	add	r6, r6, r0
19771	uxth	r6, r6
19772	b	.L2769
19773.L2781:
19774	ldr	r3, [r5]
19775	ldrh	r1, [r7, #4]
19776	ldr	r4, .L2791+108
19777	str	r3, [r7, #12]
19778	adds	r3, r3, #1
19779	str	r3, [r5]
19780	ldr	r3, [r8]
19781	mov	r10, r4
19782	strh	r1, [r3, r2, lsl #1]	@ movhi
19783	movs	r3, #0
19784	strh	r3, [r4, #2]	@ movhi
19785	strb	r3, [r4, #6]
19786	ldrh	r3, [r7]
19787	movw	r7, #65535
19788	adds	r3, r3, #1
19789	strh	r3, [r4]	@ movhi
19790	movs	r3, #1
19791	strb	r3, [r4, #8]
19792.L2782:
19793	mov	r0, r10
19794	bl	make_superblock
19795	ldrb	r3, [r4, #7]	@ zero_extendqisi2
19796	ldrh	r2, [r4]
19797	cmp	r3, #0
19798	bne	.L2783
19799	ldr	r3, [r8]
19800	strh	r7, [r3, r2, lsl #1]	@ movhi
19801	ldrh	r3, [r4]
19802	adds	r3, r3, #1
19803	strh	r3, [r4]	@ movhi
19804	b	.L2782
19805.L2792:
19806	.align	2
19807.L2791:
19808	.word	.LANCHOR77
19809	.word	.LANCHOR67
19810	.word	.LANCHOR195
19811	.word	.LANCHOR39
19812	.word	.LANCHOR131
19813	.word	.LANCHOR159
19814	.word	.LANCHOR160
19815	.word	.LANCHOR56
19816	.word	.LANCHOR186
19817	.word	.LANCHOR187
19818	.word	.LANCHOR40
19819	.word	.LANCHOR38
19820	.word	.LANCHOR74
19821	.word	.LANCHOR73
19822	.word	.LANCHOR42
19823	.word	.LANCHOR223
19824	.word	.LANCHOR28
19825	.word	.LANCHOR8
19826	.word	.LANCHOR49
19827	.word	.LANCHOR222
19828	.word	.LANCHOR53
19829	.word	.LANCHOR92
19830	.word	.LANCHOR69
19831	.word	.LANCHOR101
19832	.word	.LANCHOR204
19833	.word	.LANCHOR0
19834	.word	.LANCHOR66
19835	.word	.LANCHOR93
19836	.word	168778952
19837	.word	.LANCHOR41
19838	.word	.LANCHOR84
19839.L2783:
19840	ldr	r3, [r5]
19841	ldrh	r1, [r4, #4]
19842	str	r3, [r4, #12]
19843	adds	r3, r3, #1
19844	str	r3, [r5]
19845	movw	r4, #65535
19846	ldr	r3, [r8]
19847	strh	r1, [r3, r2, lsl #1]	@ movhi
19848	ldr	r3, .L2793
19849	strh	r4, [r3]	@ movhi
19850	bl	FtlFreeSysBlkQueueOut
19851	ldr	r3, .L2793+4
19852	movs	r2, #0
19853	strh	r2, [r3, #2]	@ movhi
19854	ldr	r2, [r6]
19855	strh	r0, [r3]	@ movhi
19856	strh	r4, [r3, #4]	@ movhi
19857	strh	r2, [r3, #6]	@ movhi
19858	ldr	r2, [r5]
19859	str	r2, [r3, #8]
19860	adds	r2, r2, #1
19861	str	r2, [r5]
19862	bl	FtlVpcTblFlush
19863	bl	FtlSysBlkInit
19864	cbnz	r0, .L2762
19865	ldr	r3, .L2793+8
19866	movs	r2, #1
19867	str	r2, [r3]
19868.L2762:
19869	movs	r0, #0
19870	add	sp, sp, #24
19871	@ sp needed
19872	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
19873.L2794:
19874	.align	2
19875.L2793:
19876	.word	.LANCHOR94
19877	.word	.LANCHOR209
19878	.word	.LANCHOR231
19879	.size	FtlLowFormat, .-FtlLowFormat
19880	.section	.text.Ftl_get_new_temp_ppa,"ax",%progbits
19881	.align	1
19882	.global	Ftl_get_new_temp_ppa
19883	.syntax unified
19884	.thumb
19885	.thumb_func
19886	.fpu softvfp
19887	.type	Ftl_get_new_temp_ppa, %function
19888Ftl_get_new_temp_ppa:
19889	@ args = 0, pretend = 0, frame = 0
19890	@ frame_needed = 0, uses_anonymous_args = 0
19891	push	{r3, r4, r5, lr}
19892	movw	r3, #65535
19893	ldr	r4, .L2798
19894	ldrh	r2, [r4]
19895	cmp	r2, r3
19896	beq	.L2796
19897	ldrh	r3, [r4, #4]
19898	cbnz	r3, .L2797
19899.L2796:
19900	bl	FtlCacheWriteBack
19901	movs	r0, #0
19902	movs	r5, #0
19903	bl	FtlGcFreeTempBlock
19904	ldr	r0, .L2798
19905	strb	r5, [r4, #8]
19906	bl	allocate_data_superblock
19907	ldr	r3, .L2798+4
19908	strh	r5, [r3]	@ movhi
19909	ldr	r3, .L2798+8
19910	strh	r5, [r3]	@ movhi
19911	bl	l2p_flush
19912	mov	r0, r5
19913	bl	FtlEctTblFlush
19914	bl	FtlVpcTblFlush
19915.L2797:
19916	ldr	r0, .L2798
19917	pop	{r3, r4, r5, lr}
19918	b	get_new_active_ppa
19919.L2799:
19920	.align	2
19921.L2798:
19922	.word	.LANCHOR94
19923	.word	.LANCHOR110
19924	.word	.LANCHOR111
19925	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
19926	.section	.text.Ftl_gc_temp_data_write_back,"ax",%progbits
19927	.align	1
19928	.global	Ftl_gc_temp_data_write_back
19929	.syntax unified
19930	.thumb
19931	.thumb_func
19932	.fpu softvfp
19933	.type	Ftl_gc_temp_data_write_back, %function
19934Ftl_gc_temp_data_write_back:
19935	@ args = 0, pretend = 0, frame = 0
19936	@ frame_needed = 0, uses_anonymous_args = 0
19937	push	{r3, r4, r5, r6, r7, lr}
19938	ldr	r3, .L2815
19939	ldr	r3, [r3]
19940	cbz	r3, .L2801
19941.L2804:
19942	movs	r0, #0
19943	pop	{r3, r4, r5, r6, r7, pc}
19944.L2801:
19945	ldr	r3, .L2815+4
19946	ldr	r5, .L2815+8
19947	ldrb	r3, [r3]	@ zero_extendqisi2
19948	cbz	r3, .L2803
19949	ldr	r3, [r5]
19950	lsls	r2, r3, #31
19951	bpl	.L2803
19952	ldr	r3, .L2815+12
19953	ldrh	r3, [r3, #4]
19954	cmp	r3, #0
19955	bne	.L2804
19956.L2803:
19957	ldr	r4, .L2815+16
19958	movs	r3, #0
19959	movs	r6, #0
19960	movs	r7, #36
19961	mov	r2, r3
19962	ldr	r1, [r5]
19963	ldr	r0, [r4]
19964	bl	FlashProgPages
19965.L2805:
19966	ldr	r1, [r5]
19967	uxth	r3, r6
19968	cmp	r3, r1
19969	bcc	.L2807
19970	ldr	r0, [r4]
19971	bl	FtlGcBufFree
19972	movs	r3, #0
19973	str	r3, [r5]
19974	ldr	r3, .L2815+12
19975	ldrh	r3, [r3, #4]
19976	cmp	r3, #0
19977	bne	.L2804
19978	movs	r0, #1
19979	bl	FtlGcFreeTempBlock
19980	b	.L2814
19981.L2807:
19982	muls	r3, r7, r3
19983	ldr	r2, [r4]
19984	adds	r6, r6, #1
19985	adds	r1, r2, r3
19986	ldr	r2, [r2, r3]
19987	adds	r3, r2, #1
19988	bne	.L2806
19989	ldr	r3, .L2815+12
19990	movs	r5, #0
19991	ldr	r0, .L2815+20
19992	ldrh	r4, [r3]
19993	ldr	r0, [r0]
19994	strh	r5, [r0, r4, lsl #1]	@ movhi
19995	strh	r2, [r3]	@ movhi
19996	ldr	r2, .L2815+24
19997	ldr	r0, [r1, #4]
19998	ldr	r3, [r2, #96]
19999	ubfx	r0, r0, #10, #16
20000	adds	r3, r3, #1
20001	str	r3, [r2, #96]
20002	bl	FtlBbmMapBadBlock
20003	bl	FtlBbmTblFlush
20004	bl	FtlGcPageVarInit
20005.L2814:
20006	movs	r0, #1
20007	pop	{r3, r4, r5, r6, r7, pc}
20008.L2806:
20009	ldr	r3, [r1, #12]
20010	ldr	r1, [r1, #4]
20011	ldr	r2, [r3, #8]
20012	ldr	r0, [r3, #12]
20013	bl	FtlGcUpdatePage
20014	b	.L2805
20015.L2816:
20016	.align	2
20017.L2815:
20018	.word	.LANCHOR77
20019	.word	.LANCHOR8
20020	.word	.LANCHOR103
20021	.word	.LANCHOR94
20022	.word	.LANCHOR181
20023	.word	.LANCHOR84
20024	.word	.LANCHOR138
20025	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
20026	.section	.text.rk_ftl_garbage_collect,"ax",%progbits
20027	.align	1
20028	.global	rk_ftl_garbage_collect
20029	.syntax unified
20030	.thumb
20031	.thumb_func
20032	.fpu softvfp
20033	.type	rk_ftl_garbage_collect, %function
20034rk_ftl_garbage_collect:
20035	@ args = 0, pretend = 0, frame = 32
20036	@ frame_needed = 0, uses_anonymous_args = 0
20037	ldr	r3, .L2907
20038	push	{r4, r5, r6, r7, r8, r10, fp, lr}
20039	sub	sp, sp, #40
20040	ldr	r2, [r3]
20041	cmp	r2, #0
20042	bne	.L2869
20043	ldr	r3, .L2907+4
20044	ldr	r3, [r3]
20045	cmp	r3, #0
20046	bne	.L2869
20047	ldr	r2, .L2907+8
20048	ldrh	r2, [r2]
20049	cmp	r2, #47
20050	bls	.L2871
20051	ldr	r5, .L2907+12
20052	movw	r2, #65535
20053	ldrh	ip, [r5]
20054	cmp	ip, r2
20055	beq	.L2819
20056	ldr	r7, .L2907+16
20057	ldrh	r3, [r7]
20058	cmp	r3, r2
20059	bne	.L2819
20060	ldr	r1, .L2907+20
20061	ldrh	r6, [r1]
20062	cmp	r6, r3
20063	beq	.L2819
20064	ldr	r2, .L2907+24
20065	ldrh	r4, [r2]
20066	cmp	r4, r3
20067	itttt	ne
20068	strhne	ip, [r7]	@ movhi
20069	strhne	r6, [r5]	@ movhi
20070	strhne	r4, [r1]	@ movhi
20071	strhne	r3, [r2]	@ movhi
20072.L2819:
20073	cmp	r0, #0
20074	bne	.L2872
20075	ldr	r3, .L2907+28
20076	ldrh	r3, [r3]
20077	cmp	r3, #24
20078	bhi	.L2873
20079	ldr	r2, .L2907+32
20080	cmp	r3, #16
20081	ldrh	r4, [r2]
20082	bls	.L2822
20083	lsrs	r4, r4, #5
20084.L2821:
20085	ldr	r2, .L2907+36
20086	ldrh	r1, [r2]
20087	cmp	r1, r3
20088	mov	r1, r2
20089	bcs	.L2825
20090	ldr	r3, .L2907+40
20091	movw	r0, #65535
20092	ldrh	r3, [r3]
20093	cmp	r3, r0
20094	bne	.L2826
20095	ldr	r0, .L2907+16
20096	ldrh	r0, [r0]
20097	cmp	r0, r3
20098	bne	.L2826
20099	ldr	r3, .L2907+44
20100	ldrh	r0, [r3]
20101	cbnz	r0, .L2827
20102	ldr	r3, .L2907+48
20103	ldr	r4, .L2907+52
20104	ldr	r3, [r3]
20105	ldr	r4, [r4]
20106	add	r3, r3, r3, lsl #1
20107	cmp	r4, r3, lsr #2
20108	bcs	.L2828
20109.L2827:
20110	ldr	r3, .L2907+56
20111	ldrh	r3, [r3]
20112	add	r3, r3, r3, lsl #1
20113	asrs	r3, r3, #2
20114	strh	r3, [r1]	@ movhi
20115.L2829:
20116	ldr	r3, .L2907+60
20117	movs	r2, #0
20118	str	r2, [r3]
20119.L2817:
20120	add	sp, sp, #40
20121	@ sp needed
20122	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
20123.L2822:
20124	cmp	r3, #12
20125	bls	.L2823
20126	lsrs	r4, r4, #4
20127	b	.L2821
20128.L2823:
20129	cmp	r3, #8
20130	bls	.L2821
20131	lsrs	r4, r4, #2
20132	b	.L2821
20133.L2873:
20134	movs	r4, #1
20135	b	.L2821
20136.L2828:
20137	movs	r3, #18
20138	strh	r3, [r2]	@ movhi
20139	b	.L2829
20140.L2826:
20141	ldr	r3, .L2907+56
20142	ldrh	r3, [r3]
20143	add	r3, r3, r3, lsl #1
20144	asrs	r3, r3, #2
20145	strh	r3, [r1]	@ movhi
20146.L2825:
20147	ldr	r3, .L2907+64
20148	ldrh	r3, [r3]
20149	cbz	r3, .L2820
20150	adds	r4, r4, #32
20151	uxth	r4, r4
20152.L2820:
20153	ldr	r5, .L2907+68
20154	movw	r3, #65535
20155	ldrh	r2, [r5]
20156	cmp	r2, r3
20157	bne	.L2832
20158	ldr	r3, .L2907+16
20159	ldrh	r1, [r3]
20160	cmp	r1, r2
20161	beq	.L2833
20162	ldr	r0, .L2907+72
20163	ldr	r0, [r0]
20164	ldrh	r1, [r0, r1, lsl #1]
20165	cbnz	r1, .L2834
20166	strh	r2, [r3]	@ movhi
20167.L2834:
20168	ldrh	r2, [r3]
20169	strh	r2, [r5]	@ movhi
20170	movw	r2, #65535
20171	strh	r2, [r3]	@ movhi
20172.L2833:
20173	ldrh	r0, [r5]
20174	movw	r6, #65535
20175	movs	r3, #0
20176	strb	r3, [r5, #8]
20177	cmp	r0, r6
20178	beq	.L2832
20179	bl	IsBlkInGcList
20180	cbz	r0, .L2836
20181	strh	r6, [r5]	@ movhi
20182.L2836:
20183	ldr	r3, .L2907+76
20184	ldrb	r3, [r3]	@ zero_extendqisi2
20185	cbz	r3, .L2837
20186	ldrh	r0, [r5]
20187	bl	ftl_get_blk_mode
20188	strb	r0, [r5, #8]
20189.L2837:
20190	ldrh	r2, [r5]
20191	movw	r3, #65535
20192	cmp	r2, r3
20193	beq	.L2832
20194	ldr	r0, .L2907+68
20195	bl	make_superblock
20196	ldr	r2, .L2907+80
20197	movs	r3, #0
20198	strh	r3, [r5, #2]	@ movhi
20199	strb	r3, [r5, #6]
20200	strh	r3, [r2]	@ movhi
20201	ldr	r3, .L2907+72
20202	ldrh	r2, [r5]
20203	ldr	r3, [r3]
20204	ldrh	r2, [r3, r2, lsl #1]
20205	ldr	r3, .L2907+84
20206	strh	r2, [r3]	@ movhi
20207.L2832:
20208	ldr	r2, .L2907+88
20209	ldrh	r3, [r5]
20210	ldrh	r2, [r2]
20211	cmp	r2, r3
20212	beq	.L2838
20213	ldr	r2, .L2907+92
20214	ldrh	r2, [r2]
20215	cmp	r2, r3
20216	beq	.L2838
20217	ldr	r5, .L2907+68
20218	mov	r6, r5
20219.L2839:
20220	ldrh	r2, [r5]
20221	movw	r3, #65535
20222	cmp	r2, r3
20223	bne	.L2840
20224	ldr	r10, .L2907+100
20225	movs	r2, #0
20226	ldr	r3, .L2907+60
20227	mov	r7, r10
20228	str	r2, [r3]
20229.L2841:
20230	ldrh	r8, [r10]
20231	mov	r0, r8
20232	bl	List_get_gc_head_node
20233	uxth	fp, r0
20234	movw	r3, #65535
20235	cmp	fp, r3
20236	strh	fp, [r6]	@ movhi
20237	bne	.L2842
20238	movs	r3, #0
20239	movs	r0, #8
20240	strh	r3, [r10]	@ movhi
20241	b	.L2817
20242.L2872:
20243	movs	r4, #1
20244	b	.L2820
20245.L2838:
20246	movw	r3, #65535
20247	strh	r3, [r5]	@ movhi
20248.L2905:
20249	ldr	r3, .L2907+44
20250	ldrh	r0, [r3]
20251	b	.L2817
20252.L2842:
20253	str	r0, [sp, #8]
20254	mov	r0, fp
20255	bl	IsBlkInGcList
20256	add	r3, r8, #1
20257	ldr	r2, [sp, #8]
20258	cbz	r0, .L2843
20259	strh	r3, [r10]	@ movhi
20260	b	.L2841
20261.L2843:
20262	ldr	r1, .L2907+32
20263	uxth	r3, r3
20264	ldr	lr, .L2907+104
20265	uxth	r2, r2
20266	ldr	r8, .L2907+72
20267	ldrh	r1, [r1]
20268	ldrh	lr, [lr]
20269	ldr	r0, [r8]
20270	strh	r3, [r10]	@ movhi
20271	mul	r1, lr, r1
20272	ldrh	ip, [r0, r2, lsl #1]
20273	cmp	ip, r1, asr #1
20274	bgt	.L2845
20275	cmp	r3, #48
20276	bls	.L2846
20277	cmp	ip, #8
20278	bls	.L2846
20279	ldr	r3, .L2907+96
20280	ldrh	r3, [r3]
20281	cmp	r3, #35
20282	bhi	.L2846
20283.L2845:
20284	movs	r3, #0
20285	strh	r3, [r7]	@ movhi
20286.L2846:
20287	ldrh	r3, [r0, r2, lsl #1]
20288	cmp	r1, r3
20289	bgt	.L2847
20290	movw	r3, #65535
20291	strh	r3, [r6]	@ movhi
20292	movs	r3, #0
20293	strh	r3, [r7]	@ movhi
20294	b	.L2905
20295.L2847:
20296	cmp	r3, #0
20297	bne	.L2848
20298	movw	r0, #65535
20299	bl	decrement_vpc_count
20300	ldrh	r3, [r7]
20301	adds	r3, r3, #1
20302	strh	r3, [r7]	@ movhi
20303	b	.L2841
20304.L2908:
20305	.align	2
20306.L2907:
20307	.word	.LANCHOR77
20308	.word	.LANCHOR171
20309	.word	.LANCHOR86
20310	.word	.LANCHOR114
20311	.word	.LANCHOR113
20312	.word	.LANCHOR115
20313	.word	.LANCHOR116
20314	.word	.LANCHOR89
20315	.word	.LANCHOR53
20316	.word	.LANCHOR176
20317	.word	.LANCHOR94
20318	.word	.LANCHOR240
20319	.word	.LANCHOR73
20320	.word	.LANCHOR101
20321	.word	.LANCHOR223
20322	.word	.LANCHOR172
20323	.word	.LANCHOR117
20324	.word	.LANCHOR204
20325	.word	.LANCHOR84
20326	.word	.LANCHOR8
20327	.word	.LANCHOR241
20328	.word	.LANCHOR242
20329	.word	.LANCHOR92
20330	.word	.LANCHOR93
20331	.word	.LANCHOR110
20332	.word	.LANCHOR178
20333	.word	.LANCHOR38
20334.L2848:
20335	movs	r3, #0
20336	strb	r3, [r6, #8]
20337	ldr	r3, .L2909
20338	ldrb	r3, [r3]	@ zero_extendqisi2
20339	cbz	r3, .L2849
20340	mov	r0, fp
20341	bl	ftl_get_blk_mode
20342	strb	r0, [r6, #8]
20343.L2849:
20344	ldr	r3, .L2909+4
20345	ldrh	r3, [r3]
20346	cmp	r3, fp
20347	bne	.L2850
20348	ldr	r1, .L2909+8
20349	movw	r2, #857
20350	ldr	r0, .L2909+12
20351	bl	printf
20352	ldr	r1, .L2909+16
20353	ldr	r0, .L2909+20
20354	bl	printf
20355.L2850:
20356	ldr	r3, .L2909+24
20357	ldrh	r2, [r6]
20358	ldrh	r3, [r3]
20359	cmp	r2, r3
20360	bne	.L2851
20361	ldr	r1, .L2909+8
20362	movw	r2, #858
20363	ldr	r0, .L2909+12
20364	bl	printf
20365	ldr	r1, .L2909+16
20366	ldr	r0, .L2909+20
20367	bl	printf
20368.L2851:
20369	ldr	r3, .L2909+28
20370	ldrh	r2, [r6]
20371	ldrh	r3, [r3]
20372	cmp	r2, r3
20373	bne	.L2852
20374	ldr	r1, .L2909+8
20375	movw	r2, #859
20376	ldr	r0, .L2909+12
20377	bl	printf
20378	ldr	r1, .L2909+16
20379	ldr	r0, .L2909+20
20380	bl	printf
20381.L2852:
20382	mov	r0, r5
20383	bl	make_superblock
20384	ldr	r2, .L2909+32
20385	movs	r3, #0
20386	ldrh	r1, [r6]
20387	strh	r3, [r2]	@ movhi
20388	ldr	r2, [r8]
20389	ldrh	r1, [r2, r1, lsl #1]
20390	ldr	r2, .L2909+36
20391	strh	r3, [r6, #2]	@ movhi
20392	strb	r3, [r6, #6]
20393	strh	r1, [r2]	@ movhi
20394.L2840:
20395	ldr	r3, .L2909+40
20396	movs	r2, #1
20397	str	r2, [r3]
20398	ldr	r3, .L2909+44
20399	ldrh	r3, [r3]
20400	str	r3, [sp, #12]
20401	ldr	r3, .L2909
20402	ldrb	r3, [r3]	@ zero_extendqisi2
20403	cbz	r3, .L2853
20404	ldrb	r3, [r6, #8]	@ zero_extendqisi2
20405	cmp	r3, r2
20406	ittt	eq
20407	ldreq	r3, .L2909+48
20408	ldrheq	r3, [r3]
20409	streq	r3, [sp, #12]
20410.L2853:
20411	ldrh	r3, [r6, #2]
20412	ldr	r1, [sp, #12]
20413	ldr	fp, .L2909+84
20414	adds	r2, r3, r4
20415	cmp	r2, r1
20416	itt	gt
20417	movgt	r2, r1
20418	subgt	r4, r2, r3
20419	mov	r3, #0
20420	it	gt
20421	uxthgt	r4, r4
20422	str	r3, [sp, #20]
20423.L2855:
20424	ldrh	r3, [sp, #20]
20425	cmp	r4, r3
20426	bls	.L2863
20427	ldr	r3, .L2909+52
20428	movw	r8, #65535
20429	ldrh	lr, [r5, #2]
20430	mov	r10, #36
20431	ldr	r0, [fp]
20432	ldrh	r7, [r3]
20433	ldr	r3, [sp, #20]
20434	add	lr, lr, r3
20435	ldr	r3, .L2909+56
20436	str	r3, [sp, #16]
20437	movs	r3, #0
20438	str	r3, [sp, #8]
20439	b	.L2864
20440.L2857:
20441	ldr	r1, [sp, #16]
20442	ldrh	r2, [r1, #2]!
20443	cmp	r2, r8
20444	str	r1, [sp, #16]
20445	beq	.L2856
20446	ldr	r1, [sp, #8]
20447	orr	r2, lr, r2, lsl #10
20448	mla	ip, r10, r1, r0
20449	str	r2, [ip, #4]
20450	mov	r2, r1
20451	adds	r2, r2, #1
20452	uxth	r2, r2
20453	str	r2, [sp, #8]
20454.L2856:
20455	adds	r3, r3, #1
20456.L2864:
20457	uxth	r2, r3
20458	cmp	r2, r7
20459	bcc	.L2857
20460	ldrb	r2, [r5, #8]	@ zero_extendqisi2
20461	ldr	r1, [sp, #8]
20462	bl	FlashReadPages
20463	movs	r3, #0
20464.L2904:
20465	str	r3, [sp, #16]
20466	ldr	r2, [sp, #8]
20467	ldrh	r3, [sp, #16]
20468	cmp	r2, r3
20469	bhi	.L2862
20470	ldr	r3, [sp, #20]
20471	adds	r3, r3, #1
20472	str	r3, [sp, #20]
20473	b	.L2855
20474.L2862:
20475	ldr	r3, [sp, #16]
20476	movs	r7, #36
20477	muls	r7, r3, r7
20478	ldr	r3, [fp]
20479	adds	r2, r3, r7
20480	ldr	r3, [r3, r7]
20481	adds	r3, r3, #1
20482	beq	.L2859
20483	ldr	r8, [r2, #12]
20484	movw	r3, #61589
20485	ldrh	r2, [r8]
20486	cmp	r2, r3
20487	bne	.L2859
20488	ldr	r10, [r8, #8]
20489	cmp	r10, #-1
20490	bne	.L2860
20491	ldr	r1, .L2909+8
20492	movw	r2, #898
20493	ldr	r0, .L2909+12
20494	bl	printf
20495	ldr	r1, .L2909+16
20496	ldr	r0, .L2909+20
20497	bl	printf
20498.L2860:
20499	movs	r2, #0
20500	add	r1, sp, #36
20501	mov	r0, r10
20502	bl	log2phys
20503	ldr	r0, [fp]
20504	ldr	r3, [sp, #36]
20505	add	r0, r0, r7
20506	ldr	r2, [r0, #4]
20507	bic	r3, r3, #-2147483648
20508	cmp	r3, r2
20509	bne	.L2859
20510	ldr	r2, .L2909+32
20511	ldr	r1, .L2909+60
20512	ldr	r10, .L2909+68
20513	ldrh	r3, [r2]
20514	str	r1, [sp, #28]
20515	adds	r3, r3, #1
20516	strh	r3, [r2]	@ movhi
20517	ldr	r2, [r1]
20518	movs	r1, #36
20519	ldr	r3, [r10]
20520	mla	r3, r1, r3, r2
20521	ldr	r2, [r0, #16]
20522	str	r2, [r3, #16]
20523	str	r3, [sp, #24]
20524	bl	Ftl_get_new_temp_ppa
20525	ldr	r3, [sp, #24]
20526	ldr	r1, [sp, #28]
20527	str	r0, [r3, #4]
20528	ldr	r2, [r1]
20529	movs	r1, #36
20530	ldr	r3, [r10]
20531	ldr	r0, [fp]
20532	mla	r2, r1, r3, r2
20533	add	r0, r0, r7
20534	ldr	r7, .L2909+28
20535	ldr	r1, [r0, #8]
20536	adds	r3, r3, #1
20537	str	r1, [r2, #8]
20538	ldr	r1, [r0, #12]
20539	str	r1, [r2, #12]
20540	movs	r1, #1
20541	ldr	r2, [sp, #36]
20542	str	r2, [r8, #12]
20543	ldrh	r2, [r7]
20544	strh	r2, [r8, #2]	@ movhi
20545	ldr	r2, .L2909+64
20546	str	r3, [r10]
20547	ldr	r2, [r2]
20548	str	r2, [r8, #4]
20549	bl	FtlGcBufAlloc
20550	ldr	r3, .L2909
20551	ldrb	r3, [r3]	@ zero_extendqisi2
20552	cbnz	r3, .L2861
20553	ldrb	r2, [r7, #7]	@ zero_extendqisi2
20554	ldr	r3, [r10]
20555	cmp	r2, r3
20556	beq	.L2861
20557	ldrh	r3, [r7, #4]
20558	cbnz	r3, .L2859
20559.L2861:
20560	bl	Ftl_gc_temp_data_write_back
20561	cbz	r0, .L2859
20562.L2906:
20563	ldr	r3, .L2909+40
20564	movs	r2, #0
20565	str	r2, [r3]
20566	b	.L2905
20567.L2859:
20568	ldr	r3, [sp, #16]
20569	adds	r3, r3, #1
20570	b	.L2904
20571.L2863:
20572	ldrh	r3, [r5, #2]
20573	add	r4, r4, r3
20574	ldr	r3, [sp, #12]
20575	uxth	r4, r4
20576	cmp	r3, r4
20577	strh	r4, [r5, #2]	@ movhi
20578	bhi	.L2865
20579	ldr	r3, .L2909+68
20580	ldr	r3, [r3]
20581	cbz	r3, .L2866
20582	bl	Ftl_gc_temp_data_write_back
20583	cmp	r0, #0
20584	bne	.L2906
20585.L2866:
20586	ldr	r3, .L2909+32
20587	ldrh	r4, [r3]
20588	cbnz	r4, .L2867
20589	ldr	r7, .L2909+72
20590	ldrh	r1, [r5]
20591	ldr	r3, [r7]
20592	ldrh	r3, [r3, r1, lsl #1]
20593	cbz	r3, .L2867
20594	ldr	r0, .L2909+36
20595	ldrh	r2, [r5, #2]
20596	ldrh	r0, [r0]
20597	str	r3, [sp]
20598	mov	r3, r4
20599	str	r0, [sp, #4]
20600	ldr	r0, .L2909+76
20601	bl	printf
20602	ldrh	r2, [r5]
20603	ldr	r3, [r7]
20604	strh	r4, [r3, r2, lsl #1]	@ movhi
20605	ldrh	r0, [r5]
20606	bl	update_vpc_list
20607	bl	FtlCacheWriteBack
20608	bl	l2p_flush
20609	bl	FtlVpcTblFlush
20610.L2867:
20611	movw	r3, #65535
20612	strh	r3, [r5]	@ movhi
20613.L2865:
20614	ldr	r3, .L2909+80
20615	ldrh	r0, [r3]
20616	cmp	r0, #2
20617	bhi	.L2868
20618	ldr	r3, .L2909+44
20619	ldrh	r4, [r3]
20620	b	.L2839
20621.L2868:
20622	ldr	r3, .L2909+40
20623	movs	r2, #0
20624	adds	r0, r0, #1
20625	str	r2, [r3]
20626	b	.L2817
20627.L2910:
20628	.align	2
20629.L2909:
20630	.word	.LANCHOR8
20631	.word	.LANCHOR92
20632	.word	.LANCHOR243
20633	.word	.LC5
20634	.word	.LC6
20635	.word	.LC7
20636	.word	.LANCHOR93
20637	.word	.LANCHOR94
20638	.word	.LANCHOR241
20639	.word	.LANCHOR242
20640	.word	.LANCHOR171
20641	.word	.LANCHOR53
20642	.word	.LANCHOR54
20643	.word	.LANCHOR38
20644	.word	.LANCHOR204+14
20645	.word	.LANCHOR181
20646	.word	.LANCHOR160
20647	.word	.LANCHOR103
20648	.word	.LANCHOR84
20649	.word	.LC65
20650	.word	.LANCHOR89
20651	.word	.LANCHOR107
20652.L2869:
20653	movs	r0, #0
20654	b	.L2817
20655.L2871:
20656	mov	r0, r3
20657	b	.L2817
20658	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
20659	.section	.text.FtlInit,"ax",%progbits
20660	.align	1
20661	.global	FtlInit
20662	.syntax unified
20663	.thumb
20664	.thumb_func
20665	.fpu softvfp
20666	.type	FtlInit, %function
20667FtlInit:
20668	@ args = 0, pretend = 0, frame = 0
20669	@ frame_needed = 0, uses_anonymous_args = 0
20670	push	{r3, r4, r5, lr}
20671	mov	r3, #-1
20672	ldr	r4, .L2920
20673	mov	r5, r0
20674	ldr	r2, .L2920+4
20675	str	r3, [r4]
20676	movs	r3, #0
20677	ldr	r1, .L2920+8
20678	str	r3, [r2]
20679	ldr	r2, .L2920+12
20680	ldr	r0, .L2920+16
20681	str	r3, [r2]
20682	bl	printf
20683	mov	r0, r5
20684	bl	FtlConstantsInit
20685	bl	FtlMemInit
20686	bl	FtlVariablesInit
20687	ldr	r3, .L2920+20
20688	ldrh	r0, [r3]
20689	bl	FtlFreeSysBlkQueueInit
20690	bl	FtlLoadBbt
20691	cbz	r0, .L2912
20692	ldr	r1, .L2920+24
20693	ldr	r0, .L2920+28
20694.L2919:
20695	bl	printf
20696.L2913:
20697	movs	r0, #0
20698	pop	{r3, r4, r5, pc}
20699.L2912:
20700	bl	FtlSysBlkInit
20701	cbz	r0, .L2914
20702	ldr	r1, .L2920+24
20703	ldr	r0, .L2920+32
20704	b	.L2919
20705.L2914:
20706	movs	r1, #1
20707	str	r1, [r4]
20708	bl	rk_ftl_garbage_collect
20709	ldr	r3, .L2920+36
20710	ldrh	r3, [r3]
20711	cmp	r3, #15
20712	bhi	.L2913
20713	mov	r4, #1024
20714.L2916:
20715	movs	r1, #1
20716	mov	r0, r1
20717	bl	rk_ftl_garbage_collect
20718	subs	r4, r4, #1
20719	bne	.L2916
20720	b	.L2913
20721.L2921:
20722	.align	2
20723.L2920:
20724	.word	.LANCHOR231
20725	.word	.LANCHOR244
20726	.word	.LC66
20727	.word	.LANCHOR77
20728	.word	.LC7
20729	.word	.LANCHOR39
20730	.word	.LANCHOR245
20731	.word	.LC67
20732	.word	.LC68
20733	.word	.LANCHOR89
20734	.size	FtlInit, .-FtlInit
20735	.section	.text.rk_ftl_init,"ax",%progbits
20736	.align	1
20737	.global	rk_ftl_init
20738	.syntax unified
20739	.thumb
20740	.thumb_func
20741	.fpu softvfp
20742	.type	rk_ftl_init, %function
20743rk_ftl_init:
20744	@ args = 0, pretend = 0, frame = 0
20745	@ frame_needed = 0, uses_anonymous_args = 0
20746	push	{r4, lr}
20747	bl	FlashInit
20748	mov	r4, r0
20749	cbnz	r0, .L2923
20750	ldr	r0, .L2924
20751	bl	FtlInit
20752.L2923:
20753	bl	idb_init
20754	mov	r1, r4
20755	ldr	r0, .L2924+4
20756	bl	printf
20757	mov	r0, r4
20758	pop	{r4, pc}
20759.L2925:
20760	.align	2
20761.L2924:
20762	.word	.LANCHOR15
20763	.word	.LC69
20764	.size	rk_ftl_init, .-rk_ftl_init
20765	.section	.text.ftl_fix_nand_power_lost_error,"ax",%progbits
20766	.align	1
20767	.global	ftl_fix_nand_power_lost_error
20768	.syntax unified
20769	.thumb
20770	.thumb_func
20771	.fpu softvfp
20772	.type	ftl_fix_nand_power_lost_error, %function
20773ftl_fix_nand_power_lost_error:
20774	@ args = 0, pretend = 0, frame = 56
20775	@ frame_needed = 0, uses_anonymous_args = 0
20776	ldr	r3, .L2940
20777	push	{r4, r5, r6, r7, r8, r10, fp, lr}
20778	sub	sp, sp, #56
20779	ldrb	r3, [r3]	@ zero_extendqisi2
20780	cmp	r3, #0
20781	beq	.L2926
20782	ldr	r7, .L2940+4
20783	ldr	r6, .L2940+8
20784	ldr	r10, .L2940+32
20785	ldrh	r5, [r7]
20786	ldr	r3, [r6]
20787	ldr	r4, .L2940+12
20788	mov	r1, r5
20789	ldr	r0, .L2940+16
20790	ldrh	r2, [r3, r5, lsl #1]
20791	lsl	r8, r5, #1
20792	bl	printf
20793	ldrh	r0, [r10]
20794	bl	FtlGcRefreshOpenBlock
20795	ldrh	r0, [r4]
20796	bl	FtlGcRefreshOpenBlock
20797	mov	r0, r10
20798	bl	allocate_new_data_superblock
20799	mov	r0, r4
20800	movw	r4, #4097
20801	bl	allocate_new_data_superblock
20802	str	r7, [sp, #4]
20803.L2928:
20804	subs	r4, r4, #1
20805	beq	.L2932
20806	movs	r1, #1
20807	mov	r0, r1
20808	bl	rk_ftl_garbage_collect
20809	ldr	r3, [r6]
20810	ldrh	r3, [r3, r8]
20811	cmp	r3, #0
20812	bne	.L2928
20813.L2932:
20814	ldr	r3, [r6]
20815	mov	r1, r5
20816	ldr	r0, .L2940+16
20817	ldrh	r2, [r3, r5, lsl #1]
20818	bl	printf
20819	ldr	r3, [r6]
20820	ldrh	r4, [r3, r5, lsl #1]
20821	cbnz	r4, .L2930
20822	add	r0, sp, #56
20823	ldr	r7, .L2940+20
20824	strh	r5, [r0, #-48]!	@ movhi
20825	movw	r10, #65535
20826	bl	make_superblock
20827	ldr	r3, .L2940+24
20828	add	r0, sp, #22
20829	ldr	r8, [r7]
20830	mov	r2, r4
20831	mov	fp, #36
20832	mov	ip, r4
20833	ldrh	lr, [r3]
20834.L2933:
20835	uxth	r3, r2
20836	cmp	lr, r3
20837	bhi	.L2935
20838	ldr	r3, [r6]
20839	mov	r1, r5
20840	ldr	r0, .L2940+28
20841	ldrh	r2, [r3, r5, lsl #1]
20842	bl	printf
20843	mov	r2, r4
20844	movs	r1, #0
20845	ldr	r0, [r7]
20846	bl	FlashEraseBlocks
20847	mov	r2, r4
20848	movs	r1, #1
20849	ldr	r0, [r7]
20850	bl	FlashEraseBlocks
20851.L2930:
20852	ldr	r2, [sp, #4]
20853	movw	r3, #65535
20854	strh	r3, [r2]	@ movhi
20855.L2926:
20856	add	sp, sp, #56
20857	@ sp needed
20858	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
20859.L2935:
20860	ldrh	r3, [r0, #2]!
20861	cmp	r3, r10
20862	beq	.L2934
20863	mla	r1, fp, r4, r8
20864	adds	r4, r4, #1
20865	lsls	r3, r3, #10
20866	uxth	r4, r4
20867	str	r3, [r1, #4]
20868	str	ip, [r1, #8]
20869	str	ip, [r1, #12]
20870.L2934:
20871	adds	r2, r2, #1
20872	b	.L2933
20873.L2941:
20874	.align	2
20875.L2940:
20876	.word	.LANCHOR8
20877	.word	.LANCHOR235
20878	.word	.LANCHOR84
20879	.word	.LANCHOR93
20880	.word	.LC70
20881	.word	.LANCHOR78
20882	.word	.LANCHOR38
20883	.word	.LC71
20884	.word	.LANCHOR92
20885	.size	ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
20886	.section	.text.ftl_read,"ax",%progbits
20887	.align	1
20888	.global	ftl_read
20889	.syntax unified
20890	.thumb
20891	.thumb_func
20892	.fpu softvfp
20893	.type	ftl_read, %function
20894ftl_read:
20895	@ args = 0, pretend = 0, frame = 64
20896	@ frame_needed = 0, uses_anonymous_args = 0
20897	cmp	r0, #16
20898	push	{r4, r5, r6, r7, r8, r10, fp, lr}
20899	sub	sp, sp, #88
20900	mov	r6, r1
20901	mov	r7, r3
20902	str	r2, [sp, #52]
20903	bne	.L2943
20904	mov	r2, r3
20905	ldr	r1, [sp, #52]
20906	add	r0, r6, #256
20907	bl	FtlVendorPartRead
20908	str	r0, [sp, #32]
20909.L2942:
20910	ldr	r0, [sp, #32]
20911	add	sp, sp, #88
20912	@ sp needed
20913	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
20914.L2943:
20915	ldr	r3, [sp, #52]
20916	adds	r3, r1, r3
20917	str	r3, [sp, #36]
20918	ldr	r3, .L2981
20919	ldr	r2, [sp, #36]
20920	ldr	r3, [r3]
20921	cmp	r2, r3
20922	bhi	.L2966
20923	ldr	r3, .L2981+4
20924	ldr	r3, [r3]
20925	adds	r4, r3, #1
20926	beq	.L2967
20927	bl	FtlCacheWriteBack
20928	ldr	r3, .L2981+8
20929	mov	r0, r6
20930	ldr	r10, .L2981+52
20931	ldrh	r4, [r3]
20932	mov	r1, r4
20933	bl	__aeabi_uidiv
20934	ldr	r3, [sp, #36]
20935	mov	r1, r4
20936	str	r0, [sp, #40]
20937	subs	r0, r3, #1
20938	bl	__aeabi_uidiv
20939	ldr	r3, [sp, #40]
20940	ldr	r2, .L2981+12
20941	ldr	r4, [sp, #40]
20942	rsb	r3, r3, #1
20943	str	r0, [sp, #44]
20944	add	r3, r3, r0
20945	str	r3, [sp, #28]
20946	ldr	r1, [sp, #28]
20947	ldr	r3, [r2]
20948	add	r3, r3, r1
20949	str	r3, [r2]
20950	movs	r3, #0
20951	mov	r5, r3
20952	str	r3, [sp, #24]
20953	str	r3, [sp, #48]
20954	str	r3, [sp, #32]
20955.L2945:
20956	ldr	r3, [sp, #28]
20957	cbnz	r3, .L2965
20958	ldr	r3, .L2981+16
20959	ldrh	r3, [r3]
20960	cmp	r3, #0
20961	beq	.L2942
20962	movs	r1, #1
20963	ldr	r0, [sp, #28]
20964	bl	rk_ftl_garbage_collect
20965	b	.L2942
20966.L2965:
20967	movs	r2, #0
20968	add	r1, sp, #84
20969	mov	r0, r4
20970	bl	log2phys
20971	ldr	r3, [sp, #84]
20972	adds	r0, r3, #1
20973	bne	.L2946
20974	ldr	fp, .L2981+8
20975	mov	r8, #0
20976.L2947:
20977	ldrh	r0, [fp]
20978	cmp	r8, r0
20979	bcc	.L2949
20980.L2950:
20981	ldr	r3, [sp, #28]
20982	adds	r4, r4, #1
20983	subs	r3, r3, #1
20984	str	r3, [sp, #28]
20985	beq	.L2954
20986	ldr	r3, .L2981+20
20987	ldrh	r3, [r3]
20988	cmp	r5, r3, lsl #2
20989	bne	.L2945
20990.L2954:
20991	cmp	r5, #0
20992	beq	.L2945
20993	movs	r2, #0
20994	mov	r1, r5
20995	ldr	r0, [r10]
20996	mov	fp, #0
20997	bl	FlashReadPages
20998	ldr	r3, [sp, #24]
20999	lsls	r3, r3, #9
21000	str	r3, [sp, #68]
21001	ldr	r3, [sp, #56]
21002	lsls	r3, r3, #9
21003	str	r3, [sp, #60]
21004	ldr	r3, [sp, #48]
21005	lsls	r3, r3, #9
21006	str	r3, [sp, #64]
21007.L2964:
21008	mov	r8, #36
21009	ldr	r3, [r10]
21010	mul	r8, r8, fp
21011	ldr	r1, [sp, #40]
21012	add	r3, r3, r8
21013	ldr	r2, [r3, #16]
21014	cmp	r1, r2
21015	bne	.L2956
21016	ldr	r1, [r3, #8]
21017	ldr	r3, .L2981+24
21018	ldr	r3, [r3]
21019	cmp	r1, r3
21020	bne	.L2957
21021	ldr	r3, [sp, #60]
21022	mov	r0, r7
21023	ldr	r2, [sp, #64]
21024	add	r1, r1, r3
21025.L2980:
21026	bl	ftl_memcpy
21027.L2957:
21028	ldr	r2, [r10]
21029	add	r2, r2, r8
21030	ldr	r3, [r2, #12]
21031	ldr	lr, [r2, #16]
21032	ldr	r0, [r3, #8]
21033	cmp	lr, r0
21034	beq	.L2958
21035	ldr	ip, .L2981+32
21036	ldr	r0, [ip, #72]
21037	adds	r0, r0, #1
21038	str	r0, [ip, #72]
21039	ldr	r0, [r2, #8]
21040	ldr	r1, [r0, #4]
21041	str	r1, [sp, #16]
21042	mov	r1, lr
21043	ldr	r0, [r0]
21044	str	r0, [sp, #12]
21045	ldr	r0, [r3, #12]
21046	str	r0, [sp, #8]
21047	ldr	r0, [r3, #8]
21048	str	r0, [sp, #4]
21049	ldr	r0, [r3, #4]
21050	str	r0, [sp]
21051	ldr	r0, .L2981+28
21052	ldr	r3, [r3]
21053	ldr	r2, [r2, #4]
21054	bl	printf
21055.L2958:
21056	ldr	r3, [r10]
21057	add	r2, r3, r8
21058	ldr	r3, [r3, r8]
21059	adds	r1, r3, #1
21060	bne	.L2959
21061	ldr	r1, .L2981+32
21062	str	r3, [sp, #32]
21063	ldr	r2, [r1, #72]
21064	adds	r2, r2, #1
21065	str	r2, [r1, #72]
21066.L2960:
21067	add	fp, fp, #1
21068	cmp	r5, fp
21069	bne	.L2964
21070	movs	r5, #0
21071	b	.L2945
21072.L2949:
21073	mla	r0, r0, r4, r8
21074	cmp	r6, r0
21075	bhi	.L2948
21076	ldr	r3, [sp, #36]
21077	cmp	r3, r0
21078	bls	.L2948
21079	subs	r0, r0, r6
21080	mov	r2, #512
21081	movs	r1, #0
21082	add	r0, r7, r0, lsl #9
21083	bl	ftl_memset
21084.L2948:
21085	add	r8, r8, #1
21086	b	.L2947
21087.L2946:
21088	ldr	r2, [r10]
21089	mov	r8, #36
21090	mla	r8, r8, r5, r2
21091	str	r3, [r8, #4]
21092	ldr	r3, [sp, #40]
21093	cmp	r4, r3
21094	ldr	r3, .L2981+8
21095	bne	.L2951
21096	ldr	r2, .L2981+24
21097	mov	r0, r6
21098	ldrh	fp, [r3]
21099	ldr	r2, [r2]
21100	mov	r1, fp
21101	str	r2, [r8, #8]
21102	bl	__aeabi_uidivmod
21103	ldr	r2, [sp, #52]
21104	sub	r3, fp, r1
21105	str	r1, [sp, #56]
21106	cmp	r3, r2
21107	it	cs
21108	movcs	r3, r2
21109	cmp	fp, r3
21110	str	r3, [sp, #48]
21111	bne	.L2952
21112	str	r7, [r8, #8]
21113.L2952:
21114	ldr	r3, .L2981+36
21115	ldr	r2, .L2981+40
21116	str	r4, [r8, #16]
21117	ldrh	r3, [r3]
21118	ldr	r2, [r2]
21119	muls	r3, r5, r3
21120	adds	r5, r5, #1
21121	bic	r3, r3, #3
21122	add	r3, r3, r2
21123	str	r3, [r8, #12]
21124	b	.L2950
21125.L2951:
21126	ldr	r2, [sp, #44]
21127	cmp	r4, r2
21128	bne	.L2953
21129	ldr	r2, .L2981+44
21130	ldr	r1, [sp, #36]
21131	ldr	r2, [r2]
21132	str	r2, [r8, #8]
21133	ldrh	r2, [r3]
21134	mul	r3, r2, r4
21135	subs	r1, r1, r3
21136	cmp	r2, r1
21137	str	r1, [sp, #24]
21138	bne	.L2952
21139.L2979:
21140	subs	r3, r3, r6
21141	add	r3, r7, r3, lsl #9
21142	str	r3, [r8, #8]
21143	b	.L2952
21144.L2953:
21145	ldrh	r3, [r3]
21146	muls	r3, r4, r3
21147	b	.L2979
21148.L2956:
21149	ldr	r1, [sp, #44]
21150	cmp	r1, r2
21151	bne	.L2957
21152	ldr	r1, [r3, #8]
21153	ldr	r3, .L2981+44
21154	ldr	r3, [r3]
21155	cmp	r1, r3
21156	bne	.L2957
21157	ldr	r3, .L2981+8
21158	ldr	r2, [sp, #68]
21159	ldrh	r0, [r3]
21160	ldr	r3, [sp, #44]
21161	muls	r0, r3, r0
21162	subs	r0, r0, r6
21163	add	r0, r7, r0, lsl #9
21164	b	.L2980
21165.L2959:
21166	cmp	r3, #256
21167	bne	.L2960
21168	ldr	r0, [r2, #4]
21169	ubfx	r0, r0, #10, #16
21170	bl	P2V_block_in_plane
21171	mov	r8, r0
21172	bl	FtlGcRefreshBlock
21173	ldr	r2, .L2981+48
21174	movw	r3, #2049
21175.L2962:
21176	subs	r3, r3, #1
21177	bne	.L2961
21178.L2963:
21179	bl	FtlSysFlush
21180	b	.L2960
21181.L2961:
21182	movs	r1, #1
21183	str	r2, [sp, #76]
21184	mov	r0, r1
21185	str	r3, [sp, #72]
21186	bl	rk_ftl_garbage_collect
21187	ldr	r2, [sp, #76]
21188	ldr	r3, [sp, #72]
21189	ldrh	r1, [r2]
21190	cmp	r1, r8
21191	beq	.L2962
21192	b	.L2963
21193.L2966:
21194	mov	r3, #-1
21195.L2967:
21196	str	r3, [sp, #32]
21197	b	.L2942
21198.L2982:
21199	.align	2
21200.L2981:
21201	.word	.LANCHOR69
21202	.word	.LANCHOR231
21203	.word	.LANCHOR56
21204	.word	.LANCHOR166
21205	.word	.LANCHOR117
21206	.word	.LANCHOR38
21207	.word	.LANCHOR186
21208	.word	.LC60
21209	.word	.LANCHOR138
21210	.word	.LANCHOR59
21211	.word	.LANCHOR189
21212	.word	.LANCHOR187
21213	.word	.LANCHOR204
21214	.word	.LANCHOR180
21215	.size	ftl_read, .-ftl_read
21216	.section	.text.FtlWrite,"ax",%progbits
21217	.align	1
21218	.global	FtlWrite
21219	.syntax unified
21220	.thumb
21221	.thumb_func
21222	.fpu softvfp
21223	.type	FtlWrite, %function
21224FtlWrite:
21225	@ args = 0, pretend = 0, frame = 80
21226	@ frame_needed = 0, uses_anonymous_args = 0
21227	push	{r4, r5, r6, r7, r8, r10, fp, lr}
21228	mov	r10, r3
21229	ldr	r3, .L3031
21230	sub	sp, sp, #80
21231	mov	r6, r1
21232	str	r2, [sp, #12]
21233	ldr	r3, [r3]
21234	cmp	r3, #0
21235	bne	.L3016
21236	cmp	r0, #16
21237	bne	.L2985
21238	mov	r2, r10
21239	ldr	r1, [sp, #12]
21240	add	r0, r6, #256
21241	bl	FtlVendorPartWrite
21242.L2983:
21243	add	sp, sp, #80
21244	@ sp needed
21245	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
21246.L2985:
21247	ldr	r3, [sp, #12]
21248	adds	r5, r1, r3
21249	ldr	r3, .L3031+4
21250	ldr	r3, [r3]
21251	cmp	r5, r3
21252	bhi	.L3017
21253	ldr	r3, .L3031+8
21254	ldr	r0, [r3]
21255	adds	r4, r0, #1
21256	beq	.L2983
21257	ldr	r3, .L3031+12
21258	mov	r2, #2048
21259	mov	r0, r6
21260	str	r2, [r3]
21261	ldr	r3, .L3031+16
21262	ldrh	r4, [r3]
21263	mov	r1, r4
21264	bl	__aeabi_uidiv
21265	mov	r1, r4
21266	mov	r8, r0
21267	subs	r0, r5, #1
21268	bl	__aeabi_uidiv
21269	ldr	r2, .L3031+20
21270	sub	r5, r0, r8
21271	adds	r3, r5, #1
21272	adds	r1, r5, #1
21273	str	r3, [sp, #4]
21274	ldr	r3, [r2]
21275	str	r0, [sp, #16]
21276	add	r3, r3, r1
21277	str	r3, [r2]
21278	ldr	r3, .L3031+24
21279	ldr	fp, [r3]
21280	cmp	fp, #0
21281	beq	.L2987
21282	ldr	r3, [fp, #16]
21283	cmp	r8, r3
21284	beq	.L2988
21285	bl	FtlCacheWriteBack
21286.L2987:
21287	ldr	r7, .L3031+28
21288	mov	r4, r8
21289.L2989:
21290	ldr	r3, [sp, #4]
21291	cbnz	r3, .L3015
21292	ldr	r3, [sp, #16]
21293	ldr	r0, [sp, #4]
21294	sub	r1, r3, r8
21295	bl	rk_ftl_garbage_collect
21296.L3016:
21297	movs	r0, #0
21298	b	.L2983
21299.L2988:
21300	ldr	r2, .L3031+32
21301	mov	r1, r4
21302	mov	r0, r6
21303	ldr	r3, [r2]
21304	adds	r3, r3, #1
21305	str	r3, [r2]
21306	bl	__aeabi_uidivmod
21307	ldr	r2, [sp, #12]
21308	subs	r4, r4, r1
21309	ldr	r0, [fp, #8]
21310	mov	r3, r1
21311	mov	r1, r10
21312	cmp	r4, r2
21313	it	cs
21314	movcs	r4, r2
21315	lsls	r7, r4, #9
21316	add	r0, r0, r3, lsl #9
21317	mov	r2, r7
21318	bl	ftl_memcpy
21319	cmp	r5, #0
21320	beq	.L3016
21321	ldr	r3, [sp, #12]
21322	add	r6, r6, r4
21323	add	r10, r10, r7
21324	add	r8, r8, #1
21325	subs	r3, r3, r4
21326	str	r3, [sp, #12]
21327	bl	FtlCacheWriteBack
21328	str	r5, [sp, #4]
21329	b	.L2987
21330.L3015:
21331	ldr	r5, .L3031+36
21332	ldrb	r2, [r7, #6]	@ zero_extendqisi2
21333	ldrh	r3, [r5]
21334	cmp	r2, r3
21335	bcc	.L2990
21336	ldr	r1, .L3031+40
21337	movw	r2, #1668
21338	ldr	r0, .L3031+44
21339	bl	printf
21340	ldr	r1, .L3031+48
21341	ldr	r0, .L3031+52
21342	bl	printf
21343.L2990:
21344	ldrh	r3, [r7, #4]
21345	cbnz	r3, .L2991
21346	bl	FtlCacheWriteBack
21347	mov	r0, r7
21348	bl	allocate_new_data_superblock
21349.L2991:
21350	ldrb	r3, [r7, #7]	@ zero_extendqisi2
21351	ldrh	r2, [r7, #4]
21352	lsls	r3, r3, #2
21353	cmp	r3, r2
21354	it	cs
21355	movcs	r3, r2
21356	ldr	r2, [sp, #4]
21357	cmp	r3, r2
21358	it	cs
21359	movcs	r3, r2
21360	ldrb	r2, [r7, #6]	@ zero_extendqisi2
21361	str	r3, [sp, #36]
21362	ldrh	r3, [r5]
21363	cmp	r2, r3
21364	bcc	.L2992
21365	ldr	r1, .L3031+40
21366	movw	r2, #1701
21367	ldr	r0, .L3031+44
21368	bl	printf
21369	ldr	r1, .L3031+48
21370	ldr	r0, .L3031+52
21371	bl	printf
21372.L2992:
21373	movs	r3, #0
21374.L3030:
21375	str	r3, [sp, #8]
21376	ldr	r3, [sp, #8]
21377	ldr	r2, [sp, #36]
21378	cmp	r3, r2
21379	bne	.L3013
21380.L2994:
21381	ldr	r0, .L3031+56
21382	mov	r3, r7
21383	movs	r2, #0
21384	ldr	r1, [sp, #8]
21385	ldr	r0, [r0]
21386	bl	FtlProgPages
21387	ldr	r3, [sp, #4]
21388	ldr	r2, [sp, #8]
21389	cmp	r3, r2
21390	bcs	.L3014
21391	ldr	r1, .L3031+40
21392	movw	r2, #1790
21393	ldr	r0, .L3031+44
21394	bl	printf
21395	ldr	r1, .L3031+48
21396	ldr	r0, .L3031+52
21397	bl	printf
21398.L3014:
21399	ldr	r3, [sp, #4]
21400	ldr	r2, [sp, #8]
21401	subs	r3, r3, r2
21402	str	r3, [sp, #4]
21403	b	.L2989
21404.L3013:
21405	ldrh	r3, [r7, #4]
21406	cmp	r3, #0
21407	beq	.L2994
21408	movs	r2, #0
21409	add	r1, sp, #40
21410	mov	r0, r4
21411	movs	r5, #36
21412	bl	log2phys
21413	mov	r0, r7
21414	bl	get_new_active_ppa
21415	ldr	r3, [sp, #8]
21416	ldr	r2, .L3031+60
21417	muls	r5, r3, r5
21418	ldr	r3, .L3031+56
21419	ldrh	r2, [r2]
21420	ldr	r1, [r3]
21421	str	r3, [sp, #20]
21422	ldr	r3, [sp, #8]
21423	add	r1, r1, r5
21424	str	r0, [r1, #4]
21425	str	r4, [r1, #16]
21426	mul	r0, r2, r3
21427	bic	r3, r0, #3
21428	ldr	r0, .L3031+64
21429	str	r3, [sp, #28]
21430	ldr	r3, [r0]
21431	ldr	r0, [sp, #28]
21432	str	r3, [sp, #32]
21433	add	fp, r3, r0
21434	str	fp, [r1, #12]
21435	mov	r0, fp
21436	movs	r1, #0
21437	bl	ftl_memset
21438	cmp	r4, r8
21439	ldr	r1, .L3031+16
21440	beq	.L2995
21441	ldr	r3, [sp, #16]
21442	cmp	r3, r4
21443	ldr	r3, [sp, #20]
21444	bne	.L3026
21445	ldr	r3, [sp, #12]
21446	adds	r2, r6, r3
21447	ldrh	r3, [r1]
21448	ldrh	r1, [sp, #16]
21449	smulbb	r3, r3, r1
21450	subs	r2, r2, r3
21451	uxth	r3, r2
21452	str	r3, [sp, #20]
21453	movs	r3, #0
21454	str	r3, [sp, #24]
21455	b	.L2998
21456.L2995:
21457	ldrh	r2, [r1]
21458	mov	r0, r6
21459	mov	r1, r2
21460	str	r2, [sp, #20]
21461	bl	__aeabi_uidivmod
21462	ldr	r2, [sp, #20]
21463	str	r1, [sp, #24]
21464	subs	r2, r2, r1
21465	ldr	r1, [sp, #12]
21466	mov	r3, r2
21467	cmp	r2, r1
21468	it	cs
21469	movcs	r3, r1
21470	str	r3, [sp, #20]
21471.L2998:
21472	ldr	r3, .L3031+16
21473	ldr	r2, [sp, #20]
21474	ldrh	r3, [r3]
21475	cmp	r3, r2
21476	ldr	r3, .L3031+56
21477	ldr	r3, [r3]
21478	bne	.L2999
21479	cmp	r4, r8
21480	add	r5, r5, r3
21481	itett	ne
21482	ldrne	r2, [sp, #20]
21483	streq	r10, [r5, #8]
21484	mulne	r2, r2, r4
21485	subne	r2, r2, r6
21486	itt	ne
21487	addne	r2, r10, r2, lsl #9
21488	strne	r2, [r5, #8]
21489.L3001:
21490	ldr	r3, .L3031+36
21491	ldrb	r2, [r7, #6]	@ zero_extendqisi2
21492	ldrh	r3, [r3]
21493	cmp	r2, r3
21494	bcc	.L3010
21495	ldr	r1, .L3031+40
21496	movw	r2, #1775
21497	ldr	r0, .L3031+44
21498	bl	printf
21499	ldr	r1, .L3031+48
21500	ldr	r0, .L3031+52
21501	bl	printf
21502.L3010:
21503	ldr	r2, [sp, #32]
21504	movw	r3, #61589
21505	ldr	r1, [sp, #28]
21506	strh	r3, [r2, r1]	@ movhi
21507	ldr	r2, .L3031+68
21508	str	r4, [fp, #8]
21509	adds	r4, r4, #1
21510	ldr	r3, [r2]
21511	str	r3, [fp, #4]
21512	adds	r3, r3, #1
21513	adds	r1, r3, #1
21514	it	eq
21515	moveq	r3, #0
21516	str	r3, [r2]
21517	ldr	r3, [sp, #40]
21518	str	r3, [fp, #12]
21519	ldrh	r3, [r7]
21520	strh	r3, [fp, #2]	@ movhi
21521	ldr	r3, [sp, #8]
21522	adds	r3, r3, #1
21523	b	.L3030
21524.L3032:
21525	.align	2
21526.L3031:
21527	.word	.LANCHOR77
21528	.word	.LANCHOR69
21529	.word	.LANCHOR231
21530	.word	.LANCHOR246
21531	.word	.LANCHOR56
21532	.word	.LANCHOR162
21533	.word	.LANCHOR132
21534	.word	.LANCHOR92
21535	.word	.LANCHOR164
21536	.word	.LANCHOR38
21537	.word	.LANCHOR247
21538	.word	.LC5
21539	.word	.LC6
21540	.word	.LC7
21541	.word	.LANCHOR182
21542	.word	.LANCHOR59
21543	.word	.LANCHOR189
21544	.word	.LANCHOR160
21545.L2999:
21546	cmp	r4, r8
21547	add	r3, r3, r5
21548	ite	eq
21549	ldreq	r2, .L3033
21550	ldrne	r2, .L3033+4
21551	ldr	r2, [r2]
21552	str	r2, [r3, #8]
21553	ldr	r2, [sp, #40]
21554	ldr	r3, .L3033+8
21555	adds	r0, r2, #1
21556	beq	.L3004
21557	ldr	r3, [r3]
21558	movs	r1, #1
21559	str	r2, [sp, #48]
21560	add	r0, sp, #44
21561	str	r4, [sp, #60]
21562	add	r3, r3, r5
21563	ldr	r2, [r3, #8]
21564	ldr	r3, [r3, #12]
21565	str	r2, [sp, #52]
21566	movs	r2, #0
21567	str	r3, [sp, #56]
21568	bl	FlashReadPages
21569	ldr	r3, [sp, #44]
21570	adds	r3, r3, #1
21571	bne	.L3005
21572	ldr	r2, .L3033+12
21573	ldr	r3, [r2, #72]
21574	adds	r3, r3, #1
21575	str	r3, [r2, #72]
21576.L3008:
21577	ldr	r2, [sp, #20]
21578	cmp	r4, r8
21579	ldr	r3, .L3033+8
21580	lsl	r2, r2, #9
21581	bne	.L3009
21582	ldr	r3, [r3]
21583	mov	r1, r10
21584	add	r5, r5, r3
21585	ldr	r3, [sp, #24]
21586	ldr	r0, [r5, #8]
21587	add	r0, r0, r3, lsl #9
21588.L3028:
21589	bl	ftl_memcpy
21590	b	.L3001
21591.L3005:
21592	ldr	r1, [fp, #8]
21593	cmp	r4, r1
21594	beq	.L3007
21595	ldr	r2, .L3033+12
21596	ldr	r0, .L3033+16
21597	ldr	r3, [r2, #72]
21598	adds	r3, r3, #1
21599	str	r3, [r2, #72]
21600	mov	r2, r4
21601	bl	printf
21602.L3007:
21603	ldr	r3, [fp, #8]
21604	cmp	r4, r3
21605	beq	.L3008
21606	movw	r2, #1754
21607	ldr	r1, .L3033+20
21608	ldr	r0, .L3033+24
21609	bl	printf
21610	ldr	r1, .L3033+28
21611	ldr	r0, .L3033+32
21612	bl	printf
21613	b	.L3008
21614.L3004:
21615	ldr	r3, [r3]
21616	movs	r1, #0
21617	ldr	r2, .L3033+36
21618	add	r3, r3, r5
21619	ldrh	r2, [r2]
21620	ldr	r0, [r3, #8]
21621	bl	ftl_memset
21622	b	.L3008
21623.L3009:
21624	ldr	r1, .L3033+40
21625	ldr	r3, [r3]
21626	ldrh	r1, [r1]
21627	add	r5, r5, r3
21628	ldr	r0, [r5, #8]
21629	muls	r1, r4, r1
21630	subs	r1, r1, r6
21631	add	r1, r10, r1, lsl #9
21632	b	.L3028
21633.L3026:
21634	ldr	r3, [r3]
21635	add	r5, r5, r3
21636	ldrh	r3, [r1]
21637	muls	r3, r4, r3
21638	subs	r3, r3, r6
21639	add	r3, r10, r3, lsl #9
21640	str	r3, [r5, #8]
21641	b	.L3001
21642.L3017:
21643	mov	r0, #-1
21644	b	.L2983
21645.L3034:
21646	.align	2
21647.L3033:
21648	.word	.LANCHOR186
21649	.word	.LANCHOR187
21650	.word	.LANCHOR182
21651	.word	.LANCHOR138
21652	.word	.LC72
21653	.word	.LANCHOR247
21654	.word	.LC5
21655	.word	.LC6
21656	.word	.LC7
21657	.word	.LANCHOR58
21658	.word	.LANCHOR56
21659	.size	FtlWrite, .-FtlWrite
21660	.section	.text.ftl_vendor_write,"ax",%progbits
21661	.align	1
21662	.global	ftl_vendor_write
21663	.syntax unified
21664	.thumb
21665	.thumb_func
21666	.fpu softvfp
21667	.type	ftl_vendor_write, %function
21668ftl_vendor_write:
21669	@ args = 0, pretend = 0, frame = 0
21670	@ frame_needed = 0, uses_anonymous_args = 0
21671	@ link register save eliminated.
21672	mov	r3, r2
21673	mov	r2, r1
21674	mov	r1, r0
21675	movs	r0, #16
21676	b	FtlWrite
21677	.size	ftl_vendor_write, .-ftl_vendor_write
21678	.section	.text.ftl_sys_write,"ax",%progbits
21679	.align	1
21680	.global	ftl_sys_write
21681	.syntax unified
21682	.thumb
21683	.thumb_func
21684	.fpu softvfp
21685	.type	ftl_sys_write, %function
21686ftl_sys_write:
21687	@ args = 0, pretend = 0, frame = 0
21688	@ frame_needed = 0, uses_anonymous_args = 0
21689	@ link register save eliminated.
21690	mov	r3, r2
21691	mov	r2, r1
21692	add	r1, r0, #256
21693	movs	r0, #16
21694	b	FtlWrite
21695	.size	ftl_sys_write, .-ftl_sys_write
21696	.section	.text.StorageSysDataStore,"ax",%progbits
21697	.align	1
21698	.global	StorageSysDataStore
21699	.syntax unified
21700	.thumb
21701	.thumb_func
21702	.fpu softvfp
21703	.type	StorageSysDataStore, %function
21704StorageSysDataStore:
21705	@ args = 0, pretend = 0, frame = 0
21706	@ frame_needed = 0, uses_anonymous_args = 0
21707	@ link register save eliminated.
21708	mov	r3, r1
21709	movs	r2, #1
21710	add	r1, r0, #256
21711	movs	r0, #16
21712	b	FtlWrite
21713	.size	StorageSysDataStore, .-StorageSysDataStore
21714	.section	.text.FlashBootVendorWrite,"ax",%progbits
21715	.align	1
21716	.global	FlashBootVendorWrite
21717	.syntax unified
21718	.thumb
21719	.thumb_func
21720	.fpu softvfp
21721	.type	FlashBootVendorWrite, %function
21722FlashBootVendorWrite:
21723	@ args = 0, pretend = 0, frame = 0
21724	@ frame_needed = 0, uses_anonymous_args = 0
21725	@ link register save eliminated.
21726	mov	r3, r2
21727	mov	r1, r0
21728	movs	r2, #1
21729	movs	r0, #16
21730	b	FtlWrite
21731	.size	FlashBootVendorWrite, .-FlashBootVendorWrite
21732	.section	.text.ftl_write,"ax",%progbits
21733	.align	1
21734	.global	ftl_write
21735	.syntax unified
21736	.thumb
21737	.thumb_func
21738	.fpu softvfp
21739	.type	ftl_write, %function
21740ftl_write:
21741	@ args = 0, pretend = 0, frame = 0
21742	@ frame_needed = 0, uses_anonymous_args = 0
21743	push	{r4, r5, r6, r7, r8, lr}
21744	mov	r7, r1
21745	mov	r4, r2
21746	mov	r5, r3
21747	mov	r6, r0
21748	cbnz	r0, .L3040
21749	mov	r3, r2
21750	mov	r2, r5
21751	bl	idb_write_data
21752.L3040:
21753	mov	r3, r5
21754	mov	r2, r4
21755	mov	r1, r7
21756	mov	r0, r6
21757	pop	{r4, r5, r6, r7, r8, lr}
21758	b	FtlWrite
21759	.size	ftl_write, .-ftl_write
21760	.section	.text.FtlCheckVpc,"ax",%progbits
21761	.align	1
21762	.global	FtlCheckVpc
21763	.syntax unified
21764	.thumb
21765	.thumb_func
21766	.fpu softvfp
21767	.type	FtlCheckVpc, %function
21768FtlCheckVpc:
21769	@ args = 0, pretend = 0, frame = 8
21770	@ frame_needed = 0, uses_anonymous_args = 0
21771	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
21772	movs	r4, #0
21773	ldr	r6, .L3065
21774	ldr	r5, .L3065+4
21775	ldr	r1, .L3065+8
21776	ldr	r0, .L3065+12
21777	bl	printf
21778	mov	r2, #8192
21779	movs	r1, #0
21780	ldr	r0, .L3065+4
21781	bl	memset
21782.L3042:
21783	ldr	r3, [r6]
21784	cmp	r4, r3
21785	bcc	.L3044
21786	ldr	r7, .L3065+16
21787	movs	r4, #0
21788	ldr	r5, .L3065+20
21789	movs	r2, #2
21790	ldr	r10, .L3065+4
21791	mov	r6, r4
21792	ldr	fp, .L3065+60
21793	mov	r8, r7
21794	ldrh	r3, [r7]
21795	ldr	r1, [r5]
21796	ldr	r0, .L3065+24
21797	bl	rknand_print_hex
21798	ldrh	r3, [r7]
21799	movs	r2, #2
21800	ldr	r1, .L3065+4
21801	ldr	r0, .L3065+28
21802	bl	rknand_print_hex
21803.L3045:
21804	ldrh	r2, [r8]
21805	uxth	r3, r4
21806	cmp	r2, r3
21807	bhi	.L3047
21808	ldr	r3, .L3065+32
21809	ldr	r4, [r3]
21810	cbz	r4, .L3048
21811	ldr	r3, .L3065+36
21812	mov	r8, #0
21813	ldr	r7, .L3065+40
21814	ldr	fp, .L3065+64
21815	ldrh	r10, [r3]
21816	ldr	r3, [r7]
21817	subs	r4, r4, r3
21818	ldr	r3, .L3065+44
21819	asrs	r4, r4, #1
21820	muls	r4, r3, r4
21821	uxth	r4, r4
21822.L3049:
21823	uxth	r3, r8
21824	cmp	r10, r3
21825	bls	.L3048
21826	ldr	r3, [r5]
21827	ldrh	r2, [r3, r4, lsl #1]
21828	cbz	r2, .L3050
21829	ldr	r3, .L3065+4
21830	movs	r6, #1
21831	mov	r1, r4
21832	mov	r0, fp
21833	ldrh	r3, [r3, r4, lsl #1]
21834	bl	printf
21835.L3050:
21836	movs	r3, #6
21837	ldr	r2, [r7]
21838	muls	r4, r3, r4
21839	movw	r3, #65535
21840	add	r8, r8, #1
21841	ldrh	r4, [r2, r4]
21842	cmp	r4, r3
21843	bne	.L3049
21844.L3048:
21845	cbz	r6, .L3041
21846	ldr	r1, .L3065+8
21847	movw	r2, #1669
21848	ldr	r0, .L3065+48
21849	bl	printf
21850	ldr	r1, .L3065+52
21851	ldr	r0, .L3065+56
21852	bl	printf
21853.L3041:
21854	add	sp, sp, #8
21855	@ sp needed
21856	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
21857.L3044:
21858	movs	r2, #0
21859	add	r1, sp, #4
21860	mov	r0, r4
21861	bl	log2phys
21862	ldr	r0, [sp, #4]
21863	adds	r3, r0, #1
21864	beq	.L3043
21865	ubfx	r0, r0, #10, #16
21866	bl	P2V_block_in_plane
21867	ldrh	r3, [r5, r0, lsl #1]
21868	adds	r3, r3, #1
21869	strh	r3, [r5, r0, lsl #1]	@ movhi
21870.L3043:
21871	adds	r4, r4, #1
21872	b	.L3042
21873.L3047:
21874	ldr	r3, [r5]
21875	uxth	r7, r4
21876	ldrh	r2, [r3, r7, lsl #1]
21877	ldrh	r3, [r10, r7, lsl #1]
21878	cmp	r2, r3
21879	beq	.L3046
21880	mov	r1, r7
21881	mov	r0, fp
21882	bl	printf
21883	ldr	r3, [r5]
21884	movw	r2, #65535
21885	ldrh	r3, [r3, r7, lsl #1]
21886	cmp	r3, r2
21887	beq	.L3046
21888	ldrh	r2, [r10, r7, lsl #1]
21889	cmp	r2, r3
21890	it	hi
21891	movhi	r6, #1
21892.L3046:
21893	adds	r4, r4, #1
21894	b	.L3045
21895.L3066:
21896	.align	2
21897.L3065:
21898	.word	.LANCHOR73
21899	.word	check_valid_page_count_table
21900	.word	.LANCHOR248
21901	.word	.LC45
21902	.word	.LANCHOR40
21903	.word	.LANCHOR84
21904	.word	.LC73
21905	.word	.LC74
21906	.word	.LANCHOR88
21907	.word	.LANCHOR89
21908	.word	.LANCHOR82
21909	.word	-1431655765
21910	.word	.LC5
21911	.word	.LC6
21912	.word	.LC7
21913	.word	.LC75
21914	.word	.LC76
21915	.size	FtlCheckVpc, .-FtlCheckVpc
21916	.section	.text.FtlDumpSysBlock,"ax",%progbits
21917	.align	1
21918	.global	FtlDumpSysBlock
21919	.syntax unified
21920	.thumb
21921	.thumb_func
21922	.fpu softvfp
21923	.type	FtlDumpSysBlock, %function
21924FtlDumpSysBlock:
21925	@ args = 0, pretend = 0, frame = 0
21926	@ frame_needed = 0, uses_anonymous_args = 0
21927	push	{r4, r5, r6, r7, r8, r10, fp, lr}
21928	lsl	r10, r0, #10
21929	ldr	r5, .L3074
21930	sub	sp, sp, #24
21931	mov	r7, r0
21932	movs	r6, #0
21933	ldr	r4, .L3074+4
21934	ldr	r3, [r5]
21935	ldr	r8, .L3074+20
21936	mov	fp, r4
21937	str	r3, [r4, #8]
21938	ldr	r3, .L3074+8
21939	ldr	r3, [r3]
21940	str	r3, [r4, #12]
21941.L3068:
21942	ldrh	r2, [r8]
21943	sxth	r3, r6
21944	cmp	r3, r2
21945	blt	.L3070
21946	add	sp, sp, #24
21947	@ sp needed
21948	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
21949.L3070:
21950	movs	r2, #1
21951	orr	r3, r3, r10
21952	mov	r1, r2
21953	mov	r0, fp
21954	str	r3, [r4, #4]
21955	bl	FlashReadPages
21956	ldr	r2, [r4, #8]
21957	mov	r1, r7
21958	ldr	r3, [r4, #12]
21959	ldr	r0, .L3074+12
21960	ldr	r2, [r2]
21961	str	r2, [sp, #16]
21962	ldr	r2, [r3, #12]
21963	str	r2, [sp, #12]
21964	ldr	r2, [r3, #8]
21965	str	r2, [sp, #8]
21966	ldr	r2, [r3, #4]
21967	str	r2, [sp, #4]
21968	ldr	r3, [r3]
21969	str	r3, [sp]
21970	ldm	r4, {r2, r3}
21971	bl	printf
21972	ldr	r3, [r4, #12]
21973	ldr	r3, [r3]
21974	adds	r3, r3, #1
21975	beq	.L3069
21976	mov	r3, #768
21977	movs	r2, #4
21978	ldr	r1, [r5]
21979	ldr	r0, .L3074+16
21980	bl	rknand_print_hex
21981.L3069:
21982	adds	r6, r6, #1
21983	b	.L3068
21984.L3075:
21985	.align	2
21986.L3074:
21987	.word	.LANCHOR183
21988	.word	.LANCHOR202
21989	.word	.LANCHOR188
21990	.word	.LC77
21991	.word	.LC78
21992	.word	.LANCHOR54
21993	.size	FtlDumpSysBlock, .-FtlDumpSysBlock
21994	.section	.text.dump_map_info,"ax",%progbits
21995	.align	1
21996	.global	dump_map_info
21997	.syntax unified
21998	.thumb
21999	.thumb_func
22000	.fpu softvfp
22001	.type	dump_map_info, %function
22002dump_map_info:
22003	@ args = 0, pretend = 0, frame = 16
22004	@ frame_needed = 0, uses_anonymous_args = 0
22005	ldr	r3, .L3090
22006	push	{r4, r5, r6, r7, r8, r10, fp, lr}
22007	sub	sp, sp, #40
22008	ldr	r8, .L3090+72
22009	ldrh	r5, [r3]
22010.L3077:
22011	ldr	r3, .L3090+4
22012	ldrh	r3, [r3]
22013	cmp	r3, r5
22014	bhi	.L3084
22015	ldr	r4, .L3090+8
22016	movs	r7, #0
22017.L3085:
22018	ldr	r3, .L3090+12
22019	sxth	r5, r7
22020	ldrh	r3, [r3]
22021	cmp	r5, r3
22022	bge	.L3088
22023	lsls	r5, r5, #1
22024	movs	r6, #0
22025	ldr	r8, .L3090+76
22026	b	.L3089
22027.L3079:
22028	str	r3, [sp, #36]
22029	mov	r1, r5
22030	ldr	r3, .L3090+16
22031	str	r2, [sp, #32]
22032	ldrb	r0, [r3, r6]	@ zero_extendqisi2
22033	bl	V2P_block
22034	str	r0, [sp, #28]
22035	bl	FtlBbmIsBadBlock
22036	ldr	r2, [sp, #32]
22037	ldr	r3, [sp, #36]
22038	cbnz	r0, .L3078
22039	ldr	r1, [sp, #28]
22040	mla	r0, fp, r4, r7
22041	lsls	r1, r1, #10
22042	str	r3, [r0, #8]
22043	str	r1, [r0, #4]
22044	mul	r1, r10, r4
22045	adds	r4, r4, #1
22046	uxth	r4, r4
22047	bic	ip, r1, #3
22048	ldr	r1, [sp, #24]
22049	add	r1, r1, ip
22050	str	r1, [r0, #12]
22051.L3078:
22052	adds	r6, r6, #1
22053.L3086:
22054	uxth	r1, r6
22055	cmp	r2, r1
22056	bhi	.L3079
22057	cbnz	r4, .L3080
22058.L3083:
22059	adds	r5, r5, #1
22060	uxth	r5, r5
22061	b	.L3077
22062.L3080:
22063	ldr	r10, .L3090+80
22064	mov	r0, r7
22065	movs	r6, #0
22066	movs	r7, #36
22067	movs	r2, #1
22068	mov	r1, r4
22069	bl	FlashReadPages
22070.L3081:
22071	uxth	r3, r6
22072	cmp	r4, r3
22073	bls	.L3083
22074	ldr	r3, [r8]
22075	mla	r3, r7, r6, r3
22076	adds	r6, r6, #1
22077	ldr	r1, [r3, #12]
22078	ldr	r2, [r3, #4]
22079	ldr	r3, [r3, #8]
22080	ldr	r0, [r3, #4]
22081	str	r0, [sp, #16]
22082	mov	r0, r10
22083	ldr	r3, [r3]
22084	str	r3, [sp, #12]
22085	ldr	r3, [r1, #12]
22086	str	r3, [sp, #8]
22087	ldr	r3, [r1, #8]
22088	str	r3, [sp, #4]
22089	ldr	r3, [r1, #4]
22090	str	r3, [sp]
22091	ldr	r3, [r1]
22092	ubfx	r1, r2, #10, #16
22093	bl	printf
22094	b	.L3081
22095.L3084:
22096	ldr	r1, .L3090+20
22097	movs	r6, #0
22098	ldr	r3, .L3090+24
22099	mov	r4, r6
22100	ldr	r7, [r8]
22101	mov	fp, #36
22102	ldr	r1, [r1]
22103	ldrh	r2, [r3]
22104	ldr	r3, .L3090+28
22105	str	r1, [sp, #24]
22106	ldr	r1, .L3090+32
22107	ldr	r3, [r3]
22108	ldrh	r10, [r1]
22109	b	.L3086
22110.L3087:
22111	ldr	r10, .L3090+44
22112	mov	r0, r4
22113	ldr	r2, [r10]
22114	ldrh	r2, [r2, r5]
22115	orr	r3, r3, r2, lsl #10
22116	movs	r2, #1
22117	mov	r1, r2
22118	str	r3, [r4, #4]
22119	bl	FlashReadPages
22120	ldr	r2, [r4, #8]
22121	ldr	r1, [r10]
22122	ldr	r3, [r4, #12]
22123	ldr	r0, [r2, #4]
22124	ldrh	r1, [r1, r5]
22125	str	r0, [sp, #20]
22126	ldr	r2, [r2]
22127	ldr	r0, .L3090+36
22128	str	r2, [sp, #16]
22129	ldr	r2, [r3, #12]
22130	str	r2, [sp, #12]
22131	ldr	r2, [r3, #8]
22132	str	r2, [sp, #8]
22133	ldr	r2, [r3, #4]
22134	str	r2, [sp, #4]
22135	ldr	r3, [r3]
22136	str	r3, [sp]
22137	ldm	r4, {r2, r3}
22138	bl	printf
22139.L3089:
22140	ldrh	r2, [r8]
22141	sxth	r3, r6
22142	adds	r6, r6, #1
22143	cmp	r3, r2
22144	blt	.L3087
22145	adds	r7, r7, #1
22146	b	.L3085
22147.L3088:
22148	ldr	r3, .L3090+40
22149	movs	r2, #2
22150	ldr	r1, .L3090+44
22151	ldr	r0, .L3090+48
22152	ldr	r3, [r3]
22153	ldr	r1, [r1]
22154	bl	rknand_print_hex
22155	ldr	r4, .L3090+52
22156	movs	r2, #4
22157	ldr	r1, .L3090+56
22158	ldr	r0, .L3090+60
22159	ldrh	r3, [r4]
22160	ldr	r1, [r1]
22161	bl	rknand_print_hex
22162	ldr	r1, .L3090+64
22163	movs	r2, #4
22164	ldrh	r3, [r4]
22165	ldr	r0, .L3090+68
22166	ldr	r1, [r1]
22167	add	sp, sp, #40
22168	@ sp needed
22169	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
22170	b	rknand_print_hex
22171.L3091:
22172	.align	2
22173.L3090:
22174	.word	.LANCHOR40
22175	.word	.LANCHOR41
22176	.word	.LANCHOR202
22177	.word	.LANCHOR128
22178	.word	.LANCHOR47
22179	.word	.LANCHOR106
22180	.word	.LANCHOR38
22181	.word	.LANCHOR105
22182	.word	.LANCHOR59
22183	.word	.LC48
22184	.word	.LANCHOR65
22185	.word	.LANCHOR129
22186	.word	.LC80
22187	.word	.LANCHOR67
22188	.word	.LANCHOR131
22189	.word	.LC81
22190	.word	.LANCHOR195
22191	.word	.LC82
22192	.word	.LANCHOR180
22193	.word	.LANCHOR54
22194	.word	.LC79
22195	.size	dump_map_info, .-dump_map_info
22196	.global	FtlMallocOffset
22197	.global	FtlMallocBuffer
22198	.global	LastWritenPbaAddr
22199	.global	gc_ink_free_return_value
22200	.global	check_valid_page_count_table
22201	.global	FtlUpdateVaildLpnCount
22202	.global	g_ect_tbl_power_up_flush
22203	.global	power_up_flag
22204	.global	g_LowFormat
22205	.global	gFtlInitStatus
22206	.global	DeviceCapacity
22207	.global	ToshibaRefValue
22208	.global	Toshiba15RefValue
22209	.global	ToshibaA19RefValue
22210	.global	SamsungRefValue
22211	.global	refValueDefault
22212	.global	random_seed
22213	.global	gSlcNandParaInfo
22214	.global	gNandParaInfo
22215	.global	g_page_map_check_enable
22216	.global	g_power_lost_ecc_error_blk
22217	.global	g_power_lost_recovery_flag
22218	.global	c_mlc_erase_count_value
22219	.global	g_recovery_ppa_tbl
22220	.global	g_recovery_page_min_ver
22221	.global	g_recovery_page_num
22222	.global	g_cur_erase_blk
22223	.global	g_gc_skip_write_count
22224	.global	g_gc_head_data_block_count
22225	.global	g_gc_head_data_block
22226	.global	g_ftl_nand_free_count
22227	.global	g_in_swl_replace
22228	.global	g_in_gc_progress
22229	.global	g_all_blk_used_slc_mode
22230	.global	g_max_erase_count
22231	.global	g_totle_sys_slc_erase_count
22232	.global	g_totle_slc_erase_count
22233	.global	g_min_erase_count
22234	.global	g_totle_avg_erase_count
22235	.global	g_totle_mlc_erase_count
22236	.global	g_totle_l2p_write_count
22237	.global	g_totle_cache_write_count
22238	.global	g_tmp_data_superblock_id
22239	.global	g_totle_read_page_count
22240	.global	g_totle_discard_page_count
22241	.global	g_totle_read_sector
22242	.global	g_totle_write_sector
22243	.global	g_totle_write_page_count
22244	.global	g_totle_gc_page_count
22245	.global	g_gc_blk_index
22246	.global	g_gc_merge_free_blk_threshold
22247	.global	g_gc_free_blk_threshold
22248	.global	g_gc_refresh_block_temp_tbl
22249	.global	g_free_slc_blk_num
22250	.global	g_gc_refresh_block_temp_num
22251	.global	g_gc_bad_block_temp_tbl
22252	.global	g_gc_bad_block_gc_index
22253	.global	g_gc_bad_block_temp_num
22254	.global	g_gc_next_blk_3
22255	.global	g_gc_next_blk_2
22256	.global	g_gc_next_blk_1
22257	.global	g_gc_next_blk
22258	.global	g_gc_cur_blk_max_valid_pages
22259	.global	g_gc_cur_blk_valid_pages
22260	.global	g_gc_page_offset
22261	.global	g_gc_blk_num
22262	.global	p_gc_blk_tbl
22263	.global	p_gc_page_info
22264	.global	g_sys_ext_data
22265	.global	g_sys_save_data
22266	.global	gp_last_act_superblock
22267	.global	g_gc_superblock
22268	.global	g_gc_temp_superblock
22269	.global	g_buffer_superblock
22270	.global	g_active_superblock
22271	.global	g_num_data_superblocks
22272	.global	g_num_free_superblocks
22273	.global	p_data_block_list_tail
22274	.global	p_data_block_list_head
22275	.global	p_free_data_block_list_head
22276	.global	p_data_block_list_table
22277	.global	g_l2p_last_update_region_id
22278	.global	p_l2p_map_buf
22279	.global	p_l2p_ram_map
22280	.global	g_totle_vendor_block
22281	.global	p_vendor_region_ppn_table
22282	.global	p_vendor_block_ver_table
22283	.global	p_vendor_block_valid_page_count
22284	.global	p_vendor_block_table
22285	.global	g_totle_map_block
22286	.global	p_map_region_ppn_check_table
22287	.global	p_map_region_ppn_table
22288	.global	p_map_block_ver_table
22289	.global	p_map_block_valid_page_count
22290	.global	p_map_block_table
22291	.global	p_blk_mode_table
22292	.global	p_valid_page_count_check_table
22293	.global	p_valid_page_count_table
22294	.global	g_totle_swl_count
22295	.global	p_swl_mul_table
22296	.global	p_erase_count_table
22297	.global	g_ect_tbl_info_size
22298	.global	gp_ect_tbl_info
22299	.global	g_gc_num_req
22300	.global	c_gc_page_buf_num
22301	.global	gp_gc_page_buf_info
22302	.global	p_gc_data_buf
22303	.global	p_gc_spare_buf
22304	.global	p_io_spare_buf
22305	.global	p_io_data_buf_1
22306	.global	p_io_data_buf_0
22307	.global	p_sys_spare_buf
22308	.global	p_vendor_data_buf
22309	.global	p_sys_data_buf_1
22310	.global	p_sys_data_buf
22311	.global	p_plane_order_table
22312	.global	g_req_cache
22313	.global	req_gc_dst
22314	.global	req_gc
22315	.global	req_erase
22316	.global	req_prgm
22317	.global	req_read
22318	.global	req_sys
22319	.global	gVendorBlkInfo
22320	.global	gL2pMapInfo
22321	.global	gSysFreeQueue
22322	.global	gSysInfo
22323	.global	gBbtInfo
22324	.global	g_flash_read_only_en
22325	.global	g_inkDie_check_enable
22326	.global	g_SlcPartLbaEndSector
22327	.global	g_MaxLbn
22328	.global	g_VaildLpn
22329	.global	g_MaxLpn
22330	.global	g_MaxLbaSector
22331	.global	g_GlobalDataVersion
22332	.global	g_GlobalSysVersion
22333	.global	ftl_gc_temp_power_lost_recovery_flag
22334	.global	c_ftl_nand_max_data_blks
22335	.global	c_ftl_nand_data_op_blks_per_plane
22336	.global	c_ftl_nand_data_blks_per_plane
22337	.global	c_ftl_nand_max_sys_blks
22338	.global	c_ftl_nand_init_sys_blks_per_plane
22339	.global	c_ftl_nand_sys_blks_per_plane
22340	.global	c_ftl_vendor_part_size
22341	.global	c_ftl_nand_max_vendor_blks
22342	.global	c_ftl_nand_max_map_blks
22343	.global	c_ftl_nand_map_blks_per_plane
22344	.global	c_ftl_nand_vendor_region_num
22345	.global	c_ftl_nand_l2pmap_ram_region_num
22346	.global	c_ftl_nand_map_region_num
22347	.global	c_ftl_nand_totle_phy_blks
22348	.global	c_ftl_nand_reserved_blks
22349	.global	c_ftl_nand_byte_pre_oob
22350	.global	c_ftl_nand_byte_pre_page
22351	.global	c_ftl_nand_sec_pre_page_shift
22352	.global	c_ftl_nand_sec_pre_page
22353	.global	c_ftl_nand_page_pre_super_blk
22354	.global	c_ftl_nand_page_pre_slc_blk
22355	.global	c_ftl_nand_page_pre_blk
22356	.global	c_ftl_nand_bbm_buf_size
22357	.global	c_ftl_nand_ext_blk_pre_plane
22358	.global	c_ftl_nand_blk_pre_plane
22359	.global	c_ftl_nand_planes_num
22360	.global	c_ftl_nand_blks_per_die_shift
22361	.global	c_ftl_nand_blks_per_die
22362	.global	c_ftl_nand_planes_per_die
22363	.global	c_ftl_nand_die_num
22364	.global	c_ftl_nand_type
22365	.global	gMasterTempBuf
22366	.global	gMasterInfo
22367	.global	gNandcDumpWriteEn
22368	.global	gToggleModeClkDiv
22369	.global	gBootDdrMode
22370	.global	gNandcEccBits
22371	.global	gpNandc1
22372	.global	gpNandc
22373	.global	g_nandc_version_data
22374	.global	gNandcVer
22375	.global	gNandChipMap
22376	.global	gNandIDataBuf
22377	.global	FlashDdrTunningReadCount
22378	.global	FlashWaitBusyScheduleEn
22379	.global	gNandPhyInfo
22380	.global	gFlashProgCheckSpareBuffer
22381	.global	gFlashProgCheckBuffer
22382	.global	gFlashSpareBuffer
22383	.global	gFlashPageBuffer1
22384	.global	gFlashPageBuffer0
22385	.global	gpFlashSaveInfo
22386	.global	gReadRetryInfo
22387	.global	gpNandParaInfo
22388	.global	gNandOptPara
22389	.global	g_slc2KBNand
22390	.global	g_maxRetryCount
22391	.global	g_maxRegNum
22392	.global	g_retryMode
22393	.global	gNandIDBResBlkNumSaveInFlash
22394	.global	gNandIDBResBlkNum
22395	.global	gNandFlashResEndPageAddr
22396	.global	gNandFlashInfoBlockAddr
22397	.global	gNandFlashIdbBlockAddr
22398	.global	gNandFlashInfoBlockEcc
22399	.global	gNandFlashIDBEccBits
22400	.global	gNandFlashEccBits
22401	.global	gNandRandomizer
22402	.global	gBlockPageAlignSize
22403	.global	gTotleBlock
22404	.global	gNandMaxChip
22405	.global	gNandMaxDie
22406	.global	gFlashInterfaceMode
22407	.global	gFlashSlcMode
22408	.global	gFlashOnfiModeEn
22409	.global	gFlashToggleModeEn
22410	.global	gFlashSdrModeEn
22411	.global	gMultiPageProgEn
22412	.global	gMultiPageReadEn
22413	.global	gpReadRetrial
22414	.global	mlcPageToSlcPageTbl
22415	.global	slcPageToMlcPageTbl
22416	.global	DieAddrs
22417	.global	gDieOp
22418	.global	DieCsIndex
22419	.global	IDByte
22420	.global	read_retry_cur_offset
22421	.section	.bss.DeviceCapacity,"aw",%nobits
22422	.align	2
22423	.set	.LANCHOR61,. + 0
22424	.type	DeviceCapacity, %object
22425	.size	DeviceCapacity, 4
22426DeviceCapacity:
22427	.space	4
22428	.section	.bss.DieAddrs,"aw",%nobits
22429	.align	2
22430	.set	.LANCHOR17,. + 0
22431	.type	DieAddrs, %object
22432	.size	DieAddrs, 32
22433DieAddrs:
22434	.space	32
22435	.section	.bss.DieCsIndex,"aw",%nobits
22436	.align	2
22437	.set	.LANCHOR26,. + 0
22438	.type	DieCsIndex, %object
22439	.size	DieCsIndex, 8
22440DieCsIndex:
22441	.space	8
22442	.section	.bss.FlashDdrTunningReadCount,"aw",%nobits
22443	.align	2
22444	.set	.LANCHOR144,. + 0
22445	.type	FlashDdrTunningReadCount, %object
22446	.size	FlashDdrTunningReadCount, 4
22447FlashDdrTunningReadCount:
22448	.space	4
22449	.section	.bss.FlashWaitBusyScheduleEn,"aw",%nobits
22450	.align	2
22451	.type	FlashWaitBusyScheduleEn, %object
22452	.size	FlashWaitBusyScheduleEn, 4
22453FlashWaitBusyScheduleEn:
22454	.space	4
22455	.section	.bss.FtlMallocBuffer,"aw",%nobits
22456	.align	6
22457	.type	FtlMallocBuffer, %object
22458	.size	FtlMallocBuffer, 1310720
22459FtlMallocBuffer:
22460	.space	1310720
22461	.section	.bss.FtlUpdateVaildLpnCount,"aw",%nobits
22462	.align	1
22463	.set	.LANCHOR100,. + 0
22464	.type	FtlUpdateVaildLpnCount, %object
22465	.size	FtlUpdateVaildLpnCount, 2
22466FtlUpdateVaildLpnCount:
22467	.space	2
22468	.section	.bss.IDByte,"aw",%nobits
22469	.align	2
22470	.set	.LANCHOR22,. + 0
22471	.type	IDByte, %object
22472	.size	IDByte, 32
22473IDByte:
22474	.space	32
22475	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",%nobits
22476	.align	1
22477	.set	.LANCHOR123,. + 0
22478	.type	c_ftl_nand_bbm_buf_size, %object
22479	.size	c_ftl_nand_bbm_buf_size, 2
22480c_ftl_nand_bbm_buf_size:
22481	.space	2
22482	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",%nobits
22483	.align	1
22484	.set	.LANCHOR41,. + 0
22485	.type	c_ftl_nand_blk_pre_plane, %object
22486	.size	c_ftl_nand_blk_pre_plane, 2
22487c_ftl_nand_blk_pre_plane:
22488	.space	2
22489	.section	.bss.c_ftl_nand_blks_per_die,"aw",%nobits
22490	.align	1
22491	.set	.LANCHOR51,. + 0
22492	.type	c_ftl_nand_blks_per_die, %object
22493	.size	c_ftl_nand_blks_per_die, 2
22494c_ftl_nand_blks_per_die:
22495	.space	2
22496	.section	.bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits
22497	.align	1
22498	.set	.LANCHOR52,. + 0
22499	.type	c_ftl_nand_blks_per_die_shift, %object
22500	.size	c_ftl_nand_blks_per_die_shift, 2
22501c_ftl_nand_blks_per_die_shift:
22502	.space	2
22503	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",%nobits
22504	.align	1
22505	.set	.LANCHOR59,. + 0
22506	.type	c_ftl_nand_byte_pre_oob, %object
22507	.size	c_ftl_nand_byte_pre_oob, 2
22508c_ftl_nand_byte_pre_oob:
22509	.space	2
22510	.section	.bss.c_ftl_nand_byte_pre_page,"aw",%nobits
22511	.align	1
22512	.set	.LANCHOR58,. + 0
22513	.type	c_ftl_nand_byte_pre_page, %object
22514	.size	c_ftl_nand_byte_pre_page, 2
22515c_ftl_nand_byte_pre_page:
22516	.space	2
22517	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits
22518	.align	1
22519	.set	.LANCHOR40,. + 0
22520	.type	c_ftl_nand_data_blks_per_plane, %object
22521	.size	c_ftl_nand_data_blks_per_plane, 2
22522c_ftl_nand_data_blks_per_plane:
22523	.space	2
22524	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits
22525	.align	1
22526	.set	.LANCHOR223,. + 0
22527	.type	c_ftl_nand_data_op_blks_per_plane, %object
22528	.size	c_ftl_nand_data_op_blks_per_plane, 2
22529c_ftl_nand_data_op_blks_per_plane:
22530	.space	2
22531	.section	.bss.c_ftl_nand_die_num,"aw",%nobits
22532	.align	1
22533	.set	.LANCHOR45,. + 0
22534	.type	c_ftl_nand_die_num, %object
22535	.size	c_ftl_nand_die_num, 2
22536c_ftl_nand_die_num:
22537	.space	2
22538	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits
22539	.align	1
22540	.set	.LANCHOR49,. + 0
22541	.type	c_ftl_nand_ext_blk_pre_plane, %object
22542	.size	c_ftl_nand_ext_blk_pre_plane, 2
22543c_ftl_nand_ext_blk_pre_plane:
22544	.space	2
22545	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits
22546	.align	2
22547	.set	.LANCHOR66,. + 0
22548	.type	c_ftl_nand_init_sys_blks_per_plane, %object
22549	.size	c_ftl_nand_init_sys_blks_per_plane, 4
22550c_ftl_nand_init_sys_blks_per_plane:
22551	.space	4
22552	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits
22553	.align	1
22554	.set	.LANCHOR68,. + 0
22555	.type	c_ftl_nand_l2pmap_ram_region_num, %object
22556	.size	c_ftl_nand_l2pmap_ram_region_num, 2
22557c_ftl_nand_l2pmap_ram_region_num:
22558	.space	2
22559	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits
22560	.align	1
22561	.set	.LANCHOR64,. + 0
22562	.type	c_ftl_nand_map_blks_per_plane, %object
22563	.size	c_ftl_nand_map_blks_per_plane, 2
22564c_ftl_nand_map_blks_per_plane:
22565	.space	2
22566	.section	.bss.c_ftl_nand_map_region_num,"aw",%nobits
22567	.align	1
22568	.set	.LANCHOR67,. + 0
22569	.type	c_ftl_nand_map_region_num, %object
22570	.size	c_ftl_nand_map_region_num, 2
22571c_ftl_nand_map_region_num:
22572	.space	2
22573	.section	.bss.c_ftl_nand_max_data_blks,"aw",%nobits
22574	.align	2
22575	.set	.LANCHOR42,. + 0
22576	.type	c_ftl_nand_max_data_blks, %object
22577	.size	c_ftl_nand_max_data_blks, 4
22578c_ftl_nand_max_data_blks:
22579	.space	4
22580	.section	.bss.c_ftl_nand_max_map_blks,"aw",%nobits
22581	.align	2
22582	.set	.LANCHOR65,. + 0
22583	.type	c_ftl_nand_max_map_blks, %object
22584	.size	c_ftl_nand_max_map_blks, 4
22585c_ftl_nand_max_map_blks:
22586	.space	4
22587	.section	.bss.c_ftl_nand_max_sys_blks,"aw",%nobits
22588	.align	2
22589	.set	.LANCHOR39,. + 0
22590	.type	c_ftl_nand_max_sys_blks, %object
22591	.size	c_ftl_nand_max_sys_blks, 4
22592c_ftl_nand_max_sys_blks:
22593	.space	4
22594	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",%nobits
22595	.align	1
22596	.set	.LANCHOR62,. + 0
22597	.type	c_ftl_nand_max_vendor_blks, %object
22598	.size	c_ftl_nand_max_vendor_blks, 2
22599c_ftl_nand_max_vendor_blks:
22600	.space	2
22601	.section	.bss.c_ftl_nand_page_pre_blk,"aw",%nobits
22602	.align	1
22603	.set	.LANCHOR53,. + 0
22604	.type	c_ftl_nand_page_pre_blk, %object
22605	.size	c_ftl_nand_page_pre_blk, 2
22606c_ftl_nand_page_pre_blk:
22607	.space	2
22608	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits
22609	.align	1
22610	.set	.LANCHOR54,. + 0
22611	.type	c_ftl_nand_page_pre_slc_blk, %object
22612	.size	c_ftl_nand_page_pre_slc_blk, 2
22613c_ftl_nand_page_pre_slc_blk:
22614	.space	2
22615	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits
22616	.align	1
22617	.set	.LANCHOR55,. + 0
22618	.type	c_ftl_nand_page_pre_super_blk, %object
22619	.size	c_ftl_nand_page_pre_super_blk, 2
22620c_ftl_nand_page_pre_super_blk:
22621	.space	2
22622	.section	.bss.c_ftl_nand_planes_num,"aw",%nobits
22623	.align	1
22624	.set	.LANCHOR38,. + 0
22625	.type	c_ftl_nand_planes_num, %object
22626	.size	c_ftl_nand_planes_num, 2
22627c_ftl_nand_planes_num:
22628	.space	2
22629	.section	.bss.c_ftl_nand_planes_per_die,"aw",%nobits
22630	.align	1
22631	.set	.LANCHOR46,. + 0
22632	.type	c_ftl_nand_planes_per_die, %object
22633	.size	c_ftl_nand_planes_per_die, 2
22634c_ftl_nand_planes_per_die:
22635	.space	2
22636	.section	.bss.c_ftl_nand_reserved_blks,"aw",%nobits
22637	.align	1
22638	.set	.LANCHOR60,. + 0
22639	.type	c_ftl_nand_reserved_blks, %object
22640	.size	c_ftl_nand_reserved_blks, 2
22641c_ftl_nand_reserved_blks:
22642	.space	2
22643	.section	.bss.c_ftl_nand_sec_pre_page,"aw",%nobits
22644	.align	1
22645	.set	.LANCHOR56,. + 0
22646	.type	c_ftl_nand_sec_pre_page, %object
22647	.size	c_ftl_nand_sec_pre_page, 2
22648c_ftl_nand_sec_pre_page:
22649	.space	2
22650	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits
22651	.align	1
22652	.set	.LANCHOR57,. + 0
22653	.type	c_ftl_nand_sec_pre_page_shift, %object
22654	.size	c_ftl_nand_sec_pre_page_shift, 2
22655c_ftl_nand_sec_pre_page_shift:
22656	.space	2
22657	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits
22658	.align	2
22659	.set	.LANCHOR37,. + 0
22660	.type	c_ftl_nand_sys_blks_per_plane, %object
22661	.size	c_ftl_nand_sys_blks_per_plane, 4
22662c_ftl_nand_sys_blks_per_plane:
22663	.space	4
22664	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",%nobits
22665	.align	2
22666	.set	.LANCHOR43,. + 0
22667	.type	c_ftl_nand_totle_phy_blks, %object
22668	.size	c_ftl_nand_totle_phy_blks, 4
22669c_ftl_nand_totle_phy_blks:
22670	.space	4
22671	.section	.bss.c_ftl_nand_type,"aw",%nobits
22672	.align	1
22673	.set	.LANCHOR44,. + 0
22674	.type	c_ftl_nand_type, %object
22675	.size	c_ftl_nand_type, 2
22676c_ftl_nand_type:
22677	.space	2
22678	.section	.bss.c_ftl_nand_vendor_region_num,"aw",%nobits
22679	.align	1
22680	.set	.LANCHOR63,. + 0
22681	.type	c_ftl_nand_vendor_region_num, %object
22682	.size	c_ftl_nand_vendor_region_num, 2
22683c_ftl_nand_vendor_region_num:
22684	.space	2
22685	.section	.bss.c_ftl_vendor_part_size,"aw",%nobits
22686	.align	1
22687	.set	.LANCHOR50,. + 0
22688	.type	c_ftl_vendor_part_size, %object
22689	.size	c_ftl_vendor_part_size, 2
22690c_ftl_vendor_part_size:
22691	.space	2
22692	.section	.bss.c_gc_page_buf_num,"aw",%nobits
22693	.align	2
22694	.set	.LANCHOR108,. + 0
22695	.type	c_gc_page_buf_num, %object
22696	.size	c_gc_page_buf_num, 4
22697c_gc_page_buf_num:
22698	.space	4
22699	.section	.bss.c_mlc_erase_count_value,"aw",%nobits
22700	.align	1
22701	.set	.LANCHOR48,. + 0
22702	.type	c_mlc_erase_count_value, %object
22703	.size	c_mlc_erase_count_value, 2
22704c_mlc_erase_count_value:
22705	.space	2
22706	.section	.bss.check_valid_page_count_table,"aw",%nobits
22707	.align	1
22708	.type	check_valid_page_count_table, %object
22709	.size	check_valid_page_count_table, 8192
22710check_valid_page_count_table:
22711	.space	8192
22712	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits
22713	.align	2
22714	.set	.LANCHOR135,. + 0
22715	.type	ftl_gc_temp_power_lost_recovery_flag, %object
22716	.size	ftl_gc_temp_power_lost_recovery_flag, 4
22717ftl_gc_temp_power_lost_recovery_flag:
22718	.space	4
22719	.section	.bss.gBbtInfo,"aw",%nobits
22720	.align	2
22721	.set	.LANCHOR75,. + 0
22722	.type	gBbtInfo, %object
22723	.size	gBbtInfo, 60
22724gBbtInfo:
22725	.space	60
22726	.section	.bss.gBlockPageAlignSize,"aw",%nobits
22727	.align	2
22728	.set	.LANCHOR3,. + 0
22729	.type	gBlockPageAlignSize, %object
22730	.size	gBlockPageAlignSize, 4
22731gBlockPageAlignSize:
22732	.space	4
22733	.section	.bss.gBootDdrMode,"aw",%nobits
22734	.align	2
22735	.set	.LANCHOR155,. + 0
22736	.type	gBootDdrMode, %object
22737	.size	gBootDdrMode, 4
22738gBootDdrMode:
22739	.space	4
22740	.section	.bss.gDieOp,"aw",%nobits
22741	.align	2
22742	.set	.LANCHOR23,. + 0
22743	.type	gDieOp, %object
22744	.size	gDieOp, 128
22745gDieOp:
22746	.space	128
22747	.section	.bss.gFlashInterfaceMode,"aw",%nobits
22748	.set	.LANCHOR24,. + 0
22749	.type	gFlashInterfaceMode, %object
22750	.size	gFlashInterfaceMode, 1
22751gFlashInterfaceMode:
22752	.space	1
22753	.section	.bss.gFlashOnfiModeEn,"aw",%nobits
22754	.type	gFlashOnfiModeEn, %object
22755	.size	gFlashOnfiModeEn, 1
22756gFlashOnfiModeEn:
22757	.space	1
22758	.section	.bss.gFlashPageBuffer0,"aw",%nobits
22759	.align	2
22760	.set	.LANCHOR147,. + 0
22761	.type	gFlashPageBuffer0, %object
22762	.size	gFlashPageBuffer0, 4
22763gFlashPageBuffer0:
22764	.space	4
22765	.section	.bss.gFlashPageBuffer1,"aw",%nobits
22766	.align	2
22767	.set	.LANCHOR153,. + 0
22768	.type	gFlashPageBuffer1, %object
22769	.size	gFlashPageBuffer1, 4
22770gFlashPageBuffer1:
22771	.space	4
22772	.section	.bss.gFlashProgCheckBuffer,"aw",%nobits
22773	.align	2
22774	.set	.LANCHOR198,. + 0
22775	.type	gFlashProgCheckBuffer, %object
22776	.size	gFlashProgCheckBuffer, 4
22777gFlashProgCheckBuffer:
22778	.space	4
22779	.section	.bss.gFlashProgCheckSpareBuffer,"aw",%nobits
22780	.align	2
22781	.set	.LANCHOR199,. + 0
22782	.type	gFlashProgCheckSpareBuffer, %object
22783	.size	gFlashProgCheckSpareBuffer, 4
22784gFlashProgCheckSpareBuffer:
22785	.space	4
22786	.section	.bss.gFlashSdrModeEn,"aw",%nobits
22787	.type	gFlashSdrModeEn, %object
22788	.size	gFlashSdrModeEn, 1
22789gFlashSdrModeEn:
22790	.space	1
22791	.section	.bss.gFlashSlcMode,"aw",%nobits
22792	.set	.LANCHOR8,. + 0
22793	.type	gFlashSlcMode, %object
22794	.size	gFlashSlcMode, 1
22795gFlashSlcMode:
22796	.space	1
22797	.section	.bss.gFlashSpareBuffer,"aw",%nobits
22798	.align	2
22799	.set	.LANCHOR197,. + 0
22800	.type	gFlashSpareBuffer, %object
22801	.size	gFlashSpareBuffer, 4
22802gFlashSpareBuffer:
22803	.space	4
22804	.section	.bss.gFlashToggleModeEn,"aw",%nobits
22805	.set	.LANCHOR30,. + 0
22806	.type	gFlashToggleModeEn, %object
22807	.size	gFlashToggleModeEn, 1
22808gFlashToggleModeEn:
22809	.space	1
22810	.section	.bss.gL2pMapInfo,"aw",%nobits
22811	.align	2
22812	.set	.LANCHOR127,. + 0
22813	.type	gL2pMapInfo, %object
22814	.size	gL2pMapInfo, 44
22815gL2pMapInfo:
22816	.space	44
22817	.section	.bss.gMasterInfo,"aw",%nobits
22818	.align	2
22819	.set	.LANCHOR35,. + 0
22820	.type	gMasterInfo, %object
22821	.size	gMasterInfo, 32
22822gMasterInfo:
22823	.space	32
22824	.section	.bss.gMasterTempBuf,"aw",%nobits
22825	.align	2
22826	.set	.LANCHOR156,. + 0
22827	.type	gMasterTempBuf, %object
22828	.size	gMasterTempBuf, 4
22829gMasterTempBuf:
22830	.space	4
22831	.section	.bss.gMultiPageProgEn,"aw",%nobits
22832	.set	.LANCHOR27,. + 0
22833	.type	gMultiPageProgEn, %object
22834	.size	gMultiPageProgEn, 1
22835gMultiPageProgEn:
22836	.space	1
22837	.section	.bss.gMultiPageReadEn,"aw",%nobits
22838	.set	.LANCHOR201,. + 0
22839	.type	gMultiPageReadEn, %object
22840	.size	gMultiPageReadEn, 1
22841gMultiPageReadEn:
22842	.space	1
22843	.section	.bss.gNandChipMap,"aw",%nobits
22844	.align	2
22845	.set	.LANCHOR6,. + 0
22846	.type	gNandChipMap, %object
22847	.size	gNandChipMap, 32
22848gNandChipMap:
22849	.space	32
22850	.section	.bss.gNandFlashEccBits,"aw",%nobits
22851	.set	.LANCHOR33,. + 0
22852	.type	gNandFlashEccBits, %object
22853	.size	gNandFlashEccBits, 1
22854gNandFlashEccBits:
22855	.space	1
22856	.section	.bss.gNandFlashIDBEccBits,"aw",%nobits
22857	.set	.LANCHOR152,. + 0
22858	.type	gNandFlashIDBEccBits, %object
22859	.size	gNandFlashIDBEccBits, 1
22860gNandFlashIDBEccBits:
22861	.space	1
22862	.section	.bss.gNandFlashIdbBlockAddr,"aw",%nobits
22863	.align	2
22864	.set	.LANCHOR149,. + 0
22865	.type	gNandFlashIdbBlockAddr, %object
22866	.size	gNandFlashIdbBlockAddr, 4
22867gNandFlashIdbBlockAddr:
22868	.space	4
22869	.section	.bss.gNandFlashInfoBlockAddr,"aw",%nobits
22870	.align	2
22871	.set	.LANCHOR148,. + 0
22872	.type	gNandFlashInfoBlockAddr, %object
22873	.size	gNandFlashInfoBlockAddr, 4
22874gNandFlashInfoBlockAddr:
22875	.space	4
22876	.section	.bss.gNandFlashInfoBlockEcc,"aw",%nobits
22877	.type	gNandFlashInfoBlockEcc, %object
22878	.size	gNandFlashInfoBlockEcc, 1
22879gNandFlashInfoBlockEcc:
22880	.space	1
22881	.section	.bss.gNandFlashResEndPageAddr,"aw",%nobits
22882	.align	2
22883	.type	gNandFlashResEndPageAddr, %object
22884	.size	gNandFlashResEndPageAddr, 4
22885gNandFlashResEndPageAddr:
22886	.space	4
22887	.section	.bss.gNandIDBResBlkNum,"aw",%nobits
22888	.set	.LANCHOR2,. + 0
22889	.type	gNandIDBResBlkNum, %object
22890	.size	gNandIDBResBlkNum, 1
22891gNandIDBResBlkNum:
22892	.space	1
22893	.section	.bss.gNandIDBResBlkNumSaveInFlash,"aw",%nobits
22894	.set	.LANCHOR150,. + 0
22895	.type	gNandIDBResBlkNumSaveInFlash, %object
22896	.size	gNandIDBResBlkNumSaveInFlash, 1
22897gNandIDBResBlkNumSaveInFlash:
22898	.space	1
22899	.section	.bss.gNandIDataBuf,"aw",%nobits
22900	.align	2
22901	.set	.LANCHOR141,. + 0
22902	.type	gNandIDataBuf, %object
22903	.size	gNandIDataBuf, 2048
22904gNandIDataBuf:
22905	.space	2048
22906	.section	.bss.gNandMaxChip,"aw",%nobits
22907	.set	.LANCHOR121,. + 0
22908	.type	gNandMaxChip, %object
22909	.size	gNandMaxChip, 1
22910gNandMaxChip:
22911	.space	1
22912	.section	.bss.gNandMaxDie,"aw",%nobits
22913	.set	.LANCHOR25,. + 0
22914	.type	gNandMaxDie, %object
22915	.size	gNandMaxDie, 1
22916gNandMaxDie:
22917	.space	1
22918	.section	.bss.gNandOptPara,"aw",%nobits
22919	.set	.LANCHOR7,. + 0
22920	.type	gNandOptPara, %object
22921	.size	gNandOptPara, 32
22922gNandOptPara:
22923	.space	32
22924	.section	.bss.gNandPhyInfo,"aw",%nobits
22925	.align	2
22926	.set	.LANCHOR15,. + 0
22927	.type	gNandPhyInfo, %object
22928	.size	gNandPhyInfo, 28
22929gNandPhyInfo:
22930	.space	28
22931	.section	.bss.gNandRandomizer,"aw",%nobits
22932	.set	.LANCHOR5,. + 0
22933	.type	gNandRandomizer, %object
22934	.size	gNandRandomizer, 1
22935gNandRandomizer:
22936	.space	1
22937	.section	.bss.gNandcDumpWriteEn,"aw",%nobits
22938	.align	2
22939	.set	.LANCHOR36,. + 0
22940	.type	gNandcDumpWriteEn, %object
22941	.size	gNandcDumpWriteEn, 4
22942gNandcDumpWriteEn:
22943	.space	4
22944	.section	.bss.gNandcEccBits,"aw",%nobits
22945	.align	2
22946	.set	.LANCHOR32,. + 0
22947	.type	gNandcEccBits, %object
22948	.size	gNandcEccBits, 4
22949gNandcEccBits:
22950	.space	4
22951	.section	.bss.gNandcVer,"aw",%nobits
22952	.align	2
22953	.set	.LANCHOR34,. + 0
22954	.type	gNandcVer, %object
22955	.size	gNandcVer, 4
22956gNandcVer:
22957	.space	4
22958	.section	.bss.gReadRetryInfo,"aw",%nobits
22959	.set	.LANCHOR20,. + 0
22960	.type	gReadRetryInfo, %object
22961	.size	gReadRetryInfo, 852
22962gReadRetryInfo:
22963	.space	852
22964	.section	.bss.gSysFreeQueue,"aw",%nobits
22965	.align	1
22966	.set	.LANCHOR76,. + 0
22967	.type	gSysFreeQueue, %object
22968	.size	gSysFreeQueue, 2056
22969gSysFreeQueue:
22970	.space	2056
22971	.section	.bss.gSysInfo,"aw",%nobits
22972	.align	2
22973	.set	.LANCHOR209,. + 0
22974	.type	gSysInfo, %object
22975	.size	gSysInfo, 12
22976gSysInfo:
22977	.space	12
22978	.section	.bss.gToggleModeClkDiv,"aw",%nobits
22979	.align	2
22980	.type	gToggleModeClkDiv, %object
22981	.size	gToggleModeClkDiv, 4
22982gToggleModeClkDiv:
22983	.space	4
22984	.section	.bss.gTotleBlock,"aw",%nobits
22985	.align	1
22986	.set	.LANCHOR122,. + 0
22987	.type	gTotleBlock, %object
22988	.size	gTotleBlock, 2
22989gTotleBlock:
22990	.space	2
22991	.section	.bss.gVendorBlkInfo,"aw",%nobits
22992	.align	2
22993	.set	.LANCHOR215,. + 0
22994	.type	gVendorBlkInfo, %object
22995	.size	gVendorBlkInfo, 44
22996gVendorBlkInfo:
22997	.space	44
22998	.section	.bss.g_GlobalDataVersion,"aw",%nobits
22999	.align	2
23000	.set	.LANCHOR160,. + 0
23001	.type	g_GlobalDataVersion, %object
23002	.size	g_GlobalDataVersion, 4
23003g_GlobalDataVersion:
23004	.space	4
23005	.section	.bss.g_GlobalSysVersion,"aw",%nobits
23006	.align	2
23007	.set	.LANCHOR159,. + 0
23008	.type	g_GlobalSysVersion, %object
23009	.size	g_GlobalSysVersion, 4
23010g_GlobalSysVersion:
23011	.space	4
23012	.section	.bss.g_LowFormat,"aw",%nobits
23013	.align	2
23014	.set	.LANCHOR244,. + 0
23015	.type	g_LowFormat, %object
23016	.size	g_LowFormat, 4
23017g_LowFormat:
23018	.space	4
23019	.section	.bss.g_MaxLbaSector,"aw",%nobits
23020	.align	2
23021	.set	.LANCHOR69,. + 0
23022	.type	g_MaxLbaSector, %object
23023	.size	g_MaxLbaSector, 4
23024g_MaxLbaSector:
23025	.space	4
23026	.section	.bss.g_MaxLbn,"aw",%nobits
23027	.align	2
23028	.set	.LANCHOR222,. + 0
23029	.type	g_MaxLbn, %object
23030	.size	g_MaxLbn, 4
23031g_MaxLbn:
23032	.space	4
23033	.section	.bss.g_MaxLpn,"aw",%nobits
23034	.align	2
23035	.set	.LANCHOR73,. + 0
23036	.type	g_MaxLpn, %object
23037	.size	g_MaxLpn, 4
23038g_MaxLpn:
23039	.space	4
23040	.section	.bss.g_SlcPartLbaEndSector,"aw",%nobits
23041	.align	2
23042	.set	.LANCHOR157,. + 0
23043	.type	g_SlcPartLbaEndSector, %object
23044	.size	g_SlcPartLbaEndSector, 4
23045g_SlcPartLbaEndSector:
23046	.space	4
23047	.section	.bss.g_VaildLpn,"aw",%nobits
23048	.align	2
23049	.set	.LANCHOR101,. + 0
23050	.type	g_VaildLpn, %object
23051	.size	g_VaildLpn, 4
23052g_VaildLpn:
23053	.space	4
23054	.section	.bss.g_active_superblock,"aw",%nobits
23055	.align	2
23056	.set	.LANCHOR92,. + 0
23057	.type	g_active_superblock, %object
23058	.size	g_active_superblock, 48
23059g_active_superblock:
23060	.space	48
23061	.section	.bss.g_all_blk_used_slc_mode,"aw",%nobits
23062	.align	2
23063	.set	.LANCHOR158,. + 0
23064	.type	g_all_blk_used_slc_mode, %object
23065	.size	g_all_blk_used_slc_mode, 4
23066g_all_blk_used_slc_mode:
23067	.space	4
23068	.section	.bss.g_buffer_superblock,"aw",%nobits
23069	.align	2
23070	.set	.LANCHOR93,. + 0
23071	.type	g_buffer_superblock, %object
23072	.size	g_buffer_superblock, 48
23073g_buffer_superblock:
23074	.space	48
23075	.section	.bss.g_cur_erase_blk,"aw",%nobits
23076	.align	2
23077	.set	.LANCHOR74,. + 0
23078	.type	g_cur_erase_blk, %object
23079	.size	g_cur_erase_blk, 4
23080g_cur_erase_blk:
23081	.space	4
23082	.section	.bss.g_ect_tbl_info_size,"aw",%nobits
23083	.align	1
23084	.set	.LANCHOR190,. + 0
23085	.type	g_ect_tbl_info_size, %object
23086	.size	g_ect_tbl_info_size, 2
23087g_ect_tbl_info_size:
23088	.space	2
23089	.section	.bss.g_ect_tbl_power_up_flush,"aw",%nobits
23090	.align	1
23091	.set	.LANCHOR218,. + 0
23092	.type	g_ect_tbl_power_up_flush, %object
23093	.size	g_ect_tbl_power_up_flush, 2
23094g_ect_tbl_power_up_flush:
23095	.space	2
23096	.section	.bss.g_flash_read_only_en,"aw",%nobits
23097	.align	2
23098	.set	.LANCHOR77,. + 0
23099	.type	g_flash_read_only_en, %object
23100	.size	g_flash_read_only_en, 4
23101g_flash_read_only_en:
23102	.space	4
23103	.section	.bss.g_free_slc_blk_num,"aw",%nobits
23104	.align	1
23105	.set	.LANCHOR139,. + 0
23106	.type	g_free_slc_blk_num, %object
23107	.size	g_free_slc_blk_num, 2
23108g_free_slc_blk_num:
23109	.space	2
23110	.section	.bss.g_ftl_nand_free_count,"aw",%nobits
23111	.align	2
23112	.set	.LANCHOR246,. + 0
23113	.type	g_ftl_nand_free_count, %object
23114	.size	g_ftl_nand_free_count, 4
23115g_ftl_nand_free_count:
23116	.space	4
23117	.section	.bss.g_gc_bad_block_gc_index,"aw",%nobits
23118	.align	1
23119	.set	.LANCHOR119,. + 0
23120	.type	g_gc_bad_block_gc_index, %object
23121	.size	g_gc_bad_block_gc_index, 2
23122g_gc_bad_block_gc_index:
23123	.space	2
23124	.section	.bss.g_gc_bad_block_temp_num,"aw",%nobits
23125	.align	1
23126	.set	.LANCHOR117,. + 0
23127	.type	g_gc_bad_block_temp_num, %object
23128	.size	g_gc_bad_block_temp_num, 2
23129g_gc_bad_block_temp_num:
23130	.space	2
23131	.section	.bss.g_gc_bad_block_temp_tbl,"aw",%nobits
23132	.align	1
23133	.set	.LANCHOR118,. + 0
23134	.type	g_gc_bad_block_temp_tbl, %object
23135	.size	g_gc_bad_block_temp_tbl, 34
23136g_gc_bad_block_temp_tbl:
23137	.space	34
23138	.section	.bss.g_gc_blk_index,"aw",%nobits
23139	.align	1
23140	.set	.LANCHOR178,. + 0
23141	.type	g_gc_blk_index, %object
23142	.size	g_gc_blk_index, 2
23143g_gc_blk_index:
23144	.space	2
23145	.section	.bss.g_gc_blk_num,"aw",%nobits
23146	.align	1
23147	.set	.LANCHOR110,. + 0
23148	.type	g_gc_blk_num, %object
23149	.size	g_gc_blk_num, 2
23150g_gc_blk_num:
23151	.space	2
23152	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits
23153	.align	1
23154	.set	.LANCHOR242,. + 0
23155	.type	g_gc_cur_blk_max_valid_pages, %object
23156	.size	g_gc_cur_blk_max_valid_pages, 2
23157g_gc_cur_blk_max_valid_pages:
23158	.space	2
23159	.section	.bss.g_gc_cur_blk_valid_pages,"aw",%nobits
23160	.align	1
23161	.set	.LANCHOR241,. + 0
23162	.type	g_gc_cur_blk_valid_pages, %object
23163	.size	g_gc_cur_blk_valid_pages, 2
23164g_gc_cur_blk_valid_pages:
23165	.space	2
23166	.section	.bss.g_gc_free_blk_threshold,"aw",%nobits
23167	.align	1
23168	.set	.LANCHOR176,. + 0
23169	.type	g_gc_free_blk_threshold, %object
23170	.size	g_gc_free_blk_threshold, 2
23171g_gc_free_blk_threshold:
23172	.space	2
23173	.section	.bss.g_gc_head_data_block,"aw",%nobits
23174	.align	2
23175	.set	.LANCHOR173,. + 0
23176	.type	g_gc_head_data_block, %object
23177	.size	g_gc_head_data_block, 4
23178g_gc_head_data_block:
23179	.space	4
23180	.section	.bss.g_gc_head_data_block_count,"aw",%nobits
23181	.align	2
23182	.set	.LANCHOR174,. + 0
23183	.type	g_gc_head_data_block_count, %object
23184	.size	g_gc_head_data_block_count, 4
23185g_gc_head_data_block_count:
23186	.space	4
23187	.section	.bss.g_gc_merge_free_blk_threshold,"aw",%nobits
23188	.align	1
23189	.set	.LANCHOR177,. + 0
23190	.type	g_gc_merge_free_blk_threshold, %object
23191	.size	g_gc_merge_free_blk_threshold, 2
23192g_gc_merge_free_blk_threshold:
23193	.space	2
23194	.section	.bss.g_gc_next_blk,"aw",%nobits
23195	.align	1
23196	.set	.LANCHOR113,. + 0
23197	.type	g_gc_next_blk, %object
23198	.size	g_gc_next_blk, 2
23199g_gc_next_blk:
23200	.space	2
23201	.section	.bss.g_gc_next_blk_1,"aw",%nobits
23202	.align	1
23203	.set	.LANCHOR114,. + 0
23204	.type	g_gc_next_blk_1, %object
23205	.size	g_gc_next_blk_1, 2
23206g_gc_next_blk_1:
23207	.space	2
23208	.section	.bss.g_gc_next_blk_2,"aw",%nobits
23209	.align	1
23210	.set	.LANCHOR115,. + 0
23211	.type	g_gc_next_blk_2, %object
23212	.size	g_gc_next_blk_2, 2
23213g_gc_next_blk_2:
23214	.space	2
23215	.section	.bss.g_gc_next_blk_3,"aw",%nobits
23216	.align	1
23217	.set	.LANCHOR116,. + 0
23218	.type	g_gc_next_blk_3, %object
23219	.size	g_gc_next_blk_3, 2
23220g_gc_next_blk_3:
23221	.space	2
23222	.section	.bss.g_gc_num_req,"aw",%nobits
23223	.align	2
23224	.set	.LANCHOR103,. + 0
23225	.type	g_gc_num_req, %object
23226	.size	g_gc_num_req, 4
23227g_gc_num_req:
23228	.space	4
23229	.section	.bss.g_gc_page_offset,"aw",%nobits
23230	.align	1
23231	.set	.LANCHOR111,. + 0
23232	.type	g_gc_page_offset, %object
23233	.size	g_gc_page_offset, 2
23234g_gc_page_offset:
23235	.space	2
23236	.section	.bss.g_gc_refresh_block_temp_num,"aw",%nobits
23237	.align	1
23238	.set	.LANCHOR179,. + 0
23239	.type	g_gc_refresh_block_temp_num, %object
23240	.size	g_gc_refresh_block_temp_num, 2
23241g_gc_refresh_block_temp_num:
23242	.space	2
23243	.section	.bss.g_gc_refresh_block_temp_tbl,"aw",%nobits
23244	.align	1
23245	.type	g_gc_refresh_block_temp_tbl, %object
23246	.size	g_gc_refresh_block_temp_tbl, 34
23247g_gc_refresh_block_temp_tbl:
23248	.space	34
23249	.section	.bss.g_gc_skip_write_count,"aw",%nobits
23250	.align	2
23251	.set	.LANCHOR175,. + 0
23252	.type	g_gc_skip_write_count, %object
23253	.size	g_gc_skip_write_count, 4
23254g_gc_skip_write_count:
23255	.space	4
23256	.section	.bss.g_gc_superblock,"aw",%nobits
23257	.align	2
23258	.set	.LANCHOR204,. + 0
23259	.type	g_gc_superblock, %object
23260	.size	g_gc_superblock, 48
23261g_gc_superblock:
23262	.space	48
23263	.section	.bss.g_gc_temp_superblock,"aw",%nobits
23264	.align	2
23265	.set	.LANCHOR94,. + 0
23266	.type	g_gc_temp_superblock, %object
23267	.size	g_gc_temp_superblock, 48
23268g_gc_temp_superblock:
23269	.space	48
23270	.section	.bss.g_in_gc_progress,"aw",%nobits
23271	.align	2
23272	.set	.LANCHOR171,. + 0
23273	.type	g_in_gc_progress, %object
23274	.size	g_in_gc_progress, 4
23275g_in_gc_progress:
23276	.space	4
23277	.section	.bss.g_in_swl_replace,"aw",%nobits
23278	.align	2
23279	.set	.LANCHOR172,. + 0
23280	.type	g_in_swl_replace, %object
23281	.size	g_in_swl_replace, 4
23282g_in_swl_replace:
23283	.space	4
23284	.section	.bss.g_inkDie_check_enable,"aw",%nobits
23285	.align	2
23286	.set	.LANCHOR28,. + 0
23287	.type	g_inkDie_check_enable, %object
23288	.size	g_inkDie_check_enable, 4
23289g_inkDie_check_enable:
23290	.space	4
23291	.section	.bss.g_l2p_last_update_region_id,"aw",%nobits
23292	.align	1
23293	.set	.LANCHOR98,. + 0
23294	.type	g_l2p_last_update_region_id, %object
23295	.size	g_l2p_last_update_region_id, 2
23296g_l2p_last_update_region_id:
23297	.space	2
23298	.section	.bss.g_maxRegNum,"aw",%nobits
23299	.set	.LANCHOR13,. + 0
23300	.type	g_maxRegNum, %object
23301	.size	g_maxRegNum, 1
23302g_maxRegNum:
23303	.space	1
23304	.section	.bss.g_maxRetryCount,"aw",%nobits
23305	.set	.LANCHOR151,. + 0
23306	.type	g_maxRetryCount, %object
23307	.size	g_maxRetryCount, 1
23308g_maxRetryCount:
23309	.space	1
23310	.section	.bss.g_max_erase_count,"aw",%nobits
23311	.align	2
23312	.set	.LANCHOR169,. + 0
23313	.type	g_max_erase_count, %object
23314	.size	g_max_erase_count, 4
23315g_max_erase_count:
23316	.space	4
23317	.section	.bss.g_min_erase_count,"aw",%nobits
23318	.align	2
23319	.set	.LANCHOR170,. + 0
23320	.type	g_min_erase_count, %object
23321	.size	g_min_erase_count, 4
23322g_min_erase_count:
23323	.space	4
23324	.section	.bss.g_nandc_version_data,"aw",%nobits
23325	.align	2
23326	.set	.LANCHOR29,. + 0
23327	.type	g_nandc_version_data, %object
23328	.size	g_nandc_version_data, 4
23329g_nandc_version_data:
23330	.space	4
23331	.section	.bss.g_num_data_superblocks,"aw",%nobits
23332	.align	1
23333	.set	.LANCHOR86,. + 0
23334	.type	g_num_data_superblocks, %object
23335	.size	g_num_data_superblocks, 2
23336g_num_data_superblocks:
23337	.space	2
23338	.section	.bss.g_num_free_superblocks,"aw",%nobits
23339	.align	1
23340	.set	.LANCHOR89,. + 0
23341	.type	g_num_free_superblocks, %object
23342	.size	g_num_free_superblocks, 2
23343g_num_free_superblocks:
23344	.space	2
23345	.section	.bss.g_page_map_check_enable,"aw",%nobits
23346	.align	1
23347	.set	.LANCHOR70,. + 0
23348	.type	g_page_map_check_enable, %object
23349	.size	g_page_map_check_enable, 2
23350g_page_map_check_enable:
23351	.space	2
23352	.section	.bss.g_power_lost_ecc_error_blk,"aw",%nobits
23353	.align	1
23354	.set	.LANCHOR235,. + 0
23355	.type	g_power_lost_ecc_error_blk, %object
23356	.size	g_power_lost_ecc_error_blk, 2
23357g_power_lost_ecc_error_blk:
23358	.space	2
23359	.section	.bss.g_power_lost_recovery_flag,"aw",%nobits
23360	.align	1
23361	.set	.LANCHOR236,. + 0
23362	.type	g_power_lost_recovery_flag, %object
23363	.size	g_power_lost_recovery_flag, 2
23364g_power_lost_recovery_flag:
23365	.space	2
23366	.section	.bss.g_recovery_page_min_ver,"aw",%nobits
23367	.align	2
23368	.set	.LANCHOR136,. + 0
23369	.type	g_recovery_page_min_ver, %object
23370	.size	g_recovery_page_min_ver, 4
23371g_recovery_page_min_ver:
23372	.space	4
23373	.section	.bss.g_recovery_page_num,"aw",%nobits
23374	.align	2
23375	.set	.LANCHOR237,. + 0
23376	.type	g_recovery_page_num, %object
23377	.size	g_recovery_page_num, 4
23378g_recovery_page_num:
23379	.space	4
23380	.section	.bss.g_recovery_ppa_tbl,"aw",%nobits
23381	.align	2
23382	.set	.LANCHOR238,. + 0
23383	.type	g_recovery_ppa_tbl, %object
23384	.size	g_recovery_ppa_tbl, 128
23385g_recovery_ppa_tbl:
23386	.space	128
23387	.section	.bss.g_req_cache,"aw",%nobits
23388	.align	2
23389	.set	.LANCHOR132,. + 0
23390	.type	g_req_cache, %object
23391	.size	g_req_cache, 4
23392g_req_cache:
23393	.space	4
23394	.section	.bss.g_retryMode,"aw",%nobits
23395	.set	.LANCHOR10,. + 0
23396	.type	g_retryMode, %object
23397	.size	g_retryMode, 1
23398g_retryMode:
23399	.space	1
23400	.section	.bss.g_slc2KBNand,"aw",%nobits
23401	.set	.LANCHOR1,. + 0
23402	.type	g_slc2KBNand, %object
23403	.size	g_slc2KBNand, 1
23404g_slc2KBNand:
23405	.space	1
23406	.section	.bss.g_sys_ext_data,"aw",%nobits
23407	.align	2
23408	.set	.LANCHOR138,. + 0
23409	.type	g_sys_ext_data, %object
23410	.size	g_sys_ext_data, 512
23411g_sys_ext_data:
23412	.space	512
23413	.section	.bss.g_sys_save_data,"aw",%nobits
23414	.align	2
23415	.set	.LANCHOR81,. + 0
23416	.type	g_sys_save_data, %object
23417	.size	g_sys_save_data, 48
23418g_sys_save_data:
23419	.space	48
23420	.section	.bss.g_tmp_data_superblock_id,"aw",%nobits
23421	.align	1
23422	.set	.LANCHOR133,. + 0
23423	.type	g_tmp_data_superblock_id, %object
23424	.size	g_tmp_data_superblock_id, 2
23425g_tmp_data_superblock_id:
23426	.space	2
23427	.section	.bss.g_totle_avg_erase_count,"aw",%nobits
23428	.align	2
23429	.set	.LANCHOR205,. + 0
23430	.type	g_totle_avg_erase_count, %object
23431	.size	g_totle_avg_erase_count, 4
23432g_totle_avg_erase_count:
23433	.space	4
23434	.section	.bss.g_totle_cache_write_count,"aw",%nobits
23435	.align	2
23436	.set	.LANCHOR164,. + 0
23437	.type	g_totle_cache_write_count, %object
23438	.size	g_totle_cache_write_count, 4
23439g_totle_cache_write_count:
23440	.space	4
23441	.section	.bss.g_totle_discard_page_count,"aw",%nobits
23442	.align	2
23443	.set	.LANCHOR163,. + 0
23444	.type	g_totle_discard_page_count, %object
23445	.size	g_totle_discard_page_count, 4
23446g_totle_discard_page_count:
23447	.space	4
23448	.section	.bss.g_totle_gc_page_count,"aw",%nobits
23449	.align	2
23450	.set	.LANCHOR161,. + 0
23451	.type	g_totle_gc_page_count, %object
23452	.size	g_totle_gc_page_count, 4
23453g_totle_gc_page_count:
23454	.space	4
23455	.section	.bss.g_totle_l2p_write_count,"aw",%nobits
23456	.align	2
23457	.set	.LANCHOR165,. + 0
23458	.type	g_totle_l2p_write_count, %object
23459	.size	g_totle_l2p_write_count, 4
23460g_totle_l2p_write_count:
23461	.space	4
23462	.section	.bss.g_totle_map_block,"aw",%nobits
23463	.align	1
23464	.set	.LANCHOR128,. + 0
23465	.type	g_totle_map_block, %object
23466	.size	g_totle_map_block, 2
23467g_totle_map_block:
23468	.space	2
23469	.section	.bss.g_totle_mlc_erase_count,"aw",%nobits
23470	.align	2
23471	.set	.LANCHOR167,. + 0
23472	.type	g_totle_mlc_erase_count, %object
23473	.size	g_totle_mlc_erase_count, 4
23474g_totle_mlc_erase_count:
23475	.space	4
23476	.section	.bss.g_totle_read_page_count,"aw",%nobits
23477	.align	2
23478	.set	.LANCHOR166,. + 0
23479	.type	g_totle_read_page_count, %object
23480	.size	g_totle_read_page_count, 4
23481g_totle_read_page_count:
23482	.space	4
23483	.section	.bss.g_totle_read_sector,"aw",%nobits
23484	.align	2
23485	.set	.LANCHOR217,. + 0
23486	.type	g_totle_read_sector, %object
23487	.size	g_totle_read_sector, 4
23488g_totle_read_sector:
23489	.space	4
23490	.section	.bss.g_totle_slc_erase_count,"aw",%nobits
23491	.align	2
23492	.set	.LANCHOR168,. + 0
23493	.type	g_totle_slc_erase_count, %object
23494	.size	g_totle_slc_erase_count, 4
23495g_totle_slc_erase_count:
23496	.space	4
23497	.section	.bss.g_totle_swl_count,"aw",%nobits
23498	.align	2
23499	.set	.LANCHOR134,. + 0
23500	.type	g_totle_swl_count, %object
23501	.size	g_totle_swl_count, 4
23502g_totle_swl_count:
23503	.space	4
23504	.section	.bss.g_totle_sys_slc_erase_count,"aw",%nobits
23505	.align	2
23506	.set	.LANCHOR80,. + 0
23507	.type	g_totle_sys_slc_erase_count, %object
23508	.size	g_totle_sys_slc_erase_count, 4
23509g_totle_sys_slc_erase_count:
23510	.space	4
23511	.section	.bss.g_totle_vendor_block,"aw",%nobits
23512	.align	1
23513	.set	.LANCHOR71,. + 0
23514	.type	g_totle_vendor_block, %object
23515	.size	g_totle_vendor_block, 2
23516g_totle_vendor_block:
23517	.space	2
23518	.section	.bss.g_totle_write_page_count,"aw",%nobits
23519	.align	2
23520	.set	.LANCHOR162,. + 0
23521	.type	g_totle_write_page_count, %object
23522	.size	g_totle_write_page_count, 4
23523g_totle_write_page_count:
23524	.space	4
23525	.section	.bss.g_totle_write_sector,"aw",%nobits
23526	.align	2
23527	.set	.LANCHOR216,. + 0
23528	.type	g_totle_write_sector, %object
23529	.size	g_totle_write_sector, 4
23530g_totle_write_sector:
23531	.space	4
23532	.section	.bss.gc_discard_updated,"aw",%nobits
23533	.align	2
23534	.set	.LANCHOR232,. + 0
23535	.type	gc_discard_updated, %object
23536	.size	gc_discard_updated, 4
23537gc_discard_updated:
23538	.space	4
23539	.section	.bss.gc_ink_free_return_value,"aw",%nobits
23540	.align	1
23541	.set	.LANCHOR240,. + 0
23542	.type	gc_ink_free_return_value, %object
23543	.size	gc_ink_free_return_value, 2
23544gc_ink_free_return_value:
23545	.space	2
23546	.section	.bss.gpFlashSaveInfo,"aw",%nobits
23547	.align	2
23548	.set	.LANCHOR146,. + 0
23549	.type	gpFlashSaveInfo, %object
23550	.size	gpFlashSaveInfo, 4
23551gpFlashSaveInfo:
23552	.space	4
23553	.section	.bss.gpNandParaInfo,"aw",%nobits
23554	.align	2
23555	.set	.LANCHOR18,. + 0
23556	.type	gpNandParaInfo, %object
23557	.size	gpNandParaInfo, 4
23558gpNandParaInfo:
23559	.space	4
23560	.section	.bss.gpNandc,"aw",%nobits
23561	.align	2
23562	.set	.LANCHOR19,. + 0
23563	.type	gpNandc, %object
23564	.size	gpNandc, 4
23565gpNandc:
23566	.space	4
23567	.section	.bss.gpNandc1,"aw",%nobits
23568	.align	2
23569	.type	gpNandc1, %object
23570	.size	gpNandc1, 4
23571gpNandc1:
23572	.space	4
23573	.section	.bss.gpReadRetrial,"aw",%nobits
23574	.align	2
23575	.set	.LANCHOR145,. + 0
23576	.type	gpReadRetrial, %object
23577	.size	gpReadRetrial, 4
23578gpReadRetrial:
23579	.space	4
23580	.section	.bss.gp_ect_tbl_info,"aw",%nobits
23581	.align	2
23582	.set	.LANCHOR191,. + 0
23583	.type	gp_ect_tbl_info, %object
23584	.size	gp_ect_tbl_info, 4
23585gp_ect_tbl_info:
23586	.space	4
23587	.section	.bss.gp_flash_check_buf,"aw",%nobits
23588	.align	2
23589	.type	gp_flash_check_buf, %object
23590	.size	gp_flash_check_buf, 262144
23591gp_flash_check_buf:
23592	.space	262144
23593	.section	.bss.gp_gc_page_buf_info,"aw",%nobits
23594	.align	2
23595	.set	.LANCHOR104,. + 0
23596	.type	gp_gc_page_buf_info, %object
23597	.size	gp_gc_page_buf_info, 4
23598gp_gc_page_buf_info:
23599	.space	4
23600	.section	.bss.gp_last_act_superblock,"aw",%nobits
23601	.align	2
23602	.set	.LANCHOR230,. + 0
23603	.type	gp_last_act_superblock, %object
23604	.size	gp_last_act_superblock, 4
23605gp_last_act_superblock:
23606	.space	4
23607	.section	.bss.idb_buf,"aw",%nobits
23608	.align	2
23609	.type	idb_buf, %object
23610	.size	idb_buf, 262144
23611idb_buf:
23612	.space	262144
23613	.section	.bss.idb_need_write_back,"aw",%nobits
23614	.align	2
23615	.set	.LANCHOR154,. + 0
23616	.type	idb_need_write_back, %object
23617	.size	idb_need_write_back, 4
23618idb_need_write_back:
23619	.space	4
23620	.section	.bss.mlcPageToSlcPageTbl,"aw",%nobits
23621	.align	2
23622	.set	.LANCHOR120,. + 0
23623	.type	mlcPageToSlcPageTbl, %object
23624	.size	mlcPageToSlcPageTbl, 1024
23625mlcPageToSlcPageTbl:
23626	.space	1024
23627	.section	.bss.p_blk_mode_table,"aw",%nobits
23628	.align	2
23629	.set	.LANCHOR0,. + 0
23630	.type	p_blk_mode_table, %object
23631	.size	p_blk_mode_table, 4
23632p_blk_mode_table:
23633	.space	4
23634	.section	.bss.p_data_block_list_head,"aw",%nobits
23635	.align	2
23636	.set	.LANCHOR83,. + 0
23637	.type	p_data_block_list_head, %object
23638	.size	p_data_block_list_head, 4
23639p_data_block_list_head:
23640	.space	4
23641	.section	.bss.p_data_block_list_table,"aw",%nobits
23642	.align	2
23643	.set	.LANCHOR82,. + 0
23644	.type	p_data_block_list_table, %object
23645	.size	p_data_block_list_table, 4
23646p_data_block_list_table:
23647	.space	4
23648	.section	.bss.p_data_block_list_tail,"aw",%nobits
23649	.align	2
23650	.set	.LANCHOR85,. + 0
23651	.type	p_data_block_list_tail, %object
23652	.size	p_data_block_list_tail, 4
23653p_data_block_list_tail:
23654	.space	4
23655	.section	.bss.p_erase_count_table,"aw",%nobits
23656	.align	2
23657	.set	.LANCHOR79,. + 0
23658	.type	p_erase_count_table, %object
23659	.size	p_erase_count_table, 4
23660p_erase_count_table:
23661	.space	4
23662	.section	.bss.p_free_data_block_list_head,"aw",%nobits
23663	.align	2
23664	.set	.LANCHOR88,. + 0
23665	.type	p_free_data_block_list_head, %object
23666	.size	p_free_data_block_list_head, 4
23667p_free_data_block_list_head:
23668	.space	4
23669	.section	.bss.p_gc_blk_tbl,"aw",%nobits
23670	.align	2
23671	.set	.LANCHOR109,. + 0
23672	.type	p_gc_blk_tbl, %object
23673	.size	p_gc_blk_tbl, 4
23674p_gc_blk_tbl:
23675	.space	4
23676	.section	.bss.p_gc_data_buf,"aw",%nobits
23677	.align	2
23678	.set	.LANCHOR105,. + 0
23679	.type	p_gc_data_buf, %object
23680	.size	p_gc_data_buf, 4
23681p_gc_data_buf:
23682	.space	4
23683	.section	.bss.p_gc_page_info,"aw",%nobits
23684	.align	2
23685	.set	.LANCHOR112,. + 0
23686	.type	p_gc_page_info, %object
23687	.size	p_gc_page_info, 4
23688p_gc_page_info:
23689	.space	4
23690	.section	.bss.p_gc_spare_buf,"aw",%nobits
23691	.align	2
23692	.set	.LANCHOR106,. + 0
23693	.type	p_gc_spare_buf, %object
23694	.size	p_gc_spare_buf, 4
23695p_gc_spare_buf:
23696	.space	4
23697	.section	.bss.p_io_data_buf_0,"aw",%nobits
23698	.align	2
23699	.set	.LANCHOR186,. + 0
23700	.type	p_io_data_buf_0, %object
23701	.size	p_io_data_buf_0, 4
23702p_io_data_buf_0:
23703	.space	4
23704	.section	.bss.p_io_data_buf_1,"aw",%nobits
23705	.align	2
23706	.set	.LANCHOR187,. + 0
23707	.type	p_io_data_buf_1, %object
23708	.size	p_io_data_buf_1, 4
23709p_io_data_buf_1:
23710	.space	4
23711	.section	.bss.p_io_spare_buf,"aw",%nobits
23712	.align	2
23713	.set	.LANCHOR189,. + 0
23714	.type	p_io_spare_buf, %object
23715	.size	p_io_spare_buf, 4
23716p_io_spare_buf:
23717	.space	4
23718	.section	.bss.p_l2p_map_buf,"aw",%nobits
23719	.align	2
23720	.set	.LANCHOR126,. + 0
23721	.type	p_l2p_map_buf, %object
23722	.size	p_l2p_map_buf, 4
23723p_l2p_map_buf:
23724	.space	4
23725	.section	.bss.p_l2p_ram_map,"aw",%nobits
23726	.align	2
23727	.set	.LANCHOR97,. + 0
23728	.type	p_l2p_ram_map, %object
23729	.size	p_l2p_ram_map, 4
23730p_l2p_ram_map:
23731	.space	4
23732	.section	.bss.p_map_block_table,"aw",%nobits
23733	.align	2
23734	.set	.LANCHOR129,. + 0
23735	.type	p_map_block_table, %object
23736	.size	p_map_block_table, 4
23737p_map_block_table:
23738	.space	4
23739	.section	.bss.p_map_block_valid_page_count,"aw",%nobits
23740	.align	2
23741	.set	.LANCHOR125,. + 0
23742	.type	p_map_block_valid_page_count, %object
23743	.size	p_map_block_valid_page_count, 4
23744p_map_block_valid_page_count:
23745	.space	4
23746	.section	.bss.p_map_block_ver_table,"aw",%nobits
23747	.align	2
23748	.set	.LANCHOR130,. + 0
23749	.type	p_map_block_ver_table, %object
23750	.size	p_map_block_ver_table, 4
23751p_map_block_ver_table:
23752	.space	4
23753	.section	.bss.p_map_region_ppn_check_table,"aw",%nobits
23754	.align	2
23755	.set	.LANCHOR195,. + 0
23756	.type	p_map_region_ppn_check_table, %object
23757	.size	p_map_region_ppn_check_table, 4
23758p_map_region_ppn_check_table:
23759	.space	4
23760	.section	.bss.p_map_region_ppn_table,"aw",%nobits
23761	.align	2
23762	.set	.LANCHOR131,. + 0
23763	.type	p_map_region_ppn_table, %object
23764	.size	p_map_region_ppn_table, 4
23765p_map_region_ppn_table:
23766	.space	4
23767	.section	.bss.p_plane_order_table,"aw",%nobits
23768	.set	.LANCHOR47,. + 0
23769	.type	p_plane_order_table, %object
23770	.size	p_plane_order_table, 32
23771p_plane_order_table:
23772	.space	32
23773	.section	.bss.p_swl_mul_table,"aw",%nobits
23774	.align	2
23775	.set	.LANCHOR137,. + 0
23776	.type	p_swl_mul_table, %object
23777	.size	p_swl_mul_table, 4
23778p_swl_mul_table:
23779	.space	4
23780	.section	.bss.p_sys_data_buf,"aw",%nobits
23781	.align	2
23782	.set	.LANCHOR183,. + 0
23783	.type	p_sys_data_buf, %object
23784	.size	p_sys_data_buf, 4
23785p_sys_data_buf:
23786	.space	4
23787	.section	.bss.p_sys_data_buf_1,"aw",%nobits
23788	.align	2
23789	.set	.LANCHOR184,. + 0
23790	.type	p_sys_data_buf_1, %object
23791	.size	p_sys_data_buf_1, 4
23792p_sys_data_buf_1:
23793	.space	4
23794	.section	.bss.p_sys_spare_buf,"aw",%nobits
23795	.align	2
23796	.set	.LANCHOR188,. + 0
23797	.type	p_sys_spare_buf, %object
23798	.size	p_sys_spare_buf, 4
23799p_sys_spare_buf:
23800	.space	4
23801	.section	.bss.p_valid_page_count_check_table,"aw",%nobits
23802	.align	2
23803	.type	p_valid_page_count_check_table, %object
23804	.size	p_valid_page_count_check_table, 4
23805p_valid_page_count_check_table:
23806	.space	4
23807	.section	.bss.p_valid_page_count_table,"aw",%nobits
23808	.align	2
23809	.set	.LANCHOR84,. + 0
23810	.type	p_valid_page_count_table, %object
23811	.size	p_valid_page_count_table, 4
23812p_valid_page_count_table:
23813	.space	4
23814	.section	.bss.p_vendor_block_table,"aw",%nobits
23815	.align	2
23816	.set	.LANCHOR72,. + 0
23817	.type	p_vendor_block_table, %object
23818	.size	p_vendor_block_table, 4
23819p_vendor_block_table:
23820	.space	4
23821	.section	.bss.p_vendor_block_valid_page_count,"aw",%nobits
23822	.align	2
23823	.set	.LANCHOR192,. + 0
23824	.type	p_vendor_block_valid_page_count, %object
23825	.size	p_vendor_block_valid_page_count, 4
23826p_vendor_block_valid_page_count:
23827	.space	4
23828	.section	.bss.p_vendor_block_ver_table,"aw",%nobits
23829	.align	2
23830	.set	.LANCHOR193,. + 0
23831	.type	p_vendor_block_ver_table, %object
23832	.size	p_vendor_block_ver_table, 4
23833p_vendor_block_ver_table:
23834	.space	4
23835	.section	.bss.p_vendor_data_buf,"aw",%nobits
23836	.align	2
23837	.set	.LANCHOR185,. + 0
23838	.type	p_vendor_data_buf, %object
23839	.size	p_vendor_data_buf, 4
23840p_vendor_data_buf:
23841	.space	4
23842	.section	.bss.p_vendor_region_ppn_table,"aw",%nobits
23843	.align	2
23844	.set	.LANCHOR194,. + 0
23845	.type	p_vendor_region_ppn_table, %object
23846	.size	p_vendor_region_ppn_table, 4
23847p_vendor_region_ppn_table:
23848	.space	4
23849	.section	.bss.read_retry_cur_offset,"aw",%nobits
23850	.set	.LANCHOR21,. + 0
23851	.type	read_retry_cur_offset, %object
23852	.size	read_retry_cur_offset, 4
23853read_retry_cur_offset:
23854	.space	4
23855	.section	.bss.req_erase,"aw",%nobits
23856	.align	2
23857	.set	.LANCHOR78,. + 0
23858	.type	req_erase, %object
23859	.size	req_erase, 4
23860req_erase:
23861	.space	4
23862	.section	.bss.req_gc,"aw",%nobits
23863	.align	2
23864	.set	.LANCHOR107,. + 0
23865	.type	req_gc, %object
23866	.size	req_gc, 4
23867req_gc:
23868	.space	4
23869	.section	.bss.req_gc_dst,"aw",%nobits
23870	.align	2
23871	.set	.LANCHOR181,. + 0
23872	.type	req_gc_dst, %object
23873	.size	req_gc_dst, 4
23874req_gc_dst:
23875	.space	4
23876	.section	.bss.req_prgm,"aw",%nobits
23877	.align	2
23878	.set	.LANCHOR182,. + 0
23879	.type	req_prgm, %object
23880	.size	req_prgm, 4
23881req_prgm:
23882	.space	4
23883	.section	.bss.req_read,"aw",%nobits
23884	.align	2
23885	.set	.LANCHOR180,. + 0
23886	.type	req_read, %object
23887	.size	req_read, 4
23888req_read:
23889	.space	4
23890	.section	.bss.req_sys,"aw",%nobits
23891	.align	2
23892	.set	.LANCHOR202,. + 0
23893	.type	req_sys, %object
23894	.size	req_sys, 36
23895req_sys:
23896	.space	36
23897	.section	.bss.slcPageToMlcPageTbl,"aw",%nobits
23898	.align	2
23899	.set	.LANCHOR16,. + 0
23900	.type	slcPageToMlcPageTbl, %object
23901	.size	slcPageToMlcPageTbl, 512
23902slcPageToMlcPageTbl:
23903	.space	512
23904	.section	.data.FtlMallocOffset,"aw",%progbits
23905	.align	2
23906	.type	FtlMallocOffset, %object
23907	.size	FtlMallocOffset, 4
23908FtlMallocOffset:
23909	.word	64
23910	.section	.data.LastWritenPbaAddr,"aw",%progbits
23911	.align	2
23912	.type	LastWritenPbaAddr, %object
23913	.size	LastWritenPbaAddr, 4
23914LastWritenPbaAddr:
23915	.word	-1
23916	.section	.data.NandFlashParaTbl,"aw",%progbits
23917	.align	1
23918	.set	.LANCHOR142,. + 0
23919	.type	NandFlashParaTbl, %object
23920	.size	NandFlashParaTbl, 2464
23921NandFlashParaTbl:
23922	.byte	6
23923	.byte	44
23924	.byte	100
23925	.byte	68
23926	.byte	75
23927	.byte	-87
23928	.byte	0
23929	.byte	4
23930	.byte	1
23931	.byte	16
23932	.short	256
23933	.byte	2
23934	.byte	2
23935	.short	2048
23936	.short	479
23937	.byte	3
23938	.byte	17
23939	.byte	40
23940	.byte	32
23941	.byte	1
23942	.byte	0
23943	.byte	1
23944	.byte	0
23945	.byte	0
23946	.byte	0
23947	.space	4
23948	.byte	6
23949	.byte	44
23950	.byte	68
23951	.byte	68
23952	.byte	75
23953	.byte	-87
23954	.byte	0
23955	.byte	4
23956	.byte	1
23957	.byte	16
23958	.short	256
23959	.byte	2
23960	.byte	2
23961	.short	1064
23962	.short	479
23963	.byte	3
23964	.byte	17
23965	.byte	40
23966	.byte	32
23967	.byte	1
23968	.byte	0
23969	.byte	1
23970	.byte	0
23971	.byte	0
23972	.byte	0
23973	.space	4
23974	.byte	6
23975	.byte	44
23976	.byte	104
23977	.byte	4
23978	.byte	74
23979	.byte	-87
23980	.byte	0
23981	.byte	4
23982	.byte	1
23983	.byte	8
23984	.short	256
23985	.byte	2
23986	.byte	2
23987	.short	2048
23988	.short	287
23989	.byte	1
23990	.byte	0
23991	.byte	24
23992	.byte	32
23993	.byte	1
23994	.byte	0
23995	.byte	1
23996	.byte	0
23997	.byte	0
23998	.byte	0
23999	.space	4
24000	.byte	5
24001	.byte	44
24002	.byte	-120
24003	.byte	4
24004	.byte	75
24005	.byte	-87
24006	.byte	0
24007	.byte	4
24008	.byte	1
24009	.byte	16
24010	.short	256
24011	.byte	2
24012	.byte	2
24013	.short	2048
24014	.short	287
24015	.byte	1
24016	.byte	0
24017	.byte	24
24018	.byte	32
24019	.byte	1
24020	.byte	0
24021	.byte	1
24022	.byte	0
24023	.byte	0
24024	.byte	0
24025	.space	4
24026	.byte	6
24027	.byte	44
24028	.byte	-88
24029	.byte	5
24030	.byte	-53
24031	.byte	-87
24032	.byte	0
24033	.byte	4
24034	.byte	2
24035	.byte	16
24036	.short	256
24037	.byte	2
24038	.byte	2
24039	.short	2048
24040	.short	287
24041	.byte	1
24042	.byte	0
24043	.byte	24
24044	.byte	32
24045	.byte	1
24046	.byte	0
24047	.byte	1
24048	.byte	0
24049	.byte	0
24050	.byte	0
24051	.space	4
24052	.byte	6
24053	.byte	44
24054	.byte	104
24055	.byte	4
24056	.byte	70
24057	.byte	-119
24058	.byte	0
24059	.byte	4
24060	.byte	1
24061	.byte	8
24062	.short	256
24063	.byte	2
24064	.byte	2
24065	.short	2048
24066	.short	287
24067	.byte	1
24068	.byte	0
24069	.byte	24
24070	.byte	32
24071	.byte	1
24072	.byte	0
24073	.byte	1
24074	.byte	0
24075	.byte	0
24076	.byte	0
24077	.space	4
24078	.byte	6
24079	.byte	44
24080	.byte	72
24081	.byte	4
24082	.byte	74
24083	.byte	-91
24084	.byte	0
24085	.byte	4
24086	.byte	1
24087	.byte	8
24088	.short	256
24089	.byte	2
24090	.byte	2
24091	.short	1024
24092	.short	287
24093	.byte	1
24094	.byte	0
24095	.byte	24
24096	.byte	32
24097	.byte	1
24098	.byte	0
24099	.byte	1
24100	.byte	0
24101	.byte	0
24102	.byte	0
24103	.space	4
24104	.byte	6
24105	.byte	44
24106	.byte	-124
24107	.byte	100
24108	.byte	60
24109	.byte	-91
24110	.byte	0
24111	.byte	4
24112	.byte	1
24113	.byte	32
24114	.short	512
24115	.byte	2
24116	.byte	2
24117	.short	1024
24118	.short	479
24119	.byte	3
24120	.byte	17
24121	.byte	40
24122	.byte	32
24123	.byte	1
24124	.byte	0
24125	.byte	1
24126	.byte	0
24127	.byte	0
24128	.byte	0
24129	.space	4
24130	.byte	5
24131	.byte	44
24132	.byte	-124
24133	.byte	100
24134	.byte	84
24135	.byte	-87
24136	.byte	0
24137	.byte	4
24138	.byte	1
24139	.byte	32
24140	.short	512
24141	.byte	2
24142	.byte	2
24143	.short	1024
24144	.short	479
24145	.byte	4
24146	.byte	18
24147	.byte	60
24148	.byte	32
24149	.byte	1
24150	.byte	0
24151	.byte	1
24152	.byte	0
24153	.byte	0
24154	.byte	0
24155	.space	4
24156	.byte	6
24157	.byte	44
24158	.byte	-41
24159	.byte	-108
24160	.byte	62
24161	.byte	-124
24162	.byte	0
24163	.byte	4
24164	.byte	1
24165	.byte	8
24166	.short	128
24167	.byte	2
24168	.byte	2
24169	.short	4096
24170	.short	279
24171	.byte	1
24172	.byte	0
24173	.byte	24
24174	.byte	32
24175	.byte	1
24176	.byte	0
24177	.byte	1
24178	.byte	0
24179	.byte	0
24180	.byte	0
24181	.space	4
24182	.byte	6
24183	.byte	44
24184	.byte	72
24185	.byte	4
24186	.byte	70
24187	.byte	-123
24188	.byte	0
24189	.byte	4
24190	.byte	1
24191	.byte	8
24192	.short	256
24193	.byte	2
24194	.byte	2
24195	.short	1024
24196	.short	287
24197	.byte	1
24198	.byte	0
24199	.byte	24
24200	.byte	32
24201	.byte	1
24202	.byte	0
24203	.byte	1
24204	.byte	0
24205	.byte	0
24206	.byte	0
24207	.space	4
24208	.byte	6
24209	.byte	44
24210	.byte	-120
24211	.byte	5
24212	.byte	-58
24213	.byte	-119
24214	.byte	0
24215	.byte	4
24216	.byte	2
24217	.byte	8
24218	.short	256
24219	.byte	2
24220	.byte	2
24221	.short	2048
24222	.short	287
24223	.byte	1
24224	.byte	0
24225	.byte	24
24226	.byte	32
24227	.byte	1
24228	.byte	0
24229	.byte	1
24230	.byte	0
24231	.byte	0
24232	.byte	0
24233	.space	4
24234	.byte	5
24235	.byte	44
24236	.byte	-120
24237	.byte	36
24238	.byte	75
24239	.byte	-87
24240	.byte	0
24241	.byte	4
24242	.byte	1
24243	.byte	16
24244	.short	256
24245	.byte	2
24246	.byte	2
24247	.short	2048
24248	.short	287
24249	.byte	1
24250	.byte	0
24251	.byte	24
24252	.byte	32
24253	.byte	1
24254	.byte	0
24255	.byte	1
24256	.byte	0
24257	.byte	0
24258	.byte	0
24259	.space	4
24260	.byte	6
24261	.byte	44
24262	.byte	104
24263	.byte	0
24264	.byte	39
24265	.byte	-87
24266	.byte	0
24267	.byte	4
24268	.byte	1
24269	.byte	16
24270	.short	128
24271	.byte	1
24272	.byte	2
24273	.short	2048
24274	.short	287
24275	.byte	0
24276	.byte	0
24277	.byte	24
24278	.byte	32
24279	.byte	1
24280	.byte	0
24281	.byte	1
24282	.byte	0
24283	.byte	0
24284	.byte	0
24285	.space	4
24286	.byte	5
24287	.byte	44
24288	.byte	100
24289	.byte	100
24290	.byte	86
24291	.byte	-91
24292	.byte	0
24293	.byte	4
24294	.byte	1
24295	.byte	24
24296	.short	512
24297	.byte	2
24298	.byte	2
24299	.short	700
24300	.short	479
24301	.byte	4
24302	.byte	18
24303	.byte	60
24304	.byte	32
24305	.byte	1
24306	.byte	0
24307	.byte	1
24308	.byte	0
24309	.byte	0
24310	.byte	0
24311	.space	4
24312	.byte	6
24313	.byte	44
24314	.byte	-124
24315	.byte	-59
24316	.byte	75
24317	.byte	-87
24318	.byte	0
24319	.byte	4
24320	.byte	2
24321	.byte	16
24322	.short	256
24323	.byte	2
24324	.byte	2
24325	.short	2048
24326	.short	479
24327	.byte	3
24328	.byte	17
24329	.byte	40
24330	.byte	32
24331	.byte	1
24332	.byte	0
24333	.byte	1
24334	.byte	0
24335	.byte	0
24336	.byte	0
24337	.space	4
24338	.byte	6
24339	.byte	44
24340	.byte	-43
24341	.byte	-47
24342	.byte	-90
24343	.byte	104
24344	.byte	0
24345	.byte	4
24346	.byte	2
24347	.byte	8
24348	.short	64
24349	.byte	1
24350	.byte	2
24351	.short	2048
24352	.short	279
24353	.byte	0
24354	.byte	0
24355	.byte	24
24356	.byte	32
24357	.byte	1
24358	.byte	0
24359	.byte	1
24360	.byte	0
24361	.byte	0
24362	.byte	0
24363	.space	4
24364	.byte	6
24365	.byte	44
24366	.byte	-36
24367	.byte	-112
24368	.byte	-90
24369	.byte	84
24370	.byte	0
24371	.byte	4
24372	.byte	1
24373	.byte	8
24374	.short	64
24375	.byte	1
24376	.byte	2
24377	.short	1024
24378	.short	279
24379	.byte	0
24380	.byte	0
24381	.byte	24
24382	.byte	32
24383	.byte	1
24384	.byte	0
24385	.byte	1
24386	.byte	0
24387	.byte	0
24388	.byte	0
24389	.space	4
24390	.byte	5
24391	.byte	44
24392	.byte	100
24393	.byte	100
24394	.byte	84
24395	.byte	-92
24396	.byte	0
24397	.byte	4
24398	.byte	1
24399	.byte	32
24400	.short	512
24401	.byte	2
24402	.byte	1
24403	.short	1024
24404	.short	479
24405	.byte	4
24406	.byte	18
24407	.byte	60
24408	.byte	32
24409	.byte	1
24410	.byte	0
24411	.byte	1
24412	.byte	0
24413	.byte	0
24414	.byte	0
24415	.space	4
24416	.byte	5
24417	.byte	44
24418	.byte	-124
24419	.byte	68
24420	.byte	50
24421	.byte	-86
24422	.byte	0
24423	.byte	4
24424	.byte	1
24425	.byte	32
24426	.short	512
24427	.byte	2
24428	.byte	1
24429	.short	2184
24430	.short	1479
24431	.byte	5
24432	.byte	19
24433	.byte	60
24434	.byte	32
24435	.byte	1
24436	.byte	0
24437	.byte	1
24438	.byte	0
24439	.byte	1
24440	.byte	0
24441	.space	4
24442	.byte	5
24443	.byte	44
24444	.byte	100
24445	.byte	68
24446	.byte	50
24447	.byte	-91
24448	.byte	0
24449	.byte	4
24450	.byte	1
24451	.byte	32
24452	.short	512
24453	.byte	2
24454	.byte	1
24455	.short	1048
24456	.short	1479
24457	.byte	5
24458	.byte	19
24459	.byte	60
24460	.byte	32
24461	.byte	1
24462	.byte	0
24463	.byte	1
24464	.byte	0
24465	.byte	1
24466	.byte	0
24467	.space	4
24468	.byte	5
24469	.byte	44
24470	.byte	100
24471	.byte	100
24472	.byte	60
24473	.byte	-91
24474	.byte	0
24475	.byte	4
24476	.byte	1
24477	.byte	32
24478	.short	512
24479	.byte	2
24480	.byte	1
24481	.short	1044
24482	.short	479
24483	.byte	3
24484	.byte	17
24485	.byte	40
24486	.byte	32
24487	.byte	1
24488	.byte	0
24489	.byte	1
24490	.byte	0
24491	.byte	0
24492	.byte	0
24493	.space	4
24494	.byte	5
24495	.byte	44
24496	.byte	-124
24497	.byte	-60
24498	.byte	52
24499	.byte	-86
24500	.byte	0
24501	.byte	4
24502	.byte	1
24503	.byte	32
24504	.short	512
24505	.byte	2
24506	.byte	1
24507	.short	2184
24508	.short	1479
24509	.byte	5
24510	.byte	19
24511	.byte	60
24512	.byte	32
24513	.byte	1
24514	.byte	0
24515	.byte	1
24516	.byte	0
24517	.byte	1
24518	.byte	0
24519	.space	4
24520	.byte	5
24521	.byte	44
24522	.byte	-124
24523	.byte	68
24524	.byte	52
24525	.byte	-92
24526	.byte	0
24527	.byte	4
24528	.byte	1
24529	.byte	32
24530	.short	512
24531	.byte	2
24532	.byte	1
24533	.short	2184
24534	.short	1479
24535	.byte	5
24536	.byte	19
24537	.byte	60
24538	.byte	32
24539	.byte	1
24540	.byte	0
24541	.byte	1
24542	.byte	0
24543	.byte	1
24544	.byte	0
24545	.space	4
24546	.byte	6
24547	.byte	-83
24548	.byte	-34
24549	.byte	-108
24550	.byte	-46
24551	.byte	4
24552	.byte	67
24553	.byte	2
24554	.byte	1
24555	.byte	16
24556	.short	256
24557	.byte	2
24558	.byte	2
24559	.short	2048
24560	.short	473
24561	.byte	1
24562	.byte	1
24563	.byte	24
24564	.byte	32
24565	.byte	4
24566	.byte	0
24567	.byte	3
24568	.byte	0
24569	.byte	0
24570	.byte	0
24571	.space	4
24572	.byte	6
24573	.byte	-83
24574	.byte	-41
24575	.byte	-108
24576	.byte	-38
24577	.byte	116
24578	.byte	-61
24579	.byte	2
24580	.byte	1
24581	.byte	16
24582	.short	256
24583	.byte	2
24584	.byte	2
24585	.short	1024
24586	.short	473
24587	.byte	1
24588	.byte	2
24589	.byte	40
24590	.byte	32
24591	.byte	4
24592	.byte	0
24593	.byte	3
24594	.byte	0
24595	.byte	0
24596	.byte	0
24597	.space	4
24598	.byte	6
24599	.byte	-83
24600	.byte	-41
24601	.byte	-108
24602	.byte	-111
24603	.byte	96
24604	.byte	68
24605	.byte	2
24606	.byte	1
24607	.byte	16
24608	.short	256
24609	.byte	2
24610	.byte	2
24611	.short	1046
24612	.short	473
24613	.byte	1
24614	.byte	3
24615	.byte	40
24616	.byte	32
24617	.byte	4
24618	.byte	1
24619	.byte	3
24620	.byte	0
24621	.byte	0
24622	.byte	0
24623	.space	4
24624	.byte	6
24625	.byte	-83
24626	.byte	-34
24627	.byte	-108
24628	.byte	-38
24629	.byte	116
24630	.byte	-60
24631	.byte	2
24632	.byte	1
24633	.byte	16
24634	.short	256
24635	.byte	2
24636	.byte	2
24637	.short	2090
24638	.short	473
24639	.byte	1
24640	.byte	4
24641	.byte	40
24642	.byte	32
24643	.byte	4
24644	.byte	1
24645	.byte	3
24646	.byte	0
24647	.byte	0
24648	.byte	0
24649	.space	4
24650	.byte	6
24651	.byte	-83
24652	.byte	-34
24653	.byte	-108
24654	.byte	-21
24655	.byte	116
24656	.byte	68
24657	.byte	2
24658	.byte	1
24659	.byte	32
24660	.short	256
24661	.byte	2
24662	.byte	2
24663	.short	1066
24664	.short	473
24665	.byte	1
24666	.byte	7
24667	.byte	40
24668	.byte	32
24669	.byte	4
24670	.byte	1
24671	.byte	3
24672	.byte	0
24673	.byte	0
24674	.byte	0
24675	.space	4
24676	.byte	6
24677	.byte	-83
24678	.byte	-43
24679	.byte	-108
24680	.byte	-38
24681	.byte	116
24682	.byte	-60
24683	.byte	2
24684	.byte	1
24685	.byte	16
24686	.short	256
24687	.byte	2
24688	.byte	2
24689	.short	530
24690	.short	473
24691	.byte	1
24692	.byte	3
24693	.byte	40
24694	.byte	32
24695	.byte	4
24696	.byte	1
24697	.byte	3
24698	.byte	0
24699	.byte	0
24700	.byte	0
24701	.space	4
24702	.byte	6
24703	.byte	-83
24704	.byte	-41
24705	.byte	-108
24706	.byte	-102
24707	.byte	116
24708	.byte	66
24709	.byte	2
24710	.byte	1
24711	.byte	16
24712	.short	256
24713	.byte	2
24714	.byte	2
24715	.short	1024
24716	.short	281
24717	.byte	1
24718	.byte	0
24719	.byte	24
24720	.byte	32
24721	.byte	4
24722	.byte	0
24723	.byte	3
24724	.byte	0
24725	.byte	0
24726	.byte	0
24727	.space	4
24728	.byte	6
24729	.byte	-83
24730	.byte	-34
24731	.byte	20
24732	.byte	-89
24733	.byte	66
24734	.byte	74
24735	.byte	2
24736	.byte	1
24737	.byte	32
24738	.short	256
24739	.byte	2
24740	.byte	2
24741	.short	1060
24742	.short	473
24743	.byte	2
24744	.byte	5
24745	.byte	40
24746	.byte	32
24747	.byte	4
24748	.byte	1
24749	.byte	3
24750	.byte	0
24751	.byte	0
24752	.byte	0
24753	.space	4
24754	.byte	6
24755	.byte	-83
24756	.byte	-41
24757	.byte	20
24758	.byte	-98
24759	.byte	52
24760	.byte	74
24761	.byte	2
24762	.byte	1
24763	.byte	16
24764	.short	256
24765	.byte	2
24766	.byte	2
24767	.short	1056
24768	.short	473
24769	.byte	2
24770	.byte	5
24771	.byte	40
24772	.byte	32
24773	.byte	4
24774	.byte	1
24775	.byte	3
24776	.byte	0
24777	.byte	0
24778	.byte	0
24779	.space	4
24780	.byte	6
24781	.byte	-83
24782	.byte	-34
24783	.byte	-108
24784	.byte	-89
24785	.byte	66
24786	.byte	72
24787	.byte	2
24788	.byte	1
24789	.byte	32
24790	.short	256
24791	.byte	2
24792	.byte	2
24793	.short	1060
24794	.short	473
24795	.byte	2
24796	.byte	5
24797	.byte	40
24798	.byte	32
24799	.byte	4
24800	.byte	1
24801	.byte	3
24802	.byte	0
24803	.byte	0
24804	.byte	0
24805	.space	4
24806	.byte	6
24807	.byte	-83
24808	.byte	-34
24809	.byte	20
24810	.byte	-85
24811	.byte	66
24812	.byte	74
24813	.byte	2
24814	.byte	1
24815	.byte	32
24816	.short	256
24817	.byte	2
24818	.byte	2
24819	.short	1056
24820	.short	473
24821	.byte	2
24822	.byte	6
24823	.byte	40
24824	.byte	32
24825	.byte	3
24826	.byte	1
24827	.byte	3
24828	.byte	0
24829	.byte	0
24830	.byte	0
24831	.space	4
24832	.byte	6
24833	.byte	-83
24834	.byte	58
24835	.byte	20
24836	.byte	-85
24837	.byte	66
24838	.byte	74
24839	.byte	2
24840	.byte	1
24841	.byte	32
24842	.short	256
24843	.byte	2
24844	.byte	2
24845	.short	2092
24846	.short	473
24847	.byte	2
24848	.byte	5
24849	.byte	40
24850	.byte	32
24851	.byte	3
24852	.byte	1
24853	.byte	3
24854	.byte	0
24855	.byte	0
24856	.byte	0
24857	.space	4
24858	.byte	6
24859	.byte	-83
24860	.byte	-43
24861	.byte	-108
24862	.byte	-102
24863	.byte	116
24864	.byte	66
24865	.byte	2
24866	.byte	1
24867	.byte	16
24868	.short	256
24869	.byte	2
24870	.byte	1
24871	.short	1024
24872	.short	273
24873	.byte	1
24874	.byte	0
24875	.byte	24
24876	.byte	32
24877	.byte	4
24878	.byte	1
24879	.byte	3
24880	.byte	0
24881	.byte	0
24882	.byte	0
24883	.space	4
24884	.byte	6
24885	.byte	-119
24886	.byte	100
24887	.byte	68
24888	.byte	75
24889	.byte	-87
24890	.byte	0
24891	.byte	7
24892	.byte	1
24893	.byte	16
24894	.short	256
24895	.byte	2
24896	.byte	2
24897	.short	2048
24898	.short	479
24899	.byte	3
24900	.byte	17
24901	.byte	40
24902	.byte	32
24903	.byte	1
24904	.byte	0
24905	.byte	1
24906	.byte	0
24907	.byte	0
24908	.byte	0
24909	.space	4
24910	.byte	6
24911	.byte	-119
24912	.byte	-120
24913	.byte	36
24914	.byte	75
24915	.byte	-87
24916	.byte	-124
24917	.byte	7
24918	.byte	1
24919	.byte	16
24920	.short	256
24921	.byte	2
24922	.byte	2
24923	.short	2048
24924	.short	479
24925	.byte	3
24926	.byte	17
24927	.byte	40
24928	.byte	32
24929	.byte	1
24930	.byte	0
24931	.byte	1
24932	.byte	0
24933	.byte	0
24934	.byte	0
24935	.space	4
24936	.byte	6
24937	.byte	-119
24938	.byte	-120
24939	.byte	36
24940	.byte	75
24941	.byte	-87
24942	.byte	0
24943	.byte	7
24944	.byte	1
24945	.byte	16
24946	.short	256
24947	.byte	2
24948	.byte	2
24949	.short	2048
24950	.short	279
24951	.byte	1
24952	.byte	0
24953	.byte	24
24954	.byte	32
24955	.byte	1
24956	.byte	0
24957	.byte	1
24958	.byte	0
24959	.byte	0
24960	.byte	0
24961	.space	4
24962	.byte	6
24963	.byte	-119
24964	.byte	104
24965	.byte	36
24966	.byte	74
24967	.byte	-87
24968	.byte	0
24969	.byte	7
24970	.byte	1
24971	.byte	8
24972	.short	256
24973	.byte	2
24974	.byte	2
24975	.short	2048
24976	.short	279
24977	.byte	1
24978	.byte	0
24979	.byte	24
24980	.byte	32
24981	.byte	1
24982	.byte	0
24983	.byte	1
24984	.byte	0
24985	.byte	0
24986	.byte	0
24987	.space	4
24988	.byte	6
24989	.byte	-119
24990	.byte	104
24991	.byte	4
24992	.byte	74
24993	.byte	-87
24994	.byte	0
24995	.byte	7
24996	.byte	1
24997	.byte	8
24998	.short	256
24999	.byte	2
25000	.byte	2
25001	.short	2048
25002	.short	279
25003	.byte	1
25004	.byte	0
25005	.byte	24
25006	.byte	32
25007	.byte	1
25008	.byte	0
25009	.byte	1
25010	.byte	0
25011	.byte	0
25012	.byte	0
25013	.space	4
25014	.byte	6
25015	.byte	-119
25016	.byte	-41
25017	.byte	-108
25018	.byte	62
25019	.byte	-124
25020	.byte	0
25021	.byte	7
25022	.byte	1
25023	.byte	8
25024	.short	256
25025	.byte	2
25026	.byte	2
25027	.short	2048
25028	.short	279
25029	.byte	1
25030	.byte	0
25031	.byte	24
25032	.byte	32
25033	.byte	1
25034	.byte	0
25035	.byte	1
25036	.byte	0
25037	.byte	0
25038	.byte	0
25039	.space	4
25040	.byte	6
25041	.byte	-119
25042	.byte	104
25043	.byte	4
25044	.byte	70
25045	.byte	-87
25046	.byte	0
25047	.byte	7
25048	.byte	1
25049	.byte	8
25050	.short	256
25051	.byte	2
25052	.byte	2
25053	.short	2048
25054	.short	279
25055	.byte	1
25056	.byte	0
25057	.byte	24
25058	.byte	32
25059	.byte	1
25060	.byte	0
25061	.byte	1
25062	.byte	0
25063	.byte	0
25064	.byte	0
25065	.space	4
25066	.byte	5
25067	.byte	-119
25068	.byte	100
25069	.byte	100
25070	.byte	60
25071	.byte	-95
25072	.byte	0
25073	.byte	7
25074	.byte	1
25075	.byte	32
25076	.short	512
25077	.byte	2
25078	.byte	1
25079	.short	1024
25080	.short	455
25081	.byte	3
25082	.byte	17
25083	.byte	40
25084	.byte	32
25085	.byte	1
25086	.byte	0
25087	.byte	1
25088	.byte	0
25089	.byte	0
25090	.byte	0
25091	.space	4
25092	.byte	6
25093	.byte	-104
25094	.byte	-41
25095	.byte	-124
25096	.byte	-109
25097	.byte	114
25098	.byte	87
25099	.byte	1
25100	.byte	1
25101	.byte	32
25102	.short	256
25103	.byte	2
25104	.byte	1
25105	.short	1060
25106	.short	1473
25107	.byte	2
25108	.byte	33
25109	.byte	40
25110	.byte	32
25111	.byte	2
25112	.byte	1
25113	.byte	1
25114	.byte	0
25115	.byte	0
25116	.byte	0
25117	.space	4
25118	.byte	6
25119	.byte	-104
25120	.byte	-34
25121	.byte	-124
25122	.byte	-109
25123	.byte	114
25124	.byte	87
25125	.byte	1
25126	.byte	1
25127	.byte	32
25128	.short	256
25129	.byte	2
25130	.byte	1
25131	.short	2092
25132	.short	1473
25133	.byte	2
25134	.byte	33
25135	.byte	40
25136	.byte	32
25137	.byte	2
25138	.byte	1
25139	.byte	1
25140	.byte	0
25141	.byte	0
25142	.byte	0
25143	.space	4
25144	.byte	6
25145	.byte	-104
25146	.byte	58
25147	.byte	-123
25148	.byte	-109
25149	.byte	118
25150	.byte	87
25151	.byte	1
25152	.byte	2
25153	.byte	32
25154	.short	256
25155	.byte	2
25156	.byte	1
25157	.short	2092
25158	.short	1505
25159	.byte	2
25160	.byte	33
25161	.byte	40
25162	.byte	32
25163	.byte	2
25164	.byte	1
25165	.byte	1
25166	.byte	0
25167	.byte	0
25168	.byte	0
25169	.space	4
25170	.byte	6
25171	.byte	-104
25172	.byte	-43
25173	.byte	-124
25174	.byte	50
25175	.byte	114
25176	.byte	86
25177	.byte	1
25178	.byte	1
25179	.byte	16
25180	.short	128
25181	.byte	2
25182	.byte	1
25183	.short	2056
25184	.short	1473
25185	.byte	2
25186	.byte	33
25187	.byte	40
25188	.byte	32
25189	.byte	2
25190	.byte	1
25191	.byte	1
25192	.byte	0
25193	.byte	0
25194	.byte	0
25195	.space	4
25196	.byte	6
25197	.byte	-104
25198	.byte	-41
25199	.byte	-108
25200	.byte	50
25201	.byte	118
25202	.byte	86
25203	.byte	1
25204	.byte	1
25205	.byte	16
25206	.short	128
25207	.byte	2
25208	.byte	2
25209	.short	2058
25210	.short	1489
25211	.byte	2
25212	.byte	33
25213	.byte	40
25214	.byte	32
25215	.byte	2
25216	.byte	1
25217	.byte	1
25218	.byte	0
25219	.byte	0
25220	.byte	0
25221	.space	4
25222	.byte	6
25223	.byte	-104
25224	.byte	-34
25225	.byte	-108
25226	.byte	-126
25227	.byte	118
25228	.byte	86
25229	.byte	1
25230	.byte	1
25231	.byte	16
25232	.short	256
25233	.byte	2
25234	.byte	2
25235	.short	2062
25236	.short	1489
25237	.byte	1
25238	.byte	33
25239	.byte	40
25240	.byte	32
25241	.byte	2
25242	.byte	1
25243	.byte	1
25244	.byte	0
25245	.byte	0
25246	.byte	0
25247	.space	4
25248	.byte	6
25249	.byte	-104
25250	.byte	-34
25251	.byte	-108
25252	.byte	-109
25253	.byte	118
25254	.byte	80
25255	.byte	1
25256	.byte	1
25257	.byte	32
25258	.short	256
25259	.byte	2
25260	.byte	2
25261	.short	1066
25262	.short	1497
25263	.byte	2
25264	.byte	34
25265	.byte	40
25266	.byte	32
25267	.byte	3
25268	.byte	1
25269	.byte	1
25270	.byte	0
25271	.byte	0
25272	.byte	0
25273	.space	4
25274	.byte	6
25275	.byte	-104
25276	.byte	58
25277	.byte	-107
25278	.byte	-109
25279	.byte	122
25280	.byte	80
25281	.byte	1
25282	.byte	2
25283	.byte	32
25284	.short	256
25285	.byte	2
25286	.byte	2
25287	.short	1066
25288	.short	1497
25289	.byte	2
25290	.byte	34
25291	.byte	40
25292	.byte	32
25293	.byte	3
25294	.byte	1
25295	.byte	1
25296	.byte	0
25297	.byte	0
25298	.byte	0
25299	.space	4
25300	.byte	6
25301	.byte	-104
25302	.byte	-41
25303	.byte	-108
25304	.byte	50
25305	.byte	118
25306	.byte	85
25307	.byte	1
25308	.byte	1
25309	.byte	16
25310	.short	128
25311	.byte	2
25312	.byte	2
25313	.short	2050
25314	.short	401
25315	.byte	2
25316	.byte	0
25317	.byte	24
25318	.byte	32
25319	.byte	1
25320	.byte	1
25321	.byte	1
25322	.byte	0
25323	.byte	0
25324	.byte	0
25325	.space	4
25326	.byte	6
25327	.byte	-104
25328	.byte	-34
25329	.byte	-108
25330	.byte	-109
25331	.byte	118
25332	.byte	87
25333	.byte	1
25334	.byte	1
25335	.byte	32
25336	.short	256
25337	.byte	2
25338	.byte	2
25339	.short	1058
25340	.short	1497
25341	.byte	2
25342	.byte	33
25343	.byte	40
25344	.byte	32
25345	.byte	3
25346	.byte	1
25347	.byte	1
25348	.byte	0
25349	.byte	0
25350	.byte	0
25351	.space	4
25352	.byte	6
25353	.byte	-104
25354	.byte	-41
25355	.byte	-124
25356	.byte	-109
25357	.byte	114
25358	.byte	80
25359	.byte	1
25360	.byte	1
25361	.byte	32
25362	.short	256
25363	.byte	2
25364	.byte	1
25365	.short	1060
25366	.short	1473
25367	.byte	2
25368	.byte	34
25369	.byte	40
25370	.byte	32
25371	.byte	3
25372	.byte	1
25373	.byte	1
25374	.byte	0
25375	.byte	0
25376	.byte	0
25377	.space	4
25378	.byte	6
25379	.byte	-104
25380	.byte	-34
25381	.byte	-108
25382	.byte	-109
25383	.byte	118
25384	.byte	81
25385	.byte	1
25386	.byte	1
25387	.byte	32
25388	.short	256
25389	.byte	2
25390	.byte	2
25391	.short	1074
25392	.short	1497
25393	.byte	2
25394	.byte	35
25395	.byte	40
25396	.byte	32
25397	.byte	3
25398	.byte	1
25399	.byte	4
25400	.byte	0
25401	.byte	0
25402	.byte	0
25403	.space	4
25404	.byte	6
25405	.byte	-104
25406	.byte	58
25407	.byte	-108
25408	.byte	-109
25409	.byte	118
25410	.byte	81
25411	.byte	1
25412	.byte	1
25413	.byte	32
25414	.short	256
25415	.byte	2
25416	.byte	2
25417	.short	2106
25418	.short	1497
25419	.byte	2
25420	.byte	35
25421	.byte	40
25422	.byte	32
25423	.byte	3
25424	.byte	1
25425	.byte	4
25426	.byte	0
25427	.byte	0
25428	.byte	0
25429	.space	4
25430	.byte	6
25431	.byte	-104
25432	.byte	-41
25433	.byte	-124
25434	.byte	-109
25435	.byte	114
25436	.byte	81
25437	.byte	1
25438	.byte	1
25439	.byte	32
25440	.short	256
25441	.byte	2
25442	.byte	1
25443	.short	1056
25444	.short	1497
25445	.byte	2
25446	.byte	35
25447	.byte	40
25448	.byte	32
25449	.byte	3
25450	.byte	1
25451	.byte	4
25452	.byte	0
25453	.byte	0
25454	.byte	0
25455	.space	4
25456	.byte	6
25457	.byte	69
25458	.byte	-34
25459	.byte	-108
25460	.byte	-109
25461	.byte	118
25462	.byte	87
25463	.byte	8
25464	.byte	1
25465	.byte	32
25466	.short	256
25467	.byte	2
25468	.byte	2
25469	.short	1058
25470	.short	1497
25471	.byte	2
25472	.byte	66
25473	.byte	40
25474	.byte	32
25475	.byte	3
25476	.byte	1
25477	.byte	1
25478	.byte	0
25479	.byte	0
25480	.byte	0
25481	.space	4
25482	.byte	6
25483	.byte	69
25484	.byte	-41
25485	.byte	-124
25486	.byte	-109
25487	.byte	114
25488	.byte	87
25489	.byte	8
25490	.byte	1
25491	.byte	32
25492	.short	256
25493	.byte	2
25494	.byte	1
25495	.short	1060
25496	.short	1473
25497	.byte	2
25498	.byte	66
25499	.byte	40
25500	.byte	32
25501	.byte	2
25502	.byte	1
25503	.byte	1
25504	.byte	0
25505	.byte	0
25506	.byte	0
25507	.space	4
25508	.byte	6
25509	.byte	69
25510	.byte	-34
25511	.byte	-92
25512	.byte	-126
25513	.byte	118
25514	.byte	86
25515	.byte	8
25516	.byte	1
25517	.byte	16
25518	.short	256
25519	.byte	2
25520	.byte	2
25521	.short	2082
25522	.short	473
25523	.byte	1
25524	.byte	65
25525	.byte	40
25526	.byte	32
25527	.byte	3
25528	.byte	1
25529	.byte	1
25530	.byte	0
25531	.byte	0
25532	.byte	0
25533	.space	4
25534	.byte	6
25535	.byte	69
25536	.byte	-34
25537	.byte	-108
25538	.byte	-109
25539	.byte	118
25540	.byte	80
25541	.byte	8
25542	.byte	1
25543	.byte	32
25544	.short	256
25545	.byte	2
25546	.byte	2
25547	.short	1066
25548	.short	1497
25549	.byte	2
25550	.byte	67
25551	.byte	40
25552	.byte	32
25553	.byte	3
25554	.byte	1
25555	.byte	1
25556	.byte	0
25557	.byte	0
25558	.byte	0
25559	.space	4
25560	.byte	6
25561	.byte	69
25562	.byte	-41
25563	.byte	-124
25564	.byte	-109
25565	.byte	114
25566	.byte	80
25567	.byte	8
25568	.byte	1
25569	.byte	32
25570	.short	256
25571	.byte	2
25572	.byte	1
25573	.short	1060
25574	.short	1473
25575	.byte	2
25576	.byte	67
25577	.byte	40
25578	.byte	32
25579	.byte	3
25580	.byte	1
25581	.byte	1
25582	.byte	0
25583	.byte	0
25584	.byte	0
25585	.space	4
25586	.byte	6
25587	.byte	69
25588	.byte	-34
25589	.byte	-92
25590	.byte	-126
25591	.byte	118
25592	.byte	-41
25593	.byte	8
25594	.byte	1
25595	.byte	16
25596	.short	256
25597	.byte	2
25598	.byte	2
25599	.short	2090
25600	.short	1241
25601	.byte	1
25602	.byte	66
25603	.byte	40
25604	.byte	32
25605	.byte	3
25606	.byte	1
25607	.byte	1
25608	.byte	0
25609	.byte	0
25610	.byte	0
25611	.space	4
25612	.byte	6
25613	.byte	69
25614	.byte	-34
25615	.byte	-124
25616	.byte	-109
25617	.byte	114
25618	.byte	87
25619	.byte	8
25620	.byte	1
25621	.byte	32
25622	.short	256
25623	.byte	2
25624	.byte	1
25625	.short	2092
25626	.short	1473
25627	.byte	2
25628	.byte	66
25629	.byte	40
25630	.byte	32
25631	.byte	3
25632	.byte	1
25633	.byte	1
25634	.byte	0
25635	.byte	0
25636	.byte	0
25637	.space	4
25638	.byte	6
25639	.byte	69
25640	.byte	58
25641	.byte	-108
25642	.byte	-109
25643	.byte	118
25644	.byte	81
25645	.byte	8
25646	.byte	1
25647	.byte	32
25648	.short	256
25649	.byte	2
25650	.byte	2
25651	.short	2106
25652	.short	473
25653	.byte	2
25654	.byte	68
25655	.byte	40
25656	.byte	32
25657	.byte	3
25658	.byte	1
25659	.byte	4
25660	.byte	0
25661	.byte	0
25662	.byte	0
25663	.space	4
25664	.byte	6
25665	.byte	69
25666	.byte	-34
25667	.byte	-108
25668	.byte	-109
25669	.byte	118
25670	.byte	81
25671	.byte	8
25672	.byte	1
25673	.byte	32
25674	.short	256
25675	.byte	2
25676	.byte	2
25677	.short	1074
25678	.short	473
25679	.byte	2
25680	.byte	68
25681	.byte	40
25682	.byte	32
25683	.byte	3
25684	.byte	1
25685	.byte	4
25686	.byte	0
25687	.byte	0
25688	.byte	0
25689	.space	4
25690	.byte	6
25691	.byte	69
25692	.byte	58
25693	.byte	-92
25694	.byte	-109
25695	.byte	122
25696	.byte	80
25697	.byte	8
25698	.byte	1
25699	.byte	32
25700	.short	256
25701	.byte	2
25702	.byte	2
25703	.short	2138
25704	.short	1497
25705	.byte	2
25706	.byte	0
25707	.byte	40
25708	.byte	32
25709	.byte	3
25710	.byte	1
25711	.byte	1
25712	.byte	0
25713	.byte	0
25714	.byte	0
25715	.space	4
25716	.byte	6
25717	.byte	69
25718	.byte	-34
25719	.byte	-108
25720	.byte	-126
25721	.byte	118
25722	.byte	86
25723	.byte	8
25724	.byte	1
25725	.byte	16
25726	.short	256
25727	.byte	2
25728	.byte	2
25729	.short	2062
25730	.short	473
25731	.byte	1
25732	.byte	0
25733	.byte	40
25734	.byte	32
25735	.byte	3
25736	.byte	1
25737	.byte	1
25738	.byte	0
25739	.byte	0
25740	.byte	0
25741	.space	4
25742	.byte	6
25743	.byte	69
25744	.byte	-34
25745	.byte	-108
25746	.byte	-109
25747	.byte	118
25748	.byte	-41
25749	.byte	8
25750	.byte	1
25751	.byte	32
25752	.short	256
25753	.byte	2
25754	.byte	2
25755	.short	1058
25756	.short	1497
25757	.byte	2
25758	.byte	66
25759	.byte	40
25760	.byte	32
25761	.byte	3
25762	.byte	1
25763	.byte	1
25764	.byte	0
25765	.byte	0
25766	.byte	0
25767	.space	4
25768	.byte	6
25769	.byte	-20
25770	.byte	-41
25771	.byte	-108
25772	.byte	126
25773	.byte	100
25774	.byte	68
25775	.byte	0
25776	.byte	1
25777	.byte	16
25778	.short	128
25779	.byte	2
25780	.byte	2
25781	.short	2048
25782	.short	473
25783	.byte	2
25784	.byte	49
25785	.byte	60
25786	.byte	36
25787	.byte	3
25788	.byte	0
25789	.byte	3
25790	.byte	0
25791	.byte	0
25792	.byte	0
25793	.space	4
25794	.byte	6
25795	.byte	-20
25796	.byte	-34
25797	.byte	-43
25798	.byte	126
25799	.byte	104
25800	.byte	68
25801	.byte	0
25802	.byte	2
25803	.byte	16
25804	.short	128
25805	.byte	2
25806	.byte	2
25807	.short	2048
25808	.short	505
25809	.byte	2
25810	.byte	49
25811	.byte	60
25812	.byte	36
25813	.byte	3
25814	.byte	0
25815	.byte	3
25816	.byte	0
25817	.byte	0
25818	.byte	0
25819	.space	4
25820	.byte	6
25821	.byte	-20
25822	.byte	-41
25823	.byte	-108
25824	.byte	122
25825	.byte	84
25826	.byte	67
25827	.byte	0
25828	.byte	1
25829	.byte	16
25830	.short	128
25831	.byte	2
25832	.byte	2
25833	.short	2076
25834	.short	409
25835	.byte	2
25836	.byte	0
25837	.byte	40
25838	.byte	36
25839	.byte	3
25840	.byte	1
25841	.byte	3
25842	.byte	0
25843	.byte	0
25844	.byte	0
25845	.space	4
25846	.byte	6
25847	.byte	-20
25848	.byte	-34
25849	.byte	-43
25850	.byte	122
25851	.byte	88
25852	.byte	67
25853	.byte	0
25854	.byte	2
25855	.byte	16
25856	.short	128
25857	.byte	2
25858	.byte	2
25859	.short	2076
25860	.short	441
25861	.byte	2
25862	.byte	0
25863	.byte	40
25864	.byte	36
25865	.byte	3
25866	.byte	1
25867	.byte	3
25868	.byte	0
25869	.byte	0
25870	.byte	0
25871	.space	4
25872	.byte	6
25873	.byte	-20
25874	.byte	-43
25875	.byte	-108
25876	.byte	118
25877	.byte	84
25878	.byte	67
25879	.byte	0
25880	.byte	1
25881	.byte	16
25882	.short	128
25883	.byte	2
25884	.byte	2
25885	.short	1038
25886	.short	281
25887	.byte	2
25888	.byte	0
25889	.byte	24
25890	.byte	36
25891	.byte	3
25892	.byte	1
25893	.byte	3
25894	.byte	0
25895	.byte	0
25896	.byte	0
25897	.space	4
25898	.byte	6
25899	.byte	-20
25900	.byte	-41
25901	.byte	20
25902	.byte	118
25903	.byte	84
25904	.byte	-62
25905	.byte	0
25906	.byte	1
25907	.byte	16
25908	.short	128
25909	.byte	2
25910	.byte	2
25911	.short	2076
25912	.short	1169
25913	.byte	2
25914	.byte	0
25915	.byte	24
25916	.byte	40
25917	.byte	3
25918	.byte	1
25919	.byte	3
25920	.byte	0
25921	.byte	0
25922	.byte	0
25923	.space	4
25924	.section	.data.NandOptPara,"aw",%progbits
25925	.set	.LANCHOR143,. + 0
25926	.type	NandOptPara, %object
25927	.size	NandOptPara, 128
25928NandOptPara:
25929	.byte	1
25930	.byte	0
25931	.byte	49
25932	.byte	63
25933	.byte	0
25934	.byte	49
25935	.byte	-128
25936	.byte	21
25937	.byte	0
25938	.byte	50
25939	.byte	17
25940	.byte	-128
25941	.byte	112
25942	.byte	120
25943	.byte	120
25944	.byte	3
25945	.byte	1
25946	.byte	0
25947	.space	14
25948	.byte	2
25949	.byte	0
25950	.byte	49
25951	.byte	63
25952	.byte	0
25953	.byte	49
25954	.byte	-128
25955	.byte	21
25956	.byte	0
25957	.byte	0
25958	.byte	17
25959	.byte	-127
25960	.byte	112
25961	.byte	-15
25962	.byte	-14
25963	.byte	0
25964	.byte	0
25965	.byte	0
25966	.space	14
25967	.byte	3
25968	.byte	0
25969	.byte	49
25970	.byte	63
25971	.byte	0
25972	.byte	49
25973	.byte	-128
25974	.byte	21
25975	.byte	96
25976	.byte	96
25977	.byte	17
25978	.byte	-127
25979	.byte	112
25980	.byte	-15
25981	.byte	-14
25982	.byte	0
25983	.byte	0
25984	.byte	0
25985	.space	14
25986	.byte	4
25987	.byte	0
25988	.byte	49
25989	.byte	63
25990	.byte	0
25991	.byte	49
25992	.byte	-128
25993	.byte	21
25994	.byte	96
25995	.byte	96
25996	.byte	17
25997	.byte	-127
25998	.byte	112
25999	.byte	112
26000	.byte	112
26001	.byte	0
26002	.byte	0
26003	.byte	0
26004	.space	14
26005	.section	.data.SamsungRefValue,"aw",%progbits
26006	.set	.LANCHOR14,. + 0
26007	.type	SamsungRefValue, %object
26008	.size	SamsungRefValue, 64
26009SamsungRefValue:
26010	.byte	-89
26011	.byte	-92
26012	.byte	-91
26013	.byte	-90
26014	.byte	0
26015	.byte	0
26016	.byte	0
26017	.byte	0
26018	.byte	5
26019	.byte	10
26020	.byte	0
26021	.byte	0
26022	.byte	40
26023	.byte	0
26024	.byte	-20
26025	.byte	-40
26026	.byte	-19
26027	.byte	-11
26028	.byte	-19
26029	.byte	-26
26030	.byte	10
26031	.byte	15
26032	.byte	5
26033	.byte	0
26034	.byte	15
26035	.byte	10
26036	.byte	-5
26037	.byte	-20
26038	.byte	-24
26039	.byte	-17
26040	.byte	-24
26041	.byte	-36
26042	.byte	-15
26043	.byte	-5
26044	.byte	-2
26045	.byte	-16
26046	.byte	10
26047	.byte	0
26048	.byte	-5
26049	.byte	-20
26050	.byte	-48
26051	.byte	-30
26052	.byte	-48
26053	.byte	-62
26054	.byte	20
26055	.byte	15
26056	.byte	-5
26057	.byte	-20
26058	.byte	-24
26059	.byte	-5
26060	.byte	-24
26061	.byte	-36
26062	.byte	30
26063	.byte	20
26064	.byte	-5
26065	.byte	-20
26066	.byte	-5
26067	.byte	-1
26068	.byte	-5
26069	.byte	-8
26070	.byte	7
26071	.byte	12
26072	.byte	2
26073	.byte	0
26074	.section	.data.Toshiba15RefValue,"aw",%progbits
26075	.set	.LANCHOR11,. + 0
26076	.type	Toshiba15RefValue, %object
26077	.size	Toshiba15RefValue, 95
26078Toshiba15RefValue:
26079	.byte	4
26080	.byte	5
26081	.byte	6
26082	.byte	7
26083	.byte	13
26084	.byte	0
26085	.byte	0
26086	.byte	0
26087	.byte	0
26088	.byte	0
26089	.byte	0
26090	.byte	0
26091	.byte	0
26092	.byte	0
26093	.byte	0
26094	.byte	2
26095	.byte	4
26096	.byte	2
26097	.byte	0
26098	.byte	0
26099	.byte	8
26100	.byte	8
26101	.byte	0
26102	.byte	0
26103	.byte	0
26104	.byte	124
26105	.byte	0
26106	.byte	124
26107	.byte	124
26108	.byte	0
26109	.byte	122
26110	.byte	0
26111	.byte	122
26112	.byte	122
26113	.byte	0
26114	.byte	11
26115	.byte	126
26116	.byte	118
26117	.byte	116
26118	.byte	0
26119	.byte	120
26120	.byte	2
26121	.byte	120
26122	.byte	122
26123	.byte	0
26124	.byte	126
26125	.byte	4
26126	.byte	126
26127	.byte	122
26128	.byte	0
26129	.byte	16
26130	.byte	118
26131	.byte	114
26132	.byte	112
26133	.byte	0
26134	.byte	118
26135	.byte	4
26136	.byte	118
26137	.byte	120
26138	.byte	0
26139	.byte	4
26140	.byte	4
26141	.byte	4
26142	.byte	118
26143	.byte	0
26144	.byte	2
26145	.byte	0
26146	.byte	126
26147	.byte	124
26148	.byte	0
26149	.byte	6
26150	.byte	10
26151	.byte	6
26152	.byte	2
26153	.byte	0
26154	.byte	116
26155	.byte	124
26156	.byte	116
26157	.byte	118
26158	.byte	0
26159	.byte	4
26160	.byte	4
26161	.byte	124
26162	.byte	126
26163	.byte	0
26164	.byte	0
26165	.byte	124
26166	.byte	120
26167	.byte	120
26168	.byte	0
26169	.byte	124
26170	.byte	118
26171	.byte	116
26172	.byte	114
26173	.byte	0
26174	.section	.data.ToshibaA19RefValue,"aw",%progbits
26175	.set	.LANCHOR9,. + 0
26176	.type	ToshibaA19RefValue, %object
26177	.size	ToshibaA19RefValue, 45
26178ToshibaA19RefValue:
26179	.byte	4
26180	.byte	5
26181	.byte	6
26182	.byte	7
26183	.byte	13
26184	.byte	0
26185	.byte	0
26186	.byte	0
26187	.byte	0
26188	.byte	0
26189	.byte	4
26190	.byte	4
26191	.byte	124
26192	.byte	126
26193	.byte	0
26194	.byte	0
26195	.byte	124
26196	.byte	120
26197	.byte	120
26198	.byte	0
26199	.byte	124
26200	.byte	118
26201	.byte	116
26202	.byte	114
26203	.byte	0
26204	.byte	8
26205	.byte	8
26206	.byte	0
26207	.byte	0
26208	.byte	0
26209	.byte	11
26210	.byte	126
26211	.byte	118
26212	.byte	116
26213	.byte	0
26214	.byte	16
26215	.byte	118
26216	.byte	114
26217	.byte	112
26218	.byte	0
26219	.byte	2
26220	.byte	0
26221	.byte	126
26222	.byte	124
26223	.byte	0
26224	.section	.data.ToshibaRefValue,"aw",%progbits
26225	.set	.LANCHOR12,. + 0
26226	.type	ToshibaRefValue, %object
26227	.size	ToshibaRefValue, 8
26228ToshibaRefValue:
26229	.byte	0
26230	.byte	4
26231	.byte	124
26232	.byte	120
26233	.byte	116
26234	.byte	8
26235	.byte	12
26236	.byte	112
26237	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits
26238	.align	1
26239	.set	.LANCHOR226,. + 0
26240	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
26241	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
26242ftl_gc_temp_block_bops_scan_page_addr:
26243	.short	-1
26244	.section	.data.gFtlInitStatus,"aw",%progbits
26245	.align	2
26246	.set	.LANCHOR231,. + 0
26247	.type	gFtlInitStatus, %object
26248	.size	gFtlInitStatus, 4
26249gFtlInitStatus:
26250	.word	-1
26251	.section	.data.gNandParaInfo,"aw",%progbits
26252	.align	1
26253	.set	.LANCHOR31,. + 0
26254	.type	gNandParaInfo, %object
26255	.size	gNandParaInfo, 32
26256gNandParaInfo:
26257	.byte	0
26258	.byte	0
26259	.space	5
26260	.byte	0
26261	.byte	1
26262	.byte	8
26263	.short	128
26264	.byte	2
26265	.byte	1
26266	.short	2048
26267	.short	0
26268	.byte	1
26269	.byte	0
26270	.byte	24
26271	.byte	32
26272	.byte	1
26273	.byte	0
26274	.byte	1
26275	.byte	0
26276	.byte	0
26277	.byte	0
26278	.space	4
26279	.section	.data.gSlcNandParaInfo,"aw",%progbits
26280	.align	1
26281	.set	.LANCHOR200,. + 0
26282	.type	gSlcNandParaInfo, %object
26283	.size	gSlcNandParaInfo, 32
26284gSlcNandParaInfo:
26285	.byte	2
26286	.byte	-104
26287	.byte	-15
26288	.byte	0
26289	.byte	0
26290	.byte	0
26291	.byte	0
26292	.byte	1
26293	.byte	1
26294	.byte	4
26295	.short	64
26296	.byte	1
26297	.byte	1
26298	.short	1024
26299	.short	256
26300	.byte	0
26301	.byte	0
26302	.byte	16
26303	.byte	40
26304	.byte	1
26305	.byte	0
26306	.byte	1
26307	.byte	0
26308	.byte	0
26309	.byte	0
26310	.space	4
26311	.section	.data.power_up_flag,"aw",%progbits
26312	.align	2
26313	.type	power_up_flag, %object
26314	.size	power_up_flag, 4
26315power_up_flag:
26316	.word	1
26317	.section	.data.random_seed,"aw",%progbits
26318	.align	1
26319	.set	.LANCHOR4,. + 0
26320	.type	random_seed, %object
26321	.size	random_seed, 256
26322random_seed:
26323	.short	22378
26324	.short	1512
26325	.short	25245
26326	.short	17827
26327	.short	25756
26328	.short	19440
26329	.short	9026
26330	.short	10030
26331	.short	29528
26332	.short	20467
26333	.short	29676
26334	.short	24432
26335	.short	31328
26336	.short	6872
26337	.short	13426
26338	.short	13842
26339	.short	8783
26340	.short	1108
26341	.short	782
26342	.short	28837
26343	.short	30729
26344	.short	9505
26345	.short	18676
26346	.short	23085
26347	.short	18730
26348	.short	1085
26349	.short	32609
26350	.short	14697
26351	.short	20858
26352	.short	15170
26353	.short	30365
26354	.short	1607
26355	.short	32298
26356	.short	4995
26357	.short	18905
26358	.short	1976
26359	.short	9592
26360	.short	20204
26361	.short	17443
26362	.short	13615
26363	.short	23330
26364	.short	29369
26365	.short	13947
26366	.short	9398
26367	.short	32398
26368	.short	8984
26369	.short	27600
26370	.short	21785
26371	.short	6019
26372	.short	6311
26373	.short	31598
26374	.short	30210
26375	.short	19327
26376	.short	13896
26377	.short	11347
26378	.short	27545
26379	.short	3107
26380	.short	26575
26381	.short	32270
26382	.short	19852
26383	.short	20601
26384	.short	8349
26385	.short	9290
26386	.short	29819
26387	.short	13579
26388	.short	3661
26389	.short	28676
26390	.short	27331
26391	.short	32574
26392	.short	8693
26393	.short	31253
26394	.short	9081
26395	.short	5399
26396	.short	6842
26397	.short	20087
26398	.short	5537
26399	.short	1274
26400	.short	11617
26401	.short	9530
26402	.short	4866
26403	.short	8035
26404	.short	23219
26405	.short	1178
26406	.short	23272
26407	.short	7383
26408	.short	18944
26409	.short	12488
26410	.short	12871
26411	.short	29340
26412	.short	20532
26413	.short	11022
26414	.short	22514
26415	.short	228
26416	.short	22363
26417	.short	24978
26418	.short	14584
26419	.short	12138
26420	.short	3092
26421	.short	17916
26422	.short	16863
26423	.short	14554
26424	.short	31457
26425	.short	29474
26426	.short	25311
26427	.short	24121
26428	.short	3684
26429	.short	28037
26430	.short	22865
26431	.short	22839
26432	.short	25217
26433	.short	13217
26434	.short	27186
26435	.short	14938
26436	.short	11180
26437	.short	29754
26438	.short	24180
26439	.short	15150
26440	.short	32455
26441	.short	20434
26442	.short	23848
26443	.short	29983
26444	.short	16120
26445	.short	14769
26446	.short	20041
26447	.short	29803
26448	.short	28406
26449	.short	17598
26450	.short	28087
26451	.section	.data.refValueDefault,"aw",%progbits
26452	.set	.LANCHOR196,. + 0
26453	.type	refValueDefault, %object
26454	.size	refValueDefault, 28
26455refValueDefault:
26456	.byte	0
26457	.byte	0
26458	.byte	0
26459	.byte	0
26460	.byte	0
26461	.byte	6
26462	.byte	10
26463	.byte	6
26464	.byte	0
26465	.byte	-3
26466	.byte	-7
26467	.byte	-8
26468	.byte	0
26469	.byte	-6
26470	.byte	-13
26471	.byte	-15
26472	.byte	0
26473	.byte	-11
26474	.byte	-20
26475	.byte	-23
26476	.byte	0
26477	.byte	0
26478	.byte	-26
26479	.byte	-30
26480	.byte	0
26481	.byte	0
26482	.byte	-32
26483	.byte	-37
26484	.section	.rodata.FlashDdrTunningRead.str1.1,"aMS",%progbits,1
26485.LC9:
26486	.ascii	"sdr read ok %x ecc=%d\012\000"
26487.LC10:
26488	.ascii	"sync para %d\012\000"
26489.LC11:
26490	.ascii	"TOG mode Read error %x %x\012\000"
26491	.section	.rodata.FlashEraseSLc2KBlocks.str1.1,"aMS",%progbits,1
26492.LC1:
26493	.ascii	"FlashEraseBlocks pageAddr error %x\012\000"
26494	.section	.rodata.FlashInit.str1.1,"aMS",%progbits,1
26495.LC23:
26496	.ascii	"No.%d FLASH ID:%x %x %x %x %x %x\012\000"
26497.LC24:
26498	.ascii	"FlashLoadPhyInfo fail %x!!\012\000"
26499	.section	.rodata.FlashProgSlc2KPages.str1.1,"aMS",%progbits,1
26500.LC29:
26501	.ascii	"prog error: = %x\012\000"
26502.LC30:
26503	.ascii	"prog read error: = %x\012\000"
26504.LC31:
26505	.ascii	"prog read s error: = %x %x %x\012\000"
26506.LC32:
26507	.ascii	"prog read d error: = %x %x %x\012\000"
26508	.section	.rodata.FlashReadFacBbtData.str1.1,"aMS",%progbits,1
26509.LC53:
26510	.ascii	"BBT:\000"
26511	.section	.rodata.FlashReadIdbDataRaw.str1.1,"aMS",%progbits,1
26512.LC14:
26513	.ascii	"ECC:%d\012\000"
26514	.section	.rodata.FlashReadPage.str1.1,"aMS",%progbits,1
26515.LC12:
26516	.ascii	"read retry status %x %x %x\012\000"
26517	.section	.rodata.FlashReadPages.str1.1,"aMS",%progbits,1
26518.LC28:
26519	.ascii	"ReadRetry pageadd=%x ecc=%x err=%x\012\000"
26520	.section	.rodata.FlashReadSlc2KPages.str1.1,"aMS",%progbits,1
26521.LC25:
26522	.ascii	"Read pageadd=%x  ecc=%x err=%x\012\000"
26523.LC26:
26524	.ascii	"data:\000"
26525.LC27:
26526	.ascii	"spare:\000"
26527	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1
26528.LC2:
26529	.ascii	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
26530	.ascii	"\000"
26531	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1
26532.LC33:
26533	.ascii	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
26534.LC34:
26535	.ascii	"FtlBbmTblFlush error:%x\012\000"
26536.LC35:
26537	.ascii	"FtlBbmTblFlush error = %x error count = %d\012\000"
26538	.section	.rodata.FtlCheckVpc.str1.1,"aMS",%progbits,1
26539.LC73:
26540	.ascii	"vpc1\000"
26541.LC74:
26542	.ascii	"vpc2\000"
26543.LC75:
26544	.ascii	"FtlCheckVpc2 %x = %x  %x\012\000"
26545.LC76:
26546	.ascii	"free blk vpc error %x = %x  %x\012\000"
26547	.section	.rodata.FtlDumpBlockInfo.str1.1,"aMS",%progbits,1
26548.LC45:
26549	.ascii	"...%s enter...\012\000"
26550.LC46:
26551	.ascii	"superBlkID = %x vpc=%x\012\000"
26552.LC47:
26553	.ascii	"flashmode = %x pagenum = %x %x\012\000"
26554.LC48:
26555	.ascii	"id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
26556	.ascii	"\000"
26557	.section	.rodata.FtlDumpSysBlock.str1.1,"aMS",%progbits,1
26558.LC77:
26559	.ascii	"id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
26560	.ascii	"\000"
26561.LC78:
26562	.ascii	":\000"
26563	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1
26564.LC3:
26565	.ascii	"FtlFreeSysBlkQueueOut free count = %d\012\000"
26566.LC4:
26567	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
26568	.ascii	"\000"
26569	.section	.rodata.FtlGcFreeTempBlock.str1.1,"aMS",%progbits,1
26570.LC64:
26571	.ascii	"GC des block %x done\012\000"
26572	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1
26573.LC52:
26574	.ascii	"FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
26575	.section	.rodata.FtlInit.str1.1,"aMS",%progbits,1
26576.LC66:
26577	.ascii	"FTL version: 5.0.50 20180905\000"
26578.LC67:
26579	.ascii	"...%s: no bad block mapping table, format device\012"
26580	.ascii	"\000"
26581.LC68:
26582	.ascii	"...%s FtlSysBlkInit error ,format device!\012\000"
26583	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1
26584.LC43:
26585	.ascii	"no ect\000"
26586	.section	.rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1
26587.LC40:
26588	.ascii	"FtlMapWritePage error = %x\012\000"
26589.LC41:
26590	.ascii	"FtlMapWritePage error = %x error count = %d\012\000"
26591	.section	.rodata.FtlProgPages.str1.1,"aMS",%progbits,1
26592.LC57:
26593	.ascii	"Ftlwrite decrement_vpc_count %x = %d\012\000"
26594	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1
26595.LC61:
26596	.ascii	"RSB refresh addr %x\012\000"
26597.LC62:
26598	.ascii	"spuer block %x vpn is 0\012 \000"
26599.LC63:
26600	.ascii	"g_recovery_ppa %x ver %x\012 \000"
26601	.section	.rodata.FtlScanAllBlock.str1.1,"aMS",%progbits,1
26602.LC49:
26603	.ascii	"blk = %x vpc=%x mode = %x\012\000"
26604.LC50:
26605	.ascii	"mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
26606	.ascii	"%x\012\000"
26607.LC51:
26608	.ascii	"slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
26609	.ascii	"%x\012\000"
26610	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1
26611.LC42:
26612	.ascii	"FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
26613	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1
26614.LC38:
26615	.ascii	"FtlVpcTblFlush error = %x error count = %d\012\000"
26616	.section	.rodata.FtlWrite.str1.1,"aMS",%progbits,1
26617.LC72:
26618	.ascii	"FtlWrite: lpa error:%x %x\012\000"
26619	.section	.rodata.Ftl_load_ext_data.str1.1,"aMS",%progbits,1
26620.LC44:
26621	.ascii	"slc mode\000"
26622	.section	.rodata.Ftlscanalldata.str1.1,"aMS",%progbits,1
26623.LC58:
26624	.ascii	"Ftlscanalldata = %x\012\000"
26625.LC59:
26626	.ascii	"scan lpa = %x ppa= %x\012\000"
26627.LC60:
26628	.ascii	"lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
26629	.ascii	"\000"
26630	.section	.rodata.HynixGetReadRetryDefault.str1.1,"aMS",%progbits,1
26631.LC21:
26632	.ascii	"otp error! %d\000"
26633.LC22:
26634	.ascii	"rr\000"
26635	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1
26636.LC5:
26637	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
26638.LC6:
26639	.ascii	"!!!!! FTL sys Error !!!!!\000"
26640.LC7:
26641	.ascii	"%s\012\000"
26642	.section	.rodata.MicronReadRetrial.str1.1,"aMS",%progbits,1
26643.LC13:
26644	.ascii	"micron RR %d row=%x,count %d,status=%d\012\000"
26645	.section	.rodata.__func__.10408,"a",%progbits
26646	.set	.LANCHOR245,. + 0
26647	.type	__func__.10408, %object
26648	.size	__func__.10408, 8
26649__func__.10408:
26650	.ascii	"FtlInit\000"
26651	.section	.rodata.__func__.10468,"a",%progbits
26652	.set	.LANCHOR229,. + 0
26653	.type	__func__.10468, %object
26654	.size	__func__.10468, 13
26655__func__.10468:
26656	.ascii	"FtlProgPages\000"
26657	.section	.rodata.__func__.10494,"a",%progbits
26658	.set	.LANCHOR247,. + 0
26659	.type	__func__.10494, %object
26660	.size	__func__.10494, 9
26661__func__.10494:
26662	.ascii	"FtlWrite\000"
26663	.section	.rodata.__func__.10577,"a",%progbits
26664	.set	.LANCHOR124,. + 0
26665	.type	__func__.10577, %object
26666	.size	__func__.10577, 14
26667__func__.10577:
26668	.ascii	"FtlBbt2Bitmap\000"
26669	.section	.rodata.__func__.10623,"a",%progbits
26670	.set	.LANCHOR211,. + 0
26671	.type	__func__.10623, %object
26672	.size	__func__.10623, 11
26673__func__.10623:
26674	.ascii	"FtlLoadBbt\000"
26675	.section	.rodata.__func__.10716,"a",%progbits
26676	.set	.LANCHOR90,. + 0
26677	.type	__func__.10716, %object
26678	.size	__func__.10716, 17
26679__func__.10716:
26680	.ascii	"INSERT_FREE_LIST\000"
26681	.section	.rodata.__func__.10720,"a",%progbits
26682	.set	.LANCHOR87,. + 0
26683	.type	__func__.10720, %object
26684	.size	__func__.10720, 17
26685__func__.10720:
26686	.ascii	"INSERT_DATA_LIST\000"
26687	.section	.rodata.__func__.10757,"a",%progbits
26688	.set	.LANCHOR91,. + 0
26689	.type	__func__.10757, %object
26690	.size	__func__.10757, 17
26691__func__.10757:
26692	.ascii	"List_remove_node\000"
26693	.section	.rodata.__func__.10787,"a",%progbits
26694	.set	.LANCHOR95,. + 0
26695	.type	__func__.10787, %object
26696	.size	__func__.10787, 22
26697__func__.10787:
26698	.ascii	"List_update_data_list\000"
26699	.section	.rodata.__func__.10794,"a",%progbits
26700	.set	.LANCHOR228,. + 0
26701	.type	__func__.10794, %object
26702	.size	__func__.10794, 20
26703__func__.10794:
26704	.ascii	"ftl_load_l2p_region\000"
26705	.section	.rodata.__func__.10825,"a",%progbits
26706	.set	.LANCHOR96,. + 0
26707	.type	__func__.10825, %object
26708	.size	__func__.10825, 26
26709__func__.10825:
26710	.ascii	"ftl_map_blk_alloc_new_blk\000"
26711	.section	.rodata.__func__.10835,"a",%progbits
26712	.set	.LANCHOR212,. + 0
26713	.type	__func__.10835, %object
26714	.size	__func__.10835, 15
26715__func__.10835:
26716	.ascii	"ftl_map_blk_gc\000"
26717	.section	.rodata.__func__.10848,"a",%progbits
26718	.set	.LANCHOR213,. + 0
26719	.type	__func__.10848, %object
26720	.size	__func__.10848, 31
26721__func__.10848:
26722	.ascii	"Ftl_write_map_blk_to_last_page\000"
26723	.section	.rodata.__func__.10861,"a",%progbits
26724	.set	.LANCHOR214,. + 0
26725	.type	__func__.10861, %object
26726	.size	__func__.10861, 16
26727__func__.10861:
26728	.ascii	"FtlMapWritePage\000"
26729	.section	.rodata.__func__.10881,"a",%progbits
26730	.set	.LANCHOR99,. + 0
26731	.type	__func__.10881, %object
26732	.size	__func__.10881, 22
26733__func__.10881:
26734	.ascii	"select_l2p_ram_region\000"
26735	.section	.rodata.__func__.10897,"a",%progbits
26736	.set	.LANCHOR227,. + 0
26737	.type	__func__.10897, %object
26738	.size	__func__.10897, 9
26739__func__.10897:
26740	.ascii	"log2phys\000"
26741	.section	.rodata.__func__.10959,"a",%progbits
26742	.set	.LANCHOR210,. + 0
26743	.type	__func__.10959, %object
26744	.size	__func__.10959, 15
26745__func__.10959:
26746	.ascii	"FtlVpcTblFlush\000"
26747	.section	.rodata.__func__.10978,"a",%progbits
26748	.set	.LANCHOR220,. + 0
26749	.type	__func__.10978, %object
26750	.size	__func__.10978, 14
26751__func__.10978:
26752	.ascii	"FtlScanSysBlk\000"
26753	.section	.rodata.__func__.11032,"a",%progbits
26754	.set	.LANCHOR221,. + 0
26755	.type	__func__.11032, %object
26756	.size	__func__.11032, 15
26757__func__.11032:
26758	.ascii	"FtlLoadSysInfo\000"
26759	.section	.rodata.__func__.11043,"a",%progbits
26760	.set	.LANCHOR248,. + 0
26761	.type	__func__.11043, %object
26762	.size	__func__.11043, 12
26763__func__.11043:
26764	.ascii	"FtlCheckVpc\000"
26765	.section	.rodata.__func__.11075,"a",%progbits
26766	.set	.LANCHOR224,. + 0
26767	.type	__func__.11075, %object
26768	.size	__func__.11075, 17
26769__func__.11075:
26770	.ascii	"FtlDumpBlockInfo\000"
26771	.section	.rodata.__func__.11094,"a",%progbits
26772	.set	.LANCHOR225,. + 0
26773	.type	__func__.11094, %object
26774	.size	__func__.11094, 16
26775__func__.11094:
26776	.ascii	"FtlScanAllBlock\000"
26777	.section	.rodata.__func__.11199,"a",%progbits
26778	.set	.LANCHOR233,. + 0
26779	.type	__func__.11199, %object
26780	.size	__func__.11199, 16
26781__func__.11199:
26782	.ascii	"FtlReUsePrevPpa\000"
26783	.section	.rodata.__func__.11232,"a",%progbits
26784	.set	.LANCHOR234,. + 0
26785	.type	__func__.11232, %object
26786	.size	__func__.11232, 22
26787__func__.11232:
26788	.ascii	"FtlRecoverySuperblock\000"
26789	.section	.rodata.__func__.11286,"a",%progbits
26790	.set	.LANCHOR102,. + 0
26791	.type	__func__.11286, %object
26792	.size	__func__.11286, 16
26793__func__.11286:
26794	.ascii	"make_superblock\000"
26795	.section	.rodata.__func__.11306,"a",%progbits
26796	.set	.LANCHOR140,. + 0
26797	.type	__func__.11306, %object
26798	.size	__func__.11306, 18
26799__func__.11306:
26800	.ascii	"SupperBlkListInit\000"
26801	.section	.rodata.__func__.11383,"a",%progbits
26802	.set	.LANCHOR203,. + 0
26803	.type	__func__.11383, %object
26804	.size	__func__.11383, 25
26805__func__.11383:
26806	.ascii	"allocate_data_superblock\000"
26807	.section	.rodata.__func__.11397,"a",%progbits
26808	.set	.LANCHOR219,. + 0
26809	.type	__func__.11397, %object
26810	.size	__func__.11397, 29
26811__func__.11397:
26812	.ascii	"allocate_new_data_superblock\000"
26813	.section	.rodata.__func__.11403,"a",%progbits
26814	.set	.LANCHOR208,. + 0
26815	.type	__func__.11403, %object
26816	.size	__func__.11403, 19
26817__func__.11403:
26818	.ascii	"get_new_active_ppa\000"
26819	.section	.rodata.__func__.11414,"a",%progbits
26820	.set	.LANCHOR206,. + 0
26821	.type	__func__.11414, %object
26822	.size	__func__.11414, 16
26823__func__.11414:
26824	.ascii	"update_vpc_list\000"
26825	.section	.rodata.__func__.11419,"a",%progbits
26826	.set	.LANCHOR207,. + 0
26827	.type	__func__.11419, %object
26828	.size	__func__.11419, 20
26829__func__.11419:
26830	.ascii	"decrement_vpc_count\000"
26831	.section	.rodata.__func__.11487,"a",%progbits
26832	.set	.LANCHOR239,. + 0
26833	.type	__func__.11487, %object
26834	.size	__func__.11487, 19
26835__func__.11487:
26836	.ascii	"FtlGcFreeTempBlock\000"
26837	.section	.rodata.__func__.11581,"a",%progbits
26838	.set	.LANCHOR243,. + 0
26839	.type	__func__.11581, %object
26840	.size	__func__.11581, 23
26841__func__.11581:
26842	.ascii	"rk_ftl_garbage_collect\000"
26843	.section	.rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1
26844.LC36:
26845	.ascii	"decrement_vpc_count %x = %d\012\000"
26846.LC37:
26847	.ascii	"decrement_vpc_count %x = %d in free list\012\000"
26848	.section	.rodata.dump_map_info.str1.1,"aMS",%progbits,1
26849.LC79:
26850	.ascii	"phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
26851	.ascii	"\000"
26852.LC80:
26853	.ascii	"Mblk:\000"
26854.LC81:
26855	.ascii	"L2P:\000"
26856.LC82:
26857	.ascii	"L2PC:\000"
26858	.section	.rodata.ftl_fix_nand_power_lost_error.str1.1,"aMS",%progbits,1
26859.LC70:
26860	.ascii	"fix power lost blk = %x vpc=%x\012\000"
26861.LC71:
26862	.ascii	"erase power lost blk = %x vpc=%x\012\000"
26863	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1
26864.LC8:
26865	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
26866	.section	.rodata.ftl_map_blk_gc.str1.1,"aMS",%progbits,1
26867.LC39:
26868	.ascii	"page map lost: %x %x\012\000"
26869	.section	.rodata.idb_write_data.str1.1,"aMS",%progbits,1
26870.LC15:
26871	.ascii	"1 write_idblock fix data %x %x %x\012\000"
26872.LC16:
26873	.ascii	"write_idblock fail! %x %x %x %x\012\000"
26874.LC17:
26875	.ascii	"write_idblock fail! %x\012\000"
26876	.section	.rodata.log2phys.str1.1,"aMS",%progbits,1
26877.LC54:
26878	.ascii	"region_id = %x phyAddr = %x\012\000"
26879.LC55:
26880	.ascii	"map_ppn:\000"
26881.LC56:
26882	.ascii	"load_l2p_region refresh = %x phyAddr = %x\012\000"
26883	.section	.rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1
26884.LC65:
26885	.ascii	"g_gc_superblock_free %x %x %x %x %x\012\000"
26886	.section	.rodata.rk_ftl_init.str1.1,"aMS",%progbits,1
26887.LC69:
26888	.ascii	"FtlInit %x\012\000"
26889	.section	.rodata.rknand_print_hex.str1.1,"aMS",%progbits,1
26890.LC18:
26891	.ascii	"%s 0x%x:\000"
26892.LC19:
26893	.ascii	"%x \000"
26894.LC20:
26895	.ascii	"\000"
26896	.hidden	free
26897