xref: /OK3568_Linux_fs/kernel/drivers/rk_nand/rk_zftl_arm32.S (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1/*
2 * Copyright (c) 2016-2017, 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: 2021-07-26
9 * function: rk ftl v6 for rockchip soc base on arm v7 to support 3D/2D
10 *	     TLC and MLC.
11 */
12	.arch armv7-a
13	.eabi_attribute 20, 1
14	.eabi_attribute 21, 1
15	.eabi_attribute 23, 3
16	.eabi_attribute 24, 1
17	.eabi_attribute 25, 1
18	.eabi_attribute 26, 2
19	.eabi_attribute 30, 4
20	.eabi_attribute 34, 1
21	.file	"rk_zftl_arm_v7.c"
22	.syntax unified
23	.text
24	.align	2
25	.fpu softvfp
26	.type	flash_mem_cmp8, %function
27flash_mem_cmp8:
28	.fnstart
29	@ args = 0, pretend = 0, frame = 0
30	@ frame_needed = 0, uses_anonymous_args = 0
31	mov	r3, #0
32	cmp	r3, r2
33	bne	.L10
34	mov	r0, #0
35	bx	lr
36.L2:
37	cmp	r3, r2
38	bne	.L5
39	mov	r0, #0
40	ldr	pc, [sp], #4
41.L10:
42	str	lr, [sp, #-4]!
43	.save {lr}
44.L5:
45	ldrb	lr, [r0, r3]	@ zero_extendqisi2
46	ldrb	ip, [r1, r3]	@ zero_extendqisi2
47	add	r3, r3, #1
48	cmp	lr, ip
49	beq	.L2
50	mov	r0, r3
51	ldr	pc, [sp], #4
52	.fnend
53	.size	flash_mem_cmp8, .-flash_mem_cmp8
54	.global	__aeabi_uidiv
55	.global	__aeabi_uidivmod
56	.align	2
57	.syntax unified
58	.arm
59	.fpu softvfp
60	.type	slc_phy_page_address_calc, %function
61slc_phy_page_address_calc:
62	.fnstart
63	@ args = 0, pretend = 0, frame = 0
64	@ frame_needed = 0, uses_anonymous_args = 0
65	push	{r4, r5, r6, r7, r8, lr}
66	.save {r4, r5, r6, r7, r8, lr}
67	mov	r4, r0
68	ldr	r5, .L22
69	ldrb	r3, [r5]	@ zero_extendqisi2
70	cmp	r3, #0
71	beq	.L12
72	ldrb	r3, [r5, #1]	@ zero_extendqisi2
73	cmp	r3, #0
74	beq	.L13
75.L12:
76	ldrh	r6, [r5, #2]
77	mov	r0, r4
78	mov	r1, r6
79	bl	__aeabi_uidiv
80	mov	r1, r6
81	mul	r7, r6, r0
82	mov	r0, r4
83	bl	__aeabi_uidivmod
84	ldrb	r3, [r5, #1]	@ zero_extendqisi2
85	lsl	r1, r1, #1
86	cmp	r3, #0
87	addeq	r1, r5, r1
88	addne	r4, r1, r7
89	ldrheq	r4, [r1, #4]
90	addeq	r4, r4, r7
91.L13:
92	mov	r0, r4
93	pop	{r4, r5, r6, r7, r8, pc}
94.L23:
95	.align	2
96.L22:
97	.word	.LANCHOR0
98	.fnend
99	.size	slc_phy_page_address_calc, .-slc_phy_page_address_calc
100	.align	2
101	.global	zftl_nandc_get_irq_status
102	.syntax unified
103	.arm
104	.fpu softvfp
105	.type	zftl_nandc_get_irq_status, %function
106zftl_nandc_get_irq_status:
107	.fnstart
108	@ args = 0, pretend = 0, frame = 0
109	@ frame_needed = 0, uses_anonymous_args = 0
110	@ link register save eliminated.
111	ldr	r3, .L27
112	ldrb	r3, [r3, #1028]	@ zero_extendqisi2
113	cmp	r3, #9
114	ldreq	r0, [r0, #296]
115	ldrne	r0, [r0, #372]
116	bx	lr
117.L28:
118	.align	2
119.L27:
120	.word	.LANCHOR0
121	.fnend
122	.size	zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status
123	.section	.text.unlikely,"ax",%progbits
124	.align	2
125	.syntax unified
126	.arm
127	.fpu softvfp
128	.type	isxdigit, %function
129isxdigit:
130	.fnstart
131	@ args = 0, pretend = 0, frame = 0
132	@ frame_needed = 0, uses_anonymous_args = 0
133	@ link register save eliminated.
134	bic	r3, r0, #32
135	sub	r3, r3, #65
136	cmp	r3, #25
137	bls	.L31
138	sub	r0, r0, #48
139	cmp	r0, #9
140	movhi	r0, #0
141	movls	r0, #1
142	bx	lr
143.L31:
144	mov	r0, #1
145	bx	lr
146	.fnend
147	.size	isxdigit, .-isxdigit
148	.text
149	.align	2
150	.global	zftl_get_density
151	.syntax unified
152	.arm
153	.fpu softvfp
154	.type	zftl_get_density, %function
155zftl_get_density:
156	.fnstart
157	@ args = 0, pretend = 0, frame = 0
158	@ frame_needed = 0, uses_anonymous_args = 0
159	@ link register save eliminated.
160	cmp	r0, #0
161	bne	.L33
162	ldr	r3, .L36
163	ldr	r0, [r3, #1032]
164	bx	lr
165.L33:
166	cmp	r0, #4
167	movcc	r0, #8192
168	movcs	r0, #0
169	bx	lr
170.L37:
171	.align	2
172.L36:
173	.word	.LANCHOR0
174	.fnend
175	.size	zftl_get_density, .-zftl_get_density
176	.align	2
177	.syntax unified
178	.arm
179	.fpu softvfp
180	.type	_list_remove_node, %function
181_list_remove_node:
182	.fnstart
183	@ args = 0, pretend = 0, frame = 0
184	@ frame_needed = 0, uses_anonymous_args = 0
185	push	{r4, r5, r6, r7, r8, r9, r10, lr}
186	.save {r4, r5, r6, r7, r8, r9, r10, lr}
187	mov	r5, #6
188	ldr	r6, .L47
189	mul	r5, r5, r1
190	movw	r3, #65535
191	ldr	r8, [r6, #1036]
192	ldrh	ip, [r8, r5]
193	add	r4, r8, r5
194	ldrh	r1, [r4, #2]
195	cmp	ip, r3
196	ldr	r3, [r0]
197	bne	.L39
198	cmp	r1, ip
199	bne	.L39
200	cmp	r4, r3
201	popne	{r4, r5, r6, r7, r8, r9, r10, pc}
202.L39:
203	mov	r9, r2
204	movw	r2, #65535
205	cmp	r1, r2
206	mov	r7, r0
207	bne	.L41
208	cmp	r4, r3
209	beq	.L41
210	mov	r2, #202
211	ldr	r1, .L47+4
212	ldr	r0, .L47+8
213	bl	printk
214	bl	dump_stack
215.L41:
216	ldr	r3, [r7]
217	movw	r2, #65535
218	cmp	r4, r3
219	ldrh	r3, [r8, r5]
220	bne	.L42
221	cmp	r3, r2
222	ldrne	r2, [r6, #1036]
223	movne	r1, #6
224	moveq	r3, #0
225	streq	r3, [r7]
226	mlane	r3, r1, r3, r2
227	mvnne	r2, #0
228	strne	r3, [r7]
229	strhne	r2, [r3, #2]	@ movhi
230.L44:
231	mvn	r3, #0
232	strh	r3, [r8, r5]	@ movhi
233	strh	r3, [r4, #2]	@ movhi
234	ldrh	r3, [r9]
235	sub	r3, r3, #1
236	strh	r3, [r9]	@ movhi
237	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
238.L42:
239	cmp	r3, r2
240	ldrh	r1, [r4, #2]
241	bne	.L45
242	cmp	r1, r3
243	movne	r3, #6
244	ldrne	r2, [r6, #1036]
245	mulne	r1, r3, r1
246	mvnne	r3, #0
247	strhne	r3, [r2, r1]	@ movhi
248	b	.L44
249.L45:
250	ldr	r0, [r6, #1036]
251	mov	r2, #6
252	mla	r3, r2, r3, r0
253	strh	r1, [r3, #2]	@ movhi
254	ldrh	r0, [r4, #2]
255	ldrh	r1, [r8, r5]
256	ldr	r3, [r6, #1036]
257	mul	r2, r2, r0
258	strh	r1, [r3, r2]	@ movhi
259	b	.L44
260.L48:
261	.align	2
262.L47:
263	.word	.LANCHOR0
264	.word	.LANCHOR1
265	.word	.LC0
266	.fnend
267	.size	_list_remove_node, .-_list_remove_node
268	.align	2
269	.syntax unified
270	.arm
271	.fpu softvfp
272	.type	ndelay, %function
273ndelay:
274	.fnstart
275	@ args = 0, pretend = 0, frame = 0
276	@ frame_needed = 0, uses_anonymous_args = 0
277	@ link register save eliminated.
278	ldr	r3, .L50
279	add	r0, r0, #996
280	add	r0, r0, #3
281	umull	r0, r1, r0, r3
282	ldr	r3, .L50+4
283	ldr	r3, [r3, #8]
284	lsr	r0, r1, #6
285	bx	r3	@ indirect register sibling call
286.L51:
287	.align	2
288.L50:
289	.word	274877907
290	.word	arm_delay_ops
291	.fnend
292	.size	ndelay, .-ndelay
293	.align	2
294	.syntax unified
295	.arm
296	.fpu softvfp
297	.type	hynix_set_rr_para, %function
298hynix_set_rr_para:
299	.fnstart
300	@ args = 0, pretend = 0, frame = 0
301	@ frame_needed = 0, uses_anonymous_args = 0
302	ldr	r2, .L58
303	push	{r4, r5, r6, r7, r8, r9, r10, lr}
304	.save {r4, r5, r6, r7, r8, r9, r10, lr}
305	lsl	r9, r0, #8
306	ldr	r3, [r2, #1040]
307	ldr	r6, [r2, #1044]
308	ldrb	ip, [r3, #113]	@ zero_extendqisi2
309	add	r4, r3, #112
310	ldrb	r2, [r3, #112]	@ zero_extendqisi2
311	add	r5, r6, r9
312	add	r7, r3, #128
313	add	r8, r3, #127
314	mul	r1, r1, ip
315	cmp	r2, #8
316	movne	r2, #160
317	add	r1, r1, #32
318	smlabbne	r1, r2, r0, r1
319	mov	r2, #54
320	str	r2, [r5, #2056]
321	sub	r2, ip, #1
322	add	r4, r4, r1
323	add	r7, r7, r2
324	sub	r4, r4, #1
325.L55:
326	cmp	r8, r7
327	bne	.L56
328	add	r6, r6, r9
329	mov	r3, #22
330	str	r3, [r6, #2056]
331	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
332.L56:
333	ldrb	r3, [r8, #1]!	@ zero_extendqisi2
334	mov	r0, #120
335	str	r3, [r5, #2052]
336	bl	ndelay
337	ldrsb	r3, [r4, #1]!
338	str	r3, [r5, #2048]
339	b	.L55
340.L59:
341	.align	2
342.L58:
343	.word	.LANCHOR0
344	.fnend
345	.size	hynix_set_rr_para, .-hynix_set_rr_para
346	.align	2
347	.syntax unified
348	.arm
349	.fpu softvfp
350	.type	zftl_debug_proc_open, %function
351zftl_debug_proc_open:
352	.fnstart
353	@ args = 0, pretend = 0, frame = 0
354	@ frame_needed = 0, uses_anonymous_args = 0
355	push	{r4, lr}
356	.save {r4, lr}
357	mov	r4, r1
358	bl	PDE_DATA
359	mov	r2, r0
360	mov	r0, r4
361	ldr	r1, .L62
362	pop	{r4, lr}
363	b	single_open
364.L63:
365	.align	2
366.L62:
367	.word	zftl_debug_proc_show
368	.fnend
369	.size	zftl_debug_proc_open, .-zftl_debug_proc_open
370	.align	2
371	.syntax unified
372	.arm
373	.fpu softvfp
374	.type	zftl_debug_proc_show, %function
375zftl_debug_proc_show:
376	.fnstart
377	@ args = 0, pretend = 0, frame = 0
378	@ frame_needed = 0, uses_anonymous_args = 0
379	push	{r4, lr}
380	.save {r4, lr}
381	mov	r4, r0
382	ldr	r2, .L66
383	ldr	r1, .L66+4
384	bl	seq_printf
385	ldr	r3, .L66+8
386	mov	r0, r4
387	ldr	r1, .L66+12
388	ldr	r2, [r3]
389	bl	seq_printf
390	mov	r0, #0
391	pop	{r4, pc}
392.L67:
393	.align	2
394.L66:
395	.word	.LC1
396	.word	.LC2
397	.word	.LANCHOR2
398	.word	.LC3
399	.fnend
400	.size	zftl_debug_proc_show, .-zftl_debug_proc_show
401	.align	2
402	.global	zftl_flash_suspend
403	.syntax unified
404	.arm
405	.fpu softvfp
406	.type	zftl_flash_suspend, %function
407zftl_flash_suspend:
408	.fnstart
409	@ args = 0, pretend = 0, frame = 0
410	@ frame_needed = 0, uses_anonymous_args = 0
411	@ link register save eliminated.
412	ldr	r3, .L72
413	ldrb	r2, [r3, #1028]	@ zero_extendqisi2
414	cmp	r2, #9
415	ldr	r2, [r3, #1044]
416	ldr	r1, [r2]
417	str	r1, [r3, #1048]
418	ldr	r1, [r2, #4]
419	str	r1, [r3, #1052]
420	bne	.L69
421	ldr	r1, [r2, #16]
422	str	r1, [r3, #1056]
423	ldr	r1, [r2, #32]
424	str	r1, [r3, #1060]
425	ldr	r1, [r2, #80]
426	str	r1, [r3, #1064]
427	ldr	r1, [r2, #84]
428	str	r1, [r3, #1068]
429	ldr	r1, [r2, #520]
430	ldr	r2, [r2, #8]
431	str	r1, [r3, #1072]
432.L71:
433	str	r2, [r3, #1076]
434	bx	lr
435.L69:
436	ldr	r1, [r2, #8]
437	str	r1, [r3, #1056]
438	ldr	r1, [r2, #12]
439	str	r1, [r3, #1060]
440	ldr	r1, [r2, #304]
441	str	r1, [r3, #1064]
442	ldr	r1, [r2, #308]
443	str	r1, [r3, #1068]
444	ldr	r1, [r2, #336]
445	ldr	r2, [r2, #344]
446	str	r1, [r3, #1072]
447	b	.L71
448.L73:
449	.align	2
450.L72:
451	.word	.LANCHOR0
452	.fnend
453	.size	zftl_flash_suspend, .-zftl_flash_suspend
454	.align	2
455	.syntax unified
456	.arm
457	.fpu softvfp
458	.type	nandc_irq_disable, %function
459nandc_irq_disable:
460	.fnstart
461	@ args = 0, pretend = 0, frame = 0
462	@ frame_needed = 0, uses_anonymous_args = 0
463	@ link register save eliminated.
464	ldr	r3, .L77
465	ldrb	r3, [r3, #1028]	@ zero_extendqisi2
466	cmp	r3, #9
467	mov	r3, #1
468	bne	.L75
469	ldr	r2, [r0, #292]
470	lsl	r1, r3, r1
471	orr	r3, r2, r1
472	str	r3, [r0, #292]
473	ldr	r3, [r0, #288]
474	bic	r1, r3, r1
475	str	r1, [r0, #288]
476	bx	lr
477.L75:
478	ldr	r2, [r0, #368]
479	lsl	r1, r3, r1
480	orr	r3, r2, r1
481	str	r3, [r0, #368]
482	ldr	r3, [r0, #364]
483	bic	r1, r3, r1
484	str	r1, [r0, #364]
485	bx	lr
486.L78:
487	.align	2
488.L77:
489	.word	.LANCHOR0
490	.fnend
491	.size	nandc_irq_disable, .-nandc_irq_disable
492	.align	2
493	.syntax unified
494	.arm
495	.fpu softvfp
496	.type	_insert_free_list, %function
497_insert_free_list:
498	.fnstart
499	@ args = 0, pretend = 0, frame = 8
500	@ frame_needed = 0, uses_anonymous_args = 0
501	ldr	r3, .L91
502	movw	ip, #1080
503	ldrh	ip, [r3, ip]
504	cmp	ip, r1
505	bxls	lr
506	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
507	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
508	.pad #12
509	mov	r4, r3
510	ldrh	ip, [r2]
511	add	ip, ip, #1
512	strh	ip, [r2]	@ movhi
513	mov	ip, #6
514	mul	r6, ip, r1
515	ldr	r7, [r3, #1036]
516	mvn	r3, #0
517	add	lr, r7, r6
518	strh	r3, [lr, #2]	@ movhi
519	strh	r3, [r7, r6]	@ movhi
520	ldr	r3, [r0]
521	cmp	r3, #0
522	bne	.L81
523.L90:
524	str	lr, [r0]
525	b	.L79
526.L81:
527	ldr	r5, [r4, #1084]
528	add	r2, r4, #1088
529	ldrh	r10, [r2]
530	lsl	r8, r1, #2
531	ldr	r9, [r4, #1036]
532	movw	fp, #65535
533	ldr	r2, [r5, r1, lsl #2]
534	ldrh	r8, [r5, r8]
535	str	ip, [sp, #4]
536	ubfx	r2, r2, #11, #8
537	smulbb	r2, r2, r10
538	ubfx	r8, r8, #0, #11
539	add	r2, r2, r8
540	uxth	r2, r2
541	str	r2, [sp]
542	sub	r2, r3, r9
543	asr	r8, r2, #1
544	ldr	r2, .L91+4
545	mul	r2, r2, r8
546	uxth	r2, r2
547.L84:
548	ldr	ip, [r5, r2, lsl #2]
549	lsl	r8, r2, #2
550	ldrh	r8, [r5, r8]
551	ubfx	ip, ip, #11, #8
552	smulbb	ip, ip, r10
553	ubfx	r8, r8, #0, #11
554	add	ip, ip, r8
555	ldr	r8, [sp]
556	uxth	ip, ip
557	cmp	r8, ip
558	bls	.L82
559	ldrh	ip, [r3]
560	cmp	ip, fp
561	bne	.L83
562	strh	r2, [lr, #2]	@ movhi
563	strh	r1, [r3]	@ movhi
564.L79:
565	add	sp, sp, #12
566	@ sp needed
567	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
568.L83:
569	ldr	r3, [sp, #4]
570	mov	r2, ip
571	mla	r3, r3, ip, r9
572	b	.L84
573.L82:
574	ldrh	ip, [r3, #2]
575	strh	ip, [lr, #2]	@ movhi
576	strh	r2, [r7, r6]	@ movhi
577	ldr	r2, [r0]
578	cmp	r3, r2
579	strheq	r1, [r3, #2]	@ movhi
580	beq	.L90
581.L85:
582	ldrh	ip, [r3, #2]
583	mov	r2, #6
584	ldr	r0, [r4, #1036]
585	mul	r2, r2, ip
586	strh	r1, [r0, r2]	@ movhi
587	strh	r1, [r3, #2]	@ movhi
588	b	.L79
589.L92:
590	.align	2
591.L91:
592	.word	.LANCHOR0
593	.word	-1431655765
594	.fnend
595	.size	_insert_free_list, .-_insert_free_list
596	.align	2
597	.syntax unified
598	.arm
599	.fpu softvfp
600	.type	_insert_data_list, %function
601_insert_data_list:
602	.fnstart
603	@ args = 0, pretend = 0, frame = 24
604	@ frame_needed = 0, uses_anonymous_args = 0
605	ldr	r3, .L116
606	movw	ip, #1080
607	ldrh	ip, [r3, ip]
608	cmp	ip, r1
609	bxls	lr
610	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
611	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
612	mov	r5, #6
613	ldrh	ip, [r2]
614	mul	r5, r5, r1
615	mov	r4, r3
616	.pad #28
617	sub	sp, sp, #28
618	add	ip, ip, #1
619	strh	ip, [r2]	@ movhi
620	ldr	r10, [r3, #1036]
621	mvn	r3, #0
622	add	lr, r10, r5
623	strh	r3, [lr, #2]	@ movhi
624	strh	r3, [r10, r5]	@ movhi
625	ldr	r3, [r0]
626	cmp	r3, #0
627	bne	.L96
628.L115:
629	str	lr, [r0]
630	b	.L93
631.L96:
632	ldr	r2, [r4, #1092]
633	add	r8, r4, #1088
634	ldr	r9, [r4, #1084]
635	ldrh	r8, [r8]
636	str	r2, [sp, #4]
637	lsl	r2, r1, #1
638	ldr	ip, [sp, #4]
639	ldrh	r6, [lr, #4]
640	ldr	r7, [r9, r1, lsl #2]
641	ldrh	ip, [ip, r2]
642	muls	ip, r6, ip
643	str	r8, [sp, #8]
644	lsl	r2, r1, #2
645	ldrhne	r8, [sp, #8]
646	ubfx	r7, r7, #11, #8
647	ldrh	r2, [r9, r2]
648	smulbbne	r7, r7, r8
649	ubfx	r2, r2, #0, #11
650	addne	r2, r2, r7
651	uxtahne	ip, ip, r2
652	ldr	r2, [r4, #1036]
653	cmp	r6, #0
654	mvneq	ip, #0
655	str	r2, [sp, #12]
656	sub	r2, r3, r2
657	asr	r6, r2, #1
658	ldr	r2, .L116+4
659	mul	r2, r2, r6
660	movw	r6, #1080
661	ldrh	r4, [r4, r6]
662	mov	r6, #0
663	uxth	r2, r2
664	str	r4, [sp, #16]
665.L103:
666	sub	r4, r1, r2
667	ldr	r7, [sp, #16]
668	add	r6, r6, #1
669	clz	r4, r4
670	uxth	r6, r6
671	lsr	r4, r4, #5
672	cmp	r6, r7
673	orrhi	r4, r4, #1
674	cmp	r4, #0
675	bne	.L93
676	ldr	r7, [sp, #4]
677	lsl	r4, r2, #1
678	ldrh	fp, [r3, #4]
679	ldr	r8, [r9, r2, lsl #2]
680	ldrh	r4, [r7, r4]
681	lsl	r7, r2, #2
682	muls	r4, fp, r4
683	ldrh	r7, [r9, r7]
684	ubfx	r8, r8, #11, #8
685	ubfx	r7, r7, #0, #11
686	str	r7, [sp, #20]
687	ldrhne	r7, [sp, #8]
688	smulbbne	r8, r8, r7
689	ldrne	r7, [sp, #20]
690	addne	r7, r7, r8
691	uxtahne	r4, r4, r7
692	cmp	fp, #0
693	cmpne	ip, r4
694	bls	.L101
695	ldrh	r4, [r3]
696	movw	r7, #65535
697	cmp	r4, r7
698	bne	.L102
699	strh	r2, [lr, #2]	@ movhi
700	strh	r1, [r3]	@ movhi
701.L93:
702	add	sp, sp, #28
703	@ sp needed
704	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
705.L102:
706	ldr	r2, [sp, #12]
707	mov	r3, #6
708	mla	r3, r3, r4, r2
709	mov	r2, r4
710	b	.L103
711.L101:
712	ldrh	ip, [r3, #2]
713	strh	ip, [lr, #2]	@ movhi
714	strh	r2, [r10, r5]	@ movhi
715	ldr	r2, [r0]
716	cmp	r3, r2
717	strheq	r1, [r3, #2]	@ movhi
718	beq	.L115
719.L104:
720	ldrh	ip, [r3, #2]
721	ldr	r2, .L116
722	ldr	r0, [r2, #1036]
723	mov	r2, #6
724	mul	r2, r2, ip
725	strh	r1, [r0, r2]	@ movhi
726	strh	r1, [r3, #2]	@ movhi
727	b	.L93
728.L117:
729	.align	2
730.L116:
731	.word	.LANCHOR0
732	.word	-1431655765
733	.fnend
734	.size	_insert_data_list, .-_insert_data_list
735	.align	2
736	.syntax unified
737	.arm
738	.fpu softvfp
739	.type	_list_update_data_list, %function
740_list_update_data_list:
741	.fnstart
742	@ args = 0, pretend = 0, frame = 0
743	@ frame_needed = 0, uses_anonymous_args = 0
744	push	{r4, r5, r6, r7, r8, r9, r10, lr}
745	.save {r4, r5, r6, r7, r8, r9, r10, lr}
746	ldr	r5, .L129
747	ldr	r3, [r5, #1096]
748	ldrh	ip, [r3, #16]
749	cmp	ip, r1
750	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
751	ldrh	ip, [r3, #48]
752	cmp	ip, r1
753	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
754	ldrh	r3, [r3, #80]
755	cmp	r3, r1
756	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
757	mov	r8, #6
758	ldr	r10, [r5, #1036]
759	mul	r8, r8, r1
760	ldr	r3, [r0]
761	add	r9, r10, r8
762	cmp	r9, r3
763	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
764	ldrh	r3, [r9, #2]
765	mov	r7, r2
766	movw	r2, #65535
767	mov	r4, r1
768	mov	r6, r0
769	cmp	r3, r2
770	bne	.L122
771	ldrh	r2, [r10, r8]
772	cmp	r2, r3
773	bne	.L122
774	movw	r2, #273
775	ldr	r1, .L129+4
776	ldr	r0, .L129+8
777	bl	printk
778	bl	dump_stack
779.L122:
780	ldrh	r3, [r9, #2]
781	movw	r2, #65535
782	cmp	r3, r2
783	bne	.L123
784	ldrh	r2, [r10, r8]
785	cmp	r2, r3
786	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
787.L123:
788	ldr	r0, [r5, #1092]
789	lsl	r2, r4, #1
790	ldrh	r1, [r9, #4]
791	ldrh	r2, [r0, r2]
792	cmp	r1, #0
793	mvneq	r1, #0
794	mulne	r1, r1, r2
795	mov	r2, #6
796	mul	r2, r2, r3
797	ldr	r3, .L129+12
798	asr	ip, r2, #1
799	mul	r3, r3, ip
800	lsl	r3, r3, #1
801	ldrh	ip, [r0, r3]
802	ldr	r0, [r5, #1036]
803	add	r2, r0, r2
804	ldrh	r3, [r2, #4]
805	cmp	r3, #0
806	mulne	r3, r3, ip
807	mvneq	r3, #0
808	cmp	r1, r3
809	popcs	{r4, r5, r6, r7, r8, r9, r10, pc}
810	mov	r2, r7
811	mov	r1, r4
812	mov	r0, r6
813	bl	_list_remove_node
814	mov	r2, r7
815	mov	r1, r4
816	mov	r0, r6
817	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
818	b	_insert_data_list
819.L130:
820	.align	2
821.L129:
822	.word	.LANCHOR0
823	.word	.LANCHOR1+18
824	.word	.LC0
825	.word	-1431655765
826	.fnend
827	.size	_list_update_data_list, .-_list_update_data_list
828	.section	.text.unlikely
829	.align	2
830	.syntax unified
831	.arm
832	.fpu softvfp
833	.type	rk_simple_strtoull.constprop.33, %function
834rk_simple_strtoull.constprop.33:
835	.fnstart
836	@ args = 0, pretend = 0, frame = 0
837	@ frame_needed = 0, uses_anonymous_args = 0
838	push	{r4, r5, r6, r7, r8, lr}
839	.save {r4, r5, r6, r7, r8, lr}
840	mov	r4, r0
841	ldrb	r3, [r0]	@ zero_extendqisi2
842	cmp	r3, #48
843	movne	r2, r0
844	movne	r5, #10
845	bne	.L132
846	ldrb	r3, [r0, #1]	@ zero_extendqisi2
847	add	r2, r0, #1
848	orr	r3, r3, #32
849	cmp	r3, #120
850	bne	.L144
851	ldrb	r0, [r0, #2]	@ zero_extendqisi2
852	bl	isxdigit
853	cmp	r0, #0
854	addne	r2, r4, #2
855	movne	r5, #16
856	bne	.L132
857.L144:
858	mov	r5, #8
859.L132:
860	mov	r6, #0
861.L133:
862	mov	r7, r2
863	ldrb	r4, [r2], #1	@ zero_extendqisi2
864	mov	r0, r4
865	bl	isxdigit
866	cmp	r0, #0
867	bne	.L134
868.L140:
869	cmp	r1, #0
870	mov	r0, r6
871	strne	r7, [r1]
872	pop	{r4, r5, r6, r7, r8, pc}
873.L134:
874	sub	r0, r4, #48
875	cmp	r0, #9
876	orrhi	r0, r4, #32
877	subhi	r0, r0, #87
878	cmp	r0, r5
879	bcs	.L140
880	mla	r6, r5, r6, r0
881	b	.L133
882	.fnend
883	.size	rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33
884	.text
885	.align	2
886	.syntax unified
887	.arm
888	.fpu softvfp
889	.type	nandc_de_cs.constprop.35, %function
890nandc_de_cs.constprop.35:
891	.fnstart
892	@ args = 0, pretend = 0, frame = 0
893	@ frame_needed = 0, uses_anonymous_args = 0
894	@ link register save eliminated.
895	ldr	r3, .L148
896	ldr	r2, [r3, #1044]
897	ldr	r3, [r2]
898	bfc	r3, #0, #8
899	bfc	r3, #17, #1
900	str	r3, [r2]
901	bx	lr
902.L149:
903	.align	2
904.L148:
905	.word	.LANCHOR0
906	.fnend
907	.size	nandc_de_cs.constprop.35, .-nandc_de_cs.constprop.35
908	.align	2
909	.global	flash_read_status
910	.syntax unified
911	.arm
912	.fpu softvfp
913	.type	flash_read_status, %function
914flash_read_status:
915	.fnstart
916	@ args = 0, pretend = 0, frame = 0
917	@ frame_needed = 0, uses_anonymous_args = 0
918	mov	r3, #112
919	push	{r4, lr}
920	.save {r4, lr}
921	mov	r4, r0
922	str	r3, [r0, #8]
923	mov	r0, #120
924	bl	ndelay
925	ldr	r0, [r4]
926	uxtb	r0, r0
927	pop	{r4, pc}
928	.fnend
929	.size	flash_read_status, .-flash_read_status
930	.align	2
931	.global	toshiba_set_rr_para
932	.syntax unified
933	.arm
934	.fpu softvfp
935	.type	toshiba_set_rr_para, %function
936toshiba_set_rr_para:
937	.fnstart
938	@ args = 0, pretend = 0, frame = 0
939	@ frame_needed = 0, uses_anonymous_args = 0
940	push	{r4, r5, r6, r7, r8, r9, r10, lr}
941	.save {r4, r5, r6, r7, r8, r9, r10, lr}
942	add	r8, r1, r1, lsl #2
943	ldr	r9, .L161
944	mov	r5, r0
945	mov	r6, r1
946	mov	r4, #0
947	ldr	r7, .L161+4
948	add	r10, r9, #41
949.L153:
950	ldrb	r3, [r7, #1101]	@ zero_extendqisi2
951	cmp	r4, r3
952	bcc	.L157
953	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
954.L157:
955	mov	r3, #85
956	mov	r0, #200
957	str	r3, [r5, #8]
958	ldrsb	r3, [r4, r10]
959	str	r3, [r5, #4]
960	bl	ndelay
961	ldrb	r3, [r7, #1100]	@ zero_extendqisi2
962	cmp	r3, #34
963	addeq	r3, r4, r8
964	addeq	r3, r10, r3
965	beq	.L160
966	cmp	r3, #35
967	addne	r3, r9, r6
968	ldrsbne	r3, [r3, #181]
969	bne	.L159
970	ldr	r2, .L161+8
971	add	r3, r4, r8
972	add	r3, r2, r3
973.L160:
974	ldrsb	r3, [r3, #5]
975.L159:
976	str	r3, [r5]
977	add	r4, r4, #1
978	b	.L153
979.L162:
980	.align	2
981.L161:
982	.word	.LANCHOR1
983	.word	.LANCHOR0
984	.word	.LANCHOR1+86
985	.fnend
986	.size	toshiba_set_rr_para, .-toshiba_set_rr_para
987	.align	2
988	.global	hynix_reconfig_rr_para
989	.syntax unified
990	.arm
991	.fpu softvfp
992	.type	hynix_reconfig_rr_para, %function
993hynix_reconfig_rr_para:
994	.fnstart
995	@ args = 0, pretend = 0, frame = 0
996	@ frame_needed = 0, uses_anonymous_args = 0
997	push	{r4, r5, r6, lr}
998	.save {r4, r5, r6, lr}
999	ldr	r5, .L169
1000	ldrb	r2, [r5, #1100]	@ zero_extendqisi2
1001	sub	r2, r2, #1
1002	cmp	r2, #7
1003	pophi	{r4, r5, r6, pc}
1004	ldr	r2, [r5, #1040]
1005	mov	r4, r0
1006	add	r2, r2, r0
1007	ldrb	r2, [r2, #120]	@ zero_extendqisi2
1008	cmp	r2, #0
1009	popeq	{r4, r5, r6, pc}
1010	mov	r1, #0
1011	bl	hynix_set_rr_para
1012	ldr	r3, [r5, #1040]
1013	mov	r2, #0
1014	add	r3, r3, r4
1015	strb	r2, [r3, #120]
1016	pop	{r4, r5, r6, pc}
1017.L170:
1018	.align	2
1019.L169:
1020	.word	.LANCHOR0
1021	.fnend
1022	.size	hynix_reconfig_rr_para, .-hynix_reconfig_rr_para
1023	.align	2
1024	.global	nand_flash_print_info
1025	.syntax unified
1026	.arm
1027	.fpu softvfp
1028	.type	nand_flash_print_info, %function
1029nand_flash_print_info:
1030	.fnstart
1031	@ args = 0, pretend = 0, frame = 0
1032	@ frame_needed = 0, uses_anonymous_args = 0
1033	push	{r0, r1, r2, r3, r4, lr}
1034	.save {r4, lr}
1035	.pad #16
1036	ldr	r4, .L290
1037	ldr	r3, [r4]
1038	tst	r3, #4096
1039	beq	.L172
1040	ldr	r1, .L290+4
1041	ldr	r0, .L290+8
1042	bl	printk
1043.L172:
1044	ldr	r3, [r4]
1045	tst	r3, #4096
1046	beq	.L173
1047	ldr	r3, .L290+12
1048	ldr	r0, [r3, #1104]
1049	ldrb	ip, [r0, #6]	@ zero_extendqisi2
1050	ldrb	r3, [r0, #3]	@ zero_extendqisi2
1051	ldrb	r2, [r0, #2]	@ zero_extendqisi2
1052	ldrb	r1, [r0, #1]	@ zero_extendqisi2
1053	str	ip, [sp, #8]
1054	ldrb	ip, [r0, #5]	@ zero_extendqisi2
1055	str	ip, [sp, #4]
1056	ldrb	r0, [r0, #4]	@ zero_extendqisi2
1057	str	r0, [sp]
1058	ldr	r0, .L290+16
1059	bl	printk
1060.L173:
1061	ldr	r3, [r4]
1062	tst	r3, #4096
1063	beq	.L174
1064	ldr	r3, .L290+12
1065	ldr	r0, .L290+20
1066	ldr	r3, [r3, #1104]
1067	ldrb	r1, [r3, #8]	@ zero_extendqisi2
1068	bl	printk
1069.L174:
1070	ldr	r3, [r4]
1071	tst	r3, #4096
1072	beq	.L175
1073	ldr	r3, .L290+12
1074	ldr	r0, .L290+24
1075	ldr	r3, [r3, #1104]
1076	ldrb	r1, [r3, #9]	@ zero_extendqisi2
1077	bl	printk
1078.L175:
1079	ldr	r3, [r4]
1080	tst	r3, #4096
1081	beq	.L176
1082	ldr	r3, .L290+12
1083	ldr	r0, .L290+28
1084	ldr	r3, [r3, #1104]
1085	ldrh	r1, [r3, #10]
1086	bl	printk
1087.L176:
1088	ldr	r3, [r4]
1089	tst	r3, #4096
1090	beq	.L177
1091	ldr	r3, .L290+12
1092	ldr	r0, .L290+32
1093	ldr	r3, [r3, #1104]
1094	ldrb	r1, [r3, #12]	@ zero_extendqisi2
1095	bl	printk
1096.L177:
1097	ldr	r3, [r4]
1098	tst	r3, #4096
1099	beq	.L178
1100	ldr	r3, .L290+12
1101	ldr	r0, .L290+36
1102	ldr	r3, [r3, #1104]
1103	ldrb	r1, [r3, #13]	@ zero_extendqisi2
1104	bl	printk
1105.L178:
1106	ldr	r3, [r4]
1107	tst	r3, #4096
1108	beq	.L179
1109	ldr	r3, .L290+12
1110	ldr	r0, .L290+40
1111	ldr	r3, [r3, #1104]
1112	ldrh	r1, [r3, #14]
1113	bl	printk
1114.L179:
1115	ldr	r3, [r4]
1116	tst	r3, #4096
1117	beq	.L180
1118	ldr	r3, .L290+12
1119	ldr	r0, .L290+44
1120	ldr	r3, [r3, #1104]
1121	ldrb	r1, [r3, #23]	@ zero_extendqisi2
1122	bl	printk
1123.L180:
1124	ldr	r3, [r4]
1125	tst	r3, #4096
1126	beq	.L181
1127	ldr	r3, .L290+12
1128	ldr	r0, .L290+48
1129	ldr	r3, [r3, #1104]
1130	ldrb	r1, [r3, #18]	@ zero_extendqisi2
1131	bl	printk
1132.L181:
1133	ldr	r3, [r4]
1134	tst	r3, #4096
1135	beq	.L182
1136	ldr	r3, .L290+12
1137	ldr	r0, .L290+52
1138	ldr	r3, [r3, #1104]
1139	ldrb	r1, [r3, #19]	@ zero_extendqisi2
1140	bl	printk
1141.L182:
1142	ldr	r3, [r4]
1143	tst	r3, #4096
1144	beq	.L183
1145	ldr	r3, .L290+12
1146	ldr	r0, .L290+56
1147	ldr	r3, [r3, #1104]
1148	ldrb	r1, [r3, #20]	@ zero_extendqisi2
1149	bl	printk
1150.L183:
1151	ldr	r3, [r4]
1152	tst	r3, #4096
1153	beq	.L184
1154	ldr	r3, .L290+12
1155	ldr	r0, .L290+60
1156	ldrb	r1, [r3, #1108]	@ zero_extendqisi2
1157	bl	printk
1158.L184:
1159	ldr	r3, [r4]
1160	tst	r3, #4096
1161	beq	.L185
1162	ldr	r3, .L290+12
1163	ldr	r0, .L290+64
1164	ldr	r3, [r3, #1104]
1165	ldrb	r1, [r3, #22]	@ zero_extendqisi2
1166	bl	printk
1167.L185:
1168	ldr	r3, [r4]
1169	tst	r3, #4096
1170	beq	.L186
1171	ldr	r3, .L290+12
1172	ldr	r0, .L290+68
1173	ldrb	r1, [r3, #1109]	@ zero_extendqisi2
1174	bl	printk
1175.L186:
1176	ldr	r3, [r4]
1177	tst	r3, #4096
1178	beq	.L187
1179	ldr	r3, .L290+12
1180	ldr	r0, .L290+72
1181	ldr	r3, [r3, #1104]
1182	ldrh	r1, [r3, #16]
1183	and	r1, r1, #1
1184	bl	printk
1185.L187:
1186	ldr	r3, [r4]
1187	tst	r3, #4096
1188	beq	.L188
1189	ldr	r3, .L290+12
1190	ldr	r0, .L290+76
1191	ldr	r3, [r3, #1104]
1192	ldrh	r1, [r3, #16]
1193	ubfx	r1, r1, #1, #1
1194	bl	printk
1195.L188:
1196	ldr	r3, [r4]
1197	tst	r3, #4096
1198	beq	.L189
1199	ldr	r3, .L290+12
1200	ldr	r0, .L290+80
1201	ldr	r3, [r3, #1104]
1202	ldrh	r1, [r3, #16]
1203	ubfx	r1, r1, #2, #1
1204	bl	printk
1205.L189:
1206	ldr	r3, [r4]
1207	tst	r3, #4096
1208	beq	.L190
1209	ldr	r3, .L290+12
1210	ldr	r0, .L290+84
1211	ldr	r3, [r3, #1104]
1212	ldrh	r1, [r3, #16]
1213	ubfx	r1, r1, #3, #1
1214	bl	printk
1215.L190:
1216	ldr	r3, [r4]
1217	tst	r3, #4096
1218	beq	.L191
1219	ldr	r3, .L290+12
1220	ldr	r0, .L290+88
1221	ldr	r3, [r3, #1104]
1222	ldrh	r1, [r3, #16]
1223	ubfx	r1, r1, #4, #1
1224	bl	printk
1225.L191:
1226	ldr	r3, [r4]
1227	tst	r3, #4096
1228	beq	.L192
1229	ldr	r3, .L290+12
1230	ldr	r0, .L290+92
1231	ldr	r3, [r3, #1104]
1232	ldrh	r1, [r3, #16]
1233	ubfx	r1, r1, #5, #1
1234	bl	printk
1235.L192:
1236	ldr	r3, [r4]
1237	tst	r3, #4096
1238	beq	.L193
1239	ldr	r3, .L290+12
1240	ldr	r0, .L290+96
1241	ldr	r3, [r3, #1104]
1242	ldrh	r1, [r3, #16]
1243	ubfx	r1, r1, #6, #1
1244	bl	printk
1245.L193:
1246	ldr	r3, [r4]
1247	tst	r3, #4096
1248	beq	.L194
1249	ldr	r3, .L290+12
1250	ldr	r0, .L290+100
1251	ldr	r3, [r3, #1104]
1252	ldrh	r1, [r3, #16]
1253	ubfx	r1, r1, #7, #1
1254	bl	printk
1255.L194:
1256	ldr	r3, [r4]
1257	tst	r3, #4096
1258	beq	.L195
1259	ldr	r3, .L290+12
1260	ldr	r0, .L290+104
1261	ldr	r3, [r3, #1104]
1262	ldrh	r1, [r3, #16]
1263	ubfx	r1, r1, #8, #1
1264	bl	printk
1265.L195:
1266	ldr	r3, [r4]
1267	tst	r3, #4096
1268	beq	.L196
1269	ldr	r3, .L290+12
1270	ldr	r0, .L290+108
1271	ldr	r3, [r3, #1104]
1272	ldrh	r1, [r3, #16]
1273	ubfx	r1, r1, #9, #1
1274	bl	printk
1275.L196:
1276	ldr	r3, [r4]
1277	tst	r3, #4096
1278	beq	.L197
1279	ldr	r3, .L290+12
1280	ldr	r0, .L290+112
1281	ldr	r3, [r3, #1104]
1282	ldrh	r1, [r3, #16]
1283	ubfx	r1, r1, #10, #1
1284	bl	printk
1285.L197:
1286	ldr	r3, [r4]
1287	tst	r3, #4096
1288	beq	.L198
1289	ldr	r3, .L290+12
1290	ldr	r0, .L290+116
1291	ldrb	r2, [r3, #1110]	@ zero_extendqisi2
1292	ldrb	r1, [r3]	@ zero_extendqisi2
1293	bl	printk
1294.L198:
1295	ldr	r3, [r4]
1296	tst	r3, #4096
1297	beq	.L199
1298	ldr	r3, .L290+12
1299	ldr	r0, .L290+120
1300	ldrb	r2, [r3, #1122]	@ zero_extendqisi2
1301	ldrb	r1, [r3, #1121]	@ zero_extendqisi2
1302	bl	printk
1303.L199:
1304	ldr	r3, [r4]
1305	tst	r3, #4096
1306	beq	.L200
1307	ldr	r3, .L290+12
1308	ldr	r0, .L290+124
1309	ldrb	r2, [r3, #1120]	@ zero_extendqisi2
1310	ldrb	r1, [r3, #1119]	@ zero_extendqisi2
1311	bl	printk
1312.L200:
1313	ldr	r3, [r4]
1314	tst	r3, #4096
1315	beq	.L171
1316	ldr	r3, .L290+12
1317	ldr	r0, .L290+128
1318	ldrb	r1, [r3, #1143]	@ zero_extendqisi2
1319	add	sp, sp, #16
1320	@ sp needed
1321	pop	{r4, lr}
1322	b	printk
1323.L171:
1324	add	sp, sp, #16
1325	@ sp needed
1326	pop	{r4, pc}
1327.L291:
1328	.align	2
1329.L290:
1330	.word	.LANCHOR2
1331	.word	.LANCHOR1+189
1332	.word	.LC4
1333	.word	.LANCHOR0
1334	.word	.LC5
1335	.word	.LC6
1336	.word	.LC7
1337	.word	.LC8
1338	.word	.LC9
1339	.word	.LC10
1340	.word	.LC11
1341	.word	.LC12
1342	.word	.LC13
1343	.word	.LC14
1344	.word	.LC15
1345	.word	.LC16
1346	.word	.LC17
1347	.word	.LC18
1348	.word	.LC19
1349	.word	.LC20
1350	.word	.LC21
1351	.word	.LC22
1352	.word	.LC23
1353	.word	.LC24
1354	.word	.LC25
1355	.word	.LC26
1356	.word	.LC27
1357	.word	.LC28
1358	.word	.LC29
1359	.word	.LC30
1360	.word	.LC31
1361	.word	.LC32
1362	.word	.LC33
1363	.fnend
1364	.size	nand_flash_print_info, .-nand_flash_print_info
1365	.align	2
1366	.global	timer_delay_ns
1367	.syntax unified
1368	.arm
1369	.fpu softvfp
1370	.type	timer_delay_ns, %function
1371timer_delay_ns:
1372	.fnstart
1373	@ args = 0, pretend = 0, frame = 0
1374	@ frame_needed = 0, uses_anonymous_args = 0
1375	@ link register save eliminated.
1376	b	ndelay
1377	.fnend
1378	.size	timer_delay_ns, .-timer_delay_ns
1379	.align	2
1380	.global	nandc_set_ddr_para
1381	.syntax unified
1382	.arm
1383	.fpu softvfp
1384	.type	nandc_set_ddr_para, %function
1385nandc_set_ddr_para:
1386	.fnstart
1387	@ args = 0, pretend = 0, frame = 0
1388	@ frame_needed = 0, uses_anonymous_args = 0
1389	@ link register save eliminated.
1390	ldr	r2, .L296
1391	ldrb	r3, [r2, #1028]	@ zero_extendqisi2
1392	ldr	r2, [r2, #1044]
1393	cmp	r3, #9
1394	lsl	r3, r0, #16
1395	lsl	r0, r0, #8
1396	orr	r3, r3, r0
1397	orr	r3, r3, #3
1398	streq	r3, [r2, #80]
1399	strne	r3, [r2, #304]
1400	bx	lr
1401.L297:
1402	.align	2
1403.L296:
1404	.word	.LANCHOR0
1405	.fnend
1406	.size	nandc_set_ddr_para, .-nandc_set_ddr_para
1407	.align	2
1408	.global	nandc_get_ddr_para
1409	.syntax unified
1410	.arm
1411	.fpu softvfp
1412	.type	nandc_get_ddr_para, %function
1413nandc_get_ddr_para:
1414	.fnstart
1415	@ args = 0, pretend = 0, frame = 0
1416	@ frame_needed = 0, uses_anonymous_args = 0
1417	@ link register save eliminated.
1418	ldr	r3, .L302
1419	ldrb	r2, [r3, #1028]	@ zero_extendqisi2
1420	ldr	r3, [r3, #1044]
1421	cmp	r2, #9
1422	ldreq	r0, [r3, #80]
1423	ldrne	r0, [r3, #304]
1424	ubfx	r0, r0, #8, #8
1425	bx	lr
1426.L303:
1427	.align	2
1428.L302:
1429	.word	.LANCHOR0
1430	.fnend
1431	.size	nandc_get_ddr_para, .-nandc_get_ddr_para
1432	.align	2
1433	.global	nandc_set_if_mode
1434	.syntax unified
1435	.arm
1436	.fpu softvfp
1437	.type	nandc_set_if_mode, %function
1438nandc_set_if_mode:
1439	.fnstart
1440	@ args = 0, pretend = 0, frame = 0
1441	@ frame_needed = 0, uses_anonymous_args = 0
1442	@ link register save eliminated.
1443	ldr	r1, .L312
1444	ands	ip, r0, #6
1445	ldr	r3, [r1, #1044]
1446	ldr	r2, [r3]
1447	bfieq	r2, ip, #13, #1
1448	beq	.L308
1449	ldrb	r1, [r1, #1028]	@ zero_extendqisi2
1450	orr	r2, r2, #24576
1451	bfc	r2, #15, #1
1452	tst	r0, #4
1453	orr	r2, r2, #196608
1454	movw	r0, #8321
1455	orrne	r2, r2, #32768
1456	cmp	r1, #9
1457	ldr	r1, .L312+4
1458	streq	r0, [r3, #8]
1459	strne	r0, [r3, #344]
1460	streq	r1, [r3, #80]
1461	moveq	r1, #38
1462	strne	r1, [r3, #304]
1463	movne	r1, #38
1464	streq	r1, [r3, #84]
1465	moveq	r1, #39
1466	strne	r1, [r3, #308]
1467	movne	r1, #39
1468	streq	r1, [r3, #84]
1469	strne	r1, [r3, #308]
1470.L308:
1471	str	r2, [r3]
1472	bx	lr
1473.L313:
1474	.align	2
1475.L312:
1476	.word	.LANCHOR0
1477	.word	1052675
1478	.fnend
1479	.size	nandc_set_if_mode, .-nandc_set_if_mode
1480	.align	2
1481	.global	nandc_cs
1482	.syntax unified
1483	.arm
1484	.fpu softvfp
1485	.type	nandc_cs, %function
1486nandc_cs:
1487	.fnstart
1488	@ args = 0, pretend = 0, frame = 0
1489	@ frame_needed = 0, uses_anonymous_args = 0
1490	@ link register save eliminated.
1491	ldr	r3, .L315
1492	mov	r2, #1
1493	lsl	r0, r2, r0
1494	ldr	r1, [r3, #1044]
1495	ldr	r3, [r1]
1496	bfi	r3, r0, #0, #8
1497	str	r3, [r1]
1498	bx	lr
1499.L316:
1500	.align	2
1501.L315:
1502	.word	.LANCHOR0
1503	.fnend
1504	.size	nandc_cs, .-nandc_cs
1505	.align	2
1506	.global	flash_wait_device_ready_raw
1507	.syntax unified
1508	.arm
1509	.fpu softvfp
1510	.type	flash_wait_device_ready_raw, %function
1511flash_wait_device_ready_raw:
1512	.fnstart
1513	@ args = 0, pretend = 0, frame = 8
1514	@ frame_needed = 0, uses_anonymous_args = 0
1515	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1516	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1517	.pad #12
1518	mov	r6, r0
1519	ldr	r4, .L326
1520	mov	r5, r1
1521	str	r2, [sp, #4]
1522	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
1523	cmp	r3, r0
1524	bhi	.L318
1525	mov	r2, #812
1526	ldr	r1, .L326+4
1527	ldr	r0, .L326+8
1528	bl	printk
1529	bl	dump_stack
1530.L318:
1531	add	r6, r4, r6
1532	ldr	r3, [r4, #1044]
1533	ldrb	r6, [r6, #1144]	@ zero_extendqisi2
1534	lsr	r8, r5, #8
1535	lsr	r9, r5, #16
1536	lsr	r10, r5, #24
1537	mov	fp, #120
1538	add	r7, r3, r6, lsl #8
1539.L320:
1540	mov	r0, r6
1541	bl	nandc_cs
1542	uxtb	r2, r5
1543	str	fp, [r7, #2056]
1544	mov	r0, #120
1545	str	r2, [r7, #2052]
1546	ldrb	r2, [r4, #1152]	@ zero_extendqisi2
1547	str	r8, [r7, #2052]
1548	str	r9, [r7, #2052]
1549	cmp	r2, #0
1550	strne	r10, [r7, #2052]
1551	bl	ndelay
1552	ldr	r0, [r7, #2048]
1553	uxtb	r0, r0
1554	bl	nandc_de_cs.constprop.35
1555	ldr	r3, [sp, #4]
1556	bics	r3, r3, r0
1557	movne	r2, #1
1558	moveq	r2, #0
1559	cmp	r0, #255
1560	orreq	r2, r2, #1
1561	cmp	r2, #0
1562	bne	.L320
1563	add	sp, sp, #12
1564	@ sp needed
1565	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
1566.L327:
1567	.align	2
1568.L326:
1569	.word	.LANCHOR0
1570	.word	.LANCHOR1+211
1571	.word	.LC0
1572	.fnend
1573	.size	flash_wait_device_ready_raw, .-flash_wait_device_ready_raw
1574	.align	2
1575	.global	flash_wait_device_ready
1576	.syntax unified
1577	.arm
1578	.fpu softvfp
1579	.type	flash_wait_device_ready, %function
1580flash_wait_device_ready:
1581	.fnstart
1582	@ args = 0, pretend = 0, frame = 0
1583	@ frame_needed = 0, uses_anonymous_args = 0
1584	push	{r4, r5, r6, r7, r8, r9, r10, lr}
1585	.save {r4, r5, r6, r7, r8, r9, r10, lr}
1586	mov	r3, #1
1587	ldr	r5, .L339
1588	tst	r0, #50331648
1589	mov	r7, r1
1590	ldrb	r6, [r5, #1153]	@ zero_extendqisi2
1591	rsb	r2, r6, #24
1592	lsl	r6, r3, r6
1593	lsl	r4, r3, r2
1594	sub	r6, r6, #1
1595	sub	r4, r4, #1
1596	and	r6, r6, r0, asr r2
1597	and	r4, r4, r0
1598	uxtb	r6, r6
1599	bne	.L329
1600	ldrb	r3, [r5]	@ zero_extendqisi2
1601	cmp	r3, #0
1602	beq	.L330
1603	ldrb	r3, [r5, #1]	@ zero_extendqisi2
1604	cmp	r3, #0
1605	beq	.L329
1606.L330:
1607	ldrh	r8, [r5, #2]
1608	mov	r0, r4
1609	mov	r1, r8
1610	bl	__aeabi_uidiv
1611	mov	r1, r8
1612	mul	r9, r8, r0
1613	mov	r0, r4
1614	bl	__aeabi_uidivmod
1615	ldrb	r3, [r5, #1]	@ zero_extendqisi2
1616	lsl	r1, r1, #1
1617	cmp	r3, #0
1618	addeq	r5, r5, r1
1619	addne	r4, r1, r9
1620	ldrheq	r4, [r5, #4]
1621	addeq	r4, r4, r9
1622.L329:
1623	mov	r2, r7
1624	mov	r1, r4
1625	mov	r0, r6
1626	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
1627	b	flash_wait_device_ready_raw
1628.L340:
1629	.align	2
1630.L339:
1631	.word	.LANCHOR0
1632	.fnend
1633	.size	flash_wait_device_ready, .-flash_wait_device_ready
1634	.align	2
1635	.global	nandc_de_cs
1636	.syntax unified
1637	.arm
1638	.fpu softvfp
1639	.type	nandc_de_cs, %function
1640nandc_de_cs:
1641	.fnstart
1642	@ args = 0, pretend = 0, frame = 0
1643	@ frame_needed = 0, uses_anonymous_args = 0
1644	@ link register save eliminated.
1645	ldr	r3, .L342
1646	ldr	r2, [r3, #1044]
1647	ldr	r3, [r2]
1648	bfc	r3, #0, #8
1649	bfc	r3, #17, #1
1650	str	r3, [r2]
1651	bx	lr
1652.L343:
1653	.align	2
1654.L342:
1655	.word	.LANCHOR0
1656	.fnend
1657	.size	nandc_de_cs, .-nandc_de_cs
1658	.align	2
1659	.global	nandc_wait_flash_ready_no_delay
1660	.syntax unified
1661	.arm
1662	.fpu softvfp
1663	.type	nandc_wait_flash_ready_no_delay, %function
1664nandc_wait_flash_ready_no_delay:
1665	.fnstart
1666	@ args = 0, pretend = 0, frame = 8
1667	@ frame_needed = 0, uses_anonymous_args = 0
1668	push	{r0, r1, r2, r4, r5, lr}
1669	.save {r4, r5, lr}
1670	.pad #12
1671	ldr	r4, .L350
1672	ldr	r5, .L350+4
1673.L346:
1674	ldr	r3, [r5, #1044]
1675	ldr	r3, [r3]
1676	str	r3, [sp, #4]
1677	ldr	r3, [sp, #4]
1678	tst	r3, #512
1679	bne	.L347
1680	mov	r0, #10
1681	bl	ndelay
1682	subs	r4, r4, #1
1683	bne	.L346
1684	mvn	r0, #0
1685.L344:
1686	add	sp, sp, #12
1687	@ sp needed
1688	pop	{r4, r5, pc}
1689.L347:
1690	mov	r0, #0
1691	b	.L344
1692.L351:
1693	.align	2
1694.L350:
1695	.word	100000
1696	.word	.LANCHOR0
1697	.fnend
1698	.size	nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay
1699	.align	2
1700	.global	zftl_flash_enter_slc_mode
1701	.syntax unified
1702	.arm
1703	.fpu softvfp
1704	.type	zftl_flash_enter_slc_mode, %function
1705zftl_flash_enter_slc_mode:
1706	.fnstart
1707	@ args = 0, pretend = 0, frame = 0
1708	@ frame_needed = 0, uses_anonymous_args = 0
1709	ldr	r3, .L375
1710	ldrb	r2, [r3]	@ zero_extendqisi2
1711	cmp	r2, #0
1712	bxeq	lr
1713	cmp	r2, #1
1714	push	{r4, r5, r6, r7, r8, lr}
1715	.save {r4, r5, r6, r7, r8, lr}
1716	ldr	r5, [r3, #1044]
1717	bne	.L355
1718	ldr	r3, .L375+4
1719	ldrb	r3, [r3, #33]	@ zero_extendqisi2
1720	cmp	r3, #0
1721	addne	r4, r5, r0, lsl #8
1722	bne	.L374
1723	pop	{r4, r5, r6, r7, r8, pc}
1724.L355:
1725	cmp	r2, #2
1726	mov	r4, r0
1727	bne	.L357
1728	add	r3, r3, r0
1729	ldrb	r2, [r3, #1154]	@ zero_extendqisi2
1730	cmp	r2, #0
1731	popeq	{r4, r5, r6, r7, r8, pc}
1732	ldr	r6, .L375+4
1733	mov	r2, #0
1734	strb	r2, [r3, #1154]
1735	ldrb	r3, [r6, #33]	@ zero_extendqisi2
1736	cmp	r3, r2
1737	popeq	{r4, r5, r6, r7, r8, pc}
1738	bl	nandc_wait_flash_ready_no_delay
1739	ldrb	r3, [r6, #33]	@ zero_extendqisi2
1740	add	r4, r5, r4, lsl #8
1741.L374:
1742	str	r3, [r4, #2056]
1743	pop	{r4, r5, r6, r7, r8, pc}
1744.L357:
1745	cmp	r2, #3
1746	popne	{r4, r5, r6, r7, r8, pc}
1747	add	r6, r3, r0
1748	ldrb	r3, [r6, #1154]	@ zero_extendqisi2
1749	cmp	r3, #0
1750	popeq	{r4, r5, r6, r7, r8, pc}
1751	add	r4, r5, r4, lsl #8
1752	mov	r7, #0
1753	bl	nandc_wait_flash_ready_no_delay
1754	mov	r3, #239
1755	mov	r0, #100
1756	str	r3, [r4, #2056]
1757	mov	r3, #145
1758	str	r3, [r4, #2052]
1759	strb	r7, [r6, #1154]
1760	bl	ndelay
1761	mov	r3, #1
1762	str	r7, [r4, #2048]
1763	mov	r0, #150
1764	str	r3, [r4, #2048]
1765	str	r7, [r4, #2048]
1766	str	r7, [r4, #2048]
1767	bl	ndelay
1768	bl	nandc_wait_flash_ready_no_delay
1769	mov	r3, #218
1770	mov	r0, #50
1771	str	r3, [r4, #2056]
1772	pop	{r4, r5, r6, r7, r8, lr}
1773	b	ndelay
1774.L376:
1775	.align	2
1776.L375:
1777	.word	.LANCHOR0
1778	.word	.LANCHOR2
1779	.fnend
1780	.size	zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode
1781	.align	2
1782	.global	zftl_flash_exit_slc_mode
1783	.syntax unified
1784	.arm
1785	.fpu softvfp
1786	.type	zftl_flash_exit_slc_mode, %function
1787zftl_flash_exit_slc_mode:
1788	.fnstart
1789	@ args = 0, pretend = 0, frame = 0
1790	@ frame_needed = 0, uses_anonymous_args = 0
1791	ldr	r3, .L402
1792	ldrb	r2, [r3]	@ zero_extendqisi2
1793	cmp	r2, #0
1794	bxeq	lr
1795	cmp	r2, #1
1796	push	{r4, r5, r6, r7, r8, lr}
1797	.save {r4, r5, r6, r7, r8, lr}
1798	ldr	r7, [r3, #1044]
1799	bne	.L380
1800	ldr	r3, .L402+4
1801	ldrb	r3, [r3, #34]	@ zero_extendqisi2
1802	cmp	r3, #0
1803	addne	r4, r7, r0, lsl #8
1804	bne	.L401
1805	pop	{r4, r5, r6, r7, r8, pc}
1806.L380:
1807	cmp	r2, #2
1808	mov	r4, r0
1809	bne	.L382
1810	add	r3, r3, r0
1811	ldrb	r2, [r3, #1154]	@ zero_extendqisi2
1812	cmp	r2, #0
1813	popne	{r4, r5, r6, r7, r8, pc}
1814	ldr	r5, .L402+4
1815	ldrb	r2, [r5, #16]	@ zero_extendqisi2
1816	cmp	r2, #2
1817	movne	r2, #4
1818	strb	r2, [r3, #1154]
1819	ldrb	r3, [r5, #34]	@ zero_extendqisi2
1820	cmp	r3, #0
1821	popeq	{r4, r5, r6, r7, r8, pc}
1822	bl	nandc_wait_flash_ready_no_delay
1823	ldrb	r3, [r5, #34]	@ zero_extendqisi2
1824	add	r4, r7, r4, lsl #8
1825.L401:
1826	str	r3, [r4, #2056]
1827	pop	{r4, r5, r6, r7, r8, pc}
1828.L382:
1829	cmp	r2, #3
1830	popne	{r4, r5, r6, r7, r8, pc}
1831	add	r6, r3, r0
1832	ldrb	r3, [r6, #1154]	@ zero_extendqisi2
1833	cmp	r3, #0
1834	popne	{r4, r5, r6, r7, r8, pc}
1835	ldr	r8, .L402+4
1836	lsl	r4, r4, #8
1837	bl	nandc_wait_flash_ready_no_delay
1838	ldrb	r3, [r8, #16]	@ zero_extendqisi2
1839	add	r5, r7, r4
1840	mov	r0, #100
1841	add	r4, r7, r4
1842	cmp	r3, #2
1843	movne	r3, #4
1844	strb	r3, [r6, #1154]
1845	mov	r3, #239
1846	str	r3, [r5, #2056]
1847	mov	r3, #145
1848	str	r3, [r5, #2052]
1849	bl	ndelay
1850	ldrb	r3, [r8, #11]	@ zero_extendqisi2
1851	mov	r0, #150
1852	cmp	r3, #9
1853	mov	r3, #1
1854	ldrbne	r2, [r6, #1154]	@ zero_extendqisi2
1855	streq	r3, [r5, #2048]
1856	strne	r2, [r5, #2048]
1857	str	r3, [r5, #2048]
1858	mov	r3, #0
1859	str	r3, [r5, #2048]
1860	str	r3, [r5, #2048]
1861	bl	ndelay
1862	bl	nandc_wait_flash_ready_no_delay
1863	mov	r3, #223
1864	mov	r0, #50
1865	str	r3, [r4, #2056]
1866	pop	{r4, r5, r6, r7, r8, lr}
1867	b	ndelay
1868.L403:
1869	.align	2
1870.L402:
1871	.word	.LANCHOR0
1872	.word	.LANCHOR2
1873	.fnend
1874	.size	zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode
1875	.align	2
1876	.global	flash_start_page_read
1877	.syntax unified
1878	.arm
1879	.fpu softvfp
1880	.type	flash_start_page_read, %function
1881flash_start_page_read:
1882	.fnstart
1883	@ args = 0, pretend = 0, frame = 0
1884	@ frame_needed = 0, uses_anonymous_args = 0
1885	push	{r4, r5, r6, r7, r8, r9, r10, lr}
1886	.save {r4, r5, r6, r7, r8, r9, r10, lr}
1887	mvn	r2, #0
1888	ldr	r4, .L419
1889	mov	r7, r0
1890	mov	r10, r1
1891	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
1892	rsb	r5, r3, #24
1893	lsr	r6, r1, r5
1894	bic	r6, r6, r2, lsl r3
1895	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
1896	uxtb	r6, r6
1897	cmp	r3, r6
1898	bhi	.L405
1899	movw	r2, #1013
1900	ldr	r1, .L419+4
1901	ldr	r0, .L419+8
1902	bl	printk
1903	bl	dump_stack
1904.L405:
1905	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
1906	cmp	r3, r6
1907	popls	{r4, r5, r6, r7, r8, r9, r10, pc}
1908	add	r6, r4, r6
1909	mvn	r3, #0
1910	ldrb	r9, [r6, #1144]	@ zero_extendqisi2
1911	bic	r5, r10, r3, lsl r5
1912	ubfx	r10, r10, #24, #2
1913	ldr	r6, [r4, #1044]
1914	mov	r0, r9
1915	bl	nandc_cs
1916	cmp	r10, #0
1917	lsl	r8, r9, #8
1918	bne	.L407
1919	mov	r0, r5
1920	bl	slc_phy_page_address_calc
1921	ldrb	r3, [r4]	@ zero_extendqisi2
1922	mov	r5, r0
1923	cmp	r3, #0
1924	beq	.L408
1925	mov	r0, r9
1926	bl	zftl_flash_enter_slc_mode
1927.L408:
1928	ldr	r3, [r4, #1104]
1929	ldrb	r2, [r3, #7]	@ zero_extendqisi2
1930	cmp	r2, #1
1931	bne	.L410
1932	ldrb	r3, [r3, #12]	@ zero_extendqisi2
1933	cmp	r3, #2
1934	addeq	r3, r6, r8
1935	moveq	r2, #38
1936	streq	r2, [r3, #2056]
1937.L410:
1938	add	r3, r6, r8
1939	mov	r2, #0
1940	str	r2, [r3, #2056]
1941	str	r2, [r3, #2052]
1942	str	r2, [r3, #2052]
1943	uxtb	r2, r5
1944	str	r2, [r3, #2052]
1945	lsr	r2, r5, #8
1946	str	r2, [r3, #2052]
1947	lsr	r2, r5, #16
1948	str	r2, [r3, #2052]
1949	ldrb	r2, [r4, #1152]	@ zero_extendqisi2
1950	cmp	r2, #0
1951	lsrne	r5, r5, #24
1952	strne	r5, [r3, #2052]
1953	add	r3, r6, r8
1954	str	r7, [r3, #2056]
1955	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
1956.L407:
1957	ldr	r3, [r4, #1104]
1958	ldrb	r3, [r3, #12]	@ zero_extendqisi2
1959	cmp	r3, #3
1960	bne	.L409
1961	ldrb	r3, [r4, #1158]	@ zero_extendqisi2
1962	cmp	r3, #0
1963	bne	.L409
1964	ldrb	r3, [r4, #1159]	@ zero_extendqisi2
1965	cmp	r3, #0
1966	addeq	r3, r6, r8
1967	streq	r10, [r3, #2056]
1968	beq	.L408
1969.L409:
1970	mov	r0, r9
1971	bl	zftl_flash_exit_slc_mode
1972	b	.L408
1973.L420:
1974	.align	2
1975.L419:
1976	.word	.LANCHOR0
1977	.word	.LANCHOR1+239
1978	.word	.LC0
1979	.fnend
1980	.size	flash_start_page_read, .-flash_start_page_read
1981	.align	2
1982	.global	nandc_wait_flash_ready
1983	.syntax unified
1984	.arm
1985	.fpu softvfp
1986	.type	nandc_wait_flash_ready, %function
1987nandc_wait_flash_ready:
1988	.fnstart
1989	@ args = 0, pretend = 0, frame = 8
1990	@ frame_needed = 0, uses_anonymous_args = 0
1991	push	{r0, r1, r2, r4, r5, lr}
1992	.save {r4, r5, lr}
1993	.pad #12
1994	mov	r0, #150
1995	ldr	r4, .L427
1996	ldr	r5, .L427+4
1997	bl	ndelay
1998.L423:
1999	ldr	r3, [r5, #1044]
2000	ldr	r3, [r3]
2001	str	r3, [sp, #4]
2002	ldr	r3, [sp, #4]
2003	tst	r3, #512
2004	bne	.L424
2005	mov	r0, #10
2006	bl	ndelay
2007	subs	r4, r4, #1
2008	bne	.L423
2009	mvn	r0, #0
2010.L421:
2011	add	sp, sp, #12
2012	@ sp needed
2013	pop	{r4, r5, pc}
2014.L424:
2015	mov	r0, #0
2016	b	.L421
2017.L428:
2018	.align	2
2019.L427:
2020	.word	100000
2021	.word	.LANCHOR0
2022	.fnend
2023	.size	nandc_wait_flash_ready, .-nandc_wait_flash_ready
2024	.align	2
2025	.global	sandisk_set_rr_para
2026	.syntax unified
2027	.arm
2028	.fpu softvfp
2029	.type	sandisk_set_rr_para, %function
2030sandisk_set_rr_para:
2031	.fnstart
2032	@ args = 0, pretend = 0, frame = 0
2033	@ frame_needed = 0, uses_anonymous_args = 0
2034	mov	r3, #239
2035	push	{r4, r5, r6, lr}
2036	.save {r4, r5, r6, lr}
2037	str	r3, [r0, #8]
2038	mov	r3, #17
2039	mov	r5, r0
2040	mov	r4, r1
2041	str	r3, [r0, #4]
2042	mov	r0, #200
2043	bl	ndelay
2044	ldr	r0, .L436
2045	add	r4, r4, r4, lsl #2
2046	ldr	r1, .L436+4
2047	mov	r2, #0
2048	sub	ip, r0, #45
2049.L430:
2050	ldrb	r3, [r1, #1101]	@ zero_extendqisi2
2051	cmp	r2, r3
2052	bcc	.L433
2053	pop	{r4, r5, r6, lr}
2054	b	nandc_wait_flash_ready
2055.L433:
2056	ldrb	r3, [r1, #1100]	@ zero_extendqisi2
2057	cmp	r3, #67
2058	add	r3, r2, r4
2059	addeq	r3, ip, r3
2060	addne	r3, r0, r3
2061	ldrsb	r3, [r3, #5]
2062	add	r2, r2, #1
2063	str	r3, [r5]
2064	b	.L430
2065.L437:
2066	.align	2
2067.L436:
2068	.word	.LANCHOR1+86
2069	.word	.LANCHOR0
2070	.fnend
2071	.size	sandisk_set_rr_para, .-sandisk_set_rr_para
2072	.align	2
2073	.global	toshiba_3d_set_tlc_rr_para
2074	.syntax unified
2075	.arm
2076	.fpu softvfp
2077	.type	toshiba_3d_set_tlc_rr_para, %function
2078toshiba_3d_set_tlc_rr_para:
2079	.fnstart
2080	@ args = 0, pretend = 0, frame = 0
2081	@ frame_needed = 0, uses_anonymous_args = 0
2082	push	{r4, r5, r6, r7, r8, lr}
2083	.save {r4, r5, r6, r7, r8, lr}
2084	add	r1, r1, #1
2085	ldr	r5, .L440
2086	rsb	r1, r1, r1, lsl #3
2087	mov	r6, #0
2088	mov	r7, #213
2089	mvn	r3, #118
2090	add	r5, r5, r1
2091	str	r7, [r0, #8]
2092	str	r6, [r0, #4]
2093	mov	r4, r0
2094	str	r3, [r0, #4]
2095	movw	r3, #261
2096	ldrsb	r3, [r5, r3]
2097	str	r3, [r0]
2098	movw	r3, #262
2099	ldrsb	r3, [r5, r3]
2100	str	r3, [r0]
2101	movw	r3, #263
2102	ldrsb	r3, [r5, r3]
2103	str	r3, [r0]
2104	add	r3, r5, #264
2105	ldrsb	r3, [r3]
2106	str	r3, [r0]
2107	bl	nandc_wait_flash_ready
2108	mvn	r3, #117
2109	str	r7, [r4, #8]
2110	str	r6, [r4, #4]
2111	str	r3, [r4, #4]
2112	movw	r3, #265
2113	ldrsb	r3, [r5, r3]
2114	str	r3, [r4]
2115	movw	r3, #266
2116	ldrsb	r3, [r5, r3]
2117	str	r3, [r4]
2118	movw	r3, #267
2119	ldrsb	r3, [r5, r3]
2120	str	r3, [r4]
2121	str	r6, [r4]
2122	pop	{r4, r5, r6, r7, r8, lr}
2123	b	nandc_wait_flash_ready
2124.L441:
2125	.align	2
2126.L440:
2127	.word	.LANCHOR1
2128	.fnend
2129	.size	toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para
2130	.align	2
2131	.global	toshiba_3d_set_slc_rr_para
2132	.syntax unified
2133	.arm
2134	.fpu softvfp
2135	.type	toshiba_3d_set_slc_rr_para, %function
2136toshiba_3d_set_slc_rr_para:
2137	.fnstart
2138	@ args = 0, pretend = 0, frame = 0
2139	@ frame_needed = 0, uses_anonymous_args = 0
2140	@ link register save eliminated.
2141	mov	r3, #213
2142	mvn	r2, #116
2143	str	r3, [r0, #8]
2144	mov	r3, #0
2145	str	r3, [r0, #4]
2146	str	r2, [r0, #4]
2147	ldr	r2, .L443
2148	add	r1, r2, r1
2149	movw	r2, #661
2150	ldrsb	r2, [r1, r2]
2151	str	r2, [r0]
2152	str	r3, [r0]
2153	str	r3, [r0]
2154	str	r3, [r0]
2155	b	nandc_wait_flash_ready
2156.L444:
2157	.align	2
2158.L443:
2159	.word	.LANCHOR1
2160	.fnend
2161	.size	toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para
2162	.align	2
2163	.global	toshiba_tlc_set_rr_para
2164	.syntax unified
2165	.arm
2166	.fpu softvfp
2167	.type	toshiba_tlc_set_rr_para, %function
2168toshiba_tlc_set_rr_para:
2169	.fnstart
2170	@ args = 0, pretend = 0, frame = 0
2171	@ frame_needed = 0, uses_anonymous_args = 0
2172	cmp	r2, #0
2173	push	{r4, r5, r6, lr}
2174	.save {r4, r5, r6, lr}
2175	ldr	r3, .L449
2176	mov	r6, #239
2177	beq	.L446
2178	rsb	r5, r1, r1, lsl #3
2179	mov	r2, #18
2180	str	r6, [r0, #8]
2181	mov	r4, r0
2182	add	r5, r3, r5
2183	str	r2, [r0, #4]
2184	ldrb	r3, [r5, #36]	@ zero_extendqisi2
2185	str	r3, [r0]
2186	ldrb	r3, [r5, #37]	@ zero_extendqisi2
2187	str	r3, [r0]
2188	ldrb	r3, [r5, #38]	@ zero_extendqisi2
2189	str	r3, [r0]
2190	ldrb	r3, [r5, #39]	@ zero_extendqisi2
2191	str	r3, [r0]
2192	bl	nandc_wait_flash_ready
2193	mov	r3, #19
2194	str	r6, [r4, #8]
2195	str	r3, [r4, #4]
2196	ldrb	r3, [r5, #40]	@ zero_extendqisi2
2197	str	r3, [r4]
2198	ldrb	r3, [r5, #41]	@ zero_extendqisi2
2199	str	r3, [r4]
2200	ldrb	r3, [r5, #42]	@ zero_extendqisi2
2201	str	r3, [r4]
2202	mov	r3, #0
2203	str	r3, [r4]
2204.L447:
2205	pop	{r4, r5, r6, lr}
2206	b	nandc_wait_flash_ready
2207.L446:
2208	mov	ip, #20
2209	add	r5, r3, r1
2210	str	r6, [r0, #8]
2211	str	ip, [r0, #4]
2212	ldrb	r3, [r5, #365]	@ zero_extendqisi2
2213	str	r3, [r0]
2214	str	r2, [r0]
2215	str	r2, [r0]
2216	str	r2, [r0]
2217	b	.L447
2218.L450:
2219	.align	2
2220.L449:
2221	.word	.LANCHOR2
2222	.fnend
2223	.size	toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para
2224	.align	2
2225	.global	ymtc_3d_set_tlc_rr_para
2226	.syntax unified
2227	.arm
2228	.fpu softvfp
2229	.type	ymtc_3d_set_tlc_rr_para, %function
2230ymtc_3d_set_tlc_rr_para:
2231	.fnstart
2232	@ args = 0, pretend = 0, frame = 0
2233	@ frame_needed = 0, uses_anonymous_args = 0
2234	push	{r4, r5, r6, r7, r8, lr}
2235	.save {r4, r5, r6, r7, r8, lr}
2236	rsb	r1, r1, r1, lsl #3
2237	ldr	r5, .L453
2238	mov	r7, #239
2239	mov	r3, #160
2240	mov	r6, #0
2241	str	r7, [r0, #8]
2242	mov	r4, r0
2243	add	r5, r5, r1
2244	str	r3, [r0, #4]
2245	movw	r3, #671
2246	ldrsb	r3, [r5, r3]
2247	str	r3, [r0]
2248	movw	r3, #675
2249	ldrsb	r3, [r5, r3]
2250	str	r3, [r0]
2251	str	r6, [r0]
2252	str	r6, [r0]
2253	bl	nandc_wait_flash_ready
2254	mov	r3, #161
2255	str	r7, [r4, #8]
2256	str	r3, [r4, #4]
2257	add	r3, r5, #672
2258	ldrsb	r3, [r3]
2259	str	r3, [r4]
2260	movw	r3, #674
2261	ldrsb	r3, [r5, r3]
2262	str	r3, [r4]
2263	add	r3, r5, #676
2264	ldrsb	r3, [r3]
2265	str	r3, [r4]
2266	str	r6, [r4]
2267	bl	nandc_wait_flash_ready
2268	mov	r3, #162
2269	str	r7, [r4, #8]
2270	str	r3, [r4, #4]
2271	movw	r3, #673
2272	ldrsb	r3, [r5, r3]
2273	str	r3, [r4]
2274	movw	r3, #677
2275	ldrsb	r3, [r5, r3]
2276	str	r3, [r4]
2277	str	r6, [r4]
2278	str	r6, [r4]
2279	pop	{r4, r5, r6, r7, r8, lr}
2280	b	nandc_wait_flash_ready
2281.L454:
2282	.align	2
2283.L453:
2284	.word	.LANCHOR1
2285	.fnend
2286	.size	ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para
2287	.align	2
2288	.global	ymtc_3d_set_slc_rr_para
2289	.syntax unified
2290	.arm
2291	.fpu softvfp
2292	.type	ymtc_3d_set_slc_rr_para, %function
2293ymtc_3d_set_slc_rr_para:
2294	.fnstart
2295	@ args = 0, pretend = 0, frame = 0
2296	@ frame_needed = 0, uses_anonymous_args = 0
2297	@ link register save eliminated.
2298	mov	r3, #239
2299	str	r3, [r0, #8]
2300	mov	r3, #163
2301	str	r3, [r0, #4]
2302	ldr	r3, .L456
2303	add	r1, r3, r1
2304	movw	r3, #1028
2305	ldrsb	r3, [r1, r3]
2306	str	r3, [r0]
2307	mov	r3, #0
2308	str	r3, [r0]
2309	str	r3, [r0]
2310	str	r3, [r0]
2311	b	nandc_wait_flash_ready
2312.L457:
2313	.align	2
2314.L456:
2315	.word	.LANCHOR1
2316	.fnend
2317	.size	ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para
2318	.align	2
2319	.global	flash_start_plane_read
2320	.syntax unified
2321	.arm
2322	.fpu softvfp
2323	.type	flash_start_plane_read, %function
2324flash_start_plane_read:
2325	.fnstart
2326	@ args = 0, pretend = 0, frame = 0
2327	@ frame_needed = 0, uses_anonymous_args = 0
2328	push	{r4, r5, r6, r7, r8, r9, r10, lr}
2329	.save {r4, r5, r6, r7, r8, r9, r10, lr}
2330	mov	r3, #1
2331	ldr	r4, .L487
2332	ubfx	r9, r0, #24, #2
2333	ldrb	r6, [r4, #1153]	@ zero_extendqisi2
2334	rsb	r2, r6, #24
2335	lsl	r6, r3, r6
2336	lsl	r5, r3, r2
2337	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
2338	sub	r6, r6, #1
2339	sub	r5, r5, #1
2340	and	r6, r6, r0, lsr r2
2341	and	r7, r5, r0
2342	and	r5, r5, r1
2343	uxtb	r6, r6
2344	cmp	r3, r6
2345	bhi	.L459
2346	movw	r2, #1148
2347	ldr	r1, .L487+4
2348	ldr	r0, .L487+8
2349	bl	printk
2350	bl	dump_stack
2351.L459:
2352	add	r6, r4, r6
2353	ldr	r8, [r4, #1044]
2354	ldrb	r6, [r6, #1144]	@ zero_extendqisi2
2355	mov	r0, r6
2356	bl	nandc_cs
2357	cmp	r9, #0
2358	lsl	r10, r6, #8
2359	bne	.L460
2360	mov	r0, r7
2361	bl	slc_phy_page_address_calc
2362	mov	r7, r0
2363	mov	r0, r5
2364	bl	slc_phy_page_address_calc
2365	ldrb	r3, [r4]	@ zero_extendqisi2
2366	mov	r5, r0
2367	cmp	r3, #0
2368	beq	.L461
2369	mov	r0, r6
2370	bl	zftl_flash_enter_slc_mode
2371.L461:
2372	ldrb	r3, [r4, #1127]	@ zero_extendqisi2
2373	uxtb	ip, r7
2374	lsr	r0, r7, #8
2375	lsr	r1, r7, #16
2376	cmp	r3, #1
2377	bne	.L463
2378	ldrb	r3, [r4, #1119]	@ zero_extendqisi2
2379	add	r6, r8, r10
2380	str	r3, [r6, #2056]
2381	mov	r3, #0
2382	str	r3, [r6, #2052]
2383	str	r3, [r6, #2052]
2384	ldrb	r3, [r4, #1152]	@ zero_extendqisi2
2385	str	ip, [r6, #2052]
2386	str	r0, [r6, #2052]
2387	cmp	r3, #0
2388	ldrb	r3, [r4, #1120]	@ zero_extendqisi2
2389	lsrne	r7, r7, #24
2390	str	r1, [r6, #2052]
2391	strne	r7, [r6, #2052]
2392	add	r7, r8, r10
2393	str	r3, [r7, #2056]
2394	bl	nandc_wait_flash_ready
2395	ldr	r3, [r4, #1104]
2396	cmp	r9, #0
2397	add	r2, r8, r10
2398	add	r8, r8, r10
2399	ldrb	r3, [r3, #12]	@ zero_extendqisi2
2400	sub	r3, r3, #3
2401	clz	r3, r3
2402	lsr	r3, r3, #5
2403	moveq	r3, #0
2404	cmp	r3, #0
2405	mov	r3, #0
2406	strne	r9, [r7, #2056]
2407	str	r3, [r2, #2056]
2408	str	r3, [r6, #2052]
2409	str	r3, [r6, #2052]
2410	uxtb	r3, r5
2411	str	r3, [r6, #2052]
2412	lsr	r3, r5, #8
2413	str	r3, [r6, #2052]
2414	lsr	r3, r5, #16
2415	str	r3, [r6, #2052]
2416	ldrb	r3, [r4, #1152]	@ zero_extendqisi2
2417	cmp	r3, #0
2418	lsrne	r5, r5, #24
2419	strne	r5, [r6, #2052]
2420.L486:
2421	mov	r3, #48
2422	str	r3, [r8, #2056]
2423	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
2424.L460:
2425	ldr	r3, [r4, #1104]
2426	ldrb	r3, [r3, #12]	@ zero_extendqisi2
2427	cmp	r3, #3
2428	bne	.L462
2429	ldrb	r3, [r4, #1158]	@ zero_extendqisi2
2430	cmp	r3, #0
2431	bne	.L462
2432	ldrb	r3, [r4, #1159]	@ zero_extendqisi2
2433	cmp	r3, #0
2434	addeq	r3, r8, r10
2435	streq	r9, [r3, #2056]
2436	beq	.L461
2437.L462:
2438	mov	r0, r6
2439	bl	zftl_flash_exit_slc_mode
2440	b	.L461
2441.L463:
2442	ldr	r2, [r4, #1104]
2443	ldrb	r3, [r2, #7]	@ zero_extendqisi2
2444	cmp	r3, #1
2445	bne	.L468
2446	ldrb	r3, [r2, #12]	@ zero_extendqisi2
2447	cmp	r3, #2
2448	addeq	r3, r8, r10
2449	moveq	lr, #38
2450	streq	lr, [r3, #2056]
2451.L468:
2452	ldrb	lr, [r4, #1119]	@ zero_extendqisi2
2453	add	r3, r8, r10
2454	cmp	r9, #0
2455	add	r8, r8, r10
2456	str	lr, [r3, #2056]
2457	str	ip, [r3, #2052]
2458	str	r0, [r3, #2052]
2459	str	r1, [r3, #2052]
2460	ldrb	r2, [r2, #12]	@ zero_extendqisi2
2461	sub	r2, r2, #3
2462	clz	r2, r2
2463	lsr	r2, r2, #5
2464	moveq	r2, #0
2465	cmp	r2, #0
2466	ldrb	r2, [r4, #1120]	@ zero_extendqisi2
2467	strne	r9, [r3, #2056]
2468	str	r2, [r8, #2056]
2469	uxtb	r2, r5
2470	str	r2, [r3, #2052]
2471	lsr	r2, r5, #8
2472	lsr	r5, r5, #16
2473	str	r2, [r3, #2052]
2474	str	r5, [r3, #2052]
2475	b	.L486
2476.L488:
2477	.align	2
2478.L487:
2479	.word	.LANCHOR0
2480	.word	.LANCHOR1+1038
2481	.word	.LC0
2482	.fnend
2483	.size	flash_start_plane_read, .-flash_start_plane_read
2484	.align	2
2485	.global	flash_set_interface_mode
2486	.syntax unified
2487	.arm
2488	.fpu softvfp
2489	.type	flash_set_interface_mode, %function
2490flash_set_interface_mode:
2491	.fnstart
2492	@ args = 0, pretend = 0, frame = 0
2493	@ frame_needed = 0, uses_anonymous_args = 0
2494	push	{r4, r5, r6, r7, r8, r9, r10, lr}
2495	.save {r4, r5, r6, r7, r8, r9, r10, lr}
2496	mov	r8, r0
2497	ldr	r6, .L528
2498	mov	r10, #0
2499	ldr	r9, .L528+4
2500	mov	r7, r6
2501.L502:
2502	ldrb	r4, [r9, r10, lsl #3]	@ zero_extendqisi2
2503	ldr	r5, [r6, #1044]
2504	cmp	r4, #69
2505	beq	.L490
2506	add	r3, r4, #119
2507	sub	r1, r4, #44
2508	uxtb	r2, r3
2509	clz	r1, r1
2510	lsr	r1, r1, #5
2511	cmp	r2, #18
2512	ldrls	r3, .L528+8
2513	movhi	r3, #1
2514	mvnls	r3, r3, lsr r2
2515	and	r3, r3, #1
2516	eor	r3, r3, #1
2517	orrs	r3, r1, r3
2518	beq	.L492
2519.L490:
2520	cmp	r8, #1
2521	ldrb	r1, [r7, #1192]	@ zero_extendqisi2
2522	bne	.L493
2523	tst	r1, #1
2524	beq	.L492
2525	ldr	r3, .L528+12
2526	ldr	r3, [r3]
2527	tst	r3, #4096
2528	beq	.L494
2529	ldr	r0, .L528+16
2530	bl	printk
2531.L494:
2532	lsl	r2, r10, #8
2533	cmp	r4, #137
2534	cmpne	r4, #44
2535	mov	r1, #239
2536	add	r3, r5, r2
2537	str	r1, [r3, #2056]
2538	bne	.L495
2539.L527:
2540	mov	r1, #1
2541	str	r1, [r3, #2052]
2542	mov	r1, #5
2543	b	.L525
2544.L495:
2545	cmp	r4, #155
2546	movne	r1, #128
2547	strne	r1, [r3, #2052]
2548	movne	r1, #1
2549	beq	.L527
2550.L525:
2551	str	r1, [r3, #2048]
2552	add	r5, r5, r2
2553	mov	r3, #0
2554	str	r3, [r5, #2048]
2555	str	r3, [r5, #2048]
2556	str	r3, [r5, #2048]
2557.L492:
2558	add	r10, r10, #1
2559	cmp	r10, #4
2560	bne	.L502
2561	bl	nandc_wait_flash_ready
2562	mov	r0, #0
2563	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
2564.L493:
2565	tst	r1, #4
2566	beq	.L492
2567	ldr	r3, .L528+12
2568	ldr	r3, [r3]
2569	tst	r3, #4096
2570	beq	.L498
2571	ldr	r0, .L528+20
2572	bl	printk
2573.L498:
2574	lsl	r2, r10, #8
2575	mov	r1, #239
2576	cmp	r4, #137
2577	cmpne	r4, #44
2578	add	r3, r5, r2
2579	str	r1, [r3, #2056]
2580	moveq	r1, #1
2581	moveq	r1, #1
2582	movne	r1, #0
2583	streq	r1, [r3, #2052]
2584	moveq	r1, #35
2585	beq	.L525
2586	cmp	r4, #155
2587	moveq	r1, #1
2588	movne	r0, #128
2589	streq	r1, [r3, #2052]
2590	moveq	r1, #37
2591	strne	r0, [r3, #2052]
2592	b	.L525
2593.L529:
2594	.align	2
2595.L528:
2596	.word	.LANCHOR0
2597	.word	.LANCHOR0+1160
2598	.word	294913
2599	.word	.LANCHOR2
2600	.word	.LC34
2601	.word	.LC35
2602	.fnend
2603	.size	flash_set_interface_mode, .-flash_set_interface_mode
2604	.align	2
2605	.syntax unified
2606	.arm
2607	.fpu softvfp
2608	.type	mt_auto_read_calibration_config, %function
2609mt_auto_read_calibration_config:
2610	.fnstart
2611	@ args = 0, pretend = 0, frame = 0
2612	@ frame_needed = 0, uses_anonymous_args = 0
2613	push	{r4, r5, r6, lr}
2614	.save {r4, r5, r6, lr}
2615	mov	r5, r1
2616	mov	r6, r0
2617	bl	nandc_wait_flash_ready
2618	ldr	r3, .L532
2619	mov	r0, #200
2620	ldr	r4, [r3, #1044]
2621	mov	r3, #239
2622	add	r4, r4, r6, lsl #8
2623	str	r3, [r4, #2056]
2624	mov	r3, #150
2625	str	r3, [r4, #2052]
2626	bl	ndelay
2627	mov	r3, #0
2628	str	r5, [r4, #2048]
2629	str	r3, [r4, #2048]
2630	str	r3, [r4, #2048]
2631	str	r3, [r4, #2048]
2632	pop	{r4, r5, r6, pc}
2633.L533:
2634	.align	2
2635.L532:
2636	.word	.LANCHOR0
2637	.fnend
2638	.size	mt_auto_read_calibration_config, .-mt_auto_read_calibration_config
2639	.align	2
2640	.global	flash_reset
2641	.syntax unified
2642	.arm
2643	.fpu softvfp
2644	.type	flash_reset, %function
2645flash_reset:
2646	.fnstart
2647	@ args = 0, pretend = 0, frame = 0
2648	@ frame_needed = 0, uses_anonymous_args = 0
2649	@ link register save eliminated.
2650	ldr	r3, .L535
2651	ldr	r3, [r3, #1044]
2652	add	r0, r3, r0, lsl #8
2653	mov	r3, #255
2654	str	r3, [r0, #2056]
2655	b	nandc_wait_flash_ready
2656.L536:
2657	.align	2
2658.L535:
2659	.word	.LANCHOR0
2660	.fnend
2661	.size	flash_reset, .-flash_reset
2662	.align	2
2663	.global	flash_read_id
2664	.syntax unified
2665	.arm
2666	.fpu softvfp
2667	.type	flash_read_id, %function
2668flash_read_id:
2669	.fnstart
2670	@ args = 0, pretend = 0, frame = 0
2671	@ frame_needed = 0, uses_anonymous_args = 0
2672	push	{r0, r1, r2, r3, r4, r5, r6, lr}
2673	.save {r4, r5, r6, lr}
2674	.pad #16
2675	mov	r6, r0
2676	ldr	r3, .L540
2677	mov	r4, r1
2678	ldr	r5, [r3, #1044]
2679	bl	flash_reset
2680	mov	r0, r6
2681	bl	nandc_cs
2682	add	r5, r5, r6, lsl #8
2683	mov	r3, #144
2684	mov	r0, #200
2685	str	r3, [r5, #2056]
2686	mov	r3, #0
2687	str	r3, [r5, #2052]
2688	bl	ndelay
2689	ldr	r3, [r5, #2048]
2690	strb	r3, [r4]
2691	ldr	r3, [r5, #2048]
2692	strb	r3, [r4, #1]
2693	ldr	r3, [r5, #2048]
2694	strb	r3, [r4, #2]
2695	ldr	r3, [r5, #2048]
2696	strb	r3, [r4, #3]
2697	ldr	r3, [r5, #2048]
2698	strb	r3, [r4, #4]
2699	ldr	r3, [r5, #2048]
2700	strb	r3, [r4, #5]
2701	ldr	r3, [r5, #2048]
2702	strb	r3, [r4, #6]
2703	ldr	r3, [r5, #2048]
2704	strb	r3, [r4, #7]
2705	bl	nandc_de_cs.constprop.35
2706	ldrb	r2, [r4]	@ zero_extendqisi2
2707	sub	r3, r2, #1
2708	uxtb	r3, r3
2709	cmp	r3, #253
2710	bhi	.L537
2711	ldrb	r1, [r4, #5]	@ zero_extendqisi2
2712	ldrb	r3, [r4, #1]	@ zero_extendqisi2
2713	ldr	r0, .L540+4
2714	str	r1, [sp, #12]
2715	ldrb	r1, [r4, #4]	@ zero_extendqisi2
2716	str	r1, [sp, #8]
2717	ldrb	r1, [r4, #3]	@ zero_extendqisi2
2718	str	r1, [sp, #4]
2719	ldrb	r1, [r4, #2]	@ zero_extendqisi2
2720	str	r1, [sp]
2721	add	r1, r6, #1
2722	bl	printk
2723.L537:
2724	add	sp, sp, #16
2725	@ sp needed
2726	pop	{r4, r5, r6, pc}
2727.L541:
2728	.align	2
2729.L540:
2730	.word	.LANCHOR0
2731	.word	.LC36
2732	.fnend
2733	.size	flash_read_id, .-flash_read_id
2734	.align	2
2735	.global	flash_read_spare
2736	.syntax unified
2737	.arm
2738	.fpu softvfp
2739	.type	flash_read_spare, %function
2740flash_read_spare:
2741	.fnstart
2742	@ args = 0, pretend = 0, frame = 0
2743	@ frame_needed = 0, uses_anonymous_args = 0
2744	push	{r4, r5, r6, lr}
2745	.save {r4, r5, r6, lr}
2746	mov	r5, r2
2747	ldr	r3, .L544
2748	ldr	r2, .L544+4
2749	ldrb	r3, [r3, #13]	@ zero_extendqisi2
2750	ldr	r4, [r2, #1044]
2751	mov	r2, #0
2752	lsl	r3, r3, #9
2753	add	r4, r4, r0, lsl #8
2754	str	r2, [r4, #2056]
2755	str	r3, [r4, #2052]
2756	lsr	r3, r3, #8
2757	str	r3, [r4, #2052]
2758	uxtb	r3, r1
2759	str	r3, [r4, #2052]
2760	lsr	r3, r1, #8
2761	lsr	r1, r1, #16
2762	str	r3, [r4, #2052]
2763	mov	r3, #48
2764	str	r1, [r4, #2052]
2765	str	r3, [r4, #2056]
2766	bl	nandc_wait_flash_ready
2767	ldr	r3, [r4, #2048]
2768	strb	r3, [r5]
2769	pop	{r4, r5, r6, pc}
2770.L545:
2771	.align	2
2772.L544:
2773	.word	.LANCHOR2
2774	.word	.LANCHOR0
2775	.fnend
2776	.size	flash_read_spare, .-flash_read_spare
2777	.align	2
2778	.global	flash_read_otp_data
2779	.syntax unified
2780	.arm
2781	.fpu softvfp
2782	.type	flash_read_otp_data, %function
2783flash_read_otp_data:
2784	.fnstart
2785	@ args = 0, pretend = 0, frame = 0
2786	@ frame_needed = 0, uses_anonymous_args = 0
2787	ldr	r3, .L550
2788	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
2789	.save {r4, r5, r6, r7, r8, r9, r10, lr}
2790	.pad #8
2791	mov	r9, r0
2792	lsl	r9, r9, #8
2793	mov	r6, r1
2794	mov	r5, r2
2795	ldr	r8, [r3, #1044]
2796	mov	r10, #144
2797	bl	nandc_cs
2798	mov	r3, #239
2799	mov	r0, #50
2800	add	r4, r8, r9
2801	mov	r7, #0
2802	str	r3, [r4, #2056]
2803	str	r10, [r4, #2052]
2804	bl	ndelay
2805	mov	r3, #1
2806	str	r3, [r4, #2048]
2807	str	r7, [r4, #2048]
2808	str	r7, [r4, #2048]
2809	str	r7, [r4, #2048]
2810	bl	nandc_wait_flash_ready
2811	mov	r3, #238
2812	ldr	r0, .L550+4
2813	str	r3, [r4, #2056]
2814	str	r10, [r4, #2052]
2815	ldr	r2, [r4, #2048]
2816	ldr	r3, [r4, #2048]
2817	ldr	r1, [r4, #2048]
2818	str	r1, [sp]
2819	mov	r1, r6
2820	bl	printk
2821	bl	nandc_wait_flash_ready
2822	uxtb	r3, r6
2823	str	r7, [r4, #2056]
2824	str	r7, [r4, #2052]
2825	str	r7, [r4, #2052]
2826	str	r3, [r4, #2052]
2827	lsr	r3, r6, #8
2828	lsr	r6, r6, #16
2829	str	r3, [r4, #2052]
2830	mov	r3, #48
2831	str	r6, [r4, #2052]
2832	str	r3, [r4, #2056]
2833	bl	nandc_wait_flash_ready
2834	add	r3, r5, #16384
2835	mov	r2, r5
2836.L547:
2837	ldr	r1, [r4, #2048]
2838	strb	r1, [r2], #1
2839	cmp	r2, r3
2840	bne	.L547
2841	add	r8, r8, r9
2842	mov	r3, #239
2843	str	r3, [r8, #2056]
2844	mov	r3, #144
2845	str	r3, [r4, #2052]
2846	mov	r0, #50
2847	bl	ndelay
2848	mov	r3, #0
2849	str	r3, [r4, #2048]
2850	str	r3, [r4, #2048]
2851	str	r3, [r4, #2048]
2852	str	r3, [r4, #2048]
2853	add	sp, sp, #8
2854	@ sp needed
2855	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
2856	b	nandc_de_cs.constprop.35
2857.L551:
2858	.align	2
2859.L550:
2860	.word	.LANCHOR0
2861	.word	.LC37
2862	.fnend
2863	.size	flash_read_otp_data, .-flash_read_otp_data
2864	.align	2
2865	.global	sandisk_prog_test_bad_block
2866	.syntax unified
2867	.arm
2868	.fpu softvfp
2869	.type	sandisk_prog_test_bad_block, %function
2870sandisk_prog_test_bad_block:
2871	.fnstart
2872	@ args = 0, pretend = 0, frame = 0
2873	@ frame_needed = 0, uses_anonymous_args = 0
2874	push	{r4, r5, r6, r7, r8, lr}
2875	.save {r4, r5, r6, r7, r8, lr}
2876	lsl	r7, r0, #8
2877	ldr	r3, .L568
2878	mov	r8, r1
2879	ldr	r6, .L568+4
2880	ldr	r5, [r3, #1044]
2881	ldrb	r3, [r6, #33]	@ zero_extendqisi2
2882	add	r4, r5, r7
2883	cmp	r3, #0
2884	addne	r2, r5, r7
2885	addeq	r3, r5, r7
2886	moveq	r2, #162
2887	strne	r3, [r2, #2056]
2888	streq	r2, [r3, #2056]
2889	mov	r3, #128
2890	str	r3, [r4, #2056]
2891	mov	r3, #0
2892	str	r3, [r4, #2052]
2893	str	r3, [r4, #2052]
2894	uxtb	r3, r1
2895	str	r3, [r4, #2052]
2896	lsr	r3, r1, #8
2897	str	r3, [r4, #2052]
2898	lsr	r3, r1, #16
2899	str	r3, [r4, #2052]
2900	mov	r3, #16
2901	str	r3, [r4, #2056]
2902	bl	nandc_wait_flash_ready
2903	mov	r3, #112
2904	mov	r0, #200
2905	str	r3, [r4, #2056]
2906	bl	ndelay
2907	ldr	r2, [r4, #2048]
2908	cmp	r2, #255
2909	ldreq	r2, [r4, #2048]
2910	ands	r4, r2, #5
2911	beq	.L556
2912	ldr	r3, [r6]
2913	tst	r3, #4096
2914	beq	.L556
2915	mov	r1, r8
2916	ldr	r0, .L568+8
2917	bl	printk
2918.L556:
2919	ldrb	r3, [r6, #34]	@ zero_extendqisi2
2920	mov	r0, r4
2921	cmp	r3, #0
2922	addne	r5, r5, r7
2923	strne	r3, [r5, #2056]
2924	pop	{r4, r5, r6, r7, r8, pc}
2925.L569:
2926	.align	2
2927.L568:
2928	.word	.LANCHOR0
2929	.word	.LANCHOR2
2930	.word	.LC38
2931	.fnend
2932	.size	sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block
2933	.align	2
2934	.global	nandc_rdy_status
2935	.syntax unified
2936	.arm
2937	.fpu softvfp
2938	.type	nandc_rdy_status, %function
2939nandc_rdy_status:
2940	.fnstart
2941	@ args = 0, pretend = 0, frame = 8
2942	@ frame_needed = 0, uses_anonymous_args = 0
2943	@ link register save eliminated.
2944	ldr	r3, .L572
2945	.pad #8
2946	sub	sp, sp, #8
2947	ldr	r3, [r3, #1044]
2948	ldr	r3, [r3]
2949	str	r3, [sp, #4]
2950	ldr	r0, [sp, #4]
2951	ubfx	r0, r0, #9, #1
2952	add	sp, sp, #8
2953	@ sp needed
2954	bx	lr
2955.L573:
2956	.align	2
2957.L572:
2958	.word	.LANCHOR0
2959	.fnend
2960	.size	nandc_rdy_status, .-nandc_rdy_status
2961	.align	2
2962	.global	nandc_bch_sel
2963	.syntax unified
2964	.arm
2965	.fpu softvfp
2966	.type	nandc_bch_sel, %function
2967nandc_bch_sel:
2968	.fnstart
2969	@ args = 0, pretend = 0, frame = 8
2970	@ frame_needed = 0, uses_anonymous_args = 0
2971	@ link register save eliminated.
2972	.pad #8
2973	sub	sp, sp, #8
2974	mov	r3, #0
2975	str	r3, [sp, #4]
2976	ldr	r2, [sp, #4]
2977	orr	r2, r2, #1
2978	str	r2, [sp, #4]
2979	ldr	r2, .L586
2980	ldrb	r1, [r2, #1028]	@ zero_extendqisi2
2981	strb	r0, [r2, #1193]
2982	cmp	r1, #9
2983	bne	.L575
2984	ldr	r2, [r2, #1044]
2985	cmp	r0, #70
2986	ldr	r1, [sp, #4]
2987	str	r1, [r2, #16]
2988	beq	.L576
2989	cmp	r0, #60
2990	moveq	r3, #3
2991	beq	.L576
2992	cmp	r0, #40
2993	moveq	r3, #2
2994	movne	r3, #1
2995.L576:
2996	mov	r1, #0
2997	str	r1, [sp]
2998	ldr	r1, [sp]
2999	bfi	r1, r3, #25, #3
3000	str	r1, [sp]
3001	ldr	r3, [sp]
3002	orr	r3, r3, #1
3003	str	r3, [sp]
3004	ldr	r3, [sp]
3005	str	r3, [r2, #32]
3006.L574:
3007	add	sp, sp, #8
3008	@ sp needed
3009	bx	lr
3010.L575:
3011	ldr	r1, [r2, #1044]
3012	mov	ip, #16
3013	ldr	r2, [sp, #4]
3014	cmp	r0, ip
3015	str	r2, [r1, #8]
3016	str	r3, [sp]
3017	ldr	r2, [sp]
3018	bfi	r2, ip, #8, #8
3019	str	r2, [sp]
3020	ldr	r2, [sp]
3021	bfi	r2, r3, #18, #1
3022	str	r2, [sp]
3023	bne	.L578
3024.L585:
3025	ldr	r2, [sp]
3026	bfi	r2, r3, #4, #1
3027	str	r2, [sp]
3028	b	.L579
3029.L578:
3030	cmp	r0, #24
3031	ldreq	r3, [sp]
3032	orreq	r3, r3, #16
3033	streq	r3, [sp]
3034	beq	.L579
3035	ldr	r2, [sp]
3036	cmp	r0, #40
3037	orr	r2, r2, #262144
3038	str	r2, [sp]
3039	ldr	r2, [sp]
3040	orr	r2, r2, #16
3041	str	r2, [sp]
3042	beq	.L585
3043.L579:
3044	ldr	r3, [sp]
3045	orr	r3, r3, #1
3046	str	r3, [sp]
3047	ldr	r3, [sp]
3048	str	r3, [r1, #12]
3049	b	.L574
3050.L587:
3051	.align	2
3052.L586:
3053	.word	.LANCHOR0
3054	.fnend
3055	.size	nandc_bch_sel, .-nandc_bch_sel
3056	.align	2
3057	.global	zftl_flash_resume
3058	.syntax unified
3059	.arm
3060	.fpu softvfp
3061	.type	zftl_flash_resume, %function
3062zftl_flash_resume:
3063	.fnstart
3064	@ args = 0, pretend = 0, frame = 0
3065	@ frame_needed = 0, uses_anonymous_args = 0
3066	push	{r4, r5, r6, r7, r8, r9, r10, lr}
3067	.save {r4, r5, r6, r7, r8, r9, r10, lr}
3068	ldr	r4, .L599
3069	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
3070	ldr	r2, [r4, #1048]
3071	cmp	r3, #9
3072	ldr	r3, [r4, #1044]
3073	str	r2, [r3]
3074	ldr	r2, [r4, #1052]
3075	ldr	r3, [r4, #1044]
3076	str	r2, [r3, #4]
3077	ldr	r2, [r4, #1056]
3078	bne	.L589
3079	str	r2, [r3, #16]
3080	ldr	r2, [r4, #1060]
3081	str	r2, [r3, #32]
3082	ldr	r2, [r4, #1064]
3083	str	r2, [r3, #80]
3084	ldr	r2, [r4, #1068]
3085	str	r2, [r3, #84]
3086	ldr	r2, [r4, #1072]
3087	str	r2, [r3, #520]
3088	ldr	r2, [r4, #1076]
3089	str	r2, [r3, #8]
3090.L591:
3091	ldr	r6, .L599+4
3092	mov	r5, #0
3093	mov	r8, #2
3094	sub	r7, r6, #6
3095.L590:
3096	ldrb	r3, [r6, r5, lsl #3]	@ zero_extendqisi2
3097	sub	r3, r3, #1
3098	uxtb	r3, r3
3099	cmp	r3, #253
3100	bhi	.L592
3101	uxtb	r9, r5
3102	mov	r0, r9
3103	bl	flash_reset
3104	strb	r8, [r5, r7]
3105	mov	r0, r9
3106	bl	zftl_flash_enter_slc_mode
3107.L592:
3108	add	r5, r5, #1
3109	cmp	r5, #4
3110	bne	.L590
3111	ldrb	r3, [r4, #1143]	@ zero_extendqisi2
3112	cmp	r3, #0
3113	beq	.L593
3114	mov	r0, #1
3115	bl	nandc_set_if_mode
3116	mov	r0, r5
3117	bl	flash_set_interface_mode
3118	mov	r0, r5
3119	bl	nandc_set_if_mode
3120	ldrb	r0, [r4, #1065]	@ zero_extendqisi2
3121	bl	nandc_set_ddr_para
3122.L593:
3123	ldr	r3, .L599+8
3124	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
3125	ldrb	r0, [r3, #24]	@ zero_extendqisi2
3126	b	nandc_bch_sel
3127.L589:
3128	str	r2, [r3, #8]
3129	ldr	r2, [r4, #1060]
3130	str	r2, [r3, #12]
3131	ldr	r2, [r4, #1064]
3132	str	r2, [r3, #304]
3133	ldr	r2, [r4, #1068]
3134	str	r2, [r3, #308]
3135	ldr	r2, [r4, #1072]
3136	str	r2, [r3, #336]
3137	ldr	r2, [r4, #1076]
3138	str	r2, [r3, #344]
3139	b	.L591
3140.L600:
3141	.align	2
3142.L599:
3143	.word	.LANCHOR0
3144	.word	.LANCHOR0+1160
3145	.word	.LANCHOR2
3146	.fnend
3147	.size	zftl_flash_resume, .-zftl_flash_resume
3148	.align	2
3149	.global	rk_nandc_flash_ready
3150	.syntax unified
3151	.arm
3152	.fpu softvfp
3153	.type	rk_nandc_flash_ready, %function
3154rk_nandc_flash_ready:
3155	.fnstart
3156	@ args = 0, pretend = 0, frame = 0
3157	@ frame_needed = 0, uses_anonymous_args = 0
3158	@ link register save eliminated.
3159	mov	r1, #1
3160	b	nandc_irq_disable
3161	.fnend
3162	.size	rk_nandc_flash_ready, .-rk_nandc_flash_ready
3163	.align	2
3164	.global	nandc_iqr_wait_flash_ready
3165	.syntax unified
3166	.arm
3167	.fpu softvfp
3168	.type	nandc_iqr_wait_flash_ready, %function
3169nandc_iqr_wait_flash_ready:
3170	.fnstart
3171	@ args = 0, pretend = 0, frame = 0
3172	@ frame_needed = 0, uses_anonymous_args = 0
3173	push	{r4, lr}
3174	.save {r4, lr}
3175	ldr	r4, .L607
3176	ldr	r0, [r4, #1044]
3177	bl	rk_nandc_rb_irq_flag_init
3178	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
3179	ldr	r0, [r4, #1044]
3180	cmp	r3, #9
3181	ldreq	r3, [r0, #292]
3182	ldrne	r3, [r0, #368]
3183	orreq	r3, r3, #2
3184	orrne	r3, r3, #2
3185	streq	r3, [r0, #292]
3186	strne	r3, [r0, #368]
3187	ldreq	r3, [r0, #288]
3188	ldrne	r3, [r0, #364]
3189	orreq	r3, r3, #2
3190	orrne	r3, r3, #2
3191	streq	r3, [r0, #288]
3192	strne	r3, [r0, #364]
3193	ldr	r3, [r0]
3194	tst	r3, #512
3195	bne	.L605
3196	pop	{r4, lr}
3197	b	wait_for_nand_flash_ready
3198.L605:
3199	mov	r1, #1
3200	pop	{r4, lr}
3201	b	nandc_irq_disable
3202.L608:
3203	.align	2
3204.L607:
3205	.word	.LANCHOR0
3206	.fnend
3207	.size	nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready
3208	.align	2
3209	.global	flash_erase_duplane_block
3210	.syntax unified
3211	.arm
3212	.fpu softvfp
3213	.type	flash_erase_duplane_block, %function
3214flash_erase_duplane_block:
3215	.fnstart
3216	@ args = 0, pretend = 0, frame = 0
3217	@ frame_needed = 0, uses_anonymous_args = 0
3218	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
3219	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
3220	mov	r10, r3
3221	ldr	r7, .L634
3222	mov	r4, r0
3223	mov	r5, r1
3224	mov	r6, r2
3225	ldrb	r3, [r7, #1109]	@ zero_extendqisi2
3226	cmp	r3, r0
3227	bhi	.L610
3228	movw	r2, #695
3229	ldr	r1, .L634+4
3230	ldr	r0, .L634+8
3231	bl	printk
3232	bl	dump_stack
3233.L610:
3234	ldrb	r3, [r7, #1109]	@ zero_extendqisi2
3235	cmp	r3, r4
3236	bls	.L619
3237	ldr	r3, .L634+12
3238	add	r4, r7, r4
3239	ldrb	r4, [r4, #1144]	@ zero_extendqisi2
3240	ldr	r9, [r7, #1044]
3241	ldr	r3, [r3]
3242	add	r8, r4, #8
3243	tst	r3, #16
3244	add	r8, r9, r8, lsl #8
3245	beq	.L612
3246	mov	r3, r10
3247	mov	r2, r6
3248	mov	r1, r4
3249	ldr	r0, .L634+16
3250	bl	printk
3251.L612:
3252	bl	nandc_wait_flash_ready
3253	mov	r0, r4
3254	bl	nandc_cs
3255	cmp	r5, #0
3256	mov	r0, r4
3257	bne	.L613
3258	bl	zftl_flash_enter_slc_mode
3259.L614:
3260	lsl	r4, r4, #8
3261	mov	r3, #96
3262	add	r5, r9, r4
3263	str	r3, [r5, #2056]
3264	uxtb	r3, r6
3265	str	r3, [r5, #2052]
3266	lsr	r3, r6, #8
3267	str	r3, [r5, #2052]
3268	lsr	r3, r6, #16
3269	str	r3, [r5, #2052]
3270	ldrb	r3, [r7, #1152]	@ zero_extendqisi2
3271	cmp	r3, #0
3272	lsrne	r3, r6, #24
3273	strne	r3, [r5, #2052]
3274	ldrb	r3, [r7, #1194]	@ zero_extendqisi2
3275	cmp	r3, #0
3276	movne	fp, #0
3277	bne	.L616
3278	add	r3, r9, r4
3279	mov	r2, #208
3280	str	r2, [r3, #2056]
3281	bl	nandc_wait_flash_ready
3282	mov	r0, r8
3283	bl	flash_read_status
3284	and	fp, r0, #5
3285.L616:
3286	mov	r2, #96
3287	add	r3, r9, r4
3288	str	r2, [r3, #2056]
3289	uxtb	r3, r10
3290	add	r0, r9, r4
3291	str	r3, [r5, #2052]
3292	lsr	r3, r10, #8
3293	str	r3, [r5, #2052]
3294	lsr	r3, r10, #16
3295	str	r3, [r5, #2052]
3296	ldrb	r3, [r7, #1152]	@ zero_extendqisi2
3297	cmp	r3, #0
3298	mov	r3, #208
3299	lsrne	r2, r10, #24
3300	strne	r2, [r5, #2052]
3301	str	r3, [r0, #2056]
3302	bl	nandc_iqr_wait_flash_ready
3303	bl	nandc_wait_flash_ready
3304	mov	r0, r8
3305	bl	flash_read_status
3306	bl	nandc_de_cs.constprop.35
3307	and	r3, r0, #5
3308	orrs	fp, r3, fp
3309	beq	.L618
3310	mov	r2, r0
3311	mov	r1, r6
3312	ldr	r0, .L634+20
3313	bl	printk
3314.L618:
3315	mov	r0, fp
3316	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
3317.L613:
3318	bl	zftl_flash_exit_slc_mode
3319	b	.L614
3320.L619:
3321	mvn	r0, #0
3322	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
3323.L635:
3324	.align	2
3325.L634:
3326	.word	.LANCHOR0
3327	.word	.LANCHOR1+1061
3328	.word	.LC0
3329	.word	.LANCHOR2
3330	.word	.LC39
3331	.word	.LC40
3332	.fnend
3333	.size	flash_erase_duplane_block, .-flash_erase_duplane_block
3334	.align	2
3335	.global	flash_erase_block_en
3336	.syntax unified
3337	.arm
3338	.fpu softvfp
3339	.type	flash_erase_block_en, %function
3340flash_erase_block_en:
3341	.fnstart
3342	@ args = 0, pretend = 0, frame = 0
3343	@ frame_needed = 0, uses_anonymous_args = 0
3344	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
3345	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
3346	mov	r7, r0
3347	ldr	r5, .L655
3348	mov	fp, r1
3349	mov	r8, r2
3350	ldrb	r6, [r5, #1153]	@ zero_extendqisi2
3351	rsb	r3, r6, #24
3352	mvn	r6, #0
3353	bic	r6, r2, r6, lsl r3
3354	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
3355	cmp	r3, r0
3356	bhi	.L637
3357	movw	r2, #757
3358	ldr	r1, .L655+4
3359	ldr	r0, .L655+8
3360	bl	printk
3361	bl	dump_stack
3362.L637:
3363	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
3364	cmp	r3, r7
3365	bls	.L644
3366	add	r3, r5, r7
3367	ldr	r9, [r5, #1044]
3368	ldrb	r4, [r3, #1144]	@ zero_extendqisi2
3369	ldr	r3, .L655+12
3370	add	r10, r4, #8
3371	ldr	r3, [r3]
3372	add	r10, r9, r10, lsl #8
3373	tst	r3, #16
3374	beq	.L639
3375	mov	r3, fp
3376	mov	r2, r8
3377	mov	r1, r4
3378	ldr	r0, .L655+16
3379	bl	printk
3380.L639:
3381	bl	nandc_wait_flash_ready
3382	mov	r0, r4
3383	bl	nandc_cs
3384	cmp	fp, #0
3385	mov	r0, r4
3386	bne	.L640
3387	bl	zftl_flash_enter_slc_mode
3388.L641:
3389	lsl	r4, r4, #8
3390	mov	r2, #96
3391	add	r3, r9, r4
3392	add	r4, r9, r4
3393	str	r2, [r3, #2056]
3394	uxtb	r2, r6
3395	str	r2, [r3, #2052]
3396	lsr	r2, r6, #8
3397	str	r2, [r3, #2052]
3398	lsr	r2, r6, #16
3399	str	r2, [r3, #2052]
3400	ldrb	r2, [r5, #1152]	@ zero_extendqisi2
3401	cmp	r2, #0
3402	lsrne	r6, r6, #24
3403	strne	r6, [r3, #2052]
3404	mov	r3, #208
3405	str	r3, [r4, #2056]
3406	bl	nandc_iqr_wait_flash_ready
3407	bl	nandc_wait_flash_ready
3408	mov	r0, r10
3409	bl	flash_read_status
3410	bl	nandc_de_cs.constprop.35
3411	ands	r4, r0, #5
3412	beq	.L643
3413	ldrh	r1, [r5, #2]
3414	mov	r0, r8
3415	bl	__aeabi_uidiv
3416	mov	r3, r4
3417	mvn	r4, #0
3418	mov	r2, r0
3419	mov	r1, r7
3420	ldr	r0, .L655+20
3421	bl	printk
3422.L643:
3423	mov	r0, r4
3424	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
3425.L640:
3426	bl	zftl_flash_exit_slc_mode
3427	b	.L641
3428.L644:
3429	mvn	r0, #0
3430	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
3431.L656:
3432	.align	2
3433.L655:
3434	.word	.LANCHOR0
3435	.word	.LANCHOR1+1087
3436	.word	.LC0
3437	.word	.LANCHOR2
3438	.word	.LC41
3439	.word	.LC42
3440	.fnend
3441	.size	flash_erase_block_en, .-flash_erase_block_en
3442	.align	2
3443	.global	flash_erase_block
3444	.syntax unified
3445	.arm
3446	.fpu softvfp
3447	.type	flash_erase_block, %function
3448flash_erase_block:
3449	.fnstart
3450	@ args = 0, pretend = 0, frame = 0
3451	@ frame_needed = 0, uses_anonymous_args = 0
3452	@ link register save eliminated.
3453	mov	r2, r1
3454	mov	r1, #0
3455	b	flash_erase_block_en
3456	.fnend
3457	.size	flash_erase_block, .-flash_erase_block
3458	.align	2
3459	.global	flash_erase_all
3460	.syntax unified
3461	.arm
3462	.fpu softvfp
3463	.type	flash_erase_all, %function
3464flash_erase_all:
3465	.fnstart
3466	@ args = 0, pretend = 0, frame = 0
3467	@ frame_needed = 0, uses_anonymous_args = 0
3468	ldr	r3, .L664
3469	push	{r4, r5, r6, r7, r8, r9, r10, lr}
3470	.save {r4, r5, r6, r7, r8, r9, r10, lr}
3471	mov	r5, #0
3472	ldr	r7, .L664+4
3473	ldrb	r4, [r3, #17]	@ zero_extendqisi2
3474	ldrh	r3, [r3, #18]
3475	mov	r8, r7
3476	smulbb	r4, r4, r3
3477	uxth	r4, r4
3478.L659:
3479	ldrb	r2, [r7, #1109]	@ zero_extendqisi2
3480	uxth	r3, r5
3481	cmp	r2, r3
3482	bhi	.L662
3483	mov	r1, #0
3484	ldr	r0, .L664+8
3485	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
3486	b	printk
3487.L662:
3488	uxtah	r3, r7, r5
3489	mov	r6, #0
3490	ldrb	r9, [r3, #1144]	@ zero_extendqisi2
3491.L660:
3492	uxth	r3, r6
3493	cmp	r4, r3
3494	addls	r5, r5, #1
3495	bls	.L659
3496.L661:
3497	ldrh	r1, [r8, #2]
3498	mov	r0, r9
3499	mul	r1, r6, r1
3500	add	r6, r6, #1
3501	bl	flash_erase_block
3502	b	.L660
3503.L665:
3504	.align	2
3505.L664:
3506	.word	.LANCHOR2
3507	.word	.LANCHOR0
3508	.word	.LC43
3509	.fnend
3510	.size	flash_erase_all, .-flash_erase_all
3511	.align	2
3512	.global	rk_nandc_flash_xfer_completed
3513	.syntax unified
3514	.arm
3515	.fpu softvfp
3516	.type	rk_nandc_flash_xfer_completed, %function
3517rk_nandc_flash_xfer_completed:
3518	.fnstart
3519	@ args = 0, pretend = 0, frame = 0
3520	@ frame_needed = 0, uses_anonymous_args = 0
3521	@ link register save eliminated.
3522	mov	r1, #0
3523	b	nandc_irq_disable
3524	.fnend
3525	.size	rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
3526	.align	2
3527	.global	nandc_xfer_start
3528	.syntax unified
3529	.arm
3530	.fpu softvfp
3531	.type	nandc_xfer_start, %function
3532nandc_xfer_start:
3533	.fnstart
3534	@ args = 0, pretend = 0, frame = 16
3535	@ frame_needed = 0, uses_anonymous_args = 0
3536	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
3537	.save {r4, r5, r6, r7, r8, lr}
3538	.pad #16
3539	mov	r5, r0
3540	ldr	r4, .L684
3541	mov	r0, r2
3542	and	r6, r5, #1
3543	add	ip, r1, #1
3544	ldrb	r2, [r4, #1028]	@ zero_extendqisi2
3545	cmp	r2, #9
3546	bne	.L668
3547	mov	r1, #0
3548	mov	lr, #1
3549	str	r1, [sp, #4]
3550	ubfx	ip, ip, #1, #6
3551	ldr	r2, [sp, #4]
3552	bfi	r2, r6, #1, #1
3553	str	r2, [sp, #4]
3554	ldr	r2, [sp, #4]
3555	orr	r2, r2, #8
3556	str	r2, [sp, #4]
3557	ldr	r2, [sp, #4]
3558	bfi	r2, lr, #5, #2
3559	str	r2, [sp, #4]
3560	ldr	r2, [sp, #4]
3561	orr	r2, r2, #536870912
3562	str	r2, [sp, #4]
3563	ldr	r2, [sp, #4]
3564	orr	r2, r2, #1024
3565	str	r2, [sp, #4]
3566	ldr	r2, [sp, #4]
3567	bfi	r2, r1, #4, #1
3568	str	r2, [sp, #4]
3569	ldr	r2, [sp, #4]
3570	bfi	r2, ip, #22, #6
3571	str	r2, [sp, #4]
3572	ldr	r2, [sp, #4]
3573	orr	r2, r2, #128
3574	str	r2, [sp, #4]
3575	ldrb	r2, [r4, #1195]	@ zero_extendqisi2
3576	cmp	r2, r1
3577	beq	.L669
3578	ldrb	r2, [r4, #1196]	@ zero_extendqisi2
3579	cmp	r2, r1
3580	ldrne	r2, [sp, #4]
3581	orrne	r2, r2, #512
3582	strne	r2, [sp, #4]
3583.L669:
3584	ldr	r1, [sp, #4]
3585	mov	r2, r5
3586	str	r3, [r4, #1208]
3587	str	r0, [r4, #1204]
3588	ubfx	r1, r1, #22, #6
3589	lsl	r1, r1, #10
3590	bl	rknand_dma_map_single
3591	ldr	r1, [sp, #4]
3592	mov	r2, r5
3593	str	r0, [r4, #1212]
3594	clz	r5, r5
3595	ldr	r0, [r4, #1208]
3596	lsr	r5, r5, #5
3597	ubfx	r1, r1, #22, #6
3598	lsl	r1, r1, #2
3599	bl	rknand_dma_map_single
3600	mov	r3, #1
3601	ldr	r2, [r4, #1212]
3602	str	r3, [r4, #1220]
3603	mov	r1, #16
3604	ldr	r3, [r4, #1044]
3605	str	r0, [r4, #1216]
3606	str	r2, [r3, #52]
3607	str	r0, [r3, #56]
3608	ldr	r2, [r3, #48]
3609	str	r2, [sp, #8]
3610	ldr	r2, [sp, #8]
3611	bfi	r2, r1, #9, #5
3612	mov	r1, #2
3613	str	r2, [sp, #8]
3614	ldr	r2, [sp, #8]
3615	orr	r2, r2, #448
3616	str	r2, [sp, #8]
3617	ldr	r2, [sp, #8]
3618	bfi	r2, r1, #3, #3
3619	str	r2, [sp, #8]
3620	ldr	r2, [sp, #8]
3621	orr	r2, r2, #4
3622	str	r2, [sp, #8]
3623	ldr	r2, [sp, #8]
3624	bfi	r2, r5, #1, #1
3625	str	r2, [sp, #8]
3626	ldr	r2, [sp, #8]
3627	orr	r2, r2, #1
3628	str	r2, [sp, #8]
3629	movw	r2, #1228
3630	ldrh	r1, [r4, r2]
3631	ldr	r2, [sp, #8]
3632	bfi	r2, r1, #16, #11
3633	str	r2, [sp, #8]
3634	ldr	r2, [sp, #8]
3635	str	r2, [r3, #48]
3636	ldr	r2, [sp, #4]
3637	str	r2, [r3, #16]
3638	ldr	r2, [sp, #4]
3639	orr	r2, r2, #4
3640	str	r2, [sp, #4]
3641	ldr	r2, [sp, #4]
3642	str	r2, [r3, #16]
3643.L667:
3644	add	sp, sp, #16
3645	@ sp needed
3646	pop	{r4, r5, r6, r7, r8, pc}
3647.L668:
3648	ldr	r2, [r4, #1044]
3649	mov	lr, #16
3650	ubfx	ip, ip, #1, #6
3651	ldr	r2, [r2, #12]
3652	str	r2, [sp, #12]
3653	ldr	r2, [sp, #12]
3654	bfi	r2, lr, #8, #8
3655	str	r2, [sp, #12]
3656	ldr	r2, [sp, #12]
3657	bfc	r2, #3, #1
3658	str	r2, [sp, #12]
3659	ldr	r2, [sp, #12]
3660	bfc	r2, #5, #3
3661	str	r2, [sp, #12]
3662	mov	r2, #0
3663	str	r2, [sp, #4]
3664	cmp	r5, r2
3665	ldr	lr, [sp, #4]
3666	ldreq	r3, [r4, #1200]
3667	bfi	lr, r6, #1, #1
3668	mov	r6, #1
3669	str	lr, [sp, #4]
3670	ldr	lr, [sp, #4]
3671	orr	lr, lr, #8
3672	str	lr, [sp, #4]
3673	ldr	lr, [sp, #4]
3674	bfi	lr, r6, #5, #2
3675	str	lr, [sp, #4]
3676	ldr	lr, [sp, #4]
3677	orr	lr, lr, #536870912
3678	str	lr, [sp, #4]
3679	ldr	lr, [sp, #4]
3680	orr	lr, lr, #1024
3681	str	lr, [sp, #4]
3682	ldr	lr, [sp, #4]
3683	bfi	lr, r2, #4, #1
3684	str	lr, [sp, #4]
3685	ldr	lr, [sp, #4]
3686	bfi	lr, ip, #22, #6
3687	str	lr, [sp, #4]
3688	streq	r6, [r3]
3689	beq	.L675
3690	ldrb	ip, [r4, #1193]	@ zero_extendqisi2
3691	lsr	r1, r1, #1
3692	cmp	ip, #25
3693	mov	ip, r2
3694	movcc	r6, #64
3695	movcs	r6, #128
3696.L673:
3697	cmp	ip, r1
3698	add	r7, r3, ip, lsl #2
3699	add	lr, r6, r2
3700	blt	.L674
3701.L675:
3702	ldr	r1, [sp, #4]
3703	mov	r2, r5
3704	ldr	r3, [r4, #1200]
3705	str	r0, [r4, #1204]
3706	ubfx	r1, r1, #22, #6
3707	lsl	r1, r1, #10
3708	str	r3, [r4, #1208]
3709	bl	rknand_dma_map_single
3710	ldr	r1, [sp, #4]
3711	mov	r2, r5
3712	str	r0, [r4, #1212]
3713	clz	r5, r5
3714	ldr	r0, [r4, #1208]
3715	lsr	r5, r5, #5
3716	ubfx	r1, r1, #22, #6
3717	lsl	r1, r1, #7
3718	bl	rknand_dma_map_single
3719	mov	r3, #1
3720	ldr	r2, [r4, #1212]
3721	str	r3, [r4, #1220]
3722	mov	r1, #16
3723	ldr	r3, [r4, #1044]
3724	str	r0, [r4, #1216]
3725	str	r2, [r3, #20]
3726	mov	r2, #0
3727	str	r0, [r3, #24]
3728	str	r2, [sp, #8]
3729	ldr	r2, [sp, #8]
3730	bfi	r2, r1, #9, #5
3731	mov	r1, #2
3732	str	r2, [sp, #8]
3733	ldr	r2, [sp, #8]
3734	orr	r2, r2, #448
3735	str	r2, [sp, #8]
3736	ldr	r2, [sp, #8]
3737	bfi	r2, r1, #3, #3
3738	str	r2, [sp, #8]
3739	ldr	r2, [sp, #8]
3740	orr	r2, r2, #4
3741	str	r2, [sp, #8]
3742	ldr	r2, [sp, #8]
3743	bfi	r2, r5, #1, #1
3744	str	r2, [sp, #8]
3745	ldr	r2, [sp, #8]
3746	orr	r2, r2, #1
3747	str	r2, [sp, #8]
3748	ldr	r2, [sp, #8]
3749	str	r2, [r3, #16]
3750	ldr	r2, [sp, #12]
3751	str	r2, [r3, #12]
3752	ldr	r2, [sp, #4]
3753	str	r2, [r3, #8]
3754	ldr	r2, [sp, #4]
3755	orr	r2, r2, #4
3756	str	r2, [sp, #4]
3757	ldr	r2, [sp, #4]
3758	str	r2, [r3, #8]
3759	b	.L667
3760.L674:
3761	ldr	r8, [r7]	@ unaligned
3762	bic	r2, r2, #3
3763	ldr	r7, [r4, #1200]
3764	add	ip, ip, #1
3765	str	r8, [r7, r2]
3766	mov	r2, lr
3767	b	.L673
3768.L685:
3769	.align	2
3770.L684:
3771	.word	.LANCHOR0
3772	.fnend
3773	.size	nandc_xfer_start, .-nandc_xfer_start
3774	.align	2
3775	.global	nandc_set_seed
3776	.syntax unified
3777	.arm
3778	.fpu softvfp
3779	.type	nandc_set_seed, %function
3780nandc_set_seed:
3781	.fnstart
3782	@ args = 0, pretend = 0, frame = 0
3783	@ frame_needed = 0, uses_anonymous_args = 0
3784	@ link register save eliminated.
3785	ldr	r3, .L693
3786	and	r0, r0, #127
3787	lsl	r0, r0, #1
3788	ldrh	r2, [r3, r0]
3789	ldr	r3, .L693+4
3790	ldrb	r1, [r3, #1196]	@ zero_extendqisi2
3791	cmp	r1, #0
3792	ldrb	r1, [r3, #1028]	@ zero_extendqisi2
3793	ldr	r3, [r3, #1044]
3794	orrne	r2, r2, #-1073741824
3795	cmp	r1, #9
3796	streq	r2, [r3, #520]
3797	strne	r2, [r3, #336]
3798	bx	lr
3799.L694:
3800	.align	2
3801.L693:
3802	.word	.LANCHOR1+1108
3803	.word	.LANCHOR0
3804	.fnend
3805	.size	nandc_set_seed, .-nandc_set_seed
3806	.align	2
3807	.global	zftl_flash_de_init
3808	.syntax unified
3809	.arm
3810	.fpu softvfp
3811	.type	zftl_flash_de_init, %function
3812zftl_flash_de_init:
3813	.fnstart
3814	@ args = 0, pretend = 0, frame = 0
3815	@ frame_needed = 0, uses_anonymous_args = 0
3816	push	{r4, lr}
3817	.save {r4, lr}
3818	ldr	r4, .L715
3819	bl	nandc_wait_flash_ready
3820	ldrb	r3, [r4]	@ zero_extendqisi2
3821	cmp	r3, #0
3822	beq	.L696
3823	ldrb	r0, [r4, #1110]	@ zero_extendqisi2
3824	cmp	r0, #0
3825	bne	.L696
3826	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
3827	cmp	r3, #9
3828	beq	.L696
3829	bl	zftl_flash_exit_slc_mode
3830.L696:
3831	mov	r0, #0
3832	bl	hynix_reconfig_rr_para
3833	ldrb	r3, [r4, #1143]	@ zero_extendqisi2
3834	cmp	r3, #0
3835	beq	.L697
3836	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
3837	tst	r3, #1
3838	beq	.L697
3839	mov	r0, #1
3840	bl	flash_set_interface_mode
3841	mov	r0, #1
3842	bl	nandc_set_if_mode
3843	mov	r3, #0
3844	strb	r3, [r4, #1143]
3845.L697:
3846	ldrb	r3, [r4, #1196]	@ zero_extendqisi2
3847	cmp	r3, #0
3848	beq	.L698
3849	mov	r0, #0
3850	strb	r0, [r4, #1196]
3851	bl	nandc_set_seed
3852	mov	r3, #1
3853	strb	r3, [r4, #1196]
3854.L698:
3855	mov	r0, #0
3856	pop	{r4, pc}
3857.L716:
3858	.align	2
3859.L715:
3860	.word	.LANCHOR0
3861	.fnend
3862	.size	zftl_flash_de_init, .-zftl_flash_de_init
3863	.align	2
3864	.global	nandc_randomizer_enable
3865	.syntax unified
3866	.arm
3867	.fpu softvfp
3868	.type	nandc_randomizer_enable, %function
3869nandc_randomizer_enable:
3870	.fnstart
3871	@ args = 0, pretend = 0, frame = 0
3872	@ frame_needed = 0, uses_anonymous_args = 0
3873	@ link register save eliminated.
3874	ldr	r3, .L718
3875	strb	r0, [r3, #1196]
3876	bx	lr
3877.L719:
3878	.align	2
3879.L718:
3880	.word	.LANCHOR0
3881	.fnend
3882	.size	nandc_randomizer_enable, .-nandc_randomizer_enable
3883	.align	2
3884	.global	nandc_get_chip_if
3885	.syntax unified
3886	.arm
3887	.fpu softvfp
3888	.type	nandc_get_chip_if, %function
3889nandc_get_chip_if:
3890	.fnstart
3891	@ args = 0, pretend = 0, frame = 0
3892	@ frame_needed = 0, uses_anonymous_args = 0
3893	@ link register save eliminated.
3894	ldr	r3, .L721
3895	add	r0, r0, #8
3896	ldr	r3, [r3, #1044]
3897	add	r0, r3, r0, lsl #8
3898	bx	lr
3899.L722:
3900	.align	2
3901.L721:
3902	.word	.LANCHOR0
3903	.fnend
3904	.size	nandc_get_chip_if, .-nandc_get_chip_if
3905	.align	2
3906	.global	buf_reinit
3907	.syntax unified
3908	.arm
3909	.fpu softvfp
3910	.type	buf_reinit, %function
3911buf_reinit:
3912	.fnstart
3913	@ args = 0, pretend = 0, frame = 0
3914	@ frame_needed = 0, uses_anonymous_args = 0
3915	@ link register save eliminated.
3916	ldr	r2, .L726
3917	mov	r3, #0
3918	mov	r1, r3
3919.L724:
3920	uxtb	r0, r3
3921	add	r3, r3, #1
3922	cmp	r3, #32
3923	strb	r1, [r2, #2]
3924	add	ip, r0, #1
3925	strb	r0, [r2, #1]
3926	strb	ip, [r2]
3927	add	r2, r2, #48
3928	str	r1, [r2, #-40]
3929	bne	.L724
3930	ldr	r2, .L726+4
3931	mvn	r0, #0
3932	strb	r0, [r2, #2720]
3933	strb	r1, [r2, #2768]
3934	strb	r3, [r2, #2769]
3935	bx	lr
3936.L727:
3937	.align	2
3938.L726:
3939	.word	.LANCHOR0+1232
3940	.word	.LANCHOR0
3941	.fnend
3942	.size	buf_reinit, .-buf_reinit
3943	.align	2
3944	.global	buf_add_tail
3945	.syntax unified
3946	.arm
3947	.fpu softvfp
3948	.type	buf_add_tail, %function
3949buf_add_tail:
3950	.fnstart
3951	@ args = 0, pretend = 0, frame = 0
3952	@ frame_needed = 0, uses_anonymous_args = 0
3953	mvn	r3, #0
3954	push	{r4, r5, r6, lr}
3955	.save {r4, r5, r6, lr}
3956	strb	r3, [r1]
3957	mov	r4, r1
3958	ldrb	r3, [r0]	@ zero_extendqisi2
3959	cmp	r3, #255
3960	bne	.L729
3961	ldrb	r3, [r1, #1]	@ zero_extendqisi2
3962	mov	r5, r0
3963	cmp	r3, #255
3964	bne	.L730
3965	mov	r2, #74
3966	ldr	r1, .L736
3967	ldr	r0, .L736+4
3968	bl	printk
3969	bl	dump_stack
3970.L730:
3971	ldrb	r3, [r4, #1]	@ zero_extendqisi2
3972	strb	r3, [r5]
3973	pop	{r4, r5, r6, pc}
3974.L729:
3975	ldr	r2, .L736+8
3976	mov	r1, #48
3977	mov	r6, r2
3978.L734:
3979	mov	r5, r3
3980	mla	r3, r1, r3, r2
3981	ldrb	r3, [r3, #1232]	@ zero_extendqisi2
3982	cmp	r3, #255
3983	bne	.L734
3984	ldrb	r3, [r4, #1]	@ zero_extendqisi2
3985	cmp	r3, #255
3986	bne	.L732
3987	mov	r2, #81
3988	ldr	r1, .L736
3989	ldr	r0, .L736+4
3990	bl	printk
3991	bl	dump_stack
3992.L732:
3993	mov	r3, #48
3994	ldrb	r2, [r4, #1]	@ zero_extendqisi2
3995	mla	r3, r3, r5, r6
3996	strb	r2, [r3, #1232]
3997	pop	{r4, r5, r6, pc}
3998.L737:
3999	.align	2
4000.L736:
4001	.word	.LANCHOR1+1364
4002	.word	.LC0
4003	.word	.LANCHOR0
4004	.fnend
4005	.size	buf_add_tail, .-buf_add_tail
4006	.align	2
4007	.syntax unified
4008	.arm
4009	.fpu softvfp
4010	.type	queue_read_cmd, %function
4011queue_read_cmd:
4012	.fnstart
4013	@ args = 0, pretend = 0, frame = 0
4014	@ frame_needed = 0, uses_anonymous_args = 0
4015	push	{r4, lr}
4016	.save {r4, lr}
4017	mov	r4, r0
4018	ldr	r1, [r0, #24]
4019	mov	r0, #48
4020	bl	flash_start_page_read
4021	mov	r3, #1
4022	mov	r1, r4
4023	strb	r3, [r4, #42]
4024	mov	r3, #0
4025	strb	r3, [r4, #43]
4026	mvn	r3, #0
4027	strb	r3, [r4]
4028	ldr	r0, .L740
4029	pop	{r4, lr}
4030	b	buf_add_tail
4031.L741:
4032	.align	2
4033.L740:
4034	.word	.LANCHOR0+2770
4035	.fnend
4036	.size	queue_read_cmd, .-queue_read_cmd
4037	.align	2
4038	.global	zbuf_free
4039	.syntax unified
4040	.arm
4041	.fpu softvfp
4042	.type	zbuf_free, %function
4043zbuf_free:
4044	.fnstart
4045	@ args = 0, pretend = 0, frame = 0
4046	@ frame_needed = 0, uses_anonymous_args = 0
4047	push	{r4, lr}
4048	.save {r4, lr}
4049	ldrb	r3, [r0, #2]	@ zero_extendqisi2
4050	ldr	r4, .L752
4051	and	r3, r3, #8
4052	cmp	r3, #0
4053	strb	r3, [r0, #2]
4054	beq	.L743
4055	ldr	r3, [r0, #20]
4056	cmn	r3, #1
4057	beq	.L743
4058	mov	r1, r0
4059	add	r0, r4, #2768
4060	bl	buf_add_tail
4061.L744:
4062	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
4063	add	r3, r3, #1
4064	strb	r3, [r4, #2769]
4065	pop	{r4, pc}
4066.L743:
4067	ldrb	r3, [r4, #2768]	@ zero_extendqisi2
4068	strb	r3, [r0]
4069	ldrb	r3, [r0, #1]	@ zero_extendqisi2
4070	strb	r3, [r4, #2768]
4071	b	.L744
4072.L753:
4073	.align	2
4074.L752:
4075	.word	.LANCHOR0
4076	.fnend
4077	.size	zbuf_free, .-zbuf_free
4078	.align	2
4079	.global	buf_alloc
4080	.syntax unified
4081	.arm
4082	.fpu softvfp
4083	.type	buf_alloc, %function
4084buf_alloc:
4085	.fnstart
4086	@ args = 0, pretend = 0, frame = 0
4087	@ frame_needed = 0, uses_anonymous_args = 0
4088	push	{r4, r5, r6, lr}
4089	.save {r4, r5, r6, lr}
4090	mov	r5, r0
4091	ldr	r4, .L765
4092	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
4093	cmp	r3, #0
4094	beq	.L755
4095.L758:
4096	ldrb	ip, [r4, #2768]	@ zero_extendqisi2
4097	cmp	r5, #0
4098	ldr	r3, .L765+4
4099	add	r0, ip, ip, lsl #1
4100	mov	r2, r3
4101	add	r0, r3, r0, lsl #4
4102	beq	.L756
4103.L757:
4104	mov	r1, #48
4105	mul	r1, r1, ip
4106	add	r3, r4, r1
4107	add	r2, r2, r1
4108	ldrb	ip, [r3, #1232]	@ zero_extendqisi2
4109	mov	r1, #0
4110	strh	r1, [r2, #34]	@ movhi
4111	str	r1, [r3, #1240]
4112	strb	ip, [r4, #2768]
4113	ldrb	ip, [r4, #2769]	@ zero_extendqisi2
4114	strb	r1, [r3, #1272]
4115	strb	r1, [r3, #1273]
4116	sub	ip, ip, #1
4117	strb	ip, [r4, #2769]
4118	mov	ip, #1
4119	strb	ip, [r3, #1234]
4120	mvn	ip, #0
4121	strb	ip, [r3, #1232]
4122	str	ip, [r3, #1252]
4123	pop	{r4, r5, r6, pc}
4124.L755:
4125	mov	r2, #121
4126	ldr	r1, .L765+8
4127	ldr	r0, .L765+12
4128	bl	printk
4129	bl	dump_stack
4130	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
4131	cmp	r3, #0
4132	bne	.L758
4133.L760:
4134	mov	r0, #0
4135	pop	{r4, r5, r6, pc}
4136.L756:
4137	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
4138	cmp	r3, #1
4139	bne	.L757
4140	b	.L760
4141.L766:
4142	.align	2
4143.L765:
4144	.word	.LANCHOR0
4145	.word	.LANCHOR0+1232
4146	.word	.LANCHOR1+1377
4147	.word	.LC0
4148	.fnend
4149	.size	buf_alloc, .-buf_alloc
4150	.align	2
4151	.global	buf_remove_buf
4152	.syntax unified
4153	.arm
4154	.fpu softvfp
4155	.type	buf_remove_buf, %function
4156buf_remove_buf:
4157	.fnstart
4158	@ args = 0, pretend = 0, frame = 0
4159	@ frame_needed = 0, uses_anonymous_args = 0
4160	ldrb	ip, [r1, #1]	@ zero_extendqisi2
4161	ldrb	r3, [r0]	@ zero_extendqisi2
4162	cmp	ip, r3
4163	bne	.L768
4164	ldrb	r3, [r1]	@ zero_extendqisi2
4165	strb	r3, [r0]
4166	mov	r0, #1
4167	bx	lr
4168.L771:
4169	mov	r2, r3
4170	mla	r3, lr, r3, r0
4171	ldrb	r3, [r3, #1232]	@ zero_extendqisi2
4172	cmp	ip, r3
4173	bne	.L770
4174	mla	r2, lr, r2, r0
4175	ldrb	r3, [r1]	@ zero_extendqisi2
4176	mov	r0, #1
4177	strb	r3, [r2, #1232]
4178	mvn	r3, #0
4179	strb	r3, [r1]
4180	ldr	pc, [sp], #4
4181.L768:
4182	ldr	r0, .L776
4183	str	lr, [sp, #-4]!
4184	.save {lr}
4185	mov	lr, #48
4186.L770:
4187	cmp	r3, #255
4188	bne	.L771
4189	mov	r0, #0
4190	ldr	pc, [sp], #4
4191.L777:
4192	.align	2
4193.L776:
4194	.word	.LANCHOR0
4195	.fnend
4196	.size	buf_remove_buf, .-buf_remove_buf
4197	.align	2
4198	.global	buf_remove_free
4199	.syntax unified
4200	.arm
4201	.fpu softvfp
4202	.type	buf_remove_free, %function
4203buf_remove_free:
4204	.fnstart
4205	@ args = 0, pretend = 0, frame = 0
4206	@ frame_needed = 0, uses_anonymous_args = 0
4207	push	{r4, r5, r6, lr}
4208	.save {r4, r5, r6, lr}
4209	mov	r5, r0
4210	ldr	r4, .L784
4211	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
4212	cmp	r3, #0
4213	bne	.L779
4214	mov	r2, #172
4215	ldr	r1, .L784+4
4216	ldr	r0, .L784+8
4217	bl	printk
4218	bl	dump_stack
4219.L779:
4220	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
4221	cmp	r3, #0
4222	popeq	{r4, r5, r6, pc}
4223	mov	r1, r5
4224	ldr	r0, .L784+12
4225	bl	buf_remove_buf
4226	cmp	r0, #1
4227	ldrbeq	r3, [r4, #2769]	@ zero_extendqisi2
4228	subeq	r3, r3, #1
4229	strbeq	r3, [r4, #2769]
4230	ldrbeq	r3, [r5, #2]	@ zero_extendqisi2
4231	orreq	r3, r3, #1
4232	strbeq	r3, [r5, #2]
4233	pop	{r4, r5, r6, pc}
4234.L785:
4235	.align	2
4236.L784:
4237	.word	.LANCHOR0
4238	.word	.LANCHOR1+1387
4239	.word	.LC0
4240	.word	.LANCHOR0+2768
4241	.fnend
4242	.size	buf_remove_free, .-buf_remove_free
4243	.align	2
4244	.global	dump_buf_info
4245	.syntax unified
4246	.arm
4247	.fpu softvfp
4248	.type	dump_buf_info, %function
4249dump_buf_info:
4250	.fnstart
4251	@ args = 0, pretend = 0, frame = 0
4252	@ frame_needed = 0, uses_anonymous_args = 0
4253	push	{r4, r5, r6, lr}
4254	.save {r4, r5, r6, lr}
4255	.pad #24
4256	sub	sp, sp, #24
4257	ldr	r5, .L790
4258	ldr	r0, .L790+4
4259	ldrb	r1, [r5, #2770]	@ zero_extendqisi2
4260	add	r4, r5, #1232
4261	bl	printk
4262	ldrb	r1, [r5, #2771]	@ zero_extendqisi2
4263	add	r5, r5, #2768
4264	ldr	r0, .L790+8
4265	bl	printk
4266	ldrb	r1, [r5, #4]	@ zero_extendqisi2
4267	ldr	r0, .L790+12
4268	bl	printk
4269	ldr	r6, .L790+16
4270	ldrb	r1, [r5, #5]	@ zero_extendqisi2
4271	ldr	r0, .L790+20
4272	bl	printk
4273	ldrb	r1, [r5]	@ zero_extendqisi2
4274	ldr	r0, .L790+24
4275	bl	printk
4276	ldrb	r1, [r5, #1]	@ zero_extendqisi2
4277	ldr	r0, .L790+28
4278	bl	printk
4279.L787:
4280	ldr	r0, [r4, #24]
4281	add	r4, r4, #48
4282	ldrb	r3, [r4, #-46]	@ zero_extendqisi2
4283	ldrb	r2, [r4, #-48]	@ zero_extendqisi2
4284	ldrb	r1, [r4, #-47]	@ zero_extendqisi2
4285	str	r0, [sp, #16]
4286	ldr	r0, [r4, #-28]
4287	str	r0, [sp, #12]
4288	ldr	r0, [r4, #-12]
4289	str	r0, [sp, #8]
4290	ldrb	r0, [r4, #-6]	@ zero_extendqisi2
4291	str	r0, [sp, #4]
4292	ldrh	r0, [r4, #-14]
4293	str	r0, [sp]
4294	mov	r0, r6
4295	bl	printk
4296	cmp	r4, r5
4297	bne	.L787
4298	add	sp, sp, #24
4299	@ sp needed
4300	pop	{r4, r5, r6, pc}
4301.L791:
4302	.align	2
4303.L790:
4304	.word	.LANCHOR0
4305	.word	.LC44
4306	.word	.LC45
4307	.word	.LC46
4308	.word	.LC50
4309	.word	.LC47
4310	.word	.LC48
4311	.word	.LC49
4312	.fnend
4313	.size	dump_buf_info, .-dump_buf_info
4314	.align	2
4315	.global	flash_check_bad_block
4316	.syntax unified
4317	.arm
4318	.fpu softvfp
4319	.type	flash_check_bad_block, %function
4320flash_check_bad_block:
4321	.fnstart
4322	@ args = 0, pretend = 0, frame = 0
4323	@ frame_needed = 0, uses_anonymous_args = 0
4324	@ link register save eliminated.
4325	ldr	r2, .L793
4326	lsr	ip, r1, #5
4327	and	r1, r1, #31
4328	ldrb	r3, [r2, #17]	@ zero_extendqisi2
4329	ldrh	r2, [r2, #18]
4330	smulbb	r3, r3, r2
4331	ldr	r2, .L793+4
4332	uxth	r3, r3
4333	ldr	r2, [r2, #1040]
4334	add	r3, r3, #31
4335	asr	r3, r3, #5
4336	add	r2, r2, ip, lsl #2
4337	lsl	r3, r3, #2
4338	uxth	r3, r3
4339	mla	r0, r0, r3, r2
4340	ldr	r0, [r0, #912]
4341	lsr	r0, r0, r1
4342	and	r0, r0, #1
4343	bx	lr
4344.L794:
4345	.align	2
4346.L793:
4347	.word	.LANCHOR2
4348	.word	.LANCHOR0
4349	.fnend
4350	.size	flash_check_bad_block, .-flash_check_bad_block
4351	.align	2
4352	.global	flash_mask_bad_block
4353	.syntax unified
4354	.arm
4355	.fpu softvfp
4356	.type	flash_mask_bad_block, %function
4357flash_mask_bad_block:
4358	.fnstart
4359	@ args = 0, pretend = 0, frame = 0
4360	@ frame_needed = 0, uses_anonymous_args = 0
4361	ldr	r3, .L797
4362	mov	r2, r1
4363	push	{r4, r5, r6, lr}
4364	.save {r4, r5, r6, lr}
4365	mov	r5, r0
4366	mov	r6, r1
4367	mov	r1, r0
4368	ldrb	r4, [r3, #17]	@ zero_extendqisi2
4369	ldrh	r3, [r3, #18]
4370	ldr	r0, .L797+4
4371	smulbb	r4, r4, r3
4372	bl	printk
4373	uxth	r4, r4
4374	ldr	r3, .L797+8
4375	mov	r1, #1
4376	add	r0, r4, #31
4377	asr	r0, r0, #5
4378	ldr	r2, [r3, #1040]
4379	lsl	r0, r0, #2
4380	uxth	r0, r0
4381	mul	r0, r5, r0
4382	lsr	r5, r6, #5
4383	and	r6, r6, #31
4384	add	r0, r0, #912
4385	add	r0, r0, r5, lsl #2
4386	ldr	r3, [r2, r0]
4387	orr	r6, r3, r1, lsl r6
4388	str	r6, [r2, r0]
4389	pop	{r4, r5, r6, pc}
4390.L798:
4391	.align	2
4392.L797:
4393	.word	.LANCHOR2
4394	.word	.LC51
4395	.word	.LANCHOR0
4396	.fnend
4397	.size	flash_mask_bad_block, .-flash_mask_bad_block
4398	.align	2
4399	.global	str2hex
4400	.syntax unified
4401	.arm
4402	.fpu softvfp
4403	.type	str2hex, %function
4404str2hex:
4405	.fnstart
4406	@ args = 0, pretend = 0, frame = 0
4407	@ frame_needed = 0, uses_anonymous_args = 0
4408	@ link register save eliminated.
4409	ldrb	r3, [r0]	@ zero_extendqisi2
4410	cmp	r3, #48
4411	bne	.L800
4412	ldrb	r3, [r0, #1]	@ zero_extendqisi2
4413	and	r3, r3, #223
4414	cmp	r3, #88
4415	addeq	r0, r0, #2
4416.L800:
4417	ldrb	r3, [r0]	@ zero_extendqisi2
4418	and	r3, r3, #223
4419	cmp	r3, #88
4420	addeq	r0, r0, #1
4421	sub	r3, r0, #1
4422	mov	r0, #0
4423.L802:
4424	ldrb	r2, [r3, #1]!	@ zero_extendqisi2
4425	cmp	r2, #0
4426	bne	.L807
4427	bx	lr
4428.L807:
4429	sub	r1, r2, #48
4430	uxtb	ip, r1
4431	cmp	ip, #9
4432	addls	r0, r1, r0, lsl #4
4433	bls	.L802
4434	sub	r1, r2, #97
4435	cmp	r1, #5
4436	subls	r2, r2, #87
4437	bls	.L809
4438	sub	r1, r2, #65
4439	cmp	r1, #5
4440	bxhi	lr
4441	sub	r2, r2, #55
4442.L809:
4443	add	r0, r2, r0, lsl #4
4444	b	.L802
4445	.fnend
4446	.size	str2hex, .-str2hex
4447	.align	2
4448	.global	zftl_proc_debug_init
4449	.syntax unified
4450	.arm
4451	.fpu softvfp
4452	.type	zftl_proc_debug_init, %function
4453zftl_proc_debug_init:
4454	.fnstart
4455	@ args = 0, pretend = 0, frame = 0
4456	@ frame_needed = 0, uses_anonymous_args = 0
4457	push	{r0, r1, r2, lr}
4458	.save {lr}
4459	.pad #12
4460	mov	r2, #0
4461	str	r2, [sp]
4462	mov	r1, #292
4463	ldr	r3, .L812
4464	ldr	r0, .L812+4
4465	bl	proc_create_data
4466	add	sp, sp, #12
4467	@ sp needed
4468	ldr	pc, [sp], #4
4469.L813:
4470	.align	2
4471.L812:
4472	.word	.LANCHOR1+1404
4473	.word	.LC52
4474	.fnend
4475	.size	zftl_proc_debug_init, .-zftl_proc_debug_init
4476	.align	2
4477	.global	ftl_print_info_to_buf
4478	.syntax unified
4479	.arm
4480	.fpu softvfp
4481	.type	ftl_print_info_to_buf, %function
4482ftl_print_info_to_buf:
4483	.fnstart
4484	@ args = 0, pretend = 0, frame = 0
4485	@ frame_needed = 0, uses_anonymous_args = 0
4486	push	{r0, r1, r2, r3, r4, r5, r6, lr}
4487	.save {r4, r5, r6, lr}
4488	.pad #16
4489	mov	r6, r0
4490	ldr	r2, .L816
4491	ldr	r1, .L816+4
4492	bl	sprintf
4493	ldr	r1, .L816+8
4494	add	r4, r6, r0
4495	ldr	r5, .L816+12
4496	ldrb	r0, [r1, #10]	@ zero_extendqisi2
4497	ldrb	r3, [r1, #6]	@ zero_extendqisi2
4498	ldrb	r2, [r1, #5]	@ zero_extendqisi2
4499	str	r0, [sp, #12]
4500	ldrb	r0, [r1, #9]	@ zero_extendqisi2
4501	str	r0, [sp, #8]
4502	ldrb	r0, [r1, #8]	@ zero_extendqisi2
4503	str	r0, [sp, #4]
4504	mov	r0, r4
4505	ldrb	r1, [r1, #7]	@ zero_extendqisi2
4506	str	r1, [sp]
4507	ldr	r1, .L816+16
4508	bl	sprintf
4509	ldr	r2, [r5, #1032]
4510	add	r4, r4, r0
4511	ldr	r1, .L816+20
4512	mov	r0, r4
4513	lsr	r2, r2, #11
4514	bl	sprintf
4515	ldr	r2, [r5, #2776]
4516	add	r4, r4, r0
4517	ldr	r1, .L816+24
4518	mov	r0, r4
4519	lsr	r2, r2, #11
4520	bl	sprintf
4521	add	r4, r4, r0
4522	ldr	r1, .L816+28
4523	mov	r0, r4
4524	add	r4, r4, #10
4525	bl	strcpy
4526	ldr	r2, [r5, #2780]
4527	mov	r0, r4
4528	ldr	r1, .L816+32
4529	bl	sprintf
4530	add	r4, r4, r0
4531	ldr	r2, [r5, #1032]
4532	ldr	r1, .L816+36
4533	mov	r0, r4
4534	bl	sprintf
4535	ldr	r3, [r5, #1096]
4536	add	r4, r4, r0
4537	ldr	r1, .L816+40
4538	mov	r0, r4
4539	ldr	r2, [r3, #524]
4540	bl	sprintf
4541	ldr	r3, [r5, #1096]
4542	add	r4, r4, r0
4543	ldr	r1, .L816+44
4544	mov	r0, r4
4545	ldr	r2, [r3, #528]
4546	bl	sprintf
4547	add	r3, r5, #2784
4548	add	r4, r4, r0
4549	ldrh	r2, [r3]
4550	mov	r0, r4
4551	ldr	r1, .L816+48
4552	bl	sprintf
4553	movw	r3, #2786
4554	add	r4, r4, r0
4555	ldrh	r2, [r5, r3]
4556	mov	r0, r4
4557	ldr	r1, .L816+52
4558	bl	sprintf
4559	movw	r3, #2788
4560	add	r4, r4, r0
4561	ldrh	r2, [r5, r3]
4562	mov	r0, r4
4563	ldr	r1, .L816+56
4564	bl	sprintf
4565	movw	r3, #2790
4566	add	r4, r4, r0
4567	ldrh	r2, [r5, r3]
4568	mov	r0, r4
4569	ldr	r1, .L816+60
4570	bl	sprintf
4571	movw	r3, #2792
4572	add	r4, r4, r0
4573	ldrh	r2, [r5, r3]
4574	mov	r0, r4
4575	ldr	r1, .L816+64
4576	bl	sprintf
4577	movw	r3, #2794
4578	add	r4, r4, r0
4579	ldrh	r2, [r5, r3]
4580	mov	r0, r4
4581	ldr	r1, .L816+68
4582	bl	sprintf
4583	ldrb	r1, [r5, #2797]	@ zero_extendqisi2
4584	add	r4, r4, r0
4585	ldrb	r3, [r5, #2796]	@ zero_extendqisi2
4586	mov	r0, r4
4587	ldrb	r2, [r5, #2769]	@ zero_extendqisi2
4588	str	r1, [sp]
4589	ldr	r1, .L816+72
4590	bl	sprintf
4591	ldr	r2, [r5, #2800]
4592	add	r4, r4, r0
4593	ldr	r1, .L816+76
4594	mov	r0, r4
4595	ldrh	r3, [r2, #146]
4596	ldrh	r2, [r2, #148]
4597	bl	sprintf
4598	ldr	r3, [r5, #2800]
4599	add	r4, r4, r0
4600	ldr	r1, .L816+80
4601	mov	r0, r4
4602	ldr	r2, [r3, #16]
4603	ldr	r3, [r3, #20]
4604	add	r2, r3, r2, lsr #11
4605	bl	sprintf
4606	ldr	r3, [r5, #2800]
4607	add	r4, r4, r0
4608	ldr	r1, .L816+84
4609	mov	r0, r4
4610	ldr	r2, [r3, #24]
4611	ldr	r3, [r3, #28]
4612	add	r2, r3, r2, lsr #11
4613	bl	sprintf
4614	ldr	r3, [r5, #2800]
4615	add	r4, r4, r0
4616	ldr	r1, .L816+88
4617	mov	r0, r4
4618	ldr	r2, [r3, #64]
4619	bl	sprintf
4620	ldr	r3, [r5, #2800]
4621	add	r4, r4, r0
4622	ldr	r1, .L816+92
4623	mov	r0, r4
4624	ldr	r2, [r3, #68]
4625	bl	sprintf
4626	ldr	r3, [r5, #1096]
4627	add	r4, r4, r0
4628	ldr	r1, .L816+96
4629	mov	r0, r4
4630	ldr	r2, [r3, #12]
4631	umull	r2, r3, r2, r1
4632	ldr	r1, .L816+100
4633	lsr	r2, r3, #3
4634	bl	sprintf
4635	ldr	r3, [r5, #2800]
4636	add	r4, r4, r0
4637	ldrb	r2, [r5]	@ zero_extendqisi2
4638	mov	r0, r4
4639	ldrh	r1, [r3, #150]
4640	str	r1, [sp]
4641	ldr	r1, .L816+104
4642	ldr	r3, [r3, #156]
4643	bl	sprintf
4644	ldr	r3, [r5, #1096]
4645	add	r4, r4, r0
4646	ldr	r1, .L816+108
4647	mov	r0, r4
4648	ldr	r2, [r3, #556]
4649	bl	sprintf
4650	ldr	r3, [r5, #1096]
4651	add	r4, r4, r0
4652	ldr	r1, .L816+112
4653	mov	r0, r4
4654	ldr	r2, [r3, #552]
4655	bl	sprintf
4656	ldr	r3, [r5, #2800]
4657	add	r4, r4, r0
4658	ldr	r1, .L816+116
4659	mov	r0, r4
4660	ldr	r2, [r3, #52]
4661	bl	sprintf
4662	ldr	r3, [r5, #2800]
4663	add	r4, r4, r0
4664	ldr	r1, .L816+120
4665	mov	r0, r4
4666	ldr	r2, [r3, #60]
4667	bl	sprintf
4668	ldr	r3, [r5, #2800]
4669	add	r4, r4, r0
4670	ldr	r1, .L816+124
4671	mov	r0, r4
4672	ldr	r2, [r3, #76]
4673	bl	sprintf
4674	ldr	r3, [r5, #2800]
4675	add	r4, r4, r0
4676	ldr	r1, .L816+128
4677	mov	r0, r4
4678	ldr	r2, [r3, #8]
4679	bl	sprintf
4680	ldr	r1, [r5, #1096]
4681	add	r4, r4, r0
4682	mov	r0, r4
4683	ldrh	r3, [r1, #22]
4684	ldrh	r2, [r1, #16]
4685	ldrb	r1, [r1, #25]	@ zero_extendqisi2
4686	str	r1, [sp]
4687	ldr	r1, .L816+132
4688	bl	sprintf
4689	ldr	r1, [r5, #1096]
4690	add	r4, r4, r0
4691	mov	r0, r4
4692	ldrh	r3, [r1, #54]
4693	ldrh	r2, [r1, #48]
4694	ldrb	r1, [r1, #57]	@ zero_extendqisi2
4695	str	r1, [sp]
4696	ldr	r1, .L816+136
4697	bl	sprintf
4698	ldr	r1, [r5, #1096]
4699	add	r4, r4, r0
4700	mov	r0, r4
4701	ldrh	r3, [r1, #86]
4702	ldrh	r2, [r1, #80]
4703	ldrb	r1, [r1, #89]	@ zero_extendqisi2
4704	str	r1, [sp]
4705	ldr	r1, .L816+140
4706	bl	sprintf
4707	ldr	r3, [r5, #2800]
4708	add	r4, r4, r0
4709	mov	r0, r4
4710	ldrh	r1, [r3, #96]
4711	ldrh	r2, [r3, #74]
4712	str	r1, [sp, #8]
4713	ldrh	r1, [r3, #92]
4714	str	r1, [sp, #4]
4715	ldrh	r1, [r3, #88]
4716	str	r1, [sp]
4717	ldr	r1, .L816+144
4718	ldr	r3, [r3, #84]
4719	bl	sprintf
4720	ldr	r3, [r5, #2800]
4721	add	r4, r4, r0
4722	mov	r0, r4
4723	ldrh	r1, [r3, #98]
4724	ldrh	r2, [r3, #72]
4725	str	r1, [sp, #8]
4726	ldrh	r1, [r3, #94]
4727	str	r1, [sp, #4]
4728	ldrh	r1, [r3, #90]
4729	str	r1, [sp]
4730	ldr	r1, .L816+148
4731	ldr	r3, [r3, #80]
4732	bl	sprintf
4733	movw	r3, #2804
4734	add	r4, r4, r0
4735	ldrh	r2, [r5, r3]
4736	mov	r0, r4
4737	ldr	r1, .L816+152
4738	bl	sprintf
4739	ldr	r1, [r5, #2812]
4740	add	r4, r4, r0
4741	movw	r3, #2806
4742	movw	r2, #2808
4743	ldrh	r3, [r5, r3]
4744	mov	r0, r4
4745	str	r1, [sp, #8]
4746	add	r1, r5, #2816
4747	ldrh	r1, [r1]
4748	ldrh	r2, [r5, r2]
4749	str	r1, [sp, #4]
4750	movw	r1, #2818
4751	ldrh	r1, [r5, r1]
4752	str	r1, [sp]
4753	ldr	r1, .L816+156
4754	bl	sprintf
4755	ldr	r1, [r5, #1096]
4756	add	r4, r4, r0
4757	movw	r0, #590
4758	movw	r3, #586
4759	ldrh	r0, [r1, r0]
4760	add	r2, r1, #584
4761	ldrh	r3, [r1, r3]
4762	add	r1, r1, #588
4763	ldrh	r2, [r2]
4764	str	r0, [sp, #4]
4765	mov	r0, r4
4766	ldrh	r1, [r1]
4767	str	r1, [sp]
4768	ldr	r1, .L816+160
4769	bl	sprintf
4770	ldr	r2, [r5, #1096]
4771	add	r4, r4, r0
4772	ldr	r1, .L816+164
4773	mov	r0, r4
4774	ldr	r3, [r2, #548]
4775	str	r3, [sp, #8]
4776	ldr	r3, [r5, #2800]
4777	ldr	r3, [r3, #44]
4778	str	r3, [sp, #4]
4779	ldr	r3, [r2, #544]
4780	str	r3, [sp]
4781	ldr	r3, [r2, #540]
4782	ldr	r2, [r2, #536]
4783	bl	sprintf
4784	add	r0, r4, r0
4785	sub	r0, r0, r6
4786	add	sp, sp, #16
4787	@ sp needed
4788	pop	{r4, r5, r6, pc}
4789.L817:
4790	.align	2
4791.L816:
4792	.word	.LC1
4793	.word	.LC2
4794	.word	.LANCHOR2
4795	.word	.LANCHOR0
4796	.word	.LC53
4797	.word	.LC54
4798	.word	.LC55
4799	.word	.LC56
4800	.word	.LC57
4801	.word	.LC58
4802	.word	.LC59
4803	.word	.LC60
4804	.word	.LC61
4805	.word	.LC62
4806	.word	.LC63
4807	.word	.LC64
4808	.word	.LC65
4809	.word	.LC66
4810	.word	.LC67
4811	.word	.LC68
4812	.word	.LC69
4813	.word	.LC70
4814	.word	.LC71
4815	.word	.LC72
4816	.word	-858993459
4817	.word	.LC73
4818	.word	.LC74
4819	.word	.LC75
4820	.word	.LC76
4821	.word	.LC77
4822	.word	.LC78
4823	.word	.LC79
4824	.word	.LC80
4825	.word	.LC81
4826	.word	.LC82
4827	.word	.LC83
4828	.word	.LC84
4829	.word	.LC85
4830	.word	.LC86
4831	.word	.LC87
4832	.word	.LC88
4833	.word	.LC89
4834	.fnend
4835	.size	ftl_print_info_to_buf, .-ftl_print_info_to_buf
4836	.align	2
4837	.global	zftl_proc_ftl_read
4838	.syntax unified
4839	.arm
4840	.fpu softvfp
4841	.type	zftl_proc_ftl_read, %function
4842zftl_proc_ftl_read:
4843	.fnstart
4844	@ args = 0, pretend = 0, frame = 0
4845	@ frame_needed = 0, uses_anonymous_args = 0
4846	@ link register save eliminated.
4847	b	ftl_print_info_to_buf
4848	.fnend
4849	.size	zftl_proc_ftl_read, .-zftl_proc_ftl_read
4850	.align	2
4851	.global	ftl_gc_write_buf
4852	.syntax unified
4853	.arm
4854	.fpu softvfp
4855	.type	ftl_gc_write_buf, %function
4856ftl_gc_write_buf:
4857	.fnstart
4858	@ args = 0, pretend = 0, frame = 0
4859	@ frame_needed = 0, uses_anonymous_args = 0
4860	push	{r4, lr}
4861	.save {r4, lr}
4862	mov	r1, r0
4863	ldrb	r3, [r0, #2]	@ zero_extendqisi2
4864	ldr	r4, .L821
4865	orr	r3, r3, #2
4866	strb	r3, [r0, #2]
4867	add	r0, r4, #2816
4868	add	r0, r0, #4
4869	bl	buf_add_tail
4870	ldrb	r0, [r4, #2796]	@ zero_extendqisi2
4871	add	r0, r0, #1
4872	uxtb	r0, r0
4873	strb	r0, [r4, #2796]
4874	pop	{r4, pc}
4875.L822:
4876	.align	2
4877.L821:
4878	.word	.LANCHOR0
4879	.fnend
4880	.size	ftl_gc_write_buf, .-ftl_gc_write_buf
4881	.align	2
4882	.global	gc_hook
4883	.syntax unified
4884	.arm
4885	.fpu softvfp
4886	.type	gc_hook, %function
4887gc_hook:
4888	.fnstart
4889	@ args = 0, pretend = 0, frame = 0
4890	@ frame_needed = 0, uses_anonymous_args = 0
4891	@ link register save eliminated.
4892	bx	lr
4893	.fnend
4894	.size	gc_hook, .-gc_hook
4895	.align	2
4896	.global	vpn_check
4897	.syntax unified
4898	.arm
4899	.fpu softvfp
4900	.type	vpn_check, %function
4901vpn_check:
4902	.fnstart
4903	@ args = 0, pretend = 0, frame = 0
4904	@ frame_needed = 0, uses_anonymous_args = 0
4905	@ link register save eliminated.
4906	bx	lr
4907	.fnend
4908	.size	vpn_check, .-vpn_check
4909	.align	2
4910	.global	ftl_scan_all_data
4911	.syntax unified
4912	.arm
4913	.fpu softvfp
4914	.type	ftl_scan_all_data, %function
4915ftl_scan_all_data:
4916	.fnstart
4917	@ args = 0, pretend = 0, frame = 0
4918	@ frame_needed = 0, uses_anonymous_args = 0
4919	@ link register save eliminated.
4920	bx	lr
4921	.fnend
4922	.size	ftl_scan_all_data, .-ftl_scan_all_data
4923	.align	2
4924	.global	gc_add_sblk
4925	.syntax unified
4926	.arm
4927	.fpu softvfp
4928	.type	gc_add_sblk, %function
4929gc_add_sblk:
4930	.fnstart
4931	@ args = 0, pretend = 0, frame = 0
4932	@ frame_needed = 0, uses_anonymous_args = 0
4933	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
4934	.save {r4, r5, r6, r7, r8, r9, r10, lr}
4935	.pad #16
4936	mov	r5, r0
4937	ldr	r8, .L862
4938	mov	r4, r1
4939	mov	r9, r2
4940	ldr	r7, .L862+4
4941	ldr	r3, [r8]
4942	tst	r3, #256
4943	beq	.L827
4944	movw	r3, #2818
4945	ldr	r2, [r7, #1092]
4946	ldrh	r3, [r7, r3]
4947	str	r3, [sp, #12]
4948	ldr	r3, .L862+8
4949	ldrh	r3, [r3, #52]
4950	str	r3, [sp, #8]
4951	lsl	r3, r0, #1
4952	ldrh	r3, [r2, r3]
4953	mov	r2, r1
4954	mov	r1, r0
4955	str	r3, [sp, #4]
4956	ldr	r3, [r7, #1084]
4957	add	r3, r3, r0, lsl #2
4958	ldr	r0, .L862+12
4959	ldrb	r3, [r3, #2]	@ zero_extendqisi2
4960	lsr	r3, r3, #5
4961	str	r3, [sp]
4962	mov	r3, r9
4963	bl	printk
4964.L827:
4965	movw	r3, #1080
4966	ldrh	r3, [r7, r3]
4967	cmp	r3, r5
4968	bhi	.L828
4969	movw	r2, #543
4970	ldr	r1, .L862+16
4971	ldr	r0, .L862+20
4972	bl	printk
4973	bl	dump_stack
4974.L828:
4975	movw	r3, #1080
4976	ldrh	r3, [r7, r3]
4977	cmp	r3, r5
4978	bhi	.L829
4979	ldr	r0, [r8]
4980	ands	r0, r0, #1024
4981	beq	.L826
4982	mov	r3, r9
4983	mov	r2, r4
4984	mov	r1, r5
4985	ldr	r0, .L862+24
4986	bl	printk
4987.L849:
4988	mov	r0, #0
4989	b	.L826
4990.L829:
4991	ldr	r2, [r7, #1092]
4992	lsl	r3, r5, #1
4993	ldrh	r3, [r2, r3]
4994	ldr	r2, [r7, #1084]
4995	add	r2, r2, r5, lsl #2
4996	ldrb	r2, [r2, #2]	@ zero_extendqisi2
4997	ands	r6, r2, #224
4998	bne	.L831
4999	cmp	r3, #0
5000	beq	.L849
5001	movw	r2, #553
5002	ldr	r1, .L862+16
5003	ldr	r0, .L862+20
5004	bl	printk
5005	bl	dump_stack
5006	b	.L849
5007.L831:
5008	movw	r1, #2824
5009	ldrh	r1, [r7, r1]
5010	cmp	r1, r5
5011	beq	.L849
5012	ldr	r1, [r7, #1096]
5013	ldrh	r0, [r1, #48]
5014	cmp	r0, r5
5015	beq	.L849
5016	ldrh	r0, [r1, #16]
5017	cmp	r0, r5
5018	beq	.L849
5019	ldrh	r0, [r1, #80]
5020	cmp	r0, r5
5021	beq	.L849
5022	ldr	r0, .L862+8
5023	mov	ip, #0
5024	ldrh	r10, [r0, #52]!
5025.L832:
5026	cmp	ip, r10
5027	bcc	.L833
5028	cmp	r4, #0
5029	bne	.L837
5030	ldr	ip, .L862+28
5031	mov	r0, r4
5032	ldrh	lr, [ip, #-4]
5033	cmp	r5, lr
5034	beq	.L826
5035	sub	ip, ip, #2
5036.L836:
5037	ldrh	r6, [r0, ip]
5038	cmp	r5, r6
5039	bne	.L835
5040	ldr	r1, [r8]
5041	ands	r0, r1, #256
5042	beq	.L826
5043	stm	sp, {r5, lr}
5044	lsr	r2, r2, #5
5045	mov	r1, r5
5046	ldr	r0, .L862+32
5047	bl	printk
5048	b	.L849
5049.L833:
5050	ldrh	lr, [r0, #2]!
5051	cmp	lr, r5
5052	beq	.L849
5053	add	ip, ip, #1
5054	b	.L832
5055.L835:
5056	add	r0, r0, #2
5057	cmp	r0, #16
5058	bne	.L836
5059	add	r1, r1, r9, lsl #7
5060	add	r6, r1, #136
5061.L838:
5062	ldr	r1, [r8]
5063	tst	r1, #256
5064	beq	.L839
5065	movw	r1, #2818
5066	stm	sp, {r3, r10}
5067	ldrh	r1, [r7, r1]
5068	lsr	r3, r2, #5
5069	ldr	r0, .L862+36
5070	mov	r2, r4
5071	str	r1, [sp, #8]
5072	mov	r1, r5
5073	bl	printk
5074.L839:
5075	mov	r3, r6
5076	add	r1, r6, #128
5077	movw	r0, #65535
5078.L842:
5079	mov	r2, r3
5080	add	r3, r3, #2
5081	ldrh	ip, [r2]
5082	cmp	ip, r0
5083	bne	.L840
5084	cmp	r4, #0
5085	strh	r5, [r2]	@ movhi
5086	ldreq	r3, [r7, #1096]
5087	ldrne	r2, [r7, #1096]
5088	addeq	r9, r3, r9, lsl #1
5089	ldrhne	r3, [r2, #124]
5090	ldrheq	r3, [r9, #120]
5091	addne	r3, r3, #1
5092	strhne	r3, [r2, #124]	@ movhi
5093	addeq	r3, r3, #1
5094	strheq	r3, [r9, #120]	@ movhi
5095.L861:
5096	mov	r0, #1
5097.L826:
5098	add	sp, sp, #16
5099	@ sp needed
5100	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
5101.L837:
5102	add	r6, r1, #392
5103	b	.L838
5104.L840:
5105	cmp	r3, r1
5106	bne	.L842
5107	b	.L861
5108.L863:
5109	.align	2
5110.L862:
5111	.word	.LANCHOR2
5112	.word	.LANCHOR0
5113	.word	.LANCHOR0+2824
5114	.word	.LC90
5115	.word	.LANCHOR1+1448
5116	.word	.LC0
5117	.word	.LC91
5118	.word	.LANCHOR3-3152
5119	.word	.LC92
5120	.word	.LC93
5121	.fnend
5122	.size	gc_add_sblk, .-gc_add_sblk
5123	.align	2
5124	.global	gc_mark_bad_ppa
5125	.syntax unified
5126	.arm
5127	.fpu softvfp
5128	.type	gc_mark_bad_ppa, %function
5129gc_mark_bad_ppa:
5130	.fnstart
5131	@ args = 0, pretend = 0, frame = 0
5132	@ frame_needed = 0, uses_anonymous_args = 0
5133	ldr	r3, .L869
5134	push	{r4, r5, r6, r7, r8, r9, r10, lr}
5135	.save {r4, r5, r6, r7, r8, r9, r10, lr}
5136	mov	r8, r0
5137	ldr	r5, .L869+4
5138	mov	r7, #1
5139	sub	r2, r3, #3136
5140	ldrh	r2, [r2, #-2]
5141	ldrb	r1, [r3, #-3136]	@ zero_extendqisi2
5142	add	r5, r5, #4096
5143	lsr	r6, r0, r2
5144	ldrb	r0, [r5, #-2943]	@ zero_extendqisi2
5145	uxth	r4, r6
5146	rsb	r0, r0, #24
5147	sub	r0, r0, r2
5148	lsl	r0, r7, r0
5149	sub	r0, r0, #1
5150	and	r0, r0, r6
5151	bl	__aeabi_uidiv
5152	uxth	r9, r0
5153	mov	r3, r8
5154	mov	r2, r4
5155	ldr	r1, [r5, #916]
5156	ldr	r0, .L869+8
5157	bl	printk
5158	mov	r1, r7
5159	mov	r2, #0
5160	mov	r0, r9
5161	bl	gc_add_sblk
5162	ldr	r3, [r5, #916]
5163	mov	r1, #0
5164	ldr	r0, .L869+12
5165	movw	ip, #1096
5166.L865:
5167	uxth	r2, r1
5168	cmp	r3, r2
5169	bhi	.L867
5170	cmp	r3, #5
5171	bhi	.L866
5172	add	r2, r3, #1
5173	add	r3, r3, #1088
5174	str	r2, [r5, #916]
5175	add	r3, r3, #8
5176	ldr	r2, .L869+12
5177	lsl	r3, r3, #1
5178	strh	r4, [r2, r3]	@ movhi
5179	b	.L866
5180.L867:
5181	add	r2, r2, ip
5182	add	r1, r1, #1
5183	lsl	r2, r2, #1
5184	ldrh	r2, [r0, r2]
5185	cmp	r4, r2
5186	bne	.L865
5187.L866:
5188	mov	r0, #0
5189	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
5190.L870:
5191	.align	2
5192.L869:
5193	.word	.LANCHOR3
5194	.word	.LANCHOR0
5195	.word	.LC94
5196	.word	.LANCHOR0+2824
5197	.fnend
5198	.size	gc_mark_bad_ppa, .-gc_mark_bad_ppa
5199	.align	2
5200	.global	gc_get_src_ppa_from_index
5201	.syntax unified
5202	.arm
5203	.fpu softvfp
5204	.type	gc_get_src_ppa_from_index, %function
5205gc_get_src_ppa_from_index:
5206	.fnstart
5207	@ args = 0, pretend = 0, frame = 0
5208	@ frame_needed = 0, uses_anonymous_args = 0
5209	@ link register save eliminated.
5210	ldr	r3, .L872
5211	ldr	r3, [r3, #-3132]
5212	ldr	r0, [r3, r0, lsl #2]
5213	bx	lr
5214.L873:
5215	.align	2
5216.L872:
5217	.word	.LANCHOR3
5218	.fnend
5219	.size	gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index
5220	.align	2
5221	.global	gc_write_completed
5222	.syntax unified
5223	.arm
5224	.fpu softvfp
5225	.type	gc_write_completed, %function
5226gc_write_completed:
5227	.fnstart
5228	@ args = 0, pretend = 0, frame = 8
5229	@ frame_needed = 0, uses_anonymous_args = 0
5230	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
5231	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5232	.pad #12
5233.L875:
5234	ldr	r7, .L902
5235	ldrb	fp, [r7, #2772]	@ zero_extendqisi2
5236	mov	r6, r7
5237	cmp	fp, #255
5238	bne	.L888
5239	add	sp, sp, #12
5240	@ sp needed
5241	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
5242.L888:
5243	mov	r2, #48
5244	add	r10, r6, #1232
5245	mul	r2, r2, fp
5246	str	r10, [sp, #4]
5247	add	r0, r6, r2
5248	add	r2, r10, r2
5249	ldrb	r1, [r0, #1232]	@ zero_extendqisi2
5250	ldrh	r8, [r2, #32]
5251	strb	r1, [r7, #2772]
5252	ldr	r1, [r0, #1268]
5253	cmp	r1, #0
5254	beq	.L876
5255	ldr	r3, .L902+4
5256	mov	r2, #1
5257	strh	r2, [r3]	@ movhi
5258	ldr	r2, [r0, #1256]
5259	add	r0, r6, #4096
5260	str	r2, [r0, #912]
5261	ldr	r0, .L902+8
5262	bl	printk
5263	mov	r2, #956
5264	ldr	r1, .L902+12
5265	ldr	r0, .L902+16
5266	bl	printk
5267	bl	dump_stack
5268.L876:
5269	ldr	r5, .L902+20
5270	ldrb	r2, [r5, #-3128]	@ zero_extendqisi2
5271	mov	r10, r5
5272	cmp	r2, #3
5273	bne	.L877
5274	ldrb	r2, [r7, #1158]	@ zero_extendqisi2
5275	cmp	r2, #0
5276	bne	.L877
5277	ldr	r2, [r7, #1096]
5278	ldrb	r4, [r2, #89]	@ zero_extendqisi2
5279	ldrb	r2, [r5, #-3127]	@ zero_extendqisi2
5280	cmp	r2, r4
5281	movhi	r4, #1
5282	bhi	.L878
5283	cmp	r4, #2
5284	movcs	r4, #2
5285.L878:
5286	add	r4, r4, r4, lsl #1
5287.L879:
5288	mov	r2, #48
5289	ldr	r1, [r5, #-3124]
5290	mla	r2, r2, fp, r6
5291	ldrb	r1, [r1, r8]	@ zero_extendqisi2
5292	mov	r9, r8
5293	ldrb	r2, [r2, #1233]	@ zero_extendqisi2
5294	cmp	r1, r2
5295	beq	.L880
5296	mov	r2, #976
5297	ldr	r1, .L902+12
5298	ldr	r0, .L902+16
5299	bl	printk
5300	bl	dump_stack
5301.L880:
5302	mov	r2, #48
5303	mla	r3, r2, fp, r6
5304	ldrb	r3, [r3, #1277]	@ zero_extendqisi2
5305	cmp	r3, #3
5306	beq	.L881
5307	ldrb	r3, [r5, #-3128]	@ zero_extendqisi2
5308	cmp	r3, #3
5309	bne	.L881
5310	ldrb	r3, [r5, #-3120]	@ zero_extendqisi2
5311	cmp	r3, #0
5312	bne	.L881
5313	ldrb	r3, [r7, #1158]	@ zero_extendqisi2
5314	cmp	r3, #0
5315	bne	.L881
5316	ldrb	r3, [r7, #1159]	@ zero_extendqisi2
5317	cmp	r3, #0
5318	bne	.L881
5319	ldrb	r3, [r5, #-3126]	@ zero_extendqisi2
5320	cmp	r3, #0
5321	beq	.L882
5322	ldrb	r3, [r5, #-3125]	@ zero_extendqisi2
5323	cmp	r3, #0
5324	bne	.L881
5325.L882:
5326	ldr	r2, [r5, #-3124]
5327	mov	r3, #0
5328	mov	r1, #48
5329	movw	r0, #1277
5330	mov	ip, r3
5331	add	r8, r2, r8
5332.L883:
5333	uxth	r2, r3
5334	cmp	r4, r2
5335	bls	.L875
5336	ldrb	r2, [r8, r3]	@ zero_extendqisi2
5337	add	r3, r3, #1
5338	mla	r2, r1, r2, r6
5339	strb	ip, [r2, r0]
5340	b	.L883
5341.L877:
5342	ldrb	r2, [r5, #-3126]	@ zero_extendqisi2
5343	cmp	r2, #0
5344	moveq	r4, #1
5345	beq	.L879
5346	ldrb	r2, [r5, #-3125]	@ zero_extendqisi2
5347	cmp	r2, #0
5348	moveq	r4, #1
5349	movne	r4, #2
5350	b	.L879
5351.L881:
5352	ldr	r3, .L902+24
5353	mvn	r5, #0
5354	mov	r7, #48
5355	movw	fp, #1277
5356	strh	r8, [r3]	@ movhi
5357.L884:
5358	sub	r2, r9, r8
5359	uxth	r2, r2
5360	cmp	r4, r2
5361	bls	.L875
5362	ldr	r2, [r10, #-3124]
5363	mov	r1, #0
5364	ldr	r3, [sp, #4]
5365	ldrb	r0, [r2, r9]	@ zero_extendqisi2
5366	strb	r5, [r2, r9]
5367	add	r9, r9, #1
5368	mla	r2, r7, r0, r6
5369	add	r0, r0, r0, lsl #1
5370	strb	r1, [r2, fp]
5371	add	r0, r3, r0, lsl #4
5372	bl	zbuf_free
5373	ldrb	r2, [r6, #2831]	@ zero_extendqisi2
5374	sub	r2, r2, #1
5375	strb	r2, [r6, #2831]
5376	b	.L884
5377.L903:
5378	.align	2
5379.L902:
5380	.word	.LANCHOR0
5381	.word	.LANCHOR0+5006
5382	.word	.LC95
5383	.word	.LANCHOR1+1460
5384	.word	.LC0
5385	.word	.LANCHOR3
5386	.word	.LANCHOR0+4928
5387	.fnend
5388	.size	gc_write_completed, .-gc_write_completed
5389	.align	2
5390	.global	gc_get_src_blk
5391	.syntax unified
5392	.arm
5393	.fpu softvfp
5394	.type	gc_get_src_blk, %function
5395gc_get_src_blk:
5396	.fnstart
5397	@ args = 0, pretend = 0, frame = 0
5398	@ frame_needed = 0, uses_anonymous_args = 0
5399	ldr	r1, .L916
5400	ldr	r3, [r1, #1096]
5401	ldrh	r2, [r3, #124]
5402	cmp	r2, #0
5403	addne	r3, r3, #392
5404	movne	r2, #1
5405	bne	.L906
5406	ldr	r0, .L916+4
5407	ldrb	r0, [r0, #-3119]	@ zero_extendqisi2
5408	add	ip, r3, r0, lsl #1
5409	ldrh	ip, [ip, #120]
5410	cmp	ip, #0
5411	beq	.L911
5412	add	r3, r3, r0, lsl #7
5413	add	r3, r3, #136
5414.L906:
5415	push	{r4, lr}
5416	.save {r4, lr}
5417	add	ip, r3, #128
5418	movw	lr, #65535
5419.L910:
5420	mov	r4, r3
5421	ldrh	r0, [r3], #2
5422	cmp	r0, lr
5423	beq	.L908
5424	cmp	r2, #0
5425	mvn	r3, #0
5426	strh	r3, [r4]	@ movhi
5427	ldreq	r3, .L916+4
5428	ldrne	r2, [r1, #1096]
5429	ldrbeq	r2, [r3, #-3119]	@ zero_extendqisi2
5430	ldreq	r3, [r1, #1096]
5431	ldrhne	r3, [r2, #124]
5432	addeq	r3, r3, r2, lsl #1
5433	subne	r3, r3, #1
5434	strhne	r3, [r2, #124]	@ movhi
5435	ldrheq	r2, [r3, #120]
5436	subeq	r2, r2, #1
5437	strheq	r2, [r3, #120]	@ movhi
5438	pop	{r4, pc}
5439.L908:
5440	cmp	r3, ip
5441	bne	.L910
5442	pop	{r4, pc}
5443.L911:
5444	movw	r0, #65535
5445	bx	lr
5446.L917:
5447	.align	2
5448.L916:
5449	.word	.LANCHOR0
5450	.word	.LANCHOR3
5451	.fnend
5452	.size	gc_get_src_blk, .-gc_get_src_blk
5453	.align	2
5454	.global	gc_free_temp_buf
5455	.syntax unified
5456	.arm
5457	.fpu softvfp
5458	.type	gc_free_temp_buf, %function
5459gc_free_temp_buf:
5460	.fnstart
5461	@ args = 0, pretend = 0, frame = 0
5462	@ frame_needed = 0, uses_anonymous_args = 0
5463	push	{r4, r5, r6, lr}
5464	.save {r4, r5, r6, lr}
5465	ldr	r5, .L933
5466	ldrb	r0, [r5, #2831]	@ zero_extendqisi2
5467	cmp	r0, #0
5468	popeq	{r4, r5, r6, pc}
5469	ldrb	r3, [r5, #2769]	@ zero_extendqisi2
5470	cmp	r3, #1
5471	bhi	.L925
5472	ldr	r2, .L933+4
5473	add	r3, r5, #4928
5474	ldrh	r4, [r3]
5475	movw	ip, #1277
5476	sub	r3, r2, #3104
5477	mov	r6, r2
5478	ldrh	r0, [r3, #-14]
5479	add	r1, r4, #24
5480	ldrb	r3, [r2, #-3127]	@ zero_extendqisi2
5481	mul	r3, r3, r0
5482	cmp	r3, r1
5483	movcs	r3, r1
5484	ldr	r1, [r2, #-3124]
5485	mov	r2, #48
5486.L920:
5487	cmp	r4, r3
5488	bcc	.L923
5489.L925:
5490	mov	r0, #0
5491	pop	{r4, r5, r6, pc}
5492.L923:
5493	ldrb	r0, [r1, r4]	@ zero_extendqisi2
5494	cmp	r0, #255
5495	beq	.L921
5496	mla	lr, r2, r0, r5
5497	ldrb	lr, [lr, ip]	@ zero_extendqisi2
5498	cmp	lr, #0
5499	bne	.L921
5500	ldr	r3, .L933+8
5501	add	r0, r0, r0, lsl #1
5502	add	r0, r3, r0, lsl #4
5503	bl	zbuf_free
5504	ldr	r3, .L933+12
5505	ldr	r3, [r3]
5506	tst	r3, #256
5507	beq	.L922
5508	ldr	r3, [r6, #-3124]
5509	mov	r1, r4
5510	ldr	r0, .L933+16
5511	ldrb	r2, [r3, r4]	@ zero_extendqisi2
5512	bl	printk
5513.L922:
5514	ldr	r3, [r6, #-3124]
5515	mvn	r2, #0
5516	mov	r0, #1
5517	strb	r2, [r3, r4]
5518	ldrb	r3, [r5, #2831]	@ zero_extendqisi2
5519	add	r3, r3, r2
5520	strb	r3, [r5, #2831]
5521	pop	{r4, r5, r6, pc}
5522.L921:
5523	add	r4, r4, #1
5524	b	.L920
5525.L934:
5526	.align	2
5527.L933:
5528	.word	.LANCHOR0
5529	.word	.LANCHOR3
5530	.word	.LANCHOR0+1232
5531	.word	.LANCHOR2
5532	.word	.LC96
5533	.fnend
5534	.size	gc_free_temp_buf, .-gc_free_temp_buf
5535	.align	2
5536	.global	get_ink_scaned_blk
5537	.syntax unified
5538	.arm
5539	.fpu softvfp
5540	.type	get_ink_scaned_blk, %function
5541get_ink_scaned_blk:
5542	.fnstart
5543	@ args = 0, pretend = 0, frame = 0
5544	@ frame_needed = 0, uses_anonymous_args = 0
5545	@ link register save eliminated.
5546	ldr	r1, .L938
5547	movw	ip, #2108
5548	ldrh	r3, [r1, ip]
5549	cmp	r3, #0
5550	addne	r2, r3, #1040
5551	subne	r3, r3, #1
5552	addne	r2, r2, #11
5553	strhne	r3, [r1, ip]	@ movhi
5554	addne	r2, r1, r2, lsl #1
5555	ldrhne	r0, [r2, #6]
5556	movweq	r0, #65535
5557	bx	lr
5558.L939:
5559	.align	2
5560.L938:
5561	.word	.LANCHOR0+2824
5562	.fnend
5563	.size	get_ink_scaned_blk, .-get_ink_scaned_blk
5564	.align	2
5565	.global	print_gc_debug_info
5566	.syntax unified
5567	.arm
5568	.fpu softvfp
5569	.type	print_gc_debug_info, %function
5570print_gc_debug_info:
5571	.fnstart
5572	@ args = 0, pretend = 0, frame = 0
5573	@ frame_needed = 0, uses_anonymous_args = 0
5574	push	{r0, r1, r2, r3, r4, lr}
5575	.save {lr}
5576	.pad #20
5577	movw	ip, #2804
5578	ldr	r0, .L942
5579	movw	r1, #2824
5580	movw	r3, #2102
5581	ldrh	ip, [r0, ip]
5582	add	r2, r0, r1
5583	ldrh	r3, [r2, r3]
5584	ldrh	r1, [r0, r1]
5585	ldrh	r2, [r2, #2]
5586	str	ip, [sp, #8]
5587	ldrb	ip, [r0, #2831]	@ zero_extendqisi2
5588	str	ip, [sp, #4]
5589	ldrb	r0, [r0, #2769]	@ zero_extendqisi2
5590	str	r0, [sp]
5591	ldr	r0, .L942+4
5592	bl	printk
5593	add	sp, sp, #20
5594	@ sp needed
5595	ldr	pc, [sp], #4
5596.L943:
5597	.align	2
5598.L942:
5599	.word	.LANCHOR0
5600	.word	.LC97
5601	.fnend
5602	.size	print_gc_debug_info, .-print_gc_debug_info
5603	.align	2
5604	.global	_list_pop_index_node
5605	.syntax unified
5606	.arm
5607	.fpu softvfp
5608	.type	_list_pop_index_node, %function
5609_list_pop_index_node:
5610	.fnstart
5611	@ args = 0, pretend = 0, frame = 0
5612	@ frame_needed = 0, uses_anonymous_args = 0
5613	push	{r4, r5, r6, lr}
5614	.save {r4, r5, r6, lr}
5615	ldr	r5, [r0]
5616	cmp	r5, #0
5617	beq	.L950
5618	ldr	r3, .L952
5619	movw	ip, #65535
5620	mov	lr, #6
5621	ldr	r4, [r3, #1036]
5622.L946:
5623	cmp	r1, #0
5624	bne	.L947
5625.L949:
5626	sub	r4, r5, r4
5627	asr	r3, r4, #1
5628	ldr	r4, .L952+4
5629	mul	r4, r4, r3
5630	uxth	r1, r4
5631	bl	_list_remove_node
5632	mvn	r3, #0
5633	uxth	r0, r4
5634	strh	r3, [r5]	@ movhi
5635	strh	r3, [r5, #2]	@ movhi
5636	pop	{r4, r5, r6, pc}
5637.L947:
5638	ldrh	r3, [r5]
5639	cmp	r3, ip
5640	beq	.L949
5641	sub	r1, r1, #1
5642	mla	r5, lr, r3, r4
5643	uxth	r1, r1
5644	b	.L946
5645.L950:
5646	movw	r0, #65535
5647	pop	{r4, r5, r6, pc}
5648.L953:
5649	.align	2
5650.L952:
5651	.word	.LANCHOR0
5652	.word	-1431655765
5653	.fnend
5654	.size	_list_pop_index_node, .-_list_pop_index_node
5655	.align	2
5656	.global	_list_get_gc_head_node
5657	.syntax unified
5658	.arm
5659	.fpu softvfp
5660	.type	_list_get_gc_head_node, %function
5661_list_get_gc_head_node:
5662	.fnstart
5663	@ args = 0, pretend = 0, frame = 0
5664	@ frame_needed = 0, uses_anonymous_args = 0
5665	@ link register save eliminated.
5666	ldr	r0, [r0]
5667	cmp	r0, #0
5668	beq	.L959
5669	ldr	r3, .L961
5670	movw	r2, #65535
5671	mov	ip, #6
5672	ldr	r3, [r3, #1036]
5673.L956:
5674	cmp	r1, #0
5675	beq	.L957
5676	ldrh	r0, [r0]
5677	cmp	r0, r2
5678	bne	.L958
5679	bx	lr
5680.L958:
5681	sub	r1, r1, #1
5682	mla	r0, ip, r0, r3
5683	uxth	r1, r1
5684	b	.L956
5685.L959:
5686	movw	r0, #65535
5687	bx	lr
5688.L957:
5689	sub	r0, r0, r3
5690	asr	r3, r0, #1
5691	ldr	r0, .L961+4
5692	mul	r0, r0, r3
5693	uxth	r0, r0
5694	bx	lr
5695.L962:
5696	.align	2
5697.L961:
5698	.word	.LANCHOR0
5699	.word	-1431655765
5700	.fnend
5701	.size	_list_get_gc_head_node, .-_list_get_gc_head_node
5702	.align	2
5703	.syntax unified
5704	.arm
5705	.fpu softvfp
5706	.type	zftl_get_gc_node.part.10, %function
5707zftl_get_gc_node.part.10:
5708	.fnstart
5709	@ args = 0, pretend = 0, frame = 0
5710	@ frame_needed = 0, uses_anonymous_args = 0
5711	@ link register save eliminated.
5712	mov	r1, r0
5713	ldr	r0, .L964
5714	b	_list_get_gc_head_node
5715.L965:
5716	.align	2
5717.L964:
5718	.word	.LANCHOR3-3116
5719	.fnend
5720	.size	zftl_get_gc_node.part.10, .-zftl_get_gc_node.part.10
5721	.align	2
5722	.global	gc_search_src_blk
5723	.syntax unified
5724	.arm
5725	.fpu softvfp
5726	.type	gc_search_src_blk, %function
5727gc_search_src_blk:
5728	.fnstart
5729	@ args = 0, pretend = 0, frame = 32
5730	@ frame_needed = 0, uses_anonymous_args = 0
5731	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
5732	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5733	.pad #44
5734	sub	sp, sp, #44
5735	ldr	r5, .L1086
5736	str	r1, [sp, #24]
5737	ldr	r1, [r5, #1096]
5738	str	r0, [sp, #16]
5739	str	r2, [sp, #12]
5740	add	r3, r1, r0, lsl #1
5741	ldrh	r3, [r3, #120]
5742	cmp	r3, #0
5743	str	r3, [sp, #20]
5744	movne	r0, r3
5745	bne	.L966
5746	ldr	r3, .L1086+4
5747	ldrh	r2, [r3, #52]
5748	cmp	r2, #1
5749	ldrls	r0, .L1086+8
5750	ldrhls	ip, [sp, #20]
5751	strhls	ip, [r0, #-8]	@ movhi
5752	strhls	ip, [r0, #-6]	@ movhi
5753	strhls	ip, [r0, #-4]	@ movhi
5754	ldr	r0, [sp, #16]
5755	cmp	r0, #0
5756	bne	.L970
5757	ldr	r10, .L1086+12
5758	mov	r7, r0
5759	ldr	fp, .L1086+16
5760	mov	r4, r0
5761.L971:
5762	ldr	r3, [sp, #12]
5763	add	r8, r3, #1
5764	uxth	r3, r7
5765	cmp	r3, r8
5766	bge	.L976
5767	ldr	r3, .L1086+20
5768	mov	r0, r3
5769	str	r3, [sp, #20]
5770	ldrh	r9, [r0], #6
5771	mov	r1, r9
5772	bl	_list_get_gc_head_node
5773	add	r2, r9, #1
5774	ldr	r3, [sp, #20]
5775	movw	r1, #65535
5776	uxth	r2, r2
5777	cmp	r0, r1
5778	mov	r6, r0
5779	strh	r2, [r3]	@ movhi
5780	beq	.L972
5781	ldr	r3, [r10]
5782	lsl	r9, r0, #1
5783	tst	r3, #256
5784	beq	.L973
5785	ldr	r3, [r5, #1092]
5786	mov	r1, r0
5787	mov	r0, fp
5788	ldrh	r3, [r3, r9]
5789	bl	printk
5790.L973:
5791	ldr	r3, [r5, #1092]
5792	ldrh	r2, [r3, r9]
5793	ldr	r3, .L1086+24
5794	ldrh	r3, [r3]
5795	cmp	r2, r3
5796	bcs	.L974
5797	mov	r2, #0
5798	mov	r0, r6
5799	mov	r1, r2
5800	bl	gc_add_sblk
5801	cmp	r0, #0
5802	beq	.L975
5803	add	r4, r4, #1
5804	ldr	r3, [sp, #12]
5805	uxth	r4, r4
5806	cmp	r4, r3
5807	bcc	.L975
5808.L976:
5809	ldr	r3, [sp, #24]
5810	tst	r3, #2
5811	beq	.L978
5812	movw	r3, #2794
5813	ldrh	r3, [r5, r3]
5814	cmp	r3, #32
5815	bls	.L978
5816	ldr	r9, .L1086+28
5817	mov	fp, #0
5818	ldr	r6, .L1086+32
5819	sub	r10, r9, #12
5820.L979:
5821	uxth	r3, fp
5822	cmp	r8, r3
5823	ble	.L983
5824	ldr	r7, .L1086+36
5825	mov	r0, r10
5826	ldrh	r3, [r7]
5827	mov	r1, r3
5828	str	r3, [sp, #20]
5829	bl	_list_get_gc_head_node
5830	ldr	r3, [sp, #20]
5831	add	r3, r3, #1
5832	strh	r3, [r7]	@ movhi
5833	movw	r3, #65535
5834	cmp	r0, r3
5835	beq	.L980
5836	ldr	r3, [r5, #1092]
5837	lsl	r2, r0, #1
5838	ldrh	r2, [r3, r2]
5839	ldrh	r3, [r6]
5840	cmp	r2, r3
5841	bcs	.L980
5842	mov	r2, #0
5843	mov	r1, r2
5844	bl	gc_add_sblk
5845	cmp	r0, #0
5846	beq	.L982
5847	add	r4, r4, #1
5848	ldr	r3, [sp, #12]
5849	uxth	r4, r4
5850	cmp	r4, r3
5851	bcc	.L982
5852.L983:
5853	ldr	r3, [sp, #12]
5854	cmp	r4, r3
5855	bcs	.L985
5856	ldr	r0, .L1086+40
5857	ldrh	r1, [r9, #-8]
5858	ldrh	r2, [r6]
5859	sub	r3, r0, #3104
5860	ldrh	ip, [r3, #-14]
5861	ldrb	r3, [r0, #-3127]	@ zero_extendqisi2
5862	mul	r3, r3, ip
5863	sub	r3, r3, r1, lsr #2
5864	cmp	r2, r3
5865	addlt	r2, r2, r1, lsr #3
5866	strhlt	r2, [r6]	@ movhi
5867.L978:
5868	ldr	r3, [sp, #24]
5869	tst	r3, #1
5870	beq	.L986
5871	ldrh	r6, [sp, #12]
5872	cmp	r4, r6
5873	bcs	.L986
5874	mov	r9, #0
5875	movw	r8, #65535
5876.L991:
5877	ldr	r10, .L1086+44
5878	ldrh	r7, [r10]
5879	mov	r0, r7
5880	add	r7, r7, #1
5881	bl	zftl_get_gc_node.part.10
5882	cmp	r0, r8
5883	strh	r7, [r10]	@ movhi
5884	beq	.L987
5885	mov	r2, #0
5886	mov	r1, r2
5887	bl	gc_add_sblk
5888	cmp	r0, #0
5889	beq	.L988
5890	add	r4, r4, #1
5891	uxth	r4, r4
5892	cmp	r6, r4
5893	bhi	.L988
5894.L989:
5895	ldr	r3, .L1086+28
5896	movw	r2, #2818
5897	ldrh	r1, [r3, #-8]
5898.L1085:
5899	ldrh	r3, [r5, r2]
5900	cmp	r3, r1, lsr #1
5901	bls	.L986
5902	sub	r3, r3, r1, lsr #3
5903.L1082:
5904	strh	r3, [r5, r2]	@ movhi
5905	b	.L986
5906.L974:
5907	ldr	r3, .L1086+8
5908	mov	r2, #0
5909	strh	r2, [r3, #-6]	@ movhi
5910	b	.L976
5911.L972:
5912	mov	r2, #0
5913	strh	r2, [r3]	@ movhi
5914	b	.L976
5915.L975:
5916	add	r7, r7, #1
5917	b	.L971
5918.L980:
5919	mov	r3, #0
5920	strh	r3, [r7]	@ movhi
5921	b	.L983
5922.L982:
5923	add	fp, fp, #1
5924	b	.L979
5925.L985:
5926	ldrh	r3, [r6]
5927	ldrh	r2, [r9, #-8]
5928	cmp	r3, r2
5929	subhi	r3, r3, r2, lsr #3
5930	strhhi	r3, [r6]	@ movhi
5931	b	.L978
5932.L987:
5933	mov	r3, #0
5934	strh	r3, [r10]	@ movhi
5935.L990:
5936	cmp	r4, r6
5937	bcs	.L989
5938	ldr	r1, .L1086+28
5939	movw	r2, #2818
5940	ldrh	r3, [r5, r2]
5941	ldrh	r1, [r1, #-8]
5942	cmp	r3, r1
5943	addcc	r3, r3, r1, lsr #3
5944	bcc	.L1082
5945.L986:
5946	ldr	r3, .L1086+12
5947	ldr	r3, [r3]
5948	tst	r3, #256
5949	beq	.L1021
5950	ldr	r3, [sp, #12]
5951	ldr	r2, [sp, #24]
5952	ldr	r1, [sp, #16]
5953	str	r3, [sp]
5954	mov	r3, r4
5955	ldr	r0, .L1086+48
5956	bl	printk
5957.L1021:
5958	mov	r0, r4
5959.L966:
5960	add	sp, sp, #44
5961	@ sp needed
5962	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
5963.L988:
5964	add	r9, r9, #1
5965	uxth	r3, r9
5966	cmp	r6, r3
5967	bhi	.L991
5968	b	.L990
5969.L970:
5970	ldr	r4, .L1086+40
5971	ldrb	r7, [r4, #-3127]	@ zero_extendqisi2
5972	sub	r4, r4, #3104
5973	ldrh	r0, [r4, #-14]
5974	smulbb	r7, r7, r0
5975	ldr	r0, [sp, #12]
5976	cmp	r0, #1
5977	uxth	r7, r7
5978	bne	.L992
5979	cmp	r2, #0
5980	beq	.L992
5981	ldrh	r0, [r1, #80]
5982	movw	r1, #65535
5983	cmp	r0, r1
5984	movwne	r1, #2102
5985	ldrhne	r1, [r3, r1]
5986	subne	r7, r7, r1
5987	mov	r1, #8
5988	uxthne	r7, r7
5989	str	r1, [sp, #12]
5990.L992:
5991	mov	r6, #0
5992	movw	r1, #2180
5993	strh	r6, [r3, r1]	@ movhi
5994	ldr	r3, [sp, #24]
5995	ldr	r1, .L1086+28
5996	ands	r3, r3, #1
5997	strh	r6, [r1, #-6]	@ movhi
5998	mov	r8, r1
5999	str	r3, [sp, #28]
6000	ldreq	r6, [sp, #28]
6001	moveq	r4, r6
6002	beq	.L993
6003	movw	r3, #2790
6004	ldrh	r1, [r1, #-4]
6005	ldrh	r3, [r5, r3]
6006	cmp	r3, r1, lsr #2
6007	bhi	.L994
6008	movw	r1, #2792
6009	ldrh	r1, [r5, r1]
6010	cmp	r1, r3
6011	movcs	r4, r6
6012	bcs	.L995
6013.L994:
6014	cmp	r2, #1
6015	bls	.L996
6016.L998:
6017	mov	r4, #0
6018.L997:
6019	ldr	r9, .L1086+52
6020	mov	r6, #0
6021	mov	r8, #64
6022	movw	fp, #65535
6023.L1001:
6024	ldr	r2, .L1086+44
6025	ldrh	r3, [r2]
6026	str	r2, [sp, #36]
6027	mov	r0, r3
6028	str	r3, [sp, #32]
6029	bl	zftl_get_gc_node.part.10
6030	cmp	r0, fp
6031	mov	r10, r0
6032	ldr	r2, [sp, #36]
6033	beq	.L999
6034	ldr	r3, [sp, #32]
6035	mov	r1, #0
6036	add	r3, r3, #1
6037	strh	r3, [r2]	@ movhi
6038	ldr	r2, [sp, #16]
6039	bl	gc_add_sblk
6040	cmp	r0, #0
6041	beq	.L1000
6042	ldr	r3, [r5, #1092]
6043	lsl	r10, r10, #1
6044	add	r4, r4, #1
6045	ldr	r2, [sp, #12]
6046	uxth	r4, r4
6047	ldrh	r3, [r3, r10]
6048	add	r6, r6, r3
6049	uxth	r6, r6
6050	cmp	r7, r6
6051	movcs	r3, #0
6052	movcc	r3, #1
6053	cmp	r4, r2
6054	orrcs	r3, r3, #1
6055	cmp	r3, #0
6056	bne	.L995
6057	ldr	r2, .L1086+56
6058	ldrh	r3, [r9]
6059	ldrh	r2, [r2]
6060	cmp	r3, r2, lsl #1
6061	ble	.L1000
6062.L995:
6063	movw	r3, #2792
6064	ldrh	r2, [r5, r3]
6065	ldr	r3, .L1086+28
6066	ldrh	r3, [r3, #-4]
6067	cmp	r2, r3, lsr #2
6068	bhi	.L1022
6069	movw	r3, #2790
6070	ldrh	r3, [r5, r3]
6071	add	r3, r3, #8
6072	cmp	r2, r3
6073	ble	.L993
6074.L1022:
6075	cmp	r7, r6
6076	bls	.L993
6077	ldrh	r3, [sp, #16]
6078	mov	r8, #64
6079	str	r3, [sp, #32]
6080.L1004:
6081	ldr	fp, .L1086+20
6082	mov	r0, fp
6083	ldrh	r9, [r0], #6
6084	mov	r1, r9
6085	bl	_list_get_gc_head_node
6086	movw	r3, #65535
6087	mov	r10, r0
6088	cmp	r0, r3
6089	beq	.L1002
6090	add	r9, r9, #1
6091	ldr	r2, [sp, #32]
6092	mov	r1, #0
6093	strh	r9, [fp]	@ movhi
6094	bl	gc_add_sblk
6095	cmp	r0, #0
6096	beq	.L1003
6097	ldr	r3, [r5, #1092]
6098	lsl	r10, r10, #1
6099	add	r4, r4, #1
6100	ldr	r2, [sp, #12]
6101	uxth	r4, r4
6102	ldrh	r3, [r3, r10]
6103	add	r6, r6, r3
6104	uxth	r6, r6
6105	cmp	r7, r6
6106	movcs	r3, #0
6107	movcc	r3, #1
6108	cmp	r4, r2
6109	orrcs	r3, r3, #1
6110	cmp	r3, #0
6111	beq	.L1003
6112.L993:
6113	ldr	r3, [sp, #24]
6114	tst	r3, #2
6115	beq	.L1005
6116	movw	r3, #2794
6117	ldrh	r3, [r5, r3]
6118	cmp	r3, #32
6119	movls	r3, #0
6120	movhi	r3, #1
6121	cmp	r6, r7
6122	movcs	r3, #0
6123	cmp	r3, #0
6124	beq	.L1005
6125	ldr	r10, .L1086+40
6126	mov	r5, #64
6127	sub	fp, r10, #3088
6128	sub	r3, fp, #12
6129	str	r3, [sp, #32]
6130.L1011:
6131	ldr	r8, .L1086+8
6132	ldr	r0, [sp, #32]
6133	ldrh	r9, [r8, #-4]
6134	sub	r2, r8, #4
6135	str	r2, [sp, #36]
6136	mov	r1, r9
6137	bl	_list_get_gc_head_node
6138	movw	r3, #65535
6139	ldr	r2, [sp, #36]
6140	cmp	r0, r3
6141	beq	.L1006
6142	ldr	r3, [sp, #12]
6143	add	r9, r9, #1
6144	strh	r9, [r8, #-4]	@ movhi
6145	cmp	r3, #1
6146	bne	.L1007
6147	ldrh	r2, [r8, #-14]
6148	ldrb	r3, [r10, #-3127]	@ zero_extendqisi2
6149	smulbb	r3, r3, r2
6150	ldrh	r2, [fp, #-8]
6151	sub	r3, r3, r2, lsr #3
6152	ldr	r2, .L1086+60
6153	strh	r3, [r2]	@ movhi
6154.L1007:
6155	ldr	r9, .L1086
6156	lsl	r8, r0, #1
6157	ldr	r3, [r9, #1092]
6158	ldrh	r2, [r3, r8]
6159	ldr	r3, .L1086+60
6160	ldrh	r3, [r3]
6161	cmp	r2, r3
6162	bcs	.L1008
6163	ldr	r2, [sp, #16]
6164	mov	r1, #0
6165	bl	gc_add_sblk
6166	cmp	r0, #0
6167	beq	.L1009
6168	ldr	r3, [sp, #20]
6169	add	r4, r4, #1
6170	ldr	r2, [sp, #12]
6171	uxth	r4, r4
6172	add	r0, r3, #1
6173	uxth	r3, r0
6174	str	r3, [sp, #20]
6175	ldr	r3, [r9, #1092]
6176	ldrh	r3, [r3, r8]
6177	add	r6, r6, r3
6178	uxth	r6, r6
6179	cmp	r7, r6
6180	movcs	r3, #0
6181	movcc	r3, #1
6182	cmp	r4, r2
6183	orrcs	r3, r3, #1
6184	cmp	r3, #0
6185	beq	.L1009
6186.L1010:
6187	ldr	r3, [sp, #12]
6188	ldr	r0, .L1086+28
6189	ldr	r2, .L1086
6190	cmp	r4, r3
6191	add	lr, r0, #3088
6192	bcc	.L1012
6193	ldr	r3, [sp, #20]
6194	cmp	r3, #0
6195	bne	.L1013
6196	movw	r3, #2794
6197	ldrh	r1, [r2, r3]
6198	ldrh	r3, [r0, #-2]
6199	cmp	r1, r3
6200	bls	.L1013
6201.L1012:
6202	ldr	r3, .L1086+8
6203	movw	ip, #2808
6204	ldrh	r0, [r0, #-8]
6205	ldrh	r1, [r2, ip]
6206	ldrh	r5, [r3, #-14]
6207	ldrb	r3, [lr, #-3127]	@ zero_extendqisi2
6208	lsr	r0, r0, #3
6209	mul	r3, r3, r5
6210	sub	r3, r3, r0
6211	cmp	r1, r3
6212	addlt	r1, r1, r0
6213	strhlt	r1, [r2, ip]	@ movhi
6214.L1005:
6215	ldr	r3, [sp, #28]
6216	cmp	r3, #0
6217	beq	.L986
6218	ldrh	r9, [sp, #12]
6219	cmp	r6, r7
6220	cmpcc	r4, r9
6221	bcs	.L986
6222	ldr	r5, .L1086
6223	mov	r8, #64
6224.L1019:
6225	ldr	fp, .L1086+20
6226	mov	r0, fp
6227	ldrh	r10, [r0], #6
6228	mov	r1, r10
6229	bl	_list_get_gc_head_node
6230	movw	r3, #65535
6231	cmp	r0, r3
6232	beq	.L1015
6233	add	r10, r10, #1
6234	ldr	r2, [r5, #1092]
6235	ldr	r3, .L1086+64
6236	strh	r10, [fp]	@ movhi
6237	lsl	r10, r0, #1
6238	ldrh	r1, [r2, r10]
6239	ldrh	r2, [r3]
6240	cmp	r1, r2
6241	bcs	.L1016
6242	ldrh	r2, [fp, #18]
6243	ldrh	r3, [r3, #-14]
6244	cmp	r3, r2, lsr #1
6245	bls	.L1017
6246.L1016:
6247	ldr	r2, [sp, #16]
6248	mov	r1, #0
6249	bl	gc_add_sblk
6250	cmp	r0, #0
6251	beq	.L1018
6252	ldr	r3, [r5, #1092]
6253	add	r4, r4, #1
6254	uxth	r4, r4
6255	ldrh	r3, [r3, r10]
6256	add	r6, r6, r3
6257	uxth	r6, r6
6258	cmp	r7, r6
6259	cmpcs	r9, r4
6260	bhi	.L1018
6261.L1017:
6262	ldr	r3, .L1086+28
6263	cmp	r4, r9
6264	movw	r2, #2806
6265	ldrhcc	r1, [r3, #-8]
6266	bcc	.L1085
6267	ldrh	r0, [r3, #-8]
6268	ldr	r3, .L1086+40
6269	ldrh	r1, [r5, r2]
6270	ldrb	r3, [r3, #-3127]	@ zero_extendqisi2
6271	mul	r3, r0, r3
6272	sub	r3, r3, #32
6273	cmp	r1, r3
6274	addlt	r1, r1, r0, lsr #3
6275	strhlt	r1, [r5, r2]	@ movhi
6276	b	.L986
6277.L996:
6278	lsr	r3, r3, #2
6279	mov	r0, #0
6280	strh	r3, [r4, #-8]	@ movhi
6281	bl	zftl_get_gc_node.part.10
6282	movw	r2, #65535
6283	cmp	r0, r2
6284	beq	.L998
6285	ldr	r1, [r5, #1092]
6286	lsl	r3, r0, #1
6287	ldrh	r2, [r8, #-8]
6288	ldrh	r3, [r1, r3]
6289	cmp	r3, r2, lsr #2
6290	bcs	.L998
6291	mov	r3, #1
6292	ldr	r2, [sp, #16]
6293	mov	r1, #0
6294	strh	r3, [r4, #-8]	@ movhi
6295	bl	gc_add_sblk
6296	adds	r4, r0, #0
6297	movne	r4, #1
6298	b	.L997
6299.L999:
6300	mov	r3, #0
6301	strh	r3, [r2]	@ movhi
6302	b	.L995
6303.L1000:
6304	sub	r8, r8, #1
6305	uxth	r8, r8
6306	cmp	r8, #0
6307	bne	.L1001
6308	b	.L995
6309.L1002:
6310	cmp	r9, #64
6311	movhi	r3, #0
6312	strhhi	r3, [fp]	@ movhi
6313	b	.L993
6314.L1003:
6315	sub	r8, r8, #1
6316	uxth	r8, r8
6317	cmp	r8, #0
6318	bne	.L1004
6319	b	.L993
6320.L1008:
6321	ldr	r3, .L1086+8
6322	mov	r2, #0
6323	strh	r2, [r3, #-4]	@ movhi
6324	b	.L1010
6325.L1006:
6326	mov	r3, #0
6327	strh	r3, [r2]	@ movhi
6328	b	.L1010
6329.L1009:
6330	sub	r5, r5, #1
6331	uxth	r5, r5
6332	cmp	r5, #0
6333	bne	.L1011
6334	b	.L1010
6335.L1013:
6336	ldrh	r0, [r0, #-8]
6337	movw	ip, #2808
6338	ldrb	r1, [lr, #-3127]	@ zero_extendqisi2
6339	ldrh	r3, [r2, ip]
6340	mul	r1, r0, r1
6341	cmp	r3, r1
6342	subgt	r3, r3, r0, lsr #3
6343	strhgt	r3, [r2, ip]	@ movhi
6344	b	.L986
6345.L1015:
6346	cmp	r10, #64
6347	movhi	r3, #0
6348	strhhi	r3, [fp]	@ movhi
6349	b	.L1017
6350.L1018:
6351	sub	r8, r8, #1
6352	uxth	r8, r8
6353	cmp	r8, #0
6354	bne	.L1019
6355	b	.L1017
6356.L1087:
6357	.align	2
6358.L1086:
6359	.word	.LANCHOR0
6360	.word	.LANCHOR0+2824
6361	.word	.LANCHOR3-3104
6362	.word	.LANCHOR2
6363	.word	.LC98
6364	.word	.LANCHOR3-3110
6365	.word	.LANCHOR0+2818
6366	.word	.LANCHOR3-3088
6367	.word	.LANCHOR0+2816
6368	.word	.LANCHOR3-3108
6369	.word	.LANCHOR3
6370	.word	.LANCHOR3-3112
6371	.word	.LC99
6372	.word	.LANCHOR0+2792
6373	.word	.LANCHOR0+2790
6374	.word	.LANCHOR0+2808
6375	.word	.LANCHOR0+2806
6376	.fnend
6377	.size	gc_search_src_blk, .-gc_search_src_blk
6378	.align	2
6379	.global	zftl_get_gc_node
6380	.syntax unified
6381	.arm
6382	.fpu softvfp
6383	.type	zftl_get_gc_node, %function
6384zftl_get_gc_node:
6385	.fnstart
6386	@ args = 0, pretend = 0, frame = 0
6387	@ frame_needed = 0, uses_anonymous_args = 0
6388	@ link register save eliminated.
6389	cmp	r1, #5
6390	mov	r3, r0
6391	moveq	r1, r0
6392	ldreq	r0, .L1092
6393	beq	.L1091
6394	cmp	r1, #2
6395	movne	r1, r3
6396	ldrne	r0, .L1092+4
6397	bne	.L1091
6398	b	zftl_get_gc_node.part.10
6399.L1091:
6400	b	_list_get_gc_head_node
6401.L1093:
6402	.align	2
6403.L1092:
6404	.word	.LANCHOR3-3100
6405	.word	.LANCHOR3-3104
6406	.fnend
6407	.size	zftl_get_gc_node, .-zftl_get_gc_node
6408	.align	2
6409	.global	zftl_insert_free_list
6410	.syntax unified
6411	.arm
6412	.fpu softvfp
6413	.type	zftl_insert_free_list, %function
6414zftl_insert_free_list:
6415	.fnstart
6416	@ args = 0, pretend = 0, frame = 0
6417	@ frame_needed = 0, uses_anonymous_args = 0
6418	@ link register save eliminated.
6419	ldr	r2, .L1098
6420	mov	r1, r0
6421	ldr	r3, [r2, #1084]
6422	add	r3, r3, r0, lsl #2
6423	ldrb	r3, [r3, #2]	@ zero_extendqisi2
6424	ands	r3, r3, #24
6425	addeq	r2, r2, #2784
6426	ldreq	r0, .L1098+4
6427	beq	.L1097
6428	cmp	r3, #16
6429	ldr	r0, .L1098+8
6430	ldreq	r2, .L1098+12
6431	ldrne	r2, .L1098+16
6432	subeq	r0, r0, #12
6433	subne	r0, r0, #8
6434.L1097:
6435	b	_insert_free_list
6436.L1099:
6437	.align	2
6438.L1098:
6439	.word	.LANCHOR0
6440	.word	.LANCHOR3-3088
6441	.word	.LANCHOR3-3072
6442	.word	.LANCHOR0+2786
6443	.word	.LANCHOR0+2788
6444	.fnend
6445	.size	zftl_insert_free_list, .-zftl_insert_free_list
6446	.align	2
6447	.global	zftl_insert_data_list
6448	.syntax unified
6449	.arm
6450	.fpu softvfp
6451	.type	zftl_insert_data_list, %function
6452zftl_insert_data_list:
6453	.fnstart
6454	@ args = 0, pretend = 0, frame = 0
6455	@ frame_needed = 0, uses_anonymous_args = 0
6456	@ link register save eliminated.
6457	ldr	r3, .L1105
6458	mov	r1, r0
6459	ldr	r3, [r3, #1084]
6460	add	r3, r3, r0, lsl #2
6461	ldrb	r3, [r3, #2]	@ zero_extendqisi2
6462	and	r3, r3, #224
6463	cmp	r3, #64
6464	bne	.L1101
6465	ldr	r2, .L1105+4
6466	ldr	r0, .L1105+8
6467.L1104:
6468	b	_insert_data_list
6469.L1101:
6470	cmp	r3, #96
6471	ldreq	r2, .L1105+12
6472	ldreq	r0, .L1105+16
6473	beq	.L1104
6474.L1102:
6475	cmp	r3, #160
6476	bxne	lr
6477	ldr	r2, .L1105+20
6478	ldr	r0, .L1105+24
6479	b	.L1104
6480.L1106:
6481	.align	2
6482.L1105:
6483	.word	.LANCHOR0
6484	.word	.LANCHOR0+2790
6485	.word	.LANCHOR3-3116
6486	.word	.LANCHOR0+2792
6487	.word	.LANCHOR3-3104
6488	.word	.LANCHOR0+2794
6489	.word	.LANCHOR3-3100
6490	.fnend
6491	.size	zftl_insert_data_list, .-zftl_insert_data_list
6492	.align	2
6493	.global	zftl_gc_get_free_sblk
6494	.syntax unified
6495	.arm
6496	.fpu softvfp
6497	.type	zftl_gc_get_free_sblk, %function
6498zftl_gc_get_free_sblk:
6499	.fnstart
6500	@ args = 0, pretend = 0, frame = 0
6501	@ frame_needed = 0, uses_anonymous_args = 0
6502	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
6503	.save {r4, r5, r6, r7, r8, lr}
6504	.pad #16
6505	movw	r2, #65535
6506	ldr	r8, .L1126
6507	ldr	r3, [r8, #1096]
6508	add	r3, r3, #588
6509	ldrh	r4, [r3]
6510	clz	r3, r0
6511	lsr	r3, r3, #5
6512	cmp	r4, r2
6513	moveq	r3, #0
6514	cmp	r3, #0
6515	beq	.L1108
6516	mov	r1, r4
6517	ldr	r0, .L1126+4
6518	bl	printk
6519	ldr	r3, [r8, #1096]
6520	mvn	r2, #0
6521	add	r3, r3, #588
6522	strh	r2, [r3]	@ movhi
6523.L1109:
6524	mov	r0, r4
6525	add	sp, sp, #16
6526	@ sp needed
6527	pop	{r4, r5, r6, r7, r8, pc}
6528.L1108:
6529	movw	r3, #2786
6530	mov	r7, r1
6531	ldrh	r1, [r8, r3]
6532	movw	r3, #2788
6533	ldrh	r3, [r8, r3]
6534	mov	r6, r0
6535	mov	r5, r8
6536	ldr	r0, .L1126+8
6537	cmp	r1, r3
6538	bcc	.L1110
6539	add	r2, r8, #2784
6540	ldrh	r2, [r2]
6541	cmp	r3, #0
6542	cmpne	r2, r1
6543	bls	.L1111
6544.L1110:
6545	cmp	r6, #0
6546	ldr	r2, .L1126+12
6547	rsbne	r1, r1, r1, lsl #3
6548	lsreq	r1, r3, #2
6549	ubfxne	r1, r1, #3, #16
6550	sub	r0, r0, #8
6551.L1125:
6552	bl	_list_pop_index_node
6553	uxth	r4, r0
6554	movw	r3, #65535
6555	cmp	r4, r3
6556	bne	.L1116
6557	movw	r3, #2788
6558	mov	r2, r7
6559	ldrh	r3, [r5, r3]
6560	mov	r1, r4
6561	ldr	r0, .L1126+16
6562	str	r3, [sp, #4]
6563	ldr	r3, .L1126+20
6564	ldrh	r3, [r3]
6565	str	r3, [sp]
6566	ldr	r3, .L1126+24
6567	ldr	r3, [r3, #-3088]
6568	bl	printk
6569.L1116:
6570	cmp	r6, #0
6571	beq	.L1109
6572	ldr	r3, .L1126+28
6573	ldr	r3, [r3]
6574	tst	r3, #256
6575	beq	.L1109
6576	ldr	ip, [r5, #1092]
6577	lsl	r0, r4, #1
6578	ldr	r1, [r5, #1084]
6579	lsl	r3, r4, #2
6580	ldrh	r0, [ip, r0]
6581	add	r2, r1, r3
6582	ldrb	r2, [r2, #2]	@ zero_extendqisi2
6583	str	r0, [sp, #8]
6584	ldrh	r3, [r1, r3]
6585	ldr	r0, .L1126+32
6586	ubfx	r3, r3, #0, #11
6587	str	r3, [sp, #4]
6588	ldr	r3, [r1, r4, lsl #2]
6589	mov	r1, r4
6590	ubfx	r3, r3, #11, #8
6591	str	r3, [sp]
6592	ubfx	r3, r2, #3, #2
6593	lsr	r2, r2, #5
6594	bl	printk
6595	b	.L1109
6596.L1111:
6597	cmp	r6, #0
6598	ldr	r2, .L1126+36
6599	lsrne	r1, r1, #3
6600	moveq	r1, r6
6601	sub	r0, r0, #12
6602	b	.L1125
6603.L1127:
6604	.align	2
6605.L1126:
6606	.word	.LANCHOR0
6607	.word	.LC100
6608	.word	.LANCHOR3-3072
6609	.word	.LANCHOR0+2788
6610	.word	.LC101
6611	.word	.LANCHOR0+2784
6612	.word	.LANCHOR3
6613	.word	.LANCHOR2
6614	.word	.LC102
6615	.word	.LANCHOR0+2786
6616	.fnend
6617	.size	zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk
6618	.align	2
6619	.global	zftl_get_free_sblk
6620	.syntax unified
6621	.arm
6622	.fpu softvfp
6623	.type	zftl_get_free_sblk, %function
6624zftl_get_free_sblk:
6625	.fnstart
6626	@ args = 0, pretend = 0, frame = 0
6627	@ frame_needed = 0, uses_anonymous_args = 0
6628	cmp	r1, #5
6629	push	{r0, r1, r4, r5, r6, r7, r8, lr}
6630	.save {r4, r5, r6, r7, r8, lr}
6631	.pad #8
6632	mov	r7, r1
6633	ldr	r5, .L1141
6634	bne	.L1129
6635	movw	r3, #2786
6636	ldr	r0, .L1141+4
6637	ldrh	r1, [r5, r3]
6638	movw	r3, #2788
6639	ldrh	ip, [r5, r3]
6640	cmp	r1, ip
6641	bcc	.L1130
6642	add	r3, r5, #2784
6643	ldrh	r3, [r3]
6644	cmp	ip, #0
6645	cmpne	r3, r1
6646	movhi	r1, #1
6647	movls	r1, #0
6648	ldrls	r2, .L1141+8
6649	subls	r0, r0, #12
6650	bls	.L1140
6651.L1130:
6652	ldr	r2, .L1141+12
6653	lsr	r1, ip, #1
6654	sub	r0, r0, #8
6655.L1140:
6656	bl	_list_pop_index_node
6657	uxth	r4, r0
6658	movw	r3, #65535
6659	cmp	r4, r3
6660	bne	.L1134
6661	movw	r3, #2788
6662	mov	r2, r7
6663	ldrh	r3, [r5, r3]
6664	mov	r1, r4
6665	ldr	r0, .L1141+16
6666	str	r3, [sp, #4]
6667	ldr	r3, .L1141+20
6668	ldrh	r3, [r3]
6669	str	r3, [sp]
6670	ldr	r3, .L1141+24
6671	ldr	r3, [r3, #-3088]
6672	bl	printk
6673	b	.L1134
6674.L1129:
6675	ldr	r3, [r5, #1096]
6676	movw	r8, #590
6677	ldrh	r4, [r3, r8]
6678	movw	r3, #65535
6679	cmp	r1, #1
6680	cmpne	r4, r3
6681	beq	.L1133
6682	mov	r1, r4
6683	ldr	r0, .L1141+28
6684	bl	printk
6685	ldr	r3, [r5, #1096]
6686	mvn	r2, #0
6687	strh	r2, [r3, r8]	@ movhi
6688.L1134:
6689	mov	r0, r4
6690	add	sp, sp, #8
6691	@ sp needed
6692	pop	{r4, r5, r6, r7, r8, pc}
6693.L1133:
6694	add	r3, r5, #2784
6695	movw	r2, #2788
6696	ldrh	r3, [r3]
6697	mov	r6, r0
6698	ldrh	r2, [r5, r2]
6699	cmp	r3, r2
6700	bcc	.L1135
6701	movw	r1, #2786
6702	ldrh	r1, [r5, r1]
6703	cmp	r2, #0
6704	cmpne	r1, r3
6705	bls	.L1136
6706.L1135:
6707	bl	get_ink_scaned_blk
6708	movw	r3, #65535
6709	mov	r4, r0
6710	cmp	r0, r3
6711	bne	.L1134
6712	cmp	r7, #1
6713	ldr	r2, .L1141+12
6714	movweq	r3, #2788
6715	ldr	r0, .L1141+32
6716	ldrheq	r6, [r5, r3]
6717	lsreq	r6, r6, #1
6718	mov	r1, r6
6719	b	.L1140
6720.L1136:
6721	cmp	r7, #1
6722	ldr	r2, .L1141+20
6723	lsreq	r6, r3, #1
6724	ldr	r0, .L1141+36
6725	mov	r1, r6
6726	b	.L1140
6727.L1142:
6728	.align	2
6729.L1141:
6730	.word	.LANCHOR0
6731	.word	.LANCHOR3-3072
6732	.word	.LANCHOR0+2786
6733	.word	.LANCHOR0+2788
6734	.word	.LC101
6735	.word	.LANCHOR0+2784
6736	.word	.LANCHOR3
6737	.word	.LC103
6738	.word	.LANCHOR3-3080
6739	.word	.LANCHOR3-3088
6740	.fnend
6741	.size	zftl_get_free_sblk, .-zftl_get_free_sblk
6742	.align	2
6743	.global	zftl_remove_data_node
6744	.syntax unified
6745	.arm
6746	.fpu softvfp
6747	.type	zftl_remove_data_node, %function
6748zftl_remove_data_node:
6749	.fnstart
6750	@ args = 0, pretend = 0, frame = 0
6751	@ frame_needed = 0, uses_anonymous_args = 0
6752	@ link register save eliminated.
6753	ldr	r3, .L1148
6754	mov	r1, r0
6755	ldr	r3, [r3, #1084]
6756	add	r3, r3, r0, lsl #2
6757	ldrb	r3, [r3, #2]	@ zero_extendqisi2
6758	and	r3, r3, #224
6759	cmp	r3, #64
6760	bne	.L1144
6761	ldr	r2, .L1148+4
6762	ldr	r0, .L1148+8
6763.L1147:
6764	b	_list_remove_node
6765.L1144:
6766	cmp	r3, #96
6767	ldreq	r2, .L1148+12
6768	ldreq	r0, .L1148+16
6769	beq	.L1147
6770.L1145:
6771	cmp	r3, #160
6772	bxne	lr
6773	ldr	r2, .L1148+20
6774	ldr	r0, .L1148+24
6775	b	.L1147
6776.L1149:
6777	.align	2
6778.L1148:
6779	.word	.LANCHOR0
6780	.word	.LANCHOR0+2790
6781	.word	.LANCHOR3-3116
6782	.word	.LANCHOR0+2792
6783	.word	.LANCHOR3-3104
6784	.word	.LANCHOR0+2794
6785	.word	.LANCHOR3-3100
6786	.fnend
6787	.size	zftl_remove_data_node, .-zftl_remove_data_node
6788	.align	2
6789	.global	zftl_remove_free_node
6790	.syntax unified
6791	.arm
6792	.fpu softvfp
6793	.type	zftl_remove_free_node, %function
6794zftl_remove_free_node:
6795	.fnstart
6796	@ args = 0, pretend = 0, frame = 0
6797	@ frame_needed = 0, uses_anonymous_args = 0
6798	@ link register save eliminated.
6799	ldr	r2, .L1154
6800	mov	r1, r0
6801	ldr	r3, [r2, #1084]
6802	add	r3, r3, r0, lsl #2
6803	ldrb	r3, [r3, #2]	@ zero_extendqisi2
6804	ands	r3, r3, #24
6805	addeq	r2, r2, #2784
6806	ldreq	r0, .L1154+4
6807	beq	.L1153
6808	cmp	r3, #16
6809	ldr	r0, .L1154+8
6810	ldreq	r2, .L1154+12
6811	ldrne	r2, .L1154+16
6812	subeq	r0, r0, #12
6813	subne	r0, r0, #8
6814.L1153:
6815	b	_list_remove_node
6816.L1155:
6817	.align	2
6818.L1154:
6819	.word	.LANCHOR0
6820	.word	.LANCHOR3-3088
6821	.word	.LANCHOR3-3072
6822	.word	.LANCHOR0+2786
6823	.word	.LANCHOR0+2788
6824	.fnend
6825	.size	zftl_remove_free_node, .-zftl_remove_free_node
6826	.align	2
6827	.global	zftl_list_update_data_list
6828	.syntax unified
6829	.arm
6830	.fpu softvfp
6831	.type	zftl_list_update_data_list, %function
6832zftl_list_update_data_list:
6833	.fnstart
6834	@ args = 0, pretend = 0, frame = 0
6835	@ frame_needed = 0, uses_anonymous_args = 0
6836	@ link register save eliminated.
6837	ldr	r3, .L1161
6838	mov	r1, r0
6839	ldr	r3, [r3, #1084]
6840	add	r3, r3, r0, lsl #2
6841	ldrb	r3, [r3, #2]	@ zero_extendqisi2
6842	and	r3, r3, #224
6843	cmp	r3, #64
6844	bne	.L1157
6845	ldr	r2, .L1161+4
6846	ldr	r0, .L1161+8
6847.L1160:
6848	b	_list_update_data_list
6849.L1157:
6850	cmp	r3, #96
6851	ldreq	r2, .L1161+12
6852	ldreq	r0, .L1161+16
6853	beq	.L1160
6854.L1158:
6855	cmp	r3, #160
6856	bxne	lr
6857	ldr	r2, .L1161+20
6858	ldr	r0, .L1161+24
6859	b	.L1160
6860.L1162:
6861	.align	2
6862.L1161:
6863	.word	.LANCHOR0
6864	.word	.LANCHOR0+2790
6865	.word	.LANCHOR3-3116
6866	.word	.LANCHOR0+2792
6867	.word	.LANCHOR3-3104
6868	.word	.LANCHOR0+2794
6869	.word	.LANCHOR3-3100
6870	.fnend
6871	.size	zftl_list_update_data_list, .-zftl_list_update_data_list
6872	.align	2
6873	.global	print_list_info
6874	.syntax unified
6875	.arm
6876	.fpu softvfp
6877	.type	print_list_info, %function
6878print_list_info:
6879	.fnstart
6880	@ args = 0, pretend = 0, frame = 0
6881	@ frame_needed = 0, uses_anonymous_args = 0
6882	push	{r4, r5, r6, r7, r8, r9, lr}
6883	.save {r4, r5, r6, r7, r8, r9, lr}
6884	mov	r4, r0
6885	ldrh	r2, [r1]
6886	.pad #36
6887	sub	sp, sp, #36
6888	ldr	r1, [r0]
6889	ldr	r0, .L1168
6890	bl	printk
6891	ldr	r4, [r4]
6892	cmp	r4, #0
6893	beq	.L1163
6894	ldr	r6, .L1168+4
6895	mov	r5, #0
6896	ldr	r7, .L1168+8
6897	ldr	r8, .L1168+12
6898.L1166:
6899	ldr	r2, [r6, #1036]
6900	ldr	r9, [r6, #1092]
6901	ldr	r1, [r6, #1084]
6902	sub	r2, r4, r2
6903	ldrh	r3, [r4]
6904	asr	r2, r2, #1
6905	mul	r2, r7, r2
6906	uxth	r2, r2
6907	lsl	lr, r2, #1
6908	lsl	r0, r2, #2
6909	ldrh	lr, [r9, lr]
6910	add	ip, r1, r0
6911	str	lr, [sp, #24]
6912	ldrh	r0, [r1, r0]
6913	ubfx	r0, r0, #0, #11
6914	str	r0, [sp, #20]
6915	mov	r0, r8
6916	ldr	r1, [r1, r2, lsl #2]
6917	ubfx	r1, r1, #11, #8
6918	str	r1, [sp, #16]
6919	ldrb	r1, [ip, #2]	@ zero_extendqisi2
6920	ubfx	r1, r1, #3, #2
6921	str	r1, [sp, #12]
6922	ldrb	r1, [ip, #2]	@ zero_extendqisi2
6923	lsr	r1, r1, #5
6924	str	r1, [sp, #8]
6925	ldrh	r1, [r4, #4]
6926	str	r1, [sp, #4]
6927	ldrh	r1, [r4, #2]
6928	str	r1, [sp]
6929	mov	r1, r5
6930	bl	printk
6931	ldrh	r4, [r4]
6932	movw	r3, #65535
6933	cmp	r4, r3
6934	beq	.L1163
6935	ldr	r3, [r6, #1036]
6936	mov	r2, #6
6937	add	r5, r5, #1
6938	uxth	r5, r5
6939	mla	r4, r2, r4, r3
6940	ldr	r3, .L1168+16
6941	ldrh	r3, [r3]
6942	cmp	r3, r5
6943	bcs	.L1166
6944.L1163:
6945	add	sp, sp, #36
6946	@ sp needed
6947	pop	{r4, r5, r6, r7, r8, r9, pc}
6948.L1169:
6949	.align	2
6950.L1168:
6951	.word	.LC104
6952	.word	.LANCHOR0
6953	.word	-1431655765
6954	.word	.LC105
6955	.word	.LANCHOR3-3076
6956	.fnend
6957	.size	print_list_info, .-print_list_info
6958	.align	2
6959	.global	dump_all_list_info
6960	.syntax unified
6961	.arm
6962	.fpu softvfp
6963	.type	dump_all_list_info, %function
6964dump_all_list_info:
6965	.fnstart
6966	@ args = 0, pretend = 0, frame = 0
6967	@ frame_needed = 0, uses_anonymous_args = 0
6968	push	{r4, r5, r6, r7, r8, lr}
6969	.save {r4, r5, r6, r7, r8, lr}
6970	ldr	r5, .L1172
6971	ldr	r4, .L1172+4
6972	sub	r6, r5, #3088
6973	sub	r7, r5, #3072
6974	mov	r0, r6
6975	sub	r5, r5, #3104
6976	add	r1, r4, #2784
6977	bl	print_list_info
6978	add	r1, r4, #2784
6979	sub	r0, r7, #12
6980	add	r1, r1, #2
6981	bl	print_list_info
6982	add	r1, r4, #2784
6983	sub	r0, r7, #8
6984	add	r1, r1, #4
6985	bl	print_list_info
6986	add	r1, r4, #2784
6987	sub	r0, r5, #12
6988	add	r1, r1, #6
6989	bl	print_list_info
6990	add	r1, r4, #2784
6991	mov	r0, r5
6992	add	r1, r1, #8
6993	bl	print_list_info
6994	add	r1, r4, #2784
6995	sub	r0, r6, #12
6996	add	r1, r1, #10
6997	pop	{r4, r5, r6, r7, r8, lr}
6998	b	print_list_info
6999.L1173:
7000	.align	2
7001.L1172:
7002	.word	.LANCHOR3
7003	.word	.LANCHOR0
7004	.fnend
7005	.size	dump_all_list_info, .-dump_all_list_info
7006	.align	2
7007	.global	ftl_tmp_into_update
7008	.syntax unified
7009	.arm
7010	.fpu softvfp
7011	.type	ftl_tmp_into_update, %function
7012ftl_tmp_into_update:
7013	.fnstart
7014	@ args = 0, pretend = 0, frame = 0
7015	@ frame_needed = 0, uses_anonymous_args = 0
7016	@ link register save eliminated.
7017	ldr	r3, .L1179
7018	ldr	r3, [r3, #2800]
7019	ldr	r2, [r3, #16]
7020	cmp	r2, #2048
7021	ldrhi	r1, [r3, #20]
7022	addhi	r1, r1, r2, lsr #11
7023	ubfxhi	r2, r2, #0, #11
7024	strhi	r2, [r3, #16]
7025	ldr	r2, [r3, #24]
7026	strhi	r1, [r3, #20]
7027	cmp	r2, #2048
7028	ldrhi	r1, [r3, #28]
7029	addhi	r1, r1, r2, lsr #11
7030	ubfxhi	r2, r2, #0, #11
7031	strhi	r2, [r3, #24]
7032	ldr	r2, [r3, #32]
7033	strhi	r1, [r3, #28]
7034	cmp	r2, #1024
7035	ldrhi	r1, [r3, #36]
7036	addhi	r1, r1, r2, lsr #10
7037	ubfxhi	r2, r2, #0, #10
7038	strhi	r2, [r3, #32]
7039	ldr	r2, [r3, #40]
7040	strhi	r1, [r3, #36]
7041	cmp	r2, #1024
7042	ldrhi	r1, [r3, #44]
7043	addhi	r1, r1, r2, lsr #10
7044	ubfxhi	r2, r2, #0, #10
7045	strhi	r2, [r3, #40]
7046	strhi	r1, [r3, #44]
7047	bx	lr
7048.L1180:
7049	.align	2
7050.L1179:
7051	.word	.LANCHOR0
7052	.fnend
7053	.size	ftl_tmp_into_update, .-ftl_tmp_into_update
7054	.global	__aeabi_idiv
7055	.align	2
7056	.global	ftl_get_blk_list_in_sblk
7057	.syntax unified
7058	.arm
7059	.fpu softvfp
7060	.type	ftl_get_blk_list_in_sblk, %function
7061ftl_get_blk_list_in_sblk:
7062	.fnstart
7063	@ args = 0, pretend = 0, frame = 8
7064	@ frame_needed = 0, uses_anonymous_args = 0
7065	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
7066	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7067	.pad #12
7068	mov	r5, #0
7069	ldr	r9, .L1189
7070	mov	r10, r0
7071	mov	r6, r1
7072	mov	r7, r5
7073	ldr	r8, .L1189+4
7074	ldr	r3, [r9, #1084]
7075	add	r3, r3, r0, lsl #2
7076	ldrb	r2, [r3, #3]	@ zero_extendqisi2
7077	mov	r3, r8
7078.L1182:
7079	ldrb	r1, [r8, #-3127]	@ zero_extendqisi2
7080	cmp	r7, r1
7081	blt	.L1185
7082	add	r6, r6, r5, lsl #1
7083	mov	r2, r5
7084	mvn	r0, #0
7085.L1186:
7086	ldrb	r1, [r3, #-3127]	@ zero_extendqisi2
7087	cmp	r2, r1
7088	blt	.L1187
7089	mov	r0, r5
7090	add	sp, sp, #12
7091	@ sp needed
7092	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
7093.L1185:
7094	asr	r1, r2, r7
7095	tst	r1, #1
7096	bne	.L1183
7097	ldrb	r4, [r8, #-3136]	@ zero_extendqisi2
7098	mov	r0, r7
7099	stm	sp, {r2, r3}
7100	lsl	fp, r5, #1
7101	add	r5, r5, #1
7102	mov	r1, r4
7103	bl	__aeabi_idiv
7104	ldr	ip, .L1189+8
7105	smulbb	r4, r4, r10
7106	ldrb	r1, [r9, #1153]	@ zero_extendqisi2
7107	ldm	sp, {r2, r3}
7108	ldrh	ip, [ip]
7109	rsb	r1, r1, #24
7110	sub	r1, r1, ip
7111	add	r0, r4, r0, lsl r1
7112	uxth	r0, r0
7113	strh	r0, [r6, fp]	@ movhi
7114	ldrb	r1, [r8, #-3136]	@ zero_extendqisi2
7115	cmp	r1, #1
7116	subhi	r1, r1, #1
7117	andhi	r1, r1, r7
7118	addhi	r0, r0, r1
7119	strhhi	r0, [r6, fp]	@ movhi
7120.L1183:
7121	add	r7, r7, #1
7122	b	.L1182
7123.L1187:
7124	strh	r0, [r6], #2	@ movhi
7125	add	r2, r2, #1
7126	b	.L1186
7127.L1190:
7128	.align	2
7129.L1189:
7130	.word	.LANCHOR0
7131	.word	.LANCHOR3
7132	.word	.LANCHOR3-3138
7133	.fnend
7134	.size	ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk
7135	.align	2
7136	.global	ftl_erase_phy_blk
7137	.syntax unified
7138	.arm
7139	.fpu softvfp
7140	.type	ftl_erase_phy_blk, %function
7141ftl_erase_phy_blk:
7142	.fnstart
7143	@ args = 0, pretend = 0, frame = 0
7144	@ frame_needed = 0, uses_anonymous_args = 0
7145	ldr	r2, .L1197
7146	ldr	r3, .L1197+4
7147	push	{r4, r5, r6, r7, r8, lr}
7148	.save {r4, r5, r6, r7, r8, lr}
7149	mov	r6, r1
7150	sub	r1, r2, #3136
7151	sub	r7, r2, #3072
7152	ldrb	r3, [r3, #1153]	@ zero_extendqisi2
7153	ldrh	r4, [r1, #-2]
7154	rsb	r3, r3, #24
7155	sub	r3, r3, r4
7156	mvn	r4, #0
7157	asr	r5, r0, r3
7158	bic	r4, r0, r4, lsl r3
7159	ldrb	r3, [r2, #-3126]	@ zero_extendqisi2
7160	sxth	r4, r4
7161	uxtb	r5, r5
7162	cmp	r3, #0
7163	beq	.L1192
7164	ldrb	r3, [r2, #-3125]	@ zero_extendqisi2
7165	cmp	r3, #0
7166	bne	.L1192
7167	ldrh	r2, [r7, #-2]
7168	clz	r1, r6
7169	lsr	r1, r1, #5
7170	mov	r0, r5
7171	mul	r2, r4, r2
7172	bl	flash_erase_block_en
7173.L1192:
7174	ldrh	r2, [r7, #-2]
7175	uxtb	r1, r6
7176	mov	r0, r5
7177	mul	r2, r4, r2
7178	pop	{r4, r5, r6, r7, r8, lr}
7179	b	flash_erase_block_en
7180.L1198:
7181	.align	2
7182.L1197:
7183	.word	.LANCHOR3
7184	.word	.LANCHOR0
7185	.fnend
7186	.size	ftl_erase_phy_blk, .-ftl_erase_phy_blk
7187	.align	2
7188	.global	ftl_erase_sblk
7189	.syntax unified
7190	.arm
7191	.fpu softvfp
7192	.type	ftl_erase_sblk, %function
7193ftl_erase_sblk:
7194	.fnstart
7195	@ args = 0, pretend = 0, frame = 80
7196	@ frame_needed = 0, uses_anonymous_args = 0
7197	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
7198	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7199	lsl	fp, r0, #2
7200	ldr	r4, .L1224
7201	mov	r8, r0
7202	mov	r7, r1
7203	mov	r6, #0
7204	ldr	r9, .L1224+4
7205	.pad #84
7206	sub	sp, sp, #84
7207	ldr	r3, [r4, #1084]
7208	add	r3, r3, fp
7209	ldrb	r3, [r3, #3]	@ zero_extendqisi2
7210	str	r3, [sp, #4]
7211.L1200:
7212	ldr	r3, .L1224+4
7213	ldrb	r3, [r3, #-3072]	@ zero_extendqisi2
7214	cmp	r6, r3
7215	bge	.L1211
7216	ldr	r3, .L1224+4
7217	mov	r5, #0
7218	ldrb	r2, [r3, #-3136]	@ zero_extendqisi2
7219	sub	r10, r2, #1
7220	mul	r3, r2, r8
7221	mul	ip, r2, r6
7222	str	r3, [sp, #8]
7223	ldr	r3, .L1224+8
7224	ldrh	r3, [r3]
7225	str	r3, [sp, #12]
7226	mov	r3, r5
7227	b	.L1212
7228.L1202:
7229	ldr	lr, [sp, #4]
7230	add	r1, ip, r3
7231	asr	r1, lr, r1
7232	tst	r1, #1
7233	bne	.L1201
7234	ldr	r0, [sp, #8]
7235	add	r1, sp, #80
7236	add	lr, r1, r5, lsl #2
7237	and	r1, r3, r10
7238	add	r5, r5, #1
7239	add	r1, r1, r0
7240	ldr	r0, [sp, #12]
7241	mul	r1, r0, r1
7242	str	r1, [lr, #-64]
7243.L1201:
7244	add	r3, r3, #1
7245.L1212:
7246	cmp	r3, r2
7247	blt	.L1202
7248	cmp	r2, #4
7249	bne	.L1203
7250	uxtb	r3, r7
7251	mov	r10, #0
7252	str	r3, [sp, #8]
7253	uxtb	r3, r6
7254.L1204:
7255	cmp	r10, r5
7256	bne	.L1205
7257.L1206:
7258	add	r6, r6, #1
7259	b	.L1200
7260.L1205:
7261	add	r2, sp, #16
7262	mov	r0, r3
7263	ldr	r2, [r2, r10, lsl #2]
7264	add	r10, r10, #1
7265	ldr	r1, [sp, #8]
7266	str	r3, [sp, #12]
7267	bl	flash_erase_block_en
7268	ldr	r3, [sp, #12]
7269	b	.L1204
7270.L1203:
7271	cmp	r5, #2
7272	bne	.L1207
7273	ldrb	r3, [r9, #-3126]	@ zero_extendqisi2
7274	uxtb	r5, r6
7275	cmp	r3, #0
7276	beq	.L1208
7277	ldrb	r3, [r9, #-3125]	@ zero_extendqisi2
7278	cmp	r3, #0
7279	bne	.L1208
7280	clz	r1, r7
7281	ldr	r3, [sp, #20]
7282	ldr	r2, [sp, #16]
7283	lsr	r1, r1, #5
7284	mov	r0, r5
7285	bl	flash_erase_duplane_block
7286.L1208:
7287	ldr	r3, [sp, #20]
7288	uxtb	r1, r7
7289	ldr	r2, [sp, #16]
7290	mov	r0, r5
7291	bl	flash_erase_duplane_block
7292	b	.L1206
7293.L1207:
7294	cmp	r5, #1
7295	bne	.L1206
7296	ldrb	r3, [r9, #-3126]	@ zero_extendqisi2
7297	uxtb	r5, r6
7298	cmp	r3, #0
7299	beq	.L1210
7300	ldrb	r3, [r9, #-3125]	@ zero_extendqisi2
7301	cmp	r3, #0
7302	bne	.L1210
7303	clz	r1, r7
7304	ldr	r2, [sp, #16]
7305	lsr	r1, r1, #5
7306	mov	r0, r5
7307	bl	flash_erase_block_en
7308.L1210:
7309	ldr	r2, [sp, #16]
7310	uxtb	r1, r7
7311	mov	r0, r5
7312	bl	flash_erase_block_en
7313	b	.L1206
7314.L1211:
7315	cmp	r7, #0
7316	bne	.L1213
7317	ldr	r2, [r4, #1084]
7318	ldrh	r3, [r2, fp]
7319	add	r1, r3, #1
7320	bfi	r3, r1, #0, #11
7321	strh	r3, [r2, fp]	@ movhi
7322	ldr	r3, [r4, #2800]
7323	ldr	r2, [r3, #84]
7324	ldrh	r0, [r3, #96]
7325	add	r2, r2, #1
7326	str	r2, [r3, #84]
7327	ldr	r2, [r4, #1084]
7328	ldrh	r2, [r2, fp]
7329	ubfx	r2, r2, #0, #11
7330	uxth	r1, r2
7331	cmp	r0, r1
7332	strhlt	r2, [r3, #96]	@ movhi
7333.L1215:
7334	mov	r0, #0
7335	add	sp, sp, #84
7336	@ sp needed
7337	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
7338.L1213:
7339	ldr	r1, [r4, #1084]
7340	ldr	r3, [r1, r8, lsl #2]
7341	ubfx	r2, r3, #11, #8
7342	add	r2, r2, #1
7343	bfi	r3, r2, #11, #8
7344	str	r3, [r1, r8, lsl #2]
7345	ldr	r3, [r4, #2800]
7346	ldr	r2, [r3, #80]
7347	ldrh	r1, [r3, #98]
7348	add	r2, r2, #1
7349	str	r2, [r3, #80]
7350	ldr	r2, [r4, #1084]
7351	ldr	r2, [r2, r8, lsl #2]
7352	ubfx	r2, r2, #11, #8
7353	cmp	r1, r2
7354	strhcc	r2, [r3, #98]	@ movhi
7355	b	.L1215
7356.L1225:
7357	.align	2
7358.L1224:
7359	.word	.LANCHOR0
7360	.word	.LANCHOR3
7361	.word	.LANCHOR3-3074
7362	.fnend
7363	.size	ftl_erase_sblk, .-ftl_erase_sblk
7364	.align	2
7365	.global	ftl_alloc_sys_blk
7366	.syntax unified
7367	.arm
7368	.fpu softvfp
7369	.type	ftl_alloc_sys_blk, %function
7370ftl_alloc_sys_blk:
7371	.fnstart
7372	@ args = 0, pretend = 0, frame = 0
7373	@ frame_needed = 0, uses_anonymous_args = 0
7374	ldr	r3, .L1236
7375	push	{r4, lr}
7376	.save {r4, lr}
7377	mov	r4, r3
7378	ldr	r2, [r3, #2800]
7379	ldrh	r1, [r2, #136]
7380	cmp	r1, #63
7381	movhi	r3, #0
7382	strhhi	r3, [r2, #136]	@ movhi
7383	ldrh	r3, [r2, #112]
7384	cmp	r3, #0
7385	bne	.L1228
7386	movw	r2, #1359
7387	ldr	r1, .L1236+4
7388	ldr	r0, .L1236+8
7389	bl	printk
7390	bl	dump_stack
7391.L1228:
7392	ldr	r3, [r4, #2800]
7393	movw	lr, #65535
7394	mov	ip, #0
7395.L1232:
7396	ldrh	r2, [r3, #136]
7397	add	r1, r3, r2, lsl #1
7398	add	r1, r1, #158
7399.L1229:
7400	cmp	r2, #63
7401	strhgt	ip, [r3, #136]	@ movhi
7402	bgt	.L1232
7403.L1231:
7404	ldrh	r0, [r1, #2]!
7405	cmp	r0, lr
7406	addeq	r2, r2, #1
7407	beq	.L1229
7408.L1234:
7409	add	r1, r3, r2, lsl #1
7410	mvn	ip, #0
7411	strh	ip, [r1, #160]	@ movhi
7412	strh	r2, [r3, #136]	@ movhi
7413	ldrh	r2, [r3, #112]
7414	add	r2, r2, ip
7415	strh	r2, [r3, #112]	@ movhi
7416	pop	{r4, pc}
7417.L1237:
7418	.align	2
7419.L1236:
7420	.word	.LANCHOR0
7421	.word	.LANCHOR1+1479
7422	.word	.LC0
7423	.fnend
7424	.size	ftl_alloc_sys_blk, .-ftl_alloc_sys_blk
7425	.align	2
7426	.global	ftl_free_sys_blk
7427	.syntax unified
7428	.arm
7429	.fpu softvfp
7430	.type	ftl_free_sys_blk, %function
7431ftl_free_sys_blk:
7432	.fnstart
7433	@ args = 0, pretend = 0, frame = 0
7434	@ frame_needed = 0, uses_anonymous_args = 0
7435	ldr	r3, .L1247
7436	push	{r4, r5, r6, lr}
7437	.save {r4, r5, r6, lr}
7438	mov	r5, r0
7439	mov	r4, r3
7440	ldr	r2, [r3, #2800]
7441	ldrh	r1, [r2, #138]
7442	cmp	r1, #63
7443	movhi	r3, #0
7444	strhhi	r3, [r2, #138]	@ movhi
7445	ldrh	r3, [r2, #112]
7446	cmp	r3, #63
7447	bls	.L1240
7448	movw	r2, #1386
7449	ldr	r1, .L1247+4
7450	ldr	r0, .L1247+8
7451	bl	printk
7452	bl	dump_stack
7453.L1240:
7454	ldr	r3, [r4, #2800]
7455	movw	ip, #65535
7456	mov	r0, #0
7457.L1244:
7458	ldrh	r2, [r3, #138]
7459	add	r1, r3, r2, lsl #1
7460	add	r1, r1, #158
7461.L1241:
7462	cmp	r2, #63
7463	strhgt	r0, [r3, #138]	@ movhi
7464	bgt	.L1244
7465.L1243:
7466	ldrh	lr, [r1, #2]!
7467	cmp	lr, ip
7468	bne	.L1242
7469	add	r1, r3, r2, lsl #1
7470	strh	r5, [r1, #160]	@ movhi
7471	strh	r2, [r3, #138]	@ movhi
7472	ldrh	r2, [r3, #112]
7473	add	r2, r2, #1
7474	strh	r2, [r3, #112]	@ movhi
7475	pop	{r4, r5, r6, pc}
7476.L1242:
7477	add	r2, r2, #1
7478	b	.L1241
7479.L1248:
7480	.align	2
7481.L1247:
7482	.word	.LANCHOR0
7483	.word	.LANCHOR1+1497
7484	.word	.LC0
7485	.fnend
7486	.size	ftl_free_sys_blk, .-ftl_free_sys_blk
7487	.align	2
7488	.global	ftl_info_data_recovery
7489	.syntax unified
7490	.arm
7491	.fpu softvfp
7492	.type	ftl_info_data_recovery, %function
7493ftl_info_data_recovery:
7494	.fnstart
7495	@ args = 0, pretend = 0, frame = 0
7496	@ frame_needed = 0, uses_anonymous_args = 0
7497	push	{r4, r5, r6, r7, r8, lr}
7498	.save {r4, r5, r6, r7, r8, lr}
7499	movw	r3, #65535
7500	ldrh	r6, [r0]
7501	cmp	r6, r3
7502	popeq	{r4, r5, r6, r7, r8, pc}
7503	ldr	r4, .L1259
7504	lsl	r8, r6, #2
7505	ldr	r5, [r4, #1084]
7506	add	r7, r5, r8
7507	ldrb	r3, [r7, #2]	@ zero_extendqisi2
7508	tst	r3, #224
7509	popne	{r4, r5, r6, r7, r8, pc}
7510	ldrb	r2, [r0, #4]	@ zero_extendqisi2
7511	mov	r0, r6
7512	bfi	r3, r2, #5, #3
7513	strb	r3, [r7, #2]
7514	bl	zftl_remove_free_node
7515	ldrb	r3, [r7, #2]	@ zero_extendqisi2
7516	ldr	r2, [r4, #2800]
7517	tst	r3, #8
7518	ldrhne	r3, [r2, #116]
7519	subne	r3, r3, #1
7520	strhne	r3, [r2, #116]	@ movhi
7521	bne	.L1254
7522	tst	r3, #24
7523	ldrheq	r3, [r2, #114]
7524	ldrhne	r3, [r2, #118]
7525	subeq	r3, r3, #1
7526	subne	r3, r3, #1
7527	strheq	r3, [r2, #114]	@ movhi
7528	strhne	r3, [r2, #118]	@ movhi
7529.L1254:
7530	ldrb	r3, [r7, #2]	@ zero_extendqisi2
7531	and	r3, r3, #224
7532	cmp	r3, #160
7533	bne	.L1256
7534	ldr	r3, [r5, r6, lsl #2]
7535	ubfx	r2, r3, #11, #8
7536	add	r2, r2, #1
7537	bfi	r3, r2, #11, #8
7538	str	r3, [r5, r6, lsl #2]
7539	ldr	r2, [r4, #2800]
7540	ldrh	r3, [r2, #120]
7541	sub	r3, r3, #1
7542	strh	r3, [r2, #120]	@ movhi
7543	pop	{r4, r5, r6, r7, r8, pc}
7544.L1256:
7545	ldrh	r2, [r5, r8]
7546	cmp	r3, #64
7547	add	r1, r2, #1
7548	bfi	r2, r1, #0, #11
7549	strh	r2, [r5, r8]	@ movhi
7550	bne	.L1257
7551	ldr	r2, [r4, #2800]
7552	ldrh	r3, [r2, #122]
7553	sub	r3, r3, #1
7554	strh	r3, [r2, #122]	@ movhi
7555	pop	{r4, r5, r6, r7, r8, pc}
7556.L1257:
7557	cmp	r3, #96
7558	ldreq	r2, [r4, #2800]
7559	ldrheq	r3, [r2, #124]
7560	subeq	r3, r3, #1
7561	strheq	r3, [r2, #124]	@ movhi
7562	pop	{r4, r5, r6, r7, r8, pc}
7563.L1260:
7564	.align	2
7565.L1259:
7566	.word	.LANCHOR0
7567	.fnend
7568	.size	ftl_info_data_recovery, .-ftl_info_data_recovery
7569	.align	2
7570	.global	ftl_get_ppa_from_index
7571	.syntax unified
7572	.arm
7573	.fpu softvfp
7574	.type	ftl_get_ppa_from_index, %function
7575ftl_get_ppa_from_index:
7576	.fnstart
7577	@ args = 0, pretend = 0, frame = 0
7578	@ frame_needed = 0, uses_anonymous_args = 0
7579	ldr	r3, .L1266
7580	push	{r4, r5, r6, r7, r8, lr}
7581	.save {r4, r5, r6, r7, r8, lr}
7582	mov	r4, r0
7583	ldr	r5, [r3, #1096]
7584	ldr	r3, .L1266+4
7585	sub	r2, r3, #3088
7586	ldrb	r3, [r3, #-3127]	@ zero_extendqisi2
7587	ldrh	r2, [r2, #-8]
7588	mul	r1, r3, r2
7589	cmp	r0, r1
7590	smulbbge	r3, r3, r2
7591	addlt	r5, r5, #16
7592	addge	r5, r5, #48
7593	ldrb	r6, [r5, #9]	@ zero_extendqisi2
7594	subge	r4, r0, r3
7595	uxthge	r4, r4
7596	mov	r1, r6
7597	mov	r0, r4
7598	bl	__aeabi_idiv
7599	smulbb	r6, r0, r6
7600	movw	r3, #65535
7601	mov	r7, r0
7602	sub	r4, r4, r6
7603	uxth	r4, r4
7604	add	r4, r5, r4, lsl #1
7605	ldrh	r4, [r4, #16]
7606	cmp	r4, r3
7607	bne	.L1264
7608	movw	r2, #1945
7609	ldr	r1, .L1266+8
7610	ldr	r0, .L1266+12
7611	bl	printk
7612	bl	dump_stack
7613.L1264:
7614	ldr	r3, .L1266+16
7615	ldrh	r0, [r3, #-2]
7616	mla	r0, r4, r0, r7
7617	pop	{r4, r5, r6, r7, r8, pc}
7618.L1267:
7619	.align	2
7620.L1266:
7621	.word	.LANCHOR0
7622	.word	.LANCHOR3
7623	.word	.LANCHOR1+1514
7624	.word	.LC0
7625	.word	.LANCHOR3-3072
7626	.fnend
7627	.size	ftl_get_ppa_from_index, .-ftl_get_ppa_from_index
7628	.align	2
7629	.global	lpa_hash_get_ppa
7630	.syntax unified
7631	.arm
7632	.fpu softvfp
7633	.type	lpa_hash_get_ppa, %function
7634lpa_hash_get_ppa:
7635	.fnstart
7636	@ args = 0, pretend = 0, frame = 0
7637	@ frame_needed = 0, uses_anonymous_args = 0
7638	ldr	r2, .L1276
7639	uxtb	r3, r0
7640	lsl	r3, r3, #1
7641	sub	r1, r2, #3056
7642	ldr	ip, [r2, #-2552]
7643	sub	r1, r1, #14
7644	ldrh	r3, [r1, r3]
7645	ldr	r1, [r2, #-2556]
7646	movw	r2, #65535
7647	cmp	r3, r2
7648	bne	.L1275
7649	mvn	r0, #0
7650	bx	lr
7651.L1270:
7652	lsl	r3, r3, #1
7653	ldrh	r3, [ip, r3]
7654	cmp	r3, r2
7655	bne	.L1271
7656	mvn	r0, #0
7657	ldr	pc, [sp], #4
7658.L1275:
7659	str	lr, [sp, #-4]!
7660	.save {lr}
7661.L1271:
7662	ldr	lr, [r1, r3, lsl #2]
7663	cmp	r0, lr
7664	bne	.L1270
7665	mov	r0, r3
7666	ldr	lr, [sp], #4
7667	b	ftl_get_ppa_from_index
7668.L1277:
7669	.align	2
7670.L1276:
7671	.word	.LANCHOR3
7672	.fnend
7673	.size	lpa_hash_get_ppa, .-lpa_hash_get_ppa
7674	.align	2
7675	.global	ftl_get_new_free_page
7676	.syntax unified
7677	.arm
7678	.fpu softvfp
7679	.type	ftl_get_new_free_page, %function
7680ftl_get_new_free_page:
7681	.fnstart
7682	@ args = 0, pretend = 0, frame = 0
7683	@ frame_needed = 0, uses_anonymous_args = 0
7684	push	{r4, lr}
7685	.save {r4, lr}
7686	movw	r3, #65535
7687	ldrh	r2, [r0]
7688	mov	r4, r0
7689	cmp	r2, r3
7690	bne	.L1279
7691	movw	r2, #2088
7692	ldr	r1, .L1287
7693	ldr	r0, .L1287+4
7694	bl	printk
7695	bl	dump_stack
7696.L1279:
7697	ldr	r3, .L1287+8
7698	ldrh	r2, [r4, #2]
7699	ldrh	r3, [r3, #-8]
7700	cmp	r2, r3
7701	bne	.L1280
7702	movw	r2, #2089
7703	ldr	r1, .L1287
7704	ldr	r0, .L1287+4
7705	bl	printk
7706	bl	dump_stack
7707.L1280:
7708	ldrh	r3, [r4, #6]
7709	cmp	r3, #0
7710	bne	.L1281
7711	movw	r2, #2090
7712	ldr	r1, .L1287
7713	ldr	r0, .L1287+4
7714	bl	printk
7715	bl	dump_stack
7716.L1281:
7717	ldrb	r3, [r4, #5]	@ zero_extendqisi2
7718	movw	r2, #65535
7719	mov	r1, #0
7720	add	r3, r4, r3, lsl #1
7721	ldrh	r0, [r3, #16]
7722	ldr	r3, .L1287+12
7723	ldrb	ip, [r3, #-3127]	@ zero_extendqisi2
7724.L1282:
7725	cmp	r0, r2
7726	ldrb	r3, [r4, #5]	@ zero_extendqisi2
7727	beq	.L1284
7728	ldr	r1, .L1287+16
7729	add	r3, r3, #1
7730	uxtb	r3, r3
7731	ldrh	r2, [r4, #2]
7732	ldrh	r1, [r1, #-2]
7733	cmp	ip, r3
7734	strb	r3, [r4, #5]
7735	addeq	r3, r2, #1
7736	strheq	r3, [r4, #2]	@ movhi
7737	moveq	r3, #0
7738	strbeq	r3, [r4, #5]
7739	mul	r0, r0, r1
7740	ldrh	r1, [r4, #6]
7741	sub	r1, r1, #1
7742	strh	r1, [r4, #6]	@ movhi
7743	orr	r0, r0, r2
7744	ldrh	r1, [r4, #10]
7745	add	r1, r1, #1
7746	strh	r1, [r4, #10]	@ movhi
7747	pop	{r4, pc}
7748.L1284:
7749	add	r3, r3, #1
7750	uxtb	r3, r3
7751	cmp	r3, ip
7752	strb	r3, [r4, #5]
7753	ldrheq	r3, [r4, #2]
7754	strbeq	r1, [r4, #5]
7755	addeq	r3, r3, #1
7756	strheq	r3, [r4, #2]	@ movhi
7757	ldrb	r3, [r4, #5]	@ zero_extendqisi2
7758	add	r3, r4, r3, lsl #1
7759	ldrh	r0, [r3, #16]
7760	b	.L1282
7761.L1288:
7762	.align	2
7763.L1287:
7764	.word	.LANCHOR1+1537
7765	.word	.LC0
7766	.word	.LANCHOR3-3088
7767	.word	.LANCHOR3
7768	.word	.LANCHOR3-3072
7769	.fnend
7770	.size	ftl_get_new_free_page, .-ftl_get_new_free_page
7771	.align	2
7772	.global	ftl_ext_alloc_new_blk
7773	.syntax unified
7774	.arm
7775	.fpu softvfp
7776	.type	ftl_ext_alloc_new_blk, %function
7777ftl_ext_alloc_new_blk:
7778	.fnstart
7779	@ args = 0, pretend = 0, frame = 0
7780	@ frame_needed = 0, uses_anonymous_args = 0
7781	push	{r4, r5, r6, lr}
7782	.save {r4, r5, r6, lr}
7783	bl	ftl_alloc_sys_blk
7784	sub	r3, r0, #1
7785	movw	r2, #65533
7786	uxth	r3, r3
7787	mov	r4, r0
7788	cmp	r3, r2
7789	bls	.L1290
7790	movw	r2, #2125
7791	ldr	r1, .L1292
7792	ldr	r0, .L1292+4
7793	bl	printk
7794	bl	dump_stack
7795.L1290:
7796	ldr	r5, .L1292+8
7797	mov	r1, #0
7798	mov	r0, r4
7799	bl	ftl_erase_phy_blk
7800	ldr	r3, [r5, #2800]
7801	ldrh	r0, [r3, #130]
7802	bl	ftl_free_sys_blk
7803	ldr	r3, [r5, #2800]
7804	mov	r0, #0
7805	strh	r4, [r3, #130]	@ movhi
7806	strh	r0, [r3, #140]	@ movhi
7807	pop	{r4, r5, r6, pc}
7808.L1293:
7809	.align	2
7810.L1292:
7811	.word	.LANCHOR1+1559
7812	.word	.LC0
7813	.word	.LANCHOR0
7814	.fnend
7815	.size	ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk
7816	.align	2
7817	.global	ftl_total_vpn_update
7818	.syntax unified
7819	.arm
7820	.fpu softvfp
7821	.type	ftl_total_vpn_update, %function
7822ftl_total_vpn_update:
7823	.fnstart
7824	@ args = 0, pretend = 0, frame = 0
7825	@ frame_needed = 0, uses_anonymous_args = 0
7826	ldr	r2, .L1308
7827	ldrh	r3, [r2, #-4]
7828	cmp	r3, #4
7829	cmpls	r0, #0
7830	bne	.L1295
7831	add	r3, r3, #1
7832	strh	r3, [r2, #-4]	@ movhi
7833	bx	lr
7834.L1295:
7835	ldr	r3, .L1308+4
7836	mov	r0, #0
7837	movw	ip, #1080
7838	push	{r4, r5, r6, lr}
7839	.save {r4, r5, r6, lr}
7840	strh	r0, [r2, #-4]	@ movhi
7841	movw	r6, #65535
7842	ldrh	lr, [r3, ip]
7843	mov	ip, r0
7844	ldr	r2, [r3, #1084]
7845	ldr	r1, [r3, #1092]
7846	add	lr, r2, lr, lsl #2
7847	sub	r1, r1, #2
7848.L1297:
7849	cmp	r2, lr
7850	bne	.L1300
7851	ldr	r4, [r3, #1096]
7852	ldr	r3, [r3, #2800]
7853	str	ip, [r4, #524]
7854	str	r0, [r4, #528]
7855	ldrh	r1, [r3, #120]
7856	cmp	r1, #0
7857	popeq	{r4, r5, r6, pc}
7858	bl	__aeabi_uidiv
7859	str	r0, [r4, #532]
7860	pop	{r4, r5, r6, pc}
7861.L1300:
7862	ldrh	r4, [r1, #2]!
7863	cmp	r4, r6
7864	beq	.L1298
7865	ldrb	r5, [r2, #2]	@ zero_extendqisi2
7866	and	r5, r5, #224
7867	cmp	r5, #160
7868	addeq	r0, r0, r4
7869	addne	ip, ip, r4
7870.L1298:
7871	add	r2, r2, #4
7872	b	.L1297
7873.L1309:
7874	.align	2
7875.L1308:
7876	.word	.LANCHOR3-2544
7877	.word	.LANCHOR0
7878	.fnend
7879	.size	ftl_total_vpn_update, .-ftl_total_vpn_update
7880	.align	2
7881	.global	ftl_debug_info_fill
7882	.syntax unified
7883	.arm
7884	.fpu softvfp
7885	.type	ftl_debug_info_fill, %function
7886ftl_debug_info_fill:
7887	.fnstart
7888	@ args = 0, pretend = 0, frame = 0
7889	@ frame_needed = 0, uses_anonymous_args = 0
7890	ldr	r3, .L1317
7891	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
7892	cmp	r3, #8
7893	bls	.L1314
7894	sub	r3, r0, #2
7895	cmp	r2, #0
7896	clz	r3, r3
7897	lsr	r3, r3, #5
7898	moveq	r3, #0
7899	cmp	r3, #0
7900	streq	r3, [r1]
7901	streq	r3, [r1, #4]
7902	beq	.L1314
7903	ldr	r3, .L1317+4
7904	mov	r0, r2
7905	push	{r4, lr}
7906	.save {r4, lr}
7907	mov	r4, r1
7908	str	r3, [r1]
7909	mov	r1, #1024
7910	bl	js_hash
7911	str	r0, [r4, #4]
7912	mov	r0, #0
7913	pop	{r4, pc}
7914.L1314:
7915	mov	r0, #0
7916	bx	lr
7917.L1318:
7918	.align	2
7919.L1317:
7920	.word	.LANCHOR3
7921	.word	1212240712
7922	.fnend
7923	.size	ftl_debug_info_fill, .-ftl_debug_info_fill
7924	.align	2
7925	.global	ftl_vpn_update
7926	.syntax unified
7927	.arm
7928	.fpu softvfp
7929	.type	ftl_vpn_update, %function
7930ftl_vpn_update:
7931	.fnstart
7932	@ args = 0, pretend = 0, frame = 0
7933	@ frame_needed = 0, uses_anonymous_args = 0
7934	push	{r4, lr}
7935	.save {r4, lr}
7936	mov	r4, r0
7937	bl	zftl_list_update_data_list
7938	lsl	r4, r4, #1
7939	ldr	r3, .L1323
7940	ldr	r2, [r3, #1092]
7941	ldrh	r2, [r2, r4]
7942	cmp	r2, #0
7943	moveq	r0, #1
7944	movne	r0, #0
7945	streq	r0, [r3, #2812]
7946	pop	{r4, pc}
7947.L1324:
7948	.align	2
7949.L1323:
7950	.word	.LANCHOR0
7951	.fnend
7952	.size	ftl_vpn_update, .-ftl_vpn_update
7953	.align	2
7954	.global	ftl_vpn_decrement
7955	.syntax unified
7956	.arm
7957	.fpu softvfp
7958	.type	ftl_vpn_decrement, %function
7959ftl_vpn_decrement:
7960	.fnstart
7961	@ args = 0, pretend = 0, frame = 0
7962	@ frame_needed = 0, uses_anonymous_args = 0
7963	movw	r3, #65535
7964	push	{r4, r5, r6, lr}
7965	.save {r4, r5, r6, lr}
7966	cmp	r0, r3
7967	mov	r5, r0
7968	beq	.L1326
7969	ldr	r1, .L1335
7970	lsl	r3, r0, #1
7971	ldr	r2, [r1, #1092]
7972	ldrh	r4, [r2, r3]
7973	cmp	r4, #0
7974	subne	r4, r4, #1
7975	strhne	r4, [r2, r3]	@ movhi
7976	bne	.L1326
7977	ldr	r3, [r1, #1084]
7978	mov	r2, r4
7979	mov	r1, r0
7980	add	r3, r3, r0, lsl #2
7981	ldr	r0, .L1335+4
7982	ldrb	r3, [r3, #2]	@ zero_extendqisi2
7983	lsr	r3, r3, #5
7984	bl	printk
7985.L1332:
7986	mov	r0, #0
7987	pop	{r4, r5, r6, pc}
7988.L1326:
7989	ldr	r3, .L1335+8
7990	ldrh	r0, [r3, #-4]
7991	mov	r4, r3
7992	cmp	r5, r0
7993	beq	.L1332
7994	movw	r2, #65535
7995	cmp	r0, r2
7996	strheq	r5, [r3, #-4]	@ movhi
7997	beq	.L1332
7998	bl	ftl_vpn_update
7999	add	r3, r4, #608
8000	adds	r0, r0, #0
8001	ldrh	r2, [r3]
8002	movne	r0, #1
8003	add	r2, r2, #1
8004	uxth	r2, r2
8005	cmp	r2, #7
8006	movhi	r2, #0
8007	strh	r2, [r3]	@ movhi
8008	ldrh	r3, [r3]
8009	ldrh	r2, [r4, #-4]
8010	strh	r5, [r4, #-4]	@ movhi
8011	add	r3, r4, r3, lsl #1
8012	strh	r2, [r3, #-2]	@ movhi
8013	pop	{r4, r5, r6, pc}
8014.L1336:
8015	.align	2
8016.L1335:
8017	.word	.LANCHOR0
8018	.word	.LC106
8019	.word	.LANCHOR3-3152
8020	.fnend
8021	.size	ftl_vpn_decrement, .-ftl_vpn_decrement
8022	.align	2
8023	.global	lpa_hash_update_ppa
8024	.syntax unified
8025	.arm
8026	.fpu softvfp
8027	.type	lpa_hash_update_ppa, %function
8028lpa_hash_update_ppa:
8029	.fnstart
8030	@ args = 0, pretend = 0, frame = 0
8031	@ frame_needed = 0, uses_anonymous_args = 0
8032	ldr	r3, .L1349
8033	push	{r4, r5, r6, r7, r8, r9, r10, lr}
8034	.save {r4, r5, r6, r7, r8, r9, r10, lr}
8035	uxtb	r7, r0
8036	movw	r8, #65535
8037	sub	lr, r3, #3056
8038	lsl	r7, r7, #1
8039	sub	ip, lr, #14
8040	ldr	r6, [r3, #-2556]
8041	ldrh	ip, [ip, r7]
8042	mov	r5, r8
8043	ldr	r9, [r3, #-2552]
8044.L1338:
8045	cmp	ip, r5
8046	beq	.L1342
8047	ldr	r4, [r6, ip, lsl #2]
8048	add	r10, r6, ip, lsl #2
8049	cmp	r0, r4
8050	lsl	r4, ip, #1
8051	bne	.L1339
8052	mvn	ip, #0
8053	cmp	r8, r5
8054	str	ip, [r10]
8055	lslne	r8, r8, #1
8056	ldr	ip, [r3, #-2552]
8057	ldrh	r5, [ip, r4]
8058	subeq	ip, lr, #14
8059	strheq	r5, [ip, r7]	@ movhi
8060	strhne	r5, [ip, r8]	@ movhi
8061	mvn	r5, #0
8062	ldr	ip, [r3, #-2552]
8063	strh	r5, [ip, r4]	@ movhi
8064.L1342:
8065	ldr	ip, [r3, #-2556]
8066	cmn	r1, #1
8067	str	r0, [ip, r2, lsl #2]
8068	sub	ip, lr, #14
8069	ldrh	lr, [ip, r7]
8070	ldr	r0, [r3, #-2552]
8071	strh	r2, [ip, r7]	@ movhi
8072	lsl	r2, r2, #1
8073	strh	lr, [r0, r2]	@ movhi
8074	beq	.L1344
8075	ldr	r0, .L1349+4
8076	ldr	r2, .L1349+8
8077	ldrb	ip, [r0, #1153]	@ zero_extendqisi2
8078	mvn	r0, #0
8079	ldrh	r2, [r2, #-2]
8080	rsb	ip, ip, #24
8081	sub	ip, ip, r2
8082	lsr	r2, r1, r2
8083	ldrb	r1, [r3, #-3136]	@ zero_extendqisi2
8084	bic	r0, r2, r0, lsl ip
8085	bl	__aeabi_uidiv
8086	uxth	r0, r0
8087	bl	ftl_vpn_decrement
8088.L1344:
8089	mvn	r0, #0
8090	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
8091.L1339:
8092	mov	r8, ip
8093	ldrh	ip, [r9, r4]
8094	b	.L1338
8095.L1350:
8096	.align	2
8097.L1349:
8098	.word	.LANCHOR3
8099	.word	.LANCHOR0
8100	.word	.LANCHOR3-3136
8101	.fnend
8102	.size	lpa_hash_update_ppa, .-lpa_hash_update_ppa
8103	.align	2
8104	.global	ftl_mask_bad_block
8105	.syntax unified
8106	.arm
8107	.fpu softvfp
8108	.type	ftl_mask_bad_block, %function
8109ftl_mask_bad_block:
8110	.fnstart
8111	@ args = 0, pretend = 0, frame = 0
8112	@ frame_needed = 0, uses_anonymous_args = 0
8113	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
8114	.save {r4, r5, r6, r7, r8, r9, r10, lr}
8115	.pad #8
8116	mov	r3, #1
8117	ldr	r7, .L1359
8118	ldr	ip, .L1359+4
8119	ldrb	r4, [r7, #1153]	@ zero_extendqisi2
8120	ldrb	r5, [ip, #-3136]!	@ zero_extendqisi2
8121	rsb	r1, r4, #24
8122	lsl	r4, r3, r4
8123	sub	r4, r4, #1
8124	and	r4, r4, r0, lsr r1
8125	uxtb	r4, r4
8126	smulbb	r2, r4, r5
8127	uxtb	r9, r2
8128	ldrh	r2, [ip, #-2]
8129	sub	r1, r1, r2
8130	lsl	r3, r3, r1
8131	mov	r1, r5
8132	sub	r3, r3, #1
8133	and	r0, r3, r0, lsr r2
8134	uxth	r10, r0
8135	bl	__aeabi_uidiv
8136	ldr	r3, .L1359+8
8137	cmp	r5, #1
8138	subhi	r2, r5, #1
8139	mov	r6, r0
8140	andhi	r2, r2, r10
8141	uxth	r8, r0
8142	ldr	r3, [r3]
8143	addhi	r2, r9, r2
8144	uxtbhi	r9, r2
8145	tst	r3, #16384
8146	beq	.L1353
8147	uxth	r3, r0
8148	str	r10, [sp]
8149	mov	r2, r9
8150	ldr	r0, .L1359+12
8151	mov	r1, r4
8152	bl	printk
8153.L1353:
8154	movw	r3, #1080
8155	ldrh	r3, [r7, r3]
8156	cmp	r3, r8
8157	bls	.L1351
8158	ldr	r3, [r7, #1084]
8159	uxth	r6, r6
8160	add	r6, r3, r6, lsl #2
8161	mov	r3, #1
8162	ldrb	r2, [r6, #3]	@ zero_extendqisi2
8163	orr	r2, r2, r3, lsl r9
8164	strb	r2, [r6, #3]
8165.L1351:
8166	add	sp, sp, #8
8167	@ sp needed
8168	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
8169.L1360:
8170	.align	2
8171.L1359:
8172	.word	.LANCHOR0
8173	.word	.LANCHOR3
8174	.word	.LANCHOR2
8175	.word	.LC107
8176	.fnend
8177	.size	ftl_mask_bad_block, .-ftl_mask_bad_block
8178	.align	2
8179	.global	gc_free_bad_sblk
8180	.syntax unified
8181	.arm
8182	.fpu softvfp
8183	.type	gc_free_bad_sblk, %function
8184gc_free_bad_sblk:
8185	.fnstart
8186	@ args = 0, pretend = 0, frame = 8
8187	@ frame_needed = 0, uses_anonymous_args = 0
8188	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
8189	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8190	.pad #12
8191	ldr	r6, .L1382
8192	ldr	r3, [r6, #916]
8193	cmp	r3, #0
8194	beq	.L1378
8195	ldr	r8, .L1382+4
8196	mov	r7, #0
8197	str	r0, [sp, #4]
8198.L1363:
8199	ldrb	r2, [r8, #-3127]	@ zero_extendqisi2
8200	uxth	r3, r7
8201	cmp	r2, r3
8202	bhi	.L1373
8203.L1378:
8204	mov	r0, #0
8205	add	sp, sp, #12
8206	@ sp needed
8207	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
8208.L1373:
8209	ldrb	r9, [r8, #-3136]	@ zero_extendqisi2
8210	uxth	r0, r7
8211	ldr	r10, .L1382+8
8212	ldr	fp, .L1382+12
8213	mov	r1, r9
8214	bl	__aeabi_idiv
8215	ldrb	r3, [r10, #1153]	@ zero_extendqisi2
8216	uxth	r5, r9
8217	ldrh	r2, [sp, #4]
8218	cmp	r9, #1
8219	ldrh	r4, [fp], #2
8220	mov	r9, #0
8221	rsb	r3, r3, #24
8222	str	r10, [sp]
8223	ldr	r10, .L1382+16
8224	sub	r3, r3, r4
8225	smulbb	r4, r2, r5
8226	subhi	r5, r5, #1
8227	andhi	r5, r5, r7
8228	add	r4, r4, r0, lsl r3
8229	uxth	r4, r4
8230	addhi	r4, r4, r5
8231	uxthhi	r4, r4
8232.L1365:
8233	ldr	r1, [r6, #916]
8234	uxth	r5, r9
8235	mov	r3, r5
8236	cmp	r1, r5
8237	addls	r7, r7, #1
8238	bls	.L1363
8239.L1372:
8240	add	r3, r3, #1088
8241	add	r3, r3, #8
8242	lsl	r3, r3, #1
8243	ldrh	r3, [r10, r3]
8244	cmp	r3, r4
8245	bne	.L1366
8246	mov	r1, r4
8247	ldr	r0, .L1382+20
8248	bl	printk
8249	ldrb	r3, [r8, #-2542]	@ zero_extendqisi2
8250	cmp	r3, #0
8251	bne	.L1367
8252	ldrb	r3, [r8, #-3126]	@ zero_extendqisi2
8253	cmp	r3, #0
8254	beq	.L1368
8255.L1367:
8256	ldr	r3, [sp]
8257	ldr	r2, .L1382+24
8258	ldr	r3, [r3, #2800]
8259	ldr	r3, [r3, #156]
8260	cmp	r3, r2
8261	beq	.L1369
8262.L1368:
8263	ldrh	r0, [fp, #-2]
8264	lsl	r0, r4, r0
8265	bl	ftl_mask_bad_block
8266.L1369:
8267	ldr	r3, [r6, #916]
8268	movw	r0, #1097
8269	movw	ip, #1096
8270.L1370:
8271	cmp	r5, r3
8272	bcc	.L1371
8273	sub	r3, r3, #1
8274	str	r3, [r6, #916]
8275.L1366:
8276	add	r9, r9, #1
8277	b	.L1365
8278.L1371:
8279	add	r1, r5, r0
8280	lsl	r1, r1, #1
8281	ldrh	lr, [r10, r1]
8282	add	r1, r5, ip
8283	lsl	r1, r1, #1
8284	add	r5, r5, #1
8285	uxth	r5, r5
8286	strh	lr, [r10, r1]	@ movhi
8287	b	.L1370
8288.L1383:
8289	.align	2
8290.L1382:
8291	.word	.LANCHOR0+4096
8292	.word	.LANCHOR3
8293	.word	.LANCHOR0
8294	.word	.LANCHOR3-3138
8295	.word	.LANCHOR0+2824
8296	.word	.LC108
8297	.word	1145785929
8298	.fnend
8299	.size	gc_free_bad_sblk, .-gc_free_bad_sblk
8300	.align	2
8301	.global	ftl_free_sblk
8302	.syntax unified
8303	.arm
8304	.fpu softvfp
8305	.type	ftl_free_sblk, %function
8306ftl_free_sblk:
8307	.fnstart
8308	@ args = 0, pretend = 0, frame = 16
8309	@ frame_needed = 0, uses_anonymous_args = 0
8310	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
8311	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8312	lsl	r10, r0, #2
8313	ldr	r5, .L1407
8314	.pad #20
8315	sub	sp, sp, #20
8316	mov	r7, r0
8317	ldr	r6, [r5, #1084]
8318	add	r8, r6, r10
8319	ldrb	r4, [r8, #2]	@ zero_extendqisi2
8320	tst	r4, #8
8321	lsr	r3, r4, #5
8322	str	r3, [sp, #4]
8323	beq	.L1385
8324	ldr	r1, [r5, #2800]
8325	ldrh	r3, [r6, r10]
8326	ldr	fp, [r6, r0, lsl #2]
8327	ldrh	r2, [r1, #74]
8328	ubfx	r3, r3, #0, #11
8329	str	r3, [sp, #12]
8330	ubfx	fp, fp, #11, #8
8331	add	r2, r3, r2
8332	uxth	r3, r2
8333	ldrh	r2, [r1, #72]
8334	add	r1, r5, #1088
8335	ldrh	r9, [r1]
8336	mov	r0, r3
8337	add	r2, r2, fp
8338	str	r3, [sp]
8339	uxth	r2, r2
8340	mov	r1, r9
8341	str	r2, [sp, #8]
8342	bl	__aeabi_uidiv
8343	ldr	ip, .L1407+4
8344	ldr	r2, [sp, #8]
8345	ldr	r3, [sp, #12]
8346	ldrh	r1, [ip, #-12]
8347	uxtah	r0, r2, r0
8348	cmp	r0, r1
8349	ble	.L1386
8350	movw	r2, #2794
8351	ldrh	r0, [r5, r2]
8352	movw	r2, #2786
8353	ldrh	r2, [r5, r2]
8354	add	r0, r0, r2
8355	sub	r2, ip, #560
8356	ldrh	r1, [r2, #-2]
8357	add	r1, r1, #8
8358	cmp	r0, r1
8359	bge	.L1387
8360.L1392:
8361	mov	r2, #2
8362	bfi	r4, r2, #3, #2
8363	b	.L1403
8364.L1387:
8365	movw	r1, #2790
8366	add	r0, r5, #2784
8367	ldrh	r0, [r0]
8368	ldrh	r1, [r5, r1]
8369	ldrh	r2, [r2, #-4]
8370	add	r1, r1, r0
8371	movw	r0, #2792
8372	ldrh	r0, [r5, r0]
8373	add	r2, r2, #8
8374	add	r1, r1, r0
8375	cmp	r1, r2
8376.L1406:
8377	bge	.L1392
8378	b	.L1404
8379.L1386:
8380	ldr	r1, [sp]
8381	mla	r2, r2, r9, r1
8382	ldrh	r1, [ip, #-10]
8383	cmp	r2, r1
8384	ble	.L1388
8385	movw	r2, #2790
8386	ldrh	r1, [r5, r2]
8387	add	r2, r5, #2784
8388	ldrh	r2, [r2]
8389	add	r1, r1, r2
8390	movw	r2, #2792
8391	ldrh	r2, [r5, r2]
8392	add	r1, r1, r2
8393	sub	r2, ip, #560
8394	ldrh	r0, [r2, #-4]
8395	add	ip, r0, #8
8396	cmp	r1, ip
8397	bge	.L1390
8398.L1404:
8399	bfc	r4, #3, #2
8400.L1403:
8401	strb	r4, [r8, #2]
8402.L1388:
8403	ldrb	r2, [r8, #2]	@ zero_extendqisi2
8404	ands	r2, r2, #24
8405	bne	.L1393
8406	mul	r9, r9, fp
8407	ldrh	r2, [r6, r10]
8408	lsr	fp, fp, #3
8409	add	r9, r9, r9, lsl #1
8410	add	r3, r3, r9, asr #2
8411	bfi	r2, r3, #0, #11
8412	strh	r2, [r6, r10]	@ movhi
8413	ldr	r3, [r6, r7, lsl #2]
8414	bfi	r3, fp, #11, #8
8415	str	r3, [r6, r7, lsl #2]
8416.L1394:
8417	mov	r0, r7
8418	bl	zftl_remove_data_node
8419	ldr	r3, .L1407
8420	mov	r0, #0
8421	ldr	r2, [r3, #1084]
8422	mov	r4, r3
8423	add	r10, r2, r10
8424	ldrb	r2, [r10, #2]	@ zero_extendqisi2
8425	bfc	r2, #5, #3
8426	strb	r2, [r10, #2]
8427	lsl	r2, r7, #1
8428	ldr	r1, [r3, #1092]
8429	strh	r0, [r1, r2]	@ movhi
8430	ldr	r2, [sp, #4]
8431	add	r2, r2, #6
8432	and	r2, r2, #7
8433	cmp	r2, #4
8434	bhi	.L1397
8435	mov	r0, r7
8436	bl	gc_free_bad_sblk
8437.L1397:
8438	ldrb	r3, [r8, #2]	@ zero_extendqisi2
8439	tst	r3, #8
8440	beq	.L1398
8441	ldr	r3, [r4, #1096]
8442	movw	r2, #586
8443	ldrh	r1, [r3, r2]
8444	cmp	r1, r7
8445	bne	.L1398
8446	mvn	r1, #0
8447	strh	r1, [r3, r2]	@ movhi
8448	movw	r2, #590
8449	ldrh	r0, [r3, r2]
8450	movw	r1, #65535
8451	cmp	r0, r1
8452	bne	.L1398
8453	strh	r7, [r3, r2]	@ movhi
8454	mov	r1, r7
8455	ldr	r0, .L1407+8
8456	add	sp, sp, #20
8457	@ sp needed
8458	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
8459	b	printk
8460.L1390:
8461	movw	ip, #2794
8462	movw	lr, #2786
8463	ldrh	ip, [r5, ip]
8464	ldrh	lr, [r5, lr]
8465	ldrh	r2, [r2, #-2]
8466	add	ip, ip, lr
8467	add	r2, r2, #8
8468	cmp	ip, r2
8469	blt	.L1392
8470	add	r0, r0, #24
8471	cmp	r1, r0
8472	b	.L1406
8473.L1393:
8474	cmp	r2, #16
8475	bne	.L1394
8476	mov	r0, r3
8477	mov	r1, r9
8478	str	r3, [sp]
8479	bl	__aeabi_idiv
8480	add	r0, r0, r0, lsl #1
8481	ldr	r2, [r6, r7, lsl #2]
8482	add	fp, fp, r0, asr #2
8483	bfi	r2, fp, #11, #8
8484	str	r2, [r6, r7, lsl #2]
8485	ldr	r3, [sp]
8486	ldrh	r2, [r6, r10]
8487	asr	r3, r3, #5
8488	bfi	r2, r3, #0, #11
8489	strh	r2, [r6, r10]	@ movhi
8490	b	.L1394
8491.L1385:
8492	tst	r4, #24
8493	bne	.L1394
8494	movw	r3, #2788
8495	ldrh	r3, [r5, r3]
8496	cmp	r3, #0
8497	bne	.L1394
8498	movw	r3, #2786
8499	ldrh	r0, [r5, r3]
8500	cmp	r0, #15
8501	bhi	.L1394
8502	movw	r3, #2790
8503	add	r2, r5, #2784
8504	ldrh	r2, [r2]
8505	ldrh	r3, [r5, r3]
8506	ldr	ip, .L1407+12
8507	add	r3, r3, r2
8508	movw	r2, #2792
8509	ldrh	r2, [r5, r2]
8510	ldrh	r1, [ip, #-4]
8511	add	r3, r3, r2
8512	add	r1, r1, #16
8513	cmp	r3, r1
8514	ble	.L1394
8515	movw	r3, #2794
8516	ldrh	r2, [r5, r3]
8517	ldrh	r3, [ip, #-2]
8518	add	r2, r2, r0
8519	add	r3, r3, #8
8520	cmp	r2, r3
8521	bge	.L1394
8522	mov	r3, #2
8523	add	r5, r5, #1088
8524	bfi	r4, r3, #3, #2
8525	ldrh	r1, [r5]
8526	strb	r4, [r8, #2]
8527	ldrh	r4, [r6, r10]
8528	ubfx	r4, r4, #0, #11
8529	mov	r0, r4
8530	asr	r4, r4, #5
8531	bl	__aeabi_idiv
8532	ldr	r3, [r6, r7, lsl #2]
8533	add	r0, r0, r0, lsl #1
8534	ubfx	r2, r3, #11, #8
8535	add	r0, r2, r0, asr #2
8536	bfi	r3, r0, #11, #8
8537	str	r3, [r6, r7, lsl #2]
8538	ldrh	r3, [r6, r10]
8539	bfi	r3, r4, #0, #11
8540	strh	r3, [r6, r10]	@ movhi
8541	b	.L1394
8542.L1398:
8543	mov	r0, r7
8544	add	sp, sp, #20
8545	@ sp needed
8546	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
8547	b	zftl_insert_free_list
8548.L1408:
8549	.align	2
8550.L1407:
8551	.word	.LANCHOR0
8552	.word	.LANCHOR3-2528
8553	.word	.LC109
8554	.word	.LANCHOR3-3088
8555	.fnend
8556	.size	ftl_free_sblk, .-ftl_free_sblk
8557	.align	2
8558	.global	gc_free_src_blk
8559	.syntax unified
8560	.arm
8561	.fpu softvfp
8562	.type	gc_free_src_blk, %function
8563gc_free_src_blk:
8564	.fnstart
8565	@ args = 0, pretend = 0, frame = 0
8566	@ frame_needed = 0, uses_anonymous_args = 0
8567	push	{r4, r5, r6, r7, r8, r9, r10, lr}
8568	.save {r4, r5, r6, r7, r8, r9, r10, lr}
8569	mov	r5, #0
8570	ldr	r8, .L1447
8571	ldr	r7, .L1447+4
8572	mov	r6, r8
8573.L1410:
8574	ldrh	r2, [r7, #52]
8575	uxth	r3, r5
8576	cmp	r2, r3
8577	bhi	.L1424
8578	mov	r3, #0
8579	strh	r3, [r7, #52]	@ movhi
8580	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
8581.L1424:
8582	uxth	r3, r5
8583	add	r3, r7, r3, lsl #1
8584	ldrh	r4, [r3, #54]
8585	ldr	r3, [r8, #1092]
8586	lsl	r9, r4, #1
8587	ldrh	r2, [r3, r9]
8588	cmp	r2, #0
8589	beq	.L1411
8590	mov	r1, r4
8591	ldr	r0, .L1447+8
8592	bl	printk
8593.L1411:
8594	ldr	r3, [r6, #1092]
8595	mov	r2, #0
8596	strh	r2, [r3, r9]	@ movhi
8597	ldr	r3, [r6, #1092]
8598	ldrh	r3, [r3, r9]
8599	cmp	r3, r2
8600	bne	.L1412
8601	ldr	r3, .L1447+12
8602	ldr	r9, [r6, #1084]
8603	ldr	r3, [r3]
8604	add	r9, r9, r4, lsl #2
8605	tst	r3, #256
8606	beq	.L1413
8607	ldrb	r2, [r9, #2]	@ zero_extendqisi2
8608	mov	r1, r4
8609	ldr	r0, .L1447+16
8610	lsr	r2, r2, #5
8611	bl	printk
8612.L1413:
8613	ldrb	r3, [r9, #2]	@ zero_extendqisi2
8614	and	r2, r3, #224
8615	and	r3, r3, #192
8616	cmp	r3, #0
8617	cmpne	r2, #224
8618	bne	.L1414
8619	movw	r2, #1363
8620	ldr	r1, .L1447+20
8621	ldr	r0, .L1447+24
8622	bl	printk
8623	bl	dump_stack
8624.L1414:
8625	mov	r0, r4
8626	bl	ftl_free_sblk
8627	ldr	r3, [r6, #1096]
8628	ldrh	r1, [r3, #124]
8629	cmp	r1, #0
8630	beq	.L1415
8631	add	r0, r3, #392
8632	mov	r2, #0
8633.L1417:
8634	ldrh	ip, [r0], #2
8635	cmp	r4, ip
8636	bne	.L1416
8637	add	r2, r2, #196
8638	mvn	r0, #0
8639	lsl	r2, r2, #1
8640	add	r1, r1, r0
8641	strh	r0, [r3, r2]	@ movhi
8642	strh	r1, [r3, #124]	@ movhi
8643.L1415:
8644	ldrh	r1, [r3, #120]
8645	cmp	r1, #0
8646	beq	.L1418
8647	add	r0, r3, #136
8648	mov	r2, #0
8649.L1420:
8650	ldrh	ip, [r0], #2
8651	cmp	r4, ip
8652	bne	.L1419
8653	mvn	r0, #0
8654	add	r2, r3, r2, lsl #1
8655	add	r1, r1, r0
8656	strh	r0, [r2, #136]	@ movhi
8657	strh	r1, [r3, #120]	@ movhi
8658.L1418:
8659	ldrh	r1, [r3, #122]
8660	cmp	r1, #0
8661	beq	.L1421
8662	add	r0, r3, #264
8663	mov	r2, #0
8664.L1423:
8665	ldrh	ip, [r0], #2
8666	cmp	r4, ip
8667	bne	.L1422
8668	add	r2, r2, #132
8669	mvn	r0, #0
8670	lsl	r2, r2, #1
8671	add	r1, r1, r0
8672	strh	r0, [r3, r2]	@ movhi
8673	strh	r1, [r3, #122]	@ movhi
8674.L1421:
8675	add	r5, r5, #1
8676	b	.L1410
8677.L1416:
8678	add	r2, r2, #1
8679	cmp	r2, #64
8680	bne	.L1417
8681	b	.L1415
8682.L1419:
8683	add	r2, r2, #1
8684	cmp	r2, #64
8685	bne	.L1420
8686	b	.L1418
8687.L1422:
8688	add	r2, r2, #1
8689	cmp	r2, #64
8690	bne	.L1423
8691	b	.L1421
8692.L1412:
8693	mov	r1, #1
8694	mov	r0, r4
8695	bl	gc_add_sblk
8696	b	.L1421
8697.L1448:
8698	.align	2
8699.L1447:
8700	.word	.LANCHOR0
8701	.word	.LANCHOR0+2824
8702	.word	.LC110
8703	.word	.LANCHOR2
8704	.word	.LC111
8705	.word	.LANCHOR1+1581
8706	.word	.LC0
8707	.fnend
8708	.size	gc_free_src_blk, .-gc_free_src_blk
8709	.align	2
8710	.global	print_ftl_debug_info
8711	.syntax unified
8712	.arm
8713	.fpu softvfp
8714	.type	print_ftl_debug_info, %function
8715print_ftl_debug_info:
8716	.fnstart
8717	@ args = 0, pretend = 0, frame = 0
8718	@ frame_needed = 0, uses_anonymous_args = 0
8719	push	{r4, lr}
8720	.save {r4, lr}
8721	.pad #32
8722	sub	sp, sp, #32
8723	ldr	r4, .L1451
8724	ldr	r1, [r4, #2800]
8725	add	r3, r4, #2784
8726	ldr	r0, [r4, #1096]
8727	ldr	ip, [r4, #2780]
8728	ldrh	r2, [r1, #146]
8729	ldrh	r3, [r3]
8730	ldrh	r1, [r1, #148]
8731	str	ip, [sp, #28]
8732	ldr	ip, [r0, #528]
8733	str	ip, [sp, #24]
8734	ldr	r0, [r0, #524]
8735	str	r0, [sp, #20]
8736	movw	r0, #2794
8737	ldrh	r0, [r4, r0]
8738	str	r0, [sp, #16]
8739	movw	r0, #2792
8740	ldrh	r0, [r4, r0]
8741	str	r0, [sp, #12]
8742	movw	r0, #2790
8743	ldrh	r0, [r4, r0]
8744	str	r0, [sp, #8]
8745	movw	r0, #2788
8746	ldrh	r0, [r4, r0]
8747	str	r0, [sp, #4]
8748	movw	r0, #2786
8749	ldrh	r0, [r4, r0]
8750	str	r0, [sp]
8751	ldr	r0, .L1451+4
8752	bl	printk
8753	ldr	r1, [r4, #2800]
8754	ldrb	r3, [r4, #2797]	@ zero_extendqisi2
8755	ldr	r0, .L1451+8
8756	ldr	r2, [r1, #64]
8757	str	r2, [sp, #4]
8758	ldr	r2, [r1, #8]
8759	str	r2, [sp]
8760	ldr	r2, [r1, #28]
8761	ldr	r1, [r1, #20]
8762	bl	printk
8763	ldr	r1, [r4, #2800]
8764	ldr	r0, .L1451+12
8765	ldr	r3, [r1, #16]
8766	ldr	r2, [r1, #60]
8767	ldr	r1, [r1, #52]
8768	lsr	r3, r3, #11
8769	bl	printk
8770	ldr	r2, [r4, #2800]
8771	ldrh	r0, [r2, #98]
8772	ldrh	r3, [r2, #88]
8773	ldrh	r1, [r2, #74]
8774	str	r0, [sp, #24]
8775	ldrh	r0, [r2, #94]
8776	str	r0, [sp, #20]
8777	ldrh	r0, [r2, #90]
8778	str	r0, [sp, #16]
8779	ldr	r0, [r2, #80]
8780	str	r0, [sp, #12]
8781	ldrh	r0, [r2, #72]
8782	str	r0, [sp, #8]
8783	ldrh	r0, [r2, #96]
8784	str	r0, [sp, #4]
8785	ldrh	r0, [r2, #92]
8786	str	r0, [sp]
8787	ldr	r0, .L1451+16
8788	ldr	r2, [r2, #84]
8789	bl	printk
8790	movw	r0, #2804
8791	movw	r3, #2818
8792	ldrh	r0, [r4, r0]
8793	movw	r2, #2806
8794	movw	r1, #2808
8795	ldrh	r3, [r4, r3]
8796	ldrh	r2, [r4, r2]
8797	str	r0, [sp, #4]
8798	add	r0, r4, #2816
8799	ldrh	r0, [r0]
8800	ldrh	r1, [r4, r1]
8801	str	r0, [sp]
8802	ldr	r0, .L1451+20
8803	bl	printk
8804	ldr	ip, [r4, #2800]
8805	movw	r2, #586
8806	ldr	r0, [r4, #1096]
8807	ldrh	lr, [ip, #150]
8808	add	r3, r0, #588
8809	add	r1, r0, #584
8810	ldrh	r2, [r0, r2]
8811	ldrh	r3, [r3]
8812	ldrh	r1, [r1]
8813	str	lr, [sp, #8]
8814	ldr	ip, [ip, #156]
8815	str	ip, [sp, #4]
8816	movw	ip, #590
8817	ldrh	r0, [r0, ip]
8818	str	r0, [sp]
8819	ldr	r0, .L1451+24
8820	bl	printk
8821	add	sp, sp, #32
8822	@ sp needed
8823	pop	{r4, pc}
8824.L1452:
8825	.align	2
8826.L1451:
8827	.word	.LANCHOR0
8828	.word	.LC112
8829	.word	.LC113
8830	.word	.LC114
8831	.word	.LC115
8832	.word	.LC116
8833	.word	.LC117
8834	.fnend
8835	.size	print_ftl_debug_info, .-print_ftl_debug_info
8836	.align	2
8837	.global	ftl_write_buf
8838	.syntax unified
8839	.arm
8840	.fpu softvfp
8841	.type	ftl_write_buf, %function
8842ftl_write_buf:
8843	.fnstart
8844	@ args = 0, pretend = 0, frame = 0
8845	@ frame_needed = 0, uses_anonymous_args = 0
8846	push	{r4, r5, r6, lr}
8847	.save {r4, r5, r6, lr}
8848	subs	r4, r0, #0
8849	bne	.L1454
8850	movw	r2, #811
8851	ldr	r1, .L1464
8852	ldr	r0, .L1464+4
8853	bl	printk
8854	bl	dump_stack
8855	bl	print_ftl_debug_info
8856	mvn	r0, #0
8857	pop	{r4, r5, r6, pc}
8858.L1457:
8859	mov	r1, r4
8860	ldr	r0, .L1464+8
8861	bl	buf_add_tail
8862	ldr	r3, [r6, #2800]
8863	ldrb	r1, [r4, #40]	@ zero_extendqisi2
8864	ldrb	r0, [r6, #2796]	@ zero_extendqisi2
8865	ldr	r2, [r3, #16]
8866	add	r0, r0, #1
8867	add	r2, r2, r1
8868	uxtb	r0, r0
8869	str	r2, [r3, #16]
8870	ldr	r2, [r3, #32]
8871	strb	r0, [r6, #2796]
8872	add	r2, r2, #1
8873	str	r2, [r3, #32]
8874	pop	{r4, r5, r6, pc}
8875.L1454:
8876	ldr	r3, .L1464+12
8877	ldrb	r1, [r4, #40]	@ zero_extendqisi2
8878	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
8879	mov	r5, r3
8880	cmp	r1, r2
8881	bls	.L1459
8882	movw	r2, #818
8883	ldr	r1, .L1464
8884	ldr	r0, .L1464+4
8885	bl	printk
8886	bl	dump_stack
8887.L1459:
8888	ldrb	r3, [r4, #40]	@ zero_extendqisi2
8889	ldr	r6, .L1464+16
8890	cmp	r3, #0
8891	beq	.L1456
8892	ldrb	r2, [r5, #-2546]	@ zero_extendqisi2
8893	cmp	r2, r3
8894	bcs	.L1457
8895.L1456:
8896	mov	r0, r4
8897	bl	zbuf_free
8898	ldrb	r0, [r6, #2796]	@ zero_extendqisi2
8899	pop	{r4, r5, r6, pc}
8900.L1465:
8901	.align	2
8902.L1464:
8903	.word	.LANCHOR1+1597
8904	.word	.LC0
8905	.word	.LANCHOR0+2820
8906	.word	.LANCHOR3
8907	.word	.LANCHOR0
8908	.fnend
8909	.size	ftl_write_buf, .-ftl_write_buf
8910	.align	2
8911	.global	ftl_write_completed
8912	.syntax unified
8913	.arm
8914	.fpu softvfp
8915	.type	ftl_write_completed, %function
8916ftl_write_completed:
8917	.fnstart
8918	@ args = 0, pretend = 0, frame = 0
8919	@ frame_needed = 0, uses_anonymous_args = 0
8920	push	{r4, r5, r6, r7, r8, r9, r10, lr}
8921	.save {r4, r5, r6, r7, r8, r9, r10, lr}
8922	mov	r10, #0
8923	ldr	r8, .L1483
8924	ldr	r9, .L1483+4
8925	mov	r6, r8
8926.L1467:
8927	ldrb	r5, [r8, #2773]	@ zero_extendqisi2
8928	cmp	r5, #255
8929	bne	.L1478
8930	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
8931.L1478:
8932	mov	r2, #48
8933	ldr	r3, .L1483+8
8934	mul	r2, r2, r5
8935	add	r7, r5, r5, lsl #1
8936	add	r7, r3, r7, lsl #4
8937	add	r4, r8, r2
8938	ldrb	r1, [r4, #1232]	@ zero_extendqisi2
8939	strb	r1, [r8, #2773]
8940	ldr	r1, [r4, #1268]
8941	cmn	r1, #1
8942	bne	.L1468
8943	ldr	r1, .L1483+12
8944	ldrb	r3, [r1, #-2542]	@ zero_extendqisi2
8945	cmp	r3, #0
8946	bne	.L1469
8947	ldrb	r3, [r1, #-3126]	@ zero_extendqisi2
8948	cmp	r3, #0
8949	beq	.L1470
8950.L1469:
8951	ldr	r3, [r6, #2800]
8952	ldr	r3, [r3, #156]
8953	cmp	r3, r9
8954	beq	.L1471
8955.L1470:
8956	mov	r10, #48
8957	ldr	r3, .L1483+16
8958	mla	r10, r10, r5, r6
8959	ldrb	r1, [r1, #-3136]	@ zero_extendqisi2
8960	ldrh	r0, [r3]
8961	ldrb	r3, [r6, #1153]	@ zero_extendqisi2
8962	ldr	r2, [r10, #1256]
8963	rsb	r3, r3, #24
8964	sub	r3, r3, r0
8965	lsr	r2, r2, r0
8966	mvn	r0, #0
8967	bic	r0, r2, r0, lsl r3
8968	bl	__aeabi_uidiv
8969	ldr	r3, [r6, #1096]
8970	uxth	r4, r0
8971	movw	r2, #65535
8972	ldr	r0, .L1483+20
8973	ldr	r1, [r3, #560]
8974	cmp	r1, r2
8975	mov	r1, r4
8976	streq	r4, [r3, #560]
8977	ldreq	r2, [r10, #1256]
8978	streq	r2, [r3, #564]
8979	mov	r3, #48
8980	mla	r5, r3, r5, r6
8981	ldr	r3, [r5, #1256]
8982	ldr	r2, [r5, #1252]
8983	bl	printk
8984	ldr	r3, [r6, #1096]
8985	ldr	r2, [r3, #556]
8986	add	r2, r2, #1
8987	str	r2, [r3, #556]
8988	ldrh	r2, [r3, #16]
8989	cmp	r2, r4
8990	moveq	r2, #0
8991	strheq	r2, [r3, #22]	@ movhi
8992	beq	.L1471
8993	ldrh	r2, [r3, #48]
8994	cmp	r2, r4
8995	moveq	r2, #0
8996	strheq	r2, [r3, #54]	@ movhi
8997.L1471:
8998	mov	r0, r7
8999	mov	r10, #1
9000	bl	ftl_write_buf
9001	b	.L1467
9002.L1468:
9003	cmp	r10, #1
9004	bne	.L1476
9005	ldr	r2, [r4, #1256]
9006	ldr	r1, [r4, #1252]
9007	ldr	r0, .L1483+24
9008	bl	printk
9009	mov	r0, r7
9010	bl	ftl_write_buf
9011	b	.L1467
9012.L1476:
9013	add	r3, r3, r2
9014	ldr	r1, [r4, #1260]
9015	ldrh	r2, [r3, #32]
9016	ldr	r0, [r4, #1252]
9017	bl	lpa_hash_update_ppa
9018	ldrb	r3, [r4, #1234]	@ zero_extendqisi2
9019	tst	r3, #4
9020	bicne	r3, r3, #2
9021	strbne	r3, [r4, #1234]
9022	bne	.L1467
9023	mov	r0, r7
9024	bl	zbuf_free
9025	b	.L1467
9026.L1484:
9027	.align	2
9028.L1483:
9029	.word	.LANCHOR0
9030	.word	1145785929
9031	.word	.LANCHOR0+1232
9032	.word	.LANCHOR3
9033	.word	.LANCHOR3-3138
9034	.word	.LC118
9035	.word	.LC119
9036	.fnend
9037	.size	ftl_write_completed, .-ftl_write_completed
9038	.align	2
9039	.global	zftl_add_read_buf
9040	.syntax unified
9041	.arm
9042	.fpu softvfp
9043	.type	zftl_add_read_buf, %function
9044zftl_add_read_buf:
9045	.fnstart
9046	@ args = 0, pretend = 0, frame = 0
9047	@ frame_needed = 0, uses_anonymous_args = 0
9048	push	{r4, r5, r6, lr}
9049	.save {r4, r5, r6, lr}
9050	subs	r5, r0, #0
9051	bne	.L1486
9052	movw	r2, #1151
9053	ldr	r1, .L1491
9054	ldr	r0, .L1491+4
9055	bl	printk
9056	bl	dump_stack
9057	pop	{r4, r5, r6, lr}
9058	b	print_ftl_debug_info
9059.L1486:
9060	ldr	r4, .L1491+8
9061	ldrb	r2, [r5, #40]	@ zero_extendqisi2
9062	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
9063	cmp	r2, r3
9064	bls	.L1488
9065	movw	r2, #1158
9066	ldr	r1, .L1491
9067	ldr	r0, .L1491+4
9068	bl	printk
9069	bl	dump_stack
9070.L1488:
9071	mov	r1, r5
9072	ldr	r0, .L1491+12
9073	bl	buf_add_tail
9074	ldrb	r3, [r4, #-2535]	@ zero_extendqisi2
9075	add	r3, r3, #1
9076	strb	r3, [r4, #-2535]
9077	pop	{r4, r5, r6, pc}
9078.L1492:
9079	.align	2
9080.L1491:
9081	.word	.LANCHOR1+1611
9082	.word	.LC0
9083	.word	.LANCHOR3
9084	.word	.LANCHOR3-2536
9085	.fnend
9086	.size	zftl_add_read_buf, .-zftl_add_read_buf
9087	.align	2
9088	.global	sblk_init
9089	.syntax unified
9090	.arm
9091	.fpu softvfp
9092	.type	sblk_init, %function
9093sblk_init:
9094	.fnstart
9095	@ args = 0, pretend = 0, frame = 0
9096	@ frame_needed = 0, uses_anonymous_args = 0
9097	@ link register save eliminated.
9098	ldr	r3, .L1494
9099	mvn	r2, #0
9100	mov	r0, #0
9101	strb	r2, [r3, #2770]
9102	strb	r2, [r3, #2773]
9103	strb	r2, [r3, #2771]
9104	strb	r2, [r3, #2772]
9105	bx	lr
9106.L1495:
9107	.align	2
9108.L1494:
9109	.word	.LANCHOR0
9110	.fnend
9111	.size	sblk_init, .-sblk_init
9112	.align	2
9113	.global	dump_sblk_queue
9114	.syntax unified
9115	.arm
9116	.fpu softvfp
9117	.type	dump_sblk_queue, %function
9118dump_sblk_queue:
9119	.fnstart
9120	@ args = 0, pretend = 0, frame = 0
9121	@ frame_needed = 0, uses_anonymous_args = 0
9122	push	{r4, r5, r6, lr}
9123	.save {r4, r5, r6, lr}
9124	ldr	r5, .L1506
9125	ldr	r0, .L1506+4
9126	ldrb	r1, [r5, #2770]	@ zero_extendqisi2
9127	bl	printk
9128	ldrb	r4, [r5, #2770]	@ zero_extendqisi2
9129	cmp	r4, #255
9130	popeq	{r4, r5, r6, pc}
9131	add	r4, r4, r4, lsl #1
9132	add	r5, r5, #1232
9133	ldr	r6, .L1506+8
9134	add	r4, r5, r4, lsl #4
9135.L1498:
9136	ldr	r3, [r4, #24]
9137	mov	r0, r6
9138	ldrb	r2, [r4, #42]	@ zero_extendqisi2
9139	ldrb	r1, [r4, #1]	@ zero_extendqisi2
9140	bl	printk
9141	ldrb	r4, [r4]	@ zero_extendqisi2
9142	cmp	r4, #255
9143	popeq	{r4, r5, r6, pc}
9144	add	r4, r4, r4, lsl #1
9145	add	r4, r5, r4, lsl #4
9146	b	.L1498
9147.L1507:
9148	.align	2
9149.L1506:
9150	.word	.LANCHOR0
9151	.word	.LC120
9152	.word	.LC121
9153	.fnend
9154	.size	dump_sblk_queue, .-dump_sblk_queue
9155	.align	2
9156	.global	queue_lun_state
9157	.syntax unified
9158	.arm
9159	.fpu softvfp
9160	.type	queue_lun_state, %function
9161queue_lun_state:
9162	.fnstart
9163	@ args = 0, pretend = 0, frame = 8
9164	@ frame_needed = 0, uses_anonymous_args = 0
9165	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9166	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9167	.pad #12
9168	ldr	lr, .L1520
9169	ldrb	ip, [lr, #2770]	@ zero_extendqisi2
9170	cmp	ip, #255
9171	beq	.L1516
9172	ldrb	r3, [lr, #1153]	@ zero_extendqisi2
9173	mov	r2, #1
9174	mov	r8, #48
9175	movw	r10, #1274
9176	rsb	r6, r3, #24
9177	lsl	r3, r2, r3
9178	sub	r3, r3, #1
9179	uxth	r3, r3
9180	and	r4, r3, r0, asr r6
9181	str	r4, [sp]
9182	ldr	r4, .L1520+4
9183	sub	r5, r4, #3136
9184	ldrb	r4, [r4, #-3136]	@ zero_extendqisi2
9185	ldrh	r7, [r5, #-2]
9186	sub	r4, r4, #1
9187	sub	r5, r6, r7
9188	uxth	r4, r4
9189	lsl	r2, r2, r5
9190	and	r0, r4, r0, asr r7
9191	sub	r2, r2, #1
9192	uxth	r2, r2
9193	and	r0, r0, r2
9194	str	r0, [sp, #4]
9195.L1515:
9196	mla	r0, r8, ip, lr
9197	ldr	r9, [sp]
9198	movw	r5, #1256
9199	ldr	r5, [r0, r5]
9200	and	fp, r3, r5, lsr r6
9201	cmp	r9, fp
9202	bne	.L1510
9203	and	r5, r4, r5, lsr r7
9204	ldr	r9, [sp, #4]
9205	ldrb	r0, [r0, r10]	@ zero_extendqisi2
9206	and	r5, r5, r2
9207	cmp	r9, r5
9208	bne	.L1511
9209	cmp	r1, #1
9210	bne	.L1508
9211.L1513:
9212	sub	r5, r0, #7
9213	tst	r5, #253
9214	beq	.L1510
9215.L1508:
9216	add	sp, sp, #12
9217	@ sp needed
9218	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
9219.L1511:
9220	cmp	r1, #3
9221	ldrls	pc, [pc, r1, asl #2]
9222	b	.L1510
9223.L1512:
9224	.word	.L1508
9225	.word	.L1513
9226	.word	.L1514
9227	.word	.L1508
9228.L1514:
9229	cmp	r0, #11
9230	bne	.L1508
9231.L1510:
9232	mla	ip, r8, ip, lr
9233	ldrb	ip, [ip, #1232]	@ zero_extendqisi2
9234	cmp	ip, #255
9235	bne	.L1515
9236.L1516:
9237	mov	r0, #0
9238	b	.L1508
9239.L1521:
9240	.align	2
9241.L1520:
9242	.word	.LANCHOR0
9243	.word	.LANCHOR3
9244	.fnend
9245	.size	queue_lun_state, .-queue_lun_state
9246	.align	2
9247	.global	queue_remove_completed_req
9248	.syntax unified
9249	.arm
9250	.fpu softvfp
9251	.type	queue_remove_completed_req, %function
9252queue_remove_completed_req:
9253	.fnstart
9254	@ args = 0, pretend = 0, frame = 16
9255	@ frame_needed = 0, uses_anonymous_args = 0
9256	ldr	r3, .L1548
9257	mov	ip, #0
9258	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
9259	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9260	.pad #20
9261	sub	sp, sp, #20
9262	ldr	r7, .L1548+4
9263	mov	r0, #48
9264	mvn	r4, #0
9265	movw	r5, #1275
9266	ldrb	r1, [r3, #2771]	@ zero_extendqisi2
9267	movw	r6, #1233
9268	ldrb	r2, [r3, #2770]	@ zero_extendqisi2
9269	add	r8, r3, #1232
9270	add	r9, r7, #1
9271	add	r10, r7, #2
9272	str	r1, [sp, #8]
9273	ldrb	r1, [r3, #2773]	@ zero_extendqisi2
9274	str	r1, [sp, #12]
9275	ldrb	r1, [r3, #2772]	@ zero_extendqisi2
9276	str	r1, [sp, #4]
9277.L1523:
9278	cmp	r2, #255
9279	beq	.L1524
9280	mla	fp, r0, r2, r3
9281	movw	lr, #1274
9282	mov	r1, r2
9283	ldrb	lr, [fp, lr]	@ zero_extendqisi2
9284	sub	lr, lr, #12
9285	cmp	lr, #1
9286	bls	.L1525
9287	cmp	ip, #0
9288	beq	.L1522
9289.L1547:
9290	strb	r2, [r3, #2770]
9291	b	.L1522
9292.L1525:
9293	mul	ip, r0, r1
9294	ldrb	r2, [fp, #1232]	@ zero_extendqisi2
9295	add	lr, r3, ip
9296	ldrb	fp, [lr, r5]	@ zero_extendqisi2
9297	strb	r4, [lr, #1232]
9298	cmp	fp, #1
9299	bne	.L1528
9300	add	ip, r8, ip
9301	ldrh	ip, [ip, #34]
9302	cmp	ip, #0
9303	ldreq	ip, [sp, #12]
9304	moveq	lr, r10
9305	ldrne	ip, [sp, #4]
9306	movne	lr, r9
9307.L1529:
9308	cmp	ip, #255
9309	bne	.L1534
9310	strb	r2, [r3, #2770]
9311	mov	r2, #48
9312	mla	r3, r2, r1, r3
9313	ldrb	r3, [r3, #1233]	@ zero_extendqisi2
9314	strb	r3, [lr]
9315.L1522:
9316	add	sp, sp, #20
9317	@ sp needed
9318	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
9319.L1528:
9320	cmp	fp, #0
9321	bne	.L1530
9322	ldr	ip, [lr, #1252]
9323	cmn	ip, #1
9324	ldrne	ip, [sp, #8]
9325	movne	lr, r7
9326	bne	.L1529
9327.L1530:
9328	mov	ip, #1
9329	b	.L1523
9330.L1534:
9331	mov	lr, ip
9332	mla	ip, r0, ip, r3
9333	ldrb	ip, [ip, #1232]	@ zero_extendqisi2
9334	cmp	ip, #255
9335	bne	.L1534
9336	mla	r1, r0, r1, r3
9337	mla	lr, r0, lr, r3
9338	ldrb	r1, [r1, r6]	@ zero_extendqisi2
9339	strb	r1, [lr, #1232]
9340	b	.L1530
9341.L1524:
9342	cmp	ip, #0
9343	beq	.L1522
9344	mvn	r2, #0
9345	b	.L1547
9346.L1549:
9347	.align	2
9348.L1548:
9349	.word	.LANCHOR0
9350	.word	.LANCHOR0+2771
9351	.fnend
9352	.size	queue_remove_completed_req, .-queue_remove_completed_req
9353	.align	2
9354	.global	pm_select_ram_region
9355	.syntax unified
9356	.arm
9357	.fpu softvfp
9358	.type	pm_select_ram_region, %function
9359pm_select_ram_region:
9360	.fnstart
9361	@ args = 0, pretend = 0, frame = 0
9362	@ frame_needed = 0, uses_anonymous_args = 0
9363	ldr	r1, .L1561
9364	mov	r3, #0
9365	movw	r0, #65535
9366	push	{r4, r5, r6, lr}
9367	.save {r4, r5, r6, lr}
9368	add	r2, r1, #4
9369.L1552:
9370	lsl	ip, r3, #3
9371	uxth	r4, r3
9372	ldrh	ip, [ip, r1]
9373	cmp	ip, r0
9374	beq	.L1551
9375	add	r3, r3, #1
9376	cmp	r3, #32
9377	bne	.L1552
9378	mov	r4, r3
9379	mov	r1, #0
9380	mov	r3, #32768
9381	sub	ip, r2, #4
9382.L1554:
9383	add	r0, ip, r1, lsl #3
9384	uxth	lr, r1
9385	ldrh	r0, [r0, #2]
9386	tst	r0, #32768
9387	bne	.L1553
9388	cmp	r0, r3
9389	movcc	r3, r0
9390	movcc	r4, lr
9391.L1553:
9392	add	r1, r1, #1
9393	cmp	r1, #32
9394	bne	.L1554
9395	cmp	r4, #32
9396	bne	.L1551
9397	ldr	r3, .L1561+4
9398	mvn	r1, #0
9399	sub	r2, r2, #4
9400	ldrb	lr, [r3, #-2276]	@ zero_extendqisi2
9401	mov	r3, #0
9402.L1556:
9403	lsl	ip, r3, #3
9404	uxth	r5, r3
9405	add	r0, r2, ip
9406	ldrh	r0, [r0, #2]
9407	cmp	r0, r1
9408	bcs	.L1555
9409	ldrh	ip, [ip, r2]
9410	cmp	ip, lr
9411	movne	r1, r0
9412	movne	r4, r5
9413.L1555:
9414	add	r3, r3, #1
9415	cmp	r3, #32
9416	bne	.L1556
9417	cmp	r4, #32
9418	bne	.L1551
9419	movw	r2, #377
9420	ldr	r1, .L1561+8
9421	ldr	r0, .L1561+12
9422	bl	printk
9423	bl	dump_stack
9424.L1551:
9425	mov	r0, r4
9426	pop	{r4, r5, r6, pc}
9427.L1562:
9428	.align	2
9429.L1561:
9430	.word	.LANCHOR3-2532
9431	.word	.LANCHOR3
9432	.word	.LANCHOR1+1629
9433	.word	.LC0
9434	.fnend
9435	.size	pm_select_ram_region, .-pm_select_ram_region
9436	.align	2
9437	.global	ftl_memset
9438	.syntax unified
9439	.arm
9440	.fpu softvfp
9441	.type	ftl_memset, %function
9442ftl_memset:
9443	.fnstart
9444	@ args = 0, pretend = 0, frame = 0
9445	@ frame_needed = 0, uses_anonymous_args = 0
9446	@ link register save eliminated.
9447	b	memset
9448	.fnend
9449	.size	ftl_memset, .-ftl_memset
9450	.align	2
9451	.global	flash_lsb_page_tbl_build
9452	.syntax unified
9453	.arm
9454	.fpu softvfp
9455	.type	flash_lsb_page_tbl_build, %function
9456flash_lsb_page_tbl_build:
9457	.fnstart
9458	@ args = 0, pretend = 0, frame = 0
9459	@ frame_needed = 0, uses_anonymous_args = 0
9460	push	{r4, r5, r6, lr}
9461	.save {r4, r5, r6, lr}
9462	mov	r6, r0
9463	ldr	r5, .L1618
9464	mov	r0, #1024
9465	ldr	r3, [r5, #1104]
9466	ldrb	r1, [r3, #12]	@ zero_extendqisi2
9467	bl	__aeabi_idiv
9468	cmp	r6, #0
9469	uxth	r4, r0
9470	bne	.L1565
9471	add	r5, r5, #4
9472.L1566:
9473	lsl	r3, r6, #1
9474	strh	r6, [r3, r5]	@ movhi
9475	add	r6, r6, #1
9476	cmp	r6, #512
9477	bne	.L1566
9478.L1572:
9479	mov	r2, #2048
9480	mov	r1, #255
9481	ldr	r0, .L1618+4
9482	bl	ftl_memset
9483	ldr	ip, .L1618+8
9484	mov	r3, #0
9485	ldr	r0, .L1618+4
9486.L1567:
9487	lsl	r2, r3, #1
9488	add	r3, r3, #1
9489	ldrh	r2, [r2, ip]
9490	lsl	r1, r2, #1
9491	strh	r2, [r0, r1]	@ movhi
9492	uxth	r2, r3
9493	cmp	r2, r4
9494	bcc	.L1567
9495	pop	{r4, r5, r6, pc}
9496.L1565:
9497	cmp	r6, #1
9498	bne	.L1568
9499	mov	r3, #0
9500	add	r5, r5, #4
9501.L1571:
9502	cmp	r3, #3
9503	uxth	r2, r3
9504	bls	.L1569
9505	tst	r2, #1
9506	movne	r1, #3
9507	moveq	r1, #2
9508	rsb	r2, r1, r2, lsl #1
9509	uxth	r2, r2
9510.L1569:
9511	lsl	r1, r3, #1
9512	add	r3, r3, #1
9513	cmp	r3, #512
9514	strh	r2, [r1, r5]	@ movhi
9515	bne	.L1571
9516	b	.L1572
9517.L1568:
9518	cmp	r6, #2
9519	bne	.L1573
9520	mov	r2, #0
9521	add	r5, r5, #4
9522.L1575:
9523	uxth	r3, r2
9524	cmp	r2, #1
9525	lsl	r1, r2, #1
9526	add	r2, r2, #1
9527	lslhi	r3, r3, #1
9528	subhi	r3, r3, #1
9529	uxthhi	r3, r3
9530	cmp	r2, #512
9531	strh	r3, [r1, r5]	@ movhi
9532	bne	.L1575
9533	b	.L1572
9534.L1573:
9535	cmp	r6, #3
9536	bne	.L1576
9537	mov	r3, #0
9538	add	r5, r5, #4
9539.L1579:
9540	cmp	r3, #5
9541	uxth	r2, r3
9542	bls	.L1577
9543	tst	r2, #1
9544	movne	r1, #5
9545	moveq	r1, #4
9546	rsb	r2, r1, r2, lsl #1
9547	uxth	r2, r2
9548.L1577:
9549	lsl	r1, r3, #1
9550	add	r3, r3, #1
9551	cmp	r3, #512
9552	strh	r2, [r1, r5]	@ movhi
9553	bne	.L1579
9554	b	.L1572
9555.L1576:
9556	cmp	r6, #4
9557	mov	r2, r5
9558	mov	r3, #0
9559	bne	.L1580
9560	strh	r3, [r5, #4]	@ movhi
9561	mov	r3, #1
9562	strh	r3, [r5, #6]	@ movhi
9563	mov	r3, #2
9564	strh	r3, [r5, #8]	@ movhi
9565	mov	r3, #3
9566	strh	r3, [r5, #10]	@ movhi
9567	mov	r3, #5
9568	strh	r3, [r5, #14]	@ movhi
9569	mov	r3, #7
9570	strh	r3, [r5, #16]	@ movhi
9571	mov	r3, #8
9572	strh	r6, [r5, #12]	@ movhi
9573	strh	r3, [r5, #18]!	@ movhi
9574.L1582:
9575	tst	r3, #1
9576	movne	r2, #7
9577	moveq	r2, #6
9578	rsb	r2, r2, r3, lsl #1
9579	add	r3, r3, #1
9580	uxth	r3, r3
9581	strh	r2, [r5, #2]!	@ movhi
9582	cmp	r3, #512
9583	bne	.L1582
9584	b	.L1572
9585.L1580:
9586	cmp	r6, #5
9587	bne	.L1583
9588	add	r1, r5, #4
9589.L1584:
9590	lsl	r0, r3, #1
9591	strh	r3, [r0, r1]	@ movhi
9592	add	r3, r3, #1
9593	cmp	r3, #16
9594	bne	.L1584
9595	add	r2, r2, #34
9596.L1585:
9597	strh	r3, [r2, #2]!	@ movhi
9598	add	r3, r3, #2
9599	uxth	r3, r3
9600	cmp	r3, #1008
9601	bne	.L1585
9602	b	.L1572
9603.L1583:
9604	cmp	r6, #8
9605	bne	.L1586
9606	add	r5, r5, #4
9607.L1587:
9608	strh	r3, [r3, r5]	@ movhi
9609	add	r3, r3, #2
9610	cmp	r3, #1024
9611	bne	.L1587
9612	b	.L1572
9613.L1586:
9614	cmp	r6, #9
9615	bne	.L1588
9616	strh	r3, [r5, #4]	@ movhi
9617	mov	r3, #1
9618	strh	r3, [r5, #6]	@ movhi
9619	mov	r3, #2
9620	strh	r3, [r5, #8]!	@ movhi
9621	movw	r2, #1021
9622	mov	r3, #3
9623.L1589:
9624	strh	r3, [r5, #2]!	@ movhi
9625	add	r3, r3, #2
9626	uxth	r3, r3
9627	cmp	r3, r2
9628	bne	.L1589
9629	b	.L1572
9630.L1588:
9631	cmp	r6, #10
9632	bne	.L1590
9633	add	r1, r5, #4
9634.L1591:
9635	lsl	r0, r3, #1
9636	strh	r3, [r0, r1]	@ movhi
9637	add	r3, r3, #1
9638	cmp	r3, #63
9639	bne	.L1591
9640	add	r2, r2, #128
9641	movw	r1, #961
9642.L1592:
9643	strh	r3, [r2, #2]!	@ movhi
9644	add	r3, r3, #2
9645	uxth	r3, r3
9646	cmp	r3, r1
9647	bne	.L1592
9648	b	.L1572
9649.L1590:
9650	cmp	r6, #11
9651	bne	.L1593
9652	ldr	r1, .L1618+8
9653	mov	r3, #0
9654.L1594:
9655	lsl	r0, r3, #1
9656	strh	r3, [r0, r1]	@ movhi
9657	add	r3, r3, #1
9658	cmp	r3, #8
9659	bne	.L1594
9660	add	r2, r2, #18
9661.L1596:
9662	tst	r3, #1
9663	movne	r1, #7
9664	moveq	r1, #6
9665	rsb	r1, r1, r3, lsl #1
9666	add	r3, r3, #1
9667	uxth	r3, r3
9668	strh	r1, [r2, #2]!	@ movhi
9669	cmp	r3, #512
9670	bne	.L1596
9671	b	.L1572
9672.L1593:
9673	cmp	r6, #13
9674	bne	.L1572
9675	ldr	r2, .L1618+12
9676	mov	r3, #0
9677.L1597:
9678	strh	r3, [r2, #2]!	@ movhi
9679	add	r3, r3, #3
9680	uxth	r3, r3
9681	cmp	r3, #1536
9682	bne	.L1597
9683	b	.L1572
9684.L1619:
9685	.align	2
9686.L1618:
9687	.word	.LANCHOR0
9688	.word	.LANCHOR3-2272
9689	.word	.LANCHOR0+4
9690	.word	.LANCHOR0+2
9691	.fnend
9692	.size	flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build
9693	.align	2
9694	.global	flash_die_info_init
9695	.syntax unified
9696	.arm
9697	.fpu softvfp
9698	.type	flash_die_info_init, %function
9699flash_die_info_init:
9700	.fnstart
9701	@ args = 0, pretend = 0, frame = 8
9702	@ frame_needed = 0, uses_anonymous_args = 0
9703	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9704	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9705	.pad #12
9706	ldr	r4, .L1638
9707	ldr	r3, [r4]
9708	tst	r3, #4096
9709	beq	.L1621
9710	ldr	r1, .L1638+4
9711	ldr	r0, .L1638+8
9712	bl	printk
9713.L1621:
9714	ldrh	r3, [r4, #30]
9715	mov	r7, #0
9716	ldr	r5, .L1638+12
9717	ldr	r9, .L1638+16
9718	ldr	r6, .L1638+20
9719	strh	r3, [r5, #2]	@ movhi
9720	ldrb	r1, [r4, #16]	@ zero_extendqisi2
9721	add	r8, r9, #6
9722	ldrh	r0, [r4, #14]
9723	mov	r10, r8
9724	strb	r7, [r5, #1109]
9725	bl	__aeabi_idiv
9726	mov	r2, #8
9727	strh	r0, [r6, #-224]	@ movhi
9728	mov	r1, r7
9729	ldr	r0, .L1638+24
9730	bl	ftl_memset
9731	mov	r2, #32
9732	mov	r1, r7
9733	sub	r0, r6, #220
9734	bl	ftl_memset
9735.L1623:
9736	mov	r3, #2
9737	ldrb	r2, [r4, #4]	@ zero_extendqisi2
9738	strb	r3, [r7, r9]
9739	add	r1, r8, r7, lsl #3
9740	ldr	r0, .L1638+28
9741	bl	flash_mem_cmp8
9742	cmp	r0, #0
9743	ldr	fp, .L1638+28
9744	bne	.L1622
9745	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
9746	add	r2, r6, r3, lsl #2
9747	str	r0, [r2, #-220]
9748	uxtb	r0, r7
9749	add	r2, r3, #1
9750	add	r3, r5, r3
9751	strb	r2, [r5, #1109]
9752	strb	r0, [r3, #1144]
9753	bl	zftl_flash_enter_slc_mode
9754.L1622:
9755	add	r7, r7, #1
9756	cmp	r7, #4
9757	bne	.L1623
9758	ldrb	r3, [r4, #12]	@ zero_extendqisi2
9759	cmp	r3, #2
9760	beq	.L1624
9761.L1628:
9762	ldrb	r2, [r4, #17]	@ zero_extendqisi2
9763	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
9764	smulbb	r3, r3, r2
9765	ldrh	r2, [r4, #18]
9766	smulbb	r3, r3, r2
9767	strh	r3, [r6, #-188]	@ movhi
9768	add	sp, sp, #12
9769	@ sp needed
9770	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
9771.L1624:
9772	ldrb	r3, [r4, #4]	@ zero_extendqisi2
9773	mov	r7, #0
9774	ldrh	r8, [r5, #2]
9775	ldrb	r9, [r4, #27]	@ zero_extendqisi2
9776	str	r3, [sp]
9777	ldrh	r3, [r4, #18]
9778	and	r3, r3, #65280
9779	mul	r3, r8, r3
9780	ldrb	r8, [r4, #17]	@ zero_extendqisi2
9781	mul	r8, r8, r3
9782	lsl	r3, r8, #1
9783.L1627:
9784	ldr	r2, [sp]
9785	add	r1, r10, r7, lsl #3
9786	mov	r0, fp
9787	str	r3, [sp, #4]
9788	bl	flash_mem_cmp8
9789	cmp	r0, #0
9790	ldr	r3, [sp, #4]
9791	bne	.L1625
9792	ldrb	r2, [r5, #1109]	@ zero_extendqisi2
9793	cmp	r9, #0
9794	moveq	r0, r8
9795	movne	r0, r3
9796	add	r1, r6, r2, lsl #2
9797	str	r0, [r1, #-220]
9798	add	r1, r2, #1
9799	add	r2, r5, r2
9800	strb	r1, [r5, #1109]
9801	strb	r7, [r2, #1144]
9802.L1625:
9803	add	r7, r7, #1
9804	cmp	r7, #4
9805	bne	.L1627
9806	b	.L1628
9807.L1639:
9808	.align	2
9809.L1638:
9810	.word	.LANCHOR2
9811	.word	.LANCHOR1+1650
9812	.word	.LC4
9813	.word	.LANCHOR0
9814	.word	.LANCHOR0+1154
9815	.word	.LANCHOR3
9816	.word	.LANCHOR0+1144
9817	.word	.LANCHOR2+5
9818	.fnend
9819	.size	flash_die_info_init, .-flash_die_info_init
9820	.align	2
9821	.global	lpa_hash_init
9822	.syntax unified
9823	.arm
9824	.fpu softvfp
9825	.type	lpa_hash_init, %function
9826lpa_hash_init:
9827	.fnstart
9828	@ args = 0, pretend = 0, frame = 0
9829	@ frame_needed = 0, uses_anonymous_args = 0
9830	push	{r4, lr}
9831	.save {r4, lr}
9832	mov	r2, #512
9833	ldr	r4, .L1642
9834	mov	r1, #255
9835	sub	r0, r4, #3056
9836	sub	r0, r0, #14
9837	bl	ftl_memset
9838	sub	r3, r4, #3088
9839	ldrb	r2, [r4, #-3127]	@ zero_extendqisi2
9840	ldrh	r3, [r3, #-8]
9841	mov	r1, #255
9842	ldr	r0, [r4, #-2552]
9843	pop	{r4, lr}
9844	mul	r2, r2, r3
9845	lsl	r2, r2, #2
9846	b	ftl_memset
9847.L1643:
9848	.align	2
9849.L1642:
9850	.word	.LANCHOR3
9851	.fnend
9852	.size	lpa_hash_init, .-lpa_hash_init
9853	.align	2
9854	.global	lpa_rebuild_hash
9855	.syntax unified
9856	.arm
9857	.fpu softvfp
9858	.type	lpa_rebuild_hash, %function
9859lpa_rebuild_hash:
9860	.fnstart
9861	@ args = 0, pretend = 0, frame = 0
9862	@ frame_needed = 0, uses_anonymous_args = 0
9863	ldr	r3, .L1656
9864	push	{r4, r5, r6, lr}
9865	.save {r4, r5, r6, lr}
9866	ldr	r3, [r3]
9867	tst	r3, #4096
9868	beq	.L1645
9869	mov	r3, #0
9870	mov	r2, #239
9871	ldr	r1, .L1656+4
9872	ldr	r0, .L1656+8
9873	bl	printk
9874.L1645:
9875	ldr	r4, .L1656+12
9876	mov	r2, #512
9877	mov	r1, #255
9878	sub	r5, r4, #3056
9879	sub	r6, r4, #3088
9880	sub	r5, r5, #14
9881	mov	r0, r5
9882	bl	ftl_memset
9883	ldrh	r3, [r6, #-8]
9884	mov	r1, #255
9885	ldrb	r2, [r4, #-3127]	@ zero_extendqisi2
9886	ldr	r0, [r4, #-2552]
9887	mul	r2, r2, r3
9888	lsl	r2, r2, #2
9889	bl	ftl_memset
9890	mov	r1, #0
9891.L1646:
9892	ldrh	r0, [r6, #-8]
9893	uxth	ip, r1
9894	ldrb	r3, [r4, #-3127]	@ zero_extendqisi2
9895	mov	r2, ip
9896	mul	r3, r3, r0
9897	cmp	ip, r3, lsl #1
9898	blt	.L1648
9899	pop	{r4, r5, r6, pc}
9900.L1648:
9901	ldr	r3, [r4, #-2556]
9902	ldr	r3, [r3, r2, lsl #2]
9903	cmn	r3, #1
9904	beq	.L1647
9905	uxtb	r3, r3
9906	lsl	r2, r2, #1
9907	lsl	r3, r3, #1
9908	ldrh	r0, [r5, r3]
9909	strh	ip, [r5, r3]	@ movhi
9910	ldr	r3, [r4, #-2552]
9911	strh	r0, [r3, r2]	@ movhi
9912.L1647:
9913	add	r1, r1, #1
9914	b	.L1646
9915.L1657:
9916	.align	2
9917.L1656:
9918	.word	.LANCHOR2
9919	.word	.LANCHOR1+1670
9920	.word	.LC122
9921	.word	.LANCHOR3
9922	.fnend
9923	.size	lpa_rebuild_hash, .-lpa_rebuild_hash
9924	.align	2
9925	.global	zftl_read_flash_info
9926	.syntax unified
9927	.arm
9928	.fpu softvfp
9929	.type	zftl_read_flash_info, %function
9930zftl_read_flash_info:
9931	.fnstart
9932	@ args = 0, pretend = 0, frame = 0
9933	@ frame_needed = 0, uses_anonymous_args = 0
9934	push	{r4, lr}
9935	.save {r4, lr}
9936	mov	r2, #11
9937	mov	r1, #0
9938	mov	r4, r0
9939	bl	ftl_memset
9940	ldr	r2, .L1662
9941	mov	ip, #1
9942	ldr	r3, .L1662+4
9943	ldrh	r0, [r2, #2]
9944	ldrb	r1, [r3, #13]	@ zero_extendqisi2
9945	smulbb	r1, r1, r0
9946	ldr	r0, .L1662+8
9947	strh	r1, [r4, #4]	@ unaligned
9948	ldrb	r1, [r2, #1193]	@ zero_extendqisi2
9949	strb	r1, [r4, #7]
9950	ldr	r1, [r2, #1032]
9951	str	r1, [r4]	@ unaligned
9952	ldrb	r1, [r3, #13]	@ zero_extendqisi2
9953	strb	r1, [r4, #6]
9954	mov	r1, #32
9955	ldrb	r3, [r3, #11]	@ zero_extendqisi2
9956	strb	r1, [r4, #8]
9957	ldrb	r1, [r2, #1109]	@ zero_extendqisi2
9958	strb	r3, [r4, #9]
9959	mov	r3, #0
9960	strb	r3, [r4, #10]
9961.L1659:
9962	uxtb	r2, r3
9963	cmp	r1, r2
9964	bhi	.L1660
9965	pop	{r4, pc}
9966.L1660:
9967	ldrb	lr, [r3, r0]	@ zero_extendqisi2
9968	add	r3, r3, #1
9969	ldrb	r2, [r4, #10]	@ zero_extendqisi2
9970	orr	r2, r2, ip, lsl lr
9971	strb	r2, [r4, #10]
9972	b	.L1659
9973.L1663:
9974	.align	2
9975.L1662:
9976	.word	.LANCHOR0
9977	.word	.LANCHOR2
9978	.word	.LANCHOR0+1144
9979	.fnend
9980	.size	zftl_read_flash_info, .-zftl_read_flash_info
9981	.align	2
9982	.global	gc_static_wearleveling
9983	.syntax unified
9984	.arm
9985	.fpu softvfp
9986	.type	gc_static_wearleveling, %function
9987gc_static_wearleveling:
9988	.fnstart
9989	@ args = 0, pretend = 0, frame = 24
9990	@ frame_needed = 0, uses_anonymous_args = 0
9991	ldr	r0, .L1779
9992	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
9993	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9994	.pad #44
9995	sub	sp, sp, #44
9996	ldr	r3, [r0, #2800]
9997	ldr	r3, [r3, #32]
9998	cmp	r3, #10240
9999	bls	.L1665
10000	bl	ftl_tmp_into_update
10001.L1665:
10002	ldr	r3, [r0, #1096]
10003	ldr	r2, [r3, #568]
10004	ldr	r1, [r3, #12]
10005	add	ip, r2, #35840
10006	add	ip, ip, #160
10007	cmp	r1, ip
10008	bcs	.L1666
10009	ldr	lr, [r0, #2800]
10010	ldr	ip, [r3, #572]
10011	ldr	lr, [lr, #36]
10012	add	ip, ip, #256
10013	cmp	lr, ip
10014	movcc	r0, #0
10015	bcc	.L1664
10016.L1666:
10017	add	r2, r2, #860160
10018	add	r2, r2, #3840
10019	cmp	r1, r2
10020	bhi	.L1668
10021	ldr	ip, [r0, #2800]
10022	ldr	r2, [r3, #572]
10023	ldr	ip, [ip, #36]
10024	add	r2, r2, #32
10025	cmp	ip, r2
10026	movls	r7, #0
10027	movls	r5, r7
10028	bls	.L1669
10029.L1668:
10030	ldr	r2, [r0, #2800]
10031	mov	r4, #0
10032	ldr	r5, .L1779
10033	movw	r10, #65535
10034	ldr	r8, .L1779+4
10035	mov	r6, r4
10036	ldr	r0, [r2, #36]
10037	mov	fp, r10
10038	str	r1, [r3, #568]
10039	ldr	r9, .L1779+8
10040	str	r0, [r3, #572]
10041	ldrh	r7, [r2, #134]
10042	str	r4, [sp, #36]
10043	str	r4, [sp, #32]
10044	str	r4, [sp, #28]
10045	str	r4, [sp, #24]
10046	str	r4, [sp, #16]
10047	str	r4, [sp, #20]
10048.L1670:
10049	ldrh	r3, [r8]
10050	cmp	r3, r7
10051	bhi	.L1679
10052	ldr	r0, [r5, #1096]
10053	mov	r3, #0
10054	mov	r2, #128
10055	mov	r1, #255
10056	strh	r3, [r0, #122]	@ movhi
10057	add	r0, r0, #264
10058	bl	ftl_memset
10059	ldr	r2, [r5, #1096]
10060	movw	r3, #586
10061	ldr	r8, [r5, #1084]
10062	ldrh	r1, [r2, r3]
10063	ldr	r3, .L1779+8
10064	ldr	r3, [r3]
10065	lsl	r9, r1, #2
10066	add	r7, r8, r9
10067	tst	r3, #1024
10068	beq	.L1680
10069	ldr	ip, [r5, #1092]
10070	lsl	r0, r1, #1
10071	ldr	r3, [r8, r1, lsl #2]
10072	ldrh	r2, [r8, r9]
10073	ldrh	r0, [ip, r0]
10074	ubfx	r3, r3, #11, #8
10075	ubfx	r2, r2, #0, #11
10076	str	r0, [sp, #12]
10077	ldrb	r0, [r7, #3]	@ zero_extendqisi2
10078	str	r0, [sp, #8]
10079	ldrb	r0, [r7, #2]	@ zero_extendqisi2
10080	lsr	r0, r0, #5
10081	str	r0, [sp, #4]
10082	ldrb	r0, [r7, #2]	@ zero_extendqisi2
10083	ubfx	r0, r0, #3, #2
10084	str	r0, [sp]
10085	ldr	r0, .L1779+12
10086	bl	printk
10087.L1680:
10088	ldrb	r3, [r7, #2]	@ zero_extendqisi2
10089	and	r3, r3, #224
10090	cmp	r3, #32
10091	bne	.L1681
10092	ldr	r3, .L1779
10093	ldr	r3, [r3, #2800]
10094	add	r3, r3, #688
10095	ldrh	r3, [r3]
10096	cmp	r3, #2
10097	ldrhi	r3, .L1779+16
10098	movhi	r2, #1
10099	strhi	r2, [r3, #-184]
10100.L1681:
10101	ldrb	r2, [r7, #2]	@ zero_extendqisi2
10102	tst	r2, #8
10103	beq	.L1682
10104	ldr	r5, .L1779
10105	ldr	r3, [r5, #2800]
10106	ldrh	r1, [r3, #96]
10107	ldr	r3, .L1779+16
10108	ldrh	r0, [r3, #-180]
10109	ldrh	r3, [r8, r9]
10110	ubfx	r3, r3, #0, #11
10111	add	r3, r3, r0, lsr #2
10112	cmp	r1, r3
10113	ble	.L1682
10114	and	r3, r2, #192
10115	cmp	r3, #64
10116	bne	.L1683
10117	ldr	r0, [r5, #1096]
10118	movw	r3, #586
10119	mov	r2, #1
10120	mov	r1, #0
10121	ldrh	r0, [r0, r3]
10122	bl	gc_add_sblk
10123	ldr	r2, .L1779+20
10124	mov	r1, #1
10125	movw	r3, #2180
10126	strh	r1, [r2, r3]	@ movhi
10127.L1682:
10128	ldr	r1, .L1779
10129	ldr	r3, [r1, #1096]
10130	ldr	r7, [r1, #1084]
10131	add	r3, r3, #584
10132	ldrh	r5, [r3]
10133	ldr	r3, .L1779+8
10134	ldr	r3, [r3]
10135	lsl	r2, r5, #2
10136	add	r8, r7, r2
10137	tst	r3, #1024
10138	beq	.L1684
10139	ldr	r0, [r1, #1092]
10140	lsl	r1, r5, #1
10141	ldr	r3, [r7, r5, lsl #2]
10142	ldrh	r2, [r7, r2]
10143	ldrh	r1, [r0, r1]
10144	ubfx	r3, r3, #11, #8
10145	ldr	r0, .L1779+24
10146	ubfx	r2, r2, #0, #11
10147	str	r1, [sp, #12]
10148	ldrb	r1, [r8, #3]	@ zero_extendqisi2
10149	str	r1, [sp, #8]
10150	ldrb	r1, [r8, #2]	@ zero_extendqisi2
10151	lsr	r1, r1, #5
10152	str	r1, [sp, #4]
10153	ldrb	r1, [r8, #2]	@ zero_extendqisi2
10154	ubfx	r1, r1, #3, #2
10155	str	r1, [sp]
10156	mov	r1, r5
10157	bl	printk
10158.L1684:
10159	ldrb	r3, [r8, #2]	@ zero_extendqisi2
10160	tst	r3, #8
10161	beq	.L1685
10162	ldr	r8, .L1779
10163	ldr	r2, [r8, #2800]
10164	ldrh	r1, [r2, #98]
10165	ldr	r2, .L1779+16
10166	ldrh	r0, [r2, #-178]
10167	ldr	r2, [r7, r5, lsl #2]
10168	ubfx	r2, r2, #11, #8
10169	add	r2, r2, r0, lsr #2
10170	cmp	r1, r2
10171	ble	.L1685
10172	and	r2, r3, #192
10173	cmp	r2, #64
10174	bne	.L1686
10175	ldr	r3, [r8, #1096]
10176	mov	r2, #1
10177	mov	r1, #0
10178	add	r3, r3, #584
10179	ldrh	r0, [r3]
10180	bl	gc_add_sblk
10181	ldr	r2, .L1779+20
10182	mov	r1, #1
10183	movw	r3, #2180
10184	strh	r1, [r2, r3]	@ movhi
10185.L1685:
10186	ldr	r3, .L1779+8
10187	ldr	r3, [r3]
10188	tst	r3, #1024
10189	beq	.L1687
10190	ldr	r1, .L1779
10191	lsl	ip, r4, #2
10192	ldr	r2, [r1, #1084]
10193	add	r0, r2, ip
10194	ldr	r3, [r2, r4, lsl #2]
10195	ldrh	r2, [r2, ip]
10196	ldr	ip, [r1, #1092]
10197	lsl	r1, r4, #1
10198	ubfx	r3, r3, #11, #8
10199	ubfx	r2, r2, #0, #11
10200	ldrh	r1, [ip, r1]
10201	str	r1, [sp, #12]
10202	ldrb	r1, [r0, #3]	@ zero_extendqisi2
10203	str	r1, [sp, #8]
10204	ldrb	r1, [r0, #2]	@ zero_extendqisi2
10205	lsr	r1, r1, #5
10206	str	r1, [sp, #4]
10207	ldrb	r1, [r0, #2]	@ zero_extendqisi2
10208	ldr	r0, .L1779+28
10209	ubfx	r1, r1, #3, #2
10210	str	r1, [sp]
10211	mov	r1, r4
10212	bl	printk
10213.L1687:
10214	ldr	r3, .L1779+8
10215	ldr	r3, [r3]
10216	tst	r3, #1024
10217	beq	.L1688
10218	ldr	r1, .L1779
10219	lsl	ip, r6, #2
10220	ldr	r2, [r1, #1084]
10221	add	r0, r2, ip
10222	ldr	r3, [r2, r6, lsl #2]
10223	ldrh	r2, [r2, ip]
10224	ldr	ip, [r1, #1092]
10225	lsl	r1, r6, #1
10226	ubfx	r3, r3, #11, #8
10227	ubfx	r2, r2, #0, #11
10228	ldrh	r1, [ip, r1]
10229	str	r1, [sp, #12]
10230	ldrb	r1, [r0, #3]	@ zero_extendqisi2
10231	str	r1, [sp, #8]
10232	ldrb	r1, [r0, #2]	@ zero_extendqisi2
10233	lsr	r1, r1, #5
10234	str	r1, [sp, #4]
10235	ldrb	r1, [r0, #2]	@ zero_extendqisi2
10236	ldr	r0, .L1779+32
10237	ubfx	r1, r1, #3, #2
10238	str	r1, [sp]
10239	mov	r1, r6
10240	bl	printk
10241.L1688:
10242	ldr	r5, .L1779
10243	ldrh	r3, [sp, #16]
10244	ldr	r1, [sp, #24]
10245	ldr	r4, [r5, #2800]
10246	ldr	r0, [sp, #36]
10247	strh	r3, [r4, #96]	@ movhi
10248	ldrh	r3, [sp, #20]
10249	strh	r10, [r4, #92]	@ movhi
10250	strh	fp, [r4, #94]	@ movhi
10251	strh	r3, [r4, #98]	@ movhi
10252	bl	__aeabi_uidiv
10253	strh	r0, [r4, #88]	@ movhi
10254	mov	r6, r0
10255	ldr	r1, [sp, #28]
10256	ldr	r0, [sp, #32]
10257	bl	__aeabi_uidiv
10258	strh	r0, [r4, #90]	@ movhi
10259	ldr	r4, .L1779+8
10260	ldr	r3, [r4]
10261	tst	r3, #1024
10262	beq	.L1689
10263	uxth	r0, r0
10264	uxth	r3, r6
10265	ldr	r2, [sp, #28]
10266	str	r0, [sp]
10267	ldr	r1, [sp, #24]
10268	ldr	r0, .L1779+36
10269	bl	printk
10270.L1689:
10271	ldr	r3, [r4]
10272	ldr	r4, .L1779+16
10273	tst	r3, #1024
10274	beq	.L1690
10275	ldrh	r3, [r4, #-178]
10276	mov	r2, fp
10277	mov	r1, r10
10278	ldr	r0, .L1779+40
10279	str	r3, [sp, #8]
10280	ldrh	r3, [r4, #-180]
10281	str	r3, [sp, #4]
10282	ldr	r3, [sp, #20]
10283	str	r3, [sp]
10284	ldr	r3, [sp, #16]
10285	bl	printk
10286.L1690:
10287	ldr	r3, [sp, #20]
10288	sub	r3, r3, fp
10289	str	r3, [sp, #24]
10290	ldr	r2, [sp, #24]
10291	ldrh	r3, [r4, #-178]
10292	cmp	r2, r3
10293	bgt	.L1691
10294	ldr	r3, [sp, #16]
10295	ldrh	r2, [r4, #-180]
10296	sub	r3, r3, r10
10297	cmp	r3, r2
10298	movle	r7, #0
10299	movle	r5, r7
10300	ble	.L1692
10301.L1691:
10302	ldr	r3, [r5, #1096]
10303	mov	r7, #0
10304	ldr	r4, [r3, #580]
10305	ldr	r3, [r5, #2800]
10306	mov	r5, r7
10307	ldrh	r9, [r3, #134]
10308	uxth	r4, r4
10309	ldr	r3, .L1779+20
10310	add	r3, r3, #2176
10311	add	r3, r3, #4
10312	str	r3, [sp, #20]
10313.L1693:
10314	ldr	r3, .L1779+4
10315	ldrh	r3, [r3]
10316	cmp	r9, r3
10317	bcc	.L1703
10318.L1702:
10319	ldr	r3, .L1779
10320	ldr	r3, [r3, #1096]
10321	str	r4, [r3, #580]
10322.L1692:
10323	cmp	fp, #0
10324	beq	.L1705
10325	ldr	r2, .L1779
10326	ldr	r4, .L1779+4
10327	ldr	r3, [r2, #2800]
10328	mov	r0, r2
10329	ldrh	r3, [r3, #134]
10330.L1706:
10331	ldrh	r2, [r4]
10332	cmp	r2, r3
10333	bhi	.L1708
10334	ldr	r3, [r0, #2800]
10335	ldrh	r2, [r3, #72]
10336	add	r2, fp, r2
10337	strh	r2, [r3, #72]	@ movhi
10338	ldrh	r2, [r3, #98]
10339	cmp	fp, r2
10340	subcc	r2, r2, fp
10341	strhcc	r2, [r3, #98]	@ movhi
10342.L1705:
10343	cmp	r10, #0
10344	beq	.L1711
10345	ldr	r3, .L1779
10346	ldr	r6, .L1779+4
10347	ldr	r2, [r3, #2800]
10348	mov	ip, r3
10349	ldrh	r0, [r2, #134]
10350.L1712:
10351	ldrh	r3, [r6]
10352	cmp	r3, r0
10353	bhi	.L1714
10354	ldr	r3, [ip, #2800]
10355	ldrh	r2, [r3, #74]
10356	add	r2, r10, r2
10357	strh	r2, [r3, #74]	@ movhi
10358	ldrh	r2, [r3, #96]
10359	cmp	r10, r2
10360	subcc	r2, r2, r10
10361	strhcc	r2, [r3, #96]	@ movhi
10362.L1711:
10363	ldr	r4, .L1779+44
10364	mov	r1, #0
10365	sub	r0, r4, #12
10366	bl	_list_get_gc_head_node
10367	movw	r2, #65535
10368	cmp	r0, r2
10369	beq	.L1669
10370	ldr	r2, .L1779
10371	lsl	r3, r0, #1
10372	ldr	r1, [r2, #1092]
10373	ldrh	r2, [r4, #-8]
10374	ldrh	r3, [r1, r3]
10375	cmp	r3, r2, lsr #1
10376	bhi	.L1669
10377	add	r5, r5, #1
10378	mov	r2, #1
10379	mov	r1, #0
10380	bl	gc_add_sblk
10381.L1669:
10382	add	r0, r5, r7
10383.L1664:
10384	add	sp, sp, #44
10385	@ sp needed
10386	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
10387.L1679:
10388	ldr	r0, [r5, #1084]
10389	lsl	r1, r7, #2
10390	add	ip, r0, r1
10391	ldrb	r3, [ip, #2]	@ zero_extendqisi2
10392	and	r2, r3, #224
10393	cmp	r2, #224
10394	beq	.L1671
10395	tst	r3, #8
10396	beq	.L1672
10397	ldrh	r2, [r0, r1]
10398	ldr	r3, [r0, r1]
10399	ubfx	r2, r2, #0, #11
10400	ubfx	r3, r3, #11, #8
10401.L1673:
10402	ldr	lr, [sp, #24]
10403	cmp	r10, r2
10404	add	lr, lr, #1
10405	uxth	lr, lr
10406	str	lr, [sp, #24]
10407	ldr	lr, [sp, #36]
10408	add	lr, lr, r2
10409	str	lr, [sp, #36]
10410	ldrhi	r10, [r5, #1096]
10411	movwhi	lr, #586
10412	strhhi	r7, [r10, lr]	@ movhi
10413	movhi	r10, r2
10414.L1717:
10415	ldr	lr, [sp, #16]
10416	cmp	lr, r2
10417	movcc	lr, r2
10418	movcc	r4, r7
10419	str	lr, [sp, #16]
10420	movw	lr, #65535
10421	cmp	r3, lr
10422	bne	.L1675
10423.L1677:
10424	cmp	r2, #9
10425	cmphi	r3, #9
10426	bhi	.L1671
10427	ldr	r3, [r9]
10428	tst	r3, #256
10429	beq	.L1671
10430	ldr	r3, [r0, r1]
10431	ldrh	r2, [r0, r1]
10432	lsl	r1, r7, #1
10433	ldr	r0, [r5, #1092]
10434	ubfx	r3, r3, #11, #8
10435	ubfx	r2, r2, #0, #11
10436	ldrh	r1, [r0, r1]
10437	ldr	r0, .L1779+48
10438	str	r1, [sp, #12]
10439	ldrb	r1, [ip, #3]	@ zero_extendqisi2
10440	str	r1, [sp, #8]
10441	ldrb	r1, [ip, #2]	@ zero_extendqisi2
10442	lsr	r1, r1, #5
10443	str	r1, [sp, #4]
10444	ldrb	r1, [ip, #2]	@ zero_extendqisi2
10445	ubfx	r1, r1, #3, #2
10446	str	r1, [sp]
10447	mov	r1, r7
10448	bl	printk
10449.L1671:
10450	add	r7, r7, #1
10451	uxth	r7, r7
10452	b	.L1670
10453.L1672:
10454	tst	r3, #24
10455	ldrheq	r2, [r0, r1]
10456	movweq	r3, #65535
10457	ldrne	r3, [r0, r1]
10458	movwne	r2, #65535
10459	ubfxeq	r2, r2, #0, #11
10460	ubfxne	r3, r3, #11, #8
10461	beq	.L1673
10462.L1675:
10463	ldr	lr, [sp, #28]
10464	cmp	fp, r3
10465	movhi	fp, r3
10466	add	lr, lr, #1
10467	uxth	lr, lr
10468	str	lr, [sp, #28]
10469	ldr	lr, [sp, #32]
10470	add	lr, lr, r3
10471	str	lr, [sp, #32]
10472	ldrhi	lr, [r5, #1096]
10473	addhi	lr, lr, #584
10474	strhhi	r7, [lr]	@ movhi
10475	ldr	lr, [sp, #20]
10476	cmp	lr, r3
10477	movcc	lr, r3
10478	movcc	r6, r7
10479	str	lr, [sp, #20]
10480	b	.L1677
10481.L1683:
10482	tst	r2, #224
10483	bne	.L1682
10484	ldr	r3, [r5, #1096]
10485	movw	r8, #590
10486	movw	r2, #65535
10487	ldrh	r1, [r3, r8]
10488	cmp	r1, r2
10489	bne	.L1682
10490	movw	r7, #586
10491	ldrh	r0, [r3, r7]
10492	add	r3, r3, #588
10493	ldrh	r3, [r3]
10494	cmp	r3, r0
10495	beq	.L1682
10496	bl	zftl_remove_free_node
10497	ldr	r3, [r5, #1096]
10498	ldrh	r2, [r3, r7]
10499	strh	r2, [r3, r8]	@ movhi
10500	mvn	r2, #0
10501	strh	r2, [r3, r7]	@ movhi
10502	b	.L1682
10503.L1686:
10504	and	r3, r3, #248
10505	cmp	r3, #16
10506	bne	.L1685
10507	ldr	r3, [r8, #1096]
10508	add	r2, r3, #588
10509	ldrh	r1, [r2]
10510	movw	r2, #65535
10511	cmp	r1, r2
10512	bne	.L1685
10513	add	r2, r3, #584
10514	ldrh	r0, [r2]
10515	movw	r2, #590
10516	ldrh	r3, [r3, r2]
10517	cmp	r3, r0
10518	beq	.L1685
10519	bl	zftl_remove_free_node
10520	ldr	r3, [r8, #1096]
10521	add	r2, r3, #588
10522	add	r3, r3, #584
10523	ldrh	r1, [r3]
10524	strh	r1, [r2]	@ movhi
10525	mvn	r2, #0
10526	strh	r2, [r3]	@ movhi
10527	b	.L1685
10528.L1703:
10529	add	r4, r4, #1
10530	uxth	r4, r4
10531	cmp	r3, r4
10532	ldr	r3, .L1779
10533	movls	r4, #0
10534	lsl	r6, r4, #2
10535	ldr	r8, [r3, #1084]
10536	add	r2, r8, r6
10537	ldrb	r2, [r2, #2]	@ zero_extendqisi2
10538	and	ip, r2, #224
10539	and	r1, r2, #192
10540	cmp	r1, #0
10541	cmpne	ip, #224
10542	beq	.L1695
10543	ubfx	r2, r2, #3, #2
10544	ldr	r0, .L1779+16
10545	ands	r1, r2, #1
10546	beq	.L1696
10547	cmp	ip, #160
10548.L1777:
10549	bne	.L1698
10550	ldrh	r2, [r0, #-178]
10551	ldr	r0, [sp, #24]
10552	cmp	r0, r2
10553	ble	.L1699
10554	ldr	r2, [r8, r6]
10555	ubfx	r2, r2, #11, #8
10556	cmp	r2, fp
10557	bls	.L1700
10558	cmp	r1, #0
10559	beq	.L1699
10560	ldrh	r2, [r8, r6]
10561	ubfx	r2, r2, #0, #11
10562	cmp	r2, r10
10563	bgt	.L1699
10564.L1700:
10565	mov	r2, #1
10566	mov	r1, #0
10567	mov	r0, r4
10568	str	r3, [sp, #28]
10569	bl	gc_add_sblk
10570	ldr	r3, [sp, #20]
10571	mov	r2, #1
10572	add	r5, r5, r2
10573	strh	r2, [r3]	@ movhi
10574	ldr	r2, .L1779+8
10575	ldr	r3, [sp, #28]
10576	ldr	r2, [r2]
10577	tst	r2, #1024
10578	beq	.L1699
10579	ldr	r1, [r3, #1092]
10580	lsl	r2, r4, #1
10581	ldr	r3, [r3, #1084]
10582	ldrh	r0, [r1, r2]
10583	ldr	r1, [r8, r6]
10584	add	r3, r3, r6
10585	ldrb	r2, [r3, #2]	@ zero_extendqisi2
10586	ldr	r3, .L1779+20
10587	ubfx	r1, r1, #11, #8
10588	str	r1, [sp, #8]
10589	ldrh	r1, [r8, r6]
10590	lsr	r2, r2, #5
10591	ubfx	r1, r1, #0, #11
10592	str	r1, [sp, #4]
10593	mov	r1, r4
10594	ldrh	r3, [r3, #52]
10595	str	r3, [sp]
10596	mov	r3, r0
10597	ldr	r0, .L1779+52
10598.L1778:
10599	bl	printk
10600.L1699:
10601	cmp	r7, #4
10602	cmpls	r5, #4
10603	bhi	.L1702
10604.L1695:
10605	add	r9, r9, #1
10606	uxth	r9, r9
10607	b	.L1693
10608.L1696:
10609	cmp	r2, #2
10610	b	.L1777
10611.L1698:
10612	ldr	r2, [sp, #16]
10613	ldrh	r0, [r0, #-180]
10614	sub	r2, r2, r10
10615	cmp	r2, r0
10616	ble	.L1699
10617	ldrh	r2, [r8, r6]
10618	add	r0, r10, #8
10619	ubfx	r2, r2, #0, #11
10620	cmp	r2, r0
10621	ble	.L1701
10622	cmp	r1, #0
10623	beq	.L1699
10624	ldr	r2, [r8, r6]
10625	add	r1, fp, #4
10626	ubfx	r2, r2, #11, #8
10627	cmp	r2, r1
10628	bgt	.L1699
10629.L1701:
10630	mov	r2, #1
10631	mov	r1, #0
10632	mov	r0, r4
10633	str	r3, [sp, #28]
10634	bl	gc_add_sblk
10635	ldr	r3, [sp, #20]
10636	mov	r2, #1
10637	add	r7, r7, r2
10638	strh	r2, [r3]	@ movhi
10639	ldr	r2, .L1779+8
10640	ldr	r3, [sp, #28]
10641	ldr	r2, [r2]
10642	tst	r2, #1024
10643	beq	.L1699
10644	ldr	r1, [r3, #1092]
10645	lsl	r2, r4, #1
10646	ldr	r3, [r3, #1084]
10647	ldrh	r0, [r1, r2]
10648	ldr	r1, [r8, r6]
10649	add	r3, r3, r6
10650	ldrb	r2, [r3, #2]	@ zero_extendqisi2
10651	ldr	r3, .L1779+20
10652	ubfx	r1, r1, #11, #8
10653	str	r1, [sp, #8]
10654	ldrh	r1, [r8, r6]
10655	lsr	r2, r2, #5
10656	ubfx	r1, r1, #0, #11
10657	str	r1, [sp, #4]
10658	mov	r1, r4
10659	ldrh	r3, [r3, #52]
10660	str	r3, [sp]
10661	mov	r3, r0
10662	ldr	r0, .L1779+56
10663	b	.L1778
10664.L1708:
10665	ldr	ip, [r0, #1084]
10666	lsl	lr, r3, #2
10667	ldr	r2, [ip, r3, lsl #2]
10668	add	r6, ip, lr
10669	ubfx	r1, r2, #11, #8
10670	cmp	fp, r1
10671	bhi	.L1707
10672	ldrb	r6, [r6, #2]	@ zero_extendqisi2
10673	tst	r6, #24
10674	subne	r1, r1, fp
10675	bfine	r2, r1, #11, #8
10676	strne	r2, [ip, lr]
10677.L1707:
10678	add	r3, r3, #1
10679	uxth	r3, r3
10680	b	.L1706
10681.L1714:
10682	ldr	r4, [ip, #1084]
10683	lsl	lr, r0, #2
10684	ldrh	r3, [r4, lr]
10685	add	r1, r4, lr
10686	ubfx	r2, r3, #0, #11
10687	cmp	r2, r10
10688	blt	.L1713
10689	ldrb	r1, [r1, #2]	@ zero_extendqisi2
10690	and	r1, r1, #24
10691	cmp	r1, #16
10692	subne	r2, r2, r10
10693	bfine	r3, r2, #0, #11
10694	strhne	r3, [r4, lr]	@ movhi
10695.L1713:
10696	add	r0, r0, #1
10697	uxth	r0, r0
10698	b	.L1712
10699.L1780:
10700	.align	2
10701.L1779:
10702	.word	.LANCHOR0
10703	.word	.LANCHOR0+1080
10704	.word	.LANCHOR2
10705	.word	.LC124
10706	.word	.LANCHOR3
10707	.word	.LANCHOR0+2824
10708	.word	.LC125
10709	.word	.LC126
10710	.word	.LC127
10711	.word	.LC128
10712	.word	.LC129
10713	.word	.LANCHOR3-3088
10714	.word	.LC123
10715	.word	.LC130
10716	.word	.LC131
10717	.fnend
10718	.size	gc_static_wearleveling, .-gc_static_wearleveling
10719	.align	2
10720	.global	zftl_sblk_list_init
10721	.syntax unified
10722	.arm
10723	.fpu softvfp
10724	.type	zftl_sblk_list_init, %function
10725zftl_sblk_list_init:
10726	.fnstart
10727	@ args = 0, pretend = 0, frame = 16
10728	@ frame_needed = 0, uses_anonymous_args = 0
10729	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
10730	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10731	movw	r3, #1080
10732	ldr	r4, .L1813
10733	mov	r2, #6
10734	mov	r1, #0
10735	.pad #20
10736	sub	sp, sp, #20
10737	ldr	r7, .L1813+4
10738	mov	r5, #0
10739	ldrh	r3, [r4, r3]
10740	add	r10, r4, #2784
10741	ldr	r0, [r4, #1036]
10742	sub	r8, r7, #3072
10743	sub	r9, r7, #3104
10744	mul	r2, r2, r3
10745	bl	ftl_memset
10746	mov	r3, #32
10747	ldrh	r1, [r9, #-14]
10748	strh	r3, [r8, #-4]	@ movhi
10749	movw	r3, #2786
10750	strh	r5, [r4, r3]	@ movhi
10751	movw	r3, #2788
10752	strh	r5, [r4, r3]	@ movhi
10753	movw	r3, #2790
10754	strh	r5, [r4, r3]	@ movhi
10755	movw	r3, #2794
10756	strh	r5, [r4, r3]	@ movhi
10757	movw	r3, #2792
10758	strh	r5, [r4, r3]	@ movhi
10759	mov	r0, #32768
10760	ldrb	r3, [r7, #-3127]	@ zero_extendqisi2
10761	str	r5, [r7, #-3088]
10762	str	r5, [r7, #-3084]
10763	str	r5, [r7, #-3080]
10764	mul	r1, r1, r3
10765	str	r5, [r7, #-3104]
10766	str	r5, [r7, #-3116]
10767	str	r5, [r7, #-3100]
10768	strh	r5, [r10]	@ movhi
10769	bl	__aeabi_idiv
10770	sxth	r3, r0
10771	str	r7, [sp, #8]
10772	str	r10, [sp, #12]
10773	str	r3, [sp, #4]
10774	ldr	r3, [r4, #2800]
10775	ldrsh	r6, [r3, #134]
10776	strh	r5, [r3, #146]	@ movhi
10777.L1782:
10778	ldr	r3, .L1813+8
10779	ldrh	r3, [r3]
10780	cmp	r6, r3
10781	blt	.L1799
10782	ldr	r2, [sp, #12]
10783	ldr	r3, [r4, #2800]
10784	ldrh	r2, [r2]
10785	strh	r2, [r3, #114]	@ movhi
10786	movw	r2, #2786
10787	ldrh	r2, [r4, r2]
10788	strh	r2, [r3, #118]	@ movhi
10789	movw	r2, #2788
10790	ldrh	r2, [r4, r2]
10791	strh	r2, [r3, #116]	@ movhi
10792	movw	r2, #2790
10793	ldrh	r2, [r4, r2]
10794	strh	r2, [r3, #122]	@ movhi
10795	movw	r2, #2794
10796	ldrh	r2, [r4, r2]
10797	strh	r2, [r3, #120]	@ movhi
10798	movw	r2, #2792
10799	ldrh	r2, [r4, r2]
10800	strh	r2, [r3, #124]	@ movhi
10801	add	sp, sp, #20
10802	@ sp needed
10803	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
10804.L1799:
10805	ldr	r7, [r4, #1084]
10806	add	r7, r7, r6, lsl #2
10807	ldrb	r3, [r7, #3]	@ zero_extendqisi2
10808	cmp	r3, #0
10809	ldreq	r1, [sp, #4]
10810	beq	.L1783
10811	ldr	r3, [sp, #8]
10812	ldr	ip, [r4, #2800]
10813	ldrh	r10, [r9, #-14]
10814	ldrb	lr, [r3, #-3127]	@ zero_extendqisi2
10815	mov	r3, #0
10816	mov	r1, r3
10817.L1784:
10818	cmp	r3, lr
10819	blt	.L1787
10820	cmp	r1, #0
10821	beq	.L1788
10822	mov	r0, #32768
10823	bl	__aeabi_idiv
10824	add	r1, r0, #1
10825	sxth	r1, r1
10826.L1783:
10827	lsl	fp, r6, #1
10828	ldr	r0, [r4, #1036]
10829	add	r2, fp, r6
10830	lsl	r2, r2, #1
10831	add	ip, r0, r2
10832	strh	r1, [ip, #4]	@ movhi
10833	mvn	r1, #0
10834	strh	r1, [ip, #2]	@ movhi
10835	strh	r1, [r0, r2]	@ movhi
10836	ldrb	r2, [r7, #2]	@ zero_extendqisi2
10837	and	r2, r2, #224
10838	cmp	r2, #224
10839	cmpne	r2, #32
10840	moveq	r10, #1
10841	movne	r10, #0
10842	beq	.L1789
10843	ldr	r1, [r4, #1096]
10844	ldrh	r0, [r1, #16]
10845	cmp	r6, r0
10846	beq	.L1789
10847	ldrh	r0, [r1, #48]
10848	cmp	r6, r0
10849	beq	.L1789
10850	ldrh	r1, [r1, #80]
10851	cmp	r6, r1
10852	beq	.L1789
10853	cmp	r2, #64
10854	bne	.L1790
10855	uxth	r7, r6
10856	ldr	r2, .L1813+12
10857	sub	r0, r9, #12
10858	mov	r1, r7
10859.L1811:
10860	bl	_insert_data_list
10861	ldr	r2, [r4, #1092]
10862	ldrh	r3, [r2, fp]
10863	cmp	r3, #7
10864	movls	r2, r10
10865	movls	r1, #1
10866	movls	r0, r7
10867	bls	.L1809
10868.L1789:
10869	add	r6, r6, #1
10870	sxth	r6, r6
10871	b	.L1782
10872.L1787:
10873	ldrb	r2, [r7, #3]	@ zero_extendqisi2
10874	asr	r2, r2, r3
10875	add	r3, r3, #1
10876	tst	r2, #1
10877	ldrhne	r2, [ip, #146]
10878	addeq	r1, r10, r1
10879	sxtheq	r1, r1
10880	addne	r2, r2, #1
10881	strhne	r2, [ip, #146]	@ movhi
10882	b	.L1784
10883.L1788:
10884	ldrb	r3, [r7, #2]	@ zero_extendqisi2
10885	mvn	r0, #0
10886	orr	r3, r3, #224
10887	strb	r3, [r7, #2]
10888	lsl	r3, r6, #1
10889	ldr	r2, [r4, #1092]
10890	strh	r0, [r2, r3]	@ movhi
10891	b	.L1783
10892.L1790:
10893	cmp	r2, #96
10894	uxtheq	r7, r6
10895	ldreq	r2, .L1813+16
10896	ldreq	r0, .L1813+20
10897	moveq	r1, r7
10898	beq	.L1811
10899.L1791:
10900	cmp	r2, #160
10901	uxtheq	r7, r6
10902	ldreq	r2, .L1813+24
10903	ldreq	r0, .L1813+28
10904	moveq	r1, r7
10905	beq	.L1811
10906.L1792:
10907	cmp	r2, #0
10908	bne	.L1789
10909	ldr	r2, [r4, #1092]
10910	uxth	r10, r6
10911	ldrh	r2, [r2, fp]
10912	cmp	r2, #0
10913	beq	.L1793
10914	cmp	r5, #2
10915	bgt	.L1794
10916	mov	r1, r6
10917	ldr	r0, .L1813+32
10918	bl	printk
10919	ldrb	r3, [r7, #2]	@ zero_extendqisi2
10920	add	r5, r5, #1
10921	sxth	r5, r5
10922	mov	r1, #1
10923	mov	r0, r10
10924	tst	r3, #16
10925	movne	r2, #5
10926	moveq	r2, #2
10927	bfi	r3, r2, #5, #3
10928	mov	r2, #0
10929	strb	r3, [r7, #2]
10930.L1809:
10931	bl	gc_add_sblk
10932	b	.L1789
10933.L1794:
10934	mov	r2, #656
10935	ldr	r1, .L1813+36
10936	ldr	r0, .L1813+40
10937	bl	printk
10938	bl	dump_stack
10939.L1793:
10940	ldrb	r3, [r7, #2]	@ zero_extendqisi2
10941	ands	r3, r3, #24
10942	bne	.L1797
10943	ldr	r2, .L1813+44
10944	mov	r1, r10
10945	ldr	r0, .L1813+48
10946.L1807:
10947	bl	_insert_free_list
10948	b	.L1789
10949.L1797:
10950	cmp	r3, #16
10951	ldreq	r2, .L1813+52
10952	moveq	r1, r10
10953	subeq	r0, r8, #12
10954	ldrne	r2, .L1813+56
10955	movne	r1, r10
10956	subne	r0, r8, #8
10957	b	.L1807
10958.L1814:
10959	.align	2
10960.L1813:
10961	.word	.LANCHOR0
10962	.word	.LANCHOR3
10963	.word	.LANCHOR0+1080
10964	.word	.LANCHOR0+2790
10965	.word	.LANCHOR0+2792
10966	.word	.LANCHOR3-3104
10967	.word	.LANCHOR0+2794
10968	.word	.LANCHOR3-3100
10969	.word	.LC132
10970	.word	.LANCHOR1+1687
10971	.word	.LC0
10972	.word	.LANCHOR0+2784
10973	.word	.LANCHOR3-3088
10974	.word	.LANCHOR0+2786
10975	.word	.LANCHOR0+2788
10976	.fnend
10977	.size	zftl_sblk_list_init, .-zftl_sblk_list_init
10978	.align	2
10979	.global	pm_free_sblk
10980	.syntax unified
10981	.arm
10982	.fpu softvfp
10983	.type	pm_free_sblk, %function
10984pm_free_sblk:
10985	.fnstart
10986	@ args = 0, pretend = 0, frame = 272
10987	@ frame_needed = 0, uses_anonymous_args = 0
10988	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
10989	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10990	.pad #284
10991	sub	sp, sp, #284
10992	ldr	r5, .L1843
10993	ldrh	r3, [r5, #-176]
10994	cmp	r3, #128
10995	bls	.L1816
10996	mov	r2, #94
10997	ldr	r1, .L1843+4
10998	ldr	r0, .L1843+8
10999	bl	printk
11000	bl	dump_stack
11001.L1816:
11002	ldr	r4, .L1843+12
11003	mov	r2, #0
11004	ldrh	ip, [r5, #-176]
11005	movw	lr, #65535
11006	ldr	r1, [r4, #2800]
11007	add	r3, r1, #688
11008	add	r1, r1, #416
11009	ldrh	r0, [r3]
11010	mov	r3, r2
11011.L1819:
11012	ldrh	r6, [r1], #2
11013	cmp	r6, lr
11014	addne	r2, r2, #1
11015	uxthne	r2, r2
11016	cmp	r2, r0
11017	bcs	.L1818
11018	cmp	r2, ip
11019	bcs	.L1818
11020	add	r3, r3, #1
11021	uxth	r3, r3
11022	cmp	r3, #128
11023	bne	.L1819
11024.L1818:
11025	add	r3, r3, #1
11026	mov	r2, #256
11027	uxth	fp, r3
11028	mov	r1, #0
11029	add	r0, sp, #24
11030	cmp	fp, #129
11031	mov	r6, #0
11032	moveq	fp, #128
11033	bl	ftl_memset
11034	ldr	r7, [r4, #2800]
11035	movw	r3, #698
11036	ldrb	r8, [r4, #1153]	@ zero_extendqisi2
11037	ldrb	r2, [r5, #-3136]	@ zero_extendqisi2
11038	ldrh	r3, [r7, r3]
11039	add	r10, r7, #704
11040	rsb	r8, r8, #24
11041	str	r3, [sp, #12]
11042	ldr	r3, .L1843+16
11043	ldrh	r9, [r3, #-2]
11044	sub	r3, r8, r9
11045	mvn	r8, #0
11046	mvn	r8, r8, lsl r3
11047.L1821:
11048	ldr	r1, [sp, #12]
11049	uxth	r3, r6
11050	cmp	r1, r3
11051	bhi	.L1824
11052	ldr	r3, .L1843+20
11053	add	r8, sp, #24
11054	ldrb	r7, [r5, #-3127]	@ zero_extendqisi2
11055	movw	r10, #65535
11056	mov	r6, #0
11057	ldrh	r3, [r3, #-8]
11058	str	r6, [sp, #12]
11059	smulbb	r7, r7, r3
11060	uxth	r7, r7
11061.L1830:
11062	ldr	r2, [r4, #2800]
11063	add	r3, r6, #208
11064	lsl	r3, r3, #1
11065	ldrb	r1, [r5, #-3136]	@ zero_extendqisi2
11066	uxth	r9, r6
11067	ldrh	r3, [r2, r3]
11068	add	r0, r2, #692
11069	ldrh	r0, [r0]
11070	str	r2, [sp, #16]
11071	str	r3, [sp, #20]
11072	bl	__aeabi_idiv
11073	ldr	r3, [sp, #20]
11074	ldr	r2, [sp, #16]
11075	cmp	r0, r3
11076	ldreq	r0, .L1843+24
11077	ldrbeq	r1, [r5, #-3127]	@ zero_extendqisi2
11078	ldrheq	r0, [r0]
11079	smulbbeq	r1, r1, r0
11080	strheq	r1, [r8]	@ movhi
11081	ldrh	r1, [r8]
11082	ldrh	ip, [r2, #74]
11083	cmp	r1, #0
11084	cmpne	r1, r7
11085	movcc	r0, #1
11086	movcs	r0, #0
11087	cmp	r0, #0
11088	ldr	r0, [sp, #12]
11089	movne	r0, r9
11090	movne	r7, r1
11091	str	r0, [sp, #16]
11092	str	r0, [sp, #12]
11093	movw	r0, #65535
11094	cmp	r3, r0
11095	cmpne	ip, #2
11096	bls	.L1827
11097	ldr	ip, [r4, #1084]
11098	lsl	r0, r3, #2
11099	ldrh	r2, [r2, #92]
11100	ldrh	r0, [ip, r0]
11101	add	r2, r2, #4
11102	ubfx	r0, r0, #0, #11
11103	cmp	r0, r2
11104	bgt	.L1827
11105	mov	r10, r9
11106	str	r0, [sp]
11107	mov	r2, r1
11108	ldr	r0, .L1843+28
11109	mov	r1, r6
11110	bl	printk
11111.L1827:
11112	ldrh	r2, [r8]
11113	cmp	r2, #0
11114	bne	.L1828
11115	ldr	r1, [r4, #2800]
11116	add	r9, r6, #208
11117	lsl	r3, r9, #1
11118	movw	r0, #65535
11119	ldrh	r3, [r1, r3]
11120	cmp	r3, r0
11121	beq	.L1828
11122	ldr	r0, .L1843+32
11123	ldr	r0, [r0]
11124	tst	r0, #4096
11125	beq	.L1829
11126	add	r1, r1, #688
11127	ldr	r0, .L1843+36
11128	ldrh	r1, [r1]
11129	str	r1, [sp]
11130	mov	r1, r6
11131	bl	printk
11132.L1829:
11133	ldr	r3, [r4, #2800]
11134	lsl	r9, r9, #1
11135	ldrh	r0, [r3, r9]
11136	bl	ftl_free_sblk
11137	ldr	r3, [r4, #2800]
11138	mvn	r2, #0
11139	strh	r2, [r3, r9]	@ movhi
11140	add	r3, r3, #688
11141	ldrh	r2, [r3]
11142	sub	r2, r2, #1
11143	strh	r2, [r3]	@ movhi
11144.L1828:
11145	add	r6, r6, #1
11146	add	r8, r8, #2
11147	uxth	r3, r6
11148	cmp	fp, r3
11149	bhi	.L1830
11150	ldr	r3, [sp, #16]
11151	movw	r0, #65535
11152	cmp	r10, r0
11153	movne	r3, r10
11154	mov	r0, r3
11155	add	sp, sp, #284
11156	@ sp needed
11157	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
11158.L1824:
11159	ldr	r0, [r10], #4
11160	mov	r1, r2
11161	str	r2, [sp, #16]
11162	and	r0, r8, r0, lsr r9
11163	bl	__aeabi_uidiv
11164	ldr	r2, [sp, #16]
11165	uxth	r0, r0
11166	add	lr, r7, #416
11167	add	r1, sp, #24
11168	mov	r3, #0
11169.L1823:
11170	ldrh	ip, [lr], #2
11171	add	r3, r3, #1
11172	uxth	r3, r3
11173	add	r1, r1, #2
11174	cmp	r0, ip
11175	ldrheq	ip, [r1, #-2]
11176	addeq	ip, ip, #1
11177	strheq	ip, [r1, #-2]	@ movhi
11178	cmp	fp, r3
11179	bne	.L1823
11180	add	r6, r6, #1
11181	b	.L1821
11182.L1844:
11183	.align	2
11184.L1843:
11185	.word	.LANCHOR3
11186	.word	.LANCHOR1+1707
11187	.word	.LC0
11188	.word	.LANCHOR0
11189	.word	.LANCHOR3-3136
11190	.word	.LANCHOR3-3088
11191	.word	.LANCHOR3-3096
11192	.word	.LC133
11193	.word	.LANCHOR2
11194	.word	.LC134
11195	.fnend
11196	.size	pm_free_sblk, .-pm_free_sblk
11197	.align	2
11198	.global	ftl_memcpy
11199	.syntax unified
11200	.arm
11201	.fpu softvfp
11202	.type	ftl_memcpy, %function
11203ftl_memcpy:
11204	.fnstart
11205	@ args = 0, pretend = 0, frame = 0
11206	@ frame_needed = 0, uses_anonymous_args = 0
11207	@ link register save eliminated.
11208	b	memcpy
11209	.fnend
11210	.size	ftl_memcpy, .-ftl_memcpy
11211	.align	2
11212	.global	flash_info_data_init
11213	.syntax unified
11214	.arm
11215	.fpu softvfp
11216	.type	flash_info_data_init, %function
11217flash_info_data_init:
11218	.fnstart
11219	@ args = 0, pretend = 0, frame = 0
11220	@ frame_needed = 0, uses_anonymous_args = 0
11221	ldr	r3, .L1852
11222	push	{r4, lr}
11223	.save {r4, lr}
11224	ldr	r3, [r3]
11225	tst	r3, #4096
11226	beq	.L1847
11227	ldr	r2, .L1852+4
11228	mov	r1, #120
11229	ldr	r0, .L1852+8
11230	bl	printk
11231.L1847:
11232	ldr	r4, .L1852+12
11233	mov	r2, #2048
11234	mov	r1, #0
11235	ldr	r0, [r4, #1040]
11236	bl	ftl_memset
11237	ldr	r3, [r4, #1040]
11238	ldr	r2, .L1852+16
11239	ldr	r1, .L1852+20
11240	str	r2, [r3]
11241	mov	r3, #2032
11242	ldr	r0, [r4, #1040]
11243	mov	r2, #32
11244	str	r3, [r0, #8]
11245	mov	r3, #1
11246	strh	r3, [r0, #16]	@ movhi
11247	add	r0, r0, #80
11248	bl	ftl_memcpy
11249	ldr	r0, [r4, #1040]
11250	mov	r2, #32
11251	ldr	r1, .L1852+24
11252	pop	{r4, lr}
11253	add	r0, r0, #48
11254	b	ftl_memcpy
11255.L1853:
11256	.align	2
11257.L1852:
11258	.word	.LANCHOR2
11259	.word	.LANCHOR1+1720
11260	.word	.LC135
11261	.word	.LANCHOR0
11262	.word	1398362953
11263	.word	.LANCHOR0+1111
11264	.word	.LANCHOR2+4
11265	.fnend
11266	.size	flash_info_data_init, .-flash_info_data_init
11267	.align	2
11268	.global	ftl_memcpy32
11269	.syntax unified
11270	.arm
11271	.fpu softvfp
11272	.type	ftl_memcpy32, %function
11273ftl_memcpy32:
11274	.fnstart
11275	@ args = 0, pretend = 0, frame = 0
11276	@ frame_needed = 0, uses_anonymous_args = 0
11277	@ link register save eliminated.
11278	mov	r3, #0
11279.L1855:
11280	cmp	r3, r2
11281	bne	.L1856
11282	bx	lr
11283.L1856:
11284	ldr	ip, [r1, r3, lsl #2]
11285	str	ip, [r0, r3, lsl #2]
11286	add	r3, r3, #1
11287	b	.L1855
11288	.fnend
11289	.size	ftl_memcpy32, .-ftl_memcpy32
11290	.align	2
11291	.global	ftl_memcmp
11292	.syntax unified
11293	.arm
11294	.fpu softvfp
11295	.type	ftl_memcmp, %function
11296ftl_memcmp:
11297	.fnstart
11298	@ args = 0, pretend = 0, frame = 0
11299	@ frame_needed = 0, uses_anonymous_args = 0
11300	@ link register save eliminated.
11301	b	memcmp
11302	.fnend
11303	.size	ftl_memcmp, .-ftl_memcmp
11304	.align	2
11305	.global	timer_get_time
11306	.syntax unified
11307	.arm
11308	.fpu softvfp
11309	.type	timer_get_time, %function
11310timer_get_time:
11311	.fnstart
11312	@ args = 0, pretend = 0, frame = 0
11313	@ frame_needed = 0, uses_anonymous_args = 0
11314	@ link register save eliminated.
11315	ldr	r3, .L1859
11316	ldr	r0, [r3]
11317	ldr	r3, .L1859+4
11318	ldr	r3, [r3, #-168]
11319	sub	r0, r0, r3
11320	b	jiffies_to_msecs
11321.L1860:
11322	.align	2
11323.L1859:
11324	.word	jiffies
11325	.word	.LANCHOR3
11326	.fnend
11327	.size	timer_get_time, .-timer_get_time
11328	.align	2
11329	.global	StorageSysDataLoad
11330	.syntax unified
11331	.arm
11332	.fpu softvfp
11333	.type	StorageSysDataLoad, %function
11334StorageSysDataLoad:
11335	.fnstart
11336	@ args = 0, pretend = 0, frame = 0
11337	@ frame_needed = 0, uses_anonymous_args = 0
11338	push	{r4, r5, r6, lr}
11339	.save {r4, r5, r6, lr}
11340	mov	r4, r1
11341	mov	r5, r0
11342	mov	r2, #512
11343	mov	r1, #0
11344	mov	r0, r4
11345	bl	ftl_memset
11346	bl	rknand_device_lock
11347	ldr	r3, .L1863
11348	mov	r2, r4
11349	mov	r1, #1
11350	mov	r0, r5
11351	ldr	r3, [r3, #-160]
11352	ldr	r3, [r3, #12]
11353	blx	r3
11354	mov	r4, r0
11355	bl	rknand_device_unlock
11356	mov	r0, r4
11357	pop	{r4, r5, r6, pc}
11358.L1864:
11359	.align	2
11360.L1863:
11361	.word	.LANCHOR3
11362	.fnend
11363	.size	StorageSysDataLoad, .-StorageSysDataLoad
11364	.align	2
11365	.global	StorageSysDataStore
11366	.syntax unified
11367	.arm
11368	.fpu softvfp
11369	.type	StorageSysDataStore, %function
11370StorageSysDataStore:
11371	.fnstart
11372	@ args = 0, pretend = 0, frame = 0
11373	@ frame_needed = 0, uses_anonymous_args = 0
11374	push	{r4, r5, r6, lr}
11375	.save {r4, r5, r6, lr}
11376	mov	r5, r1
11377	mov	r4, r0
11378	bl	rknand_device_lock
11379	ldr	r3, .L1867
11380	mov	r2, r5
11381	mov	r1, #1
11382	mov	r0, r4
11383	ldr	r3, [r3, #-160]
11384	ldr	r3, [r3, #16]
11385	blx	r3
11386	mov	r4, r0
11387	bl	rknand_device_unlock
11388	mov	r0, r4
11389	pop	{r4, r5, r6, pc}
11390.L1868:
11391	.align	2
11392.L1867:
11393	.word	.LANCHOR3
11394	.fnend
11395	.size	StorageSysDataStore, .-StorageSysDataStore
11396	.align	2
11397	.global	FlashBootVendorRead
11398	.syntax unified
11399	.arm
11400	.fpu softvfp
11401	.type	FlashBootVendorRead, %function
11402FlashBootVendorRead:
11403	.fnstart
11404	@ args = 0, pretend = 0, frame = 0
11405	@ frame_needed = 0, uses_anonymous_args = 0
11406	push	{r4, r5, r6, lr}
11407	.save {r4, r5, r6, lr}
11408	mov	r4, r0
11409	mov	r5, r1
11410	mov	r6, r2
11411	bl	rknand_device_lock
11412	ldr	r3, .L1871
11413	mov	r2, r6
11414	mov	r1, r5
11415	mov	r0, r4
11416	ldr	r3, [r3, #-160]
11417	ldr	r3, [r3, #4]
11418	blx	r3
11419	mov	r4, r0
11420	bl	rknand_device_unlock
11421	mov	r0, r4
11422	pop	{r4, r5, r6, pc}
11423.L1872:
11424	.align	2
11425.L1871:
11426	.word	.LANCHOR3
11427	.fnend
11428	.size	FlashBootVendorRead, .-FlashBootVendorRead
11429	.align	2
11430	.global	FlashBootVendorWrite
11431	.syntax unified
11432	.arm
11433	.fpu softvfp
11434	.type	FlashBootVendorWrite, %function
11435FlashBootVendorWrite:
11436	.fnstart
11437	@ args = 0, pretend = 0, frame = 0
11438	@ frame_needed = 0, uses_anonymous_args = 0
11439	push	{r4, r5, r6, lr}
11440	.save {r4, r5, r6, lr}
11441	mov	r4, r0
11442	mov	r5, r1
11443	mov	r6, r2
11444	bl	rknand_device_lock
11445	ldr	r3, .L1875
11446	mov	r2, r6
11447	mov	r1, r5
11448	mov	r0, r4
11449	ldr	r3, [r3, #-160]
11450	ldr	r3, [r3, #8]
11451	blx	r3
11452	mov	r4, r0
11453	bl	rknand_device_unlock
11454	mov	r0, r4
11455	pop	{r4, r5, r6, pc}
11456.L1876:
11457	.align	2
11458.L1875:
11459	.word	.LANCHOR3
11460	.fnend
11461	.size	FlashBootVendorWrite, .-FlashBootVendorWrite
11462	.align	2
11463	.global	flash_sram_load_store
11464	.syntax unified
11465	.arm
11466	.fpu softvfp
11467	.type	flash_sram_load_store, %function
11468flash_sram_load_store:
11469	.fnstart
11470	@ args = 0, pretend = 0, frame = 0
11471	@ frame_needed = 0, uses_anonymous_args = 0
11472	ldr	ip, .L1882
11473	cmp	r2, #0
11474	moveq	r2, r3
11475	ldr	ip, [ip, #-156]
11476	add	ip, ip, #4096
11477	add	ip, ip, r1
11478	moveq	r1, ip
11479	strne	lr, [sp, #-4]!
11480	.save {lr}
11481	movne	r1, r0
11482	ldrne	lr, [sp], #4
11483	movne	r2, r3
11484	movne	r0, ip
11485.L1881:
11486	b	ftl_memcpy
11487.L1883:
11488	.align	2
11489.L1882:
11490	.word	.LANCHOR3
11491	.fnend
11492	.size	flash_sram_load_store, .-flash_sram_load_store
11493	.align	2
11494	.global	FlashCs123Init
11495	.syntax unified
11496	.arm
11497	.fpu softvfp
11498	.type	FlashCs123Init, %function
11499FlashCs123Init:
11500	.fnstart
11501	@ args = 0, pretend = 0, frame = 0
11502	@ frame_needed = 0, uses_anonymous_args = 0
11503	@ link register save eliminated.
11504	bx	lr
11505	.fnend
11506	.size	FlashCs123Init, .-FlashCs123Init
11507	.align	2
11508	.global	ftl_dma32_malloc
11509	.syntax unified
11510	.arm
11511	.fpu softvfp
11512	.type	ftl_dma32_malloc, %function
11513ftl_dma32_malloc:
11514	.fnstart
11515	@ args = 0, pretend = 0, frame = 0
11516	@ frame_needed = 0, uses_anonymous_args = 0
11517	cmp	r0, #8192
11518	ble	.L1886
11519	b	ftl_malloc
11520.L1886:
11521	push	{r4, r5, r6, lr}
11522	.save {r4, r5, r6, lr}
11523	add	r4, r0, #63
11524	ldr	r5, .L1890
11525	bic	r4, r4, #63
11526	ldr	r3, [r5, #-152]
11527	cmp	r4, r3
11528	ble	.L1887
11529	mov	r0, #16384
11530	bl	ftl_malloc
11531	mov	r3, #16384
11532	str	r0, [r5, #-148]
11533	str	r3, [r5, #-152]
11534.L1887:
11535	ldr	r3, [r5, #-152]
11536	ldr	r0, [r5, #-148]
11537	sub	r3, r3, r4
11538	add	r4, r0, r4
11539	str	r3, [r5, #-152]
11540	str	r4, [r5, #-148]
11541	pop	{r4, r5, r6, pc}
11542.L1891:
11543	.align	2
11544.L1890:
11545	.word	.LANCHOR3
11546	.fnend
11547	.size	ftl_dma32_malloc, .-ftl_dma32_malloc
11548	.align	2
11549	.global	nandc_init
11550	.syntax unified
11551	.arm
11552	.fpu softvfp
11553	.type	nandc_init, %function
11554nandc_init:
11555	.fnstart
11556	@ args = 0, pretend = 0, frame = 8
11557	@ frame_needed = 0, uses_anonymous_args = 0
11558	push	{r0, r1, r2, r3, r4, r5, r6, lr}
11559	.save {r4, r5, r6, lr}
11560	.pad #16
11561	mov	r3, #0
11562	ldr	r5, .L1912
11563	mov	r6, r0
11564	str	r3, [sp, #12]
11565	ldr	r3, [r5]
11566	tst	r3, #4096
11567	beq	.L1893
11568	mov	r2, r0
11569	ldr	r1, .L1912+4
11570	ldr	r0, .L1912+8
11571	bl	printk
11572.L1893:
11573	ldr	r4, .L1912+12
11574	mov	r3, #6
11575	ldr	r2, [r6, #352]
11576	strb	r3, [r4, #1028]
11577	ldr	r3, .L1912+16
11578	str	r6, [r4, #1044]
11579	cmp	r2, r3
11580	ldr	r2, [r6, #128]
11581	moveq	r3, #8
11582	strbeq	r3, [r4, #1028]
11583	ldr	r3, .L1912+20
11584	cmp	r2, r3
11585	ldr	r2, .L1912+24
11586	moveq	r3, #9
11587	strbeq	r3, [r4, #1028]
11588	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
11589	cmp	r3, #9
11590	bne	.L1896
11591	mov	r3, #1
11592	mov	r1, #2
11593	strb	r3, [r4, #1195]
11594	ldr	r3, [sp, #12]
11595	orr	r3, r3, #256
11596	str	r3, [sp, #12]
11597	ldr	r3, [sp, #12]
11598	bfi	r3, r1, #18, #3
11599	str	r3, [sp, #12]
11600	ldr	r3, [sp, #12]
11601	str	r3, [r6]
11602	mov	r3, #0
11603	ldr	r0, [r4, #1044]
11604	str	r3, [r0, #520]
11605	movw	r3, #4161
11606	str	r3, [r0, #4]
11607	movw	r3, #8321
11608	str	r3, [r0, #8]
11609	mov	r3, #38
11610	str	r2, [r0, #80]
11611	str	r3, [r0, #84]
11612	mov	r3, #39
11613	str	r3, [r0, #84]
11614	ldr	r3, [r5]
11615	tst	r3, #4096
11616	beq	.L1898
11617	ldr	r1, [r0]
11618	ldr	r2, [r0, #8]
11619	ldr	r3, [r0, #80]
11620	ldr	ip, [r0, #84]
11621	ldr	r0, [r0, #88]
11622.L1911:
11623	str	r0, [sp, #4]
11624	str	ip, [sp]
11625	ldr	r0, .L1912+28
11626	bl	printk
11627.L1898:
11628	mov	r3, #1
11629	movw	r2, #1228
11630	strb	r3, [r4, #1196]
11631	mov	r3, #0
11632	strh	r3, [r4, r2]	@ movhi
11633	strb	r3, [r4, #1193]
11634	ldr	r3, [r5]
11635	tst	r3, #4096
11636	beq	.L1892
11637	ldrb	r1, [r4, #1028]	@ zero_extendqisi2
11638	ldr	r0, .L1912+32
11639	bl	printk
11640.L1892:
11641	add	sp, sp, #16
11642	@ sp needed
11643	pop	{r4, r5, r6, pc}
11644.L1896:
11645	ldr	r3, [sp, #12]
11646	mov	r0, #1
11647	mov	r1, #0
11648	strb	r1, [r4, #1195]
11649	orr	r3, r3, #256
11650	str	r3, [sp, #12]
11651	ldr	r3, [sp, #12]
11652	bfi	r3, r0, #24, #3
11653	mov	r0, #2048
11654	str	r3, [sp, #12]
11655	ldr	r3, [sp, #12]
11656	str	r3, [r6]
11657	ldr	r3, [r4, #1044]
11658	str	r1, [r3, #336]
11659	movw	r1, #4193
11660	str	r1, [r3, #4]
11661	movw	r1, #8321
11662	str	r1, [r3, #344]
11663	str	r2, [r3, #304]
11664	mov	r2, #38
11665	str	r2, [r3, #308]
11666	mov	r2, #39
11667	str	r2, [r3, #308]
11668	bl	ftl_dma32_malloc
11669	ldr	r3, [r5]
11670	str	r0, [r4, #1200]
11671	tst	r3, #4096
11672	beq	.L1898
11673	ldr	r0, [r4, #1044]
11674	ldr	r1, [r0]
11675	ldr	r2, [r0, #344]
11676	ldr	r3, [r0, #304]
11677	ldr	ip, [r0, #308]
11678	ldr	r0, [r0, #312]
11679	b	.L1911
11680.L1913:
11681	.align	2
11682.L1912:
11683	.word	.LANCHOR2
11684	.word	.LANCHOR1+1741
11685	.word	.LC136
11686	.word	.LANCHOR0
11687	.word	1446522928
11688	.word	1446588464
11689	.word	1052675
11690	.word	.LC137
11691	.word	.LC138
11692	.fnend
11693	.size	nandc_init, .-nandc_init
11694	.align	2
11695	.global	zbuf_init
11696	.syntax unified
11697	.arm
11698	.fpu softvfp
11699	.type	zbuf_init, %function
11700zbuf_init:
11701	.fnstart
11702	@ args = 0, pretend = 0, frame = 0
11703	@ frame_needed = 0, uses_anonymous_args = 0
11704	push	{r4, r5, r6, r7, r8, lr}
11705	.save {r4, r5, r6, r7, r8, lr}
11706	mov	r5, #0
11707	ldr	r4, .L1918
11708	mov	r6, r5
11709	ldr	r7, .L1918+4
11710.L1915:
11711	ldrb	r0, [r7, #-2546]	@ zero_extendqisi2
11712	uxtb	r3, r5
11713	strb	r6, [r4, #2]
11714	add	r5, r5, #1
11715	add	r2, r3, #1
11716	strb	r3, [r4, #1]
11717	strb	r2, [r4]
11718	add	r4, r4, #48
11719	lsl	r0, r0, #9
11720	str	r6, [r4, #-40]
11721	bl	ftl_dma32_malloc
11722	str	r0, [r4, #-44]
11723	mov	r0, #64
11724	bl	ftl_dma32_malloc
11725	cmp	r5, #32
11726	str	r0, [r4, #-36]
11727	bne	.L1915
11728	ldr	r3, .L1918+8
11729	mvn	r2, #0
11730	strb	r2, [r3, #2720]
11731	strb	r6, [r3, #2768]
11732	strb	r5, [r3, #2769]
11733	pop	{r4, r5, r6, r7, r8, pc}
11734.L1919:
11735	.align	2
11736.L1918:
11737	.word	.LANCHOR0+1232
11738	.word	.LANCHOR3
11739	.word	.LANCHOR0
11740	.fnend
11741	.size	zbuf_init, .-zbuf_init
11742	.align	2
11743	.global	gc_init
11744	.syntax unified
11745	.arm
11746	.fpu softvfp
11747	.type	gc_init, %function
11748gc_init:
11749	.fnstart
11750	@ args = 0, pretend = 0, frame = 0
11751	@ frame_needed = 0, uses_anonymous_args = 0
11752	push	{r4, r5, r6, r7, r8, r9, r10, lr}
11753	.save {r4, r5, r6, r7, r8, r9, r10, lr}
11754	movw	r9, #2824
11755	ldr	r6, .L1922
11756	mov	r5, #0
11757	movw	r2, #2204
11758	mov	r1, r5
11759	ldr	r4, .L1922+4
11760	add	r7, r6, r9
11761	mov	r0, r7
11762	sub	r8, r4, #3088
11763	strb	r5, [r4, #-3119]
11764	strb	r5, [r4, #-144]
11765	str	r5, [r4, #-140]
11766	strh	r5, [r8, #-6]	@ movhi
11767	bl	ftl_memset
11768	mvn	r3, #0
11769	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
11770	strh	r3, [r6, r9]	@ movhi
11771	movw	ip, #2806
11772	ldrh	r3, [r8, #-8]
11773	str	r5, [r6, #2832]
11774	lsr	r2, r3, #1
11775	lsr	r1, r3, #2
11776	strh	r2, [r7, #34]	@ movhi
11777	smulbb	r2, r0, r3
11778	strh	r1, [r7, #32]	@ movhi
11779	sub	r7, r4, #3104
11780	strh	r5, [r7, #-8]	@ movhi
11781	uxth	r2, r2
11782	strh	r5, [r7, #-6]	@ movhi
11783	strh	r5, [r7, #-4]	@ movhi
11784	sub	lr, r2, #32
11785	strh	lr, [r6, ip]	@ movhi
11786	movw	ip, #2808
11787	strh	r2, [r6, ip]	@ movhi
11788	add	r2, r6, #2816
11789	strh	r3, [r2]	@ movhi
11790	mov	r3, #4
11791	strh	r3, [r4, #-136]	@ movhi
11792	movw	r3, #2818
11793	strh	r1, [r6, r3]	@ movhi
11794	ldrh	r3, [r7, #-14]
11795	mul	r0, r0, r3
11796	lsl	r0, r0, #2
11797	bl	ftl_dma32_malloc
11798	ldrh	r3, [r7, #-14]
11799	str	r0, [r4, #-132]
11800	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
11801	mul	r0, r0, r3
11802	lsl	r0, r0, #2
11803	bl	ftl_dma32_malloc
11804	ldrh	r3, [r7, #-14]
11805	str	r0, [r4, #-128]
11806	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
11807	mul	r0, r0, r3
11808	bl	ftl_dma32_malloc
11809	ldrh	r3, [r7, #-14]
11810	str	r0, [r4, #-3124]
11811	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
11812	mul	r0, r0, r3
11813	lsl	r0, r0, #2
11814	bl	ftl_dma32_malloc
11815	ldrh	r3, [r7, #-14]
11816	str	r0, [r4, #-3132]
11817	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
11818	mul	r0, r0, r3
11819	lsl	r0, r0, #2
11820	bl	ftl_dma32_malloc
11821	ldrh	r3, [r8, #-4]
11822	movw	r2, #2804
11823	str	r0, [r4, #-124]
11824	lsr	r3, r3, #2
11825	strh	r3, [r6, r2]	@ movhi
11826	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
11827.L1923:
11828	.align	2
11829.L1922:
11830	.word	.LANCHOR0
11831	.word	.LANCHOR3
11832	.fnend
11833	.size	gc_init, .-gc_init
11834	.align	2
11835	.global	rk_ftl_de_init
11836	.syntax unified
11837	.arm
11838	.fpu softvfp
11839	.type	rk_ftl_de_init, %function
11840rk_ftl_de_init:
11841	.fnstart
11842	@ args = 0, pretend = 0, frame = 0
11843	@ frame_needed = 0, uses_anonymous_args = 0
11844	push	{r4, lr}
11845	.save {r4, lr}
11846	mov	r1, #0
11847	ldr	r0, .L1926
11848	bl	printk
11849	ldr	r3, .L1926+4
11850	pop	{r4, lr}
11851	ldr	r3, [r3, #-160]
11852	ldr	r3, [r3, #40]
11853	bx	r3	@ indirect register sibling call
11854.L1927:
11855	.align	2
11856.L1926:
11857	.word	.LC139
11858	.word	.LANCHOR3
11859	.fnend
11860	.size	rk_ftl_de_init, .-rk_ftl_de_init
11861	.align	2
11862	.global	rk_ftl_cache_write_back
11863	.syntax unified
11864	.arm
11865	.fpu softvfp
11866	.type	rk_ftl_cache_write_back, %function
11867rk_ftl_cache_write_back:
11868	.fnstart
11869	@ args = 0, pretend = 0, frame = 0
11870	@ frame_needed = 0, uses_anonymous_args = 0
11871	@ link register save eliminated.
11872	ldr	r3, .L1929
11873	mov	r0, #0
11874	ldr	r3, [r3, #-160]
11875	ldr	r3, [r3, #32]
11876	bx	r3	@ indirect register sibling call
11877.L1930:
11878	.align	2
11879.L1929:
11880	.word	.LANCHOR3
11881	.fnend
11882	.size	rk_ftl_cache_write_back, .-rk_ftl_cache_write_back
11883	.align	2
11884	.global	rk_nand_suspend
11885	.syntax unified
11886	.arm
11887	.fpu softvfp
11888	.type	rk_nand_suspend, %function
11889rk_nand_suspend:
11890	.fnstart
11891	@ args = 0, pretend = 0, frame = 0
11892	@ frame_needed = 0, uses_anonymous_args = 0
11893	@ link register save eliminated.
11894	ldr	r3, .L1932
11895	ldr	r3, [r3, #-160]
11896	ldr	r3, [r3, #44]
11897	bx	r3	@ indirect register sibling call
11898.L1933:
11899	.align	2
11900.L1932:
11901	.word	.LANCHOR3
11902	.fnend
11903	.size	rk_nand_suspend, .-rk_nand_suspend
11904	.align	2
11905	.global	rk_nand_resume
11906	.syntax unified
11907	.arm
11908	.fpu softvfp
11909	.type	rk_nand_resume, %function
11910rk_nand_resume:
11911	.fnstart
11912	@ args = 0, pretend = 0, frame = 0
11913	@ frame_needed = 0, uses_anonymous_args = 0
11914	@ link register save eliminated.
11915	ldr	r3, .L1935
11916	ldr	r3, [r3, #-160]
11917	ldr	r3, [r3, #48]
11918	bx	r3	@ indirect register sibling call
11919.L1936:
11920	.align	2
11921.L1935:
11922	.word	.LANCHOR3
11923	.fnend
11924	.size	rk_nand_resume, .-rk_nand_resume
11925	.align	2
11926	.global	rk_ftl_get_capacity
11927	.syntax unified
11928	.arm
11929	.fpu softvfp
11930	.type	rk_ftl_get_capacity, %function
11931rk_ftl_get_capacity:
11932	.fnstart
11933	@ args = 0, pretend = 0, frame = 0
11934	@ frame_needed = 0, uses_anonymous_args = 0
11935	@ link register save eliminated.
11936	ldr	r3, .L1938
11937	mov	r0, #0
11938	ldr	r3, [r3, #-160]
11939	ldr	r3, [r3, #36]
11940	bx	r3
11941.L1939:
11942	.align	2
11943.L1938:
11944	.word	.LANCHOR3
11945	.fnend
11946	.size	rk_ftl_get_capacity, .-rk_ftl_get_capacity
11947	.align	2
11948	.global	rk_nandc_get_irq_status
11949	.syntax unified
11950	.arm
11951	.fpu softvfp
11952	.type	rk_nandc_get_irq_status, %function
11953rk_nandc_get_irq_status:
11954	.fnstart
11955	@ args = 0, pretend = 0, frame = 0
11956	@ frame_needed = 0, uses_anonymous_args = 0
11957	@ link register save eliminated.
11958	ldr	r3, .L1941
11959	ldr	r3, [r3, #-160]
11960	ldr	r3, [r3, #60]
11961	bx	r3
11962.L1942:
11963	.align	2
11964.L1941:
11965	.word	.LANCHOR3
11966	.fnend
11967	.size	rk_nandc_get_irq_status, .-rk_nandc_get_irq_status
11968	.align	2
11969	.global	rknand_proc_ftlread
11970	.syntax unified
11971	.arm
11972	.fpu softvfp
11973	.type	rknand_proc_ftlread, %function
11974rknand_proc_ftlread:
11975	.fnstart
11976	@ args = 0, pretend = 0, frame = 0
11977	@ frame_needed = 0, uses_anonymous_args = 0
11978	@ link register save eliminated.
11979	ldr	r3, .L1944
11980	ldr	r3, [r3, #-160]
11981	ldr	r3, [r3, #64]
11982	bx	r3
11983.L1945:
11984	.align	2
11985.L1944:
11986	.word	.LANCHOR3
11987	.fnend
11988	.size	rknand_proc_ftlread, .-rknand_proc_ftlread
11989	.align	2
11990	.global	FtlRead
11991	.syntax unified
11992	.arm
11993	.fpu softvfp
11994	.type	FtlRead, %function
11995FtlRead:
11996	.fnstart
11997	@ args = 0, pretend = 0, frame = 0
11998	@ frame_needed = 0, uses_anonymous_args = 0
11999	ldr	ip, .L1948
12000	str	lr, [sp, #-4]!
12001	.save {lr}
12002	ldr	ip, [ip, #-160]
12003	ldr	lr, [ip, #20]
12004	mov	ip, lr
12005	ldr	lr, [sp], #4
12006	bx	ip
12007.L1949:
12008	.align	2
12009.L1948:
12010	.word	.LANCHOR3
12011	.fnend
12012	.size	FtlRead, .-FtlRead
12013	.align	2
12014	.global	FtlDiscard
12015	.syntax unified
12016	.arm
12017	.fpu softvfp
12018	.type	FtlDiscard, %function
12019FtlDiscard:
12020	.fnstart
12021	@ args = 0, pretend = 0, frame = 0
12022	@ frame_needed = 0, uses_anonymous_args = 0
12023	@ link register save eliminated.
12024	ldr	r3, .L1951
12025	ldr	r3, [r3, #-160]
12026	ldr	r3, [r3, #28]
12027	bx	r3
12028.L1952:
12029	.align	2
12030.L1951:
12031	.word	.LANCHOR3
12032	.fnend
12033	.size	FtlDiscard, .-FtlDiscard
12034	.align	2
12035	.global	rk_ftl_garbage_collect
12036	.syntax unified
12037	.arm
12038	.fpu softvfp
12039	.type	rk_ftl_garbage_collect, %function
12040rk_ftl_garbage_collect:
12041	.fnstart
12042	@ args = 0, pretend = 0, frame = 0
12043	@ frame_needed = 0, uses_anonymous_args = 0
12044	@ link register save eliminated.
12045	ldr	r3, .L1954
12046	ldr	r3, [r3, #-160]
12047	ldr	r3, [r3, #52]
12048	bx	r3
12049.L1955:
12050	.align	2
12051.L1954:
12052	.word	.LANCHOR3
12053	.fnend
12054	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
12055	.align	2
12056	.global	ReadFlashInfo
12057	.syntax unified
12058	.arm
12059	.fpu softvfp
12060	.type	ReadFlashInfo, %function
12061ReadFlashInfo:
12062	.fnstart
12063	@ args = 0, pretend = 0, frame = 0
12064	@ frame_needed = 0, uses_anonymous_args = 0
12065	@ link register save eliminated.
12066	ldr	r3, .L1957
12067	ldr	r3, [r3, #-160]
12068	ldr	r3, [r3, #56]
12069	bx	r3	@ indirect register sibling call
12070.L1958:
12071	.align	2
12072.L1957:
12073	.word	.LANCHOR3
12074	.fnend
12075	.size	ReadFlashInfo, .-ReadFlashInfo
12076	.align	2
12077	.global	rknand_print_hex
12078	.syntax unified
12079	.arm
12080	.fpu softvfp
12081	.type	rknand_print_hex, %function
12082rknand_print_hex:
12083	.fnstart
12084	@ args = 0, pretend = 0, frame = 0
12085	@ frame_needed = 0, uses_anonymous_args = 0
12086	mov	ip, r2
12087	push	{r0, r1, r2, r3, r4, lr}
12088	.save {lr}
12089	.pad #20
12090	mul	r3, r3, ip
12091	mov	r2, #0
12092	str	r2, [sp, #12]
12093	str	ip, [sp]
12094	stmib	sp, {r1, r3}
12095	mov	r1, r0
12096	mov	r3, #16
12097	ldr	r0, .L1961
12098	bl	print_hex_dump
12099	add	sp, sp, #20
12100	@ sp needed
12101	ldr	pc, [sp], #4
12102.L1962:
12103	.align	2
12104.L1961:
12105	.word	.LC140
12106	.fnend
12107	.size	rknand_print_hex, .-rknand_print_hex
12108	.align	2
12109	.global	hynix_get_read_retry_default
12110	.syntax unified
12111	.arm
12112	.fpu softvfp
12113	.type	hynix_get_read_retry_default, %function
12114hynix_get_read_retry_default:
12115	.fnstart
12116	@ args = 0, pretend = 0, frame = 48
12117	@ frame_needed = 0, uses_anonymous_args = 0
12118	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
12119	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12120	mov	r5, r0
12121	ldr	r6, .L2074
12122	mvn	r3, #83
12123	cmp	r5, #2
12124	mvn	r2, #81
12125	.pad #52
12126	sub	sp, sp, #52
12127	ldr	r4, [r6, #1040]
12128	strb	r0, [r4, #112]
12129	mvn	r0, #82
12130	strb	r3, [r4, #128]
12131	mvn	r3, #80
12132	add	r1, r4, #128
12133	strb	r0, [r4, #129]
12134	strb	r2, [r4, #130]
12135	strb	r3, [r4, #131]
12136	bne	.L1964
12137	mvn	r3, #88
12138	mov	r10, #7
12139	strb	r3, [r4, #128]
12140	mvn	r2, #8
12141	ldr	r3, .L2074+4
12142	strb	r2, [r3, #407]
12143.L2068:
12144	mov	fp, #4
12145	b	.L1965
12146.L1964:
12147	cmp	r5, #3
12148	bne	.L1966
12149	add	r2, r4, #127
12150	mov	r3, #176
12151.L1967:
12152	strb	r3, [r2, #1]!
12153	add	r3, r3, #1
12154	uxtb	r3, r3
12155	cmp	r3, #184
12156	bne	.L1967
12157.L2069:
12158	mov	r10, #8
12159	mov	fp, r10
12160.L1965:
12161	sub	r3, r5, #1
12162	cmp	r3, #1
12163	bhi	.L1973
12164	sub	r9, fp, #1
12165	mov	r8, #0
12166	uxtab	r3, r1, r9
12167	str	r3, [sp, #4]
12168.L1974:
12169	ldrb	r2, [r6, #1109]	@ zero_extendqisi2
12170	uxtb	r3, r8
12171	cmp	r2, r3
12172	bhi	.L1979
12173.L1980:
12174	strb	fp, [r4, #113]
12175	strb	r10, [r4, #114]
12176	add	sp, sp, #52
12177	@ sp needed
12178	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
12179.L1966:
12180	cmp	r5, #4
12181	bne	.L1968
12182	mvn	ip, #51
12183	strb	r0, [r4, #133]
12184	strb	ip, [r4, #128]
12185	mvn	ip, #64
12186	strb	ip, [r4, #129]
12187	mvn	ip, #85
12188	strb	ip, [r4, #130]
12189	mvn	ip, #84
12190	strb	ip, [r4, #131]
12191	mvn	ip, #50
12192	strb	ip, [r4, #132]
12193	strb	r2, [r4, #134]
12194	strb	r3, [r4, #135]
12195	b	.L2069
12196.L1968:
12197	cmp	r5, #5
12198	bne	.L1969
12199	mov	r3, #56
12200	mov	r10, #8
12201	strb	r3, [r4, #128]
12202	mov	r3, #57
12203	strb	r3, [r4, #129]
12204	mov	r3, #58
12205	strb	r3, [r4, #130]
12206	mov	r3, #59
12207	strb	r3, [r4, #131]
12208	b	.L2068
12209.L1969:
12210	cmp	r5, #6
12211	bne	.L1970
12212	mov	r3, #14
12213	mov	r10, #12
12214	strb	r3, [r4, #128]
12215	mov	r3, #15
12216	strb	r3, [r4, #129]
12217	mov	r3, #16
12218	strb	r3, [r4, #130]
12219	mov	r3, #17
12220	strb	r3, [r4, #131]
12221	b	.L2068
12222.L1970:
12223	cmp	r5, #7
12224	bne	.L1971
12225	add	r2, r4, #127
12226	mov	r3, #176
12227.L1972:
12228	strb	r3, [r2, #1]!
12229	add	r3, r3, #1
12230	uxtb	r3, r3
12231	cmp	r3, #184
12232	bne	.L1972
12233	mvn	r3, #43
12234	mov	r10, #12
12235	strb	r3, [r4, #136]
12236	mvn	r3, #42
12237	strb	r3, [r4, #137]
12238	mov	fp, #10
12239	b	.L1965
12240.L1971:
12241	cmp	r5, #8
12242	mov	r3, #7
12243	movne	r10, r3
12244	bne	.L2068
12245	strb	r3, [r4, #129]
12246	mov	r3, #9
12247	mov	r2, #6
12248	strb	r3, [r4, #131]
12249	mov	r3, #10
12250	strb	r2, [r4, #128]
12251	strb	r5, [r4, #130]
12252	mov	r10, #50
12253	strb	r3, [r4, #132]
12254	mov	fp, #5
12255	b	.L1965
12256.L1979:
12257	add	r3, r6, r3
12258	mov	r5, #160
12259	ldrb	r3, [r3, #1144]	@ zero_extendqisi2
12260	add	r1, r4, #127
12261	ldr	r7, [r6, #1044]
12262	mla	r5, r5, r3, r4
12263	add	r7, r7, r3, lsl #8
12264	mov	r3, #55
12265	add	r5, r5, #144
12266	sub	r9, r5, #1
12267.L1975:
12268	str	r3, [r7, #2056]
12269	mov	r0, #200
12270	ldrb	r2, [r1, #1]!	@ zero_extendqisi2
12271	str	r3, [sp, #12]
12272	str	r2, [r7, #2052]
12273	str	r1, [sp, #8]
12274	bl	ndelay
12275	ldr	r3, [sp, #4]
12276	ldr	r1, [sp, #8]
12277	ldr	r2, [r7, #2048]
12278	cmp	r3, r1
12279	ldr	r3, [sp, #12]
12280	strb	r2, [r9, #1]!
12281	bne	.L1975
12282	ldr	lr, .L2074+8
12283	mov	r1, r5
12284	mov	r2, #0
12285.L1976:
12286	mov	r3, #1
12287	add	ip, lr, r2
12288.L1977:
12289	ldrb	r0, [ip, r3, lsl #2]	@ zero_extendqisi2
12290	ldrb	r7, [r1]	@ zero_extendqisi2
12291	add	r0, r0, r7
12292	strb	r0, [r1, r3, lsl #3]
12293	add	r3, r3, #1
12294	cmp	r3, #7
12295	bne	.L1977
12296	add	r2, r2, #1
12297	add	r1, r1, #1
12298	cmp	r2, #4
12299	bne	.L1976
12300	mov	r3, #0
12301	add	r8, r8, #1
12302	strb	r3, [r5, #16]
12303	strb	r3, [r5, #24]
12304	strb	r3, [r5, #32]
12305	strb	r3, [r5, #40]
12306	strb	r3, [r5, #48]
12307	strb	r3, [r5, #41]
12308	strb	r3, [r5, #49]
12309	b	.L1974
12310.L1973:
12311	sub	r3, r5, #3
12312	cmp	r3, #5
12313	bhi	.L1980
12314	smulbb	r3, fp, r10
12315	asr	r2, r3, #1
12316	lsl	r3, r3, #4
12317	str	r3, [sp, #44]
12318	lsl	r3, r2, #2
12319	str	r2, [sp, #4]
12320	str	r3, [sp, #36]
12321	lsl	r3, r2, #1
12322	str	r3, [sp, #20]
12323	mov	r3, #0
12324.L2073:
12325	str	r3, [sp, #16]
12326	ldr	r3, .L2074
12327	ldrb	r2, [r3, #1109]	@ zero_extendqisi2
12328	ldrb	r3, [sp, #16]	@ zero_extendqisi2
12329	cmp	r2, r3
12330	bls	.L1980
12331	ldr	r2, .L2074
12332	mov	r7, #255
12333	add	r3, r2, r3
12334	ldrb	r8, [r3, #1144]	@ zero_extendqisi2
12335	mov	r0, r8
12336	bl	zftl_flash_exit_slc_mode
12337	mov	r0, #160
12338	mla	r0, r0, r8, r4
12339	add	r3, r0, #144
12340	str	r3, [sp, #32]
12341	ldr	r3, .L2074
12342	ldr	r9, [r3, #1044]
12343	add	r6, r9, r8, lsl #8
12344	str	r7, [r6, #2056]
12345	bl	nandc_wait_flash_ready
12346	cmp	r5, #8
12347	bne	.L1982
12348	add	r3, r4, #144
12349	mov	r2, #23
12350	str	r3, [sp, #32]
12351	mov	r3, #120
12352	str	r3, [r6, #2056]
12353	mov	r3, #0
12354	str	r3, [r6, #2052]
12355	mov	r1, #25
12356	str	r3, [r6, #2052]
12357	str	r3, [r6, #2052]
12358	str	r2, [r6, #2056]
12359	mov	r2, #4
12360	str	r2, [r6, #2056]
12361	str	r1, [r6, #2056]
12362	mov	r1, #218
12363	str	r1, [r6, #2056]
12364	mov	r1, #21
12365	str	r3, [r6, #2056]
12366	str	r3, [r6, #2052]
12367	str	r3, [r6, #2052]
12368	str	r1, [r6, #2052]
12369	str	r2, [r6, #2052]
12370	str	r3, [r6, #2052]
12371.L1983:
12372	add	r3, r9, r8, lsl #8
12373	mov	r2, #48
12374	str	r2, [r3, #2056]
12375	bl	nandc_wait_flash_ready
12376	sub	r3, r5, #5
12377	cmp	r5, #8
12378	cmpne	r3, #1
12379	str	r3, [sp, #40]
12380	movls	r2, #16
12381	bls	.L1989
12382	cmp	r5, #7
12383	movne	r2, #2
12384	moveq	r2, #32
12385.L1989:
12386	ldr	r3, .L2074+12
12387	sub	r2, r2, #1
12388	add	r6, r9, r8, lsl #8
12389	ldr	r3, [r3, #-120]
12390	sub	r1, r3, #1
12391	uxtab	r2, r3, r2
12392	mov	r0, r1
12393.L1990:
12394	ldr	ip, [r6, #2048]
12395	strb	ip, [r0, #1]!
12396	cmp	r0, r2
12397	bne	.L1990
12398	cmp	r5, #8
12399	bne	.L1991
12400	mov	r2, #0
12401.L1993:
12402	ldrb	r0, [r3, r2, lsl #2]	@ zero_extendqisi2
12403	uxtb	r1, r2
12404	cmp	r0, #50
12405	beq	.L1992
12406	add	r0, r3, r2, lsl #2
12407	ldrb	r0, [r0, #1]	@ zero_extendqisi2
12408	cmp	r0, #5
12409	beq	.L1992
12410	add	r2, r2, #1
12411	cmp	r2, #8
12412	bne	.L1993
12413.L1994:
12414	mov	r1, #0
12415	ldr	r0, .L2074+16
12416	bl	printk
12417.L1996:
12418	b	.L1996
12419.L1982:
12420	cmp	r5, #4
12421	mov	r3, #54
12422	str	r3, [r6, #2056]
12423	bne	.L1984
12424	mov	r3, #64
12425	str	r7, [r6, #2052]
12426	str	r3, [r6, #2048]
12427	mov	r3, #204
12428.L2070:
12429	str	r3, [r6, #2052]
12430	mov	r3, #77
12431.L2071:
12432	str	r3, [r6, #2048]
12433.L1985:
12434	add	r3, r9, r8, lsl #8
12435	mov	r2, #22
12436	cmp	r5, #6
12437	str	r2, [r3, #2056]
12438	mov	r2, #23
12439	str	r2, [r3, #2056]
12440	mov	r2, #4
12441	str	r2, [r3, #2056]
12442	mov	r2, #25
12443	str	r2, [r3, #2056]
12444	mov	r2, #0
12445	str	r2, [r3, #2056]
12446	str	r2, [r3, #2052]
12447	str	r2, [r3, #2052]
12448	moveq	r2, #31
12449	str	r2, [r3, #2052]
12450	mov	r2, #2
12451	str	r2, [r3, #2052]
12452	mov	r2, #0
12453	str	r2, [r3, #2052]
12454	b	.L1983
12455.L1984:
12456	sub	r3, r5, #5
12457	cmp	r3, #1
12458	ldrbls	r3, [r4, #128]	@ zero_extendqisi2
12459	strls	r3, [r6, #2052]
12460	movls	r3, #82
12461	bls	.L2071
12462	cmp	r5, #7
12463	bne	.L1985
12464	mov	r3, #174
12465	str	r3, [r6, #2052]
12466	mov	r3, #0
12467	str	r3, [r6, #2048]
12468	mov	r3, #176
12469	b	.L2070
12470.L1992:
12471	cmp	r1, #6
12472	bhi	.L1994
12473.L1995:
12474	ldr	r3, .L2074+12
12475	ldr	r2, [r3, #-120]
12476	mov	r3, r2
12477.L2005:
12478	ldr	r0, [sp, #44]
12479	sub	r1, r3, r2
12480	cmp	r0, r1
12481	bgt	.L2006
12482	ldr	r3, .L2074+12
12483	ldr	r1, [r3, #-120]
12484	ldr	r3, [sp, #20]
12485	add	r0, r1, r3
12486	mov	r3, #8
12487.L2008:
12488	mov	lr, r0
12489	mov	ip, #0
12490.L2007:
12491	ldrh	r7, [lr]
12492	add	ip, ip, #1
12493	mvn	r7, r7
12494	strh	r7, [lr], #2	@ movhi
12495	ldr	r7, [sp, #4]
12496	cmp	r7, ip
12497	bgt	.L2007
12498	ldr	ip, [sp, #36]
12499	subs	r3, r3, #1
12500	add	r0, r0, ip
12501	bne	.L2008
12502	str	r1, [sp, #8]
12503	str	r3, [sp, #12]
12504.L2009:
12505	mov	ip, #0
12506	mov	r0, ip
12507.L2013:
12508	mov	lr, #1
12509	mov	r7, #16
12510	lsl	lr, lr, r0
12511	str	r7, [sp, #28]
12512	mov	r7, #0
12513	str	lr, [sp, #24]
12514	ldr	lr, [sp, #8]
12515.L2011:
12516	ldrh	r3, [lr]
12517	mov	r1, r3
12518	ldr	r3, [sp, #24]
12519	bics	r3, r3, r1
12520	ldr	r3, [sp, #20]
12521	addeq	r7, r7, #1
12522	add	lr, lr, r3
12523	ldr	r3, [sp, #28]
12524	subs	r3, r3, #1
12525	str	r3, [sp, #28]
12526	bne	.L2011
12527	cmp	r7, #8
12528	add	r0, r0, #1
12529	ldrhi	r3, [sp, #24]
12530	orrhi	ip, ip, r3
12531	uxthhi	ip, ip
12532	cmp	r0, #16
12533	bne	.L2013
12534	ldr	r3, [sp, #8]
12535	strh	ip, [r3], #2	@ movhi
12536	str	r3, [sp, #8]
12537	ldr	r3, [sp, #12]
12538	add	r3, r3, #1
12539	str	r3, [sp, #12]
12540	ldr	r1, [sp, #12]
12541	ldr	r3, [sp, #4]
12542	cmp	r3, r1
12543	bgt	.L2009
12544	ldr	r3, .L2074+12
12545	ldr	r1, [r3, #-120]
12546	mov	r3, #0
12547	sub	r0, r1, #4
12548	add	ip, r1, #28
12549.L2016:
12550	ldr	lr, [r0, #4]!
12551	cmp	lr, #0
12552	addeq	r3, r3, #1
12553	cmp	ip, r0
12554	bne	.L2016
12555	cmp	r3, #7
12556	ble	.L2017
12557	ldr	r0, .L2074+20
12558	mov	r3, #1024
12559	mov	r2, #1
12560	bl	rknand_print_hex
12561	mov	r1, #0
12562	ldr	r0, .L2074+16
12563	bl	printk
12564.L2018:
12565	b	.L2018
12566.L1991:
12567	cmp	r5, #7
12568	bne	.L1997
12569	mov	r2, #0
12570.L1999:
12571	ldrb	r0, [r3, r2, lsl #2]	@ zero_extendqisi2
12572	uxtb	r1, r2
12573	cmp	r0, #12
12574	beq	.L1998
12575	add	r0, r3, r2, lsl #2
12576	ldrb	r0, [r0, #1]	@ zero_extendqisi2
12577	cmp	r0, #10
12578	beq	.L1998
12579	add	r2, r2, #1
12580	cmp	r2, #8
12581	bne	.L1999
12582.L2000:
12583	mov	r1, #0
12584	ldr	r0, .L2074+16
12585	bl	printk
12586.L2001:
12587	b	.L2001
12588.L1998:
12589	cmp	r1, #6
12590	bls	.L1995
12591	b	.L2000
12592.L1997:
12593	cmp	r5, #6
12594	bne	.L1995
12595	add	r3, r3, #7
12596.L2002:
12597	ldrb	r2, [r1, #1]!	@ zero_extendqisi2
12598	cmp	r2, #12
12599	beq	.L1995
12600	ldrb	r2, [r1, #8]	@ zero_extendqisi2
12601	cmp	r2, #4
12602	beq	.L1995
12603	cmp	r1, r3
12604	bne	.L2002
12605	mov	r1, #0
12606	ldr	r0, .L2074+16
12607	bl	printk
12608.L2004:
12609	b	.L2004
12610.L2006:
12611	ldr	r1, [r6, #2048]
12612	strb	r1, [r3], #1
12613	b	.L2005
12614.L2017:
12615	cmp	r5, #6
12616	moveq	ip, #4
12617	beq	.L2019
12618	cmp	r5, #7
12619	moveq	ip, #10
12620	beq	.L2019
12621	cmp	r5, #8
12622	movne	ip, #8
12623	moveq	ip, #5
12624.L2019:
12625	sub	r3, fp, #1
12626	ldr	r0, [sp, #32]
12627	uxtb	r3, r3
12628	mov	lr, #0
12629	add	r3, r3, #1
12630	str	r3, [sp, #8]
12631.L2020:
12632	mov	r3, r0
12633	mov	r1, r2
12634.L2021:
12635	ldrb	r7, [r1], #1	@ zero_extendqisi2
12636	strb	r7, [r3], #1
12637	sub	r7, r1, r2
12638	uxtb	r7, r7
12639	cmp	fp, r7
12640	bhi	.L2021
12641	ldr	r3, [sp, #8]
12642	add	lr, lr, #1
12643	cmp	r10, lr
12644	add	r0, r0, ip
12645	add	r2, r2, r3
12646	bgt	.L2020
12647	add	r7, r9, r8, lsl #8
12648	mov	r8, #255
12649	str	r8, [r7, #2056]
12650	bl	nandc_wait_flash_ready
12651	ldr	r3, [sp, #40]
12652	cmp	r3, #1
12653	bhi	.L2023
12654	mov	r3, #54
12655	mov	r2, #22
12656	str	r3, [r7, #2056]
12657	ldrb	r3, [r4, #128]	@ zero_extendqisi2
12658	str	r3, [r6, #2052]
12659	mov	r3, #0
12660	str	r3, [r6, #2048]
12661	str	r2, [r7, #2056]
12662	str	r3, [r7, #2056]
12663	str	r3, [r6, #2052]
12664	str	r3, [r6, #2052]
12665	mov	r3, #48
12666	str	r8, [r6, #2052]
12667	str	r8, [r6, #2052]
12668	str	r8, [r6, #2052]
12669.L2072:
12670	str	r3, [r7, #2056]
12671	bl	nandc_wait_flash_ready
12672	ldr	r3, [sp, #16]
12673	add	r3, r3, #1
12674	b	.L2073
12675.L2023:
12676	cmp	r5, #8
12677	moveq	r3, #190
12678	movne	r3, #56
12679	b	.L2072
12680.L2075:
12681	.align	2
12682.L2074:
12683	.word	.LANCHOR0
12684	.word	.LANCHOR2
12685	.word	.LANCHOR2+390
12686	.word	.LANCHOR3
12687	.word	.LC141
12688	.word	.LC142
12689	.fnend
12690	.size	hynix_get_read_retry_default, .-hynix_get_read_retry_default
12691	.align	2
12692	.global	flash_get_read_retry_tbl
12693	.syntax unified
12694	.arm
12695	.fpu softvfp
12696	.type	flash_get_read_retry_tbl, %function
12697flash_get_read_retry_tbl:
12698	.fnstart
12699	@ args = 0, pretend = 0, frame = 0
12700	@ frame_needed = 0, uses_anonymous_args = 0
12701	@ link register save eliminated.
12702	ldr	r3, .L2078
12703	ldrb	r0, [r3, #23]	@ zero_extendqisi2
12704	sub	r3, r0, #1
12705	cmp	r3, #7
12706	bxhi	lr
12707	b	hynix_get_read_retry_default
12708.L2079:
12709	.align	2
12710.L2078:
12711	.word	.LANCHOR2
12712	.fnend
12713	.size	flash_get_read_retry_tbl, .-flash_get_read_retry_tbl
12714	.align	2
12715	.global	nandc_xfer_done
12716	.syntax unified
12717	.arm
12718	.fpu softvfp
12719	.type	nandc_xfer_done, %function
12720nandc_xfer_done:
12721	.fnstart
12722	@ args = 0, pretend = 0, frame = 8
12723	@ frame_needed = 0, uses_anonymous_args = 0
12724	push	{r0, r1, r4, r5, r6, r7, r8, lr}
12725	.save {r4, r5, r6, r7, r8, lr}
12726	.pad #8
12727	mov	r1, #0
12728	ldr	r4, .L2129
12729	ldr	r7, .L2129+4
12730	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
12731	ldr	r6, [r4, #1044]
12732	strb	r1, [r7, #-116]
12733	cmp	r3, #9
12734	bne	.L2081
12735	ldr	r3, [r6, #16]
12736	str	r3, [sp]
12737	ldr	r5, [r6, #48]
12738	ubfx	r5, r5, #1, #1
12739	cmp	r5, r1
12740	bne	.L2082
12741	ldr	r7, .L2129+8
12742	ldr	r8, .L2129+12
12743.L2083:
12744	ldr	r3, [sp]
12745	tst	r3, #1048576
12746	beq	.L2093
12747	ldr	r3, [r4, #1220]
12748	cmp	r3, #0
12749	beq	.L2091
12750	ldr	r1, [sp]
12751	mov	r2, #1
12752	ldr	r0, [r4, #1212]
12753	ubfx	r1, r1, #22, #6
12754	lsl	r1, r1, #10
12755	bl	rknand_dma_unmap_single
12756	ldr	r1, [sp]
12757	mov	r2, #1
12758	ubfx	r1, r1, #22, #6
12759	b	.L2128
12760.L2082:
12761	mov	r5, r1
12762.L2084:
12763	ldr	r2, [r6, #64]
12764	ldr	r3, [sp]
12765	ubfx	r2, r2, #16, #6
12766	ubfx	r3, r3, #22, #6
12767	cmp	r2, r3
12768	bge	.L2086
12769	ldr	r3, [r4, #1044]
12770	ldr	r3, [r3]
12771	str	r3, [sp, #4]
12772	ldr	r3, [sp, #4]
12773	tst	r3, #8192
12774	beq	.L2085
12775	ldr	r3, [sp, #4]
12776	tst	r3, #131072
12777	beq	.L2085
12778	ldr	r1, [sp, #4]
12779	ldr	r0, .L2129+16
12780	ubfx	r1, r1, #17, #1
12781	bl	printk
12782.L2086:
12783	ldr	r3, [r4, #1220]
12784	cmp	r3, #0
12785	beq	.L2091
12786	ldr	r1, [sp]
12787	mov	r2, #0
12788	ldr	r0, [r4, #1212]
12789	ubfx	r1, r1, #22, #6
12790	lsl	r1, r1, #10
12791	bl	rknand_dma_unmap_single
12792	ldr	r1, [sp]
12793	mov	r2, #0
12794	ubfx	r1, r1, #22, #6
12795.L2128:
12796	lsl	r1, r1, #2
12797.L2126:
12798	ldr	r0, [r4, #1216]
12799	bl	rknand_dma_unmap_single
12800.L2091:
12801	mov	r3, #0
12802	str	r3, [r4, #1220]
12803	add	sp, sp, #8
12804	@ sp needed
12805	pop	{r4, r5, r6, r7, r8, pc}
12806.L2085:
12807	ldr	r3, [sp]
12808	add	r5, r5, #1
12809	ubfx	r3, r3, #22, #6
12810	cmp	r5, r3, lsl #12
12811	bne	.L2087
12812	ldr	r2, [r6, #64]
12813	mov	r1, r5
12814	ldr	r3, [sp]
12815	ldr	r0, .L2129+20
12816	ubfx	r2, r2, #16, #5
12817	ubfx	r3, r3, #22, #6
12818	bl	printk
12819	ldr	r3, [sp, #4]
12820	tst	r3, #8192
12821	mov	r3, #1
12822	strb	r3, [r7, #-116]
12823	bne	.L2086
12824	ldr	r3, .L2129+24
12825	ldr	r0, .L2129+28
12826	ldr	r3, [r3, #4]
12827	blx	r3
12828	b	.L2086
12829.L2087:
12830	mov	r1, #10
12831	mov	r0, #5
12832	bl	usleep_range
12833	b	.L2084
12834.L2093:
12835	ldr	r3, [r4, #1044]
12836	add	r5, r5, #1
12837	ldr	r3, [r3, #16]
12838	str	r3, [sp]
12839	bics	r3, r5, #-16777216
12840	bne	.L2092
12841	ldr	r2, [sp]
12842	mov	r1, r5
12843	ldr	r3, [r6, #64]
12844	mov	r0, r7
12845	ubfx	r3, r3, #16, #6
12846	bl	printk
12847	mov	r3, #64
12848	mov	r2, #4
12849	ldr	r1, [r4, #1044]
12850	mov	r0, r8
12851	bl	rknand_print_hex
12852.L2092:
12853	mov	r1, #10
12854	mov	r0, #5
12855	bl	usleep_range
12856	b	.L2083
12857.L2081:
12858	ldr	r3, [r6, #8]
12859	str	r3, [sp]
12860	ldr	r5, [r6, #16]
12861	ubfx	r5, r5, #1, #1
12862	cmp	r5, #0
12863	bne	.L2095
12864	ldr	r7, .L2129+8
12865	ldr	r8, .L2129+12
12866.L2096:
12867	ldr	r3, [sp]
12868	tst	r3, #1048576
12869	beq	.L2103
12870	ldr	r3, [r4, #1220]
12871	cmp	r3, #0
12872	beq	.L2091
12873	ldr	r1, [sp]
12874	mov	r2, #1
12875	ldr	r0, [r4, #1212]
12876	ubfx	r1, r1, #22, #6
12877	lsl	r1, r1, #10
12878	bl	rknand_dma_unmap_single
12879	ldr	r1, [sp]
12880	mov	r2, #1
12881	ubfx	r1, r1, #22, #6
12882	b	.L2127
12883.L2095:
12884	ldr	r7, .L2129+20
12885	mov	r5, r1
12886	ldr	r8, .L2129+12
12887.L2097:
12888	ldr	r2, [r6, #28]
12889	ldr	r3, [sp]
12890	ubfx	r2, r2, #16, #5
12891	ubfx	r3, r3, #22, #6
12892	cmp	r2, r3
12893	bge	.L2099
12894	ldr	r3, [r4, #1044]
12895	ldr	r3, [r3]
12896	str	r3, [sp, #4]
12897	ldr	r3, [sp, #4]
12898	tst	r3, #8192
12899	beq	.L2098
12900	ldr	r3, [sp, #4]
12901	tst	r3, #131072
12902	beq	.L2098
12903	ldr	r1, [sp, #4]
12904	ldr	r0, .L2129+32
12905	bl	printk
12906.L2099:
12907	ldr	r3, [r4, #1220]
12908	cmp	r3, #0
12909	beq	.L2091
12910	ldr	r1, [sp]
12911	mov	r2, #0
12912	ldr	r0, [r4, #1212]
12913	ubfx	r1, r1, #22, #6
12914	lsl	r1, r1, #10
12915	bl	rknand_dma_unmap_single
12916	ldr	r1, [sp]
12917	mov	r2, #0
12918	ubfx	r1, r1, #22, #6
12919.L2127:
12920	lsl	r1, r1, #7
12921	b	.L2126
12922.L2098:
12923	add	r5, r5, #1
12924	bics	r3, r5, #-16777216
12925	bne	.L2100
12926	ldr	r2, [r6, #28]
12927	mov	r1, r5
12928	ldr	r3, [sp]
12929	mov	r0, r7
12930	ubfx	r2, r2, #16, #5
12931	ubfx	r3, r3, #22, #6
12932	bl	printk
12933	mov	r3, #64
12934	mov	r2, #4
12935	ldr	r1, [r4, #1044]
12936	mov	r0, r8
12937	bl	rknand_print_hex
12938.L2100:
12939	mov	r1, #10
12940	mov	r0, #5
12941	bl	usleep_range
12942	b	.L2097
12943.L2103:
12944	ldr	r3, [r4, #1044]
12945	add	r5, r5, #1
12946	ldr	r3, [r3, #8]
12947	str	r3, [sp]
12948	bics	r3, r5, #-16777216
12949	bne	.L2102
12950	ldr	r2, [sp]
12951	mov	r1, r5
12952	ldr	r3, [r6, #28]
12953	mov	r0, r7
12954	ubfx	r3, r3, #16, #5
12955	bl	printk
12956	mov	r3, #64
12957	mov	r2, #4
12958	ldr	r1, [r4, #1044]
12959	mov	r0, r8
12960	bl	rknand_print_hex
12961.L2102:
12962	mov	r1, #10
12963	mov	r0, #5
12964	bl	usleep_range
12965	b	.L2096
12966.L2130:
12967	.align	2
12968.L2129:
12969	.word	.LANCHOR0
12970	.word	.LANCHOR3
12971	.word	.LC145
12972	.word	.LC146
12973	.word	.LC143
12974	.word	.LC144
12975	.word	arm_delay_ops
12976	.word	644245000
12977	.word	.LC147
12978	.fnend
12979	.size	nandc_xfer_done, .-nandc_xfer_done
12980	.align	2
12981	.global	nandc_xfer
12982	.syntax unified
12983	.arm
12984	.fpu softvfp
12985	.type	nandc_xfer, %function
12986nandc_xfer:
12987	.fnstart
12988	@ args = 4, pretend = 0, frame = 8
12989	@ frame_needed = 0, uses_anonymous_args = 0
12990	push	{r0, r1, r4, r5, r6, r7, r8, lr}
12991	.save {r4, r5, r6, r7, r8, lr}
12992	.pad #8
12993	mov	r4, r1
12994	ldr	r5, [sp, #32]
12995	mov	r8, r2
12996	mov	r6, r3
12997	mov	r1, r8
12998	mov	r2, r6
12999	mov	r0, r4
13000	mov	r3, r5
13001	bl	nandc_xfer_start
13002	mov	r0, r4
13003	bl	nandc_xfer_done
13004	cmp	r4, #0
13005	movne	r0, #0
13006	bne	.L2132
13007	ldr	r7, .L2170
13008	ldrb	r3, [r7, #1028]	@ zero_extendqisi2
13009	cmp	r3, #9
13010	bne	.L2133
13011	ldr	r1, [r7, #1044]
13012	lsr	r8, r8, #2
13013	mov	r2, #1
13014	mov	r0, r4
13015.L2134:
13016	cmp	r4, r8
13017	bcc	.L2138
13018	ldr	r4, [r1]
13019	cmp	r2, #0
13020	movne	r0, #512
13021	and	r3, r4, #139264
13022	cmp	r3, #139264
13023	bne	.L2140
13024	mov	r1, r4
13025	ldr	r0, .L2170+4
13026	bl	printk
13027	ldr	r3, [r7, #1044]
13028	mvn	r0, #0
13029	orr	r4, r4, #131072
13030	str	r4, [r3]
13031.L2140:
13032	tst	r4, #8192
13033	beq	.L2141
13034	ldr	r3, .L2170+8
13035	ldrb	r3, [r3, #-116]	@ zero_extendqisi2
13036	cmp	r3, #0
13037	beq	.L2141
13038	mov	r1, r4
13039	ldr	r0, .L2170+12
13040	bl	printk
13041	ldr	r3, [r7, #1044]
13042	mov	r2, #1
13043	str	r2, [r3, #16]
13044.L2169:
13045	mvn	r0, #0
13046.L2132:
13047	add	sp, sp, #8
13048	@ sp needed
13049	pop	{r4, r5, r6, r7, r8, pc}
13050.L2138:
13051	add	r3, r4, #84
13052	ldr	r3, [r1, r3, lsl #2]
13053	str	r3, [sp, #4]
13054	ldr	ip, [sp, #4]
13055	ldr	r3, [sp, #4]
13056	ubfx	r3, r3, #26, #1
13057	and	r3, r3, ip, lsr #10
13058	and	r2, r2, r3
13059	ldr	r3, [sp, #4]
13060	tst	r3, #4
13061	bne	.L2152
13062	ldr	r3, [sp, #4]
13063	tst	r3, #262144
13064	bne	.L2152
13065	ldr	ip, [sp, #4]
13066	ldr	r3, [sp, #4]
13067	ubfx	ip, ip, #3, #7
13068	ubfx	r3, r3, #19, #7
13069	cmp	ip, r3
13070	ldr	r3, [sp, #4]
13071	ubfxgt	r3, r3, #3, #7
13072	ubfxle	r3, r3, #19, #7
13073	cmp	r0, r3
13074	movcc	r0, r3
13075.L2135:
13076	add	r4, r4, #1
13077	b	.L2134
13078.L2152:
13079	mvn	r0, #0
13080	b	.L2135
13081.L2133:
13082	ldrb	r3, [r7, #1193]	@ zero_extendqisi2
13083	lsr	r0, r8, #1
13084	mov	r2, r5
13085	mov	r1, r4
13086	cmp	r3, #25
13087	movcc	lr, #64
13088	movcs	lr, #128
13089.L2143:
13090	cmp	r1, r0
13091	add	ip, lr, r4
13092	add	r2, r2, #4
13093	bcc	.L2144
13094	ldr	r1, [r7, #1044]
13095	mov	r2, #0
13096	lsr	r8, r8, #2
13097	mov	r0, r2
13098.L2145:
13099	cmp	r2, r8
13100	bcc	.L2149
13101	mov	r3, #0
13102	str	r3, [r1, #16]
13103	ldr	r4, [r1]
13104	and	r3, r4, #139264
13105	cmp	r3, #139264
13106	bne	.L2141
13107	mov	r1, r4
13108	ldr	r0, .L2170+16
13109	bl	printk
13110	ldr	r3, [r7, #1044]
13111	orr	r4, r4, #131072
13112	str	r4, [r3]
13113	b	.L2169
13114.L2144:
13115	ldr	r3, [r7, #1200]
13116	bic	r4, r4, #3
13117	add	r1, r1, #1
13118	ldr	r3, [r3, r4]
13119	strb	r3, [r2, #-4]
13120	lsr	r4, r3, #8
13121	strb	r4, [r2, #-3]
13122	lsr	r4, r3, #16
13123	lsr	r3, r3, #24
13124	strb	r4, [r2, #-2]
13125	mov	r4, ip
13126	strb	r3, [r2, #-1]
13127	b	.L2143
13128.L2149:
13129	add	r3, r2, #8
13130	ldr	r3, [r1, r3, lsl #2]
13131	str	r3, [sp, #4]
13132	ldr	r3, [sp, #4]
13133	tst	r3, #4
13134	bne	.L2155
13135	ldr	r3, [sp, #4]
13136	tst	r3, #32768
13137	bne	.L2155
13138	ldr	ip, [sp, #4]
13139	ldr	r4, [sp, #4]
13140	ldr	r3, [sp, #4]
13141	ldr	lr, [sp, #4]
13142	ubfx	ip, ip, #3, #5
13143	ubfx	r4, r4, #27, #1
13144	ubfx	r3, r3, #16, #5
13145	orr	ip, ip, r4, lsl #5
13146	ubfx	lr, lr, #29, #1
13147	orr	r3, r3, lr, lsl #5
13148	cmp	ip, r3
13149	ldr	r3, [sp, #4]
13150	ldrhi	ip, [sp, #4]
13151	ldrls	ip, [sp, #4]
13152	ubfxhi	r3, r3, #3, #5
13153	ubfxls	r3, r3, #16, #5
13154	ubfxhi	ip, ip, #27, #1
13155	ubfxls	ip, ip, #29, #1
13156	orr	r3, r3, ip, lsl #5
13157	cmp	r0, r3
13158	movcc	r0, r3
13159.L2146:
13160	add	r2, r2, #1
13161	b	.L2145
13162.L2155:
13163	mvn	r0, #0
13164	b	.L2146
13165.L2141:
13166	cmn	r0, #1
13167	beq	.L2132
13168	ldr	r3, [r5]
13169	cmn	r3, #1
13170	bne	.L2132
13171	ldr	r3, [r5, #4]
13172	cmn	r3, #1
13173	bne	.L2132
13174	ldr	r3, [r6]
13175	cmn	r3, #1
13176	moveq	r0, #512
13177	b	.L2132
13178.L2171:
13179	.align	2
13180.L2170:
13181	.word	.LANCHOR0
13182	.word	.LC148
13183	.word	.LANCHOR3
13184	.word	.LC149
13185	.word	.LC150
13186	.fnend
13187	.size	nandc_xfer, .-nandc_xfer
13188	.align	2
13189	.global	flash_read_page
13190	.syntax unified
13191	.arm
13192	.fpu softvfp
13193	.type	flash_read_page, %function
13194flash_read_page:
13195	.fnstart
13196	@ args = 4, pretend = 0, frame = 8
13197	@ frame_needed = 0, uses_anonymous_args = 0
13198	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
13199	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13200	mov	r6, r0
13201	ldr	r7, .L2188
13202	.pad #20
13203	sub	sp, sp, #20
13204	ubfx	r9, r1, #24, #2
13205	mov	r8, r3
13206	str	r2, [sp, #12]
13207	lsl	r10, r6, #8
13208	ldrb	r4, [r7, #1153]	@ zero_extendqisi2
13209	ldr	r5, [r7, #1044]
13210	rsb	r0, r4, #24
13211	mvn	r4, #0
13212	bic	r4, r1, r4, lsl r0
13213	bl	nandc_wait_flash_ready
13214	mov	r0, r6
13215	bl	nandc_cs
13216	cmp	r9, #0
13217	bne	.L2173
13218	mov	r0, r6
13219	bl	zftl_flash_enter_slc_mode
13220.L2174:
13221	ldr	r2, [r7, #1104]
13222	ldrb	r1, [r2, #7]	@ zero_extendqisi2
13223	cmp	r1, #1
13224	bne	.L2176
13225	ldrb	r1, [r2, #12]	@ zero_extendqisi2
13226	cmp	r1, #2
13227	addeq	r1, r5, r10
13228	moveq	r0, #38
13229	streq	r0, [r1, #2056]
13230.L2176:
13231	add	fp, r5, r10
13232	mov	r1, #0
13233	str	r1, [fp, #2056]
13234	mov	r0, #48
13235	str	r1, [fp, #2052]
13236	str	r1, [fp, #2052]
13237	uxtb	r1, r4
13238	str	r1, [fp, #2052]
13239	lsr	r1, r4, #8
13240	str	r1, [fp, #2052]
13241	lsr	r1, r4, #16
13242	str	r1, [fp, #2052]
13243	ldrb	r1, [r7, #1152]	@ zero_extendqisi2
13244	cmp	r1, #0
13245	lsrne	r1, r4, #24
13246	strne	r1, [fp, #2052]
13247	add	r1, r5, r10
13248	str	r0, [r1, #2056]
13249	cmp	r9, #0
13250	ldrb	r2, [r2, #12]	@ zero_extendqisi2
13251	sub	r2, r2, #3
13252	clz	r2, r2
13253	lsr	r2, r2, #5
13254	moveq	r2, #0
13255	cmp	r2, #0
13256	beq	.L2178
13257	ldrb	r2, [r7, #1158]	@ zero_extendqisi2
13258	cmp	r2, #0
13259	bne	.L2178
13260	ldrb	r3, [r7, #1159]	@ zero_extendqisi2
13261	cmp	r3, #0
13262	addeq	r4, r4, r4, lsl #1
13263	subeq	r0, r4, #1
13264	addeq	r0, r0, r9
13265	beq	.L2187
13266.L2178:
13267	mov	r0, r4
13268.L2187:
13269	bl	nandc_set_seed
13270	bl	nandc_wait_flash_ready
13271	add	r3, r5, r10
13272	mov	r2, #5
13273	str	r2, [r3, #2056]
13274	mov	r1, #0
13275	mov	r2, #224
13276	str	r1, [fp, #2052]
13277	mov	r0, r6
13278	str	r1, [fp, #2052]
13279	str	r2, [r3, #2056]
13280	ldr	r3, [sp, #12]
13281	ldrb	r2, [sp, #56]	@ zero_extendqisi2
13282	str	r8, [sp]
13283	bl	nandc_xfer
13284	bl	nandc_de_cs.constprop.35
13285	add	sp, sp, #20
13286	@ sp needed
13287	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
13288.L2173:
13289	ldr	r2, [r7, #1104]
13290	ldrb	r2, [r2, #12]	@ zero_extendqisi2
13291	cmp	r2, #3
13292	bne	.L2175
13293	ldrb	r2, [r7, #1158]	@ zero_extendqisi2
13294	cmp	r2, #0
13295	bne	.L2175
13296	ldrb	r2, [r7, #1159]	@ zero_extendqisi2
13297	cmp	r2, #0
13298	addeq	r2, r5, r10
13299	streq	r9, [r2, #2056]
13300	beq	.L2174
13301.L2175:
13302	mov	r0, r6
13303	bl	zftl_flash_exit_slc_mode
13304	b	.L2174
13305.L2189:
13306	.align	2
13307.L2188:
13308	.word	.LANCHOR0
13309	.fnend
13310	.size	flash_read_page, .-flash_read_page
13311	.align	2
13312	.global	micron_read_retrial
13313	.syntax unified
13314	.arm
13315	.fpu softvfp
13316	.type	micron_read_retrial, %function
13317micron_read_retrial:
13318	.fnstart
13319	@ args = 4, pretend = 0, frame = 16
13320	@ frame_needed = 0, uses_anonymous_args = 0
13321	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
13322	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13323	.pad #28
13324	sub	sp, sp, #28
13325	ldr	r4, .L2219
13326	mov	r6, r0
13327	mov	r10, r1
13328	mov	r9, #0
13329	str	r3, [sp, #16]
13330	ldrb	r3, [r4, #1193]	@ zero_extendqisi2
13331	str	r2, [sp, #12]
13332	add	r3, r3, r3, lsl #1
13333	asr	r3, r3, #2
13334	str	r3, [sp, #8]
13335	bl	nandc_wait_flash_ready
13336	ldr	r5, [r4, #1044]
13337	add	r5, r5, r6, lsl #8
13338.L2191:
13339	ldr	fp, .L2219+4
13340	mov	r0, r6
13341	mov	r7, #0
13342	mvn	r4, #0
13343	bl	zftl_flash_enter_slc_mode
13344	mov	r0, r6
13345	bl	zftl_flash_exit_slc_mode
13346.L2192:
13347	ldrb	r3, [fp, #-108]	@ zero_extendqisi2
13348	cmp	r7, r3
13349	bcc	.L2197
13350.L2196:
13351	mov	r3, #239
13352	mov	r0, #200
13353	str	r3, [r5, #2056]
13354	mov	r3, #137
13355	str	r3, [r5, #2052]
13356	bl	ndelay
13357	mov	r3, #0
13358	str	r3, [r5, #2048]
13359	str	r3, [r5, #2048]
13360	str	r3, [r5, #2048]
13361	str	r3, [r5, #2048]
13362	ldr	r3, [sp, #8]
13363	cmp	r4, r3
13364	bcc	.L2198
13365	cmn	r4, #1
13366	movne	r4, #256
13367.L2198:
13368	cmn	r4, #1
13369	movne	r8, #0
13370	moveq	r8, #1
13371	cmp	r4, #256
13372	movne	r1, r8
13373	orreq	r1, r8, #1
13374	cmp	r1, #0
13375	beq	.L2199
13376	mov	r1, r6
13377	str	r4, [sp]
13378	mov	r3, r7
13379	mov	r2, r10
13380	ldr	r0, .L2219+8
13381	bl	printk
13382	eor	r1, r9, #1
13383	ands	r1, r8, r1
13384	beq	.L2200
13385	mov	r1, #3
13386	mov	r0, r6
13387	bl	mt_auto_read_calibration_config
13388	mov	r9, #1
13389	b	.L2191
13390.L2197:
13391	mov	r3, #239
13392	mov	r0, #200
13393	str	r3, [r5, #2056]
13394	mov	r3, #137
13395	str	r3, [r5, #2052]
13396	bl	ndelay
13397	add	r3, r7, #1
13398	ldr	r2, [sp, #12]
13399	str	r3, [r5, #2048]
13400	mov	r1, r10
13401	str	r3, [sp, #20]
13402	mov	r3, #0
13403	str	r3, [r5, #2048]
13404	mov	r0, r6
13405	str	r3, [r5, #2048]
13406	str	r3, [r5, #2048]
13407	ldr	r3, [sp, #64]
13408	str	r3, [sp]
13409	ldr	r3, [sp, #16]
13410	bl	flash_read_page
13411	ldr	r3, .L2219+12
13412	mov	r8, r0
13413	ldr	r3, [r3]
13414	tst	r3, #4096
13415	beq	.L2193
13416	str	r0, [sp]
13417	mov	r3, r4
13418	mov	r2, r10
13419	mov	r1, r7
13420	ldr	r0, .L2219+16
13421	bl	printk
13422.L2193:
13423	cmn	r8, #1
13424	beq	.L2194
13425	ldr	r3, [fp, #-120]
13426	cmn	r4, #1
13427	moveq	r4, r8
13428	str	r3, [sp, #12]
13429	ldr	r3, [fp, #-112]
13430	str	r3, [sp, #16]
13431	ldr	r3, [sp, #8]
13432	cmp	r8, r3
13433	bcc	.L2203
13434.L2194:
13435	ldr	r7, [sp, #20]
13436	b	.L2192
13437.L2203:
13438	mov	r4, r8
13439	b	.L2196
13440.L2200:
13441	cmp	r9, #0
13442	beq	.L2201
13443	mov	r0, r6
13444	bl	mt_auto_read_calibration_config
13445	cmn	r4, #1
13446	movne	r4, #256
13447.L2201:
13448	bl	nandc_wait_flash_ready
13449	mov	r0, r4
13450	add	sp, sp, #28
13451	@ sp needed
13452	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
13453.L2199:
13454	cmp	r9, #0
13455	beq	.L2201
13456	mov	r0, r6
13457	mov	r4, #256
13458	bl	mt_auto_read_calibration_config
13459	b	.L2201
13460.L2220:
13461	.align	2
13462.L2219:
13463	.word	.LANCHOR0
13464	.word	.LANCHOR3
13465	.word	.LC152
13466	.word	.LANCHOR2
13467	.word	.LC151
13468	.fnend
13469	.size	micron_read_retrial, .-micron_read_retrial
13470	.align	2
13471	.global	toshiba_3d_read_retrial
13472	.syntax unified
13473	.arm
13474	.fpu softvfp
13475	.type	toshiba_3d_read_retrial, %function
13476toshiba_3d_read_retrial:
13477	.fnstart
13478	@ args = 4, pretend = 0, frame = 24
13479	@ frame_needed = 0, uses_anonymous_args = 0
13480	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
13481	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13482	.pad #36
13483	sub	sp, sp, #36
13484	ldr	r7, .L2269
13485	mov	r8, r0
13486	ubfx	r4, r1, #24, #2
13487	mov	r9, r1
13488	str	r3, [sp, #20]
13489	add	r6, r8, #8
13490	str	r2, [sp, #16]
13491	mov	r5, #1
13492	bl	nandc_wait_flash_ready
13493	ldr	r3, [r7, #1044]
13494	str	r3, [sp, #12]
13495	add	r6, r3, r6, lsl #8
13496	ldrb	r3, [r7, #1100]	@ zero_extendqisi2
13497	cmp	r3, #36
13498	movne	r3, #56
13499	moveq	r3, #46
13500	str	r3, [sp, #28]
13501	movne	r3, #10
13502	moveq	r3, #26
13503	cmp	r4, #0
13504	str	r3, [sp, #24]
13505	mvn	r4, #0
13506	ldr	r3, [sp, #12]
13507	add	fp, r3, r8, lsl #8
13508	bne	.L2239
13509.L2230:
13510	ldr	r3, .L2269
13511	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
13512	cmp	r3, #36
13513	bne	.L2224
13514	mov	r2, #0
13515	mov	r1, r5
13516	mov	r0, r6
13517	bl	toshiba_tlc_set_rr_para
13518	mov	r3, #93
13519	str	r3, [fp, #2056]
13520.L2225:
13521	ldr	r3, [sp, #72]
13522	mov	r1, r9
13523	ldr	r2, [sp, #16]
13524	mov	r0, r8
13525	str	r3, [sp]
13526	ldr	r3, [sp, #20]
13527	bl	flash_read_page
13528	ldr	r3, .L2269+4
13529	mov	r10, r0
13530	ldr	r3, [r3]
13531	tst	r3, #16
13532	beq	.L2226
13533	mov	r3, r0
13534	mov	r2, r9
13535	mov	r1, r5
13536	ldr	r0, .L2269+8
13537	bl	printk
13538.L2226:
13539	cmn	r10, #1
13540	beq	.L2227
13541	ldr	r3, .L2269+12
13542	cmn	r4, #1
13543	moveq	r4, r10
13544	ldr	r2, [r3, #-120]
13545	ldr	r3, [r3, #-112]
13546	str	r2, [sp, #16]
13547	str	r3, [sp, #20]
13548	ldrb	r3, [r7, #1193]	@ zero_extendqisi2
13549	add	r3, r3, r3, lsl #1
13550	cmp	r10, r3, asr #2
13551	bcc	.L2245
13552.L2227:
13553	ldr	r3, [sp, #24]
13554	add	r5, r5, #1
13555	cmp	r3, r5
13556	bne	.L2230
13557.L2229:
13558	ldr	r3, .L2269
13559	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
13560	cmp	r3, #36
13561	moveq	r2, #0
13562	beq	.L2268
13563	mov	r1, #0
13564	mov	r0, r6
13565	bl	toshiba_3d_set_slc_rr_para
13566.L2232:
13567	ldr	r3, .L2269
13568	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
13569	cmp	r3, #36
13570	bne	.L2241
13571	ldr	r3, [sp, #12]
13572	mov	r2, #85
13573	add	r3, r3, r8, lsl #8
13574	str	r2, [r3, #2056]
13575	mov	r2, #0
13576	str	r2, [r3, #2052]
13577	str	r2, [r3, #2048]
13578	mov	r2, #255
13579	str	r2, [r3, #2056]
13580.L2241:
13581	ldrb	r3, [r7, #1193]	@ zero_extendqisi2
13582	add	r3, r3, r3, lsl #1
13583	cmp	r4, r3, asr #2
13584	bcc	.L2242
13585	cmn	r4, #1
13586	movne	r4, #256
13587.L2242:
13588	cmn	r4, #1
13589	cmpne	r4, #256
13590	bne	.L2243
13591	str	r4, [sp]
13592	mov	r3, r5
13593	mov	r2, r9
13594	mov	r1, r8
13595	ldr	r0, .L2269+16
13596	bl	printk
13597.L2243:
13598	bl	nandc_wait_flash_ready
13599	mov	r0, r4
13600	add	sp, sp, #36
13601	@ sp needed
13602	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
13603.L2224:
13604	uxtb	r1, r5
13605	mov	r0, r6
13606	bl	toshiba_3d_set_slc_rr_para
13607	b	.L2225
13608.L2245:
13609	mov	r4, r10
13610	b	.L2229
13611.L2239:
13612	ldr	r3, .L2269
13613	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
13614	cmp	r3, #36
13615	bne	.L2233
13616	mov	r2, #1
13617	mov	r1, r5
13618	mov	r0, r6
13619	bl	toshiba_tlc_set_rr_para
13620	mov	r3, #93
13621.L2267:
13622	str	r3, [fp, #2056]
13623	mov	r1, r9
13624	ldr	r3, [sp, #72]
13625	mov	r0, r8
13626	ldr	r2, [sp, #16]
13627	str	r3, [sp]
13628	ldr	r3, [sp, #20]
13629	bl	flash_read_page
13630	ldr	r3, .L2269+4
13631	mov	r10, r0
13632	ldr	r3, [r3]
13633	tst	r3, #16
13634	beq	.L2235
13635	mov	r3, r0
13636	mov	r2, r9
13637	mov	r1, r5
13638	ldr	r0, .L2269+20
13639	bl	printk
13640.L2235:
13641	cmn	r10, #1
13642	beq	.L2236
13643	ldr	r3, .L2269+12
13644	cmn	r4, #1
13645	moveq	r4, r10
13646	ldr	r2, [r3, #-120]
13647	ldr	r3, [r3, #-112]
13648	str	r2, [sp, #16]
13649	str	r3, [sp, #20]
13650	ldrb	r3, [r7, #1193]	@ zero_extendqisi2
13651	add	r3, r3, r3, lsl #1
13652	cmp	r10, r3, asr #2
13653	bcc	.L2246
13654.L2236:
13655	ldr	r3, [sp, #28]
13656	add	r5, r5, #1
13657	cmp	r3, r5
13658	bne	.L2239
13659.L2238:
13660	ldr	r3, .L2269
13661	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
13662	cmp	r3, #36
13663	bne	.L2240
13664	mov	r2, #1
13665.L2268:
13666	mov	r1, #0
13667	mov	r0, r6
13668	bl	toshiba_tlc_set_rr_para
13669	b	.L2232
13670.L2233:
13671	uxtb	r1, r5
13672	mov	r0, r6
13673	bl	toshiba_3d_set_tlc_rr_para
13674	mov	r3, #38
13675	b	.L2267
13676.L2246:
13677	mov	r4, r10
13678	b	.L2238
13679.L2240:
13680	mov	r1, #0
13681	mov	r0, r6
13682	bl	toshiba_3d_set_tlc_rr_para
13683	b	.L2232
13684.L2270:
13685	.align	2
13686.L2269:
13687	.word	.LANCHOR0
13688	.word	.LANCHOR2
13689	.word	.LC153
13690	.word	.LANCHOR3
13691	.word	.LC155
13692	.word	.LC154
13693	.fnend
13694	.size	toshiba_3d_read_retrial, .-toshiba_3d_read_retrial
13695	.align	2
13696	.global	toshiba_read_retrial
13697	.syntax unified
13698	.arm
13699	.fpu softvfp
13700	.type	toshiba_read_retrial, %function
13701toshiba_read_retrial:
13702	.fnstart
13703	@ args = 4, pretend = 0, frame = 24
13704	@ frame_needed = 0, uses_anonymous_args = 0
13705	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
13706	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13707	mov	r6, r0
13708	.pad #36
13709	sub	sp, sp, #36
13710	ldr	r5, .L2303
13711	add	r9, r6, #8
13712	str	r3, [sp, #20]
13713	str	r1, [sp, #12]
13714	str	r2, [sp, #16]
13715	bl	nandc_wait_flash_ready
13716	mov	r0, r6
13717	bl	zftl_flash_enter_slc_mode
13718	mov	r0, r6
13719	bl	zftl_flash_exit_slc_mode
13720	ldrb	r3, [r5, #1100]	@ zero_extendqisi2
13721	ldr	r7, [r5, #1044]
13722	sub	r3, r3, #67
13723	cmp	r3, #1
13724	lsl	r3, r6, #8
13725	add	r9, r7, r9, lsl #8
13726	str	r3, [sp, #24]
13727	movls	r3, #0
13728	strls	r3, [sp, #8]
13729	bls	.L2272
13730	ldrb	r3, [r5, #1143]	@ zero_extendqisi2
13731	cmp	r3, #0
13732	beq	.L2290
13733	mov	r0, #1
13734	bl	nandc_set_if_mode
13735	mov	r3, #1
13736.L2290:
13737	str	r3, [sp, #8]
13738	lsl	r3, r6, #8
13739	mov	r2, #92
13740	add	r3, r7, r3
13741	str	r2, [r3, #2056]
13742	mov	r2, #197
13743	str	r2, [r3, #2056]
13744.L2272:
13745	ldr	fp, .L2303+4
13746	lsl	r3, r6, #8
13747	mov	r8, #1
13748	mvn	r10, #0
13749	str	r3, [sp, #28]
13750.L2274:
13751	ldrb	r3, [fp, #-108]	@ zero_extendqisi2
13752	add	r3, r3, #1
13753	cmp	r8, r3
13754	bcc	.L2283
13755	mov	r4, r10
13756.L2282:
13757	ldrb	r3, [r5, #1100]	@ zero_extendqisi2
13758	mov	r1, #0
13759	mov	r0, r9
13760	sub	r3, r3, #67
13761	cmp	r3, #1
13762	bhi	.L2284
13763	bl	sandisk_set_rr_para
13764.L2285:
13765	add	r6, r7, r6, lsl #8
13766	mov	r3, #255
13767	str	r3, [r6, #2056]
13768	ldrb	r3, [r5, #1193]	@ zero_extendqisi2
13769	add	r3, r3, r3, lsl #1
13770	cmp	r4, r3, asr #2
13771	bcc	.L2286
13772	cmn	r4, #1
13773	movne	r4, #256
13774.L2286:
13775	cmn	r4, #1
13776	cmpne	r4, #256
13777	bne	.L2287
13778	str	r4, [sp]
13779	mov	r3, r8
13780	ldr	r2, [sp, #12]
13781	mov	r1, r8
13782	ldr	r0, .L2303+8
13783	bl	printk
13784.L2287:
13785	bl	nandc_wait_flash_ready
13786	ldr	r3, [sp, #8]
13787	cmp	r3, #0
13788	beq	.L2271
13789	mov	r0, #4
13790	bl	nandc_set_if_mode
13791.L2271:
13792	mov	r0, r4
13793	add	sp, sp, #36
13794	@ sp needed
13795	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
13796.L2283:
13797	ldrb	r3, [r5, #1100]	@ zero_extendqisi2
13798	mov	r0, r9
13799	uxtb	r1, r8
13800	sub	r3, r3, #67
13801	cmp	r3, #1
13802	bhi	.L2275
13803	bl	sandisk_set_rr_para
13804.L2276:
13805	ldrb	r3, [r5, #1100]	@ zero_extendqisi2
13806	cmp	r3, #34
13807	bne	.L2277
13808	ldr	r3, .L2303+4
13809	ldrb	r3, [r3, #-108]	@ zero_extendqisi2
13810	sub	r3, r3, #3
13811	cmp	r8, r3
13812	ldreq	r3, [sp, #28]
13813	moveq	r2, #179
13814	addeq	r3, r7, r3
13815	streq	r2, [r3, #2056]
13816.L2277:
13817	ldr	r3, [sp, #24]
13818	mov	r2, #38
13819	add	r1, sp, #12
13820	mov	r0, r6
13821	add	r3, r7, r3
13822	str	r2, [r3, #2056]
13823	mov	r2, #93
13824	str	r2, [r3, #2056]
13825	ldr	r3, [sp, #72]
13826	str	r3, [sp]
13827	ldm	r1, {r1, r2, r3}
13828	bl	flash_read_page
13829	cmn	r0, #1
13830	mov	r4, r0
13831	beq	.L2280
13832	ldr	r3, [fp, #-120]
13833	cmn	r10, #1
13834	moveq	r10, r0
13835	str	r3, [sp, #16]
13836	ldr	r3, [fp, #-112]
13837	str	r3, [sp, #20]
13838	ldrb	r3, [r5, #1193]	@ zero_extendqisi2
13839	add	r3, r3, r3, lsl #1
13840	cmp	r0, r3, asr #2
13841	bcc	.L2282
13842.L2280:
13843	add	r8, r8, #1
13844	b	.L2274
13845.L2275:
13846	bl	toshiba_set_rr_para
13847	b	.L2276
13848.L2284:
13849	bl	toshiba_set_rr_para
13850	b	.L2285
13851.L2304:
13852	.align	2
13853.L2303:
13854	.word	.LANCHOR0
13855	.word	.LANCHOR3
13856	.word	.LC155
13857	.fnend
13858	.size	toshiba_read_retrial, .-toshiba_read_retrial
13859	.align	2
13860	.global	ymtc_3d_read_retrial
13861	.syntax unified
13862	.arm
13863	.fpu softvfp
13864	.type	ymtc_3d_read_retrial, %function
13865ymtc_3d_read_retrial:
13866	.fnstart
13867	@ args = 4, pretend = 0, frame = 8
13868	@ frame_needed = 0, uses_anonymous_args = 0
13869	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
13870	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13871	mov	r7, r0
13872	.pad #20
13873	sub	sp, sp, #20
13874	mov	r8, r1
13875	mov	r9, r2
13876	mov	r10, r3
13877	bl	nandc_wait_flash_ready
13878	mov	r0, r7
13879	mvn	r4, #0
13880	bl	zftl_flash_enter_slc_mode
13881	mov	r0, r7
13882	mov	r5, #1
13883	bl	zftl_flash_exit_slc_mode
13884	ldr	r3, .L2334
13885	tst	r8, #50331648
13886	add	r2, r7, #8
13887	ldr	fp, .L2334+4
13888	ldr	r6, [r3, #1044]
13889	str	r3, [sp, #12]
13890	add	r6, r6, r2, lsl #8
13891	bne	.L2315
13892.L2310:
13893	uxtb	r1, r5
13894	mov	r0, r6
13895	bl	ymtc_3d_set_slc_rr_para
13896	ldr	r3, [sp, #56]
13897	mov	r2, r9
13898	mov	r1, r8
13899	mov	r0, r7
13900	str	r3, [sp]
13901	mov	r3, r10
13902	bl	flash_read_page
13903	cmn	r0, #1
13904	beq	.L2307
13905	ldr	r3, [sp, #12]
13906	cmn	r4, #1
13907	moveq	r4, r0
13908	ldr	r9, [fp, #-120]
13909	ldr	r10, [fp, #-112]
13910	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
13911	add	r3, r3, r3, lsl #1
13912	cmp	r0, r3, asr #2
13913	bcc	.L2318
13914.L2307:
13915	add	r5, r5, #1
13916	cmp	r5, #10
13917	bne	.L2310
13918.L2309:
13919	mov	r1, #0
13920	mov	r0, r6
13921	bl	ymtc_3d_set_slc_rr_para
13922.L2311:
13923	ldr	r3, [sp, #12]
13924	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
13925	add	r3, r3, r3, lsl #1
13926	cmp	r4, r3, asr #2
13927	bcc	.L2316
13928	cmn	r4, #1
13929	movne	r4, #256
13930.L2316:
13931	cmn	r4, #1
13932	cmpne	r4, #256
13933	bne	.L2317
13934	str	r4, [sp]
13935	mov	r3, r5
13936	mov	r2, r8
13937	mov	r1, r5
13938	ldr	r0, .L2334+8
13939	bl	printk
13940.L2317:
13941	bl	nandc_wait_flash_ready
13942	mov	r0, r4
13943	add	sp, sp, #20
13944	@ sp needed
13945	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
13946.L2318:
13947	mov	r4, r0
13948	b	.L2309
13949.L2315:
13950	uxtb	r1, r5
13951	mov	r0, r6
13952	bl	ymtc_3d_set_tlc_rr_para
13953	ldr	r3, [sp, #56]
13954	mov	r2, r9
13955	mov	r1, r8
13956	mov	r0, r7
13957	str	r3, [sp]
13958	mov	r3, r10
13959	bl	flash_read_page
13960	cmn	r0, #1
13961	beq	.L2312
13962	ldr	r3, [sp, #12]
13963	cmn	r4, #1
13964	moveq	r4, r0
13965	ldr	r9, [fp, #-120]
13966	ldr	r10, [fp, #-112]
13967	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
13968	add	r3, r3, r3, lsl #1
13969	cmp	r0, r3, asr #2
13970	bcc	.L2319
13971.L2312:
13972	add	r5, r5, #1
13973	cmp	r5, #51
13974	bne	.L2315
13975.L2314:
13976	mov	r1, #0
13977	mov	r0, r6
13978	bl	ymtc_3d_set_tlc_rr_para
13979	b	.L2311
13980.L2319:
13981	mov	r4, r0
13982	b	.L2314
13983.L2335:
13984	.align	2
13985.L2334:
13986	.word	.LANCHOR0
13987	.word	.LANCHOR3
13988	.word	.LC156
13989	.fnend
13990	.size	ymtc_3d_read_retrial, .-ymtc_3d_read_retrial
13991	.align	2
13992	.global	samsung_read_retrial
13993	.syntax unified
13994	.arm
13995	.fpu softvfp
13996	.type	samsung_read_retrial, %function
13997samsung_read_retrial:
13998	.fnstart
13999	@ args = 4, pretend = 0, frame = 16
14000	@ frame_needed = 0, uses_anonymous_args = 0
14001	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
14002	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14003	mov	r9, r0
14004	.pad #28
14005	sub	sp, sp, #28
14006	mov	r7, r1
14007	mov	fp, r3
14008	str	r2, [sp, #16]
14009	bl	nandc_wait_flash_ready
14010	mov	r0, r9
14011	bl	zftl_flash_enter_slc_mode
14012	mov	r0, r9
14013	bl	zftl_flash_exit_slc_mode
14014	ldr	r3, .L2374
14015	tst	r7, #50331648
14016	ldr	r2, [r3, #1044]
14017	str	r3, [sp, #20]
14018	str	r2, [sp, #12]
14019	bne	.L2337
14020	lsl	r10, r9, #8
14021	mvn	r4, #0
14022	mov	r5, #1
14023	add	r6, r2, r10
14024.L2342:
14025	mov	r3, #239
14026	str	r3, [r6, #2056]
14027	mov	r3, #141
14028	str	r3, [r6, #2052]
14029	ldr	r3, .L2374+4
14030	ldrsb	r3, [r5, r3]
14031	str	r3, [r6, #2048]
14032	mov	r3, #0
14033	str	r3, [r6, #2048]
14034	str	r3, [r6, #2048]
14035	str	r3, [r6, #2048]
14036	bl	nandc_wait_flash_ready
14037	ldr	r3, [sp, #64]
14038	mov	r1, r7
14039	ldr	r2, [sp, #16]
14040	mov	r0, r9
14041	str	r3, [sp]
14042	mov	r3, fp
14043	bl	flash_read_page
14044	ldr	r3, .L2374+8
14045	mov	r8, r0
14046	ldr	r3, [r3]
14047	tst	r3, #16
14048	beq	.L2338
14049	mov	r3, r0
14050	mov	r2, r7
14051	mov	r1, r5
14052	ldr	r0, .L2374+12
14053	bl	printk
14054.L2338:
14055	cmn	r8, #1
14056	beq	.L2339
14057	ldr	r3, .L2374+16
14058	cmn	r4, #1
14059	moveq	r4, r8
14060	ldr	r2, [r3, #-120]
14061	ldr	fp, [r3, #-112]
14062	ldr	r3, [sp, #20]
14063	str	r2, [sp, #16]
14064	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
14065	add	r3, r3, r3, lsl #1
14066	cmp	r8, r3, asr #2
14067	bcc	.L2351
14068.L2339:
14069	add	r5, r5, #1
14070	cmp	r5, #26
14071	bne	.L2342
14072.L2341:
14073	ldr	r3, [sp, #12]
14074	add	r10, r3, r10
14075	mov	r3, #239
14076	str	r3, [r10, #2056]
14077	mov	r3, #141
14078.L2373:
14079	str	r3, [r6, #2052]
14080	mov	r3, #0
14081	str	r3, [r6, #2048]
14082	str	r3, [r6, #2048]
14083	str	r3, [r6, #2048]
14084	str	r3, [r6, #2048]
14085	bl	nandc_wait_flash_ready
14086	ldr	r3, .L2374
14087	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
14088	add	r3, r3, r3, lsl #1
14089	cmp	r4, r3, asr #2
14090	bcc	.L2349
14091	cmn	r4, #1
14092	movne	r4, #256
14093.L2349:
14094	cmn	r4, #1
14095	cmpne	r4, #256
14096	bne	.L2350
14097	str	r4, [sp]
14098	mov	r3, r5
14099	mov	r2, r7
14100	mov	r1, r5
14101	ldr	r0, .L2374+20
14102	bl	printk
14103.L2350:
14104	bl	nandc_wait_flash_ready
14105	mov	r0, r4
14106	add	sp, sp, #28
14107	@ sp needed
14108	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
14109.L2351:
14110	mov	r4, r8
14111	b	.L2341
14112.L2337:
14113	lsl	r3, r9, #8
14114	lsl	r2, r9, #8
14115	ldr	r8, .L2374+24
14116	str	r3, [sp, #20]
14117	mvn	r4, #0
14118	ldr	r3, [sp, #12]
14119	mov	r5, #1
14120	add	r6, r3, r2
14121.L2348:
14122	mov	r3, #239
14123	str	r3, [r6, #2056]
14124	mov	r3, #137
14125	str	r3, [r6, #2052]
14126	ldrb	r3, [r8, #4]	@ zero_extendqisi2
14127	str	r3, [r6, #2048]
14128	ldrb	r3, [r8, #5]	@ zero_extendqisi2
14129	str	r3, [r6, #2048]
14130	ldrb	r3, [r8, #6]	@ zero_extendqisi2
14131	str	r3, [r6, #2048]
14132	ldrb	r3, [r8, #7]	@ zero_extendqisi2
14133	str	r3, [r6, #2048]
14134	bl	nandc_wait_flash_ready
14135	ldr	r3, [sp, #64]
14136	mov	r1, r7
14137	ldr	r2, [sp, #16]
14138	mov	r0, r9
14139	str	r3, [sp]
14140	mov	r3, fp
14141	bl	flash_read_page
14142	ldr	r3, .L2374+8
14143	mov	r10, r0
14144	ldr	r3, [r3]
14145	tst	r3, #16
14146	beq	.L2344
14147	mov	r3, r0
14148	mov	r2, r7
14149	mov	r1, r5
14150	ldr	r0, .L2374+28
14151	bl	printk
14152.L2344:
14153	cmn	r10, #1
14154	beq	.L2345
14155	ldr	r3, .L2374+16
14156	cmn	r4, #1
14157	moveq	r4, r10
14158	ldr	r2, [r3, #-120]
14159	ldr	fp, [r3, #-112]
14160	ldr	r3, .L2374
14161	str	r2, [sp, #16]
14162	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
14163	add	r3, r3, r3, lsl #1
14164	cmp	r10, r3, asr #2
14165	bcc	.L2352
14166.L2345:
14167	add	r5, r5, #1
14168	add	r8, r8, #4
14169	cmp	r5, #26
14170	bne	.L2348
14171.L2347:
14172	ldr	r3, [sp, #12]
14173	ldr	r2, [sp, #20]
14174	add	r10, r3, r2
14175	mov	r3, #239
14176	str	r3, [r10, #2056]
14177	mov	r3, #137
14178	b	.L2373
14179.L2352:
14180	mov	r4, r10
14181	b	.L2347
14182.L2375:
14183	.align	2
14184.L2374:
14185	.word	.LANCHOR0
14186	.word	.LANCHOR1+1752
14187	.word	.LANCHOR2
14188	.word	.LC157
14189	.word	.LANCHOR3
14190	.word	.LC159
14191	.word	.LANCHOR1+1778
14192	.word	.LC158
14193	.fnend
14194	.size	samsung_read_retrial, .-samsung_read_retrial
14195	.align	2
14196	.global	hynix_read_retrial
14197	.syntax unified
14198	.arm
14199	.fpu softvfp
14200	.type	hynix_read_retrial, %function
14201hynix_read_retrial:
14202	.fnstart
14203	@ args = 4, pretend = 0, frame = 8
14204	@ frame_needed = 0, uses_anonymous_args = 0
14205	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
14206	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14207	mov	r10, r3
14208	ldr	fp, .L2395
14209	mov	r9, r2
14210	.pad #20
14211	sub	sp, sp, #20
14212	mov	r6, r0
14213	mov	r8, r1
14214	mov	r7, #0
14215	ldr	r3, [fp, #1040]
14216	mvn	r4, #0
14217	add	r2, r3, r0
14218	ldrb	r3, [r3, #114]	@ zero_extendqisi2
14219	str	r2, [sp, #12]
14220	ldrb	r5, [r2, #120]	@ zero_extendqisi2
14221	str	r3, [sp, #8]
14222	bl	nandc_wait_flash_ready
14223	mov	r0, r6
14224	bl	zftl_flash_enter_slc_mode
14225	mov	r0, r6
14226	bl	zftl_flash_exit_slc_mode
14227.L2377:
14228	ldr	r3, [sp, #8]
14229	cmp	r7, r3
14230	bcc	.L2382
14231.L2381:
14232	ldr	r3, [sp, #12]
14233	strb	r5, [r3, #120]
14234	ldrb	r3, [fp, #1193]	@ zero_extendqisi2
14235	add	r3, r3, r3, lsl #1
14236	cmp	r4, r3, asr #2
14237	bcc	.L2383
14238	cmn	r4, #1
14239	movne	r4, #256
14240.L2383:
14241	cmn	r4, #1
14242	cmpne	r4, #256
14243	bne	.L2384
14244	str	r4, [sp]
14245	mov	r3, r7
14246	mov	r2, r8
14247	mov	r1, r7
14248	ldr	r0, .L2395+4
14249	bl	printk
14250.L2384:
14251	bl	nandc_wait_flash_ready
14252	mov	r0, r4
14253	add	sp, sp, #20
14254	@ sp needed
14255	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
14256.L2382:
14257	ldr	r3, [sp, #8]
14258	add	r5, r5, #1
14259	uxtb	r5, r5
14260	mov	r0, r6
14261	cmp	r3, r5
14262	movls	r5, #0
14263	mov	r1, r5
14264	bl	hynix_set_rr_para
14265	ldr	r3, [sp, #56]
14266	mov	r2, r9
14267	mov	r1, r8
14268	mov	r0, r6
14269	str	r3, [sp]
14270	mov	r3, r10
14271	bl	flash_read_page
14272	cmn	r0, #1
14273	beq	.L2379
14274	ldr	r3, .L2395+8
14275	cmn	r4, #1
14276	moveq	r4, r0
14277	ldr	r9, [r3, #-120]
14278	ldr	r10, [r3, #-112]
14279	ldrb	r3, [fp, #1193]	@ zero_extendqisi2
14280	add	r3, r3, r3, lsl #1
14281	cmp	r0, r3, asr #2
14282	bcc	.L2385
14283.L2379:
14284	add	r7, r7, #1
14285	b	.L2377
14286.L2385:
14287	mov	r4, r0
14288	b	.L2381
14289.L2396:
14290	.align	2
14291.L2395:
14292	.word	.LANCHOR0
14293	.word	.LC160
14294	.word	.LANCHOR3
14295	.fnend
14296	.size	hynix_read_retrial, .-hynix_read_retrial
14297	.align	2
14298	.global	flash_ddr_tuning_read
14299	.syntax unified
14300	.arm
14301	.fpu softvfp
14302	.type	flash_ddr_tuning_read, %function
14303flash_ddr_tuning_read:
14304	.fnstart
14305	@ args = 4, pretend = 0, frame = 24
14306	@ frame_needed = 0, uses_anonymous_args = 0
14307	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
14308	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14309	mov	r4, #0
14310	mov	r5, r4
14311	mov	r6, #1024
14312	mov	r7, #6
14313	mvn	r10, #0
14314	.pad #36
14315	sub	sp, sp, #36
14316	mov	r8, r0
14317	mov	fp, r1
14318	str	r2, [sp, #16]
14319	str	r3, [sp, #20]
14320	bl	nandc_get_ddr_para
14321	str	r0, [sp, #28]
14322	str	r4, [sp, #24]
14323	str	r4, [sp, #12]
14324.L2403:
14325	uxtb	r0, r7
14326	bl	nandc_set_ddr_para
14327	ldr	r3, [sp, #72]
14328	mov	r1, fp
14329	ldr	r2, [sp, #16]
14330	mov	r0, r8
14331	str	r3, [sp]
14332	ldr	r3, [sp, #20]
14333	bl	flash_read_page
14334	ldr	r3, .L2424
14335	mov	r9, r0
14336	ldr	r3, [r3]
14337	tst	r3, #16
14338	beq	.L2398
14339	mov	r3, r0
14340	mov	r2, fp
14341	mov	r1, r7
14342	ldr	r0, .L2424+4
14343	bl	printk
14344.L2398:
14345	add	r3, r6, #1
14346	cmp	r9, r3
14347	bhi	.L2399
14348	ldr	r3, .L2424+8
14349	ldr	r3, [r3, #-120]
14350	str	r3, [sp, #16]
14351	ldr	r3, .L2424+8
14352	ldr	r3, [r3, #-112]
14353	str	r3, [sp, #20]
14354	ldr	r3, .L2424+12
14355	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
14356	cmp	r9, r3, lsr #2
14357	bcs	.L2409
14358	add	r5, r5, #1
14359	cmp	r5, #7
14360	bls	.L2409
14361	sub	r4, r7, r5
14362	mov	r6, r9
14363	mov	r10, #0
14364.L2401:
14365	ldr	r2, [sp, #12]
14366	ldr	r3, [sp, #24]
14367	cmp	r5, r2
14368	movcc	r4, r3
14369.L2402:
14370	cmp	r4, #0
14371	beq	.L2404
14372	ldr	r3, .L2424+12
14373	ldrb	r2, [r3, #1193]	@ zero_extendqisi2
14374	ldr	r3, .L2424+16
14375	umull	r2, r3, r2, r3
14376	ubfx	r3, r3, #1, #8
14377	cmp	r3, r6
14378	bls	.L2404
14379	mov	r1, r4
14380	ldr	r0, .L2424+20
14381	bl	printk
14382	uxtb	r0, r4
14383.L2423:
14384	bl	nandc_set_ddr_para
14385	cmn	r10, #1
14386	bne	.L2397
14387	ldr	r4, .L2424+12
14388	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
14389	mov	r5, r4
14390	tst	r3, #1
14391	beq	.L2397
14392	mov	r1, r8
14393	mov	r2, fp
14394	ldr	r0, .L2424+24
14395	bl	printk
14396	mov	r0, r8
14397	bl	flash_reset
14398	mov	r0, #1
14399	bl	flash_set_interface_mode
14400	mov	r0, #1
14401	bl	nandc_set_if_mode
14402	add	r3, r4, r8
14403	mov	r2, #2
14404	mov	r0, r8
14405	strb	r2, [r3, #1154]
14406	bl	zftl_flash_enter_slc_mode
14407	ldr	r3, [sp, #72]
14408	mov	r1, fp
14409	ldr	r2, [sp, #16]
14410	mov	r0, r8
14411	str	r3, [sp]
14412	ldr	r3, [sp, #20]
14413	bl	flash_read_page
14414	mov	r2, fp
14415	mov	r3, r0
14416	mov	r6, r0
14417	mov	r1, r8
14418	ldr	r0, .L2424+28
14419	bl	printk
14420	ldrb	r3, [r4, #1193]	@ zero_extendqisi2
14421	cmp	r6, r3
14422	bhi	.L2411
14423	ldr	r2, .L2424+8
14424	ldr	r3, [r2, #-104]
14425	add	r3, r3, #1
14426	cmp	r3, #100
14427	str	r3, [r2, #-104]
14428	movhi	r3, #0
14429	strbhi	r3, [r4, #1143]
14430	bhi	.L2397
14431.L2407:
14432	ldrb	r0, [r5, #1192]	@ zero_extendqisi2
14433	bl	flash_set_interface_mode
14434	ldrb	r0, [r5, #1192]	@ zero_extendqisi2
14435	bl	nandc_set_if_mode
14436.L2397:
14437	mov	r0, r6
14438	add	sp, sp, #36
14439	@ sp needed
14440	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
14441.L2399:
14442	ldr	r3, [sp, #12]
14443	cmp	r5, r3
14444	bls	.L2410
14445	cmp	r5, #7
14446	sub	r3, r4, r5
14447	str	r3, [sp, #24]
14448	bhi	.L2402
14449	str	r5, [sp, #12]
14450.L2410:
14451	mov	r5, #0
14452	b	.L2400
14453.L2409:
14454	mov	r4, r7
14455	mov	r6, r9
14456	mov	r10, #0
14457.L2400:
14458	add	r7, r7, #2
14459	cmp	r7, #50
14460	bne	.L2403
14461	b	.L2401
14462.L2404:
14463	ldrb	r0, [sp, #28]	@ zero_extendqisi2
14464	b	.L2423
14465.L2411:
14466	mov	r6, r10
14467	b	.L2407
14468.L2425:
14469	.align	2
14470.L2424:
14471	.word	.LANCHOR2
14472	.word	.LC161
14473	.word	.LANCHOR3
14474	.word	.LANCHOR0
14475	.word	-1431655765
14476	.word	.LC162
14477	.word	.LC163
14478	.word	.LC164
14479	.fnend
14480	.size	flash_ddr_tuning_read, .-flash_ddr_tuning_read
14481	.align	2
14482	.global	flash_read_page_en
14483	.syntax unified
14484	.arm
14485	.fpu softvfp
14486	.type	flash_read_page_en, %function
14487flash_read_page_en:
14488	.fnstart
14489	@ args = 4, pretend = 0, frame = 0
14490	@ frame_needed = 0, uses_anonymous_args = 0
14491	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
14492	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14493	.pad #12
14494	mov	r8, r3
14495	ldr	r5, .L2454
14496	mov	r10, r0
14497	mov	r4, r1
14498	mov	r7, r2
14499	ldr	r9, [sp, #48]
14500	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
14501	cmp	r3, r0
14502	bhi	.L2427
14503	movw	r2, #431
14504	ldr	r1, .L2454+4
14505	ldr	r0, .L2454+8
14506	bl	printk
14507	bl	dump_stack
14508.L2427:
14509	add	r3, r5, r10
14510	ldrb	r6, [r3, #1144]	@ zero_extendqisi2
14511	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
14512	cmp	r10, r3
14513	bcc	.L2428
14514	ldr	r2, .L2454+12
14515	ldr	r2, [r2]
14516	tst	r2, #64
14517	bne	.L2429
14518.L2453:
14519	mvn	r0, #0
14520.L2426:
14521	add	sp, sp, #12
14522	@ sp needed
14523	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
14524.L2429:
14525	str	r3, [sp]
14526	mov	r2, r10
14527	mov	r3, r4
14528	mov	r1, r6
14529	ldr	r0, .L2454+16
14530	bl	printk
14531	b	.L2453
14532.L2428:
14533	tst	r4, #50331648
14534	bne	.L2431
14535	ldrb	r3, [r5]	@ zero_extendqisi2
14536	cmp	r3, #0
14537	beq	.L2432
14538	ldrb	r3, [r5, #1]	@ zero_extendqisi2
14539	cmp	r3, #0
14540	beq	.L2431
14541.L2432:
14542	ldrh	r10, [r5, #2]
14543	mov	r0, r4
14544	mov	r1, r10
14545	bl	__aeabi_uidiv
14546	mov	r1, r10
14547	mul	fp, r10, r0
14548	mov	r0, r4
14549	bl	__aeabi_uidivmod
14550	ldrb	r3, [r5, #1]	@ zero_extendqisi2
14551	lsl	r1, r1, #1
14552	cmp	r3, #0
14553	addeq	r1, r5, r1
14554	addne	r4, r1, fp
14555	ldrheq	r4, [r1, #4]
14556	addeq	r4, r4, fp
14557.L2431:
14558	str	r9, [sp]
14559	mov	r3, r8
14560	mov	r2, r7
14561	mov	r1, r4
14562	mov	r0, r6
14563	bl	flash_read_page
14564	cmn	r0, #1
14565	bne	.L2426
14566	ldrb	r10, [r5, #1196]	@ zero_extendqisi2
14567	cmp	r10, #0
14568	bne	.L2434
14569.L2437:
14570	ldr	r3, .L2454+20
14571	ldr	r10, [r3, #-100]
14572	cmp	r10, #0
14573	bne	.L2435
14574.L2436:
14575	ldrb	r3, [r5, #1196]	@ zero_extendqisi2
14576	mov	r2, r4
14577	mov	r1, #0
14578	ldr	r0, .L2454+24
14579	str	r3, [sp]
14580	mvn	r3, #0
14581	bl	printk
14582	ldrb	r3, [r5, #1143]	@ zero_extendqisi2
14583	cmp	r3, #0
14584	beq	.L2453
14585	str	r9, [sp, #48]
14586	mov	r3, r8
14587	mov	r2, r7
14588	mov	r1, r4
14589	mov	r0, r6
14590	add	sp, sp, #12
14591	@ sp needed
14592	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
14593	b	flash_ddr_tuning_read
14594.L2434:
14595	mov	r3, #0
14596	str	r9, [sp]
14597	strb	r3, [r5, #1196]
14598	mov	r2, r7
14599	mov	r3, r8
14600	mov	r1, r4
14601	mov	r0, r6
14602	bl	flash_read_page
14603	cmn	r0, #1
14604	strb	r10, [r5, #1196]
14605	beq	.L2437
14606	b	.L2426
14607.L2435:
14608	str	r9, [sp]
14609	mov	r3, r8
14610	mov	r2, r7
14611	mov	r1, r4
14612	mov	r0, r6
14613	blx	r10
14614	cmn	r0, #1
14615	bne	.L2426
14616	b	.L2436
14617.L2455:
14618	.align	2
14619.L2454:
14620	.word	.LANCHOR0
14621	.word	.LANCHOR1+1882
14622	.word	.LC0
14623	.word	.LANCHOR2
14624	.word	.LC165
14625	.word	.LANCHOR3
14626	.word	.LC166
14627	.fnend
14628	.size	flash_read_page_en, .-flash_read_page_en
14629	.align	2
14630	.global	flash_get_last_written_page
14631	.syntax unified
14632	.arm
14633	.fpu softvfp
14634	.type	flash_get_last_written_page, %function
14635flash_get_last_written_page:
14636	.fnstart
14637	@ args = 4, pretend = 0, frame = 8
14638	@ frame_needed = 0, uses_anonymous_args = 0
14639	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
14640	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14641	mov	r8, r1
14642	ldr	r5, .L2467
14643	.pad #20
14644	sub	sp, sp, #20
14645	mov	r10, r0
14646	mov	fp, r2
14647	ldr	r1, .L2467+4
14648	mov	r9, r3
14649	ldrh	r6, [r5, #30]
14650	ldrh	r4, [r1, #-224]
14651	ldr	r1, [sp, #56]
14652	mul	r6, r8, r6
14653	sub	r4, r4, #1
14654	sxth	r4, r4
14655	str	r1, [sp]
14656	add	r1, r4, r6
14657	bl	flash_read_page_en
14658	cmp	r0, #512
14659	str	r5, [sp, #12]
14660	moveq	r7, #0
14661	beq	.L2458
14662.L2457:
14663	ldr	r3, [sp, #12]
14664	ldr	r3, [r3]
14665	tst	r3, #4096
14666	beq	.L2462
14667	ldr	r3, [r9]
14668	mov	r2, r4
14669	mov	r1, r8
14670	ldr	r0, .L2467+8
14671	bl	printk
14672.L2462:
14673	mov	r0, r4
14674	add	sp, sp, #20
14675	@ sp needed
14676	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
14677.L2461:
14678	add	r5, r7, r4
14679	ldr	r3, [sp, #56]
14680	add	r5, r5, r5, lsr #31
14681	mov	r2, fp
14682	mov	r0, r10
14683	asr	r5, r5, #1
14684	str	r3, [sp]
14685	mov	r3, r9
14686	sxtah	r1, r6, r5
14687	bl	flash_read_page_en
14688	cmp	r0, #512
14689	subeq	r4, r5, #1
14690	addne	r5, r5, #1
14691	sxtheq	r4, r4
14692	sxthne	r7, r5
14693.L2458:
14694	cmp	r7, r4
14695	ble	.L2461
14696	b	.L2457
14697.L2468:
14698	.align	2
14699.L2467:
14700	.word	.LANCHOR2
14701	.word	.LANCHOR3
14702	.word	.LC167
14703	.fnend
14704	.size	flash_get_last_written_page, .-flash_get_last_written_page
14705	.align	2
14706	.global	flash_get_last_written_page_ext
14707	.syntax unified
14708	.arm
14709	.fpu softvfp
14710	.type	flash_get_last_written_page_ext, %function
14711flash_get_last_written_page_ext:
14712	.fnstart
14713	@ args = 0, pretend = 0, frame = 0
14714	@ frame_needed = 0, uses_anonymous_args = 0
14715	ldr	ip, .L2471
14716	push	{r0, r1, r2, lr}
14717	.save {lr}
14718	.pad #12
14719	ldr	lr, .L2471+4
14720	ldrb	ip, [ip, #1153]	@ zero_extendqisi2
14721	ldrh	lr, [lr, #-2]
14722	str	r3, [sp]
14723	mov	r3, r2
14724	rsb	ip, ip, #24
14725	mov	r2, r1
14726	sub	ip, ip, lr
14727	mvn	r1, #0
14728	asr	lr, r0, ip
14729	bic	r1, r0, r1, lsl ip
14730	uxtb	r0, lr
14731	bl	flash_get_last_written_page
14732	add	sp, sp, #12
14733	@ sp needed
14734	ldr	pc, [sp], #4
14735.L2472:
14736	.align	2
14737.L2471:
14738	.word	.LANCHOR0
14739	.word	.LANCHOR3-3136
14740	.fnend
14741	.size	flash_get_last_written_page_ext, .-flash_get_last_written_page_ext
14742	.align	2
14743	.global	flash_ddr_para_scan
14744	.syntax unified
14745	.arm
14746	.fpu softvfp
14747	.type	flash_ddr_para_scan, %function
14748flash_ddr_para_scan:
14749	.fnstart
14750	@ args = 0, pretend = 0, frame = 0
14751	@ frame_needed = 0, uses_anonymous_args = 0
14752	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
14753	.save {r4, r5, r6, r7, r8, r9, lr}
14754	.pad #12
14755	mov	r7, r0
14756	ldr	r4, .L2480
14757	mov	r6, #1
14758	mov	r8, r1
14759	mov	r9, #4
14760	ldr	r5, .L2480+4
14761	ldrb	r0, [r4, #1192]	@ zero_extendqisi2
14762	strb	r6, [r4, #1143]
14763	bl	flash_set_interface_mode
14764	ldrb	r0, [r4, #1192]	@ zero_extendqisi2
14765	bl	nandc_set_if_mode
14766	ldr	r3, [r5, #-96]
14767	mov	r1, r8
14768	ldr	r2, [r5, #-92]
14769	mov	r0, r7
14770	str	r9, [sp]
14771	bl	flash_ddr_tuning_read
14772	ldr	r3, [r5, #-96]
14773	mov	r1, r8
14774	str	r9, [sp]
14775	mov	r0, r7
14776	ldr	r2, [r5, #-92]
14777	bl	flash_read_page
14778	cmn	r0, #1
14779	mov	r3, r4
14780	bne	.L2474
14781	ldrb	r2, [r4, #1192]	@ zero_extendqisi2
14782	tst	r2, #1
14783	beq	.L2474
14784	mov	r0, r6
14785	bl	flash_set_interface_mode
14786	mov	r0, r6
14787	bl	nandc_set_if_mode
14788	mov	r3, #0
14789	strb	r3, [r4, #1143]
14790.L2475:
14791	mov	r0, #0
14792	add	sp, sp, #12
14793	@ sp needed
14794	pop	{r4, r5, r6, r7, r8, r9, pc}
14795.L2474:
14796	mov	r2, #1
14797	strb	r2, [r3, #1143]
14798	b	.L2475
14799.L2481:
14800	.align	2
14801.L2480:
14802	.word	.LANCHOR0
14803	.word	.LANCHOR3
14804	.fnend
14805	.size	flash_ddr_para_scan, .-flash_ddr_para_scan
14806	.align	2
14807	.global	flash_prog_page
14808	.syntax unified
14809	.arm
14810	.fpu softvfp
14811	.type	flash_prog_page, %function
14812flash_prog_page:
14813	.fnstart
14814	@ args = 4, pretend = 0, frame = 8
14815	@ frame_needed = 0, uses_anonymous_args = 0
14816	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
14817	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14818	mov	fp, r3
14819	ldr	r6, .L2494
14820	.pad #20
14821	sub	sp, sp, #20
14822	mov	r4, r0
14823	mov	r7, r1
14824	str	r2, [sp, #12]
14825	mvn	r2, #0
14826	ldrb	r3, [r6, #1153]	@ zero_extendqisi2
14827	add	r8, r0, #8
14828	ldr	r5, [r6, #1044]
14829	rsb	r3, r3, #24
14830	bic	r10, r1, r2, lsl r3
14831	add	r8, r5, r8, lsl #8
14832	bl	nandc_wait_flash_ready
14833	mov	r0, r4
14834	bl	hynix_reconfig_rr_para
14835	mov	r0, r4
14836	bl	nandc_cs
14837	tst	r7, #50331648
14838	mov	r0, r4
14839	bne	.L2483
14840	bl	zftl_flash_enter_slc_mode
14841.L2484:
14842	lsl	r9, r4, #8
14843	mov	r1, #128
14844	mov	r0, r10
14845	add	r2, r5, r9
14846	add	r5, r5, r9
14847	str	r1, [r2, #2056]
14848	mov	r1, #0
14849	str	r1, [r2, #2052]
14850	str	r1, [r2, #2052]
14851	uxtb	r1, r10
14852	str	r1, [r2, #2052]
14853	lsr	r1, r10, #8
14854	str	r1, [r2, #2052]
14855	lsr	r1, r10, #16
14856	str	r1, [r2, #2052]
14857	ldrb	r1, [r6, #1152]	@ zero_extendqisi2
14858	cmp	r1, #0
14859	lsrne	r1, r10, #24
14860	strne	r1, [r2, #2052]
14861	bl	nandc_set_seed
14862	ldr	r3, .L2494+4
14863	mov	r1, #1
14864	mov	r0, r4
14865	ldrb	r2, [r3, #13]	@ zero_extendqisi2
14866	ldr	r3, [sp, #12]
14867	str	fp, [sp]
14868	bl	nandc_xfer
14869	mov	r3, #16
14870	str	r3, [r5, #2056]
14871	bl	nandc_iqr_wait_flash_ready
14872	bl	nandc_wait_flash_ready
14873	mov	r0, r8
14874	bl	flash_read_status
14875	bl	nandc_de_cs.constprop.35
14876	ands	r0, r0, #4
14877	beq	.L2482
14878	mov	r2, r0
14879	mov	r1, r7
14880	ldr	r0, .L2494+8
14881	bl	printk
14882	mvn	r0, #0
14883.L2482:
14884	add	sp, sp, #20
14885	@ sp needed
14886	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
14887.L2483:
14888	bl	zftl_flash_exit_slc_mode
14889	b	.L2484
14890.L2495:
14891	.align	2
14892.L2494:
14893	.word	.LANCHOR0
14894	.word	.LANCHOR2
14895	.word	.LC168
14896	.fnend
14897	.size	flash_prog_page, .-flash_prog_page
14898	.align	2
14899	.global	flash_test_blk
14900	.syntax unified
14901	.arm
14902	.fpu softvfp
14903	.type	flash_test_blk, %function
14904flash_test_blk:
14905	.fnstart
14906	@ args = 0, pretend = 0, frame = 0
14907	@ frame_needed = 0, uses_anonymous_args = 0
14908	push	{r0, r1, r2, r4, r5, r6, r7, lr}
14909	.save {r4, r5, r6, r7, lr}
14910	.pad #12
14911	mov	r6, r0
14912	ldr	r4, .L2507
14913	mov	r5, r1
14914	mov	r2, #32
14915	mov	r1, #165
14916	ldr	r0, [r4, #-120]
14917	bl	ftl_memset
14918	mov	r2, #8
14919	mov	r1, #90
14920	ldr	r0, [r4, #-112]
14921	bl	ftl_memset
14922	ldr	r3, .L2507+4
14923	mov	r0, r6
14924	ldrh	r3, [r3, #2]
14925	mul	r5, r5, r3
14926	mov	r1, r5
14927	bl	flash_erase_block
14928	cmn	r0, #1
14929	bne	.L2497
14930.L2499:
14931	mvn	r4, #0
14932.L2498:
14933	mov	r1, r5
14934	mov	r0, r6
14935	bl	flash_erase_block
14936	mov	r0, r4
14937	add	sp, sp, #12
14938	@ sp needed
14939	pop	{r4, r5, r6, r7, pc}
14940.L2497:
14941	ldr	r7, .L2507+8
14942	mov	r1, r5
14943	mov	r0, r6
14944	ldrb	r3, [r7, #13]	@ zero_extendqisi2
14945	str	r3, [sp]
14946	ldr	r3, [r4, #-112]
14947	ldr	r2, [r4, #-120]
14948	bl	flash_prog_page
14949	cmn	r0, #1
14950	beq	.L2499
14951	ldrb	r3, [r7, #13]	@ zero_extendqisi2
14952	mov	r1, r5
14953	mov	r0, r6
14954	str	r3, [sp]
14955	ldr	r3, [r4, #-112]
14956	ldr	r2, [r4, #-120]
14957	bl	flash_read_page_en
14958	cmn	r0, #1
14959	beq	.L2499
14960	ldr	r3, [r4, #-120]
14961	ldr	r2, [r3]
14962	ldr	r3, .L2507+12
14963	cmp	r2, r3
14964	bne	.L2499
14965	ldr	r3, [r4, #-112]
14966	ldr	r4, [r3]
14967	ldr	r3, .L2507+16
14968	subs	r4, r4, r3
14969	mvnne	r4, #0
14970	b	.L2498
14971.L2508:
14972	.align	2
14973.L2507:
14974	.word	.LANCHOR3
14975	.word	.LANCHOR0
14976	.word	.LANCHOR2
14977	.word	-1515870811
14978	.word	1515870810
14979	.fnend
14980	.size	flash_test_blk, .-flash_test_blk
14981	.align	2
14982	.global	flash_start_one_pass_page_prog
14983	.syntax unified
14984	.arm
14985	.fpu softvfp
14986	.type	flash_start_one_pass_page_prog, %function
14987flash_start_one_pass_page_prog:
14988	.fnstart
14989	@ args = 12, pretend = 0, frame = 0
14990	@ frame_needed = 0, uses_anonymous_args = 0
14991	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
14992	.save {r4, r5, r6, r7, r8, r9, r10, lr}
14993	.pad #8
14994	mov	r9, r3
14995	ldr	r6, .L2519
14996	mov	r10, r0
14997	lsl	r7, r9, #8
14998	mov	r0, r3
14999	ldr	r5, [sp, #40]
15000	mov	r8, r2
15001	ldr	r4, [r6, #1044]
15002	bl	nandc_cs
15003	cmp	r10, #0
15004	mov	r2, #128
15005	addne	r3, r4, r7
15006	mov	r0, r5
15007	strne	r10, [r3, #2056]
15008	add	r3, r4, r7
15009	str	r2, [r3, #2056]
15010	mov	r2, #0
15011	str	r2, [r3, #2052]
15012	add	r4, r4, r7
15013	str	r2, [r3, #2052]
15014	uxtb	r2, r5
15015	str	r2, [r3, #2052]
15016	lsr	r2, r5, #8
15017	str	r2, [r3, #2052]
15018	lsr	r2, r5, #16
15019	str	r2, [r3, #2052]
15020	ldrb	r2, [r6, #1152]	@ zero_extendqisi2
15021	cmp	r2, #0
15022	lsrne	r2, r5, #24
15023	strne	r2, [r3, #2052]
15024	bl	nandc_set_seed
15025	ldr	r3, .L2519+4
15026	mov	r1, #1
15027	mov	r0, r9
15028	ldrb	r2, [r3, #13]	@ zero_extendqisi2
15029	ldr	r3, [sp, #48]
15030	str	r3, [sp]
15031	ldr	r3, [sp, #44]
15032	bl	nandc_xfer
15033	str	r8, [r4, #2056]
15034	add	sp, sp, #8
15035	@ sp needed
15036	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
15037.L2520:
15038	.align	2
15039.L2519:
15040	.word	.LANCHOR0
15041	.word	.LANCHOR2
15042	.fnend
15043	.size	flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog
15044	.align	2
15045	.global	flash_dual_page_prog
15046	.syntax unified
15047	.arm
15048	.fpu softvfp
15049	.type	flash_dual_page_prog, %function
15050flash_dual_page_prog:
15051	.fnstart
15052	@ args = 12, pretend = 0, frame = 0
15053	@ frame_needed = 0, uses_anonymous_args = 0
15054	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
15055	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15056	mov	r10, r3
15057	ldr	r3, .L2534
15058	mov	r9, r2
15059	add	r2, r0, #8
15060	.pad #20
15061	sub	sp, sp, #20
15062	ldr	r6, .L2534+4
15063	mov	r4, r0
15064	ldrb	r5, [r3, #1153]	@ zero_extendqisi2
15065	mov	r7, r1
15066	ldr	r8, [r3, #1044]
15067	ubfx	fp, r1, #24, #2
15068	rsb	r3, r5, #24
15069	mvn	r5, #0
15070	bic	r5, r1, r5, lsl r3
15071	ldr	r3, [r6]
15072	add	r8, r8, r2, lsl #8
15073	tst	r3, #16
15074	beq	.L2522
15075	ldr	r3, [sp, #64]
15076	mov	r2, fp
15077	ldr	r0, .L2534+8
15078	bl	printk
15079.L2522:
15080	bl	nandc_wait_flash_ready
15081	mov	r0, r4
15082	bl	nandc_cs
15083	cmp	fp, #0
15084	mov	r0, r4
15085	bne	.L2523
15086	bl	zftl_flash_enter_slc_mode
15087.L2524:
15088	mov	r1, #0
15089	mov	r3, r4
15090	mov	r2, #16
15091	mov	r0, r1
15092	stm	sp, {r5, r9, r10}
15093	add	r5, r5, #1
15094	bl	flash_start_one_pass_page_prog
15095	bl	nandc_wait_flash_ready
15096	ldr	r3, [sp, #60]
15097	mov	r1, #0
15098	mov	r2, #16
15099	mov	r0, r1
15100	str	r5, [sp]
15101	str	r3, [sp, #8]
15102	ldr	r3, [sp, #56]
15103	str	r3, [sp, #4]
15104	mov	r3, r4
15105	bl	flash_start_one_pass_page_prog
15106	bl	nandc_wait_flash_ready
15107	mov	r0, r8
15108	bl	flash_read_status
15109	bl	nandc_de_cs.constprop.35
15110	ands	r0, r0, #4
15111	beq	.L2521
15112	ldr	r3, [r6]
15113	tst	r3, #4096
15114	beq	.L2526
15115	mov	r2, r0
15116	mov	r1, r7
15117	ldr	r0, .L2534+12
15118	bl	printk
15119.L2526:
15120	mvn	r0, #0
15121.L2521:
15122	add	sp, sp, #20
15123	@ sp needed
15124	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
15125.L2523:
15126	bl	zftl_flash_exit_slc_mode
15127	b	.L2524
15128.L2535:
15129	.align	2
15130.L2534:
15131	.word	.LANCHOR0
15132	.word	.LANCHOR2
15133	.word	.LC169
15134	.word	.LC168
15135	.fnend
15136	.size	flash_dual_page_prog, .-flash_dual_page_prog
15137	.align	2
15138	.global	ymtc_flash_tlc_page_prog
15139	.syntax unified
15140	.arm
15141	.fpu softvfp
15142	.type	ymtc_flash_tlc_page_prog, %function
15143ymtc_flash_tlc_page_prog:
15144	.fnstart
15145	@ args = 0, pretend = 0, frame = 0
15146	@ frame_needed = 0, uses_anonymous_args = 0
15147	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
15148	.save {r4, r5, r6, r7, r8, r9, r10, lr}
15149	.pad #16
15150	mov	r10, r3
15151	ldr	r3, .L2543
15152	mov	r6, #1
15153	mov	r5, r0
15154	mov	r8, r2
15155	add	r2, r0, #8
15156	mov	r9, r1
15157	ldrb	r4, [r3, #1153]	@ zero_extendqisi2
15158	ldr	r7, [r3, #1044]
15159	rsb	r4, r4, #24
15160	lsl	r4, r6, r4
15161	add	r7, r7, r2, lsl #8
15162	sub	r4, r4, #1
15163	and	r4, r4, r1
15164	bl	nandc_wait_flash_ready
15165	mov	r0, r5
15166	bl	nandc_cs
15167	mov	r0, r5
15168	bl	zftl_flash_exit_slc_mode
15169	mov	r3, r5
15170	mov	r2, #26
15171	mov	r1, r6
15172	stm	sp, {r4, r8, r10}
15173	mov	r0, #0
15174	bl	flash_start_one_pass_page_prog
15175	bl	nandc_wait_flash_ready
15176	add	r3, r4, r6
15177	mov	r2, #26
15178	mov	r1, r6
15179	str	r3, [sp]
15180	mov	r0, #0
15181	mov	r3, r5
15182	stmib	sp, {r8, r10}
15183	add	r4, r4, #2
15184	bl	flash_start_one_pass_page_prog
15185	bl	nandc_wait_flash_ready
15186	mov	r3, r5
15187	mov	r2, #16
15188	mov	r1, r6
15189	mov	r0, #0
15190	stmib	sp, {r8, r10}
15191	str	r4, [sp]
15192	bl	flash_start_one_pass_page_prog
15193	bl	nandc_iqr_wait_flash_ready
15194	bl	nandc_wait_flash_ready
15195	mov	r0, r7
15196	bl	flash_read_status
15197	bl	nandc_de_cs.constprop.35
15198	ands	r0, r0, #4
15199	beq	.L2536
15200	ldr	r3, .L2543+4
15201	ldr	r3, [r3]
15202	tst	r3, #4096
15203	beq	.L2538
15204	mov	r2, r0
15205	mov	r1, r9
15206	ldr	r0, .L2543+8
15207	bl	printk
15208.L2538:
15209	mvn	r0, #0
15210.L2536:
15211	add	sp, sp, #16
15212	@ sp needed
15213	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
15214.L2544:
15215	.align	2
15216.L2543:
15217	.word	.LANCHOR0
15218	.word	.LANCHOR2
15219	.word	.LC170
15220	.fnend
15221	.size	ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog
15222	.section	.text.unlikely
15223	.align	2
15224	.syntax unified
15225	.arm
15226	.fpu softvfp
15227	.type	fw_flash_page_prog.constprop.29, %function
15228fw_flash_page_prog.constprop.29:
15229	.fnstart
15230	@ args = 0, pretend = 0, frame = 0
15231	@ frame_needed = 0, uses_anonymous_args = 0
15232	push	{r4, r5, r6, r7, r8, r9, lr}
15233	.save {r4, r5, r6, r7, r8, r9, lr}
15234	mov	r6, r1
15235	ldr	r4, .L2551
15236	.pad #20
15237	sub	sp, sp, #20
15238	mov	r7, r2
15239	ldr	r3, [r4, #1104]
15240	ldrb	r1, [r3, #9]	@ zero_extendqisi2
15241	bl	__aeabi_uidiv
15242	mov	r5, r0
15243	ldrb	r0, [r4, #1108]	@ zero_extendqisi2
15244	ldrb	r8, [r4, #1193]	@ zero_extendqisi2
15245	bl	nandc_bch_sel
15246	ldr	r3, .L2551+4
15247	ldrb	r2, [r3, #11]	@ zero_extendqisi2
15248	cmp	r2, #9
15249	bne	.L2546
15250	ldrb	r4, [r4, #1110]	@ zero_extendqisi2
15251	cmp	r4, #0
15252	bne	.L2546
15253	ldrb	r3, [r3, #16]	@ zero_extendqisi2
15254	cmp	r3, #3
15255	bne	.L2547
15256	mov	r3, r7
15257	mov	r2, r6
15258	mov	r1, r5
15259	mov	r0, r4
15260	bl	ymtc_flash_tlc_page_prog
15261.L2550:
15262	mov	r4, r0
15263	mov	r0, r8
15264	bl	nandc_bch_sel
15265	mov	r0, r4
15266	add	sp, sp, #20
15267	@ sp needed
15268	pop	{r4, r5, r6, r7, r8, r9, pc}
15269.L2547:
15270	ldr	r9, .L2551+8
15271	mov	r2, #16384
15272	mov	r1, #255
15273	ldr	r0, [r9, #-120]
15274	bl	ftl_memset
15275	ldr	r3, [r9, #-120]
15276	mov	r2, #4
15277	str	r2, [sp, #8]
15278	mov	r1, r5
15279	mov	r2, r6
15280	mov	r0, r4
15281	str	r3, [sp, #4]
15282	str	r3, [sp]
15283	mov	r3, r7
15284	bl	flash_dual_page_prog
15285	b	.L2550
15286.L2546:
15287	mov	r3, #4
15288	mov	r2, r6
15289	str	r3, [sp]
15290	mov	r1, r5
15291	mov	r3, r7
15292	mov	r0, #0
15293	bl	flash_prog_page
15294	b	.L2550
15295.L2552:
15296	.align	2
15297.L2551:
15298	.word	.LANCHOR0
15299	.word	.LANCHOR2
15300	.word	.LANCHOR3
15301	.fnend
15302	.size	fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29
15303	.text
15304	.align	2
15305	.global	flash_start_tlc_page_prog
15306	.syntax unified
15307	.arm
15308	.fpu softvfp
15309	.type	flash_start_tlc_page_prog, %function
15310flash_start_tlc_page_prog:
15311	.fnstart
15312	@ args = 12, pretend = 0, frame = 0
15313	@ frame_needed = 0, uses_anonymous_args = 0
15314	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
15315	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15316	.pad #12
15317	mov	r6, r3
15318	ldr	r4, .L2561
15319	add	r5, sp, #48
15320	mov	fp, r0
15321	mov	r7, r1
15322	mov	r8, r2
15323	ldm	r5, {r5, r9, r10}
15324	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
15325	cmp	r3, r6
15326	bhi	.L2554
15327	mov	r2, #868
15328	ldr	r1, .L2561+4
15329	ldr	r0, .L2561+8
15330	bl	printk
15331	bl	dump_stack
15332.L2554:
15333	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
15334	cmp	r3, r6
15335	bls	.L2553
15336	add	r6, r4, r6
15337	ldr	r4, [r4, #1044]
15338	ldrb	r6, [r6, #1144]	@ zero_extendqisi2
15339	mov	r0, r6
15340	bl	nandc_cs
15341	lsl	r3, r6, #8
15342	cmp	fp, #0
15343	addne	r2, r4, r3
15344	add	r4, r4, r3
15345	mov	r3, #128
15346	strne	fp, [r2, #2056]
15347	str	r7, [r4, #2056]
15348	str	r3, [r4, #2056]
15349	mov	r3, #0
15350	str	r3, [r4, #2052]
15351	str	r3, [r4, #2052]
15352	uxtb	r3, r5
15353	str	r3, [r4, #2052]
15354	lsr	r3, r5, #8
15355	str	r3, [r4, #2052]
15356	lsr	r3, r5, #16
15357	add	r5, r5, r5, lsl #1
15358	str	r3, [r4, #2052]
15359	sub	r0, r5, #1
15360	add	r0, r0, r7
15361	bl	nandc_set_seed
15362	ldr	r3, .L2561+12
15363	mov	r1, #1
15364	mov	r0, r6
15365	ldrb	r2, [r3, #13]	@ zero_extendqisi2
15366	mov	r3, r9
15367	str	r10, [sp]
15368	bl	nandc_xfer
15369	str	r8, [r4, #2056]
15370	add	sp, sp, #12
15371	@ sp needed
15372	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
15373	b	nandc_de_cs.constprop.35
15374.L2553:
15375	add	sp, sp, #12
15376	@ sp needed
15377	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
15378.L2562:
15379	.align	2
15380.L2561:
15381	.word	.LANCHOR0
15382	.word	.LANCHOR1+1901
15383	.word	.LC0
15384	.word	.LANCHOR2
15385	.fnend
15386	.size	flash_start_tlc_page_prog, .-flash_start_tlc_page_prog
15387	.align	2
15388	.syntax unified
15389	.arm
15390	.fpu softvfp
15391	.type	queue_tlc_prog_cmd, %function
15392queue_tlc_prog_cmd:
15393	.fnstart
15394	@ args = 0, pretend = 0, frame = 0
15395	@ frame_needed = 0, uses_anonymous_args = 0
15396	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
15397	.save {r4, r5, r6, r7, r8, lr}
15398	.pad #16
15399	mov	r8, r1
15400	ldr	r1, .L2568
15401	mov	r7, #1
15402	mov	r6, r0
15403	ldr	r2, [r0]
15404	ldrb	r3, [r1, #1153]	@ zero_extendqisi2
15405	ldr	ip, [r2, #24]
15406	rsb	r0, r3, #24
15407	lsl	r4, r7, r3
15408	ldrb	r3, [r1, #1159]	@ zero_extendqisi2
15409	lsl	r5, r7, r0
15410	sub	r4, r4, #1
15411	and	r4, r4, ip, lsr r0
15412	cmp	r3, #0
15413	sub	r5, r5, #1
15414	and	r5, r5, ip
15415	uxtb	r4, r4
15416	beq	.L2564
15417	mov	r0, r4
15418	bl	zftl_flash_exit_slc_mode
15419	ldr	r3, [r6]
15420	mov	r1, r7
15421	mov	r0, #0
15422	ldr	r2, [r3, #12]
15423	str	r2, [sp, #8]
15424	mov	r2, #26
15425	ldr	r3, [r3, #4]
15426	str	r5, [sp]
15427	str	r3, [sp, #4]
15428	mov	r3, r4
15429	bl	flash_start_one_pass_page_prog
15430	bl	nandc_iqr_wait_flash_ready
15431	bl	nandc_wait_flash_ready
15432	ldr	r3, [r6, #4]
15433	mov	r1, r7
15434	mov	r0, #0
15435	ldr	r2, [r3, #12]
15436	str	r2, [sp, #8]
15437	mov	r2, #26
15438	ldr	r3, [r3, #4]
15439	str	r3, [sp, #4]
15440	add	r3, r5, r7
15441	str	r3, [sp]
15442	mov	r3, r4
15443	bl	flash_start_one_pass_page_prog
15444	bl	nandc_iqr_wait_flash_ready
15445	bl	nandc_wait_flash_ready
15446	ldr	r3, [r6, #8]
15447	add	r5, r5, #2
15448	mov	r1, r7
15449	mov	r0, #0
15450	ldr	r2, [r3, #12]
15451	str	r2, [sp, #8]
15452	mov	r2, #16
15453	ldr	r3, [r3, #4]
15454	str	r5, [sp]
15455	str	r3, [sp, #4]
15456	mov	r3, r4
15457	bl	flash_start_one_pass_page_prog
15458.L2565:
15459	cmp	r8, #0
15460	beq	.L2563
15461	ldr	r1, [r6]
15462	mov	r3, #4
15463	ldr	r0, .L2568+4
15464	strb	r3, [r1, #42]
15465	mov	r3, #1
15466	strb	r3, [r1, #43]
15467	mvn	r3, #0
15468	strb	r3, [r1]
15469	add	sp, sp, #16
15470	@ sp needed
15471	pop	{r4, r5, r6, r7, r8, lr}
15472	b	buf_add_tail
15473.L2564:
15474	ldr	r3, [r2, #12]
15475	mov	r1, r7
15476	ldrb	r0, [r2, #44]	@ zero_extendqisi2
15477	str	r3, [sp, #8]
15478	ldr	r3, [r2, #4]
15479	mov	r2, #26
15480	str	r5, [sp]
15481	str	r3, [sp, #4]
15482	mov	r3, r4
15483	bl	flash_start_tlc_page_prog
15484	bl	nandc_iqr_wait_flash_ready
15485	bl	nandc_wait_flash_ready
15486	ldm	r6, {r2, r3}
15487	mov	r1, #2
15488	ldrb	r0, [r2, #44]	@ zero_extendqisi2
15489	ldr	r2, [r3, #12]
15490	str	r2, [sp, #8]
15491	mov	r2, #26
15492	ldr	r3, [r3, #4]
15493	str	r5, [sp]
15494	str	r3, [sp, #4]
15495	mov	r3, r4
15496	bl	flash_start_tlc_page_prog
15497	bl	nandc_iqr_wait_flash_ready
15498	bl	nandc_wait_flash_ready
15499	ldr	r3, [r6, #8]
15500	mov	r1, #3
15501	ldr	r2, [r6]
15502	ldrb	r0, [r2, #44]	@ zero_extendqisi2
15503	ldr	r2, [r3, #12]
15504	str	r2, [sp, #8]
15505	mov	r2, #16
15506	ldr	r3, [r3, #4]
15507	str	r5, [sp]
15508	str	r3, [sp, #4]
15509	mov	r3, r4
15510	bl	flash_start_tlc_page_prog
15511	b	.L2565
15512.L2563:
15513	add	sp, sp, #16
15514	@ sp needed
15515	pop	{r4, r5, r6, r7, r8, pc}
15516.L2569:
15517	.align	2
15518.L2568:
15519	.word	.LANCHOR0
15520	.word	.LANCHOR0+2770
15521	.fnend
15522	.size	queue_tlc_prog_cmd, .-queue_tlc_prog_cmd
15523	.align	2
15524	.global	sblk_3d_tlc_dump_prog
15525	.syntax unified
15526	.arm
15527	.fpu softvfp
15528	.type	sblk_3d_tlc_dump_prog, %function
15529sblk_3d_tlc_dump_prog:
15530	.fnstart
15531	@ args = 0, pretend = 0, frame = 0
15532	@ frame_needed = 0, uses_anonymous_args = 0
15533	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
15534	.save {r4, r5, r6, r7, r8, lr}
15535	.pad #16
15536	mov	r7, #1
15537	ldr	r2, .L2574
15538	mov	r5, r0
15539	ldr	r0, [r0, #24]
15540	ldrb	r3, [r2, #1153]	@ zero_extendqisi2
15541	ldrb	r8, [r2, #1159]	@ zero_extendqisi2
15542	rsb	r1, r3, #24
15543	lsl	r4, r7, r3
15544	lsl	r6, r7, r1
15545	sub	r4, r4, #1
15546	cmp	r8, #0
15547	and	r4, r4, r0, lsr r1
15548	sub	r6, r6, #1
15549	and	r6, r6, r0
15550	uxtb	r4, r4
15551	beq	.L2571
15552	mov	r0, r4
15553	bl	zftl_flash_exit_slc_mode
15554	ldr	r3, [r5, #12]
15555	mov	r2, #26
15556	mov	r1, r7
15557	mov	r0, #0
15558	str	r6, [sp]
15559	str	r3, [sp, #8]
15560	ldr	r3, [r5, #4]
15561	str	r3, [sp, #4]
15562	mov	r3, r4
15563	bl	flash_start_one_pass_page_prog
15564	bl	nandc_iqr_wait_flash_ready
15565	bl	nandc_wait_flash_ready
15566	ldr	r3, [r5, #12]
15567	mov	r2, #26
15568	mov	r1, r7
15569	mov	r0, #0
15570	str	r3, [sp, #8]
15571	ldr	r3, [r5, #4]
15572	str	r3, [sp, #4]
15573	add	r3, r6, r7
15574	str	r3, [sp]
15575	mov	r3, r4
15576	bl	flash_start_one_pass_page_prog
15577	bl	nandc_iqr_wait_flash_ready
15578	bl	nandc_wait_flash_ready
15579	ldr	r3, [r5, #12]
15580	add	r6, r6, #2
15581	str	r6, [sp]
15582	mov	r2, #16
15583	mov	r1, r7
15584	mov	r0, #0
15585	str	r3, [sp, #8]
15586	ldr	r3, [r5, #4]
15587	str	r3, [sp, #4]
15588	mov	r3, r4
15589	bl	flash_start_one_pass_page_prog
15590.L2572:
15591	bl	nandc_iqr_wait_flash_ready
15592	bl	nandc_wait_flash_ready
15593	mov	r1, #64
15594	ldr	r0, [r5, #24]
15595	add	sp, sp, #16
15596	@ sp needed
15597	pop	{r4, r5, r6, r7, r8, lr}
15598	b	flash_wait_device_ready
15599.L2571:
15600	ldr	r3, [r5, #12]
15601	mov	r1, r7
15602	mov	r2, #26
15603	mov	r0, r8
15604	str	r6, [sp]
15605	str	r3, [sp, #8]
15606	ldr	r3, [r5, #4]
15607	str	r3, [sp, #4]
15608	mov	r3, r4
15609	bl	flash_start_tlc_page_prog
15610	bl	nandc_iqr_wait_flash_ready
15611	bl	nandc_wait_flash_ready
15612	ldr	r3, [r5, #12]
15613	mov	r2, #26
15614	mov	r1, #2
15615	mov	r0, r8
15616	str	r6, [sp]
15617	str	r3, [sp, #8]
15618	ldr	r3, [r5, #4]
15619	str	r3, [sp, #4]
15620	mov	r3, r4
15621	bl	flash_start_tlc_page_prog
15622	bl	nandc_iqr_wait_flash_ready
15623	bl	nandc_wait_flash_ready
15624	ldr	r3, [r5, #12]
15625	mov	r2, #16
15626	str	r6, [sp]
15627	mov	r1, #3
15628	mov	r0, r8
15629	str	r3, [sp, #8]
15630	ldr	r3, [r5, #4]
15631	str	r3, [sp, #4]
15632	mov	r3, r4
15633	bl	flash_start_tlc_page_prog
15634	b	.L2572
15635.L2575:
15636	.align	2
15637.L2574:
15638	.word	.LANCHOR0
15639	.fnend
15640	.size	sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog
15641	.align	2
15642	.global	flash_start_3d_mlc_page_prog
15643	.syntax unified
15644	.arm
15645	.fpu softvfp
15646	.type	flash_start_3d_mlc_page_prog, %function
15647flash_start_3d_mlc_page_prog:
15648	.fnstart
15649	@ args = 4, pretend = 0, frame = 0
15650	@ frame_needed = 0, uses_anonymous_args = 0
15651	push	{r0, r1, r4, r5, r6, r7, r8, lr}
15652	.save {r4, r5, r6, r7, r8, lr}
15653	.pad #8
15654	mov	r8, r3
15655	ldr	r4, .L2580
15656	mov	r7, r0
15657	mov	r5, r1
15658	mov	r6, r2
15659	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
15660	cmp	r3, r1
15661	bhi	.L2577
15662	movw	r2, #903
15663	ldr	r1, .L2580+4
15664	ldr	r0, .L2580+8
15665	bl	printk
15666	bl	dump_stack
15667.L2577:
15668	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
15669	cmp	r3, r5
15670	bls	.L2576
15671	add	r5, r4, r5
15672	ldr	r4, [r4, #1044]
15673	ldrb	r5, [r5, #1144]	@ zero_extendqisi2
15674	mov	r0, r5
15675	add	r4, r4, r5, lsl #8
15676	bl	nandc_cs
15677	mov	r3, #128
15678	mov	r0, r6
15679	str	r3, [r4, #2056]
15680	mov	r3, #0
15681	str	r3, [r4, #2052]
15682	str	r3, [r4, #2052]
15683	uxtb	r3, r6
15684	str	r3, [r4, #2052]
15685	lsr	r3, r6, #8
15686	str	r3, [r4, #2052]
15687	lsr	r3, r6, #16
15688	str	r3, [r4, #2052]
15689	bl	nandc_set_seed
15690	ldr	r3, .L2580+12
15691	mov	r1, #1
15692	mov	r0, r5
15693	ldrb	r2, [r3, #13]	@ zero_extendqisi2
15694	ldr	r3, [sp, #32]
15695	str	r3, [sp]
15696	mov	r3, r8
15697	bl	nandc_xfer
15698	str	r7, [r4, #2056]
15699.L2576:
15700	add	sp, sp, #8
15701	@ sp needed
15702	pop	{r4, r5, r6, r7, r8, pc}
15703.L2581:
15704	.align	2
15705.L2580:
15706	.word	.LANCHOR0
15707	.word	.LANCHOR1+1927
15708	.word	.LC0
15709	.word	.LANCHOR2
15710	.fnend
15711	.size	flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog
15712	.align	2
15713	.global	sblk_mlc_dump_prog
15714	.syntax unified
15715	.arm
15716	.fpu softvfp
15717	.type	sblk_mlc_dump_prog, %function
15718sblk_mlc_dump_prog:
15719	.fnstart
15720	@ args = 0, pretend = 0, frame = 0
15721	@ frame_needed = 0, uses_anonymous_args = 0
15722	ldr	r3, .L2588
15723	push	{r0, r1, r4, r5, r6, lr}
15724	.save {r4, r5, r6, lr}
15725	.pad #8
15726	mov	r5, r0
15727	ldr	r1, [r0, #24]
15728	ldrb	r4, [r3, #1153]	@ zero_extendqisi2
15729	mov	r3, #1
15730	rsb	r2, r4, #24
15731	lsl	r4, r3, r4
15732	lsl	r6, r3, r2
15733	sub	r4, r4, #1
15734	sub	r6, r6, #1
15735	and	r4, r4, r1, lsr r2
15736	and	r6, r6, r1
15737	uxtb	r4, r4
15738	mov	r0, r4
15739	bl	zftl_flash_exit_slc_mode
15740	ldr	r3, .L2588+4
15741	ldr	r3, [r3]
15742	tst	r3, #4096
15743	beq	.L2583
15744	ldr	r2, [r5, #24]
15745	mov	r1, r6
15746	ldr	r0, .L2588+8
15747	add	r3, r2, #1
15748	bl	printk
15749.L2583:
15750	ldr	r3, [r5, #12]
15751	mov	r2, r6
15752	mov	r1, r4
15753	mov	r0, #16
15754	str	r3, [sp]
15755	ldr	r3, [r5, #4]
15756	bl	flash_start_3d_mlc_page_prog
15757	bl	nandc_iqr_wait_flash_ready
15758	bl	nandc_wait_flash_ready
15759	ldr	r3, [r5, #12]
15760	add	r2, r6, #1
15761	mov	r1, r4
15762	mov	r0, #16
15763	str	r3, [sp]
15764	ldr	r3, [r5, #4]
15765	bl	flash_start_3d_mlc_page_prog
15766	bl	nandc_iqr_wait_flash_ready
15767	bl	nandc_wait_flash_ready
15768	mov	r1, #64
15769	ldr	r0, [r5, #24]
15770	bl	flash_wait_device_ready
15771	bl	nandc_de_cs.constprop.35
15772	add	sp, sp, #8
15773	@ sp needed
15774	pop	{r4, r5, r6, pc}
15775.L2589:
15776	.align	2
15777.L2588:
15778	.word	.LANCHOR0
15779	.word	.LANCHOR2
15780	.word	.LC171
15781	.fnend
15782	.size	sblk_mlc_dump_prog, .-sblk_mlc_dump_prog
15783	.align	2
15784	.global	flash_start_page_prog
15785	.syntax unified
15786	.arm
15787	.fpu softvfp
15788	.type	flash_start_page_prog, %function
15789flash_start_page_prog:
15790	.fnstart
15791	@ args = 0, pretend = 0, frame = 8
15792	@ frame_needed = 0, uses_anonymous_args = 0
15793	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
15794	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15795	mov	r10, r2
15796	ldr	r5, .L2605
15797	mov	fp, r3
15798	mov	r8, r1
15799	.pad #20
15800	sub	sp, sp, #20
15801	str	r0, [sp, #12]
15802	ldrb	r2, [r5, #1153]	@ zero_extendqisi2
15803	rsb	r4, r2, #24
15804	lsr	r3, r1, r4
15805	mvn	r1, #0
15806	bic	r3, r3, r1, lsl r2
15807	ldrb	r2, [r5, #1109]	@ zero_extendqisi2
15808	uxtb	r9, r3
15809	cmp	r2, r9
15810	bhi	.L2591
15811	mov	r2, #956
15812	ldr	r1, .L2605+4
15813	ldr	r0, .L2605+8
15814	bl	printk
15815	bl	dump_stack
15816.L2591:
15817	ldrb	r2, [r5, #1109]	@ zero_extendqisi2
15818	cmp	r2, r9
15819	bls	.L2590
15820	mvn	r2, #0
15821	ldr	r7, [r5, #1044]
15822	bic	r4, r8, r2, lsl r4
15823	add	r2, r5, r9
15824	ldrb	r6, [r2, #1144]	@ zero_extendqisi2
15825	bl	nandc_rdy_status
15826	cmp	r0, #0
15827	bne	.L2593
15828	ldrb	r2, [r5, #1109]	@ zero_extendqisi2
15829	cmp	r2, #1
15830	bne	.L2594
15831	bl	nandc_wait_flash_ready
15832.L2593:
15833	mov	r0, r6
15834	bl	hynix_reconfig_rr_para
15835	mov	r0, r6
15836	bl	nandc_cs
15837	tst	r8, #50331648
15838	bne	.L2595
15839	mov	r0, r4
15840	bl	slc_phy_page_address_calc
15841	ldrb	r3, [r5]	@ zero_extendqisi2
15842	mov	r4, r0
15843	cmp	r3, #0
15844	beq	.L2596
15845	mov	r0, r6
15846	bl	zftl_flash_enter_slc_mode
15847.L2596:
15848	lsl	r8, r6, #8
15849	mov	r2, #128
15850	mov	r0, r4
15851	add	r3, r7, r8
15852	add	r7, r7, r8
15853	str	r2, [r3, #2056]
15854	mov	r2, #0
15855	str	r2, [r3, #2052]
15856	str	r2, [r3, #2052]
15857	uxtb	r2, r4
15858	str	r2, [r3, #2052]
15859	lsr	r2, r4, #8
15860	str	r2, [r3, #2052]
15861	lsr	r2, r4, #16
15862	str	r2, [r3, #2052]
15863	ldrb	r2, [r5, #1152]	@ zero_extendqisi2
15864	cmp	r2, #0
15865	lsrne	r2, r4, #24
15866	strne	r2, [r3, #2052]
15867	bl	nandc_set_seed
15868	ldr	r3, .L2605+12
15869	mov	r1, #1
15870	mov	r0, r6
15871	ldrb	r2, [r3, #13]	@ zero_extendqisi2
15872	mov	r3, r10
15873	str	fp, [sp]
15874	bl	nandc_xfer
15875	ldr	r3, [sp, #12]
15876	str	r3, [r7, #2056]
15877	add	sp, sp, #20
15878	@ sp needed
15879	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
15880	b	nandc_de_cs.constprop.35
15881.L2594:
15882	mov	r2, #64
15883	mov	r1, r4
15884	mov	r0, r9
15885	bl	flash_wait_device_ready_raw
15886	b	.L2593
15887.L2595:
15888	mov	r0, r6
15889	bl	zftl_flash_exit_slc_mode
15890	b	.L2596
15891.L2590:
15892	add	sp, sp, #20
15893	@ sp needed
15894	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
15895.L2606:
15896	.align	2
15897.L2605:
15898	.word	.LANCHOR0
15899	.word	.LANCHOR1+1956
15900	.word	.LC0
15901	.word	.LANCHOR2
15902	.fnend
15903	.size	flash_start_page_prog, .-flash_start_page_prog
15904	.align	2
15905	.syntax unified
15906	.arm
15907	.fpu softvfp
15908	.type	queue_prog_cmd, %function
15909queue_prog_cmd:
15910	.fnstart
15911	@ args = 0, pretend = 0, frame = 0
15912	@ frame_needed = 0, uses_anonymous_args = 0
15913	push	{r4, r5, r6, r7, r8, lr}
15914	.save {r4, r5, r6, r7, r8, lr}
15915	mov	r4, r0
15916	ldr	r3, [r0, #12]
15917	ldr	r2, [r0, #4]
15918	ldr	r1, [r0, #24]
15919	mov	r0, #16
15920	bl	flash_start_page_prog
15921	ldr	r2, .L2616
15922	ldr	r0, [r4, #24]
15923	ldrb	r3, [r2, #2770]	@ zero_extendqisi2
15924	cmp	r3, #255
15925	beq	.L2608
15926	ldrb	ip, [r2, #1153]	@ zero_extendqisi2
15927	mvn	r1, #0
15928	mov	r5, #48
15929	movw	r8, #1256
15930	movw	r6, #1274
15931	rsb	r7, ip, #24
15932	mvn	r1, r1, lsl ip
15933	uxth	r1, r1
15934	and	r0, r1, r0, asr r7
15935.L2610:
15936	mla	ip, r5, r3, r2
15937	ldr	lr, [ip, r8]
15938	and	lr, r1, lr, lsr r7
15939	cmp	r0, lr
15940	bne	.L2609
15941	add	lr, ip, r6
15942	ldrb	ip, [ip, r6]	@ zero_extendqisi2
15943	cmp	ip, #7
15944	bne	.L2609
15945	mov	r3, #3
15946	strb	r3, [lr]
15947.L2608:
15948	mov	r3, #3
15949	mov	r1, r4
15950	strb	r3, [r4, #42]
15951	mov	r3, #1
15952	strb	r3, [r4, #43]
15953	mvn	r3, #0
15954	strb	r3, [r4]
15955	ldr	r0, .L2616+4
15956	pop	{r4, r5, r6, r7, r8, lr}
15957	b	buf_add_tail
15958.L2609:
15959	mla	r3, r5, r3, r2
15960	ldrb	r3, [r3, #1232]	@ zero_extendqisi2
15961	cmp	r3, #255
15962	bne	.L2610
15963	b	.L2608
15964.L2617:
15965	.align	2
15966.L2616:
15967	.word	.LANCHOR0
15968	.word	.LANCHOR0+2770
15969	.fnend
15970	.size	queue_prog_cmd, .-queue_prog_cmd
15971	.align	2
15972	.global	flash_complete_plane_page_read
15973	.syntax unified
15974	.arm
15975	.fpu softvfp
15976	.type	flash_complete_plane_page_read, %function
15977flash_complete_plane_page_read:
15978	.fnstart
15979	@ args = 0, pretend = 0, frame = 0
15980	@ frame_needed = 0, uses_anonymous_args = 0
15981	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
15982	.save {r4, r5, r6, r7, r8, r9, r10, lr}
15983	.pad #8
15984	mov	r10, r2
15985	ldr	r5, .L2649
15986	mvn	r2, #0
15987	mov	r6, r0
15988	mov	r9, r1
15989	ldrb	r3, [r5, #1153]	@ zero_extendqisi2
15990	rsb	r4, r3, #24
15991	lsr	r7, r0, r4
15992	bic	r7, r7, r2, lsl r3
15993	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
15994	uxtb	r7, r7
15995	cmp	r3, r7
15996	bhi	.L2619
15997	movw	r2, #1070
15998	ldr	r1, .L2649+4
15999	ldr	r0, .L2649+8
16000	bl	printk
16001	bl	dump_stack
16002.L2619:
16003	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
16004	mvn	r0, #0
16005	cmp	r3, r7
16006	bls	.L2618
16007	add	r7, r5, r7
16008	bic	r4, r6, r0, lsl r4
16009	ldrb	r8, [r7, #1144]	@ zero_extendqisi2
16010	ubfx	r6, r6, #24, #2
16011	ldr	r7, [r5, #1044]
16012	mov	r0, r8
16013	bl	nandc_cs
16014	cmp	r6, #0
16015	bne	.L2621
16016	mov	r0, r4
16017	bl	slc_phy_page_address_calc
16018	mov	r4, r0
16019.L2621:
16020	ldrb	r3, [r5, #1127]	@ zero_extendqisi2
16021	uxtb	lr, r4
16022	lsr	ip, r4, #8
16023	ldrb	r0, [r5, #1152]	@ zero_extendqisi2
16024	cmp	r3, #1
16025	lsl	r3, r8, #8
16026	moveq	r1, #6
16027	addeq	r2, r7, r3
16028	beq	.L2648
16029	ldr	r2, [r5, #1104]
16030	ldrb	r2, [r2, #12]	@ zero_extendqisi2
16031	cmp	r2, #3
16032	add	r2, r7, r3
16033	bne	.L2625
16034	mov	r1, #5
16035.L2648:
16036	str	r1, [r2, #2056]
16037	mov	r1, #0
16038	str	r1, [r2, #2052]
16039	cmp	r0, #0
16040	str	r1, [r2, #2052]
16041	lsr	r1, r4, #16
16042	str	lr, [r2, #2052]
16043	add	r3, r7, r3
16044	str	ip, [r2, #2052]
16045	str	r1, [r2, #2052]
16046	lsrne	r1, r4, #24
16047	strne	r1, [r2, #2052]
16048.L2644:
16049	mov	r2, #224
16050	cmp	r6, #0
16051	str	r2, [r3, #2056]
16052	ldr	r3, [r5, #1104]
16053	ldrb	r3, [r3, #12]	@ zero_extendqisi2
16054	sub	r3, r3, #3
16055	clz	r3, r3
16056	lsr	r3, r3, #5
16057	moveq	r3, #0
16058	cmp	r3, #0
16059	beq	.L2628
16060	ldrb	r3, [r5, #1158]	@ zero_extendqisi2
16061	cmp	r3, #0
16062	bne	.L2628
16063	ldrb	r3, [r5, #1159]	@ zero_extendqisi2
16064	cmp	r3, #0
16065	addeq	r4, r4, r4, lsl #1
16066	subeq	r6, r6, #1
16067	addeq	r0, r4, r6
16068	beq	.L2645
16069.L2628:
16070	mov	r0, r4
16071.L2645:
16072	bl	nandc_set_seed
16073	ldr	r3, .L2649+12
16074	mov	r1, #0
16075	mov	r0, r8
16076	ldrb	r2, [r3, #13]	@ zero_extendqisi2
16077	mov	r3, r9
16078	str	r10, [sp]
16079	bl	nandc_xfer
16080	bl	nandc_de_cs.constprop.35
16081.L2618:
16082	add	sp, sp, #8
16083	@ sp needed
16084	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
16085.L2625:
16086	mov	r1, #0
16087	cmp	r0, #0
16088	str	r1, [r2, #2056]
16089	add	r3, r7, r3
16090	str	r1, [r2, #2052]
16091	str	r1, [r2, #2052]
16092	lsr	r1, r4, #16
16093	str	lr, [r2, #2052]
16094	str	ip, [r2, #2052]
16095	str	r1, [r2, #2052]
16096	lsrne	r1, r4, #24
16097	strne	r1, [r2, #2052]
16098	mov	r1, #5
16099	str	r1, [r3, #2056]
16100	mov	r1, #0
16101	str	r1, [r2, #2052]
16102	str	r1, [r2, #2052]
16103	b	.L2644
16104.L2650:
16105	.align	2
16106.L2649:
16107	.word	.LANCHOR0
16108	.word	.LANCHOR1+1978
16109	.word	.LC0
16110	.word	.LANCHOR2
16111	.fnend
16112	.size	flash_complete_plane_page_read, .-flash_complete_plane_page_read
16113	.align	2
16114	.global	flash_complete_page_read
16115	.syntax unified
16116	.arm
16117	.fpu softvfp
16118	.type	flash_complete_page_read, %function
16119flash_complete_page_read:
16120	.fnstart
16121	@ args = 0, pretend = 0, frame = 8
16122	@ frame_needed = 0, uses_anonymous_args = 0
16123	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
16124	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16125	mov	r3, #1
16126	ldr	r4, .L2683
16127	mov	fp, r2
16128	.pad #20
16129	sub	sp, sp, #20
16130	mov	r10, r1
16131	str	r0, [sp, #12]
16132	ubfx	r6, r0, #24, #2
16133	ldrb	r7, [r4, #1153]	@ zero_extendqisi2
16134	rsb	r2, r7, #24
16135	lsl	r7, r3, r7
16136	lsl	r5, r3, r2
16137	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
16138	sub	r7, r7, #1
16139	sub	r5, r5, #1
16140	and	r7, r7, r0, lsr r2
16141	and	r5, r5, r0
16142	uxtb	r7, r7
16143	cmp	r3, r7
16144	bhi	.L2652
16145	mov	r2, #1232
16146	ldr	r1, .L2683+4
16147	ldr	r0, .L2683+8
16148	bl	printk
16149	bl	dump_stack
16150.L2652:
16151	add	r7, r4, r7
16152	ldrb	r9, [r7, #1144]	@ zero_extendqisi2
16153	ldr	r7, [r4, #1044]
16154	mov	r0, r9
16155	bl	nandc_cs
16156	cmp	r6, #0
16157	bne	.L2653
16158	mov	r0, r5
16159	bl	slc_phy_page_address_calc
16160	mov	r5, r0
16161.L2653:
16162	ldr	r8, .L2683+12
16163	ldrb	r3, [r8, #16]	@ zero_extendqisi2
16164	cmp	r3, #3
16165	bne	.L2654
16166	add	r7, r7, r9, lsl #8
16167	mov	r3, #5
16168	str	r3, [r7, #2056]
16169	mov	r3, #0
16170	str	r3, [r7, #2052]
16171	str	r3, [r7, #2052]
16172	uxtb	r3, r5
16173	str	r3, [r7, #2052]
16174	lsr	r3, r5, #8
16175	str	r3, [r7, #2052]
16176	lsr	r3, r5, #16
16177	str	r3, [r7, #2052]
16178	mov	r3, #224
16179	str	r3, [r7, #2056]
16180.L2654:
16181	ldr	r3, [r4, #1104]
16182	cmp	r6, #0
16183	ldrb	r3, [r3, #12]	@ zero_extendqisi2
16184	sub	r3, r3, #3
16185	clz	r3, r3
16186	lsr	r3, r3, #5
16187	moveq	r3, #0
16188	cmp	r3, #0
16189	beq	.L2655
16190	ldrb	r3, [r4, #1158]	@ zero_extendqisi2
16191	cmp	r3, #0
16192	bne	.L2655
16193	ldrb	r3, [r4, #1159]	@ zero_extendqisi2
16194	cmp	r3, #0
16195	addeq	r3, r5, r5, lsl #1
16196	subeq	r0, r6, #1
16197	addeq	r0, r0, r3
16198	beq	.L2682
16199.L2655:
16200	mov	r0, r5
16201.L2682:
16202	bl	nandc_set_seed
16203	ldrb	r2, [r8, #13]	@ zero_extendqisi2
16204	mov	r3, r10
16205	str	fp, [sp]
16206	mov	r1, #0
16207	mov	r0, r9
16208	bl	nandc_xfer
16209	cmn	r0, #1
16210	bne	.L2657
16211	ldrb	r7, [r4, #1196]	@ zero_extendqisi2
16212	cmp	r7, #0
16213	beq	.L2658
16214	mov	r3, #0
16215	mov	r2, r10
16216	strb	r3, [r4, #1196]
16217	orr	r1, r5, r6, lsl #24
16218	ldrb	r3, [r8, #13]	@ zero_extendqisi2
16219	mov	r0, r9
16220	str	r3, [sp]
16221	mov	r3, fp
16222	bl	flash_read_page
16223	cmp	r6, #0
16224	strb	r7, [r4, #1196]
16225	bne	.L2659
16226.L2664:
16227	ldrb	r3, [r4]	@ zero_extendqisi2
16228	cmp	r3, #0
16229	beq	.L2659
16230	ldrb	r3, [r4, #1193]	@ zero_extendqisi2
16231	add	r3, r3, r3, lsl #1
16232	cmp	r0, r3, asr #2
16233	blt	.L2659
16234	ldrb	r3, [r8, #23]	@ zero_extendqisi2
16235	sub	r3, r3, #4
16236	cmp	r3, #4
16237	movls	r0, #256
16238.L2651:
16239	add	sp, sp, #20
16240	@ sp needed
16241	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
16242.L2659:
16243	cmn	r0, #1
16244	bne	.L2651
16245.L2665:
16246	ldr	r3, .L2683+16
16247	ldr	r7, [r3, #-100]
16248	cmp	r7, #0
16249	bne	.L2661
16250.L2663:
16251	ldrb	r3, [r4, #1196]	@ zero_extendqisi2
16252	mov	r1, #0
16253	ldr	r2, [sp, #12]
16254	ldr	r0, .L2683+20
16255	str	r3, [sp]
16256	mvn	r3, #0
16257	bl	printk
16258	ldrb	r3, [r4, #1143]	@ zero_extendqisi2
16259	cmp	r3, #0
16260	mvneq	r0, #0
16261	beq	.L2651
16262	ldrb	r3, [r8, #13]	@ zero_extendqisi2
16263	mov	r2, r10
16264	orr	r1, r5, r6, lsl #24
16265	mov	r0, r9
16266	str	r3, [sp]
16267	mov	r3, fp
16268	bl	flash_ddr_tuning_read
16269	b	.L2651
16270.L2661:
16271	ldrb	r3, [r8, #13]	@ zero_extendqisi2
16272	mov	r2, r10
16273	orr	r1, r5, r6, lsl #24
16274	mov	r0, r9
16275	str	r3, [sp]
16276	mov	r3, fp
16277	blx	r7
16278	cmn	r0, #1
16279	bne	.L2651
16280	b	.L2663
16281.L2658:
16282	cmp	r6, #0
16283	beq	.L2664
16284	b	.L2665
16285.L2657:
16286	cmp	r6, #0
16287	bne	.L2651
16288	b	.L2664
16289.L2684:
16290	.align	2
16291.L2683:
16292	.word	.LANCHOR0
16293	.word	.LANCHOR1+2009
16294	.word	.LC0
16295	.word	.LANCHOR2
16296	.word	.LANCHOR3
16297	.word	.LC172
16298	.fnend
16299	.size	flash_complete_page_read, .-flash_complete_page_read
16300	.align	2
16301	.syntax unified
16302	.arm
16303	.fpu softvfp
16304	.type	queue_wait_first_req_completed, %function
16305queue_wait_first_req_completed:
16306	.fnstart
16307	@ args = 0, pretend = 0, frame = 8
16308	@ frame_needed = 0, uses_anonymous_args = 0
16309	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
16310	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16311	.pad #20
16312	sub	sp, sp, #20
16313	ldr	r4, .L2779
16314	ldrb	r5, [r4, #2770]	@ zero_extendqisi2
16315	cmp	r5, #255
16316	bne	.L2686
16317.L2719:
16318	mov	r7, #0
16319	b	.L2685
16320.L2686:
16321	mov	r8, #48
16322	mla	r2, r8, r5, r4
16323	ldrb	r3, [r2, #1274]	@ zero_extendqisi2
16324	ldr	r7, [r2, #1256]
16325	sub	r2, r3, #1
16326	cmp	r2, #10
16327	ldrls	pc, [pc, r2, asl #2]
16328	b	.L2719
16329.L2689:
16330	.word	.L2688
16331	.word	.L2690
16332	.word	.L2691
16333	.word	.L2691
16334	.word	.L2691
16335	.word	.L2691
16336	.word	.L2692
16337	.word	.L2693
16338	.word	.L2694
16339	.word	.L2691
16340	.word	.L2694
16341.L2688:
16342	mla	r8, r8, r5, r4
16343	bl	nandc_wait_flash_ready
16344	ldr	r3, [r8, #1240]
16345	ldr	r1, [r8, #1236]
16346	cmp	r3, #0
16347	beq	.L2695
16348	ldr	r2, .L2779+4
16349	ldrb	r0, [r8, #1272]	@ zero_extendqisi2
16350	ldrb	r2, [r2, #-2546]	@ zero_extendqisi2
16351	cmp	r0, r2
16352	moveq	r1, r3
16353.L2695:
16354	mov	r3, #48
16355	mov	r0, r7
16356	mla	r4, r3, r5, r4
16357	ldr	r2, [r4, #1244]
16358	bl	flash_complete_page_read
16359	str	r0, [r4, #1268]
16360.L2778:
16361	mov	r3, #13
16362	strb	r3, [r4, #1274]
16363	ldrb	r3, [r4, #1234]	@ zero_extendqisi2
16364	orr	r3, r3, #8
16365	strb	r3, [r4, #1234]
16366	b	.L2719
16367.L2690:
16368	bl	nandc_wait_flash_ready
16369	mla	r3, r8, r5, r4
16370	ldrb	r6, [r3, #1232]	@ zero_extendqisi2
16371	ldr	r2, [r3, #1240]
16372	ldr	r9, [r3, #1236]
16373	mla	r8, r8, r6, r4
16374	cmp	r2, #0
16375	ldr	r10, [r8, #1236]
16376	beq	.L2696
16377	ldrb	r1, [r3, #1272]	@ zero_extendqisi2
16378	ldr	r3, .L2779+4
16379	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
16380	cmp	r1, r3
16381	moveq	r9, r2
16382.L2696:
16383	mov	r3, #48
16384	mla	r3, r3, r6, r4
16385	ldr	r2, [r3, #1240]
16386	cmp	r2, #0
16387	beq	.L2697
16388	ldrb	r1, [r3, #1272]	@ zero_extendqisi2
16389	ldr	r3, .L2779+4
16390	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
16391	cmp	r1, r3
16392	moveq	r10, r2
16393.L2697:
16394	mov	r7, #48
16395	mov	r1, r9
16396	mla	r3, r7, r5, r4
16397	mla	r7, r7, r6, r4
16398	ldr	r2, [r3, #1244]
16399	ldr	r0, [r3, #1256]
16400	str	r3, [sp, #12]
16401	bl	flash_complete_plane_page_read
16402	ldr	r2, [r7, #1244]
16403	mov	r8, r0
16404	mov	r1, r10
16405	ldr	r0, [r7, #1256]
16406	bl	flash_complete_plane_page_read
16407	cmn	r8, #1
16408	mov	fp, r0
16409	beq	.L2698
16410	ldr	r3, [sp, #12]
16411	ldr	r2, [r3, #1252]
16412	cmn	r2, #1
16413	beq	.L2699
16414	ldr	r3, [r3, #1244]
16415	ldr	r3, [r3, #4]
16416	cmp	r2, r3
16417	beq	.L2699
16418.L2698:
16419	mov	r7, #48
16420	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
16421	mla	r7, r7, r5, r4
16422	mvn	ip, #0
16423	mvn	ip, ip, lsl r3
16424	rsb	r1, r3, #24
16425	ldr	lr, [r7, #1256]
16426	mov	r2, r9
16427	ldr	r3, .L2779+4
16428	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
16429	and	r0, ip, lr, lsr r1
16430	bic	r1, lr, ip, lsl r1
16431	uxtb	r0, r0
16432	str	r3, [sp]
16433	ldr	r3, [r7, #1244]
16434	bl	flash_read_page_en
16435	ldr	r2, [r7, #1252]
16436	mov	r8, r0
16437	cmn	r2, #1
16438	beq	.L2700
16439	ldr	r3, [r7, #1244]
16440	ldr	r1, [r3, #4]
16441	cmp	r2, r1
16442	beq	.L2700
16443	ldr	r0, .L2779+8
16444	ldr	r0, [r0]
16445	tst	r0, #64
16446	beq	.L2700
16447	str	r1, [sp]
16448	ldr	r0, .L2779+12
16449	ldr	r3, [r3]
16450	ldr	r1, [r7, #1256]
16451	bl	printk
16452.L2700:
16453	mov	r3, #48
16454	mla	r3, r3, r5, r4
16455	ldr	r2, [r3, #1252]
16456	cmn	r2, #1
16457	beq	.L2699
16458	ldr	r3, [r3, #1244]
16459	ldr	r3, [r3, #4]
16460	cmp	r2, r3
16461	beq	.L2699
16462	movw	r2, #431
16463	ldr	r1, .L2779+16
16464	ldr	r0, .L2779+20
16465	bl	printk
16466	bl	dump_stack
16467.L2699:
16468	mov	r3, #48
16469	mov	r2, #13
16470	mla	r5, r3, r5, r4
16471	cmn	fp, #1
16472	strb	r2, [r5, #1274]
16473	ldrb	r2, [r5, #1234]	@ zero_extendqisi2
16474	str	r8, [r5, #1268]
16475	orr	r2, r2, #8
16476	strb	r2, [r5, #1234]
16477	beq	.L2701
16478	mla	r3, r3, r6, r4
16479	ldr	r2, [r3, #1252]
16480	cmn	r2, #1
16481	beq	.L2703
16482	ldr	r3, [r3, #1244]
16483	ldr	r3, [r3, #4]
16484	cmp	r2, r3
16485	beq	.L2703
16486.L2701:
16487	mov	r5, #48
16488	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
16489	mla	r5, r5, r6, r4
16490	mvn	ip, #0
16491	mvn	ip, ip, lsl r3
16492	rsb	r1, r3, #24
16493	ldr	lr, [r5, #1256]
16494	mov	r2, r10
16495	ldr	r3, .L2779+4
16496	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
16497	and	r0, ip, lr, lsr r1
16498	bic	r1, lr, ip, lsl r1
16499	uxtb	r0, r0
16500	str	r3, [sp]
16501	ldr	r3, [r5, #1244]
16502	bl	flash_read_page_en
16503	ldr	r2, [r5, #1252]
16504	cmn	r2, #1
16505	beq	.L2705
16506	ldr	r3, [r5, #1244]
16507	ldr	r1, [r3, #4]
16508	cmp	r2, r1
16509	beq	.L2705
16510	ldr	r0, .L2779+8
16511	ldr	r0, [r0]
16512	tst	r0, #64
16513	beq	.L2705
16514	str	r1, [sp]
16515	ldr	r0, .L2779+12
16516	ldr	r3, [r3]
16517	ldr	r1, [r5, #1256]
16518	bl	printk
16519.L2705:
16520	mov	r3, #48
16521	mla	r3, r3, r6, r4
16522	ldr	r2, [r3, #1252]
16523	cmn	r2, #1
16524	beq	.L2703
16525	ldr	r3, [r3, #1244]
16526	ldr	r3, [r3, #4]
16527	cmp	r2, r3
16528	beq	.L2703
16529	movw	r2, #450
16530	ldr	r1, .L2779+16
16531	ldr	r0, .L2779+20
16532	bl	printk
16533	bl	dump_stack
16534.L2703:
16535	mov	r3, #48
16536	mla	r4, r3, r6, r4
16537	str	r8, [r4, #1268]
16538	b	.L2778
16539.L2691:
16540	bl	nandc_iqr_wait_flash_ready
16541	mov	r0, r7
16542	mov	r1, #64
16543	bl	flash_wait_device_ready
16544	tst	r0, #64
16545	mov	r7, r0
16546	beq	.L2719
16547	ands	r2, r0, #5
16548	mov	r3, #48
16549	beq	.L2707
16550	mla	r4, r3, r5, r4
16551	mov	r3, #12
16552	mov	r2, r0
16553	ldr	r0, .L2779+24
16554	strb	r3, [r4, #1274]
16555	ldrb	r1, [r4, #1233]	@ zero_extendqisi2
16556	str	r3, [sp]
16557	ldr	r3, [r4, #1256]
16558	bl	printk
16559.L2777:
16560	mvn	r3, #0
16561	str	r3, [r4, #1268]
16562	b	.L2685
16563.L2707:
16564	mul	r3, r3, r5
16565	mov	r1, #13
16566	add	r7, r4, r3
16567	str	r2, [r7, #1268]
16568	ldr	r2, [r4, #2800]
16569	strb	r1, [r7, #1274]
16570	ldr	r1, [r2, #156]
16571	ldr	r2, .L2779+28
16572	cmp	r1, r2
16573	bne	.L2719
16574	ldr	r2, .L2779+32
16575	add	r3, r2, r3
16576	ldrh	r3, [r3, #34]
16577	cmp	r3, #0
16578	bne	.L2719
16579	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
16580	mvn	ip, #0
16581	ldr	lr, [r7, #1256]
16582	ldr	r6, .L2779+4
16583	rsb	r1, r3, #24
16584	mvn	ip, ip, lsl r3
16585	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
16586	and	r0, ip, lr, lsr r1
16587	bic	r1, lr, ip, lsl r1
16588	str	r3, [sp]
16589	uxtb	r0, r0
16590	ldr	r3, [r6, #-96]
16591	ldr	r2, [r6, #-92]
16592	bl	flash_read_page_en
16593	cmn	r0, #1
16594	mov	r3, r0
16595	beq	.L2708
16596	ldr	r1, [r7, #1244]
16597	ldr	r2, [r6, #-96]
16598	ldr	r1, [r1]
16599	ldr	r2, [r2]
16600	cmp	r1, r2
16601	beq	.L2719
16602.L2708:
16603	mov	r2, #48
16604	ldr	r0, .L2779+36
16605	mla	r5, r2, r5, r4
16606	ldrb	r2, [r4, #1196]	@ zero_extendqisi2
16607	ldrb	r1, [r5, #1233]	@ zero_extendqisi2
16608	str	r2, [sp]
16609	ldr	r2, [r5, #1256]
16610	bl	printk
16611	mvn	r3, #0
16612	str	r3, [r5, #1268]
16613	b	.L2719
16614.L2694:
16615	ldrb	r1, [r4, #1153]	@ zero_extendqisi2
16616	mvn	r2, #0
16617	cmp	r3, #11
16618	ldr	r9, .L2779+32
16619	moveq	r3, #10
16620	movne	r3, #3
16621	rsb	r0, r1, #24
16622	mov	lr, r3
16623	mvn	r2, r2, lsl r1
16624	add	r3, r5, r5, lsl #1
16625	and	r1, r2, r7, lsr r0
16626	add	r3, r9, r3, lsl #4
16627	uxth	r1, r1
16628	mov	r6, #48
16629	movw	r10, #1256
16630.L2710:
16631	ldrb	r8, [r3]	@ zero_extendqisi2
16632	cmp	r8, #255
16633	mvneq	r7, #0
16634	beq	.L2685
16635.L2717:
16636	mla	ip, r6, r8, r4
16637	movw	fp, #1274
16638	add	r3, r8, r8, lsl #1
16639	ldrb	fp, [ip, fp]	@ zero_extendqisi2
16640	add	r3, r9, r3, lsl #4
16641	cmp	fp, lr
16642	bne	.L2710
16643	ldr	ip, [ip, r10]
16644	and	ip, r2, ip, lsr r0
16645	cmp	r1, ip
16646	bne	.L2710
16647	bl	nandc_iqr_wait_flash_ready
16648	mov	r0, r7
16649	mov	r1, #64
16650	bl	flash_wait_device_ready
16651	tst	r0, #64
16652	mov	r7, r0
16653	bne	.L2712
16654.L2776:
16655	mov	r7, #0
16656	b	.L2713
16657.L2712:
16658	ands	r3, r0, #15
16659	mul	r6, r6, r5
16660	beq	.L2714
16661	add	r6, r4, r6
16662	mov	r9, #12
16663	ldrb	r1, [r6, #1233]	@ zero_extendqisi2
16664	mov	r2, r0
16665	str	r9, [sp]
16666	ldr	r0, .L2779+40
16667	ldr	r3, [r6, #1256]
16668	bl	printk
16669	mvn	r3, #0
16670	strb	r9, [r6, #1274]
16671	str	r3, [r6, #1268]
16672.L2713:
16673	mov	r3, #48
16674	mla	r5, r3, r5, r4
16675	mla	r8, r3, r8, r4
16676	ldrb	r2, [r5, #1274]	@ zero_extendqisi2
16677	ldr	r3, [r5, #1268]
16678	strb	r2, [r8, #1274]
16679	str	r3, [r8, #1268]
16680.L2685:
16681	mov	r0, r7
16682	add	sp, sp, #20
16683	@ sp needed
16684	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
16685.L2714:
16686	add	r7, r4, r6
16687	mov	r2, #13
16688	str	r3, [r7, #1268]
16689	ldr	r3, [r4, #2800]
16690	strb	r2, [r7, #1274]
16691	ldr	r2, [r3, #156]
16692	ldr	r3, .L2779+28
16693	cmp	r2, r3
16694	bne	.L2776
16695	add	r6, r9, r6
16696	ldrh	r3, [r6, #34]
16697	cmp	r3, #0
16698	bne	.L2776
16699	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
16700	mvn	ip, #0
16701	ldr	lr, [r7, #1256]
16702	ldr	r6, .L2779+4
16703	rsb	r1, r3, #24
16704	mvn	ip, ip, lsl r3
16705	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
16706	and	r0, ip, lr, lsr r1
16707	bic	r1, lr, ip, lsl r1
16708	str	r3, [sp]
16709	uxtb	r0, r0
16710	ldr	r3, [r6, #-96]
16711	ldr	r2, [r6, #-92]
16712	bl	flash_read_page_en
16713	cmn	r0, #1
16714	mov	r3, r0
16715	beq	.L2716
16716	ldr	r1, [r7, #1244]
16717	ldr	r2, [r6, #-96]
16718	ldr	r1, [r1]
16719	ldr	r2, [r2]
16720	cmp	r1, r2
16721	beq	.L2776
16722.L2716:
16723	mov	r6, #48
16724	ldrb	r2, [r4, #1196]	@ zero_extendqisi2
16725	mla	r6, r6, r5, r4
16726	ldr	r0, .L2779+44
16727	ldrb	r1, [r6, #1233]	@ zero_extendqisi2
16728	str	r2, [sp]
16729	ldr	r2, [r6, #1256]
16730	bl	printk
16731	mvn	r3, #0
16732	str	r3, [r6, #1268]
16733	b	.L2776
16734.L2692:
16735	mov	r0, r7
16736	mov	r1, #32
16737	bl	flash_wait_device_ready
16738	tst	r0, #32
16739	mov	r7, r0
16740	beq	.L2719
16741	ands	r2, r0, #15
16742	mov	r3, #48
16743	mla	r4, r3, r5, r4
16744	movne	r3, #12
16745	strbne	r3, [r4, #1274]
16746	bne	.L2777
16747.L2718:
16748	mov	r3, #13
16749	str	r2, [r4, #1268]
16750	strb	r3, [r4, #1274]
16751	b	.L2719
16752.L2693:
16753	mov	r1, #64
16754	mov	r0, r7
16755	bl	flash_wait_device_ready
16756	tst	r0, #64
16757	movne	r3, #48
16758	mlane	r4, r3, r5, r4
16759	movne	r3, #7
16760	strne	r0, [r4, #1268]
16761	strbne	r3, [r4, #1274]
16762	b	.L2719
16763.L2780:
16764	.align	2
16765.L2779:
16766	.word	.LANCHOR0
16767	.word	.LANCHOR3
16768	.word	.LANCHOR2
16769	.word	.LC173
16770	.word	.LANCHOR1+2034
16771	.word	.LC0
16772	.word	.LC174
16773	.word	1145785929
16774	.word	.LANCHOR0+1232
16775	.word	.LC175
16776	.word	.LC176
16777	.word	.LC177
16778	.fnend
16779	.size	queue_wait_first_req_completed, .-queue_wait_first_req_completed
16780	.align	2
16781	.global	sblk_prog_page
16782	.syntax unified
16783	.arm
16784	.fpu softvfp
16785	.type	sblk_prog_page, %function
16786sblk_prog_page:
16787	.fnstart
16788	@ args = 0, pretend = 0, frame = 8
16789	@ frame_needed = 0, uses_anonymous_args = 0
16790	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
16791	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16792	.pad #12
16793	mov	r4, r0
16794	ldrh	r3, [r0, #34]
16795	mov	r5, r1
16796	cmp	r3, #0
16797	beq	.L2782
16798	ldr	r3, .L2812
16799	ldr	r3, [r3]
16800	tst	r3, #256
16801	beq	.L2782
16802	mov	r2, r1
16803	ldr	r1, [r0, #24]
16804	ldr	r0, .L2812+4
16805	bl	printk
16806.L2782:
16807	ldr	r8, .L2812+8
16808	mov	r6, #0
16809	ldr	fp, .L2812+12
16810.L2783:
16811	cmp	r5, #0
16812	bne	.L2794
16813.L2810:
16814	mov	r0, #0
16815	add	sp, sp, #12
16816	@ sp needed
16817	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
16818.L2794:
16819	ldrb	r9, [r4]	@ zero_extendqisi2
16820	ldr	r7, [r4, #24]
16821.L2784:
16822	mov	r1, #1
16823	mov	r0, r7
16824	bl	queue_lun_state
16825	cmp	r0, #0
16826	bne	.L2785
16827	cmp	r5, #1
16828	beq	.L2786
16829	ldrb	r3, [r8, #1194]	@ zero_extendqisi2
16830	cmp	r3, #0
16831	beq	.L2786
16832	ldrb	r3, [r8, #1159]	@ zero_extendqisi2
16833	cmp	r3, #0
16834	beq	.L2787
16835.L2786:
16836	mov	r0, r4
16837	bl	queue_prog_cmd
16838.L2788:
16839	subs	r5, r5, #1
16840	beq	.L2810
16841	ldr	r4, .L2812+16
16842	add	r9, r9, r9, lsl #1
16843	add	r4, r4, r9, lsl #4
16844	b	.L2783
16845.L2785:
16846	bl	queue_wait_first_req_completed
16847	bl	queue_remove_completed_req
16848	b	.L2784
16849.L2787:
16850	ldrb	r2, [r8, #1153]	@ zero_extendqisi2
16851	mvn	r3, #0
16852	rsb	r1, r2, #24
16853	mvn	r3, r3, lsl r2
16854	ldrb	r2, [r4]	@ zero_extendqisi2
16855	and	r3, r3, r7, lsr r1
16856	cmp	r2, #255
16857	uxth	r3, r3
16858	bne	.L2789
16859	movw	r2, #697
16860	ldr	r1, .L2812+20
16861	ldr	r0, .L2812+24
16862	str	r3, [sp, #4]
16863	bl	printk
16864	bl	dump_stack
16865	ldr	r3, [sp, #4]
16866.L2789:
16867	ldrb	r2, [r4]	@ zero_extendqisi2
16868	mov	r1, #48
16869	mov	r10, #1
16870	mla	r2, r1, r2, r8
16871	ldrb	r1, [r8, #1153]	@ zero_extendqisi2
16872	ldr	r0, [r2, #1256]
16873	rsb	r2, r1, #24
16874	lsl	r1, r10, r1
16875	sub	r1, r1, #1
16876	and	r1, r1, r0, lsr r2
16877	uxth	r1, r1
16878	cmp	r3, r1
16879	bne	.L2790
16880	ldr	r3, .L2812+28
16881	ldrb	lr, [fp, #-3136]	@ zero_extendqisi2
16882	ldrh	ip, [r3, #-2]
16883	sub	lr, lr, #1
16884	sub	r3, r2, ip
16885	lsl	r3, r10, r3
16886	lsl	r2, r10, ip
16887	sub	r3, r3, #1
16888	sub	r2, r2, #1
16889	and	r3, r3, lr
16890	uxth	r2, r2
16891	uxth	r3, r3
16892	and	r1, r3, r7, lsr ip
16893	and	r3, r3, r0, lsr ip
16894	and	ip, r2, r7
16895	subs	r7, r1, r3
16896	and	r2, r2, r0
16897	movne	r7, #1
16898	cmp	ip, r2
16899	movne	r7, #0
16900	cmp	r7, #0
16901	beq	.L2790
16902	cmp	r6, lr
16903	beq	.L2790
16904	ldr	r3, [r4, #12]
16905	mov	r0, #17
16906	ldr	r2, [r4, #4]
16907	add	r6, r6, r10
16908	ldr	r1, [r4, #24]
16909	bl	flash_start_page_prog
16910	mov	r3, #9
16911	strb	r10, [r4, #43]
16912	strb	r3, [r4, #42]
16913	mvn	r3, #0
16914	strb	r3, [r4]
16915	mov	r1, r4
16916	ldr	r0, .L2812+32
16917	bl	buf_add_tail
16918	b	.L2788
16919.L2790:
16920	mov	r0, r4
16921	mov	r6, #0
16922	bl	queue_prog_cmd
16923	b	.L2788
16924.L2813:
16925	.align	2
16926.L2812:
16927	.word	.LANCHOR2
16928	.word	.LC178
16929	.word	.LANCHOR0
16930	.word	.LANCHOR3
16931	.word	.LANCHOR0+1232
16932	.word	.LANCHOR1+2065
16933	.word	.LC0
16934	.word	.LANCHOR3-3136
16935	.word	.LANCHOR0+2770
16936	.fnend
16937	.size	sblk_prog_page, .-sblk_prog_page
16938	.align	2
16939	.global	sblk_wait_write_queue_completed
16940	.syntax unified
16941	.arm
16942	.fpu softvfp
16943	.type	sblk_wait_write_queue_completed, %function
16944sblk_wait_write_queue_completed:
16945	.fnstart
16946	@ args = 0, pretend = 0, frame = 0
16947	@ frame_needed = 0, uses_anonymous_args = 0
16948	push	{r4, lr}
16949	.save {r4, lr}
16950	ldr	r4, .L2818
16951.L2815:
16952	ldrb	r3, [r4, #2770]	@ zero_extendqisi2
16953	cmp	r3, #255
16954	bne	.L2816
16955	pop	{r4, pc}
16956.L2816:
16957	bl	queue_wait_first_req_completed
16958	bl	queue_remove_completed_req
16959	b	.L2815
16960.L2819:
16961	.align	2
16962.L2818:
16963	.word	.LANCHOR0
16964	.fnend
16965	.size	sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed
16966	.align	2
16967	.global	ftl_flush
16968	.syntax unified
16969	.arm
16970	.fpu softvfp
16971	.type	ftl_flush, %function
16972ftl_flush:
16973	.fnstart
16974	@ args = 0, pretend = 0, frame = 0
16975	@ frame_needed = 0, uses_anonymous_args = 0
16976	push	{r4, r5, r6, lr}
16977	.save {r4, r5, r6, lr}
16978	ldr	r4, .L2826
16979	ldr	r5, .L2826+4
16980	ldrb	r1, [r4, #2797]	@ zero_extendqisi2
16981	cmp	r1, #0
16982	beq	.L2821
16983	ldrb	r3, [r5, #-88]	@ zero_extendqisi2
16984	add	r0, r4, #1232
16985	add	r3, r3, r3, lsl #1
16986	add	r0, r0, r3, lsl #4
16987	bl	sblk_prog_page
16988.L2821:
16989	mvn	r3, #0
16990	strb	r3, [r5, #-88]
16991	mov	r3, #0
16992	strb	r3, [r4, #2797]
16993	bl	sblk_wait_write_queue_completed
16994	bl	ftl_write_completed
16995	movw	r0, #65535
16996	pop	{r4, r5, r6, lr}
16997	b	ftl_vpn_decrement
16998.L2827:
16999	.align	2
17000.L2826:
17001	.word	.LANCHOR0
17002	.word	.LANCHOR3
17003	.fnend
17004	.size	ftl_flush, .-ftl_flush
17005	.align	2
17006	.global	zftl_cache_flush
17007	.syntax unified
17008	.arm
17009	.fpu softvfp
17010	.type	zftl_cache_flush, %function
17011zftl_cache_flush:
17012	.fnstart
17013	@ args = 0, pretend = 0, frame = 0
17014	@ frame_needed = 0, uses_anonymous_args = 0
17015	ldr	r3, .L2836
17016	ldrb	r3, [r3, #2797]	@ zero_extendqisi2
17017	cmp	r3, #0
17018	bxeq	lr
17019	push	{r4, lr}
17020	.save {r4, lr}
17021	bl	timer_get_time
17022	ldr	r3, .L2836+4
17023	ldr	r3, [r3, #-84]
17024	add	r3, r3, #100
17025	cmp	r0, r3
17026	popls	{r4, pc}
17027	pop	{r4, lr}
17028	b	ftl_flush
17029.L2837:
17030	.align	2
17031.L2836:
17032	.word	.LANCHOR0
17033	.word	.LANCHOR3
17034	.fnend
17035	.size	zftl_cache_flush, .-zftl_cache_flush
17036	.align	2
17037	.global	ftl_read_page
17038	.syntax unified
17039	.arm
17040	.fpu softvfp
17041	.type	ftl_read_page, %function
17042ftl_read_page:
17043	.fnstart
17044	@ args = 4, pretend = 0, frame = 0
17045	@ frame_needed = 0, uses_anonymous_args = 0
17046	push	{r4, r5, r6, r7, r8, lr}
17047	.save {r4, r5, r6, r7, r8, lr}
17048	mov	r4, r0
17049	ldr	r8, [sp, #24]
17050	mov	r5, r1
17051	mov	r6, r2
17052	mov	r7, r3
17053	bl	sblk_wait_write_queue_completed
17054	mov	r3, r7
17055	str	r8, [sp, #24]
17056	mov	r2, r6
17057	mov	r1, r5
17058	mov	r0, r4
17059	pop	{r4, r5, r6, r7, r8, lr}
17060	b	flash_read_page_en
17061	.fnend
17062	.size	ftl_read_page, .-ftl_read_page
17063	.align	2
17064	.global	ftl_read_ppa_page
17065	.syntax unified
17066	.arm
17067	.fpu softvfp
17068	.type	ftl_read_ppa_page, %function
17069ftl_read_ppa_page:
17070	.fnstart
17071	@ args = 0, pretend = 0, frame = 0
17072	@ frame_needed = 0, uses_anonymous_args = 0
17073	push	{r0, r1, r4, r5, r6, r7, r8, lr}
17074	.save {r4, r5, r6, r7, r8, lr}
17075	.pad #8
17076	mov	r8, r3
17077	ldr	r3, .L2842
17078	mov	r5, r0
17079	mvn	r4, #0
17080	mov	r6, r1
17081	mov	r7, r2
17082	ldrb	r0, [r3, #1153]	@ zero_extendqisi2
17083	rsb	r3, r0, #24
17084	mvn	r4, r4, lsl r0
17085	and	r4, r4, r5, lsr r3
17086	uxtb	r4, r4
17087	bl	sblk_wait_write_queue_completed
17088	mov	r3, r7
17089	str	r8, [sp]
17090	mov	r2, r6
17091	mov	r1, r5
17092	mov	r0, r4
17093	bl	flash_read_page_en
17094	add	sp, sp, #8
17095	@ sp needed
17096	pop	{r4, r5, r6, r7, r8, pc}
17097.L2843:
17098	.align	2
17099.L2842:
17100	.word	.LANCHOR0
17101	.fnend
17102	.size	ftl_read_ppa_page, .-ftl_read_ppa_page
17103	.align	2
17104	.global	sblk_read_page
17105	.syntax unified
17106	.arm
17107	.fpu softvfp
17108	.type	sblk_read_page, %function
17109sblk_read_page:
17110	.fnstart
17111	@ args = 0, pretend = 0, frame = 8
17112	@ frame_needed = 0, uses_anonymous_args = 0
17113	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
17114	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17115	.pad #12
17116	mov	r10, r0
17117	mov	r7, r1
17118	mov	r4, r0
17119	mov	r5, r1
17120.L2845:
17121	cmp	r5, #0
17122	bne	.L2855
17123.L2868:
17124	ldr	r4, .L2870
17125.L2856:
17126	cmp	r7, #0
17127	bne	.L2858
17128	mov	r0, r7
17129	add	sp, sp, #12
17130	@ sp needed
17131	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
17132.L2855:
17133	ldrb	r8, [r4]	@ zero_extendqisi2
17134	ldr	fp, [r4, #24]
17135.L2846:
17136	mov	r1, #0
17137	mov	r0, fp
17138	bl	queue_lun_state
17139	cmp	r0, #0
17140	bne	.L2847
17141	cmp	r5, #1
17142	beq	.L2852
17143	ldr	r3, .L2870+4
17144	ldrb	r3, [r3, #-80]	@ zero_extendqisi2
17145	cmp	r3, #0
17146	bne	.L2849
17147.L2852:
17148	mov	r0, r4
17149	bl	queue_read_cmd
17150	b	.L2850
17151.L2847:
17152	bl	queue_wait_first_req_completed
17153	bl	queue_remove_completed_req
17154	b	.L2846
17155.L2849:
17156	ldr	r3, .L2870+8
17157	ldrb	r2, [r3, #1153]	@ zero_extendqisi2
17158	mvn	r3, #0
17159	rsb	r1, r2, #24
17160	mvn	r3, r3, lsl r2
17161	ldrb	r2, [r4]	@ zero_extendqisi2
17162	and	r3, r3, fp, lsr r1
17163	cmp	r2, #255
17164	uxth	r3, r3
17165	bne	.L2851
17166	movw	r2, #782
17167	ldr	r1, .L2870+12
17168	ldr	r0, .L2870+16
17169	str	r3, [sp]
17170	bl	printk
17171	bl	dump_stack
17172	ldr	r3, [sp]
17173.L2851:
17174	ldr	r2, .L2870+8
17175	mov	r6, #48
17176	ldrb	r9, [r4]	@ zero_extendqisi2
17177	ldrb	ip, [r2, #1153]	@ zero_extendqisi2
17178	mla	r6, r6, r9, r2
17179	mvn	r2, #0
17180	mvn	r2, r2, lsl ip
17181	rsb	r0, ip, #24
17182	ldr	r1, [r6, #1256]
17183	and	r2, r2, r1, lsr r0
17184	uxth	r2, r2
17185	cmp	r3, r2
17186	bne	.L2852
17187	ldr	r3, .L2870+20
17188	ldrh	r3, [r3]
17189	add	fp, r3, fp
17190	cmp	r1, fp
17191	bne	.L2852
17192	ldr	r0, [r4, #24]
17193	mvn	fp, #0
17194	ldrb	r8, [r6, #1232]	@ zero_extendqisi2
17195	add	r9, r9, r9, lsl #1
17196	add	r5, r5, fp
17197	bl	flash_start_plane_read
17198	mov	r2, #2
17199	mov	r3, #0
17200	strb	r2, [r4, #42]
17201	mov	r1, r4
17202	strb	r3, [r4, #43]
17203	ldr	r0, .L2870+24
17204	strb	fp, [r4]
17205	str	r2, [sp, #4]
17206	str	r3, [sp]
17207	bl	buf_add_tail
17208	ldr	r1, .L2870
17209	ldr	r2, [sp, #4]
17210	ldr	r3, [sp]
17211	strb	fp, [r6, #1232]
17212	strb	r2, [r6, #1274]
17213	add	r1, r1, r9, lsl #4
17214	strb	r3, [r6, #1275]
17215	ldr	r0, .L2870+24
17216	bl	buf_add_tail
17217.L2850:
17218	subs	r5, r5, #1
17219	beq	.L2868
17220	ldr	r4, .L2870
17221	add	r8, r8, r8, lsl #1
17222	add	r4, r4, r8, lsl #4
17223	b	.L2845
17224.L2858:
17225	ldrb	r3, [r10, #42]	@ zero_extendqisi2
17226	cmp	r3, #13
17227	bne	.L2857
17228	ldrb	r3, [r10]	@ zero_extendqisi2
17229	sub	r7, r7, #1
17230	cmp	r3, #255
17231	addne	r3, r3, r3, lsl #1
17232	addne	r10, r4, r3, lsl #4
17233.L2857:
17234	bl	queue_wait_first_req_completed
17235	bl	queue_remove_completed_req
17236	b	.L2856
17237.L2871:
17238	.align	2
17239.L2870:
17240	.word	.LANCHOR0+1232
17241	.word	.LANCHOR3
17242	.word	.LANCHOR0
17243	.word	.LANCHOR1+2080
17244	.word	.LC0
17245	.word	.LANCHOR3-3074
17246	.word	.LANCHOR0+2770
17247	.fnend
17248	.size	sblk_read_page, .-sblk_read_page
17249	.align	2
17250	.global	gc_check_data_one_wl
17251	.syntax unified
17252	.arm
17253	.fpu softvfp
17254	.type	gc_check_data_one_wl, %function
17255gc_check_data_one_wl:
17256	.fnstart
17257	@ args = 0, pretend = 0, frame = 0
17258	@ frame_needed = 0, uses_anonymous_args = 0
17259	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
17260	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17261	.pad #28
17262	sub	sp, sp, #28
17263	ldr	r5, .L2906
17264	ldr	r3, [r5, #2832]
17265	ldr	r10, [r5, #1096]
17266	cmp	r3, #0
17267	bne	.L2873
17268	mov	r0, #1
17269	bl	buf_alloc
17270	str	r0, [r5, #2832]
17271.L2873:
17272	ldr	r4, [r5, #2832]
17273	cmp	r4, #0
17274	bne	.L2874
17275	movw	r2, #729
17276	ldr	r1, .L2906+4
17277	ldr	r0, .L2906+8
17278	bl	printk
17279	bl	dump_stack
17280.L2874:
17281	ldr	r7, .L2906+12
17282	add	fp, r10, #96
17283	mov	r9, #0
17284.L2875:
17285	ldrb	r3, [r10, #89]	@ zero_extendqisi2
17286	ldr	r6, .L2906+16
17287	cmp	r9, r3
17288	bge	.L2886
17289	mov	r8, #1
17290	b	.L2887
17291.L2885:
17292	ldr	r2, .L2906+20
17293	ldrb	r1, [r7, #-3128]	@ zero_extendqisi2
17294	ldrh	r3, [fp]
17295	ldrh	r2, [r2, #-2]
17296	cmp	r1, #2
17297	mul	r2, r2, r3
17298	beq	.L2876
17299	ldrb	r3, [r5, #1158]	@ zero_extendqisi2
17300	cmp	r3, #0
17301	beq	.L2877
17302.L2876:
17303	ldrh	r3, [r6, #12]
17304	sub	r3, r3, #1
17305	add	r3, r3, r2
17306	add	r3, r3, r8
17307	orr	r3, r3, r1, lsl #24
17308.L2905:
17309	str	r3, [r4, #24]
17310	mov	r1, #1
17311	mov	r0, r4
17312	bl	sblk_read_page
17313	ldr	r2, [r4, #36]
17314	cmn	r2, #1
17315	beq	.L2881
17316	ldr	r0, [r7, #-132]
17317	ldrh	r1, [r6, #18]
17318	ldr	r3, [r4, #12]
17319	ldr	ip, [r0, r1, lsl #2]
17320	ldr	r0, [r3, #4]
17321	cmp	ip, r0
17322	bne	.L2881
17323	ldr	r0, [r7, #-128]
17324	ldr	r3, [r3, #8]
17325	ldr	r1, [r0, r1, lsl #2]
17326	cmp	r1, r3
17327	beq	.L2882
17328.L2881:
17329	ldrh	r3, [r6, #18]
17330	ldr	r1, [r7, #-132]
17331	lsl	r0, r3, #2
17332	ldr	r3, [r1, r3, lsl #2]
17333	cmn	r3, #1
17334	beq	.L2882
17335	ldr	r1, .L2906+24
17336	ldr	r1, [r1]
17337	tst	r1, #1024
17338	beq	.L2883
17339	ldr	r1, [r4, #12]
17340	ldr	ip, [r1, #12]
17341	str	ip, [sp, #16]
17342	ldr	ip, [r1, #8]
17343	str	ip, [sp, #12]
17344	ldr	ip, [r1, #4]
17345	str	ip, [sp, #8]
17346	ldr	r1, [r1]
17347	str	r1, [sp, #4]
17348	ldr	r1, [r7, #-128]
17349	ldr	r1, [r1, r0]
17350	ldr	r0, .L2906+28
17351	str	r1, [sp]
17352	ldr	r1, [r4, #24]
17353	bl	printk
17354.L2883:
17355	ldrh	r3, [r10, #80]
17356	mov	r1, #0
17357	ldr	r2, [r5, #1092]
17358	lsl	r3, r3, #1
17359	strh	r1, [r2, r3]	@ movhi
17360	ldr	r2, [r5, #1096]
17361	ldr	r3, [r2, #556]
17362	add	r3, r3, #1
17363	str	r3, [r2, #556]
17364	ldr	r3, [r5, #2800]
17365	ldr	r2, [r3, #156]
17366	ldr	r3, .L2906+32
17367	cmp	r2, r3
17368	bne	.L2890
17369	ldrb	r3, [r7, #-2542]	@ zero_extendqisi2
17370	cmp	r3, r1
17371	bne	.L2890
17372	ldrb	r3, [r7, #-3126]	@ zero_extendqisi2
17373	cmp	r3, r1
17374	bne	.L2890
17375	ldr	r0, [r4, #24]
17376	bl	ftl_mask_bad_block
17377.L2890:
17378	mvn	r0, #0
17379	b	.L2872
17380.L2877:
17381	ldrh	r3, [r6, #12]
17382	cmp	r1, #3
17383	addne	r3, r3, r2
17384	bne	.L2905
17385	ldrb	r1, [r5, #1159]	@ zero_extendqisi2
17386	cmp	r1, #0
17387	addne	r3, r3, r3, lsl #1
17388	addeq	r3, r3, r2
17389	orreq	r3, r3, r8, lsl #24
17390	subne	r3, r3, #1
17391	addne	r3, r3, r2
17392	addne	r3, r3, r8
17393	orrne	r3, r3, #50331648
17394	b	.L2905
17395.L2882:
17396	ldrh	r3, [r6, #18]
17397	add	r8, r8, #1
17398	add	r3, r3, #1
17399	strh	r3, [r6, #18]	@ movhi
17400.L2887:
17401	ldrh	r3, [r6, #16]
17402	cmp	r8, r3
17403	ble	.L2885
17404	add	r9, r9, #1
17405	add	fp, fp, #2
17406	b	.L2875
17407.L2886:
17408	ldrh	r3, [r6, #12]
17409	add	r2, r3, #1
17410	strh	r2, [r6, #12]	@ movhi
17411	ldr	r2, .L2906+12
17412	ldrb	r0, [r2, #-3126]	@ zero_extendqisi2
17413	cmp	r0, #0
17414	movne	r0, #0
17415	addne	r3, r3, #2
17416	strhne	r3, [r6, #12]	@ movhi
17417.L2884:
17418.L2872:
17419	add	sp, sp, #28
17420	@ sp needed
17421	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
17422.L2907:
17423	.align	2
17424.L2906:
17425	.word	.LANCHOR0
17426	.word	.LANCHOR1+2095
17427	.word	.LC0
17428	.word	.LANCHOR3
17429	.word	.LANCHOR0+2824
17430	.word	.LANCHOR3-3072
17431	.word	.LANCHOR2
17432	.word	.LC179
17433	.word	1145785929
17434	.fnend
17435	.size	gc_check_data_one_wl, .-gc_check_data_one_wl
17436	.align	2
17437	.global	sblk_tlc_prog_one_page
17438	.syntax unified
17439	.arm
17440	.fpu softvfp
17441	.type	sblk_tlc_prog_one_page, %function
17442sblk_tlc_prog_one_page:
17443	.fnstart
17444	@ args = 0, pretend = 0, frame = 0
17445	@ frame_needed = 0, uses_anonymous_args = 0
17446	push	{r4, r5, r6, lr}
17447	.save {r4, r5, r6, lr}
17448	mov	r4, r0
17449	ldr	r3, [r0]
17450	ldr	r6, [r3, #24]
17451.L2909:
17452	mov	r1, #1
17453	mov	r0, r6
17454	bl	queue_lun_state
17455	subs	r5, r0, #0
17456	bne	.L2910
17457	mov	r0, r4
17458	mov	r1, #1
17459	bl	queue_tlc_prog_cmd
17460	mov	r0, r5
17461	pop	{r4, r5, r6, pc}
17462.L2910:
17463	bl	queue_wait_first_req_completed
17464	bl	queue_remove_completed_req
17465	b	.L2909
17466	.fnend
17467	.size	sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page
17468	.align	2
17469	.global	sblk_xlc_prog_pages
17470	.syntax unified
17471	.arm
17472	.fpu softvfp
17473	.type	sblk_xlc_prog_pages, %function
17474sblk_xlc_prog_pages:
17475	.fnstart
17476	@ args = 0, pretend = 0, frame = 0
17477	@ frame_needed = 0, uses_anonymous_args = 0
17478	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
17479	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17480	mov	r5, r0
17481	ldr	r3, [r0]
17482	.pad #20
17483	sub	sp, sp, #20
17484	mov	r7, r1
17485	mov	fp, r2
17486	ldr	r4, [r3, #24]
17487.L2913:
17488	mov	r1, #1
17489	mov	r0, r4
17490	bl	queue_lun_state
17491	subs	r10, r0, #0
17492	bne	.L2914
17493	cmp	fp, #2
17494	bne	.L2915
17495	ldr	r1, .L2925
17496	ldr	lr, [r7]
17497	ldrb	r3, [r1, #1194]	@ zero_extendqisi2
17498	cmp	r3, #0
17499	ldreq	r4, [lr, #24]
17500	beq	.L2920
17501	ldrb	r3, [r1, #1153]	@ zero_extendqisi2
17502	mov	r9, #1
17503	ldr	r2, [r5]
17504	ldr	lr, [lr, #24]
17505	rsb	r0, r3, #24
17506	ldr	ip, [r2, #24]
17507	lsl	r4, r9, r3
17508	ldrb	r3, [r1, #1159]	@ zero_extendqisi2
17509	lsl	r6, r9, r0
17510	sub	r4, r4, #1
17511	sub	r6, r6, #1
17512	and	r4, r4, ip, lsr r0
17513	cmp	r3, #0
17514	and	r8, ip, r6
17515	uxtb	r4, r4
17516	and	r6, r6, lr
17517	beq	.L2917
17518	mov	r0, r4
17519	bl	zftl_flash_exit_slc_mode
17520	ldr	r3, [r5]
17521	mov	r1, r9
17522	mov	r0, r10
17523	ldr	r2, [r3, #12]
17524	str	r2, [sp, #8]
17525	mov	r2, #17
17526	ldr	r3, [r3, #4]
17527	str	r8, [sp]
17528	str	r3, [sp, #4]
17529	mov	r3, r4
17530	bl	flash_start_one_pass_page_prog
17531	bl	nandc_wait_flash_ready
17532	ldr	r3, [r7]
17533	mov	r1, r9
17534	mov	r0, r10
17535	ldr	r2, [r3, #12]
17536	str	r2, [sp, #8]
17537	mov	r2, #26
17538	ldr	r3, [r3, #4]
17539	str	r6, [sp]
17540	str	r3, [sp, #4]
17541	mov	r3, r4
17542	bl	flash_start_one_pass_page_prog
17543	bl	nandc_wait_flash_ready
17544	ldr	r3, [r5, #4]
17545	mov	r1, fp
17546	mov	r0, r10
17547	ldr	r2, [r3, #12]
17548	str	r2, [sp, #8]
17549	mov	r2, #17
17550	ldr	r3, [r3, #4]
17551	str	r3, [sp, #4]
17552	add	r3, r8, r9
17553	str	r3, [sp]
17554	mov	r3, r4
17555	bl	flash_start_one_pass_page_prog
17556	bl	nandc_wait_flash_ready
17557	ldr	r3, [r7, #4]
17558	mov	r1, fp
17559	mov	r0, r10
17560	add	r8, r8, #2
17561	ldr	r2, [r3, #12]
17562	str	r2, [sp, #8]
17563	mov	r2, #26
17564	ldr	r3, [r3, #4]
17565	str	r3, [sp, #4]
17566	add	r3, r6, r9
17567	str	r3, [sp]
17568	mov	r3, r4
17569	bl	flash_start_one_pass_page_prog
17570	bl	nandc_wait_flash_ready
17571	ldr	r3, [r5, #8]
17572	mov	r1, #3
17573	mov	r0, r10
17574	add	r6, r6, #2
17575	ldr	r2, [r3, #12]
17576	str	r2, [sp, #8]
17577	mov	r2, #17
17578	ldr	r3, [r3, #4]
17579	str	r8, [sp]
17580	str	r3, [sp, #4]
17581	mov	r3, r4
17582	bl	flash_start_one_pass_page_prog
17583	bl	nandc_wait_flash_ready
17584	ldr	r3, [r7, #8]
17585	mov	r1, #3
17586	mov	r0, r10
17587	ldr	r2, [r3, #12]
17588	str	r2, [sp, #8]
17589	mov	r2, #16
17590	ldr	r3, [r3, #4]
17591	str	r6, [sp]
17592	str	r3, [sp, #4]
17593	mov	r3, r4
17594	bl	flash_start_one_pass_page_prog
17595.L2918:
17596	ldr	r1, [r5]
17597	mov	r3, #5
17598	ldr	r0, .L2925+4
17599	strb	r3, [r1, #42]
17600	mov	r3, #1
17601	strb	r3, [r1, #43]
17602	mvn	r3, #0
17603	strb	r3, [r1]
17604	bl	buf_add_tail
17605.L2919:
17606	mov	r0, #0
17607	add	sp, sp, #20
17608	@ sp needed
17609	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
17610.L2914:
17611	bl	queue_wait_first_req_completed
17612	bl	queue_remove_completed_req
17613	b	.L2913
17614.L2917:
17615	ldr	r3, [r2, #12]
17616	mov	r1, r9
17617	ldrb	r0, [r2, #44]	@ zero_extendqisi2
17618	str	r3, [sp, #8]
17619	ldr	r3, [r2, #4]
17620	mov	r2, #17
17621	str	r8, [sp]
17622	str	r3, [sp, #4]
17623	mov	r3, r4
17624	bl	flash_start_tlc_page_prog
17625	bl	nandc_wait_flash_ready
17626	ldr	r3, [r7]
17627	mov	r1, r9
17628	ldr	r2, [r5]
17629	ldrb	r0, [r2, #44]	@ zero_extendqisi2
17630	ldr	r2, [r3, #12]
17631	str	r2, [sp, #8]
17632	mov	r2, #26
17633	ldr	r3, [r3, #4]
17634	str	r6, [sp]
17635	str	r3, [sp, #4]
17636	mov	r3, r4
17637	bl	flash_start_tlc_page_prog
17638	bl	nandc_wait_flash_ready
17639	ldm	r5, {r2, r3}
17640	mov	r1, fp
17641	ldrb	r0, [r2, #44]	@ zero_extendqisi2
17642	ldr	r2, [r3, #12]
17643	str	r2, [sp, #8]
17644	mov	r2, #17
17645	ldr	r3, [r3, #4]
17646	str	r8, [sp]
17647	str	r3, [sp, #4]
17648	mov	r3, r4
17649	bl	flash_start_tlc_page_prog
17650	bl	nandc_wait_flash_ready
17651	ldr	r3, [r7, #4]
17652	mov	r1, fp
17653	ldr	r2, [r5]
17654	ldrb	r0, [r2, #44]	@ zero_extendqisi2
17655	ldr	r2, [r3, #12]
17656	str	r2, [sp, #8]
17657	mov	r2, #26
17658	ldr	r3, [r3, #4]
17659	str	r6, [sp]
17660	str	r3, [sp, #4]
17661	mov	r3, r4
17662	bl	flash_start_tlc_page_prog
17663	bl	nandc_wait_flash_ready
17664	ldr	r3, [r5, #8]
17665	mov	r1, #3
17666	ldr	r2, [r5]
17667	ldrb	r0, [r2, #44]	@ zero_extendqisi2
17668	ldr	r2, [r3, #12]
17669	str	r2, [sp, #8]
17670	mov	r2, #17
17671	ldr	r3, [r3, #4]
17672	str	r8, [sp]
17673	str	r3, [sp, #4]
17674	mov	r3, r4
17675	bl	flash_start_tlc_page_prog
17676	bl	nandc_wait_flash_ready
17677	ldr	r3, [r7, #8]
17678	mov	r1, #3
17679	ldr	r2, [r5]
17680	ldrb	r0, [r2, #44]	@ zero_extendqisi2
17681	ldr	r2, [r3, #12]
17682	str	r2, [sp, #8]
17683	mov	r2, #16
17684	ldr	r3, [r3, #4]
17685	str	r6, [sp]
17686	str	r3, [sp, #4]
17687	mov	r3, r4
17688	bl	flash_start_tlc_page_prog
17689	b	.L2918
17690.L2921:
17691	bl	queue_wait_first_req_completed
17692	bl	queue_remove_completed_req
17693.L2920:
17694	mov	r1, #1
17695	mov	r0, r4
17696	bl	queue_lun_state
17697	subs	r6, r0, #0
17698	bne	.L2921
17699	mov	r1, #1
17700	mov	r0, r5
17701	bl	queue_tlc_prog_cmd
17702	mov	r1, r6
17703	mov	r0, r7
17704	bl	queue_tlc_prog_cmd
17705.L2922:
17706	mov	r1, #1
17707	mov	r0, r4
17708	bl	queue_lun_state
17709	cmp	r0, #0
17710	beq	.L2919
17711	bl	queue_wait_first_req_completed
17712	bl	queue_remove_completed_req
17713	b	.L2922
17714.L2915:
17715	mov	r1, #1
17716	mov	r0, r5
17717	bl	queue_tlc_prog_cmd
17718	b	.L2919
17719.L2926:
17720	.align	2
17721.L2925:
17722	.word	.LANCHOR0
17723	.word	.LANCHOR0+2770
17724	.fnend
17725	.size	sblk_xlc_prog_pages, .-sblk_xlc_prog_pages
17726	.align	2
17727	.global	sblk_3d_mlc_prog_pages
17728	.syntax unified
17729	.arm
17730	.fpu softvfp
17731	.type	sblk_3d_mlc_prog_pages, %function
17732sblk_3d_mlc_prog_pages:
17733	.fnstart
17734	@ args = 0, pretend = 0, frame = 0
17735	@ frame_needed = 0, uses_anonymous_args = 0
17736	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
17737	.save {r4, r5, r6, r7, r8, r9, r10, lr}
17738	.pad #8
17739	mov	r7, r1
17740	ldr	r9, .L2933
17741	add	r5, r0, #8
17742	mov	r8, #1
17743	ldr	r10, .L2933+4
17744.L2928:
17745	cmp	r7, #0
17746	bne	.L2931
17747	mov	r0, r7
17748	add	sp, sp, #8
17749	@ sp needed
17750	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
17751.L2931:
17752	ldr	r3, [r5, #-8]
17753	ldr	r4, [r3, #24]
17754.L2929:
17755	mov	r1, #1
17756	mov	r0, r4
17757	bl	queue_lun_state
17758	cmp	r0, #0
17759	bne	.L2930
17760	ldr	r3, [r5, #-8]
17761	sub	r7, r7, #1
17762	add	r5, r5, #8
17763	ldr	r1, [r3, #24]
17764	ldrb	r3, [r9, #1153]	@ zero_extendqisi2
17765	rsb	r2, r3, #24
17766	lsl	r4, r8, r3
17767	lsl	r6, r8, r2
17768	sub	r4, r4, #1
17769	sub	r6, r6, #1
17770	and	r4, r4, r1, lsr r2
17771	and	r6, r6, r1
17772	uxtb	r4, r4
17773	mov	r0, r4
17774	bl	zftl_flash_exit_slc_mode
17775	ldr	r3, [r5, #-16]
17776	mov	r1, r4
17777	mov	r0, #16
17778	ldr	r2, [r3, #12]
17779	str	r2, [sp]
17780	mov	r2, r6
17781	ldr	r3, [r3, #4]
17782	bl	flash_start_3d_mlc_page_prog
17783	bl	nandc_wait_flash_ready
17784	ldr	r3, [r5, #-12]
17785	mov	r1, r4
17786	mov	r0, #16
17787	ldr	r2, [r3, #12]
17788	str	r2, [sp]
17789	add	r2, r6, #1
17790	ldr	r3, [r3, #4]
17791	bl	flash_start_3d_mlc_page_prog
17792	bl	nandc_de_cs.constprop.35
17793	ldr	r1, [r5, #-16]
17794	mov	r3, #4
17795	mov	r0, r10
17796	strb	r3, [r1, #42]
17797	mvn	r3, #0
17798	strb	r8, [r1, #43]
17799	strb	r3, [r1]
17800	bl	buf_add_tail
17801	b	.L2928
17802.L2930:
17803	bl	queue_wait_first_req_completed
17804	bl	queue_remove_completed_req
17805	b	.L2929
17806.L2934:
17807	.align	2
17808.L2933:
17809	.word	.LANCHOR0
17810	.word	.LANCHOR0+2770
17811	.fnend
17812	.size	sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages
17813	.align	2
17814	.global	flash_prog_page_en
17815	.syntax unified
17816	.arm
17817	.fpu softvfp
17818	.type	flash_prog_page_en, %function
17819flash_prog_page_en:
17820	.fnstart
17821	@ args = 8, pretend = 0, frame = 16
17822	@ frame_needed = 0, uses_anonymous_args = 0
17823	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
17824	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17825	.pad #28
17826	sub	sp, sp, #28
17827	mov	r10, r3
17828	ldr	r4, .L2966
17829	mov	r8, r0
17830	mov	r5, r1
17831	ldrb	r3, [sp, #68]	@ zero_extendqisi2
17832	mov	fp, r2
17833	ubfx	r7, r1, #24, #2
17834	str	r3, [sp, #20]
17835	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
17836	cmp	r3, r0
17837	bhi	.L2936
17838	movw	r2, #642
17839	ldr	r1, .L2966+4
17840	ldr	r0, .L2966+8
17841	bl	printk
17842	bl	dump_stack
17843.L2936:
17844	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
17845	cmp	r3, r8
17846	mvnls	r0, #0
17847	bls	.L2935
17848	add	r3, r4, r8
17849	cmp	r7, #0
17850	ldrb	r3, [r3, #1144]	@ zero_extendqisi2
17851	str	r3, [sp, #12]
17852	bne	.L2949
17853	ldrb	r3, [r4]	@ zero_extendqisi2
17854	cmp	r3, #0
17855	beq	.L2939
17856	ldrb	r3, [r4, #1]	@ zero_extendqisi2
17857	cmp	r3, #0
17858	beq	.L2949
17859.L2939:
17860	ldrh	r7, [r4, #2]
17861	mov	r0, r5
17862	mov	r1, r7
17863	bl	__aeabi_uidiv
17864	mov	r1, r7
17865	mul	r6, r7, r0
17866	mov	r0, r5
17867	bl	__aeabi_uidivmod
17868	ldrb	r3, [r4, #1]	@ zero_extendqisi2
17869	lsl	r1, r1, #1
17870	cmp	r3, #0
17871	addeq	r4, r4, r1
17872	ldrheq	r1, [r4, #4]
17873	add	r6, r1, r6
17874.L2938:
17875	ldr	r4, .L2966+12
17876	ldr	r7, .L2966+16
17877.L2944:
17878	ldr	r3, [r4]
17879	tst	r3, #16
17880	beq	.L2941
17881	mov	r3, r6
17882	mov	r2, r5
17883	ldr	r1, [sp, #12]
17884	ldr	r0, .L2966+20
17885	bl	printk
17886.L2941:
17887	ldr	r3, [sp, #64]
17888	mov	r2, fp
17889	mov	r1, r6
17890	ldr	r0, [sp, #12]
17891	str	r3, [sp]
17892	mov	r3, r10
17893	bl	flash_prog_page
17894	ldr	r3, [sp, #20]
17895	str	r0, [sp, #16]
17896	cmp	r3, #0
17897	beq	.L2942
17898	ldr	r3, [sp, #64]
17899	mov	r1, r5
17900	mov	r0, r8
17901	str	r3, [sp]
17902	ldr	r3, [r7, #-96]
17903	ldr	r2, [r7, #-92]
17904	bl	flash_read_page_en
17905	cmn	r0, #1
17906	cmpne	r0, #512
17907	mov	r9, r0
17908	beq	.L2943
17909	ldr	r3, [r7, #-92]
17910	ldr	r2, [fp]
17911	ldr	r3, [r3]
17912	cmp	r2, r3
17913	bne	.L2943
17914	ldr	r3, [r7, #-96]
17915	ldr	r2, [r10]
17916	ldr	r3, [r3]
17917	cmp	r2, r3
17918	beq	.L2942
17919.L2943:
17920	mov	r3, #4
17921	mov	r1, fp
17922	mov	r2, r3
17923	ldr	r0, .L2966+24
17924	bl	rknand_print_hex
17925	mov	r3, #4
17926	mov	r1, r10
17927	mov	r2, r3
17928	ldr	r0, .L2966+28
17929	bl	rknand_print_hex
17930	mov	r3, #4
17931	ldr	r1, [r7, #-96]
17932	mov	r2, r3
17933	ldr	r0, .L2966+32
17934	bl	rknand_print_hex
17935	mov	r3, #4
17936	ldr	r1, [r7, #-92]
17937	mov	r2, r3
17938	ldr	r0, .L2966+36
17939	bl	rknand_print_hex
17940	cmp	r9, #512
17941	beq	.L2944
17942.L2946:
17943	mov	r1, r5
17944	ldr	r0, .L2966+40
17945	bl	printk
17946	mvn	r4, #0
17947	movw	r2, #685
17948	ldr	r1, .L2966+4
17949	ldr	r0, .L2966+8
17950	bl	printk
17951	bl	dump_stack
17952.L2945:
17953	mov	r0, r4
17954.L2935:
17955	add	sp, sp, #28
17956	@ sp needed
17957	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
17958.L2949:
17959	mov	r6, r5
17960	b	.L2938
17961.L2942:
17962	ldr	r4, [sp, #16]
17963	cmn	r4, #1
17964	bne	.L2945
17965	b	.L2946
17966.L2967:
17967	.align	2
17968.L2966:
17969	.word	.LANCHOR0
17970	.word	.LANCHOR1+2116
17971	.word	.LC0
17972	.word	.LANCHOR2
17973	.word	.LANCHOR3
17974	.word	.LC180
17975	.word	.LC181
17976	.word	.LC182
17977	.word	.LC183
17978	.word	.LC184
17979	.word	.LC185
17980	.fnend
17981	.size	flash_prog_page_en, .-flash_prog_page_en
17982	.align	2
17983	.global	ftl_prog_page
17984	.syntax unified
17985	.arm
17986	.fpu softvfp
17987	.type	ftl_prog_page, %function
17988ftl_prog_page:
17989	.fnstart
17990	@ args = 4, pretend = 0, frame = 0
17991	@ frame_needed = 0, uses_anonymous_args = 0
17992	push	{r0, r1, r2, r4, r5, r6, r7, lr}
17993	.save {r4, r5, r6, r7, lr}
17994	.pad #12
17995	mov	r4, r0
17996	mov	r7, r3
17997	mov	r5, r1
17998	mov	r6, r2
17999	bl	sblk_wait_write_queue_completed
18000	mov	r3, #1
18001	mov	r0, r4
18002	str	r3, [sp, #4]
18003	mov	r2, r6
18004	ldr	r3, [sp, #32]
18005	mov	r1, r5
18006	str	r3, [sp]
18007	mov	r3, r7
18008	bl	flash_prog_page_en
18009	cmn	r0, #1
18010	mov	r4, r0
18011	bne	.L2968
18012	ldr	r1, .L2971
18013	movw	r2, #2678
18014	ldr	r0, .L2971+4
18015	bl	printk
18016	bl	dump_stack
18017	mov	r1, r5
18018	ldr	r0, .L2971+8
18019	bl	printk
18020.L2968:
18021	mov	r0, r4
18022	add	sp, sp, #12
18023	@ sp needed
18024	pop	{r4, r5, r6, r7, pc}
18025.L2972:
18026	.align	2
18027.L2971:
18028	.word	.LANCHOR1+2135
18029	.word	.LC0
18030	.word	.LC185
18031	.fnend
18032	.size	ftl_prog_page, .-ftl_prog_page
18033	.align	2
18034	.global	ftl_info_flush
18035	.syntax unified
18036	.arm
18037	.fpu softvfp
18038	.type	ftl_info_flush, %function
18039ftl_info_flush:
18040	.fnstart
18041	@ args = 0, pretend = 0, frame = 8
18042	@ frame_needed = 0, uses_anonymous_args = 0
18043	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
18044	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18045	mov	r1, #0
18046	ldr	r4, .L3010
18047	.pad #20
18048	sub	sp, sp, #20
18049	mov	r9, r0
18050	mov	r8, #0
18051	ldr	r6, .L3010+4
18052	ldrb	r2, [r4, #-2546]	@ zero_extendqisi2
18053	ldr	r0, [r4, #-76]
18054	ldr	r10, .L3010+8
18055	ldr	r7, .L3010+12
18056	lsl	r2, r2, #1
18057	bl	ftl_memset
18058	ldr	r3, [r6, #2800]
18059	ldrh	r2, [r3, #74]
18060	cmp	r2, #1
18061	movhi	r2, #0
18062	strhhi	r2, [r3, #150]	@ movhi
18063.L2987:
18064	ldr	r3, .L3010+16
18065	ldr	r2, [r6, #2800]
18066	ldrb	r5, [r4, #-56]	@ zero_extendqisi2
18067	ldrh	fp, [r3]
18068	ldrh	r3, [r4, #-54]
18069	str	r3, [sp, #8]
18070	ldr	r3, [r2, #4]
18071	add	r3, r3, #1
18072	str	r3, [r2, #4]
18073	ldr	r3, [r4, #-76]
18074	str	r9, [r3]
18075	ldr	r2, [r6, #2800]
18076	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
18077	ldr	r3, [r4, #-76]
18078	ldr	r2, [r2, #4]
18079	ldr	r0, [r4, #-52]
18080	lsl	r1, r1, #9
18081	str	r3, [sp, #12]
18082	str	r2, [r3, #4]
18083	bl	js_hash
18084	ldr	r3, [sp, #12]
18085	str	r0, [r3, #8]
18086	ldr	r3, [r10]
18087	tst	r3, #4096
18088	beq	.L2975
18089	ldr	r3, [r6, #2800]
18090	ldrh	r2, [r4, #-54]
18091	ldrb	r1, [r4, #-56]	@ zero_extendqisi2
18092	ldr	r3, [r3, #4]
18093	ldr	r0, .L3010+20
18094	bl	printk
18095.L2975:
18096	ldr	r3, .L3010+24
18097	ldrh	r0, [r4, #-54]
18098	ldrh	r3, [r3]
18099	cmp	r3, r0
18100	bhi	.L2976
18101	ldr	fp, .L3010+28
18102	ldr	r5, .L3010+32
18103.L2983:
18104	ldrb	r3, [r4, #-55]	@ zero_extendqisi2
18105	add	r3, r3, #1
18106	uxtb	r3, r3
18107	cmp	r3, #7
18108	strb	r3, [r4, #-55]
18109	bls	.L2977
18110	mov	r3, #8
18111.L2982:
18112	ldr	r2, [r6, #1040]
18113	sub	r8, r3, #8
18114	uxth	r8, r8
18115	add	r2, r2, r3
18116	ldrb	r1, [r2, #32]	@ zero_extendqisi2
18117	add	r2, r1, #127
18118	uxtb	r2, r2
18119	cmp	r2, #125
18120	bhi	.L2978
18121	movw	r2, #846
18122	mov	r1, fp
18123	mov	r0, r5
18124	bl	printk
18125	bl	dump_stack
18126.L2981:
18127	strb	r8, [r4, #-55]
18128	mov	r8, #1
18129.L2977:
18130	ldr	r3, [r6, #1040]
18131	ldrb	r2, [r4, #-55]	@ zero_extendqisi2
18132	add	r3, r3, r2
18133	ldrb	r3, [r3, #40]	@ zero_extendqisi2
18134	cmp	r3, #255
18135	strb	r3, [r4, #-56]
18136	beq	.L2983
18137	ldrh	r5, [r7, #-2]
18138	mov	r0, #0
18139	mul	r5, r3, r5
18140	mov	r1, r5
18141	bl	flash_erase_block
18142	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
18143	mov	r1, r5
18144	ldr	r2, [r4, #-52]
18145	mov	r0, #0
18146	str	r3, [sp]
18147	ldr	r3, [r4, #-76]
18148	bl	ftl_prog_page
18149	mov	r3, #1
18150	add	r5, r5, r3
18151	strh	r3, [r4, #-54]	@ movhi
18152.L2984:
18153	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
18154	mov	r1, r5
18155	ldr	r2, [r4, #-52]
18156	mov	r0, #0
18157	str	r3, [sp]
18158	ldr	r3, [r4, #-76]
18159	bl	ftl_prog_page
18160	ldrh	r3, [r4, #-54]
18161	cmn	r0, #1
18162	add	r3, r3, #1
18163	strh	r3, [r4, #-54]	@ movhi
18164	beq	.L2985
18165	ldrb	r3, [r4, #-48]	@ zero_extendqisi2
18166	cmp	r3, #0
18167	beq	.L2986
18168.L2985:
18169	mov	r3, #0
18170	strb	r3, [r4, #-48]
18171	b	.L2987
18172.L2978:
18173	cmp	r1, #255
18174	bne	.L2981
18175	add	r3, r3, #1
18176	cmp	r3, #16
18177	bne	.L2982
18178	mov	r8, #8
18179	b	.L2981
18180.L2976:
18181	ldr	r3, [sp, #8]
18182	cmp	r0, #0
18183	mla	r5, fp, r5, r3
18184	bne	.L2984
18185	mov	r1, r5
18186	bl	flash_erase_block
18187	b	.L2984
18188.L2986:
18189	cmp	r8, #1
18190	beq	.L2988
18191.L2996:
18192	ldrb	r3, [r4, #-56]	@ zero_extendqisi2
18193	cmp	r3, #255
18194	bne	.L2990
18195	movw	r2, #890
18196	ldr	r1, .L3010+28
18197	ldr	r0, .L3010+32
18198	bl	printk
18199	bl	dump_stack
18200.L2990:
18201	mov	r0, #0
18202	add	sp, sp, #20
18203	@ sp needed
18204	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
18205.L2988:
18206	ldrb	r5, [r4, #-55]	@ zero_extendqisi2
18207	ldr	r8, .L3010+28
18208	ldr	r9, .L3010+32
18209	add	r5, r5, #1
18210.L2991:
18211	cmp	r5, #7
18212	bhi	.L2996
18213	ldr	r3, [r6, #1040]
18214	add	r3, r3, r5
18215	ldrb	r10, [r3, #40]	@ zero_extendqisi2
18216	add	r3, r10, #127
18217	uxtb	r3, r3
18218	cmp	r3, #125
18219	bhi	.L2992
18220	movw	r2, #881
18221	mov	r1, r8
18222	mov	r0, r9
18223	bl	printk
18224	bl	dump_stack
18225.L2993:
18226	ldrh	r1, [r7, #-2]
18227	mov	r0, #0
18228	mul	r1, r10, r1
18229	bl	flash_erase_block
18230	b	.L2994
18231.L2992:
18232	cmp	r10, #255
18233	bne	.L2993
18234.L2994:
18235	add	r5, r5, #1
18236	uxth	r5, r5
18237	b	.L2991
18238.L3011:
18239	.align	2
18240.L3010:
18241	.word	.LANCHOR3
18242	.word	.LANCHOR0
18243	.word	.LANCHOR2
18244	.word	.LANCHOR3-3072
18245	.word	.LANCHOR3-3074
18246	.word	.LC186
18247	.word	.LANCHOR3-3096
18248	.word	.LANCHOR1+2149
18249	.word	.LC0
18250	.fnend
18251	.size	ftl_info_flush, .-ftl_info_flush
18252	.align	2
18253	.global	ftl_info_blk_init
18254	.syntax unified
18255	.arm
18256	.fpu softvfp
18257	.type	ftl_info_blk_init, %function
18258ftl_info_blk_init:
18259	.fnstart
18260	@ args = 0, pretend = 0, frame = 8
18261	@ frame_needed = 0, uses_anonymous_args = 0
18262	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
18263	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18264	mov	r3, #1
18265	ldr	r4, .L3043
18266	mov	r6, #0
18267	mov	r1, r6
18268	mov	r2, #16384
18269	ldr	r5, .L3043+4
18270	.pad #20
18271	sub	sp, sp, #20
18272	strb	r3, [r4, #-48]
18273	strb	r3, [r4, #-46]
18274	movw	r3, #1080
18275	ldr	r0, [r4, #-52]
18276	ldrh	r3, [r5, r3]
18277	strb	r6, [r4, #-47]
18278	str	r0, [r5, #1084]
18279	ldr	r10, .L3043+8
18280	add	r3, r0, r3, lsl #2
18281	ldr	r9, .L3043+12
18282	str	r3, [r5, #2800]
18283	bl	ftl_memset
18284	mov	r1, r6
18285	mov	r2, #16384
18286	ldr	r0, [r4, #-44]
18287	bl	ftl_memset
18288	ldr	r3, [r5, #1040]
18289	strb	r6, [r4, #-55]
18290	strh	r6, [r4, #-54]	@ movhi
18291	mov	r6, #7
18292	ldrb	r3, [r3, #40]	@ zero_extendqisi2
18293	strb	r3, [r4, #-56]
18294.L3014:
18295	ldr	r3, [r5, #1040]
18296	sxth	r8, r6
18297	add	r3, r3, r6
18298	ldrb	r7, [r3, #40]	@ zero_extendqisi2
18299	cmp	r7, #255
18300	bne	.L3013
18301.L3018:
18302	subs	r6, r6, #1
18303	bcs	.L3014
18304	mov	r7, r6
18305	mov	r8, #0
18306.L3015:
18307	ldr	r6, .L3043+8
18308	ldr	r3, [r6]
18309	tst	r3, #4096
18310	beq	.L3019
18311	ldr	r3, [r5, #2800]
18312	mov	r2, #4800
18313	mov	r1, r7
18314	ldr	r0, .L3043+16
18315	ldr	r3, [r3]
18316	bl	printk
18317.L3019:
18318	cmn	r7, #1
18319	bne	.L3020
18320	mov	r2, #16384
18321	mov	r1, #0
18322	ldr	r0, [r4, #-52]
18323	bl	ftl_memset
18324	ldr	r3, [r5, #2800]
18325	ldr	r2, .L3043+12
18326	str	r2, [r3]
18327	ldr	r2, .L3043+20
18328	ldr	r3, [r5, #2800]
18329	str	r2, [r3, #12]
18330.L3042:
18331	mov	r0, r7
18332.L3012:
18333	add	sp, sp, #20
18334	@ sp needed
18335	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
18336.L3013:
18337	ldr	r3, .L3043+24
18338	mov	r0, #0
18339	ldr	r2, [r4, #-52]
18340	ldrh	r3, [r3]
18341	mul	r7, r7, r3
18342	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
18343	str	r3, [sp]
18344	mov	r1, r7
18345	ldr	r3, [r4, #-76]
18346	bl	ftl_read_page
18347	cmn	r0, #1
18348	mov	fp, r0
18349	bne	.L3016
18350	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
18351	add	r1, r7, #1
18352	ldr	r2, [r4, #-52]
18353	mov	r0, #0
18354	str	r3, [sp]
18355	ldr	r3, [r4, #-76]
18356	bl	ftl_read_page
18357	mov	fp, r0
18358.L3016:
18359	ldr	r3, [r10]
18360	tst	r3, #4096
18361	beq	.L3017
18362	ldr	r3, [r5, #2800]
18363	mov	r2, fp
18364	mov	r1, r6
18365	ldr	r0, .L3043+28
18366	ldr	r3, [r3]
18367	str	r3, [sp]
18368	movw	r3, #749
18369	bl	printk
18370.L3017:
18371	cmn	fp, #1
18372	beq	.L3018
18373	ldr	r3, [r5, #2800]
18374	ldr	r3, [r3]
18375	cmp	r3, r9
18376	bne	.L3018
18377	mov	r7, r8
18378	b	.L3015
18379.L3020:
18380	ldr	r3, [r5, #1040]
18381	mov	r0, #0
18382	ldr	r2, [r4, #-52]
18383	mov	r7, #0
18384	strb	r8, [r4, #-55]
18385	add	r3, r3, r8
18386	ldr	r10, .L3043+12
18387	ldrb	r1, [r3, #40]	@ zero_extendqisi2
18388	mov	r3, #4
18389	str	r3, [sp]
18390	ldr	r3, [r4, #-76]
18391	strb	r1, [r4, #-56]
18392	bl	flash_get_last_written_page
18393	uxth	r9, r0
18394	ldrb	r8, [r4, #-56]	@ zero_extendqisi2
18395	ldr	fp, .L3043+32
18396	add	r3, r9, #1
18397	uxth	r3, r3
18398	str	r3, [sp, #8]
18399	ldr	r3, .L3043+36
18400	ldrh	r3, [r3, #-2]
18401	mla	r8, r3, r8, r0
18402.L3022:
18403	sub	r3, r9, r7
18404	tst	r3, #32768
18405	bne	.L3026
18406	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
18407	sub	r1, r8, r7
18408	ldr	r2, [r4, #-52]
18409	mov	r0, #0
18410	str	r3, [sp]
18411	ldr	r3, [r4, #-76]
18412	bl	ftl_read_page
18413	cmn	r0, #1
18414	beq	.L3023
18415	ldr	r3, [r5, #2800]
18416	ldr	r3, [r3]
18417	cmp	r3, r10
18418	bne	.L3023
18419	ldr	r3, [r4, #-76]
18420	ldr	r3, [r3, #8]
18421	cmp	r3, #0
18422	bne	.L3024
18423.L3026:
18424	ldrh	r3, [sp, #8]
18425	strh	r3, [r4, #-54]	@ movhi
18426	bl	ftl_tmp_into_update
18427	ldr	r2, [r5, #2800]
18428	mov	r0, #0
18429	ldr	r3, [r2, #64]
18430	add	r3, r3, #1
18431	str	r3, [r2, #64]
18432	bl	ftl_info_flush
18433	mov	r0, #0
18434	bl	ftl_info_flush
18435	ldr	r7, [r6]
18436	ands	r7, r7, #16384
18437	beq	.L3042
18438	ldr	r3, [r5, #2800]
18439	ldr	r0, .L3043+40
18440	ldr	r1, [r3, #156]
18441	bl	printk
18442	mov	r0, #0
18443	b	.L3012
18444.L3024:
18445	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
18446	ldr	r0, [r4, #-52]
18447	str	r3, [sp, #12]
18448	lsl	r1, r1, #9
18449	bl	js_hash
18450	ldr	r3, [sp, #12]
18451	cmp	r3, r0
18452	beq	.L3026
18453	ldr	r3, [r4, #-76]
18454	mov	r0, fp
18455	ldr	r1, [r3, #8]
18456	bl	printk
18457.L3023:
18458	add	r7, r7, #1
18459	b	.L3022
18460.L3044:
18461	.align	2
18462.L3043:
18463	.word	.LANCHOR3
18464	.word	.LANCHOR0
18465	.word	.LANCHOR2
18466	.word	1229739078
18467	.word	.LC188
18468	.word	393252
18469	.word	.LANCHOR3-3074
18470	.word	.LC187
18471	.word	.LC189
18472	.word	.LANCHOR3-3072
18473	.word	.LC190
18474	.fnend
18475	.size	ftl_info_blk_init, .-ftl_info_blk_init
18476	.align	2
18477	.global	ftl_ext_info_flush
18478	.syntax unified
18479	.arm
18480	.fpu softvfp
18481	.type	ftl_ext_info_flush, %function
18482ftl_ext_info_flush:
18483	.fnstart
18484	@ args = 0, pretend = 0, frame = 0
18485	@ frame_needed = 0, uses_anonymous_args = 0
18486	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
18487	.save {r4, r5, r6, r7, r8, r9, lr}
18488	.pad #12
18489	bl	timer_get_time
18490	ldr	r3, .L3061
18491	ldr	r5, .L3061+4
18492	umull	r0, r1, r0, r3
18493	ldr	r3, [r5, #1096]
18494	ldr	r0, [r3, #520]
18495	lsr	r1, r1, #5
18496	cmp	r1, r0
18497	bls	.L3046
18498	ldr	r2, [r3, #12]
18499	sub	r2, r2, r0
18500	add	r2, r2, r1
18501	str	r2, [r3, #12]
18502.L3060:
18503	str	r1, [r3, #520]
18504	b	.L3047
18505.L3046:
18506	bcc	.L3060
18507.L3047:
18508	ldr	r4, .L3061+8
18509	mov	r0, #0
18510	bl	ftl_total_vpn_update
18511	sub	r7, r4, #3136
18512.L3051:
18513	ldr	r3, [r5, #2800]
18514	ldr	r2, [r3, #56]
18515	add	r2, r2, #1
18516	str	r2, [r3, #56]
18517	ldrh	r2, [r3, #140]
18518	ldr	r3, .L3061+12
18519	ldrh	r3, [r3]
18520	cmp	r2, r3
18521	bcc	.L3049
18522	bl	ftl_ext_alloc_new_blk
18523.L3049:
18524	ldr	r3, [r5, #2800]
18525	ldrh	r2, [r3, #130]
18526	movw	r3, #65535
18527	cmp	r2, r3
18528	bne	.L3050
18529	movw	r2, #2211
18530	ldr	r1, .L3061+16
18531	ldr	r0, .L3061+20
18532	bl	printk
18533	bl	dump_stack
18534.L3050:
18535	ldr	r2, [r5, #2800]
18536	ldrb	r6, [r5, #1153]	@ zero_extendqisi2
18537	ldrh	r1, [r7, #-2]
18538	ldrh	r3, [r2, #130]
18539	rsb	r6, r6, #24
18540	ldr	r0, [r4, #-76]
18541	sub	r6, r6, r1
18542	mvn	r1, #0
18543	asr	r8, r3, r6
18544	bic	r6, r3, r1, lsl r6
18545	ldr	r3, .L3061+24
18546	sxth	r6, r6
18547	ldrh	r1, [r3, #-2]
18548	ldrh	r3, [r2, #140]
18549	ldrb	r2, [r4, #-2546]	@ zero_extendqisi2
18550	mla	r6, r1, r6, r3
18551	lsl	r2, r2, #1
18552	mov	r1, #0
18553	bl	ftl_memset
18554	ldr	r3, [r4, #-76]
18555	mov	r2, #0
18556	str	r2, [r3]
18557	ldr	r3, [r5, #2800]
18558	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
18559	ldr	r9, [r4, #-76]
18560	ldr	r3, [r3, #56]
18561	ldr	r0, [r4, #-44]
18562	lsl	r1, r1, #9
18563	str	r3, [r9, #4]
18564	bl	js_hash
18565	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
18566	mov	r1, r6
18567	str	r0, [r9, #8]
18568	uxtb	r0, r8
18569	ldr	r2, [r4, #-44]
18570	str	r3, [sp]
18571	ldr	r3, [r4, #-76]
18572	bl	ftl_prog_page
18573	ldr	r2, [r5, #2800]
18574	ldrh	r3, [r2, #140]
18575	add	r3, r3, #1
18576	uxth	r3, r3
18577	cmp	r3, #1
18578	strh	r3, [r2, #140]	@ movhi
18579	beq	.L3051
18580	cmn	r0, #1
18581	beq	.L3052
18582	ldrb	r0, [r4, #-46]	@ zero_extendqisi2
18583	cmp	r0, #0
18584	beq	.L3053
18585.L3052:
18586.L3048:
18587	mov	r3, #0
18588	strb	r3, [r4, #-46]
18589	b	.L3051
18590.L3053:
18591	add	sp, sp, #12
18592	@ sp needed
18593	pop	{r4, r5, r6, r7, r8, r9, pc}
18594.L3062:
18595	.align	2
18596.L3061:
18597	.word	1374389535
18598	.word	.LANCHOR0
18599	.word	.LANCHOR3
18600	.word	.LANCHOR3-3096
18601	.word	.LANCHOR1+2164
18602	.word	.LC0
18603	.word	.LANCHOR3-3072
18604	.fnend
18605	.size	ftl_ext_info_flush, .-ftl_ext_info_flush
18606	.align	2
18607	.global	ftl_ext_info_init
18608	.syntax unified
18609	.arm
18610	.fpu softvfp
18611	.type	ftl_ext_info_init, %function
18612ftl_ext_info_init:
18613	.fnstart
18614	@ args = 0, pretend = 0, frame = 8
18615	@ frame_needed = 0, uses_anonymous_args = 0
18616	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
18617	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18618	mov	r2, #0
18619	ldr	r4, .L3083
18620	.pad #20
18621	sub	sp, sp, #20
18622	ldr	r5, .L3083+4
18623	sub	r3, r4, #2544
18624	strh	r2, [r3, #-4]	@ movhi
18625	sub	r2, r4, #3136
18626	ldr	r3, [r5, #2800]
18627	ldrh	r2, [r2, #-2]
18628	ldrh	r6, [r3, #130]
18629	ldrb	r3, [r5, #1153]	@ zero_extendqisi2
18630	rsb	r3, r3, #24
18631	sub	r3, r3, r2
18632	mvn	r2, #0
18633	asr	r7, r6, r3
18634	bic	r6, r6, r2, lsl r3
18635	uxtb	r10, r7
18636	mov	r3, #4
18637	str	r3, [sp]
18638	mov	r1, r6
18639	ldr	r3, [r4, #-76]
18640	mov	r0, r10
18641	ldr	r2, [r4, #-44]
18642	bl	flash_get_last_written_page
18643	ldr	r3, .L3083+8
18644	mov	r8, r0
18645	ldr	r2, [r3]
18646	str	r3, [sp, #8]
18647	tst	r2, #4096
18648	beq	.L3064
18649	ldr	r3, [r5, #2800]
18650	uxth	r7, r7
18651	mov	r2, #2256
18652	ldr	r1, .L3083+12
18653	ldrh	r3, [r3, #130]
18654	str	r7, [sp]
18655	str	r3, [sp, #4]
18656	mov	r3, r0
18657	ldr	r0, .L3083+16
18658	bl	printk
18659.L3064:
18660	ldr	fp, .L3083+20
18661	mov	r9, #0
18662.L3065:
18663	uxth	r7, r8
18664	sub	r3, r7, r9
18665	tst	r3, #32768
18666	bne	.L3070
18667	ldr	r3, .L3083+24
18668	sub	r1, r8, r9
18669	ldrh	r0, [r3]
18670	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
18671	mla	r1, r6, r0, r1
18672	str	r3, [sp]
18673	ldr	r3, [r4, #-76]
18674	ldr	r2, [r4, #-44]
18675	mov	r0, r10
18676	bl	flash_read_page_en
18677	cmp	r0, #512
18678	cmnne	r0, #1
18679	beq	.L3066
18680	ldr	r3, [r5, #1096]
18681	ldr	r2, .L3083+28
18682	ldr	r3, [r3]
18683	cmp	r3, r2
18684	bne	.L3066
18685	ldr	r3, [r4, #-76]
18686	ldr	r3, [r3, #8]
18687	cmp	r3, #0
18688	bne	.L3067
18689.L3070:
18690	bl	zftl_sblk_list_init
18691	ldr	r3, [r5, #2800]
18692	ldrh	r2, [r3, #140]
18693	cmp	r2, r8
18694	bgt	.L3069
18695	add	r7, r7, #1
18696	strh	r7, [r3, #140]	@ movhi
18697	bl	ftl_ext_info_flush
18698.L3069:
18699	ldr	r4, [r5, #1096]
18700	bl	timer_get_time
18701	ldr	r3, .L3083+32
18702	umull	r0, r1, r0, r3
18703	lsr	r3, r1, #5
18704	str	r3, [r4, #520]
18705	ldr	r4, [r5, #1096]
18706	bl	timer_get_time
18707	ldr	r3, [r5, #1096]
18708	mov	r2, #0
18709	str	r0, [r4, #604]
18710	add	r1, r3, #584
18711	str	r2, [r3, #608]
18712	mvn	r2, #0
18713	strh	r2, [r1]	@ movhi
18714	movw	r1, #586
18715	strh	r2, [r3, r1]	@ movhi
18716	add	r1, r3, #588
18717	strh	r2, [r1]	@ movhi
18718	movw	r1, #590
18719	strh	r2, [r3, r1]	@ movhi
18720	movw	r1, #65535
18721	str	r2, [r3, #564]
18722	ldr	r2, [sp, #8]
18723	str	r1, [r3, #560]
18724	ldr	r2, [r2]
18725	tst	r2, #4096
18726	beq	.L3072
18727	ldr	r4, [r3, #520]
18728	ldr	r5, [r3, #12]
18729	bl	timer_get_time
18730	mov	r2, r4
18731	str	r0, [sp]
18732	mov	r3, r5
18733	ldr	r1, .L3083+12
18734	ldr	r0, .L3083+36
18735	bl	printk
18736.L3072:
18737	ldr	r3, .L3083+40
18738	mvn	r2, #0
18739	mov	r0, #0
18740	strh	r2, [r3, #-4]	@ movhi
18741	add	sp, sp, #20
18742	@ sp needed
18743	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
18744.L3067:
18745	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
18746	ldr	r0, [r4, #-44]
18747	str	r3, [sp, #12]
18748	lsl	r1, r1, #9
18749	bl	js_hash
18750	ldr	r3, [sp, #12]
18751	cmp	r3, r0
18752	beq	.L3070
18753	ldr	r3, [r4, #-76]
18754	mov	r0, fp
18755	ldr	r1, [r3, #8]
18756	bl	printk
18757.L3066:
18758	add	r9, r9, #1
18759	b	.L3065
18760.L3084:
18761	.align	2
18762.L3083:
18763	.word	.LANCHOR3
18764	.word	.LANCHOR0
18765	.word	.LANCHOR2
18766	.word	.LANCHOR1+2183
18767	.word	.LC191
18768	.word	.LC192
18769	.word	.LANCHOR3-3074
18770	.word	1162432070
18771	.word	1374389535
18772	.word	.LC193
18773	.word	.LANCHOR3-3152
18774	.fnend
18775	.size	ftl_ext_info_init, .-ftl_ext_info_init
18776	.align	2
18777	.global	ftl_prog_ppa_page
18778	.syntax unified
18779	.arm
18780	.fpu softvfp
18781	.type	ftl_prog_ppa_page, %function
18782ftl_prog_ppa_page:
18783	.fnstart
18784	@ args = 0, pretend = 0, frame = 0
18785	@ frame_needed = 0, uses_anonymous_args = 0
18786	ldr	ip, .L3087
18787	push	{r0, r1, r2, r4, r5, lr}
18788	.save {r4, r5, lr}
18789	.pad #12
18790	ldrb	r5, [ip, #1153]	@ zero_extendqisi2
18791	mov	ip, #1
18792	str	r3, [sp]
18793	mov	r3, r2
18794	mov	r2, r1
18795	rsb	r4, r5, #24
18796	lsl	lr, ip, r4
18797	lsl	ip, ip, r5
18798	sub	ip, ip, #1
18799	sub	lr, lr, #1
18800	and	ip, ip, r0, lsr r4
18801	and	r1, lr, r0
18802	uxtb	r0, ip
18803	bl	ftl_prog_page
18804	add	sp, sp, #12
18805	@ sp needed
18806	pop	{r4, r5, pc}
18807.L3088:
18808	.align	2
18809.L3087:
18810	.word	.LANCHOR0
18811	.fnend
18812	.size	ftl_prog_ppa_page, .-ftl_prog_ppa_page
18813	.align	2
18814	.global	ftl_write_last_log_page
18815	.syntax unified
18816	.arm
18817	.fpu softvfp
18818	.type	ftl_write_last_log_page, %function
18819ftl_write_last_log_page:
18820	.fnstart
18821	@ args = 0, pretend = 0, frame = 0
18822	@ frame_needed = 0, uses_anonymous_args = 0
18823	ldrh	r3, [r0, #6]
18824	cmp	r3, #1
18825	bne	.L3091
18826	push	{r4, r5, r6, r7, r8, lr}
18827	.save {r4, r5, r6, r7, r8, lr}
18828	mov	r4, r0
18829	ldr	r5, .L3097
18830	ldrh	r8, [r0, #12]
18831	ldr	r6, [r5, #-2556]
18832	bl	ftl_get_new_free_page
18833	cmn	r0, #1
18834	mov	r7, r0
18835	beq	.L3092
18836	ldrh	r0, [r4]
18837	add	r6, r6, r8, lsl #2
18838	bl	ftl_vpn_decrement
18839	ldr	r3, [r5, #-40]
18840	mov	r0, r6
18841	ldr	r2, .L3097+4
18842	str	r2, [r3]
18843	sub	r3, r5, #3088
18844	ldrh	r3, [r3, #-8]
18845	ldrb	r1, [r5, #-3127]	@ zero_extendqisi2
18846	ldr	r4, [r5, #-40]
18847	mul	r1, r1, r3
18848	lsl	r1, r1, #2
18849	bl	js_hash
18850	ldr	r1, [r5, #-40]
18851	str	r0, [r4, #4]
18852	mov	r4, #0
18853	mov	r2, r4
18854	mov	r0, #2
18855	str	r4, [r1, #8]
18856	str	r4, [r1, #12]
18857	str	r4, [r1, #16]!
18858	bl	ftl_debug_info_fill
18859	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
18860	mov	r1, r6
18861	ldr	r2, [r5, #-40]
18862	mov	r0, r7
18863	bl	ftl_prog_ppa_page
18864.L3092:
18865	mov	r0, #0
18866	pop	{r4, r5, r6, r7, r8, pc}
18867.L3091:
18868	mvn	r0, #0
18869	bx	lr
18870.L3098:
18871	.align	2
18872.L3097:
18873	.word	.LANCHOR3
18874	.word	-178307901
18875	.fnend
18876	.size	ftl_write_last_log_page, .-ftl_write_last_log_page
18877	.align	2
18878	.global	ftl_dump_write_open_sblk
18879	.syntax unified
18880	.arm
18881	.fpu softvfp
18882	.type	ftl_dump_write_open_sblk, %function
18883ftl_dump_write_open_sblk:
18884	.fnstart
18885	@ args = 0, pretend = 0, frame = 64
18886	@ frame_needed = 0, uses_anonymous_args = 0
18887	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
18888	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18889	movw	r3, #1080
18890	ldr	r4, .L3138
18891	.pad #108
18892	sub	sp, sp, #108
18893	ldrh	r3, [r4, r3]
18894	cmp	r3, r0
18895	bls	.L3099
18896	ldr	r3, .L3138+4
18897	ldrb	r2, [r3, #-3120]	@ zero_extendqisi2
18898	cmp	r2, #0
18899	bne	.L3101
18900	ldrb	r2, [r3, #-3126]	@ zero_extendqisi2
18901	cmp	r2, #0
18902	beq	.L3099
18903.L3101:
18904	ldrb	r2, [r4, #1158]	@ zero_extendqisi2
18905	cmp	r2, #0
18906	bne	.L3099
18907	ldr	r2, [r4, #1084]
18908	lsl	r7, r0, #2
18909	ldr	r5, .L3138+8
18910	add	r1, sp, #88
18911	mov	r10, r0
18912	strh	r0, [sp, #72]	@ movhi
18913	add	r2, r2, r7
18914	mov	r6, #0
18915	ldrb	r2, [r2, #2]	@ zero_extendqisi2
18916	and	r2, r2, #224
18917	cmp	r2, #160
18918	ldrbeq	r8, [r3, #-3128]	@ zero_extendqisi2
18919	movne	r8, #1
18920	bl	ftl_get_blk_list_in_sblk
18921	ldrh	r3, [r5, #-8]
18922	uxtb	r0, r0
18923	strh	r6, [sp, #74]	@ movhi
18924	strb	r0, [sp, #81]
18925	strb	r6, [sp, #77]
18926	smulbb	r0, r3, r0
18927	ldr	r3, [r4, #1084]
18928	strh	r6, [sp, #82]	@ movhi
18929	strh	r0, [sp, #78]	@ movhi
18930	add	r2, r3, r7
18931	ldr	r1, [r3, r10, lsl #2]
18932	ldrb	r2, [r2, #2]	@ zero_extendqisi2
18933	ldr	r0, .L3138+12
18934	ubfx	r1, r1, #11, #8
18935	str	r1, [sp, #4]
18936	mov	r1, r10
18937	ldrh	r3, [r3, r7]
18938	mov	r7, r6
18939	ubfx	r3, r3, #0, #11
18940	str	r3, [sp]
18941	ubfx	r3, r2, #3, #2
18942	lsr	r2, r2, #5
18943	bl	printk
18944	mov	r0, #1
18945	bl	buf_alloc
18946	mov	r4, r0
18947	add	r3, r5, #16
18948	str	r6, [sp, #44]
18949	str	r3, [sp, #64]
18950.L3103:
18951	ldr	r3, .L3138+16
18952	uxth	r5, r6
18953	ldrh	r3, [r3]
18954	cmp	r3, r5
18955	bls	.L3111
18956	lsl	r3, r5, #1
18957	str	r5, [sp, #52]
18958	mov	fp, #0
18959	sub	r2, r3, #1
18960	add	r3, r3, r5
18961	sub	r3, r3, #1
18962	str	r2, [sp, #48]
18963	str	r3, [sp, #56]
18964	b	.L3114
18965.L3112:
18966	ldr	r2, [sp, #60]
18967	add	r3, sp, #104
18968	add	r3, r3, r2
18969	ldrh	r3, [r3, #-32]
18970	str	r3, [sp, #40]
18971	movw	r3, #65535
18972	ldr	r2, [sp, #40]
18973	cmp	r2, r3
18974	bne	.L3104
18975.L3110:
18976	add	r7, r7, #1
18977	uxth	r7, r7
18978.L3105:
18979	cmp	r8, r7
18980	bcs	.L3112
18981	add	fp, fp, #1
18982.L3114:
18983	uxth	r3, fp
18984	uxth	r2, fp
18985	str	r3, [sp, #44]
18986	ldrb	r3, [sp, #81]	@ zero_extendqisi2
18987	cmp	r3, r2
18988	bls	.L3113
18989	mov	r7, #1
18990	add	r3, r2, #8
18991	lsl	r3, r3, r7
18992	str	r3, [sp, #60]
18993	b	.L3105
18994.L3104:
18995	ldr	r3, [sp, #64]
18996	cmp	r8, #3
18997	ldr	r2, [sp, #40]
18998	ldrh	r3, [r3, #-2]
18999	mul	r3, r2, r3
19000	bne	.L3106
19001	ldr	r2, .L3138
19002	ldrb	r2, [r2, #1159]	@ zero_extendqisi2
19003	cmp	r2, #0
19004	uxtaheq	r3, r3, r6
19005	ldrne	r2, [sp, #56]
19006	orreq	r3, r3, r7, lsl #24
19007	beq	.L3108
19008.L3137:
19009	add	r3, r2, r3
19010	ldr	r2, .L3138+4
19011	add	r3, r3, r7
19012	ldrb	r2, [r2, #-3128]	@ zero_extendqisi2
19013	orr	r3, r3, r2, lsl #24
19014.L3108:
19015	str	r3, [r4, #24]
19016	mov	r1, #1
19017	mov	r0, r4
19018	str	r3, [sp, #68]
19019	bl	sblk_read_page
19020	ldr	r9, [r4, #36]
19021	ldr	r3, [sp, #68]
19022	cmn	r9, #1
19023	cmpne	r9, #512
19024	bne	.L3110
19025	ldr	r1, [r4, #12]
19026	ldr	r2, [r4, #4]
19027	ldr	r0, [r1, #12]
19028	str	r0, [sp, #32]
19029	ldr	r0, [r1, #8]
19030	str	r0, [sp, #28]
19031	ldr	r0, [r1, #4]
19032	str	r0, [sp, #24]
19033	ldr	r1, [r1]
19034	ldr	r0, .L3138+20
19035	str	r1, [sp, #20]
19036	ldr	r1, [r2, #12]
19037	str	r1, [sp, #16]
19038	ldr	r1, [r2, #8]
19039	str	r1, [sp, #12]
19040	ldr	r1, [r2, #4]
19041	str	r1, [sp, #8]
19042	ldr	r2, [r2]
19043	ldr	r1, [sp, #40]
19044	str	r9, [sp]
19045	str	r2, [sp, #4]
19046	ldr	r2, [sp, #52]
19047	bl	printk
19048	cmp	r9, #512
19049	bne	.L3110
19050.L3111:
19051	uxth	r2, r6
19052	ldr	r6, .L3138+4
19053	ldr	r3, [sp, #44]
19054	mov	r1, r10
19055	str	r7, [sp]
19056	ldr	r0, .L3138+24
19057	bl	printk
19058	ldrb	r2, [r6, #-2546]	@ zero_extendqisi2
19059	mov	r1, #0
19060	ldr	r0, [r4, #4]
19061	ldr	fp, .L3138+28
19062	lsl	r2, r2, #9
19063	bl	ftl_memset
19064	ldrb	r2, [r6, #-2546]	@ zero_extendqisi2
19065	mov	r1, #0
19066	ldr	r0, [r4, #12]
19067	lsl	r2, r2, #1
19068	bl	ftl_memset
19069.L3115:
19070	ldr	r7, .L3138+16
19071	ldrh	r3, [r7]
19072	cmp	r3, r5
19073	bls	.L3121
19074	lsl	r3, r5, #1
19075	mov	r8, #0
19076	ldr	r9, .L3138+32
19077	add	r7, r7, #24
19078	str	r3, [sp, #40]
19079	b	.L3122
19080.L3106:
19081	cmp	r8, #2
19082	uxtahne	r3, r3, r6
19083	bne	.L3108
19084	ldr	r2, [sp, #48]
19085	b	.L3137
19086.L3113:
19087	add	r6, r6, #1
19088	b	.L3103
19089.L3120:
19090	ldr	r3, [fp]
19091	tst	r3, #4096
19092	uxth	r3, r8
19093	beq	.L3116
19094	mov	r2, r3
19095	mov	r1, r5
19096	mov	r0, r9
19097	str	r3, [sp, #44]
19098	bl	printk
19099	ldr	r3, [sp, #44]
19100.L3116:
19101	ldrb	r2, [r6, #-3120]	@ zero_extendqisi2
19102	cmp	r2, #0
19103	beq	.L3117
19104	add	r2, sp, #104
19105	mov	r0, r4
19106	add	r3, r2, r3, lsl #1
19107	ldrh	r2, [r3, #-16]
19108	ldrh	r3, [r7, #-2]
19109	mul	r3, r3, r2
19110	orr	r3, r3, r5
19111	str	r3, [r4, #24]
19112	bl	sblk_3d_tlc_dump_prog
19113.L3118:
19114	add	r8, r8, #1
19115.L3122:
19116	ldrb	r2, [sp, #81]	@ zero_extendqisi2
19117	uxth	r3, r8
19118	cmp	r2, r3
19119	bhi	.L3120
19120	add	r5, r5, #1
19121	uxth	r5, r5
19122	b	.L3115
19123.L3117:
19124	ldrb	r1, [r6, #-3128]	@ zero_extendqisi2
19125	cmp	r1, #2
19126	bne	.L3119
19127	add	r2, sp, #104
19128	mov	r0, r4
19129	add	r3, r2, r3, lsl #1
19130	ldrh	r2, [r3, #-16]
19131	ldrh	r3, [r7, #-2]
19132	mul	r3, r3, r2
19133	ldr	r2, [sp, #40]
19134	orr	r3, r3, r2
19135	orr	r3, r3, #33554432
19136	str	r3, [r4, #24]
19137	bl	sblk_mlc_dump_prog
19138	b	.L3118
19139.L3119:
19140	add	r1, sp, #104
19141	ldrh	ip, [r7, #-2]
19142	add	r3, r1, r3, lsl #1
19143	ldrh	r1, [r3, #-16]
19144	ldr	r3, .L3138
19145	mul	ip, ip, r1
19146	ldrb	r1, [r3, #1153]	@ zero_extendqisi2
19147	mvn	r3, #0
19148	rsb	lr, r1, #24
19149	orr	ip, ip, r5
19150	mvn	r1, r3, lsl r1
19151	str	ip, [r4, #24]
19152	str	r2, [sp, #4]
19153	and	r0, r1, ip, lsr lr
19154	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
19155	bic	r1, ip, r1, lsl lr
19156	uxtb	r0, r0
19157	str	r3, [sp]
19158	ldr	r3, [r4, #12]
19159	ldr	r2, [r4, #4]
19160	bl	flash_prog_page_en
19161	b	.L3118
19162.L3121:
19163	mov	r0, r4
19164	bl	zbuf_free
19165	mov	r1, r10
19166	ldr	r0, .L3138+36
19167	bl	printk
19168.L3099:
19169	add	sp, sp, #108
19170	@ sp needed
19171	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
19172.L3139:
19173	.align	2
19174.L3138:
19175	.word	.LANCHOR0
19176	.word	.LANCHOR3
19177	.word	.LANCHOR3-3088
19178	.word	.LC194
19179	.word	.LANCHOR3-3096
19180	.word	.LC195
19181	.word	.LC196
19182	.word	.LANCHOR2
19183	.word	.LC197
19184	.word	.LC198
19185	.fnend
19186	.size	ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk
19187	.align	2
19188	.global	gc_ink_check_sblk
19189	.syntax unified
19190	.arm
19191	.fpu softvfp
19192	.type	gc_ink_check_sblk, %function
19193gc_ink_check_sblk:
19194	.fnstart
19195	@ args = 0, pretend = 0, frame = 0
19196	@ frame_needed = 0, uses_anonymous_args = 0
19197	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
19198	.save {r4, r5, r6, r7, r8, r9, r10, lr}
19199	.pad #8
19200	movw	r3, #2106
19201	ldr	r4, .L3169
19202	ldr	r5, .L3169+4
19203	ldrh	r2, [r4, r3]
19204	ldr	r6, [r5, #904]
19205	cmp	r2, #3
19206	ldrls	pc, [pc, r2, asl #2]
19207	b	.L3141
19208.L3143:
19209	.word	.L3142
19210	.word	.L3144
19211	.word	.L3145
19212	.word	.L3146
19213.L3142:
19214	ldr	r8, .L3169+8
19215	movw	r3, #2788
19216	ldrh	r3, [r8, r3]
19217	cmp	r3, #7
19218	bls	.L3140
19219	ldrb	r3, [r8, #2769]	@ zero_extendqisi2
19220	cmp	r3, #2
19221	bls	.L3140
19222	ldr	r7, .L3169+12
19223	mov	r1, #0
19224	movw	r9, #65535
19225	sub	r6, r7, #3072
19226	sub	r6, r6, #8
19227	mov	r0, r6
19228	bl	_list_get_gc_head_node
19229	cmp	r0, r9
19230	beq	.L3140
19231	ldr	r3, [r8, #1084]
19232	lsl	r0, r0, #2
19233	ldrh	r3, [r3, r0]
19234	ubfx	r3, r3, #0, #11
19235	cmp	r3, #2
19236	bgt	.L3140
19237	mov	r0, #1
19238	bl	buf_alloc
19239	cmp	r0, #0
19240	str	r0, [r5, #904]
19241	beq	.L3140
19242	mov	r0, r6
19243	ldr	r2, .L3169+16
19244	mov	r1, #0
19245	bl	_list_pop_index_node
19246	uxth	r10, r0
19247	mov	r6, r0
19248	cmp	r10, r9
19249	bne	.L3150
19250	ldr	r0, [r5, #904]
19251	bl	zbuf_free
19252	mov	r3, #0
19253	str	r3, [r5, #904]
19254.L3140:
19255	add	sp, sp, #8
19256	@ sp needed
19257	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
19258.L3150:
19259	add	r1, r4, #2144
19260	mov	r0, r10
19261	add	r1, r1, #14
19262	uxth	r6, r6
19263	bl	ftl_get_blk_list_in_sblk
19264	movw	r3, #2142
19265	mov	r2, #0
19266	strh	r10, [r4, r3]	@ movhi
19267	add	r3, r4, #2144
19268	strh	r2, [r3]	@ movhi
19269	mov	r2, #1
19270	movw	r3, #2106
19271	lsl	r6, r6, #2
19272	strh	r2, [r4, r3]	@ movhi
19273	ldr	r3, [r8, #1084]
19274	strb	r0, [r5, #879]
19275	ldrb	r2, [r7, #-2546]	@ zero_extendqisi2
19276	ldrh	r3, [r3, r6]
19277	tst	r3, #1
19278	ldr	r3, [r5, #904]
19279	lsl	r2, r2, #9
19280	movne	r1, #85
19281	moveq	r1, #170
19282	ldr	r0, [r3, #4]
19283	add	sp, sp, #8
19284	@ sp needed
19285	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
19286	b	ftl_memset
19287.L3144:
19288	movw	r3, #2142
19289	mov	r1, #0
19290	ldrh	r0, [r4, r3]
19291	bl	ftl_erase_sblk
19292	mov	r2, #2
19293.L3168:
19294	movw	r3, #2106
19295.L3166:
19296	strh	r2, [r4, r3]	@ movhi
19297	b	.L3140
19298.L3145:
19299	ldr	r8, .L3169+12
19300	mov	r7, #0
19301	ldr	r10, .L3169+20
19302	bl	sblk_wait_write_queue_completed
19303	sub	r9, r8, #3072
19304.L3152:
19305	ldrb	r2, [r5, #879]	@ zero_extendqisi2
19306	uxth	r3, r7
19307	cmp	r2, r3
19308	bhi	.L3154
19309	add	r2, r4, #2144
19310	ldr	r1, .L3169+24
19311	ldrh	r3, [r2]
19312	ldrh	r1, [r1, #-8]
19313	add	r3, r3, #1
19314	uxth	r3, r3
19315	cmp	r1, r3
19316	strh	r3, [r2]	@ movhi
19317	bhi	.L3140
19318	mov	r3, #0
19319	strh	r3, [r2]	@ movhi
19320	mov	r2, #3
19321	b	.L3168
19322.L3154:
19323	uxth	r2, r7
19324	add	r3, r4, #2128
19325	add	r3, r3, #14
19326	add	r3, r3, r2, lsl #1
19327	ldrh	r1, [r3, #16]
19328	movw	r3, #65535
19329	cmp	r1, r3
19330	beq	.L3153
19331	add	r3, r4, #2144
19332	ldrh	ip, [r9, #-2]
19333	ldrh	r3, [r3]
19334	mla	ip, r1, ip, r3
19335	ldr	r3, [r6, #4]
19336	str	ip, [r3]
19337	ldr	r3, [r6, #4]
19338	str	r10, [r3, #4]
19339	mov	r3, #0
19340	ldr	r2, [r6, #12]
19341	str	r3, [r2]
19342	ldr	r2, .L3169+8
19343	ldrb	r1, [r2, #1153]	@ zero_extendqisi2
19344	mvn	r2, #0
19345	str	r3, [sp, #4]
19346	ldrb	r3, [r8, #-2546]	@ zero_extendqisi2
19347	rsb	lr, r1, #24
19348	mvn	r1, r2, lsl r1
19349	str	r3, [sp]
19350	and	r0, r1, ip, lsr lr
19351	ldr	r3, [r6, #12]
19352	ldr	r2, [r6, #4]
19353	bic	r1, ip, r1, lsl lr
19354	uxtb	r0, r0
19355	bl	flash_prog_page_en
19356.L3153:
19357	add	r7, r7, #1
19358	b	.L3152
19359.L3146:
19360	add	r10, r4, #2128
19361	mov	r9, #0
19362	add	r10, r10, #14
19363	bl	sblk_wait_write_queue_completed
19364.L3155:
19365	ldrb	r2, [r5, #879]	@ zero_extendqisi2
19366	uxth	r3, r9
19367	cmp	r2, r3
19368	bhi	.L3159
19369	add	r2, r4, #2144
19370	ldrh	r3, [r2]
19371	add	r3, r3, #1
19372	uxth	r3, r3
19373	strh	r3, [r2]	@ movhi
19374	ldr	r2, .L3169+24
19375	ldrh	r2, [r2, #-8]
19376	cmp	r2, r3
19377	bhi	.L3140
19378	movw	r3, #2106
19379	mov	r6, #0
19380	ldr	r0, [r5, #904]
19381	strh	r6, [r4, r3]	@ movhi
19382	bl	zbuf_free
19383	movw	r2, #2108
19384	str	r6, [r5, #904]
19385	ldrh	r3, [r4, r2]
19386	cmp	r3, #15
19387	bhi	.L3160
19388	add	r1, r3, #1
19389	add	r3, r3, #1040
19390	strh	r1, [r4, r2]	@ movhi
19391	movw	r2, #2142
19392	add	r3, r3, #12
19393	ldrh	r2, [r4, r2]
19394	add	r3, r4, r3, lsl #1
19395	strh	r2, [r3, #6]	@ movhi
19396.L3161:
19397	movw	r3, #2108
19398	ldr	r0, .L3169+28
19399	ldrh	r2, [r4, r3]
19400	movw	r3, #2142
19401	ldrh	r1, [r4, r3]
19402	add	sp, sp, #8
19403	@ sp needed
19404	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
19405	b	printk
19406.L3159:
19407	uxth	r7, r9
19408	movw	r2, #65535
19409	add	r7, r7, #8
19410	lsl	r7, r7, #1
19411	ldrh	r3, [r10, r7]
19412	cmp	r3, r2
19413	beq	.L3157
19414	ldr	r2, .L3169+32
19415	mov	r1, #1
19416	mov	r0, r6
19417	ldrh	r8, [r2]
19418	add	r2, r4, #2144
19419	ldrh	r2, [r2]
19420	mla	r8, r3, r8, r2
19421	str	r8, [r6, #24]
19422	bl	sblk_read_page
19423	ldr	r3, [r6, #4]
19424	ldr	r3, [r3]
19425	cmp	r8, r3
19426	beq	.L3157
19427	mov	r0, r8
19428	bl	ftl_mask_bad_block
19429	mvn	r3, #0
19430	strh	r3, [r10, r7]	@ movhi
19431.L3157:
19432	add	r9, r9, #1
19433	b	.L3155
19434.L3160:
19435	movw	r3, #2142
19436	ldrh	r0, [r4, r3]
19437	bl	zftl_insert_free_list
19438	b	.L3161
19439.L3141:
19440	mov	r2, #0
19441	b	.L3166
19442.L3170:
19443	.align	2
19444.L3169:
19445	.word	.LANCHOR0+2824
19446	.word	.LANCHOR0+4096
19447	.word	.LANCHOR0
19448	.word	.LANCHOR3
19449	.word	.LANCHOR0+2788
19450	.word	1437269760
19451	.word	.LANCHOR3-3088
19452	.word	.LC199
19453	.word	.LANCHOR3-3074
19454	.fnend
19455	.size	gc_ink_check_sblk, .-gc_ink_check_sblk
19456	.align	2
19457	.global	ftl_ink_check_sblk
19458	.syntax unified
19459	.arm
19460	.fpu softvfp
19461	.type	ftl_ink_check_sblk, %function
19462ftl_ink_check_sblk:
19463	.fnstart
19464	@ args = 0, pretend = 0, frame = 40
19465	@ frame_needed = 0, uses_anonymous_args = 0
19466	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
19467	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
19468	lsl	r9, r0, #2
19469	ldr	r6, .L3190
19470	mov	r5, r0
19471	mov	r1, r0
19472	.pad #52
19473	sub	sp, sp, #52
19474	ldr	r2, [r6, #1084]
19475	ldr	r3, [r2, r0, lsl #2]
19476	ldrh	r2, [r2, r9]
19477	ldr	r0, .L3190+4
19478	ubfx	r3, r3, #11, #8
19479	ubfx	r2, r2, #0, #11
19480	bl	printk
19481	movw	r3, #65535
19482	cmp	r5, r3
19483	beq	.L3171
19484	movw	r3, #1080
19485	ldrh	r3, [r6, r3]
19486	cmp	r3, r5
19487	bls	.L3171
19488	mov	r1, #0
19489	mov	r0, r5
19490	bl	ftl_erase_sblk
19491	mov	r0, r5
19492	add	r1, sp, #32
19493	strh	r5, [sp, #16]	@ movhi
19494	mov	r8, #0
19495	bl	ftl_get_blk_list_in_sblk
19496	strb	r0, [sp, #25]
19497	mov	r0, #1
19498	bl	buf_alloc
19499	ldr	r3, [r6, #1084]
19500	mov	r4, r0
19501	ldr	r10, .L3190+8
19502	ldr	fp, .L3190+12
19503	ldrh	r3, [r3, r9]
19504	ldrb	r2, [r10, #-2546]	@ zero_extendqisi2
19505	ldr	r0, [r0, #4]
19506	ubfx	r3, r3, #0, #11
19507	cmp	r3, #1
19508	lsl	r2, r2, #9
19509	movle	r1, #85
19510	movgt	r1, #170
19511	bl	ftl_memset
19512	bl	sblk_wait_write_queue_completed
19513.L3175:
19514	ldr	r3, .L3190+16
19515	ldrh	r2, [r3]
19516	uxth	r3, r8
19517	cmp	r2, r3
19518	bls	.L3178
19519	mov	r7, #0
19520	b	.L3179
19521.L3177:
19522	uxth	r3, r7
19523	add	r2, sp, #48
19524	add	r3, r2, r3, lsl #1
19525	ldrh	r1, [r3, #-16]
19526	movw	r3, #65535
19527	cmp	r1, r3
19528	beq	.L3176
19529	ldr	r3, .L3190+20
19530	ldrh	ip, [r3]
19531	uxth	r3, r8
19532	mla	ip, r1, ip, r3
19533	ldr	r3, [r4, #4]
19534	str	ip, [r3]
19535	ldr	r3, [r4, #4]
19536	str	fp, [r3, #4]
19537	mov	r3, #0
19538	ldr	r2, [r4, #12]
19539	str	r3, [r2]
19540	mvn	r2, #0
19541	ldrb	r1, [r6, #1153]	@ zero_extendqisi2
19542	str	r3, [sp, #4]
19543	ldrb	r3, [r10, #-2546]	@ zero_extendqisi2
19544	rsb	lr, r1, #24
19545	mvn	r1, r2, lsl r1
19546	str	r3, [sp]
19547	and	r0, r1, ip, lsr lr
19548	ldr	r3, [r4, #12]
19549	ldr	r2, [r4, #4]
19550	bic	r1, ip, r1, lsl lr
19551	uxtb	r0, r0
19552	bl	flash_prog_page_en
19553.L3176:
19554	add	r7, r7, #1
19555.L3179:
19556	ldrb	r2, [sp, #25]	@ zero_extendqisi2
19557	uxth	r3, r7
19558	cmp	r2, r3
19559	bhi	.L3177
19560	add	r8, r8, #1
19561	b	.L3175
19562.L3178:
19563	mov	r10, #0
19564.L3180:
19565	ldr	r3, .L3190+24
19566	uxth	r2, r10
19567	ldrh	r1, [r3, #-8]
19568	cmp	r1, r2
19569	bls	.L3185
19570	mov	fp, #0
19571	str	r2, [sp, #12]
19572	b	.L3186
19573.L3184:
19574	uxth	r7, fp
19575	add	r3, sp, #48
19576	add	r7, r7, #8
19577	add	r7, r3, r7, lsl #1
19578	movw	r3, #65535
19579	ldrh	r1, [r7, #-32]
19580	cmp	r1, r3
19581	beq	.L3182
19582	ldr	r0, .L3190+20
19583	ldr	r3, [sp, #12]
19584	ldrh	r8, [r0]
19585	mov	r0, r4
19586	mla	r8, r1, r8, r3
19587	mov	r1, #1
19588	str	r8, [r4, #24]
19589	bl	sblk_read_page
19590	ldr	r1, [r4, #4]
19591	ldr	r1, [r1]
19592	cmp	r8, r1
19593	beq	.L3182
19594	mov	r0, r8
19595	bl	ftl_mask_bad_block
19596	mvn	r1, #0
19597	strh	r1, [r7, #-32]	@ movhi
19598.L3182:
19599	add	fp, fp, #1
19600.L3186:
19601	ldrb	r0, [sp, #25]	@ zero_extendqisi2
19602	uxth	r1, fp
19603	cmp	r0, r1
19604	bhi	.L3184
19605	add	r10, r10, #1
19606	b	.L3180
19607.L3185:
19608	mov	r0, r4
19609	bl	zbuf_free
19610	ldr	r2, [r6, #1084]
19611	mov	r1, r5
19612	ldr	r0, .L3190+28
19613	ldr	r3, [r2, r5, lsl #2]
19614	ldrh	r2, [r2, r9]
19615	ubfx	r3, r3, #11, #8
19616	ubfx	r2, r2, #0, #11
19617	bl	printk
19618.L3171:
19619	add	sp, sp, #52
19620	@ sp needed
19621	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
19622.L3191:
19623	.align	2
19624.L3190:
19625	.word	.LANCHOR0
19626	.word	.LC200
19627	.word	.LANCHOR3
19628	.word	1437269760
19629	.word	.LANCHOR3-3096
19630	.word	.LANCHOR3-3074
19631	.word	.LANCHOR3-3088
19632	.word	.LC201
19633	.fnend
19634	.size	ftl_ink_check_sblk, .-ftl_ink_check_sblk
19635	.align	2
19636	.global	ftl_alloc_sblk
19637	.syntax unified
19638	.arm
19639	.fpu softvfp
19640	.type	ftl_alloc_sblk, %function
19641ftl_alloc_sblk:
19642	.fnstart
19643	@ args = 0, pretend = 0, frame = 0
19644	@ frame_needed = 0, uses_anonymous_args = 0
19645	push	{r4, r5, r6, r7, r8, r9, r10, lr}
19646	.save {r4, r5, r6, r7, r8, r9, r10, lr}
19647	uxth	r5, r0
19648	cmp	r0, #5
19649	mov	r9, r0
19650	mov	r1, r5
19651	mov	r0, #0
19652	movne	r8, #0
19653	moveq	r8, #2
19654	bl	zftl_get_free_sblk
19655	movw	r3, #65535
19656	mov	r4, r0
19657	cmp	r0, r3
19658	beq	.L3194
19659	ldr	r6, .L3212
19660	lsl	r7, r0, #2
19661	ldr	r5, [r6, #1084]
19662	add	r5, r5, r7
19663	ldrb	r3, [r5, #2]	@ zero_extendqisi2
19664	tst	r3, #224
19665	beq	.L3195
19666	mov	r2, #1012
19667	ldr	r1, .L3212+4
19668	ldr	r0, .L3212+8
19669	bl	printk
19670	bl	dump_stack
19671.L3195:
19672	ldrb	r3, [r5, #2]	@ zero_extendqisi2
19673	bfi	r3, r9, #5, #3
19674	uxtb	r3, r3
19675	ubfx	r2, r3, #3, #2
19676	orr	r2, r8, r2
19677	bfi	r3, r2, #3, #2
19678	clz	r2, r8
19679	strb	r3, [r5, #2]
19680	uxtb	r3, r3
19681	lsr	r2, r2, #5
19682	and	r1, r3, #24
19683	cmp	r1, #24
19684	cmpeq	r8, #0
19685	moveq	r1, #1
19686	bfieq	r3, r1, #3, #2
19687	strbeq	r3, [r5, #2]
19688	ldr	r3, [r6, #2800]
19689	ldrh	r3, [r3, #150]
19690	cmp	r3, #0
19691	beq	.L3197
19692	ldr	r3, [r6, #1084]
19693	ldrh	r3, [r3, r7]
19694	ubfx	r3, r3, #0, #11
19695	cmp	r3, #0
19696	movne	r2, #0
19697	andeq	r2, r2, #1
19698	cmp	r2, #0
19699	beq	.L3197
19700	mov	r0, r4
19701	bl	ftl_ink_check_sblk
19702.L3197:
19703	mov	r0, r4
19704	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
19705.L3194:
19706	bl	print_ftl_debug_info
19707	mov	r2, r9
19708	mov	r1, r4
19709	ldr	r0, .L3212+12
19710	bl	printk
19711	mov	r1, r5
19712	mov	r0, #0
19713	bl	zftl_get_free_sblk
19714	mov	r2, r9
19715	mov	r1, r0
19716	mov	r4, r0
19717	ldr	r0, .L3212+12
19718	bl	printk
19719	bl	dump_all_list_info
19720	movw	r2, #1031
19721	ldr	r1, .L3212+4
19722	ldr	r0, .L3212+8
19723	bl	printk
19724	bl	dump_stack
19725	b	.L3197
19726.L3213:
19727	.align	2
19728.L3212:
19729	.word	.LANCHOR0
19730	.word	.LANCHOR1+2201
19731	.word	.LC0
19732	.word	.LC202
19733	.fnend
19734	.size	ftl_alloc_sblk, .-ftl_alloc_sblk
19735	.align	2
19736	.global	ftl_open_sblk_init
19737	.syntax unified
19738	.arm
19739	.fpu softvfp
19740	.type	ftl_open_sblk_init, %function
19741ftl_open_sblk_init:
19742	.fnstart
19743	@ args = 0, pretend = 0, frame = 0
19744	@ frame_needed = 0, uses_anonymous_args = 0
19745	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
19746	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
19747	mov	r4, r0
19748	ldr	r5, .L3222
19749	mov	r6, r1
19750	mov	r7, #0
19751	sub	r8, r5, #3088
19752.L3215:
19753	movw	r10, #65535
19754.L3216:
19755	mov	r0, r6
19756	bl	ftl_alloc_sblk
19757	cmp	r0, r10
19758	mov	r9, r0
19759	beq	.L3216
19760	mov	r1, #0
19761	ldr	fp, .L3222+4
19762	bl	ftl_erase_sblk
19763	add	r1, r4, #16
19764	mov	r0, r9
19765	bl	ftl_get_blk_list_in_sblk
19766	strh	r9, [r4]	@ movhi
19767	cmp	r6, #2
19768	ldrh	r2, [r8, #-8]
19769	uxtb	r0, r0
19770	ldrbne	r3, [r5, #-3127]	@ zero_extendqisi2
19771	moveq	r3, #0
19772	ldrb	r1, [r5, #-3127]	@ zero_extendqisi2
19773	lsl	r10, r9, #1
19774	strb	r0, [r4, #9]
19775	smulbb	r0, r0, r2
19776	strh	r7, [r4, #2]	@ movhi
19777	smulbbne	r3, r3, r2
19778	strb	r7, [r4, #5]
19779	mul	r2, r2, r1
19780	strh	r7, [r4, #10]	@ movhi
19781	strh	r0, [r4, #6]	@ movhi
19782	mov	r1, #255
19783	ldr	r0, [r5, #-2556]
19784	uxthne	r3, r3
19785	strb	r6, [r4, #4]
19786	strh	r3, [r4, #12]	@ movhi
19787	lsl	r2, r2, #2
19788	add	r0, r0, r3, lsl #2
19789	bl	ftl_memset
19790	ldr	r3, [fp, #1092]
19791	ldrh	r2, [r4, #6]
19792	strh	r2, [r3, r10]	@ movhi
19793	ldrb	r3, [r4, #9]	@ zero_extendqisi2
19794	cmp	r3, #0
19795	popne	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
19796	mov	r1, r9
19797	ldr	r0, .L3222+8
19798	bl	printk
19799	ldr	r3, [fp, #1092]
19800	mvn	r2, #0
19801	strh	r2, [r3, r10]	@ movhi
19802	mov	r3, #7
19803	strb	r3, [r4, #4]
19804	b	.L3215
19805.L3223:
19806	.align	2
19807.L3222:
19808	.word	.LANCHOR3
19809	.word	.LANCHOR0
19810	.word	.LC203
19811	.fnend
19812	.size	ftl_open_sblk_init, .-ftl_open_sblk_init
19813	.align	2
19814	.global	pm_alloc_new_blk
19815	.syntax unified
19816	.arm
19817	.fpu softvfp
19818	.type	pm_alloc_new_blk, %function
19819pm_alloc_new_blk:
19820	.fnstart
19821	@ args = 0, pretend = 0, frame = 0
19822	@ frame_needed = 0, uses_anonymous_args = 0
19823	push	{r0, r1, r4, r5, r6, r7, r8, lr}
19824	.save {r4, r5, r6, r7, r8, lr}
19825	.pad #8
19826	movw	r1, #690
19827	ldr	r4, .L3242
19828	ldr	r7, .L3242+4
19829	ldr	r2, [r4, #2800]
19830	ldrh	r3, [r2, r1]
19831	add	r3, r3, #1
19832	uxth	r3, r3
19833	strh	r3, [r2, r1]	@ movhi
19834	ldrb	r1, [r7, #-3127]	@ zero_extendqisi2
19835	cmp	r1, r3
19836	bls	.L3225
19837	add	r3, r3, #336
19838	lsl	r3, r3, #1
19839	ldrh	r2, [r2, r3]
19840	movw	r3, #65535
19841	cmp	r2, r3
19842	bne	.L3226
19843.L3225:
19844	ldr	r5, .L3242+8
19845	movw	r8, #65535
19846.L3227:
19847	mov	r0, #1
19848	bl	ftl_alloc_sblk
19849	cmp	r0, r8
19850	mov	r6, r0
19851	beq	.L3227
19852	mov	r1, #0
19853	bl	ftl_erase_sblk
19854	ldr	r1, [r4, #2800]
19855	mov	r0, r6
19856	add	r1, r1, #672
19857	bl	ftl_get_blk_list_in_sblk
19858	uxth	r0, r0
19859	cmp	r0, #0
19860	bne	.L3228
19861	mov	r1, r6
19862	mov	r0, r5
19863	bl	printk
19864	ldr	r3, [r4, #1084]
19865	add	r6, r3, r6, lsl #2
19866	ldrb	r3, [r6, #2]	@ zero_extendqisi2
19867	orr	r3, r3, #224
19868	strb	r3, [r6, #2]
19869	b	.L3227
19870.L3228:
19871	ldr	r2, [r4, #2800]
19872	movw	r3, #690
19873	mov	r5, #0
19874	movw	r1, #65535
19875	strh	r5, [r2, r3]	@ movhi
19876	add	r2, r2, #416
19877	mov	r3, #1
19878	str	r3, [r7, #-36]
19879.L3230:
19880	ldrh	r0, [r2], #2
19881	uxth	r3, r5
19882	cmp	r0, r1
19883	beq	.L3229
19884	add	r5, r5, #1
19885	cmp	r5, #128
19886	bne	.L3230
19887	mov	r2, #264
19888	ldr	r1, .L3242+12
19889	ldr	r0, .L3242+16
19890	bl	printk
19891	bl	dump_stack
19892	mov	r3, r5
19893.L3229:
19894	ldr	r2, [r4, #2800]
19895	add	r3, r3, #208
19896	lsl	r3, r3, #1
19897	strh	r6, [r2, r3]	@ movhi
19898	add	r3, r2, #688
19899	ldrh	r2, [r3]
19900	add	r2, r2, #1
19901	strh	r2, [r3]	@ movhi
19902.L3226:
19903	ldr	r2, [r4, #2800]
19904	movw	r3, #690
19905	ldrh	r3, [r2, r3]
19906	add	r3, r3, #336
19907	lsl	r3, r3, #1
19908	ldrh	r5, [r2, r3]
19909	movw	r2, #65533
19910	sub	r3, r5, #1
19911	uxth	r3, r3
19912	cmp	r3, r2
19913	bls	.L3232
19914	movw	r2, #270
19915	ldr	r1, .L3242+12
19916	ldr	r0, .L3242+16
19917	bl	printk
19918	bl	dump_stack
19919.L3232:
19920	ldr	r1, [r4, #2800]
19921	mov	r2, #0
19922	movw	r0, #694
19923	add	r3, r1, #696
19924	strh	r2, [r3]	@ movhi
19925	ldr	r3, .L3242+20
19926	ldrb	r2, [r4, #1153]	@ zero_extendqisi2
19927	ldrh	r3, [r3, #-2]
19928	rsb	r2, r2, #24
19929	sub	r2, r2, r3
19930	asr	r3, r5, r2
19931	strh	r3, [r1, r0]	@ movhi
19932	add	r1, r1, #692
19933	strh	r5, [r1]	@ movhi
19934	ldr	r1, .L3242+24
19935	ldr	r1, [r1]
19936	tst	r1, #4096
19937	beq	.L3236
19938	uxth	r3, r3
19939	mvn	r1, #0
19940	mvn	r2, r1, lsl r2
19941	ldr	r0, .L3242+28
19942	str	r3, [sp]
19943	mov	r1, r5
19944	mov	r3, r5
19945	bl	printk
19946.L3236:
19947	mov	r0, #0
19948	add	sp, sp, #8
19949	@ sp needed
19950	pop	{r4, r5, r6, r7, r8, pc}
19951.L3243:
19952	.align	2
19953.L3242:
19954	.word	.LANCHOR0
19955	.word	.LANCHOR3
19956	.word	.LC203
19957	.word	.LANCHOR1+2216
19958	.word	.LC0
19959	.word	.LANCHOR3-3136
19960	.word	.LANCHOR2
19961	.word	.LC204
19962	.fnend
19963	.size	pm_alloc_new_blk, .-pm_alloc_new_blk
19964	.align	2
19965	.global	pm_write_page
19966	.syntax unified
19967	.arm
19968	.fpu softvfp
19969	.type	pm_write_page, %function
19970pm_write_page:
19971	.fnstart
19972	@ args = 0, pretend = 0, frame = 0
19973	@ frame_needed = 0, uses_anonymous_args = 0
19974	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
19975	.save {r4, r5, r6, r7, r8, r9, r10, lr}
19976	.pad #8
19977	mov	r5, r0
19978	ldr	r9, .L3258
19979	mov	r8, r1
19980	mov	r7, r9
19981.L3245:
19982	ldr	r3, [r9, #2800]
19983	ldr	r2, [r3, #48]
19984	add	r2, r2, #1
19985	str	r2, [r3, #48]
19986	add	r2, r3, #696
19987	ldrh	r1, [r2]
19988	ldr	r2, .L3258+4
19989	ldrh	r2, [r2]
19990	cmp	r1, r2
19991	bcs	.L3246
19992	add	r3, r3, #692
19993	ldrh	r2, [r3]
19994	movw	r3, #65535
19995	cmp	r2, r3
19996	bne	.L3247
19997.L3246:
19998	bl	pm_alloc_new_blk
19999	mov	r0, #0
20000	bl	ftl_info_flush
20001.L3247:
20002	ldr	r3, [r7, #2800]
20003	add	r3, r3, #692
20004	ldrh	r2, [r3]
20005	movw	r3, #65535
20006	cmp	r2, r3
20007	bne	.L3248
20008	movw	r2, #303
20009	ldr	r1, .L3258+8
20010	ldr	r0, .L3258+12
20011	bl	printk
20012	bl	dump_stack
20013.L3248:
20014	ldr	r3, [r7, #2800]
20015	mov	r1, #0
20016	ldr	r4, .L3258+16
20017	add	r2, r3, #692
20018	add	r3, r3, #696
20019	ldrh	r6, [r2]
20020	sub	r2, r4, #3072
20021	ldrh	r2, [r2, #-2]
20022	ldrh	r3, [r3]
20023	ldr	r0, [r4, #-32]
20024	mla	r6, r2, r6, r3
20025	mov	r2, #64
20026	bl	ftl_memset
20027	ldr	r3, [r4, #-32]
20028	mov	r0, r8
20029	str	r5, [r3]
20030	ldr	r3, [r7, #2800]
20031	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
20032	ldr	r10, [r4, #-32]
20033	ldr	r3, [r3, #48]
20034	lsl	r1, r1, #9
20035	str	r3, [r10, #4]
20036	bl	js_hash
20037	ldr	r3, [r7, #2800]
20038	mov	r2, r8
20039	str	r0, [r10, #8]
20040	mov	r1, r6
20041	ldrb	r0, [r3, #694]	@ zero_extendqisi2
20042	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
20043	str	r3, [sp]
20044	ldr	r3, [r4, #-32]
20045	bl	ftl_prog_page
20046	ldr	r2, [r7, #2800]
20047	add	r1, r2, #696
20048	ldrh	r3, [r1]
20049	add	r3, r3, #1
20050	uxth	r3, r3
20051	cmp	r3, #1
20052	strh	r3, [r1]	@ movhi
20053	beq	.L3249
20054	ldrb	r3, [r4, #-28]	@ zero_extendqisi2
20055	cmp	r3, #0
20056	beq	.L3250
20057.L3249:
20058	mov	r3, #0
20059	strb	r3, [r4, #-28]
20060	b	.L3245
20061.L3250:
20062	cmn	r0, #1
20063	bne	.L3252
20064	mov	r1, r6
20065	ldr	r0, .L3258+20
20066	bl	printk
20067	b	.L3245
20068.L3252:
20069	movw	r3, #698
20070	mov	r0, #0
20071	ldrh	r3, [r2, r3]
20072	cmp	r5, r3
20073	addcc	r5, r5, #176
20074	strcc	r6, [r2, r5, lsl #2]
20075	add	sp, sp, #8
20076	@ sp needed
20077	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
20078.L3259:
20079	.align	2
20080.L3258:
20081	.word	.LANCHOR0
20082	.word	.LANCHOR3-3096
20083	.word	.LANCHOR1+2233
20084	.word	.LC0
20085	.word	.LANCHOR3
20086	.word	.LC205
20087	.fnend
20088	.size	pm_write_page, .-pm_write_page
20089	.align	2
20090	.global	flash_info_flush
20091	.syntax unified
20092	.arm
20093	.fpu softvfp
20094	.type	flash_info_flush, %function
20095flash_info_flush:
20096	.fnstart
20097	@ args = 0, pretend = 0, frame = 8
20098	@ frame_needed = 0, uses_anonymous_args = 0
20099	ldr	r3, .L3273
20100	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
20101	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20102	.pad #20
20103	sub	sp, sp, #20
20104	ldr	r3, [r3]
20105	tst	r3, #4096
20106	beq	.L3261
20107	ldr	r2, .L3273+4
20108	movw	r1, #365
20109	ldr	r0, .L3273+8
20110	bl	printk
20111.L3261:
20112	ldr	r4, .L3273+12
20113	mov	r2, #64
20114	ldr	r5, .L3273+16
20115	mov	r1, #0
20116	ldr	r9, .L3273+20
20117	mov	r7, #0
20118	ldr	r0, [r4, #-24]
20119	mov	r10, r7
20120	bl	ftl_memset
20121	mov	r3, #16
20122	mov	r2, #4
20123	ldr	r1, [r5, #1040]
20124	ldr	r0, .L3273+24
20125	bl	rknand_print_hex
20126	ldr	r8, .L3273+28
20127	ldr	r6, [r5, #1040]
20128	ldr	r1, [r6, #8]
20129	add	r0, r6, #16
20130	bl	js_hash
20131	str	r0, [r6, #12]
20132.L3262:
20133	ldrb	r6, [r4, #-20]	@ zero_extendqisi2
20134	mov	r0, r9
20135	ldrh	fp, [r4, #-18]
20136	ldrh	r3, [r5, #2]
20137	mov	r1, r6
20138	mov	r2, fp
20139	str	r3, [sp, #12]
20140	bl	printk
20141	ldrh	r2, [r4, #-224]
20142	ldrh	r0, [r4, #-18]
20143	ldr	r3, [sp, #12]
20144	sub	r2, r2, #1
20145	cmp	r0, r2
20146	blt	.L3263
20147	ldr	r6, [r5, #1040]
20148	ldrb	r2, [r4, #-19]	@ zero_extendqisi2
20149	strh	r10, [r4, #-18]	@ movhi
20150	ldr	r3, [r6, #4]
20151	mov	r0, r6
20152	add	r3, r3, #1
20153	str	r3, [r6, #4]
20154	ldrb	r3, [r4, #-20]	@ zero_extendqisi2
20155	strb	r2, [r4, #-20]
20156	strb	r3, [r4, #-19]
20157	ldrh	r3, [r6, #16]
20158	add	r3, r3, #1
20159	strh	r3, [r0, #16]!	@ movhi
20160	ldr	r1, [r6, #8]
20161	bl	js_hash
20162	ldrb	r3, [r4, #-20]	@ zero_extendqisi2
20163	str	r0, [r6, #12]
20164	mov	r0, #0
20165	ldrh	r6, [r5, #2]
20166	mul	r6, r6, r3
20167	mov	r1, r6
20168.L3272:
20169	bl	flash_erase_block
20170.L3264:
20171	ldr	r2, [r5, #1040]
20172	mov	fp, #1
20173	ldr	r3, [r4, #-24]
20174	mov	r1, r6
20175	mov	r0, #0
20176	ldr	r2, [r2, #4]
20177	str	r2, [r3]
20178	mov	r2, #4
20179	ldr	r3, [r4, #-24]
20180	str	r8, [r3, #4]
20181	stm	sp, {r2, fp}
20182	ldr	r2, [r5, #1040]
20183	bl	flash_prog_page_en
20184	ldrh	r3, [r4, #-18]
20185	cmn	r0, #1
20186	add	r3, r3, fp
20187	strh	r3, [r4, #-18]	@ movhi
20188	bne	.L3265
20189	mov	r1, r6
20190	ldr	r0, .L3273+32
20191	bl	printk
20192	b	.L3262
20193.L3267:
20194	mov	r7, fp
20195	b	.L3262
20196.L3263:
20197	cmp	r0, #0
20198	mla	r6, r6, r3, fp
20199	bne	.L3264
20200	mov	r1, r6
20201	b	.L3272
20202.L3265:
20203	cmp	r7, #0
20204	beq	.L3267
20205	mov	r0, #0
20206	add	sp, sp, #20
20207	@ sp needed
20208	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
20209.L3274:
20210	.align	2
20211.L3273:
20212	.word	.LANCHOR2
20213	.word	.LANCHOR1+2247
20214	.word	.LC135
20215	.word	.LANCHOR3
20216	.word	.LANCHOR0
20217	.word	.LC207
20218	.word	.LC206
20219	.word	1398362953
20220	.word	.LC208
20221	.fnend
20222	.size	flash_info_flush, .-flash_info_flush
20223	.align	2
20224	.global	flash_info_blk_init
20225	.syntax unified
20226	.arm
20227	.fpu softvfp
20228	.type	flash_info_blk_init, %function
20229flash_info_blk_init:
20230	.fnstart
20231	@ args = 0, pretend = 0, frame = 0
20232	@ frame_needed = 0, uses_anonymous_args = 0
20233	ldr	r3, .L3307
20234	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20235	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20236	.pad #12
20237	ldr	r4, .L3307+4
20238	ldr	r3, [r3]
20239	tst	r3, #4096
20240	beq	.L3276
20241	ldr	r3, [r4, #1040]
20242	mov	r1, #50
20243	ldr	r2, .L3307+8
20244	ldr	r0, .L3307+12
20245	str	r3, [sp]
20246	mov	r3, #2048
20247	bl	printk
20248.L3276:
20249	ldr	r5, .L3307+16
20250	mov	r7, #4
20251	ldr	r8, .L3307+20
20252.L3280:
20253	mov	r6, #0
20254.L3279:
20255	ldrh	r1, [r4, #2]
20256	mov	r9, #4
20257	str	r9, [sp]
20258	mov	r0, #0
20259	ldr	r3, [r5, #-24]
20260	ldr	r2, [r4, #1040]
20261	mla	r1, r7, r1, r6
20262	bl	flash_read_page_en
20263	cmn	r0, #1
20264	beq	.L3277
20265	ldr	r2, [r4, #1040]
20266	ldr	r3, [r2]
20267	cmp	r3, r8
20268	beq	.L3278
20269.L3277:
20270	add	r6, r6, #1
20271	cmp	r6, #4
20272	bne	.L3279
20273	add	r7, r7, #1
20274	cmp	r7, #16
20275	bne	.L3280
20276.L3306:
20277	mvn	r0, #0
20278.L3275:
20279	add	sp, sp, #12
20280	@ sp needed
20281	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
20282.L3287:
20283	str	r9, [sp]
20284	sub	r1, r10, r7
20285	ldr	r3, [r5, #-24]
20286	mov	r0, #0
20287	ldr	r2, [r4, #1040]
20288	bl	flash_read_page_en
20289	cmn	r0, #1
20290	beq	.L3285
20291	ldr	r3, [r4, #1040]
20292	ldr	r3, [r3]
20293	cmp	r3, r8
20294	beq	.L3286
20295.L3285:
20296	add	r7, r7, #1
20297	b	.L3284
20298.L3286:
20299	cmp	r7, #1
20300	bls	.L3290
20301	bl	flash_info_flush
20302.L3290:
20303	mov	r0, #0
20304	b	.L3275
20305.L3278:
20306	ldrb	r1, [r2, #36]	@ zero_extendqisi2
20307	ldrh	r0, [r4, #2]
20308	ldrb	r3, [r2, #37]	@ zero_extendqisi2
20309	strb	r1, [r5, #-20]
20310	str	r9, [sp]
20311	strb	r3, [r5, #-19]
20312	mul	r1, r1, r0
20313	ldr	r3, [r5, #-24]
20314	mov	r0, #0
20315	bl	flash_read_page_en
20316	cmn	r0, #1
20317	beq	.L3289
20318	ldr	r3, [r4, #1040]
20319	ldr	r2, [r3]
20320	cmp	r2, r8
20321	ldreq	r6, [r3, #4]
20322	beq	.L3282
20323.L3289:
20324	mov	r6, #0
20325.L3282:
20326	ldrh	r0, [r4, #2]
20327	mov	r3, #4
20328	ldrb	r1, [r5, #-19]	@ zero_extendqisi2
20329	str	r3, [sp]
20330	ldr	r2, [r4, #1040]
20331	ldr	r3, [r5, #-24]
20332	mul	r1, r0, r1
20333	mov	r0, #0
20334	bl	flash_read_page_en
20335	cmn	r0, #1
20336	beq	.L3283
20337	ldr	r3, [r4, #1040]
20338	ldr	r2, [r3]
20339	cmp	r2, r8
20340	bne	.L3283
20341	ldr	r2, [r3, #4]
20342	cmp	r6, r2
20343	ldrbcc	r2, [r3, #37]	@ zero_extendqisi2
20344	ldrbcc	r3, [r3, #36]	@ zero_extendqisi2
20345	strbcc	r2, [r5, #-20]
20346	strbcc	r3, [r5, #-19]
20347.L3283:
20348	mov	r9, #4
20349	ldr	r3, [r5, #-24]
20350	ldrb	r1, [r5, #-20]	@ zero_extendqisi2
20351	mov	r0, #0
20352	str	r9, [sp]
20353	mov	r7, #0
20354	ldr	r2, [r4, #1040]
20355	bl	flash_get_last_written_page
20356	uxth	fp, r0
20357	ldrb	r10, [r5, #-20]	@ zero_extendqisi2
20358	add	r3, fp, #1
20359	strh	r3, [r5, #-18]	@ movhi
20360	ldrh	r3, [r4, #2]
20361	mla	r10, r3, r10, r0
20362.L3284:
20363	sub	r0, fp, r7
20364	sxth	r6, r0
20365	cmp	r6, #0
20366	bge	.L3287
20367	cmn	r6, #1
20368	bne	.L3286
20369	ldr	r3, [r4, #1040]
20370	ldr	r0, .L3307+24
20371	ldr	r1, [r3]
20372	bl	printk
20373	b	.L3306
20374.L3308:
20375	.align	2
20376.L3307:
20377	.word	.LANCHOR2
20378	.word	.LANCHOR0
20379	.word	.LANCHOR1+2264
20380	.word	.LC209
20381	.word	.LANCHOR3
20382	.word	1398362953
20383	.word	.LC210
20384	.fnend
20385	.size	flash_info_blk_init, .-flash_info_blk_init
20386	.align	2
20387	.global	nand_flash_init
20388	.syntax unified
20389	.arm
20390	.fpu softvfp
20391	.type	nand_flash_init, %function
20392nand_flash_init:
20393	.fnstart
20394	@ args = 0, pretend = 0, frame = 0
20395	@ frame_needed = 0, uses_anonymous_args = 0
20396	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20397	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20398	mov	r4, r0
20399	ldr	r6, .L3395
20400	ldr	r3, [r6]
20401	tst	r3, #4096
20402	beq	.L3310
20403	ldr	r2, .L3395+4
20404	movw	r1, #3450
20405	ldr	r0, .L3395+8
20406	bl	printk
20407.L3310:
20408	ldr	r5, .L3395+12
20409	mov	r7, #0
20410	mov	r0, r4
20411	ldr	r4, .L3395+16
20412	ldr	r9, .L3395+20
20413	mov	fp, #44
20414	str	r7, [r5, #-104]
20415	bl	nandc_init
20416	ldr	r3, .L3395+24
20417	mov	r2, #8
20418	mov	r1, r7
20419	ldr	r0, .L3395+28
20420	mov	r10, r9
20421	str	r3, [r4, #1104]
20422	mov	r3, #1
20423	strb	r3, [r4, #1109]
20424	mov	r3, #3
20425	strb	r3, [r4, #1153]
20426	bl	ftl_memset
20427	mov	r2, #32
20428	mov	r1, r7
20429	sub	r0, r5, #220
20430	bl	ftl_memset
20431.L3316:
20432	lsl	r8, r7, #3
20433	uxtb	r0, r7
20434	add	r1, r9, r8
20435	bl	flash_read_id
20436	cmp	r7, #0
20437	bne	.L3311
20438	ldrb	r3, [r4, #1160]	@ zero_extendqisi2
20439	sub	r3, r3, #1
20440	uxtb	r3, r3
20441	cmp	r3, #253
20442	bls	.L3312
20443.L3314:
20444	mvn	r7, #1
20445.L3309:
20446	mov	r0, r7
20447	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
20448.L3312:
20449	ldrb	r3, [r4, #1161]	@ zero_extendqisi2
20450	cmp	r3, #255
20451	beq	.L3314
20452.L3311:
20453	ldrb	r3, [r8, r10]	@ zero_extendqisi2
20454	add	r7, r7, #1
20455	cmp	r3, #181
20456	strbeq	fp, [r8, r10]
20457	cmp	r7, #4
20458	bne	.L3316
20459	ldr	r9, .L3395+32
20460	mov	r7, #0
20461	ldr	r10, .L3395+20
20462.L3319:
20463	lsl	r8, r7, #5
20464	ldrb	r2, [r9, r7, lsl #5]	@ zero_extendqisi2
20465	mov	r1, r10
20466	add	r0, r8, #1
20467	add	r0, r9, r0
20468	bl	flash_mem_cmp8
20469	cmp	r0, #0
20470	bne	.L3317
20471	add	r9, r9, r8
20472	ldr	r3, .L3395+36
20473	add	r8, r6, r8
20474	ldrb	r2, [r8, #440]	@ zero_extendqisi2
20475	mov	r1, r3
20476.L3318:
20477	ldrb	ip, [r3, r0, lsl #5]	@ zero_extendqisi2
20478	cmp	ip, r2
20479	beq	.L3320
20480	add	r0, r0, #1
20481	cmp	r0, #4
20482	bne	.L3318
20483.L3320:
20484	add	r1, r1, r0, lsl #5
20485	mov	r2, #32
20486	ldr	r0, .L3395+40
20487	bl	ftl_memcpy
20488	mov	r2, #32
20489	mov	r1, r9
20490	ldr	r0, .L3395+24
20491	bl	ftl_memcpy
20492	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
20493	cmp	r3, #8
20494	bhi	.L3321
20495	ldrb	r2, [r6, #24]	@ zero_extendqisi2
20496	cmp	r2, #60
20497	movhi	r2, #60
20498	strbhi	r2, [r6, #24]
20499	cmp	r3, #6
20500	beq	.L3314
20501.L3321:
20502	ldr	r3, [r6]
20503	tst	r3, #4096
20504	beq	.L3323
20505	ldr	r2, .L3395+4
20506	movw	r1, #3480
20507	ldr	r0, .L3395+8
20508	bl	printk
20509.L3323:
20510	ldr	r3, [r4, #1104]
20511	mov	r0, #16384
20512	mov	r7, #0
20513	ldrh	r3, [r3, #10]
20514	cmp	r3, #1024
20515	movcs	r3, #2
20516	strbcs	r3, [r4, #1153]
20517	bl	ftl_malloc
20518	str	r0, [r5, #-92]
20519	mov	r0, #16384
20520	bl	ftl_malloc
20521	str	r0, [r5, #-120]
20522	mov	r0, #2048
20523	bl	ftl_dma32_malloc
20524	str	r0, [r4, #1040]
20525	mov	r0, #64
20526	bl	ftl_dma32_malloc
20527	str	r0, [r5, #-96]
20528	mov	r0, #64
20529	bl	ftl_dma32_malloc
20530	str	r0, [r5, #-112]
20531	mov	r0, #64
20532	bl	ftl_dma32_malloc
20533	strb	r7, [r5, #-16]
20534	str	r0, [r5, #-24]
20535	bl	flash_die_info_init
20536	ldrb	r0, [r6, #22]	@ zero_extendqisi2
20537	bl	flash_lsb_page_tbl_build
20538	ldrb	r0, [r6, #24]	@ zero_extendqisi2
20539	bl	nandc_bch_sel
20540	ldr	r1, [r4, #1104]
20541	str	r7, [r5, #-100]
20542	ldrh	r3, [r1, #16]
20543	ubfx	r2, r3, #8, #3
20544	strb	r2, [r4, #1192]
20545	ubfx	r2, r3, #3, #1
20546	strb	r2, [r5, #-80]
20547	ubfx	r2, r3, #4, #1
20548	strb	r2, [r4, #1194]
20549	ubfx	r2, r3, #12, #1
20550	strb	r2, [r5, #-3120]
20551	ubfx	r2, r3, #13, #1
20552	strb	r2, [r5, #-3126]
20553	ubfx	r2, r3, #11, #1
20554	strb	r2, [r4, #1158]
20555	ldrb	r2, [r1, #31]	@ zero_extendqisi2
20556	ldrb	r1, [r1, #28]	@ zero_extendqisi2
20557	ubfx	r0, r2, #1, #1
20558	strb	r0, [r5, #-2542]
20559	ubfx	r0, r2, #2, #1
20560	strb	r0, [r5, #-15]
20561	ubfx	r0, r3, #14, #1
20562	lsr	r3, r3, #15
20563	strb	r0, [r4, #1]
20564	strb	r1, [r4]
20565	strb	r3, [r5, #-3125]
20566	ubfx	r3, r2, #3, #1
20567	strb	r3, [r4, #1152]
20568	mov	r3, #60
20569	strb	r3, [r4, #1108]
20570	ubfx	r2, r2, #4, #1
20571	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
20572	strb	r2, [r4, #1159]
20573	strb	r1, [r4, #1110]
20574	cmp	r3, #9
20575	moveq	r2, #70
20576	strbeq	r2, [r4, #1108]
20577	ldrb	r2, [r6, #35]	@ zero_extendqisi2
20578	tst	r2, #1
20579	beq	.L3326
20580	ldrb	r2, [r6, #33]	@ zero_extendqisi2
20581	cmp	r2, #0
20582	movne	r2, #2
20583	moveq	r2, #3
20584	strb	r2, [r4, #1110]
20585.L3326:
20586	cmp	r3, #8
20587	bne	.L3328
20588	ldrb	r3, [r4, #1160]	@ zero_extendqisi2
20589	cmp	r3, #137
20590	cmpne	r3, #44
20591	bne	.L3328
20592	ldrb	r3, [r6, #32]	@ zero_extendqisi2
20593	cmp	r3, #3
20594	moveq	r3, #0
20595	strbeq	r3, [r4, #1110]
20596.L3328:
20597	ldrh	r2, [r6, #20]
20598	ldrb	r3, [r6, #23]	@ zero_extendqisi2
20599	tst	r2, #64
20600	strb	r3, [r4, #1100]
20601	beq	.L3330
20602	sub	r2, r3, #17
20603	cmp	r3, #21
20604	cmpne	r2, #2
20605	bhi	.L3331
20606	cmp	r3, #21
20607	ldr	r2, .L3395+44
20608	movne	r3, #15
20609	moveq	r3, #4
20610	str	r2, [r5, #-100]
20611.L3391:
20612	strb	r3, [r5, #-108]
20613.L3330:
20614	ldr	r3, [r6]
20615	tst	r3, #4096
20616	beq	.L3341
20617	ldr	r2, .L3395+4
20618	movw	r1, #3573
20619	ldr	r0, .L3395+8
20620	bl	printk
20621.L3341:
20622	mov	r3, #0
20623	strb	r3, [r4, #1143]
20624	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
20625	tst	r3, #1
20626	moveq	r0, #4
20627	beq	.L3393
20628	ldrb	r3, [r4, #1160]	@ zero_extendqisi2
20629	cmp	r3, #155
20630	beq	.L3343
20631	mov	r0, #4
20632	bl	flash_set_interface_mode
20633	mov	r0, #4
20634	bl	nandc_set_if_mode
20635.L3343:
20636	mov	r0, #1
20637	bl	flash_set_interface_mode
20638	mov	r0, #1
20639.L3393:
20640	bl	nandc_set_if_mode
20641	bl	flash_info_blk_init
20642	cmn	r0, #1
20643	mov	r7, r0
20644	bne	.L3345
20645	ldr	r3, [r4, #1040]
20646	mov	r2, #17
20647	mov	r0, #0
20648	strb	r0, [r4, #1154]
20649	strb	r2, [r3, #32]
20650	bl	zftl_flash_exit_slc_mode
20651	b	.L3309
20652.L3317:
20653	add	r7, r7, #1
20654	cmp	r7, #49
20655	bne	.L3319
20656	b	.L3314
20657.L3331:
20658	sub	r2, r3, #65
20659	cmp	r3, #33
20660	cmpne	r2, #1
20661	bhi	.L3334
20662	ldr	r3, .L3395+48
20663	str	r3, [r5, #-100]
20664	mov	r3, #4
20665	strb	r3, [r4, #1101]
20666.L3394:
20667	mov	r3, #7
20668	b	.L3391
20669.L3334:
20670	sub	r2, r3, #67
20671	sub	r1, r3, #34
20672	uxtb	r2, r2
20673	cmp	r2, #1
20674	cmphi	r1, #1
20675	movls	r1, #1
20676	movhi	r1, #0
20677	bhi	.L3335
20678	cmp	r3, #68
20679	cmpne	r3, #35
20680	ldr	r1, .L3395+48
20681	movne	r3, #7
20682	moveq	r3, #17
20683	cmp	r2, #1
20684	strb	r3, [r5, #-108]
20685	movls	r3, #4
20686	movhi	r3, #5
20687	str	r1, [r5, #-100]
20688	strb	r3, [r4, #1101]
20689	b	.L3330
20690.L3335:
20691	sub	r2, r3, #36
20692	cmp	r2, #1
20693	ldrls	r3, .L3395+52
20694	strls	r3, [r5, #-100]
20695	bls	.L3394
20696.L3339:
20697	cmp	r3, #50
20698	ldreq	r3, .L3395+56
20699	streq	r3, [r5, #-100]
20700	moveq	r3, #25
20701	beq	.L3391
20702.L3340:
20703	cmp	r3, #81
20704	ldreq	r3, .L3395+60
20705	strbeq	r1, [r4, #1195]
20706	streq	r3, [r5, #-100]
20707	moveq	r3, #7
20708	strbeq	r3, [r5, #-108]
20709	b	.L3330
20710.L3345:
20711	ldrb	r3, [r6, #11]	@ zero_extendqisi2
20712	cmp	r3, #9
20713	bne	.L3346
20714	ldr	r3, [r4, #1040]
20715	ldrb	r3, [r3, #20]	@ zero_extendqisi2
20716	cmp	r3, #1
20717	movne	r3, #0
20718	strbne	r3, [r4, #1110]
20719.L3346:
20720	ldrb	r3, [r4, #1100]	@ zero_extendqisi2
20721	sub	r3, r3, #1
20722	cmp	r3, #7
20723	ldrls	r3, .L3395+64
20724	strls	r3, [r5, #-100]
20725	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
20726	tst	r3, #4
20727	beq	.L3349
20728	ldr	r3, [r4, #1040]
20729	ldrb	r3, [r3, #19]	@ zero_extendqisi2
20730	cmp	r3, #0
20731	beq	.L3349
20732	ldrb	r3, [r5, #-20]	@ zero_extendqisi2
20733	mov	r0, #0
20734	ldrh	r1, [r4, #2]
20735	mul	r1, r1, r3
20736	bl	flash_ddr_para_scan
20737	ldrb	r3, [r4, #1143]	@ zero_extendqisi2
20738	cmp	r3, #0
20739	bne	.L3349
20740	ldr	r2, [r4, #1040]
20741	strb	r3, [r2, #19]
20742	bl	flash_info_flush
20743.L3349:
20744	ldr	r3, [r6]
20745	tst	r3, #4096
20746	beq	.L3351
20747	ldr	r2, .L3395+4
20748	movw	r1, #3676
20749	ldr	r0, .L3395+8
20750	bl	printk
20751.L3351:
20752	bl	nand_flash_print_info
20753	mov	r7, #0
20754	b	.L3309
20755.L3396:
20756	.align	2
20757.L3395:
20758	.word	.LANCHOR2
20759	.word	.LANCHOR1+2284
20760	.word	.LC135
20761	.word	.LANCHOR3
20762	.word	.LANCHOR0
20763	.word	.LANCHOR0+1160
20764	.word	.LANCHOR2+4
20765	.word	.LANCHOR0+1144
20766	.word	.LANCHOR2+418
20767	.word	.LANCHOR2+1986
20768	.word	.LANCHOR0+1111
20769	.word	micron_read_retrial
20770	.word	toshiba_read_retrial
20771	.word	toshiba_3d_read_retrial
20772	.word	samsung_read_retrial
20773	.word	ymtc_3d_read_retrial
20774	.word	hynix_read_retrial
20775	.fnend
20776	.size	nand_flash_init, .-nand_flash_init
20777	.align	2
20778	.global	ftl_sysblk_dump
20779	.syntax unified
20780	.arm
20781	.fpu softvfp
20782	.type	ftl_sysblk_dump, %function
20783ftl_sysblk_dump:
20784	.fnstart
20785	@ args = 0, pretend = 0, frame = 8
20786	@ frame_needed = 0, uses_anonymous_args = 0
20787	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
20788	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20789	mov	r9, r0
20790	.pad #52
20791	sub	sp, sp, #52
20792	mov	r0, #1
20793	mov	r5, #0
20794	ldr	r10, .L3408
20795	mov	r6, r5
20796	bl	buf_alloc
20797	ldr	r3, [r0, #4]
20798	mov	r4, r0
20799	str	r3, [sp, #44]
20800.L3398:
20801	ldr	r3, .L3408+4
20802	ldrh	r2, [r3, #-8]
20803	uxth	r3, r5
20804	cmp	r2, r3
20805	bhi	.L3400
20806	ldr	r1, [sp, #44]
20807	mov	r3, #32
20808	mov	r2, #4
20809	ldr	r0, .L3408+8
20810	add	r1, r1, #704
20811	bl	rknand_print_hex
20812	mov	r0, r4
20813	bl	zbuf_free
20814	cmp	r6, #0
20815	beq	.L3401
20816	movw	r2, #1619
20817	ldr	r1, .L3408+12
20818	ldr	r0, .L3408+16
20819	bl	printk
20820	bl	dump_stack
20821.L3401:
20822	mov	r0, r6
20823	add	sp, sp, #52
20824	@ sp needed
20825	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
20826.L3400:
20827	ldr	r3, .L3408+20
20828	uxth	fp, r5
20829	ldr	r2, [r4, #12]
20830	add	r5, r5, #1
20831	ldr	r1, [r4, #4]
20832	ldrh	r7, [r3]
20833	ldrb	r3, [r10, #-2546]	@ zero_extendqisi2
20834	mla	r7, r9, r7, fp
20835	mov	r0, r7
20836	bl	ftl_read_ppa_page
20837	ldr	r2, [r4, #12]
20838	mov	r8, r0
20839	ldr	r3, [r4, #4]
20840	ldr	r1, [r2, #12]
20841	str	r1, [sp, #32]
20842	ldr	r1, [r2, #8]
20843	str	r1, [sp, #28]
20844	ldr	r1, [r2, #4]
20845	str	r1, [sp, #24]
20846	mov	r1, r9
20847	ldr	r2, [r2]
20848	str	r2, [sp, #20]
20849	ldr	r2, [r3, #12]
20850	str	r2, [sp, #16]
20851	ldr	r2, [r3, #8]
20852	str	r2, [sp, #12]
20853	ldr	r2, [r3, #4]
20854	str	r2, [sp, #8]
20855	mov	r2, fp
20856	ldr	r3, [r3]
20857	str	r0, [sp]
20858	ldr	r0, .L3408+24
20859	str	r3, [sp, #4]
20860	mov	r3, r7
20861	bl	printk
20862	cmn	r8, #1
20863	cmpne	r8, #512
20864	moveq	r6, #1
20865	b	.L3398
20866.L3409:
20867	.align	2
20868.L3408:
20869	.word	.LANCHOR3
20870	.word	.LANCHOR3-3088
20871	.word	.LC211
20872	.word	.LANCHOR1+2300
20873	.word	.LC0
20874	.word	.LANCHOR3-3074
20875	.word	.LC195
20876	.fnend
20877	.size	ftl_sysblk_dump, .-ftl_sysblk_dump
20878	.align	2
20879	.global	ftl_open_sblk_recovery
20880	.syntax unified
20881	.arm
20882	.fpu softvfp
20883	.type	ftl_open_sblk_recovery, %function
20884ftl_open_sblk_recovery:
20885	.fnstart
20886	@ args = 0, pretend = 0, frame = 216
20887	@ frame_needed = 0, uses_anonymous_args = 0
20888	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
20889	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20890	.pad #228
20891	sub	sp, sp, #228
20892	ldr	r5, .L3532
20893	mov	r4, r0
20894	str	r1, [sp, #28]
20895	ldr	r3, [r5]
20896	tst	r3, #4096
20897	beq	.L3411
20898	ldrh	r1, [r0, #2]
20899	ldr	r0, .L3532+4
20900	bl	printk
20901.L3411:
20902	ldr	r3, [r5]
20903	tst	r3, #4096
20904	beq	.L3412
20905	ldrb	r1, [r4, #5]	@ zero_extendqisi2
20906	ldr	r0, .L3532+8
20907	bl	printk
20908.L3412:
20909	ldr	r3, [r5]
20910	tst	r3, #4096
20911	beq	.L3413
20912	ldrh	r1, [r4]
20913	ldr	r0, .L3532+12
20914	bl	printk
20915.L3413:
20916	ldr	r3, [r5]
20917	tst	r3, #4096
20918	beq	.L3414
20919	ldrh	r2, [r4, #18]
20920	ldrh	r1, [r4, #16]
20921	ldr	r0, .L3532+16
20922	bl	printk
20923.L3414:
20924	ldr	r3, [r5]
20925	tst	r3, #4096
20926	beq	.L3415
20927	ldrb	r1, [r4, #9]	@ zero_extendqisi2
20928	ldr	r0, .L3532+20
20929	bl	printk
20930.L3415:
20931	ldrh	r3, [r4, #10]
20932	ldr	r1, .L3532+24
20933	ldrh	r2, [r4]
20934	strh	r3, [r4, #14]	@ movhi
20935	movw	r3, #1080
20936	ldrh	r3, [r1, r3]
20937	cmp	r2, r3
20938	bcs	.L3410
20939	mov	r0, #1
20940	bl	buf_alloc
20941	ldr	r3, .L3532+28
20942	mov	r1, #255
20943	ldr	r2, [r0, #4]
20944	mov	r5, r0
20945	add	r0, sp, #32
20946	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
20947	sub	r3, r3, #2
20948	add	r3, r2, r3, lsl #9
20949	mov	r2, #64
20950	str	r3, [sp, #16]
20951	bl	ftl_memset
20952	mov	r2, #64
20953	mov	r1, #255
20954	add	r0, sp, #96
20955	bl	ftl_memset
20956	mov	r2, #64
20957	mov	r1, #255
20958	add	r0, sp, #160
20959	bl	ftl_memset
20960	ldrb	r10, [r4, #5]	@ zero_extendqisi2
20961	mov	r3, #2
20962	ldrh	r9, [r4, #2]
20963	str	r3, [sp, #12]
20964	mov	r3, #0
20965	str	r3, [sp, #24]
20966.L3417:
20967	ldr	r3, .L3532+32
20968	ldrh	r3, [r3]
20969	cmp	r3, r9
20970	bhi	.L3434
20971.L3420:
20972	ldrh	r3, [r4, #10]
20973	ldr	r1, .L3532+36
20974	ldrh	r2, [r4, #6]
20975	ldrb	r0, [r4, #9]	@ zero_extendqisi2
20976	strh	r9, [r4, #2]	@ movhi
20977	add	r2, r2, r3
20978	ldrh	r3, [r1, #-8]
20979	strb	r10, [r4, #5]
20980	str	r1, [sp, #16]
20981	mul	r3, r3, r0
20982	cmp	r2, r3
20983	beq	.L3435
20984	movw	r2, #1802
20985	ldr	r1, .L3532+40
20986	ldr	r0, .L3532+44
20987	bl	printk
20988	bl	dump_stack
20989.L3435:
20990	ldr	r6, .L3532+28
20991	mov	r7, #0
20992	ldrh	r0, [r4, #10]
20993	mov	r2, r7
20994	ldr	r3, [r6, #-2556]
20995.L3436:
20996	cmp	r2, r0
20997	bcc	.L3438
20998	ldr	r2, [sp, #16]
20999	ldrb	r3, [r4, #9]	@ zero_extendqisi2
21000	ldr	r9, .L3532
21001	ldrh	r2, [r2, #-8]
21002	ldr	r10, .L3532+24
21003	smulbb	r3, r3, r2
21004	sub	r3, r3, r0
21005	add	r7, r7, r3
21006	ldr	r3, [r9]
21007	uxth	r7, r7
21008	tst	r3, #4096
21009	beq	.L3439
21010	ldrh	r1, [r4]
21011	ldr	r2, [r10, #1092]
21012	ldr	r0, .L3532+48
21013	lsl	r3, r1, #1
21014	ldrh	r3, [r2, r3]
21015	mov	r2, r7
21016	bl	printk
21017.L3439:
21018	ldrh	r3, [r4]
21019	ldr	r2, [r10, #1092]
21020	lsl	r3, r3, #1
21021	strh	r7, [r2, r3]	@ movhi
21022	ldr	r3, [r9]
21023	tst	r3, #16384
21024	beq	.L3440
21025	ldr	r3, [sp, #44]
21026	add	r1, sp, #32
21027	ldr	r0, .L3532+52
21028	str	r3, [sp]
21029	ldm	r1, {r1, r2, r3}
21030	bl	printk
21031.L3440:
21032	ldrb	r2, [r6, #-2546]	@ zero_extendqisi2
21033	mov	r8, #0
21034	mov	r1, #0
21035	ldr	r0, [r5, #4]
21036	lsl	r2, r2, #9
21037	bl	ftl_memset
21038.L3441:
21039	ldrb	r3, [r6, #-3127]	@ zero_extendqisi2
21040	ldr	r2, [sp, #12]
21041	mul	r3, r2, r3
21042	cmp	r8, r3
21043	bcc	.L3453
21044	ldr	fp, .L3532+56
21045	mov	r7, #0
21046	add	r8, sp, #32
21047.L3454:
21048	ldrb	r3, [r6, #-3127]	@ zero_extendqisi2
21049	ldr	r2, [sp, #12]
21050	mul	r3, r2, r3
21051	cmp	r7, r3
21052	bcc	.L3460
21053	mov	r0, r5
21054	bl	zbuf_free
21055	ldr	r3, [sp, #16]
21056	ldrh	r2, [r4, #12]
21057	ldrb	r1, [r4, #9]	@ zero_extendqisi2
21058	ldrh	r3, [r3, #-8]
21059	mla	r3, r1, r3, r2
21060	ldr	r2, [r6, #-2556]
21061	sub	r3, r3, #-1073741823
21062	ldr	r3, [r2, r3, lsl #2]
21063	cmn	r3, #1
21064	beq	.L3461
21065	movw	r2, #1917
21066	ldr	r1, .L3532+40
21067	ldr	r0, .L3532+44
21068	bl	printk
21069	bl	dump_stack
21070.L3461:
21071	ldrh	r3, [r4, #6]
21072	cmp	r3, #1
21073	bne	.L3410
21074	mov	r0, r4
21075	bl	ftl_write_last_log_page
21076.L3410:
21077	add	sp, sp, #228
21078	@ sp needed
21079	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
21080.L3434:
21081	ldrb	r10, [r4, #5]	@ zero_extendqisi2
21082	ldr	r6, .L3532+28
21083.L3418:
21084	ldrb	r3, [r4, #9]	@ zero_extendqisi2
21085	cmp	r3, r10
21086	movls	r3, #0
21087	strbls	r3, [r4, #5]
21088	addls	r3, r9, #1
21089	uxthls	r9, r3
21090	bls	.L3417
21091.L3433:
21092	add	r3, r4, r10, lsl #1
21093	ldrh	r8, [r3, #16]
21094	movw	r3, #65535
21095	cmp	r8, r3
21096	beq	.L3419
21097	ldr	r3, .L3532+60
21098	ldr	r2, [r5, #12]
21099	ldr	r1, [r5, #4]
21100	ldrh	r3, [r3, #-2]
21101	mla	r3, r8, r3, r9
21102	str	r3, [sp, #20]
21103	ldr	r0, [sp, #20]
21104	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
21105	bl	ftl_read_ppa_page
21106	cmp	r0, #512
21107	mov	r7, r0
21108	beq	.L3420
21109	cmn	r0, #1
21110	beq	.L3421
21111	ldr	r3, [r5, #12]
21112	ldr	r2, [r3]
21113	cmn	r2, #1
21114	bne	.L3421
21115	ldr	r3, [r3, #4]
21116	cmn	r3, #1
21117	bne	.L3421
21118	ldr	r3, [r5, #4]
21119	ldr	r3, [r3]
21120	cmn	r3, #1
21121	beq	.L3420
21122.L3421:
21123	mov	r3, #1
21124	ldrh	r2, [r4, #10]
21125	strb	r3, [r6, #-47]
21126	ldrb	r3, [r4, #9]	@ zero_extendqisi2
21127	mla	r3, r9, r3, r10
21128	cmp	r2, r3
21129	beq	.L3422
21130	movw	r2, #1694
21131	ldr	r1, .L3532+40
21132	ldr	r0, .L3532+44
21133	bl	printk
21134	bl	dump_stack
21135.L3422:
21136	ldrh	r3, [r4, #10]
21137	ldrh	r2, [r4, #6]
21138	add	r2, r2, r3
21139	ldr	r3, .L3532+32
21140	ldrh	r1, [r3]
21141	ldrb	r3, [r4, #9]	@ zero_extendqisi2
21142	mul	r3, r3, r1
21143	cmp	r2, r3
21144	beq	.L3423
21145	movw	r2, #1695
21146	ldr	r1, .L3532+40
21147	ldr	r0, .L3532+44
21148	bl	printk
21149	bl	dump_stack
21150.L3423:
21151	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
21152	cmp	r3, #8
21153	bls	.L3424
21154	ldr	r3, [r5, #12]
21155	ldr	r1, .L3532+64
21156	ldr	r2, [r3]
21157	cmp	r2, r1
21158	beq	.L3424
21159	cmn	r7, #1
21160	beq	.L3426
21161	ldr	r2, [r3, #4]
21162	cmn	r2, #1
21163	bne	.L3427
21164.L3430:
21165	ldr	r3, [r5, #12]
21166	ldr	r0, [r3, #4]
21167	cmn	r0, #1
21168	bne	.L3428
21169.L3426:
21170	ldrh	r3, [r4, #6]
21171	sub	r3, r3, #1
21172	strh	r3, [r4, #6]	@ movhi
21173	ldrh	r3, [r4, #10]
21174	add	r3, r3, #1
21175	strh	r3, [r4, #10]	@ movhi
21176	mov	r3, #4
21177	str	r3, [sp, #12]
21178	mov	r3, #1
21179	str	r3, [sp, #24]
21180.L3419:
21181	add	r3, r10, #1
21182	uxth	r10, r3
21183	b	.L3418
21184.L3427:
21185	ldr	r2, [r3, #16]
21186	ldr	r1, .L3532+68
21187	cmp	r2, r1
21188	bne	.L3430
21189	ldr	fp, [r3, #20]
21190	mov	r1, #1024
21191	ldr	r0, [sp, #16]
21192	bl	js_hash
21193	cmp	fp, r0
21194	beq	.L3430
21195	mov	r1, #1024
21196	ldr	r0, [sp, #16]
21197	bl	js_hash
21198	mov	r2, r9
21199	mov	r1, r8
21200	str	r0, [sp, #4]
21201	str	r7, [sp]
21202	ldr	r3, [sp, #20]
21203	ldr	r0, .L3532+72
21204	bl	printk
21205	mov	r3, #16
21206	mov	r2, #4
21207	ldr	r1, [sp, #16]
21208	ldr	r0, .L3532+76
21209	bl	rknand_print_hex
21210	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
21211	mov	r2, #4
21212	ldr	r1, [r5, #12]
21213	ldr	r0, .L3532+80
21214	lsr	r3, r3, #1
21215	bl	rknand_print_hex
21216	b	.L3426
21217.L3424:
21218	cmn	r7, #1
21219	bne	.L3430
21220	b	.L3426
21221.L3428:
21222	ldr	r3, [r3]
21223	ldr	r2, .L3532+64
21224	cmp	r3, r2
21225	beq	.L3426
21226	bl	lpa_hash_get_ppa
21227	ldr	r3, [sp, #28]
21228	mov	r8, r0
21229	cmp	r3, #0
21230	beq	.L3431
21231	ldr	fp, [r5, #12]
21232	ldr	r3, [fp, #8]
21233	cmp	r3, r0
21234	cmnne	r0, #1
21235	beq	.L3431
21236	ldr	r3, .L3532+84
21237	mov	r7, #1
21238	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
21239	ldrh	r0, [r3]
21240	ldr	r3, .L3532+24
21241	ldrb	r3, [r3, #1153]	@ zero_extendqisi2
21242	rsb	r3, r3, #24
21243	sub	r3, r3, r0
21244	lsl	r3, r7, r3
21245	sub	r3, r3, #1
21246	and	r0, r3, r8, lsr r0
21247	bl	__aeabi_uidiv
21248	ldr	r3, [sp, #28]
21249	uxth	r0, r0
21250	ldrh	r3, [r3]
21251	cmp	r3, r0
21252	bne	.L3431
21253	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
21254	mov	r0, r8
21255	ldr	r2, [r6, #-76]
21256	ldr	r1, [r5, #4]
21257	ldr	fp, [fp]
21258	bl	ftl_read_ppa_page
21259	ldr	r3, [r6, #-76]
21260	ldr	r3, [r3]
21261	cmp	fp, r3
21262	bhi	.L3431
21263	ldr	r3, [r5, #12]
21264	ldr	r0, [r3, #8]
21265	cmn	r0, #1
21266	beq	.L3426
21267	ldr	r3, .L3532+84
21268	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
21269	ldrh	r2, [r3]
21270	ldr	r3, .L3532+24
21271	ldrb	r3, [r3, #1153]	@ zero_extendqisi2
21272	rsb	r3, r3, #24
21273	sub	r3, r3, r2
21274	lsl	r7, r7, r3
21275	sub	r7, r7, #1
21276	and	r0, r7, r0, lsr r2
21277	bl	__aeabi_uidiv
21278	uxth	r0, r0
21279	bl	ftl_vpn_decrement
21280	b	.L3426
21281.L3438:
21282	ldrh	r1, [r4, #12]
21283	add	r1, r1, r2
21284	add	r2, r2, #1
21285	ldr	r1, [r3, r1, lsl #2]
21286	cmn	r1, #1
21287	addne	r7, r7, #1
21288	uxthne	r7, r7
21289	b	.L3436
21290.L3453:
21291	add	r3, sp, #32
21292	ldr	r0, [r3, r8, lsl #2]
21293	cmn	r0, #1
21294	bne	.L3442
21295.L3446:
21296	ldr	r2, [r10, #2800]
21297	mvn	r7, #0
21298	ldr	r3, [r5, #12]
21299	mov	r0, #2
21300	ldr	r2, [r2, #8]
21301	str	r2, [r3]
21302	mov	r2, #0
21303	ldr	r3, [r5, #12]
21304	str	r7, [r3, #4]
21305	ldr	r3, [r5, #12]
21306	str	r7, [r3, #8]
21307	ldr	r3, [r5, #12]
21308	str	r2, [r3, #12]
21309	ldr	r3, [r5, #12]
21310	str	r2, [r3, #16]
21311	ldr	r3, [r5, #4]
21312	str	r2, [r3]
21313	ldr	r1, [r5, #12]
21314	add	r1, r1, #16
21315	bl	ftl_debug_info_fill
21316.L3443:
21317	ldr	r3, [sp, #24]
21318	cmp	r3, #1
21319	bne	.L3448
21320	ldrh	r3, [r4, #6]
21321	cmp	r3, #1
21322	bls	.L3448
21323.L3507:
21324	mov	r0, r4
21325	bl	ftl_get_new_free_page
21326	ldr	r3, [r9]
21327	mov	fp, r0
21328	tst	r3, #16384
21329	beq	.L3450
21330	ldrh	r2, [r4, #12]
21331	mov	r1, r0
21332	ldrh	r3, [r4, #10]
21333	ldr	r0, .L3532+88
21334	add	r3, r3, r2
21335	ldr	r2, [r5, #12]
21336	sub	r3, r3, #1
21337	ldr	r2, [r2, #4]
21338	bl	printk
21339.L3450:
21340	ldrb	r3, [r6, #-3127]	@ zero_extendqisi2
21341	ldr	r1, [sp, #12]
21342	ldrh	r2, [r4, #6]
21343	mul	r3, r1, r3
21344	add	r3, r3, #1
21345	sub	r3, r3, r8
21346	cmp	r2, r3
21347	bls	.L3448
21348	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
21349	mov	r0, fp
21350	ldr	r2, [r5, #12]
21351	ldr	r1, [r5, #4]
21352	bl	ftl_prog_ppa_page
21353	str	r0, [sp, #20]
21354	ldrh	r0, [r4]
21355	bl	ftl_vpn_decrement
21356	ldr	r2, [sp, #20]
21357	adds	r3, r7, #1
21358	movne	r3, #1
21359	cmn	r2, #1
21360	cmnne	r7, #1
21361	beq	.L3451
21362	add	r3, sp, #96
21363	ldrh	r2, [r4, #12]
21364	str	fp, [r3, r8, lsl #2]
21365	ldrh	r3, [r4, #10]
21366	add	r3, r3, r2
21367	add	r2, sp, #160
21368	sub	r3, r3, #1
21369	str	r3, [r2, r8, lsl #2]
21370.L3448:
21371	add	r8, r8, #1
21372	b	.L3441
21373.L3442:
21374	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
21375	ldr	r2, [r5, #12]
21376	ldr	r1, [r5, #4]
21377	bl	ftl_read_ppa_page
21378	ldr	r3, [r5, #12]
21379	mov	r7, r0
21380	ldr	r0, [r3, #4]
21381	bl	lpa_hash_get_ppa
21382	ldr	r3, [r9]
21383	mov	fp, r0
21384	tst	r3, #16384
21385	beq	.L3444
21386	ldr	r3, [r5, #12]
21387	add	r2, sp, #32
21388	mov	r1, r0
21389	ldr	r2, [r2, r8, lsl #2]
21390	ldr	r0, .L3532+92
21391	ldr	r3, [r3, #4]
21392	bl	printk
21393.L3444:
21394	add	r3, sp, #32
21395	mov	r2, #1
21396	ldr	r3, [r3, r8, lsl #2]
21397	mov	r0, #2
21398	cmp	fp, r3
21399	ldr	r3, [r5, #12]
21400	mvnne	r7, #0
21401	str	fp, [r3, #8]
21402	ldr	r3, [r5, #12]
21403	str	r2, [r3, #12]
21404	mov	r2, #0
21405	ldr	r3, [r5, #12]
21406	str	r2, [r3, #16]
21407	ldr	r1, [r5, #12]
21408	add	r1, r1, #16
21409	bl	ftl_debug_info_fill
21410	cmn	r7, #1
21411	bne	.L3443
21412	b	.L3446
21413.L3451:
21414	ldrh	r2, [r4, #6]
21415	cmp	r2, #1
21416	movls	r3, #0
21417	andhi	r3, r3, #1
21418	cmp	r3, #0
21419	bne	.L3507
21420	b	.L3448
21421.L3460:
21422	add	r10, sp, #96
21423	ldr	r3, [r10, r7, lsl #2]
21424	cmn	r3, #1
21425	beq	.L3456
21426	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
21427	ldr	r2, [r5, #12]
21428	ldr	r1, [r5, #4]
21429	ldr	r0, [r8, r7, lsl #2]
21430	bl	ftl_read_ppa_page
21431	cmn	r0, #1
21432	cmpne	r0, #256
21433	bne	.L3456
21434	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
21435	ldr	r0, [r10, r7, lsl #2]
21436	ldr	r2, [r5, #12]
21437	ldr	r1, [r5, #4]
21438	bl	ftl_read_ppa_page
21439	ldr	r3, [r9]
21440	mov	r10, r0
21441	tst	r3, #16384
21442	beq	.L3458
21443	ldr	r2, [r5, #12]
21444	mov	r1, r0
21445	ldr	r3, [r8, r7, lsl #2]
21446	ldr	r0, .L3532+88
21447	ldr	r2, [r2, #8]
21448	bl	printk
21449.L3458:
21450	cmn	r10, #1
21451	beq	.L3456
21452	ldr	r1, [r5, #12]
21453	ldr	r2, [r8, r7, lsl #2]
21454	ldr	r3, [r1, #8]
21455	cmp	r2, r3
21456	bne	.L3456
21457	ldr	r3, [r9]
21458	add	r10, sp, #160
21459	tst	r3, #16384
21460	beq	.L3459
21461	ldr	r3, [r10, r7, lsl #2]
21462	mov	r0, fp
21463	ldr	r1, [r1, #4]
21464	bl	printk
21465.L3459:
21466	ldr	r2, [r10, r7, lsl #2]
21467	ldr	r3, [r5, #12]
21468	uxth	r2, r2
21469	ldmib	r3, {r0, r1}
21470	bl	lpa_hash_update_ppa
21471.L3456:
21472	add	r7, r7, #1
21473	b	.L3454
21474.L3431:
21475	ldr	r1, [r5, #12]
21476	ldr	r2, .L3532+24
21477	ldr	r0, [r1, #4]
21478	ldr	r3, [r2, #2780]
21479	cmp	r0, r3
21480	bcs	.L3426
21481	ldr	r3, .L3532+32
21482	ldrb	ip, [r4, #9]	@ zero_extendqisi2
21483	ldrh	r0, [r4, #10]
21484	ldrh	r3, [r3]
21485	mul	r3, r3, ip
21486	sub	r3, r3, #1
21487	cmp	r0, r3
21488	bge	.L3426
21489	ldr	r3, [r2, #2800]
21490	ldr	r1, [r1]
21491	ldr	r2, [r3, #8]
21492	cmp	r1, r2
21493	strhi	r1, [r3, #8]
21494	ldrh	r1, [r4, #12]
21495	ldrh	r2, [r4, #10]
21496	ldr	r3, [r5, #12]
21497	add	r2, r2, r1
21498	uxth	r2, r2
21499	ldmib	r3, {r0, r1}
21500	bl	lpa_hash_update_ppa
21501	ldr	r3, [sp, #36]
21502	str	r3, [sp, #32]
21503	ldr	r3, [sp, #40]
21504	str	r3, [sp, #36]
21505	ldr	r3, [sp, #44]
21506	str	r3, [sp, #40]
21507	ldr	r3, [sp, #20]
21508	str	r3, [sp, #44]
21509	b	.L3426
21510.L3533:
21511	.align	2
21512.L3532:
21513	.word	.LANCHOR2
21514	.word	.LC212
21515	.word	.LC213
21516	.word	.LC214
21517	.word	.LC215
21518	.word	.LC216
21519	.word	.LANCHOR0
21520	.word	.LANCHOR3
21521	.word	.LANCHOR3-3096
21522	.word	.LANCHOR3-3088
21523	.word	.LANCHOR1+2316
21524	.word	.LC0
21525	.word	.LC219
21526	.word	.LC220
21527	.word	.LC223
21528	.word	.LANCHOR3-3072
21529	.word	-178307901
21530	.word	1212240712
21531	.word	.LC217
21532	.word	.LC218
21533	.word	.LC183
21534	.word	.LANCHOR3-3138
21535	.word	.LC222
21536	.word	.LC221
21537	.fnend
21538	.size	ftl_open_sblk_recovery, .-ftl_open_sblk_recovery
21539	.align	2
21540	.global	dump_ftl_info
21541	.syntax unified
21542	.arm
21543	.fpu softvfp
21544	.type	dump_ftl_info, %function
21545dump_ftl_info:
21546	.fnstart
21547	@ args = 0, pretend = 0, frame = 0
21548	@ frame_needed = 0, uses_anonymous_args = 0
21549	push	{r0, r1, r2, r4, r5, r6, r7, lr}
21550	.save {r4, r5, r6, r7, lr}
21551	.pad #12
21552	movw	r7, #1080
21553	ldr	r4, .L3536
21554	ldr	r5, .L3536+4
21555	ldrb	r1, [r4, #2769]	@ zero_extendqisi2
21556	ldr	r0, .L3536+8
21557	bl	printk
21558	ldrh	r3, [r5, #-54]
21559	sub	r6, r5, #3088
21560	ldrb	r2, [r5, #-55]	@ zero_extendqisi2
21561	ldrb	r1, [r5, #-56]	@ zero_extendqisi2
21562	ldr	r0, .L3536+12
21563	bl	printk
21564	ldr	r3, [r4, #2800]
21565	ldr	r0, .L3536+16
21566	ldrh	r2, [r3, #140]
21567	ldrh	r1, [r3, #130]
21568	bl	printk
21569	ldr	r0, [r4, #1096]
21570	ldrh	ip, [r0, #26]
21571	ldrb	r3, [r0, #21]	@ zero_extendqisi2
21572	ldrh	r2, [r0, #18]
21573	ldrh	r1, [r0, #16]
21574	str	ip, [sp, #4]
21575	ldrh	r0, [r0, #22]
21576	str	r0, [sp]
21577	ldr	r0, .L3536+20
21578	bl	printk
21579	ldr	r0, [r4, #1096]
21580	ldrh	ip, [r0, #58]
21581	ldrb	r3, [r0, #53]	@ zero_extendqisi2
21582	ldrh	r2, [r0, #50]
21583	ldrh	r1, [r0, #48]
21584	str	ip, [sp, #4]
21585	ldrh	r0, [r0, #54]
21586	str	r0, [sp]
21587	ldr	r0, .L3536+24
21588	bl	printk
21589	ldr	r0, [r4, #1096]
21590	ldrh	ip, [r0, #90]
21591	ldrb	r3, [r0, #85]	@ zero_extendqisi2
21592	ldrh	r2, [r0, #82]
21593	ldrh	r1, [r0, #80]
21594	str	ip, [sp, #4]
21595	ldrh	r0, [r0, #86]
21596	str	r0, [sp]
21597	ldr	r0, .L3536+28
21598	bl	printk
21599	ldrh	r2, [r6, #-8]
21600	ldrb	r3, [r5, #-3127]	@ zero_extendqisi2
21601	ldr	r1, [r5, #-2556]
21602	ldr	r0, .L3536+32
21603	mul	r3, r3, r2
21604	mov	r2, #4
21605	lsl	r3, r3, #1
21606	bl	rknand_print_hex
21607	ldrh	r3, [r4, r7]
21608	mov	r2, #2
21609	ldr	r1, [r4, #1092]
21610	ldr	r0, .L3536+36
21611	bl	rknand_print_hex
21612	ldr	r1, [r4, #2800]
21613	movw	r3, #698
21614	mov	r2, #4
21615	ldr	r0, .L3536+40
21616	ldrh	r3, [r1, r3]
21617	add	r1, r1, #704
21618	bl	rknand_print_hex
21619	ldrh	r3, [r4, r7]
21620	mov	r2, #4
21621	ldr	r1, [r4, #1084]
21622	ldr	r0, .L3536+44
21623	bl	rknand_print_hex
21624	sub	r1, r5, #3056
21625	mov	r3, #256
21626	mov	r2, #2
21627	sub	r1, r1, #14
21628	ldr	r0, .L3536+48
21629	bl	rknand_print_hex
21630	ldrh	r2, [r6, #-8]
21631	ldrb	r3, [r5, #-3127]	@ zero_extendqisi2
21632	ldr	r1, [r5, #-2552]
21633	ldr	r0, .L3536+52
21634	mul	r3, r3, r2
21635	mov	r2, #2
21636	lsl	r3, r3, #1
21637	add	sp, sp, #12
21638	@ sp needed
21639	pop	{r4, r5, r6, r7, lr}
21640	b	rknand_print_hex
21641.L3537:
21642	.align	2
21643.L3536:
21644	.word	.LANCHOR0
21645	.word	.LANCHOR3
21646	.word	.LC224
21647	.word	.LC225
21648	.word	.LC226
21649	.word	.LC227
21650	.word	.LC228
21651	.word	.LC229
21652	.word	.LC230
21653	.word	.LC231
21654	.word	.LC211
21655	.word	.LC232
21656	.word	.LC233
21657	.word	.LC234
21658	.fnend
21659	.size	dump_ftl_info, .-dump_ftl_info
21660	.align	2
21661	.global	pm_ppa_update_check
21662	.syntax unified
21663	.arm
21664	.fpu softvfp
21665	.type	pm_ppa_update_check, %function
21666pm_ppa_update_check:
21667	.fnstart
21668	@ args = 0, pretend = 0, frame = 0
21669	@ frame_needed = 0, uses_anonymous_args = 0
21670	ldr	r3, .L3542
21671	push	{r4, r5, r6, r7, r8, lr}
21672	.save {r4, r5, r6, r7, r8, lr}
21673	mov	r6, r2
21674	ldr	r7, .L3542+4
21675	mov	r4, r0
21676	sub	r2, r3, #3136
21677	mov	r5, r1
21678	ldrh	r0, [r2, #-2]
21679	ldrb	ip, [r7, #1153]	@ zero_extendqisi2
21680	ldrb	r1, [r3, #-3136]	@ zero_extendqisi2
21681	mvn	r3, #0
21682	rsb	ip, ip, #24
21683	sub	ip, ip, r0
21684	lsr	r0, r6, r0
21685	bic	r0, r0, r3, lsl ip
21686	bl	__aeabi_uidiv
21687	ldr	r3, [r7, #1084]
21688	uxth	r0, r0
21689	add	r0, r3, r0, lsl #2
21690	ldrb	r0, [r0, #2]	@ zero_extendqisi2
21691	lsr	r0, r0, #5
21692	cmp	r0, #7
21693	cmpne	r0, #1
21694	moveq	r0, #1
21695	movne	r0, #0
21696	popne	{r4, r5, r6, r7, r8, pc}
21697	mov	r3, r6
21698	mov	r2, r5
21699	mov	r1, r4
21700	ldr	r0, .L3542+8
21701	bl	printk
21702	bl	dump_ftl_info
21703	mvn	r0, #0
21704	pop	{r4, r5, r6, r7, r8, pc}
21705.L3543:
21706	.align	2
21707.L3542:
21708	.word	.LANCHOR3
21709	.word	.LANCHOR0
21710	.word	.LC235
21711	.fnend
21712	.size	pm_ppa_update_check, .-pm_ppa_update_check
21713	.align	2
21714	.syntax unified
21715	.arm
21716	.fpu softvfp
21717	.type	load_l2p_region, %function
21718load_l2p_region:
21719	.fnstart
21720	@ args = 0, pretend = 0, frame = 0
21721	@ frame_needed = 0, uses_anonymous_args = 0
21722	cmp	r1, #31
21723	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
21724	.save {r4, r5, r6, r7, r8, r9, r10, lr}
21725	.pad #8
21726	mov	r7, r0
21727	mov	r6, r1
21728	bls	.L3545
21729	mov	r2, #32
21730	ldr	r1, .L3559
21731	ldr	r0, .L3559+4
21732	bl	printk
21733	bl	dump_stack
21734.L3545:
21735	ldr	r8, .L3559+8
21736	movw	r10, #698
21737	ldr	r5, .L3559+12
21738	ldr	r3, [r8, #2800]
21739	mov	r9, r8
21740	ldrh	r2, [r3, r10]
21741	cmp	r2, r7
21742	bcs	.L3546
21743	mov	r1, r7
21744	ldr	r0, .L3559+16
21745	mov	r4, #0
21746	bl	printk
21747	ldrh	r2, [r5, #-14]
21748	mov	r1, #255
21749	ldr	r0, [r4, #4]
21750	bl	ftl_memset
21751	ldr	r3, [r8, #2800]
21752	ldrh	r3, [r3, r10]
21753	cmp	r3, r7
21754	bcc	.L3547
21755.L3557:
21756	mov	r0, #0
21757.L3544:
21758	add	sp, sp, #8
21759	@ sp needed
21760	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
21761.L3547:
21762	mov	r2, #37
21763.L3558:
21764	ldr	r1, .L3559
21765	ldr	r0, .L3559+4
21766	bl	printk
21767	bl	dump_stack
21768	b	.L3557
21769.L3546:
21770	add	r2, r7, #176
21771	lsl	r6, r6, #3
21772	ldr	r4, [r3, r2, lsl #2]
21773	ldr	r3, .L3559+20
21774	add	r8, r5, r6
21775	add	r2, r3, r6
21776	strh	r7, [r3, r6]	@ movhi
21777	mov	r3, #0
21778	cmp	r4, r3
21779	strh	r3, [r2, #2]	@ movhi
21780	bne	.L3549
21781	mov	r2, r4
21782	mov	r1, r7
21783	ldr	r0, .L3559+24
21784	bl	printk
21785	ldrh	r2, [r5, #-14]
21786	mov	r1, #255
21787	ldr	r0, [r8, #-2528]
21788	bl	ftl_memset
21789	b	.L3557
21790.L3549:
21791	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
21792	mov	r0, r4
21793	ldr	r2, [r5, #-32]
21794	ldr	r1, [r8, #-2528]
21795	bl	ftl_read_ppa_page
21796	ldr	r2, [r5, #-32]
21797	mov	r3, r0
21798	ldr	r2, [r2]
21799	cmp	r2, r7
21800	bne	.L3550
21801	cmn	r0, #1
21802	cmpne	r0, #512
21803	beq	.L3550
21804.L3554:
21805	ldr	r3, [r5, #-32]
21806	ldr	r3, [r3]
21807	cmp	r7, r3
21808	beq	.L3557
21809	mov	r2, #73
21810	b	.L3558
21811.L3550:
21812	mov	r1, r7
21813	str	r4, [sp]
21814	ldr	r0, .L3559+28
21815	add	r6, r5, r6
21816	bl	printk
21817	ldr	r1, [r9, #2800]
21818	movw	r3, #698
21819	mov	r2, #4
21820	ldr	r0, .L3559+32
21821	ldrh	r3, [r1, r3]
21822	add	r1, r1, #704
21823	bl	rknand_print_hex
21824	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
21825	mov	r2, #4
21826	ldr	r1, [r6, #-2528]
21827	ldr	r0, .L3559+36
21828	lsl	r3, r3, #7
21829	bl	rknand_print_hex
21830	mov	r3, #16
21831	mov	r2, #4
21832	ldr	r1, [r5, #-32]
21833	ldr	r0, .L3559+40
21834	bl	rknand_print_hex
21835	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
21836	mov	r0, r4
21837	ldr	r2, [r5, #-32]
21838	ldr	r1, [r6, #-2528]
21839	bl	ftl_read_ppa_page
21840	cmn	r0, #1
21841	cmpne	r0, #512
21842	bne	.L3553
21843	ldrh	r2, [r5, #-14]
21844	mov	r1, #255
21845	ldr	r0, [r6, #-2528]
21846	bl	ftl_memset
21847.L3555:
21848	mvn	r0, #0
21849	b	.L3544
21850.L3553:
21851	ldr	r3, [r5, #-32]
21852	ldr	r3, [r3]
21853	cmp	r7, r3
21854	beq	.L3554
21855	b	.L3555
21856.L3560:
21857	.align	2
21858.L3559:
21859	.word	.LANCHOR1+2339
21860	.word	.LC0
21861	.word	.LANCHOR0
21862	.word	.LANCHOR3
21863	.word	.LC236
21864	.word	.LANCHOR3-2532
21865	.word	.LC237
21866	.word	.LC238
21867	.word	.LC239
21868	.word	.LC218
21869	.word	.LC240
21870	.fnend
21871	.size	load_l2p_region, .-load_l2p_region
21872	.align	2
21873	.global	pm_gc
21874	.syntax unified
21875	.arm
21876	.fpu softvfp
21877	.type	pm_gc, %function
21878pm_gc:
21879	.fnstart
21880	@ args = 0, pretend = 0, frame = 8
21881	@ frame_needed = 0, uses_anonymous_args = 0
21882	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
21883	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
21884	.pad #12
21885	ldr	r6, .L3579
21886	ldr	r4, .L3579+4
21887	ldr	r3, [r6, #2800]
21888	add	r3, r3, #688
21889	ldrh	r2, [r3]
21890	ldrh	r3, [r4, #-176]
21891	sub	r3, r3, #1
21892	cmp	r2, r3
21893	bge	.L3562
21894	ldr	r3, [r4, #-184]
21895	cmp	r3, #0
21896	beq	.L3563
21897.L3562:
21898	bl	pm_free_sblk
21899	ldr	r2, [r6, #2800]
21900	add	r3, r2, #688
21901	ldrh	r1, [r3]
21902	ldrh	r3, [r4, #-176]
21903	sub	r3, r3, #1
21904	cmp	r1, r3
21905	bge	.L3564
21906	ldr	r3, [r4, #-184]
21907	cmp	r3, #0
21908	beq	.L3563
21909.L3564:
21910	uxth	r0, r0
21911	movw	r5, #65535
21912	mov	r3, #0
21913	add	r0, r0, #208
21914	str	r3, [r4, #-184]
21915	lsl	r0, r0, #1
21916	ldrh	r9, [r2, r0]
21917	cmp	r9, r5
21918	bne	.L3566
21919	mov	r2, #182
21920	ldr	r1, .L3579+8
21921	ldr	r0, .L3579+12
21922	bl	printk
21923	bl	dump_stack
21924	bl	pm_free_sblk
21925	uxth	r0, r0
21926	ldr	r3, [r6, #2800]
21927	add	r0, r0, #208
21928	lsl	r0, r0, #1
21929	ldrh	r9, [r3, r0]
21930	cmp	r9, r5
21931	beq	.L3563
21932.L3566:
21933	ldr	r5, .L3579+16
21934	bl	pm_select_ram_region
21935	lsl	r7, r0, #3
21936	mov	r10, r0
21937	movw	r3, #65535
21938	ldrh	r0, [r5, r7]
21939	add	r8, r5, r7
21940	add	r5, r5, #4
21941	cmp	r0, r3
21942	beq	.L3567
21943	add	r3, r4, r7
21944	ldr	r1, [r3, #-2528]
21945	cmp	r1, #0
21946	beq	.L3567
21947	ldrsh	r3, [r8, #2]
21948	cmp	r3, #0
21949	bge	.L3567
21950	bl	pm_write_page
21951	ldrh	r3, [r8, #2]
21952	ubfx	r3, r3, #0, #15
21953	strh	r3, [r8, #2]	@ movhi
21954.L3567:
21955	sub	r5, r5, #4
21956	mov	r8, #0
21957	add	r5, r5, r7
21958.L3568:
21959	ldr	r3, [r6, #2800]
21960	movw	r1, #698
21961	uxth	r2, r8
21962	ldrh	r1, [r3, r1]
21963	cmp	r1, r2
21964	bhi	.L3571
21965	bl	pm_free_sblk
21966.L3563:
21967	mov	r0, #0
21968	add	sp, sp, #12
21969	@ sp needed
21970	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
21971.L3571:
21972	ldr	r1, .L3579+20
21973	uxth	fp, r8
21974	ldrb	r0, [r6, #1153]	@ zero_extendqisi2
21975	add	ip, fp, #176
21976	str	r2, [sp, #4]
21977	ldrh	r1, [r1]
21978	ldr	r3, [r3, ip, lsl #2]
21979	rsb	r0, r0, #24
21980	mvn	ip, #0
21981	sub	r0, r0, r1
21982	lsr	r3, r3, r1
21983	ldrb	r1, [r4, #-3136]	@ zero_extendqisi2
21984	bic	r0, r3, ip, lsl r0
21985	bl	__aeabi_uidiv
21986	uxth	r0, r0
21987	ldr	r2, [sp, #4]
21988	cmp	r9, r0
21989	bne	.L3569
21990	mov	r1, r10
21991	mov	r0, r2
21992	bl	load_l2p_region
21993	cmp	r0, #0
21994	bne	.L3570
21995	add	r3, r4, r7
21996	mov	r0, fp
21997	ldr	r1, [r3, #-2528]
21998	bl	pm_write_page
21999.L3570:
22000	mvn	r3, #0
22001	strh	r3, [r5]	@ movhi
22002.L3569:
22003	add	r8, r8, #1
22004	b	.L3568
22005.L3580:
22006	.align	2
22007.L3579:
22008	.word	.LANCHOR0
22009	.word	.LANCHOR3
22010	.word	.LANCHOR1+2355
22011	.word	.LC0
22012	.word	.LANCHOR3-2532
22013	.word	.LANCHOR3-3138
22014	.fnend
22015	.size	pm_gc, .-pm_gc
22016	.align	2
22017	.global	pm_flush_id
22018	.syntax unified
22019	.arm
22020	.fpu softvfp
22021	.type	pm_flush_id, %function
22022pm_flush_id:
22023	.fnstart
22024	@ args = 0, pretend = 0, frame = 0
22025	@ frame_needed = 0, uses_anonymous_args = 0
22026	push	{r4, r5, r6, lr}
22027	.save {r4, r5, r6, lr}
22028	lsl	r0, r0, #3
22029	ldr	r4, .L3587
22030	sub	r3, r4, #2528
22031	add	r2, r4, r0
22032	sub	r3, r3, #4
22033	ldr	r1, [r2, #-2528]
22034	add	r5, r3, r0
22035	ldrh	r0, [r3, r0]
22036	bl	pm_write_page
22037	ldrh	r3, [r5, #2]
22038	ubfx	r3, r3, #0, #15
22039	strh	r3, [r5, #2]	@ movhi
22040	ldr	r3, [r4, #-36]
22041	cmp	r3, #0
22042	beq	.L3582
22043	bl	pm_gc
22044	mov	r3, #0
22045	str	r3, [r4, #-36]
22046.L3582:
22047	mov	r0, #0
22048	pop	{r4, r5, r6, pc}
22049.L3588:
22050	.align	2
22051.L3587:
22052	.word	.LANCHOR3
22053	.fnend
22054	.size	pm_flush_id, .-pm_flush_id
22055	.align	2
22056	.global	pm_flush
22057	.syntax unified
22058	.arm
22059	.fpu softvfp
22060	.type	pm_flush, %function
22061pm_flush:
22062	.fnstart
22063	@ args = 0, pretend = 0, frame = 0
22064	@ frame_needed = 0, uses_anonymous_args = 0
22065	push	{r4, r5, r6, lr}
22066	.save {r4, r5, r6, lr}
22067	mov	r4, #0
22068	ldr	r5, .L3594
22069.L3591:
22070	add	r3, r5, r4, lsl #3
22071	uxth	r0, r4
22072	ldrsh	r3, [r3, #2]
22073	cmp	r3, #0
22074	bge	.L3590
22075	bl	pm_flush_id
22076.L3590:
22077	add	r4, r4, #1
22078	cmp	r4, #32
22079	bne	.L3591
22080	mov	r0, #0
22081	pop	{r4, r5, r6, pc}
22082.L3595:
22083	.align	2
22084.L3594:
22085	.word	.LANCHOR3-2532
22086	.fnend
22087	.size	pm_flush, .-pm_flush
22088	.align	2
22089	.global	flt_sys_flush
22090	.syntax unified
22091	.arm
22092	.fpu softvfp
22093	.type	flt_sys_flush, %function
22094flt_sys_flush:
22095	.fnstart
22096	@ args = 0, pretend = 0, frame = 0
22097	@ frame_needed = 0, uses_anonymous_args = 0
22098	push	{r4, lr}
22099	.save {r4, lr}
22100	bl	ftl_flush
22101	bl	pm_flush
22102	bl	ftl_ext_info_flush
22103	mov	r0, #0
22104	pop	{r4, lr}
22105	b	ftl_info_flush
22106	.fnend
22107	.size	flt_sys_flush, .-flt_sys_flush
22108	.align	2
22109	.global	zftl_deinit
22110	.syntax unified
22111	.arm
22112	.fpu softvfp
22113	.type	zftl_deinit, %function
22114zftl_deinit:
22115	.fnstart
22116	@ args = 0, pretend = 0, frame = 0
22117	@ frame_needed = 0, uses_anonymous_args = 0
22118	push	{r4, lr}
22119	.save {r4, lr}
22120	bl	zftl_flash_de_init
22121	bl	flt_sys_flush
22122	pop	{r4, lr}
22123	b	zftl_flash_de_init
22124	.fnend
22125	.size	zftl_deinit, .-zftl_deinit
22126	.align	2
22127	.global	pm_init
22128	.syntax unified
22129	.arm
22130	.fpu softvfp
22131	.type	pm_init, %function
22132pm_init:
22133	.fnstart
22134	@ args = 0, pretend = 0, frame = 8
22135	@ frame_needed = 0, uses_anonymous_args = 0
22136	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
22137	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22138	mov	r5, #0
22139	ldr	r8, .L3623
22140	mvn	r9, #0
22141	mov	r10, r5
22142	mov	r3, #1
22143	ldr	r4, .L3623+4
22144	.pad #20
22145	sub	sp, sp, #20
22146	mov	r7, r0
22147	mov	r0, #64
22148	str	r5, [r4, #-184]
22149	str	r5, [r4, #-36]
22150	strb	r3, [r4, #-28]
22151	bl	ftl_dma32_malloc
22152	str	r0, [r4, #-32]
22153.L3602:
22154	cmp	r7, #0
22155	mov	r6, r8
22156	strh	r9, [r6, r5]!	@ movhi
22157	strh	r10, [r6, #2]	@ movhi
22158	beq	.L3601
22159	ldrb	r0, [r4, #-2546]	@ zero_extendqisi2
22160	lsl	r0, r0, #9
22161	bl	ftl_dma32_malloc
22162	str	r0, [r6, #4]
22163.L3601:
22164	add	r5, r5, #8
22165	cmp	r5, #256
22166	bne	.L3602
22167	ldr	r5, .L3623+8
22168	ldr	r9, [r4, #-2528]
22169	ldr	r6, [r4, #-32]
22170	ldr	r3, [r5, #2800]
22171	add	r2, r3, #692
22172	ldrb	r0, [r3, #694]	@ zero_extendqisi2
22173	mov	r3, #4
22174	ldrh	r1, [r2]
22175	str	r3, [sp]
22176	mov	r2, r9
22177	mov	r3, r6
22178	bl	flash_get_last_written_page
22179	ldr	r3, [r5, #2800]
22180	mov	r8, r0
22181	add	r2, r3, #696
22182	ldrh	r2, [r2]
22183	cmp	r2, r0
22184	bgt	.L3603
22185	add	r1, r3, #692
22186	mov	r3, r0
22187	ldrh	r1, [r1]
22188	ldr	r0, .L3623+12
22189	bl	printk
22190	ldr	r3, [r5, #2800]
22191	add	r3, r3, #696
22192	ldrsh	r7, [r3]
22193	add	r3, r8, #1
22194	str	r3, [sp, #12]
22195.L3604:
22196	ldr	r3, [sp, #12]
22197	cmp	r7, r3
22198	blt	.L3607
22199	mov	r3, #1
22200	ldrh	r2, [sp, #12]
22201	strb	r3, [r4, #-47]
22202	ldr	r3, [r5, #2800]
22203	add	r3, r3, #696
22204	strh	r2, [r3]	@ movhi
22205	bl	pm_free_sblk
22206.L3603:
22207	ldrh	r2, [r4, #-14]
22208	mov	r1, #255
22209	ldr	r0, [r4, #-2528]
22210	bl	ftl_memset
22211	ldr	r1, [r4, #-2528]
22212	mvn	r0, #0
22213	bl	pm_write_page
22214	ldrb	r3, [r4, #-47]	@ zero_extendqisi2
22215	cmp	r3, #0
22216	beq	.L3608
22217	ldr	r1, [r4, #-2528]
22218	mvn	r0, #0
22219	bl	pm_write_page
22220	ldr	r1, [r4, #-2528]
22221	mvn	r0, #0
22222	bl	pm_write_page
22223	ldr	r1, [r4, #-2528]
22224	mvn	r0, #0
22225	bl	pm_write_page
22226.L3608:
22227	bl	pm_free_sblk
22228	bl	pm_gc
22229	mov	r0, #0
22230	add	sp, sp, #20
22231	@ sp needed
22232	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
22233.L3607:
22234	ldr	r3, [r5, #2800]
22235	movw	fp, #694
22236	add	r2, r3, #692
22237	ldrb	r0, [r3, fp]	@ zero_extendqisi2
22238	ldrh	r8, [r2]
22239	ldr	r2, .L3623+16
22240	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
22241	ldrh	r2, [r2]
22242	str	r3, [sp]
22243	mov	r3, r6
22244	mla	r8, r2, r8, r7
22245	mov	r2, r9
22246	mov	r1, r8
22247	bl	flash_read_page_en
22248	ldr	r3, [r5, #2800]
22249	mov	r10, r0
22250	ldr	r0, .L3623+20
22251	ldr	r2, [r3, #48]
22252	add	r2, r2, #1
22253	str	r2, [r3, #48]
22254	mov	r2, r8
22255	ldrh	r3, [r3, fp]
22256	ldr	r1, [r6]
22257	bl	printk
22258	cmp	r10, #512
22259	cmnne	r10, #1
22260	beq	.L3605
22261	ldr	r2, [r5, #2800]
22262	movw	r3, #698
22263	ldrh	r3, [r2, r3]
22264	ldr	r2, [r6]
22265	cmp	r2, r3
22266	bcs	.L3605
22267	ldr	r10, [r6, #8]
22268	cmp	r10, #0
22269	beq	.L3606
22270	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
22271	mov	r0, r9
22272	lsl	r1, r1, #9
22273	bl	js_hash
22274	cmp	r10, r0
22275	beq	.L3606
22276	ldr	r1, [r6, #8]
22277	ldr	r0, .L3623+24
22278	bl	printk
22279.L3605:
22280	add	r7, r7, #1
22281	sxth	r7, r7
22282	b	.L3604
22283.L3606:
22284	ldr	r3, [r6]
22285	ldr	r2, [r5, #2800]
22286	add	r3, r3, #176
22287	str	r8, [r2, r3, lsl #2]
22288	b	.L3605
22289.L3624:
22290	.align	2
22291.L3623:
22292	.word	.LANCHOR3-2532
22293	.word	.LANCHOR3
22294	.word	.LANCHOR0
22295	.word	.LC241
22296	.word	.LANCHOR3-3074
22297	.word	.LC242
22298	.word	.LC243
22299	.fnend
22300	.size	pm_init, .-pm_init
22301	.align	2
22302	.global	pm_log2phys
22303	.syntax unified
22304	.arm
22305	.fpu softvfp
22306	.type	pm_log2phys, %function
22307pm_log2phys:
22308	.fnstart
22309	@ args = 0, pretend = 0, frame = 8
22310	@ frame_needed = 0, uses_anonymous_args = 0
22311	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
22312	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22313	.pad #12
22314	mov	r7, r1
22315	ldr	r8, .L3641
22316	mov	r6, r0
22317	mov	r9, r2
22318	ldr	r10, .L3641+4
22319	ldrb	r4, [r8, #-2546]	@ zero_extendqisi2
22320	lsl	r1, r4, #7
22321	lsl	r4, r4, #7
22322	bl	__aeabi_uidiv
22323	str	r0, [sp, #4]
22324	ldrh	fp, [sp, #4]
22325	ldr	r2, [r10, #2780]
22326	smulbb	r4, r4, fp
22327	cmp	r6, r2
22328	sub	r4, r6, r4
22329	bcc	.L3626
22330	mov	r1, r6
22331	ldr	r0, .L3641+8
22332	bl	printk
22333	cmp	r9, #0
22334	mvn	r0, #0
22335	streq	r0, [r7]
22336.L3625:
22337	add	sp, sp, #12
22338	@ sp needed
22339	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
22340.L3626:
22341	ldr	r1, .L3641+12
22342	uxth	r4, r4
22343	mov	r2, #0
22344	sub	r6, r8, #2528
22345.L3632:
22346	lsl	r0, r2, #3
22347	uxth	r5, r2
22348	add	ip, r1, r0
22349	ldr	ip, [ip, #4]
22350	cmp	ip, #0
22351	beq	.L3628
22352	ldrh	r0, [r0, r1]
22353	cmp	r0, fp
22354	bne	.L3628
22355.L3629:
22356	cmp	r9, #0
22357	lsl	r5, r5, #3
22358	bne	.L3630
22359	add	r2, r8, r5
22360	ldr	r2, [r2, #-2528]
22361	ldr	r1, [r2, r4, lsl #2]
22362	mvn	r2, #0
22363	str	r1, [r7]
22364	ldrb	r0, [r10, #1153]	@ zero_extendqisi2
22365	ldrb	r3, [r8, #-3072]	@ zero_extendqisi2
22366	rsb	ip, r0, #24
22367	mvn	r2, r2, lsl r0
22368	and	r2, r2, r1, lsr ip
22369	cmp	r2, r3
22370	mvncs	r3, #0
22371	strcs	r3, [r7]
22372.L3631:
22373	sub	r6, r6, #4
22374	movw	r2, #32767
22375	add	r6, r6, r5
22376	mov	r0, #0
22377	ldrh	r3, [r6, #2]
22378	ubfx	r1, r3, #0, #15
22379	cmp	r1, r2
22380	addne	r3, r3, #1
22381	strhne	r3, [r6, #2]	@ movhi
22382	b	.L3625
22383.L3630:
22384	add	r2, r8, r5
22385	ldr	r1, [r7]
22386	ldr	r2, [r2, #-2528]
22387	ldrb	r3, [sp, #4]	@ zero_extendqisi2
22388	str	r1, [r2, r4, lsl #2]
22389	sub	r1, r6, #4
22390	add	r1, r1, r5
22391	strb	r3, [r8, #-2276]
22392	ldrh	r2, [r1, #2]
22393	mvn	r2, r2, lsl #17
22394	mvn	r2, r2, lsr #17
22395	strh	r2, [r1, #2]	@ movhi
22396	b	.L3631
22397.L3628:
22398	add	r2, r2, #1
22399	cmp	r2, #32
22400	bne	.L3632
22401	bl	pm_select_ram_region
22402	lsl	r1, r0, #3
22403	sub	r2, r6, #4
22404	mov	r5, r0
22405	add	ip, r2, r1
22406	ldrh	r1, [r2, r1]
22407	movw	r2, #65535
22408	cmp	r1, r2
22409	beq	.L3633
22410	ldrsh	r2, [ip, #2]
22411	cmp	r2, #0
22412	bge	.L3633
22413	bl	pm_flush_id
22414.L3633:
22415	mov	r1, r5
22416	mov	r0, fp
22417	strb	r5, [r8, #-12]
22418	bl	load_l2p_region
22419	b	.L3629
22420.L3642:
22421	.align	2
22422.L3641:
22423	.word	.LANCHOR3
22424	.word	.LANCHOR0
22425	.word	.LC244
22426	.word	.LANCHOR3-2532
22427	.fnend
22428	.size	pm_log2phys, .-pm_log2phys
22429	.align	2
22430	.global	gc_recovery
22431	.syntax unified
22432	.arm
22433	.fpu softvfp
22434	.type	gc_recovery, %function
22435gc_recovery:
22436	.fnstart
22437	@ args = 0, pretend = 0, frame = 40
22438	@ frame_needed = 0, uses_anonymous_args = 0
22439	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
22440	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22441	movw	r3, #65535
22442	ldr	r8, .L3744
22443	mov	r5, #0
22444	.pad #76
22445	sub	sp, sp, #76
22446	ldr	r7, .L3744+4
22447	ldr	r4, [r8, #1096]
22448	strb	r5, [r7, #-3119]
22449	ldrh	r2, [r4, #80]
22450	strb	r5, [r7, #-144]
22451	cmp	r2, r3
22452	beq	.L3644
22453	mvn	r3, #0
22454	mov	r0, #1
22455	strh	r3, [r4, #130]	@ movhi
22456	bl	buf_alloc
22457	ldrb	r3, [r4, #89]	@ zero_extendqisi2
22458	mov	r6, r0
22459	ldrb	r1, [r7, #-3128]	@ zero_extendqisi2
22460	add	r3, r4, r3, lsl #1
22461	cmp	r1, #2
22462	ldrh	r2, [r3, #94]
22463	sub	r3, r7, #3072
22464	ldrh	r3, [r3, #-2]
22465	mul	r2, r3, r2
22466	str	r2, [sp, #64]
22467	beq	.L3645
22468	ldrb	r3, [r8, #1158]	@ zero_extendqisi2
22469	cmp	r3, r5
22470	bne	.L3645
22471	ldrb	r3, [r8, #1159]	@ zero_extendqisi2
22472	cmp	r3, r5
22473	beq	.L3646
22474.L3645:
22475	ldr	r3, .L3744+8
22476	ldrh	r3, [r3, #-14]
22477	sub	r3, r3, #1
22478	add	r3, r3, r2
22479	orr	r3, r3, r1, lsl #24
22480.L3734:
22481	str	r3, [r6, #24]
22482.L3647:
22483	mov	r1, #1
22484	mov	r0, r6
22485	bl	sblk_read_page
22486	ldr	r3, [r6, #36]
22487	cmn	r3, #1
22488	cmpne	r3, #512
22489	beq	.L3648
22490	ldr	r3, [r6, #12]
22491	ldr	r9, .L3744+12
22492	ldr	r3, [r3]
22493	cmp	r3, r9
22494	beq	.L3649
22495.L3648:
22496	mov	r0, r6
22497	bl	zbuf_free
22498	ldr	r2, [r6, #12]
22499	ldr	r3, [r6, #4]
22500	ldr	r0, .L3744+16
22501	ldr	r1, [r2, #12]
22502	str	r1, [sp, #24]
22503	ldr	r1, [r2, #8]
22504	str	r1, [sp, #20]
22505	ldr	r1, [r2, #4]
22506	str	r1, [sp, #16]
22507	ldr	r2, [r2]
22508	str	r2, [sp, #12]
22509	ldr	r2, [r3, #12]
22510	str	r2, [sp, #8]
22511	ldr	r2, [r3, #8]
22512	str	r2, [sp, #4]
22513	ldr	r2, [r3, #4]
22514	str	r2, [sp]
22515	ldr	r3, [r3]
22516	ldr	r2, [r6, #36]
22517	ldr	r1, [r6, #24]
22518	bl	printk
22519.L3742:
22520	ldrh	r3, [r4, #80]
22521	mov	r5, #0
22522	ldr	r2, [r8, #1092]
22523	lsl	r3, r3, #1
22524	strh	r5, [r2, r3]	@ movhi
22525	ldrh	r2, [r4, #80]
22526	ldr	r3, [r8, #1096]
22527	strh	r2, [r3, #130]	@ movhi
22528.L3650:
22529	ldrh	r0, [r4, #80]
22530	ldr	r6, .L3744
22531	ldr	r2, [r6, #1092]
22532	lsl	r3, r0, #1
22533	ldrh	r3, [r2, r3]
22534	cmp	r3, #0
22535	bne	.L3694
22536	bl	ftl_dump_write_open_sblk
22537.L3694:
22538	mov	r2, r5
22539	ldrh	r1, [r4, #80]
22540	ldr	r0, .L3744+20
22541	bl	printk
22542	mvn	r3, #0
22543	strh	r3, [r4, #80]	@ movhi
22544	bl	pm_flush
22545	bl	ftl_ext_info_flush
22546	ldr	r3, [r6, #1096]
22547	movw	r2, #65535
22548	ldrh	r3, [r3, #130]
22549	cmp	r3, r2
22550	beq	.L3695
22551	movw	r2, #1080
22552	ldrh	r2, [r6, r2]
22553	cmp	r2, r3
22554	bhi	.L3696
22555	movw	r2, #517
22556	ldr	r1, .L3744+24
22557	ldr	r0, .L3744+28
22558	bl	printk
22559	bl	dump_stack
22560.L3696:
22561	ldr	r3, [r6, #1096]
22562	ldrh	r0, [r3, #130]
22563	bl	ftl_free_sblk
22564.L3695:
22565	ldr	r2, [r6, #2800]
22566	mvn	r3, #0
22567	mov	r0, #0
22568	strh	r3, [r2, #126]	@ movhi
22569	ldr	r2, [r6, #1096]
22570	strh	r3, [r2, #130]	@ movhi
22571	bl	ftl_info_flush
22572.L3643:
22573	add	sp, sp, #76
22574	@ sp needed
22575	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
22576.L3646:
22577	cmp	r1, #3
22578	bne	.L3647
22579	sub	r3, r7, #3088
22580	ldrh	r3, [r3, #-8]
22581	sub	r3, r3, #1
22582	add	r3, r3, r2
22583	orr	r3, r3, #50331648
22584	b	.L3734
22585.L3649:
22586	ldrb	r3, [r7, #-11]	@ zero_extendqisi2
22587	ldr	r5, .L3744+8
22588	cmp	r3, #2
22589	bne	.L3651
22590	ldrb	r3, [r7, #-3128]	@ zero_extendqisi2
22591	cmp	r3, #3
22592	bne	.L3651
22593	ldrh	r2, [r5, #-14]
22594	ldrh	r0, [r7, #-14]
22595	ldr	r1, [r6, #4]
22596	lsl	r3, r2, #2
22597	ldrb	r2, [r7, #-3127]	@ zero_extendqisi2
22598	smulbb	r2, r2, r3
22599	ldr	r3, [r7, #-132]
22600	sub	r2, r2, r0
22601	lsr	r0, r0, #2
22602	uxth	r2, r2
22603	add	r0, r3, r0, lsl #2
22604	bl	ftl_memcpy
22605	ldrb	r3, [r8, #1158]	@ zero_extendqisi2
22606	cmp	r3, #0
22607	bne	.L3652
22608	ldrb	r3, [r8, #1159]	@ zero_extendqisi2
22609	cmp	r3, #0
22610	beq	.L3653
22611.L3652:
22612	ldr	r3, [r6, #24]
22613	sub	r3, r3, #1
22614.L3735:
22615	str	r3, [r6, #24]
22616	mov	r1, #1
22617	mov	r0, r6
22618	bl	sblk_read_page
22619	ldr	r3, [r6, #36]
22620	cmn	r3, #1
22621	cmpne	r3, #512
22622	beq	.L3655
22623	ldr	r3, [r6, #12]
22624	ldr	r3, [r3]
22625	cmp	r3, r9
22626	beq	.L3656
22627.L3655:
22628	mov	r0, r6
22629	bl	zbuf_free
22630	b	.L3742
22631.L3653:
22632	ldr	r3, [sp, #64]
22633	ldrh	r2, [r5, #8]
22634	sub	r3, r3, #1
22635	add	r3, r3, r2
22636	orr	r3, r3, #33554432
22637	b	.L3735
22638.L3656:
22639	ldrh	r2, [r7, #-14]
22640.L3736:
22641	ldr	r1, [r6, #4]
22642	ldr	r0, [r7, #-132]
22643	bl	ftl_memcpy
22644	ldrh	r3, [r5, #-14]
22645	ldrb	r2, [r7, #-3127]	@ zero_extendqisi2
22646	mul	r2, r2, r3
22647	ldrb	r3, [r7, #-2546]	@ zero_extendqisi2
22648	cmp	r3, r2, asr #6
22649	lsl	r2, r2, #2
22650	bge	.L3658
22651	mov	r1, #0
22652	ldr	r0, [r7, #-128]
22653	bl	ftl_memset
22654	ldrb	r10, [r7, #-11]	@ zero_extendqisi2
22655	cmp	r10, #1
22656	movne	r10, #1
22657	bne	.L3737
22658	ldrh	r1, [r5, #-14]
22659	ldrb	r3, [r7, #-3127]	@ zero_extendqisi2
22660	ldrh	r5, [r7, #-14]
22661	ldr	r0, [r7, #-128]
22662	mul	r3, r3, r1
22663	ldr	r1, [r6, #4]
22664	lsl	r3, r3, #2
22665	sub	r5, r5, r3
22666	add	r1, r1, r3
22667	mov	r2, r5
22668	bl	ftl_memcpy
22669.L3659:
22670	ldr	r3, .L3744+32
22671	ldrh	r3, [r3, #-8]
22672	str	r3, [sp, #44]
22673	ldrb	r3, [r7, #-3128]	@ zero_extendqisi2
22674	cmp	r3, #2
22675	str	r3, [sp, #36]
22676	bne	.L3660
22677	ldrb	r3, [r7, #-3126]	@ zero_extendqisi2
22678	cmp	r3, #0
22679	beq	.L3661
22680.L3660:
22681	ldrb	r3, [r8, #1158]	@ zero_extendqisi2
22682	cmp	r3, #0
22683	beq	.L3662
22684.L3661:
22685	ldr	r3, [sp, #36]
22686	ldr	r2, [sp, #44]
22687	mul	r3, r3, r2
22688	str	r3, [sp, #44]
22689	mov	r3, #1
22690	str	r3, [sp, #36]
22691.L3662:
22692	ldr	r8, .L3744+4
22693	mov	r7, #0
22694	str	r7, [sp, #48]
22695.L3663:
22696	ldr	r3, [sp, #44]
22697	cmp	r3, r7
22698	bls	.L3676
22699	add	r3, r7, r7, lsl #1
22700	sub	r3, r3, #1
22701	str	r3, [sp, #52]
22702	mov	r3, #0
22703	b	.L3739
22704.L3651:
22705	ldrh	r3, [r5, #-14]
22706	ldrb	r2, [r7, #-3127]	@ zero_extendqisi2
22707	mul	r2, r2, r3
22708	lsl	r2, r2, #2
22709	b	.L3736
22710.L3658:
22711	ldr	r1, [r6, #4]
22712	mov	r10, #0
22713	ldr	r0, [r7, #-128]
22714	add	r1, r1, r2
22715	bl	ftl_memcpy
22716.L3737:
22717	mov	r5, #0
22718	b	.L3659
22719.L3672:
22720	ldr	r3, [sp, #56]
22721	ldrb	r1, [r8, #-3128]	@ zero_extendqisi2
22722	ldrh	r2, [r3, #96]
22723	ldr	r3, .L3744+36
22724	cmp	r1, #2
22725	ldrh	r3, [r3, #-2]
22726	mul	r3, r3, r2
22727	str	r3, [sp, #64]
22728	beq	.L3664
22729	ldr	r2, .L3744
22730	ldrb	r2, [r2, #1158]	@ zero_extendqisi2
22731	cmp	r2, #0
22732	beq	.L3665
22733.L3664:
22734	sub	r2, r7, #1
22735	add	r3, r2, r3
22736	add	r3, r3, fp
22737	orr	r3, r3, r1, lsl #24
22738.L3738:
22739	str	r3, [r6, #24]
22740	mov	r1, #1
22741	mov	r0, r6
22742	bl	sblk_read_page
22743	cmp	r10, #0
22744	beq	.L3669
22745	ldr	r3, [r8, #-128]
22746	ldr	r2, [r3, r9]
22747	cmp	r2, #0
22748	ldreq	r2, [r6, #12]
22749	ldreq	r2, [r2, #8]
22750	streq	r2, [r3, r9]
22751.L3669:
22752	ldr	r3, [r8, #-132]
22753	ldr	r2, [r6, #12]
22754	ldr	r3, [r3, r9]
22755	ldr	r1, [r2, #4]
22756	cmp	r3, r1
22757	bne	.L3670
22758	ldr	r0, [r8, #-128]
22759	ldr	ip, [r0, r9]
22760	ldr	r0, [r2, #8]
22761	cmp	ip, r0
22762	beq	.L3671
22763.L3670:
22764	ldr	r0, [r2, #12]
22765	str	r0, [sp, #16]
22766	ldr	r0, [r2, #8]
22767	str	r1, [sp, #8]
22768	str	r0, [sp, #12]
22769	ldr	r2, [r2]
22770	ldr	r0, .L3744+40
22771	str	r2, [sp, #4]
22772	ldr	r2, [r8, #-128]
22773	ldr	r2, [r2, r9]
22774	str	r2, [sp]
22775	ldr	r2, [r6, #36]
22776	ldr	r1, [r6, #24]
22777	bl	printk
22778	ldr	r3, [r8, #-132]
22779	ldr	r3, [r3, r9]
22780	cmn	r3, #1
22781	beq	.L3671
22782	mov	r0, r6
22783	bl	zbuf_free
22784	ldrh	r3, [r4, #80]
22785	mov	r0, #0
22786	ldr	r2, .L3744
22787	ldr	r1, [r2, #1092]
22788	lsl	r3, r3, #1
22789	strh	r0, [r1, r3]	@ movhi
22790	ldrh	r1, [r4, #80]
22791	ldr	r3, [r2, #1096]
22792	strh	r1, [r3, #130]	@ movhi
22793	b	.L3650
22794.L3665:
22795	cmp	r1, #3
22796	addne	r3, r7, r3
22797	bne	.L3738
22798	ldr	r2, .L3744
22799	ldrb	r2, [r2, #1159]	@ zero_extendqisi2
22800	cmp	r2, #0
22801	ldrne	r2, [sp, #52]
22802	addeq	r3, r7, r3
22803	orreq	r3, r3, fp, lsl #24
22804	addne	r3, r3, r2
22805	addne	r3, r3, fp
22806	orrne	r3, r3, #50331648
22807	b	.L3738
22808.L3671:
22809	ldr	r3, [sp, #48]
22810	add	fp, fp, #1
22811	add	r9, r9, #4
22812	add	r3, r3, #1
22813	str	r3, [sp, #48]
22814.L3674:
22815	ldr	r3, [sp, #36]
22816	cmp	r3, fp
22817	bcs	.L3672
22818	ldr	r3, [sp, #40]
22819	add	r3, r3, #1
22820.L3739:
22821	str	r3, [sp, #40]
22822	ldr	r2, [sp, #40]
22823	ldrb	r3, [r4, #89]	@ zero_extendqisi2
22824	cmp	r2, r3
22825	bge	.L3673
22826	ldr	r3, [sp, #48]
22827	mov	fp, #1
22828	lsl	r9, r3, #2
22829	add	r3, r4, r2, lsl #1
22830	str	r3, [sp, #56]
22831	b	.L3674
22832.L3673:
22833	ldrb	r3, [r8, #-3126]	@ zero_extendqisi2
22834	cmp	r3, #0
22835	addne	r7, r7, #1
22836	add	r7, r7, #1
22837	b	.L3663
22838.L3676:
22839	mov	r0, r6
22840	mov	r5, #0
22841	bl	zbuf_free
22842	ldr	r3, .L3744
22843	mov	r6, r5
22844	ldrb	r1, [r4, #89]	@ zero_extendqisi2
22845	mov	r10, r5
22846	ldrh	r2, [r4, #80]
22847	ldr	r0, [r3, #1092]
22848	ldr	r3, .L3744+8
22849	lsl	r2, r2, #1
22850	ldrh	ip, [r3, #-14]
22851	add	r9, r3, #3104
22852	smulbb	r1, r1, ip
22853	strh	r1, [r0, r2]	@ movhi
22854.L3678:
22855	ldr	r3, [sp, #44]
22856	cmp	r3, r6
22857	bls	.L3692
22858	add	r2, r6, r6, lsl #1
22859	sub	r3, r2, #1
22860	str	r3, [sp, #52]
22861	mov	r3, #0
22862	b	.L3741
22863.L3688:
22864	ldr	r2, [r9, #-132]
22865	ldr	fp, [r2, r10, lsl #2]
22866	cmn	fp, #1
22867	beq	.L3679
22868	ldr	r2, [r9, #-128]
22869	mov	r0, fp
22870	ldr	r3, [r2, r10, lsl #2]
22871	str	r3, [sp, #48]
22872	bl	lpa_hash_get_ppa
22873	cmn	r0, #1
22874	str	r0, [sp, #68]
22875	bne	.L3680
22876	mov	r2, #0
22877	add	r1, sp, #68
22878	mov	r0, fp
22879	bl	pm_log2phys
22880.L3680:
22881	ldr	r3, [sp, #56]
22882	ldr	r1, .L3744+44
22883	ldrb	r0, [r9, #-3128]	@ zero_extendqisi2
22884	ldrh	r2, [r3, #96]
22885	ldrh	r1, [r1]
22886	cmp	r0, #2
22887	mul	r2, r1, r2
22888	beq	.L3681
22889	ldr	r1, .L3744
22890	ldrb	ip, [r1, #1158]	@ zero_extendqisi2
22891	cmp	ip, #0
22892	beq	.L3682
22893.L3681:
22894	sub	r1, r6, #1
22895	add	r2, r1, r2
22896	add	r2, r2, r8
22897	orr	r2, r2, r0, lsl #24
22898.L3740:
22899	str	r2, [sp, #64]
22900	ldr	r2, .L3744+48
22901	ldr	r3, [sp, #48]
22902	ldrb	r1, [r9, #-3136]	@ zero_extendqisi2
22903	ldrh	ip, [r2, #-2]
22904	ldr	r2, .L3744
22905	ldrb	r0, [r2, #1153]	@ zero_extendqisi2
22906	mov	r2, #1
22907	str	r2, [sp, #60]
22908	rsb	r0, r0, #24
22909	sub	r0, r0, ip
22910	lsl	r0, r2, r0
22911	sub	r0, r0, #1
22912	and	r0, r0, r3, lsr ip
22913	bl	__aeabi_uidiv
22914	ldr	r1, [sp, #68]
22915	mov	r7, r0
22916	ldr	r3, [sp, #48]
22917	ldr	r2, [sp, #60]
22918	cmp	r3, r1
22919	bne	.L3686
22920	add	r1, sp, #64
22921	mov	r0, fp
22922	bl	pm_log2phys
22923	uxth	r0, r7
22924	add	r5, r5, #1
22925	bl	ftl_vpn_decrement
22926.L3687:
22927	ldr	r1, .L3744
22928	uxth	r7, r7
22929	add	r10, r10, #1
22930	ldr	r2, [r1, #1084]
22931	add	r2, r2, r7, lsl #2
22932	ldrb	r2, [r2, #2]	@ zero_extendqisi2
22933	ands	r0, r2, #224
22934	bne	.L3679
22935	ldr	r2, [r1, #1092]
22936	lsl	r7, r7, #1
22937	ldrh	r1, [r2, r7]
22938	cmp	r1, #0
22939	strhne	r0, [r2, r7]	@ movhi
22940.L3679:
22941	add	r8, r8, #1
22942.L3690:
22943	ldr	r3, [sp, #36]
22944	cmp	r3, r8
22945	bcs	.L3688
22946	ldr	r3, [sp, #40]
22947	add	r3, r3, #1
22948.L3741:
22949	str	r3, [sp, #40]
22950	ldrb	r2, [r4, #89]	@ zero_extendqisi2
22951	ldr	r3, [sp, #40]
22952	cmp	r3, r2
22953	bge	.L3689
22954	add	r3, r4, r3, lsl #1
22955	mov	r8, #1
22956	str	r3, [sp, #56]
22957	b	.L3690
22958.L3682:
22959	cmp	r0, #3
22960	addne	r2, r6, r2
22961	bne	.L3740
22962	ldrb	r1, [r1, #1159]	@ zero_extendqisi2
22963	cmp	r1, #0
22964	lsl	r1, r8, #24
22965	ldrne	r3, [sp, #52]
22966	addeq	r2, r6, r2
22967	addne	r2, r2, r3
22968	addne	r2, r2, r8
22969	orr	r2, r2, r1
22970	b	.L3740
22971.L3686:
22972	ldr	r2, [sp, #64]
22973	cmp	r1, r2
22974	addeq	r5, r5, #1
22975	b	.L3687
22976.L3689:
22977	ldrb	r2, [r9, #-3126]	@ zero_extendqisi2
22978	cmp	r2, #0
22979	addne	r6, r6, #1
22980	add	r6, r6, #1
22981	b	.L3678
22982.L3692:
22983	ldrh	r3, [r4, #80]
22984	ldr	r2, .L3744
22985	ldr	r2, [r2, #1092]
22986	lsl	r3, r3, #1
22987	strh	r5, [r2, r3]	@ movhi
22988	ldrh	r0, [r4, #80]
22989	bl	zftl_insert_data_list
22990	b	.L3650
22991.L3644:
22992	ldrh	r3, [r4, #130]
22993	cmp	r3, r2
22994	beq	.L3643
22995	ldr	r2, [r8, #2800]
22996	ldrh	r2, [r2, #126]
22997	cmp	r2, r3
22998	bne	.L3698
22999	bl	pm_flush
23000	ldr	r3, [r8, #1096]
23001	ldrh	r0, [r3, #130]
23002	bl	ftl_free_sblk
23003	ldr	r3, [r8, #2800]
23004	mvn	r2, #0
23005	mov	r0, r5
23006	strh	r2, [r3, #126]	@ movhi
23007	bl	ftl_info_flush
23008.L3698:
23009	ldr	r3, [r8, #1096]
23010	mvn	r2, #0
23011	strh	r2, [r3, #130]	@ movhi
23012	b	.L3643
23013.L3745:
23014	.align	2
23015.L3744:
23016	.word	.LANCHOR0
23017	.word	.LANCHOR3
23018	.word	.LANCHOR3-3104
23019	.word	-178307901
23020	.word	.LC245
23021	.word	.LC247
23022	.word	.LANCHOR1+2361
23023	.word	.LC0
23024	.word	.LANCHOR3-3088
23025	.word	.LANCHOR3-3072
23026	.word	.LC246
23027	.word	.LANCHOR3-3074
23028	.word	.LANCHOR3-3136
23029	.fnend
23030	.size	gc_recovery, .-gc_recovery
23031	.align	2
23032	.global	gc_update_l2p_map_new
23033	.syntax unified
23034	.arm
23035	.fpu softvfp
23036	.type	gc_update_l2p_map_new, %function
23037gc_update_l2p_map_new:
23038	.fnstart
23039	@ args = 0, pretend = 0, frame = 24
23040	@ frame_needed = 0, uses_anonymous_args = 0
23041	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
23042	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23043	.pad #28
23044	sub	sp, sp, #28
23045	ldr	r4, .L3781
23046	ldr	r3, .L3781+4
23047	ldr	r5, [r4, #1096]
23048	ldrh	r3, [r3, #-14]
23049	ldrb	r2, [r5, #89]	@ zero_extendqisi2
23050	mul	r3, r2, r3
23051	str	r3, [sp]
23052	ldr	r3, .L3781+8
23053	ldr	r2, [r3]
23054	mov	fp, r3
23055	tst	r2, #256
23056	beq	.L3747
23057	ldrh	r1, [r5, #80]
23058	ldr	r0, .L3781+12
23059	bl	printk
23060.L3747:
23061	ldr	r2, .L3781+16
23062	mov	r7, #0
23063	ldrh	r3, [r5, #80]
23064	mov	r6, r7
23065	ldr	r0, [sp]
23066	ldrb	r2, [r2, #-11]	@ zero_extendqisi2
23067	ldr	r8, .L3781+16
23068	ldr	r1, [r4, #1092]
23069	lsl	r3, r3, #1
23070	sub	r2, r0, r2
23071	strh	r2, [r1, r3]	@ movhi
23072.L3748:
23073	ldr	r3, [sp]
23074	cmp	r6, r3
23075	bne	.L3757
23076	ldr	r3, [fp]
23077	tst	r3, #256
23078	beq	.L3758
23079	ldrh	r2, [r5, #80]
23080	mov	r3, r7
23081	ldr	r0, [r4, #1092]
23082	ldr	r1, [r4, #1096]
23083	lsl	r2, r2, #1
23084	ldrh	r1, [r1, #80]
23085	ldrh	r2, [r0, r2]
23086	ldr	r0, .L3781+20
23087	bl	printk
23088.L3758:
23089	ldrh	r3, [r5, #80]
23090	ldr	r2, [r4, #1092]
23091	lsl	r3, r3, #1
23092	ldrh	r3, [r2, r3]
23093	cmp	r7, r3
23094	beq	.L3759
23095	movw	r2, #898
23096	ldr	r1, .L3781+24
23097	ldr	r0, .L3781+28
23098	bl	printk
23099	bl	dump_stack
23100.L3759:
23101	ldrh	r3, [r5, #80]
23102	ldr	r2, [r4, #1092]
23103	lsl	r3, r3, #1
23104	strh	r7, [r2, r3]	@ movhi
23105	ldrh	r0, [r5, #80]
23106	bl	zftl_insert_data_list
23107	add	sp, sp, #28
23108	@ sp needed
23109	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
23110.L3757:
23111	ldr	r3, [r8, #-132]
23112	lsl	r9, r6, #2
23113	ldr	r10, [r3, r6, lsl #2]
23114	cmn	r10, #1
23115	beq	.L3749
23116	ldrb	r1, [r8, #-2546]	@ zero_extendqisi2
23117	mov	r0, r10
23118	lsl	r1, r1, #7
23119	bl	__aeabi_uidiv
23120	uxth	r3, r0
23121	str	r3, [sp, #12]
23122	ldr	r3, [fp]
23123	tst	r3, #256
23124	beq	.L3750
23125	mov	r3, r6
23126	mov	r2, r10
23127	ldr	r1, [sp, #12]
23128	ldr	r0, .L3781+32
23129	bl	printk
23130.L3750:
23131	str	r6, [sp, #8]
23132.L3756:
23133	ldr	r3, [r8, #-132]
23134	ldr	r10, [r3, r9]
23135	cmn	r10, #1
23136	beq	.L3751
23137	ldrb	r1, [r8, #-2546]	@ zero_extendqisi2
23138	mov	r0, r10
23139	lsl	r1, r1, #7
23140	bl	__aeabi_uidiv
23141	ldr	r3, [sp, #12]
23142	uxth	r0, r0
23143	cmp	r3, r0
23144	bne	.L3751
23145	ldr	r3, [r8, #-128]
23146	mov	r0, r10
23147	ldr	r3, [r3, r9]
23148	str	r3, [sp, #4]
23149	bl	lpa_hash_get_ppa
23150	cmn	r0, #1
23151	str	r0, [sp, #20]
23152	bne	.L3752
23153	mov	r2, #0
23154	add	r1, sp, #20
23155	mov	r0, r10
23156	bl	pm_log2phys
23157.L3752:
23158	ldr	r3, [sp, #20]
23159	ldr	r2, [sp, #4]
23160	cmp	r2, r3
23161	bne	.L3753
23162	ldr	r3, .L3781+16
23163	add	r1, sp, #24
23164	mov	r2, #1
23165	mov	r0, r10
23166	add	r7, r7, #1
23167	ldr	r3, [r3, #-124]
23168	ldr	r3, [r3, r9]
23169	str	r3, [r1, #-8]!
23170	bl	pm_log2phys
23171	ldr	r3, .L3781+36
23172	ldr	r2, [sp, #4]
23173	ldrh	r0, [r3]
23174	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
23175	rsb	r3, r3, #24
23176	sub	r3, r3, r0
23177	lsr	r0, r2, r0
23178	ldr	r2, .L3781+16
23179	ldrb	r1, [r2, #-3136]	@ zero_extendqisi2
23180	mvn	r2, #0
23181	bic	r0, r0, r2, lsl r3
23182	bl	__aeabi_uidiv
23183	uxth	r0, r0
23184.L3780:
23185	bl	ftl_vpn_decrement
23186	ldr	r3, [r8, #-132]
23187	mvn	r2, #0
23188	str	r2, [r3, r9]
23189.L3751:
23190	ldr	r3, [sp, #8]
23191	add	r9, r9, #4
23192	add	r3, r3, #1
23193	str	r3, [sp, #8]
23194	ldr	r2, [sp, #8]
23195	ldr	r3, [sp]
23196	cmp	r3, r2
23197	bne	.L3756
23198.L3749:
23199	add	r6, r6, #1
23200	b	.L3748
23201.L3753:
23202	ldr	r2, [fp]
23203	tst	r2, #256
23204	beq	.L3755
23205	ldr	r2, [sp, #4]
23206	mov	r1, r10
23207	ldr	r0, .L3781+40
23208	bl	printk
23209.L3755:
23210	ldrh	r0, [r5, #80]
23211	b	.L3780
23212.L3782:
23213	.align	2
23214.L3781:
23215	.word	.LANCHOR0
23216	.word	.LANCHOR3-3104
23217	.word	.LANCHOR2
23218	.word	.LC248
23219	.word	.LANCHOR3
23220	.word	.LC251
23221	.word	.LANCHOR1+2373
23222	.word	.LC0
23223	.word	.LC249
23224	.word	.LANCHOR3-3138
23225	.word	.LC250
23226	.fnend
23227	.size	gc_update_l2p_map_new, .-gc_update_l2p_map_new
23228	.align	2
23229	.global	gc_scan_src_blk_one_page
23230	.syntax unified
23231	.arm
23232	.fpu softvfp
23233	.type	gc_scan_src_blk_one_page, %function
23234gc_scan_src_blk_one_page:
23235	.fnstart
23236	@ args = 0, pretend = 0, frame = 8
23237	@ frame_needed = 0, uses_anonymous_args = 0
23238	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
23239	.save {r4, r5, r6, r7, r8, r9, r10, lr}
23240	.pad #8
23241	mov	r1, #0
23242	ldr	r5, .L3810
23243	mov	lr, r1
23244	movw	r0, #65535
23245	ldr	r4, .L3810+4
23246	ldrb	r3, [r5, #2828]	@ zero_extendqisi2
23247	ldr	r7, .L3810+8
23248	add	r2, r4, r3, lsl #1
23249	ldrb	ip, [r7, #-3127]	@ zero_extendqisi2
23250	ldrh	r8, [r2, #36]
23251	ldrh	r2, [r4, #2]
23252.L3784:
23253	cmp	r8, r0
23254	beq	.L3786
23255	cmp	lr, #0
23256	mov	r0, #1
23257	strhne	r2, [r4, #2]	@ movhi
23258	cmp	r1, #0
23259	strbne	r3, [r5, #2828]
23260	mov	r9, #1
23261	bl	buf_alloc
23262	mov	r6, r0
23263.L3789:
23264	ldrb	r1, [r5, #2830]	@ zero_extendqisi2
23265	cmp	r9, r1
23266	ble	.L3799
23267	mov	r0, r6
23268	bl	zbuf_free
23269	ldrb	r3, [r5, #2828]	@ zero_extendqisi2
23270	ldrb	r2, [r7, #-3127]	@ zero_extendqisi2
23271	add	r3, r3, #1
23272	uxtb	r3, r3
23273	cmp	r2, r3
23274	strb	r3, [r5, #2828]
23275	ldrheq	r3, [r4, #2]
23276	addeq	r3, r3, #1
23277	strheq	r3, [r4, #2]	@ movhi
23278	moveq	r3, #0
23279	strbeq	r3, [r5, #2828]
23280	add	sp, sp, #8
23281	@ sp needed
23282	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
23283.L3786:
23284	add	r3, r3, #1
23285	uxtb	r3, r3
23286	cmp	r3, ip
23287	moveq	r3, #0
23288	addeq	r2, r2, #1
23289	add	r1, r4, r3, lsl #1
23290	uxtheq	r2, r2
23291	ldrh	r8, [r1, #36]
23292	moveq	lr, #1
23293	mov	r1, #1
23294	b	.L3784
23295.L3799:
23296	ldr	r3, .L3810+12
23297	cmp	r1, #2
23298	ldrh	r3, [r3]
23299	mul	r2, r8, r3
23300	ldrheq	r3, [r4, #2]
23301	addeq	r3, r2, r3, lsl #1
23302	subeq	r3, r3, #1
23303	beq	.L3809
23304	cmp	r1, #3
23305	ldrhne	r3, [r4, #2]
23306	addne	r3, r3, r2
23307	bne	.L3808
23308	ldrb	r3, [r5, #1158]	@ zero_extendqisi2
23309	cmp	r3, #0
23310	bne	.L3793
23311	ldrb	r3, [r5, #1159]	@ zero_extendqisi2
23312	cmp	r3, #0
23313	ldrheq	r3, [r4, #2]
23314	addeq	r3, r3, r2
23315	orreq	r3, r3, r9, lsl #24
23316	beq	.L3808
23317.L3793:
23318	ldrh	r3, [r4, #2]
23319	add	r3, r3, r3, lsl #1
23320	sub	r3, r3, #1
23321	add	r3, r3, r2
23322.L3809:
23323	ldrb	r2, [r7, #-3128]	@ zero_extendqisi2
23324	add	r3, r3, r9
23325	orr	r3, r3, r2, lsl #24
23326.L3808:
23327	str	r3, [r6, #24]
23328	mov	r1, #1
23329	mov	r0, r6
23330	bl	sblk_read_page
23331	ldr	r3, [r6, #36]
23332	cmp	r3, #512
23333	cmnne	r3, #1
23334	beq	.L3796
23335	ldr	r3, [r6, #12]
23336	ldr	r10, [r3, #4]
23337	mov	r0, r10
23338	bl	lpa_hash_get_ppa
23339	cmn	r0, #1
23340	str	r0, [sp, #4]
23341	bne	.L3797
23342	ldr	r3, [r5, #2780]
23343	cmp	r10, r3
23344	bcs	.L3797
23345	mov	r2, #0
23346	add	r1, sp, #4
23347	mov	r0, r10
23348	bl	pm_log2phys
23349.L3797:
23350	ldr	r3, [r6, #24]
23351	ldr	r2, [sp, #4]
23352	cmp	r3, r2
23353	ldrheq	r1, [r4, #20]
23354	ldreq	r2, [r7, #-3132]
23355	streq	r3, [r2, r1, lsl #2]
23356	ldrheq	r3, [r4, #20]
23357	addeq	r3, r3, #1
23358	strheq	r3, [r4, #20]	@ movhi
23359.L3796:
23360	ldrh	r3, [r4, #22]
23361	add	r9, r9, #1
23362	add	r3, r3, #1
23363	strh	r3, [r4, #22]	@ movhi
23364	b	.L3789
23365.L3811:
23366	.align	2
23367.L3810:
23368	.word	.LANCHOR0
23369	.word	.LANCHOR0+2824
23370	.word	.LANCHOR3
23371	.word	.LANCHOR3-3074
23372	.fnend
23373	.size	gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page
23374	.align	2
23375	.global	gc_scan_src_blk
23376	.syntax unified
23377	.arm
23378	.fpu softvfp
23379	.type	gc_scan_src_blk, %function
23380gc_scan_src_blk:
23381	.fnstart
23382	@ args = 0, pretend = 0, frame = 24
23383	@ frame_needed = 0, uses_anonymous_args = 0
23384	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
23385	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23386	movw	r3, #2824
23387	ldr	r4, .L3867
23388	.pad #28
23389	sub	sp, sp, #28
23390	ldrh	r2, [r4, r3]
23391	movw	r3, #65535
23392	cmp	r2, r3
23393	bne	.L3813
23394	movw	r2, #1505
23395	ldr	r1, .L3867+4
23396	ldr	r0, .L3867+8
23397	bl	printk
23398	bl	dump_stack
23399.L3813:
23400	movw	r3, #2824
23401	ldrh	r1, [r4, r3]
23402	movw	r3, #65535
23403	cmp	r1, r3
23404	moveq	r0, #0
23405	beq	.L3812
23406	ldr	r3, .L3867+12
23407	ldr	r3, [r3]
23408	tst	r3, #256
23409	beq	.L3815
23410	ldr	r2, [r4, #1092]
23411	lsl	r3, r1, #1
23412	ldr	r0, .L3867+16
23413	ldrh	r2, [r2, r3]
23414	bl	printk
23415.L3815:
23416	ldr	r7, .L3867+20
23417	movw	r5, #2824
23418	bl	timer_get_time
23419	ldrh	r0, [r4, r5]
23420	add	r1, r7, #36
23421	bl	ftl_get_blk_list_in_sblk
23422	uxtb	r0, r0
23423	cmp	r0, #0
23424	strb	r0, [r4, #2829]
23425	mvneq	r3, #0
23426	strheq	r3, [r4, r5]	@ movhi
23427	beq	.L3812
23428	ldrh	r3, [r4, r5]
23429	ldr	r2, [r4, #1084]
23430	add	r2, r2, r3, lsl #2
23431	ldrb	r2, [r2, #2]	@ zero_extendqisi2
23432	and	r2, r2, #224
23433	cmp	r2, #32
23434	beq	.L3817
23435	cmp	r2, #0
23436	cmpne	r2, #224
23437	beq	.L3818
23438	ldr	r2, [r4, #1096]
23439	ldrh	r1, [r2, #16]
23440	cmp	r1, r3
23441	beq	.L3817
23442	ldrh	r1, [r2, #48]
23443	cmp	r1, r3
23444	beq	.L3817
23445	ldrh	r2, [r2, #80]
23446	cmp	r2, r3
23447	bne	.L3860
23448.L3817:
23449	mvn	r2, #0
23450	movw	r3, #2824
23451	mov	r0, #0
23452	strh	r2, [r4, r3]	@ movhi
23453	strh	r0, [r7, #20]	@ movhi
23454.L3812:
23455	add	sp, sp, #28
23456	@ sp needed
23457	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
23458.L3818:
23459	cmp	r2, #0
23460	bne	.L3817
23461	ldr	r2, [r4, #1092]
23462	lsl	r3, r3, #1
23463	ldrh	r3, [r2, r3]
23464	cmp	r3, #0
23465	beq	.L3820
23466	movw	r2, #1530
23467	ldr	r1, .L3867+4
23468	ldr	r0, .L3867+8
23469	bl	printk
23470	bl	dump_stack
23471.L3820:
23472	movw	r3, #2824
23473	ldr	r2, [r4, #1092]
23474	ldrh	r3, [r4, r3]
23475	mov	r1, #0
23476	lsl	r3, r3, #1
23477	strh	r1, [r2, r3]	@ movhi
23478	b	.L3817
23479.L3860:
23480	add	r0, r7, r0, lsl #1
23481	movw	r3, #65535
23482	ldrh	r10, [r0, #34]
23483	cmp	r10, r3
23484	bne	.L3821
23485	movw	r2, #1540
23486	ldr	r1, .L3867+4
23487	ldr	r0, .L3867+8
23488	bl	printk
23489	bl	dump_stack
23490.L3821:
23491	movw	r2, #2824
23492	ldr	r8, .L3867+24
23493	ldrh	r0, [r4, r2]
23494	ldr	r2, [r4, #1084]
23495	sub	r1, r8, #3072
23496	sub	fp, r8, #3088
23497	ldrh	r6, [fp, #-8]
23498	ldrh	r3, [r1, #-2]
23499	add	r2, r2, r0, lsl #2
23500	str	r1, [sp, #4]
23501	sub	r6, r6, #1
23502	ldrb	r2, [r2, #2]	@ zero_extendqisi2
23503	uxth	r6, r6
23504	mul	r3, r10, r3
23505	and	r2, r2, #224
23506	cmp	r2, #160
23507	movne	r9, #1
23508	bne	.L3822
23509	ldrb	r2, [r8, #-3128]	@ zero_extendqisi2
23510	cmp	r2, #2
23511	uxth	r9, r2
23512	orr	r3, r3, r2, lsl #24
23513	subeq	r2, r8, #3104
23514	ldrheq	r6, [r2, #-14]
23515	ldrb	r2, [r4, #1158]	@ zero_extendqisi2
23516	subeq	r6, r6, #1
23517	uxtheq	r6, r6
23518	cmp	r2, #0
23519	bne	.L3824
23520	ldrb	r2, [r4, #1159]	@ zero_extendqisi2
23521	cmp	r2, #0
23522	beq	.L3822
23523.L3824:
23524	ldr	r2, .L3867+28
23525	ldrh	r6, [r2, #-14]
23526	sub	r6, r6, #1
23527	uxth	r6, r6
23528.L3822:
23529	orr	r6, r6, r3
23530	strb	r9, [r4, #2830]
23531	mov	r3, #0
23532	mov	r0, #1
23533	strh	r3, [r7, #2]	@ movhi
23534	strb	r3, [r4, #2828]
23535	strh	r3, [r7, #22]	@ movhi
23536	strh	r3, [r7, #24]	@ movhi
23537	str	r3, [sp]
23538	bl	buf_alloc
23539	mov	r1, #1
23540	str	r6, [r0, #24]
23541	mov	r5, r0
23542	bl	sblk_read_page
23543	ldr	r3, [sp]
23544	strh	r3, [r7, #20]	@ movhi
23545	ldr	r3, [r5, #36]
23546	cmn	r3, #1
23547	cmpne	r3, #512
23548	bne	.L3825
23549.L3865:
23550	mov	r0, r5
23551	bl	zbuf_free
23552.L3863:
23553	mvn	r0, #0
23554	b	.L3812
23555.L3825:
23556	ldr	r1, [r5, #12]
23557	ldr	r3, .L3867+32
23558	ldr	r2, [r1]
23559	str	r3, [sp, #8]
23560	cmp	r2, r3
23561	beq	.L3826
23562	movw	r2, #1578
23563.L3866:
23564	ldr	r1, .L3867+4
23565	ldr	r0, .L3867+8
23566	bl	printk
23567	bl	dump_stack
23568	b	.L3865
23569.L3826:
23570	ldrb	r2, [r8, #-3127]	@ zero_extendqisi2
23571	ldrh	r3, [fp, #-8]
23572	smulbb	r3, r3, r2
23573	smulbb	r3, r3, r9
23574	uxth	r3, r3
23575	str	r3, [sp]
23576	ldrb	r3, [r8, #-11]	@ zero_extendqisi2
23577	cmp	r3, #2
23578	cmpeq	r9, #3
23579	bne	.L3827
23580	ldr	r3, .L3867+28
23581	ldrh	r0, [r8, #-14]
23582	ldr	r1, [r5, #4]
23583	ldrh	r9, [r3, #-14]
23584	ldr	r3, [r8, #-3132]
23585	lsl	r9, r9, #2
23586	smulbb	r9, r9, r2
23587	sub	r9, r9, r0
23588	lsr	r0, r0, #2
23589	uxth	r9, r9
23590	add	r0, r3, r0, lsl #2
23591	mov	r2, r9
23592	bl	ftl_memcpy
23593	ldr	r3, [r5, #12]
23594	ldr	r3, [r3, #4]
23595	cmp	r3, #0
23596	beq	.L3828
23597	mov	r1, r9
23598	ldr	r0, [r5, #4]
23599	str	r3, [sp, #12]
23600	bl	js_hash
23601	ldr	r3, [sp, #12]
23602	cmp	r3, r0
23603	beq	.L3828
23604	mov	r0, r5
23605	bl	zbuf_free
23606	ldr	r1, [r5, #12]
23607	mov	r3, r9
23608.L3864:
23609	ldr	r2, [r5, #24]
23610	ldr	r1, [r1, #4]
23611	ldr	r0, .L3867+36
23612	bl	printk
23613	b	.L3863
23614.L3828:
23615	ldrb	r3, [r4, #1158]	@ zero_extendqisi2
23616	cmp	r3, #0
23617	bne	.L3829
23618	ldrb	r3, [r4, #1159]	@ zero_extendqisi2
23619	cmp	r3, #0
23620	beq	.L3830
23621.L3829:
23622	sub	r6, r6, #1
23623	str	r6, [r5, #24]
23624.L3831:
23625	mov	r1, #1
23626	mov	r0, r5
23627	bl	sblk_read_page
23628	ldr	r3, [r5, #36]
23629	cmn	r3, #1
23630	cmpne	r3, #512
23631	beq	.L3865
23632	ldr	r3, [r5, #12]
23633	ldr	r2, [sp, #8]
23634	ldr	r3, [r3]
23635	cmp	r3, r2
23636	movwne	r2, #1619
23637	ldrheq	r2, [r8, #-14]
23638	bne	.L3866
23639.L3862:
23640	ldr	r1, [r5, #4]
23641	mov	r9, #0
23642	ldr	r0, [r8, #-3132]
23643	mov	r10, #1
23644	bl	ftl_memcpy
23645	ldr	r6, [r8, #-3132]
23646	sub	r6, r6, #4
23647.L3836:
23648	ldr	r3, [sp]
23649	cmp	r9, r3
23650	blt	.L3841
23651	mov	r0, r5
23652	bl	zbuf_free
23653	movw	r3, #2824
23654	ldr	r2, [r4, #1092]
23655	ldrh	r1, [r4, r3]
23656	lsl	r3, r1, #1
23657	ldrh	r2, [r2, r3]
23658	ldrh	r3, [r7, #20]
23659	cmp	r2, r3
23660	beq	.L3842
23661	ldr	r0, .L3867+40
23662	bl	printk
23663.L3842:
23664	movw	r3, #2824
23665	ldrh	r1, [r7, #20]
23666	ldrh	r3, [r4, r3]
23667	ldr	r2, [r4, #1092]
23668	lsl	r3, r3, #1
23669	strh	r1, [r2, r3]	@ movhi
23670	mov	r3, #0
23671	strh	r3, [r7, #24]	@ movhi
23672	ldrh	r0, [r7, #20]
23673	b	.L3812
23674.L3830:
23675	ldr	r2, [sp, #4]
23676	ldrh	r3, [fp, #-8]
23677	ldrh	r2, [r2, #-2]
23678	sub	r3, r3, #1
23679	uxth	r3, r3
23680	mul	r10, r10, r2
23681	orr	r3, r3, #33554432
23682	orr	r10, r3, r10
23683	str	r10, [r5, #24]
23684	b	.L3831
23685.L3827:
23686	ldr	r3, [sp]
23687	ldr	r9, [r1, #4]
23688	ldr	r0, [r5, #4]
23689	lsl	r6, r3, #2
23690	mov	r1, r6
23691	bl	js_hash
23692	cmp	r9, r0
23693	moveq	r2, r6
23694	beq	.L3862
23695	mov	r0, r5
23696	bl	zbuf_free
23697	ldr	r1, [r5, #12]
23698	mov	r3, r6
23699	b	.L3864
23700.L3841:
23701	ldr	r0, [r6, #4]!
23702	cmn	r0, #1
23703	beq	.L3838
23704	bl	lpa_hash_get_ppa
23705	cmn	r0, #1
23706	str	r0, [sp, #20]
23707	bne	.L3839
23708	mov	r2, #0
23709	add	r1, sp, #20
23710	ldr	r0, [r6]
23711	bl	pm_log2phys
23712.L3839:
23713	ldr	r3, .L3867+44
23714	ldr	fp, [sp, #20]
23715	ldrb	r1, [r8, #-3136]	@ zero_extendqisi2
23716	ldrh	r0, [r3]
23717	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
23718	rsb	r3, r3, #24
23719	sub	r3, r3, r0
23720	lsl	r3, r10, r3
23721	sub	r3, r3, #1
23722	and	r0, r3, fp, lsr r0
23723	bl	__aeabi_uidiv
23724	ldrh	r3, [r7]
23725	cmp	r0, r3
23726	ldreq	r3, [r8, #-3132]
23727	ldrheq	r2, [r7, #20]
23728	streq	fp, [r3, r2, lsl #2]
23729	ldrheq	r3, [r7, #20]
23730	addeq	r3, r3, #1
23731	strheq	r3, [r7, #20]	@ movhi
23732.L3838:
23733	bl	timer_get_time
23734	add	r9, r9, #1
23735	b	.L3836
23736.L3868:
23737	.align	2
23738.L3867:
23739	.word	.LANCHOR0
23740	.word	.LANCHOR1+2395
23741	.word	.LC0
23742	.word	.LANCHOR2
23743	.word	.LC252
23744	.word	.LANCHOR0+2824
23745	.word	.LANCHOR3
23746	.word	.LANCHOR3-3104
23747	.word	-178307901
23748	.word	.LC253
23749	.word	.LC254
23750	.word	.LANCHOR3-3138
23751	.fnend
23752	.size	gc_scan_src_blk, .-gc_scan_src_blk
23753	.align	2
23754	.global	gc_scan_static_data
23755	.syntax unified
23756	.arm
23757	.fpu softvfp
23758	.type	gc_scan_static_data, %function
23759gc_scan_static_data:
23760	.fnstart
23761	@ args = 0, pretend = 0, frame = 8
23762	@ frame_needed = 0, uses_anonymous_args = 0
23763	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
23764	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23765	.pad #12
23766	ldr	r4, .L3886
23767	ldr	r3, [r4, #1096]
23768	ldr	r2, [r3, #544]
23769	cmn	r2, #1
23770	beq	.L3870
23771	ldr	r6, .L3886+4
23772	mov	r7, #0
23773	ldr	r9, .L3886+8
23774	sub	r10, r6, #3136
23775.L3878:
23776	ldr	r3, [r4, #1096]
23777	mov	r2, #0
23778	add	r1, sp, #4
23779	uxth	r8, r7
23780	ldr	r0, [r3, #544]
23781	bl	pm_log2phys
23782	ldr	r3, [sp, #4]
23783	cmn	r3, #1
23784	beq	.L3871
23785	mov	r0, #1
23786	bl	buf_alloc
23787	ldr	r3, [sp, #4]
23788	mov	r5, r0
23789	mov	r1, #1
23790	str	r3, [r0, #24]
23791	bl	sblk_read_page
23792	ldr	r3, [r5, #36]
23793	cmp	r3, #256
23794	bne	.L3872
23795	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
23796	mov	fp, #1
23797	ldrh	r2, [r10, #-2]
23798	ldr	r0, [sp, #4]
23799	rsb	r3, r3, #24
23800	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
23801	sub	r3, r3, r2
23802	lsl	r3, fp, r3
23803	sub	r3, r3, #1
23804	and	r0, r3, r0, lsr r2
23805	bl	__aeabi_uidiv
23806	mov	r2, #0
23807	mov	r1, fp
23808	uxth	r0, r0
23809	bl	gc_add_sblk
23810.L3872:
23811	ldr	r2, [r5, #12]
23812	ldr	r3, [r4, #1096]
23813	ldr	r2, [r2, #4]
23814	ldr	r3, [r3, #544]
23815	cmp	r2, r3
23816	beq	.L3873
23817	movw	r2, #2163
23818	mov	r1, r9
23819	ldr	r0, .L3886+12
23820	bl	printk
23821	bl	dump_stack
23822.L3873:
23823	mov	r0, r5
23824	bl	zbuf_free
23825.L3871:
23826	ldr	r3, [r4, #1096]
23827	ldr	r1, [r4, #2780]
23828	ldr	r2, [r3, #544]
23829	add	r2, r2, #1
23830	cmp	r2, r1
23831	str	r2, [r3, #544]
23832	bcc	.L3874
23833	mvn	r2, #0
23834	str	r2, [r3, #544]
23835	ldr	r2, [r3, #548]
23836	add	r2, r2, #1
23837	str	r2, [r3, #548]
23838	bl	ftl_flush
23839	bl	pm_flush
23840	bl	ftl_ext_info_flush
23841	mov	r0, #0
23842	bl	ftl_info_flush
23843.L3869:
23844	add	sp, sp, #12
23845	@ sp needed
23846	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
23847.L3874:
23848	ldr	r3, [sp, #4]
23849	cmn	r3, #1
23850	bne	.L3869
23851	ldrh	r3, [r6, #-14]
23852	add	r7, r7, #1
23853	cmp	r8, r3, lsr #2
23854	bcc	.L3878
23855	b	.L3869
23856.L3870:
23857	ldr	r2, [r3, #536]
23858	ldr	r1, [r3, #12]
23859	add	r2, r2, #12910592
23860	add	r2, r2, #49408
23861	cmp	r1, r2
23862	bhi	.L3880
23863	ldr	r0, [r4, #2800]
23864	ldr	r2, [r3, #540]
23865	ldr	r0, [r0, #44]
23866	add	r2, r2, #4992
23867	add	r2, r2, #8
23868	cmp	r0, r2
23869	bls	.L3869
23870.L3880:
23871	ldr	r2, [r4, #2800]
23872	ldr	r2, [r2, #44]
23873	str	r1, [r3, #536]
23874	str	r2, [r3, #540]
23875	mov	r2, #0
23876	str	r2, [r3, #544]
23877	b	.L3869
23878.L3887:
23879	.align	2
23880.L3886:
23881	.word	.LANCHOR0
23882	.word	.LANCHOR3
23883	.word	.LANCHOR1+2411
23884	.word	.LC0
23885	.fnend
23886	.size	gc_scan_static_data, .-gc_scan_static_data
23887	.align	2
23888	.global	gc_block_vpn_scan
23889	.syntax unified
23890	.arm
23891	.fpu softvfp
23892	.type	gc_block_vpn_scan, %function
23893gc_block_vpn_scan:
23894	.fnstart
23895	@ args = 0, pretend = 0, frame = 32
23896	@ frame_needed = 0, uses_anonymous_args = 0
23897	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
23898	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23899	movw	r5, #1080
23900	ldr	r4, .L3922
23901	.pad #44
23902	sub	sp, sp, #44
23903	ldr	r2, [r4, #1096]
23904	ldrh	r3, [r4, r5]
23905	ldr	r2, [r2, #608]
23906	cmp	r2, r3
23907	bcs	.L3888
23908	bl	timer_get_time
23909	ldr	r6, [r4, #1096]
23910	ldr	r3, [r6, #604]
23911	add	r3, r3, #29952
23912	add	r3, r3, #48
23913	cmp	r0, r3
23914	bls	.L3888
23915	bl	timer_get_time
23916	ldr	r3, [r4, #1096]
23917	str	r0, [r6, #604]
23918	ldrh	r1, [r4, r5]
23919	ldr	r2, [r3, #600]
23920	cmp	r2, r1
23921	bcs	.L3890
23922	ldr	r1, [r4, #2800]
23923	ldrh	r1, [r1, #134]
23924	cmp	r2, r1
23925	bcs	.L3891
23926.L3890:
23927	ldr	r2, [r4, #2800]
23928	ldrh	r2, [r2, #134]
23929	str	r2, [r3, #600]
23930.L3891:
23931	ldr	r5, [r3, #600]
23932	movw	r3, #65535
23933	uxth	r7, r5
23934	cmp	r7, r3
23935	bne	.L3892
23936	movw	r2, #2504
23937	ldr	r1, .L3922+4
23938	ldr	r0, .L3922+8
23939	bl	printk
23940	bl	dump_stack
23941.L3892:
23942	ldr	r3, [r4, #1096]
23943	add	r1, sp, #24
23944	mov	r0, r7
23945	ldr	r2, [r3, #600]
23946	add	r2, r2, #1
23947	str	r2, [r3, #600]
23948	ldr	r2, [r3, #608]
23949	add	r2, r2, #1
23950	str	r2, [r3, #608]
23951	bl	ftl_get_blk_list_in_sblk
23952	uxth	r3, r0
23953	cmp	r3, #0
23954	beq	.L3888
23955	ldr	r10, [r4, #1084]
23956	uxth	r5, r5
23957	add	r10, r10, r5, lsl #2
23958	ldrb	r3, [r10, #2]	@ zero_extendqisi2
23959	and	r2, r3, #224
23960	and	r3, r3, #192
23961	cmp	r3, #0
23962	cmpne	r2, #224
23963	beq	.L3893
23964	ldr	r3, [r4, #1096]
23965	ldrh	r1, [r3, #16]
23966	cmp	r1, r7
23967	beq	.L3893
23968	ldrh	r1, [r3, #48]
23969	cmp	r1, r7
23970	beq	.L3893
23971	ldrh	r3, [r3, #80]
23972	cmp	r3, r7
23973	bne	.L3894
23974.L3893:
23975	cmp	r2, #0
23976	bne	.L3888
23977	ldr	r3, [r4, #1092]
23978	lsl	r5, r5, #1
23979	ldrh	r3, [r3, r5]
23980	cmp	r3, #0
23981	beq	.L3895
23982	movw	r2, #2521
23983	ldr	r1, .L3922+4
23984	ldr	r0, .L3922+8
23985	bl	printk
23986	bl	dump_stack
23987.L3895:
23988	ldr	r3, [r4, #1092]
23989	mov	r2, #0
23990	strh	r2, [r3, r5]	@ movhi
23991.L3888:
23992	add	sp, sp, #44
23993	@ sp needed
23994	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
23995.L3894:
23996	uxth	r0, r0
23997	add	r3, sp, #40
23998	add	r0, r3, r0, lsl #1
23999	movw	r3, #65535
24000	ldrh	r8, [r0, #-18]
24001	cmp	r8, r3
24002	bne	.L3897
24003	movw	r2, #2529
24004	ldr	r1, .L3922+4
24005	ldr	r0, .L3922+8
24006	bl	printk
24007	bl	dump_stack
24008.L3897:
24009	ldr	r6, .L3922+12
24010	sub	fp, r6, #3088
24011	ldrh	r2, [fp, #-8]
24012	sub	r2, r2, #1
24013	uxth	r3, r2
24014	sub	r2, r6, #3072
24015	ldrh	r1, [r2, #-2]
24016	ldrb	r2, [r10, #2]	@ zero_extendqisi2
24017	and	r2, r2, #224
24018	mul	r1, r8, r1
24019	cmp	r2, #160
24020	sub	r2, r6, #3104
24021	movne	r8, #1
24022	bne	.L3898
24023	ldrb	r8, [r6, #-3128]	@ zero_extendqisi2
24024	cmp	r8, #2
24025	ldrheq	r3, [r2, #-14]
24026	orr	r1, r1, r8, lsl #24
24027	uxthne	r8, r8
24028	subeq	r3, r3, #1
24029	uxtheq	r3, r3
24030.L3898:
24031	orr	r3, r3, r1
24032	str	r2, [sp, #12]
24033	mov	r0, #1
24034	str	r3, [sp, #8]
24035	bl	buf_alloc
24036	ldr	r3, [sp, #8]
24037	mov	r1, #1
24038	mov	r9, r0
24039	str	r3, [r0, #24]
24040	bl	sblk_read_page
24041	ldr	r2, [sp, #12]
24042	mov	r1, #255
24043	ldr	r0, [r6, #-3132]
24044	ldrh	r3, [r2, #-14]
24045	ldrb	r2, [r6, #-3127]	@ zero_extendqisi2
24046	mul	r2, r2, r3
24047	lsl	r2, r2, #2
24048	bl	ftl_memset
24049	ldr	r2, [r9, #36]
24050	cmn	r2, #1
24051	cmpne	r2, #512
24052	moveq	r2, #1
24053	movne	r2, #0
24054	moveq	r2, #0
24055	beq	.L3921
24056	ldr	r3, [r9, #12]
24057	ldr	r1, [r3]
24058	ldr	r3, .L3922+16
24059	cmp	r1, r3
24060	beq	.L3901
24061.L3921:
24062	mov	r1, #1
24063	mov	r0, r7
24064	bl	gc_add_sblk
24065	mov	r0, r9
24066	bl	zbuf_free
24067	b	.L3888
24068.L3901:
24069	ldrh	r3, [fp, #-8]
24070	mov	fp, r2
24071	ldrb	r1, [r6, #-3127]	@ zero_extendqisi2
24072	smulbb	r1, r1, r3
24073	smulbb	r8, r1, r8
24074	uxth	r3, r8
24075	mov	r8, r2
24076	str	r3, [sp, #12]
24077	ldr	r3, [r9, #4]
24078	str	r3, [sp, #8]
24079.L3902:
24080	ldr	r3, [sp, #12]
24081	cmp	fp, r3
24082	blt	.L3905
24083	mov	r0, r9
24084	lsl	r6, r5, #1
24085	bl	zbuf_free
24086	ldr	r3, .L3922+20
24087	ldr	r3, [r3]
24088	tst	r3, #256
24089	beq	.L3906
24090	ldr	r3, [r4, #1092]
24091	mov	r1, r5
24092	ldr	r0, .L3922+24
24093	ldrh	r2, [r3, r6]
24094	ldrb	r3, [r10, #2]	@ zero_extendqisi2
24095	lsr	r3, r3, #5
24096	str	r3, [sp]
24097	mov	r3, r8
24098	bl	printk
24099.L3906:
24100	ldr	r3, [r4, #1092]
24101	cmp	r8, #31
24102	strh	r8, [r3, r6]	@ movhi
24103	bhi	.L3888
24104	mov	r2, #0
24105	mov	r1, #1
24106	mov	r0, r7
24107	bl	gc_add_sblk
24108	b	.L3888
24109.L3905:
24110	ldr	r3, [sp, #8]
24111	ldr	r0, [r3, fp, lsl #2]
24112	cmn	r0, #1
24113	beq	.L3903
24114	bl	lpa_hash_get_ppa
24115	cmn	r0, #1
24116	str	r0, [sp, #20]
24117	bne	.L3904
24118	ldr	r3, [sp, #8]
24119	mov	r2, #0
24120	add	r1, sp, #20
24121	ldr	r0, [r3, fp, lsl #2]
24122	bl	pm_log2phys
24123.L3904:
24124	ldr	r2, .L3922+28
24125	mov	r3, #1
24126	ldr	r0, [sp, #20]
24127	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
24128	ldrh	ip, [r2]
24129	ldrb	r2, [r4, #1153]	@ zero_extendqisi2
24130	rsb	r2, r2, #24
24131	sub	r2, r2, ip
24132	lsl	r2, r3, r2
24133	sub	r2, r2, #1
24134	and	r0, r2, r0, lsr ip
24135	bl	__aeabi_uidiv
24136	cmp	r5, r0
24137	addeq	r8, r8, #1
24138	uxtheq	r8, r8
24139.L3903:
24140	add	fp, fp, #1
24141	b	.L3902
24142.L3923:
24143	.align	2
24144.L3922:
24145	.word	.LANCHOR0
24146	.word	.LANCHOR1+2431
24147	.word	.LC0
24148	.word	.LANCHOR3
24149	.word	-178307901
24150	.word	.LANCHOR2
24151	.word	.LC255
24152	.word	.LANCHOR3-3138
24153	.fnend
24154	.size	gc_block_vpn_scan, .-gc_block_vpn_scan
24155	.align	2
24156	.global	ftl_sblk_dump
24157	.syntax unified
24158	.arm
24159	.fpu softvfp
24160	.type	ftl_sblk_dump, %function
24161ftl_sblk_dump:
24162	.fnstart
24163	@ args = 0, pretend = 0, frame = 80
24164	@ frame_needed = 0, uses_anonymous_args = 0
24165	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
24166	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
24167	lsl	r3, r0, #2
24168	ldr	r4, .L3961
24169	.pad #124
24170	sub	sp, sp, #124
24171	lsl	r2, r0, #2
24172	mov	r7, r0
24173	str	r3, [sp, #68]
24174	ldr	r3, [r4, #1084]
24175	str	r1, [sp, #60]
24176	ldr	r1, [r3, r0, lsl #2]
24177	add	r2, r3, r2
24178	ldrb	r2, [r2, #2]	@ zero_extendqisi2
24179	ubfx	r1, r1, #11, #8
24180	str	r1, [sp, #4]
24181	lsl	r1, r0, #2
24182	ldrh	r3, [r3, r1]
24183	mov	r1, r0
24184	ldr	r0, .L3961+4
24185	ubfx	r3, r3, #0, #11
24186	str	r3, [sp]
24187	ubfx	r3, r2, #3, #2
24188	lsr	r2, r2, #5
24189	bl	printk
24190	movw	r3, #65535
24191	cmp	r7, r3
24192	beq	.L3947
24193	movw	r3, #1080
24194	ldrh	r3, [r4, r3]
24195	cmp	r3, r7
24196	bls	.L3947
24197	ldr	r3, [r4, #1084]
24198	lsl	r2, r7, #2
24199	add	r1, sp, #104
24200	strh	r7, [sp, #88]	@ movhi
24201	mov	r0, r7
24202	mov	r5, #0
24203	add	r3, r3, r2
24204	mov	fp, r5
24205	ldrb	r3, [r3, #2]	@ zero_extendqisi2
24206	and	r3, r3, #224
24207	cmp	r3, #160
24208	ldreq	r3, .L3961+8
24209	movne	r9, #1
24210	ldrbeq	r9, [r3, #-3128]	@ zero_extendqisi2
24211	bl	ftl_get_blk_list_in_sblk
24212	ldr	r3, .L3961+12
24213	uxtb	r0, r0
24214	lsl	r2, r7, #2
24215	strh	r5, [sp, #90]	@ movhi
24216	strb	r0, [sp, #97]
24217	mov	r1, r7
24218	ldrh	r3, [r3, #-8]
24219	strb	r5, [sp, #93]
24220	strh	r5, [sp, #98]	@ movhi
24221	smulbb	r3, r3, r0
24222	strh	r3, [sp, #94]	@ movhi
24223	ldr	r3, [r4, #1084]
24224	add	r3, r3, r2
24225	ldrb	r2, [r3, #2]	@ zero_extendqisi2
24226	mov	r3, r9
24227	str	r0, [sp]
24228	ldr	r0, .L3961+16
24229	lsr	r2, r2, #5
24230	bl	printk
24231	mov	r0, #1
24232	bl	buf_alloc
24233	mov	r6, r0
24234	str	r5, [sp, #44]
24235	str	r5, [sp, #52]
24236.L3927:
24237	ldr	r3, .L3961+20
24238	ldrh	r2, [r3]
24239	uxth	r3, r5
24240	cmp	r2, r3
24241	bls	.L3944
24242	str	r3, [sp, #72]
24243	lsl	r3, r3, #1
24244	sub	r2, r3, #1
24245	str	r2, [sp, #76]
24246	uxth	r2, r5
24247	add	r3, r3, r2
24248	sub	r3, r3, #1
24249	str	r3, [sp, #64]
24250	mov	r3, #0
24251	b	.L3960
24252.L3941:
24253	ldrh	r3, [sp, #48]
24254	add	r2, sp, #120
24255	add	r3, r2, r3, lsl #1
24256	ldrh	r3, [r3, #-16]
24257	str	r3, [sp, #56]
24258	movw	r3, #65535
24259	ldr	r2, [sp, #56]
24260	cmp	r2, r3
24261	beq	.L3928
24262	ldr	r3, .L3961+24
24263	cmp	r9, #3
24264	ldrh	r4, [r3, #-2]
24265	mul	r3, r2, r4
24266	bne	.L3929
24267	ldr	r2, .L3961
24268	ldrb	r1, [r2, #1158]	@ zero_extendqisi2
24269	cmp	r1, #0
24270	ldrne	r2, [sp, #64]
24271	bne	.L3958
24272	ldrb	r2, [r2, #1159]	@ zero_extendqisi2
24273	lsl	r4, r8, #24
24274	cmp	r2, #0
24275	ldrne	r2, [sp, #64]
24276	uxtaheq	r3, r3, r5
24277	addne	r3, r3, r2
24278	addne	r3, r3, r8
24279	orr	r4, r4, r3
24280.L3931:
24281	mov	r1, #1
24282	str	r4, [r6, #24]
24283	mov	r0, r6
24284	bl	sblk_read_page
24285	ldr	r2, [r6, #12]
24286	ldr	r3, [r6, #4]
24287	ldr	r10, [r6, #36]
24288	ldr	r1, [r2, #12]
24289	ldr	r0, .L3961+28
24290	str	r1, [sp, #32]
24291	ldr	r1, [r2, #8]
24292	str	r1, [sp, #28]
24293	ldr	r1, [r2, #4]
24294	str	r1, [sp, #24]
24295	ldr	r2, [r2]
24296	ldr	r1, [sp, #56]
24297	str	r2, [sp, #20]
24298	ldr	r2, [r3, #12]
24299	str	r2, [sp, #16]
24300	ldr	r2, [r3, #8]
24301	str	r2, [sp, #12]
24302	ldr	r2, [r3, #4]
24303	str	r2, [sp, #8]
24304	ldr	r3, [r3]
24305	ldr	r2, [sp, #72]
24306	str	r10, [sp]
24307	str	r3, [sp, #4]
24308	mov	r3, r4
24309	bl	printk
24310	ldr	r3, [sp, #52]
24311	cmn	r10, #1
24312	cmpne	r10, #512
24313	moveq	r3, #1
24314	ldr	r0, .L3961+32
24315	str	r3, [sp, #52]
24316	ldr	r3, .L3961+36
24317	ldr	r3, [r3, #4]
24318	blx	r3
24319	ldr	r3, .L3961
24320	ldr	r2, [sp, #68]
24321	ldr	r3, [r3, #1084]
24322	add	r3, r3, r2
24323	ldrb	r2, [r3, #2]	@ zero_extendqisi2
24324	and	r2, r2, #224
24325	cmp	r2, #32
24326	cmpne	r2, #224
24327	moveq	r10, #1
24328	movne	r10, #0
24329	beq	.L3928
24330	ldr	r3, [r6, #12]
24331	ldr	r0, [r3, #4]
24332	bl	lpa_hash_get_ppa
24333	cmn	r0, #1
24334	str	r0, [sp, #84]
24335	bne	.L3935
24336	ldr	r3, [r6, #12]
24337	mov	r2, r10
24338	add	r1, sp, #84
24339	ldr	r0, [r3, #4]
24340	bl	pm_log2phys
24341.L3935:
24342	ldr	r3, [sp, #84]
24343	cmp	r4, r3
24344	bne	.L3936
24345	ldr	r3, [sp, #44]
24346	mov	r1, r4
24347	ldr	r2, [r6, #12]
24348	ldr	r0, .L3961+40
24349	add	r3, r3, #1
24350	ldr	r2, [r2, #4]
24351	str	r3, [sp, #44]
24352	bl	printk
24353.L3936:
24354	ldr	r3, [sp, #60]
24355	cmp	r3, #0
24356	beq	.L3938
24357	ldr	r2, [r3, fp, lsl #2]
24358	lsl	r4, fp, #2
24359	ldr	r3, [r6, #12]
24360	ldr	r3, [r3, #4]
24361	cmp	r3, r2
24362	beq	.L3939
24363	ldr	r3, .L3961+44
24364	ldr	r3, [r3]
24365	tst	r3, #4096
24366	beq	.L3939
24367	mov	r1, fp
24368	ldr	r0, .L3961+48
24369	bl	printk
24370.L3939:
24371	ldr	r3, [sp, #60]
24372	ldr	r2, [r6, #12]
24373	ldr	r3, [r3, r4]
24374	ldr	r2, [r2, #4]
24375	cmp	r2, r3
24376	cmnne	r3, #1
24377	beq	.L3938
24378	movw	r2, #1575
24379	ldr	r1, .L3961+52
24380	ldr	r0, .L3961+56
24381	bl	printk
24382	bl	dump_stack
24383.L3938:
24384	add	fp, fp, #1
24385.L3928:
24386	add	r8, r8, #1
24387	uxth	r8, r8
24388.L3943:
24389	cmp	r9, r8
24390	bcs	.L3941
24391	ldr	r3, [sp, #48]
24392	add	r3, r3, #1
24393.L3960:
24394	str	r3, [sp, #48]
24395	ldrb	r2, [sp, #97]	@ zero_extendqisi2
24396	ldrh	r3, [sp, #48]
24397	cmp	r2, r3
24398	bls	.L3942
24399	mov	r8, #1
24400	b	.L3943
24401.L3929:
24402	cmp	r9, #2
24403	uxtahne	r4, r3, r5
24404	bne	.L3931
24405	ldr	r2, [sp, #76]
24406.L3958:
24407	add	r4, r3, r2
24408	ldr	r2, .L3961+8
24409	add	r3, r4, r8
24410	ldrb	r4, [r2, #-3128]	@ zero_extendqisi2
24411	orr	r4, r3, r4, lsl #24
24412	b	.L3931
24413.L3942:
24414	add	r5, r5, #1
24415	b	.L3927
24416.L3944:
24417	mov	r0, r6
24418	bl	zbuf_free
24419	ldr	r3, .L3961
24420	lsl	r2, r7, #1
24421	ldr	r0, .L3961+60
24422	ldr	r1, [r3, #1092]
24423	ldr	r3, [sp, #44]
24424	ldrh	r2, [r1, r2]
24425	mov	r1, r7
24426	bl	printk
24427	ldr	r0, [sp, #52]
24428.L3924:
24429	add	sp, sp, #124
24430	@ sp needed
24431	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
24432.L3947:
24433	mov	r0, #0
24434	b	.L3924
24435.L3962:
24436	.align	2
24437.L3961:
24438	.word	.LANCHOR0
24439	.word	.LC256
24440	.word	.LANCHOR3
24441	.word	.LANCHOR3-3088
24442	.word	.LC257
24443	.word	.LANCHOR3-3096
24444	.word	.LANCHOR3-3072
24445	.word	.LC195
24446	.word	644245000
24447	.word	arm_delay_ops
24448	.word	.LC258
24449	.word	.LANCHOR2
24450	.word	.LC259
24451	.word	.LANCHOR1+2449
24452	.word	.LC0
24453	.word	.LC260
24454	.fnend
24455	.size	ftl_sblk_dump, .-ftl_sblk_dump
24456	.align	2
24457	.global	zftl_read
24458	.syntax unified
24459	.arm
24460	.fpu softvfp
24461	.type	zftl_read, %function
24462zftl_read:
24463	.fnstart
24464	@ args = 0, pretend = 0, frame = 48
24465	@ frame_needed = 0, uses_anonymous_args = 0
24466	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
24467	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
24468	mov	r7, r3
24469	ldr	r3, .L4026
24470	.pad #76
24471	sub	sp, sp, #76
24472	mov	r4, r0
24473	mov	r6, r1
24474	str	r2, [sp, #24]
24475	ldr	r3, [r3]
24476	tst	r3, #4096
24477	beq	.L3964
24478	mov	r3, r2
24479	mov	r2, r1
24480	mov	r1, r0
24481	ldr	r0, .L4026+4
24482	bl	printk
24483.L3964:
24484	cmp	r4, #0
24485	bne	.L3965
24486	ldr	r3, .L4026+8
24487	mov	r4, #24576
24488	ldr	r3, [r3, #1032]
24489.L3966:
24490	ldr	r2, [sp, #24]
24491	cmp	r3, r2
24492	cmpcs	r3, r6
24493	movls	r5, #1
24494	movhi	r5, #0
24495	bls	.L3995
24496	add	r2, r6, r2
24497	cmp	r3, r2
24498	bcc	.L3995
24499	add	r3, r4, r6
24500	ldr	r4, .L4026+8
24501	str	r3, [sp, #28]
24502	ldr	r1, [sp, #24]
24503	ldr	r2, [r4, #2800]
24504	ldr	r0, [sp, #28]
24505	ldr	r3, [r2, #24]
24506	add	r3, r3, r1
24507	str	r3, [r2, #24]
24508	ldr	r3, .L4026+12
24509	ldrb	r6, [r3, #-2546]	@ zero_extendqisi2
24510	mov	r1, r6
24511	bl	__aeabi_uidiv
24512	ldr	r3, [sp, #24]
24513	mov	r1, r6
24514	ldr	r2, [sp, #28]
24515	str	r0, [sp, #36]
24516	add	r3, r3, r2
24517	sub	r0, r3, #1
24518	str	r3, [sp, #44]
24519	bl	__aeabi_uidiv
24520	ldr	r3, [sp, #36]
24521	str	r5, [sp, #40]
24522	ldr	r6, [sp, #36]
24523	ldr	r5, .L4026+12
24524	rsb	r3, r3, #1
24525	add	r3, r3, r0
24526	str	r0, [sp, #48]
24527	str	r3, [sp, #32]
24528.L3968:
24529	ldr	r3, [sp, #32]
24530	cmp	r3, #0
24531	bne	.L3992
24532	bl	timer_get_time
24533	str	r0, [r5, #-8]
24534	ldr	r0, [sp, #40]
24535.L3963:
24536	add	sp, sp, #76
24537	@ sp needed
24538	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
24539.L3965:
24540	cmp	r4, #3
24541	bhi	.L3995
24542	lsl	r4, r4, #13
24543	mov	r3, #8192
24544	b	.L3966
24545.L3992:
24546	ldr	r3, [sp, #36]
24547	ldr	r2, [sp, #48]
24548	ldrb	r1, [r5, #-2546]	@ zero_extendqisi2
24549	cmp	r6, r2
24550	cmpne	r6, r3
24551	moveq	r10, #1
24552	movne	r10, #0
24553	uxth	r8, r1
24554	bne	.L3969
24555	cmp	r6, r3
24556	bne	.L3970
24557	ldr	r0, [sp, #28]
24558	bl	__aeabi_uidivmod
24559	uxth	r10, r1
24560	ldr	r3, [sp, #24]
24561	sub	r8, r8, r10
24562	uxth	r8, r8
24563	cmp	r3, r8
24564	ldrhcc	r8, [sp, #24]
24565.L3969:
24566	ldr	r2, .L4026+16
24567	mov	r3, #0
24568	mov	r9, r2
24569.L3973:
24570	ldr	r1, [r2, #20]
24571	cmp	r6, r1
24572	bne	.L3971
24573	ldrb	r1, [r2, #2]	@ zero_extendqisi2
24574	tst	r1, #8
24575	beq	.L3971
24576	mov	r2, #48
24577	lsl	r8, r8, #9
24578	mov	r0, r7
24579	mla	r3, r2, r3, r4
24580	add	r7, r7, r8
24581	mov	r2, r8
24582	ldr	r1, [r3, #1236]
24583	add	r1, r1, r10, lsl #9
24584	bl	ftl_memcpy
24585.L3972:
24586	ldr	r3, [sp, #32]
24587	add	r6, r6, #1
24588	sub	r3, r3, #1
24589	str	r3, [sp, #32]
24590.L3979:
24591	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
24592	ldr	r2, [sp, #32]
24593	cmp	r2, #0
24594	cmpne	r3, #2
24595	bhi	.L3968
24596	ldrb	r1, [r5, #-2535]	@ zero_extendqisi2
24597	cmp	r1, #0
24598	beq	.L3968
24599	ldrb	r0, [r5, #-2536]	@ zero_extendqisi2
24600	add	r0, r0, r0, lsl #1
24601	add	r0, r9, r0, lsl #4
24602	bl	sblk_read_page
24603.L3981:
24604	ldrb	r3, [r5, #-2535]	@ zero_extendqisi2
24605	cmp	r3, #0
24606	bne	.L3991
24607	mvn	r2, #0
24608	strb	r3, [r5, #-2535]
24609	strb	r2, [r5, #-2536]
24610	b	.L3968
24611.L3970:
24612	ldr	r3, [sp, #28]
24613	mov	r10, #0
24614	ldr	r2, [sp, #24]
24615	add	r8, r3, r2
24616	mls	r1, r6, r1, r8
24617	uxtb	r8, r1
24618	b	.L3969
24619.L3971:
24620	add	r3, r3, #1
24621	add	r2, r2, #48
24622	cmp	r3, #32
24623	bne	.L3973
24624	mov	r0, r6
24625	bl	lpa_hash_get_ppa
24626	cmn	r0, #1
24627	str	r0, [sp, #68]
24628	bne	.L3974
24629	mov	r2, #0
24630	add	r1, sp, #68
24631	mov	r0, r6
24632	bl	pm_log2phys
24633.L3974:
24634	ldr	r3, [sp, #68]
24635	cmn	r3, #1
24636	moveq	r8, #0
24637	beq	.L3976
24638	mov	r0, #0
24639	bl	buf_alloc
24640	subs	r3, r0, #0
24641	beq	.L3979
24642	ldr	r1, [r4, #2800]
24643	ldr	r2, [r1, #40]
24644	add	r2, r2, #1
24645	str	r2, [r1, #40]
24646	ldr	r2, [sp, #68]
24647	str	r7, [r3, #8]
24648	add	r7, r7, r8, lsl #9
24649	str	r6, [r3, #20]
24650	str	r2, [r3, #24]
24651	str	r2, [r3, #28]
24652	strb	r8, [r3, #40]
24653	strb	r10, [r3, #41]
24654	bl	zftl_add_read_buf
24655	b	.L3972
24656.L3978:
24657	mla	r3, r3, r6, r8
24658	ldr	r2, [sp, #28]
24659	ldr	r1, [sp, #44]
24660	cmp	r2, r3
24661	movls	r2, #1
24662	movhi	r2, #0
24663	cmp	r1, r3
24664	movls	r2, #0
24665	cmp	r2, #0
24666	beq	.L3977
24667	mov	r0, r7
24668	add	r7, r7, #512
24669	mov	r2, #512
24670	mov	r1, #0
24671	bl	ftl_memset
24672.L3977:
24673	add	r8, r8, #1
24674.L3976:
24675	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
24676	cmp	r8, r3
24677	bcc	.L3978
24678	b	.L3972
24679.L3991:
24680	ldrb	r3, [r5, #-2536]	@ zero_extendqisi2
24681	cmp	r3, #255
24682	bne	.L3982
24683	movw	r2, #1284
24684	ldr	r1, .L4026+20
24685	ldr	r0, .L4026+24
24686	bl	printk
24687	bl	dump_stack
24688.L3982:
24689	ldr	r3, .L4026+12
24690	ldr	r1, .L4026+12
24691	ldrb	r9, [r3, #-2536]	@ zero_extendqisi2
24692	ldr	r3, .L4026+16
24693	add	r2, r9, r9, lsl #1
24694	add	r3, r3, r2, lsl #4
24695	mov	r2, #48
24696	mla	r2, r2, r9, r4
24697	str	r3, [sp, #52]
24698	ldr	r10, [r2, #1268]
24699	ldrb	r3, [r2, #1232]	@ zero_extendqisi2
24700	cmn	r10, #1
24701	strb	r3, [r1, #-2536]
24702	bne	.L3983
24703	ldr	r2, [r4, #1096]
24704	str	r10, [sp, #40]
24705	ldr	r3, [r2, #552]
24706	add	r3, r3, #1
24707	str	r3, [r2, #552]
24708.L3984:
24709	mov	r1, #48
24710	cmn	r10, #1
24711	mla	r1, r1, r9, r4
24712	movne	r2, #0
24713	moveq	r2, #1
24714	ldr	r3, [r1, #1244]
24715	ldr	r0, [r1, #1252]
24716	ldr	ip, [r3, #4]
24717	cmp	ip, r0
24718	orrne	r2, r2, #1
24719	cmp	r2, #0
24720	beq	.L3985
24721	ldrb	r0, [r4, #1153]	@ zero_extendqisi2
24722	mvn	ip, #0
24723	ldr	lr, [r1, #1256]
24724	ldrb	fp, [r1, #1272]	@ zero_extendqisi2
24725	ldrb	r8, [r5, #-2546]	@ zero_extendqisi2
24726	mvn	ip, ip, lsl r0
24727	ldr	r10, [r1, #1236]
24728	ldr	r2, [r1, #1240]
24729	rsb	r1, r0, #24
24730	and	r0, ip, lr, lsr r1
24731	cmp	fp, r8
24732	movcc	r2, r10
24733	str	r8, [sp]
24734	bic	r1, lr, ip, lsl r1
24735	uxtb	r0, r0
24736	bl	flash_read_page_en
24737	mov	r10, r0
24738.L3985:
24739	mov	r8, #48
24740	cmn	r10, #1
24741	mla	r8, r8, r9, r4
24742	movne	fp, #0
24743	moveq	fp, #1
24744	ldr	r3, [r8, #1244]
24745	ldr	r2, [r8, #1252]
24746	ldr	r3, [r3, #4]
24747	cmp	r3, r2
24748	moveq	r3, fp
24749	orrne	r3, fp, #1
24750	cmp	r3, #0
24751	beq	.L3987
24752	ldr	r2, [r4, #1096]
24753	ldr	r0, .L4026+28
24754	ldr	r3, [r2, #552]
24755	add	r3, r3, #1
24756	str	r3, [r2, #552]
24757	ldr	r3, [r8, #1244]
24758	ldrb	r1, [r8, #1233]	@ zero_extendqisi2
24759	ldr	r2, [r3, #12]
24760	str	r2, [sp, #16]
24761	ldr	r2, [r3, #8]
24762	str	r2, [sp, #12]
24763	ldr	r2, [r3, #4]
24764	str	r2, [sp, #8]
24765	mov	r2, r10
24766	ldr	r3, [r3]
24767	str	r3, [sp, #4]
24768	ldr	r3, [r8, #1256]
24769	str	r3, [sp]
24770	ldr	r3, [r8, #1252]
24771	bl	printk
24772	ldr	r3, .L4026+32
24773	ldr	r2, [r8, #1256]
24774	ldrb	r1, [r5, #-3136]	@ zero_extendqisi2
24775	ldrh	r0, [r3, #-2]
24776	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
24777	lsr	r2, r2, r0
24778	rsb	r3, r3, #24
24779	sub	r3, r3, r0
24780	mvn	r0, #0
24781	bic	r0, r2, r0, lsl r3
24782	bl	__aeabi_uidiv
24783	mov	r1, #0
24784	uxth	r0, r0
24785	bl	ftl_sblk_dump
24786.L3987:
24787	mov	r3, #48
24788	mla	r3, r3, r9, r4
24789	ldr	r2, [r3, #1244]
24790	ldr	r3, [r3, #1252]
24791	ldr	r2, [r2, #4]
24792	cmp	r2, r3
24793	orrne	fp, fp, #1
24794	cmp	fp, #0
24795	beq	.L3988
24796	movw	r2, #1320
24797	ldr	r1, .L4026+20
24798	ldr	r0, .L4026+24
24799	bl	printk
24800	bl	dump_stack
24801.L3988:
24802	mov	r3, #48
24803	mla	r9, r3, r9, r4
24804	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
24805	ldrb	r2, [r9, #1272]	@ zero_extendqisi2
24806	cmp	r3, r2
24807	ldrbls	r3, [r9, #1234]	@ zero_extendqisi2
24808	bicls	r3, r3, #8
24809	strbls	r3, [r9, #1234]
24810	bls	.L3990
24811	ldrb	r1, [r9, #1273]	@ zero_extendqisi2
24812	lsl	r2, r2, #9
24813	ldr	r3, [r9, #1236]
24814	ldr	r0, [r9, #1240]
24815	add	r1, r3, r1, lsl #9
24816	bl	ftl_memcpy
24817.L3990:
24818	ldr	r1, [sp, #52]
24819	ldr	r0, .L4026+36
24820	bl	buf_remove_buf
24821	ldr	r0, [sp, #52]
24822	bl	zbuf_free
24823	ldrb	r3, [r5, #-2535]	@ zero_extendqisi2
24824	sub	r3, r3, #1
24825	strb	r3, [r5, #-2535]
24826	b	.L3981
24827.L3983:
24828	cmp	r10, #256
24829	bne	.L3984
24830	ldr	r1, .L4026+40
24831	mov	fp, #1
24832	ldrb	r0, [r4, #1153]	@ zero_extendqisi2
24833	ldr	r3, [r2, #1256]
24834	ldrh	ip, [r1]
24835	rsb	r0, r0, #24
24836	str	r2, [sp, #60]
24837	ldr	r2, .L4026+12
24838	sub	r0, r0, ip
24839	str	r3, [sp, #56]
24840	lsl	r0, fp, r0
24841	ldrb	r1, [r2, #-3136]	@ zero_extendqisi2
24842	sub	r0, r0, #1
24843	and	r0, r0, r3, lsr ip
24844	bl	__aeabi_uidiv
24845	ldr	r2, [sp, #60]
24846	mov	r8, r0
24847	uxth	r1, r0
24848	ldr	r3, [sp, #56]
24849	ldr	r0, .L4026+44
24850	ldr	r2, [r2, #1252]
24851	bl	printk
24852	mov	r2, #0
24853	mov	r1, fp
24854	uxth	r0, r8
24855	bl	gc_add_sblk
24856	b	.L3984
24857.L3995:
24858	mvn	r0, #0
24859	b	.L3963
24860.L4027:
24861	.align	2
24862.L4026:
24863	.word	.LANCHOR2
24864	.word	.LC261
24865	.word	.LANCHOR0
24866	.word	.LANCHOR3
24867	.word	.LANCHOR0+1232
24868	.word	.LANCHOR1+2463
24869	.word	.LC0
24870	.word	.LC263
24871	.word	.LANCHOR3-3136
24872	.word	.LANCHOR0+2771
24873	.word	.LANCHOR3-3138
24874	.word	.LC262
24875	.fnend
24876	.size	zftl_read, .-zftl_read
24877	.align	2
24878	.global	zftl_vendor_read
24879	.syntax unified
24880	.arm
24881	.fpu softvfp
24882	.type	zftl_vendor_read, %function
24883zftl_vendor_read:
24884	.fnstart
24885	@ args = 0, pretend = 0, frame = 0
24886	@ frame_needed = 0, uses_anonymous_args = 0
24887	@ link register save eliminated.
24888	mov	r3, r2
24889	mov	r2, r1
24890	add	r1, r0, #512
24891	mov	r0, #2
24892	b	zftl_read
24893	.fnend
24894	.size	zftl_vendor_read, .-zftl_vendor_read
24895	.align	2
24896	.global	zftl_sys_read
24897	.syntax unified
24898	.arm
24899	.fpu softvfp
24900	.type	zftl_sys_read, %function
24901zftl_sys_read:
24902	.fnstart
24903	@ args = 0, pretend = 0, frame = 0
24904	@ frame_needed = 0, uses_anonymous_args = 0
24905	@ link register save eliminated.
24906	mov	r3, r2
24907	mov	r2, r1
24908	mov	r1, r0
24909	mov	r0, #2
24910	b	zftl_read
24911	.fnend
24912	.size	zftl_sys_read, .-zftl_sys_read
24913	.align	2
24914	.syntax unified
24915	.arm
24916	.fpu softvfp
24917	.type	zftl_debug_proc_write, %function
24918zftl_debug_proc_write:
24919	.fnstart
24920	@ args = 0, pretend = 0, frame = 96
24921	@ frame_needed = 0, uses_anonymous_args = 0
24922	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
24923	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
24924	cmp	r2, #79
24925	.pad #132
24926	sub	sp, sp, #132
24927	mvnhi	r0, #21
24928	add	r6, sp, #48
24929	str	r6, [sp, #44]
24930	bhi	.L4030
24931	mov	r0, r6
24932	mov	r4, r2
24933	bl	rk_copy_from_user
24934	cmp	r0, #0
24935	mvnne	r0, #13
24936	bne	.L4030
24937	add	r3, sp, #128
24938	mov	r1, r6
24939	add	r3, r3, r4
24940	strb	r0, [r3, #-80]
24941	ldr	r0, .L4056
24942	bl	printk
24943	mov	r3, #16
24944	mov	r2, #1
24945	mov	r1, r6
24946	ldr	r0, .L4056+4
24947	bl	rknand_print_hex
24948	bl	rknand_device_lock
24949	mov	r2, #7
24950	ldr	r1, .L4056+8
24951	mov	r0, r6
24952	bl	memcmp
24953	subs	r7, r0, #0
24954	bne	.L4032
24955	ldr	r5, .L4056+12
24956	movw	r3, #698
24957	mov	r2, #4
24958	ldr	r0, .L4056+16
24959	ldr	r6, .L4056+20
24960	movw	r8, #65535
24961	ldr	r1, [r5, #2800]
24962	ldrh	r3, [r1, r3]
24963	add	r1, r1, #704
24964	bl	rknand_print_hex
24965	ldr	r1, [r5, #2800]
24966	mov	r2, #2
24967	ldrh	r3, [r6, #-176]
24968	ldr	r0, .L4056+24
24969	add	r1, r1, #416
24970	bl	rknand_print_hex
24971.L4033:
24972	ldrh	r3, [r6, #-176]
24973	cmp	r7, r3
24974	blt	.L4035
24975.L4036:
24976	bl	rknand_device_unlock
24977	mov	r0, r4
24978.L4030:
24979	add	sp, sp, #132
24980	@ sp needed
24981	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
24982.L4035:
24983	mov	r0, #300
24984	bl	msleep
24985	ldr	r2, [r5, #2800]
24986	add	r3, r7, #208
24987	lsl	r3, r3, #1
24988	ldrh	r0, [r2, r3]
24989	cmp	r0, r8
24990	beq	.L4034
24991	mov	r1, #0
24992	bl	ftl_sblk_dump
24993.L4034:
24994	add	r7, r7, #1
24995	b	.L4033
24996.L4032:
24997	mov	r2, #7
24998	ldr	r1, .L4056+28
24999	mov	r0, r6
25000	bl	memcmp
25001	subs	r5, r0, #0
25002	bne	.L4037
25003	ldr	r8, .L4056+12
25004	movw	r3, #698
25005	mov	r2, #4
25006	ldr	r0, .L4056+16
25007	ldr	r7, .L4056+20
25008	ldr	r1, [r8, #2800]
25009	ldr	r10, .L4056+32
25010	ldr	fp, .L4056+36
25011	ldrh	r3, [r1, r3]
25012	add	r1, r1, #704
25013	bl	rknand_print_hex
25014	ldr	r1, [r8, #2800]
25015	mov	r2, #2
25016	ldrh	r3, [r7, #-176]
25017	ldr	r0, .L4056+24
25018	add	r1, r1, #416
25019	bl	rknand_print_hex
25020	mov	r0, #50
25021	bl	msleep
25022	ldr	r0, .L4056+40
25023	add	r6, sp, #128
25024	add	r1, sp, #55
25025	str	r1, [r6, #-84]!
25026	bl	printk
25027	mov	r1, r6
25028	ldr	r0, [sp, #44]
25029	bl	rk_simple_strtoull.constprop.33
25030	str	r8, [sp, #36]
25031	uxth	r3, r0
25032	ldr	r8, .L4056+44
25033	mov	r6, r0
25034	str	r0, [sp, #40]
25035	str	r3, [sp, #32]
25036.L4039:
25037	add	r9, r8, r5
25038	ldrh	r1, [r8, r5]
25039	ldrh	r2, [r9, #2]
25040	mov	r0, r10
25041	bl	printk
25042	ldrh	r3, [r5, r8]
25043	ldr	r2, [sp, #32]
25044	cmp	r3, r2
25045	bne	.L4038
25046	ldrb	r3, [r7, #-2546]	@ zero_extendqisi2
25047	mov	r0, fp
25048	mov	r2, #4
25049	ldr	r1, [r9, #4]
25050	lsl	r3, r3, #7
25051	bl	rknand_print_hex
25052	mov	r0, #50
25053	bl	msleep
25054.L4038:
25055	add	r5, r5, #8
25056	cmp	r5, #256
25057	bne	.L4039
25058	mov	r0, #300
25059	uxth	r6, r6
25060	bl	msleep
25061	mov	r0, #1
25062	add	r6, r6, #176
25063	bl	buf_alloc
25064	ldr	r3, [sp, #36]
25065	mov	r5, r0
25066	mov	r1, #1
25067	ldr	r3, [r3, #2800]
25068	ldr	r3, [r3, r6, lsl #2]
25069	str	r3, [r0, #24]
25070	str	r3, [sp, #40]
25071	bl	sblk_read_page
25072	ldr	r2, [r5, #12]
25073	ldr	r3, [r5, #4]
25074	ldr	r0, .L4056+48
25075	ldr	r1, [r2, #12]
25076	str	r1, [sp, #24]
25077	ldr	r1, [r2, #8]
25078	str	r1, [sp, #20]
25079	ldr	r1, [r2, #4]
25080	str	r1, [sp, #16]
25081	ldr	r2, [r2]
25082	ldr	r1, [sp, #40]
25083	str	r2, [sp, #12]
25084	ldr	r2, [r3, #12]
25085	str	r2, [sp, #8]
25086	ldr	r2, [r3, #8]
25087	str	r2, [sp, #4]
25088	ldr	r2, [r3, #4]
25089	str	r2, [sp]
25090	ldr	r3, [r3]
25091	ldr	r2, [r5, #36]
25092	bl	printk
25093	ldrb	r3, [r7, #-2546]	@ zero_extendqisi2
25094	mov	r2, #4
25095	ldr	r1, [r5, #4]
25096	ldr	r0, .L4056+52
25097	lsl	r3, r3, #7
25098.L4055:
25099	bl	rknand_print_hex
25100	mov	r0, r5
25101	bl	zbuf_free
25102	b	.L4036
25103.L4037:
25104	mov	r2, #7
25105	ldr	r1, .L4056+56
25106	mov	r0, r6
25107	bl	memcmp
25108	cmp	r0, #0
25109	bne	.L4040
25110	bl	dump_ftl_info
25111	b	.L4036
25112.L4040:
25113	mov	r2, #9
25114	ldr	r1, .L4056+60
25115	mov	r0, r6
25116	bl	memcmp
25117	cmp	r0, #0
25118	bne	.L4041
25119	add	r1, sp, #128
25120	add	r0, sp, #57
25121	str	r0, [r1, #-84]!
25122	bl	rk_simple_strtoull.constprop.33
25123	ldr	r3, .L4056+64
25124	str	r0, [sp, #40]
25125	strh	r0, [r3, #-4]	@ movhi
25126	bl	dump_all_list_info
25127	b	.L4036
25128.L4041:
25129	mov	r2, #8
25130	ldr	r1, .L4056+68
25131	mov	r0, r6
25132	bl	memcmp
25133	cmp	r0, #0
25134	beq	.L4036
25135	mov	r2, #8
25136	ldr	r1, .L4056+72
25137	mov	r0, r6
25138	bl	memcmp
25139	cmp	r0, #0
25140	bne	.L4043
25141	add	r5, sp, #128
25142	add	r1, sp, #56
25143	ldr	r0, .L4056+40
25144	str	r1, [r5, #-84]!
25145	bl	printk
25146	mov	r1, r5
25147	ldr	r0, [sp, #44]
25148	bl	rk_simple_strtoull.constprop.33
25149	str	r0, [sp, #40]
25150	mov	r0, #1
25151	bl	buf_alloc
25152	ldr	r3, [sp, #40]
25153	mov	r5, r0
25154	mov	r1, #1
25155	ldr	r6, .L4056+20
25156	str	r3, [r0, #24]
25157	bl	sblk_read_page
25158	ldr	r2, [r5, #12]
25159	ldr	r3, [r5, #4]
25160	ldr	r0, .L4056+48
25161	ldr	r1, [r2, #12]
25162	str	r1, [sp, #24]
25163	ldr	r1, [r2, #8]
25164	str	r1, [sp, #20]
25165	ldr	r1, [r2, #4]
25166	str	r1, [sp, #16]
25167	ldr	r2, [r2]
25168	ldr	r1, [sp, #40]
25169	str	r2, [sp, #12]
25170	ldr	r2, [r3, #12]
25171	str	r2, [sp, #8]
25172	ldr	r2, [r3, #8]
25173	str	r2, [sp, #4]
25174	ldr	r2, [r3, #4]
25175	str	r2, [sp]
25176	ldr	r3, [r3]
25177	ldr	r2, [r5, #36]
25178	bl	printk
25179	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
25180	mov	r2, #4
25181	ldr	r1, [r5, #4]
25182	ldr	r0, .L4056+76
25183	lsl	r3, r3, #7
25184	bl	rknand_print_hex
25185	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
25186	mov	r2, #4
25187	ldr	r1, [r5, #12]
25188	ldr	r0, .L4056+80
25189	lsl	r3, r3, #1
25190	b	.L4055
25191.L4043:
25192	mov	r2, #8
25193	ldr	r1, .L4056+84
25194	mov	r0, r6
25195	bl	memcmp
25196	subs	r7, r0, #0
25197	bne	.L4044
25198	add	r5, sp, #128
25199	add	r1, sp, #56
25200	ldr	r0, .L4056+40
25201	str	r1, [r5, #-84]!
25202	bl	printk
25203	mov	r1, r5
25204	ldr	r0, [sp, #44]
25205	bl	rk_simple_strtoull.constprop.33
25206	mov	r1, r7
25207	str	r0, [sp, #40]
25208	uxth	r0, r0
25209	bl	ftl_sblk_dump
25210	b	.L4036
25211.L4044:
25212	mov	r2, #10
25213	ldr	r1, .L4056+88
25214	mov	r0, r6
25215	bl	memcmp
25216	cmp	r0, #0
25217	bne	.L4045
25218	add	r1, sp, #58
25219	add	r5, sp, #128
25220	ldr	r0, .L4056+40
25221	str	r1, [r5, #-84]!
25222	bl	printk
25223	mov	r1, r5
25224	ldr	r0, [sp, #44]
25225	bl	rk_simple_strtoull.constprop.33
25226	ldr	r3, .L4056+92
25227	str	r0, [sp, #40]
25228	str	r0, [r3]
25229	b	.L4036
25230.L4045:
25231	mov	r0, r6
25232	mov	r2, #8
25233	ldr	r1, .L4056+96
25234	bl	memcmp
25235	subs	r6, r0, #0
25236	bne	.L4046
25237	add	r5, sp, #128
25238	add	r1, sp, #56
25239	ldr	r0, .L4056+40
25240	str	r1, [r5, #-84]!
25241	bl	printk
25242	mov	r1, r5
25243	ldr	r0, [sp, #44]
25244	bl	rk_simple_strtoull.constprop.33
25245	mov	r5, r0
25246	bl	lpa_hash_get_ppa
25247	cmn	r0, #1
25248	str	r0, [sp, #40]
25249	bne	.L4047
25250	mov	r2, r6
25251	add	r1, sp, #40
25252	mov	r0, r5
25253	bl	pm_log2phys
25254.L4047:
25255	ldr	r2, [sp, #40]
25256	mov	r1, r5
25257	ldr	r0, .L4056+100
25258	bl	printk
25259	b	.L4036
25260.L4046:
25261	ldr	r0, .L4056+104
25262	bl	printk
25263	ldr	r0, .L4056+108
25264	bl	printk
25265	ldr	r0, .L4056+112
25266	bl	printk
25267	ldr	r0, .L4056+116
25268	bl	printk
25269	ldr	r0, .L4056+120
25270	bl	printk
25271	ldr	r0, .L4056+124
25272	bl	printk
25273	ldr	r0, .L4056+128
25274	bl	printk
25275	ldr	r0, .L4056+132
25276	bl	printk
25277	ldr	r0, .L4056+136
25278	bl	printk
25279	b	.L4036
25280.L4057:
25281	.align	2
25282.L4056:
25283	.word	.LC264
25284	.word	.LC265
25285	.word	.LC266
25286	.word	.LANCHOR0
25287	.word	.LC267
25288	.word	.LANCHOR3
25289	.word	.LC268
25290	.word	.LC269
25291	.word	.LC271
25292	.word	.LC272
25293	.word	.LC270
25294	.word	.LANCHOR3-2532
25295	.word	.LC245
25296	.word	.LC273
25297	.word	.LC274
25298	.word	.LC275
25299	.word	.LANCHOR3-3072
25300	.word	.LC276
25301	.word	.LC277
25302	.word	.LC218
25303	.word	.LC240
25304	.word	.LC278
25305	.word	.LC279
25306	.word	.LANCHOR2
25307	.word	.LC280
25308	.word	.LC281
25309	.word	.LC282
25310	.word	.LC283
25311	.word	.LC284
25312	.word	.LC285
25313	.word	.LC286
25314	.word	.LC287
25315	.word	.LC288
25316	.word	.LC289
25317	.word	.LC290
25318	.fnend
25319	.size	zftl_debug_proc_write, .-zftl_debug_proc_write
25320	.global	__aeabi_idivmod
25321	.align	2
25322	.global	ftl_update_l2p_map
25323	.syntax unified
25324	.arm
25325	.fpu softvfp
25326	.type	ftl_update_l2p_map, %function
25327ftl_update_l2p_map:
25328	.fnstart
25329	@ args = 0, pretend = 0, frame = 24
25330	@ frame_needed = 0, uses_anonymous_args = 0
25331	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
25332	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
25333	mov	r7, r0
25334	ldr	r6, .L4088
25335	.pad #28
25336	sub	sp, sp, #28
25337	ldrb	r8, [r0, #9]	@ zero_extendqisi2
25338	sub	r3, r6, #3088
25339	ldr	r4, [r6, #-2556]
25340	ldrh	r3, [r3, #-8]
25341	mul	r8, r8, r3
25342	ldrh	r3, [r0, #12]
25343	add	r4, r4, r3, lsl #2
25344	sub	r3, r8, #-1073741823
25345	ldr	r3, [r4, r3, lsl #2]
25346	cmn	r3, #1
25347	beq	.L4059
25348	movw	r2, #1998
25349	ldr	r1, .L4088+4
25350	ldr	r0, .L4088+8
25351	bl	printk
25352	bl	dump_stack
25353.L4059:
25354	mov	r5, #0
25355	sub	r4, r4, #4
25356	mov	r10, r5
25357.L4060:
25358	cmp	r10, r8
25359	bne	.L4066
25360	ldr	r3, .L4088+12
25361	ldr	r4, .L4088+16
25362	ldr	r3, [r3]
25363	tst	r3, #4096
25364	beq	.L4067
25365	ldrh	r1, [r7]
25366	ldr	r2, [r4, #1092]
25367	ldr	r0, .L4088+20
25368	lsl	r3, r1, #1
25369	ldrh	r3, [r2, r3]
25370	mov	r2, r5
25371	bl	printk
25372.L4067:
25373	ldrh	r3, [r7]
25374	ldr	r2, [r4, #1092]
25375	lsl	r3, r3, #1
25376	strh	r5, [r2, r3]	@ movhi
25377	add	sp, sp, #28
25378	@ sp needed
25379	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
25380.L4066:
25381	ldr	r9, [r4, #4]!
25382	cmn	r9, #1
25383	beq	.L4061
25384	ldrb	r1, [r6, #-2546]	@ zero_extendqisi2
25385	mov	r0, r9
25386	lsl	r1, r1, #7
25387	bl	__aeabi_uidiv
25388	uxth	r3, r0
25389	str	r3, [sp, #4]
25390	ldr	r3, .L4088+12
25391	ldr	r3, [r3]
25392	tst	r3, #4096
25393	beq	.L4062
25394	mov	r3, r10
25395	mov	r2, r9
25396	ldr	r1, [sp, #4]
25397	ldr	r0, .L4088+24
25398	bl	printk
25399.L4062:
25400	mov	r9, r4
25401	mov	fp, r10
25402.L4065:
25403	ldr	r0, [r9]
25404	cmn	r0, #1
25405	beq	.L4063
25406	ldrb	r1, [r6, #-2546]	@ zero_extendqisi2
25407	lsl	r1, r1, #7
25408	bl	__aeabi_uidiv
25409	ldr	r3, [sp, #4]
25410	uxth	r0, r0
25411	cmp	r3, r0
25412	bne	.L4063
25413	ldrb	r3, [r7, #9]	@ zero_extendqisi2
25414	mov	r0, fp
25415	mov	r1, r3
25416	str	r3, [sp, #12]
25417	bl	__aeabi_idivmod
25418	ldr	r2, .L4088+28
25419	add	r1, r7, r1, lsl #1
25420	ldr	r3, [sp, #12]
25421	ldrh	r0, [r1, #16]
25422	ldrh	r2, [r2]
25423	mov	r1, r3
25424	mul	r2, r2, r0
25425	mov	r0, fp
25426	str	r2, [sp, #8]
25427	bl	__aeabi_idiv
25428	ldr	r2, [sp, #8]
25429	add	r2, r2, r0
25430	ldr	r0, .L4088+32
25431	str	r2, [sp, #20]
25432	ldr	r1, [r9]
25433	bl	pm_ppa_update_check
25434	cmp	r0, #0
25435	beq	.L4064
25436	mov	r3, r8
25437	mov	r2, #4
25438	ldr	r1, [r6, #-2556]
25439	ldr	r0, .L4088+36
25440	bl	rknand_print_hex
25441.L4064:
25442	add	r5, r5, #1
25443	mov	r2, #1
25444	uxth	r5, r5
25445	add	r1, sp, #20
25446	ldr	r0, [r9]
25447	bl	pm_log2phys
25448	mvn	r3, #0
25449	str	r3, [r9]
25450.L4063:
25451	add	fp, fp, #1
25452	add	r9, r9, #4
25453	cmp	r8, fp
25454	bne	.L4065
25455.L4061:
25456	add	r10, r10, #1
25457	b	.L4060
25458.L4089:
25459	.align	2
25460.L4088:
25461	.word	.LANCHOR3
25462	.word	.LANCHOR1+2473
25463	.word	.LC0
25464	.word	.LANCHOR2
25465	.word	.LANCHOR0
25466	.word	.LC294
25467	.word	.LC291
25468	.word	.LANCHOR3-3074
25469	.word	.LC292
25470	.word	.LC293
25471	.fnend
25472	.size	ftl_update_l2p_map, .-ftl_update_l2p_map
25473	.align	2
25474	.global	ftl_alloc_new_data_sblk
25475	.syntax unified
25476	.arm
25477	.fpu softvfp
25478	.type	ftl_alloc_new_data_sblk, %function
25479ftl_alloc_new_data_sblk:
25480	.fnstart
25481	@ args = 0, pretend = 0, frame = 0
25482	@ frame_needed = 0, uses_anonymous_args = 0
25483	push	{r4, r5, r6, lr}
25484	.save {r4, r5, r6, lr}
25485	mov	r5, r0
25486	ldrh	r6, [r0]
25487	bl	ftl_update_l2p_map
25488	bl	pm_flush
25489	ldrh	r0, [r5]
25490	movw	r3, #65535
25491	cmp	r0, r3
25492	beq	.L4091
25493	bl	zftl_insert_data_list
25494.L4091:
25495	ldr	r4, .L4099
25496	mov	r0, r5
25497	ldr	r1, [r4, #1096]
25498	add	r1, r1, #16
25499	cmp	r5, r1
25500	movw	r5, #65535
25501	moveq	r1, #2
25502	movne	r1, #3
25503	bl	ftl_open_sblk_init
25504	ldr	r3, [r4, #1096]
25505	cmp	r6, r5
25506	ldr	r3, [r3, #560]
25507	sub	r3, r3, r6
25508	clz	r3, r3
25509	lsr	r3, r3, #5
25510	moveq	r3, #0
25511	cmp	r3, #0
25512	beq	.L4093
25513	mov	r1, r6
25514	ldr	r0, .L4099+4
25515	bl	printk
25516	ldr	r3, [r4, #1096]
25517	ldr	r0, [r3, #564]
25518	bl	gc_mark_bad_ppa
25519	ldr	r3, [r4, #1096]
25520	mvn	r2, #0
25521	str	r5, [r3, #560]
25522	str	r2, [r3, #564]
25523.L4093:
25524	bl	ftl_ext_info_flush
25525	mov	r0, #0
25526	bl	ftl_info_flush
25527	bl	lpa_rebuild_hash
25528	mov	r0, #0
25529	pop	{r4, r5, r6, pc}
25530.L4100:
25531	.align	2
25532.L4099:
25533	.word	.LANCHOR0
25534	.word	.LC295
25535	.fnend
25536	.size	ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk
25537	.align	2
25538	.global	ftl_write_commit
25539	.syntax unified
25540	.arm
25541	.fpu softvfp
25542	.type	ftl_write_commit, %function
25543ftl_write_commit:
25544	.fnstart
25545	@ args = 0, pretend = 0, frame = 24
25546	@ frame_needed = 0, uses_anonymous_args = 0
25547	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
25548	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
25549	.pad #36
25550	sub	sp, sp, #36
25551	ldr	r8, .L4167
25552	mov	r9, r8
25553.L4102:
25554	ldrb	r2, [r8, #2796]	@ zero_extendqisi2
25555	cmp	r2, #0
25556	beq	.L4104
25557	ldrb	r3, [r8, #2820]	@ zero_extendqisi2
25558	sub	r2, r2, #1
25559	ldr	r1, .L4167+4
25560	strb	r2, [r8, #2796]
25561	str	r3, [sp, #12]
25562	add	r3, r3, r3, lsl #1
25563	add	r3, r1, r3, lsl #4
25564	ldr	r1, [sp, #12]
25565	str	r3, [sp, #20]
25566	mov	r3, #48
25567	mla	r3, r3, r1, r8
25568	ldrb	r1, [r3, #1232]	@ zero_extendqisi2
25569	ldr	r2, [r3, #1252]
25570	ldr	r3, [r8, #2780]
25571	strb	r1, [r8, #2820]
25572	cmp	r2, r3
25573	bcc	.L4106
25574	movw	r2, #607
25575	ldr	r1, .L4167+8
25576	ldr	r0, .L4167+12
25577	bl	printk
25578	bl	dump_stack
25579.L4106:
25580	ldr	r2, [sp, #12]
25581	mov	r3, #48
25582	mla	r3, r3, r2, r9
25583	ldr	r2, [r9, #2780]
25584	ldr	r7, [r3, #1252]
25585	cmp	r7, r2
25586	bcc	.L4107
25587	ldr	r0, [sp, #20]
25588	bl	zbuf_free
25589	mvn	r0, #0
25590.L4101:
25591	add	sp, sp, #36
25592	@ sp needed
25593	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
25594.L4107:
25595	ldr	r2, [r3, #1244]
25596	ldr	fp, [r3, #1236]
25597	ldrb	r5, [r3, #1273]	@ zero_extendqisi2
25598	ldrb	r3, [r3, #1272]	@ zero_extendqisi2
25599	str	r2, [sp, #8]
25600	str	r3, [sp, #16]
25601	ldrb	r3, [r9, #2797]	@ zero_extendqisi2
25602	cmp	r3, #0
25603	beq	.L4109
25604	ldr	r6, .L4167+16
25605	ldr	r3, .L4167+4
25606	ldrb	r4, [r6, #-88]	@ zero_extendqisi2
25607	add	r4, r4, r4, lsl #1
25608	add	r4, r3, r4, lsl #4
25609.L4110:
25610	ldrb	r3, [r4]	@ zero_extendqisi2
25611	cmp	r3, #255
25612	bne	.L4111
25613	ldr	r3, [r4, #20]
25614	cmp	r7, r3
25615	bne	.L4109
25616	ldr	r3, [sp, #16]
25617	lsl	r5, r5, #9
25618	ldr	r0, [r4, #4]
25619	add	r1, fp, r5
25620	lsl	r2, r3, #9
25621	add	r0, r0, r5
25622	bl	ftl_memcpy
25623	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
25624	mov	r0, #2
25625	ldr	r2, [r4, #4]
25626	ldr	r1, [r4, #12]
25627	sub	r3, r3, #2
25628	add	r2, r2, r3, lsl #9
25629	add	r1, r1, #16
25630	bl	ftl_debug_info_fill
25631	ldr	r0, [sp, #20]
25632	bl	zbuf_free
25633	b	.L4102
25634.L4111:
25635	ldr	r2, .L4167+4
25636	add	r3, r3, r3, lsl #1
25637	add	r4, r2, r3, lsl #4
25638	b	.L4110
25639.L4109:
25640	mov	r0, r7
25641	bl	lpa_hash_get_ppa
25642	cmn	r0, #1
25643	str	r0, [sp, #28]
25644	bne	.L4113
25645	mov	r2, #0
25646	add	r1, sp, #28
25647	mov	r0, r7
25648	bl	pm_log2phys
25649.L4113:
25650	ldr	r6, [r9, #1096]
25651	mov	r1, #0
25652	ldr	r3, .L4167+4
25653	mov	r4, r1
25654	ldr	ip, [sp, #28]
25655	add	r6, r6, #16
25656	add	r0, r3, #1536
25657.L4115:
25658	ldr	r2, [r3, #20]
25659	cmp	r7, r2
25660	bne	.L4114
25661	ldrb	r2, [r3, #2]	@ zero_extendqisi2
25662	tst	r2, #8
25663	ldrne	r4, [r3, #4]
25664	movne	r1, #1
25665	ldrne	ip, [r3, #24]
25666	bicne	r2, r2, #8
25667	strbne	r2, [r3, #2]
25668.L4114:
25669	add	r3, r3, #48
25670	cmp	r3, r0
25671	bne	.L4115
25672	ldr	r3, .L4167+16
25673	cmp	r1, #0
25674	ldr	r2, [sp, #16]
25675	strne	ip, [sp, #28]
25676	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
25677	cmp	r2, r3
25678	bcs	.L4142
25679	cmp	r4, #0
25680	beq	.L4118
25681	cmp	r5, #0
25682	beq	.L4119
25683	lsl	r2, r5, #9
25684	mov	r1, r4
25685	mov	r0, fp
25686	bl	ftl_memcpy
25687	ldr	r6, [r9, #1096]
25688	add	r6, r6, #48
25689.L4119:
25690	ldr	r3, [sp, #16]
25691	add	r5, r5, r3
25692	ldr	r3, .L4167+16
25693	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
25694	cmp	r5, r2
25695	ldrcs	r6, [r9, #1096]
25696	addcs	r6, r6, #16
25697	bcs	.L4142
25698	lsl	r0, r5, #9
25699	sub	r2, r2, r5
25700	lsl	r2, r2, #9
25701	add	r1, r4, r0
25702	add	r0, fp, r0
25703	bl	ftl_memcpy
25704.L4142:
25705	mov	r10, #0
25706	b	.L4117
25707.L4118:
25708	ldr	r3, [sp, #28]
25709	cmn	r3, #1
25710	beq	.L4121
25711	mov	r0, #1
25712	bl	buf_alloc
25713	ldr	r3, [sp, #28]
25714	mov	r4, r0
25715	str	r7, [r0, #20]
25716	mov	r1, #1
25717	str	r3, [r0, #24]
25718	bl	sblk_read_page
25719	ldr	r3, [r4, #12]
25720	ldr	r2, [r3, #4]
25721	ldr	r10, [r3, #12]
25722	cmp	r7, r2
25723	add	r10, r10, #1
25724	bne	.L4122
25725	ldr	r2, [r4, #36]
25726	cmn	r2, #1
25727	bne	.L4123
25728.L4122:
25729	ldrb	r2, [r9, #1153]	@ zero_extendqisi2
25730	mvn	ip, #0
25731	ldr	lr, [r4, #24]
25732	rsb	r1, r2, #24
25733	mvn	ip, ip, lsl r2
25734	ldr	r2, .L4167+16
25735	and	r0, ip, lr, lsr r1
25736	bic	r1, lr, ip, lsl r1
25737	ldrb	r2, [r2, #-2546]	@ zero_extendqisi2
25738	uxtb	r0, r0
25739	str	r2, [sp]
25740	ldr	r2, [r4, #4]
25741	bl	flash_read_page_en
25742	str	r0, [r4, #36]
25743.L4123:
25744	ldr	r3, [r4, #12]
25745	ldr	r3, [r3, #4]
25746	cmp	r7, r3
25747	bne	.L4124
25748	ldr	r3, [r4, #36]
25749	cmn	r3, #1
25750	bne	.L4125
25751.L4124:
25752	ldr	r2, [r8, #1096]
25753	ldr	r0, .L4167+20
25754	ldr	r3, [r2, #552]
25755	add	r3, r3, #1
25756	str	r3, [r2, #552]
25757	ldr	r3, [r4, #36]
25758	ldrb	r1, [r4, #1]	@ zero_extendqisi2
25759	ldr	r2, [sp, #28]
25760	str	r3, [sp]
25761	mov	r3, r7
25762	bl	printk
25763	mov	r3, #4
25764	ldr	r1, [r4, #12]
25765	mov	r2, r3
25766	ldr	r0, .L4167+24
25767	bl	rknand_print_hex
25768.L4125:
25769	ldr	r3, [r4, #12]
25770	ldr	r3, [r3, #4]
25771	cmp	r7, r3
25772	bne	.L4126
25773	ldr	r3, [r4, #36]
25774	cmn	r3, #1
25775	bne	.L4127
25776.L4126:
25777	movw	r2, #699
25778	ldr	r1, .L4167+8
25779	ldr	r0, .L4167+12
25780	bl	printk
25781	bl	dump_stack
25782.L4127:
25783	cmp	r5, #0
25784	beq	.L4128
25785	ldr	r3, [sp, #28]
25786	lsl	r2, r5, #9
25787	cmn	r3, #1
25788	beq	.L4129
25789	ldr	r1, [r4, #4]
25790	mov	r0, fp
25791	bl	ftl_memcpy
25792.L4130:
25793	ldr	r6, [r8, #1096]
25794	add	r6, r6, #48
25795.L4128:
25796	ldr	r3, [sp, #16]
25797	add	r5, r5, r3
25798	ldr	r3, .L4167+16
25799	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
25800	cmp	r5, r2
25801	bcc	.L4131
25802	ldrhi	r6, [r8, #1096]
25803	addhi	r6, r6, #16
25804.L4132:
25805	cmp	r4, #0
25806	beq	.L4117
25807	ldrb	r3, [r4, #2]	@ zero_extendqisi2
25808	mov	r1, r4
25809	ldr	r0, .L4167+28
25810	bic	r3, r3, #8
25811	strb	r3, [r4, #2]
25812	bl	buf_remove_buf
25813	mov	r0, r4
25814	bl	zbuf_free
25815.L4117:
25816	ldrh	r3, [r6, #6]
25817	cmp	r3, #0
25818	bne	.L4134
25819	bl	ftl_flush
25820	mov	r0, r6
25821	bl	ftl_alloc_new_data_sblk
25822.L4134:
25823	mov	r0, r6
25824	mov	r4, #48
25825	bl	ftl_get_new_free_page
25826	ldr	r3, [sp, #12]
25827	str	r0, [sp, #16]
25828	mov	r0, #2
25829	mul	r4, r4, r3
25830	ldr	r3, [sp, #8]
25831	mov	r1, r3
25832	add	r5, r9, r4
25833	ldr	r2, [r5, #1248]
25834	str	r10, [r3, #12]
25835	stm	r3, {r2, r7}
25836	ldr	r2, [sp, #28]
25837	str	r2, [r3, #8]
25838	mov	r2, #0
25839	ldr	r3, .L4167+16
25840	str	r2, [r1, #16]!
25841	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
25842	sub	r2, r2, #2
25843	add	r2, fp, r2, lsl #9
25844	bl	ftl_debug_info_fill
25845	ldr	r3, [sp, #16]
25846	ldr	r1, [sp, #20]
25847	ldr	r0, .L4167+32
25848	str	r3, [r5, #1256]
25849	ldr	r3, [sp, #28]
25850	str	r3, [r5, #1260]
25851	mvn	r3, #0
25852	strb	r3, [r5, #1232]
25853	ldrb	r3, [r5, #1234]	@ zero_extendqisi2
25854	orr	r3, r3, #10
25855	strb	r3, [r5, #1234]
25856	ldr	r3, .L4167+4
25857	ldrh	r2, [r6, #12]
25858	add	r4, r3, r4
25859	ldrh	r3, [r6, #10]
25860	add	r3, r3, r2
25861	sub	r3, r3, #1
25862	strh	r3, [r4, #32]	@ movhi
25863	bl	buf_add_tail
25864	ldrb	r3, [r9, #2797]	@ zero_extendqisi2
25865	ldr	r4, .L4167
25866	add	r3, r3, #1
25867	strb	r3, [r9, #2797]
25868	bl	timer_get_time
25869	ldr	r3, .L4167+16
25870	ldrh	r2, [r6, #6]
25871	str	r0, [r3, #-84]
25872	ldrb	r3, [r9, #2797]	@ zero_extendqisi2
25873	cmp	r3, #2
25874	bhi	.L4135
25875	cmp	r2, #1
25876	bne	.L4105
25877.L4135:
25878	ldr	lr, .L4167+16
25879	mov	r5, #48
25880	ldrb	r1, [r6, #5]	@ zero_extendqisi2
25881	ldrb	r0, [lr, #-88]	@ zero_extendqisi2
25882	cmp	r1, #0
25883	mov	r1, #0
25884	moveq	ip, #1
25885	movne	ip, #2
25886	cmp	r2, #1
25887	mov	r2, r0
25888	moveq	ip, r3
25889.L4139:
25890	cmp	r1, ip
25891	bne	.L4140
25892	uxtb	r1, r1
25893	add	r0, r0, r0, lsl #1
25894	strb	r2, [lr, #-88]
25895	sub	r3, r3, r1
25896	strb	r3, [r4, #2797]
25897	ldr	r3, .L4167+4
25898	add	r0, r3, r0, lsl #4
25899	bl	sblk_prog_page
25900	ldrh	r3, [r6, #6]
25901	cmp	r3, #1
25902	bne	.L4105
25903	bl	sblk_wait_write_queue_completed
25904	bl	ftl_write_completed
25905	mov	r0, r6
25906	bl	ftl_write_last_log_page
25907	mov	r0, r6
25908	bl	ftl_alloc_new_data_sblk
25909.L4105:
25910	ldrb	r3, [r4, #2796]	@ zero_extendqisi2
25911	cmp	r3, #0
25912	bne	.L4102
25913.L4104:
25914	bl	ftl_write_completed
25915	mov	r0, #0
25916	b	.L4101
25917.L4131:
25918	ldr	r3, [sp, #28]
25919	sub	r2, r2, r5
25920	lsl	r2, r2, #9
25921	lsl	r0, r5, #9
25922	cmn	r3, #1
25923	beq	.L4133
25924	ldr	r1, [r4, #4]
25925	add	r1, r1, r0
25926	add	r0, fp, r0
25927	bl	ftl_memcpy
25928	b	.L4132
25929.L4133:
25930	mov	r1, #0
25931	add	r0, fp, r0
25932	bl	ftl_memset
25933	b	.L4132
25934.L4140:
25935	mla	r2, r5, r2, r4
25936	add	r1, r1, #1
25937	ldrb	r2, [r2, #1232]	@ zero_extendqisi2
25938	b	.L4139
25939.L4121:
25940	cmp	r5, #0
25941	moveq	r10, r5
25942	moveq	r4, r5
25943	beq	.L4128
25944	lsl	r2, r5, #9
25945	mov	r10, r4
25946.L4129:
25947	mov	r1, #0
25948	mov	r0, fp
25949	bl	ftl_memset
25950	b	.L4130
25951.L4168:
25952	.align	2
25953.L4167:
25954	.word	.LANCHOR0
25955	.word	.LANCHOR0+1232
25956	.word	.LANCHOR1+2492
25957	.word	.LC0
25958	.word	.LANCHOR3
25959	.word	.LC296
25960	.word	.LC240
25961	.word	.LANCHOR0+2771
25962	.word	.LANCHOR3-88
25963	.fnend
25964	.size	ftl_write_commit, .-ftl_write_commit
25965	.align	2
25966	.global	gc_do_copy_back
25967	.syntax unified
25968	.arm
25969	.fpu softvfp
25970	.type	gc_do_copy_back, %function
25971gc_do_copy_back:
25972	.fnstart
25973	@ args = 0, pretend = 0, frame = 72
25974	@ frame_needed = 0, uses_anonymous_args = 0
25975	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
25976	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
25977	.pad #84
25978	sub	sp, sp, #84
25979	ldr	r7, .L4307
25980	ldrb	r0, [r7, #-3119]	@ zero_extendqisi2
25981	cmp	r0, #0
25982	bne	.L4170
25983	bl	buf_alloc
25984	subs	r4, r0, #0
25985	beq	.L4169
25986	ldr	r5, .L4307+4
25987	ldrh	r2, [r5, #22]
25988	mov	r0, r2
25989	bl	gc_get_src_ppa_from_index
25990	mov	r1, #1
25991	add	r2, r2, #1
25992	str	r0, [r4, #24]
25993	mov	r6, r0
25994	mov	r0, r4
25995	strh	r2, [r5, #22]	@ movhi
25996	bl	sblk_read_page
25997	ldr	r3, [r4, #36]
25998	cmn	r3, #1
25999	cmpne	r3, #512
26000	bne	.L4172
26001	movw	r2, #1032
26002	ldr	r1, .L4307+8
26003	ldr	r0, .L4307+12
26004	bl	printk
26005	bl	dump_stack
26006.L4172:
26007	ldr	r3, [r4, #12]
26008	ldr	r8, [r3, #4]
26009	mov	r0, r8
26010	bl	lpa_hash_get_ppa
26011	cmn	r0, #1
26012	str	r0, [sp, #56]
26013	bne	.L4173
26014	mov	r2, #0
26015	add	r1, sp, #56
26016	mov	r0, r8
26017	bl	pm_log2phys
26018.L4173:
26019	ldr	r9, [sp, #56]
26020	cmp	r6, r9
26021	bne	.L4174
26022	ldr	r2, .L4307+16
26023	mov	r3, #0
26024	sub	r10, r2, #1232
26025.L4177:
26026	add	r1, r2, r3
26027	ldr	r0, [r1, #20]
26028	cmp	r8, r0
26029	bne	.L4175
26030	ldrb	r1, [r1, #2]	@ zero_extendqisi2
26031	tst	r1, #2
26032	beq	.L4175
26033	mov	r0, r4
26034	bl	zbuf_free
26035	ldr	r3, .L4307+20
26036	ldr	r3, [r3]
26037	tst	r3, #256
26038	beq	.L4169
26039	ldrh	r3, [r5, #22]
26040	mov	r2, r6
26041	mov	r1, r8
26042	ldr	r0, .L4307+24
26043	bl	printk
26044.L4169:
26045	add	sp, sp, #84
26046	@ sp needed
26047	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
26048.L4175:
26049	add	r3, r3, #48
26050	cmp	r3, #1536
26051	bne	.L4177
26052	ldrb	r3, [r7, #-2546]	@ zero_extendqisi2
26053	mov	r2, #0
26054	str	r8, [r4, #20]
26055	strb	r2, [r4, #41]
26056	strb	r3, [r4, #40]
26057	ldr	r3, [r4, #12]
26058	ldr	r1, [r3]
26059	str	r1, [r4, #16]
26060	str	r2, [r3, #16]
26061	ldr	r3, .L4307+20
26062	ldr	r3, [r3]
26063	tst	r3, #256
26064	beq	.L4178
26065	mov	r0, r8
26066	bl	lpa_hash_get_ppa
26067	ldrh	r3, [r5, #22]
26068	mov	r2, r9
26069	str	r6, [sp]
26070	mov	r1, r8
26071	str	r3, [sp, #4]
26072	mov	r3, r0
26073	ldr	r0, .L4307+28
26074	bl	printk
26075.L4178:
26076	mov	r0, r4
26077	bl	ftl_gc_write_buf
26078	bl	ftl_write_commit
26079	ldr	r2, [r10, #2800]
26080	ldr	r3, [r2, #60]
26081	add	r3, r3, #1
26082	str	r3, [r2, #60]
26083	ldrh	r3, [r5, #24]
26084	add	r3, r3, #1
26085	strh	r3, [r5, #24]	@ movhi
26086	b	.L4169
26087.L4174:
26088	ldr	r3, .L4307+20
26089	ldr	r3, [r3]
26090	tst	r3, #256
26091	beq	.L4179
26092	mov	r0, r8
26093	bl	lpa_hash_get_ppa
26094	ldrh	r3, [r5, #22]
26095	mov	r2, r9
26096	str	r6, [sp]
26097	mov	r1, r8
26098	str	r3, [sp, #4]
26099	mov	r3, r0
26100	ldr	r0, .L4307+28
26101	bl	printk
26102.L4179:
26103	mov	r0, r4
26104	bl	zbuf_free
26105	b	.L4169
26106.L4170:
26107	ldr	r10, .L4307+32
26108	ldr	r3, [r10, #1096]
26109	ldrb	r9, [r3, #89]	@ zero_extendqisi2
26110	str	r3, [sp, #12]
26111	ldrb	r3, [r7, #-3127]	@ zero_extendqisi2
26112	uxth	r8, r9
26113	cmp	r3, r8
26114	movhi	r6, #1
26115	bhi	.L4180
26116	cmp	r8, #2
26117	movcc	r6, r8
26118	movcs	r6, #2
26119.L4180:
26120	ldrb	r5, [r7, #-3128]	@ zero_extendqisi2
26121	ldr	r3, .L4307+4
26122	cmp	r5, #3
26123	bne	.L4181
26124	ldrb	r2, [r10, #1158]	@ zero_extendqisi2
26125	cmp	r2, #0
26126	beq	.L4182
26127	movw	r2, #2102
26128	mov	r1, r9
26129	ldrh	fp, [r3, r2]
26130	mov	r0, fp
26131	bl	__aeabi_idiv
26132	ldrb	r3, [r7, #-2542]	@ zero_extendqisi2
26133	uxth	r4, r0
26134	cmp	r3, #0
26135	beq	.L4183
26136	ldr	r3, .L4307+36
26137	lsl	r0, r0, #1
26138	ldrh	r3, [r3, r0]
26139	cmp	r3, #0
26140	moveq	r5, #1
26141	movne	r5, #2
26142.L4184:
26143	smulbb	r8, r8, r4
26144	sub	r8, fp, r8
26145	uxth	r3, r8
26146	str	r3, [sp, #20]
26147.L4185:
26148	mul	r3, r6, r5
26149	ldr	r9, .L4307+36
26150	mov	r8, #0
26151	str	r3, [sp, #16]
26152	add	r9, r9, r4, lsl #1
26153	ldr	r3, .L4307+4
26154.L4189:
26155	ldr	r1, [sp, #16]
26156	uxth	r0, r8
26157	mov	r2, r0
26158	cmp	r0, r1
26159	bge	.L4242
26160	ldr	r1, .L4307+40
26161	add	r2, fp, r2
26162	ldrh	ip, [r1]
26163	ldr	r1, [sp, #12]
26164	ldrb	r1, [r1, #89]	@ zero_extendqisi2
26165	mul	r1, r1, ip
26166	ldrb	ip, [r7, #-11]	@ zero_extendqisi2
26167	sub	r1, r1, ip
26168	cmp	r2, r1
26169	blt	.L4190
26170	ldrb	r1, [r7, #-2542]	@ zero_extendqisi2
26171	cmp	r1, #0
26172	beq	.L4242
26173	ldrh	r1, [r9]
26174	cmp	r1, r4
26175	bcc	.L4191
26176.L4242:
26177	mov	r3, #1
26178	str	r3, [sp, #24]
26179	b	.L4187
26180.L4183:
26181	ldrb	r3, [r7, #-15]	@ zero_extendqisi2
26182	cmp	r3, #0
26183	moveq	r5, #1
26184	beq	.L4184
26185	sub	r3, r4, #62
26186	cmp	r3, #2160
26187	movcs	r5, #2
26188	bcs	.L4184
26189	mov	r1, r5
26190	mov	r0, r4
26191	bl	__aeabi_uidivmod
26192	uxth	r1, r1
26193	cmp	r1, #0
26194	movne	r5, #1
26195	moveq	r5, #2
26196	b	.L4184
26197.L4182:
26198	ldrb	r2, [r7, #-3120]	@ zero_extendqisi2
26199	cmp	r2, #0
26200	movw	r2, #2102
26201	beq	.L4186
26202	ldrh	fp, [r3, r2]
26203	add	r1, r9, r9, lsl #1
26204	mov	r0, fp
26205	bl	__aeabi_idiv
26206	mul	r9, r0, r9
26207	ldr	r2, .L4307+44
26208	uxth	r4, r0
26209	sub	r9, r9, r9, lsl #2
26210	add	r9, r9, fp
26211	smull	r2, r3, r9, r2
26212	sub	r9, r3, r9, asr #31
26213	uxth	r3, r9
26214	str	r3, [sp, #20]
26215	ldrb	r3, [r10, #1159]	@ zero_extendqisi2
26216	cmp	r3, #0
26217	addne	r4, r4, r4, lsl #1
26218	uxthne	r4, r4
26219	b	.L4185
26220.L4186:
26221	ldrh	r10, [r3, r2]
26222	mov	r1, r9
26223	mov	r0, r10
26224	bl	__aeabi_idiv
26225	ldr	r2, .L4307+48
26226	lsl	r3, r0, #1
26227	smulbb	r8, r0, r8
26228	ldrh	r3, [r2, r3]
26229	sub	r10, r10, r8
26230	lsr	r4, r3, #3
26231	and	r3, r3, #7
26232	str	r3, [sp, #24]
26233	uxth	r3, r10
26234	mla	r9, r9, r4, r3
26235	str	r3, [sp, #20]
26236	ldr	r3, [sp, #24]
26237	add	r9, r9, r9, lsl #1
26238	cmp	r3, #1
26239	uxth	fp, r9
26240	beq	.L4185
26241.L4187:
26242	mul	r3, r6, r5
26243	str	r3, [sp, #36]
26244	lsl	r3, r6, #1
26245	uxth	r3, r3
26246	str	r3, [sp, #44]
26247	ldrh	r3, [sp, #44]
26248	smulbb	r3, r3, r5
26249	sub	r3, fp, r3
26250	uxth	r3, r3
26251	str	r3, [sp, #48]
26252	mov	r3, #0
26253	str	r3, [sp, #32]
26254	ldr	r3, .L4307+36
26255	add	r3, r3, r4, lsl #1
26256	str	r3, [sp, #40]
26257.L4192:
26258	ldrh	r9, [sp, #32]
26259	ldr	r2, [sp, #36]
26260	ldr	r7, .L4307
26261	str	r9, [sp, #28]
26262	cmp	r9, r2
26263	blt	.L4216
26264	ldrb	r3, [r7, #-3128]	@ zero_extendqisi2
26265	cmp	r3, #3
26266	bne	.L4217
26267	ldr	r3, .L4307+32
26268	ldrb	r1, [r3, #1158]	@ zero_extendqisi2
26269	cmp	r1, #0
26270	movne	r3, r2
26271	movne	r1, #0
26272	subne	r2, r3, #1
26273	bne	.L4219
26274	ldrb	r2, [r7, #-3120]	@ zero_extendqisi2
26275	ldr	r3, [sp, #56]
26276	cmp	r2, #0
26277	strbne	r1, [r3, #44]
26278	bne	.L4305
26279	ldr	r1, [sp, #24]
26280	cmp	r1, #1
26281	moveq	r2, #9
26282	beq	.L4225
26283	ldr	r1, [sp, #24]
26284	cmp	r1, #2
26285	moveq	r2, #13
26286.L4225:
26287	strb	r2, [r3, #44]
26288.L4305:
26289	mov	r2, r6
26290	add	r1, sp, #68
26291	add	r0, sp, #56
26292	bl	sblk_xlc_prog_pages
26293.L4221:
26294	ldrb	r3, [r7, #-3120]	@ zero_extendqisi2
26295	ldr	r2, .L4307+32
26296	cmp	r3, #0
26297	addne	r6, r6, r6, lsl #1
26298	uxthne	r6, r6
26299	bne	.L4231
26300	ldrb	r3, [r7, #-3126]	@ zero_extendqisi2
26301	cmp	r3, #0
26302	ldrne	r6, [sp, #44]
26303	bne	.L4231
26304	ldrb	r3, [r2, #1158]	@ zero_extendqisi2
26305	cmp	r3, #0
26306	beq	.L4231
26307	smulbb	r5, r6, r5
26308	ldrb	r3, [r7, #-2542]	@ zero_extendqisi2
26309	uxth	r5, r5
26310	cmp	r3, #0
26311	moveq	r6, r5
26312	beq	.L4231
26313	ldr	r1, .L4307+36
26314	lsl	r3, r4, #1
26315	ldrh	r3, [r1, r3]
26316	cmp	r3, r4
26317	movcs	r6, r5
26318.L4231:
26319	ldr	r1, [r2, #2800]
26320	ldr	r0, .L4307+4
26321	ldr	r3, [r1, #52]
26322	add	r3, r3, r6
26323	str	r3, [r1, #52]
26324	movw	r1, #2102
26325	ldrh	r3, [r0, r1]
26326	add	r6, r6, r3
26327	ldr	r3, .L4307+52
26328	uxth	r6, r6
26329	strh	r6, [r0, r1]	@ movhi
26330	ldrh	r1, [r3, #-14]
26331	ldr	r3, [sp, #12]
26332	ldrb	r3, [r3, #89]	@ zero_extendqisi2
26333	mul	r3, r3, r1
26334	cmp	r6, r3
26335	ldrge	r3, [r2, #1096]
26336	movge	r2, #0
26337	strhge	r2, [r3, #86]	@ movhi
26338	bl	gc_write_completed
26339	b	.L4169
26340.L4181:
26341	ldrb	r2, [r7, #-3126]	@ zero_extendqisi2
26342	mov	r1, r9
26343	cmp	r2, #0
26344	movw	r2, #2102
26345	ldrh	fp, [r3, r2]
26346	mov	r0, fp
26347	bne	.L4188
26348	bl	__aeabi_idiv
26349	uxth	r4, r0
26350	mov	r5, #1
26351	smulbb	r8, r8, r4
26352	sub	r8, fp, r8
26353	uxth	r3, r8
26354	str	r3, [sp, #20]
26355	b	.L4185
26356.L4188:
26357	bl	__aeabi_idiv
26358	uxth	r4, r0
26359	mov	r5, #2
26360	smulbb	r8, r8, r4
26361	sub	r8, fp, r8
26362	uxth	r3, r8
26363	str	r3, [sp, #20]
26364	b	.L4185
26365.L4191:
26366	tst	r0, #1
26367	beq	.L4242
26368.L4190:
26369	ldr	r10, [r7, #-128]
26370	ldr	r1, [r10, r2, lsl #2]
26371	cmn	r1, #1
26372	bne	.L4193
26373	ldrh	r1, [r3, #22]
26374	ldrh	ip, [r3, #20]
26375	cmp	ip, r1
26376	bls	.L4169
26377	ldrb	ip, [r7, #-2542]	@ zero_extendqisi2
26378	cmp	ip, #0
26379	beq	.L4194
26380	ldrh	ip, [r9]
26381	cmp	ip, r4
26382	bcs	.L4194
26383	tst	r0, #1
26384	ldrne	r1, [r10, ip, lsl #2]
26385	strne	r1, [r10, r2, lsl #2]
26386	bne	.L4193
26387.L4194:
26388	mov	r0, r1
26389	str	r3, [sp, #24]
26390	bl	gc_get_src_ppa_from_index
26391	ldr	r3, [sp, #24]
26392	add	r1, r1, #1
26393	strh	r1, [r3, #22]	@ movhi
26394	str	r0, [r10, r2, lsl #2]
26395.L4193:
26396	add	r8, r8, #1
26397	b	.L4189
26398.L4216:
26399	ldr	r3, [sp, #28]
26400	add	r3, fp, r3
26401	str	r3, [sp, #16]
26402	ldr	r2, [sp, #16]
26403	ldr	r3, [r7, #-3124]
26404	ldrb	r3, [r3, r2]	@ zero_extendqisi2
26405	cmp	r3, #255
26406	bne	.L4196
26407	mov	r0, #0
26408	bl	buf_alloc
26409	subs	r7, r0, #0
26410	bne	.L4197
26411	bl	sblk_wait_write_queue_completed
26412	bl	ftl_write_completed
26413	bl	gc_write_completed
26414	bl	gc_free_temp_buf
26415	mov	r0, r7
26416	bl	buf_alloc
26417	subs	r7, r0, #0
26418	beq	.L4169
26419.L4197:
26420	ldr	r2, .L4307
26421	ldrb	r1, [r7, #1]	@ zero_extendqisi2
26422	ldr	r0, [sp, #16]
26423	ldr	r3, [r2, #-3124]
26424	strb	r1, [r3, r0]
26425	ldr	r1, .L4307+32
26426	ldrb	r3, [r1, #2831]	@ zero_extendqisi2
26427	add	r3, r3, #1
26428	strb	r3, [r1, #2831]
26429	add	r3, r9, fp
26430	strh	r3, [r7, #32]	@ movhi
26431	ldrb	r3, [sp, #24]	@ zero_extendqisi2
26432	strb	r3, [r7, #45]
26433	sub	r3, r2, #3104
26434	ldrh	r1, [r3, #-14]
26435	ldr	r3, [sp, #12]
26436	ldrb	r3, [r3, #89]	@ zero_extendqisi2
26437	mul	r3, r3, r1
26438	ldrb	r1, [r2, #-11]	@ zero_extendqisi2
26439	sub	r3, r3, r1
26440	cmp	r0, r3
26441	blt	.L4198
26442	ldrb	r3, [r2, #-2542]	@ zero_extendqisi2
26443	cmp	r3, #0
26444	beq	.L4199
26445	ldr	r3, [sp, #40]
26446	ldrh	r3, [r3]
26447	cmp	r3, r4
26448	bcs	.L4199
26449	tst	r9, #1
26450	bne	.L4198
26451.L4199:
26452	ldr	r8, .L4307
26453	mvn	r2, #0
26454	ldr	r1, [sp, #16]
26455	ldr	r10, .L4307+56
26456	ldr	r3, [r8, #-132]
26457	str	r2, [r3, r1, lsl #2]
26458	ldrb	r3, [r8, #-11]	@ zero_extendqisi2
26459	cmp	r3, #2
26460	bne	.L4200
26461	sub	r3, r8, #3104
26462	ldr	r2, [sp, #16]
26463	ldrh	r1, [r3, #-14]
26464	ldr	r3, [sp, #12]
26465	ldrb	r3, [r3, #89]	@ zero_extendqisi2
26466	mul	r3, r1, r3
26467	sub	r3, r3, #2
26468	cmp	r2, r3
26469	ldrh	r2, [r8, #-14]
26470	bne	.L4201
26471	ldr	r1, [r8, #-132]
26472	ldr	r0, [r7, #4]
26473	bl	ftl_memcpy
26474	ldrb	r2, [r8, #-2546]	@ zero_extendqisi2
26475	mov	r1, #0
26476	ldr	r0, [r7, #12]
26477	lsl	r2, r2, #1
26478	bl	ftl_memset
26479	ldr	r3, [r7, #12]
26480	str	r10, [r3]
26481	ldrh	r1, [r8, #-14]
26482	ldr	r0, [r7, #4]
26483	ldr	r10, [r7, #12]
26484	bl	js_hash
26485	ldr	r2, .L4307+32
26486	str	r0, [r10, #4]
26487	ldr	r3, [r7, #12]
26488	ldr	r2, [r2, #1096]
26489	ldr	r2, [r2, #132]
26490	str	r2, [r3, #8]
26491	mov	r2, #0
26492	ldr	r3, [r7, #12]
26493.L4301:
26494	str	r2, [r3, #12]
26495.L4202:
26496	ldr	r3, [r7, #12]
26497	mov	r2, #0
26498	str	r2, [r3, #16]
26499.L4196:
26500	ldr	r3, .L4307
26501	ldr	r1, [sp, #16]
26502	ldrb	lr, [sp, #24]	@ zero_extendqisi2
26503	ldr	r2, [r3, #-3124]
26504	ldrb	r7, [r2, r1]	@ zero_extendqisi2
26505	add	r2, sp, #80
26506	ldr	r1, [sp, #28]
26507	add	r0, r7, r7, lsl #1
26508	add	ip, r2, r1, lsl #2
26509	ldr	r2, .L4307+32
26510	add	r1, r2, #1232
26511	add	r0, r1, r0, lsl #4
26512	str	r0, [ip, #-24]
26513	mov	ip, #48
26514	mul	ip, ip, r7
26515	add	r1, r1, ip
26516	add	r0, r2, ip
26517	mov	ip, #2
26518	strb	lr, [r0, #1277]
26519	strh	ip, [r1, #34]	@ movhi
26520	ldrb	r1, [r3, #-3128]	@ zero_extendqisi2
26521	cmp	r1, #3
26522	bne	.L4207
26523	ldrb	r1, [r2, #1158]	@ zero_extendqisi2
26524	cmp	r1, #0
26525	beq	.L4208
26526	ldrb	r3, [r3, #-2542]	@ zero_extendqisi2
26527	and	r8, r9, #1
26528	add	r8, r8, r4
26529	cmp	r3, #0
26530	beq	.L4209
26531	ldr	r3, [sp, #40]
26532	ldr	r2, [sp, #32]
26533	ldrh	r3, [r3]
26534	cmp	r3, r4
26535	movcs	r2, #0
26536	andcc	r2, r2, #1
26537	cmp	r2, #0
26538	movne	r8, r3
26539.L4209:
26540	ldr	r3, .L4307+32
26541	mov	r10, #48
26542	mov	r1, r5
26543	mov	r0, r9
26544	mla	r10, r10, r7, r3
26545	bl	__aeabi_uidiv
26546	ldr	r3, [sp, #20]
26547	ldr	r2, .L4307+60
26548	uxtah	r0, r3, r0
26549	ldr	r3, [sp, #12]
26550	ldrh	r2, [r2]
26551	add	r0, r3, r0, lsl #1
26552	ldrh	r3, [r0, #96]
26553	mla	r8, r2, r3, r8
26554	orr	r8, r8, #50331648
26555	str	r8, [r10, #1256]
26556.L4214:
26557	mov	r2, #48
26558	ldr	r3, .L4307+32
26559	mul	r7, r2, r7
26560	add	r2, r3, r7
26561	add	r3, r3, #1232
26562	add	r3, r3, r7
26563	ldr	r2, [r2, #1256]
26564	ldrh	r1, [r3, #32]
26565	ldr	r3, .L4307
26566	ldr	r3, [r3, #-124]
26567	str	r2, [r3, r1, lsl #2]
26568	b	.L4233
26569.L4201:
26570	ldrb	r3, [r8, #-3127]	@ zero_extendqisi2
26571	ldr	r0, [r8, #-132]
26572	mul	r3, r1, r3
26573	lsr	r1, r2, #2
26574	add	r1, r0, r1, lsl #2
26575	ldr	r0, [r7, #4]
26576	rsb	r3, r2, r3, lsl #2
26577	mov	r2, r3
26578	str	r3, [sp, #52]
26579	bl	ftl_memcpy
26580	ldrb	r2, [r8, #-2546]	@ zero_extendqisi2
26581	mov	r1, #0
26582	ldr	r0, [r7, #12]
26583	lsl	r2, r2, #1
26584	bl	ftl_memset
26585	ldr	r2, [r7, #12]
26586	ldr	r3, [sp, #52]
26587	str	r10, [r2]
26588	mov	r1, r3
26589	ldr	r0, [r7, #4]
26590	ldr	r8, [r7, #12]
26591	bl	js_hash
26592	ldr	r2, .L4307+32
26593	str	r0, [r8, #4]
26594	ldr	r3, [r7, #12]
26595	ldr	r2, [r2, #1096]
26596	ldr	r2, [r2, #132]
26597	str	r2, [r3, #8]
26598	mov	r2, #1
26599	ldr	r3, [r7, #12]
26600	b	.L4301
26601.L4200:
26602	ldr	r3, .L4307+52
26603	ldrb	r2, [r8, #-3127]	@ zero_extendqisi2
26604	ldr	r1, [r8, #-132]
26605	ldrh	r3, [r3, #-14]
26606	ldr	r0, [r7, #4]
26607	mul	r2, r2, r3
26608	lsl	r2, r2, #2
26609	bl	ftl_memcpy
26610	ldr	r3, .L4307+52
26611	ldrb	r1, [r8, #-2546]	@ zero_extendqisi2
26612	ldr	r0, [r7, #4]
26613	ldrh	r2, [r3, #-14]
26614	ldrb	r3, [r8, #-3127]	@ zero_extendqisi2
26615	mul	r3, r3, r2
26616	cmp	r1, r3, asr #6
26617	lsl	r2, r3, #2
26618	ldrhlt	r1, [r8, #-14]
26619	mov	r3, r2
26620	ldr	r8, .L4307
26621	add	r0, r0, r3
26622	sublt	r2, r1, r2
26623	ldr	r1, [r8, #-128]
26624	bl	ftl_memcpy
26625	ldrb	r2, [r8, #-2546]	@ zero_extendqisi2
26626	mov	r1, #0
26627	ldr	r0, [r7, #12]
26628	lsl	r2, r2, #1
26629	bl	ftl_memset
26630	ldr	r3, [r7, #12]
26631	str	r10, [r3]
26632	sub	r3, r8, #3104
26633	ldrh	r3, [r3, #-14]
26634	ldrb	r1, [r8, #-3127]	@ zero_extendqisi2
26635	ldr	r0, [r7, #4]
26636	ldr	r10, [r7, #12]
26637	mul	r1, r1, r3
26638	lsl	r1, r1, #2
26639	bl	js_hash
26640	ldr	r2, .L4307+32
26641	str	r0, [r10, #4]
26642	ldr	r3, [r7, #12]
26643	ldr	r2, [r2, #1096]
26644	ldr	r2, [r2, #132]
26645.L4302:
26646	str	r2, [r3, #8]
26647	b	.L4202
26648.L4198:
26649	ldr	r8, .L4307
26650	mov	r1, #1
26651	ldr	r2, [sp, #16]
26652	mov	r0, r7
26653	ldr	r3, [r8, #-128]
26654	ldr	r3, [r3, r2, lsl #2]
26655	str	r3, [r7, #24]
26656	bl	sblk_read_page
26657	ldr	r3, [r7, #36]
26658	cmn	r3, #1
26659	cmpne	r3, #512
26660	bne	.L4205
26661	ldr	r3, .L4307+64
26662	mvn	r0, #0
26663	ldr	r2, [r7, #24]
26664	ldrh	r1, [r3]
26665	ldr	r3, .L4307+32
26666	ldrb	r3, [r3, #1153]	@ zero_extendqisi2
26667	lsr	r2, r2, r1
26668	rsb	r3, r3, #24
26669	sub	r3, r3, r1
26670	ldrb	r1, [r8, #-3136]	@ zero_extendqisi2
26671	bic	r0, r2, r0, lsl r3
26672	bl	__aeabi_uidiv
26673	mov	r1, #0
26674	uxth	r0, r0
26675	bl	ftl_sblk_dump
26676	ldr	r3, [r7, #36]
26677	cmn	r3, #1
26678	cmpne	r3, #512
26679	bne	.L4205
26680	ldr	r3, [r7, #12]
26681	mvn	r2, #0
26682	str	r2, [r3, #4]
26683	ldr	r3, [r7, #36]
26684	cmp	r3, r2
26685	cmpne	r3, #512
26686	bne	.L4205
26687	movw	r2, #1223
26688	ldr	r1, .L4307+8
26689	ldr	r0, .L4307+12
26690	bl	printk
26691	bl	dump_stack
26692.L4205:
26693	ldr	r3, [r7, #12]
26694	ldr	r2, .L4307+32
26695	ldr	r1, [r3, #4]
26696	ldr	r2, [r2, #2780]
26697	cmp	r1, r2
26698	ldr	r1, [sp, #16]
26699	mvncs	r2, #0
26700	strcs	r2, [r3, #4]
26701	ldr	r3, [r7, #12]
26702	ldr	r2, [r3, #4]
26703	ldr	r3, .L4307
26704	ldr	r3, [r3, #-132]
26705	str	r2, [r3, r1, lsl #2]
26706	ldr	r3, [r7, #12]
26707	ldr	r2, [r7, #24]
26708	b	.L4302
26709.L4208:
26710	ldrb	r3, [r2, #1159]	@ zero_extendqisi2
26711	ldr	r1, .L4307+68
26712	cmp	r3, #0
26713	umull	r2, r3, r9, r1
26714	beq	.L4211
26715	ldr	r2, [sp, #20]
26716	lsr	r3, r3, #1
26717	ldr	ip, [sp, #12]
26718	uxtah	r2, r2, r3
26719	add	r3, r3, r3, lsl #1
26720	add	r2, ip, r2, lsl #1
26721	ldr	ip, .L4307+60
26722	sub	r3, r9, r3
26723	ldrh	r2, [r2, #96]
26724	ldrh	ip, [ip]
26725	mla	r2, ip, r2, r4
26726	uxtah	r3, r2, r3
26727.L4306:
26728	str	r3, [r0, #1256]
26729	mov	r0, #48
26730	mul	r7, r0, r7
26731	ldr	r3, .L4307+32
26732	umull	r0, r1, r9, r1
26733	add	r2, r3, #1232
26734	add	r2, r2, r7
26735	add	r7, r3, r7
26736	ldrh	ip, [r2, #32]
26737	ldr	r2, .L4307
26738	lsr	r1, r1, #1
26739	ldr	r3, [r7, #1256]
26740	add	r1, r1, r1, lsl #1
26741	ldr	r2, [r2, #-124]
26742	sub	r1, r9, r1
26743	lsl	r1, r1, #24
26744	add	r1, r1, #16777216
26745	orr	r1, r1, r3
26746	str	r1, [r2, ip, lsl #2]
26747.L4233:
26748	ldr	r3, .L4307
26749	ldrb	r2, [r3, #-2542]	@ zero_extendqisi2
26750	cmp	r2, #0
26751	beq	.L4215
26752	ldr	r2, [sp, #40]
26753	ldrh	r2, [r2]
26754	cmp	r2, r4
26755	bcs	.L4215
26756	tst	r9, #1
26757	beq	.L4215
26758	ldr	r1, [r3, #-3124]
26759	mvn	r2, #0
26760	ldr	r0, [sp, #16]
26761	ldr	ip, [sp, #48]
26762	strb	r2, [r1, r0]
26763	add	r1, sp, #80
26764	ldr	r0, [sp, #28]
26765	add	r1, r1, r0, lsl #2
26766	ldrh	r0, [sp, #48]
26767	ldr	r1, [r1, #-24]
26768	strh	r0, [r1, #32]	@ movhi
26769	ldrb	r0, [r1, #1]	@ zero_extendqisi2
26770	ldr	r1, [r3, #-3124]
26771	strb	r0, [r1, ip]
26772	ldr	r1, [sp, #16]
26773	ldr	r3, [r3, #-128]
26774	str	r2, [r3, r1, lsl #2]
26775.L4215:
26776	ldr	r3, [sp, #32]
26777	add	r3, r3, #1
26778	str	r3, [sp, #32]
26779	b	.L4192
26780.L4211:
26781	ldr	r2, [sp, #20]
26782	ubfx	r3, r3, #1, #16
26783	add	r3, r2, r3
26784	ldr	r2, [sp, #12]
26785	add	r3, r2, r3, lsl #1
26786	ldr	r2, .L4307+60
26787	ldrh	r3, [r3, #96]
26788	ldrh	r2, [r2]
26789	mla	r3, r2, r3, r4
26790	b	.L4306
26791.L4207:
26792	cmp	r1, #2
26793	bne	.L4214
26794	ldrb	r3, [r3, #-3126]	@ zero_extendqisi2
26795	cmp	r3, #0
26796	bne	.L4213
26797	ldr	r2, [sp, #20]
26798	ldr	r3, [sp, #28]
26799	add	r3, r3, r2
26800	ldr	r2, [sp, #12]
26801	add	r3, r2, r3, lsl #1
26802	ldr	r2, .L4307+60
26803	ldrh	r3, [r3, #96]
26804	ldrh	r2, [r2]
26805	mla	r3, r2, r3, r4
26806.L4303:
26807	orr	r3, r3, #33554432
26808	str	r3, [r0, #1256]
26809	b	.L4214
26810.L4213:
26811	ldr	r3, [sp, #20]
26812	ldr	r2, [sp, #12]
26813	add	r3, r3, r9, lsr #1
26814	add	r3, r2, r3, lsl #1
26815	ldr	r2, .L4307+60
26816	ldrh	r3, [r3, #96]
26817	ldrh	r2, [r2]
26818	mla	r3, r2, r3, r4
26819	and	r2, r9, #1
26820	add	r3, r3, r2
26821	b	.L4303
26822.L4220:
26823	add	r0, sp, #80
26824	add	ip, sp, #80
26825	add	r0, r0, r3, lsl #2
26826	add	r3, ip, r3, lsl #2
26827	ldr	r3, [r3, #-20]
26828	ldr	r0, [r0, #-24]
26829	ldrb	r3, [r3, #1]	@ zero_extendqisi2
26830	strb	r3, [r0]
26831.L4219:
26832	uxth	r3, r1
26833	add	r1, r1, #1
26834	cmp	r3, r2
26835	blt	.L4220
26836	add	r3, sp, #80
26837	add	r2, r3, r2, lsl #2
26838	ldr	r3, [r2, #-24]
26839.L4304:
26840	smulbb	r1, r6, r5
26841	mvn	r2, #0
26842	strb	r2, [r3]
26843	ldr	r0, [sp, #56]
26844	uxtb	r1, r1
26845	bl	sblk_prog_page
26846	b	.L4221
26847.L4217:
26848	ldrb	r3, [r7, #-3126]	@ zero_extendqisi2
26849	cmp	r3, #0
26850	beq	.L4226
26851	ldrb	r3, [r7, #-3125]	@ zero_extendqisi2
26852	cmp	r3, #0
26853	bne	.L4227
26854.L4226:
26855	ldr	r2, [sp, #36]
26856	sub	r1, r2, #1
26857.L4228:
26858	uxth	r2, r3
26859	add	r3, r3, #1
26860	cmp	r2, r1
26861	blt	.L4229
26862	add	r3, sp, #80
26863	add	r1, r3, r1, lsl #2
26864	ldr	r3, [r1, #-24]
26865	b	.L4304
26866.L4227:
26867	mov	r1, r6
26868	add	r0, sp, #56
26869	bl	sblk_3d_mlc_prog_pages
26870	b	.L4221
26871.L4229:
26872	add	r0, sp, #80
26873	add	ip, sp, #80
26874	add	r0, r0, r2, lsl #2
26875	add	r2, ip, r2, lsl #2
26876	ldr	r2, [r2, #-20]
26877	ldr	r0, [r0, #-24]
26878	ldrb	r2, [r2, #1]	@ zero_extendqisi2
26879	strb	r2, [r0]
26880	b	.L4228
26881.L4308:
26882	.align	2
26883.L4307:
26884	.word	.LANCHOR3
26885	.word	.LANCHOR0+2824
26886	.word	.LANCHOR1+2509
26887	.word	.LC0
26888	.word	.LANCHOR0+1232
26889	.word	.LANCHOR2
26890	.word	.LC297
26891	.word	.LC298
26892	.word	.LANCHOR0
26893	.word	.LANCHOR2+2114
26894	.word	.LANCHOR3-3118
26895	.word	1431655766
26896	.word	.LANCHOR2+3650
26897	.word	.LANCHOR3-3104
26898	.word	-178307901
26899	.word	.LANCHOR3-3074
26900	.word	.LANCHOR3-3138
26901	.word	-1431655765
26902	.fnend
26903	.size	gc_do_copy_back, .-gc_do_copy_back
26904	.align	2
26905	.global	zftl_do_gc
26906	.syntax unified
26907	.arm
26908	.fpu softvfp
26909	.type	zftl_do_gc, %function
26910zftl_do_gc:
26911	.fnstart
26912	@ args = 0, pretend = 0, frame = 8
26913	@ frame_needed = 0, uses_anonymous_args = 0
26914	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
26915	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
26916	movw	r3, #2788
26917	ldr	r4, .L4535
26918	cmp	r0, #1
26919	.pad #36
26920	sub	sp, sp, #36
26921	mov	r10, r0
26922	ldr	r5, .L4535+4
26923	add	r9, r4, #2784
26924	ldrh	r8, [r4, r3]
26925	ldrh	r6, [r9]
26926	movw	r3, #2786
26927	ldr	r7, [r4, #1096]
26928	ldrh	fp, [r4, r3]
26929	add	r6, r8, r6
26930	uxth	r6, r6
26931	beq	.L4310
26932.L4322:
26933	ldrb	r3, [r5, #-144]	@ zero_extendqisi2
26934	cmp	r3, #6
26935	ldrls	pc, [pc, r3, asl #2]
26936	b	.L4435
26937.L4313:
26938	.word	.L4312
26939	.word	.L4314
26940	.word	.L4315
26941	.word	.L4316
26942	.word	.L4317
26943	.word	.L4318
26944	.word	.L4319
26945.L4318:
26946	ldr	r8, .L4535+40
26947	mov	r7, #0
26948.L4320:
26949	bl	gc_check_data_one_wl
26950	subs	r9, r0, #0
26951	beq	.L4431
26952	ldr	r3, [r4, #1096]
26953	mov	r6, #0
26954	strh	r6, [r8, #52]	@ movhi
26955	ldrh	r0, [r3, #80]
26956	bl	ftl_free_sblk
26957	ldr	r2, [r4, #1096]
26958	mvn	r3, #0
26959	ldr	r1, [r4, #2800]
26960	ldr	r0, [r4, #2832]
26961	strh	r3, [r2, #80]	@ movhi
26962	strh	r3, [r1, #126]	@ movhi
26963	strh	r3, [r2, #130]	@ movhi
26964	bl	zbuf_free
26965	str	r6, [r4, #2832]
26966	strb	r6, [r5, #-144]
26967	b	.L4532
26968.L4310:
26969	ldr	r3, [r5, #-8]
26970	cmp	r3, #0
26971	bne	.L4321
26972	ldr	r2, [r5, #-4]
26973	cmp	r2, #0
26974	beq	.L4322
26975.L4321:
26976	ldr	r2, .L4535+60
26977	ldrh	r2, [r2, #-4]
26978	cmp	r6, r2, lsr #2
26979	bls	.L4322
26980	movw	r2, #2804
26981	ldrh	r2, [r4, r2]
26982	cmp	r2, r6
26983	bcs	.L4322
26984	str	r3, [sp, #24]
26985	bl	timer_get_time
26986	ldr	r3, [sp, #24]
26987	add	r3, r3, #20
26988	cmp	r3, r0
26989	movcc	r3, #0
26990	strcc	r3, [r5, #-8]
26991	ldr	r3, [r5, #-4]
26992	add	r3, r3, #20
26993	str	r3, [sp, #24]
26994	bl	timer_get_time
26995	ldr	r3, [sp, #24]
26996	cmp	r3, r0
26997	movcc	r3, #0
26998	strcc	r3, [r5, #-4]
26999	ldr	r3, [r4, #1096]
27000	ldrh	r3, [r3, #124]
27001	cmp	r3, #0
27002	bne	.L4322
27003.L4435:
27004	mov	r7, #16
27005	b	.L4309
27006.L4312:
27007	movw	r3, #2790
27008	ldrh	r2, [r7, #80]
27009	ldrh	r9, [r4, r3]
27010	movw	r3, #2792
27011	ldrh	r3, [r4, r3]
27012	add	r8, r8, fp
27013	uxth	r8, r8
27014	add	r9, r9, r3
27015	movw	r3, #65535
27016	cmp	r2, r3
27017	uxth	r9, r9
27018	beq	.L4325
27019	cmp	r10, #0
27020	bne	.L4326
27021	movw	r3, #2804
27022	ldrh	r3, [r4, r3]
27023	cmp	r6, r3, lsl #1
27024	bge	.L4435
27025.L4326:
27026	ldr	r10, .L4535+60
27027	ldrh	r1, [r10, #-6]
27028	sub	r0, r10, #12
27029	add	r1, r1, #1
27030	uxth	r1, r1
27031	strh	r1, [r10, #-6]	@ movhi
27032	bl	_list_get_gc_head_node
27033	movw	r3, #65535
27034	cmp	r0, r3
27035	beq	.L4328
27036	ldr	r1, [r4, #1092]
27037	lsl	r2, r0, #1
27038	ldr	r3, [r5, #-140]
27039	ldrh	r2, [r1, r2]
27040	ldrh	r1, [r10, #-8]
27041	add	r3, r3, #1
27042	str	r3, [r5, #-140]
27043	cmp	r1, r2
27044	bcs	.L4329
27045	movw	r1, #1080
27046	ldrh	r1, [r4, r1]
27047	cmp	r3, r1, lsr #4
27048	bls	.L4328
27049	movw	r3, #2808
27050	ldrh	r3, [r4, r3]
27051	cmp	r3, r2
27052	bls	.L4328
27053.L4329:
27054	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
27055	mov	r1, #0
27056	bl	gc_add_sblk
27057	cmp	r0, #0
27058	beq	.L4330
27059	mov	r3, #1
27060	strb	r3, [r5, #-144]
27061	mov	r3, #0
27062	str	r3, [r5, #-140]
27063	b	.L4435
27064.L4328:
27065	mov	r3, #0
27066	strh	r3, [r10, #-6]	@ movhi
27067.L4330:
27068	cmp	r8, #15
27069	movls	r9, #2
27070	bls	.L4331
27071	movw	r3, #2794
27072	clz	r9, r9
27073	ldrh	r2, [r4, r3]
27074	lsr	r9, r9, #5
27075	ldrh	r3, [r10, #-2]
27076	cmp	r2, r3
27077	orrhi	r9, r9, #1
27078	cmp	r9, #0
27079	movne	r9, #2
27080	moveq	r9, #1
27081.L4331:
27082	ldr	r3, .L4535+8
27083	ldr	r3, [r3]
27084	tst	r3, #256
27085	beq	.L4332
27086	ldrh	r1, [r7, #80]
27087	ldr	r3, [r4, #1096]
27088	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
27089	str	r1, [sp, #16]
27090	ldrh	r1, [r3, #122]
27091	ldr	r0, .L4535+12
27092	str	r1, [sp, #12]
27093	ldrh	r1, [r3, #120]
27094	str	r1, [sp, #8]
27095	movw	r1, #2807
27096	ldrh	r3, [r3, #124]
27097	str	r8, [sp]
27098	str	r3, [sp, #4]
27099	mov	r3, r6
27100	bl	printk
27101.L4332:
27102	mov	r2, #1
27103	mov	r1, r9
27104	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
27105	bl	gc_search_src_blk
27106	cmp	r0, #0
27107	ble	.L4333
27108.L4334:
27109	mov	r3, #1
27110.L4533:
27111	strb	r3, [r5, #-144]
27112	b	.L4435
27113.L4333:
27114	mov	r2, #1
27115	mov	r1, #3
27116	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
27117	bl	gc_search_src_blk
27118	cmp	r0, #0
27119	bgt	.L4334
27120	b	.L4435
27121.L4325:
27122	cmp	r10, #1
27123	bne	.L4335
27124	ldr	r3, [r4, #2800]
27125	ldrh	r3, [r3, #150]
27126	cmp	r3, #0
27127	beq	.L4336
27128	movw	r3, #2788
27129	ldrh	r3, [r4, r3]
27130	cmp	r3, #8
27131	bls	.L4336
27132	bl	gc_ink_check_sblk
27133.L4336:
27134	bl	gc_scan_static_data
27135	ldr	r3, [r4, #1096]
27136	ldrh	r3, [r3, #122]
27137	cmp	r3, #0
27138	beq	.L4337
27139.L4338:
27140	mov	r3, #1
27141	strb	r3, [r5, #-3119]
27142	b	.L4533
27143.L4337:
27144	bl	gc_static_wearleveling
27145	subs	r7, r0, #0
27146	bne	.L4338
27147	bl	gc_block_vpn_scan
27148	cmp	r8, #0
27149	ldr	fp, .L4535+60
27150	beq	.L4339
27151	cmp	r6, r9
27152	bcs	.L4340
27153	ldrh	r3, [fp, #-4]
27154	cmp	r3, r6
27155	bhi	.L4341
27156.L4340:
27157	ldrh	r2, [fp, #-4]
27158	add	r3, r6, r9
27159	cmp	r3, r2
27160	blt	.L4341
27161	movw	r3, #2794
27162	ldrh	r2, [r4, r3]
27163	ldrh	r3, [fp, #-2]
27164	cmp	r2, r3
27165	bcc	.L4339
27166.L4341:
27167	mov	r1, #1
27168	mov	r0, #16
27169	strb	r1, [r5, #-3119]
27170	str	r1, [sp, #24]
27171	bl	zftl_get_gc_node.part.10
27172	movw	r2, #65535
27173	cmp	r0, r2
27174	beq	.L4342
27175	ldr	r2, [r4, #1092]
27176	lsl	r3, r0, #1
27177	ldr	r1, [sp, #24]
27178	ldrh	r3, [r2, r3]
27179	ldrh	r2, [r5, #-136]
27180	cmp	r3, r2
27181	movcs	r3, #0
27182	movcc	r3, #1
27183	cmp	r6, #2
27184	movls	r3, #0
27185	cmp	r3, #0
27186	beq	.L4342
27187	mov	r2, #0
27188	strb	r2, [r5, #-3119]
27189	str	r2, [r5, #-140]
27190	bl	gc_add_sblk
27191	cmp	r0, #0
27192	bne	.L4334
27193.L4342:
27194	mov	r1, #0
27195	ldr	r0, .L4535+16
27196	bl	_list_get_gc_head_node
27197	movw	r2, #65535
27198	cmp	r0, r2
27199	beq	.L4343
27200	ldr	r2, [r4, #1092]
27201	lsl	r3, r0, #1
27202	ldrh	r3, [r2, r3]
27203	ldrh	r2, [r5, #-136]
27204	cmp	r3, r2
27205	movcs	r3, #0
27206	movcc	r3, #1
27207	cmp	r6, #2
27208	movls	r3, #0
27209	cmp	r3, #0
27210	beq	.L4343
27211	mov	r2, #0
27212	mov	r1, #1
27213	strb	r2, [r5, #-3119]
27214	str	r2, [r5, #-140]
27215	bl	gc_add_sblk
27216	cmp	r0, #0
27217	bne	.L4334
27218.L4343:
27219	ldrh	r3, [r5, #-136]
27220	ldrh	r2, [fp, #-8]
27221	ldr	r0, .L4535+16
27222	add	r3, r3, #1
27223	ldr	r1, [r5, #-140]
27224	uxth	r3, r3
27225	str	r2, [sp, #28]
27226	cmp	r3, r2, lsr #5
27227	strh	r3, [r5, #-136]	@ movhi
27228	add	r1, r1, #1
27229	movhi	r3, #4
27230	str	r1, [r5, #-140]
27231	strhhi	r3, [r5, #-136]	@ movhi
27232	mov	r3, #0
27233	strh	r3, [r0, #-8]	@ movhi
27234	strh	r3, [r0, #-6]	@ movhi
27235	strh	r3, [r0, #-4]	@ movhi
27236	movw	r0, #1080
27237	ldrh	r0, [r4, r0]
27238	cmp	r1, r0, lsr #5
27239	bls	.L4345
27240	movw	r1, #2794
27241	ldrh	r1, [r4, r1]
27242	cmp	r1, r8
27243	bls	.L4345
27244	mov	r1, r3
27245	sub	r0, fp, #12
27246	str	r3, [sp, #24]
27247	bl	_list_get_gc_head_node
27248	movw	r1, #65535
27249	ldr	r3, [sp, #24]
27250	cmp	r0, r1
27251	ldr	r2, [sp, #28]
27252	bne	.L4346
27253.L4519:
27254	mov	r7, #16
27255	b	.L4347
27256.L4346:
27257	ldr	r1, [r4, #1092]
27258	lsl	r0, r0, #1
27259	ldrh	r1, [r1, r0]
27260	ldrb	r0, [r5, #-3127]	@ zero_extendqisi2
27261	mul	r2, r2, r0
27262	cmp	r1, r2
27263	strle	r3, [r5, #-140]
27264	movle	r2, #4
27265	bgt	.L4519
27266.L4527:
27267	mov	r1, #2
27268.L4518:
27269	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
27270	bl	gc_search_src_blk
27271	uxth	r0, r0
27272	cmp	r0, #0
27273	beq	.L4519
27274	b	.L4334
27275.L4345:
27276	movw	r3, #2794
27277	ldrh	r2, [r4, r3]
27278	ldrh	r3, [fp, #-2]
27279	cmp	r2, r3
27280	movcs	r2, #1
27281	bcs	.L4527
27282.L4350:
27283	movw	r3, #2790
27284	ldrh	r3, [r4, r3]
27285	cmp	r3, #0
27286	bne	.L4351
27287	movw	r3, #2792
27288	ldrh	r3, [r4, r3]
27289	cmp	r3, #8
27290	bls	.L4352
27291.L4351:
27292	mov	r2, #4
27293	mov	r1, #1
27294	b	.L4518
27295.L4352:
27296	ldr	r2, .L4535+40
27297	movw	r3, #2106
27298	ldrh	r3, [r2, r3]
27299	cmp	r3, #0
27300	bne	.L4519
27301.L4347:
27302	ldr	r3, [r4, #2812]
27303	cmp	r3, #0
27304	beq	.L4353
27305	mov	r3, #0
27306	mov	r1, #0
27307	str	r3, [r4, #2812]
27308	subs	r3, r8, r3
27309	movne	r3, #1
27310	cmp	r6, #15
27311	movhi	r3, #0
27312	ldr	r0, .L4535+20
27313	cmp	r3, #0
27314	movne	r3, #1
27315	strb	r3, [r5, #-3119]
27316	bl	_list_get_gc_head_node
27317	movw	r2, #65535
27318	cmp	r0, r2
27319	beq	.L4356
27320	ldr	r2, [r4, #1092]
27321	lsl	r3, r0, #1
27322	ldrh	r3, [r2, r3]
27323	cmp	r3, #8
27324	bhi	.L4356
27325	mov	r3, #1
27326	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
27327	mov	r1, #0
27328	str	r3, [r4, #2812]
27329	bl	gc_add_sblk
27330	cmp	r0, #0
27331	bne	.L4334
27332.L4356:
27333	mov	r1, #0
27334	ldr	r0, .L4535+16
27335	bl	_list_get_gc_head_node
27336	movw	r2, #65535
27337	cmp	r0, r2
27338	beq	.L4357
27339	ldr	r2, [r4, #1092]
27340	lsl	r3, r0, #1
27341	ldrh	r3, [r2, r3]
27342	cmp	r3, #4
27343	bhi	.L4357
27344	mov	r3, #1
27345	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
27346	mov	r1, #0
27347	str	r3, [r4, #2812]
27348	bl	gc_add_sblk
27349	cmp	r0, #0
27350	bne	.L4334
27351.L4357:
27352	mov	r0, #0
27353	bl	zftl_get_gc_node.part.10
27354	movw	r2, #65535
27355	cmp	r0, r2
27356	beq	.L4353
27357	ldr	r2, [r4, #1092]
27358	lsl	r3, r0, #1
27359	ldrh	r3, [r2, r3]
27360	cmp	r3, #4
27361	bhi	.L4353
27362	mov	r1, #1
27363	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
27364	str	r1, [r4, #2812]
27365	bl	gc_add_sblk
27366	cmp	r0, #0
27367	bne	.L4334
27368.L4353:
27369	ldr	r3, [r4, #1096]
27370	mov	r1, #1
27371	strb	r1, [r5, #-3119]
27372	ldrh	fp, [r3, #124]
27373	cmp	fp, #0
27374	movne	r3, #0
27375	strbne	r1, [r5, #-144]
27376	strbne	r3, [r5, #-3119]
27377	bne	.L4309
27378	movw	r3, #2804
27379	ldrh	r2, [r4, r3]
27380	cmp	r6, r2
27381	bcs	.L4359
27382	cmp	r8, #0
27383	beq	.L4360
27384	cmp	r8, #16
27385	bls	.L4361
27386	ldr	r6, .L4535+60
27387	movw	r3, #2794
27388	ldrh	r2, [r4, r3]
27389	ldrh	r3, [r6, #-2]
27390	cmp	r2, r3
27391	bhi	.L4361
27392	mov	r2, #4
27393	mov	r0, r1
27394	bl	gc_search_src_blk
27395	uxth	r0, r0
27396	cmp	r0, #0
27397	bne	.L4362
27398.L4523:
27399	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
27400	mov	r2, #4
27401	mov	r1, #3
27402.L4525:
27403	bl	gc_search_src_blk
27404	uxth	r0, r0
27405.L4363:
27406	cmp	r0, #0
27407	bne	.L4365
27408	b	.L4309
27409.L4339:
27410	ldrh	r3, [r5, #-136]
27411	ldrh	r2, [fp, #-8]
27412	cmp	r3, r2, lsr #5
27413	movcs	r3, #4
27414	strhcs	r3, [r5, #-136]	@ movhi
27415	b	.L4519
27416.L4335:
27417	movw	r3, #2804
27418	ldrh	r3, [r4, r3]
27419	cmp	r3, r6
27420	bcs	.L4519
27421	ldr	r3, [r4, #1096]
27422	ldrh	r3, [r3, #124]
27423	cmp	r3, #0
27424	beq	.L4435
27425	b	.L4519
27426.L4362:
27427	mov	r1, fp
27428	sub	r0, r6, #12
27429	bl	_list_get_gc_head_node
27430	movw	r3, #65535
27431	cmp	r0, r3
27432	beq	.L4365
27433	ldr	r1, [r4, #1092]
27434	lsl	r2, r0, #1
27435	ldr	r3, [r5, #-140]
27436	ldrh	r2, [r1, r2]
27437	ldrh	r1, [r6, #-8]
27438	add	r3, r3, #1
27439	str	r3, [r5, #-140]
27440	cmp	r1, r2
27441	bcs	.L4366
27442	movw	r1, #1080
27443	ldrh	r1, [r4, r1]
27444	cmp	r3, r1, lsr #4
27445	bls	.L4365
27446	movw	r3, #2808
27447	ldrh	r3, [r4, r3]
27448	cmp	r3, r2
27449	bls	.L4365
27450.L4366:
27451	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
27452	mov	r1, #0
27453	bl	gc_add_sblk
27454	mov	r3, #1
27455	str	r3, [r4, #2812]
27456	mov	r3, #0
27457	str	r3, [r5, #-140]
27458.L4365:
27459	mov	r3, #1
27460	b	.L4526
27461.L4361:
27462	mov	r2, #1
27463	mov	r1, #2
27464	mov	r0, r2
27465.L4529:
27466	bl	gc_search_src_blk
27467	uxth	r0, r0
27468	cmp	r0, #0
27469	bne	.L4365
27470	b	.L4523
27471.L4360:
27472	cmp	r6, #16
27473	strb	r8, [r5, #-3119]
27474	movhi	r2, #4
27475	movhi	r1, #3
27476	movhi	r0, r8
27477	bhi	.L4525
27478	mov	r2, r1
27479	mov	r0, r8
27480	b	.L4529
27481.L4359:
27482	cmp	r10, #1
27483	bne	.L4309
27484	cmp	r6, r2, lsl #1
27485	bge	.L4369
27486	cmp	r9, r8, lsr #1
27487	bcs	.L4370
27488	ldr	r2, .L4535+60
27489	movw	r1, #2794
27490	ldrh	r0, [r4, r1]
27491	ldrh	r1, [r2, #-2]
27492	cmp	r0, r1
27493	ldrhcc	r2, [r2, #-4]
27494	lsrcc	r2, r2, #2
27495	strhcc	r2, [r4, r3]	@ movhi
27496	bcc	.L4309
27497.L4370:
27498	mov	r0, #8
27499	bl	zftl_get_gc_node.part.10
27500	movw	r2, #65535
27501	cmp	r0, r2
27502	beq	.L4371
27503	ldr	r2, [r4, #1092]
27504	lsl	r3, r0, #1
27505	ldrh	r3, [r2, r3]
27506	cmp	r3, #3
27507	movhi	r3, #0
27508	movls	r3, #1
27509	cmp	r6, #0
27510	moveq	r3, #0
27511	cmp	r3, #0
27512	beq	.L4371
27513	mov	r2, #0
27514	mov	r1, #1
27515	strb	r2, [r5, #-3119]
27516	bl	gc_add_sblk
27517	cmp	r0, #0
27518	bne	.L4365
27519.L4371:
27520	mov	r1, #0
27521	ldr	r0, .L4535+20
27522	bl	_list_get_gc_head_node
27523	movw	r3, #65535
27524	mov	fp, r0
27525	cmp	r0, r3
27526	ldr	r10, .L4535+60
27527	bne	.L4372
27528.L4377:
27529	cmp	r8, #1
27530	bhi	.L4373
27531.L4374:
27532	cmp	r6, r9
27533	bcs	.L4381
27534	mov	r6, #0
27535	mov	r0, #4
27536	strb	r6, [r5, #-3119]
27537	bl	zftl_get_gc_node.part.10
27538	movw	r3, #65535
27539	cmp	r0, r3
27540	beq	.L4381
27541	ldr	r3, [r4, #1092]
27542	lsl	r0, r0, #1
27543	ldrh	r1, [r10, #-8]
27544	ldrh	r2, [r3, r0]
27545	ldrb	r3, [r5, #-3127]	@ zero_extendqisi2
27546	mul	r3, r3, r1
27547	cmp	r2, r3, asr #1
27548	ble	.L4383
27549.L4381:
27550	ldrh	r3, [r10, #-4]
27551	movw	r2, #2804
27552	lsr	r3, r3, #2
27553	strh	r3, [r4, r2]	@ movhi
27554.L4309:
27555	mov	r0, r7
27556	add	sp, sp, #36
27557	@ sp needed
27558	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
27559.L4372:
27560	movw	r2, #1080
27561	ldr	r3, [r5, #-140]
27562	ldrh	r2, [r4, r2]
27563	add	r3, r3, #1
27564	str	r3, [r5, #-140]
27565	cmp	r3, r2, lsr #4
27566	lsl	r3, r0, #1
27567	str	r3, [sp, #24]
27568	bls	.L4375
27569	ldr	r3, [r4, #1092]
27570	lsl	r2, r0, #1
27571	mov	r1, #0
27572	str	r1, [r5, #-140]
27573	ldrh	r2, [r3, r2]
27574	movw	r3, #2808
27575	ldrh	r3, [r4, r3]
27576	cmp	r2, r3
27577	bcs	.L4375
27578	mov	r3, #1
27579	mov	r2, r3
27580	strb	r3, [r5, #-3119]
27581	str	r3, [sp, #24]
27582	bl	gc_add_sblk
27583	cmp	r0, #0
27584	ldr	r3, [sp, #24]
27585	beq	.L4375
27586.L4526:
27587	strb	r3, [r5, #-144]
27588	b	.L4309
27589.L4375:
27590	ldr	r3, [r4, #1092]
27591	lsl	r2, fp, #1
27592	ldrh	r2, [r3, r2]
27593	ldrh	r3, [r10, #-8]
27594	cmp	r2, r3, lsr #1
27595	bhi	.L4376
27596	mov	r2, #0
27597	mov	r1, #1
27598	mov	r0, fp
27599	bl	gc_add_sblk
27600	b	.L4365
27601.L4376:
27602	movw	r3, #2790
27603	movw	r1, #2792
27604	ldrh	r1, [r4, r1]
27605	ldrh	r3, [r4, r3]
27606	add	r3, r3, r1
27607	ldrh	r1, [r10, #-4]
27608	cmp	r3, r1, lsl #1
27609	ble	.L4377
27610	movw	r3, #2808
27611	ldrh	r3, [r4, r3]
27612	cmp	r3, r2
27613	bcc	.L4374
27614	b	.L4377
27615.L4373:
27616	cmp	r8, #16
27617	mov	r1, #1
27618	strb	r1, [r5, #-3119]
27619	bls	.L4378
27620	movw	r3, #2794
27621	ldrh	r2, [r4, r3]
27622	ldrh	r3, [r10, #-2]
27623	cmp	r2, r3
27624	movls	r2, #4
27625	movls	r0, r1
27626	bls	.L4531
27627.L4378:
27628	mov	r2, #1
27629	mov	r1, #2
27630	mov	r0, r2
27631.L4531:
27632	bl	gc_search_src_blk
27633	uxth	r0, r0
27634	cmp	r0, #0
27635	bne	.L4379
27636	mov	r2, #4
27637	mov	r1, #3
27638	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
27639	bl	gc_search_src_blk
27640	uxth	r0, r0
27641.L4379:
27642	ldrh	r3, [r10, #-4]
27643	cmp	r6, r9, lsr #1
27644	movw	r2, #2804
27645	lsrhi	r3, r3, #2
27646	lsrls	r3, r3, #1
27647.L4524:
27648	strh	r3, [r4, r2]	@ movhi
27649	b	.L4363
27650.L4383:
27651	mov	r2, #4
27652	mov	r1, #3
27653	mov	r0, r6
27654	bl	gc_search_src_blk
27655	ldrh	r3, [r10, #-4]
27656	uxth	r0, r0
27657	movw	r2, #2804
27658	lsr	r3, r3, #1
27659	b	.L4524
27660.L4369:
27661	ldr	r2, .L4535+60
27662	ldrh	r2, [r2, #-4]
27663	lsr	r2, r2, #2
27664	strh	r2, [r4, r3]	@ movhi
27665	movw	r3, #2106
27666	ldr	r2, .L4535+40
27667	ldrh	r3, [r2, r3]
27668	cmp	r3, #0
27669	moveq	r7, #0
27670	b	.L4309
27671.L4314:
27672	movw	r6, #2824
27673	movw	r3, #65535
27674	ldrh	r2, [r4, r6]
27675	cmp	r2, r3
27676	bne	.L4384
27677	bl	gc_get_src_blk
27678	strh	r0, [r4, r6]	@ movhi
27679.L4384:
27680	movw	r3, #2824
27681	movw	r1, #65535
27682	ldrh	r2, [r4, r3]
27683	cmp	r2, r1
27684	beq	.L4385
27685	movw	r1, #1080
27686	ldrh	r1, [r4, r1]
27687	cmp	r1, r2
27688	mvnls	r2, #0
27689	strhls	r2, [r4, r3]	@ movhi
27690.L4385:
27691	movw	r3, #2824
27692	movw	r1, #65535
27693	ldrh	r3, [r4, r3]
27694	ldr	r2, .L4535+40
27695	cmp	r3, r1
27696	beq	.L4534
27697	ldrh	ip, [r2, #52]
27698	ldr	r1, [r4, #1084]
27699	cmp	ip, #0
27700	addne	r2, r2, #52
27701	movne	r0, #0
27702	add	r1, r1, r3, lsl #2
27703	bne	.L4388
27704.L4387:
27705	ldrb	r2, [r1, #2]	@ zero_extendqisi2
27706	tst	r2, #192
27707	and	r2, r2, #224
27708	moveq	r1, #1
27709	movne	r1, #0
27710	cmp	r2, #224
27711	movne	r2, r1
27712	orreq	r2, r1, #1
27713	cmp	r2, #0
27714	beq	.L4390
27715	ldr	r2, [r4, #1092]
27716	lsl	r3, r3, #1
27717	ldrh	r3, [r2, r3]
27718	cmp	r3, #0
27719	beq	.L4392
27720	movw	r2, #3306
27721	ldr	r1, .L4535+64
27722	ldr	r0, .L4535+68
27723	bl	printk
27724	bl	dump_stack
27725	b	.L4392
27726.L4388:
27727	uxth	lr, r0
27728	cmp	lr, ip
27729	bcs	.L4387
27730	ldrh	lr, [r2, #2]!
27731	add	r0, r0, #1
27732	cmp	lr, r3
27733	bne	.L4388
27734.L4392:
27735	mvn	r2, #0
27736	movw	r3, #2824
27737	strh	r2, [r4, r3]	@ movhi
27738	b	.L4435
27739.L4390:
27740	mov	r3, #2
27741	b	.L4533
27742.L4315:
27743	bl	gc_scan_src_blk
27744	cmn	r0, #1
27745	moveq	r3, #3
27746	beq	.L4533
27747	movw	r3, #2824
27748	ldr	r2, .L4535+40
27749	ldrh	r3, [r4, r3]
27750	movw	r1, #65535
27751	mov	r6, r2
27752	cmp	r3, r1
27753	beq	.L4334
27754	ldrh	r1, [r2, #20]
27755	cmp	r1, #0
27756	movne	r3, #4
27757	strbne	r3, [r5, #-144]
27758	movne	r3, #0
27759	strhne	r3, [r2, #22]	@ movhi
27760	bne	.L4435
27761.L4394:
27762	mov	r2, #1
27763	lsl	r3, r3, #1
27764	strb	r2, [r5, #-144]
27765	ldr	r2, [r4, #1092]
27766	ldrh	r3, [r2, r3]
27767	cmp	r3, #0
27768	beq	.L4395
27769	movw	r2, #3336
27770	ldr	r1, .L4535+64
27771	ldr	r0, .L4535+68
27772	bl	printk
27773	bl	dump_stack
27774.L4395:
27775	movw	r5, #2824
27776	ldrh	r0, [r4, r5]
27777	bl	ftl_free_sblk
27778	ldrh	r3, [r4, r5]
27779	mov	r5, #0
27780	ldr	r2, [r4, #1092]
27781	lsl	r3, r3, #1
27782	strh	r5, [r2, r3]	@ movhi
27783	ldrh	r3, [r6, #26]
27784	add	r3, r3, #1
27785	uxth	r3, r3
27786	cmp	r3, #8
27787	strhls	r3, [r6, #26]	@ movhi
27788	bls	.L4392
27789	strh	r5, [r6, #26]	@ movhi
27790	bl	ftl_flush
27791	bl	pm_flush
27792	bl	ftl_ext_info_flush
27793	mov	r0, r5
27794	bl	ftl_info_flush
27795	b	.L4392
27796.L4316:
27797	ldr	r7, .L4535+40
27798	mov	r8, r7
27799.L4489:
27800	bl	gc_scan_src_blk_one_page
27801	ldr	r3, .L4535+24
27802	ldrh	r2, [r7, #2]
27803	ldrh	r3, [r3]
27804	cmp	r2, r3
27805	bcs	.L4398
27806	cmp	r6, #7
27807	bls	.L4489
27808	b	.L4435
27809.L4398:
27810	ldrh	r3, [r7, #20]
27811	ldrh	r1, [r7]
27812	cmp	r3, #0
27813	beq	.L4399
27814	mov	r2, #4
27815	ldr	r0, [r4, #1092]
27816	strb	r2, [r5, #-144]
27817	mov	r2, #0
27818	strh	r2, [r7, #22]	@ movhi
27819	lsl	r2, r1, #1
27820	ldrh	r2, [r0, r2]
27821	cmp	r3, r2
27822	beq	.L4400
27823	ldr	r0, .L4535+8
27824	ldr	r0, [r0]
27825	tst	r0, #1024
27826	beq	.L4400
27827	ldr	r0, .L4535+28
27828	bl	printk
27829.L4400:
27830	movw	r3, #2824
27831	ldr	r2, [r4, #1092]
27832	ldrh	r3, [r4, r3]
27833	lsl	r3, r3, #1
27834	ldrh	r2, [r2, r3]
27835	ldrh	r3, [r8, #20]
27836	cmp	r2, r3
27837	beq	.L4401
27838	movw	r2, #3379
27839	ldr	r1, .L4535+64
27840	ldr	r0, .L4535+68
27841	bl	printk
27842	bl	dump_stack
27843.L4401:
27844	movw	r3, #2824
27845	ldrh	r1, [r8, #20]
27846	ldrh	r3, [r4, r3]
27847	ldr	r2, [r4, #1092]
27848	lsl	r3, r3, #1
27849	strh	r1, [r2, r3]	@ movhi
27850	b	.L4435
27851.L4399:
27852	mov	r3, #1
27853	ldr	r6, [r4, #1084]
27854	strb	r3, [r5, #-144]
27855	ldr	r3, .L4535+8
27856	add	r6, r6, r1, lsl #2
27857	ldr	r3, [r3]
27858	tst	r3, #256
27859	beq	.L4402
27860	ldrb	r2, [r6, #2]	@ zero_extendqisi2
27861	ldr	r0, .L4535+32
27862	lsr	r2, r2, #5
27863	bl	printk
27864.L4402:
27865	ldrb	r3, [r6, #2]	@ zero_extendqisi2
27866	and	r2, r3, #224
27867	and	r3, r3, #192
27868	cmp	r3, #0
27869	cmpne	r2, #224
27870	bne	.L4403
27871	movw	r2, #3389
27872	ldr	r1, .L4535+64
27873	ldr	r0, .L4535+68
27874	bl	printk
27875	bl	dump_stack
27876.L4403:
27877	movw	r5, #2824
27878	ldrh	r0, [r4, r5]
27879	bl	ftl_free_sblk
27880	mvn	r3, #0
27881	strh	r3, [r4, r5]	@ movhi
27882	ldrh	r3, [r8, #26]
27883	add	r3, r3, #1
27884	uxth	r3, r3
27885	cmp	r3, #8
27886	movhi	r3, #0
27887	strhls	r3, [r8, #26]	@ movhi
27888	strhhi	r3, [r8, #26]	@ movhi
27889	bls	.L4435
27890.L4532:
27891	bl	flt_sys_flush
27892	b	.L4435
27893.L4317:
27894	cmp	r10, #0
27895	bne	.L4405
27896	movw	r3, #2804
27897	ldrh	r3, [r4, r3]
27898	cmp	r3, r6
27899	bcc	.L4435
27900.L4405:
27901	ldrh	r2, [r7, #80]
27902	movw	r3, #65535
27903	cmp	r2, r3
27904	bne	.L4406
27905	ldrb	r8, [r5, #-3119]	@ zero_extendqisi2
27906	cmp	r8, #1
27907	bne	.L4406
27908	ldr	r9, .L4535+40
27909	bl	ftl_flush
27910	movw	r3, #2180
27911	mov	r1, #5
27912	ldrh	r0, [r9, r3]
27913	cmp	r0, #0
27914	movne	r0, r8
27915	bl	zftl_gc_get_free_sblk
27916	movw	r3, #65535
27917	mov	r6, r0
27918	cmp	r0, r3
27919	beq	.L4409
27920	ldr	r8, [r4, #1084]
27921	add	r8, r8, r0, lsl #2
27922	ldrb	r3, [r8, #2]	@ zero_extendqisi2
27923	tst	r3, #224
27924	beq	.L4410
27925	movw	r2, #3423
27926	ldr	r1, .L4535+64
27927	ldr	r0, .L4535+68
27928	bl	printk
27929	bl	dump_stack
27930.L4410:
27931	ldrb	r3, [r8, #2]	@ zero_extendqisi2
27932	and	r3, r3, #15
27933	orr	r3, r3, #176
27934	strb	r3, [r8, #2]
27935.L4434:
27936	mov	r1, #1
27937	mov	r0, r6
27938	bl	ftl_erase_sblk
27939	mov	r3, #5
27940	add	r1, r7, #96
27941	strb	r3, [r7, #84]
27942	mov	r0, r6
27943	bl	ftl_get_blk_list_in_sblk
27944	ldr	r2, .L4535+60
27945	uxtb	r0, r0
27946	mov	r8, #0
27947	strh	r6, [r7, #80]	@ movhi
27948	strb	r0, [r7, #89]
27949	mov	r1, #255
27950	ldrh	r3, [r2, #-8]
27951	strh	r8, [r7, #82]	@ movhi
27952	strb	r8, [r7, #85]
27953	strh	r8, [r7, #90]	@ movhi
27954	smulbb	r0, r3, r0
27955	ldrh	r3, [r2, #-30]
27956	strh	r0, [r7, #86]	@ movhi
27957	sub	r7, r2, #16
27958	ldrb	r2, [r5, #-3127]	@ zero_extendqisi2
27959	ldr	r0, [r5, #-132]
27960	mul	r2, r2, r3
27961	lsl	r2, r2, #2
27962	bl	ftl_memset
27963	ldrh	r3, [r7, #-14]
27964	mov	r1, #255
27965	ldrb	r2, [r5, #-3127]	@ zero_extendqisi2
27966	ldr	r0, [r5, #-128]
27967	mul	r2, r2, r3
27968	lsl	r2, r2, #2
27969	bl	ftl_memset
27970	ldrh	r3, [r7, #-14]
27971	mov	r1, #255
27972	ldrb	r2, [r5, #-3127]	@ zero_extendqisi2
27973	ldr	r0, [r5, #-3124]
27974	mvn	r5, #0
27975	mul	r2, r2, r3
27976	bl	ftl_memset
27977	ldr	r3, [r4, #1096]
27978	strh	r5, [r3, #128]	@ movhi
27979	strh	r5, [r3, #130]	@ movhi
27980	str	r6, [r3, #132]
27981	bl	pm_flush
27982	bl	ftl_ext_info_flush
27983	ldr	r3, [r4, #2800]
27984	movw	r2, #2182
27985	mov	r0, r8
27986	strh	r8, [r9, #52]	@ movhi
27987	strh	r6, [r3, #126]	@ movhi
27988	movw	r3, #2102
27989	strh	r8, [r9, r3]	@ movhi
27990	ldr	r3, .L4535+36
27991	strh	r8, [r9, r2]	@ movhi
27992	strh	r8, [r3]	@ movhi
27993	str	r5, [r3, #80]
27994	bl	ftl_info_flush
27995	b	.L4435
27996.L4536:
27997	.align	2
27998.L4535:
27999	.word	.LANCHOR0
28000	.word	.LANCHOR3
28001	.word	.LANCHOR2
28002	.word	.LC299
28003	.word	.LANCHOR3-3104
28004	.word	.LANCHOR3-3100
28005	.word	.LANCHOR3-3096
28006	.word	.LC300
28007	.word	.LC301
28008	.word	.LANCHOR0+4928
28009	.word	.LANCHOR0+2824
28010	.word	.LANCHOR0+4096
28011	.word	1145785929
28012	.word	.LANCHOR3-3136
28013	.word	.LANCHOR0+1088
28014	.word	.LANCHOR3-3088
28015	.word	.LANCHOR1+2525
28016	.word	.LC0
28017.L4406:
28018	cmp	r10, #1
28019	movne	r8, #1
28020	moveq	r8, #4
28021	cmp	r6, #15
28022	ldr	r6, .L4535+40
28023	addls	r8, r8, #4
28024	add	r10, r6, #2176
28025	add	r10, r10, #6
28026.L4413:
28027	sub	r8, r8, #1
28028	uxtb	r8, r8
28029	cmp	r8, #255
28030	beq	.L4435
28031	bl	gc_do_copy_back
28032	ldrb	r3, [r5, #-3119]	@ zero_extendqisi2
28033	cmp	r3, #0
28034	bne	.L4414
28035	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
28036	cmp	r3, #3
28037	bhi	.L4415
28038	bl	ftl_write_commit
28039.L4415:
28040	ldrh	r2, [r6, #22]
28041	ldrh	r3, [r6, #20]
28042	cmp	r2, r3
28043	bcc	.L4413
28044	mov	r3, #1
28045	strb	r3, [r5, #-144]
28046	bl	ftl_write_commit
28047	bl	ftl_flush
28048	ldrh	r3, [r6]
28049	ldr	r2, [r4, #1092]
28050	lsl	r3, r3, #1
28051	ldrh	r3, [r2, r3]
28052	cmp	r3, #0
28053	beq	.L4417
28054	movw	r2, #3507
28055	ldr	r1, .L4535+64
28056	ldr	r0, .L4535+68
28057	bl	printk
28058	bl	dump_stack
28059.L4417:
28060	movw	r3, #2824
28061	ldr	r2, [r4, #1092]
28062	ldrh	r0, [r4, r3]
28063	lsl	r3, r0, #1
28064	ldrh	r3, [r2, r3]
28065	cmp	r3, #0
28066	bne	.L4418
28067	bl	ftl_free_sblk
28068	b	.L4392
28069.L4418:
28070	mov	r2, #1
28071	mov	r1, #0
28072	bl	gc_add_sblk
28073	b	.L4392
28074.L4414:
28075	ldrh	r3, [r10]
28076	cmp	r3, #0
28077	beq	.L4419
28078	ldr	r8, .L4535+44
28079	mov	r3, #0
28080	strh	r3, [r10]	@ movhi
28081	bl	sblk_wait_write_queue_completed
28082	bl	gc_write_completed
28083	ldr	r0, [r8, #912]
28084	cmn	r0, #1
28085	beq	.L4420
28086	ldrb	r3, [r5, #-2542]	@ zero_extendqisi2
28087	cmp	r3, #0
28088	bne	.L4421
28089	ldrb	r3, [r5, #-3126]	@ zero_extendqisi2
28090	cmp	r3, #0
28091	beq	.L4422
28092.L4421:
28093	ldr	r3, [r4, #2800]
28094	ldr	r2, [r3, #156]
28095	ldr	r3, .L4535+48
28096	cmp	r2, r3
28097	bne	.L4422
28098	ldr	r7, .L4535+52
28099	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
28100	ldrb	r1, [r5, #-3136]	@ zero_extendqisi2
28101	ldrh	r2, [r7, #-2]
28102	rsb	r3, r3, #24
28103	sub	r3, r3, r2
28104	lsr	r2, r0, r2
28105	mvn	r0, #0
28106	bic	r0, r2, r0, lsl r3
28107	bl	__aeabi_uidiv
28108	ldr	r3, [r4, #1084]
28109	lsl	lr, r0, #2
28110	add	ip, r3, lr
28111	ldrb	r2, [ip, #2]	@ zero_extendqisi2
28112	tst	r2, #8
28113	beq	.L4420
28114	ldrh	r1, [r9]
28115	ldrh	r7, [r7, #44]
28116	add	r1, r1, #8
28117	cmp	r1, r7
28118	bge	.L4420
28119	ldr	r1, .L4535+56
28120	bfc	r2, #3, #2
28121	strb	r2, [ip, #2]
28122	ldr	r2, [r3, r0, lsl #2]
28123	ldrh	r1, [r1]
28124	ldrh	ip, [r3, lr]
28125	ubfx	r2, r2, #11, #8
28126	mul	r1, r2, r1
28127	ubfx	r7, ip, #0, #11
28128	lsr	r2, r2, #3
28129	add	r1, r1, r1, lsl #1
28130	add	r1, r7, r1, asr #2
28131	bfi	ip, r1, #0, #11
28132	strh	ip, [r3, lr]	@ movhi
28133	ldr	r1, [r3, r0, lsl #2]
28134	bfi	r1, r2, #11, #8
28135	str	r1, [r3, r0, lsl #2]
28136.L4420:
28137	ldr	r3, [r4, #1096]
28138	mov	r7, #0
28139	str	r7, [r8, #912]
28140	strh	r7, [r6, #52]	@ movhi
28141	ldrh	r0, [r3, #80]
28142	bl	ftl_free_sblk
28143	ldr	r0, [r4, #2832]
28144	mvn	r3, #0
28145	ldr	r2, [r4, #1096]
28146	ldr	r1, [r4, #2800]
28147	cmp	r0, r7
28148	strh	r3, [r2, #80]	@ movhi
28149	strh	r3, [r1, #126]	@ movhi
28150	strh	r3, [r2, #130]	@ movhi
28151	beq	.L4423
28152	bl	zbuf_free
28153.L4423:
28154	str	r7, [r4, #2832]
28155	bl	flt_sys_flush
28156	movw	r2, #3567
28157	ldr	r1, .L4535+64
28158	ldr	r0, .L4535+68
28159	strb	r7, [r5, #-144]
28160	bl	printk
28161	bl	dump_stack
28162	b	.L4435
28163.L4422:
28164	bl	ftl_mask_bad_block
28165	b	.L4420
28166.L4419:
28167	ldrh	r3, [r7, #86]
28168	ldrh	r2, [r6, #22]
28169	cmp	r3, #1
28170	ldrh	r3, [r6, #20]
28171	bls	.L4424
28172	cmp	r2, r3
28173	bcc	.L4413
28174	mov	r3, #1
28175	strb	r3, [r5, #-144]
28176	ldrh	r3, [r6, #52]
28177	add	r2, r3, #1
28178	strh	r2, [r6, #52]	@ movhi
28179	add	r3, r6, r3, lsl #1
28180	ldrh	r2, [r6]
28181	strh	r2, [r3, #54]	@ movhi
28182	mvn	r3, #0
28183	strh	r3, [r6]	@ movhi
28184	b	.L4435
28185.L4424:
28186	cmp	r2, r3
28187	mov	r1, #5
28188	strb	r1, [r5, #-144]
28189	bcc	.L4425
28190	ldrh	r3, [r6, #52]
28191	add	r2, r3, #1
28192	strh	r2, [r6, #52]	@ movhi
28193	add	r3, r6, r3, lsl #1
28194	ldrh	r2, [r6]
28195	strh	r2, [r3, #54]	@ movhi
28196	mvn	r3, #0
28197	strh	r3, [r6]	@ movhi
28198.L4425:
28199	bl	ftl_flush
28200	bl	sblk_wait_write_queue_completed
28201	bl	gc_write_completed
28202	ldrh	r2, [r7, #80]
28203	ldr	r3, [r4, #1096]
28204	strh	r2, [r3, #128]	@ movhi
28205	bl	pm_flush
28206	bl	ftl_ext_info_flush
28207	ldr	r2, .L4535+60
28208	mov	r3, #0
28209	ldrb	r1, [r4, #1158]	@ zero_extendqisi2
28210	strh	r3, [r6, #12]	@ movhi
28211	ldrh	r3, [r2, #-8]
28212	cmp	r1, #0
28213	ldrhne	r2, [r2, #-30]
28214	strh	r3, [r6, #14]	@ movhi
28215	ldrb	r3, [r5, #-3128]	@ zero_extendqisi2
28216	strhne	r2, [r6, #14]	@ movhi
28217	movne	r2, #1
28218	strh	r3, [r6, #16]	@ movhi
28219	strhne	r2, [r6, #16]	@ movhi
28220	cmp	r3, #2
28221	bne	.L4428
28222	ldrh	r3, [r6, #14]
28223	lsl	r3, r3, #1
28224	strh	r3, [r6, #14]	@ movhi
28225	ldrb	r3, [r5, #-3126]	@ zero_extendqisi2
28226	cmp	r3, #0
28227	moveq	r3, #1
28228	strheq	r3, [r6, #16]	@ movhi
28229.L4428:
28230	mov	r3, #0
28231	strh	r3, [r6, #18]	@ movhi
28232	b	.L4435
28233.L4431:
28234	ldrh	r2, [r8, #12]
28235	ldrh	r3, [r8, #14]
28236	cmp	r2, r3
28237	bcc	.L4432
28238	mov	r3, #6
28239	ldr	r0, [r4, #2832]
28240	strb	r3, [r5, #-144]
28241	bl	zbuf_free
28242	str	r9, [r4, #2832]
28243	b	.L4435
28244.L4432:
28245	cmp	r6, #15
28246	bls	.L4320
28247	cmp	r10, #1
28248	bne	.L4435
28249	add	r7, r7, #1
28250	uxtb	r7, r7
28251	cmp	r7, #4
28252	bls	.L4320
28253	b	.L4435
28254.L4319:
28255	bl	gc_update_l2p_map_new
28256	bl	gc_free_src_blk
28257	bl	ftl_flush
28258	mvn	r6, #0
28259	bl	pm_flush
28260	strh	r6, [r7, #80]	@ movhi
28261	bl	ftl_ext_info_flush
28262	ldr	r3, [r4, #2800]
28263	mov	r0, #0
28264	strh	r6, [r3, #126]	@ movhi
28265	bl	ftl_info_flush
28266.L4534:
28267	mov	r3, #0
28268	b	.L4533
28269.L4409:
28270	movw	r2, #3430
28271	ldr	r1, .L4535+64
28272	ldr	r0, .L4535+68
28273	bl	printk
28274	bl	dump_stack
28275	b	.L4434
28276	.fnend
28277	.size	zftl_do_gc, .-zftl_do_gc
28278	.align	2
28279	.global	zftl_init
28280	.syntax unified
28281	.arm
28282	.fpu softvfp
28283	.type	zftl_init, %function
28284zftl_init:
28285	.fnstart
28286	@ args = 0, pretend = 0, frame = 24
28287	@ frame_needed = 0, uses_anonymous_args = 0
28288	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
28289	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
28290	mvn	r3, #0
28291	ldr	r5, .L4617
28292	mov	r6, #0
28293	.pad #28
28294	sub	sp, sp, #28
28295	ldr	r4, .L4617+4
28296	ldr	r9, .L4617+8
28297	ldr	r1, .L4617+12
28298	ldr	r0, .L4617+16
28299	strb	r3, [r4, #2820]
28300	strb	r3, [r5, #-2536]
28301	strb	r3, [r5, #-88]
28302	str	r3, [r5]
28303	strb	r6, [r4, #2796]
28304	strb	r6, [r5, #-2535]
28305	strb	r6, [r4, #2797]
28306	bl	printk
28307	ldrb	r3, [r9, #16]	@ zero_extendqisi2
28308	sub	r2, r5, #3104
28309	ldrb	r8, [r9, #13]	@ zero_extendqisi2
28310	str	r3, [sp, #4]
28311	ldrb	r3, [sp, #4]	@ zero_extendqisi2
28312	ldr	r1, [sp, #4]
28313	lsl	r10, r8, #9
28314	strb	r8, [r5, #-2546]
28315	strb	r3, [r5, #-3128]
28316	uxth	r10, r10
28317	ldrh	r3, [r9, #14]
28318	strh	r3, [r2, #-14]	@ movhi
28319	mov	r0, r3
28320	str	r3, [sp, #12]
28321	bl	__aeabi_idiv
28322	str	r0, [sp, #8]
28323	sub	r2, r5, #3088
28324	ldrh	r3, [sp, #8]
28325	mov	r1, #1
28326	ldrb	r7, [r4, #1109]	@ zero_extendqisi2
28327	ldrh	fp, [r9, #18]
28328	strh	r3, [r2, #-8]	@ movhi
28329	ldrb	r2, [r9, #17]	@ zero_extendqisi2
28330	strb	r7, [r5, #-3072]
28331	ldr	r3, [sp, #12]
28332	ldrh	r0, [r4, #2]
28333	smulbb	r7, r7, r2
28334	strb	r2, [r5, #-3136]
28335	movw	r2, #1080
28336	strh	r10, [r5, #-14]	@ movhi
28337	strh	fp, [r4, r2]	@ movhi
28338	sub	r2, r5, #3072
28339	uxtb	r7, r7
28340	strh	r0, [r2, #-2]	@ movhi
28341	strb	r7, [r5, #-3127]
28342.L4538:
28343	cmp	r0, r1
28344	uxth	r2, r6
28345	add	r6, r6, #1
28346	bcs	.L4539
28347	ldr	r1, .L4617+20
28348	sub	r2, r2, #1
28349	mov	ip, #0
28350	mov	r0, #1
28351	strh	r2, [r1, #-2]	@ movhi
28352	mul	r2, r3, r8
28353	mul	r1, r2, fp
28354	str	r2, [sp, #12]
28355	lsr	lr, r1, #21
28356.L4540:
28357	cmp	lr, r0
28358	uxth	r2, ip
28359	add	ip, ip, #1
28360	bcs	.L4541
28361	ldr	r9, .L4617+24
28362	sub	r2, r2, #1
28363	uxth	r2, r2
28364	mul	r1, r7, r1
28365	ldr	r6, .L4617
28366	lsr	fp, fp, #4
28367	str	r3, [sp, #20]
28368	mul	r0, r9, r7
28369	str	r1, [r4, #2776]
28370	mov	r1, r8
28371	sub	r8, r6, #3088
28372	lsl	r9, r0, r2
28373	add	r2, r9, #24576
28374	str	r9, [r4, #1032]
28375	str	r2, [r6, #4]
28376	mov	r0, r2
28377	str	r2, [sp, #16]
28378	bl	__aeabi_uidiv
28379	sub	ip, r10, #1
28380	str	r0, [r4, #2780]
28381	mov	r1, r10
28382	add	r0, ip, r0, lsl #2
28383	bl	__aeabi_uidiv
28384	ldr	r3, [sp, #8]
28385	strh	r0, [r6, #8]	@ movhi
28386	uxth	r0, r0
28387	lsl	r0, r0, #4
28388	mul	r1, r7, r3
28389	bl	__aeabi_idiv
28390	ldr	r3, [sp, #12]
28391	ldr	r2, [sp, #16]
28392	strh	r0, [r6, #-176]	@ movhi
28393	mul	r1, r7, r3
28394	mov	r0, r2
28395	sub	r1, r1, #1
28396	bl	__aeabi_uidiv
28397	cmp	fp, #79
28398	strh	fp, [r8, #-4]	@ movhi
28399	movls	r2, #80
28400	mov	r1, #2000
28401	strhls	r2, [r8, #-4]	@ movhi
28402	add	r0, r0, #8
28403	ldr	r2, .L4617+28
28404	strh	r0, [r8, #-2]	@ movhi
28405	mov	r0, #32
28406	ldr	r3, [sp, #20]
28407	strh	r1, [r2, #-10]	@ movhi
28408	mov	r1, #50
28409	strh	r1, [r2, #-12]	@ movhi
28410	mov	r1, #256
28411	strh	r1, [r6, #-180]	@ movhi
28412	mov	r1, #48
28413	strh	r1, [r6, #-178]	@ movhi
28414	ldr	r1, .L4617+32
28415	strh	r0, [r1]	@ movhi
28416	ldr	r1, [sp, #4]
28417	cmp	r1, #2
28418	mov	r1, r2
28419	beq	.L4543
28420	ldrb	ip, [r6, #-3120]	@ zero_extendqisi2
28421	cmp	ip, #0
28422	beq	.L4544
28423.L4543:
28424	mov	r2, #150
28425	mov	r0, #12
28426	strh	r2, [r1, #-12]	@ movhi
28427	mov	r2, #64
28428	strh	r2, [r6, #-178]	@ movhi
28429	ldr	r2, .L4617+32
28430	strh	r0, [r2]	@ movhi
28431	ldrb	r0, [r4]	@ zero_extendqisi2
28432	cmp	r0, #0
28433	moveq	r0, #4
28434	strheq	r0, [r2]	@ movhi
28435	moveq	r2, #600
28436	strheq	r2, [r1, #-10]	@ movhi
28437	moveq	r2, #128
28438	strheq	r2, [r6, #-180]	@ movhi
28439	ldrb	r2, [r4, #1159]	@ zero_extendqisi2
28440	cmp	r2, #0
28441	movne	r2, #200
28442	strhne	r2, [r1, #-12]	@ movhi
28443	movne	r2, #2000
28444	strhne	r2, [r1, #-10]	@ movhi
28445.L4547:
28446	mul	r7, r7, r3
28447	mov	r2, #0
28448	str	r2, [r4, #2812]
28449	mov	r2, #1
28450	strb	r2, [r6, #-11]
28451	cmp	r10, r7, lsl #2
28452	ldr	r7, .L4617+8
28453	movlt	r3, #2
28454	strblt	r3, [r6, #-11]
28455	ldr	r3, [r7]
28456	tst	r3, #4096
28457	beq	.L4550
28458	mov	r1, r9
28459	ldr	r0, .L4617+36
28460	bl	printk
28461.L4550:
28462	ldr	r3, [r7]
28463	tst	r3, #4096
28464	beq	.L4551
28465	ldr	r1, [r4, #2776]
28466	ldr	r0, .L4617+40
28467	bl	printk
28468.L4551:
28469	ldr	r3, [r7]
28470	tst	r3, #4096
28471	beq	.L4552
28472	ldr	r1, [r4, #2780]
28473	ldr	r0, .L4617+44
28474	bl	printk
28475.L4552:
28476	ldr	r3, [r7]
28477	tst	r3, #4096
28478	beq	.L4553
28479	ldr	r1, [r6, #4]
28480	ldr	r0, .L4617+48
28481	bl	printk
28482.L4553:
28483	ldr	r3, [r7]
28484	tst	r3, #4096
28485	beq	.L4554
28486	ldrh	r1, [r6, #8]
28487	ldr	r0, .L4617+52
28488	bl	printk
28489.L4554:
28490	ldr	r3, [r7]
28491	tst	r3, #4096
28492	beq	.L4555
28493	ldrh	r1, [r6, #-14]
28494	ldr	r0, .L4617+56
28495	bl	printk
28496.L4555:
28497	ldr	r3, [r7]
28498	tst	r3, #4096
28499	beq	.L4556
28500	ldrh	r1, [r6, #-176]
28501	ldr	r0, .L4617+60
28502	bl	printk
28503.L4556:
28504	ldr	r3, [r7]
28505	tst	r3, #4096
28506	beq	.L4557
28507	ldrh	r1, [r8, #-4]
28508	ldr	r0, .L4617+64
28509	bl	printk
28510.L4557:
28511	ldr	r3, [r7]
28512	tst	r3, #4096
28513	beq	.L4558
28514	ldrh	r1, [r8, #-2]
28515	ldr	r0, .L4617+68
28516	bl	printk
28517.L4558:
28518	bl	zbuf_init
28519	mov	r0, #16384
28520	movw	r9, #1080
28521	bl	ftl_malloc
28522	str	r0, [r5, #-52]
28523	mov	r0, #16384
28524	bl	ftl_malloc
28525	str	r0, [r5, #-44]
28526	mov	r0, #16384
28527	bl	ftl_malloc
28528	str	r0, [r5, #12]
28529	mov	r0, #256
28530	bl	ftl_dma32_malloc
28531	str	r0, [r5, #-76]
28532	mov	r0, #256
28533	bl	ftl_dma32_malloc
28534	ldrh	r3, [r4, r9]
28535	str	r0, [r5, #-40]
28536	mov	r0, #6
28537	mul	r0, r0, r3
28538	bl	ftl_dma32_malloc
28539	ldrh	r3, [r8, #-8]
28540	str	r0, [r4, #1036]
28541	ldrb	r0, [r5, #-3127]	@ zero_extendqisi2
28542	mul	r0, r0, r3
28543	lsl	r0, r0, #2
28544	bl	ftl_dma32_malloc
28545	ldrh	r1, [r8, #-8]
28546	str	r0, [r5, #-2552]
28547	ldrb	r0, [r5, #-3127]	@ zero_extendqisi2
28548	ldr	r2, [r5, #-44]
28549	ldrh	ip, [r4, r9]
28550	mul	r0, r0, r1
28551	str	r2, [r5, #-2556]
28552	lsl	r1, r0, #1
28553	add	r3, r2, r0, lsl #3
28554	ldr	r0, [r7]
28555	add	r1, r1, ip, lsr #1
28556	str	r3, [r4, #1092]
28557	add	r1, r2, r1, lsl #2
28558	tst	r0, #4096
28559	str	r1, [r4, #1096]
28560	beq	.L4559
28561	ldr	r0, .L4617+72
28562	bl	printk
28563.L4559:
28564	ldrh	r2, [r8, #-8]
28565	movw	r3, #1080
28566	ldrb	r5, [r6, #-3127]	@ zero_extendqisi2
28567	ldrh	r3, [r4, r3]
28568	mul	r5, r5, r2
28569	ldrh	r2, [r6, #8]
28570	lsl	r8, r3, #2
28571	add	r5, r3, r5, lsl #2
28572	ldr	r3, [r7]
28573	add	r8, r8, r2, lsl #2
28574	lsl	r5, r5, #1
28575	tst	r3, #4096
28576	add	r5, r5, #632
28577	add	r8, r8, #704
28578	beq	.L4560
28579	ldrh	r3, [r6, #-14]
28580	mov	r2, r8
28581	mov	r1, r5
28582	ldr	r0, .L4617+76
28583	bl	printk
28584.L4560:
28585	ldrh	r1, [r6, #-14]
28586	cmp	r8, r1
28587	cmpls	r5, r1
28588	movhi	r5, #1
28589	movls	r5, #0
28590	bls	.L4561
28591.L4615:
28592	b	.L4615
28593.L4539:
28594	lsl	r1, r1, #1
28595	b	.L4538
28596.L4541:
28597	lsl	r0, r0, #1
28598	b	.L4540
28599.L4544:
28600	ldrb	r1, [r4, #1158]	@ zero_extendqisi2
28601	cmp	r1, #0
28602	movne	r1, #1200
28603	strhne	r0, [r2, #-12]	@ movhi
28604	strhne	r1, [r2, #-10]	@ movhi
28605	strhne	r0, [r6, #-178]	@ movhi
28606	b	.L4547
28607.L4561:
28608	bl	sblk_init
28609	bl	gc_init
28610	bl	ftl_info_blk_init
28611	cmn	r0, #1
28612	beq	.L4537
28613	bl	ftl_ext_info_init
28614	mov	r0, #1
28615	bl	pm_init
28616	bl	lpa_rebuild_hash
28617	ldr	r0, [r4, #1096]
28618	mov	r1, r5
28619	add	r0, r0, #16
28620	bl	ftl_open_sblk_recovery
28621	ldr	r0, [r4, #1096]
28622	add	r1, r0, #16
28623	add	r0, r0, #48
28624	bl	ftl_open_sblk_recovery
28625	ldr	r2, [r4, #2800]
28626	ldr	r0, [r4, #1096]
28627	ldr	r3, [r2, #8]
28628	add	r0, r0, #16
28629	add	r3, r3, #16
28630	str	r3, [r2, #8]
28631	bl	ftl_info_data_recovery
28632	ldr	r0, [r4, #1096]
28633	add	r0, r0, #48
28634	bl	ftl_info_data_recovery
28635	ldr	r0, [r4, #1096]
28636	add	r0, r0, #80
28637	bl	ftl_info_data_recovery
28638	bl	gc_recovery
28639	bl	pm_flush
28640	mov	r0, #1
28641	bl	ftl_total_vpn_update
28642	ldrb	r3, [r6, #-47]	@ zero_extendqisi2
28643	cmp	r3, #0
28644	ldrne	r2, [r4, #2800]
28645	ldrne	r3, [r2, #68]
28646	addne	r3, r3, #1
28647	strne	r3, [r2, #68]
28648	bl	ftl_ext_info_flush
28649	mov	r0, #0
28650	bl	ftl_info_flush
28651	bl	print_ftl_debug_info
28652	ldr	r3, [r4, #1096]
28653	ldrh	r3, [r3, #124]
28654	cmp	r3, #0
28655	bne	.L4571
28656	ldr	r3, .L4617+80
28657	movw	r2, #2788
28658	ldrh	r2, [r4, r2]
28659	ldrh	r3, [r3]
28660	add	r3, r3, r2
28661	cmp	r3, #7
28662	ble	.L4571
28663.L4567:
28664	mov	r0, #0
28665.L4537:
28666	add	sp, sp, #28
28667	@ sp needed
28668	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
28669.L4571:
28670	ldr	r6, .L4617+80
28671	mov	r5, #16384
28672.L4568:
28673	mov	r1, #1
28674	mov	r0, #0
28675	bl	zftl_do_gc
28676	mov	r1, #1
28677	mov	r0, r1
28678	bl	zftl_do_gc
28679	ldr	r3, [r4, #1096]
28680	ldrh	r2, [r3, #124]
28681	cmp	r2, #0
28682	bne	.L4566
28683	ldrh	r2, [r3, #80]
28684	movw	r3, #65535
28685	cmp	r2, r3
28686	bne	.L4566
28687	ldr	r2, .L4617+84
28688	ldrh	r3, [r6]
28689	ldrh	r2, [r2]
28690	add	r3, r3, r2
28691	cmp	r3, #7
28692	bgt	.L4567
28693.L4566:
28694	subs	r5, r5, #1
28695	bne	.L4568
28696	b	.L4567
28697.L4618:
28698	.align	2
28699.L4617:
28700	.word	.LANCHOR3
28701	.word	.LANCHOR0
28702	.word	.LANCHOR2
28703	.word	.LC1
28704	.word	.LC2
28705	.word	.LANCHOR3-3136
28706	.word	1892352
28707	.word	.LANCHOR3-2528
28708	.word	.LANCHOR0+1088
28709	.word	.LC302
28710	.word	.LC303
28711	.word	.LC304
28712	.word	.LC305
28713	.word	.LC306
28714	.word	.LC307
28715	.word	.LC308
28716	.word	.LC309
28717	.word	.LC310
28718	.word	.LC311
28719	.word	.LC312
28720	.word	.LANCHOR0+2784
28721	.word	.LANCHOR0+2788
28722	.fnend
28723	.size	zftl_init, .-zftl_init
28724	.align	2
28725	.global	rk_ftl_init
28726	.syntax unified
28727	.arm
28728	.fpu softvfp
28729	.type	rk_ftl_init, %function
28730rk_ftl_init:
28731	.fnstart
28732	@ args = 0, pretend = 0, frame = 0
28733	@ frame_needed = 0, uses_anonymous_args = 0
28734	ldr	r3, .L4634
28735	mov	r0, #68
28736	push	{r4, r5, r6, r7, r8, lr}
28737	.save {r4, r5, r6, r7, r8, lr}
28738	mov	r5, #0
28739	ldr	r4, .L4634+4
28740	ldr	r3, [r3]
28741	str	r5, [r4, #-164]
28742	strb	r5, [r4, #16]
28743	str	r3, [r4, #-168]
28744	str	r5, [r4, #-152]
28745	bl	ftl_dma32_malloc
28746	cmp	r0, r5
28747	str	r0, [r4, #-160]
28748	bne	.L4620
28749.L4622:
28750	mvn	r5, #0
28751.L4619:
28752	mov	r0, r5
28753	pop	{r4, r5, r6, r7, r8, pc}
28754.L4620:
28755	mov	r0, #2048
28756	bl	ftl_dma32_malloc
28757	mov	r1, r4
28758	str	r0, [r4, #20]
28759	str	r5, [r1, #24]!
28760	sub	r0, r4, #156
28761	str	r5, [r4, #-156]
28762	bl	rknand_get_reg_addr
28763	ldr	r3, [r4, #-156]
28764	cmp	r3, #0
28765	beq	.L4622
28766	bl	rk_nandc_irq_init
28767	mov	r3, #2048
28768	mov	r2, r5
28769	mov	r1, r5
28770	ldr	r0, [r4, #20]
28771	bl	flash_sram_load_store
28772	bl	rknand_flash_cs_init
28773	ldr	r3, [r4, #-160]
28774	ldr	r2, .L4634+8
28775	ldr	r0, [r4, #-156]
28776	str	r2, [r3, #40]
28777	ldr	r2, .L4634+12
28778	str	r2, [r3, #32]
28779	ldr	r2, .L4634+16
28780	str	r2, [r3, #44]
28781	ldr	r2, .L4634+20
28782	str	r2, [r3, #48]
28783	ldr	r2, .L4634+24
28784	str	r2, [r3, #36]
28785	ldr	r2, .L4634+28
28786	str	r2, [r3, #56]
28787	ldr	r2, .L4634+32
28788	str	r2, [r3, #20]
28789	ldr	r2, .L4634+36
28790	str	r2, [r3, #24]
28791	ldr	r2, .L4634+40
28792	str	r2, [r3, #12]
28793	ldr	r2, .L4634+44
28794	str	r2, [r3, #16]
28795	ldr	r2, .L4634+48
28796	str	r2, [r3, #4]
28797	ldr	r2, .L4634+52
28798	str	r2, [r3, #8]
28799	ldr	r2, .L4634+56
28800	str	r2, [r3, #60]
28801	ldr	r2, .L4634+60
28802	str	r2, [r3, #64]
28803	ldr	r2, .L4634+64
28804	str	r2, [r3, #52]
28805	ldr	r2, .L4634+68
28806	str	r2, [r3, #28]
28807	bl	nand_flash_init
28808	subs	r7, r0, #0
28809	bne	.L4623
28810	bl	zftl_init
28811	mov	r5, r0
28812	bl	zftl_proc_debug_init
28813	mov	r3, #1
28814	strb	r3, [r4, #16]
28815.L4624:
28816	mov	r1, r5
28817	ldr	r0, .L4634+72
28818	bl	printk
28819	b	.L4619
28820.L4623:
28821	ldr	r3, [r4, #-160]
28822	mov	r6, r4
28823	ldr	r2, .L4634+76
28824	ldr	r0, [r4, #-156]
28825	ldr	r4, .L4634+80
28826	str	r2, [r3, #40]
28827	ldr	r2, .L4634+84
28828	str	r2, [r3, #32]
28829	ldr	r2, .L4634+88
28830	str	r2, [r3, #44]
28831	ldr	r2, .L4634+92
28832	str	r2, [r3, #48]
28833	ldr	r2, .L4634+96
28834	str	r2, [r3, #36]
28835	ldr	r2, .L4634+100
28836	str	r2, [r3, #56]
28837	ldr	r2, .L4634+104
28838	str	r2, [r3, #20]
28839	ldr	r2, .L4634+108
28840	str	r2, [r3, #24]
28841	ldr	r2, .L4634+112
28842	str	r2, [r3, #12]
28843	ldr	r2, .L4634+116
28844	str	r2, [r3, #16]
28845	ldr	r2, .L4634+120
28846	str	r2, [r3, #4]
28847	ldr	r2, .L4634+124
28848	str	r2, [r3, #8]
28849	ldr	r2, .L4634+128
28850	str	r2, [r3, #60]
28851	ldr	r2, .L4634+132
28852	str	r2, [r3, #64]
28853	ldr	r2, .L4634+136
28854	str	r2, [r3, #52]
28855	ldr	r2, .L4634+140
28856	str	r2, [r3, #28]
28857	bl	FlashInit
28858	cmn	r7, #2
28859	mov	r5, r0
28860	bne	.L4625
28861	mov	r2, #32
28862	ldr	r1, .L4634+144
28863	add	r0, r4, #4
28864	bl	ftl_memcpy
28865	ldrb	r0, [r4, #22]	@ zero_extendqisi2
28866	bl	flash_lsb_page_tbl_build
28867	ldrh	r3, [r4, #14]
28868	strh	r3, [r4, #30]	@ movhi
28869.L4625:
28870	ldr	r3, .L4634+148
28871	ldr	r2, [r3]
28872	ldr	r3, .L4634+152
28873	cmp	r2, r3
28874	ldr	r2, .L4634+156
28875	bne	.L4626
28876	ldr	r3, .L4634+160
28877	ldrb	r3, [r3]	@ zero_extendqisi2
28878	cmp	r3, #0
28879	bne	.L4627
28880.L4626:
28881	mov	r3, #0
28882	strb	r3, [r2, #1110]
28883	strb	r3, [r2]
28884.L4627:
28885	ldr	r1, .L4634+164
28886	mov	r0, #1
28887	ldrh	ip, [r4, #14]
28888	mov	r3, #0
28889	str	r3, [r6, #-100]
28890	ldrb	r1, [r1]	@ zero_extendqisi2
28891	strb	r1, [r2, #1108]
28892	ldr	r1, .L4634+168
28893	ldrb	r1, [r1]	@ zero_extendqisi2
28894	strb	r1, [r2, #1193]
28895.L4628:
28896	cmp	ip, r0
28897	uxth	r1, r3
28898	add	r3, r3, #1
28899	bcs	.L4629
28900	sub	r3, r1, #1
28901	ldr	r1, .L4634+172
28902	strh	r3, [r1, #-2]	@ movhi
28903	mov	r3, #0
28904	cmp	r5, r3
28905	strb	r3, [r2, #1143]
28906	bne	.L4624
28907	bl	FtlInit
28908	mov	r5, r0
28909	b	.L4624
28910.L4629:
28911	lsl	r0, r0, #1
28912	b	.L4628
28913.L4635:
28914	.align	2
28915.L4634:
28916	.word	jiffies
28917	.word	.LANCHOR3
28918	.word	zftl_deinit
28919	.word	zftl_cache_flush
28920	.word	zftl_flash_suspend
28921	.word	zftl_flash_resume
28922	.word	zftl_get_density
28923	.word	zftl_read_flash_info
28924	.word	zftl_read
28925	.word	zftl_write
28926	.word	zftl_sys_read
28927	.word	zftl_sys_write
28928	.word	zftl_vendor_read
28929	.word	zftl_vendor_write
28930	.word	zftl_nandc_get_irq_status
28931	.word	zftl_proc_ftl_read
28932	.word	zftl_do_gc
28933	.word	zftl_discard
28934	.word	.LC313
28935	.word	ftl_deinit
28936	.word	.LANCHOR2
28937	.word	ftl_cache_flush
28938	.word	ftl_flash_suspend
28939	.word	ftl_flash_resume
28940	.word	ftl_get_density
28941	.word	ftl_read_flash_info
28942	.word	ftl_read
28943	.word	ftl_write
28944	.word	ftl_sys_read
28945	.word	ftl_sys_write
28946	.word	ftl_vendor_read
28947	.word	ftl_vendor_write
28948	.word	ftl_nandc_get_irq_status
28949	.word	ftl_proc_ftl_read
28950	.word	ftl_do_gc
28951	.word	ftl_discard
28952	.word	gNandParaInfo
28953	.word	g_nandc_version_data
28954	.word	1446522928
28955	.word	.LANCHOR0
28956	.word	gFlashSlcMode
28957	.word	gNandFlashIDBEccBits
28958	.word	gNandFlashEccBits
28959	.word	.LANCHOR3-3136
28960	.fnend
28961	.size	rk_ftl_init, .-rk_ftl_init
28962	.align	2
28963	.global	zftl_write
28964	.syntax unified
28965	.arm
28966	.fpu softvfp
28967	.type	zftl_write, %function
28968zftl_write:
28969	.fnstart
28970	@ args = 0, pretend = 0, frame = 24
28971	@ frame_needed = 0, uses_anonymous_args = 0
28972	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
28973	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
28974	mov	r10, r3
28975	ldr	r3, .L4666
28976	.pad #36
28977	sub	sp, sp, #36
28978	mov	r4, r0
28979	mov	r6, r1
28980	mov	r5, r2
28981	ldr	r3, [r3]
28982	tst	r3, #4096
28983	beq	.L4637
28984	ldr	r3, [r10]
28985	str	r3, [sp]
28986	mov	r3, r2
28987	mov	r2, r1
28988	mov	r1, r0
28989	ldr	r0, .L4666+4
28990	bl	printk
28991.L4637:
28992	cmp	r4, #0
28993	bne	.L4638
28994	ldr	r3, .L4666+8
28995	mov	r4, #24576
28996	ldr	r2, [r3, #1032]
28997.L4639:
28998	cmp	r2, r5
28999	cmpcs	r2, r6
29000	movls	fp, #1
29001	movhi	fp, #0
29002	bls	.L4657
29003	add	r1, r6, r5
29004	cmp	r2, r1
29005	bcc	.L4657
29006	ldr	r8, .L4666+12
29007	add	r4, r4, r6
29008	mov	r0, r4
29009	ldrb	r6, [r8, #-2546]	@ zero_extendqisi2
29010	mov	r1, r6
29011	bl	__aeabi_uidiv
29012	mov	r9, r0
29013	sub	r0, r5, #1
29014	mov	r1, r6
29015	add	r0, r0, r4
29016	bl	__aeabi_uidiv
29017	str	r8, [sp, #16]
29018	sub	r7, r0, r9
29019	ldr	r8, .L4666+8
29020	add	r7, r7, #1
29021	mov	r6, r9
29022	add	r3, r4, r5
29023	str	r0, [sp, #12]
29024	str	fp, [sp, #20]
29025	str	r3, [sp, #24]
29026.L4641:
29027	cmp	r7, #0
29028	bne	.L4650
29029	bl	ftl_write_commit
29030	mov	r1, #1
29031	mov	r0, r7
29032	bl	zftl_do_gc
29033	ldr	r3, [r8, #1096]
29034	ldr	r4, .L4666+16
29035	ldrh	r3, [r3, #124]
29036	cmp	r3, #0
29037	bne	.L4651
29038	movw	r2, #2788
29039	ldrh	r3, [r4]
29040	ldrh	r2, [r8, r2]
29041	add	r3, r3, r2
29042	cmp	r3, #11
29043	bgt	.L4652
29044.L4651:
29045	mov	r1, #1
29046	mov	r0, #0
29047	bl	zftl_do_gc
29048.L4652:
29049	ldr	r5, .L4666+20
29050.L4653:
29051	ldrh	r3, [r4]
29052	ldrh	r2, [r5]
29053	add	r3, r3, r2
29054	cmp	r3, #7
29055	ble	.L4654
29056	bl	timer_get_time
29057	ldr	r3, [sp, #16]
29058	str	r0, [r3, #-4]
29059	mov	r0, #0
29060.L4636:
29061	add	sp, sp, #36
29062	@ sp needed
29063	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
29064.L4638:
29065	cmp	r4, #3
29066	bhi	.L4657
29067	lsl	r4, r4, #13
29068	mov	r2, #8192
29069	b	.L4639
29070.L4650:
29071	ldrb	r3, [r8, #2796]	@ zero_extendqisi2
29072	cmp	r3, #0
29073	beq	.L4642
29074	ldrb	r3, [r8, #2769]	@ zero_extendqisi2
29075	cmp	r3, #2
29076	bhi	.L4642
29077	bl	ftl_write_commit
29078.L4642:
29079	mov	r0, #0
29080	bl	buf_alloc
29081	subs	fp, r0, #0
29082	bne	.L4643
29083	bl	ftl_write_commit
29084	b	.L4641
29085.L4643:
29086	ldrb	r3, [sp, #20]	@ zero_extendqisi2
29087	strb	r3, [fp, #41]
29088	ldr	r3, [sp, #16]
29089	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
29090	ldr	r3, [sp, #12]
29091	strb	r2, [fp, #40]
29092	cmp	r6, r3
29093	cmpne	r6, r9
29094	bne	.L4646
29095	cmp	r6, r9
29096	smulbbne	r2, r6, r2
29097	ldrne	r3, [sp, #24]
29098	subne	r2, r3, r2
29099	bne	.L4665
29100	mov	r1, r2
29101	mov	r0, r4
29102	str	r2, [sp, #28]
29103	bl	__aeabi_uidivmod
29104	ldr	r2, [sp, #28]
29105	uxtb	r1, r1
29106	strb	r1, [fp, #41]
29107	sub	r2, r2, r1
29108	uxtb	r2, r2
29109	cmp	r5, r2
29110	strbcc	r5, [fp, #40]
29111	bcc	.L4646
29112.L4665:
29113	strb	r2, [fp, #40]
29114.L4646:
29115	ldrb	ip, [fp, #41]	@ zero_extendqisi2
29116	mov	r1, r10
29117	ldrb	r2, [fp, #40]	@ zero_extendqisi2
29118	sub	r7, r7, #1
29119	ldr	r0, [fp, #4]
29120	lsl	r2, r2, #9
29121	add	r0, r0, ip, lsl #9
29122	bl	ftl_memcpy
29123	ldr	r1, [r8, #2800]
29124	str	r6, [fp, #20]
29125	add	r6, r6, #1
29126	ldr	r2, [r1, #8]
29127	add	r0, r2, #1
29128	str	r0, [r1, #8]
29129	mov	r0, fp
29130	str	r2, [fp, #16]
29131	bl	ftl_write_buf
29132	ldrb	r3, [fp, #40]	@ zero_extendqisi2
29133	add	r10, r10, r3, lsl #9
29134	b	.L4641
29135.L4654:
29136	mov	r1, #1
29137	mov	r0, #0
29138	bl	zftl_do_gc
29139	mov	r1, #1
29140	mov	r0, r1
29141	bl	zftl_do_gc
29142	b	.L4653
29143.L4657:
29144	mvn	r0, #0
29145	b	.L4636
29146.L4667:
29147	.align	2
29148.L4666:
29149	.word	.LANCHOR2
29150	.word	.LC314
29151	.word	.LANCHOR0
29152	.word	.LANCHOR3
29153	.word	.LANCHOR0+2784
29154	.word	.LANCHOR0+2788
29155	.fnend
29156	.size	zftl_write, .-zftl_write
29157	.align	2
29158	.global	zftl_vendor_write
29159	.syntax unified
29160	.arm
29161	.fpu softvfp
29162	.type	zftl_vendor_write, %function
29163zftl_vendor_write:
29164	.fnstart
29165	@ args = 0, pretend = 0, frame = 0
29166	@ frame_needed = 0, uses_anonymous_args = 0
29167	@ link register save eliminated.
29168	mov	r3, r2
29169	mov	r2, r1
29170	add	r1, r0, #512
29171	mov	r0, #2
29172	b	zftl_write
29173	.fnend
29174	.size	zftl_vendor_write, .-zftl_vendor_write
29175	.align	2
29176	.global	zftl_sys_write
29177	.syntax unified
29178	.arm
29179	.fpu softvfp
29180	.type	zftl_sys_write, %function
29181zftl_sys_write:
29182	.fnstart
29183	@ args = 0, pretend = 0, frame = 0
29184	@ frame_needed = 0, uses_anonymous_args = 0
29185	@ link register save eliminated.
29186	mov	r3, r2
29187	mov	r2, r1
29188	mov	r1, r0
29189	mov	r0, #2
29190	b	zftl_write
29191	.fnend
29192	.size	zftl_sys_write, .-zftl_sys_write
29193	.align	2
29194	.global	zftl_discard
29195	.syntax unified
29196	.arm
29197	.fpu softvfp
29198	.type	zftl_discard, %function
29199zftl_discard:
29200	.fnstart
29201	@ args = 0, pretend = 0, frame = 24
29202	@ frame_needed = 0, uses_anonymous_args = 0
29203	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
29204	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
29205	.pad #36
29206	sub	sp, sp, #36
29207	ldr	r7, .L4720
29208	ldr	r3, [r7, #1032]
29209	cmp	r1, r3
29210	cmpls	r0, r3
29211	movcs	r2, #1
29212	movcc	r2, #0
29213	bcs	.L4692
29214	mov	r4, r1
29215	add	r1, r0, r1
29216	cmp	r3, r1
29217	bcc	.L4692
29218	ldr	r3, .L4720+4
29219	add	r8, r0, #24576
29220	ldr	r6, .L4720+8
29221	ldr	r0, [r3]
29222	ldr	r1, [r6, #28]
29223	str	r3, [sp, #16]
29224	tst	r0, #4096
29225	add	r1, r4, r1
29226	str	r1, [r6, #28]
29227	beq	.L4672
29228	str	r2, [sp]
29229	mov	r3, r4
29230	mov	r2, r8
29231	ldr	r0, .L4720+12
29232	bl	printk
29233.L4672:
29234	ldr	r3, [r7, #2800]
29235	ldr	r10, [r3, #8]
29236	add	r2, r10, #1
29237	str	r2, [r3, #8]
29238	bl	ftl_write_commit
29239	bl	ftl_flush
29240	ldrb	r9, [r6, #-2546]	@ zero_extendqisi2
29241	mov	r0, r8
29242	mov	r1, r9
29243	bl	__aeabi_uidiv
29244	mov	r1, r9
29245	mov	r5, r0
29246	mov	r0, r8
29247	bl	__aeabi_uidivmod
29248	subs	fp, r1, #0
29249	beq	.L4673
29250	sub	r9, r9, fp
29251	mov	r0, r5
29252	cmp	r9, r4
29253	movcs	r9, r4
29254	bl	lpa_hash_get_ppa
29255	cmn	r0, #1
29256	str	r0, [sp, #24]
29257	bne	.L4674
29258	mov	r2, #0
29259	add	r1, sp, #24
29260	mov	r0, r5
29261	bl	pm_log2phys
29262.L4674:
29263	ldr	r3, [sp, #24]
29264	cmn	r3, #1
29265	uxth	r3, r9
29266	str	r3, [sp, #12]
29267	beq	.L4676
29268	mov	r0, #0
29269	bl	buf_alloc
29270	subs	r3, r0, #0
29271	beq	.L4676
29272	ldr	r0, [r3, #4]
29273	mov	r1, #0
29274	str	r5, [r3, #20]
29275	strb	fp, [r3, #41]
29276	strb	r9, [r3, #40]
29277	str	r10, [r3, #16]
29278	add	r0, r0, fp, lsl #9
29279	str	r3, [sp, #20]
29280	ldr	r3, [sp, #12]
29281	lsl	r2, r3, #9
29282	bl	ftl_memset
29283	ldr	r3, [sp, #20]
29284	mov	r0, r3
29285	bl	ftl_write_buf
29286	bl	ftl_write_commit
29287	ldr	r2, [r7, #2800]
29288	ldr	r3, [r2, #76]
29289	add	r3, r3, #1
29290	str	r3, [r2, #76]
29291.L4676:
29292	ldr	r3, [sp, #12]
29293	add	r5, r5, #1
29294	sub	r4, r4, r3
29295.L4673:
29296	cmp	r4, #0
29297	beq	.L4678
29298	bl	ftl_flush
29299.L4678:
29300	mov	r9, #0
29301	mvn	r3, #0
29302	str	r3, [sp, #28]
29303.L4679:
29304	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
29305	cmp	r4, r3
29306	bcs	.L4684
29307	cmp	r4, #0
29308	beq	.L4686
29309	mov	r0, r5
29310	bl	lpa_hash_get_ppa
29311	cmn	r0, #1
29312	str	r0, [sp, #24]
29313	bne	.L4687
29314	mov	r2, #0
29315	add	r1, sp, #24
29316	mov	r0, r5
29317	bl	pm_log2phys
29318.L4687:
29319	ldr	r3, [sp, #24]
29320	cmn	r3, #1
29321	beq	.L4686
29322	mov	r0, #0
29323	bl	buf_alloc
29324	subs	r9, r0, #0
29325	beq	.L4686
29326	mov	r3, #0
29327	str	r5, [r9, #20]
29328	strb	r3, [r9, #41]
29329	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
29330	strb	r4, [r9, #40]
29331	str	r10, [r9, #16]
29332	cmp	r4, r3
29333	bcc	.L4689
29334	movw	r2, #1496
29335	ldr	r1, .L4720+16
29336	ldr	r0, .L4720+20
29337	bl	printk
29338	bl	dump_stack
29339.L4689:
29340	lsl	r2, r4, #9
29341	mov	r1, #0
29342	ldr	r0, [r9, #4]
29343	bl	ftl_memset
29344	mov	r0, r9
29345	bl	ftl_write_buf
29346	bl	ftl_write_commit
29347	ldr	r2, [r7, #2800]
29348	ldr	r3, [r2, #76]
29349	add	r3, r3, #1
29350	str	r3, [r2, #76]
29351.L4686:
29352	ldr	r1, [r6, #28]
29353	cmp	r1, #8192
29354	bls	.L4693
29355	ldr	r3, [sp, #16]
29356	ldr	r3, [r3]
29357	tst	r3, #4096
29358	beq	.L4690
29359	mov	r3, #0
29360	mov	r2, r8
29361	str	r3, [sp]
29362	mov	r3, r4
29363	ldr	r0, .L4720+12
29364	bl	printk
29365.L4690:
29366	mov	r4, #0
29367	str	r4, [r6, #28]
29368	bl	flt_sys_flush
29369	mov	r3, #1
29370	str	r3, [r7, #2812]
29371.L4693:
29372	mov	r0, #0
29373	b	.L4670
29374.L4684:
29375	mov	r0, r5
29376	bl	lpa_hash_get_ppa
29377	cmn	r0, #1
29378	str	r0, [sp, #24]
29379	beq	.L4680
29380	mov	r0, #0
29381	bl	buf_alloc
29382	subs	fp, r0, #0
29383	beq	.L4682
29384	ldrb	r2, [r6, #-2546]	@ zero_extendqisi2
29385	mov	r1, #0
29386	str	r5, [fp, #20]
29387	strb	r9, [fp, #41]
29388	strb	r2, [fp, #40]
29389	str	r10, [fp, #16]
29390	lsl	r2, r2, #9
29391	ldr	r0, [fp, #4]
29392	bl	ftl_memset
29393	mov	r0, fp
29394	bl	ftl_write_buf
29395	bl	ftl_write_commit
29396.L4719:
29397	ldr	r2, [r7, #2800]
29398	ldr	r3, [r2, #76]
29399	add	r3, r3, #1
29400	str	r3, [r2, #76]
29401.L4682:
29402	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
29403	add	r5, r5, #1
29404	sub	r4, r4, r3
29405	b	.L4679
29406.L4680:
29407	mov	r2, #0
29408	add	r1, sp, #24
29409	mov	r0, r5
29410	bl	pm_log2phys
29411	ldr	r3, [sp, #24]
29412	cmn	r3, #1
29413	beq	.L4682
29414	mov	r2, #1
29415	add	r1, sp, #28
29416	mov	r0, r5
29417	bl	pm_log2phys
29418	ldr	r3, .L4720+24
29419	ldr	r2, [sp, #24]
29420	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
29421	ldrh	r0, [r3]
29422	ldrb	r3, [r7, #1153]	@ zero_extendqisi2
29423	lsr	r2, r2, r0
29424	rsb	r3, r3, #24
29425	sub	r3, r3, r0
29426	mvn	r0, #0
29427	bic	r0, r2, r0, lsl r3
29428	bl	__aeabi_uidiv
29429	uxth	r0, r0
29430	bl	ftl_vpn_decrement
29431	b	.L4719
29432.L4692:
29433	mvn	r0, #0
29434.L4670:
29435	add	sp, sp, #36
29436	@ sp needed
29437	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
29438.L4721:
29439	.align	2
29440.L4720:
29441	.word	.LANCHOR0
29442	.word	.LANCHOR2
29443	.word	.LANCHOR3
29444	.word	.LC315
29445	.word	.LANCHOR1+2536
29446	.word	.LC0
29447	.word	.LANCHOR3-3138
29448	.fnend
29449	.size	zftl_discard, .-zftl_discard
29450	.align	2
29451	.global	dump_pm_blk
29452	.syntax unified
29453	.arm
29454	.fpu softvfp
29455	.type	dump_pm_blk, %function
29456dump_pm_blk:
29457	.fnstart
29458	@ args = 0, pretend = 0, frame = 0
29459	@ frame_needed = 0, uses_anonymous_args = 0
29460	push	{r4, r5, r6, r7, r8, lr}
29461	.save {r4, r5, r6, r7, r8, lr}
29462	movw	r3, #698
29463	ldr	r4, .L4727
29464	mov	r2, #4
29465	mov	r5, #0
29466	movw	r7, #65535
29467	ldr	r0, .L4727+4
29468	ldr	r1, [r4, #2800]
29469	ldr	r6, .L4727+8
29470	ldrh	r3, [r1, r3]
29471	add	r1, r1, #704
29472	bl	rknand_print_hex
29473	ldr	r1, [r4, #2800]
29474	mov	r2, #2
29475	ldrh	r3, [r6, #-176]
29476	ldr	r0, .L4727+12
29477	add	r1, r1, #416
29478	bl	rknand_print_hex
29479.L4723:
29480	ldrh	r2, [r6, #-176]
29481	uxth	r3, r5
29482	cmp	r2, r3
29483	bhi	.L4725
29484	pop	{r4, r5, r6, r7, r8, pc}
29485.L4725:
29486	uxth	r3, r5
29487	ldr	r2, [r4, #2800]
29488	add	r3, r3, #208
29489	lsl	r3, r3, #1
29490	ldrh	r0, [r2, r3]
29491	cmp	r0, r7
29492	beq	.L4724
29493	mov	r1, #0
29494	bl	ftl_sblk_dump
29495.L4724:
29496	add	r5, r5, #1
29497	b	.L4723
29498.L4728:
29499	.align	2
29500.L4727:
29501	.word	.LANCHOR0
29502	.word	.LC267
29503	.word	.LANCHOR3
29504	.word	.LC268
29505	.fnend
29506	.size	dump_pm_blk, .-dump_pm_blk
29507	.align	2
29508	.global	id_block_prog_msb_ff_data
29509	.syntax unified
29510	.arm
29511	.fpu softvfp
29512	.type	id_block_prog_msb_ff_data, %function
29513id_block_prog_msb_ff_data:
29514	.fnstart
29515	@ args = 0, pretend = 0, frame = 0
29516	@ frame_needed = 0, uses_anonymous_args = 0
29517	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
29518	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
29519	.pad #12
29520	ldr	r5, .L4736
29521	ldrb	r3, [r5, #1110]	@ zero_extendqisi2
29522	cmp	r3, #0
29523	bne	.L4729
29524	ldr	r3, [r5, #1104]
29525	mov	r4, r2
29526	mov	r10, r0
29527	mov	fp, r1
29528	ldrb	r3, [r3, #19]	@ zero_extendqisi2
29529	sub	r2, r3, #5
29530	cmp	r3, #68
29531	cmpne	r2, #2
29532	bls	.L4731
29533	sub	r3, r3, #19
29534	tst	r3, #239
29535	bne	.L4729
29536.L4731:
29537	ldr	r6, .L4736+4
29538	sub	r7, r6, #2272
29539.L4733:
29540	ldr	r3, [r5, #1104]
29541	ldrh	r3, [r3, #10]
29542	cmp	r3, r4
29543	bhi	.L4734
29544.L4729:
29545	add	sp, sp, #12
29546	@ sp needed
29547	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
29548.L4734:
29549	lsl	r9, r4, #1
29550	add	r8, r4, fp
29551	mov	r2, r8
29552	ldr	r0, .L4736+8
29553	ldrh	r3, [r7, r9]
29554	mov	r1, r4
29555	bl	printk
29556	ldrh	r2, [r7, r9]
29557	movw	r3, #65535
29558	cmp	r2, r3
29559	bne	.L4729
29560	mov	r2, #16384
29561	mov	r1, #255
29562	ldr	r0, [r6, #-120]
29563	add	r4, r4, #1
29564	bl	ftl_memset
29565	ldr	r3, [r5, #1104]
29566	mov	r1, r8
29567	mov	r0, r10
29568	uxth	r4, r4
29569	ldrb	r3, [r3, #9]	@ zero_extendqisi2
29570	str	r3, [sp]
29571	ldr	r3, [r6, #-120]
29572	mov	r2, r3
29573	bl	flash_prog_page
29574	b	.L4733
29575.L4737:
29576	.align	2
29577.L4736:
29578	.word	.LANCHOR0
29579	.word	.LANCHOR3
29580	.word	.LC316
29581	.fnend
29582	.size	id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data
29583	.align	2
29584	.global	write_idblock
29585	.syntax unified
29586	.arm
29587	.fpu softvfp
29588	.type	write_idblock, %function
29589write_idblock:
29590	.fnstart
29591	@ args = 0, pretend = 0, frame = 160
29592	@ frame_needed = 0, uses_anonymous_args = 0
29593	ldr	r3, .L4848
29594	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
29595	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
29596	.pad #180
29597	sub	sp, sp, #180
29598	ldr	lr, [r1]
29599	ldrb	ip, [r3]	@ zero_extendqisi2
29600	ldr	r4, .L4848+4
29601	ldr	r10, .L4848+8
29602	str	ip, [sp, #76]
29603	ldrh	ip, [sp, #76]
29604	ldr	r9, .L4848+12
29605	cmp	lr, r4
29606	cmpne	lr, r10
29607	str	ip, [sp, #40]
29608	movne	ip, #1
29609	moveq	ip, #0
29610	cmp	lr, r9
29611	moveq	ip, #0
29612	andne	ip, ip, #1
29613	cmp	ip, #0
29614	beq	.L4739
29615.L4847:
29616	mvn	r0, #0
29617.L4738:
29618	add	sp, sp, #180
29619	@ sp needed
29620	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
29621.L4739:
29622	cmp	r0, #15
29623	bls	.L4847
29624	mov	r5, r2
29625	ldr	r2, [r3, #1104]
29626	mov	fp, r0
29627	mov	r0, #256000
29628	str	r3, [sp, #16]
29629	ldrb	r6, [r2, #9]	@ zero_extendqisi2
29630	ldrh	r8, [r2, #10]
29631	ldr	r2, .L4848+16
29632	str	r1, [sp, #32]
29633	ldrh	r7, [r2, #30]
29634	ldrb	r2, [r3, #1110]	@ zero_extendqisi2
29635	str	r2, [sp, #96]
29636	bl	ftl_malloc
29637	subs	r3, r0, #0
29638	str	r3, [sp, #20]
29639	beq	.L4847
29640	ldr	r2, .L4848+20
29641	ldrb	r2, [r2, #16]	@ zero_extendqisi2
29642	cmp	r2, #0
29643	streq	r2, [sp, #16]
29644	beq	.L4742
29645	ldr	r3, [sp, #16]
29646	ldrb	r2, [r3]	@ zero_extendqisi2
29647	ldrb	r3, [r3, #1110]	@ zero_extendqisi2
29648	cmp	r2, #0
29649	clzne	r3, r3
29650	lsrne	r3, r3, #5
29651	bne	.L4844
29652	cmp	r3, #3
29653	streq	r3, [sp, #40]
29654	moveq	r3, #2
29655	beq	.L4844
29656	cmp	r3, #2
29657	ldr	r3, [sp, #40]
29658	moveq	r3, #2
29659	str	r3, [sp, #40]
29660	movne	r3, #0
29661	moveq	r3, #3
29662.L4844:
29663	str	r3, [sp, #16]
29664.L4742:
29665	add	fp, fp, #508
29666	add	fp, fp, #3
29667	lsr	fp, fp, #9
29668	cmp	fp, #8
29669	bls	.L4798
29670	cmp	fp, #500
29671	bhi	.L4745
29672.L4744:
29673	ldr	r3, [sp, #32]
29674	ldr	r3, [r3]
29675	cmp	r3, r4
29676	cmpne	r3, r10
29677	movne	r4, #1
29678	moveq	r4, #0
29679	cmp	r3, r9
29680	moveq	r9, #0
29681	andne	r9, r4, #1
29682	cmp	r9, #0
29683	beq	.L4746
29684.L4745:
29685	ldr	r0, [sp, #20]
29686	bl	ftl_free
29687	b	.L4847
29688.L4798:
29689	mov	fp, #8
29690	b	.L4744
29691.L4746:
29692	mov	r0, r9
29693	mul	r8, r6, r8
29694	bl	zftl_flash_exit_slc_mode
29695	ldr	r3, .L4848
29696	sub	r0, r8, #1
29697	mov	r1, r8
29698	add	r0, r0, fp
29699	ldrb	r2, [r3, #1110]	@ zero_extendqisi2
29700	strb	r2, [r3]
29701	bl	__aeabi_uidiv
29702	ldr	r3, [sp, #32]
29703	movw	r2, #63871
29704	ldr	ip, .L4848+24
29705	str	r0, [sp, #100]
29706	movw	r0, #4094
29707	add	r3, r3, #254976
29708	add	r3, r3, #512
29709.L4752:
29710	ldr	r1, [r3, #-4]!
29711	cmp	r1, #0
29712	bne	.L4747
29713	cmp	r9, #0
29714	sub	r2, r2, #1
29715	ldrne	r1, [sp, #32]
29716	streq	ip, [r3, #512]
29717	ldrne	r1, [r1, r9, lsl #2]
29718	add	r9, r9, #1
29719	strne	r1, [r3, #512]
29720	cmp	r9, r0
29721	movhi	r9, #0
29722	cmp	r2, #4096
29723	bne	.L4752
29724.L4751:
29725	mul	r3, r6, r7
29726	mov	r2, #4
29727	mov	r1, r5
29728	ldr	r0, .L4848+28
29729	str	r3, [sp, #72]
29730	mov	r3, #5
29731	bl	rknand_print_hex
29732	mov	r2, fp
29733	mov	r1, fp
29734	ldr	r0, .L4848+32
29735	bl	printk
29736	sub	r3, r5, #4
29737	str	r3, [sp, #48]
29738	mov	r3, #0
29739	str	r3, [sp, #36]
29740	str	r3, [sp, #24]
29741.L4792:
29742	ldr	r3, .L4848+20
29743	ldrb	r3, [r3, #16]	@ zero_extendqisi2
29744	cmp	r3, #0
29745	bne	.L4753
29746	ldr	r3, [sp, #48]
29747	ldr	r1, [sp, #24]
29748	ldr	r2, [r3, #4]
29749	ldr	r3, [sp, #72]
29750	mul	r10, r2, r3
29751	ldr	r3, [sp, #100]
29752	cmp	r1, #0
29753	cmpne	r3, #1
29754	bls	.L4754
29755	ldr	r3, [sp, #48]
29756	ldr	r3, [r3]
29757	add	r3, r3, #1
29758	cmp	r2, r3
29759	bne	.L4754
29760.L4755:
29761	ldr	r3, [sp, #24]
29762	add	r3, r3, #1
29763	str	r3, [sp, #24]
29764	ldr	r3, [sp, #48]
29765	add	r3, r3, #4
29766	str	r3, [sp, #48]
29767	ldr	r3, [sp, #24]
29768	cmp	r3, #4
29769	bne	.L4792
29770.L4794:
29771	mov	r0, #0
29772	bl	zftl_flash_exit_slc_mode
29773	ldr	r3, .L4848
29774	mov	r0, #0
29775	ldrb	r2, [sp, #76]	@ zero_extendqisi2
29776	strb	r2, [r3]
29777	ldr	r2, [sp, #16]
29778	cmp	r2, #0
29779	ldrbne	r2, [sp, #96]	@ zero_extendqisi2
29780	strbne	r2, [r3, #1110]
29781	mov	r2, #2
29782	strb	r2, [r3, #1154]
29783	bl	zftl_flash_enter_slc_mode
29784	ldr	r0, [sp, #20]
29785	bl	ftl_free
29786	ldr	r3, [sp, #36]
29787	clz	r0, r3
29788	lsr	r0, r0, #5
29789	rsb	r0, r0, #0
29790	b	.L4738
29791.L4747:
29792	ldr	r0, .L4848+36
29793	bl	printk
29794	b	.L4751
29795.L4753:
29796	ldr	r5, .L4848
29797	ldr	r2, [sp, #24]
29798	ldr	r3, [r5, #1040]
29799	add	r3, r3, r2
29800	ldrb	r3, [r3, #32]	@ zero_extendqisi2
29801	cmp	r3, #255
29802	beq	.L4755
29803	ldr	r2, [sp, #72]
29804	mul	r10, r2, r3
29805	ldr	r3, [sp, #16]
29806	cmp	r3, #0
29807	beq	.L4754
29808	ldr	r3, [sp, #24]
29809	and	r4, r3, #1
29810	ldr	r3, [sp, #16]
29811	cmp	r3, #3
29812	orreq	r4, r4, #1
29813	cmp	r4, #0
29814	ldrbne	r3, [sp, #40]	@ zero_extendqisi2
29815	strbne	r3, [r5]
29816	strbne	r3, [r5, #1110]
29817	bne	.L4754
29818	mov	r0, r4
29819	bl	zftl_flash_exit_slc_mode
29820	strb	r4, [r5]
29821	strb	r4, [r5, #1110]
29822.L4754:
29823	ldr	r5, .L4848
29824	mov	r2, #512
29825	mov	r1, #0
29826	ldr	r0, [sp, #20]
29827	bl	ftl_memset
29828	ldr	r3, [r5, #1104]
29829	mov	r6, #0
29830	mov	r0, r10
29831	ldrb	r8, [r3, #9]	@ zero_extendqisi2
29832	ldrh	r7, [r3, #10]
29833	ldr	r3, .L4848+16
29834	mov	r1, r8
29835	ldrh	r4, [r3, #30]
29836	mul	r7, r8, r7
29837	ldrb	r3, [r5, #1196]	@ zero_extendqisi2
29838	strb	r6, [r5, #1196]
29839	str	r3, [sp, #104]
29840	mul	r4, r8, r4
29841	bl	__aeabi_uidiv
29842	mov	r1, r0
29843	mov	r0, r6
29844	bl	flash_erase_block
29845	cmp	r7, fp
29846	movcs	r0, #1
29847	bcs	.L4757
29848	add	r1, r10, r4
29849	mov	r0, r6
29850	bl	flash_erase_block
29851	mov	r0, #2
29852.L4757:
29853	ldr	r2, [r5, #1104]
29854	ldrh	r3, [r2, #10]
29855	ldrb	r1, [r2, #12]	@ zero_extendqisi2
29856	lsl	r3, r3, #2
29857	mul	r0, r0, r3
29858	bl	__aeabi_idiv
29859	mov	r1, r4
29860	str	r0, [sp, #64]
29861	mov	r0, r10
29862	bl	__aeabi_uidivmod
29863	sub	r3, r10, r1
29864	str	r1, [sp, #56]
29865	cmp	r10, r3
29866	str	r3, [sp, #44]
29867	bne	.L4801
29868	ldrb	r3, [r5, #1028]	@ zero_extendqisi2
29869	cmp	r3, #9
29870	bne	.L4801
29871	ldr	r3, .L4848+20
29872	mov	r2, #1024
29873	mov	r1, #0
29874	ldr	r4, [r3, #-92]
29875	mov	r0, r4
29876	bl	ftl_memset
29877	ldr	r2, .L4848+40
29878	mov	r3, #12
29879	stm	r4, {r2, r3}
29880	mov	r3, #0
29881	strb	r3, [r4, #16]
29882	str	r3, [r4, #12]
29883	ldrb	r3, [r5, #1110]	@ zero_extendqisi2
29884	cmp	r3, #0
29885	ldrne	r3, [r5, #1104]
29886	ldrbne	r3, [r3, #29]	@ zero_extendqisi2
29887	strbne	r3, [r4, #16]
29888	mov	r3, #4
29889	strb	r3, [r4, #17]
29890	ldr	r3, .L4848
29891	ldr	r3, [r3, #1104]
29892	ldrb	r1, [r3, #12]	@ zero_extendqisi2
29893	ldrh	r0, [r3, #10]
29894	bl	__aeabi_idiv
29895	cmp	r8, #8
29896	mov	r3, #0
29897	movhi	r2, #70
29898	movls	r2, #16
29899	mov	r1, #12
29900	strh	r0, [r4, #18]	@ movhi
29901	strb	r3, [r4, #20]
29902	add	r0, r4, r1
29903	strh	r3, [r4, #22]	@ movhi
29904	strb	r2, [r4, #21]
29905	bl	js_hash
29906	sub	r3, fp, #4
29907	str	r0, [r4, #8]
29908	str	r3, [sp, #28]
29909.L4758:
29910	ldr	r9, [sp, #32]
29911	mov	r6, #0
29912	ldr	r7, .L4848
29913.L4761:
29914	ldr	r3, [sp, #64]
29915	cmp	r3, r6
29916	bhi	.L4772
29917	ldr	r3, .L4848+16
29918	mov	r4, #0
29919	strb	r4, [r7, #1196]
29920	mov	r0, r10
29921	ldr	r5, .L4848
29922	mov	r8, #4
29923	ldrb	r2, [r3, #13]	@ zero_extendqisi2
29924	ldrh	r1, [r3, #30]
29925	str	r2, [sp, #80]
29926	mul	r1, r2, r1
29927	bl	__aeabi_uidivmod
29928	sub	r3, r10, r1
29929	ldr	r6, [sp, #20]
29930	str	r3, [sp, #84]
29931	and	r3, r1, #3
29932	str	r3, [sp, #56]
29933	ldr	r3, [sp, #28]
29934	str	r1, [sp, #52]
29935	str	r4, [sp, #64]
29936	str	r3, [sp, #68]
29937.L4773:
29938	ldr	r3, [sp, #68]
29939	cmp	r4, r3
29940	bcc	.L4787
29941	ldrb	r3, [sp, #104]	@ zero_extendqisi2
29942	ldr	r4, .L4848
29943	strb	r3, [r4, #1196]
29944	ldr	r3, [sp, #16]
29945	cmp	r3, #0
29946	beq	.L4788
29947	mov	r0, #0
29948	bl	zftl_flash_exit_slc_mode
29949	mov	r3, #0
29950	strb	r3, [r4]
29951	strb	r3, [r4, #1110]
29952.L4788:
29953	ldr	r3, [sp, #28]
29954	mov	r2, #0
29955	lsl	r3, r3, #7
29956.L4790:
29957	ldr	r1, [sp, #20]
29958	ldr	r0, [r1, r2, lsl #2]
29959	ldr	r1, [sp, #32]
29960	ldr	r1, [r1, r2, lsl #2]
29961	cmp	r0, r1
29962	beq	.L4789
29963	mov	r2, #512
29964	mov	r1, #0
29965	ldr	r0, [sp, #20]
29966	bl	ftl_memset
29967	mov	r1, r10
29968	mov	r0, #0
29969	bl	flash_erase_block
29970	b	.L4755
29971.L4801:
29972	str	fp, [sp, #28]
29973	mov	r4, #0
29974	b	.L4758
29975.L4772:
29976	ldr	r3, [sp, #56]
29977	ldrb	r2, [r7, #1110]	@ zero_extendqisi2
29978	add	r5, r3, r6
29979	ubfx	r5, r5, #2, #16
29980	cmp	r2, #0
29981	add	r0, r5, #1
29982	lsl	r1, r0, #1
29983	add	r3, r7, r1
29984	ldrh	r3, [r3, #4]
29985	beq	.L4763
29986	ldrb	r3, [r7, #1]	@ zero_extendqisi2
29987	cmp	r3, #0
29988	moveq	r3, r0
29989	movne	r3, r1
29990.L4763:
29991	ldrb	r1, [r7, #1028]	@ zero_extendqisi2
29992	cmp	r1, #9
29993	subne	r3, r3, #1
29994	lslne	r3, r3, #2
29995	cmp	r2, #0
29996	str	r3, [sp, #112]
29997	movw	r3, #61424
29998	str	r3, [sp, #116]
29999	lsl	r3, r5, #1
30000	add	r1, r7, r3
30001	ldrh	r1, [r1, #4]
30002	moveq	r5, r1
30003	beq	.L4768
30004	ldrb	r2, [r7, #1]	@ zero_extendqisi2
30005	cmp	r2, #0
30006	movne	r5, r3
30007.L4768:
30008	cmp	r4, #0
30009	mul	r0, r5, r8
30010	bne	.L4769
30011	ldr	r3, [sp, #44]
30012	add	r3, r0, r3
30013	ldr	r0, .L4848+44
30014	str	r3, [sp, #60]
30015	movw	r3, #61424
30016	str	r3, [sp, #12]
30017	add	r3, sp, #176
30018	mov	r2, r3
30019	ldr	r1, [sp, #60]
30020	ldr	r3, [r2, #-64]!
30021	str	r3, [sp, #8]
30022	ldr	r3, [r9]
30023	str	r2, [sp, #52]
30024	mov	r2, r6
30025	str	r9, [sp]
30026	str	r3, [sp, #4]
30027	mov	r3, fp
30028	bl	printk
30029	mov	r1, r9
30030	ldr	r2, [sp, #52]
30031	ldr	r0, [sp, #60]
30032	bl	fw_flash_page_prog.constprop.29
30033	ldrb	r3, [r7, #1110]	@ zero_extendqisi2
30034	cmp	r3, #0
30035	bne	.L4770
30036	add	r5, r5, #1
30037	mov	r1, r8
30038	uxth	r5, r5
30039	ldr	r0, [sp, #44]
30040	bl	__aeabi_uidiv
30041	mov	r2, r5
30042	mov	r1, r0
30043	mov	r0, r4
30044	bl	id_block_prog_msb_ff_data
30045.L4770:
30046	ldr	r3, [sp, #28]
30047	add	r9, r9, #2048
30048	add	r3, r3, #16
30049	cmp	r6, r3
30050	bcc	.L4771
30051	ldr	r3, [sp, #28]
30052	add	r3, r3, #20
30053	cmp	r6, r3
30054	ldrcc	r3, [sp, #32]
30055	addcc	r9, r3, #2048
30056.L4771:
30057	add	r6, r6, #4
30058	mov	r4, #0
30059	uxth	r6, r6
30060	b	.L4761
30061.L4769:
30062	ldr	r3, [sp, #44]
30063	add	r2, sp, #112
30064	mov	r1, r4
30065	add	r0, r0, r3
30066	bl	fw_flash_page_prog.constprop.29
30067	b	.L4771
30068.L4787:
30069	ldr	r3, [sp, #56]
30070	mov	r1, r8
30071	sub	r3, r8, r3
30072	uxth	r3, r3
30073	str	r3, [sp, #60]
30074	ldr	r3, [sp, #52]
30075	add	r0, r3, r4
30076	bl	__aeabi_uidiv
30077	uxth	r0, r0
30078	ldrb	r1, [r5, #1110]	@ zero_extendqisi2
30079	lsl	r3, r0, #1
30080	cmp	r1, #0
30081	add	r2, r5, r3
30082	ldrh	r2, [r2, #4]
30083	moveq	r0, r2
30084	beq	.L4775
30085	ldrb	r2, [r5, #1]	@ zero_extendqisi2
30086	cmp	r2, #0
30087	movne	r0, r3
30088.L4775:
30089	ldr	r2, [sp, #84]
30090	ldr	r3, [sp, #80]
30091	ldrb	r9, [r5, #1108]	@ zero_extendqisi2
30092	mla	r3, r0, r3, r2
30093	str	r3, [sp, #88]
30094	ldr	r3, [r5, #1104]
30095	ldr	r2, [sp, #88]
30096	ldrb	r1, [r3, #9]	@ zero_extendqisi2
30097	ldr	r3, [sp, #56]
30098	add	r0, r3, r2
30099	bl	__aeabi_uidiv
30100	ldrb	r3, [r5, #1193]	@ zero_extendqisi2
30101	str	r0, [sp, #44]
30102	mov	r0, r9
30103	str	r3, [sp, #108]
30104	bl	nandc_bch_sel
30105.L4776:
30106	str	r8, [sp]
30107	add	r3, sp, #112
30108	mov	r2, r6
30109	ldr	r1, [sp, #44]
30110	mov	r0, #0
30111	bl	flash_read_page
30112	cmn	r0, #1
30113	mov	r7, r0
30114	bne	.L4777
30115	ldrb	r3, [r5, #1196]	@ zero_extendqisi2
30116	cmp	r3, #0
30117	str	r3, [sp, #92]
30118	bne	.L4778
30119.L4781:
30120	ldr	r3, .L4848+20
30121	ldr	r3, [r3, #-100]
30122	subs	ip, r3, #0
30123	bne	.L4779
30124.L4780:
30125	ldrb	r3, [r5, #1143]	@ zero_extendqisi2
30126	cmp	r3, #0
30127	beq	.L4777
30128	str	r8, [sp]
30129	add	r3, sp, #112
30130	mov	r2, r6
30131	ldr	r1, [sp, #44]
30132	mov	r0, #0
30133	bl	flash_ddr_tuning_read
30134	b	.L4846
30135.L4778:
30136	mov	r0, #0
30137	add	r3, sp, #112
30138	strb	r0, [r5, #1196]
30139	mov	r2, r6
30140	str	r8, [sp]
30141	ldr	r1, [sp, #44]
30142	bl	flash_read_page
30143	ldrb	r3, [sp, #92]	@ zero_extendqisi2
30144	cmn	r0, #1
30145	strb	r3, [r5, #1196]
30146	beq	.L4781
30147.L4846:
30148	mov	r7, r0
30149.L4777:
30150	cmn	r7, #1
30151	movne	r7, #0
30152	moveq	r7, #1
30153	cmp	r9, #16
30154	moveq	r9, #0
30155	andne	r9, r7, #1
30156	cmp	r9, #0
30157	beq	.L4783
30158	mov	r0, #16
30159	mov	r9, #16
30160	bl	nandc_bch_sel
30161	b	.L4776
30162.L4779:
30163	str	r8, [sp]
30164	add	r3, sp, #112
30165	mov	r2, r6
30166	ldr	r1, [sp, #44]
30167	mov	r0, #0
30168	blx	ip
30169	cmn	r0, #1
30170	beq	.L4780
30171	b	.L4846
30172.L4783:
30173	ldr	r0, [sp, #108]
30174	bl	nandc_bch_sel
30175	ldr	r3, [sp, #64]
30176	cmp	r7, #0
30177	mvnne	r3, #0
30178	str	r3, [sp, #64]
30179	ldr	r3, [sp, #84]
30180	ldr	r2, [sp, #64]
30181	cmp	r10, r3
30182	cmpeq	r4, #0
30183	moveq	r3, #1
30184	movne	r3, #0
30185	cmp	r2, #0
30186	movne	r3, #0
30187	andeq	r3, r3, #1
30188	cmp	r3, #0
30189	beq	.L4785
30190	ldr	r3, [r6]
30191	ldr	r2, .L4848+40
30192	cmp	r3, r2
30193	bne	.L4785
30194	ldr	r3, [sp, #68]
30195	ldr	r2, [sp, #60]
30196	ldrb	r8, [r6, #17]	@ zero_extendqisi2
30197	add	r3, r3, r2
30198	str	r3, [sp, #68]
30199.L4786:
30200	ldr	r3, [sp, #60]
30201	add	r4, r3, r4
30202	uxth	r4, r4
30203	b	.L4773
30204.L4785:
30205	ldr	r3, [sp, #60]
30206	mov	r2, r4
30207	ldr	r1, [sp, #88]
30208	ldr	r0, .L4848+48
30209	add	r6, r6, r3, lsl #9
30210	ldr	r3, [sp, #116]
30211	str	r3, [sp]
30212	ldr	r3, [sp, #112]
30213	bl	printk
30214	mov	r3, #0
30215	str	r3, [sp, #56]
30216	b	.L4786
30217.L4789:
30218	add	r2, r2, #1
30219	cmp	r3, r2
30220	bne	.L4790
30221	ldr	r3, [sp, #36]
30222	add	r3, r3, #1
30223	cmp	r3, #5
30224	str	r3, [sp, #36]
30225	bls	.L4755
30226	b	.L4794
30227.L4849:
30228	.align	2
30229.L4848:
30230	.word	.LANCHOR0
30231	.word	-52655045
30232	.word	1397640018
30233	.word	1397967698
30234	.word	.LANCHOR2
30235	.word	.LANCHOR3
30236	.word	1314014539
30237	.word	.LC318
30238	.word	.LC319
30239	.word	.LC317
30240	.word	1179535694
30241	.word	.LC320
30242	.word	.LC321
30243	.fnend
30244	.size	write_idblock, .-write_idblock
30245	.align	2
30246	.global	write_loader_lba
30247	.syntax unified
30248	.arm
30249	.fpu softvfp
30250	.type	write_loader_lba, %function
30251write_loader_lba:
30252	.fnstart
30253	@ args = 0, pretend = 0, frame = 40
30254	@ frame_needed = 0, uses_anonymous_args = 0
30255	cmp	r0, #64
30256	push	{r4, r5, r6, r7, r8, lr}
30257	.save {r4, r5, r6, r7, r8, lr}
30258	mov	r5, r0
30259	.pad #48
30260	sub	sp, sp, #48
30261	mov	r6, r1
30262	mov	r8, r2
30263	ldr	r4, .L4877
30264	bne	.L4851
30265	ldr	r3, .L4877+4
30266	ldr	r2, [r2]
30267	ldr	r1, .L4877+8
30268	cmp	r2, r1
30269	cmpne	r2, r3
30270	add	r1, r1, #327680
30271	moveq	r3, #1
30272	movne	r3, #0
30273	cmp	r2, r1
30274	orreq	r3, r3, #1
30275	cmp	r3, #0
30276	beq	.L4851
30277	mov	r3, #1
30278	mov	r0, #256000
30279	strb	r3, [r4, #32]
30280	bl	ftl_malloc
30281	mov	r2, #256000
30282	mov	r1, #0
30283	str	r0, [r4, #36]
30284	bl	ftl_memset
30285	str	r5, [r4, #40]
30286.L4851:
30287	str	r6, [sp]
30288	mov	r3, r5
30289	ldr	r2, [r8]
30290	ldr	r1, [r4, #36]
30291	ldr	r0, .L4877+12
30292	bl	printk
30293	ldrb	r3, [r4, #32]	@ zero_extendqisi2
30294	cmp	r3, #0
30295	beq	.L4850
30296	ldr	r7, [r4, #36]
30297	cmp	r7, #0
30298	beq	.L4850
30299	sub	r0, r5, #64
30300	cmp	r0, #500
30301	bcs	.L4853
30302	rsb	r2, r5, #564
30303	mov	r1, r8
30304	cmp	r6, r2
30305	add	r0, r7, r0, lsl #9
30306	movcc	r2, r6
30307	lsl	r2, r2, #9
30308	bl	ftl_memcpy
30309.L4854:
30310	ldr	r3, [r4, #40]
30311	cmp	r5, r3
30312	beq	.L4863
30313	mov	r8, #0
30314	mov	r0, r7
30315	strb	r8, [r4, #32]
30316	bl	ftl_free
30317	str	r8, [r4, #36]
30318	b	.L4863
30319.L4853:
30320	cmp	r5, #564
30321	bcc	.L4854
30322	ldr	r3, .L4877+16
30323	ldr	r0, [r4, #40]
30324	ldr	r3, [r3, #1104]
30325	sub	r0, r0, #64
30326	cmp	r0, #500
30327	ldrb	r3, [r3, #9]	@ zero_extendqisi2
30328	movcs	r0, #500
30329	cmp	r3, #4
30330	beq	.L4855
30331	mov	r3, #2
30332	str	r3, [sp, #8]
30333	mov	r3, #3
30334	str	r3, [sp, #12]
30335	mov	r3, #4
30336	str	r3, [sp, #16]
30337	mov	r3, #5
30338	str	r3, [sp, #20]
30339	mov	r3, #6
30340	str	r3, [sp, #24]
30341.L4856:
30342	mov	r3, #61952
30343.L4862:
30344	ldr	r2, [r7, r3, lsl #2]
30345	cmp	r2, #0
30346	beq	.L4860
30347	add	r3, r3, #2048
30348	lsl	r0, r3, #2
30349.L4861:
30350	mov	r1, r7
30351	add	r2, sp, #8
30352	mov	r7, #0
30353	bl	write_idblock
30354	ldr	r0, [r4, #36]
30355	strb	r7, [r4, #32]
30356	bl	ftl_free
30357	str	r7, [r4, #36]
30358.L4863:
30359	add	r5, r5, r6
30360	str	r5, [r4, #40]
30361.L4850:
30362	add	sp, sp, #48
30363	@ sp needed
30364	pop	{r4, r5, r6, r7, r8, pc}
30365.L4855:
30366	mov	r2, #0
30367	add	r3, sp, #8
30368.L4859:
30369	cmp	r0, #256
30370	lslhi	r1, r2, #1
30371	strls	r2, [r3, r2, lsl #2]
30372	strhi	r1, [r3, r2, lsl #2]
30373	add	r2, r2, #1
30374	cmp	r2, #5
30375	bne	.L4859
30376	b	.L4856
30377.L4860:
30378	sub	r3, r3, #1
30379	cmp	r3, #4096
30380	bne	.L4862
30381	lsl	r0, r0, #9
30382	b	.L4861
30383.L4878:
30384	.align	2
30385.L4877:
30386	.word	.LANCHOR3
30387	.word	-52655045
30388	.word	1397640018
30389	.word	.LC322
30390	.word	.LANCHOR0
30391	.fnend
30392	.size	write_loader_lba, .-write_loader_lba
30393	.align	2
30394	.global	FtlWrite
30395	.syntax unified
30396	.arm
30397	.fpu softvfp
30398	.type	FtlWrite, %function
30399FtlWrite:
30400	.fnstart
30401	@ args = 0, pretend = 0, frame = 0
30402	@ frame_needed = 0, uses_anonymous_args = 0
30403	push	{r4, r5, r6, r7, r8, lr}
30404	.save {r4, r5, r6, r7, r8, lr}
30405	mov	r6, r2
30406	sub	r2, r1, #64
30407	mov	r4, r1
30408	cmp	r2, #1984
30409	mov	r7, r3
30410	movcs	r2, #0
30411	movcc	r2, #1
30412	cmp	r0, #0
30413	mov	r5, r0
30414	movne	r2, #0
30415	cmp	r2, #0
30416	beq	.L4880
30417	mov	r2, r3
30418	mov	r1, r6
30419	mov	r0, r4
30420	bl	write_loader_lba
30421.L4880:
30422	ldr	r3, .L4885
30423	mov	r2, r6
30424	mov	r1, r4
30425	mov	r0, r5
30426	ldr	r3, [r3, #-160]
30427	ldr	lr, [r3, #24]
30428	mov	r3, r7
30429	mov	ip, lr
30430	pop	{r4, r5, r6, r7, r8, lr}
30431	bx	ip
30432.L4886:
30433	.align	2
30434.L4885:
30435	.word	.LANCHOR3
30436	.fnend
30437	.size	FtlWrite, .-FtlWrite
30438	.align	2
30439	.global	rknand_sys_storage_ioctl
30440	.syntax unified
30441	.arm
30442	.fpu softvfp
30443	.type	rknand_sys_storage_ioctl, %function
30444rknand_sys_storage_ioctl:
30445	.fnstart
30446	@ args = 0, pretend = 0, frame = 0
30447	@ frame_needed = 0, uses_anonymous_args = 0
30448	ldr	r3, .L4896
30449	cmp	r1, r3
30450	bne	.L4891
30451	push	{r4, lr}
30452	.save {r4, lr}
30453	bl	rknand_dev_flush
30454	mov	r1, #0
30455	ldr	r0, .L4896+4
30456	bl	printk
30457	mov	r0, #0
30458	pop	{r4, pc}
30459.L4891:
30460	mvn	r0, #21
30461	bx	lr
30462.L4897:
30463	.align	2
30464.L4896:
30465	.word	1074029332
30466	.word	.LC323
30467	.fnend
30468	.size	rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl
30469	.align	2
30470	.global	rk_ftl_storage_sys_init
30471	.syntax unified
30472	.arm
30473	.fpu softvfp
30474	.type	rk_ftl_storage_sys_init, %function
30475rk_ftl_storage_sys_init:
30476	.fnstart
30477	@ args = 0, pretend = 0, frame = 0
30478	@ frame_needed = 0, uses_anonymous_args = 0
30479	@ link register save eliminated.
30480	ldr	r3, .L4899
30481	mov	r2, #0
30482	mvn	r1, #0
30483	strb	r2, [r3, #32]
30484	str	r1, [r3, #40]
30485	str	r2, [r3, #36]
30486	str	r2, [r3, #44]
30487	b	rknand_sys_storage_init
30488.L4900:
30489	.align	2
30490.L4899:
30491	.word	.LANCHOR3
30492	.fnend
30493	.size	rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
30494	.align	2
30495	.global	StorageSysDataDeInit
30496	.syntax unified
30497	.arm
30498	.fpu softvfp
30499	.type	StorageSysDataDeInit, %function
30500StorageSysDataDeInit:
30501	.fnstart
30502	@ args = 0, pretend = 0, frame = 0
30503	@ frame_needed = 0, uses_anonymous_args = 0
30504	@ link register save eliminated.
30505	mov	r0, #0
30506	bx	lr
30507	.fnend
30508	.size	StorageSysDataDeInit, .-StorageSysDataDeInit
30509	.align	2
30510	.global	rk_ftl_vendor_storage_init
30511	.syntax unified
30512	.arm
30513	.fpu softvfp
30514	.type	rk_ftl_vendor_storage_init, %function
30515rk_ftl_vendor_storage_init:
30516	.fnstart
30517	@ args = 0, pretend = 0, frame = 0
30518	@ frame_needed = 0, uses_anonymous_args = 0
30519	push	{r4, r5, r6, r7, r8, r9, r10, lr}
30520	.save {r4, r5, r6, r7, r8, r9, r10, lr}
30521	ldr	r6, .L4913
30522	ldr	r3, [r6, #48]
30523	cmp	r3, #0
30524	bne	.L4903
30525	mov	r0, #65536
30526	bl	ftl_malloc
30527	str	r0, [r6, #48]
30528.L4903:
30529	ldr	r3, [r6, #48]
30530	cmp	r3, #0
30531	beq	.L4908
30532	ldr	r10, .L4913+4
30533	mov	r7, #0
30534	ldr	r9, .L4913+8
30535	mov	r4, r7
30536	mov	r8, r7
30537.L4906:
30538	ldr	r2, [r6, #48]
30539	mov	r1, #128
30540	lsl	r0, r8, #7
30541	bl	FlashBootVendorRead
30542	cmp	r0, #0
30543	bne	.L4909
30544	ldr	r1, [r6, #48]
30545	mov	r0, r10
30546	add	r2, r1, #61440
30547	ldr	r3, [r1, #4]
30548	ldr	r2, [r2, #4092]
30549	ldr	r1, [r1]
30550	bl	printk
30551	ldr	r5, [r6, #48]
30552	ldr	r3, [r5]
30553	cmp	r3, r9
30554	bne	.L4905
30555	add	r2, r5, #61440
30556	ldr	r3, [r5, #4]
30557	ldr	r2, [r2, #4092]
30558	cmp	r3, r4
30559	sub	r2, r2, r3
30560	clz	r2, r2
30561	lsr	r2, r2, #5
30562	movls	r2, #0
30563	cmp	r2, #0
30564	movne	r7, r8
30565	movne	r4, r3
30566.L4905:
30567	add	r8, r8, #1
30568	cmp	r8, #2
30569	bne	.L4906
30570	cmp	r4, #0
30571	beq	.L4907
30572	mov	r2, r5
30573	mov	r1, #128
30574	lsl	r0, r7, #7
30575	bl	FlashBootVendorRead
30576	adds	r0, r0, #0
30577	movne	r0, #1
30578	rsb	r0, r0, #0
30579	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
30580.L4907:
30581	mov	r2, #65536
30582	mov	r1, r4
30583	mov	r0, r5
30584	bl	memset
30585	mov	r3, #1
30586	add	r2, r5, #61440
30587	str	r3, [r5, #4]
30588	mov	r0, r4
30589	str	r9, [r5]
30590	str	r3, [r2, #4092]
30591	ldr	r3, .L4913+12
30592	strh	r4, [r5, #12]	@ movhi
30593	strh	r3, [r5, #14]	@ movhi
30594	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
30595.L4908:
30596	mvn	r0, #11
30597	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
30598.L4909:
30599	mvn	r0, #0
30600	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
30601.L4914:
30602	.align	2
30603.L4913:
30604	.word	.LANCHOR3
30605	.word	.LC324
30606	.word	1380668996
30607	.word	-1032
30608	.fnend
30609	.size	rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init
30610	.align	2
30611	.global	rk_ftl_vendor_read
30612	.syntax unified
30613	.arm
30614	.fpu softvfp
30615	.type	rk_ftl_vendor_read, %function
30616rk_ftl_vendor_read:
30617	.fnstart
30618	@ args = 0, pretend = 0, frame = 0
30619	@ frame_needed = 0, uses_anonymous_args = 0
30620	ldr	r3, .L4925
30621	ldr	ip, [r3, #48]
30622	cmp	ip, #0
30623	beq	.L4920
30624	push	{r4, r5, r6, lr}
30625	.save {r4, r5, r6, lr}
30626	mov	r3, #0
30627	ldrh	r4, [ip, #10]
30628.L4917:
30629	cmp	r3, r4
30630	bcc	.L4919
30631	mvn	r0, #0
30632	pop	{r4, r5, r6, pc}
30633.L4919:
30634	add	lr, ip, r3, lsl #3
30635	ldrh	r5, [lr, #16]
30636	cmp	r5, r0
30637	bne	.L4918
30638	ldrh	r4, [lr, #20]
30639	mov	r0, r1
30640	ldrh	r1, [lr, #18]
30641	cmp	r4, r2
30642	movcs	r4, r2
30643	add	r1, r1, #1024
30644	mov	r2, r4
30645	add	r1, ip, r1
30646	bl	memcpy
30647	mov	r0, r4
30648	pop	{r4, r5, r6, pc}
30649.L4918:
30650	add	r3, r3, #1
30651	b	.L4917
30652.L4920:
30653	mvn	r0, #0
30654	bx	lr
30655.L4926:
30656	.align	2
30657.L4925:
30658	.word	.LANCHOR3
30659	.fnend
30660	.size	rk_ftl_vendor_read, .-rk_ftl_vendor_read
30661	.align	2
30662	.global	rk_ftl_vendor_write
30663	.syntax unified
30664	.arm
30665	.fpu softvfp
30666	.type	rk_ftl_vendor_write, %function
30667rk_ftl_vendor_write:
30668	.fnstart
30669	@ args = 0, pretend = 0, frame = 24
30670	@ frame_needed = 0, uses_anonymous_args = 0
30671	ldr	r3, .L4948
30672	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
30673	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
30674	.pad #28
30675	sub	sp, sp, #28
30676	ldr	r4, [r3, #48]
30677	cmp	r4, #0
30678	beq	.L4942
30679	mov	r8, r2
30680	ldrh	r2, [r4, #10]
30681	add	r6, r8, #63
30682	ldrh	r3, [r4, #8]
30683	mov	fp, r1
30684	bic	r6, r6, #63
30685	mov	r7, #0
30686	str	r3, [sp, #4]
30687.L4929:
30688	cmp	r7, r2
30689	bcc	.L4937
30690	ldrh	r1, [r4, #14]
30691	cmp	r6, r1
30692	bhi	.L4942
30693	add	r3, r4, r2, lsl #3
30694	uxth	r6, r6
30695	strh	r0, [r3, #16]	@ movhi
30696	ldrh	r2, [r4, #12]
30697	strh	r8, [r3, #20]	@ movhi
30698	strh	r2, [r3, #18]	@ movhi
30699	add	r2, r2, r6
30700	sub	r6, r1, r6
30701	strh	r2, [r4, #12]	@ movhi
30702	strh	r6, [r4, #14]	@ movhi
30703	mov	r2, r8
30704	ldrh	r0, [r3, #18]
30705	mov	r1, fp
30706	add	r0, r0, #1024
30707	add	r0, r4, r0
30708	bl	memcpy
30709	ldrh	r3, [r4, #10]
30710	add	r3, r3, #1
30711	strh	r3, [r4, #10]	@ movhi
30712	b	.L4947
30713.L4937:
30714	add	r5, r4, r7, lsl #3
30715	ldrh	r3, [r5, #16]
30716	cmp	r3, r0
30717	str	r3, [sp, #8]
30718	bne	.L4930
30719	ldrh	r1, [r5, #20]
30720	add	r3, r4, #1024
30721	add	r1, r1, #63
30722	bic	r1, r1, #63
30723	cmp	r8, r1
30724	str	r1, [sp, #12]
30725	bls	.L4931
30726	ldrh	r1, [r4, #14]
30727	cmp	r6, r1
30728	subls	r2, r2, #1
30729	ldrhls	r10, [r5, #18]
30730	strls	r2, [sp, #16]
30731	bls	.L4932
30732.L4942:
30733	mvn	r0, #0
30734	b	.L4927
30735.L4933:
30736	ldrh	r9, [r5, #20]
30737	add	r0, r3, r10
30738	ldrh	r2, [r5, #16]
30739	add	r7, r7, #1
30740	ldrh	r1, [r5, #18]
30741	strh	r9, [r5, #12]	@ movhi
30742	add	r9, r9, #63
30743	bic	r9, r9, #63
30744	strh	r2, [r5, #8]	@ movhi
30745	strh	r10, [r5, #10]	@ movhi
30746	add	r1, r3, r1
30747	mov	r2, r9
30748	str	r3, [sp, #20]
30749	bl	memcpy
30750	ldr	r3, [sp, #20]
30751	add	r10, r10, r9
30752.L4932:
30753	ldr	r2, [sp, #16]
30754	add	r5, r5, #8
30755	cmp	r7, r2
30756	bcc	.L4933
30757	ldrh	r2, [sp, #8]
30758	add	r7, r4, r7, lsl #3
30759	uxth	r5, r10
30760	uxtah	r0, r3, r10
30761	strh	r8, [r7, #20]	@ movhi
30762	strh	r2, [r7, #16]	@ movhi
30763	mov	r1, fp
30764	strh	r5, [r7, #18]	@ movhi
30765	mov	r2, r8
30766	bl	memcpy
30767	uxth	r3, r6
30768	ldrh	r6, [r4, #14]
30769	add	r5, r5, r3
30770	sub	r6, r6, r3
30771	ldr	r3, [sp, #12]
30772	strh	r5, [r4, #12]	@ movhi
30773	add	r6, r6, r3
30774	strh	r6, [r4, #14]	@ movhi
30775.L4947:
30776	ldr	r3, [r4, #4]
30777	add	r2, r4, #61440
30778	mov	r1, #128
30779	add	r3, r3, #1
30780	str	r3, [r4, #4]
30781	str	r3, [r2, #4092]
30782	mov	r2, r4
30783	ldrh	r3, [r4, #8]
30784	add	r3, r3, #1
30785	uxth	r3, r3
30786	cmp	r3, #1
30787	movhi	r3, #0
30788	strh	r3, [r4, #8]	@ movhi
30789	ldr	r3, [sp, #4]
30790	lsl	r0, r3, #7
30791	bl	FlashBootVendorWrite
30792	mov	r0, #0
30793.L4927:
30794	add	sp, sp, #28
30795	@ sp needed
30796	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
30797.L4931:
30798	ldrh	r0, [r5, #18]
30799	mov	r2, r8
30800	mov	r1, fp
30801	add	r0, r3, r0
30802	bl	memcpy
30803	strh	r8, [r5, #20]	@ movhi
30804	b	.L4947
30805.L4930:
30806	add	r7, r7, #1
30807	b	.L4929
30808.L4949:
30809	.align	2
30810.L4948:
30811	.word	.LANCHOR3
30812	.fnend
30813	.size	rk_ftl_vendor_write, .-rk_ftl_vendor_write
30814	.align	2
30815	.global	rk_ftl_vendor_storage_ioctl
30816	.syntax unified
30817	.arm
30818	.fpu softvfp
30819	.type	rk_ftl_vendor_storage_ioctl, %function
30820rk_ftl_vendor_storage_ioctl:
30821	.fnstart
30822	@ args = 0, pretend = 0, frame = 0
30823	@ frame_needed = 0, uses_anonymous_args = 0
30824	push	{r4, r5, r6, lr}
30825	.save {r4, r5, r6, lr}
30826	mov	r0, #9216
30827	mov	r5, r2
30828	mov	r6, r1
30829	bl	ftl_malloc
30830	subs	r4, r0, #0
30831	mvneq	r5, #0
30832	beq	.L4950
30833	ldr	r3, .L4966
30834	cmp	r6, r3
30835	beq	.L4953
30836	add	r3, r3, #1
30837	cmp	r6, r3
30838	beq	.L4954
30839.L4964:
30840	mvn	r5, #13
30841	b	.L4952
30842.L4953:
30843	mov	r2, #8
30844	mov	r1, r5
30845	bl	rk_copy_from_user
30846	cmp	r0, #0
30847	bne	.L4964
30848	ldr	r2, [r4]
30849	ldr	r3, .L4966+4
30850	cmp	r2, r3
30851	beq	.L4956
30852.L4957:
30853	mvn	r5, #0
30854.L4952:
30855	mov	r0, r4
30856	bl	kfree
30857.L4950:
30858	mov	r0, r5
30859	pop	{r4, r5, r6, pc}
30860.L4956:
30861	ldrh	r2, [r4, #6]
30862	add	r1, r4, #8
30863	ldrh	r0, [r4, #4]
30864	bl	rk_ftl_vendor_read
30865	cmn	r0, #1
30866	beq	.L4957
30867	uxth	r2, r0
30868	strh	r0, [r4, #6]	@ movhi
30869	mov	r1, r4
30870	mov	r0, r5
30871	add	r2, r2, #8
30872	bl	rk_copy_to_user
30873	subs	r5, r0, #0
30874	beq	.L4952
30875	b	.L4964
30876.L4954:
30877	mov	r2, #8
30878	mov	r1, r5
30879	bl	rk_copy_from_user
30880	cmp	r0, #0
30881	bne	.L4964
30882	ldr	r2, [r4]
30883	ldr	r3, .L4966+4
30884	cmp	r2, r3
30885	bne	.L4957
30886	ldrh	r2, [r4, #6]
30887	movw	r3, #4087
30888	cmp	r2, r3
30889	bhi	.L4957
30890	add	r2, r2, #8
30891	mov	r1, r5
30892	mov	r0, r4
30893	bl	rk_copy_from_user
30894	cmp	r0, #0
30895	bne	.L4964
30896	ldrh	r2, [r4, #6]
30897	add	r1, r4, #8
30898	ldrh	r0, [r4, #4]
30899	bl	rk_ftl_vendor_write
30900	mov	r5, r0
30901	b	.L4952
30902.L4967:
30903	.align	2
30904.L4966:
30905	.word	1074034177
30906	.word	1448232273
30907	.fnend
30908	.size	rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl
30909	.global	SecureBootUnlockTryCount
30910	.global	SecureBootCheckOK
30911	.global	SecureBootEn
30912	.global	gpVendor1Info
30913	.global	gpVendor0Info
30914	.global	g_idb_buffer
30915	.global	gSnSectorData
30916	.global	gpDrmKeyInfo
30917	.global	gpBootConfig
30918	.global	ftl_dma32_buffer_size
30919	.global	ftl_dma32_buffer
30920	.global	gLoaderBootInfo
30921	.global	RK29_NANDC1_REG_BASE
30922	.global	RK29_NANDC_REG_BASE
30923	.global	gp_ftl_api
30924	.global	rk_zftl_enable
30925	.global	g_pm_spare
30926	.global	pm_first_write
30927	.global	pm_force_gc
30928	.global	pm_gc_enable
30929	.global	pm_last_load_ram_id
30930	.global	pm_last_update_ram_id
30931	.global	pm_ram_info
30932	.global	sblk_gc_write_completed_queue_head
30933	.global	sblk_read_completed_queue_head
30934	.global	sblk_write_completed_queue_head
30935	.global	sblk_queue_head
30936	.global	slc_cache_sblk
30937	.global	xlc_data_sblk
30938	.global	slc_data_sblk
30939	.global	free_mix_sblk
30940	.global	free_xlc_sblk
30941	.global	free_slc_sblk
30942	.global	gp_data_xlc_data_head
30943	.global	gp_data_slc_data_head
30944	.global	gp_data_slc_cache_head
30945	.global	gp_free_mix_head
30946	.global	gp_free_xlc_head
30947	.global	gp_free_slc_head
30948	.global	gp_sblk_list_tbl
30949	.global	zftl_print_list_count
30950	.global	ftl_ext_info_first_write
30951	.global	ftl_sys_info_first_write
30952	.global	ftl_low_format_cur_blk
30953	.global	ftl_power_lost_flag
30954	.global	ftl_vpn_update_count
30955	.global	ftl_sblk_update_list_offset
30956	.global	ftl_sblk_update_list
30957	.global	ftl_sblk_vpn_update_id
30958	.global	ftl_sblk_lpa_tbl
30959	.global	ftl_sblk_vpn
30960	.global	gp_ftl_ext_info
30961	.global	gp_ftl_info
30962	.global	gp_blk_info
30963	.global	ftl_tmp_buffer
30964	.global	ftl_ext_info_data_buffer
30965	.global	ftl_info_data_buffer
30966	.global	ftl_tmp_spare
30967	.global	ftl_info_spare
30968	.global	g_ftl_info_blk
30969	.global	tlc_b05a_prog_tbl
30970	.global	tlc_prog_order
30971	.global	gc_des_ppa_tbl
30972	.global	gc_valid_page_ppa
30973	.global	gc_page_buf_id
30974	.global	gc_pre_ppa_tbl
30975	.global	gc_lpa_tbl
30976	.global	g_gc_info
30977	.global	gc_xlc_search_index
30978	.global	gc_xlc_data_index
30979	.global	gc_slc_cache_index
30980	.global	gc_slc_data_index
30981	.global	gc_free_slc_sblk_th
30982	.global	gc_slc_mode_vpn_th
30983	.global	gc_slc_mode_slc_vpn_th
30984	.global	gc_slc_mode_tlc_vpn_th
30985	.global	gc_tlc_mode_tlc_vpn_th
30986	.global	gc_tlc_mode_slc_vpn_th
30987	.global	gc_state
30988	.global	gc_mode
30989	.global	p_read_ahead_ext_buf
30990	.global	discard_sector_count
30991	.global	read_ahead_lpa
30992	.global	_ftl_gc_tag_page_num
30993	.global	read_buf_count
30994	.global	read_buf_head
30995	.global	write_commit_count
30996	.global	write_commit_head
30997	.global	write_buf_count
30998	.global	write_buf_head
30999	.global	ftl_flush_jiffies
31000	.global	lpa_hash
31001	.global	lpa_hash_index
31002	.global	_c_slc_to_xlc_ec_ratio
31003	.global	_c_mix_max_xlc_ec_count
31004	.global	_c_mix_max_slc_ec_count
31005	.global	_c_swl_xlc_gc_th
31006	.global	_c_swl_slc_gc_th
31007	.global	_gc_after_discard_en
31008	.global	_last_write_time
31009	.global	_last_read_time
31010	.global	_min_slc_super_block
31011	.global	_max_xlc_super_block
31012	.global	_c_max_pm_sblk
31013	.global	_c_ftl_pm_page_num
31014	.global	_c_totle_log_page
31015	.global	_c_totle_data_density
31016	.global	_c_user_data_density
31017	.global	_c_totle_phy_density
31018	.global	_c_ftl_block_addr_log2
31019	.global	_c_ftl_block_align_addr
31020	.global	_c_ftl_byte_pre_page
31021	.global	_c_ftl_nand_blks_per_die
31022	.global	_c_ftl_page_pre_slc_blk
31023	.global	_c_ftl_page_pre_blk
31024	.global	_c_ftl_blk_pre_plane
31025	.global	_c_ftl_nand_planes_num
31026	.global	_c_ftl_planes_per_die
31027	.global	_c_ftl_sec_per_page
31028	.global	_c_ftl_nand_die_num
31029	.global	_c_ftl_nand_type
31030	.global	zftl_debug
31031	.global	g_flash_blk_info
31032	.global	gp_flash_info
31033	.global	p_free_buf_head
31034	.global	free_buf_count
31035	.global	g_buf
31036	.global	nandc_ecc_sts
31037	.global	g_nandc_v6_master_info
31038	.global	nandc_randomizer_en
31039	.global	nandc_hw_seed
31040	.global	fill_spare_size
31041	.global	g_nandc_ecc_bits
31042	.global	g_nandc_tran_timeout
31043	.global	g_nandc_ver
31044	.global	gp_nandc
31045	.global	hy_f26_ref_value
31046	.global	sd15_tlc_rr
31047	.global	sd15_slc_rr
31048	.global	g_nand_para_info
31049	.global	gp_nand_para_info
31050	.global	g_nand_opt_para
31051	.global	g_msb_page_tbl
31052	.global	g_lsb_page_tbl
31053	.global	g_die_addr
31054	.global	g_die_cs_idx
31055	.global	IDByte
31056	.global	flash_read_retry
31057	.global	_c_ftl_cs_bits
31058	.global	g_maxRetryCount
31059	.global	g_maxRegNum
31060	.global	g_retryMode
31061	.global	g_flash_toggle_mode_en
31062	.global	g_flash_ymtc_3d_tlc_flag
31063	.global	g_flash_micron_3d_tlc_b16a
31064	.global	g_flash_micron_3d_tlc_b05a
31065	.global	g_flash_micron_3d_tlc_flag
31066	.global	g_flash_3d_mlc_flag
31067	.global	g_flash_3d_tlc_flag
31068	.global	g_flash_multi_page_prog_en
31069	.global	g_flash_multi_page_read_en
31070	.global	g_flash_interface_mode
31071	.global	g_idb_ecc_bits
31072	.global	g_idb_slc_mode_enable
31073	.global	g_one_pass_program
31074	.global	g_slc_mode_addr2
31075	.global	g_slc_mode_enable
31076	.global	g_flash_cur_mode
31077	.global	g_flash_six_addr
31078	.global	g_flash_slc_mode
31079	.global	g_slc_page_num
31080	.global	g_totle_phy_block
31081	.global	g_block_align_addr
31082	.global	g_flash_reversd_blks
31083	.global	g_nand_max_die
31084	.global	g_flash_tmp_spare_buffer
31085	.global	g_flash_tmp_page_buffer
31086	.global	g_flash_sys_spare_buffer
31087	.global	g_flash_spare_buffer
31088	.global	g_flash_page_buffer
31089	.section	.rodata
31090	.align	2
31091	.set	.LANCHOR1,. + 0
31092	.type	__func__.42945, %object
31093	.size	__func__.42945, 18
31094__func__.42945:
31095	.ascii	"_list_remove_node\000"
31096	.type	__func__.42970, %object
31097	.size	__func__.42970, 23
31098__func__.42970:
31099	.ascii	"_list_update_data_list\000"
31100	.type	toshiba_A19ref_value, %object
31101	.size	toshiba_A19ref_value, 45
31102toshiba_A19ref_value:
31103	.byte	4
31104	.byte	5
31105	.byte	6
31106	.byte	7
31107	.byte	13
31108	.byte	0
31109	.byte	0
31110	.byte	0
31111	.byte	0
31112	.byte	0
31113	.byte	4
31114	.byte	4
31115	.byte	124
31116	.byte	126
31117	.byte	0
31118	.byte	0
31119	.byte	124
31120	.byte	120
31121	.byte	120
31122	.byte	0
31123	.byte	124
31124	.byte	118
31125	.byte	116
31126	.byte	114
31127	.byte	0
31128	.byte	8
31129	.byte	8
31130	.byte	0
31131	.byte	0
31132	.byte	0
31133	.byte	11
31134	.byte	126
31135	.byte	118
31136	.byte	116
31137	.byte	0
31138	.byte	16
31139	.byte	118
31140	.byte	114
31141	.byte	112
31142	.byte	0
31143	.byte	2
31144	.byte	0
31145	.byte	126
31146	.byte	124
31147	.byte	0
31148	.type	toshiba_15ref_value, %object
31149	.size	toshiba_15ref_value, 95
31150toshiba_15ref_value:
31151	.byte	4
31152	.byte	5
31153	.byte	6
31154	.byte	7
31155	.byte	13
31156	.byte	0
31157	.byte	0
31158	.byte	0
31159	.byte	0
31160	.byte	0
31161	.byte	0
31162	.byte	0
31163	.byte	0
31164	.byte	0
31165	.byte	0
31166	.byte	2
31167	.byte	4
31168	.byte	2
31169	.byte	0
31170	.byte	0
31171	.byte	8
31172	.byte	8
31173	.byte	0
31174	.byte	0
31175	.byte	0
31176	.byte	124
31177	.byte	0
31178	.byte	124
31179	.byte	124
31180	.byte	0
31181	.byte	122
31182	.byte	0
31183	.byte	122
31184	.byte	122
31185	.byte	0
31186	.byte	11
31187	.byte	126
31188	.byte	118
31189	.byte	116
31190	.byte	0
31191	.byte	120
31192	.byte	2
31193	.byte	120
31194	.byte	122
31195	.byte	0
31196	.byte	126
31197	.byte	4
31198	.byte	126
31199	.byte	122
31200	.byte	0
31201	.byte	16
31202	.byte	118
31203	.byte	114
31204	.byte	112
31205	.byte	0
31206	.byte	118
31207	.byte	4
31208	.byte	118
31209	.byte	120
31210	.byte	0
31211	.byte	4
31212	.byte	4
31213	.byte	4
31214	.byte	118
31215	.byte	0
31216	.byte	2
31217	.byte	0
31218	.byte	126
31219	.byte	124
31220	.byte	0
31221	.byte	6
31222	.byte	10
31223	.byte	6
31224	.byte	2
31225	.byte	0
31226	.byte	116
31227	.byte	124
31228	.byte	116
31229	.byte	118
31230	.byte	0
31231	.byte	4
31232	.byte	4
31233	.byte	124
31234	.byte	126
31235	.byte	0
31236	.byte	0
31237	.byte	124
31238	.byte	120
31239	.byte	120
31240	.byte	0
31241	.byte	124
31242	.byte	118
31243	.byte	116
31244	.byte	114
31245	.byte	0
31246	.type	toshiba_ref_value, %object
31247	.size	toshiba_ref_value, 8
31248toshiba_ref_value:
31249	.byte	0
31250	.byte	4
31251	.byte	124
31252	.byte	120
31253	.byte	116
31254	.byte	8
31255	.byte	12
31256	.byte	112
31257	.type	__func__.23463, %object
31258	.size	__func__.23463, 22
31259__func__.23463:
31260	.ascii	"nand_flash_print_info\000"
31261	.type	__func__.22936, %object
31262	.size	__func__.22936, 28
31263__func__.22936:
31264	.ascii	"flash_wait_device_ready_raw\000"
31265	.type	__func__.23000, %object
31266	.size	__func__.23000, 22
31267__func__.23000:
31268	.ascii	"flash_start_page_read\000"
31269	.type	toshiba_3D_tlc_value, %object
31270	.size	toshiba_3D_tlc_value, 399
31271toshiba_3D_tlc_value:
31272	.byte	-119
31273	.byte	-119
31274	.byte	-119
31275	.byte	-119
31276	.byte	-118
31277	.byte	-118
31278	.byte	-118
31279	.byte	0
31280	.byte	0
31281	.byte	0
31282	.byte	0
31283	.byte	0
31284	.byte	0
31285	.byte	0
31286	.byte	5
31287	.byte	-2
31288	.byte	-1
31289	.byte	0
31290	.byte	-3
31291	.byte	-2
31292	.byte	6
31293	.byte	-9
31294	.byte	-12
31295	.byte	-9
31296	.byte	-7
31297	.byte	-13
31298	.byte	-12
31299	.byte	-7
31300	.byte	-6
31301	.byte	-15
31302	.byte	-15
31303	.byte	-2
31304	.byte	-12
31305	.byte	-16
31306	.byte	-6
31307	.byte	-2
31308	.byte	-19
31309	.byte	-19
31310	.byte	-6
31311	.byte	-4
31312	.byte	-12
31313	.byte	-14
31314	.byte	-2
31315	.byte	-11
31316	.byte	-23
31317	.byte	-34
31318	.byte	-4
31319	.byte	-20
31320	.byte	-22
31321	.byte	-2
31322	.byte	-7
31323	.byte	-31
31324	.byte	-30
31325	.byte	-12
31326	.byte	-20
31327	.byte	-18
31328	.byte	2
31329	.byte	-15
31330	.byte	-19
31331	.byte	-36
31332	.byte	-12
31333	.byte	-28
31334	.byte	-34
31335	.byte	-6
31336	.byte	-15
31337	.byte	-11
31338	.byte	2
31339	.byte	-12
31340	.byte	-8
31341	.byte	-2
31342	.byte	2
31343	.byte	-3
31344	.byte	-7
31345	.byte	-10
31346	.byte	-4
31347	.byte	-8
31348	.byte	-6
31349	.byte	-6
31350	.byte	-11
31351	.byte	-27
31352	.byte	-38
31353	.byte	-16
31354	.byte	-12
31355	.byte	-2
31356	.byte	2
31357	.byte	-7
31358	.byte	-31
31359	.byte	-22
31360	.byte	-4
31361	.byte	-16
31362	.byte	-22
31363	.byte	-7
31364	.byte	-31
31365	.byte	-23
31366	.byte	-22
31367	.byte	-28
31368	.byte	-28
31369	.byte	-26
31370	.byte	2
31371	.byte	-7
31372	.byte	-11
31373	.byte	-14
31374	.byte	-8
31375	.byte	-12
31376	.byte	-10
31377	.byte	-10
31378	.byte	-27
31379	.byte	-25
31380	.byte	-22
31381	.byte	-20
31382	.byte	-28
31383	.byte	-22
31384	.byte	-7
31385	.byte	-23
31386	.byte	-29
31387	.byte	-34
31388	.byte	-24
31389	.byte	-32
31390	.byte	-22
31391	.byte	-10
31392	.byte	-11
31393	.byte	-29
31394	.byte	-18
31395	.byte	-12
31396	.byte	-24
31397	.byte	-22
31398	.byte	6
31399	.byte	1
31400	.byte	-3
31401	.byte	-6
31402	.byte	0
31403	.byte	-4
31404	.byte	-2
31405	.byte	10
31406	.byte	-3
31407	.byte	-7
31408	.byte	-6
31409	.byte	4
31410	.byte	-4
31411	.byte	-2
31412	.byte	-10
31413	.byte	-23
31414	.byte	-39
31415	.byte	-22
31416	.byte	-19
31417	.byte	-24
31418	.byte	-18
31419	.byte	-14
31420	.byte	-23
31421	.byte	-29
31422	.byte	-30
31423	.byte	-15
31424	.byte	-30
31425	.byte	-30
31426	.byte	-7
31427	.byte	-27
31428	.byte	-35
31429	.byte	-26
31430	.byte	-15
31431	.byte	-24
31432	.byte	-26
31433	.byte	6
31434	.byte	-11
31435	.byte	5
31436	.byte	-2
31437	.byte	-16
31438	.byte	-16
31439	.byte	-2
31440	.byte	-2
31441	.byte	-15
31442	.byte	-15
31443	.byte	-20
31444	.byte	-8
31445	.byte	-16
31446	.byte	-18
31447	.byte	6
31448	.byte	5
31449	.byte	-15
31450	.byte	-2
31451	.byte	-24
31452	.byte	-28
31453	.byte	-22
31454	.byte	10
31455	.byte	-15
31456	.byte	-3
31457	.byte	-30
31458	.byte	-8
31459	.byte	-24
31460	.byte	-30
31461	.byte	-10
31462	.byte	-27
31463	.byte	-19
31464	.byte	-30
31465	.byte	-12
31466	.byte	-16
31467	.byte	-10
31468	.byte	14
31469	.byte	-19
31470	.byte	-3
31471	.byte	-30
31472	.byte	4
31473	.byte	4
31474	.byte	6
31475	.byte	2
31476	.byte	1
31477	.byte	-3
31478	.byte	-10
31479	.byte	-8
31480	.byte	-4
31481	.byte	-6
31482	.byte	-2
31483	.byte	-15
31484	.byte	-11
31485	.byte	-26
31486	.byte	-8
31487	.byte	-20
31488	.byte	-30
31489	.byte	6
31490	.byte	-19
31491	.byte	-3
31492	.byte	-46
31493	.byte	0
31494	.byte	0
31495	.byte	2
31496	.byte	6
31497	.byte	9
31498	.byte	5
31499	.byte	2
31500	.byte	4
31501	.byte	8
31502	.byte	6
31503	.byte	8
31504	.byte	9
31505	.byte	9
31506	.byte	6
31507	.byte	8
31508	.byte	8
31509	.byte	6
31510	.byte	10
31511	.byte	13
31512	.byte	9
31513	.byte	6
31514	.byte	8
31515	.byte	12
31516	.byte	10
31517	.byte	2
31518	.byte	5
31519	.byte	1
31520	.byte	-2
31521	.byte	0
31522	.byte	0
31523	.byte	6
31524	.byte	12
31525	.byte	1
31526	.byte	13
31527	.byte	2
31528	.byte	12
31529	.byte	12
31530	.byte	14
31531	.byte	-12
31532	.byte	-14
31533	.byte	-20
31534	.byte	-18
31535	.byte	-16
31536	.byte	-16
31537	.byte	-14
31538	.byte	-12
31539	.byte	-10
31540	.byte	-21
31541	.byte	-14
31542	.byte	-12
31543	.byte	-12
31544	.byte	-10
31545	.byte	-12
31546	.byte	-18
31547	.byte	-22
31548	.byte	-24
31549	.byte	-18
31550	.byte	-18
31551	.byte	-18
31552	.byte	-12
31553	.byte	-14
31554	.byte	-23
31555	.byte	-20
31556	.byte	-20
31557	.byte	-20
31558	.byte	-20
31559	.byte	-12
31560	.byte	-24
31561	.byte	-24
31562	.byte	-30
31563	.byte	-24
31564	.byte	-28
31565	.byte	-28
31566	.byte	-12
31567	.byte	-26
31568	.byte	-25
31569	.byte	-34
31570	.byte	-24
31571	.byte	-24
31572	.byte	-24
31573	.byte	-12
31574	.byte	-13
31575	.byte	-26
31576	.byte	-20
31577	.byte	-14
31578	.byte	-18
31579	.byte	-18
31580	.byte	-12
31581	.byte	-15
31582	.byte	-27
31583	.byte	-22
31584	.byte	-20
31585	.byte	-24
31586	.byte	-22
31587	.byte	-12
31588	.byte	-21
31589	.byte	-28
31590	.byte	-28
31591	.byte	-24
31592	.byte	-26
31593	.byte	-24
31594	.byte	20
31595	.byte	16
31596	.byte	6
31597	.byte	10
31598	.byte	16
31599	.byte	12
31600	.byte	12
31601	.byte	16
31602	.byte	16
31603	.byte	8
31604	.byte	8
31605	.byte	12
31606	.byte	12
31607	.byte	12
31608	.byte	18
31609	.byte	18
31610	.byte	10
31611	.byte	8
31612	.byte	14
31613	.byte	14
31614	.byte	14
31615	.byte	16
31616	.byte	14
31617	.byte	6
31618	.byte	6
31619	.byte	12
31620	.byte	14
31621	.byte	8
31622	.byte	20
31623	.byte	18
31624	.byte	8
31625	.byte	6
31626	.byte	14
31627	.byte	14
31628	.byte	10
31629	.byte	20
31630	.byte	20
31631	.byte	6
31632	.byte	10
31633	.byte	10
31634	.byte	12
31635	.byte	12
31636	.byte	10
31637	.byte	13
31638	.byte	5
31639	.byte	2
31640	.byte	14
31641	.byte	8
31642	.byte	6
31643	.byte	6
31644	.byte	13
31645	.byte	9
31646	.byte	4
31647	.byte	14
31648	.byte	10
31649	.byte	10
31650	.byte	10
31651	.byte	13
31652	.byte	9
31653	.byte	6
31654	.byte	8
31655	.byte	12
31656	.byte	10
31657	.byte	2
31658	.byte	5
31659	.byte	1
31660	.byte	-2
31661	.byte	0
31662	.byte	0
31663	.byte	6
31664	.byte	12
31665	.byte	1
31666	.byte	13
31667	.byte	2
31668	.byte	12
31669	.byte	12
31670	.byte	14
31671	.type	toshiba_3D_slc_value, %object
31672	.size	toshiba_3D_slc_value, 11
31673toshiba_3D_slc_value:
31674	.byte	-117
31675	.byte	0
31676	.byte	-8
31677	.byte	8
31678	.byte	-16
31679	.byte	-24
31680	.byte	24
31681	.byte	-40
31682	.byte	40
31683	.byte	-56
31684	.byte	56
31685	.type	ymtc_3D_tlc_value, %object
31686	.size	ymtc_3D_tlc_value, 357
31687ymtc_3D_tlc_value:
31688	.byte	0
31689	.byte	0
31690	.byte	0
31691	.byte	0
31692	.byte	0
31693	.byte	0
31694	.byte	0
31695	.byte	-10
31696	.byte	-10
31697	.byte	-6
31698	.byte	-6
31699	.byte	-2
31700	.byte	2
31701	.byte	2
31702	.byte	-6
31703	.byte	-6
31704	.byte	-4
31705	.byte	-4
31706	.byte	-4
31707	.byte	-6
31708	.byte	-8
31709	.byte	6
31710	.byte	0
31711	.byte	0
31712	.byte	0
31713	.byte	0
31714	.byte	0
31715	.byte	0
31716	.byte	-2
31717	.byte	-2
31718	.byte	-2
31719	.byte	-4
31720	.byte	-4
31721	.byte	-6
31722	.byte	-6
31723	.byte	-6
31724	.byte	-6
31725	.byte	-6
31726	.byte	-6
31727	.byte	-6
31728	.byte	-6
31729	.byte	-11
31730	.byte	-2
31731	.byte	2
31732	.byte	4
31733	.byte	4
31734	.byte	6
31735	.byte	6
31736	.byte	6
31737	.byte	-6
31738	.byte	-6
31739	.byte	-6
31740	.byte	-6
31741	.byte	-6
31742	.byte	-8
31743	.byte	-14
31744	.byte	-6
31745	.byte	-15
31746	.byte	-11
31747	.byte	2
31748	.byte	-12
31749	.byte	-8
31750	.byte	-2
31751	.byte	2
31752	.byte	-3
31753	.byte	-7
31754	.byte	-10
31755	.byte	-4
31756	.byte	-8
31757	.byte	-6
31758	.byte	-18
31759	.byte	-18
31760	.byte	-14
31761	.byte	-14
31762	.byte	-10
31763	.byte	-5
31764	.byte	-5
31765	.byte	-14
31766	.byte	-14
31767	.byte	-12
31768	.byte	-12
31769	.byte	-12
31770	.byte	-13
31771	.byte	-15
31772	.byte	-2
31773	.byte	-8
31774	.byte	-8
31775	.byte	-8
31776	.byte	-8
31777	.byte	-7
31778	.byte	-7
31779	.byte	-10
31780	.byte	-10
31781	.byte	-10
31782	.byte	-12
31783	.byte	-12
31784	.byte	-13
31785	.byte	-13
31786	.byte	-14
31787	.byte	-14
31788	.byte	-14
31789	.byte	-14
31790	.byte	-14
31791	.byte	-13
31792	.byte	-18
31793	.byte	-10
31794	.byte	-6
31795	.byte	-4
31796	.byte	-4
31797	.byte	-2
31798	.byte	-1
31799	.byte	-1
31800	.byte	-14
31801	.byte	-14
31802	.byte	-14
31803	.byte	-14
31804	.byte	-14
31805	.byte	-15
31806	.byte	-21
31807	.byte	-12
31808	.byte	-11
31809	.byte	-7
31810	.byte	-7
31811	.byte	-3
31812	.byte	1
31813	.byte	1
31814	.byte	-8
31815	.byte	-7
31816	.byte	-5
31817	.byte	-5
31818	.byte	-5
31819	.byte	-7
31820	.byte	-9
31821	.byte	4
31822	.byte	-1
31823	.byte	-1
31824	.byte	-1
31825	.byte	-1
31826	.byte	-1
31827	.byte	-1
31828	.byte	-4
31829	.byte	-3
31830	.byte	-3
31831	.byte	-5
31832	.byte	-5
31833	.byte	-7
31834	.byte	-7
31835	.byte	-8
31836	.byte	-7
31837	.byte	-7
31838	.byte	-7
31839	.byte	-7
31840	.byte	-7
31841	.byte	-12
31842	.byte	-4
31843	.byte	1
31844	.byte	3
31845	.byte	3
31846	.byte	5
31847	.byte	5
31848	.byte	5
31849	.byte	-8
31850	.byte	-7
31851	.byte	-7
31852	.byte	-7
31853	.byte	-7
31854	.byte	-9
31855	.byte	-15
31856	.byte	2
31857	.byte	-7
31858	.byte	-11
31859	.byte	-14
31860	.byte	-8
31861	.byte	-12
31862	.byte	-10
31863	.byte	6
31864	.byte	1
31865	.byte	-3
31866	.byte	-6
31867	.byte	0
31868	.byte	-4
31869	.byte	-2
31870	.byte	10
31871	.byte	-3
31872	.byte	-7
31873	.byte	-6
31874	.byte	4
31875	.byte	-4
31876	.byte	-2
31877	.byte	-10
31878	.byte	-23
31879	.byte	-39
31880	.byte	-22
31881	.byte	-19
31882	.byte	-24
31883	.byte	-18
31884	.byte	-7
31885	.byte	-27
31886	.byte	-35
31887	.byte	-26
31888	.byte	-15
31889	.byte	-24
31890	.byte	-26
31891	.byte	6
31892	.byte	-11
31893	.byte	5
31894	.byte	-2
31895	.byte	-16
31896	.byte	-16
31897	.byte	-2
31898	.byte	-2
31899	.byte	-15
31900	.byte	-15
31901	.byte	-20
31902	.byte	-8
31903	.byte	-16
31904	.byte	-18
31905	.byte	2
31906	.byte	1
31907	.byte	-3
31908	.byte	-10
31909	.byte	-8
31910	.byte	-4
31911	.byte	-6
31912	.byte	-2
31913	.byte	-15
31914	.byte	-11
31915	.byte	-26
31916	.byte	-8
31917	.byte	-20
31918	.byte	-30
31919	.byte	6
31920	.byte	-19
31921	.byte	-3
31922	.byte	-46
31923	.byte	0
31924	.byte	0
31925	.byte	2
31926	.byte	6
31927	.byte	9
31928	.byte	5
31929	.byte	2
31930	.byte	4
31931	.byte	8
31932	.byte	6
31933	.byte	8
31934	.byte	9
31935	.byte	9
31936	.byte	6
31937	.byte	8
31938	.byte	8
31939	.byte	6
31940	.byte	10
31941	.byte	13
31942	.byte	9
31943	.byte	6
31944	.byte	8
31945	.byte	12
31946	.byte	10
31947	.byte	2
31948	.byte	5
31949	.byte	1
31950	.byte	-2
31951	.byte	0
31952	.byte	0
31953	.byte	6
31954	.byte	12
31955	.byte	1
31956	.byte	13
31957	.byte	2
31958	.byte	12
31959	.byte	12
31960	.byte	14
31961	.byte	-12
31962	.byte	-14
31963	.byte	-20
31964	.byte	-18
31965	.byte	-16
31966	.byte	-16
31967	.byte	-14
31968	.byte	-12
31969	.byte	-10
31970	.byte	-21
31971	.byte	-14
31972	.byte	-12
31973	.byte	-12
31974	.byte	-10
31975	.byte	-12
31976	.byte	-18
31977	.byte	-22
31978	.byte	-24
31979	.byte	-18
31980	.byte	-18
31981	.byte	-18
31982	.byte	-12
31983	.byte	-14
31984	.byte	-23
31985	.byte	-20
31986	.byte	-20
31987	.byte	-20
31988	.byte	-20
31989	.byte	16
31990	.byte	16
31991	.byte	8
31992	.byte	8
31993	.byte	12
31994	.byte	12
31995	.byte	12
31996	.byte	18
31997	.byte	18
31998	.byte	10
31999	.byte	8
32000	.byte	14
32001	.byte	14
32002	.byte	14
32003	.byte	16
32004	.byte	14
32005	.byte	6
32006	.byte	6
32007	.byte	12
32008	.byte	14
32009	.byte	8
32010	.byte	10
32011	.byte	13
32012	.byte	5
32013	.byte	2
32014	.byte	14
32015	.byte	8
32016	.byte	6
32017	.byte	6
32018	.byte	13
32019	.byte	9
32020	.byte	4
32021	.byte	14
32022	.byte	10
32023	.byte	10
32024	.byte	10
32025	.byte	13
32026	.byte	9
32027	.byte	6
32028	.byte	8
32029	.byte	12
32030	.byte	10
32031	.byte	2
32032	.byte	5
32033	.byte	1
32034	.byte	-2
32035	.byte	0
32036	.byte	0
32037	.byte	6
32038	.byte	12
32039	.byte	1
32040	.byte	13
32041	.byte	2
32042	.byte	12
32043	.byte	12
32044	.byte	14
32045	.type	ymtc_3D_slc_value, %object
32046	.size	ymtc_3D_slc_value, 10
32047ymtc_3D_slc_value:
32048	.byte	0
32049	.byte	-8
32050	.byte	8
32051	.byte	-16
32052	.byte	-20
32053	.byte	24
32054	.byte	-26
32055	.byte	40
32056	.byte	-12
32057	.byte	56
32058	.type	__func__.23025, %object
32059	.size	__func__.23025, 23
32060__func__.23025:
32061	.ascii	"flash_start_plane_read\000"
32062	.type	__func__.22911, %object
32063	.size	__func__.22911, 26
32064__func__.22911:
32065	.ascii	"flash_erase_duplane_block\000"
32066	.type	__func__.22922, %object
32067	.size	__func__.22922, 21
32068__func__.22922:
32069	.ascii	"flash_erase_block_en\000"
32070	.type	random_seed, %object
32071	.size	random_seed, 256
32072random_seed:
32073	.short	22378
32074	.short	1512
32075	.short	25245
32076	.short	17827
32077	.short	25756
32078	.short	19440
32079	.short	9026
32080	.short	10030
32081	.short	29528
32082	.short	20467
32083	.short	29676
32084	.short	24432
32085	.short	31328
32086	.short	6872
32087	.short	13426
32088	.short	13842
32089	.short	8783
32090	.short	1108
32091	.short	782
32092	.short	28837
32093	.short	30729
32094	.short	9505
32095	.short	18676
32096	.short	23085
32097	.short	18730
32098	.short	1085
32099	.short	32609
32100	.short	14697
32101	.short	20858
32102	.short	15170
32103	.short	30365
32104	.short	1607
32105	.short	32298
32106	.short	4995
32107	.short	18905
32108	.short	1976
32109	.short	9592
32110	.short	20204
32111	.short	17443
32112	.short	13615
32113	.short	23330
32114	.short	29369
32115	.short	13947
32116	.short	9398
32117	.short	32398
32118	.short	8984
32119	.short	27600
32120	.short	21785
32121	.short	6019
32122	.short	6311
32123	.short	31598
32124	.short	30210
32125	.short	19327
32126	.short	13896
32127	.short	11347
32128	.short	27545
32129	.short	3107
32130	.short	26575
32131	.short	32270
32132	.short	19852
32133	.short	20601
32134	.short	8349
32135	.short	9290
32136	.short	29819
32137	.short	13579
32138	.short	3661
32139	.short	28676
32140	.short	27331
32141	.short	32574
32142	.short	8693
32143	.short	31253
32144	.short	9081
32145	.short	5399
32146	.short	6842
32147	.short	20087
32148	.short	5537
32149	.short	1274
32150	.short	11617
32151	.short	9530
32152	.short	4866
32153	.short	8035
32154	.short	23219
32155	.short	1178
32156	.short	23272
32157	.short	7383
32158	.short	18944
32159	.short	12488
32160	.short	12871
32161	.short	29340
32162	.short	20532
32163	.short	11022
32164	.short	22514
32165	.short	228
32166	.short	22363
32167	.short	24978
32168	.short	14584
32169	.short	12138
32170	.short	3092
32171	.short	17916
32172	.short	16863
32173	.short	14554
32174	.short	31457
32175	.short	29474
32176	.short	25311
32177	.short	24121
32178	.short	3684
32179	.short	28037
32180	.short	22865
32181	.short	22839
32182	.short	25217
32183	.short	13217
32184	.short	27186
32185	.short	14938
32186	.short	11180
32187	.short	29754
32188	.short	24180
32189	.short	15150
32190	.short	32455
32191	.short	20434
32192	.short	23848
32193	.short	29983
32194	.short	16120
32195	.short	14769
32196	.short	20041
32197	.short	29803
32198	.short	28406
32199	.short	17598
32200	.short	28087
32201	.type	__func__.23728, %object
32202	.size	__func__.23728, 13
32203__func__.23728:
32204	.ascii	"buf_add_tail\000"
32205	.type	__func__.23741, %object
32206	.size	__func__.23741, 10
32207__func__.23741:
32208	.ascii	"buf_alloc\000"
32209	.type	__func__.23755, %object
32210	.size	__func__.23755, 16
32211__func__.23755:
32212	.ascii	"buf_remove_free\000"
32213	.space	1
32214	.type	zftl_debug_proc_fops, %object
32215	.size	zftl_debug_proc_fops, 44
32216zftl_debug_proc_fops:
32217	.space	4
32218	.word	zftl_debug_proc_open
32219	.word	seq_read
32220	.space	4
32221	.word	zftl_debug_proc_write
32222	.word	seq_lseek
32223	.word	single_release
32224	.space	16
32225	.type	__func__.42478, %object
32226	.size	__func__.42478, 12
32227__func__.42478:
32228	.ascii	"gc_add_sblk\000"
32229	.type	__func__.42570, %object
32230	.size	__func__.42570, 19
32231__func__.42570:
32232	.ascii	"gc_write_completed\000"
32233	.type	__func__.43176, %object
32234	.size	__func__.43176, 18
32235__func__.43176:
32236	.ascii	"ftl_alloc_sys_blk\000"
32237	.type	__func__.43186, %object
32238	.size	__func__.43186, 17
32239__func__.43186:
32240	.ascii	"ftl_free_sys_blk\000"
32241	.type	__func__.43307, %object
32242	.size	__func__.43307, 23
32243__func__.43307:
32244	.ascii	"ftl_get_ppa_from_index\000"
32245	.type	__func__.43347, %object
32246	.size	__func__.43347, 22
32247__func__.43347:
32248	.ascii	"ftl_get_new_free_page\000"
32249	.type	__func__.43358, %object
32250	.size	__func__.43358, 22
32251__func__.43358:
32252	.ascii	"ftl_ext_alloc_new_blk\000"
32253	.type	__func__.42627, %object
32254	.size	__func__.42627, 16
32255__func__.42627:
32256	.ascii	"gc_free_src_blk\000"
32257	.type	__func__.42221, %object
32258	.size	__func__.42221, 14
32259__func__.42221:
32260	.ascii	"ftl_write_buf\000"
32261	.type	__func__.42266, %object
32262	.size	__func__.42266, 18
32263__func__.42266:
32264	.ascii	"zftl_add_read_buf\000"
32265	.type	__func__.43780, %object
32266	.size	__func__.43780, 21
32267__func__.43780:
32268	.ascii	"pm_select_ram_region\000"
32269	.type	__func__.23453, %object
32270	.size	__func__.23453, 20
32271__func__.23453:
32272	.ascii	"flash_die_info_init\000"
32273	.type	__func__.42153, %object
32274	.size	__func__.42153, 17
32275__func__.42153:
32276	.ascii	"lpa_rebuild_hash\000"
32277	.type	__func__.43045, %object
32278	.size	__func__.43045, 20
32279__func__.43045:
32280	.ascii	"zftl_sblk_list_init\000"
32281	.type	__func__.43712, %object
32282	.size	__func__.43712, 13
32283__func__.43712:
32284	.ascii	"pm_free_sblk\000"
32285	.type	__func__.23791, %object
32286	.size	__func__.23791, 21
32287__func__.23791:
32288	.ascii	"flash_info_data_init\000"
32289	.type	__func__.23549, %object
32290	.size	__func__.23549, 11
32291__func__.23549:
32292	.ascii	"nandc_init\000"
32293	.type	samsung_14nm_slc_rr, %object
32294	.size	samsung_14nm_slc_rr, 26
32295samsung_14nm_slc_rr:
32296	.byte	0
32297	.byte	10
32298	.byte	-10
32299	.byte	20
32300	.byte	-20
32301	.byte	30
32302	.byte	-30
32303	.byte	40
32304	.byte	-40
32305	.byte	50
32306	.byte	-50
32307	.byte	60
32308	.byte	-60
32309	.byte	-70
32310	.byte	-80
32311	.byte	-90
32312	.byte	-100
32313	.byte	-110
32314	.byte	-120
32315	.byte	-9
32316	.byte	70
32317	.byte	80
32318	.byte	90
32319	.byte	-125
32320	.byte	-115
32321	.byte	100
32322	.type	samsung_14nm_mlc_rr, %object
32323	.size	samsung_14nm_mlc_rr, 104
32324samsung_14nm_mlc_rr:
32325	.byte	0
32326	.byte	0
32327	.byte	0
32328	.byte	0
32329	.byte	-4
32330	.byte	3
32331	.byte	-4
32332	.byte	-6
32333	.byte	6
32334	.byte	0
32335	.byte	6
32336	.byte	-10
32337	.byte	-10
32338	.byte	4
32339	.byte	-10
32340	.byte	16
32341	.byte	12
32342	.byte	-4
32343	.byte	12
32344	.byte	8
32345	.byte	-16
32346	.byte	10
32347	.byte	-16
32348	.byte	24
32349	.byte	18
32350	.byte	-14
32351	.byte	18
32352	.byte	-4
32353	.byte	-22
32354	.byte	-16
32355	.byte	-22
32356	.byte	-8
32357	.byte	24
32358	.byte	-9
32359	.byte	24
32360	.byte	8
32361	.byte	-28
32362	.byte	-4
32363	.byte	-28
32364	.byte	16
32365	.byte	30
32366	.byte	10
32367	.byte	30
32368	.byte	10
32369	.byte	-34
32370	.byte	6
32371	.byte	-34
32372	.byte	0
32373	.byte	36
32374	.byte	-8
32375	.byte	36
32376	.byte	-8
32377	.byte	-40
32378	.byte	-2
32379	.byte	-40
32380	.byte	-20
32381	.byte	-46
32382	.byte	-4
32383	.byte	-46
32384	.byte	-30
32385	.byte	3
32386	.byte	0
32387	.byte	3
32388	.byte	-3
32389	.byte	-2
32390	.byte	-4
32391	.byte	-2
32392	.byte	-6
32393	.byte	-4
32394	.byte	-4
32395	.byte	-4
32396	.byte	-10
32397	.byte	-6
32398	.byte	-8
32399	.byte	-6
32400	.byte	-14
32401	.byte	-9
32402	.byte	-8
32403	.byte	-9
32404	.byte	-18
32405	.byte	-52
32406	.byte	22
32407	.byte	-52
32408	.byte	10
32409	.byte	42
32410	.byte	4
32411	.byte	42
32412	.byte	4
32413	.byte	48
32414	.byte	-9
32415	.byte	48
32416	.byte	4
32417	.byte	-58
32418	.byte	12
32419	.byte	-58
32420	.byte	0
32421	.byte	-64
32422	.byte	-24
32423	.byte	-64
32424	.byte	-6
32425	.byte	9
32426	.byte	18
32427	.byte	9
32428	.byte	8
32429	.type	__func__.22834, %object
32430	.size	__func__.22834, 19
32431__func__.22834:
32432	.ascii	"flash_read_page_en\000"
32433	.type	__func__.22960, %object
32434	.size	__func__.22960, 26
32435__func__.22960:
32436	.ascii	"flash_start_tlc_page_prog\000"
32437	.type	__func__.22971, %object
32438	.size	__func__.22971, 29
32439__func__.22971:
32440	.ascii	"flash_start_3d_mlc_page_prog\000"
32441	.type	__func__.22989, %object
32442	.size	__func__.22989, 22
32443__func__.22989:
32444	.ascii	"flash_start_page_prog\000"
32445	.type	__func__.23013, %object
32446	.size	__func__.23013, 31
32447__func__.23013:
32448	.ascii	"flash_complete_plane_page_read\000"
32449	.type	__func__.23038, %object
32450	.size	__func__.23038, 25
32451__func__.23038:
32452	.ascii	"flash_complete_page_read\000"
32453	.type	__func__.43545, %object
32454	.size	__func__.43545, 31
32455__func__.43545:
32456	.ascii	"queue_wait_first_req_completed\000"
32457	.type	__func__.43599, %object
32458	.size	__func__.43599, 15
32459__func__.43599:
32460	.ascii	"sblk_prog_page\000"
32461	.type	__func__.43626, %object
32462	.size	__func__.43626, 15
32463__func__.43626:
32464	.ascii	"sblk_read_page\000"
32465	.type	__func__.42525, %object
32466	.size	__func__.42525, 21
32467__func__.42525:
32468	.ascii	"gc_check_data_one_wl\000"
32469	.type	__func__.22895, %object
32470	.size	__func__.22895, 19
32471__func__.22895:
32472	.ascii	"flash_prog_page_en\000"
32473	.type	__func__.43422, %object
32474	.size	__func__.43422, 14
32475__func__.43422:
32476	.ascii	"ftl_prog_page\000"
32477	.type	__func__.43079, %object
32478	.size	__func__.43079, 15
32479__func__.43079:
32480	.ascii	"ftl_info_flush\000"
32481	.type	__func__.43384, %object
32482	.size	__func__.43384, 19
32483__func__.43384:
32484	.ascii	"ftl_ext_info_flush\000"
32485	.type	__func__.43396, %object
32486	.size	__func__.43396, 18
32487__func__.43396:
32488	.ascii	"ftl_ext_info_init\000"
32489	.type	__func__.43134, %object
32490	.size	__func__.43134, 15
32491__func__.43134:
32492	.ascii	"ftl_alloc_sblk\000"
32493	.type	__func__.43752, %object
32494	.size	__func__.43752, 17
32495__func__.43752:
32496	.ascii	"pm_alloc_new_blk\000"
32497	.type	__func__.43762, %object
32498	.size	__func__.43762, 14
32499__func__.43762:
32500	.ascii	"pm_write_page\000"
32501	.type	__func__.23813, %object
32502	.size	__func__.23813, 17
32503__func__.23813:
32504	.ascii	"flash_info_flush\000"
32505	.type	__func__.23776, %object
32506	.size	__func__.23776, 20
32507__func__.23776:
32508	.ascii	"flash_info_blk_init\000"
32509	.type	__func__.23508, %object
32510	.size	__func__.23508, 16
32511__func__.23508:
32512	.ascii	"nand_flash_init\000"
32513	.type	__func__.43249, %object
32514	.size	__func__.43249, 16
32515__func__.43249:
32516	.ascii	"ftl_sysblk_dump\000"
32517	.type	__func__.43274, %object
32518	.size	__func__.43274, 23
32519__func__.43274:
32520	.ascii	"ftl_open_sblk_recovery\000"
32521	.type	__func__.43696, %object
32522	.size	__func__.43696, 16
32523__func__.43696:
32524	.ascii	"load_l2p_region\000"
32525	.type	__func__.43736, %object
32526	.size	__func__.43736, 6
32527__func__.43736:
32528	.ascii	"pm_gc\000"
32529	.type	__func__.42468, %object
32530	.size	__func__.42468, 12
32531__func__.42468:
32532	.ascii	"gc_recovery\000"
32533	.type	__func__.42557, %object
32534	.size	__func__.42557, 22
32535__func__.42557:
32536	.ascii	"gc_update_l2p_map_new\000"
32537	.type	__func__.42671, %object
32538	.size	__func__.42671, 16
32539__func__.42671:
32540	.ascii	"gc_scan_src_blk\000"
32541	.type	__func__.42732, %object
32542	.size	__func__.42732, 20
32543__func__.42732:
32544	.ascii	"gc_scan_static_data\000"
32545	.type	__func__.42795, %object
32546	.size	__func__.42795, 18
32547__func__.42795:
32548	.ascii	"gc_block_vpn_scan\000"
32549	.type	__func__.43225, %object
32550	.size	__func__.43225, 14
32551__func__.43225:
32552	.ascii	"ftl_sblk_dump\000"
32553	.type	__func__.42299, %object
32554	.size	__func__.42299, 10
32555__func__.42299:
32556	.ascii	"zftl_read\000"
32557	.type	__func__.43328, %object
32558	.size	__func__.43328, 19
32559__func__.43328:
32560	.ascii	"ftl_update_l2p_map\000"
32561	.type	__func__.42203, %object
32562	.size	__func__.42203, 17
32563__func__.42203:
32564	.ascii	"ftl_write_commit\000"
32565	.type	__func__.42600, %object
32566	.size	__func__.42600, 16
32567__func__.42600:
32568	.ascii	"gc_do_copy_back\000"
32569	.type	__func__.42850, %object
32570	.size	__func__.42850, 11
32571__func__.42850:
32572	.ascii	"zftl_do_gc\000"
32573	.type	__func__.42331, %object
32574	.size	__func__.42331, 13
32575__func__.42331:
32576	.ascii	"_ftl_discard\000"
32577	.data
32578	.align	2
32579	.set	.LANCHOR2,. + 0
32580	.type	zftl_debug, %object
32581	.size	zftl_debug, 4
32582zftl_debug:
32583	.word	17476
32584	.type	g_nand_para_info, %object
32585	.size	g_nand_para_info, 32
32586g_nand_para_info:
32587	.byte	6
32588	.byte	-104
32589	.byte	58
32590	.byte	-104
32591	.byte	-77
32592	.byte	118
32593	.byte	114
32594	.byte	1
32595	.byte	1
32596	.byte	32
32597	.short	768
32598	.byte	3
32599	.byte	2
32600	.short	758
32601	.short	5593
32602	.byte	0
32603	.byte	37
32604	.byte	60
32605	.byte	32
32606	.byte	2
32607	.byte	1
32608	.byte	4
32609	.byte	0
32610	.short	256
32611	.byte	1
32612	.byte	-94
32613	.byte	0
32614	.byte	0
32615	.type	sd15_tlc_rr, %object
32616	.size	sd15_tlc_rr, 329
32617sd15_tlc_rr:
32618	.byte	0
32619	.byte	0
32620	.byte	0
32621	.byte	0
32622	.byte	0
32623	.byte	0
32624	.byte	0
32625	.byte	-8
32626	.byte	0
32627	.byte	16
32628	.byte	8
32629	.byte	8
32630	.byte	0
32631	.byte	-8
32632	.byte	-8
32633	.byte	-8
32634	.byte	-16
32635	.byte	-8
32636	.byte	-8
32637	.byte	-8
32638	.byte	-8
32639	.byte	-24
32640	.byte	0
32641	.byte	0
32642	.byte	0
32643	.byte	-8
32644	.byte	-16
32645	.byte	-32
32646	.byte	0
32647	.byte	8
32648	.byte	-8
32649	.byte	8
32650	.byte	8
32651	.byte	0
32652	.byte	0
32653	.byte	-16
32654	.byte	-8
32655	.byte	-8
32656	.byte	-8
32657	.byte	0
32658	.byte	-16
32659	.byte	-24
32660	.byte	-16
32661	.byte	8
32662	.byte	8
32663	.byte	-8
32664	.byte	-16
32665	.byte	-16
32666	.byte	0
32667	.byte	8
32668	.byte	8
32669	.byte	8
32670	.byte	8
32671	.byte	-8
32672	.byte	-8
32673	.byte	-24
32674	.byte	0
32675	.byte	-16
32676	.byte	0
32677	.byte	-8
32678	.byte	-16
32679	.byte	-8
32680	.byte	-8
32681	.byte	0
32682	.byte	8
32683	.byte	0
32684	.byte	0
32685	.byte	-8
32686	.byte	0
32687	.byte	-24
32688	.byte	-8
32689	.byte	0
32690	.byte	0
32691	.byte	-8
32692	.byte	-24
32693	.byte	-8
32694	.byte	8
32695	.byte	-8
32696	.byte	0
32697	.byte	-8
32698	.byte	8
32699	.byte	-16
32700	.byte	-8
32701	.byte	-8
32702	.byte	-8
32703	.byte	8
32704	.byte	8
32705	.byte	0
32706	.byte	0
32707	.byte	-8
32708	.byte	-8
32709	.byte	8
32710	.byte	-8
32711	.byte	-8
32712	.byte	0
32713	.byte	0
32714	.byte	-8
32715	.byte	-16
32716	.byte	-16
32717	.byte	-8
32718	.byte	0
32719	.byte	0
32720	.byte	-8
32721	.byte	0
32722	.byte	-16
32723	.byte	8
32724	.byte	0
32725	.byte	8
32726	.byte	0
32727	.byte	-16
32728	.byte	-8
32729	.byte	-16
32730	.byte	16
32731	.byte	0
32732	.byte	16
32733	.byte	0
32734	.byte	-8
32735	.byte	8
32736	.byte	0
32737	.byte	-24
32738	.byte	0
32739	.byte	-16
32740	.byte	-8
32741	.byte	-16
32742	.byte	-16
32743	.byte	-16
32744	.byte	-16
32745	.byte	0
32746	.byte	8
32747	.byte	-8
32748	.byte	-24
32749	.byte	0
32750	.byte	8
32751	.byte	8
32752	.byte	16
32753	.byte	16
32754	.byte	0
32755	.byte	8
32756	.byte	-8
32757	.byte	8
32758	.byte	16
32759	.byte	-8
32760	.byte	24
32761	.byte	0
32762	.byte	8
32763	.byte	-4
32764	.byte	0
32765	.byte	16
32766	.byte	8
32767	.byte	24
32768	.byte	8
32769	.byte	0
32770	.byte	-4
32771	.byte	-8
32772	.byte	24
32773	.byte	16
32774	.byte	16
32775	.byte	0
32776	.byte	0
32777	.byte	0
32778	.byte	-16
32779	.byte	0
32780	.byte	0
32781	.byte	4
32782	.byte	0
32783	.byte	-4
32784	.byte	-4
32785	.byte	-4
32786	.byte	8
32787	.byte	8
32788	.byte	16
32789	.byte	0
32790	.byte	16
32791	.byte	-4
32792	.byte	16
32793	.byte	0
32794	.byte	16
32795	.byte	8
32796	.byte	0
32797	.byte	16
32798	.byte	-4
32799	.byte	16
32800	.byte	-8
32801	.byte	0
32802	.byte	0
32803	.byte	-8
32804	.byte	16
32805	.byte	-4
32806	.byte	16
32807	.byte	-16
32808	.byte	-8
32809	.byte	-8
32810	.byte	-8
32811	.byte	8
32812	.byte	-4
32813	.byte	8
32814	.byte	-24
32815	.byte	4
32816	.byte	-16
32817	.byte	0
32818	.byte	8
32819	.byte	0
32820	.byte	0
32821	.byte	-24
32822	.byte	8
32823	.byte	-16
32824	.byte	8
32825	.byte	0
32826	.byte	8
32827	.byte	-24
32828	.byte	-32
32829	.byte	16
32830	.byte	-24
32831	.byte	8
32832	.byte	-8
32833	.byte	8
32834	.byte	-24
32835	.byte	-32
32836	.byte	8
32837	.byte	0
32838	.byte	16
32839	.byte	0
32840	.byte	16
32841	.byte	0
32842	.byte	-32
32843	.byte	4
32844	.byte	0
32845	.byte	-8
32846	.byte	-16
32847	.byte	-8
32848	.byte	0
32849	.byte	-32
32850	.byte	4
32851	.byte	0
32852	.byte	8
32853	.byte	-24
32854	.byte	8
32855	.byte	0
32856	.byte	-32
32857	.byte	4
32858	.byte	0
32859	.byte	0
32860	.byte	-32
32861	.byte	-4
32862	.byte	0
32863	.byte	-24
32864	.byte	4
32865	.byte	0
32866	.byte	16
32867	.byte	-24
32868	.byte	16
32869	.byte	0
32870	.byte	-24
32871	.byte	-4
32872	.byte	0
32873	.byte	8
32874	.byte	-32
32875	.byte	8
32876	.byte	0
32877	.byte	0
32878	.byte	-4
32879	.byte	0
32880	.byte	0
32881	.byte	0
32882	.byte	0
32883	.byte	0
32884	.byte	0
32885	.byte	-4
32886	.byte	0
32887	.byte	0
32888	.byte	0
32889	.byte	-4
32890	.byte	0
32891	.byte	0
32892	.byte	-4
32893	.byte	0
32894	.byte	-8
32895	.byte	0
32896	.byte	-8
32897	.byte	0
32898	.byte	0
32899	.byte	-4
32900	.byte	0
32901	.byte	-16
32902	.byte	0
32903	.byte	-16
32904	.byte	0
32905	.byte	0
32906	.byte	-16
32907	.byte	0
32908	.byte	-16
32909	.byte	0
32910	.byte	-16
32911	.byte	0
32912	.byte	0
32913	.byte	-8
32914	.byte	0
32915	.byte	-16
32916	.byte	0
32917	.byte	-16
32918	.byte	0
32919	.byte	0
32920	.byte	-16
32921	.byte	0
32922	.byte	-24
32923	.byte	0
32924	.byte	-24
32925	.byte	0
32926	.byte	0
32927	.byte	-24
32928	.byte	0
32929	.byte	-24
32930	.byte	0
32931	.byte	-24
32932	.byte	0
32933	.byte	0
32934	.byte	-24
32935	.byte	0
32936	.byte	-16
32937	.byte	0
32938	.byte	-16
32939	.byte	0
32940	.byte	0
32941	.byte	-24
32942	.byte	0
32943	.byte	-32
32944	.byte	0
32945	.byte	-32
32946	.byte	0
32947	.type	sd15_slc_rr, %object
32948	.size	sd15_slc_rr, 25
32949sd15_slc_rr:
32950	.byte	0
32951	.byte	8
32952	.byte	-8
32953	.byte	16
32954	.byte	-16
32955	.byte	24
32956	.byte	-24
32957	.byte	32
32958	.byte	-32
32959	.byte	32
32960	.byte	-40
32961	.byte	48
32962	.byte	-48
32963	.byte	56
32964	.byte	-56
32965	.byte	64
32966	.byte	-64
32967	.byte	72
32968	.byte	-72
32969	.byte	80
32970	.byte	-80
32971	.byte	88
32972	.byte	96
32973	.byte	104
32974	.byte	112
32975	.type	hy_f26_ref_value, %object
32976	.size	hy_f26_ref_value, 28
32977hy_f26_ref_value:
32978	.byte	0
32979	.byte	0
32980	.byte	0
32981	.byte	0
32982	.byte	0
32983	.byte	6
32984	.byte	10
32985	.byte	6
32986	.byte	0
32987	.byte	-3
32988	.byte	-7
32989	.byte	-8
32990	.byte	0
32991	.byte	-6
32992	.byte	-13
32993	.byte	-15
32994	.byte	0
32995	.byte	-11
32996	.byte	-20
32997	.byte	-23
32998	.byte	0
32999	.byte	0
33000	.byte	-26
33001	.byte	-30
33002	.byte	0
33003	.byte	0
33004	.byte	-32
33005	.byte	-37
33006	.type	zftl_nand_flash_para_tbl, %object
33007	.size	zftl_nand_flash_para_tbl, 1568
33008zftl_nand_flash_para_tbl:
33009	.byte	6
33010	.byte	-104
33011	.byte	58
33012	.byte	-104
33013	.byte	-77
33014	.byte	118
33015	.byte	114
33016	.byte	1
33017	.byte	1
33018	.byte	32
33019	.short	768
33020	.byte	3
33021	.byte	2
33022	.short	758
33023	.short	5593
33024	.byte	0
33025	.byte	37
33026	.byte	60
33027	.byte	32
33028	.byte	3
33029	.byte	1
33030	.byte	4
33031	.byte	0
33032	.short	256
33033	.byte	1
33034	.byte	-94
33035	.byte	0
33036	.byte	0
33037	.byte	6
33038	.byte	-104
33039	.byte	60
33040	.byte	-104
33041	.byte	-77
33042	.byte	118
33043	.byte	114
33044	.byte	1
33045	.byte	1
33046	.byte	32
33047	.short	768
33048	.byte	3
33049	.byte	2
33050	.short	1478
33051	.short	5593
33052	.byte	0
33053	.byte	37
33054	.byte	60
33055	.byte	32
33056	.byte	3
33057	.byte	1
33058	.byte	4
33059	.byte	0
33060	.short	256
33061	.byte	1
33062	.byte	-94
33063	.byte	0
33064	.byte	0
33065	.byte	6
33066	.byte	-104
33067	.byte	58
33068	.byte	-104
33069	.byte	-93
33070	.byte	118
33071	.byte	81
33072	.byte	1
33073	.byte	1
33074	.byte	32
33075	.short	384
33076	.byte	3
33077	.byte	2
33078	.short	1446
33079	.short	1497
33080	.byte	0
33081	.byte	36
33082	.byte	60
33083	.byte	32
33084	.byte	3
33085	.byte	1
33086	.byte	4
33087	.byte	0
33088	.short	256
33089	.byte	1
33090	.byte	-94
33091	.byte	0
33092	.byte	0
33093	.byte	6
33094	.byte	-104
33095	.byte	-34
33096	.byte	-108
33097	.byte	-109
33098	.byte	118
33099	.byte	81
33100	.byte	1
33101	.byte	1
33102	.byte	32
33103	.short	256
33104	.byte	2
33105	.byte	2
33106	.short	1074
33107	.short	17881
33108	.byte	2
33109	.byte	35
33110	.byte	40
33111	.byte	32
33112	.byte	3
33113	.byte	1
33114	.byte	4
33115	.byte	0
33116	.short	256
33117	.byte	1
33118	.byte	-94
33119	.byte	0
33120	.byte	0
33121	.byte	6
33122	.byte	-104
33123	.byte	-34
33124	.byte	-124
33125	.byte	-109
33126	.byte	114
33127	.byte	87
33128	.byte	1
33129	.byte	1
33130	.byte	32
33131	.short	256
33132	.byte	2
33133	.byte	1
33134	.short	2092
33135	.short	17857
33136	.byte	2
33137	.byte	33
33138	.byte	40
33139	.byte	32
33140	.byte	3
33141	.byte	1
33142	.byte	1
33143	.byte	0
33144	.short	256
33145	.byte	1
33146	.byte	-94
33147	.byte	0
33148	.byte	0
33149	.byte	6
33150	.byte	-104
33151	.byte	58
33152	.byte	-108
33153	.byte	-109
33154	.byte	118
33155	.byte	81
33156	.byte	1
33157	.byte	1
33158	.byte	32
33159	.short	256
33160	.byte	2
33161	.byte	2
33162	.short	2106
33163	.short	17881
33164	.byte	2
33165	.byte	35
33166	.byte	40
33167	.byte	32
33168	.byte	3
33169	.byte	1
33170	.byte	4
33171	.byte	0
33172	.short	256
33173	.byte	1
33174	.byte	-94
33175	.byte	0
33176	.byte	0
33177	.byte	6
33178	.byte	-104
33179	.byte	-41
33180	.byte	-124
33181	.byte	-109
33182	.byte	114
33183	.byte	81
33184	.byte	1
33185	.byte	1
33186	.byte	32
33187	.short	256
33188	.byte	2
33189	.byte	1
33190	.short	1056
33191	.short	17857
33192	.byte	2
33193	.byte	35
33194	.byte	40
33195	.byte	32
33196	.byte	3
33197	.byte	1
33198	.byte	4
33199	.byte	0
33200	.short	256
33201	.byte	1
33202	.byte	-94
33203	.byte	0
33204	.byte	0
33205	.byte	6
33206	.byte	-104
33207	.byte	-41
33208	.byte	-124
33209	.byte	-109
33210	.byte	114
33211	.byte	80
33212	.byte	1
33213	.byte	1
33214	.byte	32
33215	.short	256
33216	.byte	2
33217	.byte	1
33218	.short	1060
33219	.short	17857
33220	.byte	2
33221	.byte	34
33222	.byte	40
33223	.byte	32
33224	.byte	3
33225	.byte	1
33226	.byte	4
33227	.byte	0
33228	.short	256
33229	.byte	1
33230	.byte	-94
33231	.byte	0
33232	.byte	0
33233	.byte	6
33234	.byte	-104
33235	.byte	-34
33236	.byte	-108
33237	.byte	-109
33238	.byte	118
33239	.byte	80
33240	.byte	1
33241	.byte	1
33242	.byte	32
33243	.short	256
33244	.byte	2
33245	.byte	2
33246	.short	1066
33247	.short	17881
33248	.byte	2
33249	.byte	34
33250	.byte	40
33251	.byte	32
33252	.byte	3
33253	.byte	1
33254	.byte	1
33255	.byte	0
33256	.short	256
33257	.byte	1
33258	.byte	-94
33259	.byte	0
33260	.byte	0
33261	.byte	6
33262	.byte	-104
33263	.byte	-41
33264	.byte	-124
33265	.byte	-109
33266	.byte	114
33267	.byte	87
33268	.byte	1
33269	.byte	1
33270	.byte	32
33271	.short	256
33272	.byte	2
33273	.byte	1
33274	.short	1060
33275	.short	17857
33276	.byte	2
33277	.byte	33
33278	.byte	40
33279	.byte	32
33280	.byte	3
33281	.byte	1
33282	.byte	1
33283	.byte	0
33284	.short	256
33285	.byte	1
33286	.byte	-94
33287	.byte	0
33288	.byte	0
33289	.byte	6
33290	.byte	-104
33291	.byte	-34
33292	.byte	-108
33293	.byte	-109
33294	.byte	118
33295	.byte	87
33296	.byte	1
33297	.byte	1
33298	.byte	32
33299	.short	256
33300	.byte	2
33301	.byte	2
33302	.short	1058
33303	.short	17881
33304	.byte	2
33305	.byte	33
33306	.byte	40
33307	.byte	32
33308	.byte	3
33309	.byte	1
33310	.byte	1
33311	.byte	0
33312	.short	256
33313	.byte	1
33314	.byte	-94
33315	.byte	0
33316	.byte	0
33317	.byte	6
33318	.byte	-104
33319	.byte	-34
33320	.byte	-108
33321	.byte	-109
33322	.byte	118
33323	.byte	-47
33324	.byte	1
33325	.byte	1
33326	.byte	32
33327	.short	256
33328	.byte	2
33329	.byte	2
33330	.short	1074
33331	.short	17881
33332	.byte	2
33333	.byte	35
33334	.byte	40
33335	.byte	32
33336	.byte	3
33337	.byte	1
33338	.byte	4
33339	.byte	0
33340	.short	256
33341	.byte	1
33342	.byte	-94
33343	.byte	0
33344	.byte	0
33345	.byte	6
33346	.byte	69
33347	.byte	58
33348	.byte	-108
33349	.byte	-109
33350	.byte	118
33351	.byte	81
33352	.byte	8
33353	.byte	1
33354	.byte	32
33355	.short	256
33356	.byte	2
33357	.byte	2
33358	.short	2106
33359	.short	17881
33360	.byte	2
33361	.byte	68
33362	.byte	40
33363	.byte	32
33364	.byte	3
33365	.byte	1
33366	.byte	4
33367	.byte	0
33368	.short	256
33369	.byte	1
33370	.byte	-94
33371	.byte	0
33372	.byte	0
33373	.byte	6
33374	.byte	69
33375	.byte	-34
33376	.byte	-108
33377	.byte	-109
33378	.byte	118
33379	.byte	81
33380	.byte	8
33381	.byte	1
33382	.byte	32
33383	.short	256
33384	.byte	2
33385	.byte	2
33386	.short	1074
33387	.short	17881
33388	.byte	2
33389	.byte	68
33390	.byte	40
33391	.byte	32
33392	.byte	3
33393	.byte	1
33394	.byte	4
33395	.byte	0
33396	.short	256
33397	.byte	1
33398	.byte	-94
33399	.byte	0
33400	.byte	0
33401	.byte	6
33402	.byte	69
33403	.byte	-34
33404	.byte	-108
33405	.byte	-109
33406	.byte	118
33407	.byte	87
33408	.byte	8
33409	.byte	1
33410	.byte	32
33411	.short	256
33412	.byte	2
33413	.byte	2
33414	.short	1058
33415	.short	17881
33416	.byte	2
33417	.byte	66
33418	.byte	40
33419	.byte	32
33420	.byte	3
33421	.byte	1
33422	.byte	4
33423	.byte	0
33424	.short	256
33425	.byte	1
33426	.byte	-94
33427	.byte	0
33428	.byte	0
33429	.byte	6
33430	.byte	69
33431	.byte	-34
33432	.byte	-108
33433	.byte	-109
33434	.byte	118
33435	.byte	80
33436	.byte	8
33437	.byte	1
33438	.byte	32
33439	.short	256
33440	.byte	2
33441	.byte	2
33442	.short	1066
33443	.short	17881
33444	.byte	2
33445	.byte	67
33446	.byte	40
33447	.byte	32
33448	.byte	3
33449	.byte	1
33450	.byte	1
33451	.byte	0
33452	.short	256
33453	.byte	1
33454	.byte	-94
33455	.byte	0
33456	.byte	0
33457	.byte	6
33458	.byte	69
33459	.byte	-41
33460	.byte	-124
33461	.byte	-109
33462	.byte	114
33463	.byte	87
33464	.byte	8
33465	.byte	1
33466	.byte	32
33467	.short	256
33468	.byte	2
33469	.byte	1
33470	.short	1060
33471	.short	17857
33472	.byte	2
33473	.byte	66
33474	.byte	40
33475	.byte	32
33476	.byte	2
33477	.byte	1
33478	.byte	1
33479	.byte	0
33480	.short	256
33481	.byte	1
33482	.byte	-94
33483	.byte	0
33484	.byte	0
33485	.byte	5
33486	.byte	44
33487	.byte	100
33488	.byte	68
33489	.byte	50
33490	.byte	-91
33491	.byte	0
33492	.byte	4
33493	.byte	1
33494	.byte	32
33495	.short	512
33496	.byte	2
33497	.byte	1
33498	.short	1048
33499	.short	9671
33500	.byte	5
33501	.byte	19
33502	.byte	70
33503	.byte	32
33504	.byte	1
33505	.byte	0
33506	.byte	4
33507	.byte	0
33508	.short	512
33509	.byte	1
33510	.byte	-38
33511	.byte	-33
33512	.byte	0
33513	.byte	5
33514	.byte	44
33515	.byte	100
33516	.byte	100
33517	.byte	86
33518	.byte	-91
33519	.byte	0
33520	.byte	4
33521	.byte	1
33522	.byte	24
33523	.short	512
33524	.byte	2
33525	.byte	2
33526	.short	700
33527	.short	479
33528	.byte	4
33529	.byte	18
33530	.byte	60
33531	.byte	32
33532	.byte	1
33533	.byte	0
33534	.byte	1
33535	.byte	0
33536	.short	512
33537	.byte	3
33538	.byte	0
33539	.byte	0
33540	.byte	0
33541	.byte	5
33542	.byte	44
33543	.byte	68
33544	.byte	68
33545	.byte	75
33546	.byte	-87
33547	.byte	0
33548	.byte	4
33549	.byte	1
33550	.byte	16
33551	.short	256
33552	.byte	2
33553	.byte	2
33554	.short	1064
33555	.short	479
33556	.byte	3
33557	.byte	17
33558	.byte	40
33559	.byte	32
33560	.byte	1
33561	.byte	0
33562	.byte	1
33563	.byte	0
33564	.short	256
33565	.byte	3
33566	.byte	0
33567	.byte	0
33568	.byte	0
33569	.byte	5
33570	.byte	44
33571	.byte	-124
33572	.byte	100
33573	.byte	84
33574	.byte	-87
33575	.byte	0
33576	.byte	4
33577	.byte	1
33578	.byte	32
33579	.short	512
33580	.byte	2
33581	.byte	2
33582	.short	1024
33583	.short	479
33584	.byte	4
33585	.byte	18
33586	.byte	60
33587	.byte	32
33588	.byte	1
33589	.byte	0
33590	.byte	1
33591	.byte	0
33592	.short	512
33593	.byte	0
33594	.byte	0
33595	.byte	0
33596	.byte	1
33597	.byte	5
33598	.byte	44
33599	.byte	100
33600	.byte	100
33601	.byte	84
33602	.byte	-92
33603	.byte	0
33604	.byte	4
33605	.byte	1
33606	.byte	32
33607	.short	512
33608	.byte	2
33609	.byte	1
33610	.short	1024
33611	.short	455
33612	.byte	4
33613	.byte	18
33614	.byte	60
33615	.byte	32
33616	.byte	1
33617	.byte	0
33618	.byte	1
33619	.byte	0
33620	.short	512
33621	.byte	0
33622	.byte	0
33623	.byte	0
33624	.byte	0
33625	.byte	5
33626	.byte	44
33627	.byte	100
33628	.byte	68
33629	.byte	75
33630	.byte	-87
33631	.byte	0
33632	.byte	4
33633	.byte	1
33634	.byte	16
33635	.short	256
33636	.byte	2
33637	.byte	4
33638	.short	1024
33639	.short	449
33640	.byte	3
33641	.byte	17
33642	.byte	40
33643	.byte	32
33644	.byte	1
33645	.byte	0
33646	.byte	1
33647	.byte	0
33648	.short	256
33649	.byte	3
33650	.byte	0
33651	.byte	0
33652	.byte	0
33653	.byte	5
33654	.byte	44
33655	.byte	-124
33656	.byte	100
33657	.byte	60
33658	.byte	-91
33659	.byte	0
33660	.byte	4
33661	.byte	1
33662	.byte	32
33663	.short	512
33664	.byte	2
33665	.byte	2
33666	.short	1024
33667	.short	479
33668	.byte	3
33669	.byte	17
33670	.byte	40
33671	.byte	32
33672	.byte	1
33673	.byte	0
33674	.byte	1
33675	.byte	0
33676	.short	512
33677	.byte	3
33678	.byte	0
33679	.byte	0
33680	.byte	0
33681	.byte	5
33682	.byte	44
33683	.byte	-124
33684	.byte	68
33685	.byte	52
33686	.byte	-92
33687	.byte	0
33688	.byte	4
33689	.byte	1
33690	.byte	32
33691	.short	512
33692	.byte	2
33693	.byte	1
33694	.short	2184
33695	.short	9671
33696	.byte	5
33697	.byte	19
33698	.byte	70
33699	.byte	32
33700	.byte	1
33701	.byte	0
33702	.byte	4
33703	.byte	0
33704	.short	512
33705	.byte	1
33706	.byte	-38
33707	.byte	-33
33708	.byte	0
33709	.byte	5
33710	.byte	44
33711	.byte	100
33712	.byte	100
33713	.byte	60
33714	.byte	-91
33715	.byte	0
33716	.byte	4
33717	.byte	1
33718	.byte	32
33719	.short	512
33720	.byte	2
33721	.byte	1
33722	.short	1044
33723	.short	471
33724	.byte	3
33725	.byte	17
33726	.byte	40
33727	.byte	32
33728	.byte	1
33729	.byte	0
33730	.byte	1
33731	.byte	0
33732	.short	512
33733	.byte	3
33734	.byte	0
33735	.byte	0
33736	.byte	0
33737	.byte	5
33738	.byte	44
33739	.byte	-124
33740	.byte	68
33741	.byte	50
33742	.byte	-86
33743	.byte	0
33744	.byte	4
33745	.byte	1
33746	.byte	32
33747	.short	512
33748	.byte	2
33749	.byte	1
33750	.short	2184
33751	.short	9671
33752	.byte	5
33753	.byte	19
33754	.byte	70
33755	.byte	32
33756	.byte	1
33757	.byte	0
33758	.byte	4
33759	.byte	0
33760	.short	512
33761	.byte	1
33762	.byte	-38
33763	.byte	-33
33764	.byte	0
33765	.byte	5
33766	.byte	44
33767	.byte	-124
33768	.byte	-60
33769	.byte	52
33770	.byte	-86
33771	.byte	0
33772	.byte	4
33773	.byte	1
33774	.byte	32
33775	.short	512
33776	.byte	2
33777	.byte	1
33778	.short	2184
33779	.short	9671
33780	.byte	5
33781	.byte	19
33782	.byte	70
33783	.byte	32
33784	.byte	1
33785	.byte	0
33786	.byte	4
33787	.byte	0
33788	.short	512
33789	.byte	1
33790	.byte	-38
33791	.byte	-33
33792	.byte	0
33793	.byte	5
33794	.byte	44
33795	.byte	-124
33796	.byte	68
33797	.byte	52
33798	.byte	-86
33799	.byte	0
33800	.byte	4
33801	.byte	1
33802	.byte	32
33803	.short	512
33804	.byte	2
33805	.byte	1
33806	.short	2184
33807	.short	9671
33808	.byte	5
33809	.byte	19
33810	.byte	70
33811	.byte	32
33812	.byte	1
33813	.byte	0
33814	.byte	4
33815	.byte	0
33816	.short	512
33817	.byte	1
33818	.byte	-38
33819	.byte	-33
33820	.byte	0
33821	.byte	6
33822	.byte	-101
33823	.byte	73
33824	.byte	1
33825	.byte	0
33826	.byte	-101
33827	.byte	73
33828	.byte	9
33829	.byte	1
33830	.byte	32
33831	.short	256
33832	.byte	2
33833	.byte	1
33834	.short	2144
33835	.short	-23097
33836	.byte	8
33837	.byte	21
33838	.byte	70
33839	.byte	32
33840	.byte	1
33841	.byte	0
33842	.byte	8
33843	.byte	0
33844	.short	256
33845	.byte	3
33846	.byte	0
33847	.byte	0
33848	.byte	0
33849	.byte	5
33850	.byte	44
33851	.byte	-124
33852	.byte	100
33853	.byte	60
33854	.byte	-87
33855	.byte	4
33856	.byte	4
33857	.byte	1
33858	.byte	32
33859	.short	512
33860	.byte	2
33861	.byte	2
33862	.short	1024
33863	.short	479
33864	.byte	3
33865	.byte	17
33866	.byte	40
33867	.byte	32
33868	.byte	1
33869	.byte	0
33870	.byte	1
33871	.byte	0
33872	.short	512
33873	.byte	0
33874	.byte	0
33875	.byte	0
33876	.byte	1
33877	.byte	5
33878	.byte	44
33879	.byte	-124
33880	.byte	88
33881	.byte	50
33882	.byte	-95
33883	.byte	0
33884	.byte	4
33885	.byte	1
33886	.byte	32
33887	.short	768
33888	.byte	3
33889	.byte	1
33890	.short	1440
33891	.short	3527
33892	.byte	0
33893	.byte	19
33894	.byte	70
33895	.byte	32
33896	.byte	1
33897	.byte	0
33898	.byte	1
33899	.byte	0
33900	.short	1024
33901	.byte	3
33902	.byte	0
33903	.byte	0
33904	.byte	2
33905	.byte	6
33906	.byte	44
33907	.byte	-92
33908	.byte	8
33909	.byte	50
33910	.byte	-95
33911	.byte	0
33912	.byte	4
33913	.byte	1
33914	.byte	32
33915	.short	2304
33916	.byte	3
33917	.byte	1
33918	.short	1008
33919	.short	3521
33920	.byte	0
33921	.byte	19
33922	.byte	70
33923	.byte	32
33924	.byte	1
33925	.byte	0
33926	.byte	1
33927	.byte	0
33928	.short	4096
33929	.byte	3
33930	.byte	0
33931	.byte	0
33932	.byte	4
33933	.byte	6
33934	.byte	44
33935	.byte	-92
33936	.byte	100
33937	.byte	50
33938	.byte	-86
33939	.byte	4
33940	.byte	4
33941	.byte	1
33942	.byte	32
33943	.short	1024
33944	.byte	2
33945	.byte	1
33946	.short	2192
33947	.short	9671
33948	.byte	10
33949	.byte	19
33950	.byte	70
33951	.byte	32
33952	.byte	1
33953	.byte	0
33954	.byte	1
33955	.byte	0
33956	.short	1024
33957	.byte	1
33958	.byte	-38
33959	.byte	-33
33960	.byte	0
33961	.byte	6
33962	.byte	-101
33963	.byte	-61
33964	.byte	72
33965	.byte	37
33966	.byte	16
33967	.byte	0
33968	.byte	9
33969	.byte	1
33970	.byte	32
33971	.short	1152
33972	.byte	3
33973	.byte	2
33974	.short	1006
33975	.short	-27169
33976	.byte	13
33977	.byte	81
33978	.byte	70
33979	.byte	32
33980	.byte	1
33981	.byte	0
33982	.byte	4
33983	.byte	0
33984	.short	2048
33985	.byte	1
33986	.byte	-38
33987	.byte	-33
33988	.byte	24
33989	.byte	6
33990	.byte	-83
33991	.byte	-34
33992	.byte	20
33993	.byte	-85
33994	.byte	66
33995	.byte	74
33996	.byte	2
33997	.byte	1
33998	.byte	32
33999	.short	256
34000	.byte	2
34001	.byte	2
34002	.short	1056
34003	.short	455
34004	.byte	2
34005	.byte	6
34006	.byte	40
34007	.byte	32
34008	.byte	3
34009	.byte	1
34010	.byte	3
34011	.byte	0
34012	.short	256
34013	.byte	2
34014	.byte	-65
34015	.byte	-66
34016	.byte	0
34017	.byte	6
34018	.byte	-83
34019	.byte	-34
34020	.byte	-108
34021	.byte	-21
34022	.byte	116
34023	.byte	68
34024	.byte	2
34025	.byte	1
34026	.byte	32
34027	.short	256
34028	.byte	2
34029	.byte	2
34030	.short	1066
34031	.short	473
34032	.byte	1
34033	.byte	7
34034	.byte	40
34035	.byte	32
34036	.byte	4
34037	.byte	1
34038	.byte	3
34039	.byte	0
34040	.short	256
34041	.byte	0
34042	.byte	0
34043	.byte	0
34044	.byte	0
34045	.byte	6
34046	.byte	-83
34047	.byte	-34
34048	.byte	20
34049	.byte	-89
34050	.byte	66
34051	.byte	74
34052	.byte	2
34053	.byte	1
34054	.byte	32
34055	.short	256
34056	.byte	2
34057	.byte	2
34058	.short	1060
34059	.short	473
34060	.byte	2
34061	.byte	5
34062	.byte	40
34063	.byte	32
34064	.byte	4
34065	.byte	1
34066	.byte	3
34067	.byte	0
34068	.short	256
34069	.byte	2
34070	.byte	-65
34071	.byte	-66
34072	.byte	0
34073	.byte	6
34074	.byte	-83
34075	.byte	-41
34076	.byte	-108
34077	.byte	-111
34078	.byte	96
34079	.byte	68
34080	.byte	2
34081	.byte	1
34082	.byte	16
34083	.short	256
34084	.byte	2
34085	.byte	2
34086	.short	1046
34087	.short	473
34088	.byte	1
34089	.byte	3
34090	.byte	40
34091	.byte	32
34092	.byte	4
34093	.byte	1
34094	.byte	3
34095	.byte	0
34096	.short	256
34097	.byte	0
34098	.byte	0
34099	.byte	0
34100	.byte	0
34101	.byte	6
34102	.byte	-83
34103	.byte	58
34104	.byte	20
34105	.byte	-85
34106	.byte	66
34107	.byte	74
34108	.byte	2
34109	.byte	1
34110	.byte	32
34111	.short	256
34112	.byte	2
34113	.byte	2
34114	.short	2092
34115	.short	473
34116	.byte	2
34117	.byte	5
34118	.byte	40
34119	.byte	32
34120	.byte	3
34121	.byte	1
34122	.byte	3
34123	.byte	0
34124	.short	256
34125	.byte	0
34126	.byte	0
34127	.byte	0
34128	.byte	0
34129	.byte	6
34130	.byte	-83
34131	.byte	-41
34132	.byte	20
34133	.byte	-98
34134	.byte	52
34135	.byte	74
34136	.byte	2
34137	.byte	1
34138	.byte	16
34139	.short	256
34140	.byte	2
34141	.byte	2
34142	.short	1056
34143	.short	473
34144	.byte	2
34145	.byte	5
34146	.byte	40
34147	.byte	32
34148	.byte	4
34149	.byte	1
34150	.byte	3
34151	.byte	0
34152	.short	256
34153	.byte	0
34154	.byte	0
34155	.byte	0
34156	.byte	0
34157	.byte	6
34158	.byte	-83
34159	.byte	58
34160	.byte	20
34161	.byte	3
34162	.byte	8
34163	.byte	80
34164	.byte	2
34165	.byte	1
34166	.byte	32
34167	.short	388
34168	.byte	2
34169	.byte	2
34170	.short	1362
34171	.short	473
34172	.byte	9
34173	.byte	8
34174	.byte	40
34175	.byte	32
34176	.byte	3
34177	.byte	1
34178	.byte	3
34179	.byte	0
34180	.short	512
34181	.byte	0
34182	.byte	-65
34183	.byte	-66
34184	.byte	1
34185	.byte	5
34186	.byte	-119
34187	.byte	100
34188	.byte	100
34189	.byte	60
34190	.byte	-95
34191	.byte	0
34192	.byte	7
34193	.byte	1
34194	.byte	32
34195	.short	512
34196	.byte	2
34197	.byte	1
34198	.short	1024
34199	.short	455
34200	.byte	4
34201	.byte	17
34202	.byte	40
34203	.byte	32
34204	.byte	1
34205	.byte	0
34206	.byte	1
34207	.byte	0
34208	.short	512
34209	.byte	3
34210	.byte	0
34211	.byte	0
34212	.byte	0
34213	.byte	5
34214	.byte	-119
34215	.byte	-124
34216	.byte	100
34217	.byte	60
34218	.byte	-91
34219	.byte	0
34220	.byte	7
34221	.byte	1
34222	.byte	32
34223	.short	512
34224	.byte	2
34225	.byte	2
34226	.short	1024
34227	.short	455
34228	.byte	4
34229	.byte	17
34230	.byte	40
34231	.byte	32
34232	.byte	1
34233	.byte	0
34234	.byte	1
34235	.byte	0
34236	.short	512
34237	.byte	3
34238	.byte	0
34239	.byte	0
34240	.byte	0
34241	.byte	6
34242	.byte	-119
34243	.byte	100
34244	.byte	68
34245	.byte	75
34246	.byte	-87
34247	.byte	0
34248	.byte	7
34249	.byte	1
34250	.byte	16
34251	.short	256
34252	.byte	2
34253	.byte	4
34254	.short	1024
34255	.short	449
34256	.byte	3
34257	.byte	17
34258	.byte	40
34259	.byte	32
34260	.byte	1
34261	.byte	0
34262	.byte	1
34263	.byte	0
34264	.short	256
34265	.byte	0
34266	.byte	0
34267	.byte	0
34268	.byte	0
34269	.byte	6
34270	.byte	-119
34271	.byte	-120
34272	.byte	36
34273	.byte	75
34274	.byte	-87
34275	.byte	-124
34276	.byte	7
34277	.byte	1
34278	.byte	16
34279	.short	256
34280	.byte	2
34281	.byte	4
34282	.short	1024
34283	.short	449
34284	.byte	3
34285	.byte	17
34286	.byte	40
34287	.byte	32
34288	.byte	1
34289	.byte	0
34290	.byte	1
34291	.byte	0
34292	.short	256
34293	.byte	0
34294	.byte	0
34295	.byte	0
34296	.byte	0
34297	.byte	6
34298	.byte	-119
34299	.byte	-120
34300	.byte	4
34301	.byte	75
34302	.byte	-87
34303	.byte	0
34304	.byte	7
34305	.byte	1
34306	.byte	16
34307	.short	256
34308	.byte	2
34309	.byte	4
34310	.short	1024
34311	.short	449
34312	.byte	1
34313	.byte	0
34314	.byte	24
34315	.byte	32
34316	.byte	1
34317	.byte	0
34318	.byte	1
34319	.byte	0
34320	.short	256
34321	.byte	0
34322	.byte	0
34323	.byte	0
34324	.byte	0
34325	.byte	6
34326	.byte	-119
34327	.byte	-92
34328	.byte	8
34329	.byte	50
34330	.byte	-95
34331	.byte	0
34332	.byte	7
34333	.byte	1
34334	.byte	32
34335	.short	2304
34336	.byte	3
34337	.byte	1
34338	.short	1008
34339	.short	3521
34340	.byte	0
34341	.byte	19
34342	.byte	70
34343	.byte	32
34344	.byte	1
34345	.byte	0
34346	.byte	1
34347	.byte	0
34348	.short	4096
34349	.byte	3
34350	.byte	0
34351	.byte	0
34352	.byte	4
34353	.byte	6
34354	.byte	-20
34355	.byte	-34
34356	.byte	-108
34357	.byte	-61
34358	.byte	-92
34359	.byte	-54
34360	.byte	0
34361	.byte	1
34362	.byte	32
34363	.short	792
34364	.byte	2
34365	.byte	1
34366	.short	688
34367	.short	1217
34368	.byte	11
34369	.byte	50
34370	.byte	40
34371	.byte	32
34372	.byte	3
34373	.byte	1
34374	.byte	1
34375	.byte	0
34376	.short	1024
34377	.byte	1
34378	.byte	-38
34379	.byte	-33
34380	.byte	0
34381	.type	nand_opt_para, %object
34382	.size	nand_opt_para, 128
34383nand_opt_para:
34384	.byte	1
34385	.byte	0
34386	.byte	49
34387	.byte	63
34388	.byte	0
34389	.byte	49
34390	.byte	-128
34391	.byte	21
34392	.byte	0
34393	.byte	50
34394	.byte	17
34395	.byte	-128
34396	.byte	112
34397	.byte	120
34398	.byte	120
34399	.byte	3
34400	.byte	1
34401	.byte	0
34402	.space	14
34403	.byte	2
34404	.byte	0
34405	.byte	49
34406	.byte	63
34407	.byte	0
34408	.byte	49
34409	.byte	-128
34410	.byte	21
34411	.byte	0
34412	.byte	0
34413	.byte	17
34414	.byte	-127
34415	.byte	112
34416	.byte	-15
34417	.byte	-14
34418	.byte	0
34419	.byte	0
34420	.byte	0
34421	.space	14
34422	.byte	3
34423	.byte	0
34424	.byte	49
34425	.byte	63
34426	.byte	0
34427	.byte	49
34428	.byte	-128
34429	.byte	21
34430	.byte	96
34431	.byte	96
34432	.byte	17
34433	.byte	-127
34434	.byte	112
34435	.byte	-15
34436	.byte	-14
34437	.byte	0
34438	.byte	0
34439	.byte	0
34440	.space	14
34441	.byte	4
34442	.byte	0
34443	.byte	49
34444	.byte	63
34445	.byte	0
34446	.byte	49
34447	.byte	-128
34448	.byte	21
34449	.byte	96
34450	.byte	96
34451	.byte	17
34452	.byte	-127
34453	.byte	112
34454	.byte	112
34455	.byte	112
34456	.byte	0
34457	.byte	0
34458	.byte	0
34459	.space	14
34460	.type	tlc_b05a_prog_tbl, %object
34461	.size	tlc_b05a_prog_tbl, 1536
34462tlc_b05a_prog_tbl:
34463	.short	0
34464	.short	0
34465	.short	0
34466	.short	0
34467	.short	0
34468	.short	0
34469	.short	0
34470	.short	0
34471	.short	9
34472	.short	0
34473	.short	11
34474	.short	0
34475	.short	13
34476	.short	0
34477	.short	15
34478	.short	0
34479	.short	17
34480	.short	0
34481	.short	19
34482	.short	0
34483	.short	21
34484	.short	0
34485	.short	23
34486	.short	0
34487	.short	25
34488	.short	0
34489	.short	27
34490	.short	0
34491	.short	29
34492	.short	0
34493	.short	31
34494	.short	0
34495	.short	33
34496	.short	0
34497	.short	35
34498	.short	0
34499	.short	37
34500	.short	0
34501	.short	39
34502	.short	0
34503	.short	41
34504	.short	0
34505	.short	43
34506	.short	0
34507	.short	45
34508	.short	0
34509	.short	47
34510	.short	0
34511	.short	49
34512	.short	0
34513	.short	51
34514	.short	0
34515	.short	53
34516	.short	0
34517	.short	55
34518	.short	0
34519	.short	25
34520	.short	58
34521	.short	0
34522	.short	27
34523	.short	61
34524	.short	0
34525	.short	29
34526	.short	64
34527	.short	0
34528	.short	31
34529	.short	67
34530	.short	0
34531	.short	33
34532	.short	70
34533	.short	0
34534	.short	35
34535	.short	73
34536	.short	0
34537	.short	37
34538	.short	76
34539	.short	0
34540	.short	39
34541	.short	79
34542	.short	0
34543	.short	41
34544	.short	82
34545	.short	0
34546	.short	43
34547	.short	85
34548	.short	0
34549	.short	45
34550	.short	88
34551	.short	0
34552	.short	47
34553	.short	91
34554	.short	0
34555	.short	49
34556	.short	94
34557	.short	0
34558	.short	51
34559	.short	97
34560	.short	0
34561	.short	53
34562	.short	100
34563	.short	0
34564	.short	55
34565	.short	103
34566	.short	0
34567	.short	58
34568	.short	106
34569	.short	0
34570	.short	61
34571	.short	109
34572	.short	0
34573	.short	64
34574	.short	112
34575	.short	0
34576	.short	67
34577	.short	115
34578	.short	0
34579	.short	70
34580	.short	118
34581	.short	0
34582	.short	73
34583	.short	121
34584	.short	0
34585	.short	76
34586	.short	124
34587	.short	0
34588	.short	79
34589	.short	127
34590	.short	0
34591	.short	82
34592	.short	130
34593	.short	0
34594	.short	85
34595	.short	133
34596	.short	0
34597	.short	88
34598	.short	136
34599	.short	0
34600	.short	91
34601	.short	139
34602	.short	0
34603	.short	94
34604	.short	142
34605	.short	0
34606	.short	97
34607	.short	145
34608	.short	0
34609	.short	100
34610	.short	148
34611	.short	0
34612	.short	103
34613	.short	151
34614	.short	0
34615	.short	106
34616	.short	154
34617	.short	0
34618	.short	109
34619	.short	157
34620	.short	0
34621	.short	112
34622	.short	160
34623	.short	0
34624	.short	115
34625	.short	163
34626	.short	0
34627	.short	118
34628	.short	166
34629	.short	0
34630	.short	121
34631	.short	169
34632	.short	0
34633	.short	124
34634	.short	172
34635	.short	0
34636	.short	127
34637	.short	175
34638	.short	0
34639	.short	130
34640	.short	178
34641	.short	0
34642	.short	133
34643	.short	181
34644	.short	0
34645	.short	136
34646	.short	184
34647	.short	0
34648	.short	139
34649	.short	187
34650	.short	0
34651	.short	142
34652	.short	190
34653	.short	0
34654	.short	145
34655	.short	193
34656	.short	0
34657	.short	148
34658	.short	196
34659	.short	0
34660	.short	151
34661	.short	199
34662	.short	0
34663	.short	154
34664	.short	202
34665	.short	0
34666	.short	157
34667	.short	205
34668	.short	0
34669	.short	160
34670	.short	208
34671	.short	0
34672	.short	163
34673	.short	211
34674	.short	0
34675	.short	166
34676	.short	214
34677	.short	0
34678	.short	169
34679	.short	217
34680	.short	0
34681	.short	172
34682	.short	220
34683	.short	0
34684	.short	175
34685	.short	223
34686	.short	0
34687	.short	178
34688	.short	226
34689	.short	0
34690	.short	181
34691	.short	229
34692	.short	0
34693	.short	184
34694	.short	232
34695	.short	0
34696	.short	187
34697	.short	235
34698	.short	0
34699	.short	190
34700	.short	238
34701	.short	0
34702	.short	193
34703	.short	241
34704	.short	0
34705	.short	196
34706	.short	244
34707	.short	0
34708	.short	199
34709	.short	247
34710	.short	0
34711	.short	202
34712	.short	250
34713	.short	0
34714	.short	205
34715	.short	253
34716	.short	0
34717	.short	208
34718	.short	256
34719	.short	0
34720	.short	211
34721	.short	259
34722	.short	0
34723	.short	214
34724	.short	262
34725	.short	0
34726	.short	217
34727	.short	265
34728	.short	0
34729	.short	220
34730	.short	268
34731	.short	0
34732	.short	223
34733	.short	271
34734	.short	0
34735	.short	226
34736	.short	274
34737	.short	0
34738	.short	229
34739	.short	277
34740	.short	0
34741	.short	232
34742	.short	280
34743	.short	0
34744	.short	235
34745	.short	283
34746	.short	0
34747	.short	238
34748	.short	286
34749	.short	0
34750	.short	241
34751	.short	289
34752	.short	0
34753	.short	244
34754	.short	292
34755	.short	0
34756	.short	247
34757	.short	295
34758	.short	0
34759	.short	250
34760	.short	298
34761	.short	0
34762	.short	253
34763	.short	301
34764	.short	0
34765	.short	256
34766	.short	304
34767	.short	0
34768	.short	259
34769	.short	307
34770	.short	0
34771	.short	262
34772	.short	310
34773	.short	0
34774	.short	265
34775	.short	313
34776	.short	0
34777	.short	268
34778	.short	316
34779	.short	0
34780	.short	271
34781	.short	319
34782	.short	0
34783	.short	274
34784	.short	322
34785	.short	0
34786	.short	277
34787	.short	325
34788	.short	0
34789	.short	280
34790	.short	328
34791	.short	0
34792	.short	283
34793	.short	331
34794	.short	0
34795	.short	286
34796	.short	334
34797	.short	0
34798	.short	289
34799	.short	337
34800	.short	0
34801	.short	292
34802	.short	340
34803	.short	0
34804	.short	295
34805	.short	343
34806	.short	0
34807	.short	298
34808	.short	346
34809	.short	0
34810	.short	301
34811	.short	349
34812	.short	0
34813	.short	304
34814	.short	352
34815	.short	0
34816	.short	307
34817	.short	355
34818	.short	0
34819	.short	310
34820	.short	358
34821	.short	0
34822	.short	313
34823	.short	361
34824	.short	0
34825	.short	316
34826	.short	364
34827	.short	0
34828	.short	319
34829	.short	367
34830	.short	0
34831	.short	322
34832	.short	370
34833	.short	0
34834	.short	325
34835	.short	373
34836	.short	0
34837	.short	328
34838	.short	376
34839	.short	0
34840	.short	331
34841	.short	379
34842	.short	0
34843	.short	334
34844	.short	382
34845	.short	0
34846	.short	337
34847	.short	385
34848	.short	0
34849	.short	340
34850	.short	388
34851	.short	0
34852	.short	343
34853	.short	391
34854	.short	0
34855	.short	346
34856	.short	394
34857	.short	0
34858	.short	349
34859	.short	397
34860	.short	0
34861	.short	352
34862	.short	400
34863	.short	0
34864	.short	355
34865	.short	403
34866	.short	0
34867	.short	358
34868	.short	406
34869	.short	0
34870	.short	361
34871	.short	409
34872	.short	0
34873	.short	364
34874	.short	412
34875	.short	0
34876	.short	367
34877	.short	415
34878	.short	0
34879	.short	370
34880	.short	418
34881	.short	0
34882	.short	373
34883	.short	421
34884	.short	0
34885	.short	376
34886	.short	424
34887	.short	0
34888	.short	379
34889	.short	427
34890	.short	0
34891	.short	382
34892	.short	430
34893	.short	0
34894	.short	385
34895	.short	433
34896	.short	0
34897	.short	388
34898	.short	436
34899	.short	0
34900	.short	391
34901	.short	439
34902	.short	0
34903	.short	394
34904	.short	442
34905	.short	0
34906	.short	397
34907	.short	445
34908	.short	0
34909	.short	400
34910	.short	448
34911	.short	0
34912	.short	403
34913	.short	451
34914	.short	0
34915	.short	406
34916	.short	454
34917	.short	0
34918	.short	409
34919	.short	457
34920	.short	0
34921	.short	412
34922	.short	460
34923	.short	0
34924	.short	415
34925	.short	463
34926	.short	0
34927	.short	418
34928	.short	466
34929	.short	0
34930	.short	421
34931	.short	469
34932	.short	0
34933	.short	424
34934	.short	472
34935	.short	0
34936	.short	427
34937	.short	475
34938	.short	0
34939	.short	430
34940	.short	478
34941	.short	0
34942	.short	433
34943	.short	481
34944	.short	0
34945	.short	436
34946	.short	484
34947	.short	0
34948	.short	439
34949	.short	487
34950	.short	0
34951	.short	442
34952	.short	490
34953	.short	0
34954	.short	445
34955	.short	493
34956	.short	0
34957	.short	448
34958	.short	496
34959	.short	0
34960	.short	451
34961	.short	499
34962	.short	0
34963	.short	454
34964	.short	502
34965	.short	0
34966	.short	457
34967	.short	505
34968	.short	0
34969	.short	460
34970	.short	508
34971	.short	0
34972	.short	463
34973	.short	511
34974	.short	0
34975	.short	466
34976	.short	514
34977	.short	0
34978	.short	469
34979	.short	517
34980	.short	0
34981	.short	472
34982	.short	520
34983	.short	0
34984	.short	475
34985	.short	523
34986	.short	0
34987	.short	478
34988	.short	526
34989	.short	0
34990	.short	481
34991	.short	529
34992	.short	0
34993	.short	484
34994	.short	532
34995	.short	0
34996	.short	487
34997	.short	535
34998	.short	0
34999	.short	490
35000	.short	538
35001	.short	0
35002	.short	493
35003	.short	541
35004	.short	0
35005	.short	496
35006	.short	544
35007	.short	0
35008	.short	499
35009	.short	547
35010	.short	0
35011	.short	502
35012	.short	550
35013	.short	0
35014	.short	505
35015	.short	553
35016	.short	0
35017	.short	508
35018	.short	556
35019	.short	0
35020	.short	511
35021	.short	559
35022	.short	0
35023	.short	514
35024	.short	562
35025	.short	0
35026	.short	517
35027	.short	565
35028	.short	0
35029	.short	520
35030	.short	568
35031	.short	0
35032	.short	523
35033	.short	571
35034	.short	0
35035	.short	526
35036	.short	574
35037	.short	0
35038	.short	529
35039	.short	577
35040	.short	0
35041	.short	532
35042	.short	580
35043	.short	0
35044	.short	535
35045	.short	583
35046	.short	0
35047	.short	538
35048	.short	586
35049	.short	0
35050	.short	541
35051	.short	589
35052	.short	0
35053	.short	544
35054	.short	592
35055	.short	0
35056	.short	547
35057	.short	595
35058	.short	0
35059	.short	550
35060	.short	598
35061	.short	0
35062	.short	553
35063	.short	601
35064	.short	0
35065	.short	556
35066	.short	604
35067	.short	0
35068	.short	559
35069	.short	607
35070	.short	0
35071	.short	562
35072	.short	610
35073	.short	0
35074	.short	565
35075	.short	613
35076	.short	0
35077	.short	568
35078	.short	616
35079	.short	0
35080	.short	571
35081	.short	619
35082	.short	0
35083	.short	574
35084	.short	622
35085	.short	0
35086	.short	577
35087	.short	625
35088	.short	0
35089	.short	580
35090	.short	628
35091	.short	0
35092	.short	583
35093	.short	631
35094	.short	0
35095	.short	586
35096	.short	634
35097	.short	0
35098	.short	589
35099	.short	637
35100	.short	0
35101	.short	592
35102	.short	640
35103	.short	0
35104	.short	595
35105	.short	643
35106	.short	0
35107	.short	598
35108	.short	646
35109	.short	0
35110	.short	601
35111	.short	649
35112	.short	0
35113	.short	604
35114	.short	652
35115	.short	0
35116	.short	607
35117	.short	655
35118	.short	0
35119	.short	610
35120	.short	658
35121	.short	0
35122	.short	613
35123	.short	661
35124	.short	0
35125	.short	616
35126	.short	664
35127	.short	0
35128	.short	619
35129	.short	667
35130	.short	0
35131	.short	622
35132	.short	670
35133	.short	0
35134	.short	625
35135	.short	673
35136	.short	0
35137	.short	628
35138	.short	676
35139	.short	0
35140	.short	631
35141	.short	679
35142	.short	0
35143	.short	634
35144	.short	682
35145	.short	0
35146	.short	637
35147	.short	685
35148	.short	0
35149	.short	640
35150	.short	688
35151	.short	0
35152	.short	643
35153	.short	691
35154	.short	0
35155	.short	646
35156	.short	694
35157	.short	0
35158	.short	649
35159	.short	697
35160	.short	0
35161	.short	652
35162	.short	700
35163	.short	0
35164	.short	655
35165	.short	703
35166	.short	0
35167	.short	658
35168	.short	706
35169	.short	0
35170	.short	661
35171	.short	709
35172	.short	0
35173	.short	664
35174	.short	712
35175	.short	0
35176	.short	667
35177	.short	715
35178	.short	0
35179	.short	670
35180	.short	718
35181	.short	0
35182	.short	673
35183	.short	721
35184	.short	0
35185	.short	676
35186	.short	724
35187	.short	0
35188	.short	679
35189	.short	727
35190	.short	0
35191	.short	682
35192	.short	730
35193	.short	0
35194	.short	685
35195	.short	733
35196	.short	0
35197	.short	688
35198	.short	736
35199	.short	0
35200	.short	691
35201	.short	739
35202	.short	0
35203	.short	694
35204	.short	742
35205	.short	0
35206	.short	697
35207	.short	745
35208	.short	0
35209	.short	700
35210	.short	748
35211	.short	0
35212	.short	703
35213	.short	751
35214	.short	0
35215	.short	706
35216	.short	0
35217	.short	709
35218	.short	0
35219	.short	712
35220	.short	0
35221	.short	715
35222	.short	0
35223	.short	718
35224	.short	0
35225	.short	721
35226	.short	0
35227	.short	724
35228	.short	0
35229	.short	727
35230	.short	0
35231	.type	tlc_prog_order, %object
35232	.size	tlc_prog_order, 768
35233tlc_prog_order:
35234	.short	1
35235	.short	9
35236	.short	2
35237	.short	17
35238	.short	10
35239	.short	3
35240	.short	25
35241	.short	18
35242	.short	11
35243	.short	33
35244	.short	26
35245	.short	19
35246	.short	41
35247	.short	34
35248	.short	27
35249	.short	49
35250	.short	42
35251	.short	35
35252	.short	57
35253	.short	50
35254	.short	43
35255	.short	65
35256	.short	58
35257	.short	51
35258	.short	73
35259	.short	66
35260	.short	59
35261	.short	81
35262	.short	74
35263	.short	67
35264	.short	89
35265	.short	82
35266	.short	75
35267	.short	97
35268	.short	90
35269	.short	83
35270	.short	105
35271	.short	98
35272	.short	91
35273	.short	113
35274	.short	106
35275	.short	99
35276	.short	121
35277	.short	114
35278	.short	107
35279	.short	129
35280	.short	122
35281	.short	115
35282	.short	137
35283	.short	130
35284	.short	123
35285	.short	145
35286	.short	138
35287	.short	131
35288	.short	153
35289	.short	146
35290	.short	139
35291	.short	161
35292	.short	154
35293	.short	147
35294	.short	169
35295	.short	162
35296	.short	155
35297	.short	177
35298	.short	170
35299	.short	163
35300	.short	185
35301	.short	178
35302	.short	171
35303	.short	193
35304	.short	186
35305	.short	179
35306	.short	201
35307	.short	194
35308	.short	187
35309	.short	209
35310	.short	202
35311	.short	195
35312	.short	217
35313	.short	210
35314	.short	203
35315	.short	225
35316	.short	218
35317	.short	211
35318	.short	233
35319	.short	226
35320	.short	219
35321	.short	241
35322	.short	234
35323	.short	227
35324	.short	249
35325	.short	242
35326	.short	235
35327	.short	257
35328	.short	250
35329	.short	243
35330	.short	265
35331	.short	258
35332	.short	251
35333	.short	273
35334	.short	266
35335	.short	259
35336	.short	281
35337	.short	274
35338	.short	267
35339	.short	289
35340	.short	282
35341	.short	275
35342	.short	297
35343	.short	290
35344	.short	283
35345	.short	305
35346	.short	298
35347	.short	291
35348	.short	313
35349	.short	306
35350	.short	299
35351	.short	321
35352	.short	314
35353	.short	307
35354	.short	329
35355	.short	322
35356	.short	315
35357	.short	337
35358	.short	330
35359	.short	323
35360	.short	345
35361	.short	338
35362	.short	331
35363	.short	353
35364	.short	346
35365	.short	339
35366	.short	361
35367	.short	354
35368	.short	347
35369	.short	369
35370	.short	362
35371	.short	355
35372	.short	377
35373	.short	370
35374	.short	363
35375	.short	385
35376	.short	378
35377	.short	371
35378	.short	393
35379	.short	386
35380	.short	379
35381	.short	401
35382	.short	394
35383	.short	387
35384	.short	409
35385	.short	402
35386	.short	395
35387	.short	417
35388	.short	410
35389	.short	403
35390	.short	425
35391	.short	418
35392	.short	411
35393	.short	433
35394	.short	426
35395	.short	419
35396	.short	441
35397	.short	434
35398	.short	427
35399	.short	449
35400	.short	442
35401	.short	435
35402	.short	457
35403	.short	450
35404	.short	443
35405	.short	465
35406	.short	458
35407	.short	451
35408	.short	473
35409	.short	466
35410	.short	459
35411	.short	481
35412	.short	474
35413	.short	467
35414	.short	489
35415	.short	482
35416	.short	475
35417	.short	497
35418	.short	490
35419	.short	483
35420	.short	505
35421	.short	498
35422	.short	491
35423	.short	513
35424	.short	506
35425	.short	499
35426	.short	521
35427	.short	514
35428	.short	507
35429	.short	529
35430	.short	522
35431	.short	515
35432	.short	537
35433	.short	530
35434	.short	523
35435	.short	545
35436	.short	538
35437	.short	531
35438	.short	553
35439	.short	546
35440	.short	539
35441	.short	561
35442	.short	554
35443	.short	547
35444	.short	569
35445	.short	562
35446	.short	555
35447	.short	577
35448	.short	570
35449	.short	563
35450	.short	585
35451	.short	578
35452	.short	571
35453	.short	593
35454	.short	586
35455	.short	579
35456	.short	601
35457	.short	594
35458	.short	587
35459	.short	609
35460	.short	602
35461	.short	595
35462	.short	617
35463	.short	610
35464	.short	603
35465	.short	625
35466	.short	618
35467	.short	611
35468	.short	633
35469	.short	626
35470	.short	619
35471	.short	641
35472	.short	634
35473	.short	627
35474	.short	649
35475	.short	642
35476	.short	635
35477	.short	657
35478	.short	650
35479	.short	643
35480	.short	665
35481	.short	658
35482	.short	651
35483	.short	673
35484	.short	666
35485	.short	659
35486	.short	681
35487	.short	674
35488	.short	667
35489	.short	689
35490	.short	682
35491	.short	675
35492	.short	697
35493	.short	690
35494	.short	683
35495	.short	705
35496	.short	698
35497	.short	691
35498	.short	713
35499	.short	706
35500	.short	699
35501	.short	721
35502	.short	714
35503	.short	707
35504	.short	729
35505	.short	722
35506	.short	715
35507	.short	737
35508	.short	730
35509	.short	723
35510	.short	745
35511	.short	738
35512	.short	731
35513	.short	753
35514	.short	746
35515	.short	739
35516	.short	761
35517	.short	754
35518	.short	747
35519	.short	769
35520	.short	762
35521	.short	755
35522	.short	777
35523	.short	770
35524	.short	763
35525	.short	785
35526	.short	778
35527	.short	771
35528	.short	793
35529	.short	786
35530	.short	779
35531	.short	801
35532	.short	794
35533	.short	787
35534	.short	809
35535	.short	802
35536	.short	795
35537	.short	817
35538	.short	810
35539	.short	803
35540	.short	825
35541	.short	818
35542	.short	811
35543	.short	833
35544	.short	826
35545	.short	819
35546	.short	841
35547	.short	834
35548	.short	827
35549	.short	849
35550	.short	842
35551	.short	835
35552	.short	857
35553	.short	850
35554	.short	843
35555	.short	865
35556	.short	858
35557	.short	851
35558	.short	873
35559	.short	866
35560	.short	859
35561	.short	881
35562	.short	874
35563	.short	867
35564	.short	889
35565	.short	882
35566	.short	875
35567	.short	897
35568	.short	890
35569	.short	883
35570	.short	905
35571	.short	898
35572	.short	891
35573	.short	913
35574	.short	906
35575	.short	899
35576	.short	921
35577	.short	914
35578	.short	907
35579	.short	929
35580	.short	922
35581	.short	915
35582	.short	937
35583	.short	930
35584	.short	923
35585	.short	945
35586	.short	938
35587	.short	931
35588	.short	953
35589	.short	946
35590	.short	939
35591	.short	961
35592	.short	954
35593	.short	947
35594	.short	969
35595	.short	962
35596	.short	955
35597	.short	977
35598	.short	970
35599	.short	963
35600	.short	985
35601	.short	978
35602	.short	971
35603	.short	993
35604	.short	986
35605	.short	979
35606	.short	1001
35607	.short	994
35608	.short	987
35609	.short	1009
35610	.short	1002
35611	.short	995
35612	.short	1017
35613	.short	1010
35614	.short	1003
35615	.short	1018
35616	.short	1011
35617	.short	1019
35618	.bss
35619	.align	6
35620	.set	.LANCHOR0,. + 0
35621	.set	.LANCHOR3,. + 8184
35622	.type	g_flash_slc_mode, %object
35623	.size	g_flash_slc_mode, 1
35624g_flash_slc_mode:
35625	.space	1
35626	.type	g_slc_mode_addr2, %object
35627	.size	g_slc_mode_addr2, 1
35628g_slc_mode_addr2:
35629	.space	1
35630	.type	g_block_align_addr, %object
35631	.size	g_block_align_addr, 2
35632g_block_align_addr:
35633	.space	2
35634	.type	g_lsb_page_tbl, %object
35635	.size	g_lsb_page_tbl, 1024
35636g_lsb_page_tbl:
35637	.space	1024
35638	.type	g_nandc_ver, %object
35639	.size	g_nandc_ver, 1
35640g_nandc_ver:
35641	.space	1
35642	.space	3
35643	.type	_c_user_data_density, %object
35644	.size	_c_user_data_density, 4
35645_c_user_data_density:
35646	.space	4
35647	.type	gp_sblk_list_tbl, %object
35648	.size	gp_sblk_list_tbl, 4
35649gp_sblk_list_tbl:
35650	.space	4
35651	.type	gp_flash_info, %object
35652	.size	gp_flash_info, 4
35653gp_flash_info:
35654	.space	4
35655	.type	gp_nandc, %object
35656	.size	gp_nandc, 4
35657gp_nandc:
35658	.space	4
35659	.type	NANDC_FMCTL, %object
35660	.size	NANDC_FMCTL, 4
35661NANDC_FMCTL:
35662	.space	4
35663	.type	NANDC_FMWAIT, %object
35664	.size	NANDC_FMWAIT, 4
35665NANDC_FMWAIT:
35666	.space	4
35667	.type	NANDC_FLCTL, %object
35668	.size	NANDC_FLCTL, 4
35669NANDC_FLCTL:
35670	.space	4
35671	.type	NANDC_BCHCTL, %object
35672	.size	NANDC_BCHCTL, 4
35673NANDC_BCHCTL:
35674	.space	4
35675	.type	NANDC_DLL_CTL_REG0, %object
35676	.size	NANDC_DLL_CTL_REG0, 4
35677NANDC_DLL_CTL_REG0:
35678	.space	4
35679	.type	NANDC_DLL_CTL_REG1, %object
35680	.size	NANDC_DLL_CTL_REG1, 4
35681NANDC_DLL_CTL_REG1:
35682	.space	4
35683	.type	NANDC_RANDMZ_CFG, %object
35684	.size	NANDC_RANDMZ_CFG, 4
35685NANDC_RANDMZ_CFG:
35686	.space	4
35687	.type	NANDC_FMWAIT_SYN, %object
35688	.size	NANDC_FMWAIT_SYN, 4
35689NANDC_FMWAIT_SYN:
35690	.space	4
35691	.type	_c_ftl_blk_pre_plane, %object
35692	.size	_c_ftl_blk_pre_plane, 2
35693_c_ftl_blk_pre_plane:
35694	.space	2
35695	.space	2
35696	.type	gp_blk_info, %object
35697	.size	gp_blk_info, 4
35698gp_blk_info:
35699	.space	4
35700	.type	_c_slc_to_xlc_ec_ratio, %object
35701	.size	_c_slc_to_xlc_ec_ratio, 2
35702_c_slc_to_xlc_ec_ratio:
35703	.space	2
35704	.space	2
35705	.type	ftl_sblk_vpn, %object
35706	.size	ftl_sblk_vpn, 4
35707ftl_sblk_vpn:
35708	.space	4
35709	.type	gp_ftl_ext_info, %object
35710	.size	gp_ftl_ext_info, 4
35711gp_ftl_ext_info:
35712	.space	4
35713	.type	g_retryMode, %object
35714	.size	g_retryMode, 1
35715g_retryMode:
35716	.space	1
35717	.type	g_maxRegNum, %object
35718	.size	g_maxRegNum, 1
35719g_maxRegNum:
35720	.space	1
35721	.space	2
35722	.type	gp_nand_para_info, %object
35723	.size	gp_nand_para_info, 4
35724gp_nand_para_info:
35725	.space	4
35726	.type	g_idb_ecc_bits, %object
35727	.size	g_idb_ecc_bits, 1
35728g_idb_ecc_bits:
35729	.space	1
35730	.type	g_nand_max_die, %object
35731	.size	g_nand_max_die, 1
35732g_nand_max_die:
35733	.space	1
35734	.type	g_idb_slc_mode_enable, %object
35735	.size	g_idb_slc_mode_enable, 1
35736g_idb_slc_mode_enable:
35737	.space	1
35738	.type	g_nand_opt_para, %object
35739	.size	g_nand_opt_para, 32
35740g_nand_opt_para:
35741	.space	32
35742	.type	g_flash_toggle_mode_en, %object
35743	.size	g_flash_toggle_mode_en, 1
35744g_flash_toggle_mode_en:
35745	.space	1
35746	.type	g_die_cs_idx, %object
35747	.size	g_die_cs_idx, 8
35748g_die_cs_idx:
35749	.space	8
35750	.type	g_flash_six_addr, %object
35751	.size	g_flash_six_addr, 1
35752g_flash_six_addr:
35753	.space	1
35754	.type	_c_ftl_cs_bits, %object
35755	.size	_c_ftl_cs_bits, 1
35756_c_ftl_cs_bits:
35757	.space	1
35758	.type	g_flash_cur_mode, %object
35759	.size	g_flash_cur_mode, 4
35760g_flash_cur_mode:
35761	.space	4
35762	.type	g_flash_micron_3d_tlc_flag, %object
35763	.size	g_flash_micron_3d_tlc_flag, 1
35764g_flash_micron_3d_tlc_flag:
35765	.space	1
35766	.type	g_flash_ymtc_3d_tlc_flag, %object
35767	.size	g_flash_ymtc_3d_tlc_flag, 1
35768g_flash_ymtc_3d_tlc_flag:
35769	.space	1
35770	.type	IDByte, %object
35771	.size	IDByte, 32
35772IDByte:
35773	.space	32
35774	.type	g_flash_interface_mode, %object
35775	.size	g_flash_interface_mode, 1
35776g_flash_interface_mode:
35777	.space	1
35778	.type	g_nandc_ecc_bits, %object
35779	.size	g_nandc_ecc_bits, 1
35780g_nandc_ecc_bits:
35781	.space	1
35782	.type	g_flash_multi_page_prog_en, %object
35783	.size	g_flash_multi_page_prog_en, 1
35784g_flash_multi_page_prog_en:
35785	.space	1
35786	.type	nandc_hw_seed, %object
35787	.size	nandc_hw_seed, 1
35788nandc_hw_seed:
35789	.space	1
35790	.type	nandc_randomizer_en, %object
35791	.size	nandc_randomizer_en, 1
35792nandc_randomizer_en:
35793	.space	1
35794	.space	3
35795	.type	g_nandc_v6_master_info, %object
35796	.size	g_nandc_v6_master_info, 28
35797g_nandc_v6_master_info:
35798	.space	28
35799	.type	fill_spare_size, %object
35800	.size	fill_spare_size, 2
35801fill_spare_size:
35802	.space	2
35803	.space	2
35804	.type	g_buf, %object
35805	.size	g_buf, 1536
35806g_buf:
35807	.space	1536
35808	.type	p_free_buf_head, %object
35809	.size	p_free_buf_head, 1
35810p_free_buf_head:
35811	.space	1
35812	.type	free_buf_count, %object
35813	.size	free_buf_count, 1
35814free_buf_count:
35815	.space	1
35816	.type	sblk_queue_head, %object
35817	.size	sblk_queue_head, 1
35818sblk_queue_head:
35819	.space	1
35820	.type	sblk_read_completed_queue_head, %object
35821	.size	sblk_read_completed_queue_head, 1
35822sblk_read_completed_queue_head:
35823	.space	1
35824	.type	sblk_gc_write_completed_queue_head, %object
35825	.size	sblk_gc_write_completed_queue_head, 1
35826sblk_gc_write_completed_queue_head:
35827	.space	1
35828	.type	sblk_write_completed_queue_head, %object
35829	.size	sblk_write_completed_queue_head, 1
35830sblk_write_completed_queue_head:
35831	.space	1
35832	.space	2
35833	.type	_c_totle_phy_density, %object
35834	.size	_c_totle_phy_density, 4
35835_c_totle_phy_density:
35836	.space	4
35837	.type	_c_totle_log_page, %object
35838	.size	_c_totle_log_page, 4
35839_c_totle_log_page:
35840	.space	4
35841	.type	free_slc_sblk, %object
35842	.size	free_slc_sblk, 2
35843free_slc_sblk:
35844	.space	2
35845	.type	free_xlc_sblk, %object
35846	.size	free_xlc_sblk, 2
35847free_xlc_sblk:
35848	.space	2
35849	.type	free_mix_sblk, %object
35850	.size	free_mix_sblk, 2
35851free_mix_sblk:
35852	.space	2
35853	.type	slc_data_sblk, %object
35854	.size	slc_data_sblk, 2
35855slc_data_sblk:
35856	.space	2
35857	.type	slc_cache_sblk, %object
35858	.size	slc_cache_sblk, 2
35859slc_cache_sblk:
35860	.space	2
35861	.type	xlc_data_sblk, %object
35862	.size	xlc_data_sblk, 2
35863xlc_data_sblk:
35864	.space	2
35865	.type	write_buf_count, %object
35866	.size	write_buf_count, 1
35867write_buf_count:
35868	.space	1
35869	.type	write_commit_count, %object
35870	.size	write_commit_count, 1
35871write_commit_count:
35872	.space	1
35873	.space	2
35874	.type	gp_ftl_info, %object
35875	.size	gp_ftl_info, 4
35876gp_ftl_info:
35877	.space	4
35878	.type	gc_free_slc_sblk_th, %object
35879	.size	gc_free_slc_sblk_th, 2
35880gc_free_slc_sblk_th:
35881	.space	2
35882	.type	gc_tlc_mode_slc_vpn_th, %object
35883	.size	gc_tlc_mode_slc_vpn_th, 2
35884gc_tlc_mode_slc_vpn_th:
35885	.space	2
35886	.type	gc_tlc_mode_tlc_vpn_th, %object
35887	.size	gc_tlc_mode_tlc_vpn_th, 2
35888gc_tlc_mode_tlc_vpn_th:
35889	.space	2
35890	.space	2
35891	.type	_gc_after_discard_en, %object
35892	.size	_gc_after_discard_en, 4
35893_gc_after_discard_en:
35894	.space	4
35895	.type	gc_slc_mode_tlc_vpn_th, %object
35896	.size	gc_slc_mode_tlc_vpn_th, 2
35897gc_slc_mode_tlc_vpn_th:
35898	.space	2
35899	.type	gc_slc_mode_vpn_th, %object
35900	.size	gc_slc_mode_vpn_th, 2
35901gc_slc_mode_vpn_th:
35902	.space	2
35903	.type	write_buf_head, %object
35904	.size	write_buf_head, 1
35905write_buf_head:
35906	.space	1
35907	.space	3
35908	.type	g_gc_info, %object
35909	.size	g_gc_info, 2204
35910g_gc_info:
35911	.space	2204
35912	.type	ftl_sblk_vpn_update_id, %object
35913	.size	ftl_sblk_vpn_update_id, 2
35914ftl_sblk_vpn_update_id:
35915	.space	2
35916	.type	ftl_sblk_update_list, %object
35917	.size	ftl_sblk_update_list, 16
35918ftl_sblk_update_list:
35919	.space	16
35920	.type	_c_ftl_block_addr_log2, %object
35921	.size	_c_ftl_block_addr_log2, 2
35922_c_ftl_block_addr_log2:
35923	.space	2
35924	.type	_c_ftl_planes_per_die, %object
35925	.size	_c_ftl_planes_per_die, 1
35926_c_ftl_planes_per_die:
35927	.space	1
35928	.space	3
35929	.type	gc_valid_page_ppa, %object
35930	.size	gc_valid_page_ppa, 4
35931gc_valid_page_ppa:
35932	.space	4
35933	.type	_c_ftl_nand_type, %object
35934	.size	_c_ftl_nand_type, 1
35935_c_ftl_nand_type:
35936	.space	1
35937	.type	_c_ftl_nand_planes_num, %object
35938	.size	_c_ftl_nand_planes_num, 1
35939_c_ftl_nand_planes_num:
35940	.space	1
35941	.type	g_flash_3d_mlc_flag, %object
35942	.size	g_flash_3d_mlc_flag, 1
35943g_flash_3d_mlc_flag:
35944	.space	1
35945	.type	g_one_pass_program, %object
35946	.size	g_one_pass_program, 1
35947g_one_pass_program:
35948	.space	1
35949	.type	gc_page_buf_id, %object
35950	.size	gc_page_buf_id, 4
35951gc_page_buf_id:
35952	.space	4
35953	.type	g_flash_3d_tlc_flag, %object
35954	.size	g_flash_3d_tlc_flag, 1
35955g_flash_3d_tlc_flag:
35956	.space	1
35957	.type	gc_mode, %object
35958	.size	gc_mode, 1
35959gc_mode:
35960	.space	1
35961	.type	_c_ftl_page_pre_blk, %object
35962	.size	_c_ftl_page_pre_blk, 2
35963_c_ftl_page_pre_blk:
35964	.space	2
35965	.type	gp_data_slc_data_head, %object
35966	.size	gp_data_slc_data_head, 4
35967gp_data_slc_data_head:
35968	.space	4
35969	.type	gc_slc_data_index, %object
35970	.size	gc_slc_data_index, 2
35971gc_slc_data_index:
35972	.space	2
35973	.type	gc_slc_cache_index, %object
35974	.size	gc_slc_cache_index, 2
35975gc_slc_cache_index:
35976	.space	2
35977	.type	gc_xlc_data_index, %object
35978	.size	gc_xlc_data_index, 2
35979gc_xlc_data_index:
35980	.space	2
35981	.space	2
35982	.type	gp_data_slc_cache_head, %object
35983	.size	gp_data_slc_cache_head, 4
35984gp_data_slc_cache_head:
35985	.space	4
35986	.type	gp_data_xlc_data_head, %object
35987	.size	gp_data_xlc_data_head, 4
35988gp_data_xlc_data_head:
35989	.space	4
35990	.type	_c_ftl_page_pre_slc_blk, %object
35991	.size	_c_ftl_page_pre_slc_blk, 2
35992_c_ftl_page_pre_slc_blk:
35993	.space	2
35994	.type	gc_xlc_search_index, %object
35995	.size	gc_xlc_search_index, 2
35996gc_xlc_search_index:
35997	.space	2
35998	.type	_min_slc_super_block, %object
35999	.size	_min_slc_super_block, 2
36000_min_slc_super_block:
36001	.space	2
36002	.type	_max_xlc_super_block, %object
36003	.size	_max_xlc_super_block, 2
36004_max_xlc_super_block:
36005	.space	2
36006	.type	gp_free_slc_head, %object
36007	.size	gp_free_slc_head, 4
36008gp_free_slc_head:
36009	.space	4
36010	.type	gp_free_xlc_head, %object
36011	.size	gp_free_xlc_head, 4
36012gp_free_xlc_head:
36013	.space	4
36014	.type	gp_free_mix_head, %object
36015	.size	gp_free_mix_head, 4
36016gp_free_mix_head:
36017	.space	4
36018	.type	zftl_print_list_count, %object
36019	.size	zftl_print_list_count, 2
36020zftl_print_list_count:
36021	.space	2
36022	.type	_c_ftl_block_align_addr, %object
36023	.size	_c_ftl_block_align_addr, 2
36024_c_ftl_block_align_addr:
36025	.space	2
36026	.type	_c_ftl_nand_die_num, %object
36027	.size	_c_ftl_nand_die_num, 1
36028_c_ftl_nand_die_num:
36029	.space	1
36030	.space	1
36031	.type	lpa_hash, %object
36032	.size	lpa_hash, 512
36033lpa_hash:
36034	.space	512
36035	.space	2
36036	.type	ftl_sblk_lpa_tbl, %object
36037	.size	ftl_sblk_lpa_tbl, 4
36038ftl_sblk_lpa_tbl:
36039	.space	4
36040	.type	lpa_hash_index, %object
36041	.size	lpa_hash_index, 4
36042lpa_hash_index:
36043	.space	4
36044	.type	ftl_vpn_update_count, %object
36045	.size	ftl_vpn_update_count, 2
36046ftl_vpn_update_count:
36047	.space	2
36048	.type	_c_ftl_sec_per_page, %object
36049	.size	_c_ftl_sec_per_page, 1
36050_c_ftl_sec_per_page:
36051	.space	1
36052	.space	1
36053	.type	ftl_sblk_update_list_offset, %object
36054	.size	ftl_sblk_update_list_offset, 2
36055ftl_sblk_update_list_offset:
36056	.space	2
36057	.type	g_flash_micron_3d_tlc_b05a, %object
36058	.size	g_flash_micron_3d_tlc_b05a, 1
36059g_flash_micron_3d_tlc_b05a:
36060	.space	1
36061	.space	1
36062	.type	_c_mix_max_xlc_ec_count, %object
36063	.size	_c_mix_max_xlc_ec_count, 2
36064_c_mix_max_xlc_ec_count:
36065	.space	2
36066	.type	_c_mix_max_slc_ec_count, %object
36067	.size	_c_mix_max_slc_ec_count, 2
36068_c_mix_max_slc_ec_count:
36069	.space	2
36070	.type	read_buf_head, %object
36071	.size	read_buf_head, 1
36072read_buf_head:
36073	.space	1
36074	.type	read_buf_count, %object
36075	.size	read_buf_count, 1
36076read_buf_count:
36077	.space	1
36078	.space	2
36079	.type	pm_ram_info, %object
36080	.size	pm_ram_info, 256
36081pm_ram_info:
36082	.space	256
36083	.type	pm_last_update_ram_id, %object
36084	.size	pm_last_update_ram_id, 1
36085pm_last_update_ram_id:
36086	.space	1
36087	.space	3
36088	.type	g_msb_page_tbl, %object
36089	.size	g_msb_page_tbl, 2048
36090g_msb_page_tbl:
36091	.space	2048
36092	.type	g_slc_page_num, %object
36093	.size	g_slc_page_num, 2
36094g_slc_page_num:
36095	.space	2
36096	.space	2
36097	.type	g_die_addr, %object
36098	.size	g_die_addr, 32
36099g_die_addr:
36100	.space	32
36101	.type	g_totle_phy_block, %object
36102	.size	g_totle_phy_block, 2
36103g_totle_phy_block:
36104	.space	2
36105	.space	2
36106	.type	pm_force_gc, %object
36107	.size	pm_force_gc, 4
36108pm_force_gc:
36109	.space	4
36110	.type	_c_swl_slc_gc_th, %object
36111	.size	_c_swl_slc_gc_th, 2
36112_c_swl_slc_gc_th:
36113	.space	2
36114	.type	_c_swl_xlc_gc_th, %object
36115	.size	_c_swl_xlc_gc_th, 2
36116_c_swl_xlc_gc_th:
36117	.space	2
36118	.type	_c_max_pm_sblk, %object
36119	.size	_c_max_pm_sblk, 2
36120_c_max_pm_sblk:
36121	.space	2
36122	.space	6
36123	.type	power_on_init_jiffies, %object
36124	.size	power_on_init_jiffies, 8
36125power_on_init_jiffies:
36126	.space	8
36127	.type	gp_ftl_api, %object
36128	.size	gp_ftl_api, 4
36129gp_ftl_api:
36130	.space	4
36131	.type	RK29_NANDC_REG_BASE, %object
36132	.size	RK29_NANDC_REG_BASE, 4
36133RK29_NANDC_REG_BASE:
36134	.space	4
36135	.type	ftl_dma32_buffer_size, %object
36136	.size	ftl_dma32_buffer_size, 4
36137ftl_dma32_buffer_size:
36138	.space	4
36139	.type	ftl_dma32_buffer, %object
36140	.size	ftl_dma32_buffer, 4
36141ftl_dma32_buffer:
36142	.space	4
36143	.type	gc_state, %object
36144	.size	gc_state, 1
36145gc_state:
36146	.space	1
36147	.space	3
36148	.type	gc_search_count, %object
36149	.size	gc_search_count, 4
36150gc_search_count:
36151	.space	4
36152	.type	gc_slc_mode_slc_vpn_th, %object
36153	.size	gc_slc_mode_slc_vpn_th, 2
36154gc_slc_mode_slc_vpn_th:
36155	.space	2
36156	.space	2
36157	.type	gc_lpa_tbl, %object
36158	.size	gc_lpa_tbl, 4
36159gc_lpa_tbl:
36160	.space	4
36161	.type	gc_pre_ppa_tbl, %object
36162	.size	gc_pre_ppa_tbl, 4
36163gc_pre_ppa_tbl:
36164	.space	4
36165	.type	gc_des_ppa_tbl, %object
36166	.size	gc_des_ppa_tbl, 4
36167gc_des_ppa_tbl:
36168	.space	4
36169	.type	g_flash_tmp_page_buffer, %object
36170	.size	g_flash_tmp_page_buffer, 4
36171g_flash_tmp_page_buffer:
36172	.space	4
36173	.type	g_nandc_tran_timeout, %object
36174	.size	g_nandc_tran_timeout, 1
36175g_nandc_tran_timeout:
36176	.space	1
36177	.space	3
36178	.type	g_flash_tmp_spare_buffer, %object
36179	.size	g_flash_tmp_spare_buffer, 4
36180g_flash_tmp_spare_buffer:
36181	.space	4
36182	.type	g_maxRetryCount, %object
36183	.size	g_maxRetryCount, 1
36184g_maxRetryCount:
36185	.space	1
36186	.space	3
36187	.type	flash_ddr_tuning_sdr_read_count, %object
36188	.size	flash_ddr_tuning_sdr_read_count, 4
36189flash_ddr_tuning_sdr_read_count:
36190	.space	4
36191	.type	flash_read_retry, %object
36192	.size	flash_read_retry, 4
36193flash_read_retry:
36194	.space	4
36195	.type	g_flash_spare_buffer, %object
36196	.size	g_flash_spare_buffer, 4
36197g_flash_spare_buffer:
36198	.space	4
36199	.type	g_flash_page_buffer, %object
36200	.size	g_flash_page_buffer, 4
36201g_flash_page_buffer:
36202	.space	4
36203	.type	write_commit_head, %object
36204	.size	write_commit_head, 1
36205write_commit_head:
36206	.space	1
36207	.space	3
36208	.type	ftl_flush_jiffies, %object
36209	.size	ftl_flush_jiffies, 4
36210ftl_flush_jiffies:
36211	.space	4
36212	.type	g_flash_multi_page_read_en, %object
36213	.size	g_flash_multi_page_read_en, 1
36214g_flash_multi_page_read_en:
36215	.space	1
36216	.space	3
36217	.type	ftl_info_spare, %object
36218	.size	ftl_info_spare, 4
36219ftl_info_spare:
36220	.space	4
36221	.space	16
36222	.type	g_ftl_info_blk, %object
36223	.size	g_ftl_info_blk, 4
36224g_ftl_info_blk:
36225	.space	4
36226	.type	ftl_info_data_buffer, %object
36227	.size	ftl_info_data_buffer, 4
36228ftl_info_data_buffer:
36229	.space	4
36230	.type	ftl_sys_info_first_write, %object
36231	.size	ftl_sys_info_first_write, 1
36232ftl_sys_info_first_write:
36233	.space	1
36234	.type	ftl_power_lost_flag, %object
36235	.size	ftl_power_lost_flag, 1
36236ftl_power_lost_flag:
36237	.space	1
36238	.type	ftl_ext_info_first_write, %object
36239	.size	ftl_ext_info_first_write, 1
36240ftl_ext_info_first_write:
36241	.space	1
36242	.space	1
36243	.type	ftl_ext_info_data_buffer, %object
36244	.size	ftl_ext_info_data_buffer, 4
36245ftl_ext_info_data_buffer:
36246	.space	4
36247	.type	ftl_tmp_spare, %object
36248	.size	ftl_tmp_spare, 4
36249ftl_tmp_spare:
36250	.space	4
36251	.type	pm_gc_enable, %object
36252	.size	pm_gc_enable, 4
36253pm_gc_enable:
36254	.space	4
36255	.type	g_pm_spare, %object
36256	.size	g_pm_spare, 4
36257g_pm_spare:
36258	.space	4
36259	.type	pm_first_write, %object
36260	.size	pm_first_write, 1
36261pm_first_write:
36262	.space	1
36263	.space	3
36264	.type	g_flash_sys_spare_buffer, %object
36265	.size	g_flash_sys_spare_buffer, 4
36266g_flash_sys_spare_buffer:
36267	.space	4
36268	.type	g_flash_blk_info, %object
36269	.size	g_flash_blk_info, 4
36270g_flash_blk_info:
36271	.space	4
36272	.type	g_flash_reversd_blks, %object
36273	.size	g_flash_reversd_blks, 1
36274g_flash_reversd_blks:
36275	.space	1
36276	.type	g_flash_micron_3d_tlc_b16a, %object
36277	.size	g_flash_micron_3d_tlc_b16a, 1
36278g_flash_micron_3d_tlc_b16a:
36279	.space	1
36280	.type	_c_ftl_byte_pre_page, %object
36281	.size	_c_ftl_byte_pre_page, 2
36282_c_ftl_byte_pre_page:
36283	.space	2
36284	.type	pm_last_load_ram_id, %object
36285	.size	pm_last_load_ram_id, 1
36286pm_last_load_ram_id:
36287	.space	1
36288	.type	_ftl_gc_tag_page_num, %object
36289	.size	_ftl_gc_tag_page_num, 1
36290_ftl_gc_tag_page_num:
36291	.space	1
36292	.space	2
36293	.type	_last_read_time, %object
36294	.size	_last_read_time, 4
36295_last_read_time:
36296	.space	4
36297	.type	_last_write_time, %object
36298	.size	_last_write_time, 4
36299_last_write_time:
36300	.space	4
36301	.type	read_ahead_lpa, %object
36302	.size	read_ahead_lpa, 4
36303read_ahead_lpa:
36304	.space	4
36305	.type	_c_totle_data_density, %object
36306	.size	_c_totle_data_density, 4
36307_c_totle_data_density:
36308	.space	4
36309	.type	_c_ftl_pm_page_num, %object
36310	.size	_c_ftl_pm_page_num, 2
36311_c_ftl_pm_page_num:
36312	.space	2
36313	.space	2
36314	.type	ftl_tmp_buffer, %object
36315	.size	ftl_tmp_buffer, 4
36316ftl_tmp_buffer:
36317	.space	4
36318	.type	rk_zftl_enable, %object
36319	.size	rk_zftl_enable, 1
36320rk_zftl_enable:
36321	.space	1
36322	.space	3
36323	.type	gLoaderBootInfo, %object
36324	.size	gLoaderBootInfo, 4
36325gLoaderBootInfo:
36326	.space	4
36327	.type	RK29_NANDC1_REG_BASE, %object
36328	.size	RK29_NANDC1_REG_BASE, 4
36329RK29_NANDC1_REG_BASE:
36330	.space	4
36331	.type	discard_sector_count, %object
36332	.size	discard_sector_count, 4
36333discard_sector_count:
36334	.space	4
36335	.type	idb_write_enable, %object
36336	.size	idb_write_enable, 1
36337idb_write_enable:
36338	.space	1
36339	.space	3
36340	.type	idb_buf, %object
36341	.size	idb_buf, 4
36342idb_buf:
36343	.space	4
36344	.type	idb_last_lba, %object
36345	.size	idb_last_lba, 4
36346idb_last_lba:
36347	.space	4
36348	.type	g_idb_buffer, %object
36349	.size	g_idb_buffer, 4
36350g_idb_buffer:
36351	.space	4
36352	.type	g_vendor, %object
36353	.size	g_vendor, 4
36354g_vendor:
36355	.space	4
36356	.type	SecureBootUnlockTryCount, %object
36357	.size	SecureBootUnlockTryCount, 4
36358SecureBootUnlockTryCount:
36359	.space	4
36360	.type	SecureBootCheckOK, %object
36361	.size	SecureBootCheckOK, 4
36362SecureBootCheckOK:
36363	.space	4
36364	.type	SecureBootEn, %object
36365	.size	SecureBootEn, 4
36366SecureBootEn:
36367	.space	4
36368	.type	gpVendor1Info, %object
36369	.size	gpVendor1Info, 4
36370gpVendor1Info:
36371	.space	4
36372	.type	gpVendor0Info, %object
36373	.size	gpVendor0Info, 4
36374gpVendor0Info:
36375	.space	4
36376	.type	gSnSectorData, %object
36377	.size	gSnSectorData, 512
36378gSnSectorData:
36379	.space	512
36380	.type	gpDrmKeyInfo, %object
36381	.size	gpDrmKeyInfo, 4
36382gpDrmKeyInfo:
36383	.space	4
36384	.type	gpBootConfig, %object
36385	.size	gpBootConfig, 4
36386gpBootConfig:
36387	.space	4
36388	.type	ftl_low_format_cur_blk, %object
36389	.size	ftl_low_format_cur_blk, 2
36390ftl_low_format_cur_blk:
36391	.space	2
36392	.space	2
36393	.type	p_read_ahead_ext_buf, %object
36394	.size	p_read_ahead_ext_buf, 4
36395p_read_ahead_ext_buf:
36396	.space	4
36397	.type	_c_ftl_nand_blks_per_die, %object
36398	.size	_c_ftl_nand_blks_per_die, 2
36399_c_ftl_nand_blks_per_die:
36400	.space	2
36401	.type	nandc_ecc_sts, %object
36402	.size	nandc_ecc_sts, 16
36403nandc_ecc_sts:
36404	.space	16
36405	.type	g_slc_mode_enable, %object
36406	.size	g_slc_mode_enable, 1
36407g_slc_mode_enable:
36408	.space	1
36409	.section	.rodata.str1.1,"aMS",%progbits,1
36410.LC0:
36411	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
36412.LC1:
36413	.ascii	"FTL version: 6.0.24 20210716\000"
36414.LC2:
36415	.ascii	"%s\012\000"
36416.LC3:
36417	.ascii	"zftl_debug:0x%x\012\000"
36418.LC4:
36419	.ascii	"...%s enter...\012\000"
36420.LC5:
36421	.ascii	"No.0 FLASH ID: %x %x %x %x %x %x\012\000"
36422.LC6:
36423	.ascii	"DiePerChip: %x\012\000"
36424.LC7:
36425	.ascii	"SectPerPage: %x\012\000"
36426.LC8:
36427	.ascii	"PagePerBlk: %x\012\000"
36428.LC9:
36429	.ascii	"Cell: %x\012\000"
36430.LC10:
36431	.ascii	"PlanePerDie: %x\012\000"
36432.LC11:
36433	.ascii	"BlkPerPlane: %x\012\000"
36434.LC12:
36435	.ascii	"die gap: %x\012\000"
36436.LC13:
36437	.ascii	"lsbMode: %x\012\000"
36438.LC14:
36439	.ascii	"ReadRetryMode: %x\012\000"
36440.LC15:
36441	.ascii	"ecc: %x\012\000"
36442.LC16:
36443	.ascii	"idb ecc: %x\012\000"
36444.LC17:
36445	.ascii	"OptMode: %x\012\000"
36446.LC18:
36447	.ascii	"g_nand_max_die: %x\012\000"
36448.LC19:
36449	.ascii	"Cache read enable: %x\012\000"
36450.LC20:
36451	.ascii	"Cache random read enable: %x\012\000"
36452.LC21:
36453	.ascii	"Cache prog enable: %x\012\000"
36454.LC22:
36455	.ascii	"multi read enable: %x\012\000"
36456.LC23:
36457	.ascii	"multi prog enable: %x\012\000"
36458.LC24:
36459	.ascii	"interleave enable: %x\012\000"
36460.LC25:
36461	.ascii	"read retry enable: %x\012\000"
36462.LC26:
36463	.ascii	"randomizer enable: %x\012\000"
36464.LC27:
36465	.ascii	"SDR enable: %x\012\000"
36466.LC28:
36467	.ascii	"ONFI enable: %x\012\000"
36468.LC29:
36469	.ascii	"TOGGLE enable: %x\012\000"
36470.LC30:
36471	.ascii	"g_flash_slc_mode: %x %x\012\000"
36472.LC31:
36473	.ascii	"MultiPlaneProgCmd: %x %x\012\000"
36474.LC32:
36475	.ascii	"MultiPlaneReadCmd: %x %x\012\000"
36476.LC33:
36477	.ascii	"g_flash_toggle_mode_en: %x\012\000"
36478.LC34:
36479	.ascii	"nand sdr mode %x\012\000"
36480.LC35:
36481	.ascii	"nand ddr mode %x\012\000"
36482.LC36:
36483	.ascii	"No.%d FLASH ID:%x %x %x %x %x %x\012\000"
36484.LC37:
36485	.ascii	"otp:%x %x %x %x\012\000"
36486.LC38:
36487	.ascii	"bad block test:%x %x\012\000"
36488.LC39:
36489	.ascii	"flash_erase_duplane_block %x %x %x\012\000"
36490.LC40:
36491	.ascii	"flash_erase_duplane_block pageadd = %x status = %x\012"
36492	.ascii	"\000"
36493.LC41:
36494	.ascii	"flash_erase_block %x %x %x\012\000"
36495.LC42:
36496	.ascii	"flash_erase_block %d block = %x status = %x\012\000"
36497.LC43:
36498	.ascii	"erase done: %x\012\000"
36499.LC44:
36500	.ascii	"sblk_queue_head = %d\012\000"
36501.LC45:
36502	.ascii	"sblk_read_completed_queue_head = %d\012\000"
36503.LC46:
36504	.ascii	"sblk_gc_write_completed_queue_head = %d\012\000"
36505.LC47:
36506	.ascii	"sblk_write_completed_queue_head = %d\012\000"
36507.LC48:
36508	.ascii	"p_free_buf_head = %d\012\000"
36509.LC49:
36510	.ascii	"free_buf_count = %d\012\000"
36511.LC50:
36512	.ascii	"buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_st"
36513	.ascii	"ate=%d, op_status = %d lpa=%x, ppa=%x\012\000"
36514.LC51:
36515	.ascii	"flash_mask_bad_block %d %d\012\000"
36516.LC52:
36517	.ascii	"zftl_debug\000"
36518.LC53:
36519	.ascii	"FLASH ID: %x %x %x %x %x %x\012\000"
36520.LC54:
36521	.ascii	"density: %d MB\012\000"
36522.LC55:
36523	.ascii	"device density: %d MB\012\000"
36524.LC56:
36525	.ascii	"FTL INFO:\012\000"
36526.LC57:
36527	.ascii	"max_lpn = 0x%x\012\000"
36528.LC58:
36529	.ascii	"density = 0x%x\012\000"
36530.LC59:
36531	.ascii	"slc vpn = 0x%x\012\000"
36532.LC60:
36533	.ascii	"xlc vpn = 0x%x\012\000"
36534.LC61:
36535	.ascii	"free slc blk = 0x%x\012\000"
36536.LC62:
36537	.ascii	"free xlc blk = 0x%x\012\000"
36538.LC63:
36539	.ascii	"free mix blk = 0x%x\012\000"
36540.LC64:
36541	.ascii	"slc data blk = 0x%x\012\000"
36542.LC65:
36543	.ascii	"slc cache blk = 0x%x\012\000"
36544.LC66:
36545	.ascii	"xlc data blk = 0x%x\012\000"
36546.LC67:
36547	.ascii	"free buf = %d, %d, %d\012\000"
36548.LC68:
36549	.ascii	"bad blk = %d %d\012\000"
36550.LC69:
36551	.ascii	"TBW = %d MB\012\000"
36552.LC70:
36553	.ascii	"TBR = %d MB\012\000"
36554.LC71:
36555	.ascii	"POC = %d\012\000"
36556.LC72:
36557	.ascii	"PLC = %d\012\000"
36558.LC73:
36559	.ascii	"sys run time = %d S\012\000"
36560.LC74:
36561	.ascii	"slc mode = %x %x %x\012\000"
36562.LC75:
36563	.ascii	"prog err = %d\012\000"
36564.LC76:
36565	.ascii	"read err = %d\012\000"
36566.LC77:
36567	.ascii	"GC XLC page = %d\012\000"
36568.LC78:
36569	.ascii	"GC SLC page = %d\012\000"
36570.LC79:
36571	.ascii	"discard page = 0x%x\012\000"
36572.LC80:
36573	.ascii	"version = %d\012\000"
36574.LC81:
36575	.ascii	"acblk = 0x%x %d %d\012\000"
36576.LC82:
36577	.ascii	"tmblk = 0x%x %d %d\012\000"
36578.LC83:
36579	.ascii	"gcblk = 0x%x %d %d\012\000"
36580.LC84:
36581	.ascii	"slc ec = %d, %d, %d, %d, %d\012\000"
36582.LC85:
36583	.ascii	"xlc ec = %d, %d, %d, %d, %d\012\000"
36584.LC86:
36585	.ascii	"gc free blk th = %d\012\000"
36586.LC87:
36587	.ascii	"gc vpn th = %d %d %d %d %d\012\000"
36588.LC88:
36589	.ascii	"swl blk = %x %x %x %x\012\000"
36590.LC89:
36591	.ascii	"rf info = %x %x %x %x %x\012\000"
36592.LC90:
36593	.ascii	"gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000"
36594.LC91:
36595	.ascii	"gc_add_sblk = %d, %d, %d\012\000"
36596.LC92:
36597	.ascii	"gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000"
36598.LC93:
36599	.ascii	"gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000"
36600.LC94:
36601	.ascii	"gc_mark_bad_ppa %d %x %x\012\000"
36602.LC95:
36603	.ascii	"status: %x, ppa: %x\012\000"
36604.LC96:
36605	.ascii	"%d gc_free_temp_buf buf id= %x\012\000"
36606.LC97:
36607	.ascii	"gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\012"
36608	.ascii	"\000"
36609.LC98:
36610	.ascii	"zftl_get_gc_node cache = %x index = %d vpn = %x\012"
36611	.ascii	"\000"
36612.LC99:
36613	.ascii	"gc_search_src_blk mode = %x, src mode = %x, count= "
36614	.ascii	"%d %d\012\000"
36615.LC100:
36616	.ascii	"swl_tlc_free_mini_ec_blk alloc sblk %x\012\000"
36617.LC101:
36618	.ascii	"zftl_get_free_sblk %x %d, %p %d %d\012\000"
36619.LC102:
36620	.ascii	"zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000"
36621.LC103:
36622	.ascii	"swl_slc_free_mini_ec_blk alloc sblk %x\012\000"
36623.LC104:
36624	.ascii	"list count:%p %d\012\000"
36625.LC105:
36626	.ascii	"%d: node:%x %x %x %x, %d %d %d %d %d\012\000"
36627.LC106:
36628	.ascii	"ftl_vpn_decrement %x = %d, %d\012\000"
36629.LC107:
36630	.ascii	"mask bad block:cs %x %x block: %x %x\012\000"
36631.LC108:
36632	.ascii	"gc_free_bad_sblk 0x%x\012\000"
36633.LC109:
36634	.ascii	"swl_slc_free_mini_ec_blk sblk %x\012\000"
36635.LC110:
36636	.ascii	"gc_free_src_blk = %x, vpn = %d\012\000"
36637.LC111:
36638	.ascii	"gc_free_src_blk %x, %d\012\000"
36639.LC112:
36640	.ascii	"bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk"
36641	.ascii	":s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\012\000"
36642.LC113:
36643	.ascii	"totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\012\000"
36644.LC114:
36645	.ascii	"gc xlc page: %d,gc slc page: %d, tmp w: %d MB\012\000"
36646.LC115:
36647	.ascii	"slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\012\000"
36648.LC116:
36649	.ascii	"gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:"
36650	.ascii	"%d free_th: %d\012\000"
36651.LC117:
36652	.ascii	"swl : %x %x %x %x %x %x\012\000"
36653.LC118:
36654	.ascii	"ftl prog error =%x, lpa = %x, ppa= %x\012\000"
36655.LC119:
36656	.ascii	"ftl re prog: lpa = %x, ppa= %x\012\000"
36657.LC120:
36658	.ascii	"dump_sblk_queue: %d\012\000"
36659.LC121:
36660	.ascii	"buf id= %d state = %d ppa = %x\012\000"
36661.LC122:
36662	.ascii	"%s %d %d\012\000"
36663.LC123:
36664	.ascii	"gc_static_wearleveling: min blk: %x,sec=%d,xec = %d"
36665	.ascii	" ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
36666.LC124:
36667	.ascii	"gc_static_wearleveling: min slc blk: %x,sec=%d,xec "
36668	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
36669.LC125:
36670	.ascii	"gc_static_wearleveling: min tlc blk: %x,sec=%d,xec "
36671	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
36672.LC126:
36673	.ascii	"gc_static_wearleveling: max slc blk: %x,sec=%d,xec "
36674	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
36675.LC127:
36676	.ascii	"gc_static_wearleveling: max xlc blk: %x,sec=%d,xec "
36677	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
36678.LC128:
36679	.ascii	"gc_static_wearleveling: slc blk: %x, tlc blk: %d av"
36680	.ascii	"g slc ec: %d, avg tlc ec: %d \012\000"
36681.LC129:
36682	.ascii	"gc_static_wearleveling: min slc ec: %x, min tlc ec:"
36683	.ascii	" %d max slc ec: %d, max tlc ec: %d; %d %d\012\000"
36684.LC130:
36685	.ascii	"swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000"
36686.LC131:
36687	.ascii	"swl add slc gc  = %x, %d, %d, %d, %d, %d\012\000"
36688.LC132:
36689	.ascii	"free blk vpn error: %x %x\012\000"
36690.LC133:
36691	.ascii	"GC PM block %x %x %x %d\012\000"
36692.LC134:
36693	.ascii	"ftl_free_no_use_map_blk %x %x %x %d\012\000"
36694.LC135:
36695	.ascii	"...%d @ %s\012\000"
36696.LC136:
36697	.ascii	"...%s enter... %p\012\000"
36698.LC137:
36699	.ascii	"0:%x %x %x %x %x\012\000"
36700.LC138:
36701	.ascii	"g_nandc_ver...%d\012\000"
36702.LC139:
36703	.ascii	"rk_ftl_de_init %x\012\000"
36704.LC140:
36705	.ascii	"\0013\000"
36706.LC141:
36707	.ascii	"otp error! %d\000"
36708.LC142:
36709	.ascii	"rr\000"
36710.LC143:
36711	.ascii	"flash_abort_clear = %d\012\000"
36712.LC144:
36713	.ascii	"%d mtrans_cnt = %d page_num = %d\012\000"
36714.LC145:
36715	.ascii	"%d flReg.d32=%x %x\012\000"
36716.LC146:
36717	.ascii	"nandc:\000"
36718.LC147:
36719	.ascii	"nandc_xfer_done read error %x\012\000"
36720.LC148:
36721	.ascii	"dqs data abort %x\012\000"
36722.LC149:
36723	.ascii	"dqs data timeout %x\012\000"
36724.LC150:
36725	.ascii	"xfer error %x\012\000"
36726.LC151:
36727	.ascii	"MT %d row=%x,last status %d,status = %d\012\000"
36728.LC152:
36729	.ascii	"MT RR %d row=%x,count %d,status=%d\012\000"
36730.LC153:
36731	.ascii	"toshiba SRR %d row=%x, status=%d\012\000"
36732.LC154:
36733	.ascii	"toshiba TRR %d row=%x, status=%d\012\000"
36734.LC155:
36735	.ascii	"toshiba RR %d row=%x,count %d,status=%d\012\000"
36736.LC156:
36737	.ascii	"YMTC RR %d row=%x,count %d,status=%d\012\000"
36738.LC157:
36739	.ascii	"samsung SRR %d row=%x, status=%d\012\000"
36740.LC158:
36741	.ascii	"samsung TRR %d row=%x, status=%d\012\000"
36742.LC159:
36743	.ascii	"samsung RR %d row=%x,count %d,status=%d\012\000"
36744.LC160:
36745	.ascii	"hynix RR %d row=%x, count %d, status=%d\012\000"
36746.LC161:
36747	.ascii	"%d flash_ddr_tuning_read %x ecc=%d\012\000"
36748.LC162:
36749	.ascii	"sync para %d\012\000"
36750.LC163:
36751	.ascii	"DDR mode Read error %x %x\012\000"
36752.LC164:
36753	.ascii	"SDR mode Read %x %x ecc:%x\012\000"
36754.LC165:
36755	.ascii	"flash_read_page_en %x %x %x %x\012\000"
36756.LC166:
36757	.ascii	"flash_read_page_en %x %x error_ecc %d %d\012\000"
36758.LC167:
36759	.ascii	"flash_get_last_written_page: %x %x %x\012\000"
36760.LC168:
36761	.ascii	"flash_prog_page page_addr = %x status = %x\012\000"
36762.LC169:
36763	.ascii	"flash_prog_page %x %x %x\012\000"
36764.LC170:
36765	.ascii	"ymtc_flash_tlc_page_prog page_addr = %x status = %x"
36766	.ascii	"\012\000"
36767.LC171:
36768	.ascii	"sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012"
36769	.ascii	"\000"
36770.LC172:
36771	.ascii	"flash_complete_page_read %x %x error_ecc %d %d\012\000"
36772.LC173:
36773	.ascii	"read: %x %x %x %x\012\000"
36774.LC174:
36775	.ascii	"0set buf %d,status = %x, ppa = %x lun state = %d\012"
36776	.ascii	"\000"
36777.LC175:
36778	.ascii	"prog end %x %x error_ecc %d %d\012\000"
36779.LC176:
36780	.ascii	"1set buf %d,status = %x, ppa = %x lun state = %d\012"
36781	.ascii	"\000"
36782.LC177:
36783	.ascii	"dp prog end %x %x error_ecc %d %d\012\000"
36784.LC178:
36785	.ascii	"sblk_prog_page ppa = %x, count = %d\012\000"
36786.LC179:
36787	.ascii	"err: ppa = %x, status = %x, %x %x spare: %x %x %x %"
36788	.ascii	"x\012\000"
36789.LC180:
36790	.ascii	"flash_prog_page_en:%x %x %x\012\000"
36791.LC181:
36792	.ascii	"w d:\000"
36793.LC182:
36794	.ascii	"w s:\000"
36795.LC183:
36796	.ascii	"spare\000"
36797.LC184:
36798	.ascii	"data\000"
36799.LC185:
36800	.ascii	"write error: %x\012\000"
36801.LC186:
36802	.ascii	"g_ftl_info_blk blk = %x, page = %x version = %d\012"
36803	.ascii	"\000"
36804.LC187:
36805	.ascii	"%d %x @%d %x\012\000"
36806.LC188:
36807	.ascii	"ftl_info_blk_init %d %d %x\012\000"
36808.LC189:
36809	.ascii	"ftl info hash %x error\012\000"
36810.LC190:
36811	.ascii	"ink flag: %x\012\000"
36812.LC191:
36813	.ascii	"%s %d %d %x %x\012\000"
36814.LC192:
36815	.ascii	"ext info hash %x error\012\000"
36816.LC193:
36817	.ascii	"%s %x %x %x\012\000"
36818.LC194:
36819	.ascii	"ftl_sblk_dump_write = %x %d %d %d %d\012\000"
36820.LC195:
36821	.ascii	"blk= %x, page=%x, ppa = %x, status = %x, data:%x %x"
36822	.ascii	" %x %x, spare: %x %x %x %x\012\000"
36823.LC196:
36824	.ascii	"ftl_sblk_dump_write2 = %x %d %d %d\012\000"
36825.LC197:
36826	.ascii	"ftl_sblk_dump_write = %x %x\012\000"
36827.LC198:
36828	.ascii	"ftl_sblk_dump_write done = %x\012\000"
36829.LC199:
36830	.ascii	"%x: ink_scaned_blk_num %x\012\000"
36831.LC200:
36832	.ascii	"ftl_ink_check_sblk = %x %d %d\012\000"
36833.LC201:
36834	.ascii	"ftl_ink_check_sblk = %x %d %d end\012\000"
36835.LC202:
36836	.ascii	"alloc sblk %x %d\012\000"
36837.LC203:
36838	.ascii	"blk %x is bad block\012\000"
36839.LC204:
36840	.ascii	"pm_alloc_new_blk: %x %x %x %x\012\000"
36841.LC205:
36842	.ascii	"pm_write_page write error: %x\012\000"
36843.LC206:
36844	.ascii	"finfo:\000"
36845.LC207:
36846	.ascii	"flash_info_flush id = %x, page = %x\012\000"
36847.LC208:
36848	.ascii	"sys_info_flush error:%x\012\000"
36849.LC209:
36850	.ascii	"...%d @ %s %d %p\012\000"
36851.LC210:
36852	.ascii	"no sys info %x\012\000"
36853.LC211:
36854	.ascii	"l2p:\000"
36855.LC212:
36856	.ascii	"saved_active_page  = %x\012\000"
36857.LC213:
36858	.ascii	"saved_active_plane = %x\012\000"
36859.LC214:
36860	.ascii	"sblk = %x\012\000"
36861.LC215:
36862	.ascii	"phy_blk = %x %x\012\000"
36863.LC216:
36864	.ascii	"num_planes = %x\012\000"
36865.LC217:
36866	.ascii	"recovery blk=%x, page=%x, ppa = %x, status = %x, ha"
36867	.ascii	"sh:%x\012\000"
36868.LC218:
36869	.ascii	"data:\000"
36870.LC219:
36871	.ascii	"sblk = %x, vpn0 = %d, vpn1 = %d\012\000"
36872.LC220:
36873	.ascii	"dump_write_lpa = %x %x %x %x\012\000"
36874.LC221:
36875	.ascii	"dump write new ppa = %x, last ppa = %x lpa = %x\012"
36876	.ascii	"\000"
36877.LC222:
36878	.ascii	"dump write = %x %x %x\012\000"
36879.LC223:
36880	.ascii	"dump write hash update = %x %x %x\012\000"
36881.LC224:
36882	.ascii	"free_buf_count: %d\012\000"
36883.LC225:
36884	.ascii	"g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\012\000"
36885.LC226:
36886	.ascii	"ftl_ext_info_blk blk:0x%x, page:0x%x\012\000"
36887.LC227:
36888	.ascii	"ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
36889	.ascii	"_index:0x%x\012\000"
36890.LC228:
36891	.ascii	"tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, pag"
36892	.ascii	"e_index:0x%x\012\000"
36893.LC229:
36894	.ascii	"gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
36895	.ascii	"_index:0x%x\012\000"
36896.LC230:
36897	.ascii	"lpa:\000"
36898.LC231:
36899	.ascii	"vpn:\000"
36900.LC232:
36901	.ascii	"sblk:\000"
36902.LC233:
36903	.ascii	"lpa_hash:\000"
36904.LC234:
36905	.ascii	"lpa_hash_index:\000"
36906.LC235:
36907	.ascii	"%s w error lpn = %x, max ppa = %d\012\000"
36908.LC236:
36909	.ascii	"region_id = %d, pm_max_region = %d\012\000"
36910.LC237:
36911	.ascii	"load_l2p_region no ppa = %x , %x, all setting 0xff."
36912	.ascii	"...\012\000"
36913.LC238:
36914	.ascii	"load_l2p_region = %x,%x,%x, %x\012\000"
36915.LC239:
36916	.ascii	"pm_ppa:\000"
36917.LC240:
36918	.ascii	"spare:\000"
36919.LC241:
36920	.ascii	"pm_init posr %x %x %x\012\000"
36921.LC242:
36922	.ascii	"pm_init recovery %x %x %x\012\000"
36923.LC243:
36924	.ascii	"pm_init hash %x error\012\000"
36925.LC244:
36926	.ascii	"pm_log2phys  lpn = %d, max lpn = %d\012\000"
36927.LC245:
36928	.ascii	"ppa = %x, status = %x, data:%x %x %x %x, spare: %x "
36929	.ascii	"%x %x %x\012\000"
36930.LC246:
36931	.ascii	"ppa = %x, status = %x, %x %x spare: %x %x %x %x\012"
36932	.ascii	"\000"
36933.LC247:
36934	.ascii	"gc_recovery: %x vpn = %x\012\000"
36935.LC248:
36936	.ascii	"gc_update_l2p_map_new sblk %x\012\000"
36937.LC249:
36938	.ascii	"gc_update_l2p_map_new: %x %x %x\012\000"
36939.LC250:
36940	.ascii	"lpa: %x %x %x\012\000"
36941.LC251:
36942	.ascii	"gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\012"
36943	.ascii	"\000"
36944.LC252:
36945	.ascii	"gc_scan_src_blk = %x, vpn = %d\012\000"
36946.LC253:
36947	.ascii	"js hash error:%x %x %x\012\000"
36948.LC254:
36949	.ascii	"gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000"
36950.LC255:
36951	.ascii	"gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:"
36952	.ascii	"%d\012\000"
36953.LC256:
36954	.ascii	"ftl_sblk_dump = %x %d %d %d %d\012\000"
36955.LC257:
36956	.ascii	"ftl_sblk_dump = %x %x %x %x\012\000"
36957.LC258:
36958	.ascii	"page_addr = %x, lpa=%x vpn = %d\012\000"
36959.LC259:
36960	.ascii	"index= %x, lpa=%x\012\000"
36961.LC260:
36962	.ascii	"block = %x, vpn=%x check vpn = %x\012\000"
36963.LC261:
36964	.ascii	"ftl_read %x %x %x\012\000"
36965.LC262:
36966	.ascii	"ftl_read refresh =%x, lpa = %x, ppa= %x\012\000"
36967.LC263:
36968	.ascii	"id=%d, status = %x, lpa = %x, ppa = %x spare = %x %"
36969	.ascii	"x %x %x\012\000"
36970.LC264:
36971	.ascii	"zftl debug cmd: %s\012\000"
36972.LC265:
36973	.ascii	"cmd:\000"
36974.LC266:
36975	.ascii	"dumpl2p\000"
36976.LC267:
36977	.ascii	"pm l2p:\000"
36978.LC268:
36979	.ascii	"pm blk:\000"
36980.LC269:
36981	.ascii	"dumppm:\000"
36982.LC270:
36983	.ascii	"p_cmd: %s\012\000"
36984.LC271:
36985	.ascii	"pm ram = %x, %x\012\000"
36986.LC272:
36987	.ascii	"ram:\000"
36988.LC273:
36989	.ascii	"pm:\000"
36990.LC274:
36991	.ascii	"dumpsys\000"
36992.LC275:
36993	.ascii	"dumplist:\000"
36994.LC276:
36995	.ascii	"vpncheck\000"
36996.LC277:
36997	.ascii	"dumpppa:\000"
36998.LC278:
36999	.ascii	"dumpblk:\000"
37000.LC279:
37001	.ascii	"setzdebug:\000"
37002.LC280:
37003	.ascii	"lpa2ppa:\000"
37004.LC281:
37005	.ascii	"lpa: %x--> ppa: %x\012\000"
37006.LC282:
37007	.ascii	"help:\012\000"
37008.LC283:
37009	.ascii	"1. echo dumpl2p > /proc/zftl_debug\012\000"
37010.LC284:
37011	.ascii	"2. echo dumppm:x > /proc/zftl_debug\012\000"
37012.LC285:
37013	.ascii	"3. echo dumpsys > /proc/zftl_debug\012\000"
37014.LC286:
37015	.ascii	"4. echo dumpppa:x > /proc/zftl_debug\012\000"
37016.LC287:
37017	.ascii	"5. echo vpncheck > /proc/zftl_debug\012\000"
37018.LC288:
37019	.ascii	"6. echo setzdebug:x > /proc/zftl_debug\012\000"
37020.LC289:
37021	.ascii	"7. echo dumplist:x > /proc/zftl_debug\012\000"
37022.LC290:
37023	.ascii	"8. echo lpa2ppa:x> /proc/zftl_debug\012\000"
37024.LC291:
37025	.ascii	"ftl_update_l2p_map: %x %x %x\012\000"
37026.LC292:
37027	.ascii	"ftl_update_l2p_map\000"
37028.LC293:
37029	.ascii	"lpa_tbl:\000"
37030.LC294:
37031	.ascii	"sblk %x vpn: %d %d\012\000"
37032.LC295:
37033	.ascii	"error gc_add_sblk: %x\012\000"
37034.LC296:
37035	.ascii	"%d read error: ppa:%x, lpa:%x, status:%x\012\000"
37036.LC297:
37037	.ascii	"gc page in buf: lpa %x ppa = %x pageindex= %x\012\000"
37038.LC298:
37039	.ascii	"gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x "
37040	.ascii	"page_index= %d\012\000"
37041.LC299:
37042	.ascii	"gc %d: %d %d %d %d %d %d %d\012\000"
37043.LC300:
37044	.ascii	"GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\012"
37045	.ascii	"\000"
37046.LC301:
37047	.ascii	"gc free %x, %d\012\000"
37048.LC302:
37049	.ascii	"_c_user_data_density := %d\012\000"
37050.LC303:
37051	.ascii	"_c_totle_phy_density := %d\012\000"
37052.LC304:
37053	.ascii	"_c_totle_log_page := %d\012\000"
37054.LC305:
37055	.ascii	"_c_totle_data_density := %d\012\000"
37056.LC306:
37057	.ascii	"_c_ftl_pm_page_num := %d\012\000"
37058.LC307:
37059	.ascii	"_c_ftl_byte_pre_page := %d\012\000"
37060.LC308:
37061	.ascii	"_c_max_pm_sblk := %d\012\000"
37062.LC309:
37063	.ascii	"_min_slc_super_block := %d\012\000"
37064.LC310:
37065	.ascii	"_max_xlc_super_block := %d\012\000"
37066.LC311:
37067	.ascii	"gp_ftl_ext_info %p %p %p\012\000"
37068.LC312:
37069	.ascii	"flash info size: %d %d %d\012\000"
37070.LC313:
37071	.ascii	"ftl_init %x\012\000"
37072.LC314:
37073	.ascii	"ftlwrite %x %x %x %x\012\000"
37074.LC315:
37075	.ascii	"ftl_discard:(%x, %x, %x, %x)\012\000"
37076.LC316:
37077	.ascii	"id_block_prog_msb_ff_data slc page = %d pageadd=%x "
37078	.ascii	"%x\012\000"
37079.LC317:
37080	.ascii	"write_idblock fix data %x %x\012\000"
37081.LC318:
37082	.ascii	"idblk:\000"
37083.LC319:
37084	.ascii	"write_idblock totle_sec %x %x\012\000"
37085.LC320:
37086	.ascii	"prog page: %x %x %x, %p %x %x %x\012\000"
37087.LC321:
37088	.ascii	"read page: %x %x %x %x\012\000"
37089.LC322:
37090	.ascii	"wl_lba %p %x %x %x\012\000"
37091.LC323:
37092	.ascii	"return ret = %lx\012\000"
37093.LC324:
37094	.ascii	"\0013vendor storage %x,%x,%x\012\000"
37095