xref: /rk3399_rockchip-uboot/drivers/rknand/rk_ftl_arm_v8.S (revision 84dc46da6af3ace6116f0f964ff14ba4e0bcd406)
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: 2020-09-23
9 */
10	.arch armv8-a
11	.file	"rk_ftl_arm_v8.S"
12	.section	.text.flash_read_ecc,"ax",@progbits
13	.align	2
14	.type	flash_read_ecc, %function
15flash_read_ecc:
16	ubfiz	x0, x0, 4, 8
17	adrp	x1, .LANCHOR0
18	add	x1, x1, :lo12:.LANCHOR0
19	stp	x29, x30, [sp, -32]!
20	add	x2, x1, x0
21	add	x29, sp, 0
22	ldr	x0, [x1, x0]
23	str	x19, [sp, 16]
24	ldrb	w19, [x2, 8]
25	add	x19, x0, x19, lsl 8
26	mov	w0, 122
27	str	w0, [x19, 2056]
28	mov	x0, 80
29	bl	udelay
30	ldr	w1, [x19, 2048]
31	ldr	w0, [x19, 2048]
32	and	w1, w1, 15
33	and	w0, w0, 15
34	cmp	w1, w0
35	csel	w1, w1, w0, cs
36	ldr	w0, [x19, 2048]
37	ldr	w2, [x19, 2048]
38	and	w0, w0, 15
39	ldr	x19, [sp, 16]
40	and	w2, w2, 15
41	cmp	w0, w2
42	csel	w0, w0, w2, cs
43	cmp	w0, w1
44	csel	w0, w0, w1, cs
45	ldp	x29, x30, [sp], 32
46	ret
47	.size	flash_read_ecc, .-flash_read_ecc
48	.section	.text.ftl_set_blk_mode.part.11,"ax",@progbits
49	.align	2
50	.type	ftl_set_blk_mode.part.11, %function
51ftl_set_blk_mode.part.11:
52	and	w0, w0, 65535
53	adrp	x2, .LANCHOR1
54	ubfx	x1, x0, 5, 11
55	ldr	x3, [x2, #:lo12:.LANCHOR1]
56	lsl	x1, x1, 2
57	and	w0, w0, 31
58	mov	w2, 1
59	lsl	w2, w2, w0
60	ldr	w0, [x3, x1]
61	orr	w0, w0, w2
62	str	w0, [x3, x1]
63	ret
64	.size	ftl_set_blk_mode.part.11, .-ftl_set_blk_mode.part.11
65	.section	.text.FlashMemCmp8,"ax",@progbits
66	.align	2
67	.global	FlashMemCmp8
68	.type	FlashMemCmp8, %function
69FlashMemCmp8:
70	adrp	x3, .LANCHOR2
71	ldrb	w3, [x3, #:lo12:.LANCHOR2]
72	cbz	w3, .L9
73	ldrb	w4, [x0, 1]
74	ldrb	w3, [x1, 1]
75	cmp	w4, w3
76	beq	.L10
77.L9:
78	mov	x3, 0
79.L7:
80	mov	w4, w3
81	cmp	w3, w2
82	bcc	.L8
83.L10:
84	mov	w0, 0
85	ret
86.L8:
87	ldrb	w5, [x0, x3]
88	add	x3, x3, 1
89	add	x6, x1, x3
90	ldrb	w6, [x6, -1]
91	cmp	w6, w5
92	beq	.L7
93	add	w0, w4, 1
94	ret
95	.size	FlashMemCmp8, .-FlashMemCmp8
96	.section	.text.FlashRsvdBlkChk,"ax",@progbits
97	.align	2
98	.global	FlashRsvdBlkChk
99	.type	FlashRsvdBlkChk, %function
100FlashRsvdBlkChk:
101	adrp	x2, .LANCHOR3
102	adrp	x3, .LANCHOR4
103	and	w0, w0, 255
104	ldrb	w2, [x2, #:lo12:.LANCHOR3]
105	ldr	w3, [x3, #:lo12:.LANCHOR4]
106	mul	w2, w2, w3
107	cmp	w2, w1
108	bls	.L14
109	cmp	w0, 0
110	cset	w0, ne
111	ret
112.L14:
113	mov	w0, 1
114	ret
115	.size	FlashRsvdBlkChk, .-FlashRsvdBlkChk
116	.section	.text.FlashGetRandomizer,"ax",@progbits
117	.align	2
118	.global	FlashGetRandomizer
119	.type	FlashGetRandomizer, %function
120FlashGetRandomizer:
121	and	x3, x1, 127
122	adrp	x2, .LANCHOR5
123	add	x2, x2, :lo12:.LANCHOR5
124	ldrh	w4, [x2, x3, lsl 1]
125	adrp	x2, .LANCHOR6
126	ldrb	w2, [x2, #:lo12:.LANCHOR6]
127	cbz	w2, .L23
128	stp	x29, x30, [sp, -16]!
129	and	w0, w0, 255
130	add	x29, sp, 0
131	bl	FlashRsvdBlkChk
132	cmp	w0, 0
133	orr	w1, w4, -1073741824
134	csel	w4, w1, w4, ne
135	mov	w0, w4
136	ldp	x29, x30, [sp], 16
137	ret
138.L23:
139	mov	w0, w4
140	ret
141	.size	FlashGetRandomizer, .-FlashGetRandomizer
142	.section	.text.FlashSetRandomizer,"ax",@progbits
143	.align	2
144	.global	FlashSetRandomizer
145	.type	FlashSetRandomizer, %function
146FlashSetRandomizer:
147	and	w5, w0, 255
148	and	x2, x1, 127
149	adrp	x0, .LANCHOR5
150	add	x0, x0, :lo12:.LANCHOR5
151	ldrh	w4, [x0, x2, lsl 1]
152	adrp	x0, .LANCHOR6
153	ldrb	w0, [x0, #:lo12:.LANCHOR6]
154	cbz	w0, .L34
155	stp	x29, x30, [sp, -16]!
156	mov	w0, w5
157	add	x29, sp, 0
158	bl	FlashRsvdBlkChk
159	cmp	w0, 0
160	sbfiz	x5, x5, 4, 32
161	adrp	x0, .LANCHOR0
162	add	x0, x0, :lo12:.LANCHOR0
163	orr	w1, w4, -1073741824
164	csel	w4, w1, w4, ne
165	ldr	x0, [x0, x5]
166	str	w4, [x0, 336]
167	ldp	x29, x30, [sp], 16
168	ret
169.L34:
170	sbfiz	x5, x5, 4, 32
171	adrp	x0, .LANCHOR0
172	add	x0, x0, :lo12:.LANCHOR0
173	ldr	x0, [x0, x5]
174	str	w4, [x0, 336]
175	ret
176	.size	FlashSetRandomizer, .-FlashSetRandomizer
177	.section	.text.FlashBlockAlignInit,"ax",@progbits
178	.align	2
179	.global	FlashBlockAlignInit
180	.type	FlashBlockAlignInit, %function
181FlashBlockAlignInit:
182	and	w0, w0, 65535
183	adrp	x1, .LANCHOR4
184	cmp	w0, 512
185	bls	.L38
186	mov	w0, 1024
187.L42:
188	str	w0, [x1, #:lo12:.LANCHOR4]
189	ret
190.L38:
191	cmp	w0, 256
192	bls	.L40
193	mov	w0, 512
194	b	.L42
195.L40:
196	cmp	w0, 128
197	bls	.L42
198	mov	w0, 256
199	b	.L42
200	.size	FlashBlockAlignInit, .-FlashBlockAlignInit
201	.section	.text.FlashReadCmd,"ax",@progbits
202	.align	2
203	.global	FlashReadCmd
204	.type	FlashReadCmd, %function
205FlashReadCmd:
206	and	w0, w0, 255
207	adrp	x2, .LANCHOR0
208	sbfiz	x3, x0, 4, 32
209	add	x2, x2, :lo12:.LANCHOR0
210	add	x4, x2, x3
211	ldr	x2, [x2, x3]
212	adrp	x3, .LANCHOR7
213	ldrb	w4, [x4, 8]
214	ldr	x3, [x3, #:lo12:.LANCHOR7]
215	ldrb	w3, [x3, 7]
216	cmp	w3, 1
217	bne	.L44
218	sxtw	x3, w4
219	mov	w5, 38
220	add	x3, x3, 8
221	add	x3, x2, x3, lsl 8
222	str	w5, [x3, 8]
223.L44:
224	ubfiz	x4, x4, 8, 8
225	and	w3, w1, 255
226	add	x2, x2, x4
227	str	wzr, [x2, 2056]
228	str	wzr, [x2, 2052]
229	str	wzr, [x2, 2052]
230	str	w3, [x2, 2052]
231	lsr	w3, w1, 8
232	str	w3, [x2, 2052]
233	lsr	w3, w1, 16
234	str	w3, [x2, 2052]
235	mov	w3, 48
236	str	w3, [x2, 2056]
237	b	FlashSetRandomizer
238	.size	FlashReadCmd, .-FlashReadCmd
239	.section	.text.FlashReadDpDataOutCmd,"ax",@progbits
240	.align	2
241	.global	FlashReadDpDataOutCmd
242	.type	FlashReadDpDataOutCmd, %function
243FlashReadDpDataOutCmd:
244	and	w0, w0, 255
245	adrp	x2, .LANCHOR0
246	sbfiz	x3, x0, 4, 32
247	add	x2, x2, :lo12:.LANCHOR0
248	add	x4, x2, x3
249	and	w5, w1, 255
250	ldr	x6, [x2, x3]
251	adrp	x2, .LANCHOR8+16
252	lsr	w3, w1, 16
253	ldrb	w2, [x2, #:lo12:.LANCHOR8+16]
254	cmp	w2, 1
255	ldrb	w2, [x4, 8]
256	lsr	w4, w1, 8
257	add	x2, x6, x2, lsl 8
258	bne	.L46
259	mov	w6, 6
260	str	w6, [x2, 2056]
261	str	wzr, [x2, 2052]
262	str	wzr, [x2, 2052]
263	str	w5, [x2, 2052]
264	str	w4, [x2, 2052]
265	str	w3, [x2, 2052]
266.L48:
267	mov	w3, 224
268	str	w3, [x2, 2056]
269	b	FlashSetRandomizer
270.L46:
271	str	wzr, [x2, 2056]
272	str	wzr, [x2, 2052]
273	str	wzr, [x2, 2052]
274	str	w5, [x2, 2052]
275	str	w4, [x2, 2052]
276	str	w3, [x2, 2052]
277	mov	w3, 5
278	str	w3, [x2, 2056]
279	str	wzr, [x2, 2052]
280	str	wzr, [x2, 2052]
281	b	.L48
282	.size	FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
283	.section	.text.FlashProgFirstCmd,"ax",@progbits
284	.align	2
285	.global	FlashProgFirstCmd
286	.type	FlashProgFirstCmd, %function
287FlashProgFirstCmd:
288	and	w0, w0, 255
289	adrp	x4, .LANCHOR0
290	sbfiz	x5, x0, 4, 32
291	add	x4, x4, :lo12:.LANCHOR0
292	add	x2, x4, x5
293	lsr	w3, w1, 16
294	ldr	x4, [x4, x5]
295	ldrb	w2, [x2, 8]
296	add	x2, x4, x2, lsl 8
297	mov	w4, 128
298	str	w4, [x2, 2056]
299	and	w4, w1, 255
300	str	wzr, [x2, 2052]
301	str	wzr, [x2, 2052]
302	str	w4, [x2, 2052]
303	lsr	w4, w1, 8
304	str	w4, [x2, 2052]
305	str	w3, [x2, 2052]
306	b	FlashSetRandomizer
307	.size	FlashProgFirstCmd, .-FlashProgFirstCmd
308	.section	.text.FlashEraseCmd,"ax",@progbits
309	.align	2
310	.global	FlashEraseCmd
311	.type	FlashEraseCmd, %function
312FlashEraseCmd:
313	ubfiz	x0, x0, 4, 8
314	adrp	x3, .LANCHOR0
315	add	x3, x3, :lo12:.LANCHOR0
316	add	x4, x3, x0
317	ldr	x3, [x3, x0]
318	ldrb	w0, [x4, 8]
319	cbz	w2, .L51
320	add	x2, x3, x0, lsl 8
321	mov	w4, 96
322	str	w4, [x2, 2056]
323	and	w4, w1, 255
324	str	w4, [x2, 2052]
325	lsr	w4, w1, 8
326	str	w4, [x2, 2052]
327	lsr	w4, w1, 16
328	str	w4, [x2, 2052]
329	adrp	x2, .LANCHOR4
330	ldr	w2, [x2, #:lo12:.LANCHOR4]
331	add	w1, w1, w2
332.L51:
333	add	x0, x3, x0, lsl 8
334	mov	w2, 96
335	str	w2, [x0, 2056]
336	and	w2, w1, 255
337	str	w2, [x0, 2052]
338	lsr	w2, w1, 8
339	str	w2, [x0, 2052]
340	lsr	w1, w1, 16
341	str	w1, [x0, 2052]
342	mov	w1, 208
343	str	w1, [x0, 2056]
344	ret
345	.size	FlashEraseCmd, .-FlashEraseCmd
346	.section	.text.FlashProgDpSecondCmd,"ax",@progbits
347	.align	2
348	.global	FlashProgDpSecondCmd
349	.type	FlashProgDpSecondCmd, %function
350FlashProgDpSecondCmd:
351	and	w0, w0, 255
352	adrp	x2, .LANCHOR8+11
353	sbfiz	x5, x0, 4, 32
354	adrp	x4, .LANCHOR0
355	add	x4, x4, :lo12:.LANCHOR0
356	ldrb	w6, [x2, #:lo12:.LANCHOR8+11]
357	add	x2, x4, x5
358	lsr	w3, w1, 16
359	ldr	x4, [x4, x5]
360	ldrb	w2, [x2, 8]
361	add	x2, x4, x2, lsl 8
362	and	w4, w1, 255
363	str	w6, [x2, 2056]
364	str	wzr, [x2, 2052]
365	str	wzr, [x2, 2052]
366	str	w4, [x2, 2052]
367	lsr	w4, w1, 8
368	str	w4, [x2, 2052]
369	str	w3, [x2, 2052]
370	b	FlashSetRandomizer
371	.size	FlashProgDpSecondCmd, .-FlashProgDpSecondCmd
372	.section	.text.FlashProgSecondCmd,"ax",@progbits
373	.align	2
374	.global	FlashProgSecondCmd
375	.type	FlashProgSecondCmd, %function
376FlashProgSecondCmd:
377	ubfiz	x0, x0, 4, 8
378	adrp	x1, .LANCHOR0
379	add	x1, x1, :lo12:.LANCHOR0
380	add	x2, x1, x0
381	ldr	x1, [x1, x0]
382	ldrb	w0, [x2, 8]
383	add	x0, x0, 8
384	add	x0, x1, x0, lsl 8
385	mov	w1, 16
386	str	w1, [x0, 8]
387	ret
388	.size	FlashProgSecondCmd, .-FlashProgSecondCmd
389	.section	.text.FlashProgDpFirstCmd,"ax",@progbits
390	.align	2
391	.global	FlashProgDpFirstCmd
392	.type	FlashProgDpFirstCmd, %function
393FlashProgDpFirstCmd:
394	ubfiz	x0, x0, 4, 8
395	adrp	x1, .LANCHOR0
396	add	x1, x1, :lo12:.LANCHOR0
397	add	x3, x1, x0
398	ldr	x2, [x1, x0]
399	adrp	x0, .LANCHOR8+10
400	ldrb	w1, [x0, #:lo12:.LANCHOR8+10]
401	ldrb	w0, [x3, 8]
402	add	x0, x0, 8
403	add	x0, x2, x0, lsl 8
404	str	w1, [x0, 8]
405	ret
406	.size	FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
407	.section	.text.FlashReadStatus,"ax",@progbits
408	.align	2
409	.global	FlashReadStatus
410	.type	FlashReadStatus, %function
411FlashReadStatus:
412	ubfiz	x0, x0, 4, 8
413	adrp	x1, .LANCHOR0
414	add	x1, x1, :lo12:.LANCHOR0
415	stp	x29, x30, [sp, -32]!
416	add	x2, x1, x0
417	add	x29, sp, 0
418	ldr	x0, [x1, x0]
419	str	x19, [sp, 16]
420	ldrb	w19, [x2, 8]
421	add	x19, x0, x19, lsl 8
422	mov	w0, 112
423	str	w0, [x19, 2056]
424	mov	x0, 80
425	bl	udelay
426	ldr	w0, [x19, 2048]
427	ldr	x19, [sp, 16]
428	ldp	x29, x30, [sp], 32
429	ret
430	.size	FlashReadStatus, .-FlashReadStatus
431	.section	.text.js_hash,"ax",@progbits
432	.align	2
433	.global	js_hash
434	.type	js_hash, %function
435js_hash:
436	mov	x4, x0
437	mov	w0, 42982
438	mov	x3, 0
439	movk	w0, 0x47c6, lsl 16
440.L61:
441	cmp	w1, w3
442	bhi	.L62
443	ret
444.L62:
445	lsr	w2, w0, 2
446	ldrb	w5, [x4, x3]
447	add	w2, w2, w0, lsl 5
448	add	x3, x3, 1
449	add	w2, w2, w5
450	eor	w0, w0, w2
451	b	.L61
452	.size	js_hash, .-js_hash
453	.section	.text.FlashLoadIdbInfo,"ax",@progbits
454	.align	2
455	.global	FlashLoadIdbInfo
456	.type	FlashLoadIdbInfo, %function
457FlashLoadIdbInfo:
458	mov	w0, 0
459	ret
460	.size	FlashLoadIdbInfo, .-FlashLoadIdbInfo
461	.section	.text.FlashPrintInfo,"ax",@progbits
462	.align	2
463	.global	FlashPrintInfo
464	.type	FlashPrintInfo, %function
465FlashPrintInfo:
466	ret
467	.size	FlashPrintInfo, .-FlashPrintInfo
468	.section	.text.ToshibaSetRRPara,"ax",@progbits
469	.align	2
470	.global	ToshibaSetRRPara
471	.type	ToshibaSetRRPara, %function
472ToshibaSetRRPara:
473	stp	x29, x30, [sp, -96]!
474	add	x29, sp, 0
475	str	x27, [sp, 80]
476	and	w27, w1, 255
477	add	w2, w27, 1
478	stp	x21, x22, [sp, 32]
479	mov	x21, x0
480	mov	w0, 5
481	stp	x19, x20, [sp, 16]
482	adrp	x20, .LANCHOR9
483	umull	x2, w2, w0
484	stp	x23, x24, [sp, 48]
485	adrp	x0, .LANCHOR10
486	add	x20, x20, :lo12:.LANCHOR9
487	add	x24, x0, :lo12:.LANCHOR10
488	stp	x25, x26, [sp, 64]
489	adrp	x23, .LANCHOR13
490	adrp	x25, .LANCHOR11
491	adrp	x26, .LANCHOR12
492	add	x23, x23, :lo12:.LANCHOR13
493	add	x25, x25, :lo12:.LANCHOR11
494	add	x26, x26, :lo12:.LANCHOR12
495	add	x20, x20, x2
496	add	x24, x24, x2
497	mov	x22, x0
498	mov	x19, 0
499.L66:
500	ldrb	w0, [x23]
501	cmp	w0, w19
502	bhi	.L70
503	ldp	x19, x20, [sp, 16]
504	ldp	x21, x22, [sp, 32]
505	ldp	x23, x24, [sp, 48]
506	ldp	x25, x26, [sp, 64]
507	ldr	x27, [sp, 80]
508	ldp	x29, x30, [sp], 96
509	ret
510.L70:
511	mov	w0, 85
512	str	w0, [x21, 8]
513	add	x0, x22, :lo12:.LANCHOR10
514	ldrsb	w0, [x19, x0]
515	str	w0, [x21, 4]
516	mov	x0, 200
517	bl	udelay
518	ldrb	w0, [x25]
519	cmp	w0, 34
520	bne	.L67
521	ldrsb	w0, [x24, x19]
522.L72:
523	add	x19, x19, 1
524	str	w0, [x21]
525	b	.L66
526.L67:
527	cmp	w0, 35
528	bne	.L69
529	ldrsb	w0, [x20, x19]
530	b	.L72
531.L69:
532	ldrsb	w0, [x26, w27, sxtw]
533	b	.L72
534	.size	ToshibaSetRRPara, .-ToshibaSetRRPara
535	.section	.text.SamsungSetRRPara,"ax",@progbits
536	.align	2
537	.global	SamsungSetRRPara
538	.type	SamsungSetRRPara, %function
539SamsungSetRRPara:
540	stp	x29, x30, [sp, -64]!
541	add	x29, sp, 0
542	stp	x21, x22, [sp, 32]
543	ubfiz	x21, x1, 2, 8
544	mov	x22, x0
545	add	x21, x21, 4
546	adrp	x0, .LANCHOR14
547	add	x0, x0, :lo12:.LANCHOR14
548	stp	x19, x20, [sp, 16]
549	add	x21, x0, x21
550	stp	x23, x24, [sp, 48]
551	mov	x19, x0
552	adrp	x23, .LANCHOR13
553	add	x23, x23, :lo12:.LANCHOR13
554	mov	x20, 0
555	mov	w24, 161
556.L74:
557	ldrb	w0, [x23]
558	cmp	w0, w20
559	bhi	.L75
560	ldp	x19, x20, [sp, 16]
561	ldp	x21, x22, [sp, 32]
562	ldp	x23, x24, [sp, 48]
563	ldp	x29, x30, [sp], 64
564	ret
565.L75:
566	str	w24, [x22, 8]
567	str	wzr, [x22]
568	ldrsb	w0, [x20, x19]
569	str	w0, [x22]
570	ldrsb	w0, [x21, x20]
571	add	x20, x20, 1
572	str	w0, [x22]
573	mov	x0, 300
574	bl	udelay
575	b	.L74
576	.size	SamsungSetRRPara, .-SamsungSetRRPara
577	.section	.text.LogAddr2PhyAddr,"ax",@progbits
578	.align	2
579	.global	LogAddr2PhyAddr
580	.type	LogAddr2PhyAddr, %function
581LogAddr2PhyAddr:
582	adrp	x6, .LANCHOR15
583	add	x6, x6, :lo12:.LANCHOR15
584	and	w4, w4, 255
585	ldrh	w8, [x6, 12]
586	ldrh	w5, [x6, 14]
587	mul	w5, w5, w8
588	and	w8, w5, 65535
589	adrp	x5, .LANCHOR4
590	ldrh	w7, [x5, #:lo12:.LANCHOR4]
591	adrp	x5, .LANCHOR2
592	ldrb	w6, [x5, #:lo12:.LANCHOR2]
593	ubfiz	w5, w7, 1, 15
594	cmp	w6, 1
595	ldr	w6, [x0, 4]
596	csel	w7, w5, w7, eq
597	cmp	w1, 1
598	ubfx	x11, x6, 10, 16
599	and	w6, w6, 1023
600	udiv	w5, w11, w8
601	and	w10, w5, 65535
602	msub	w5, w5, w8, w11
603	and	w5, w5, 65535
604	bne	.L79
605	adrp	x1, .LANCHOR16
606	ldrb	w1, [x1, #:lo12:.LANCHOR16]
607	cbnz	w1, .L79
608	adrp	x1, .LANCHOR17
609	add	x1, x1, :lo12:.LANCHOR17
610	ldrh	w6, [x1, w6, sxtw 1]
611.L79:
612	uxtw	x8, w10
613	adrp	x1, .LANCHOR18
614	add	x1, x1, :lo12:.LANCHOR18
615	cmp	w4, 1
616	ldr	w1, [x1, x8, lsl 2]
617	madd	w5, w5, w7, w1
618	add	w5, w5, w6
619	str	w5, [x2]
620	str	w10, [x3]
621	bls	.L81
622	ldr	w1, [x0, 4]
623	ldr	w0, [x0, 60]
624	add	w1, w1, 1024
625	cmp	w1, w0
626	cset	w0, eq
627	ret
628.L81:
629	mov	w0, 0
630	ret
631	.size	LogAddr2PhyAddr, .-LogAddr2PhyAddr
632	.section	.text.FlashReadStatusEN,"ax",@progbits
633	.align	2
634	.global	FlashReadStatusEN
635	.type	FlashReadStatusEN, %function
636FlashReadStatusEN:
637	stp	x29, x30, [sp, -32]!
638	ubfiz	x0, x0, 4, 8
639	adrp	x3, .LANCHOR0
640	add	x3, x3, :lo12:.LANCHOR0
641	add	x29, sp, 0
642	stp	x19, x20, [sp, 16]
643	add	x4, x3, x0
644	ldr	x20, [x3, x0]
645	adrp	x0, .LANCHOR7
646	ldr	x0, [x0, #:lo12:.LANCHOR7]
647	ldrb	w19, [x4, 8]
648	ldrb	w0, [x0, 8]
649	cmp	w0, 2
650	bne	.L83
651	and	w2, w2, 255
652	adrp	x0, .LANCHOR8
653	cbnz	w2, .L84
654	add	x2, x0, :lo12:.LANCHOR8
655	ldrb	w3, [x2, 13]
656.L94:
657	add	x2, x19, 8
658	add	x0, x0, :lo12:.LANCHOR8
659	add	x2, x20, x2, lsl 8
660	str	w3, [x2, 8]
661	ldrb	w4, [x0, 15]
662	cbz	w4, .L88
663	add	x3, x19, 8
664	mov	w2, 0
665	add	x3, x20, x3, lsl 8
666.L87:
667	cmp	w2, w4
668	bcc	.L89
669.L88:
670	add	x19, x19, 8
671	mov	x0, 80
672	lsl	x19, x19, 8
673	bl	udelay
674	ldr	w0, [x20, x19]
675	ldp	x19, x20, [sp, 16]
676	and	w0, w0, 255
677	ldp	x29, x30, [sp], 32
678	ret
679.L84:
680	add	x2, x0, :lo12:.LANCHOR8
681	ldrb	w3, [x2, 14]
682	b	.L94
683.L89:
684	lsl	w0, w2, 3
685	add	w2, w2, 1
686	lsr	w0, w1, w0
687	and	w0, w0, 255
688	str	w0, [x3, 4]
689	b	.L87
690.L83:
691	add	x0, x19, 8
692	mov	w1, 112
693	add	x0, x20, x0, lsl 8
694	str	w1, [x0, 8]
695	b	.L88
696	.size	FlashReadStatusEN, .-FlashReadStatusEN
697	.section	.text.FlashWaitReadyEN,"ax",@progbits
698	.align	2
699	.global	FlashWaitReadyEN
700	.type	FlashWaitReadyEN, %function
701FlashWaitReadyEN:
702	stp	x29, x30, [sp, -48]!
703	add	x29, sp, 0
704	stp	x19, x20, [sp, 16]
705	and	w19, w0, 255
706	str	x21, [sp, 32]
707	mov	w20, w1
708	and	w21, w2, 255
709.L99:
710	mov	w1, w20
711	mov	w2, w21
712	mov	w0, w19
713	bl	FlashReadStatusEN
714	mov	w1, w0
715	cmp	w0, 255
716	beq	.L99
717	tbz	x1, 6, .L99
718	ldp	x19, x20, [sp, 16]
719	ldr	x21, [sp, 32]
720	ldp	x29, x30, [sp], 48
721	ret
722	.size	FlashWaitReadyEN, .-FlashWaitReadyEN
723	.section	.text.NandcReadDontCaseBusyEn,"ax",@progbits
724	.align	2
725	.global	NandcReadDontCaseBusyEn
726	.type	NandcReadDontCaseBusyEn, %function
727NandcReadDontCaseBusyEn:
728	ret
729	.size	NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn
730	.section	.text.NandcGetChipIf,"ax",@progbits
731	.align	2
732	.global	NandcGetChipIf
733	.type	NandcGetChipIf, %function
734NandcGetChipIf:
735	ubfiz	x0, x0, 4, 8
736	adrp	x1, .LANCHOR0
737	add	x1, x1, :lo12:.LANCHOR0
738	add	x2, x1, x0
739	ldr	x0, [x1, x0]
740	ldrb	w2, [x2, 8]
741	add	x2, x2, 8
742	add	x0, x0, x2, lsl 8
743	ret
744	.size	NandcGetChipIf, .-NandcGetChipIf
745	.section	.text.NandcSetDdrPara,"ax",@progbits
746	.align	2
747	.global	NandcSetDdrPara
748	.type	NandcSetDdrPara, %function
749NandcSetDdrPara:
750	adrp	x1, .LANCHOR19
751	and	w0, w0, 255
752	lsl	w2, w0, 8
753	ldr	x1, [x1, #:lo12:.LANCHOR19]
754	orr	w0, w2, w0, lsl 16
755	orr	w0, w0, 1
756	str	w0, [x1, 304]
757	ret
758	.size	NandcSetDdrPara, .-NandcSetDdrPara
759	.section	.text.NandcSetDdrDiv,"ax",@progbits
760	.align	2
761	.global	NandcSetDdrDiv
762	.type	NandcSetDdrDiv, %function
763NandcSetDdrDiv:
764	adrp	x1, .LANCHOR19
765	and	w0, w0, 255
766	mov	w2, 16640
767	orr	w0, w0, w2
768	ldr	x1, [x1, #:lo12:.LANCHOR19]
769	str	w0, [x1, 344]
770	ret
771	.size	NandcSetDdrDiv, .-NandcSetDdrDiv
772	.section	.text.NandcSetDdrMode,"ax",@progbits
773	.align	2
774	.global	NandcSetDdrMode
775	.type	NandcSetDdrMode, %function
776NandcSetDdrMode:
777	adrp	x1, .LANCHOR19
778	cmp	w0, 0
779	ldr	x2, [x1, #:lo12:.LANCHOR19]
780	ldr	w1, [x2]
781	and	w3, w1, -8193
782	orr	w1, w1, 253952
783	csel	w1, w1, w3, ne
784	str	w1, [x2]
785	ret
786	.size	NandcSetDdrMode, .-NandcSetDdrMode
787	.section	.text.NandcSetMode,"ax",@progbits
788	.align	2
789	.global	NandcSetMode
790	.type	NandcSetMode, %function
791NandcSetMode:
792	adrp	x1, .LANCHOR19
793	and	w0, w0, 255
794	tst	w0, 6
795	ldr	x2, [x1, #:lo12:.LANCHOR19]
796	ldr	w1, [x2]
797	beq	.L111
798	orr	w1, w1, 24576
799	tst	x0, 4
800	and	w1, w1, -32769
801	mov	w0, 16641
802	orr	w1, w1, 196608
803	str	w0, [x2, 344]
804	mov	w0, 6659
805	orr	w3, w1, 32768
806	movk	w0, 0x1a, lsl 16
807	str	w0, [x2, 304]
808	csel	w1, w3, w1, ne
809	mov	w0, 38
810	str	w0, [x2, 308]
811	mov	w0, 39
812	str	w0, [x2, 308]
813.L113:
814	mov	w0, 0
815	str	w1, [x2]
816	ret
817.L111:
818	and	w1, w1, -8193
819	b	.L113
820	.size	NandcSetMode, .-NandcSetMode
821	.section	.text.NandcFlashCs,"ax",@progbits
822	.align	2
823	.global	NandcFlashCs
824	.type	NandcFlashCs, %function
825NandcFlashCs:
826	ubfiz	x0, x0, 4, 8
827	adrp	x1, .LANCHOR0
828	add	x1, x1, :lo12:.LANCHOR0
829	add	x3, x1, x0
830	ldr	x2, [x1, x0]
831	mov	w1, 1
832	ldrb	w3, [x3, 8]
833	ldr	w0, [x2]
834	lsl	w1, w1, w3
835	bfi	w0, w1, 0, 8
836	str	w0, [x2]
837	ret
838	.size	NandcFlashCs, .-NandcFlashCs
839	.section	.text.NandcFlashDeCs,"ax",@progbits
840	.align	2
841	.global	NandcFlashDeCs
842	.type	NandcFlashDeCs, %function
843NandcFlashDeCs:
844	ubfiz	x0, x0, 4, 8
845	adrp	x1, .LANCHOR0
846	add	x1, x1, :lo12:.LANCHOR0
847	ldr	x1, [x1, x0]
848	ldr	w0, [x1]
849	and	w0, w0, -256
850	and	w0, w0, -131073
851	str	w0, [x1]
852	ret
853	.size	NandcFlashDeCs, .-NandcFlashDeCs
854	.section	.text.HynixSetRRPara,"ax",@progbits
855	.align	2
856	.global	HynixSetRRPara
857	.type	HynixSetRRPara, %function
858HynixSetRRPara:
859	stp	x29, x30, [sp, -80]!
860	add	x29, sp, 0
861	stp	x21, x22, [sp, 32]
862	and	w22, w0, 255
863	adrp	x0, .LANCHOR7
864	stp	x19, x20, [sp, 16]
865	stp	x25, x26, [sp, 64]
866	mov	x20, x2
867	ldr	x0, [x0, #:lo12:.LANCHOR7]
868	and	w26, w1, 255
869	stp	x23, x24, [sp, 48]
870	and	w21, w3, 255
871	adrp	x19, .LANCHOR20
872	ldrb	w0, [x0, 19]
873	cmp	w0, 6
874	bne	.L119
875	add	x0, x19, :lo12:.LANCHOR20
876	ubfiz	x19, x22, 6, 8
877	add	x19, x19, 20
878	add	x19, x19, x21, uxtw 2
879.L126:
880	add	x19, x0, x19
881.L120:
882	sxtw	x25, w22
883	adrp	x0, .LANCHOR0
884	lsl	x1, x25, 4
885	add	x0, x0, :lo12:.LANCHOR0
886	add	x2, x0, x1
887	and	x26, x26, 255
888	mov	x24, 0
889	ldr	x23, [x0, x1]
890	mov	w0, w22
891	ldrb	w5, [x2, 8]
892	bl	NandcFlashCs
893	ubfiz	x5, x5, 8, 8
894	add	x23, x23, x5
895	mov	w0, 54
896	str	w0, [x23, 2056]
897.L123:
898	cmp	x24, x26
899	bne	.L124
900	mov	w0, 22
901	str	w0, [x23, 2056]
902	mov	w0, w22
903	bl	NandcFlashDeCs
904	adrp	x0, .LANCHOR21
905	add	x0, x0, :lo12:.LANCHOR21
906	strb	w21, [x0, x25]
907	ldp	x19, x20, [sp, 16]
908	ldp	x21, x22, [sp, 32]
909	ldp	x23, x24, [sp, 48]
910	ldp	x25, x26, [sp, 64]
911	ldp	x29, x30, [sp], 80
912	ret
913.L119:
914	cmp	w0, 7
915	bne	.L121
916	add	x0, x19, :lo12:.LANCHOR20
917	mov	x1, 28
918	mov	w19, 160
919	umaddl	x1, w19, w22, x1
920	mov	w19, 10
921	umaddl	x19, w21, w19, x1
922	b	.L126
923.L121:
924	cmp	w0, 8
925	bne	.L122
926	add	x19, x19, :lo12:.LANCHOR20
927	add	x0, x19, 28
928	add	w19, w21, w21, lsl 2
929	add	x19, x0, x19, sxtw
930	b	.L120
931.L122:
932	add	x0, x19, :lo12:.LANCHOR20
933	and	x19, x21, 255
934	add	x19, x19, 2
935	add	x19, x19, x22, uxtw 3
936	add	x19, x0, x19, lsl 3
937	add	x19, x19, 4
938	b	.L120
939.L124:
940	ldrb	w0, [x20, x24]
941	str	w0, [x23, 2052]
942	mov	x0, 200
943	bl	udelay
944	ldrsb	w0, [x19, x24]
945	add	x24, x24, 1
946	str	w0, [x23, 2048]
947	b	.L123
948	.size	HynixSetRRPara, .-HynixSetRRPara
949	.section	.text.FlashSetReadRetryDefault,"ax",@progbits
950	.align	2
951	.global	FlashSetReadRetryDefault
952	.type	FlashSetReadRetryDefault, %function
953FlashSetReadRetryDefault:
954	adrp	x0, .LANCHOR7
955	ldr	x0, [x0, #:lo12:.LANCHOR7]
956	ldrb	w0, [x0, 19]
957	sub	w0, w0, #1
958	and	w0, w0, 255
959	cmp	w0, 7
960	bhi	.L134
961	stp	x29, x30, [sp, -48]!
962	add	x29, sp, 0
963	stp	x19, x20, [sp, 16]
964	adrp	x20, .LANCHOR20
965	add	x20, x20, :lo12:.LANCHOR20
966	stp	x21, x22, [sp, 32]
967	adrp	x21, .LANCHOR22
968	add	x22, x20, 4
969	add	x21, x21, :lo12:.LANCHOR22
970	mov	x19, 0
971.L130:
972	lsl	x1, x19, 3
973	and	w0, w19, 255
974	ldrb	w1, [x1, x21]
975	cmp	w1, 173
976	bne	.L129
977	ldrb	w1, [x20, 1]
978	mov	w3, 0
979	mov	x2, x22
980	bl	HynixSetRRPara
981.L129:
982	add	x19, x19, 1
983	cmp	x19, 4
984	bne	.L130
985	ldp	x19, x20, [sp, 16]
986	ldp	x21, x22, [sp, 32]
987	ldp	x29, x30, [sp], 48
988	ret
989.L134:
990	ret
991	.size	FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
992	.section	.text.FlashWaitCmdDone,"ax",@progbits
993	.align	2
994	.global	FlashWaitCmdDone
995	.type	FlashWaitCmdDone, %function
996FlashWaitCmdDone:
997	and	x4, x0, 255
998	mov	x0, 24
999	stp	x29, x30, [sp, -32]!
1000	adrp	x1, .LANCHOR23
1001	add	x1, x1, :lo12:.LANCHOR23
1002	mul	x0, x4, x0
1003	add	x29, sp, 0
1004	stp	x19, x20, [sp, 16]
1005	add	x19, x1, x0
1006	ldr	x2, [x19, 8]
1007	cbz	x2, .L139
1008	ldrb	w20, [x1, x0]
1009	mov	w0, w20
1010	bl	NandcFlashCs
1011	adrp	x0, .LANCHOR18
1012	add	x0, x0, :lo12:.LANCHOR18
1013	ldr	w1, [x19, 4]
1014	ldr	w0, [x0, x4, lsl 2]
1015	cmp	w0, 0
1016	mov	w0, w20
1017	cset	w2, ne
1018	bl	FlashWaitReadyEN
1019	mov	w2, w0
1020	mov	w0, w20
1021	bl	NandcFlashDeCs
1022	sbfx	x0, x2, 0, 1
1023	ldr	x1, [x19, 8]
1024	str	w0, [x1]
1025	ldr	x1, [x19, 16]
1026	str	xzr, [x19, 8]
1027	cbz	x1, .L139
1028	str	w0, [x1]
1029	str	xzr, [x19, 16]
1030.L139:
1031	mov	w0, 0
1032	ldp	x19, x20, [sp, 16]
1033	ldp	x29, x30, [sp], 32
1034	ret
1035	.size	FlashWaitCmdDone, .-FlashWaitCmdDone
1036	.section	.text.NandcDelayns,"ax",@progbits
1037	.align	2
1038	.global	NandcDelayns
1039	.type	NandcDelayns, %function
1040NandcDelayns:
1041	stp	x29, x30, [sp, -16]!
1042	uxtw	x0, w0
1043	add	x29, sp, 0
1044	bl	udelay
1045	mov	w0, 0
1046	ldp	x29, x30, [sp], 16
1047	ret
1048	.size	NandcDelayns, .-NandcDelayns
1049	.section	.text.NandcWaitFlashReadyNoDelay,"ax",@progbits
1050	.align	2
1051	.global	NandcWaitFlashReadyNoDelay
1052	.type	NandcWaitFlashReadyNoDelay, %function
1053NandcWaitFlashReadyNoDelay:
1054	stp	x29, x30, [sp, -48]!
1055	ubfiz	x0, x0, 4, 8
1056	adrp	x1, .LANCHOR0
1057	add	x1, x1, :lo12:.LANCHOR0
1058	add	x29, sp, 0
1059	stp	x19, x20, [sp, 16]
1060	mov	w19, 34464
1061	ldr	x20, [x1, x0]
1062	movk	w19, 0x1, lsl 16
1063.L149:
1064	ldr	w0, [x20]
1065	str	w0, [x29, 40]
1066	ldr	w0, [x29, 40]
1067	tbnz	x0, 9, .L150
1068	mov	x0, 10
1069	bl	udelay
1070	subs	w19, w19, #1
1071	bne	.L149
1072	mov	w0, -1
1073.L147:
1074	ldp	x19, x20, [sp, 16]
1075	ldp	x29, x30, [sp], 48
1076	ret
1077.L150:
1078	mov	w0, 0
1079	b	.L147
1080	.size	NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
1081	.section	.text.NandcWaitFlashReady,"ax",@progbits
1082	.align	2
1083	.global	NandcWaitFlashReady
1084	.type	NandcWaitFlashReady, %function
1085NandcWaitFlashReady:
1086	stp	x29, x30, [sp, -48]!
1087	ubfiz	x0, x0, 4, 8
1088	adrp	x1, .LANCHOR0
1089	add	x1, x1, :lo12:.LANCHOR0
1090	add	x29, sp, 0
1091	stp	x19, x20, [sp, 16]
1092	mov	w19, 34464
1093	movk	w19, 0x1, lsl 16
1094	ldr	x20, [x1, x0]
1095	mov	x0, 130
1096	bl	udelay
1097.L155:
1098	ldr	w0, [x20]
1099	str	w0, [x29, 40]
1100	ldr	w0, [x29, 40]
1101	tbnz	x0, 9, .L156
1102	mov	x0, 10
1103	bl	udelay
1104	subs	w19, w19, #1
1105	bne	.L155
1106	mov	w0, -1
1107.L153:
1108	ldp	x19, x20, [sp, 16]
1109	ldp	x29, x30, [sp], 48
1110	ret
1111.L156:
1112	mov	w0, 0
1113	b	.L153
1114	.size	NandcWaitFlashReady, .-NandcWaitFlashReady
1115	.section	.text.FlashReset,"ax",@progbits
1116	.align	2
1117	.global	FlashReset
1118	.type	FlashReset, %function
1119FlashReset:
1120	stp	x29, x30, [sp, -32]!
1121	add	x29, sp, 0
1122	str	x19, [sp, 16]
1123	and	w19, w0, 255
1124	sbfiz	x1, x19, 4, 32
1125	adrp	x0, .LANCHOR0
1126	add	x0, x0, :lo12:.LANCHOR0
1127	add	x2, x0, x1
1128	ldr	x5, [x0, x1]
1129	mov	w0, w19
1130	ldrb	w4, [x2, 8]
1131	bl	NandcFlashCs
1132	add	x4, x4, 8
1133	add	x4, x5, x4, lsl 8
1134	mov	w0, 255
1135	str	w0, [x4, 8]
1136	mov	w0, w19
1137	bl	NandcWaitFlashReady
1138	mov	w0, w19
1139	ldr	x19, [sp, 16]
1140	ldp	x29, x30, [sp], 32
1141	b	NandcFlashDeCs
1142	.size	FlashReset, .-FlashReset
1143	.section	.text.flash_enter_slc_mode,"ax",@progbits
1144	.align	2
1145	.global	flash_enter_slc_mode
1146	.type	flash_enter_slc_mode, %function
1147flash_enter_slc_mode:
1148	stp	x29, x30, [sp, -48]!
1149	add	x29, sp, 0
1150	stp	x21, x22, [sp, 32]
1151	and	w21, w0, 255
1152	adrp	x0, .LANCHOR16
1153	stp	x19, x20, [sp, 16]
1154	ldrb	w0, [x0, #:lo12:.LANCHOR16]
1155	cbz	w0, .L161
1156	mov	w0, w21
1157	bl	NandcFlashCs
1158	sxtw	x0, w21
1159	adrp	x1, .LANCHOR0
1160	lsl	x2, x0, 4
1161	add	x1, x1, :lo12:.LANCHOR0
1162	add	x3, x1, x2
1163	lsl	x0, x0, 3
1164	ldr	x22, [x1, x2]
1165	adrp	x1, .LANCHOR22
1166	add	x1, x1, :lo12:.LANCHOR22
1167	ldrb	w19, [x3, 8]
1168	ldrb	w0, [x1, x0]
1169	cmp	w0, 44
1170	bne	.L163
1171	ubfiz	x20, x19, 8, 8
1172	mov	w0, 239
1173	add	x20, x22, x20
1174	str	w0, [x20, 2056]
1175	mov	w0, 145
1176	str	w0, [x20, 2052]
1177	mov	x0, 50
1178	bl	udelay
1179	str	wzr, [x20, 2048]
1180	mov	w0, 1
1181	str	w0, [x20, 2048]
1182	str	wzr, [x20, 2048]
1183	mov	x0, 100
1184	str	wzr, [x20, 2048]
1185	bl	udelay
1186.L163:
1187	add	x19, x19, 8
1188	mov	w0, w21
1189	add	x19, x22, x19, lsl 8
1190	bl	NandcWaitFlashReadyNoDelay
1191	mov	w0, 218
1192	str	w0, [x19, 8]
1193	mov	w0, w21
1194	bl	NandcWaitFlashReady
1195	adrp	x0, .LANCHOR24
1196	mov	w1, 2
1197	strb	w1, [x0, #:lo12:.LANCHOR24]
1198.L161:
1199	ldp	x19, x20, [sp, 16]
1200	ldp	x21, x22, [sp, 32]
1201	ldp	x29, x30, [sp], 48
1202	ret
1203	.size	flash_enter_slc_mode, .-flash_enter_slc_mode
1204	.section	.text.flash_exit_slc_mode,"ax",@progbits
1205	.align	2
1206	.global	flash_exit_slc_mode
1207	.type	flash_exit_slc_mode, %function
1208flash_exit_slc_mode:
1209	stp	x29, x30, [sp, -48]!
1210	add	x29, sp, 0
1211	stp	x21, x22, [sp, 32]
1212	and	w21, w0, 255
1213	adrp	x0, .LANCHOR16
1214	stp	x19, x20, [sp, 16]
1215	ldrb	w0, [x0, #:lo12:.LANCHOR16]
1216	cbz	w0, .L168
1217	mov	w0, w21
1218	bl	NandcFlashCs
1219	sxtw	x0, w21
1220	adrp	x1, .LANCHOR0
1221	lsl	x2, x0, 4
1222	add	x1, x1, :lo12:.LANCHOR0
1223	add	x3, x1, x2
1224	lsl	x0, x0, 3
1225	ldr	x22, [x1, x2]
1226	adrp	x1, .LANCHOR22
1227	add	x1, x1, :lo12:.LANCHOR22
1228	ldrb	w19, [x3, 8]
1229	ldrb	w0, [x1, x0]
1230	cmp	w0, 44
1231	bne	.L170
1232	ubfiz	x20, x19, 8, 8
1233	mov	w0, 239
1234	add	x20, x22, x20
1235	str	w0, [x20, 2056]
1236	mov	w0, 145
1237	str	w0, [x20, 2052]
1238	mov	x0, 50
1239	bl	udelay
1240	mov	w0, 2
1241	str	w0, [x20, 2048]
1242	mov	w0, 1
1243	str	w0, [x20, 2048]
1244	str	wzr, [x20, 2048]
1245	mov	x0, 100
1246	str	wzr, [x20, 2048]
1247	bl	udelay
1248.L170:
1249	add	x19, x19, 8
1250	mov	w0, w21
1251	add	x19, x22, x19, lsl 8
1252	bl	NandcWaitFlashReadyNoDelay
1253	mov	w0, 223
1254	str	w0, [x19, 8]
1255	mov	w0, w21
1256	bl	NandcWaitFlashReady
1257	adrp	x0, .LANCHOR24
1258	strb	wzr, [x0, #:lo12:.LANCHOR24]
1259.L168:
1260	ldp	x19, x20, [sp, 16]
1261	ldp	x21, x22, [sp, 32]
1262	ldp	x29, x30, [sp], 48
1263	ret
1264	.size	flash_exit_slc_mode, .-flash_exit_slc_mode
1265	.section	.text.FlashEraseBlock,"ax",@progbits
1266	.align	2
1267	.global	FlashEraseBlock
1268	.type	FlashEraseBlock, %function
1269FlashEraseBlock:
1270	stp	x29, x30, [sp, -48]!
1271	add	x29, sp, 0
1272	stp	x19, x20, [sp, 16]
1273	and	w19, w0, 255
1274	mov	w20, w1
1275	str	x21, [sp, 32]
1276	mov	w0, w19
1277	mov	w21, w2
1278	bl	NandcWaitFlashReady
1279	mov	w0, w19
1280	bl	NandcFlashCs
1281	mov	w2, w21
1282	mov	w1, w20
1283	mov	w0, w19
1284	bl	FlashEraseCmd
1285	mov	w0, w19
1286	bl	NandcWaitFlashReady
1287	mov	w1, w20
1288	mov	w0, w19
1289	bl	FlashReadStatus
1290	mov	w2, w0
1291	mov	w0, w19
1292	bl	NandcFlashDeCs
1293	ldr	x21, [sp, 32]
1294	and	w0, w2, 1
1295	ldp	x19, x20, [sp, 16]
1296	ldp	x29, x30, [sp], 48
1297	ret
1298	.size	FlashEraseBlock, .-FlashEraseBlock
1299	.section	.text.FlashSetInterfaceMode,"ax",@progbits
1300	.align	2
1301	.global	FlashSetInterfaceMode
1302	.type	FlashSetInterfaceMode, %function
1303FlashSetInterfaceMode:
1304	stp	x29, x30, [sp, -16]!
1305	adrp	x1, .LANCHOR25
1306	adrp	x2, .LANCHOR0
1307	add	x2, x2, :lo12:.LANCHOR0
1308	add	x29, sp, 0
1309	ldrb	w1, [x1, #:lo12:.LANCHOR25]
1310	adrp	x7, .LANCHOR22
1311	add	x2, x2, 8
1312	add	x7, x7, :lo12:.LANCHOR22
1313	and	w12, w1, 4
1314	and	w6, w1, 1
1315	mov	x5, 0
1316	mov	w13, 69
1317	mov	w8, 239
1318	mov	w10, 128
1319	mov	w11, 1
1320	mov	w14, 35
1321	mov	w15, 32
1322	mov	w16, 5
1323	mov	w17, 44
1324.L187:
1325	ldrb	w3, [x5, x7]
1326	ldrb	w4, [x2]
1327	cmp	w3, 152
1328	ccmp	w3, w13, 4, ne
1329	beq	.L178
1330	cmp	w3, 173
1331	ccmp	w3, w17, 4, ne
1332	bne	.L179
1333.L178:
1334	cmp	w0, 1
1335	ldr	x1, [x2, -8]
1336	bne	.L180
1337	cbz	w6, .L179
1338	ubfiz	x4, x4, 8, 8
1339	cmp	w3, 173
1340	add	x1, x1, x4
1341	str	w8, [x1, 2056]
1342	bne	.L181
1343	str	w0, [x1, 2052]
1344.L199:
1345	str	wzr, [x1, 2048]
1346	b	.L185
1347.L181:
1348	cmp	w3, 44
1349	bne	.L183
1350	str	w0, [x1, 2052]
1351	str	w16, [x1, 2048]
1352.L185:
1353	str	wzr, [x1, 2048]
1354	str	wzr, [x1, 2048]
1355	str	wzr, [x1, 2048]
1356.L179:
1357	add	x5, x5, 8
1358	add	x2, x2, 16
1359	cmp	x5, 32
1360	bne	.L187
1361	mov	w0, 0
1362	bl	NandcWaitFlashReady
1363	mov	w0, 0
1364	ldp	x29, x30, [sp], 16
1365	ret
1366.L183:
1367	str	w10, [x1, 2052]
1368	str	w0, [x1, 2048]
1369	b	.L185
1370.L180:
1371	cbz	w12, .L179
1372	ubfiz	x4, x4, 8, 8
1373	cmp	w3, 173
1374	add	x1, x1, x4
1375	str	w8, [x1, 2056]
1376	bne	.L184
1377	str	w11, [x1, 2052]
1378	str	w15, [x1, 2048]
1379	b	.L185
1380.L184:
1381	cmp	w3, 44
1382	bne	.L186
1383	str	w11, [x1, 2052]
1384	str	w14, [x1, 2048]
1385	b	.L185
1386.L186:
1387	str	w10, [x1, 2052]
1388	b	.L199
1389	.size	FlashSetInterfaceMode, .-FlashSetInterfaceMode
1390	.section	.text.SandiskSetRRPara,"ax",@progbits
1391	.align	2
1392	.global	SandiskSetRRPara
1393	.type	SandiskSetRRPara, %function
1394SandiskSetRRPara:
1395	stp	x29, x30, [sp, -32]!
1396	add	x29, sp, 0
1397	stp	x19, x20, [sp, 16]
1398	mov	x20, x0
1399	mov	w0, 239
1400	and	w19, w1, 255
1401	str	w0, [x20, 8]
1402	mov	w0, 17
1403	str	w0, [x20, 4]
1404	mov	x0, 200
1405	bl	udelay
1406	adrp	x0, .LANCHOR13
1407	add	w1, w19, 1
1408	adrp	x2, .LANCHOR9
1409	add	x2, x2, :lo12:.LANCHOR9
1410	ldrb	w3, [x0, #:lo12:.LANCHOR13]
1411	adrp	x0, .LANCHOR11
1412	ldrb	w4, [x0, #:lo12:.LANCHOR11]
1413	mov	w0, 5
1414	umull	x1, w1, w0
1415	adrp	x0, .LANCHOR10
1416	add	x0, x0, :lo12:.LANCHOR10
1417	add	x2, x2, x1
1418	add	x1, x0, x1
1419	mov	x0, 0
1420.L201:
1421	cmp	w3, w0
1422	bhi	.L204
1423	ldp	x19, x20, [sp, 16]
1424	mov	w0, 0
1425	ldp	x29, x30, [sp], 32
1426	b	NandcWaitFlashReady
1427.L204:
1428	cmp	w4, 67
1429	bne	.L202
1430	ldrsb	w5, [x1, x0]
1431.L206:
1432	add	x0, x0, 1
1433	str	w5, [x20]
1434	b	.L201
1435.L202:
1436	ldrsb	w5, [x2, x0]
1437	b	.L206
1438	.size	SandiskSetRRPara, .-SandiskSetRRPara
1439	.section	.text.micron_auto_read_calibration_config,"ax",@progbits
1440	.align	2
1441	.global	micron_auto_read_calibration_config
1442	.type	micron_auto_read_calibration_config, %function
1443micron_auto_read_calibration_config:
1444	stp	x29, x30, [sp, -32]!
1445	add	x29, sp, 0
1446	stp	x19, x20, [sp, 16]
1447	and	w19, w0, 255
1448	mov	w20, w1
1449	mov	w0, w19
1450	bl	NandcWaitFlashReady
1451	sbfiz	x0, x19, 4, 32
1452	adrp	x2, .LANCHOR0
1453	add	x2, x2, :lo12:.LANCHOR0
1454	add	x1, x2, x0
1455	ldr	x0, [x2, x0]
1456	ldrb	w19, [x1, 8]
1457	add	x19, x0, x19, lsl 8
1458	mov	w0, 239
1459	str	w0, [x19, 2056]
1460	mov	w0, 150
1461	str	w0, [x19, 2052]
1462	mov	x0, 200
1463	bl	udelay
1464	str	w20, [x19, 2048]
1465	str	wzr, [x19, 2048]
1466	str	wzr, [x19, 2048]
1467	str	wzr, [x19, 2048]
1468	ldp	x19, x20, [sp, 16]
1469	ldp	x29, x30, [sp], 32
1470	ret
1471	.size	micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
1472	.section	.text.FlashEraseSLc2KBlocks,"ax",@progbits
1473	.align	2
1474	.global	FlashEraseSLc2KBlocks
1475	.type	FlashEraseSLc2KBlocks, %function
1476FlashEraseSLc2KBlocks:
1477	stp	x29, x30, [sp, -80]!
1478	add	x29, sp, 0
1479	stp	x21, x22, [sp, 32]
1480	mov	w22, 56
1481	stp	x23, x24, [sp, 48]
1482	and	w21, w1, 255
1483	umaddl	x22, w1, w22, x0
1484	stp	x19, x20, [sp, 16]
1485	adrp	x23, .LANCHOR26
1486	mov	x20, x0
1487	add	x23, x23, :lo12:.LANCHOR26
1488	adrp	x24, .LANCHOR27
1489.L210:
1490	cmp	x20, x22
1491	bne	.L215
1492	ldp	x19, x20, [sp, 16]
1493	mov	w0, 0
1494	ldp	x21, x22, [sp, 32]
1495	ldp	x23, x24, [sp, 48]
1496	ldp	x29, x30, [sp], 80
1497	ret
1498.L215:
1499	mov	w1, 0
1500	mov	w4, w21
1501	add	x3, x29, 76
1502	add	x2, x29, 72
1503	mov	x0, x20
1504	bl	LogAddr2PhyAddr
1505	ldrb	w1, [x23]
1506	ldr	w0, [x29, 76]
1507	cmp	w1, w0
1508	bhi	.L211
1509	mov	w0, -1
1510	str	w0, [x20]
1511.L212:
1512	sub	w21, w21, #1
1513	add	x20, x20, 56
1514	and	w21, w21, 255
1515	b	.L210
1516.L211:
1517	uxtw	x0, w0
1518	add	x1, x24, :lo12:.LANCHOR27
1519	ldrb	w19, [x1, x0]
1520	mov	x1, 24
1521	mul	x0, x0, x1
1522	adrp	x1, .LANCHOR23
1523	add	x1, x1, :lo12:.LANCHOR23
1524	strb	w19, [x1, x0]
1525	mov	w0, w19
1526	bl	NandcWaitFlashReady
1527	mov	w0, w19
1528	bl	NandcFlashCs
1529	ldr	w1, [x29, 72]
1530	mov	w2, 0
1531	mov	w0, w19
1532	bl	FlashEraseCmd
1533	mov	w0, w19
1534	bl	NandcWaitFlashReady
1535	ldr	w1, [x29, 72]
1536	mov	w0, w19
1537	bl	FlashReadStatus
1538	sbfx	x0, x0, 0, 1
1539	str	w0, [x20]
1540	adrp	x0, .LANCHOR4
1541	ldr	w1, [x29, 72]
1542	mov	w2, 0
1543	ldr	w0, [x0, #:lo12:.LANCHOR4]
1544	add	w1, w1, w0
1545	mov	w0, w19
1546	bl	FlashEraseCmd
1547	mov	w0, w19
1548	bl	NandcWaitFlashReady
1549	ldr	w1, [x29, 72]
1550	mov	w0, w19
1551	bl	FlashReadStatus
1552	tbz	x0, 0, .L213
1553	mov	w0, -1
1554	str	w0, [x20]
1555.L213:
1556	ldr	w0, [x20]
1557	cmn	w0, #1
1558	bne	.L214
1559	ldr	w1, [x29, 72]
1560	adrp	x0, .LC1
1561	add	x0, x0, :lo12:.LC1
1562	bl	printf
1563.L214:
1564	mov	w0, w19
1565	bl	NandcFlashDeCs
1566	b	.L212
1567	.size	FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks
1568	.section	.text.FlashEraseBlocks,"ax",@progbits
1569	.align	2
1570	.global	FlashEraseBlocks
1571	.type	FlashEraseBlocks, %function
1572FlashEraseBlocks:
1573	stp	x29, x30, [sp, -96]!
1574	add	x29, sp, 0
1575	stp	x23, x24, [sp, 48]
1576	mov	w24, w1
1577	adrp	x1, .LANCHOR2
1578	stp	x21, x22, [sp, 32]
1579	stp	x19, x20, [sp, 16]
1580	mov	w22, w2
1581	ldrb	w1, [x1, #:lo12:.LANCHOR2]
1582	stp	x25, x26, [sp, 64]
1583	cbnz	w1, .L221
1584	adrp	x25, .LANCHOR23
1585	mov	x23, x0
1586	add	x26, x25, :lo12:.LANCHOR23
1587	mov	w19, 0
1588.L222:
1589	cmp	w19, w22
1590	adrp	x13, .LANCHOR26
1591	bcc	.L231
1592	adrp	x20, .LANCHOR16
1593	adrp	x21, .LANCHOR23
1594	add	x22, x13, :lo12:.LANCHOR26
1595	add	x20, x20, :lo12:.LANCHOR16
1596	add	x21, x21, :lo12:.LANCHOR23
1597	mov	x19, 0
1598.L232:
1599	ldrb	w0, [x22]
1600	cmp	w0, w19
1601	bhi	.L234
1602	mov	w0, 0
1603	b	.L220
1604.L221:
1605	mov	w1, w2
1606	bl	FlashEraseSLc2KBlocks
1607.L220:
1608	ldp	x19, x20, [sp, 16]
1609	ldp	x21, x22, [sp, 32]
1610	ldp	x23, x24, [sp, 48]
1611	ldp	x25, x26, [sp, 64]
1612	ldp	x29, x30, [sp], 96
1613	ret
1614.L231:
1615	mov	w12, 56
1616	mov	w1, 0
1617	sub	w4, w22, w19
1618	add	x3, x29, 92
1619	umull	x12, w19, w12
1620	add	x2, x29, 88
1621	add	x20, x23, x12
1622	mov	x0, x20
1623	bl	LogAddr2PhyAddr
1624	mov	w21, w0
1625	ldrb	w1, [x13, #:lo12:.LANCHOR26]
1626	ldr	w0, [x29, 92]
1627	cmp	w1, w0
1628	bhi	.L224
1629	mov	w0, -1
1630	str	w0, [x23, x12]
1631.L225:
1632	add	w19, w19, 1
1633	b	.L222
1634.L224:
1635	adrp	x1, .LANCHOR28
1636	add	x2, x25, :lo12:.LANCHOR23
1637	mov	x3, 24
1638	ldrb	w1, [x1, #:lo12:.LANCHOR28]
1639	cmp	w1, 0
1640	uxtw	x1, w0
1641	csel	w21, w21, wzr, ne
1642	madd	x1, x1, x3, x2
1643	ldr	x1, [x1, 8]
1644	cbz	x1, .L227
1645	bl	FlashWaitCmdDone
1646.L227:
1647	ldp	w2, w1, [x29, 88]
1648	mov	x0, 24
1649	madd	x0, x1, x0, x26
1650	str	w2, [x0, 4]
1651	stp	x20, xzr, [x0, 8]
1652	cbz	w21, .L228
1653	add	w2, w19, 1
1654	mov	w3, 56
1655	umaddl	x2, w2, w3, x23
1656	str	x2, [x0, 16]
1657.L228:
1658	adrp	x0, .LANCHOR27
1659	add	x0, x0, :lo12:.LANCHOR27
1660	ldrb	w20, [x0, x1]
1661	mov	x0, 24
1662	mul	x1, x1, x0
1663	mov	w0, w20
1664	strb	w20, [x26, x1]
1665	bl	NandcFlashCs
1666	cmp	w24, 1
1667	bne	.L229
1668	adrp	x0, .LANCHOR16
1669	ldrb	w0, [x0, #:lo12:.LANCHOR16]
1670	cbz	w0, .L229
1671	mov	w0, w20
1672	bl	flash_enter_slc_mode
1673.L230:
1674	ldr	w1, [x29, 92]
1675	adrp	x0, .LANCHOR18
1676	add	x0, x0, :lo12:.LANCHOR18
1677	add	w19, w19, w21
1678	ldr	w0, [x0, x1, lsl 2]
1679	ldr	w1, [x29, 88]
1680	cmp	w0, 0
1681	mov	w0, w20
1682	cset	w2, ne
1683	bl	FlashWaitReadyEN
1684	ldr	w1, [x29, 88]
1685	mov	w2, w21
1686	mov	w0, w20
1687	bl	FlashEraseCmd
1688	mov	w0, w20
1689	bl	NandcFlashDeCs
1690	b	.L225
1691.L229:
1692	mov	w0, w20
1693	bl	flash_exit_slc_mode
1694	b	.L230
1695.L234:
1696	mov	w0, w19
1697	bl	FlashWaitCmdDone
1698	cmp	w24, 1
1699	bne	.L233
1700	ldrb	w0, [x20]
1701	cbz	w0, .L233
1702	mov	x0, 24
1703	mul	x0, x19, x0
1704	ldrb	w0, [x0, x21]
1705	bl	flash_exit_slc_mode
1706.L233:
1707	add	x19, x19, 1
1708	b	.L232
1709	.size	FlashEraseBlocks, .-FlashEraseBlocks
1710	.section	.text.FlashReadDpCmd,"ax",@progbits
1711	.align	2
1712	.global	FlashReadDpCmd
1713	.type	FlashReadDpCmd, %function
1714FlashReadDpCmd:
1715	stp	x29, x30, [sp, -64]!
1716	adrp	x7, .LANCHOR7
1717	add	x29, sp, 0
1718	stp	x21, x22, [sp, 32]
1719	and	w22, w0, 255
1720	mov	w21, w1
1721	adrp	x0, .LANCHOR0
1722	sbfiz	x1, x22, 4, 32
1723	add	x0, x0, :lo12:.LANCHOR0
1724	add	x3, x0, x1
1725	stp	x19, x20, [sp, 16]
1726	stp	x23, x24, [sp, 48]
1727	lsr	w20, w2, 16
1728	ldr	x4, [x0, x1]
1729	and	w24, w2, 255
1730	ldrb	w19, [x3, 8]
1731	adrp	x3, .LANCHOR8
1732	add	x1, x3, :lo12:.LANCHOR8
1733	lsr	w23, w2, 8
1734	ldr	x2, [x7, #:lo12:.LANCHOR7]
1735	and	w6, w21, 255
1736	lsr	w5, w21, 8
1737	ldrb	w1, [x1, 16]
1738	ldrb	w2, [x2, 7]
1739	cmp	w1, 1
1740	lsr	w1, w21, 16
1741	bne	.L249
1742	cmp	w2, 1
1743	bne	.L250
1744	sxtw	x0, w19
1745	mov	w2, 38
1746	add	x0, x0, 8
1747	add	x0, x4, x0, lsl 8
1748	str	w2, [x0, 8]
1749.L250:
1750	add	x0, x3, :lo12:.LANCHOR8
1751	add	x19, x4, x19, lsl 8
1752	ldrb	w2, [x0, 8]
1753	str	w2, [x19, 2056]
1754	str	wzr, [x19, 2052]
1755	str	wzr, [x19, 2052]
1756	str	w6, [x19, 2052]
1757	str	w5, [x19, 2052]
1758	ldrb	w0, [x0, 9]
1759	str	w1, [x19, 2052]
1760	str	w0, [x19, 2056]
1761	mov	w0, w22
1762	bl	NandcWaitFlashReady
1763	str	wzr, [x19, 2056]
1764	str	wzr, [x19, 2052]
1765	str	wzr, [x19, 2052]
1766.L254:
1767	str	w24, [x19, 2052]
1768	mov	w0, 48
1769	str	w23, [x19, 2052]
1770	mov	w1, w21
1771	str	w20, [x19, 2052]
1772	str	w0, [x19, 2056]
1773	mov	w0, w22
1774	ldp	x19, x20, [sp, 16]
1775	ldp	x21, x22, [sp, 32]
1776	ldp	x23, x24, [sp, 48]
1777	ldp	x29, x30, [sp], 64
1778	b	FlashSetRandomizer
1779.L249:
1780	cmp	w2, 1
1781	bne	.L252
1782	sxtw	x0, w19
1783	mov	w2, 38
1784	add	x0, x0, 8
1785	add	x0, x4, x0, lsl 8
1786	str	w2, [x0, 8]
1787.L252:
1788	add	x0, x3, :lo12:.LANCHOR8
1789	add	x19, x4, x19, lsl 8
1790	ldrb	w2, [x0, 8]
1791	str	w2, [x19, 2056]
1792	str	w6, [x19, 2052]
1793	str	w5, [x19, 2052]
1794	ldrb	w0, [x0, 9]
1795	str	w1, [x19, 2052]
1796	str	w0, [x19, 2056]
1797	b	.L254
1798	.size	FlashReadDpCmd, .-FlashReadDpCmd
1799	.section	.text.ftl_flash_de_init,"ax",@progbits
1800	.align	2
1801	.global	ftl_flash_de_init
1802	.type	ftl_flash_de_init, %function
1803ftl_flash_de_init:
1804	stp	x29, x30, [sp, -32]!
1805	mov	w0, 0
1806	add	x29, sp, 0
1807	str	x19, [sp, 16]
1808	bl	NandcWaitFlashReady
1809	bl	FlashSetReadRetryDefault
1810	adrp	x0, .LANCHOR29
1811	ldr	w0, [x0, #:lo12:.LANCHOR29]
1812	cbz	w0, .L256
1813	mov	w0, 0
1814	bl	flash_enter_slc_mode
1815.L257:
1816	adrp	x19, .LANCHOR30
1817	ldrb	w0, [x19, #:lo12:.LANCHOR30]
1818	cbz	w0, .L258
1819	adrp	x0, .LANCHOR25
1820	ldrb	w0, [x0, #:lo12:.LANCHOR25]
1821	tbz	x0, 0, .L258
1822	mov	w0, 1
1823	bl	FlashSetInterfaceMode
1824	mov	w0, 1
1825	bl	NandcSetMode
1826	strb	wzr, [x19, #:lo12:.LANCHOR30]
1827.L258:
1828	adrp	x0, .LANCHOR0
1829	ldr	x0, [x0, #:lo12:.LANCHOR0]
1830	str	wzr, [x0, 336]
1831	mov	w0, 0
1832	ldr	x19, [sp, 16]
1833	ldp	x29, x30, [sp], 32
1834	ret
1835.L256:
1836	mov	w0, 0
1837	bl	flash_exit_slc_mode
1838	b	.L257
1839	.size	ftl_flash_de_init, .-ftl_flash_de_init
1840	.section	.text.NandcRandmzSel,"ax",@progbits
1841	.align	2
1842	.global	NandcRandmzSel
1843	.type	NandcRandmzSel, %function
1844NandcRandmzSel:
1845	ubfiz	x0, x0, 4, 8
1846	adrp	x2, .LANCHOR0
1847	add	x2, x2, :lo12:.LANCHOR0
1848	ldr	x0, [x2, x0]
1849	str	w1, [x0, 336]
1850	ret
1851	.size	NandcRandmzSel, .-NandcRandmzSel
1852	.section	.text.NandcTimeCfg,"ax",@progbits
1853	.align	2
1854	.global	NandcTimeCfg
1855	.type	NandcTimeCfg, %function
1856NandcTimeCfg:
1857	cmp	w0, 35
1858	adrp	x1, .LANCHOR19
1859	bhi	.L268
1860	ldr	x0, [x1, #:lo12:.LANCHOR19]
1861	mov	w1, 4193
1862.L271:
1863	str	w1, [x0, 4]
1864	ret
1865.L268:
1866	cmp	w0, 99
1867	ldr	x0, [x1, #:lo12:.LANCHOR19]
1868	bls	.L270
1869	mov	w1, 8322
1870	b	.L271
1871.L270:
1872	mov	w1, 4225
1873	b	.L271
1874	.size	NandcTimeCfg, .-NandcTimeCfg
1875	.section	.text.FlashTimingCfg,"ax",@progbits
1876	.align	2
1877	.global	FlashTimingCfg
1878	.type	FlashTimingCfg, %function
1879FlashTimingCfg:
1880	adrp	x0, .LANCHOR31+21
1881	ldrb	w0, [x0, #:lo12:.LANCHOR31+21]
1882	b	NandcTimeCfg
1883	.size	FlashTimingCfg, .-FlashTimingCfg
1884	.section	.text.NandcBchSel,"ax",@progbits
1885	.align	2
1886	.global	NandcBchSel
1887	.type	NandcBchSel, %function
1888NandcBchSel:
1889	adrp	x1, .LANCHOR19
1890	and	w0, w0, 255
1891	cmp	w0, 16
1892	ldr	x2, [x1, #:lo12:.LANCHOR19]
1893	mov	w1, 1
1894	str	w1, [x2, 8]
1895	adrp	x1, .LANCHOR32
1896	str	w0, [x1, #:lo12:.LANCHOR32]
1897	mov	w1, 4096
1898	bne	.L274
1899.L277:
1900	and	w1, w1, -17
1901.L275:
1902	orr	w1, w1, 1
1903	str	w1, [x2, 12]
1904	ret
1905.L274:
1906	cmp	w0, 24
1907	bne	.L276
1908	orr	w1, w1, 16
1909	b	.L275
1910.L276:
1911	orr	w1, w1, 262144
1912	cmp	w0, 40
1913	orr	w1, w1, 16
1914	bne	.L275
1915	b	.L277
1916	.size	NandcBchSel, .-NandcBchSel
1917	.section	.text.FlashBchSel,"ax",@progbits
1918	.align	2
1919	.global	FlashBchSel
1920	.type	FlashBchSel, %function
1921FlashBchSel:
1922	adrp	x1, .LANCHOR33
1923	and	w0, w0, 255
1924	strb	w0, [x1, #:lo12:.LANCHOR33]
1925	b	NandcBchSel
1926	.size	FlashBchSel, .-FlashBchSel
1927	.section	.text.ftl_nandc_get_irq_status,"ax",@progbits
1928	.align	2
1929	.global	ftl_nandc_get_irq_status
1930	.type	ftl_nandc_get_irq_status, %function
1931ftl_nandc_get_irq_status:
1932	ldr	w0, [x0, 372]
1933	ret
1934	.size	ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status
1935	.section	.text.rk_nandc_flash_ready,"ax",@progbits
1936	.align	2
1937	.global	rk_nandc_flash_ready
1938	.type	rk_nandc_flash_ready, %function
1939rk_nandc_flash_ready:
1940	ret
1941	.size	rk_nandc_flash_ready, .-rk_nandc_flash_ready
1942	.section	.text.NandcIqrWaitFlashReady,"ax",@progbits
1943	.align	2
1944	.global	NandcIqrWaitFlashReady
1945	.type	NandcIqrWaitFlashReady, %function
1946NandcIqrWaitFlashReady:
1947	ret
1948	.size	NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady
1949	.section	.text.rk_nandc_flash_xfer_completed,"ax",@progbits
1950	.align	2
1951	.global	rk_nandc_flash_xfer_completed
1952	.type	rk_nandc_flash_xfer_completed, %function
1953rk_nandc_flash_xfer_completed:
1954	ret
1955	.size	rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
1956	.section	.text.NandcSendDumpDataStart,"ax",@progbits
1957	.align	2
1958	.global	NandcSendDumpDataStart
1959	.type	NandcSendDumpDataStart, %function
1960NandcSendDumpDataStart:
1961	sub	sp, sp, #16
1962	ldr	w2, [x0, 16]
1963	mov	w1, 1066
1964	movk	w1, 0x2020, lsl 16
1965	str	w2, [sp, 8]
1966	ldr	w2, [sp, 8]
1967	and	w2, w2, -5
1968	str	w2, [sp, 8]
1969	ldr	w2, [sp, 8]
1970	str	w2, [x0, 16]
1971	str	w1, [x0, 8]
1972	orr	w1, w1, 4
1973	str	w1, [x0, 8]
1974	add	sp, sp, 16
1975	ret
1976	.size	NandcSendDumpDataStart, .-NandcSendDumpDataStart
1977	.section	.text.NandcSendDumpDataDone,"ax",@progbits
1978	.align	2
1979	.global	NandcSendDumpDataDone
1980	.type	NandcSendDumpDataDone, %function
1981NandcSendDumpDataDone:
1982	sub	sp, sp, #16
1983.L289:
1984	ldr	w1, [x0, 8]
1985	str	w1, [sp, 8]
1986	ldr	w1, [sp, 8]
1987	tbz	x1, 20, .L289
1988	add	sp, sp, 16
1989	ret
1990	.size	NandcSendDumpDataDone, .-NandcSendDumpDataDone
1991	.section	.text.NandcXferStart,"ax",@progbits
1992	.align	2
1993	.global	NandcXferStart
1994	.type	NandcXferStart, %function
1995NandcXferStart:
1996	stp	x29, x30, [sp, -96]!
1997	ubfiz	x0, x0, 4, 8
1998	ubfx	x3, x3, 1, 7
1999	add	x29, sp, 0
2000	stp	x23, x24, [sp, 48]
2001	and	w24, w1, 255
2002	adrp	x1, .LANCHOR0
2003	add	x1, x1, :lo12:.LANCHOR0
2004	add	x6, x1, x0
2005	stp	x21, x22, [sp, 32]
2006	stp	x19, x20, [sp, 16]
2007	ubfiz	w19, w24, 1, 1
2008	ldr	x21, [x1, x0]
2009	mov	w1, 16
2010	ldrb	w0, [x6, 8]
2011	orr	w19, w19, 8
2012	str	x25, [sp, 64]
2013	ldr	w22, [x21, 12]
2014	bfi	w22, w1, 8, 8
2015	and	w22, w22, -9
2016	bfi	w22, w0, 5, 3
2017	mov	w0, 1
2018	bfi	w19, w0, 5, 2
2019	adrp	x0, .LANCHOR34
2020	orr	w19, w19, 536870912
2021	orr	w19, w19, 1024
2022	ldr	w0, [x0, #:lo12:.LANCHOR34]
2023	bfi	w19, w3, 4, 1
2024	cmp	w0, 3
2025	bls	.L294
2026	ldr	w0, [x21, 16]
2027	cmp	x5, 0
2028	str	w0, [x29, 88]
2029	ccmp	x4, 0, 0, eq
2030	ldr	w0, [x29, 88]
2031	and	w0, w0, -5
2032	str	w0, [x29, 88]
2033	beq	.L295
2034	and	w2, w2, 255
2035	adrp	x20, .LANCHOR35
2036	cbnz	w24, .L296
2037.L304:
2038	ldr	x0, [x20, #:lo12:.LANCHOR35]
2039	add	w2, w2, 1
2040	cmp	x4, 0
2041	asr	w2, w2, 1
2042	csel	x0, x4, x0, ne
2043	add	x20, x20, :lo12:.LANCHOR35
2044	bfi	w19, w2, 22, 6
2045	and	x2, x0, 4294967295
2046	add	x2, x2, 63
2047	mov	x25, x4
2048	and	x2, x2, -64
2049	ldr	x1, [x20, 8]
2050	ubfx	x23, x19, 22, 5
2051	stp	x0, x1, [x20, 16]
2052	stp	w0, w1, [x20, 32]
2053	ubfiz	x1, x23, 10, 5
2054	add	x1, x2, x1
2055	and	x0, x0, 4294967232
2056	bl	flush_dcache_range
2057	ubfiz	x23, x23, 7, 5
2058	ldr	w0, [x20, 36]
2059	add	x1, x0, 63
2060	and	x0, x0, 4294967232
2061	and	x1, x1, -64
2062	add	x1, x1, x23
2063	bl	flush_dcache_range
2064	mov	w0, 1
2065	str	w0, [x20, 40]
2066	ldr	w0, [x20, 32]
2067	mov	w1, 16
2068	str	w0, [x21, 20]
2069	tst	x25, 3
2070	ldr	w0, [x20, 36]
2071	str	w0, [x21, 24]
2072	str	wzr, [x29, 88]
2073	ldr	w0, [x29, 88]
2074	bfi	w0, w1, 9, 5
2075	str	w0, [x29, 88]
2076	ldr	w0, [x29, 88]
2077	orr	w0, w0, 448
2078	str	w0, [x29, 88]
2079	bne	.L305
2080	ldr	w0, [x29, 88]
2081	mov	w1, 2
2082	bfi	w0, w1, 3, 3
2083	str	w0, [x29, 88]
2084.L305:
2085	ldr	w0, [x29, 88]
2086	cmp	w24, 0
2087	cset	w1, eq
2088	orr	w0, w0, 4
2089	str	w0, [x29, 88]
2090	ldr	w0, [x29, 88]
2091	bfi	w0, w1, 1, 1
2092	str	w0, [x29, 88]
2093	ldr	w0, [x29, 88]
2094	orr	w0, w0, 1
2095	str	w0, [x29, 88]
2096.L295:
2097	ldr	w0, [x29, 88]
2098	str	w0, [x21, 16]
2099.L294:
2100	str	w22, [x21, 12]
2101	str	w19, [x21, 8]
2102	orr	w19, w19, 4
2103	str	w19, [x21, 8]
2104	ldp	x19, x20, [sp, 16]
2105	ldp	x21, x22, [sp, 32]
2106	ldp	x23, x24, [sp, 48]
2107	ldr	x25, [sp, 64]
2108	ldp	x29, x30, [sp], 96
2109	ret
2110.L296:
2111	adrp	x0, .LANCHOR32
2112	mov	w6, 64
2113	lsr	w11, w2, 1
2114	mov	x1, x5
2115	ldr	w0, [x0, #:lo12:.LANCHOR32]
2116	mov	w7, 0
2117	mov	w3, 0
2118	mov	w12, -1
2119	cmp	w0, 25
2120	mov	w0, 128
2121	csel	w6, w6, w0, cc
2122	add	x0, x20, :lo12:.LANCHOR35
2123	ldr	x10, [x0, 8]
2124.L300:
2125	cmp	w3, w11
2126	bcs	.L304
2127	lsr	w0, w7, 2
2128	lsl	w0, w0, 2
2129	cbz	x5, .L301
2130	ldrh	w13, [x1]
2131	add	x1, x1, 4
2132	ldrh	w8, [x1, -2]
2133	orr	x8, x13, x8, lsl 16
2134	str	w8, [x10, x0]
2135.L302:
2136	add	w3, w3, 1
2137	add	w7, w7, w6
2138	b	.L300
2139.L301:
2140	str	w12, [x10, x0]
2141	b	.L302
2142	.size	NandcXferStart, .-NandcXferStart
2143	.section	.text.NandcXferComp,"ax",@progbits
2144	.align	2
2145	.global	NandcXferComp
2146	.type	NandcXferComp, %function
2147NandcXferComp:
2148	ubfiz	x0, x0, 4, 8
2149	adrp	x1, .LANCHOR0
2150	add	x1, x1, :lo12:.LANCHOR0
2151	stp	x29, x30, [sp, -32]!
2152	add	x29, sp, 0
2153	ldr	x3, [x1, x0]
2154	adrp	x0, .LANCHOR34
2155	ldr	w2, [x0, #:lo12:.LANCHOR34]
2156	cmp	w2, 3
2157	bls	.L333
2158	ldr	w0, [x3, 16]
2159	tbz	x0, 2, .L333
2160	ldr	w0, [x3, 16]
2161	tbz	x0, 1, .L321
2162	ldr	w0, [x3, 8]
2163	str	w0, [x29, 16]
2164.L316:
2165	ldr	w1, [x3, 28]
2166	ldr	w0, [x29, 16]
2167	ubfx	x1, x1, 16, 5
2168	ubfx	x0, x0, 22, 6
2169	cmp	w1, w0
2170	bge	.L317
2171	cmp	w2, 5
2172	bls	.L316
2173	ldr	w0, [x3]
2174	str	w0, [x29, 24]
2175	ldr	w0, [x29, 24]
2176	tbz	x0, 13, .L316
2177	ldr	w0, [x29, 24]
2178	tbz	x0, 17, .L316
2179.L317:
2180	adrp	x0, .LANCHOR35+40
2181	str	wzr, [x0, #:lo12:.LANCHOR35+40]
2182.L312:
2183	ldp	x29, x30, [sp], 32
2184	ret
2185.L321:
2186	ldr	w0, [x3, 8]
2187	str	w0, [x29, 16]
2188	ldr	w0, [x29, 16]
2189	tbz	x0, 20, .L321
2190	adrp	x0, .LANCHOR36
2191	mov	x4, x0
2192	ldr	w1, [x0, #:lo12:.LANCHOR36]
2193	cbz	w1, .L322
2194	mov	x0, x3
2195	bl	NandcSendDumpDataStart
2196.L322:
2197	ldr	w0, [x4, #:lo12:.LANCHOR36]
2198	cbz	w0, .L317
2199	mov	x0, x3
2200	bl	NandcSendDumpDataDone
2201	b	.L317
2202.L333:
2203	ldr	w0, [x3, 8]
2204	str	w0, [x29, 16]
2205	ldr	w0, [x29, 16]
2206	tbz	x0, 20, .L333
2207	b	.L312
2208	.size	NandcXferComp, .-NandcXferComp
2209	.section	.text.Ftl_log2,"ax",@progbits
2210	.align	2
2211	.global	Ftl_log2
2212	.type	Ftl_log2, %function
2213Ftl_log2:
2214	mov	w2, 1
2215	mov	w1, 0
2216.L342:
2217	cmp	w2, w0
2218	bls	.L343
2219	sub	w0, w1, #1
2220	ret
2221.L343:
2222	add	w1, w1, 1
2223	lsl	w2, w2, 1
2224	and	w1, w1, 65535
2225	b	.L342
2226	.size	Ftl_log2, .-Ftl_log2
2227	.section	.text.FtlPrintInfo,"ax",@progbits
2228	.align	2
2229	.global	FtlPrintInfo
2230	.type	FtlPrintInfo, %function
2231FtlPrintInfo:
2232	ret
2233	.size	FtlPrintInfo, .-FtlPrintInfo
2234	.section	.text.FtlSysBlkNumInit,"ax",@progbits
2235	.align	2
2236	.global	FtlSysBlkNumInit
2237	.type	FtlSysBlkNumInit, %function
2238FtlSysBlkNumInit:
2239	and	w0, w0, 65535
2240	mov	w1, 24
2241	cmp	w0, 24
2242	adrp	x2, .LANCHOR39
2243	csel	w0, w0, w1, cs
2244	adrp	x1, .LANCHOR37
2245	and	w0, w0, 65535
2246	str	w0, [x1, #:lo12:.LANCHOR37]
2247	adrp	x1, .LANCHOR38
2248	ldrh	w1, [x1, #:lo12:.LANCHOR38]
2249	mul	w1, w1, w0
2250	str	w1, [x2, #:lo12:.LANCHOR39]
2251	adrp	x2, .LANCHOR41
2252	ldrh	w2, [x2, #:lo12:.LANCHOR41]
2253	sub	w0, w2, w0
2254	adrp	x2, .LANCHOR40
2255	strh	w0, [x2, #:lo12:.LANCHOR40]
2256	adrp	x0, .LANCHOR43
2257	ldr	w0, [x0, #:lo12:.LANCHOR43]
2258	sub	w1, w0, w1
2259	adrp	x0, .LANCHOR42
2260	str	w1, [x0, #:lo12:.LANCHOR42]
2261	mov	w0, 0
2262	ret
2263	.size	FtlSysBlkNumInit, .-FtlSysBlkNumInit
2264	.section	.text.FtlConstantsInit,"ax",@progbits
2265	.align	2
2266	.global	FtlConstantsInit
2267	.type	FtlConstantsInit, %function
2268FtlConstantsInit:
2269	stp	x29, x30, [sp, -32]!
2270	mov	x5, x0
2271	adrp	x1, .LANCHOR46
2272	adrp	x4, .LANCHOR45
2273	add	x29, sp, 0
2274	ldrh	w11, [x0, 8]
2275	adrp	x0, .LANCHOR44
2276	adrp	x6, .LANCHOR41
2277	ldrh	w2, [x5, 10]
2278	strh	w11, [x0, #:lo12:.LANCHOR44]
2279	mov	x3, 0
2280	ldrh	w0, [x5, 12]
2281	ldrh	w8, [x5, 14]
2282	strh	w0, [x1, #:lo12:.LANCHOR46]
2283	adrp	x1, .LANCHOR47
2284	add	x7, x1, :lo12:.LANCHOR47
2285	strh	w2, [x4, #:lo12:.LANCHOR45]
2286	strh	w8, [x6, #:lo12:.LANCHOR41]
2287	str	x19, [sp, 16]
2288.L347:
2289	strb	w3, [x3, x7]
2290	add	x3, x3, 1
2291	cmp	x3, 32
2292	bne	.L347
2293	ldrh	w7, [x5, 20]
2294	ldrb	w3, [x5, 15]
2295	cmp	w7, w3
2296	bcs	.L348
2297	and	w13, w0, 255
2298	mul	w15, w0, w2
2299	ubfiz	w14, w13, 1, 7
2300	add	x1, x1, :lo12:.LANCHOR47
2301	mov	w7, 0
2302.L349:
2303	cmp	w7, w0
2304	bcs	.L351
2305	and	w3, w7, 255
2306	mov	w10, w7
2307	mov	w12, 0
2308	b	.L352
2309.L350:
2310	add	w16, w15, w10
2311	strb	w3, [x1, w10, uxtw]
2312	add	w17, w13, w3
2313	add	w3, w14, w3
2314	add	w12, w12, 1
2315	and	w3, w3, 255
2316	add	w10, w10, w0
2317	strb	w17, [x1, x16]
2318.L352:
2319	cmp	w12, w2
2320	bcc	.L350
2321	add	w7, w7, 1
2322	b	.L349
2323.L351:
2324	ubfiz	w2, w2, 1, 15
2325	lsr	w8, w8, 1
2326	strh	w2, [x4, #:lo12:.LANCHOR45]
2327	strh	w8, [x6, #:lo12:.LANCHOR41]
2328.L348:
2329	adrp	x1, .LANCHOR48
2330	adrp	x13, .LANCHOR49
2331	mov	w2, 5
2332	cmp	w11, 1
2333	strh	w2, [x1, #:lo12:.LANCHOR48]
2334	strh	wzr, [x13, #:lo12:.LANCHOR49]
2335	bne	.L353
2336	strh	w11, [x1, #:lo12:.LANCHOR48]
2337.L353:
2338	adrp	x8, .LANCHOR50
2339	mov	w1, 4352
2340	strh	w1, [x8, #:lo12:.LANCHOR50]
2341	adrp	x1, .LANCHOR2
2342	ldrb	w11, [x1, #:lo12:.LANCHOR2]
2343	cbz	w11, .L354
2344	mov	w1, 384
2345	strh	w1, [x8, #:lo12:.LANCHOR50]
2346.L354:
2347	ldrh	w4, [x4, #:lo12:.LANCHOR45]
2348	adrp	x1, .LANCHOR38
2349	ldrh	w3, [x6, #:lo12:.LANCHOR41]
2350	adrp	x7, .LANCHOR52
2351	ldrh	w19, [x5, 16]
2352	adrp	x15, .LANCHOR55
2353	ldrh	w10, [x5, 20]
2354	mul	w4, w0, w4
2355	ldrh	w14, [x5, 18]
2356	mul	w0, w0, w3
2357	strh	w19, [x7, #:lo12:.LANCHOR52]
2358	and	w4, w4, 65535
2359	strh	w4, [x1, #:lo12:.LANCHOR38]
2360	adrp	x1, .LANCHOR51
2361	strh	w10, [x15, #:lo12:.LANCHOR55]
2362	strh	w0, [x1, #:lo12:.LANCHOR51]
2363	mul	w1, w4, w19
2364	adrp	x0, .LANCHOR53
2365	strh	w14, [x0, #:lo12:.LANCHOR53]
2366	adrp	x0, .LANCHOR54
2367	strh	w1, [x0, #:lo12:.LANCHOR54]
2368	mov	w0, w10
2369	bl	Ftl_log2
2370	and	w12, w0, 65535
2371	adrp	x6, .LANCHOR56
2372	ubfiz	w2, w10, 9, 7
2373	ldrh	w1, [x5, 26]
2374	cmp	w3, 1024
2375	strh	w0, [x6, #:lo12:.LANCHOR56]
2376	adrp	x0, .LANCHOR57
2377	strh	w2, [x0, #:lo12:.LANCHOR57]
2378	adrp	x0, .LANCHOR58
2379	ubfx	w2, w2, 8, 8
2380	strh	w2, [x0, #:lo12:.LANCHOR58]
2381	adrp	x0, .LANCHOR59
2382	strh	w1, [x0, #:lo12:.LANCHOR59]
2383	adrp	x0, .LANCHOR43
2384	mul	w1, w4, w3
2385	str	w1, [x0, #:lo12:.LANCHOR43]
2386	bls	.L355
2387	and	w0, w3, 255
2388	strh	w0, [x13, #:lo12:.LANCHOR49]
2389.L355:
2390	ldrh	w0, [x13, #:lo12:.LANCHOR49]
2391	adrp	x1, .LANCHOR60
2392	sub	w0, w3, w0
2393	mul	w0, w0, w4
2394	mul	w0, w0, w10
2395	mul	w0, w0, w19
2396	asr	w0, w0, 11
2397	str	w0, [x1, #:lo12:.LANCHOR60]
2398	ldrh	w0, [x8, #:lo12:.LANCHOR50]
2399	mul	w1, w14, w10
2400	adrp	x10, .LANCHOR61
2401	lsl	w0, w0, 3
2402	sdiv	w0, w0, w1
2403	and	w0, w0, 65535
2404	cmp	w0, 4
2405	bls	.L356
2406.L372:
2407	strh	w0, [x10, #:lo12:.LANCHOR61]
2408	cbz	w11, .L358
2409	mov	w0, 640
2410	strh	w0, [x8, #:lo12:.LANCHOR50]
2411.L358:
2412	ldrh	w0, [x8, #:lo12:.LANCHOR50]
2413	adrp	x1, .LANCHOR62
2414	lsl	w3, w3, 6
2415	cmp	w4, 1
2416	adrp	x8, .LANCHOR37
2417	asr	w0, w0, w12
2418	add	w0, w0, 2
2419	strh	w0, [x1, #:lo12:.LANCHOR62]
2420	add	w0, w12, 9
2421	adrp	x1, .LANCHOR64
2422	asr	w3, w3, w0
2423	adrp	x0, .LANCHOR63
2424	strh	w3, [x0, #:lo12:.LANCHOR63]
2425	and	w3, w3, 65535
2426	mul	w0, w4, w3
2427	add	w3, w3, 8
2428	str	w0, [x1, #:lo12:.LANCHOR64]
2429	ldrh	w0, [x10, #:lo12:.LANCHOR61]
2430	udiv	w0, w0, w4
2431	mov	x4, x1
2432	add	w3, w0, w3
2433	beq	.L359
2434.L373:
2435	str	w3, [x8, #:lo12:.LANCHOR37]
2436	ldrh	w0, [x8, #:lo12:.LANCHOR37]
2437	bl	FtlSysBlkNumInit
2438	ldr	w1, [x8, #:lo12:.LANCHOR37]
2439	adrp	x0, .LANCHOR65
2440	mov	w2, 24
2441	str	w1, [x0, #:lo12:.LANCHOR65]
2442	adrp	x0, .LANCHOR42
2443	ldrh	w1, [x7, #:lo12:.LANCHOR52]
2444	ldr	w0, [x0, #:lo12:.LANCHOR42]
2445	lsl	w0, w0, 2
2446	mul	w0, w0, w1
2447	ldrh	w1, [x6, #:lo12:.LANCHOR56]
2448	adrp	x6, .LANCHOR16
2449	add	w1, w1, 9
2450	ldrb	w6, [x6, #:lo12:.LANCHOR16]
2451	lsr	w0, w0, w1
2452	adrp	x1, .LANCHOR66
2453	add	w0, w0, 2
2454	and	w0, w0, 65535
2455	strh	w0, [x1, #:lo12:.LANCHOR66]
2456	adrp	x1, .LANCHOR67
2457	strh	w2, [x1, #:lo12:.LANCHOR67]
2458	adrp	x1, .LANCHOR68
2459	ldrh	w2, [x10, #:lo12:.LANCHOR61]
2460	str	wzr, [x1, #:lo12:.LANCHOR68]
2461	add	w1, w2, 3
2462	strh	w1, [x10, #:lo12:.LANCHOR61]
2463	ldr	w1, [x4, #:lo12:.LANCHOR64]
2464	add	w3, w1, 3
2465	str	w3, [x4, #:lo12:.LANCHOR64]
2466	cbz	w6, .L361
2467	add	w1, w1, 5
2468	add	w2, w2, 4
2469	strh	w2, [x10, #:lo12:.LANCHOR61]
2470.L374:
2471	str	w1, [x4, #:lo12:.LANCHOR64]
2472.L362:
2473	adrp	x1, .LANCHOR40
2474	adrp	x3, .LANCHOR69
2475	ldrh	w1, [x1, #:lo12:.LANCHOR40]
2476	strh	wzr, [x3, #:lo12:.LANCHOR69]
2477	lsl	w2, w1, 1
2478	lsr	w1, w1, 3
2479	add	w2, w2, 48
2480	add	w1, w1, 4
2481	add	w0, w2, w0, lsl 2
2482	add	w0, w0, w1
2483	ldrh	w1, [x15, #:lo12:.LANCHOR55]
2484	cmp	w0, w1, lsl 9
2485	bcs	.L363
2486	mov	w0, 1
2487	strh	w0, [x3, #:lo12:.LANCHOR69]
2488.L363:
2489	mov	w0, 0
2490	ldr	x19, [sp, 16]
2491	ldp	x29, x30, [sp], 32
2492	ret
2493.L356:
2494	mov	w0, 4
2495	b	.L372
2496.L359:
2497	add	w3, w3, 4
2498	b	.L373
2499.L361:
2500	cmp	w3, 7
2501	bhi	.L362
2502	mov	w1, 8
2503	b	.L374
2504	.size	FtlConstantsInit, .-FtlConstantsInit
2505	.section	.text.IsBlkInVendorPart,"ax",@progbits
2506	.align	2
2507	.global	IsBlkInVendorPart
2508	.type	IsBlkInVendorPart, %function
2509IsBlkInVendorPart:
2510	adrp	x1, .LANCHOR70
2511	and	w0, w0, 65535
2512	ldrh	w1, [x1, #:lo12:.LANCHOR70]
2513	cbz	w1, .L379
2514	adrp	x1, .LANCHOR61
2515	ldrh	w2, [x1, #:lo12:.LANCHOR61]
2516	adrp	x1, .LANCHOR71
2517	ldr	x3, [x1, #:lo12:.LANCHOR71]
2518	mov	x1, 0
2519.L377:
2520	cmp	w2, w1, uxth
2521	bhi	.L378
2522.L379:
2523	mov	w0, 0
2524	ret
2525.L378:
2526	add	x1, x1, 1
2527	add	x4, x3, x1, lsl 1
2528	ldrh	w4, [x4, -2]
2529	cmp	w4, w0
2530	bne	.L377
2531	mov	w0, 1
2532	ret
2533	.size	IsBlkInVendorPart, .-IsBlkInVendorPart
2534	.section	.text.FtlCacheMetchLpa,"ax",@progbits
2535	.align	2
2536	.global	FtlCacheMetchLpa
2537	.type	FtlCacheMetchLpa, %function
2538FtlCacheMetchLpa:
2539	adrp	x2, .LANCHOR72
2540	ldr	w4, [x2, #:lo12:.LANCHOR72]
2541	cbz	w4, .L386
2542	adrp	x2, .LANCHOR73
2543	mov	x5, 24
2544	mov	w6, 56
2545	ldr	x2, [x2, #:lo12:.LANCHOR73]
2546	nop // between mem op and mult-accumulate
2547	umaddl	x4, w4, w6, x5
2548	add	x3, x2, 24
2549	add	x2, x2, x4
2550.L383:
2551	cmp	x3, x2
2552	bne	.L385
2553.L386:
2554	mov	w0, 0
2555	ret
2556.L385:
2557	ldr	w4, [x3]
2558	cmp	w4, w0
2559	bcc	.L384
2560	cmp	w4, w1
2561	bls	.L387
2562.L384:
2563	add	x3, x3, 56
2564	b	.L383
2565.L387:
2566	mov	w0, 1
2567	ret
2568	.size	FtlCacheMetchLpa, .-FtlCacheMetchLpa
2569	.section	.text.FtlGetCap,"ax",@progbits
2570	.align	2
2571	.global	FtlGetCap
2572	.type	FtlGetCap, %function
2573FtlGetCap:
2574	adrp	x0, .LANCHOR68
2575	ldr	w0, [x0, #:lo12:.LANCHOR68]
2576	ret
2577	.size	FtlGetCap, .-FtlGetCap
2578	.section	.text.FtlGetCapacity,"ax",@progbits
2579	.align	2
2580	.global	FtlGetCapacity
2581	.type	FtlGetCapacity, %function
2582FtlGetCapacity:
2583	adrp	x0, .LANCHOR68
2584	ldr	w0, [x0, #:lo12:.LANCHOR68]
2585	ret
2586	.size	FtlGetCapacity, .-FtlGetCapacity
2587	.section	.text.ftl_get_density,"ax",@progbits
2588	.align	2
2589	.global	ftl_get_density
2590	.type	ftl_get_density, %function
2591ftl_get_density:
2592	adrp	x0, .LANCHOR68
2593	ldr	w0, [x0, #:lo12:.LANCHOR68]
2594	ret
2595	.size	ftl_get_density, .-ftl_get_density
2596	.section	.text.FtlGetLpn,"ax",@progbits
2597	.align	2
2598	.global	FtlGetLpn
2599	.type	FtlGetLpn, %function
2600FtlGetLpn:
2601	adrp	x0, .LANCHOR74
2602	ldr	w0, [x0, #:lo12:.LANCHOR74]
2603	ret
2604	.size	FtlGetLpn, .-FtlGetLpn
2605	.section	.text.FtlGetCurEraseBlock,"ax",@progbits
2606	.align	2
2607	.global	FtlGetCurEraseBlock
2608	.type	FtlGetCurEraseBlock, %function
2609FtlGetCurEraseBlock:
2610	adrp	x0, .LANCHOR38
2611	ldrh	w1, [x0, #:lo12:.LANCHOR38]
2612	adrp	x0, .LANCHOR75
2613	ldr	w0, [x0, #:lo12:.LANCHOR75]
2614	mul	w0, w1, w0
2615	ret
2616	.size	FtlGetCurEraseBlock, .-FtlGetCurEraseBlock
2617	.section	.text.FtlGetAllBlockNum,"ax",@progbits
2618	.align	2
2619	.global	FtlGetAllBlockNum
2620	.type	FtlGetAllBlockNum, %function
2621FtlGetAllBlockNum:
2622	adrp	x0, .LANCHOR41
2623	ldrh	w1, [x0, #:lo12:.LANCHOR41]
2624	adrp	x0, .LANCHOR38
2625	ldrh	w0, [x0, #:lo12:.LANCHOR38]
2626	mul	w0, w1, w0
2627	ret
2628	.size	FtlGetAllBlockNum, .-FtlGetAllBlockNum
2629	.section	.text.FtlBbmMapBadBlock,"ax",@progbits
2630	.align	2
2631	.global	FtlBbmMapBadBlock
2632	.type	FtlBbmMapBadBlock, %function
2633FtlBbmMapBadBlock:
2634	stp	x29, x30, [sp, -32]!
2635	and	w1, w0, 65535
2636	adrp	x0, .LANCHOR51
2637	mov	w4, 1
2638	add	x29, sp, 0
2639	ldrh	w0, [x0, #:lo12:.LANCHOR51]
2640	str	x19, [sp, 16]
2641	adrp	x19, .LANCHOR76
2642	add	x19, x19, :lo12:.LANCHOR76
2643	udiv	w3, w1, w0
2644	and	w2, w3, 65535
2645	msub	w3, w3, w0, w1
2646	add	x0, x19, x2, uxth 3
2647	and	w3, w3, 65535
2648	and	w6, w3, 31
2649	ldr	x0, [x0, 32]
2650	ubfx	x5, x3, 5, 11
2651	lsl	x5, x5, 2
2652	lsl	w4, w4, w6
2653	ldr	w6, [x0, x5]
2654	orr	w4, w4, w6
2655	str	w4, [x0, x5]
2656	adrp	x0, .LC2
2657	add	x0, x0, :lo12:.LC2
2658	bl	printf
2659	ldrh	w0, [x19, 6]
2660	add	w0, w0, 1
2661	strh	w0, [x19, 6]
2662	mov	w0, 0
2663	ldr	x19, [sp, 16]
2664	ldp	x29, x30, [sp], 32
2665	ret
2666	.size	FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
2667	.section	.text.FtlBbmIsBadBlock,"ax",@progbits
2668	.align	2
2669	.global	FtlBbmIsBadBlock
2670	.type	FtlBbmIsBadBlock, %function
2671FtlBbmIsBadBlock:
2672	adrp	x1, .LANCHOR51
2673	and	w0, w0, 65535
2674	ldrh	w1, [x1, #:lo12:.LANCHOR51]
2675	udiv	w2, w0, w1
2676	msub	w0, w2, w1, w0
2677	adrp	x1, .LANCHOR76
2678	add	x1, x1, :lo12:.LANCHOR76
2679	add	x2, x1, x2, uxth 3
2680	and	w0, w0, 65535
2681	ubfx	x3, x0, 5, 11
2682	and	w0, w0, 31
2683	ldr	x1, [x2, 32]
2684	ldr	w1, [x1, x3, lsl 2]
2685	lsr	w0, w1, w0
2686	and	w0, w0, 1
2687	ret
2688	.size	FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
2689	.section	.text.FtlBbtInfoPrint,"ax",@progbits
2690	.align	2
2691	.global	FtlBbtInfoPrint
2692	.type	FtlBbtInfoPrint, %function
2693FtlBbtInfoPrint:
2694	ret
2695	.size	FtlBbtInfoPrint, .-FtlBbtInfoPrint
2696	.section	.text.V2P_block,"ax",@progbits
2697	.align	2
2698	.global	V2P_block
2699	.type	V2P_block, %function
2700V2P_block:
2701	adrp	x2, .LANCHOR46
2702	and	w0, w0, 65535
2703	adrp	x4, .LANCHOR51
2704	and	w1, w1, 65535
2705	ldrh	w2, [x2, #:lo12:.LANCHOR46]
2706	ldrh	w4, [x4, #:lo12:.LANCHOR51]
2707	udiv	w3, w0, w2
2708	msub	w0, w3, w2, w0
2709	madd	w2, w2, w1, w0
2710	madd	w0, w3, w4, w2
2711	ret
2712	.size	V2P_block, .-V2P_block
2713	.section	.text.P2V_plane,"ax",@progbits
2714	.align	2
2715	.global	P2V_plane
2716	.type	P2V_plane, %function
2717P2V_plane:
2718	and	w3, w0, 65535
2719	adrp	x0, .LANCHOR46
2720	ldrh	w1, [x0, #:lo12:.LANCHOR46]
2721	adrp	x0, .LANCHOR51
2722	ldrh	w2, [x0, #:lo12:.LANCHOR51]
2723	udiv	w0, w3, w1
2724	udiv	w2, w3, w2
2725	msub	w0, w0, w1, w3
2726	madd	w0, w1, w2, w0
2727	ret
2728	.size	P2V_plane, .-P2V_plane
2729	.section	.text.P2V_block_in_plane,"ax",@progbits
2730	.align	2
2731	.global	P2V_block_in_plane
2732	.type	P2V_block_in_plane, %function
2733P2V_block_in_plane:
2734	and	w2, w0, 65535
2735	adrp	x0, .LANCHOR51
2736	ldrh	w1, [x0, #:lo12:.LANCHOR51]
2737	udiv	w0, w2, w1
2738	msub	w0, w0, w1, w2
2739	adrp	x1, .LANCHOR46
2740	ldrh	w1, [x1, #:lo12:.LANCHOR46]
2741	and	w0, w0, 65535
2742	udiv	w0, w0, w1
2743	ret
2744	.size	P2V_block_in_plane, .-P2V_block_in_plane
2745	.section	.text.ftl_cmp_data_ver,"ax",@progbits
2746	.align	2
2747	.global	ftl_cmp_data_ver
2748	.type	ftl_cmp_data_ver, %function
2749ftl_cmp_data_ver:
2750	cmp	w0, w1
2751	mov	w2, -2147483648
2752	bls	.L402
2753	sub	w1, w0, w1
2754	cmp	w1, w2
2755	cset	w0, ls
2756	ret
2757.L402:
2758	sub	w1, w1, w0
2759	cmp	w1, w2
2760	cset	w0, hi
2761	ret
2762	.size	ftl_cmp_data_ver, .-ftl_cmp_data_ver
2763	.section	.text.FtlFreeSysBlkQueueEmpty,"ax",@progbits
2764	.align	2
2765	.global	FtlFreeSysBlkQueueEmpty
2766	.type	FtlFreeSysBlkQueueEmpty, %function
2767FtlFreeSysBlkQueueEmpty:
2768	adrp	x0, .LANCHOR77+6
2769	ldrh	w0, [x0, #:lo12:.LANCHOR77+6]
2770	cmp	w0, 0
2771	cset	w0, eq
2772	ret
2773	.size	FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
2774	.section	.text.FtlFreeSysBlkQueueFull,"ax",@progbits
2775	.align	2
2776	.global	FtlFreeSysBlkQueueFull
2777	.type	FtlFreeSysBlkQueueFull, %function
2778FtlFreeSysBlkQueueFull:
2779	adrp	x0, .LANCHOR77+6
2780	ldrh	w0, [x0, #:lo12:.LANCHOR77+6]
2781	cmp	w0, 1024
2782	cset	w0, eq
2783	ret
2784	.size	FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
2785	.section	.text.FtlFreeSysBlkQueueIn,"ax",@progbits
2786	.align	2
2787	.global	FtlFreeSysBlkQueueIn
2788	.type	FtlFreeSysBlkQueueIn, %function
2789FtlFreeSysBlkQueueIn:
2790	stp	x29, x30, [sp, -48]!
2791	add	x29, sp, 0
2792	stp	x19, x20, [sp, 16]
2793	and	w20, w0, 65535
2794	str	x21, [sp, 32]
2795	sub	w2, w20, #1
2796	mov	w0, 65533
2797	cmp	w0, w2, uxth
2798	bcc	.L406
2799	adrp	x0, .LANCHOR77
2800	add	x2, x0, :lo12:.LANCHOR77
2801	mov	x19, x0
2802	ldrh	w2, [x2, 6]
2803	cmp	w2, 1024
2804	beq	.L406
2805	and	w1, w1, 65535
2806	cbz	w1, .L408
2807	adrp	x0, .LANCHOR78
2808	ldr	w0, [x0, #:lo12:.LANCHOR78]
2809	cbnz	w0, .L408
2810	mov	w0, w20
2811	bl	P2V_block_in_plane
2812	and	w21, w0, 65535
2813	adrp	x0, .LANCHOR79
2814	lsl	w1, w20, 10
2815	mov	w2, 1
2816	ldr	x0, [x0, #:lo12:.LANCHOR79]
2817	str	w1, [x0, 4]
2818	mov	w1, w2
2819	bl	FlashEraseBlocks
2820	adrp	x1, .LANCHOR80
2821	ubfiz	x0, x21, 1, 16
2822	ldr	x2, [x1, #:lo12:.LANCHOR80]
2823	ldrh	w1, [x2, x0]
2824	add	w1, w1, 1
2825	strh	w1, [x2, x0]
2826	adrp	x1, .LANCHOR81
2827	ldr	w0, [x1, #:lo12:.LANCHOR81]
2828	add	w0, w0, 1
2829	str	w0, [x1, #:lo12:.LANCHOR81]
2830.L408:
2831	add	x0, x19, :lo12:.LANCHOR77
2832	ldrh	w1, [x0, 6]
2833	add	w1, w1, 1
2834	strh	w1, [x0, 6]
2835	ldrh	w1, [x0, 4]
2836	add	x2, x0, x1, sxtw 1
2837	add	w1, w1, 1
2838	and	w1, w1, 1023
2839	strh	w1, [x0, 4]
2840	strh	w20, [x2, 8]
2841.L406:
2842	ldp	x19, x20, [sp, 16]
2843	ldr	x21, [sp, 32]
2844	ldp	x29, x30, [sp], 48
2845	ret
2846	.size	FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
2847	.section	.text.FtlFreeSysBLkSort,"ax",@progbits
2848	.align	2
2849	.global	FtlFreeSysBLkSort
2850	.type	FtlFreeSysBLkSort, %function
2851FtlFreeSysBLkSort:
2852	adrp	x0, .LANCHOR77
2853	add	x1, x0, :lo12:.LANCHOR77
2854	ldrh	w2, [x1, 6]
2855	cbz	w2, .L416
2856	adrp	x2, .LANCHOR82+28
2857	ldrh	w3, [x1, 2]
2858	mov	w6, 0
2859	mov	w4, 0
2860	ldrh	w5, [x2, #:lo12:.LANCHOR82+28]
2861	ldrh	w2, [x1, 4]
2862	and	w5, w5, 31
2863.L418:
2864	cmp	w5, w4
2865	bgt	.L419
2866	cbz	w6, .L416
2867	add	x0, x0, :lo12:.LANCHOR77
2868	strh	w3, [x0, 2]
2869	strh	w2, [x0, 4]
2870.L416:
2871	ret
2872.L419:
2873	add	x6, x1, x3, sxtw 1
2874	add	w4, w4, 1
2875	add	w3, w3, 1
2876	and	w4, w4, 65535
2877	and	w3, w3, 1023
2878	ldrh	w7, [x6, 8]
2879	add	x6, x1, x2, sxtw 1
2880	strh	w7, [x6, 8]
2881	mov	w6, 1
2882	add	w2, w2, w6
2883	and	w2, w2, 1023
2884	b	.L418
2885	.size	FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
2886	.section	.text.FtlFreeSysBlkQueueOut,"ax",@progbits
2887	.align	2
2888	.global	FtlFreeSysBlkQueueOut
2889	.type	FtlFreeSysBlkQueueOut, %function
2890FtlFreeSysBlkQueueOut:
2891	stp	x29, x30, [sp, -64]!
2892	add	x29, sp, 0
2893	stp	x19, x20, [sp, 16]
2894	adrp	x19, .LANCHOR77
2895	add	x19, x19, :lo12:.LANCHOR77
2896	stp	x21, x22, [sp, 32]
2897	stp	x23, x24, [sp, 48]
2898	adrp	x22, .LANCHOR78
2899	mov	x23, x19
2900	add	x22, x22, :lo12:.LANCHOR78
2901.L426:
2902	ldrh	w1, [x19, 6]
2903	cbz	w1, .L427
2904	ldrh	w0, [x19, 2]
2905	sub	w1, w1, #1
2906	strh	w1, [x19, 6]
2907	add	x2, x19, x0, sxtw 1
2908	add	w0, w0, 1
2909	and	w0, w0, 1023
2910	strh	w0, [x19, 2]
2911	ldr	w0, [x22]
2912	ldrh	w20, [x2, 8]
2913	cbnz	w0, .L428
2914	mov	w0, w20
2915	bl	P2V_block_in_plane
2916	adrp	x1, .LANCHOR79
2917	and	w21, w0, 65535
2918	lsl	w2, w20, 10
2919	mov	x24, x1
2920	ldr	x0, [x1, #:lo12:.LANCHOR79]
2921	str	w2, [x0, 4]
2922	adrp	x2, .LANCHOR16
2923	ldrb	w2, [x2, #:lo12:.LANCHOR16]
2924	cbz	w2, .L429
2925	mov	w2, 1
2926	mov	w1, 0
2927	bl	FlashEraseBlocks
2928.L429:
2929	ldr	x0, [x24, #:lo12:.LANCHOR79]
2930	mov	w2, 1
2931	mov	w1, w2
2932	bl	FlashEraseBlocks
2933	adrp	x1, .LANCHOR80
2934	ubfiz	x0, x21, 1, 16
2935	ldr	x2, [x1, #:lo12:.LANCHOR80]
2936	ldrh	w1, [x2, x0]
2937	add	w1, w1, 1
2938	strh	w1, [x2, x0]
2939	adrp	x1, .LANCHOR81
2940	ldr	w0, [x1, #:lo12:.LANCHOR81]
2941	add	w0, w0, 1
2942	str	w0, [x1, #:lo12:.LANCHOR81]
2943.L428:
2944	sub	w0, w20, #1
2945	mov	w1, 65533
2946	cmp	w1, w0, uxth
2947	bcs	.L431
2948	ldrh	w2, [x23, 6]
2949	mov	w1, w20
2950	adrp	x0, .LC4
2951	add	x0, x0, :lo12:.LC4
2952	bl	printf
2953	b	.L426
2954.L427:
2955	adrp	x0, .LC3
2956	mov	w1, 0
2957	add	x0, x0, :lo12:.LC3
2958	bl	printf
2959.L430:
2960	b	.L430
2961.L431:
2962	mov	w0, w20
2963	ldp	x19, x20, [sp, 16]
2964	ldp	x21, x22, [sp, 32]
2965	ldp	x23, x24, [sp, 48]
2966	ldp	x29, x30, [sp], 64
2967	ret
2968	.size	FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
2969	.section	.text.test_node_in_list,"ax",@progbits
2970	.align	2
2971	.global	test_node_in_list
2972	.type	test_node_in_list, %function
2973test_node_in_list:
2974	ldr	x2, [x0]
2975	adrp	x0, .LANCHOR83
2976	mov	x4, -6148914691236517206
2977	and	w1, w1, 65535
2978	ldr	x3, [x0, #:lo12:.LANCHOR83]
2979	movk	x4, 0xaaab, lsl 0
2980	mov	w5, 65535
2981	sub	x0, x2, x3
2982	asr	x0, x0, 1
2983	mul	x0, x0, x4
2984	mov	w4, 6
2985	and	w0, w0, 65535
2986.L438:
2987	cmp	w0, w1
2988	beq	.L439
2989	ldrh	w0, [x2]
2990	cmp	w0, w5
2991	beq	.L440
2992	umaddl	x2, w0, w4, x3
2993	b	.L438
2994.L439:
2995	mov	w0, 1
2996	ret
2997.L440:
2998	mov	w0, 0
2999	ret
3000	.size	test_node_in_list, .-test_node_in_list
3001	.section	.text.insert_data_list,"ax",@progbits
3002	.align	2
3003	.global	insert_data_list
3004	.type	insert_data_list, %function
3005insert_data_list:
3006	adrp	x1, .LANCHOR40
3007	and	w0, w0, 65535
3008	ldrh	w14, [x1, #:lo12:.LANCHOR40]
3009	cmp	w14, w0
3010	bls	.L457
3011	adrp	x1, .LANCHOR83
3012	mov	w3, 6
3013	ldr	x6, [x1, #:lo12:.LANCHOR83]
3014	umull	x13, w0, w3
3015	mov	w1, -1
3016	add	x5, x6, x13
3017	strh	w1, [x5, 2]
3018	strh	w1, [x6, x13]
3019	adrp	x1, .LANCHOR84
3020	mov	x15, x1
3021	ldr	x12, [x1, #:lo12:.LANCHOR84]
3022	cbnz	x12, .L444
3023	str	x5, [x1, #:lo12:.LANCHOR84]
3024.L457:
3025	mov	w0, 0
3026	ret
3027.L444:
3028	stp	x29, x30, [sp, -32]!
3029	adrp	x1, .LANCHOR85
3030	ubfiz	x2, x0, 1, 16
3031	mov	x4, -6148914691236517206
3032	add	x29, sp, 0
3033	ldr	x16, [x1, #:lo12:.LANCHOR85]
3034	movk	x4, 0xaaab, lsl 0
3035	ldrh	w1, [x5, 4]
3036	mov	w8, -1
3037	mov	w11, w8
3038	stp	x19, x20, [sp, 16]
3039	cmp	w1, 0
3040	mov	w20, 65535
3041	ldrh	w7, [x16, x2]
3042	mul	w7, w7, w1
3043	sub	x1, x12, x6
3044	asr	x1, x1, 1
3045	csel	w7, w7, w8, ne
3046	mov	w8, w3
3047	mul	x1, x1, x4
3048	adrp	x4, .LANCHOR80
3049	ldr	x17, [x4, #:lo12:.LANCHOR80]
3050	and	w1, w1, 65535
3051	mov	x4, x12
3052	add	x10, x17, x2
3053	mov	w2, 0
3054.L452:
3055	add	w2, w2, 1
3056	and	w2, w2, 65535
3057	cmp	w14, w2
3058	bcc	.L443
3059	cmp	w1, w0
3060	beq	.L443
3061	ubfiz	x30, x1, 1, 16
3062	ldrh	w19, [x4, 4]
3063	cmp	w19, 0
3064	ldrh	w3, [x16, x30]
3065	mul	w3, w3, w19
3066	csel	w3, w3, w11, ne
3067	cmp	w7, w3
3068	bne	.L448
3069	ldrh	w19, [x17, x30]
3070	ldrh	w3, [x10]
3071	cmp	w19, w3
3072	bcc	.L450
3073.L449:
3074	strh	w1, [x6, x13]
3075	cmp	x4, x12
3076	ldrh	w1, [x4, 2]
3077	strh	w1, [x5, 2]
3078	bne	.L453
3079	strh	w0, [x4, 2]
3080	str	x5, [x15, #:lo12:.LANCHOR84]
3081	b	.L443
3082.L448:
3083	bcc	.L449
3084.L450:
3085	ldrh	w3, [x4]
3086	cmp	w3, w20
3087	bne	.L451
3088	strh	w1, [x5, 2]
3089	strh	w0, [x4]
3090	adrp	x0, .LANCHOR86
3091	str	x5, [x0, #:lo12:.LANCHOR86]
3092.L443:
3093	mov	w0, 0
3094	ldp	x19, x20, [sp, 16]
3095	ldp	x29, x30, [sp], 32
3096	ret
3097.L451:
3098	umaddl	x4, w3, w8, x6
3099	mov	w1, w3
3100	b	.L452
3101.L453:
3102	ldrh	w1, [x4, 2]
3103	mov	w2, 6
3104	umull	x1, w1, w2
3105	strh	w0, [x6, x1]
3106	strh	w0, [x4, 2]
3107	b	.L443
3108	.size	insert_data_list, .-insert_data_list
3109	.section	.text.INSERT_DATA_LIST,"ax",@progbits
3110	.align	2
3111	.global	INSERT_DATA_LIST
3112	.type	INSERT_DATA_LIST, %function
3113INSERT_DATA_LIST:
3114	stp	x29, x30, [sp, -16]!
3115	add	x29, sp, 0
3116	bl	insert_data_list
3117	adrp	x1, .LANCHOR87
3118	ldrh	w0, [x1, #:lo12:.LANCHOR87]
3119	add	w0, w0, 1
3120	and	w0, w0, 65535
3121	strh	w0, [x1, #:lo12:.LANCHOR87]
3122	adrp	x1, .LANCHOR40
3123	ldrh	w1, [x1, #:lo12:.LANCHOR40]
3124	cmp	w1, w0
3125	bcs	.L459
3126	mov	w2, 245
3127	adrp	x1, .LANCHOR88
3128	adrp	x0, .LC5
3129	add	x1, x1, :lo12:.LANCHOR88
3130	add	x0, x0, :lo12:.LC5
3131	bl	printf
3132	ldp	x29, x30, [sp], 16
3133	adrp	x1, .LC6
3134	adrp	x0, .LC7
3135	add	x1, x1, :lo12:.LC6
3136	add	x0, x0, :lo12:.LC7
3137	b	printf
3138.L459:
3139	ldp	x29, x30, [sp], 16
3140	ret
3141	.size	INSERT_DATA_LIST, .-INSERT_DATA_LIST
3142	.section	.text.insert_free_list,"ax",@progbits
3143	.align	2
3144	.global	insert_free_list
3145	.type	insert_free_list, %function
3146insert_free_list:
3147	and	w0, w0, 65535
3148	mov	w7, 65535
3149	cmp	w0, w7
3150	beq	.L463
3151	adrp	x1, .LANCHOR83
3152	mov	w6, 6
3153	ldr	x3, [x1, #:lo12:.LANCHOR83]
3154	umull	x8, w0, w6
3155	mov	w1, -1
3156	add	x4, x3, x8
3157	strh	w1, [x4, 2]
3158	strh	w1, [x3, x8]
3159	adrp	x1, .LANCHOR89
3160	mov	x12, x1
3161	ldr	x5, [x1, #:lo12:.LANCHOR89]
3162	cbnz	x5, .L464
3163	str	x4, [x1, #:lo12:.LANCHOR89]
3164.L463:
3165	mov	w0, 0
3166	ret
3167.L464:
3168	adrp	x1, .LANCHOR80
3169	mov	x2, -6148914691236517206
3170	movk	x2, 0xaaab, lsl 0
3171	ldr	x11, [x1, #:lo12:.LANCHOR80]
3172	ubfiz	x1, x0, 1, 16
3173	ldrh	w13, [x11, x1]
3174	sub	x1, x5, x3
3175	asr	x1, x1, 1
3176	mul	x1, x1, x2
3177	mov	x2, x5
3178	and	w1, w1, 65535
3179.L467:
3180	ubfiz	x10, x1, 1, 16
3181	ldrh	w10, [x11, x10]
3182	cmp	w10, w13
3183	bcs	.L465
3184	ldrh	w10, [x2]
3185	cmp	w10, w7
3186	bne	.L466
3187	strh	w1, [x4, 2]
3188	strh	w0, [x2]
3189	b	.L463
3190.L466:
3191	umaddl	x2, w10, w6, x3
3192	mov	w1, w10
3193	b	.L467
3194.L465:
3195	ldrh	w6, [x2, 2]
3196	cmp	x2, x5
3197	strh	w6, [x4, 2]
3198	strh	w1, [x3, x8]
3199	bne	.L468
3200	strh	w0, [x2, 2]
3201	str	x4, [x12, #:lo12:.LANCHOR89]
3202	b	.L463
3203.L468:
3204	ldrh	w1, [x2, 2]
3205	mov	w4, 6
3206	umull	x1, w1, w4
3207	strh	w0, [x3, x1]
3208	strh	w0, [x2, 2]
3209	b	.L463
3210	.size	insert_free_list, .-insert_free_list
3211	.section	.text.INSERT_FREE_LIST,"ax",@progbits
3212	.align	2
3213	.global	INSERT_FREE_LIST
3214	.type	INSERT_FREE_LIST, %function
3215INSERT_FREE_LIST:
3216	stp	x29, x30, [sp, -16]!
3217	add	x29, sp, 0
3218	bl	insert_free_list
3219	adrp	x1, .LANCHOR90
3220	ldrh	w0, [x1, #:lo12:.LANCHOR90]
3221	add	w0, w0, 1
3222	and	w0, w0, 65535
3223	strh	w0, [x1, #:lo12:.LANCHOR90]
3224	adrp	x1, .LANCHOR40
3225	ldrh	w1, [x1, #:lo12:.LANCHOR40]
3226	cmp	w1, w0
3227	bcs	.L469
3228	mov	w2, 238
3229	adrp	x1, .LANCHOR91
3230	adrp	x0, .LC5
3231	add	x1, x1, :lo12:.LANCHOR91
3232	add	x0, x0, :lo12:.LC5
3233	bl	printf
3234	ldp	x29, x30, [sp], 16
3235	adrp	x1, .LC6
3236	adrp	x0, .LC7
3237	add	x1, x1, :lo12:.LC6
3238	add	x0, x0, :lo12:.LC7
3239	b	printf
3240.L469:
3241	ldp	x29, x30, [sp], 16
3242	ret
3243	.size	INSERT_FREE_LIST, .-INSERT_FREE_LIST
3244	.section	.text.List_remove_node,"ax",@progbits
3245	.align	2
3246	.global	List_remove_node
3247	.type	List_remove_node, %function
3248List_remove_node:
3249	stp	x29, x30, [sp, -64]!
3250	and	w1, w1, 65535
3251	add	x29, sp, 0
3252	stp	x19, x20, [sp, 16]
3253	adrp	x20, .LANCHOR83
3254	stp	x21, x22, [sp, 32]
3255	mov	x22, x0
3256	mov	w0, 6
3257	str	x23, [sp, 48]
3258	ldr	x23, [x20, #:lo12:.LANCHOR83]
3259	umull	x21, w1, w0
3260	mov	w0, 65535
3261	add	x19, x23, x21
3262	ldrh	w1, [x19, 2]
3263	cmp	w1, w0
3264	bne	.L473
3265	ldr	x0, [x22]
3266	cmp	x19, x0
3267	beq	.L473
3268	mov	w2, 435
3269	adrp	x1, .LANCHOR92
3270	adrp	x0, .LC5
3271	add	x1, x1, :lo12:.LANCHOR92
3272	add	x0, x0, :lo12:.LC5
3273	bl	printf
3274	adrp	x1, .LC6
3275	adrp	x0, .LC7
3276	add	x1, x1, :lo12:.LC6
3277	add	x0, x0, :lo12:.LC7
3278	bl	printf
3279.L473:
3280	ldr	x0, [x22]
3281	mov	w1, 65535
3282	cmp	x19, x0
3283	ldrh	w0, [x23, x21]
3284	bne	.L474
3285	cmp	w0, w1
3286	bne	.L475
3287	str	xzr, [x22]
3288.L476:
3289	mov	w0, -1
3290	strh	w0, [x23, x21]
3291	strh	w0, [x19, 2]
3292	mov	w0, 0
3293	ldp	x19, x20, [sp, 16]
3294	ldp	x21, x22, [sp, 32]
3295	ldr	x23, [sp, 48]
3296	ldp	x29, x30, [sp], 64
3297	ret
3298.L475:
3299	ldr	x1, [x20, #:lo12:.LANCHOR83]
3300	mov	w2, 6
3301	umaddl	x0, w0, w2, x1
3302	mov	w1, -1
3303	str	x0, [x22]
3304	strh	w1, [x0, 2]
3305	b	.L476
3306.L474:
3307	cmp	w0, w1
3308	ldrh	w1, [x19, 2]
3309	bne	.L477
3310	cmp	w1, w0
3311	beq	.L476
3312	mov	w0, 6
3313	mov	w2, -1
3314	umull	x1, w1, w0
3315	ldr	x0, [x20, #:lo12:.LANCHOR83]
3316	strh	w2, [x0, x1]
3317	b	.L476
3318.L477:
3319	ldr	x2, [x20, #:lo12:.LANCHOR83]
3320	mov	w3, 6
3321	umaddl	x4, w0, w3, x2
3322	strh	w1, [x4, 2]
3323	ldrh	w1, [x19, 2]
3324	umull	x1, w1, w3
3325	strh	w0, [x2, x1]
3326	b	.L476
3327	.size	List_remove_node, .-List_remove_node
3328	.section	.text.List_pop_index_node,"ax",@progbits
3329	.align	2
3330	.global	List_pop_index_node
3331	.type	List_pop_index_node, %function
3332List_pop_index_node:
3333	ldr	x2, [x0]
3334	cbz	x2, .L485
3335	stp	x29, x30, [sp, -32]!
3336	adrp	x3, .LANCHOR83
3337	and	w1, w1, 65535
3338	mov	w4, 65535
3339	add	x29, sp, 0
3340	str	x19, [sp, 16]
3341	mov	w5, 6
3342	ldr	x19, [x3, #:lo12:.LANCHOR83]
3343.L481:
3344	cbnz	w1, .L482
3345.L484:
3346	sub	x19, x2, x19
3347	mov	x2, -6148914691236517206
3348	asr	x19, x19, 1
3349	movk	x2, 0xaaab, lsl 0
3350	mul	x19, x19, x2
3351	and	w19, w19, 65535
3352	mov	w1, w19
3353	bl	List_remove_node
3354	mov	w0, w19
3355	ldr	x19, [sp, 16]
3356	ldp	x29, x30, [sp], 32
3357	ret
3358.L482:
3359	ldrh	w3, [x2]
3360	cmp	w3, w4
3361	beq	.L484
3362	sub	w1, w1, #1
3363	umaddl	x2, w3, w5, x19
3364	and	w1, w1, 65535
3365	b	.L481
3366.L485:
3367	mov	w0, 65535
3368	ret
3369	.size	List_pop_index_node, .-List_pop_index_node
3370	.section	.text.List_get_gc_head_node,"ax",@progbits
3371	.align	2
3372	.global	List_get_gc_head_node
3373	.type	List_get_gc_head_node, %function
3374List_get_gc_head_node:
3375	and	w2, w0, 65535
3376	adrp	x0, .LANCHOR84
3377	ldr	x1, [x0, #:lo12:.LANCHOR84]
3378	cbz	x1, .L495
3379	adrp	x0, .LANCHOR83
3380	mov	w4, 6
3381	ldr	x3, [x0, #:lo12:.LANCHOR83]
3382	mov	w0, 65535
3383.L492:
3384	cbz	w2, .L493
3385	ldrh	w1, [x1]
3386	cmp	w1, w0
3387	bne	.L494
3388	ret
3389.L494:
3390	sub	w2, w2, #1
3391	umaddl	x1, w1, w4, x3
3392	and	w2, w2, 65535
3393	b	.L492
3394.L495:
3395	mov	w0, 65535
3396	ret
3397.L493:
3398	sub	x0, x1, x3
3399	mov	x1, -6148914691236517206
3400	asr	x0, x0, 1
3401	movk	x1, 0xaaab, lsl 0
3402	mul	x0, x0, x1
3403	and	w0, w0, 65535
3404	ret
3405	.size	List_get_gc_head_node, .-List_get_gc_head_node
3406	.section	.text.List_update_data_list,"ax",@progbits
3407	.align	2
3408	.global	List_update_data_list
3409	.type	List_update_data_list, %function
3410List_update_data_list:
3411	stp	x29, x30, [sp, -80]!
3412	add	x29, sp, 0
3413	stp	x19, x20, [sp, 16]
3414	and	w19, w0, 65535
3415	adrp	x0, .LANCHOR93
3416	stp	x21, x22, [sp, 32]
3417	stp	x23, x24, [sp, 48]
3418	ldrh	w0, [x0, #:lo12:.LANCHOR93]
3419	stp	x25, x26, [sp, 64]
3420	cmp	w0, w19
3421	beq	.L498
3422	adrp	x0, .LANCHOR94
3423	ldrh	w0, [x0, #:lo12:.LANCHOR94]
3424	cmp	w0, w19
3425	beq	.L498
3426	adrp	x0, .LANCHOR95
3427	ldrh	w0, [x0, #:lo12:.LANCHOR95]
3428	cmp	w0, w19
3429	beq	.L498
3430	adrp	x0, .LANCHOR83
3431	mov	w21, 6
3432	adrp	x24, .LANCHOR84
3433	mov	x26, x0
3434	umull	x21, w19, w21
3435	ldr	x23, [x0, #:lo12:.LANCHOR83]
3436	ldr	x1, [x24, #:lo12:.LANCHOR84]
3437	add	x22, x23, x21
3438	cmp	x22, x1
3439	beq	.L498
3440	adrp	x1, .LANCHOR85
3441	ubfiz	x0, x19, 1, 16
3442	mov	x25, x1
3443	ldr	x2, [x1, #:lo12:.LANCHOR85]
3444	mov	w1, 65535
3445	ldrh	w20, [x2, x0]
3446	ldrh	w0, [x22, 4]
3447	cmp	w0, 0
3448	mul	w20, w20, w0
3449	ldrh	w0, [x22, 2]
3450	csinv	w20, w20, wzr, ne
3451	cmp	w0, w1
3452	bne	.L501
3453	ldrh	w1, [x23, x21]
3454	cmp	w1, w0
3455	bne	.L501
3456	mov	w2, 571
3457	adrp	x1, .LANCHOR96
3458	adrp	x0, .LC5
3459	add	x1, x1, :lo12:.LANCHOR96
3460	add	x0, x0, :lo12:.LC5
3461	bl	printf
3462	adrp	x1, .LC6
3463	adrp	x0, .LC7
3464	add	x1, x1, :lo12:.LC6
3465	add	x0, x0, :lo12:.LC7
3466	bl	printf
3467.L501:
3468	ldrh	w0, [x22, 2]
3469	mov	w1, 65535
3470	cmp	w0, w1
3471	bne	.L502
3472	ldrh	w1, [x23, x21]
3473	cmp	w1, w0
3474	beq	.L498
3475.L502:
3476	mov	w1, 6
3477	mov	x2, -6148914691236517206
3478	movk	x2, 0xaaab, lsl 0
3479	umull	x0, w0, w1
3480	asr	x1, x0, 1
3481	mul	x1, x1, x2
3482	ldr	x2, [x25, #:lo12:.LANCHOR85]
3483	ldrh	w1, [x2, x1, lsl 1]
3484	ldr	x2, [x26, #:lo12:.LANCHOR83]
3485	add	x0, x2, x0
3486	ldrh	w2, [x0, 4]
3487	cmp	w2, 0
3488	mul	w0, w1, w2
3489	csinv	w0, w0, wzr, ne
3490	cmp	w20, w0
3491	bcs	.L498
3492	adrp	x20, .LANCHOR87
3493	mov	w1, w19
3494	add	x0, x24, :lo12:.LANCHOR84
3495	bl	List_remove_node
3496	ldrh	w0, [x20, #:lo12:.LANCHOR87]
3497	cbnz	w0, .L504
3498	mov	w2, 585
3499	adrp	x1, .LANCHOR96
3500	adrp	x0, .LC5
3501	add	x1, x1, :lo12:.LANCHOR96
3502	add	x0, x0, :lo12:.LC5
3503	bl	printf
3504	adrp	x1, .LC6
3505	adrp	x0, .LC7
3506	add	x1, x1, :lo12:.LC6
3507	add	x0, x0, :lo12:.LC7
3508	bl	printf
3509.L504:
3510	ldrh	w0, [x20, #:lo12:.LANCHOR87]
3511	sub	w0, w0, #1
3512	strh	w0, [x20, #:lo12:.LANCHOR87]
3513	mov	w0, w19
3514	bl	INSERT_DATA_LIST
3515.L498:
3516	mov	w0, 0
3517	ldp	x19, x20, [sp, 16]
3518	ldp	x21, x22, [sp, 32]
3519	ldp	x23, x24, [sp, 48]
3520	ldp	x25, x26, [sp, 64]
3521	ldp	x29, x30, [sp], 80
3522	ret
3523	.size	List_update_data_list, .-List_update_data_list
3524	.section	.text.ftl_map_blk_alloc_new_blk,"ax",@progbits
3525	.align	2
3526	.global	ftl_map_blk_alloc_new_blk
3527	.type	ftl_map_blk_alloc_new_blk, %function
3528ftl_map_blk_alloc_new_blk:
3529	stp	x29, x30, [sp, -48]!
3530	add	x29, sp, 0
3531	stp	x19, x20, [sp, 16]
3532	mov	x19, x0
3533	ldrh	w1, [x0, 10]
3534	mov	w20, 0
3535	ldr	x0, [x0, 16]
3536	str	x21, [sp, 32]
3537.L509:
3538	cmp	w20, w1
3539	beq	.L513
3540	mov	x21, x0
3541	ldrh	w2, [x0], 2
3542	cbnz	w2, .L510
3543	bl	FtlFreeSysBlkQueueOut
3544	and	w1, w0, 65535
3545	strh	w0, [x21]
3546	sub	w2, w1, #1
3547	mov	w0, 65533
3548	cmp	w0, w2, uxth
3549	bcs	.L511
3550	adrp	x0, .LANCHOR77+6
3551	ldrh	w2, [x0, #:lo12:.LANCHOR77+6]
3552	adrp	x0, .LC8
3553	add	x0, x0, :lo12:.LC8
3554	bl	printf
3555.L512:
3556	b	.L512
3557.L511:
3558	ldr	w0, [x19, 48]
3559	strh	wzr, [x19, 2]
3560	add	w0, w0, 1
3561	str	w0, [x19, 48]
3562	ldrh	w0, [x19, 8]
3563	strh	w20, [x19]
3564	add	w0, w0, 1
3565	strh	w0, [x19, 8]
3566.L513:
3567	ldrh	w0, [x19, 10]
3568	cmp	w0, w20
3569	bhi	.L515
3570	mov	w2, 715
3571	adrp	x1, .LANCHOR97
3572	adrp	x0, .LC5
3573	add	x1, x1, :lo12:.LANCHOR97
3574	add	x0, x0, :lo12:.LC5
3575	bl	printf
3576	adrp	x1, .LC6
3577	adrp	x0, .LC7
3578	add	x1, x1, :lo12:.LC6
3579	add	x0, x0, :lo12:.LC7
3580	bl	printf
3581.L515:
3582	mov	w0, 0
3583	ldr	x21, [sp, 32]
3584	ldp	x19, x20, [sp, 16]
3585	ldp	x29, x30, [sp], 48
3586	ret
3587.L510:
3588	add	w20, w20, 1
3589	and	w20, w20, 65535
3590	b	.L509
3591	.size	ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
3592	.section	.text.select_l2p_ram_region,"ax",@progbits
3593	.align	2
3594	.global	select_l2p_ram_region
3595	.type	select_l2p_ram_region, %function
3596select_l2p_ram_region:
3597	stp	x29, x30, [sp, -32]!
3598	adrp	x0, .LANCHOR67
3599	mov	x1, 0
3600	mov	w3, 65535
3601	add	x29, sp, 0
3602	ldrh	w2, [x0, #:lo12:.LANCHOR67]
3603	adrp	x0, .LANCHOR98
3604	str	x19, [sp, 16]
3605	ldr	x0, [x0, #:lo12:.LANCHOR98]
3606.L518:
3607	and	w19, w1, 65535
3608	cmp	w19, w2
3609	bcc	.L520
3610	add	x3, x0, 4
3611	mov	w19, w2
3612	mov	w5, -2147483648
3613	mov	w1, 0
3614.L521:
3615	cmp	w1, w2
3616	bne	.L523
3617	cmp	w19, w2
3618	bcc	.L519
3619	adrp	x1, .LANCHOR99
3620	mov	w19, w2
3621	mov	w3, -1
3622	ldrh	w4, [x1, #:lo12:.LANCHOR99]
3623	mov	w1, 0
3624.L524:
3625	cmp	w1, w2
3626	bne	.L526
3627	cmp	w19, w1
3628	bcc	.L519
3629	mov	w2, 977
3630	adrp	x1, .LANCHOR100
3631	adrp	x0, .LC5
3632	add	x1, x1, :lo12:.LANCHOR100
3633	add	x0, x0, :lo12:.LC5
3634	bl	printf
3635	adrp	x1, .LC6
3636	adrp	x0, .LC7
3637	add	x1, x1, :lo12:.LC6
3638	add	x0, x0, :lo12:.LC7
3639	bl	printf
3640	b	.L519
3641.L520:
3642	add	x1, x1, 1
3643	add	x4, x0, x1, lsl 4
3644	ldrh	w4, [x4, -16]
3645	cmp	w4, w3
3646	bne	.L518
3647.L519:
3648	mov	w0, w19
3649	ldr	x19, [sp, 16]
3650	ldp	x29, x30, [sp], 32
3651	ret
3652.L523:
3653	ldr	w4, [x3]
3654	tbnz	w4, #31, .L522
3655	cmp	w5, w4
3656	bls	.L522
3657	mov	w5, w4
3658	mov	w19, w1
3659.L522:
3660	add	w1, w1, 1
3661	add	x3, x3, 16
3662	and	w1, w1, 65535
3663	b	.L521
3664.L526:
3665	ldr	w6, [x0, 4]
3666	cmp	w3, w6
3667	bls	.L525
3668	ldrh	w5, [x0]
3669	cmp	w5, w4
3670	csel	w3, w3, w6, eq
3671	csel	w19, w19, w1, eq
3672.L525:
3673	add	w1, w1, 1
3674	add	x0, x0, 16
3675	and	w1, w1, 65535
3676	b	.L524
3677	.size	select_l2p_ram_region, .-select_l2p_ram_region
3678	.section	.text.FtlUpdateVaildLpn,"ax",@progbits
3679	.align	2
3680	.global	FtlUpdateVaildLpn
3681	.type	FtlUpdateVaildLpn, %function
3682FtlUpdateVaildLpn:
3683	adrp	x2, .LANCHOR101
3684	mov	x3, x2
3685	ldrh	w1, [x2, #:lo12:.LANCHOR101]
3686	cmp	w1, 4
3687	bhi	.L529
3688	cbnz	w0, .L529
3689	add	w1, w1, 1
3690	strh	w1, [x2, #:lo12:.LANCHOR101]
3691	ret
3692.L529:
3693	adrp	x1, .LANCHOR40
3694	adrp	x0, .LANCHOR102
3695	strh	wzr, [x3, #:lo12:.LANCHOR101]
3696	mov	w2, 0
3697	ldrh	w5, [x1, #:lo12:.LANCHOR40]
3698	adrp	x1, .LANCHOR85
3699	str	wzr, [x0, #:lo12:.LANCHOR102]
3700	mov	w3, 0
3701	ldr	x6, [x1, #:lo12:.LANCHOR85]
3702	mov	w7, 65535
3703	mov	x1, 0
3704.L530:
3705	cmp	w5, w1, uxth
3706	bhi	.L532
3707	cbz	w3, .L528
3708	str	w2, [x0, #:lo12:.LANCHOR102]
3709.L528:
3710	ret
3711.L532:
3712	ldrh	w4, [x6, x1, lsl 1]
3713	cmp	w4, w7
3714	beq	.L531
3715	add	w2, w2, w4
3716	mov	w3, 1
3717.L531:
3718	add	x1, x1, 1
3719	b	.L530
3720	.size	FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
3721	.section	.text.ftl_set_blk_mode,"ax",@progbits
3722	.align	2
3723	.global	ftl_set_blk_mode
3724	.type	ftl_set_blk_mode, %function
3725ftl_set_blk_mode:
3726	and	w0, w0, 65535
3727	cbz	w1, .L539
3728	b	ftl_set_blk_mode.part.11
3729.L539:
3730	adrp	x1, .LANCHOR1
3731	ubfx	x2, x0, 5, 11
3732	lsl	x2, x2, 2
3733	ldr	x3, [x1, #:lo12:.LANCHOR1]
3734	and	w1, w0, 31
3735	mov	w0, 1
3736	lsl	w0, w0, w1
3737	ldr	w1, [x3, x2]
3738	bic	w0, w1, w0
3739	str	w0, [x3, x2]
3740	ret
3741	.size	ftl_set_blk_mode, .-ftl_set_blk_mode
3742	.section	.text.ftl_get_blk_mode,"ax",@progbits
3743	.align	2
3744	.global	ftl_get_blk_mode
3745	.type	ftl_get_blk_mode, %function
3746ftl_get_blk_mode:
3747	adrp	x1, .LANCHOR1
3748	and	w0, w0, 65535
3749	ldr	x1, [x1, #:lo12:.LANCHOR1]
3750	ubfx	x2, x0, 5, 11
3751	and	w0, w0, 31
3752	ldr	w1, [x1, x2, lsl 2]
3753	lsr	w0, w1, w0
3754	and	w0, w0, 1
3755	ret
3756	.size	ftl_get_blk_mode, .-ftl_get_blk_mode
3757	.section	.text.ftl_sb_update_avl_pages,"ax",@progbits
3758	.align	2
3759	.global	ftl_sb_update_avl_pages
3760	.type	ftl_sb_update_avl_pages, %function
3761ftl_sb_update_avl_pages:
3762	and	w2, w2, 65535
3763	and	w6, w1, 65535
3764	ubfiz	x4, x2, 1, 16
3765	adrp	x1, .LANCHOR38
3766	add	x4, x4, 16
3767	strh	wzr, [x0, 4]
3768	add	x4, x0, x4
3769	ldrh	w3, [x1, #:lo12:.LANCHOR38]
3770	mov	w1, 65535
3771.L542:
3772	cmp	w2, w3
3773	bcc	.L544
3774	adrp	x1, .LANCHOR52
3775	ubfiz	x3, x3, 1, 16
3776	add	x3, x3, 16
3777	add	x2, x0, 16
3778	ldrh	w1, [x1, #:lo12:.LANCHOR52]
3779	add	x3, x0, x3
3780	mov	w5, 65535
3781	sub	w1, w1, #1
3782	and	w1, w1, 65535
3783	sub	w1, w1, w6
3784.L545:
3785	cmp	x2, x3
3786	bne	.L547
3787	ret
3788.L544:
3789	ldrh	w5, [x4]
3790	cmp	w5, w1
3791	beq	.L543
3792	ldrh	w5, [x0, 4]
3793	add	w5, w5, 1
3794	strh	w5, [x0, 4]
3795.L543:
3796	add	w2, w2, 1
3797	add	x4, x4, 2
3798	and	w2, w2, 65535
3799	b	.L542
3800.L547:
3801	ldrh	w4, [x2]
3802	cmp	w4, w5
3803	beq	.L546
3804	ldrh	w4, [x0, 4]
3805	add	w4, w1, w4
3806	strh	w4, [x0, 4]
3807.L546:
3808	add	x2, x2, 2
3809	b	.L545
3810	.size	ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
3811	.section	.text.make_superblock,"ax",@progbits
3812	.align	2
3813	.global	make_superblock
3814	.type	make_superblock, %function
3815make_superblock:
3816	stp	x29, x30, [sp, -32]!
3817	add	x29, sp, 0
3818	ldrh	w1, [x0]
3819	str	x19, [sp, 16]
3820	mov	x19, x0
3821	adrp	x0, .LANCHOR40
3822	ldrh	w0, [x0, #:lo12:.LANCHOR40]
3823	cmp	w1, w0
3824	bcc	.L549
3825	mov	w2, 2819
3826	adrp	x1, .LANCHOR103
3827	adrp	x0, .LC5
3828	add	x1, x1, :lo12:.LANCHOR103
3829	add	x0, x0, :lo12:.LC5
3830	bl	printf
3831	adrp	x1, .LC6
3832	adrp	x0, .LC7
3833	add	x1, x1, :lo12:.LC6
3834	add	x0, x0, :lo12:.LC7
3835	bl	printf
3836.L549:
3837	adrp	x0, .LANCHOR38
3838	adrp	x7, .LANCHOR47
3839	add	x6, x19, 16
3840	add	x7, x7, :lo12:.LANCHOR47
3841	ldrh	w8, [x0, #:lo12:.LANCHOR38]
3842	mov	x5, 0
3843	strh	wzr, [x19, 4]
3844	mov	w10, -1
3845	strb	wzr, [x19, 7]
3846.L550:
3847	cmp	w8, w5, uxth
3848	bhi	.L552
3849	adrp	x1, .LANCHOR52
3850	ldrb	w0, [x19, 7]
3851	strb	wzr, [x19, 9]
3852	ldrh	w1, [x1, #:lo12:.LANCHOR52]
3853	mul	w0, w0, w1
3854	strh	w0, [x19, 4]
3855	adrp	x0, .LANCHOR104
3856	ldr	w0, [x0, #:lo12:.LANCHOR104]
3857	cbz	w0, .L553
3858	adrp	x0, .LANCHOR80
3859	ldrh	w1, [x19]
3860	ldr	x0, [x0, #:lo12:.LANCHOR80]
3861	ldrh	w0, [x0, x1, lsl 1]
3862	cmp	w0, 79
3863	bhi	.L553
3864	mov	w0, 1
3865	strb	w0, [x19, 9]
3866.L553:
3867	adrp	x0, .LANCHOR2
3868	ldrb	w0, [x0, #:lo12:.LANCHOR2]
3869	cbz	w0, .L554
3870	mov	w0, 1
3871	strb	w0, [x19, 9]
3872.L554:
3873	mov	w0, 0
3874	ldr	x19, [sp, 16]
3875	ldp	x29, x30, [sp], 32
3876	ret
3877.L552:
3878	ldrh	w1, [x19]
3879	ldrb	w0, [x7, x5]
3880	bl	V2P_block
3881	mov	w4, w0
3882	strh	w10, [x6]
3883	bl	FtlBbmIsBadBlock
3884	cbnz	w0, .L551
3885	strh	w4, [x6]
3886	ldrb	w0, [x19, 7]
3887	add	w0, w0, 1
3888	strb	w0, [x19, 7]
3889.L551:
3890	add	x5, x5, 1
3891	add	x6, x6, 2
3892	b	.L550
3893	.size	make_superblock, .-make_superblock
3894	.section	.text.update_multiplier_value,"ax",@progbits
3895	.align	2
3896	.global	update_multiplier_value
3897	.type	update_multiplier_value, %function
3898update_multiplier_value:
3899	and	w6, w0, 65535
3900	adrp	x0, .LANCHOR38
3901	mov	x7, 0
3902	adrp	x8, .LANCHOR47
3903	ldrh	w10, [x0, #:lo12:.LANCHOR38]
3904	adrp	x0, .LANCHOR52
3905	mov	w5, 0
3906	add	x8, x8, :lo12:.LANCHOR47
3907	ldrh	w11, [x0, #:lo12:.LANCHOR52]
3908	cmp	w10, w7, uxth
3909	bhi	.L574
3910	cbz	w5, .L572
3911	mov	w0, 32768
3912	sdiv	w5, w0, w5
3913.L573:
3914	adrp	x0, .LANCHOR83
3915	mov	w1, 6
3916	ldr	x0, [x0, #:lo12:.LANCHOR83]
3917	umaddl	x6, w6, w1, x0
3918	mov	w0, 0
3919	strh	w5, [x6, 4]
3920	ret
3921.L567:
3922	mov	w5, 0
3923	b	.L566
3924.L572:
3925	mov	w5, 0
3926	b	.L573
3927.L574:
3928	stp	x29, x30, [sp, -16]!
3929	add	x29, sp, 0
3930.L565:
3931	ldrb	w0, [x8, x7]
3932	mov	w1, w6
3933	bl	V2P_block
3934	bl	FtlBbmIsBadBlock
3935	cbnz	w0, .L564
3936	add	w5, w5, w11
3937	and	w5, w5, 65535
3938.L564:
3939	add	x7, x7, 1
3940	cmp	w10, w7, uxth
3941	bhi	.L565
3942	cbz	w5, .L567
3943	mov	w0, 32768
3944	sdiv	w5, w0, w5
3945.L566:
3946	adrp	x0, .LANCHOR83
3947	mov	w1, 6
3948	ldr	x0, [x0, #:lo12:.LANCHOR83]
3949	umaddl	x6, w6, w1, x0
3950	mov	w0, 0
3951	strh	w5, [x6, 4]
3952	ldp	x29, x30, [sp], 16
3953	ret
3954	.size	update_multiplier_value, .-update_multiplier_value
3955	.section	.text.GetFreeBlockMinEraseCount,"ax",@progbits
3956	.align	2
3957	.global	GetFreeBlockMinEraseCount
3958	.type	GetFreeBlockMinEraseCount, %function
3959GetFreeBlockMinEraseCount:
3960	adrp	x0, .LANCHOR89
3961	ldr	x0, [x0, #:lo12:.LANCHOR89]
3962	cbz	x0, .L577
3963	adrp	x1, .LANCHOR83
3964	ldr	x1, [x1, #:lo12:.LANCHOR83]
3965	sub	x0, x0, x1
3966	mov	x1, -6148914691236517206
3967	asr	x0, x0, 1
3968	movk	x1, 0xaaab, lsl 0
3969	mul	x0, x0, x1
3970	adrp	x1, .LANCHOR80
3971	ldr	x1, [x1, #:lo12:.LANCHOR80]
3972	and	x0, x0, 65535
3973	ldrh	w0, [x1, x0, lsl 1]
3974	ret
3975.L577:
3976	mov	w0, 0
3977	ret
3978	.size	GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
3979	.section	.text.GetFreeBlockMaxEraseCount,"ax",@progbits
3980	.align	2
3981	.global	GetFreeBlockMaxEraseCount
3982	.type	GetFreeBlockMaxEraseCount, %function
3983GetFreeBlockMaxEraseCount:
3984	adrp	x1, .LANCHOR89
3985	and	w0, w0, 65535
3986	ldr	x1, [x1, #:lo12:.LANCHOR89]
3987	cbz	x1, .L585
3988	adrp	x2, .LANCHOR90
3989	mov	w3, 7
3990	mov	w5, 6
3991	mov	w6, 65535
3992	ldrh	w2, [x2, #:lo12:.LANCHOR90]
3993	mul	w2, w2, w3
3994	asr	w2, w2, 3
3995	cmp	w0, w2
3996	csel	w0, w2, w0, gt
3997	adrp	x2, .LANCHOR83
3998	ldr	x3, [x2, #:lo12:.LANCHOR83]
3999	mov	x2, -6148914691236517206
4000	movk	x2, 0xaaab, lsl 0
4001	sub	x1, x1, x3
4002	asr	x1, x1, 1
4003	mul	x1, x1, x2
4004	mov	w2, 0
4005	and	w1, w1, 65535
4006.L581:
4007	cmp	w0, w2
4008	beq	.L584
4009	umull	x4, w1, w5
4010	ldrh	w4, [x3, x4]
4011	cmp	w4, w6
4012	bne	.L582
4013.L584:
4014	adrp	x0, .LANCHOR80
4015	ubfiz	x1, x1, 1, 16
4016	ldr	x0, [x0, #:lo12:.LANCHOR80]
4017	ldrh	w0, [x0, x1]
4018	ret
4019.L582:
4020	add	w2, w2, 1
4021	mov	w1, w4
4022	and	w2, w2, 65535
4023	b	.L581
4024.L585:
4025	mov	w0, 0
4026	ret
4027	.size	GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
4028	.section	.text.free_data_superblock,"ax",@progbits
4029	.align	2
4030	.global	free_data_superblock
4031	.type	free_data_superblock, %function
4032free_data_superblock:
4033	and	w0, w0, 65535
4034	mov	w1, 65535
4035	cmp	w0, w1
4036	beq	.L589
4037	stp	x29, x30, [sp, -16]!
4038	adrp	x2, .LANCHOR85
4039	ubfiz	x1, x0, 1, 16
4040	add	x29, sp, 0
4041	ldr	x2, [x2, #:lo12:.LANCHOR85]
4042	strh	wzr, [x2, x1]
4043	bl	INSERT_FREE_LIST
4044	mov	w0, 0
4045	ldp	x29, x30, [sp], 16
4046	ret
4047.L589:
4048	mov	w0, 0
4049	ret
4050	.size	free_data_superblock, .-free_data_superblock
4051	.section	.text.FtlGcBufInit,"ax",@progbits
4052	.align	2
4053	.global	FtlGcBufInit
4054	.type	FtlGcBufInit, %function
4055FtlGcBufInit:
4056	adrp	x1, .LANCHOR106
4057	adrp	x0, .LANCHOR105
4058	adrp	x7, .LANCHOR107
4059	adrp	x6, .LANCHOR108
4060	ldr	x5, [x1, #:lo12:.LANCHOR106]
4061	adrp	x1, .LANCHOR57
4062	str	wzr, [x0, #:lo12:.LANCHOR105]
4063	adrp	x0, .LANCHOR38
4064	ldrh	w10, [x1, #:lo12:.LANCHOR57]
4065	adrp	x1, .LANCHOR58
4066	ldrh	w0, [x0, #:lo12:.LANCHOR38]
4067	mov	w8, 24
4068	ldrh	w11, [x1, #:lo12:.LANCHOR58]
4069	adrp	x1, .LANCHOR109
4070	ldr	x14, [x7, #:lo12:.LANCHOR107]
4071	mov	x3, x5
4072	ldr	x4, [x1, #:lo12:.LANCHOR109]
4073	mov	w2, 0
4074	ldr	x15, [x6, #:lo12:.LANCHOR108]
4075	nop // between mem op and mult-accumulate
4076	umaddl	x8, w0, w8, x5
4077	add	x4, x4, 8
4078	mov	w1, 0
4079	mov	w16, 1
4080.L593:
4081	add	w13, w2, w10
4082	add	w12, w1, w11
4083	cmp	x3, x8
4084	bne	.L594
4085	adrp	x1, .LANCHOR110
4086	ldr	x7, [x7, #:lo12:.LANCHOR107]
4087	ldr	x6, [x6, #:lo12:.LANCHOR108]
4088	mov	w8, 24
4089	ldr	w4, [x1, #:lo12:.LANCHOR110]
4090.L595:
4091	cmp	w0, w4
4092	bcc	.L596
4093	ret
4094.L594:
4095	asr	w2, w2, 2
4096	asr	w1, w1, 2
4097	add	x2, x14, x2, sxtw 2
4098	add	x1, x15, x1, sxtw 2
4099	str	w16, [x3, 16]
4100	stp	x2, x1, [x3]
4101	add	x3, x3, 24
4102	stp	x2, x1, [x4]
4103	add	x4, x4, 56
4104	mov	w1, w12
4105	mov	w2, w13
4106	b	.L593
4107.L596:
4108	umull	x3, w0, w8
4109	mul	w1, w10, w0
4110	add	x2, x5, x3
4111	asr	w1, w1, 2
4112	add	x1, x7, x1, sxtw 2
4113	str	wzr, [x2, 16]
4114	str	x1, [x5, x3]
4115	mul	w1, w11, w0
4116	add	w0, w0, 1
4117	and	w0, w0, 65535
4118	asr	w1, w1, 2
4119	add	x1, x6, x1, sxtw 2
4120	str	x1, [x2, 8]
4121	b	.L595
4122	.size	FtlGcBufInit, .-FtlGcBufInit
4123	.section	.text.FtlGcBufFree,"ax",@progbits
4124	.align	2
4125	.global	FtlGcBufFree
4126	.type	FtlGcBufFree, %function
4127FtlGcBufFree:
4128	adrp	x2, .LANCHOR110
4129	mov	w3, 0
4130	mov	w7, 56
4131	mov	w10, 24
4132	ldr	w8, [x2, #:lo12:.LANCHOR110]
4133	adrp	x2, .LANCHOR106
4134	ldr	x4, [x2, #:lo12:.LANCHOR106]
4135.L598:
4136	cmp	w3, w1
4137	bcs	.L597
4138	umaddl	x6, w3, w7, x0
4139	mov	w2, 0
4140	b	.L603
4141.L599:
4142	add	w2, w2, 1
4143	and	w2, w2, 65535
4144.L603:
4145	cmp	w2, w8
4146	bcs	.L600
4147	umull	x5, w2, w10
4148	add	x11, x4, x5
4149	ldr	x12, [x4, x5]
4150	ldr	x5, [x6, 8]
4151	cmp	x12, x5
4152	bne	.L599
4153	str	wzr, [x11, 16]
4154.L600:
4155	add	w3, w3, 1
4156	and	w3, w3, 65535
4157	b	.L598
4158.L597:
4159	ret
4160	.size	FtlGcBufFree, .-FtlGcBufFree
4161	.section	.text.FtlGcBufAlloc,"ax",@progbits
4162	.align	2
4163	.global	FtlGcBufAlloc
4164	.type	FtlGcBufAlloc, %function
4165FtlGcBufAlloc:
4166	adrp	x2, .LANCHOR110
4167	mov	w3, 0
4168	mov	w7, 24
4169	mov	w8, 1
4170	ldr	w5, [x2, #:lo12:.LANCHOR110]
4171	adrp	x2, .LANCHOR106
4172	mov	w10, 56
4173	ldr	x6, [x2, #:lo12:.LANCHOR106]
4174.L605:
4175	cmp	w3, w1
4176	bcs	.L604
4177	mov	w2, 0
4178	b	.L610
4179.L606:
4180	add	w2, w2, 1
4181	and	w2, w2, 65535
4182.L610:
4183	cmp	w2, w5
4184	bcs	.L607
4185	umaddl	x4, w2, w7, x6
4186	ldr	w11, [x4, 16]
4187	cbnz	w11, .L606
4188	umaddl	x2, w3, w10, x0
4189	ldr	x11, [x4]
4190	str	w8, [x4, 16]
4191	ldr	x4, [x4, 8]
4192	stp	x11, x4, [x2, 8]
4193.L607:
4194	add	w3, w3, 1
4195	and	w3, w3, 65535
4196	b	.L605
4197.L604:
4198	ret
4199	.size	FtlGcBufAlloc, .-FtlGcBufAlloc
4200	.section	.text.IsBlkInGcList,"ax",@progbits
4201	.align	2
4202	.global	IsBlkInGcList
4203	.type	IsBlkInGcList, %function
4204IsBlkInGcList:
4205	adrp	x1, .LANCHOR111
4206	and	w0, w0, 65535
4207	ldrh	w2, [x1, #:lo12:.LANCHOR111]
4208	adrp	x1, .LANCHOR112
4209	ldr	x3, [x1, #:lo12:.LANCHOR112]
4210	mov	x1, 0
4211.L612:
4212	cmp	w2, w1, uxth
4213	bhi	.L614
4214	mov	w0, 0
4215	ret
4216.L614:
4217	add	x1, x1, 1
4218	add	x4, x3, x1, lsl 1
4219	ldrh	w4, [x4, -2]
4220	cmp	w4, w0
4221	bne	.L612
4222	mov	w0, 1
4223	ret
4224	.size	IsBlkInGcList, .-IsBlkInGcList
4225	.section	.text.FtlGcUpdatePage,"ax",@progbits
4226	.align	2
4227	.global	FtlGcUpdatePage
4228	.type	FtlGcUpdatePage, %function
4229FtlGcUpdatePage:
4230	mov	w6, w0
4231	mov	w10, w1
4232	mov	w8, w2
4233	stp	x29, x30, [sp, -16]!
4234	lsr	w0, w0, 10
4235	add	x29, sp, 0
4236	bl	P2V_block_in_plane
4237	and	w7, w0, 65535
4238	adrp	x4, .LANCHOR111
4239	adrp	x2, .LANCHOR112
4240	mov	x3, 0
4241	ldrh	w1, [x4, #:lo12:.LANCHOR111]
4242	ldr	x5, [x2, #:lo12:.LANCHOR112]
4243.L617:
4244	and	w2, w3, 65535
4245	cmp	w2, w1
4246	bcc	.L619
4247	bne	.L618
4248	and	x3, x3, 65535
4249	strh	w0, [x5, x3, lsl 1]
4250	ldrh	w0, [x4, #:lo12:.LANCHOR111]
4251	add	w0, w0, 1
4252	strh	w0, [x4, #:lo12:.LANCHOR111]
4253	b	.L618
4254.L619:
4255	add	x3, x3, 1
4256	add	x2, x5, x3, lsl 1
4257	ldrh	w2, [x2, -2]
4258	cmp	w2, w7
4259	bne	.L617
4260.L618:
4261	adrp	x4, .LANCHOR113
4262	adrp	x1, .LANCHOR114
4263	mov	w3, 12
4264	ldrh	w0, [x4, #:lo12:.LANCHOR113]
4265	ldr	x5, [x1, #:lo12:.LANCHOR114]
4266	umull	x3, w0, w3
4267	add	w0, w0, 1
4268	add	x7, x5, x3
4269	stp	w10, w8, [x7, 4]
4270	str	w6, [x5, x3]
4271	strh	w0, [x4, #:lo12:.LANCHOR113]
4272	ldp	x29, x30, [sp], 16
4273	ret
4274	.size	FtlGcUpdatePage, .-FtlGcUpdatePage
4275	.section	.text.FtlGcRefreshOpenBlock,"ax",@progbits
4276	.align	2
4277	.global	FtlGcRefreshOpenBlock
4278	.type	FtlGcRefreshOpenBlock, %function
4279FtlGcRefreshOpenBlock:
4280	adrp	x8, .LANCHOR115
4281	and	w0, w0, 65535
4282	ldrh	w10, [x8, #:lo12:.LANCHOR115]
4283	cmp	w10, w0
4284	beq	.L622
4285	adrp	x6, .LANCHOR116
4286	ldrh	w7, [x6, #:lo12:.LANCHOR116]
4287	cmp	w0, w7
4288	beq	.L622
4289	adrp	x4, .LANCHOR117
4290	ldrh	w5, [x4, #:lo12:.LANCHOR117]
4291	cmp	w0, w5
4292	beq	.L622
4293	adrp	x2, .LANCHOR118
4294	ldrh	w3, [x2, #:lo12:.LANCHOR118]
4295	cmp	w0, w3
4296	beq	.L622
4297	mov	w1, 65535
4298	cmp	w10, w1
4299	bne	.L623
4300	strh	w0, [x8, #:lo12:.LANCHOR115]
4301.L622:
4302	mov	w0, 0
4303	ret
4304.L623:
4305	cmp	w7, w1
4306	bne	.L624
4307	strh	w0, [x6, #:lo12:.LANCHOR116]
4308	b	.L622
4309.L624:
4310	cmp	w5, w1
4311	bne	.L625
4312	strh	w0, [x4, #:lo12:.LANCHOR117]
4313	b	.L622
4314.L625:
4315	cmp	w3, w1
4316	bne	.L622
4317	strh	w0, [x2, #:lo12:.LANCHOR118]
4318	b	.L622
4319	.size	FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock
4320	.section	.text.FtlGcRefreshBlock,"ax",@progbits
4321	.align	2
4322	.global	FtlGcRefreshBlock
4323	.type	FtlGcRefreshBlock, %function
4324FtlGcRefreshBlock:
4325	adrp	x8, .LANCHOR115
4326	and	w0, w0, 65535
4327	ldrh	w10, [x8, #:lo12:.LANCHOR115]
4328	cmp	w10, w0
4329	beq	.L634
4330	adrp	x6, .LANCHOR116
4331	ldrh	w7, [x6, #:lo12:.LANCHOR116]
4332	cmp	w0, w7
4333	beq	.L634
4334	adrp	x4, .LANCHOR117
4335	ldrh	w5, [x4, #:lo12:.LANCHOR117]
4336	cmp	w0, w5
4337	beq	.L634
4338	adrp	x2, .LANCHOR118
4339	ldrh	w3, [x2, #:lo12:.LANCHOR118]
4340	cmp	w0, w3
4341	beq	.L634
4342	mov	w1, 65535
4343	cmp	w10, w1
4344	bne	.L628
4345	strh	w0, [x8, #:lo12:.LANCHOR115]
4346.L634:
4347	mov	w0, 0
4348	ret
4349.L628:
4350	cmp	w7, w1
4351	bne	.L629
4352	strh	w0, [x6, #:lo12:.LANCHOR116]
4353	b	.L634
4354.L629:
4355	cmp	w5, w1
4356	bne	.L630
4357	strh	w0, [x4, #:lo12:.LANCHOR117]
4358	b	.L634
4359.L630:
4360	cmp	w3, w1
4361	bne	.L635
4362	strh	w0, [x2, #:lo12:.LANCHOR118]
4363	b	.L634
4364.L635:
4365	mov	w0, -1
4366	ret
4367	.size	FtlGcRefreshBlock, .-FtlGcRefreshBlock
4368	.section	.text.FtlGcMarkBadPhyBlk,"ax",@progbits
4369	.align	2
4370	.global	FtlGcMarkBadPhyBlk
4371	.type	FtlGcMarkBadPhyBlk, %function
4372FtlGcMarkBadPhyBlk:
4373	and	w12, w0, 65535
4374	stp	x29, x30, [sp, -16]!
4375	mov	w0, w12
4376	add	x29, sp, 0
4377	bl	P2V_block_in_plane
4378	and	w11, w0, 65535
4379	bl	FtlGcRefreshBlock
4380	adrp	x0, .LANCHOR104
4381	ldr	w0, [x0, #:lo12:.LANCHOR104]
4382	cbz	w0, .L637
4383	adrp	x1, .LANCHOR80
4384	ubfiz	x0, x11, 1, 16
4385	ldr	x2, [x1, #:lo12:.LANCHOR80]
4386	ldrh	w1, [x2, x0]
4387	cmp	w1, 39
4388	bls	.L637
4389	sub	w1, w1, #40
4390	strh	w1, [x2, x0]
4391.L637:
4392	adrp	x1, .LANCHOR119
4393	adrp	x3, .LANCHOR120
4394	add	x3, x3, :lo12:.LANCHOR120
4395	mov	x2, 0
4396	ldrh	w0, [x1, #:lo12:.LANCHOR119]
4397.L638:
4398	cmp	w0, w2, uxth
4399	bhi	.L640
4400	cmp	w0, 15
4401	bhi	.L639
4402	add	w2, w0, 1
4403	strh	w2, [x1, #:lo12:.LANCHOR119]
4404	adrp	x1, .LANCHOR120
4405	add	x1, x1, :lo12:.LANCHOR120
4406	strh	w12, [x1, w0, sxtw 1]
4407	b	.L639
4408.L640:
4409	add	x2, x2, 1
4410	add	x4, x3, x2, lsl 1
4411	ldrh	w4, [x4, -2]
4412	cmp	w4, w12
4413	bne	.L638
4414.L639:
4415	mov	w0, 0
4416	ldp	x29, x30, [sp], 16
4417	ret
4418	.size	FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
4419	.section	.text.FtlGcReFreshBadBlk,"ax",@progbits
4420	.align	2
4421	.global	FtlGcReFreshBadBlk
4422	.type	FtlGcReFreshBadBlk, %function
4423FtlGcReFreshBadBlk:
4424	adrp	x0, .LANCHOR119
4425	ldrh	w0, [x0, #:lo12:.LANCHOR119]
4426	cbz	w0, .L652
4427	adrp	x1, .LANCHOR115
4428	ldrh	w2, [x1, #:lo12:.LANCHOR115]
4429	mov	w1, 65535
4430	cmp	w2, w1
4431	bne	.L652
4432	stp	x29, x30, [sp, -16]!
4433	adrp	x11, .LANCHOR121
4434	add	x29, sp, 0
4435	ldrh	w1, [x11, #:lo12:.LANCHOR121]
4436	cmp	w1, w0
4437	bcc	.L647
4438	strh	wzr, [x11, #:lo12:.LANCHOR121]
4439.L647:
4440	ldrh	w1, [x11, #:lo12:.LANCHOR121]
4441	adrp	x0, .LANCHOR120
4442	add	x0, x0, :lo12:.LANCHOR120
4443	ldrh	w0, [x0, x1, lsl 1]
4444	bl	P2V_block_in_plane
4445	bl	FtlGcRefreshBlock
4446	ldrh	w0, [x11, #:lo12:.LANCHOR121]
4447	ldp	x29, x30, [sp], 16
4448	add	w0, w0, 1
4449	strh	w0, [x11, #:lo12:.LANCHOR121]
4450	mov	w0, 0
4451	ret
4452.L652:
4453	mov	w0, 0
4454	ret
4455	.size	FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
4456	.section	.text.flash_boot_enter_slc_mode,"ax",@progbits
4457	.align	2
4458	.global	flash_boot_enter_slc_mode
4459	.type	flash_boot_enter_slc_mode, %function
4460flash_boot_enter_slc_mode:
4461	adrp	x1, .LANCHOR122
4462	and	w0, w0, 255
4463	ldr	w2, [x1, #:lo12:.LANCHOR122]
4464	mov	w1, 12336
4465	movk	w1, 0x5638, lsl 16
4466	cmp	w2, w1
4467	bne	.L655
4468	b	flash_enter_slc_mode
4469.L655:
4470	ret
4471	.size	flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode
4472	.section	.text.flash_boot_exit_slc_mode,"ax",@progbits
4473	.align	2
4474	.global	flash_boot_exit_slc_mode
4475	.type	flash_boot_exit_slc_mode, %function
4476flash_boot_exit_slc_mode:
4477	adrp	x1, .LANCHOR122
4478	and	w0, w0, 255
4479	ldr	w2, [x1, #:lo12:.LANCHOR122]
4480	mov	w1, 12336
4481	movk	w1, 0x5638, lsl 16
4482	cmp	w2, w1
4483	bne	.L657
4484	b	flash_exit_slc_mode
4485.L657:
4486	ret
4487	.size	flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode
4488	.section	.text.FW_FlashBlockErase.constprop.42,"ax",@progbits
4489	.align	2
4490	.type	FW_FlashBlockErase.constprop.42, %function
4491FW_FlashBlockErase.constprop.42:
4492	stp	x29, x30, [sp, -32]!
4493	add	x29, sp, 0
4494	stp	x19, x20, [sp, 16]
4495	mov	w20, w0
4496	adrp	x0, .LANCHOR7
4497	ldr	x0, [x0, #:lo12:.LANCHOR7]
4498	ldrb	w19, [x0, 9]
4499	mov	w0, 0
4500	bl	flash_boot_enter_slc_mode
4501	mov	w2, 0
4502	mov	w0, 0
4503	udiv	w1, w20, w19
4504	bl	FlashEraseBlock
4505	mov	w19, w0
4506	mov	w0, 0
4507	bl	flash_boot_exit_slc_mode
4508	and	w0, w19, 255
4509	ldp	x19, x20, [sp, 16]
4510	ldp	x29, x30, [sp], 32
4511	ret
4512	.size	FW_FlashBlockErase.constprop.42, .-FW_FlashBlockErase.constprop.42
4513	.section	.text.ftl_memset,"ax",@progbits
4514	.align	2
4515	.global	ftl_memset
4516	.type	ftl_memset, %function
4517ftl_memset:
4518	uxtw	x2, w2
4519	b	memset
4520	.size	ftl_memset, .-ftl_memset
4521	.section	.text.BuildFlashLsbPageTable,"ax",@progbits
4522	.align	2
4523	.global	BuildFlashLsbPageTable
4524	.type	BuildFlashLsbPageTable, %function
4525BuildFlashLsbPageTable:
4526	stp	x29, x30, [sp, -32]!
4527	add	x29, sp, 0
4528	stp	x19, x20, [sp, 16]
4529	mov	w19, w1
4530	cbnz	w0, .L663
4531	adrp	x1, .LANCHOR17
4532	add	x1, x1, :lo12:.LANCHOR17
4533	mov	x0, 0
4534.L664:
4535	strh	w0, [x1, x0, lsl 1]
4536	add	x0, x0, 1
4537	cmp	x0, 512
4538	bne	.L664
4539.L670:
4540	adrp	x20, .LANCHOR123
4541	add	x20, x20, :lo12:.LANCHOR123
4542	mov	w1, 255
4543	mov	w2, 2048
4544	mov	x0, x20
4545	bl	ftl_memset
4546	adrp	x1, .LANCHOR17
4547	and	w19, w19, 65535
4548	add	x1, x1, :lo12:.LANCHOR17
4549	mov	x0, 0
4550.L665:
4551	cmp	w19, w0, uxth
4552	bhi	.L698
4553	ldp	x19, x20, [sp, 16]
4554	ldp	x29, x30, [sp], 32
4555	ret
4556.L663:
4557	cmp	w0, 1
4558	bne	.L666
4559	adrp	x2, .LANCHOR17
4560	add	x2, x2, :lo12:.LANCHOR17
4561	mov	x1, 0
4562.L669:
4563	and	w0, w1, 65535
4564	cmp	x1, 3
4565	bls	.L667
4566	ubfiz	w3, w0, 1, 15
4567	and	w0, w0, 1
4568	add	w0, w0, 2
4569	sub	w0, w3, w0
4570	and	w0, w0, 65535
4571.L667:
4572	strh	w0, [x2, x1, lsl 1]
4573	add	x1, x1, 1
4574	cmp	x1, 512
4575	bne	.L669
4576	b	.L670
4577.L666:
4578	cmp	w0, 2
4579	bne	.L671
4580	adrp	x2, .LANCHOR17
4581	add	x2, x2, :lo12:.LANCHOR17
4582	mov	w1, 65535
4583	mov	x0, 0
4584.L673:
4585	cmp	x0, 2
4586	and	w3, w0, 65535
4587	csel	w3, w3, w1, cc
4588	strh	w3, [x2, x0, lsl 1]
4589	add	w1, w1, 2
4590	add	x0, x0, 1
4591	and	w1, w1, 65535
4592	cmp	x0, 512
4593	bne	.L673
4594	b	.L670
4595.L671:
4596	cmp	w0, 3
4597	bne	.L674
4598	adrp	x2, .LANCHOR17
4599	add	x2, x2, :lo12:.LANCHOR17
4600	mov	x1, 0
4601.L677:
4602	and	w0, w1, 65535
4603	cmp	x1, 5
4604	bls	.L675
4605	ubfiz	w3, w0, 1, 15
4606	and	w0, w0, 1
4607	add	w0, w0, 4
4608	sub	w0, w3, w0
4609	and	w0, w0, 65535
4610.L675:
4611	strh	w0, [x2, x1, lsl 1]
4612	add	x1, x1, 1
4613	cmp	x1, 512
4614	bne	.L677
4615	b	.L670
4616.L674:
4617	cmp	w0, 4
4618	bne	.L678
4619	adrp	x2, .LANCHOR17
4620	add	x1, x2, :lo12:.LANCHOR17
4621	add	x1, x1, 16
4622	strh	wzr, [x2, #:lo12:.LANCHOR17]
4623	mov	w2, 1
4624	strh	w0, [x1, -8]
4625	mov	w0, 5
4626	strh	w2, [x1, -14]
4627	mov	w2, 2
4628	strh	w0, [x1, -6]
4629	mov	w0, 7
4630	strh	w2, [x1, -12]
4631	mov	w2, 3
4632	strh	w0, [x1, -4]
4633	mov	w0, 8
4634	strh	w2, [x1, -10]
4635	strh	w0, [x1, -2]
4636	mov	w0, 8
4637.L680:
4638	and	w3, w0, 1
4639	ubfiz	w2, w0, 1, 15
4640	add	w3, w3, 6
4641	add	w0, w0, 1
4642	sub	w2, w2, w3
4643	strh	w2, [x1], 2
4644	and	w0, w0, 65535
4645	cmp	w0, 512
4646	bne	.L680
4647	b	.L670
4648.L678:
4649	cmp	w0, 5
4650	bne	.L681
4651	adrp	x1, .LANCHOR17
4652	add	x1, x1, :lo12:.LANCHOR17
4653	mov	x0, 0
4654.L682:
4655	strh	w0, [x1, x0, lsl 1]
4656	add	x0, x0, 1
4657	cmp	x0, 16
4658	bne	.L682
4659	add	x1, x1, 32
4660.L683:
4661	strh	w0, [x1], 2
4662	add	w0, w0, 2
4663	and	w0, w0, 65535
4664	cmp	w0, 1008
4665	bne	.L683
4666	b	.L670
4667.L681:
4668	cmp	w0, 6
4669	bne	.L684
4670	adrp	x3, .LANCHOR17
4671	add	x3, x3, :lo12:.LANCHOR17
4672	mov	w1, 0
4673	mov	x2, 0
4674	mov	w4, 12
4675	mov	w5, 10
4676.L687:
4677	and	w0, w2, 65535
4678	cmp	x2, 5
4679	bls	.L685
4680	tst	x0, 1
4681	csel	w0, w4, w5, ne
4682	sub	w0, w1, w0
4683	and	w0, w0, 65535
4684.L685:
4685	strh	w0, [x3, x2, lsl 1]
4686	add	w1, w1, 3
4687	and	w1, w1, 65535
4688	add	x2, x2, 1
4689	cmp	w1, 1536
4690	bne	.L687
4691	b	.L670
4692.L684:
4693	cmp	w0, 9
4694	bne	.L688
4695	adrp	x1, .LANCHOR17
4696	add	x0, x1, :lo12:.LANCHOR17
4697	strh	wzr, [x1, #:lo12:.LANCHOR17]
4698	mov	w1, 1
4699	strh	w1, [x0, 2]
4700	mov	w1, 2
4701	strh	w1, [x0, 4]
4702	add	x1, x0, 6
4703	mov	w0, 3
4704.L689:
4705	strh	w0, [x1], 2
4706	add	w0, w0, 2
4707	and	w0, w0, 65535
4708	cmp	w0, 1021
4709	bne	.L689
4710	b	.L670
4711.L688:
4712	cmp	w0, 10
4713	bne	.L690
4714	adrp	x1, .LANCHOR17
4715	add	x1, x1, :lo12:.LANCHOR17
4716	mov	x0, 0
4717.L691:
4718	strh	w0, [x1, x0, lsl 1]
4719	add	x0, x0, 1
4720	cmp	x0, 63
4721	bne	.L691
4722	add	x1, x1, 126
4723.L692:
4724	strh	w0, [x1], 2
4725	add	w0, w0, 2
4726	and	w0, w0, 65535
4727	cmp	w0, 961
4728	bne	.L692
4729	b	.L670
4730.L690:
4731	cmp	w0, 11
4732	bne	.L693
4733	adrp	x1, .LANCHOR17
4734	add	x1, x1, :lo12:.LANCHOR17
4735	mov	x0, 0
4736.L694:
4737	strh	w0, [x1, x0, lsl 1]
4738	add	x0, x0, 1
4739	cmp	x0, 8
4740	bne	.L694
4741	add	x1, x1, 16
4742.L696:
4743	and	w3, w0, 1
4744	ubfiz	w2, w0, 1, 15
4745	add	w3, w3, 6
4746	add	w0, w0, 1
4747	sub	w2, w2, w3
4748	strh	w2, [x1], 2
4749	and	w0, w0, 65535
4750	cmp	w0, 512
4751	bne	.L696
4752	b	.L670
4753.L693:
4754	cmp	w0, 12
4755	bne	.L670
4756	adrp	x1, .LANCHOR17
4757	add	x0, x1, :lo12:.LANCHOR17
4758	strh	wzr, [x1, #:lo12:.LANCHOR17]
4759	mov	w1, 1
4760	strh	w1, [x0, 2]
4761	mov	w1, 2
4762	strh	w1, [x0, 4]
4763	mov	w1, 3
4764	strh	w1, [x0, 6]
4765	add	x1, x0, 8
4766	mov	w0, 4
4767.L697:
4768	sub	w2, w0, #1
4769	add	w2, w2, w0, lsr 1
4770	add	w0, w0, 1
4771	strh	w2, [x1], 2
4772	and	w0, w0, 65535
4773	cmp	w0, 512
4774	bne	.L697
4775	b	.L670
4776.L698:
4777	ldrh	w2, [x1, x0, lsl 1]
4778	add	x0, x0, 1
4779	strh	w2, [x20, w2, sxtw 1]
4780	b	.L665
4781	.size	BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
4782	.section	.text.FlashDieInfoInit,"ax",@progbits
4783	.align	2
4784	.global	FlashDieInfoInit
4785	.type	FlashDieInfoInit, %function
4786FlashDieInfoInit:
4787	stp	x29, x30, [sp, -80]!
4788	adrp	x0, .LANCHOR31+10
4789	add	x29, sp, 0
4790	ldrh	w0, [x0, #:lo12:.LANCHOR31+10]
4791	stp	x19, x20, [sp, 16]
4792	adrp	x19, .LANCHOR124
4793	str	x25, [sp, 64]
4794	adrp	x25, .LANCHOR26
4795	stp	x21, x22, [sp, 32]
4796	mov	x22, 0
4797	stp	x23, x24, [sp, 48]
4798	adrp	x24, .LANCHOR27
4799	strb	wzr, [x19, #:lo12:.LANCHOR124]
4800	add	x21, x24, :lo12:.LANCHOR27
4801	strb	wzr, [x25, #:lo12:.LANCHOR26]
4802	bl	FlashBlockAlignInit
4803	mov	w2, 8
4804	mov	w1, 0
4805	adrp	x23, .LANCHOR18
4806	mov	x0, x21
4807	add	x20, x23, :lo12:.LANCHOR18
4808	bl	ftl_memset
4809	mov	w2, 32
4810	mov	w1, 0
4811	mov	x0, x20
4812	bl	ftl_memset
4813	mov	w2, 192
4814	mov	w1, 0
4815	adrp	x0, .LANCHOR23
4816	add	x0, x0, :lo12:.LANCHOR23
4817	bl	ftl_memset
4818	adrp	x0, .LANCHOR7
4819	adrp	x13, .LANCHOR22
4820	add	x15, x25, :lo12:.LANCHOR26
4821	add	x10, x13, :lo12:.LANCHOR22
4822	ldr	x7, [x0, #:lo12:.LANCHOR7]
4823	add	x11, x7, 1
4824	ldrb	w12, [x7]
4825.L722:
4826	mov	w2, w12
4827	add	x1, x10, x22, lsl 3
4828	mov	x0, x11
4829	bl	FlashMemCmp8
4830	cbnz	w0, .L721
4831	ldrb	w1, [x15]
4832	add	w0, w1, 1
4833	strb	w0, [x15]
4834	str	wzr, [x20, x1, lsl 2]
4835	strb	w22, [x21, x1]
4836.L721:
4837	add	x22, x22, 1
4838	cmp	x22, 4
4839	bne	.L722
4840	ldrb	w0, [x25, #:lo12:.LANCHOR26]
4841	strb	w0, [x19, #:lo12:.LANCHOR124]
4842	ldrb	w0, [x7, 8]
4843	cmp	w0, 2
4844	beq	.L723
4845.L727:
4846	ldrb	w0, [x25, #:lo12:.LANCHOR26]
4847	ldrh	w1, [x7, 14]
4848	ldp	x19, x20, [sp, 16]
4849	ldp	x21, x22, [sp, 32]
4850	mul	w0, w0, w1
4851	ldrb	w1, [x7, 13]
4852	ldp	x23, x24, [sp, 48]
4853	ldr	x25, [sp, 64]
4854	mul	w0, w0, w1
4855	adrp	x1, .LANCHOR125
4856	ldp	x29, x30, [sp], 80
4857	strh	w0, [x1, #:lo12:.LANCHOR125]
4858	ret
4859.L723:
4860	adrp	x0, .LANCHOR4
4861	add	x13, x13, :lo12:.LANCHOR22
4862	add	x15, x25, :lo12:.LANCHOR26
4863	add	x23, x23, :lo12:.LANCHOR18
4864	ldr	w20, [x0, #:lo12:.LANCHOR4]
4865	add	x14, x24, :lo12:.LANCHOR27
4866	mov	x19, 0
4867.L726:
4868	mov	w2, w12
4869	add	x1, x13, x19, lsl 3
4870	mov	x0, x11
4871	bl	FlashMemCmp8
4872	cbnz	w0, .L724
4873	ldrb	w2, [x7, 13]
4874	ldrh	w0, [x7, 14]
4875	ldrb	w1, [x15]
4876	and	w0, w0, 65280
4877	mul	w2, w2, w20
4878	mul	w0, w0, w2
4879	sxtw	x2, w1
4880	str	w0, [x23, x2, lsl 2]
4881	ldrb	w3, [x7, 23]
4882	cbz	w3, .L725
4883	lsl	w0, w0, 1
4884	str	w0, [x23, x2, lsl 2]
4885.L725:
4886	add	w1, w1, 1
4887	strb	w19, [x14, x2]
4888	strb	w1, [x15]
4889.L724:
4890	add	x19, x19, 1
4891	cmp	x19, 4
4892	bne	.L726
4893	b	.L727
4894	.size	FlashDieInfoInit, .-FlashDieInfoInit
4895	.section	.text.ftl_read_flash_info,"ax",@progbits
4896	.align	2
4897	.global	ftl_read_flash_info
4898	.type	ftl_read_flash_info, %function
4899ftl_read_flash_info:
4900	stp	x29, x30, [sp, -32]!
4901	mov	w2, 11
4902	mov	w1, 0
4903	add	x29, sp, 0
4904	str	x19, [sp, 16]
4905	mov	x19, x0
4906	bl	ftl_memset
4907	adrp	x0, .LANCHOR7
4908	mov	w4, 1
4909	ldr	x2, [x0, #:lo12:.LANCHOR7]
4910	adrp	x0, .LANCHOR4
4911	ldr	w0, [x0, #:lo12:.LANCHOR4]
4912	ldrb	w3, [x2, 9]
4913	mul	w0, w0, w3
4914	and	w1, w0, 65535
4915	strb	w1, [x19, 4]
4916	ubfx	x0, x1, 8, 8
4917	strb	w0, [x19, 5]
4918	adrp	x0, .LANCHOR33
4919	ldrb	w0, [x0, #:lo12:.LANCHOR33]
4920	strb	w0, [x19, 7]
4921	ldrb	w0, [x2, 13]
4922	mul	w0, w0, w1
4923	ldrh	w1, [x2, 14]
4924	mul	w0, w0, w1
4925	ldrb	w1, [x2, 8]
4926	strb	w3, [x19, 6]
4927	mul	w0, w0, w1
4928	strb	w0, [x19]
4929	ubfx	x1, x0, 8, 8
4930	strb	w1, [x19, 1]
4931	ubfx	x1, x0, 16, 8
4932	lsr	w0, w0, 24
4933	strb	w1, [x19, 2]
4934	mov	x1, 0
4935	strb	w0, [x19, 3]
4936	mov	w0, 32
4937	strb	w0, [x19, 8]
4938	ldrb	w0, [x2, 7]
4939	adrp	x2, .LANCHOR27
4940	strb	w0, [x19, 9]
4941	add	x2, x2, :lo12:.LANCHOR27
4942	adrp	x0, .LANCHOR26
4943	strb	wzr, [x19, 10]
4944	ldrb	w3, [x0, #:lo12:.LANCHOR26]
4945.L736:
4946	cmp	w3, w1, uxtb
4947	bhi	.L737
4948	ldr	x19, [sp, 16]
4949	ldp	x29, x30, [sp], 32
4950	ret
4951.L737:
4952	ldrb	w0, [x1, x2]
4953	add	x1, x1, 1
4954	ldrb	w5, [x19, 10]
4955	lsl	w0, w4, w0
4956	orr	w0, w0, w5
4957	strb	w0, [x19, 10]
4958	b	.L736
4959	.size	ftl_read_flash_info, .-ftl_read_flash_info
4960	.section	.text.FtlBbt2Bitmap,"ax",@progbits
4961	.align	2
4962	.global	FtlBbt2Bitmap
4963	.type	FtlBbt2Bitmap, %function
4964FtlBbt2Bitmap:
4965	stp	x29, x30, [sp, -64]!
4966	add	x29, sp, 0
4967	stp	x19, x20, [sp, 16]
4968	mov	x20, x0
4969	adrp	x0, .LANCHOR126
4970	stp	x21, x22, [sp, 32]
4971	stp	x23, x24, [sp, 48]
4972	adrp	x22, .LANCHOR51
4973	ldrh	w2, [x0, #:lo12:.LANCHOR126]
4974	adrp	x23, .LANCHOR127
4975	add	x22, x22, :lo12:.LANCHOR51
4976	add	x23, x23, :lo12:.LANCHOR127
4977	mov	x19, 0
4978	mov	w24, 65535
4979	mov	x21, x1
4980	lsl	w2, w2, 2
4981	mov	w1, 0
4982	mov	x0, x21
4983	bl	ftl_memset
4984.L742:
4985	ldrh	w0, [x20, x19]
4986	cmp	w0, w24
4987	beq	.L739
4988	ldrh	w1, [x22]
4989	cmp	w1, w0
4990	bhi	.L741
4991	mov	w2, 92
4992	mov	x1, x23
4993	adrp	x0, .LC5
4994	add	x0, x0, :lo12:.LC5
4995	bl	printf
4996	adrp	x1, .LC6
4997	adrp	x0, .LC7
4998	add	x1, x1, :lo12:.LC6
4999	add	x0, x0, :lo12:.LC7
5000	bl	printf
5001.L741:
5002	ldrh	w1, [x20, x19]
5003	mov	w2, 1
5004	add	x19, x19, 2
5005	cmp	x19, 1024
5006	ubfx	x0, x1, 5, 11
5007	and	w1, w1, 31
5008	lsl	x0, x0, 2
5009	lsl	w2, w2, w1
5010	ldr	w1, [x21, x0]
5011	orr	w1, w1, w2
5012	str	w1, [x21, x0]
5013	adrp	x0, .LANCHOR76
5014	add	x0, x0, :lo12:.LANCHOR76
5015	ldrh	w1, [x0, 6]
5016	add	w1, w1, 1
5017	strh	w1, [x0, 6]
5018	bne	.L742
5019.L739:
5020	ldp	x19, x20, [sp, 16]
5021	ldp	x21, x22, [sp, 32]
5022	ldp	x23, x24, [sp, 48]
5023	ldp	x29, x30, [sp], 64
5024	ret
5025	.size	FtlBbt2Bitmap, .-FtlBbt2Bitmap
5026	.section	.text.FtlBbtMemInit,"ax",@progbits
5027	.align	2
5028	.global	FtlBbtMemInit
5029	.type	FtlBbtMemInit, %function
5030FtlBbtMemInit:
5031	adrp	x1, .LANCHOR76
5032	add	x0, x1, :lo12:.LANCHOR76
5033	mov	w2, -1
5034	add	x0, x0, 12
5035	strh	w2, [x1, #:lo12:.LANCHOR76]
5036	mov	w2, 16
5037	strh	wzr, [x0, -6]
5038	mov	w1, 255
5039	b	ftl_memset
5040	.size	FtlBbtMemInit, .-FtlBbtMemInit
5041	.section	.text.FtlFreeSysBlkQueueInit,"ax",@progbits
5042	.align	2
5043	.global	FtlFreeSysBlkQueueInit
5044	.type	FtlFreeSysBlkQueueInit, %function
5045FtlFreeSysBlkQueueInit:
5046	stp	x29, x30, [sp, -16]!
5047	adrp	x1, .LANCHOR77
5048	add	x3, x1, :lo12:.LANCHOR77
5049	mov	w2, 2048
5050	add	x29, sp, 0
5051	strh	w0, [x1, #:lo12:.LANCHOR77]
5052	mov	w1, 0
5053	strh	wzr, [x3, 2]
5054	add	x0, x3, 8
5055	strh	wzr, [x3, 4]
5056	strh	wzr, [x3, 6]
5057	bl	ftl_memset
5058	mov	w0, 0
5059	ldp	x29, x30, [sp], 16
5060	ret
5061	.size	FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
5062	.section	.text.ftl_free_no_use_map_blk,"ax",@progbits
5063	.align	2
5064	.global	ftl_free_no_use_map_blk
5065	.type	ftl_free_no_use_map_blk, %function
5066ftl_free_no_use_map_blk:
5067	stp	x29, x30, [sp, -80]!
5068	mov	w1, 0
5069	add	x29, sp, 0
5070	stp	x19, x20, [sp, 16]
5071	mov	x19, x0
5072	ldrh	w2, [x0, 10]
5073	stp	x21, x22, [sp, 32]
5074	ldp	x21, x20, [x0, 32]
5075	stp	x23, x24, [sp, 48]
5076	ldr	x22, [x0, 16]
5077	lsl	w2, w2, 1
5078	mov	x0, x21
5079	str	x25, [sp, 64]
5080	bl	ftl_memset
5081	mov	w0, 0
5082.L750:
5083	ldrh	w1, [x19, 6]
5084	cmp	w1, w0
5085	bhi	.L754
5086	adrp	x0, .LANCHOR53
5087	mov	w23, 0
5088	mov	w20, 0
5089	ldrh	w1, [x0, #:lo12:.LANCHOR53]
5090	ldrh	w0, [x19]
5091	strh	w1, [x21, x0, lsl 1]
5092	ldrh	w24, [x21]
5093.L755:
5094	ldrh	w0, [x19, 10]
5095	cmp	w0, w20
5096	bhi	.L759
5097	mov	w0, w23
5098	ldr	x25, [sp, 64]
5099	ldp	x19, x20, [sp, 16]
5100	ldp	x21, x22, [sp, 32]
5101	ldp	x23, x24, [sp, 48]
5102	ldp	x29, x30, [sp], 80
5103	ret
5104.L754:
5105	ubfiz	x1, x0, 2, 16
5106	ldr	w2, [x20, x1]
5107	mov	w1, 0
5108	ubfx	x2, x2, 10, 16
5109.L751:
5110	ldrh	w3, [x19, 10]
5111	cmp	w3, w1
5112	bhi	.L753
5113	add	w0, w0, 1
5114	and	w0, w0, 65535
5115	b	.L750
5116.L753:
5117	ubfiz	x3, x1, 1, 16
5118	ldrh	w4, [x22, x3]
5119	cmp	w4, w2
5120	bne	.L752
5121	cbz	w2, .L752
5122	ldrh	w4, [x21, x3]
5123	add	w4, w4, 1
5124	strh	w4, [x21, x3]
5125.L752:
5126	add	w1, w1, 1
5127	and	w1, w1, 65535
5128	b	.L751
5129.L759:
5130	ubfiz	x0, x20, 1, 16
5131	ldrh	w1, [x21, x0]
5132	cmp	w24, w1
5133	bls	.L756
5134	add	x25, x22, x0
5135	ldrh	w0, [x22, x0]
5136	cbnz	w0, .L757
5137.L758:
5138	add	w20, w20, 1
5139	and	w20, w20, 65535
5140	b	.L755
5141.L756:
5142	cbnz	w1, .L758
5143	add	x25, x22, x0
5144	ldrh	w0, [x22, x0]
5145	cbz	w0, .L758
5146.L760:
5147	mov	w1, 1
5148	bl	FtlFreeSysBlkQueueIn
5149	strh	wzr, [x25]
5150	ldrh	w0, [x19, 8]
5151	sub	w0, w0, #1
5152	strh	w0, [x19, 8]
5153	b	.L758
5154.L761:
5155	mov	w24, 0
5156	b	.L760
5157.L757:
5158	mov	w23, w20
5159	cbz	w1, .L761
5160	mov	w24, w1
5161	b	.L758
5162	.size	ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
5163	.section	.text.FtlL2PDataInit,"ax",@progbits
5164	.align	2
5165	.global	FtlL2PDataInit
5166	.type	FtlL2PDataInit, %function
5167FtlL2PDataInit:
5168	stp	x29, x30, [sp, -64]!
5169	mov	w1, 0
5170	add	x29, sp, 0
5171	stp	x19, x20, [sp, 16]
5172	adrp	x19, .LANCHOR128
5173	adrp	x20, .LANCHOR64
5174	stp	x21, x22, [sp, 32]
5175	ldr	x0, [x19, #:lo12:.LANCHOR128]
5176	adrp	x22, .LANCHOR57
5177	ldr	w2, [x20, #:lo12:.LANCHOR64]
5178	adrp	x21, .LANCHOR67
5179	str	x23, [sp, 48]
5180	adrp	x23, .LANCHOR129
5181	lsl	w2, w2, 1
5182	bl	ftl_memset
5183	ldrh	w0, [x21, #:lo12:.LANCHOR67]
5184	mov	w1, 255
5185	ldrh	w2, [x22, #:lo12:.LANCHOR57]
5186	mul	w2, w2, w0
5187	ldr	x0, [x23, #:lo12:.LANCHOR129]
5188	bl	ftl_memset
5189	adrp	x0, .LANCHOR98
5190	ldrh	w3, [x21, #:lo12:.LANCHOR67]
5191	ldr	x6, [x23, #:lo12:.LANCHOR129]
5192	mov	x1, 0
5193	ldr	x0, [x0, #:lo12:.LANCHOR98]
5194	mov	w2, -1
5195	ldrh	w5, [x22, #:lo12:.LANCHOR57]
5196	add	x3, x0, x3, lsl 4
5197.L771:
5198	add	x4, x1, x5
5199	cmp	x0, x3
5200	bne	.L772
5201	adrp	x1, .LANCHOR130
5202	add	x0, x1, :lo12:.LANCHOR130
5203	ldp	x21, x22, [sp, 32]
5204	strh	w2, [x1, #:lo12:.LANCHOR130]
5205	ldr	w1, [x20, #:lo12:.LANCHOR64]
5206	strh	w1, [x0, 10]
5207	mov	w1, -3902
5208	strh	w1, [x0, 4]
5209	adrp	x1, .LANCHOR131
5210	ldr	x23, [sp, 48]
5211	strh	w2, [x0, 2]
5212	ldrh	w1, [x1, #:lo12:.LANCHOR131]
5213	strh	w1, [x0, 8]
5214	adrp	x1, .LANCHOR66
5215	ldrh	w1, [x1, #:lo12:.LANCHOR66]
5216	strh	w1, [x0, 6]
5217	adrp	x1, .LANCHOR132
5218	ldr	x1, [x1, #:lo12:.LANCHOR132]
5219	str	x1, [x0, 16]
5220	adrp	x1, .LANCHOR133
5221	ldr	x1, [x1, #:lo12:.LANCHOR133]
5222	str	x1, [x0, 24]
5223	ldr	x1, [x19, #:lo12:.LANCHOR128]
5224	ldp	x19, x20, [sp, 16]
5225	str	x1, [x0, 32]
5226	adrp	x1, .LANCHOR134
5227	ldr	x1, [x1, #:lo12:.LANCHOR134]
5228	str	x1, [x0, 40]
5229	ldp	x29, x30, [sp], 64
5230	ret
5231.L772:
5232	and	x1, x1, -4
5233	strh	w2, [x0]
5234	add	x1, x6, x1
5235	str	wzr, [x0, 4]
5236	str	x1, [x0, 8]
5237	add	x0, x0, 16
5238	mov	x1, x4
5239	b	.L771
5240	.size	FtlL2PDataInit, .-FtlL2PDataInit
5241	.section	.text.FtlVariablesInit,"ax",@progbits
5242	.align	2
5243	.global	FtlVariablesInit
5244	.type	FtlVariablesInit, %function
5245FtlVariablesInit:
5246	stp	x29, x30, [sp, -32]!
5247	adrp	x0, .LANCHOR135
5248	mov	w1, -1
5249	add	x29, sp, 0
5250	str	xzr, [x0, #:lo12:.LANCHOR135]
5251	adrp	x0, .LANCHOR136
5252	str	x19, [sp, 16]
5253	adrp	x19, .LANCHOR41
5254	strh	w1, [x0, #:lo12:.LANCHOR136]
5255	adrp	x0, .LANCHOR137
5256	mov	w1, -1
5257	str	wzr, [x0, #:lo12:.LANCHOR137]
5258	adrp	x0, .LANCHOR138
5259	str	wzr, [x0, #:lo12:.LANCHOR138]
5260	adrp	x0, .LANCHOR139
5261	str	w1, [x0, #:lo12:.LANCHOR139]
5262	adrp	x0, .LANCHOR104
5263	mov	w1, 0
5264	str	wzr, [x0, #:lo12:.LANCHOR104]
5265	adrp	x0, .LANCHOR70
5266	strh	wzr, [x0, #:lo12:.LANCHOR70]
5267	adrp	x0, .LANCHOR61
5268	ldrh	w2, [x0, #:lo12:.LANCHOR61]
5269	adrp	x0, .LANCHOR71
5270	ldr	x0, [x0, #:lo12:.LANCHOR71]
5271	lsl	w2, w2, 1
5272	bl	ftl_memset
5273	adrp	x0, .LANCHOR80
5274	ldrh	w2, [x19, #:lo12:.LANCHOR41]
5275	mov	w1, 0
5276	ldr	x0, [x0, #:lo12:.LANCHOR80]
5277	lsl	w2, w2, 1
5278	bl	ftl_memset
5279	adrp	x0, .LANCHOR140
5280	ldrh	w2, [x19, #:lo12:.LANCHOR41]
5281	mov	w1, 0
5282	ldr	x0, [x0, #:lo12:.LANCHOR140]
5283	lsl	w2, w2, 1
5284	bl	ftl_memset
5285	mov	w2, 48
5286	mov	w1, 0
5287	adrp	x0, .LANCHOR82
5288	add	x0, x0, :lo12:.LANCHOR82
5289	bl	ftl_memset
5290	mov	w2, 512
5291	mov	w1, 0
5292	adrp	x0, .LANCHOR141
5293	add	x0, x0, :lo12:.LANCHOR141
5294	bl	ftl_memset
5295	bl	FtlGcBufInit
5296	bl	FtlL2PDataInit
5297	ldr	x19, [sp, 16]
5298	mov	w0, 0
5299	ldp	x29, x30, [sp], 32
5300	ret
5301	.size	FtlVariablesInit, .-FtlVariablesInit
5302	.section	.text.SupperBlkListInit,"ax",@progbits
5303	.align	2
5304	.global	SupperBlkListInit
5305	.type	SupperBlkListInit, %function
5306SupperBlkListInit:
5307	stp	x29, x30, [sp, -96]!
5308	adrp	x0, .LANCHOR41
5309	mov	w1, 0
5310	add	x29, sp, 0
5311	ldrh	w2, [x0, #:lo12:.LANCHOR41]
5312	mov	w0, 6
5313	stp	x23, x24, [sp, 48]
5314	adrp	x24, .LANCHOR83
5315	stp	x19, x20, [sp, 16]
5316	adrp	x23, .LANCHOR87
5317	stp	x21, x22, [sp, 32]
5318	adrp	x22, .LANCHOR90
5319	mul	w2, w2, w0
5320	ldr	x0, [x24, #:lo12:.LANCHOR83]
5321	stp	x25, x26, [sp, 64]
5322	adrp	x25, .LANCHOR40
5323	str	x27, [sp, 80]
5324	adrp	x26, .LANCHOR47
5325	add	x25, x25, :lo12:.LANCHOR40
5326	add	x26, x26, :lo12:.LANCHOR47
5327	bl	ftl_memset
5328	mov	w21, 0
5329	adrp	x0, .LANCHOR89
5330	mov	w20, 0
5331	mov	w19, 0
5332	strh	wzr, [x23, #:lo12:.LANCHOR87]
5333	str	xzr, [x0, #:lo12:.LANCHOR89]
5334	adrp	x0, .LANCHOR84
5335	strh	wzr, [x22, #:lo12:.LANCHOR90]
5336	adrp	x27, .LANCHOR38
5337	str	xzr, [x0, #:lo12:.LANCHOR84]
5338	adrp	x0, .LANCHOR86
5339	str	xzr, [x0, #:lo12:.LANCHOR86]
5340	adrp	x0, .LANCHOR142
5341	strh	wzr, [x0, #:lo12:.LANCHOR142]
5342.L777:
5343	ldrh	w0, [x25]
5344	cmp	w19, w0
5345	bge	.L784
5346	adrp	x0, .LANCHOR52
5347	ldrh	w8, [x27, #:lo12:.LANCHOR38]
5348	mov	w5, 0
5349	mov	w6, 0
5350	ldrh	w7, [x0, #:lo12:.LANCHOR52]
5351	b	.L785
5352.L779:
5353	ldrb	w0, [x26, w6, sxtw]
5354	mov	w1, w19
5355	bl	V2P_block
5356	bl	FtlBbmIsBadBlock
5357	cbnz	w0, .L778
5358	add	w5, w7, w5
5359	sxth	w5, w5
5360.L778:
5361	add	w6, w6, 1
5362	sxth	w6, w6
5363.L785:
5364	cmp	w6, w8
5365	blt	.L779
5366	cbz	w5, .L780
5367	mov	w0, 32768
5368	sdiv	w5, w0, w5
5369	sxth	w5, w5
5370.L781:
5371	ldr	x1, [x24, #:lo12:.LANCHOR83]
5372	mov	w0, 6
5373	smaddl	x0, w19, w0, x1
5374	strh	w5, [x0, 4]
5375	adrp	x0, .LANCHOR93
5376	ldrh	w0, [x0, #:lo12:.LANCHOR93]
5377	cmp	w19, w0
5378	beq	.L782
5379	adrp	x0, .LANCHOR94
5380	ldrh	w0, [x0, #:lo12:.LANCHOR94]
5381	cmp	w19, w0
5382	beq	.L782
5383	adrp	x0, .LANCHOR95
5384	ldrh	w0, [x0, #:lo12:.LANCHOR95]
5385	cmp	w19, w0
5386	beq	.L782
5387	adrp	x0, .LANCHOR85
5388	ldr	x0, [x0, #:lo12:.LANCHOR85]
5389	ldrh	w0, [x0, w19, sxtw 1]
5390	cbnz	w0, .L783
5391	add	w21, w21, 1
5392	mov	w0, w19
5393	and	w21, w21, 65535
5394	bl	INSERT_FREE_LIST
5395.L782:
5396	add	w19, w19, 1
5397	sxth	w19, w19
5398	b	.L777
5399.L780:
5400	adrp	x0, .LANCHOR85
5401	mov	w1, -1
5402	ldr	x0, [x0, #:lo12:.LANCHOR85]
5403	strh	w1, [x0, w19, sxtw 1]
5404	b	.L781
5405.L783:
5406	add	w20, w20, 1
5407	mov	w0, w19
5408	and	w20, w20, 65535
5409	bl	INSERT_DATA_LIST
5410	b	.L782
5411.L784:
5412	strh	w20, [x23, #:lo12:.LANCHOR87]
5413	add	w20, w20, w21
5414	strh	w21, [x22, #:lo12:.LANCHOR90]
5415	cmp	w0, w20
5416	bge	.L786
5417	mov	w2, 2899
5418	adrp	x1, .LANCHOR143
5419	adrp	x0, .LC5
5420	add	x1, x1, :lo12:.LANCHOR143
5421	add	x0, x0, :lo12:.LC5
5422	bl	printf
5423	adrp	x1, .LC6
5424	adrp	x0, .LC7
5425	add	x1, x1, :lo12:.LC6
5426	add	x0, x0, :lo12:.LC7
5427	bl	printf
5428.L786:
5429	mov	w0, 0
5430	ldr	x27, [sp, 80]
5431	ldp	x19, x20, [sp, 16]
5432	ldp	x21, x22, [sp, 32]
5433	ldp	x23, x24, [sp, 48]
5434	ldp	x25, x26, [sp, 64]
5435	ldp	x29, x30, [sp], 96
5436	ret
5437	.size	SupperBlkListInit, .-SupperBlkListInit
5438	.section	.text.FtlGcPageVarInit,"ax",@progbits
5439	.align	2
5440	.global	FtlGcPageVarInit
5441	.type	FtlGcPageVarInit, %function
5442FtlGcPageVarInit:
5443	stp	x29, x30, [sp, -32]!
5444	adrp	x0, .LANCHOR111
5445	mov	w1, 255
5446	add	x29, sp, 0
5447	strh	wzr, [x0, #:lo12:.LANCHOR111]
5448	adrp	x0, .LANCHOR113
5449	str	x19, [sp, 16]
5450	adrp	x19, .LANCHOR54
5451	strh	wzr, [x0, #:lo12:.LANCHOR113]
5452	adrp	x0, .LANCHOR112
5453	ldrh	w2, [x19, #:lo12:.LANCHOR54]
5454	ldr	x0, [x0, #:lo12:.LANCHOR112]
5455	lsl	w2, w2, 1
5456	bl	ftl_memset
5457	ldrh	w2, [x19, #:lo12:.LANCHOR54]
5458	mov	w0, 12
5459	mov	w1, 255
5460	mul	w2, w2, w0
5461	adrp	x0, .LANCHOR114
5462	ldr	x0, [x0, #:lo12:.LANCHOR114]
5463	bl	ftl_memset
5464	ldr	x19, [sp, 16]
5465	ldp	x29, x30, [sp], 32
5466	b	FtlGcBufInit
5467	.size	FtlGcPageVarInit, .-FtlGcPageVarInit
5468	.section	.text.idb_init,"ax",@progbits
5469	.align	2
5470	.global	idb_init
5471	.type	idb_init, %function
5472idb_init:
5473	stp	x29, x30, [sp, -16]!
5474	mov	w2, 262144
5475	mov	w1, 0
5476	adrp	x0, idb_buf
5477	add	x29, sp, 0
5478	add	x0, x0, :lo12:idb_buf
5479	bl	ftl_memset
5480	mov	w0, 0
5481	ldp	x29, x30, [sp], 16
5482	ret
5483	.size	idb_init, .-idb_init
5484	.section	.text.ftl_memcpy,"ax",@progbits
5485	.align	2
5486	.global	ftl_memcpy
5487	.type	ftl_memcpy, %function
5488ftl_memcpy:
5489	uxtw	x2, w2
5490	b	memcpy
5491	.size	ftl_memcpy, .-ftl_memcpy
5492	.section	.text.FlashReadIdbData,"ax",@progbits
5493	.align	2
5494	.global	FlashReadIdbData
5495	.type	FlashReadIdbData, %function
5496FlashReadIdbData:
5497	stp	x29, x30, [sp, -16]!
5498	mov	w2, 2048
5499	adrp	x1, .LANCHOR144
5500	add	x1, x1, :lo12:.LANCHOR144
5501	add	x29, sp, 0
5502	bl	ftl_memcpy
5503	mov	w0, 0
5504	ldp	x29, x30, [sp], 16
5505	ret
5506	.size	FlashReadIdbData, .-FlashReadIdbData
5507	.section	.text.FlashLoadPhyInfoInRam,"ax",@progbits
5508	.align	2
5509	.global	FlashLoadPhyInfoInRam
5510	.type	FlashLoadPhyInfoInRam, %function
5511FlashLoadPhyInfoInRam:
5512	stp	x29, x30, [sp, -48]!
5513	adrp	x0, .LANCHOR145
5514	add	x8, x0, :lo12:.LANCHOR145
5515	adrp	x11, .LANCHOR22
5516	add	x29, sp, 0
5517	add	x8, x8, 1
5518	mov	x7, x0
5519	add	x11, x11, :lo12:.LANCHOR22
5520	stp	x19, x20, [sp, 16]
5521	mov	x10, 0
5522	str	x21, [sp, 32]
5523.L798:
5524	ldrb	w2, [x8, -1]
5525	mov	w12, w10
5526	lsl	x21, x10, 5
5527	mov	x1, x11
5528	mov	x0, x8
5529	bl	FlashMemCmp8
5530	mov	w20, w0
5531	cbnz	w0, .L796
5532	add	x0, x7, :lo12:.LANCHOR145
5533	ubfiz	x12, x12, 5, 32
5534	add	x21, x0, x21
5535	add	x0, x0, x12
5536	adrp	x1, .LANCHOR146
5537	add	x4, x1, :lo12:.LANCHOR146
5538	ldrb	w3, [x0, 22]
5539	mov	x0, 0
5540.L797:
5541	lsl	x5, x0, 5
5542	mov	w2, w0
5543	ldrb	w5, [x5, x4]
5544	cmp	w5, w3
5545	beq	.L800
5546	add	x0, x0, 1
5547	cmp	x0, 4
5548	bne	.L797
5549	mov	w2, w0
5550.L800:
5551	ubfiz	x0, x2, 5, 32
5552	add	x1, x1, :lo12:.LANCHOR146
5553	adrp	x19, .LANCHOR31
5554	add	x19, x19, :lo12:.LANCHOR31
5555	add	x1, x1, x0
5556	mov	w2, 32
5557	adrp	x0, .LANCHOR8
5558	add	x0, x0, :lo12:.LANCHOR8
5559	bl	ftl_memcpy
5560	mov	w2, 32
5561	mov	x1, x21
5562	mov	x0, x19
5563	bl	ftl_memcpy
5564	ldrh	w0, [x19, 10]
5565	bl	FlashBlockAlignInit
5566	b	.L795
5567.L796:
5568	add	x10, x10, 1
5569	add	x8, x8, 32
5570	cmp	x10, 86
5571	bne	.L798
5572	mov	w20, -1
5573.L795:
5574	mov	w0, w20
5575	ldr	x21, [sp, 32]
5576	ldp	x19, x20, [sp, 16]
5577	ldp	x29, x30, [sp], 48
5578	ret
5579	.size	FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam
5580	.section	.text.NandcCopy1KB,"ax",@progbits
5581	.align	2
5582	.global	NandcCopy1KB
5583	.type	NandcCopy1KB, %function
5584NandcCopy1KB:
5585	stp	x29, x30, [sp, -48]!
5586	and	w1, w1, 255
5587	cmp	w1, 1
5588	add	x29, sp, 0
5589	stp	x19, x20, [sp, 16]
5590	and	w19, w2, 255
5591	str	x21, [sp, 32]
5592	add	x2, x0, 4096
5593	add	x21, x0, 512
5594	ubfiz	x0, x19, 9, 8
5595	mov	x20, x4
5596	add	x0, x2, x0
5597	bne	.L805
5598	cbz	x3, .L806
5599	mov	w2, 1024
5600	mov	x1, x3
5601	bl	ftl_memcpy
5602.L806:
5603	cbz	x20, .L804
5604	ldrb	w0, [x20]
5605	lsr	w19, w19, 1
5606	ldrb	w1, [x20, 1]
5607	orr	x1, x0, x1, lsl 8
5608	ldrb	w0, [x20, 2]
5609	orr	x1, x1, x0, lsl 16
5610	ldrb	w0, [x20, 3]
5611	orr	x0, x1, x0, lsl 24
5612	mov	w1, 12
5613	mul	w19, w19, w1
5614	str	w0, [x21, w19, sxtw 2]
5615.L804:
5616	ldp	x19, x20, [sp, 16]
5617	ldr	x21, [sp, 32]
5618	ldp	x29, x30, [sp], 48
5619	ret
5620.L805:
5621	cbz	x3, .L809
5622	mov	x1, x0
5623	mov	w2, 1024
5624	mov	x0, x3
5625	bl	ftl_memcpy
5626.L809:
5627	cbz	x20, .L804
5628	lsr	w19, w19, 1
5629	mov	w0, 12
5630	mul	w19, w19, w0
5631	ldr	w0, [x21, w19, sxtw 2]
5632	strb	w0, [x20]
5633	lsr	w1, w0, 8
5634	strb	w1, [x20, 1]
5635	lsr	w1, w0, 16
5636	lsr	w0, w0, 24
5637	strb	w1, [x20, 2]
5638	strb	w0, [x20, 3]
5639	b	.L804
5640	.size	NandcCopy1KB, .-NandcCopy1KB
5641	.section	.text.NandcXferData,"ax",@progbits
5642	.align	2
5643	.global	NandcXferData
5644	.type	NandcXferData, %function
5645NandcXferData:
5646	stp	x29, x30, [sp, -192]!
5647	tst	x3, 63
5648	add	x29, sp, 0
5649	stp	x25, x26, [sp, 64]
5650	and	w25, w0, 255
5651	stp	x19, x20, [sp, 16]
5652	adrp	x0, .LANCHOR0
5653	and	w20, w1, 255
5654	add	x0, x0, :lo12:.LANCHOR0
5655	sbfiz	x1, x25, 4, 32
5656	stp	x21, x22, [sp, 32]
5657	stp	x23, x24, [sp, 48]
5658	mov	x26, x3
5659	stp	x27, x28, [sp, 80]
5660	and	w24, w2, 255
5661	mov	x21, x4
5662	ldr	x19, [x0, x1]
5663	bne	.L822
5664	cbnz	x4, .L823
5665	add	x21, x29, 128
5666	mov	w2, 64
5667	mov	w1, 255
5668	add	x0, x29, 128
5669	bl	ftl_memset
5670.L823:
5671	mov	x5, x21
5672	mov	x4, x26
5673	mov	w2, w24
5674	mov	w3, 0
5675	mov	w1, w20
5676	mov	w0, w25
5677	bl	NandcXferStart
5678	mov	w1, w20
5679	mov	w0, w25
5680	bl	NandcXferComp
5681	cbnz	w20, .L847
5682	adrp	x0, .LANCHOR32
5683	adrp	x4, .LANCHOR35
5684	mov	x1, x0
5685	add	x4, x4, :lo12:.LANCHOR35
5686	ldr	w2, [x0, #:lo12:.LANCHOR32]
5687	mov	w0, 128
5688	mov	w3, 64
5689	cmp	w2, 25
5690	ubfx	x2, x24, 1, 7
5691	add	x2, x21, x2, lsl 2
5692	csel	w3, w3, w0, cc
5693	mov	w0, 0
5694.L826:
5695	add	w5, w3, w0
5696	cmp	x21, x2
5697	bne	.L827
5698	adrp	x0, .LANCHOR34
5699	ldr	w4, [x1, #:lo12:.LANCHOR32]
5700	lsr	w24, w24, 2
5701	mov	w2, 0
5702	ldr	w3, [x0, #:lo12:.LANCHOR34]
5703	mov	w22, 0
5704.L828:
5705	cmp	w2, w24
5706	bcs	.L824
5707	cbnz	w4, .L834
5708.L824:
5709	str	wzr, [x19, 16]
5710.L835:
5711	adrp	x0, .LANCHOR34
5712	ldr	w0, [x0, #:lo12:.LANCHOR34]
5713	cmp	w0, 5
5714	bls	.L821
5715	cbnz	w20, .L821
5716	ldr	w0, [x19]
5717	mov	w1, 8192
5718	movk	w1, 0x2, lsl 16
5719	and	w1, w0, w1
5720	cmp	w1, 139264
5721	bne	.L821
5722	orr	w0, w0, 131072
5723	mov	w22, -1
5724	str	w0, [x19]
5725.L821:
5726	mov	w0, w22
5727	ldp	x19, x20, [sp, 16]
5728	ldp	x21, x22, [sp, 32]
5729	ldp	x23, x24, [sp, 48]
5730	ldp	x25, x26, [sp, 64]
5731	ldp	x27, x28, [sp, 80]
5732	ldp	x29, x30, [sp], 192
5733	ret
5734.L827:
5735	ldr	x6, [x4, 8]
5736	and	x0, x0, 4294967292
5737	add	x21, x21, 4
5738	ldr	w0, [x6, x0]
5739	strb	w0, [x21, -4]
5740	lsr	w6, w0, 8
5741	strb	w6, [x21, -3]
5742	lsr	w6, w0, 16
5743	strb	w6, [x21, -2]
5744	lsr	w0, w0, 24
5745	strb	w0, [x21, -1]
5746	mov	w0, w5
5747	b	.L826
5748.L834:
5749	uxtw	x0, w2
5750	add	x0, x0, 8
5751	ldr	w0, [x19, x0, lsl 2]
5752	str	w0, [x29, 120]
5753	ldr	w0, [x29, 120]
5754	tbnz	x0, 2, .L850
5755	ldr	w0, [x29, 120]
5756	tbnz	x0, 15, .L850
5757	cmp	w3, 5
5758	bls	.L830
5759	ldr	w1, [x29, 120]
5760	ubfx	x6, x1, 3, 5
5761	ldr	w1, [x29, 120]
5762	ldr	w0, [x29, 120]
5763	ubfx	x1, x1, 27, 1
5764	ubfx	x5, x0, 16, 5
5765	ldr	w0, [x29, 120]
5766	orr	w1, w6, w1, lsl 5
5767	ubfx	x0, x0, 29, 1
5768	orr	w0, w5, w0, lsl 5
5769	cmp	w1, w0
5770	ldr	w0, [x29, 120]
5771	bls	.L831
5772	ubfx	x1, x0, 3, 5
5773	ldr	w0, [x29, 120]
5774	ubfx	x0, x0, 27, 1
5775.L856:
5776	orr	w0, w1, w0, lsl 5
5777.L832:
5778	cmp	w22, w0
5779	csel	w22, w22, w0, cs
5780.L829:
5781	add	w2, w2, 1
5782	b	.L828
5783.L831:
5784	ubfx	x1, x0, 16, 5
5785	ldr	w0, [x29, 120]
5786	ubfx	x0, x0, 29, 1
5787	b	.L856
5788.L830:
5789	cmp	w3, 3
5790	bls	.L851
5791	ldr	w1, [x29, 120]
5792	ubfx	x6, x1, 3, 5
5793	ldr	w1, [x29, 120]
5794	ldr	w0, [x29, 120]
5795	ubfx	x1, x1, 28, 1
5796	ubfx	x5, x0, 16, 5
5797	ldr	w0, [x29, 120]
5798	orr	w1, w6, w1, lsl 5
5799	ubfx	x0, x0, 30, 1
5800	orr	w0, w5, w0, lsl 5
5801	cmp	w1, w0
5802	ldr	w0, [x29, 120]
5803	bls	.L833
5804	ubfx	x1, x0, 3, 5
5805	ldr	w0, [x29, 120]
5806	ubfx	x0, x0, 28, 1
5807	b	.L856
5808.L833:
5809	ubfx	x1, x0, 16, 5
5810	ldr	w0, [x29, 120]
5811	ubfx	x0, x0, 30, 1
5812	b	.L856
5813.L851:
5814	mov	w0, 0
5815	b	.L832
5816.L850:
5817	mov	w22, -1
5818	b	.L829
5819.L847:
5820	mov	w22, 0
5821	b	.L824
5822.L822:
5823	cmp	w20, 1
5824	bne	.L836
5825	cmp	x4, 0
5826	mov	w23, 2
5827	csel	w23, w23, wzr, ne
5828	mov	w27, 0
5829	lsl	w23, w23, 1
5830	mov	w22, 0
5831.L837:
5832	cmp	w22, w24
5833	bcc	.L839
5834	mov	w22, 0
5835	b	.L835
5836.L839:
5837	and	w28, w22, 3
5838	cbz	x26, .L852
5839	lsl	w3, w22, 9
5840	add	x3, x26, x3
5841.L838:
5842	add	x4, x21, x27, uxtw
5843	mov	w2, w28
5844	mov	w1, 1
5845	mov	x0, x19
5846	bl	NandcCopy1KB
5847	add	w22, w22, 2
5848	mov	w3, w28
5849	mov	x5, 0
5850	mov	x4, 0
5851	mov	w2, 2
5852	mov	w1, 1
5853	mov	w0, w25
5854	bl	NandcXferStart
5855	add	w27, w27, w23
5856	mov	w1, 1
5857	mov	w0, w25
5858	bl	NandcXferComp
5859	b	.L837
5860.L852:
5861	mov	x3, 0
5862	b	.L838
5863.L836:
5864	mov	w0, w25
5865	mov	x5, 0
5866	mov	x4, 0
5867	mov	w3, 0
5868	mov	w2, 2
5869	mov	w1, 0
5870	bl	NandcXferStart
5871	mov	w27, 2
5872	cmp	x21, 0
5873	mov	w28, 0
5874	csel	w27, w27, wzr, ne
5875	mov	w23, 0
5876	lsl	w0, w27, 1
5877	mov	w22, 0
5878	str	w0, [x29, 108]
5879.L840:
5880	cmp	w24, w23
5881	bls	.L835
5882	mov	w0, w25
5883	mov	w1, w20
5884	bl	NandcXferComp
5885	add	w27, w23, 2
5886	ldr	w0, [x19, 32]
5887	cmp	w24, w27
5888	str	w0, [x29, 120]
5889	bls	.L841
5890	mov	x5, 0
5891	mov	x4, 0
5892	and	w3, w27, 3
5893	mov	w2, 2
5894	mov	w1, 0
5895	mov	w0, w25
5896	bl	NandcXferStart
5897.L841:
5898	ldr	w0, [x29, 120]
5899	tbnz	x0, 2, .L853
5900	ldr	w0, [x29, 120]
5901	ubfx	x1, x0, 3, 5
5902	ldr	w0, [x29, 120]
5903	ubfx	x0, x0, 27, 1
5904	orr	w0, w1, w0, lsl 5
5905	cmp	w22, w0
5906	csel	w22, w22, w0, cs
5907.L842:
5908	and	w2, w23, 3
5909	cbz	x26, .L854
5910	lsl	w3, w23, 9
5911	add	x3, x26, x3
5912.L843:
5913	add	x4, x21, x28, uxtw
5914	mov	x0, x19
5915	mov	w1, 0
5916	bl	NandcCopy1KB
5917	ldr	w0, [x29, 108]
5918	mov	w23, w27
5919	add	w28, w28, w0
5920	b	.L840
5921.L853:
5922	mov	w22, -1
5923	b	.L842
5924.L854:
5925	mov	x3, 0
5926	b	.L843
5927	.size	NandcXferData, .-NandcXferData
5928	.section	.text.FlashReadRawPage,"ax",@progbits
5929	.align	2
5930	.global	FlashReadRawPage
5931	.type	FlashReadRawPage, %function
5932FlashReadRawPage:
5933	stp	x29, x30, [sp, -64]!
5934	add	x29, sp, 0
5935	stp	x19, x20, [sp, 16]
5936	ands	w19, w0, 255
5937	stp	x21, x22, [sp, 32]
5938	mov	w21, w1
5939	str	x23, [sp, 48]
5940	adrp	x1, .LANCHOR31+9
5941	mov	x22, x2
5942	mov	x23, x3
5943	ldrb	w20, [x1, #:lo12:.LANCHOR31+9]
5944	bne	.L858
5945	adrp	x0, .LANCHOR3
5946	adrp	x1, .LANCHOR4
5947	ldrb	w0, [x0, #:lo12:.LANCHOR3]
5948	ldr	w1, [x1, #:lo12:.LANCHOR4]
5949	mul	w0, w0, w1
5950	cmp	w0, w21
5951	mov	w0, 4
5952	csel	w20, w20, w0, ls
5953.L858:
5954	mov	w0, w19
5955	bl	NandcWaitFlashReady
5956	mov	w0, w19
5957	bl	NandcFlashCs
5958	mov	w1, w21
5959	mov	w0, w19
5960	bl	FlashReadCmd
5961	mov	w0, w19
5962	bl	NandcWaitFlashReady
5963	mov	w2, w20
5964	mov	x4, x23
5965	mov	x3, x22
5966	mov	w1, 0
5967	mov	w0, w19
5968	bl	NandcXferData
5969	mov	w2, w0
5970	mov	w0, w19
5971	bl	NandcFlashDeCs
5972	ldr	x23, [sp, 48]
5973	mov	w0, w2
5974	ldp	x19, x20, [sp, 16]
5975	ldp	x21, x22, [sp, 32]
5976	ldp	x29, x30, [sp], 64
5977	ret
5978	.size	FlashReadRawPage, .-FlashReadRawPage
5979	.section	.text.FlashDdrTunningRead,"ax",@progbits
5980	.align	2
5981	.global	FlashDdrTunningRead
5982	.type	FlashDdrTunningRead, %function
5983FlashDdrTunningRead:
5984	stp	x29, x30, [sp, -112]!
5985	add	x29, sp, 0
5986	stp	x23, x24, [sp, 48]
5987	and	w24, w0, 255
5988	adrp	x0, .LANCHOR19
5989	stp	x25, x26, [sp, 64]
5990	stp	x21, x22, [sp, 32]
5991	mov	w25, w1
5992	ldr	x0, [x0, #:lo12:.LANCHOR19]
5993	mov	w22, 6
5994	stp	x27, x28, [sp, 80]
5995	mov	x23, x2
5996	stp	x19, x20, [sp, 16]
5997	mov	x28, x3
5998	mov	w26, w4
5999	ldr	w0, [x0, 304]
6000	str	w0, [x29, 108]
6001	adrp	x0, .LANCHOR34
6002	ldr	w0, [x0, #:lo12:.LANCHOR34]
6003	cmp	w0, 8
6004	mov	w0, 12
6005	csel	w22, w22, w0, cc
6006	cbz	w4, .L874
6007	mov	w0, 1
6008	bl	FlashSetInterfaceMode
6009	mov	w0, 1
6010	bl	NandcSetMode
6011	mov	w0, w24
6012	adrp	x19, .LANCHOR25
6013	bl	FlashReset
6014	mov	x3, x28
6015	mov	x2, x23
6016	mov	w1, w25
6017	mov	w0, w24
6018	bl	FlashReadRawPage
6019	mov	w21, w0
6020	ldrb	w0, [x19, #:lo12:.LANCHOR25]
6021	bl	FlashSetInterfaceMode
6022	ldrb	w0, [x19, #:lo12:.LANCHOR25]
6023	bl	NandcSetMode
6024	cmn	w21, #1
6025	bne	.L863
6026.L872:
6027	mov	w21, -1
6028.L860:
6029	mov	w0, w21
6030	ldp	x19, x20, [sp, 16]
6031	ldp	x21, x22, [sp, 32]
6032	ldp	x23, x24, [sp, 48]
6033	ldp	x25, x26, [sp, 64]
6034	ldp	x27, x28, [sp, 80]
6035	ldp	x29, x30, [sp], 112
6036	ret
6037.L863:
6038	mov	w1, w25
6039	mov	w2, w21
6040	adrp	x0, .LC9
6041	add	x0, x0, :lo12:.LC9
6042	bl	printf
6043	adrp	x1, .LANCHOR147
6044	ldr	w0, [x1, #:lo12:.LANCHOR147]
6045	add	w0, w0, 1
6046	cmp	w0, 2047
6047	bhi	.L865
6048	str	w0, [x1, #:lo12:.LANCHOR147]
6049	b	.L860
6050.L865:
6051	str	wzr, [x1, #:lo12:.LANCHOR147]
6052	mov	x28, 0
6053	mov	x23, 0
6054.L862:
6055	mov	w5, 0
6056	mov	w20, 0
6057	mov	w6, 0
6058	mov	w19, 0
6059	mov	w27, -1
6060.L870:
6061	stp	w5, w6, [x29, 100]
6062	mov	w0, w22
6063	bl	NandcSetDdrPara
6064	mov	w1, w25
6065	mov	x3, x28
6066	mov	x2, x23
6067	mov	w0, w24
6068	bl	FlashReadRawPage
6069	add	w1, w21, 1
6070	cmp	w0, w1
6071	ldp	w5, w6, [x29, 100]
6072	bhi	.L866
6073	cmp	w0, 2
6074	bhi	.L876
6075	add	w19, w19, 1
6076	cmp	w19, 9
6077	bls	.L876
6078	mov	w1, w20
6079	mov	w21, w0
6080	sub	w20, w22, w19
6081	mov	w27, 0
6082.L868:
6083	cmp	w19, w6
6084	csel	w20, w20, w1, hi
6085.L869:
6086	cbz	w20, .L871
6087	mov	w1, w20
6088	adrp	x0, .LC10
6089	add	x0, x0, :lo12:.LC10
6090	bl	printf
6091	mov	w0, w20
6092	bl	NandcSetDdrPara
6093.L871:
6094	cbz	w27, .L860
6095	adrp	x0, .LC11
6096	mov	w2, w25
6097	mov	w1, w24
6098	add	x0, x0, :lo12:.LC11
6099	bl	printf
6100	cbz	w26, .L872
6101	ldr	w1, [x29, 108]
6102	lsr	w0, w1, 8
6103	bl	NandcSetDdrPara
6104	b	.L860
6105.L874:
6106	mov	w21, 1024
6107	b	.L862
6108.L866:
6109	cmp	w19, w6
6110	bls	.L877
6111	sub	w20, w5, w19
6112	cmp	w19, 7
6113	bhi	.L869
6114	mov	w6, w19
6115.L877:
6116	mov	w19, 0
6117	b	.L867
6118.L876:
6119	mov	w5, w22
6120	mov	w21, w0
6121	mov	w27, 0
6122	mov	x28, 0
6123	mov	x23, 0
6124.L867:
6125	add	w22, w22, 2
6126	cmp	w22, 69
6127	bls	.L870
6128	mov	w1, w20
6129	mov	w20, w5
6130	b	.L868
6131	.size	FlashDdrTunningRead, .-FlashDdrTunningRead
6132	.section	.text.FlashReadPage,"ax",@progbits
6133	.align	2
6134	.global	FlashReadPage
6135	.type	FlashReadPage, %function
6136FlashReadPage:
6137	stp	x29, x30, [sp, -80]!
6138	add	x29, sp, 0
6139	stp	x19, x20, [sp, 16]
6140	and	w20, w0, 255
6141	stp	x21, x22, [sp, 32]
6142	mov	w0, w20
6143	stp	x23, x24, [sp, 48]
6144	mov	w21, w1
6145	mov	x22, x2
6146	mov	x23, x3
6147	str	x25, [sp, 64]
6148	bl	FlashReadRawPage
6149	mov	w19, w0
6150	cmn	w0, #1
6151	bne	.L887
6152	adrp	x24, .LANCHOR6
6153	ldrb	w25, [x24, #:lo12:.LANCHOR6]
6154	cbnz	w25, .L888
6155.L890:
6156	adrp	x0, .LANCHOR30
6157	ldrb	w0, [x0, #:lo12:.LANCHOR30]
6158	cbz	w0, .L887
6159	adrp	x0, .LANCHOR19
6160	mov	w4, 1
6161	mov	x3, x23
6162	mov	x2, x22
6163	ldr	x0, [x0, #:lo12:.LANCHOR19]
6164	mov	w1, w21
6165	ldr	w24, [x0, 304]
6166	mov	w0, w20
6167	bl	FlashDdrTunningRead
6168	mov	w19, w0
6169	cmn	w0, #1
6170	beq	.L891
6171	adrp	x0, .LANCHOR33
6172	ldrb	w0, [x0, #:lo12:.LANCHOR33]
6173	cmp	w19, w0, lsr 1
6174	bls	.L887
6175.L891:
6176	lsr	w0, w24, 8
6177	bl	NandcSetDdrPara
6178	b	.L887
6179.L888:
6180	strb	wzr, [x24, #:lo12:.LANCHOR6]
6181	mov	x3, x23
6182	mov	x2, x22
6183	mov	w1, w21
6184	mov	w0, w20
6185	bl	FlashReadRawPage
6186	strb	w25, [x24, #:lo12:.LANCHOR6]
6187	cmn	w0, #1
6188	beq	.L890
6189	mov	w19, w0
6190.L887:
6191	adrp	x24, .LANCHOR148
6192	ldr	x4, [x24, #:lo12:.LANCHOR148]
6193	cbz	x4, .L886
6194	cmn	w19, #1
6195	bne	.L886
6196	mov	x3, x23
6197	mov	x2, x22
6198	mov	w1, w21
6199	mov	w0, w20
6200	blr	x4
6201	mov	w19, w0
6202	mov	w1, w0
6203	mov	w3, w21
6204	mov	w2, w20
6205	adrp	x0, .LC12
6206	add	x0, x0, :lo12:.LC12
6207	bl	printf
6208	cmn	w19, #1
6209	bne	.L886
6210	adrp	x0, .LANCHOR16
6211	ldrb	w0, [x0, #:lo12:.LANCHOR16]
6212	cbz	w0, .L886
6213	mov	w0, w20
6214	bl	flash_enter_slc_mode
6215	ldr	x4, [x24, #:lo12:.LANCHOR148]
6216	mov	x3, x23
6217	mov	x2, x22
6218	mov	w1, w21
6219	mov	w0, w20
6220	blr	x4
6221	mov	w19, w0
6222	mov	w0, w20
6223	bl	flash_exit_slc_mode
6224.L886:
6225	mov	w0, w19
6226	ldr	x25, [sp, 64]
6227	ldp	x19, x20, [sp, 16]
6228	ldp	x21, x22, [sp, 32]
6229	ldp	x23, x24, [sp, 48]
6230	ldp	x29, x30, [sp], 80
6231	ret
6232	.size	FlashReadPage, .-FlashReadPage
6233	.section	.text.FlashDdrParaScan,"ax",@progbits
6234	.align	2
6235	.global	FlashDdrParaScan
6236	.type	FlashDdrParaScan, %function
6237FlashDdrParaScan:
6238	stp	x29, x30, [sp, -48]!
6239	add	x29, sp, 0
6240	stp	x19, x20, [sp, 16]
6241	adrp	x19, .LANCHOR25
6242	and	w20, w0, 255
6243	stp	x21, x22, [sp, 32]
6244	ldrb	w0, [x19, #:lo12:.LANCHOR25]
6245	mov	w21, w1
6246	bl	FlashSetInterfaceMode
6247	ldrb	w0, [x19, #:lo12:.LANCHOR25]
6248	bl	NandcSetMode
6249	mov	w4, 0
6250	mov	x3, 0
6251	mov	x2, 0
6252	mov	w1, w21
6253	mov	w0, w20
6254	bl	FlashDdrTunningRead
6255	mov	x3, 0
6256	mov	w22, w0
6257	mov	x2, 0
6258	mov	w0, w20
6259	mov	w1, w21
6260	adrp	x20, .LANCHOR30
6261	bl	FlashReadRawPage
6262	cmn	w0, #1
6263	beq	.L907
6264	cmn	w22, #1
6265	bne	.L908
6266.L907:
6267	ldrb	w0, [x19, #:lo12:.LANCHOR25]
6268	tbz	x0, 0, .L908
6269	mov	w0, 1
6270	bl	FlashSetInterfaceMode
6271	mov	w0, 1
6272	bl	NandcSetMode
6273	strb	wzr, [x20, #:lo12:.LANCHOR30]
6274.L909:
6275	mov	w0, 0
6276	ldp	x19, x20, [sp, 16]
6277	ldp	x21, x22, [sp, 32]
6278	ldp	x29, x30, [sp], 48
6279	ret
6280.L908:
6281	mov	w0, 1
6282	strb	w0, [x20, #:lo12:.LANCHOR30]
6283	b	.L909
6284	.size	FlashDdrParaScan, .-FlashDdrParaScan
6285	.section	.text.ToshibaReadRetrial,"ax",@progbits
6286	.align	2
6287	.global	ToshibaReadRetrial
6288	.type	ToshibaReadRetrial, %function
6289ToshibaReadRetrial:
6290	stp	x29, x30, [sp, -128]!
6291	add	x29, sp, 0
6292	stp	x21, x22, [sp, 32]
6293	and	w21, w0, 255
6294	stp	x25, x26, [sp, 64]
6295	mov	w0, w21
6296	stp	x19, x20, [sp, 16]
6297	mov	x25, x2
6298	stp	x27, x28, [sp, 80]
6299	mov	x26, x3
6300	str	w1, [x29, 120]
6301	stp	x23, x24, [sp, 48]
6302	bl	NandcWaitFlashReady
6303	sbfiz	x1, x21, 4, 32
6304	adrp	x0, .LANCHOR0
6305	add	x0, x0, :lo12:.LANCHOR0
6306	add	x2, x0, x1
6307	ldr	x22, [x0, x1]
6308	adrp	x1, .LANCHOR11
6309	ldrb	w27, [x2, 8]
6310	ldrb	w0, [x1, #:lo12:.LANCHOR11]
6311	str	x1, [x29, 112]
6312	add	x19, x27, 8
6313	sub	w0, w0, #67
6314	str	w27, [x29, 124]
6315	and	w0, w0, 255
6316	add	x19, x22, x19, lsl 8
6317	cmp	w0, 1
6318	bls	.L934
6319	adrp	x0, .LANCHOR30
6320	ldrb	w0, [x0, #:lo12:.LANCHOR30]
6321	cbz	w0, .L935
6322	mov	w23, 1
6323	mov	w0, 0
6324	bl	NandcSetDdrMode
6325.L919:
6326	add	x0, x22, x27, lsl 8
6327	mov	w1, 92
6328	str	w1, [x0, 2056]
6329	mov	w1, 197
6330	str	w1, [x0, 2056]
6331.L918:
6332	ldrsw	x0, [x29, 124]
6333	mov	w20, 1
6334	mov	w24, -1
6335	add	x0, x0, 8
6336	add	x0, x22, x0, lsl 8
6337	str	x0, [x29, 104]
6338.L920:
6339	adrp	x0, .LANCHOR149
6340	ldrb	w0, [x0, #:lo12:.LANCHOR149]
6341	add	w0, w0, 1
6342	cmp	w20, w0
6343	bcc	.L929
6344	mov	w28, w24
6345.L928:
6346	ldr	x0, [x29, 112]
6347	mov	w1, 0
6348	ldrb	w0, [x0, #:lo12:.LANCHOR11]
6349	sub	w0, w0, #67
6350	and	w0, w0, 255
6351	cmp	w0, 1
6352	mov	x0, x19
6353	bhi	.L930
6354	bl	SandiskSetRRPara
6355.L931:
6356	ldrsw	x0, [x29, 124]
6357	add	x0, x0, 8
6358	add	x22, x22, x0, lsl 8
6359	mov	w0, 255
6360	str	w0, [x22, 8]
6361	adrp	x0, .LANCHOR33
6362	ldrb	w0, [x0, #:lo12:.LANCHOR33]
6363	add	w0, w0, w0, lsl 1
6364	cmp	w28, w0, lsr 2
6365	bcc	.L932
6366	cmn	w28, #1
6367	mov	w0, 256
6368	csel	w28, w28, w0, eq
6369.L932:
6370	mov	w0, w21
6371	bl	NandcWaitFlashReady
6372	cbz	w23, .L917
6373	mov	w0, 4
6374	bl	NandcSetDdrMode
6375.L917:
6376	mov	w0, w28
6377	ldp	x19, x20, [sp, 16]
6378	ldp	x21, x22, [sp, 32]
6379	ldp	x23, x24, [sp, 48]
6380	ldp	x25, x26, [sp, 64]
6381	ldp	x27, x28, [sp, 80]
6382	ldp	x29, x30, [sp], 128
6383	ret
6384.L935:
6385	mov	w23, 0
6386	b	.L919
6387.L934:
6388	mov	w23, 0
6389	b	.L918
6390.L929:
6391	ldr	x0, [x29, 112]
6392	mov	w1, w20
6393	ldrb	w0, [x0, #:lo12:.LANCHOR11]
6394	sub	w0, w0, #67
6395	and	w0, w0, 255
6396	cmp	w0, 1
6397	mov	x0, x19
6398	bhi	.L921
6399	bl	SandiskSetRRPara
6400.L922:
6401	ldr	x0, [x29, 112]
6402	ldrb	w0, [x0, #:lo12:.LANCHOR11]
6403	cmp	w0, 34
6404	bne	.L923
6405	adrp	x0, .LANCHOR149
6406	ldrb	w0, [x0, #:lo12:.LANCHOR149]
6407	sub	w0, w0, #3
6408	cmp	w20, w0
6409	bne	.L923
6410	ldr	x1, [x29, 104]
6411	mov	w0, 179
6412	str	w0, [x1, 8]
6413.L923:
6414	add	x0, x22, x27, lsl 8
6415	mov	w1, 38
6416	str	w1, [x0, 2056]
6417	mov	w1, 93
6418	str	w1, [x0, 2056]
6419	cbz	w23, .L924
6420	mov	w0, 4
6421	bl	NandcSetDdrMode
6422	ldr	w1, [x29, 120]
6423	mov	x3, x26
6424	mov	x2, x25
6425	mov	w0, w21
6426	bl	FlashReadRawPage
6427	mov	w28, w0
6428	mov	w0, 0
6429	bl	NandcSetDdrMode
6430.L925:
6431	cmn	w28, #1
6432	beq	.L926
6433	adrp	x0, .LANCHOR33
6434	cmn	w24, #1
6435	csel	w24, w24, w28, ne
6436	ldrb	w0, [x0, #:lo12:.LANCHOR33]
6437	add	w0, w0, w0, lsl 1
6438	cmp	w28, w0, lsr 2
6439	bcc	.L928
6440	mov	x26, 0
6441	mov	x25, 0
6442.L926:
6443	add	w20, w20, 1
6444	b	.L920
6445.L921:
6446	bl	ToshibaSetRRPara
6447	b	.L922
6448.L924:
6449	ldr	w1, [x29, 120]
6450	mov	x3, x26
6451	mov	x2, x25
6452	mov	w0, w21
6453	bl	FlashReadRawPage
6454	mov	w28, w0
6455	b	.L925
6456.L930:
6457	bl	ToshibaSetRRPara
6458	b	.L931
6459	.size	ToshibaReadRetrial, .-ToshibaReadRetrial
6460	.section	.text.SamsungReadRetrial,"ax",@progbits
6461	.align	2
6462	.global	SamsungReadRetrial
6463	.type	SamsungReadRetrial, %function
6464SamsungReadRetrial:
6465	stp	x29, x30, [sp, -96]!
6466	add	x29, sp, 0
6467	stp	x21, x22, [sp, 32]
6468	and	w22, w0, 255
6469	stp	x19, x20, [sp, 16]
6470	mov	w0, w22
6471	stp	x23, x24, [sp, 48]
6472	mov	w23, w1
6473	stp	x25, x26, [sp, 64]
6474	mov	x24, x2
6475	str	x27, [sp, 80]
6476	mov	x25, x3
6477	bl	NandcWaitFlashReady
6478	adrp	x26, .LANCHOR149
6479	sbfiz	x1, x22, 4, 32
6480	adrp	x0, .LANCHOR0
6481	add	x0, x0, :lo12:.LANCHOR0
6482	adrp	x27, .LANCHOR33
6483	add	x2, x0, x1
6484	add	x26, x26, :lo12:.LANCHOR149
6485	add	x27, x27, :lo12:.LANCHOR33
6486	mov	w21, 1
6487	ldr	x0, [x0, x1]
6488	mov	w19, -1
6489	ldrb	w20, [x2, 8]
6490	add	x20, x20, 8
6491	add	x20, x0, x20, lsl 8
6492.L946:
6493	ldrb	w0, [x26]
6494	add	w0, w0, 1
6495	cmp	w21, w0
6496	bcc	.L950
6497.L949:
6498	mov	x0, x20
6499	mov	w1, 0
6500	bl	SamsungSetRRPara
6501	adrp	x0, .LANCHOR33
6502	ldrb	w0, [x0, #:lo12:.LANCHOR33]
6503	add	w0, w0, w0, lsl 1
6504	cmp	w19, w0, lsr 2
6505	bcc	.L945
6506	cmn	w19, #1
6507	mov	w0, 256
6508	csel	w19, w19, w0, eq
6509.L945:
6510	mov	w0, w19
6511	ldr	x27, [sp, 80]
6512	ldp	x19, x20, [sp, 16]
6513	ldp	x21, x22, [sp, 32]
6514	ldp	x23, x24, [sp, 48]
6515	ldp	x25, x26, [sp, 64]
6516	ldp	x29, x30, [sp], 96
6517	ret
6518.L950:
6519	mov	w1, w21
6520	mov	x0, x20
6521	bl	SamsungSetRRPara
6522	mov	x3, x25
6523	mov	x2, x24
6524	mov	w1, w23
6525	mov	w0, w22
6526	bl	FlashReadRawPage
6527	cmn	w0, #1
6528	beq	.L947
6529	ldrb	w1, [x27]
6530	cmn	w19, #1
6531	csel	w19, w19, w0, ne
6532	add	w1, w1, w1, lsl 1
6533	cmp	w0, w1, lsr 2
6534	bcc	.L952
6535	mov	x25, 0
6536	mov	x24, 0
6537.L947:
6538	add	w21, w21, 1
6539	b	.L946
6540.L952:
6541	mov	w19, w0
6542	b	.L949
6543	.size	SamsungReadRetrial, .-SamsungReadRetrial
6544	.section	.text.MicronReadRetrial,"ax",@progbits
6545	.align	2
6546	.global	MicronReadRetrial
6547	.type	MicronReadRetrial, %function
6548MicronReadRetrial:
6549	stp	x29, x30, [sp, -144]!
6550	add	x29, sp, 0
6551	stp	x19, x20, [sp, 16]
6552	and	w20, w0, 255
6553	adrp	x0, .LANCHOR33
6554	stp	x23, x24, [sp, 48]
6555	str	w1, [x29, 140]
6556	mov	x24, x2
6557	ldrb	w19, [x0, #:lo12:.LANCHOR33]
6558	adrp	x0, .LANCHOR16
6559	stp	x25, x26, [sp, 64]
6560	mov	x25, x3
6561	ldrb	w1, [x0, #:lo12:.LANCHOR16]
6562	stp	x21, x22, [sp, 32]
6563	stp	x27, x28, [sp, 80]
6564	str	x0, [x29, 128]
6565	cbnz	w1, .L960
6566	add	w19, w19, w19, lsl 1
6567	asr	w19, w19, 2
6568.L961:
6569	adrp	x21, .LANCHOR0
6570	add	x21, x21, :lo12:.LANCHOR0
6571	add	x21, x21, x20, sxtw 4
6572	mov	w23, 0
6573	mov	w28, 137
6574.L971:
6575	mov	w0, w20
6576	bl	NandcWaitFlashReady
6577	ldrb	w4, [x21, 8]
6578	adrp	x7, .LANCHOR149
6579	ldr	x8, [x21]
6580	add	x7, x7, :lo12:.LANCHOR149
6581	mov	w22, 0
6582	mov	w26, -1
6583	add	x27, x8, x4, lsl 8
6584.L962:
6585	ldrb	w0, [x7]
6586	cmp	w22, w0
6587	bcc	.L966
6588.L965:
6589	add	x4, x8, x4, lsl 8
6590	mov	w0, 239
6591	str	x4, [x29, 120]
6592	str	w0, [x4, 2056]
6593	mov	x0, 200
6594	str	w28, [x4, 2052]
6595	bl	udelay
6596	ldr	x4, [x29, 120]
6597	cmp	w26, w19
6598	str	wzr, [x4, 2048]
6599	str	wzr, [x4, 2048]
6600	str	wzr, [x4, 2048]
6601	str	wzr, [x4, 2048]
6602	bcc	.L967
6603	cmn	w26, #1
6604	mov	w0, 256
6605	csel	w26, w26, w0, eq
6606.L967:
6607	cmp	w26, 256
6608	ccmn	w26, #1, 4, ne
6609	bne	.L968
6610	ldr	w2, [x29, 140]
6611	adrp	x0, .LC13
6612	mov	w4, w26
6613	mov	w3, w22
6614	mov	w1, w22
6615	add	x0, x0, :lo12:.LC13
6616	bl	printf
6617	cbnz	w23, .L969
6618	ldr	x0, [x29, 128]
6619	ldrb	w0, [x0, #:lo12:.LANCHOR16]
6620	cbz	w0, .L959
6621	cmn	w26, #1
6622	bne	.L959
6623	mov	w1, 3
6624	mov	w0, w20
6625	mov	w23, 1
6626	bl	micron_auto_read_calibration_config
6627	b	.L971
6628.L960:
6629	mov	w0, 3
6630	sdiv	w19, w19, w0
6631	b	.L961
6632.L966:
6633	mov	w0, 239
6634	str	w0, [x27, 2056]
6635	str	w28, [x27, 2052]
6636	mov	x0, 200
6637	stp	x4, x7, [x29, 96]
6638	str	x8, [x29, 112]
6639	bl	udelay
6640	add	w10, w22, 1
6641	str	w10, [x27, 2048]
6642	str	wzr, [x27, 2048]
6643	mov	x3, x25
6644	ldr	w1, [x29, 140]
6645	mov	x2, x24
6646	str	wzr, [x27, 2048]
6647	mov	w0, w20
6648	str	wzr, [x27, 2048]
6649	str	w10, [x29, 120]
6650	bl	FlashReadRawPage
6651	cmn	w0, #1
6652	ldr	w10, [x29, 120]
6653	ldp	x4, x7, [x29, 96]
6654	ldr	x8, [x29, 112]
6655	beq	.L963
6656	cmn	w26, #1
6657	csel	w26, w26, w0, ne
6658	cmp	w0, w19
6659	bcc	.L973
6660	mov	x25, 0
6661	mov	x24, 0
6662.L963:
6663	mov	w22, w10
6664	b	.L962
6665.L973:
6666	mov	w26, w0
6667	mov	x25, 0
6668	mov	x24, 0
6669	b	.L965
6670.L969:
6671	mov	w0, w20
6672	mov	w1, 0
6673	bl	micron_auto_read_calibration_config
6674	cmn	w26, #1
6675	mov	w0, 256
6676	csel	w26, w26, w0, eq
6677.L959:
6678	mov	w0, w26
6679	ldp	x19, x20, [sp, 16]
6680	ldp	x21, x22, [sp, 32]
6681	ldp	x23, x24, [sp, 48]
6682	ldp	x25, x26, [sp, 64]
6683	ldp	x27, x28, [sp, 80]
6684	ldp	x29, x30, [sp], 144
6685	ret
6686.L968:
6687	cbz	w23, .L959
6688	mov	w1, 0
6689	mov	w0, w20
6690	mov	w26, 256
6691	bl	micron_auto_read_calibration_config
6692	b	.L959
6693	.size	MicronReadRetrial, .-MicronReadRetrial
6694	.section	.text.HynixReadRetrial,"ax",@progbits
6695	.align	2
6696	.global	HynixReadRetrial
6697	.type	HynixReadRetrial, %function
6698HynixReadRetrial:
6699	stp	x29, x30, [sp, -128]!
6700	add	x29, sp, 0
6701	stp	x19, x20, [sp, 16]
6702	adrp	x19, .LANCHOR20
6703	stp	x27, x28, [sp, 80]
6704	and	x28, x0, 255
6705	add	x0, x19, :lo12:.LANCHOR20
6706	stp	x23, x24, [sp, 48]
6707	stp	x21, x22, [sp, 32]
6708	mov	w22, w1
6709	stp	x25, x26, [sp, 64]
6710	adrp	x25, .LANCHOR7
6711	add	x1, x0, x28
6712	mov	x20, x28
6713	ldrb	w21, [x0, 2]
6714	mov	x23, x2
6715	ldr	x0, [x25, #:lo12:.LANCHOR7]
6716	mov	x24, x3
6717	ldrb	w26, [x1, 12]
6718	ldrb	w0, [x0, 19]
6719	sub	w0, w0, #7
6720	and	w0, w0, 255
6721	cmp	w0, 1
6722	bhi	.L985
6723	ldrb	w26, [x1, 20]
6724.L985:
6725	mov	w0, w20
6726	bl	NandcWaitFlashReady
6727	add	x6, x19, :lo12:.LANCHOR20
6728	adrp	x5, .LANCHOR33
6729	add	x7, x6, 4
6730	add	x5, x5, :lo12:.LANCHOR33
6731	mov	w4, 0
6732	mov	w27, -1
6733.L986:
6734	cmp	w4, w21
6735	bcc	.L991
6736.L990:
6737	ldr	x0, [x25, #:lo12:.LANCHOR7]
6738	add	x19, x19, :lo12:.LANCHOR20
6739	add	x19, x19, x28
6740	ldrb	w0, [x0, 19]
6741	sub	w0, w0, #7
6742	and	w0, w0, 255
6743	cmp	w0, 1
6744	bhi	.L992
6745	strb	w26, [x19, 20]
6746.L993:
6747	adrp	x0, .LANCHOR33
6748	ldrb	w0, [x0, #:lo12:.LANCHOR33]
6749	add	w0, w0, w0, lsl 1
6750	cmp	w27, w0, lsr 2
6751	bcc	.L984
6752	cmn	w27, #1
6753	mov	w0, 256
6754	csel	w27, w27, w0, eq
6755.L984:
6756	mov	w0, w27
6757	ldp	x19, x20, [sp, 16]
6758	ldp	x21, x22, [sp, 32]
6759	ldp	x23, x24, [sp, 48]
6760	ldp	x25, x26, [sp, 64]
6761	ldp	x27, x28, [sp, 80]
6762	ldp	x29, x30, [sp], 128
6763	ret
6764.L991:
6765	add	w26, w26, 1
6766	ldrb	w1, [x6, 1]
6767	and	w26, w26, 255
6768	mov	x2, x7
6769	cmp	w21, w26
6770	str	x5, [x29, 96]
6771	csel	w26, w26, wzr, hi
6772	str	w4, [x29, 108]
6773	stp	x7, x6, [x29, 112]
6774	mov	w3, w26
6775	mov	w0, w20
6776	bl	HynixSetRRPara
6777	mov	x3, x24
6778	mov	x2, x23
6779	mov	w1, w22
6780	mov	w0, w20
6781	bl	FlashReadRawPage
6782	cmn	w0, #1
6783	ldr	w4, [x29, 108]
6784	ldr	x5, [x29, 96]
6785	ldp	x7, x6, [x29, 112]
6786	beq	.L988
6787	ldrb	w1, [x5]
6788	cmn	w27, #1
6789	csel	w27, w27, w0, ne
6790	add	w1, w1, w1, lsl 1
6791	cmp	w0, w1, lsr 2
6792	bcc	.L995
6793	mov	x24, 0
6794	mov	x23, 0
6795.L988:
6796	add	w4, w4, 1
6797	b	.L986
6798.L995:
6799	mov	w27, w0
6800	b	.L990
6801.L992:
6802	strb	w26, [x19, 12]
6803	b	.L993
6804	.size	HynixReadRetrial, .-HynixReadRetrial
6805	.section	.text.samsung_read_retrial,"ax",@progbits
6806	.align	2
6807	.type	samsung_read_retrial, %function
6808samsung_read_retrial:
6809	stp	x29, x30, [sp, -112]!
6810	add	x29, sp, 0
6811	stp	x21, x22, [sp, 32]
6812	and	w22, w0, 255
6813	stp	x23, x24, [sp, 48]
6814	mov	w0, w22
6815	stp	x19, x20, [sp, 16]
6816	mov	x23, x2
6817	stp	x25, x26, [sp, 64]
6818	mov	x24, x3
6819	mov	w25, w1
6820	stp	x27, x28, [sp, 80]
6821	bl	NandcWaitFlashReady
6822	sbfiz	x1, x22, 4, 32
6823	adrp	x0, .LANCHOR0
6824	add	x0, x0, :lo12:.LANCHOR0
6825	add	x2, x0, x1
6826	ldr	x0, [x0, x1]
6827	adrp	x1, .LANCHOR24
6828	ldrb	w19, [x2, 8]
6829	ldrb	w1, [x1, #:lo12:.LANCHOR24]
6830	cbnz	w1, .L1003
6831	adrp	x27, .LANCHOR150
6832	adrp	x28, .LANCHOR33
6833	add	x19, x0, x19, lsl 8
6834	add	x27, x27, :lo12:.LANCHOR150
6835	add	x28, x28, :lo12:.LANCHOR33
6836	mov	x21, 0
6837	mov	w20, -1
6838	mov	w4, 239
6839.L1007:
6840	str	w4, [x19, 2056]
6841	mov	w0, 141
6842	str	w0, [x19, 2052]
6843	add	x0, x27, x21
6844	str	w4, [x29, 108]
6845	mov	x3, x24
6846	mov	x2, x23
6847	mov	w1, w25
6848	ldrsb	w0, [x0, 1]
6849	add	w26, w21, 1
6850	str	w0, [x19, 2048]
6851	mov	w0, w22
6852	str	wzr, [x19, 2048]
6853	str	wzr, [x19, 2048]
6854	str	wzr, [x19, 2048]
6855	bl	FlashReadRawPage
6856	cmn	w0, #1
6857	ldr	w4, [x29, 108]
6858	beq	.L1004
6859	ldrb	w1, [x28]
6860	cmn	w20, #1
6861	csel	w20, w20, w0, ne
6862	add	w1, w1, w1, lsl 1
6863	cmp	w0, w1, lsr 2
6864	bcc	.L1015
6865	mov	x24, 0
6866	mov	x23, 0
6867.L1004:
6868	add	x21, x21, 1
6869	cmp	x21, 25
6870	bne	.L1007
6871	mov	w26, 26
6872.L1006:
6873	mov	w0, 239
6874	str	w0, [x19, 2056]
6875	mov	w0, 141
6876.L1031:
6877	str	w0, [x19, 2052]
6878	adrp	x0, .LANCHOR33
6879	str	wzr, [x19, 2048]
6880	str	wzr, [x19, 2048]
6881	str	wzr, [x19, 2048]
6882	str	wzr, [x19, 2048]
6883	ldrb	w0, [x0, #:lo12:.LANCHOR33]
6884	add	w0, w0, w0, lsl 1
6885	cmp	w20, w0, lsr 2
6886	bcc	.L1013
6887	cmn	w20, #1
6888	mov	w0, 256
6889	csel	w20, w20, w0, eq
6890.L1013:
6891	cmp	w20, 256
6892	ccmn	w20, #1, 4, ne
6893	bne	.L1014
6894	adrp	x0, .LC14
6895	mov	w4, w20
6896	mov	w3, w26
6897	mov	w2, w25
6898	mov	w1, w26
6899	add	x0, x0, :lo12:.LC14
6900	bl	printf
6901.L1014:
6902	mov	w0, w22
6903	bl	NandcWaitFlashReady
6904	mov	w0, w20
6905	ldp	x19, x20, [sp, 16]
6906	ldp	x21, x22, [sp, 32]
6907	ldp	x23, x24, [sp, 48]
6908	ldp	x25, x26, [sp, 64]
6909	ldp	x27, x28, [sp, 80]
6910	ldp	x29, x30, [sp], 112
6911	ret
6912.L1015:
6913	mov	w20, w0
6914	b	.L1006
6915.L1003:
6916	adrp	x21, .LANCHOR151
6917	add	x21, x21, :lo12:.LANCHOR151
6918	adrp	x27, .LANCHOR33
6919	add	x21, x21, 4
6920	add	x19, x0, x19, lsl 8
6921	add	x27, x27, :lo12:.LANCHOR33
6922	mov	w20, -1
6923	mov	w26, 1
6924	mov	w4, 239
6925	mov	w28, 137
6926.L1012:
6927	str	w4, [x19, 2056]
6928	mov	x3, x24
6929	str	w28, [x19, 2052]
6930	mov	x2, x23
6931	str	w4, [x29, 108]
6932	mov	w1, w25
6933	ldrb	w0, [x21]
6934	str	w0, [x19, 2048]
6935	ldrb	w0, [x21, 1]
6936	str	w0, [x19, 2048]
6937	ldrb	w0, [x21, 2]
6938	str	w0, [x19, 2048]
6939	ldrb	w0, [x21, 3]
6940	str	w0, [x19, 2048]
6941	mov	w0, w22
6942	bl	FlashReadRawPage
6943	cmn	w0, #1
6944	ldr	w4, [x29, 108]
6945	beq	.L1009
6946	ldrb	w1, [x27]
6947	cmn	w20, #1
6948	csel	w20, w20, w0, ne
6949	add	w1, w1, w1, lsl 1
6950	cmp	w0, w1, lsr 2
6951	bcc	.L1016
6952	mov	x24, 0
6953	mov	x23, 0
6954.L1009:
6955	add	w26, w26, 1
6956	add	x21, x21, 4
6957	cmp	w26, 26
6958	bne	.L1012
6959.L1011:
6960	mov	w0, 239
6961	str	w0, [x19, 2056]
6962	mov	w0, 137
6963	b	.L1031
6964.L1016:
6965	mov	w20, w0
6966	b	.L1011
6967	.size	samsung_read_retrial, .-samsung_read_retrial
6968	.section	.text.FlashProgPage,"ax",@progbits
6969	.align	2
6970	.global	FlashProgPage
6971	.type	FlashProgPage, %function
6972FlashProgPage:
6973	stp	x29, x30, [sp, -64]!
6974	add	x29, sp, 0
6975	stp	x19, x20, [sp, 16]
6976	mov	w20, w1
6977	stp	x21, x22, [sp, 32]
6978	adrp	x1, .LANCHOR31+9
6979	str	x23, [sp, 48]
6980	mov	x22, x2
6981	ldrb	w21, [x1, #:lo12:.LANCHOR31+9]
6982	ands	w19, w0, 255
6983	mov	x23, x3
6984	bne	.L1033
6985	adrp	x0, .LANCHOR3
6986	adrp	x1, .LANCHOR4
6987	ldrb	w0, [x0, #:lo12:.LANCHOR3]
6988	ldr	w1, [x1, #:lo12:.LANCHOR4]
6989	mul	w0, w0, w1
6990	cmp	w0, w20
6991	bls	.L1033
6992	adrp	x0, .LANCHOR2
6993	ldrb	w0, [x0, #:lo12:.LANCHOR2]
6994	cmp	w0, 0
6995	mov	w0, 4
6996	csel	w21, w21, w0, eq
6997.L1033:
6998	mov	w0, w19
6999	bl	NandcWaitFlashReady
7000	mov	w0, w19
7001	bl	NandcFlashCs
7002	mov	w1, w20
7003	mov	w0, w19
7004	bl	FlashProgFirstCmd
7005	mov	x4, x23
7006	mov	x3, x22
7007	mov	w2, w21
7008	mov	w1, 1
7009	mov	w0, w19
7010	bl	NandcXferData
7011	mov	w1, w20
7012	mov	w0, w19
7013	bl	FlashProgSecondCmd
7014	mov	w0, w19
7015	bl	NandcWaitFlashReady
7016	mov	w1, w20
7017	mov	w0, w19
7018	bl	FlashReadStatus
7019	mov	w2, w0
7020	mov	w0, w19
7021	bl	NandcFlashDeCs
7022	ldr	x23, [sp, 48]
7023	and	w0, w2, 1
7024	ldp	x19, x20, [sp, 16]
7025	ldp	x21, x22, [sp, 32]
7026	ldp	x29, x30, [sp], 64
7027	ret
7028	.size	FlashProgPage, .-FlashProgPage
7029	.section	.text.FlashPageProgMsbFFData,"ax",@progbits
7030	.align	2
7031	.global	FlashPageProgMsbFFData
7032	.type	FlashPageProgMsbFFData, %function
7033FlashPageProgMsbFFData:
7034	stp	x29, x30, [sp, -80]!
7035	add	x29, sp, 0
7036	stp	x23, x24, [sp, 48]
7037	and	w23, w0, 255
7038	adrp	x0, .LANCHOR16
7039	stp	x19, x20, [sp, 16]
7040	stp	x21, x22, [sp, 32]
7041	and	w19, w2, 65535
7042	ldrb	w0, [x0, #:lo12:.LANCHOR16]
7043	str	x25, [sp, 64]
7044	cbz	w0, .L1037
7045	adrp	x0, .LANCHOR29
7046	ldr	w0, [x0, #:lo12:.LANCHOR29]
7047	cbnz	w0, .L1036
7048.L1037:
7049	adrp	x2, .LANCHOR7
7050	mov	x20, x2
7051	ldr	x0, [x2, #:lo12:.LANCHOR7]
7052	ldrb	w0, [x0, 19]
7053	sub	w0, w0, #5
7054	and	w3, w0, 255
7055	cmp	w3, 63
7056	bhi	.L1036
7057	mov	x2, 16391
7058	movk	x2, 0x4000, lsl 16
7059	movk	x2, 0x2000, lsl 32
7060	movk	x2, 0x8000, lsl 48
7061	lsr	x0, x2, x3
7062	tbz	x0, 0, .L1036
7063	adrp	x21, .LANCHOR123
7064	mov	w22, w1
7065	add	x21, x21, :lo12:.LANCHOR123
7066	mov	w25, 65535
7067	adrp	x24, .LANCHOR152
7068.L1039:
7069	ldr	x0, [x20, #:lo12:.LANCHOR7]
7070	ldrh	w0, [x0, 10]
7071	cmp	w0, w19
7072	bhi	.L1040
7073.L1036:
7074	ldp	x19, x20, [sp, 16]
7075	ldp	x21, x22, [sp, 32]
7076	ldp	x23, x24, [sp, 48]
7077	ldr	x25, [sp, 64]
7078	ldp	x29, x30, [sp], 80
7079	ret
7080.L1040:
7081	ldrh	w0, [x21, w19, sxtw 1]
7082	cmp	w0, w25
7083	bne	.L1036
7084	ldr	x0, [x24, #:lo12:.LANCHOR152]
7085	mov	w2, 32768
7086	mov	w1, 255
7087	bl	ftl_memset
7088	ldr	x3, [x24, #:lo12:.LANCHOR152]
7089	add	w1, w19, w22
7090	add	w19, w19, 1
7091	mov	w0, w23
7092	mov	x2, x3
7093	and	w19, w19, 65535
7094	bl	FlashProgPage
7095	b	.L1039
7096	.size	FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
7097	.section	.text.FlashLoadPhyInfo,"ax",@progbits
7098	.align	2
7099	.global	FlashLoadPhyInfo
7100	.type	FlashLoadPhyInfo, %function
7101FlashLoadPhyInfo:
7102	stp	x29, x30, [sp, -128]!
7103	mov	w0, 60
7104	add	x29, sp, 0
7105	stp	x21, x22, [sp, 32]
7106	adrp	x21, .LANCHOR4
7107	adrp	x22, .LANCHOR154
7108	stp	x19, x20, [sp, 16]
7109	strb	w0, [x29, 120]
7110	mov	w0, 40
7111	strb	w0, [x29, 121]
7112	mov	w0, 24
7113	strb	w0, [x29, 122]
7114	mov	w0, 16
7115	strb	w0, [x29, 123]
7116	adrp	x20, .LANCHOR153
7117	ldr	w0, [x21, #:lo12:.LANCHOR4]
7118	mov	w19, 0
7119	stp	x23, x24, [sp, 48]
7120	adrp	x24, .LANCHOR155
7121	str	w0, [x29, 108]
7122	mov	w23, -1
7123	ldr	x0, [x22, #:lo12:.LANCHOR154]
7124	stp	x25, x26, [sp, 64]
7125	adrp	x25, .LANCHOR31
7126	str	x0, [x20, #:lo12:.LANCHOR153]
7127	mov	w26, 4
7128	stp	x27, x28, [sp, 80]
7129	add	x25, x25, :lo12:.LANCHOR31
7130	str	wzr, [x24, #:lo12:.LANCHOR155]
7131	mov	w0, 0
7132	bl	flash_enter_slc_mode
7133.L1046:
7134	add	w28, w19, 1
7135	mov	x27, 0
7136.L1048:
7137	add	x0, x29, 120
7138	ldrb	w0, [x0, x27]
7139	bl	FlashBchSel
7140	ldr	x2, [x22, #:lo12:.LANCHOR154]
7141	mov	x3, 0
7142	mov	w1, w19
7143	mov	w0, 0
7144	bl	FlashReadRawPage
7145	cmn	w0, #1
7146	bne	.L1047
7147	ldr	x2, [x22, #:lo12:.LANCHOR154]
7148	mov	x3, 0
7149	mov	w1, w28
7150	mov	w0, 0
7151	bl	FlashReadRawPage
7152	cmn	w0, #1
7153	bne	.L1047
7154	add	x27, x27, 1
7155	cmp	x27, 4
7156	bne	.L1048
7157.L1049:
7158	ldr	w0, [x29, 108]
7159	subs	w26, w26, #1
7160	add	w19, w19, w0
7161	bne	.L1046
7162	b	.L1054
7163.L1050:
7164	mov	w1, 2036
7165	add	x0, x6, 12
7166	bl	js_hash
7167	ldr	w1, [x6, 8]
7168	cmp	w1, w0
7169	bne	.L1056
7170	add	x1, x6, 160
7171	mov	w2, 32
7172	mov	x0, x25
7173	bl	ftl_memcpy
7174	ldr	x1, [x20, #:lo12:.LANCHOR153]
7175	mov	w2, 32
7176	adrp	x0, .LANCHOR8
7177	add	x0, x0, :lo12:.LANCHOR8
7178	add	x1, x1, 192
7179	bl	ftl_memcpy
7180	ldr	x1, [x20, #:lo12:.LANCHOR153]
7181	mov	w2, 852
7182	adrp	x0, .LANCHOR20
7183	add	x0, x0, :lo12:.LANCHOR20
7184	add	x1, x1, 224
7185	bl	ftl_memcpy
7186	ldrh	w0, [x25, 10]
7187	bl	FlashBlockAlignInit
7188	str	w19, [x24, #:lo12:.LANCHOR155]
7189	ldr	x1, [x20, #:lo12:.LANCHOR153]
7190	adrp	x0, .LANCHOR30
7191	ldr	w2, [x1, 1076]
7192	strb	w2, [x0, #:lo12:.LANCHOR30]
7193	ldr	w0, [x21, #:lo12:.LANCHOR4]
7194	adrp	x2, .LANCHOR156
7195	udiv	w0, w19, w0
7196	add	w0, w0, 1
7197	cmp	w0, 1
7198	bls	.L1052
7199.L1059:
7200	str	w0, [x2, #:lo12:.LANCHOR156]
7201	adrp	x0, .LANCHOR157
7202	ldrh	w1, [x1, 14]
7203	mov	w23, 0
7204	strb	w1, [x0, #:lo12:.LANCHOR157]
7205	b	.L1049
7206.L1052:
7207	mov	w0, 2
7208	b	.L1059
7209.L1056:
7210	mov	w23, -1
7211	b	.L1049
7212.L1047:
7213	ldr	x6, [x20, #:lo12:.LANCHOR153]
7214	mov	w1, 20036
7215	movk	w1, 0x4e41, lsl 16
7216	ldr	w0, [x6]
7217	cmp	w0, w1
7218	bne	.L1049
7219	cbnz	w23, .L1050
7220	ldr	w0, [x21, #:lo12:.LANCHOR4]
7221	udiv	w19, w19, w0
7222	adrp	x0, .LANCHOR156
7223	add	w19, w19, 1
7224	str	w19, [x0, #:lo12:.LANCHOR156]
7225.L1054:
7226	mov	w0, 0
7227	bl	flash_exit_slc_mode
7228	mov	w0, w23
7229	ldp	x19, x20, [sp, 16]
7230	ldp	x21, x22, [sp, 32]
7231	ldp	x23, x24, [sp, 48]
7232	ldp	x25, x26, [sp, 64]
7233	ldp	x27, x28, [sp, 80]
7234	ldp	x29, x30, [sp], 128
7235	ret
7236	.size	FlashLoadPhyInfo, .-FlashLoadPhyInfo
7237	.section	.text.FlashSavePhyInfo,"ax",@progbits
7238	.align	2
7239	.global	FlashSavePhyInfo
7240	.type	FlashSavePhyInfo, %function
7241FlashSavePhyInfo:
7242	stp	x29, x30, [sp, -96]!
7243	add	x29, sp, 0
7244	stp	x21, x22, [sp, 32]
7245	adrp	x21, .LANCHOR154
7246	stp	x19, x20, [sp, 16]
7247	adrp	x19, .LANCHOR153
7248	ldr	x0, [x21, #:lo12:.LANCHOR154]
7249	mov	w22, 0
7250	str	x0, [x19, #:lo12:.LANCHOR153]
7251	mov	w20, 0
7252	adrp	x0, .LANCHOR158
7253	stp	x23, x24, [sp, 48]
7254	stp	x27, x28, [sp, 80]
7255	adrp	x24, .LANCHOR152
7256	ldrb	w0, [x0, #:lo12:.LANCHOR158]
7257	adrp	x23, .LANCHOR4
7258	stp	x25, x26, [sp, 64]
7259	mov	w25, 20036
7260	movk	w25, 0x4e41, lsl 16
7261	adrp	x27, .LANCHOR16
7262	add	x28, x23, :lo12:.LANCHOR4
7263	add	x27, x27, :lo12:.LANCHOR16
7264	bl	FlashBchSel
7265	ldr	x0, [x21, #:lo12:.LANCHOR154]
7266	mov	w2, 2048
7267	mov	w1, 0
7268	bl	ftl_memset
7269	ldr	x0, [x19, #:lo12:.LANCHOR153]
7270	adrp	x1, .LANCHOR26
7271	mov	w2, 32
7272	add	x0, x0, 16
7273	str	w25, [x0, -16]
7274	ldrb	w1, [x1, #:lo12:.LANCHOR26]
7275	strh	w1, [x0, -4]
7276	adrp	x1, .LANCHOR3
7277	ldrb	w1, [x1, #:lo12:.LANCHOR3]
7278	strh	w1, [x0, -2]
7279	adrp	x1, .LANCHOR30
7280	ldrb	w1, [x1, #:lo12:.LANCHOR30]
7281	str	w1, [x0, 1060]
7282	adrp	x1, .LANCHOR22
7283	add	x1, x1, :lo12:.LANCHOR22
7284	bl	ftl_memcpy
7285	ldr	x0, [x19, #:lo12:.LANCHOR153]
7286	mov	w2, 8
7287	adrp	x1, .LANCHOR27
7288	add	x1, x1, :lo12:.LANCHOR27
7289	add	x0, x0, 80
7290	bl	ftl_memcpy
7291	ldr	x0, [x19, #:lo12:.LANCHOR153]
7292	mov	w2, 32
7293	adrp	x1, .LANCHOR18
7294	add	x1, x1, :lo12:.LANCHOR18
7295	add	x0, x0, 96
7296	bl	ftl_memcpy
7297	ldr	x0, [x19, #:lo12:.LANCHOR153]
7298	mov	w2, 32
7299	adrp	x1, .LANCHOR31
7300	add	x1, x1, :lo12:.LANCHOR31
7301	add	x0, x0, 160
7302	bl	ftl_memcpy
7303	ldr	x0, [x19, #:lo12:.LANCHOR153]
7304	mov	w2, 32
7305	adrp	x1, .LANCHOR8
7306	add	x1, x1, :lo12:.LANCHOR8
7307	add	x0, x0, 192
7308	bl	ftl_memcpy
7309	ldr	x0, [x19, #:lo12:.LANCHOR153]
7310	mov	w2, 852
7311	adrp	x1, .LANCHOR20
7312	add	x1, x1, :lo12:.LANCHOR20
7313	add	x0, x0, 224
7314	bl	ftl_memcpy
7315	ldr	x6, [x19, #:lo12:.LANCHOR153]
7316	mov	w1, 2036
7317	add	x0, x6, 12
7318	bl	js_hash
7319	str	w0, [x6, 8]
7320	mov	w0, 1592
7321	str	w0, [x6, 4]
7322	ldr	x0, [x24, #:lo12:.LANCHOR152]
7323	str	x0, [x19, #:lo12:.LANCHOR153]
7324	mov	w0, 0
7325	bl	flash_enter_slc_mode
7326.L1066:
7327	ldr	w1, [x23, #:lo12:.LANCHOR4]
7328	mov	w2, 0
7329	mov	w0, 0
7330	mul	w1, w20, w1
7331	bl	FlashEraseBlock
7332	ldrb	w0, [x27]
7333	cbz	w0, .L1061
7334	mov	w26, 0
7335.L1062:
7336	ldr	w1, [x28]
7337	mov	x3, 0
7338	ldr	x2, [x21, #:lo12:.LANCHOR154]
7339	mov	w0, 0
7340	madd	w1, w20, w1, w26
7341	add	w26, w26, 1
7342	bl	FlashProgPage
7343	cmp	w26, 10
7344	bne	.L1062
7345.L1063:
7346	ldr	w1, [x28]
7347	mov	x3, 0
7348	ldr	x2, [x24, #:lo12:.LANCHOR152]
7349	mov	w0, 0
7350	mul	w1, w20, w1
7351	bl	FlashReadRawPage
7352	cmn	w0, #1
7353	add	w7, w20, 1
7354	beq	.L1064
7355	ldr	x6, [x19, #:lo12:.LANCHOR153]
7356	ldr	w0, [x6]
7357	cmp	w0, w25
7358	bne	.L1064
7359	mov	w1, 2036
7360	add	x0, x6, 12
7361	bl	js_hash
7362	ldr	w1, [x6, 8]
7363	cmp	w1, w0
7364	bne	.L1064
7365	adrp	x0, .LANCHOR156
7366	cmp	w22, 1
7367	str	w7, [x0, #:lo12:.LANCHOR156]
7368	ldr	w0, [x28]
7369	mul	w20, w0, w20
7370	adrp	x0, .LANCHOR155
7371	str	w20, [x0, #:lo12:.LANCHOR155]
7372	beq	.L1067
7373	mov	w22, 1
7374.L1064:
7375	mov	w20, w7
7376	cmp	w7, 4
7377	bne	.L1066
7378.L1065:
7379	mov	w0, 0
7380	bl	flash_exit_slc_mode
7381	cmp	w22, 0
7382	csetm	w0, eq
7383	ldp	x19, x20, [sp, 16]
7384	ldp	x21, x22, [sp, 32]
7385	ldp	x23, x24, [sp, 48]
7386	ldp	x25, x26, [sp, 64]
7387	ldp	x27, x28, [sp, 80]
7388	ldp	x29, x30, [sp], 96
7389	ret
7390.L1061:
7391	ldr	w1, [x23, #:lo12:.LANCHOR4]
7392	mov	x3, 0
7393	ldr	x2, [x21, #:lo12:.LANCHOR154]
7394	mov	w0, 0
7395	mul	w1, w20, w1
7396	bl	FlashProgPage
7397	ldr	w1, [x23, #:lo12:.LANCHOR4]
7398	mov	x3, 0
7399	ldr	x2, [x21, #:lo12:.LANCHOR154]
7400	mov	w0, 0
7401	mul	w1, w20, w1
7402	add	w1, w1, 1
7403	bl	FlashProgPage
7404	b	.L1063
7405.L1067:
7406	mov	w22, 2
7407	b	.L1065
7408	.size	FlashSavePhyInfo, .-FlashSavePhyInfo
7409	.section	.text.FlashReadIdbDataRaw,"ax",@progbits
7410	.align	2
7411	.global	FlashReadIdbDataRaw
7412	.type	FlashReadIdbDataRaw, %function
7413FlashReadIdbDataRaw:
7414	stp	x29, x30, [sp, -144]!
7415	add	x29, sp, 0
7416	stp	x23, x24, [sp, 48]
7417	mov	x23, x0
7418	mov	w0, 60
7419	stp	x25, x26, [sp, 64]
7420	strb	w0, [x29, 136]
7421	mov	w0, 40
7422	strb	w0, [x29, 137]
7423	mov	w0, 24
7424	strb	w0, [x29, 138]
7425	mov	w0, 16
7426	strb	w0, [x29, 139]
7427	adrp	x0, .LANCHOR33
7428	stp	x19, x20, [sp, 16]
7429	ldrb	w26, [x0, #:lo12:.LANCHOR33]
7430	adrp	x0, .LANCHOR29
7431	stp	x21, x22, [sp, 32]
7432	ldr	w1, [x0, #:lo12:.LANCHOR29]
7433	stp	x27, x28, [sp, 80]
7434	str	x0, [x29, 120]
7435	cbz	w1, .L1075
7436	mov	w0, 0
7437	bl	flash_enter_slc_mode
7438.L1075:
7439	adrp	x24, .LANCHOR3
7440	adrp	x22, .LANCHOR4
7441	add	x27, x29, 136
7442	add	x22, x22, :lo12:.LANCHOR4
7443	add	x28, x24, :lo12:.LANCHOR3
7444	mov	w20, -1
7445	mov	w19, 2
7446	mov	w2, 2048
7447	mov	w1, 0
7448	mov	x0, x23
7449	bl	ftl_memset
7450.L1076:
7451	ldrb	w0, [x24, #:lo12:.LANCHOR3]
7452	cmp	w19, w0
7453	bcc	.L1081
7454.L1080:
7455	mov	w0, w26
7456	bl	FlashBchSel
7457	ldr	x0, [x29, 120]
7458	ldr	w0, [x0, #:lo12:.LANCHOR29]
7459	cbz	w0, .L1074
7460	mov	w0, 0
7461	bl	flash_exit_slc_mode
7462.L1074:
7463	mov	w0, w20
7464	ldp	x19, x20, [sp, 16]
7465	ldp	x21, x22, [sp, 32]
7466	ldp	x23, x24, [sp, 48]
7467	ldp	x25, x26, [sp, 64]
7468	ldp	x27, x28, [sp, 80]
7469	ldp	x29, x30, [sp], 144
7470	ret
7471.L1081:
7472	mov	x4, 0
7473	adrp	x25, .LANCHOR154
7474.L1078:
7475	ldrb	w5, [x4, x27]
7476	add	x21, x25, :lo12:.LANCHOR154
7477	str	w5, [x29, 116]
7478	mov	w0, w5
7479	str	x4, [x29, 104]
7480	bl	FlashBchSel
7481	ldr	w1, [x22]
7482	mov	x3, 0
7483	ldr	x2, [x25, #:lo12:.LANCHOR154]
7484	mov	w0, 0
7485	mul	w1, w19, w1
7486	bl	FlashReadRawPage
7487	cmn	w0, #1
7488	ldr	w5, [x29, 116]
7489	bne	.L1077
7490	ldr	x4, [x29, 104]
7491	add	x4, x4, 1
7492	cmp	x4, 4
7493	bne	.L1078
7494.L1079:
7495	add	w19, w19, 1
7496	b	.L1076
7497.L1084:
7498	mov	w20, 0
7499	b	.L1080
7500.L1077:
7501	ldr	x0, [x21]
7502	ldr	w1, [x0]
7503	mov	w0, 35899
7504	movk	w0, 0xfcdc, lsl 16
7505	cmp	w1, w0
7506	bne	.L1079
7507	mov	w1, w5
7508	adrp	x0, .LC15
7509	add	x0, x0, :lo12:.LC15
7510	bl	printf
7511	ldr	x1, [x21]
7512	mov	w2, 2048
7513	mov	x0, x23
7514	bl	ftl_memcpy
7515	ldr	x0, [x21]
7516	ldr	w0, [x0, 512]
7517	strb	w0, [x28]
7518	adrp	x0, .LANCHOR156
7519	ldr	w1, [x0, #:lo12:.LANCHOR156]
7520	cmp	w19, w1
7521	bcs	.L1084
7522	str	w19, [x0, #:lo12:.LANCHOR156]
7523	mov	w20, 0
7524	bl	FlashSavePhyInfo
7525	b	.L1079
7526	.size	FlashReadIdbDataRaw, .-FlashReadIdbDataRaw
7527	.section	.text.idb_write_data,"ax",@progbits
7528	.align	2
7529	.global	idb_write_data
7530	.type	idb_write_data, %function
7531idb_write_data:
7532	stp	x29, x30, [sp, -240]!
7533	add	w0, w1, w3
7534	mov	w4, w1
7535	cmp	w0, 63
7536	add	x29, sp, 0
7537	stp	x19, x20, [sp, 16]
7538	stp	x21, x22, [sp, 32]
7539	stp	x23, x24, [sp, 48]
7540	stp	x25, x26, [sp, 64]
7541	stp	x27, x28, [sp, 80]
7542	bls	.L1094
7543	cmp	w1, 575
7544	bhi	.L1095
7545	adrp	x0, .LANCHOR159
7546	mov	x1, x2
7547	mov	w2, 1
7548	cmp	w4, 64
7549	str	w2, [x0, #:lo12:.LANCHOR159]
7550	adrp	x0, idb_buf
7551	bhi	.L1096
7552	mov	w2, 64
7553	sub	w4, w2, w4
7554	sub	w2, w3, w4
7555	ubfiz	x4, x4, 9, 25
7556	lsl	w2, w2, 9
7557	add	x1, x1, x4
7558	add	x0, x0, :lo12:idb_buf
7559.L1146:
7560	bl	ftl_memcpy
7561.L1129:
7562	ldp	x19, x20, [sp, 16]
7563	mov	w0, 0
7564	ldp	x21, x22, [sp, 32]
7565	ldp	x23, x24, [sp, 48]
7566	ldp	x25, x26, [sp, 64]
7567	ldp	x27, x28, [sp, 80]
7568	ldp	x29, x30, [sp], 240
7569	ret
7570.L1096:
7571	mov	w2, 576
7572	sub	w2, w2, w4
7573	cmp	w3, w2
7574	sub	w4, w4, #64
7575	csel	w2, w3, w2, ls
7576	ubfiz	x4, x4, 9, 25
7577	add	x0, x0, :lo12:idb_buf
7578	lsl	w2, w2, 9
7579	add	x0, x0, x4
7580	b	.L1146
7581.L1094:
7582	cmp	w1, 575
7583	bls	.L1129
7584.L1095:
7585	adrp	x0, .LANCHOR159
7586	str	x0, [x29, 104]
7587	ldr	w1, [x0, #:lo12:.LANCHOR159]
7588	cbz	w1, .L1129
7589	adrp	x21, .LANCHOR7
7590	adrp	x1, idb_buf+262140
7591	adrp	x25, idb_buf
7592	add	x1, x1, :lo12:idb_buf+262140
7593	ldr	x0, [x21, #:lo12:.LANCHOR7]
7594	add	x5, x25, :lo12:idb_buf
7595	mov	w2, 65535
7596	mov	w3, 4097
7597	ldrb	w20, [x0, 9]
7598	ldrh	w0, [x0, 10]
7599	mul	w20, w20, w0
7600	and	w20, w20, 65535
7601	add	w0, w20, 511
7602	udiv	w0, w0, w20
7603	str	w0, [x29, 172]
7604	mov	w0, 0
7605.L1100:
7606	ldr	w4, [x1]
7607	cbnz	w4, .L1098
7608	ldr	w4, [x5, w0, uxtw 2]
7609	add	w0, w0, 1
7610	str	w4, [x1], -4
7611	cmp	w0, w3
7612	sub	w2, w2, #1
7613	csel	w0, w0, wzr, cc
7614	cmp	w2, 4096
7615	bne	.L1100
7616.L1098:
7617	add	x0, x25, :lo12:idb_buf
7618	mov	w3, 512
7619	mov	w23, 0
7620	ldr	w1, [x0, w2, uxtw 2]
7621	adrp	x0, .LC16
7622	add	x0, x0, :lo12:.LC16
7623	bl	printf
7624	adrp	x0, .LANCHOR156
7625	ldr	w24, [x0, #:lo12:.LANCHOR156]
7626	ldr	w0, [x29, 172]
7627	mul	w19, w20, w24
7628	mul	w0, w20, w0
7629	str	w0, [x29, 136]
7630	adrp	x0, .LANCHOR17
7631	add	x0, x0, :lo12:.LANCHOR17
7632	str	x0, [x29, 160]
7633.L1101:
7634	cmp	w24, 15
7635	bls	.L1119
7636	cbnz	w23, .L1121
7637	adrp	x0, .LC18
7638	mov	w1, 0
7639	add	x0, x0, :lo12:.LC18
7640	bl	printf
7641.L1121:
7642	ldr	x0, [x29, 104]
7643	str	wzr, [x0, #:lo12:.LANCHOR159]
7644	b	.L1129
7645.L1119:
7646	adrp	x27, gp_flash_check_buf
7647	mov	x2, 512
7648	mov	w1, 0
7649	add	x0, x27, :lo12:gp_flash_check_buf
7650	bl	memset
7651	ldr	x0, [x21, #:lo12:.LANCHOR7]
7652	ldrb	w22, [x0, 9]
7653	ldrh	w26, [x0, 10]
7654	mov	w0, w19
7655	bl	FW_FlashBlockErase.constprop.42
7656	str	x27, [x29, 128]
7657	mul	w26, w22, w26
7658	and	w26, w26, 65535
7659	cmp	w26, 511
7660	bhi	.L1102
7661	add	w0, w26, w19
7662	bl	FW_FlashBlockErase.constprop.42
7663.L1102:
7664	udiv	w4, w19, w26
7665	adrp	x5, .LANCHOR16
7666	add	x5, x5, :lo12:.LANCHOR16
7667	mov	x28, 0
7668	msub	w4, w4, w26, w19
7669	sub	w26, w19, w4
7670.L1103:
7671	add	x2, x25, :lo12:idb_buf
7672	cmp	x28, 128
7673	add	x2, x2, x28, lsl 11
7674	bne	.L1107
7675	ldr	x0, [x21, #:lo12:.LANCHOR7]
7676	mov	w26, 0
7677	ldr	x1, [x29, 128]
7678	add	x27, x1, :lo12:gp_flash_check_buf
7679	adrp	x1, .LANCHOR16
7680	ldrb	w28, [x0, 9]
7681	add	x1, x1, :lo12:.LANCHOR16
7682	ldrh	w22, [x0, 10]
7683	str	x1, [x29, 96]
7684	mul	w22, w28, w22
7685	and	w0, w22, 65535
7686	udiv	w22, w19, w0
7687	msub	w22, w22, w0, w19
7688	sub	w0, w19, w22
7689	str	w0, [x29, 120]
7690	mul	w0, w22, w28
7691	ubfx	x0, x0, 2, 2
7692.L1108:
7693	cmp	w26, 511
7694	bhi	.L1115
7695	ldr	x3, [x29, 96]
7696	mov	w1, 4
7697	sub	w1, w1, w0
7698	ldr	x2, [x29, 160]
7699	and	w1, w1, 65535
7700	str	w1, [x29, 144]
7701	add	w1, w22, w26
7702	ldrb	w3, [x3]
7703	lsr	w1, w1, 2
7704	ldrh	w2, [x2, w1, sxtw 1]
7705	cbz	w3, .L1109
7706	adrp	x3, .LANCHOR122
7707	mov	w4, 12336
7708	movk	w4, 0x5638, lsl 16
7709	ldr	w3, [x3, #:lo12:.LANCHOR122]
7710	cmp	w3, w4
7711	csel	w2, w2, w1, ne
7712.L1109:
7713	ldr	w1, [x29, 120]
7714	add	w0, w0, w1
7715	adrp	x1, .LANCHOR4
7716	ldr	w1, [x1, #:lo12:.LANCHOR4]
7717	madd	w0, w28, w2, w0
7718	str	w0, [x29, 168]
7719	adrp	x0, .LANCHOR33
7720	ldrb	w0, [x0, #:lo12:.LANCHOR33]
7721	str	w0, [x29, 112]
7722	ldr	x0, [x21, #:lo12:.LANCHOR7]
7723	ldrb	w0, [x0, 9]
7724	str	w0, [x29, 140]
7725	adrp	x0, .LANCHOR15+26
7726	ldrh	w0, [x0, #:lo12:.LANCHOR15+26]
7727	mul	w0, w0, w1
7728	ldr	w1, [x29, 140]
7729	mul	w0, w0, w1
7730	ldr	w1, [x29, 168]
7731	cmp	w1, w0
7732	bcs	.L1110
7733	adrp	x0, .LANCHOR158
7734	ldrb	w0, [x0, #:lo12:.LANCHOR158]
7735	bl	FlashBchSel
7736.L1110:
7737	mov	w0, 0
7738	bl	flash_boot_enter_slc_mode
7739	ldr	w0, [x29, 168]
7740	add	x3, x29, 176
7741	ldr	w1, [x29, 140]
7742	mov	x2, x27
7743	udiv	w1, w0, w1
7744	mov	w0, 0
7745	str	w1, [x29, 168]
7746	bl	FlashReadPage
7747	mov	w1, w0
7748	cmn	w0, #1
7749	bne	.L1111
7750	adrp	x0, .LANCHOR158
7751	ldrb	w0, [x0, #:lo12:.LANCHOR158]
7752	cmp	w0, 40
7753	beq	.L1111
7754	mov	w0, 40
7755	bl	FlashBchSel
7756	ldr	w1, [x29, 168]
7757	add	x3, x29, 176
7758	mov	x2, x27
7759	mov	w0, 0
7760	bl	FlashReadPage
7761	mov	w1, w0
7762.L1111:
7763	str	w1, [x29, 168]
7764	mov	w0, 0
7765	bl	flash_boot_exit_slc_mode
7766	ldrb	w0, [x29, 112]
7767	bl	FlashBchSel
7768	ldr	w1, [x29, 168]
7769	cmn	w1, #1
7770	bne	.L1112
7771.L1115:
7772	ldr	x0, [x29, 128]
7773	add	x1, x25, :lo12:idb_buf
7774	mov	x22, 0
7775	add	x26, x0, :lo12:gp_flash_check_buf
7776.L1113:
7777	lsl	x0, x22, 2
7778	mov	w27, w22
7779	add	x28, x0, x1
7780	ldr	w2, [x0, x26]
7781	ldr	w0, [x0, x1]
7782	cmp	w2, w0
7783	beq	.L1116
7784	mov	x2, 512
7785	mov	w1, 0
7786	mov	x0, x26
7787	bl	memset
7788	ldr	w2, [x26, w27, uxtw 2]
7789	mov	w4, w22
7790	ldr	w3, [x28]
7791	mov	w1, w19
7792	adrp	x0, .LC17
7793	add	x0, x0, :lo12:.LC17
7794	bl	printf
7795	mov	w0, w19
7796	bl	FW_FlashBlockErase.constprop.42
7797	ldr	w0, [x29, 172]
7798	cmp	w0, 1
7799	bls	.L1117
7800	add	w0, w20, w19
7801	bl	FW_FlashBlockErase.constprop.42
7802.L1117:
7803	ldr	w0, [x29, 172]
7804	add	w24, w24, w0
7805	ldr	w0, [x29, 136]
7806	add	w19, w19, w0
7807	b	.L1101
7808.L1107:
7809	add	w1, w4, w28, lsl 2
7810	lsr	w1, w1, 2
7811	cbz	w1, .L1104
7812	ldr	x0, [x29, 160]
7813	add	w3, w1, 1
7814	ldrb	w6, [x5]
7815	ldrh	w0, [x0, w3, sxtw 1]
7816	cbz	w6, .L1105
7817	adrp	x6, .LANCHOR122
7818	mov	w7, 12336
7819	movk	w7, 0x5638, lsl 16
7820	ldr	w6, [x6, #:lo12:.LANCHOR122]
7821	cmp	w6, w7
7822	csel	w0, w0, w3, ne
7823.L1105:
7824	lsl	w0, w0, 2
7825	sub	w0, w0, #4
7826	str	w0, [x29, 176]
7827.L1104:
7828	mov	w0, 61424
7829	str	w0, [x29, 180]
7830	ldr	x0, [x29, 160]
7831	ldrh	w27, [x0, w1, sxtw 1]
7832	ldrb	w0, [x5]
7833	cbz	w0, .L1106
7834	adrp	x0, .LANCHOR122
7835	mov	w3, 12336
7836	movk	w3, 0x5638, lsl 16
7837	ldr	w0, [x0, #:lo12:.LANCHOR122]
7838	cmp	w0, w3
7839	csel	w27, w27, w1, ne
7840.L1106:
7841	adrp	x0, .LANCHOR33
7842	madd	w1, w22, w27, w26
7843	stp	x5, x2, [x29, 112]
7844	add	x28, x28, 1
7845	ldrb	w6, [x0, #:lo12:.LANCHOR33]
7846	adrp	x0, .LANCHOR158
7847	stp	w4, w6, [x29, 140]
7848	ldrb	w0, [x0, #:lo12:.LANCHOR158]
7849	str	w1, [x29, 168]
7850	bl	FlashBchSel
7851	mov	w0, 0
7852	bl	flash_boot_enter_slc_mode
7853	ldr	x0, [x21, #:lo12:.LANCHOR7]
7854	add	x3, x29, 176
7855	ldr	w1, [x29, 168]
7856	ldr	x2, [x29, 120]
7857	ldrb	w0, [x0, 9]
7858	udiv	w1, w1, w0
7859	mov	w0, 0
7860	bl	FlashProgPage
7861	mov	w0, 0
7862	bl	flash_boot_exit_slc_mode
7863	ldr	w6, [x29, 144]
7864	mov	w0, w6
7865	bl	FlashBchSel
7866	udiv	w1, w26, w22
7867	add	w2, w27, 1
7868	mov	w0, 0
7869	bl	FlashPageProgMsbFFData
7870	ldr	w4, [x29, 140]
7871	ldr	x5, [x29, 112]
7872	b	.L1103
7873.L1112:
7874	ldr	x0, [x29, 144]
7875	ubfiz	x0, x0, 9, 16
7876	add	x27, x27, x0
7877	ldr	w0, [x29, 144]
7878	add	w26, w0, w26
7879	mov	w0, 0
7880	and	w26, w26, 65535
7881	b	.L1108
7882.L1116:
7883	add	x22, x22, 1
7884	cmp	x22, 65536
7885	bne	.L1113
7886	add	w23, w23, 1
7887	cmp	w23, 5
7888	bls	.L1117
7889	b	.L1121
7890	.size	idb_write_data, .-idb_write_data
7891	.section	.text.ftl_memcpy32,"ax",@progbits
7892	.align	2
7893	.global	ftl_memcpy32
7894	.type	ftl_memcpy32, %function
7895ftl_memcpy32:
7896	mov	x3, 0
7897.L1148:
7898	cmp	w2, w3
7899	bhi	.L1149
7900	ret
7901.L1149:
7902	ldr	w4, [x1, x3, lsl 2]
7903	str	w4, [x0, x3, lsl 2]
7904	add	x3, x3, 1
7905	b	.L1148
7906	.size	ftl_memcpy32, .-ftl_memcpy32
7907	.section	.text.ftl_memcmp,"ax",@progbits
7908	.align	2
7909	.global	ftl_memcmp
7910	.type	ftl_memcmp, %function
7911ftl_memcmp:
7912	uxtw	x2, w2
7913	b	memcmp
7914	.size	ftl_memcmp, .-ftl_memcmp
7915	.section	.text.rknand_get_clk_rate,"ax",@progbits
7916	.align	2
7917	.global	rknand_get_clk_rate
7918	.type	rknand_get_clk_rate, %function
7919rknand_get_clk_rate:
7920	mov	w0, 19712
7921	movk	w0, 0x8d2, lsl 16
7922	ret
7923	.size	rknand_get_clk_rate, .-rknand_get_clk_rate
7924	.section	.text.ftl_malloc,"ax",@progbits
7925	.align	2
7926	.global	ftl_malloc
7927	.type	ftl_malloc, %function
7928ftl_malloc:
7929	mov	w1, 0
7930	sxtw	x0, w0
7931	b	kmalloc
7932	.size	ftl_malloc, .-ftl_malloc
7933	.section	.text.NandcInit,"ax",@progbits
7934	.align	2
7935	.global	NandcInit
7936	.type	NandcInit, %function
7937NandcInit:
7938	stp	x29, x30, [sp, -16]!
7939	adrp	x2, .LANCHOR0
7940	add	x1, x2, :lo12:.LANCHOR0
7941	adrp	x4, .LANCHOR122
7942	add	x29, sp, 0
7943	str	x0, [x2, #:lo12:.LANCHOR0]
7944	mov	w2, 1
7945	str	w2, [x1, 24]
7946	mov	w2, 2
7947	str	wzr, [x1, 8]
7948	str	w2, [x1, 40]
7949	mov	w2, 3
7950	str	x0, [x1, 16]
7951	str	w2, [x1, 56]
7952	adrp	x2, .LANCHOR160
7953	str	x0, [x1, 32]
7954	str	x0, [x1, 48]
7955	adrp	x1, .LANCHOR19
7956	str	x0, [x1, #:lo12:.LANCHOR19]
7957	ldr	w1, [x0]
7958	ubfx	x3, x1, 13, 1
7959	str	w3, [x2, #:lo12:.LANCHOR160]
7960	ldr	w2, [x0, 352]
7961	adrp	x3, .LANCHOR34
7962	and	w1, w1, 245760
7963	orr	w1, w1, 256
7964	ubfx	x2, x2, 16, 4
7965	str	w2, [x3, #:lo12:.LANCHOR34]
7966	ldr	w2, [x0, 352]
7967	str	w2, [x4, #:lo12:.LANCHOR122]
7968	cmp	w2, 2049
7969	bne	.L1154
7970	mov	w2, 8
7971	str	w2, [x3, #:lo12:.LANCHOR34]
7972.L1154:
7973	str	w1, [x0]
7974	mov	w1, 4225
7975	str	wzr, [x0, 336]
7976	str	w1, [x0, 4]
7977	mov	w1, 8322
7978	str	w1, [x0, 344]
7979	mov	w1, 6657
7980	movk	w1, 0x1a, lsl 16
7981	str	w1, [x0, 304]
7982	mov	w0, 36864
7983	bl	ftl_malloc
7984	adrp	x1, .LANCHOR161
7985	adrp	x2, .LANCHOR35
7986	str	x0, [x1, #:lo12:.LANCHOR161]
7987	add	x1, x2, :lo12:.LANCHOR35
7988	str	x0, [x2, #:lo12:.LANCHOR35]
7989	add	x0, x0, 32768
7990	str	wzr, [x1, 40]
7991	str	x0, [x1, 8]
7992	adrp	x0, .LANCHOR36
7993	ldp	x29, x30, [sp], 16
7994	str	wzr, [x0, #:lo12:.LANCHOR36]
7995	ret
7996	.size	NandcInit, .-NandcInit
7997	.section	.text.FtlMemInit,"ax",@progbits
7998	.align	2
7999	.global	FtlMemInit
8000	.type	FtlMemInit, %function
8001FtlMemInit:
8002	stp	x29, x30, [sp, -64]!
8003	adrp	x0, .LANCHOR142
8004	mov	w1, 65535
8005	add	x29, sp, 0
8006	strh	wzr, [x0, #:lo12:.LANCHOR142]
8007	adrp	x0, .LANCHOR162
8008	stp	x19, x20, [sp, 16]
8009	adrp	x19, .LANCHOR185
8010	str	wzr, [x0, #:lo12:.LANCHOR162]
8011	adrp	x0, .LANCHOR163
8012	stp	x21, x22, [sp, 32]
8013	adrp	x21, .LANCHOR38
8014	str	wzr, [x0, #:lo12:.LANCHOR163]
8015	adrp	x0, .LANCHOR164
8016	stp	x23, x24, [sp, 48]
8017	str	wzr, [x0, #:lo12:.LANCHOR164]
8018	adrp	x0, .LANCHOR165
8019	str	wzr, [x0, #:lo12:.LANCHOR165]
8020	adrp	x0, .LANCHOR166
8021	str	wzr, [x0, #:lo12:.LANCHOR166]
8022	adrp	x0, .LANCHOR167
8023	str	wzr, [x0, #:lo12:.LANCHOR167]
8024	adrp	x0, .LANCHOR168
8025	str	wzr, [x0, #:lo12:.LANCHOR168]
8026	adrp	x0, .LANCHOR169
8027	str	wzr, [x0, #:lo12:.LANCHOR169]
8028	adrp	x0, .LANCHOR170
8029	str	wzr, [x0, #:lo12:.LANCHOR170]
8030	adrp	x0, .LANCHOR171
8031	str	wzr, [x0, #:lo12:.LANCHOR171]
8032	adrp	x0, .LANCHOR172
8033	str	wzr, [x0, #:lo12:.LANCHOR172]
8034	adrp	x0, .LANCHOR173
8035	str	wzr, [x0, #:lo12:.LANCHOR173]
8036	adrp	x0, .LANCHOR81
8037	str	wzr, [x0, #:lo12:.LANCHOR81]
8038	adrp	x0, .LANCHOR174
8039	str	wzr, [x0, #:lo12:.LANCHOR174]
8040	adrp	x0, .LANCHOR175
8041	str	wzr, [x0, #:lo12:.LANCHOR175]
8042	adrp	x0, .LANCHOR176
8043	str	wzr, [x0, #:lo12:.LANCHOR176]
8044	adrp	x0, .LANCHOR177
8045	str	wzr, [x0, #:lo12:.LANCHOR177]
8046	adrp	x0, .LANCHOR178
8047	str	w1, [x0, #:lo12:.LANCHOR178]
8048	adrp	x0, .LANCHOR179
8049	adrp	x1, .LANCHOR115
8050	str	wzr, [x0, #:lo12:.LANCHOR179]
8051	adrp	x0, .LANCHOR180
8052	str	wzr, [x0, #:lo12:.LANCHOR180]
8053	adrp	x0, .LANCHOR75
8054	str	wzr, [x0, #:lo12:.LANCHOR75]
8055	mov	w0, -1
8056	strh	w0, [x1, #:lo12:.LANCHOR115]
8057	adrp	x1, .LANCHOR116
8058	strh	w0, [x1, #:lo12:.LANCHOR116]
8059	adrp	x1, .LANCHOR117
8060	strh	w0, [x1, #:lo12:.LANCHOR117]
8061	adrp	x1, .LANCHOR118
8062	strh	w0, [x1, #:lo12:.LANCHOR118]
8063	adrp	x0, .LANCHOR181
8064	mov	w1, 32
8065	strh	w1, [x0, #:lo12:.LANCHOR181]
8066	adrp	x0, .LANCHOR182
8067	mov	w1, 128
8068	strh	w1, [x0, #:lo12:.LANCHOR182]
8069	adrp	x0, .LANCHOR183
8070	mov	w1, 128
8071	strh	wzr, [x0, #:lo12:.LANCHOR183]
8072	adrp	x0, .LANCHOR119
8073	strh	wzr, [x0, #:lo12:.LANCHOR119]
8074	adrp	x0, .LANCHOR184
8075	strh	wzr, [x0, #:lo12:.LANCHOR184]
8076	adrp	x0, .LANCHOR121
8077	strh	wzr, [x0, #:lo12:.LANCHOR121]
8078	adrp	x0, .LANCHOR55
8079	ldrh	w0, [x0, #:lo12:.LANCHOR55]
8080	sdiv	w1, w1, w0
8081	ldrh	w0, [x21, #:lo12:.LANCHOR38]
8082	lsl	w0, w0, 2
8083	str	w1, [x19, #:lo12:.LANCHOR185]
8084	cmp	w1, w0
8085	bls	.L1157
8086	str	w0, [x19, #:lo12:.LANCHOR185]
8087.L1157:
8088	adrp	x20, .LANCHOR54
8089	adrp	x0, .LANCHOR72
8090	mov	w22, 56
8091	adrp	x24, .LANCHOR58
8092	str	wzr, [x0, #:lo12:.LANCHOR72]
8093	ldrh	w0, [x20, #:lo12:.LANCHOR54]
8094	lsl	w0, w0, 1
8095	bl	ftl_malloc
8096	adrp	x1, .LANCHOR112
8097	str	x0, [x1, #:lo12:.LANCHOR112]
8098	mov	w0, 12
8099	ldrh	w1, [x20, #:lo12:.LANCHOR54]
8100	mul	w0, w1, w0
8101	bl	ftl_malloc
8102	ldrh	w20, [x21, #:lo12:.LANCHOR38]
8103	adrp	x1, .LANCHOR114
8104	str	x0, [x1, #:lo12:.LANCHOR114]
8105	mul	w20, w20, w22
8106	lsl	w23, w20, 2
8107	mov	w0, w23
8108	bl	ftl_malloc
8109	adrp	x1, .LANCHOR186
8110	str	x0, [x1, #:lo12:.LANCHOR186]
8111	mov	w0, w20
8112	bl	ftl_malloc
8113	adrp	x1, .LANCHOR187
8114	str	x0, [x1, #:lo12:.LANCHOR187]
8115	mov	w0, w23
8116	bl	ftl_malloc
8117	adrp	x23, .LANCHOR57
8118	adrp	x1, .LANCHOR188
8119	str	x0, [x1, #:lo12:.LANCHOR188]
8120	mov	w0, w20
8121	bl	ftl_malloc
8122	adrp	x1, .LANCHOR79
8123	str	x0, [x1, #:lo12:.LANCHOR79]
8124	mov	w0, w20
8125	bl	ftl_malloc
8126	adrp	x1, .LANCHOR109
8127	str	x0, [x1, #:lo12:.LANCHOR109]
8128	ldr	w0, [x19, #:lo12:.LANCHOR185]
8129	mul	w0, w0, w22
8130	adrp	x22, .LANCHOR110
8131	bl	ftl_malloc
8132	ldrh	w20, [x23, #:lo12:.LANCHOR57]
8133	adrp	x1, .LANCHOR73
8134	str	x0, [x1, #:lo12:.LANCHOR73]
8135	ldrh	w0, [x21, #:lo12:.LANCHOR38]
8136	lsl	w0, w0, 1
8137	add	w0, w0, 1
8138	str	w0, [x22, #:lo12:.LANCHOR110]
8139	mov	w0, w20
8140	bl	ftl_malloc
8141	adrp	x1, .LANCHOR189
8142	str	x0, [x1, #:lo12:.LANCHOR189]
8143	mov	w0, w20
8144	bl	ftl_malloc
8145	adrp	x1, .LANCHOR190
8146	str	x0, [x1, #:lo12:.LANCHOR190]
8147	mov	w0, w20
8148	bl	ftl_malloc
8149	adrp	x1, .LANCHOR191
8150	str	x0, [x1, #:lo12:.LANCHOR191]
8151	ldr	w0, [x22, #:lo12:.LANCHOR110]
8152	mul	w0, w20, w0
8153	bl	ftl_malloc
8154	adrp	x1, .LANCHOR107
8155	str	x0, [x1, #:lo12:.LANCHOR107]
8156	ldr	w0, [x19, #:lo12:.LANCHOR185]
8157	mul	w0, w20, w0
8158	bl	ftl_malloc
8159	adrp	x1, .LANCHOR192
8160	str	x0, [x1, #:lo12:.LANCHOR192]
8161	mov	w0, w20
8162	bl	ftl_malloc
8163	adrp	x1, .LANCHOR193
8164	str	x0, [x1, #:lo12:.LANCHOR193]
8165	mov	w0, w20
8166	bl	ftl_malloc
8167	adrp	x1, .LANCHOR194
8168	str	x0, [x1, #:lo12:.LANCHOR194]
8169	mov	w0, 24
8170	ldr	w1, [x22, #:lo12:.LANCHOR110]
8171	mul	w0, w1, w0
8172	bl	ftl_malloc
8173	ldrh	w20, [x24, #:lo12:.LANCHOR58]
8174	adrp	x1, .LANCHOR106
8175	str	x0, [x1, #:lo12:.LANCHOR106]
8176	ldrh	w0, [x21, #:lo12:.LANCHOR38]
8177	adrp	x21, .LANCHOR64
8178	mul	w20, w20, w0
8179	mov	w0, w20
8180	bl	ftl_malloc
8181	adrp	x1, .LANCHOR195
8182	str	x0, [x1, #:lo12:.LANCHOR195]
8183	lsl	w0, w20, 2
8184	bl	ftl_malloc
8185	adrp	x20, .LANCHOR41
8186	adrp	x1, .LANCHOR196
8187	str	x0, [x1, #:lo12:.LANCHOR196]
8188	ldrh	w1, [x24, #:lo12:.LANCHOR58]
8189	ldr	w0, [x22, #:lo12:.LANCHOR110]
8190	mul	w0, w1, w0
8191	bl	ftl_malloc
8192	adrp	x1, .LANCHOR108
8193	str	x0, [x1, #:lo12:.LANCHOR108]
8194	ldrh	w1, [x24, #:lo12:.LANCHOR58]
8195	ldr	w0, [x19, #:lo12:.LANCHOR185]
8196	adrp	x19, .LANCHOR198
8197	mul	w0, w1, w0
8198	bl	ftl_malloc
8199	adrp	x1, .LANCHOR197
8200	str	x0, [x1, #:lo12:.LANCHOR197]
8201	ldrh	w0, [x20, #:lo12:.LANCHOR41]
8202	ubfiz	w0, w0, 1, 15
8203	strh	w0, [x19, #:lo12:.LANCHOR198]
8204	and	w0, w0, 65534
8205	bl	ftl_malloc
8206	adrp	x1, .LANCHOR140
8207	str	x0, [x1, #:lo12:.LANCHOR140]
8208	ldrh	w0, [x19, #:lo12:.LANCHOR198]
8209	add	x0, x0, 547
8210	lsr	x0, x0, 9
8211	strh	w0, [x19, #:lo12:.LANCHOR198]
8212	lsl	w0, w0, 9
8213	bl	ftl_malloc
8214	adrp	x1, .LANCHOR199
8215	str	x0, [x1, #:lo12:.LANCHOR199]
8216	adrp	x1, .LANCHOR80
8217	add	x0, x0, 32
8218	str	x0, [x1, #:lo12:.LANCHOR80]
8219	ldrh	w0, [x20, #:lo12:.LANCHOR41]
8220	lsl	w0, w0, 1
8221	bl	ftl_malloc
8222	ldr	w19, [x21, #:lo12:.LANCHOR64]
8223	adrp	x1, .LANCHOR85
8224	str	x0, [x1, #:lo12:.LANCHOR85]
8225	lsl	w19, w19, 1
8226	mov	w0, w19
8227	bl	ftl_malloc
8228	adrp	x1, .LANCHOR132
8229	str	x0, [x1, #:lo12:.LANCHOR132]
8230	mov	w0, w19
8231	bl	ftl_malloc
8232	adrp	x19, .LANCHOR61
8233	adrp	x1, .LANCHOR128
8234	str	x0, [x1, #:lo12:.LANCHOR128]
8235	ldrh	w0, [x20, #:lo12:.LANCHOR41]
8236	lsr	w0, w0, 3
8237	add	w0, w0, 4
8238	bl	ftl_malloc
8239	adrp	x1, .LANCHOR1
8240	str	x0, [x1, #:lo12:.LANCHOR1]
8241	ldrh	w0, [x19, #:lo12:.LANCHOR61]
8242	lsl	w0, w0, 1
8243	bl	ftl_malloc
8244	adrp	x1, .LANCHOR71
8245	str	x0, [x1, #:lo12:.LANCHOR71]
8246	ldrh	w0, [x19, #:lo12:.LANCHOR61]
8247	lsl	w0, w0, 1
8248	bl	ftl_malloc
8249	adrp	x1, .LANCHOR200
8250	str	x0, [x1, #:lo12:.LANCHOR200]
8251	ldrh	w0, [x19, #:lo12:.LANCHOR61]
8252	adrp	x19, .LANCHOR62
8253	lsl	w0, w0, 2
8254	bl	ftl_malloc
8255	adrp	x1, .LANCHOR201
8256	str	x0, [x1, #:lo12:.LANCHOR201]
8257	ldrh	w0, [x19, #:lo12:.LANCHOR62]
8258	lsl	w0, w0, 2
8259	bl	ftl_malloc
8260	ldrh	w2, [x19, #:lo12:.LANCHOR62]
8261	adrp	x1, .LANCHOR202
8262	str	x0, [x1, #:lo12:.LANCHOR202]
8263	mov	w1, 0
8264	lsl	w2, w2, 2
8265	bl	ftl_memset
8266	adrp	x0, .LANCHOR66
8267	ldrh	w19, [x0, #:lo12:.LANCHOR66]
8268	lsl	w19, w19, 2
8269	mov	w0, w19
8270	bl	ftl_malloc
8271	adrp	x1, .LANCHOR134
8272	str	x0, [x1, #:lo12:.LANCHOR134]
8273	mov	w0, w19
8274	bl	ftl_malloc
8275	adrp	x19, .LANCHOR67
8276	adrp	x1, .LANCHOR203
8277	str	x0, [x1, #:lo12:.LANCHOR203]
8278	ldr	w0, [x21, #:lo12:.LANCHOR64]
8279	lsl	w0, w0, 2
8280	bl	ftl_malloc
8281	adrp	x1, .LANCHOR133
8282	str	x0, [x1, #:lo12:.LANCHOR133]
8283	ldrh	w0, [x19, #:lo12:.LANCHOR67]
8284	lsl	w0, w0, 4
8285	bl	ftl_malloc
8286	adrp	x1, .LANCHOR98
8287	str	x0, [x1, #:lo12:.LANCHOR98]
8288	ldrh	w1, [x19, #:lo12:.LANCHOR67]
8289	adrp	x19, .LANCHOR126
8290	ldrh	w0, [x23, #:lo12:.LANCHOR57]
8291	mul	w0, w1, w0
8292	bl	ftl_malloc
8293	adrp	x1, .LANCHOR129
8294	str	x0, [x1, #:lo12:.LANCHOR129]
8295	mov	w0, 6
8296	ldrh	w1, [x20, #:lo12:.LANCHOR41]
8297	adrp	x20, .LANCHOR45
8298	mul	w0, w1, w0
8299	bl	ftl_malloc
8300	adrp	x1, .LANCHOR83
8301	str	x0, [x1, #:lo12:.LANCHOR83]
8302	adrp	x0, .LANCHOR51
8303	ldrh	w1, [x20, #:lo12:.LANCHOR45]
8304	ldrh	w0, [x0, #:lo12:.LANCHOR51]
8305	add	w0, w0, 31
8306	asr	w0, w0, 5
8307	strh	w0, [x19, #:lo12:.LANCHOR126]
8308	mul	w0, w1, w0
8309	lsl	w0, w0, 2
8310	bl	ftl_malloc
8311	adrp	x1, .LANCHOR76
8312	ldrh	w5, [x19, #:lo12:.LANCHOR126]
8313	add	x2, x1, :lo12:.LANCHOR76
8314	ldrh	w7, [x20, #:lo12:.LANCHOR45]
8315	add	x6, x2, 40
8316	mov	w3, w5
8317	str	x0, [x2, 32]
8318	mov	x0, 1
8319.L1158:
8320	cmp	w0, w7
8321	bcc	.L1159
8322	mov	w2, 8
8323	sub	w2, w2, w0
8324	add	x2, x2, 1
8325	add	x1, x1, :lo12:.LANCHOR76
8326	mov	x3, 0
8327.L1160:
8328	add	x3, x3, 1
8329	cmp	x2, x3
8330	bne	.L1161
8331	mov	w0, 0
8332	ldp	x19, x20, [sp, 16]
8333	ldp	x21, x22, [sp, 32]
8334	ldp	x23, x24, [sp, 48]
8335	ldp	x29, x30, [sp], 64
8336	ret
8337.L1159:
8338	ldr	x4, [x2, 32]
8339	add	w0, w0, 1
8340	add	x4, x4, x3, uxtw 2
8341	add	w3, w3, w5
8342	str	x4, [x6], 8
8343	b	.L1158
8344.L1161:
8345	add	x4, x0, x3
8346	add	x4, x1, x4, lsl 3
8347	str	xzr, [x4, 24]
8348	b	.L1160
8349	.size	FtlMemInit, .-FtlMemInit
8350	.section	.text.ftl_free,"ax",@progbits
8351	.align	2
8352	.global	ftl_free
8353	.type	ftl_free, %function
8354ftl_free:
8355	b	free
8356	.size	ftl_free, .-ftl_free
8357	.section	.text.FlashCs123Init,"ax",@progbits
8358	.align	2
8359	.global	FlashCs123Init
8360	.type	FlashCs123Init, %function
8361FlashCs123Init:
8362	ret
8363	.size	FlashCs123Init, .-FlashCs123Init
8364	.section	.text.rk_nand_de_init,"ax",@progbits
8365	.align	2
8366	.global	rk_nand_de_init
8367	.type	rk_nand_de_init, %function
8368rk_nand_de_init:
8369	b	FlashDeInit
8370	.size	rk_nand_de_init, .-rk_nand_de_init
8371	.section	.text.rk_ftl_get_capacity,"ax",@progbits
8372	.align	2
8373	.global	rk_ftl_get_capacity
8374	.type	rk_ftl_get_capacity, %function
8375rk_ftl_get_capacity:
8376	adrp	x0, .LANCHOR68
8377	ldr	w0, [x0, #:lo12:.LANCHOR68]
8378	ret
8379	.size	rk_ftl_get_capacity, .-rk_ftl_get_capacity
8380	.section	.text.rknand_print_hex,"ax",@progbits
8381	.align	2
8382	.global	rknand_print_hex
8383	.type	rknand_print_hex, %function
8384rknand_print_hex:
8385	stp	x29, x30, [sp, -96]!
8386	add	x29, sp, 0
8387	stp	x21, x22, [sp, 32]
8388	adrp	x21, .LC20
8389	stp	x23, x24, [sp, 48]
8390	mov	x22, x1
8391	stp	x25, x26, [sp, 64]
8392	adrp	x23, .LC19
8393	mov	x26, x0
8394	mov	w24, w2
8395	uxtw	x25, w3
8396	add	x23, x23, :lo12:.LC19
8397	add	x21, x21, :lo12:.LC20
8398	stp	x19, x20, [sp, 16]
8399	str	x27, [sp, 80]
8400	mov	x19, 0
8401	mov	w20, 0
8402	adrp	x27, .LC21
8403.L1168:
8404	cmp	x25, x19
8405	bne	.L1174
8406	ldp	x19, x20, [sp, 16]
8407	adrp	x1, .LC21
8408	ldp	x21, x22, [sp, 32]
8409	add	x1, x1, :lo12:.LC21
8410	ldp	x23, x24, [sp, 48]
8411	adrp	x0, .LC7
8412	ldp	x25, x26, [sp, 64]
8413	add	x0, x0, :lo12:.LC7
8414	ldr	x27, [sp, 80]
8415	ldp	x29, x30, [sp], 96
8416	b	printf
8417.L1174:
8418	cbnz	w20, .L1169
8419	mov	w2, w19
8420	mov	x1, x26
8421	mov	x0, x23
8422	bl	printf
8423.L1169:
8424	cmp	w24, 4
8425	bne	.L1170
8426	ldr	w1, [x22, x19, lsl 2]
8427.L1176:
8428	mov	x0, x21
8429	add	w20, w20, 1
8430	bl	printf
8431	cmp	w20, 15
8432	bls	.L1173
8433	mov	w20, 0
8434	add	x1, x27, :lo12:.LC21
8435	adrp	x0, .LC7
8436	add	x0, x0, :lo12:.LC7
8437	bl	printf
8438.L1173:
8439	add	x19, x19, 1
8440	b	.L1168
8441.L1170:
8442	cmp	w24, 2
8443	bne	.L1172
8444	ldrsh	w1, [x22, x19, lsl 1]
8445	b	.L1176
8446.L1172:
8447	ldrb	w1, [x22, x19]
8448	b	.L1176
8449	.size	rknand_print_hex, .-rknand_print_hex
8450	.section	.text.HynixGetReadRetryDefault,"ax",@progbits
8451	.align	2
8452	.global	HynixGetReadRetryDefault
8453	.type	HynixGetReadRetryDefault, %function
8454HynixGetReadRetryDefault:
8455	stp	x29, x30, [sp, -144]!
8456	mov	w1, -84
8457	mov	w4, -83
8458	mov	w3, -82
8459	add	x29, sp, 0
8460	stp	x19, x20, [sp, 16]
8461	adrp	x20, .LANCHOR20
8462	stp	x25, x26, [sp, 64]
8463	mov	w26, w0
8464	add	x0, x20, :lo12:.LANCHOR20
8465	stp	x21, x22, [sp, 32]
8466	stp	x23, x24, [sp, 48]
8467	cmp	w26, 2
8468	stp	x27, x28, [sp, 80]
8469	strb	w1, [x0, 4]
8470	mov	w1, -81
8471	strb	w26, [x20, #:lo12:.LANCHOR20]
8472	strb	w4, [x0, 5]
8473	strb	w3, [x0, 6]
8474	strb	w1, [x0, 7]
8475	bne	.L1178
8476	mov	w1, -89
8477	strb	w1, [x0, 4]
8478	adrp	x0, .LANCHOR204+17
8479	mov	w1, -9
8480	strb	w1, [x0, #:lo12:.LANCHOR204+17]
8481.L1243:
8482	mov	w27, 7
8483	b	.L1287
8484.L1178:
8485	cmp	w26, 3
8486	bne	.L1180
8487	mov	w1, -80
8488	strb	w1, [x0, 4]
8489	mov	w1, -79
8490	strb	w1, [x0, 5]
8491	mov	w1, -78
8492	strb	w1, [x0, 6]
8493	mov	w1, -77
8494	strb	w1, [x0, 7]
8495	mov	w1, -76
8496	strb	w1, [x0, 8]
8497	mov	w1, -75
8498	strb	w1, [x0, 9]
8499	mov	w1, -74
8500	strb	w1, [x0, 10]
8501	mov	w1, -73
8502.L1286:
8503	mov	w27, 8
8504	mov	w28, w27
8505	strb	w1, [x0, 11]
8506.L1179:
8507	sub	w0, w26, #1
8508	cmp	w0, 1
8509	bhi	.L1185
8510	adrp	x26, .LANCHOR26
8511	adrp	x0, .LANCHOR27
8512	adrp	x25, .LANCHOR0
8513	add	x26, x26, :lo12:.LANCHOR26
8514	add	x4, x0, :lo12:.LANCHOR27
8515	add	x25, x25, :lo12:.LANCHOR0
8516	mov	w24, 0
8517.L1186:
8518	ldrb	w0, [x26]
8519	cmp	w0, w24
8520	bhi	.L1192
8521.L1193:
8522	add	x20, x20, :lo12:.LANCHOR20
8523	ldp	x21, x22, [sp, 32]
8524	strb	w28, [x20, 1]
8525	strb	w27, [x20, 2]
8526	ldp	x23, x24, [sp, 48]
8527	ldp	x19, x20, [sp, 16]
8528	ldp	x25, x26, [sp, 64]
8529	ldp	x27, x28, [sp, 80]
8530	ldp	x29, x30, [sp], 144
8531	ret
8532.L1180:
8533	cmp	w26, 4
8534	bne	.L1181
8535	mov	w5, -52
8536	strb	w5, [x0, 4]
8537	mov	w5, -65
8538	strb	w5, [x0, 5]
8539	mov	w5, -86
8540	strb	w5, [x0, 6]
8541	mov	w5, -85
8542	strb	w4, [x0, 9]
8543	strb	w5, [x0, 7]
8544	mov	w5, -51
8545	strb	w3, [x0, 10]
8546	strb	w5, [x0, 8]
8547	b	.L1286
8548.L1181:
8549	cmp	w26, 5
8550	bne	.L1182
8551	mov	w1, 56
8552	strb	w1, [x0, 4]
8553	mov	w1, 57
8554	strb	w1, [x0, 5]
8555	mov	w1, 58
8556	mov	w27, 8
8557	strb	w1, [x0, 6]
8558	mov	w1, 59
8559	strb	w1, [x0, 7]
8560.L1287:
8561	mov	w28, 4
8562	b	.L1179
8563.L1182:
8564	cmp	w26, 6
8565	bne	.L1183
8566	mov	w1, 14
8567	strb	w1, [x0, 4]
8568	mov	w1, 15
8569	strb	w1, [x0, 5]
8570	mov	w1, 16
8571	mov	w27, 12
8572	strb	w1, [x0, 6]
8573	mov	w1, 17
8574	strb	w1, [x0, 7]
8575	b	.L1287
8576.L1183:
8577	cmp	w26, 7
8578	bne	.L1184
8579	mov	w1, -80
8580	strb	w1, [x0, 4]
8581	mov	w1, -79
8582	strb	w1, [x0, 5]
8583	mov	w1, -78
8584	strb	w1, [x0, 6]
8585	mov	w1, -77
8586	strb	w1, [x0, 7]
8587	mov	w1, -76
8588	strb	w1, [x0, 8]
8589	mov	w1, -75
8590	strb	w1, [x0, 9]
8591	mov	w1, -74
8592	strb	w1, [x0, 10]
8593	mov	w1, -73
8594	strb	w1, [x0, 11]
8595	mov	w1, -44
8596	mov	w27, 12
8597	strb	w1, [x0, 12]
8598	mov	w28, 10
8599	mov	w1, -43
8600	strb	w1, [x0, 13]
8601	b	.L1179
8602.L1184:
8603	cmp	w26, 8
8604	bne	.L1243
8605	mov	w1, 6
8606	strb	w1, [x0, 4]
8607	mov	w1, 7
8608	strb	w1, [x0, 5]
8609	mov	w1, 9
8610	strb	w26, [x0, 6]
8611	strb	w1, [x0, 7]
8612	mov	w27, 50
8613	mov	w1, 10
8614	mov	w28, 5
8615	strb	w1, [x0, 8]
8616	b	.L1179
8617.L1192:
8618	ldrb	w1, [x4, w24, sxtw]
8619	add	x0, x20, :lo12:.LANCHOR20
8620	mov	x21, x0
8621	mov	x22, 0
8622	ubfiz	x19, x1, 6, 8
8623	sbfiz	x1, x1, 4, 32
8624	add	x2, x25, x1
8625	add	x19, x19, 20
8626	add	x19, x0, x19
8627	ldr	x1, [x25, x1]
8628	ldrb	w23, [x2, 8]
8629	add	x23, x1, x23, lsl 8
8630	mov	w1, 55
8631.L1187:
8632	add	x0, x21, x22
8633	str	w1, [x23, 2056]
8634	str	x4, [x29, 128]
8635	str	w1, [x29, 140]
8636	ldrb	w0, [x0, 4]
8637	str	w0, [x23, 2052]
8638	mov	x0, 80
8639	bl	udelay
8640	ldr	w0, [x23, 2048]
8641	strb	w0, [x19, x22]
8642	add	x22, x22, 1
8643	cmp	w28, w22, uxtb
8644	ldr	w1, [x29, 140]
8645	ldr	x4, [x29, 128]
8646	bhi	.L1187
8647	adrp	x2, .LANCHOR204
8648	add	x2, x2, :lo12:.LANCHOR204
8649	mov	x0, 0
8650.L1190:
8651	add	x7, x19, x0
8652	add	x6, x2, x0
8653	mov	x1, 1
8654.L1189:
8655	lsl	x3, x1, 2
8656	lsl	x8, x1, 3
8657	ldrb	w10, [x19, x0]
8658	add	x1, x1, 1
8659	cmp	x1, 7
8660	ldrb	w3, [x6, x3]
8661	add	w3, w3, w10
8662	strb	w3, [x7, x8]
8663	bne	.L1189
8664	add	x0, x0, 1
8665	cmp	x0, 4
8666	bne	.L1190
8667	add	w24, w24, 1
8668	strb	wzr, [x19, 16]
8669	strb	wzr, [x19, 24]
8670	and	w24, w24, 255
8671	strb	wzr, [x19, 32]
8672	strb	wzr, [x19, 40]
8673	strb	wzr, [x19, 48]
8674	strb	wzr, [x19, 41]
8675	strb	wzr, [x19, 49]
8676	b	.L1186
8677.L1185:
8678	sub	w0, w26, #3
8679	cmp	w0, 5
8680	bhi	.L1193
8681	mul	w24, w27, w28
8682	adrp	x25, .LANCHOR26
8683	sub	w22, w28, #1
8684	mov	w21, 0
8685	and	x22, x22, 255
8686	lsl	w0, w24, 4
8687	asr	w23, w24, 1
8688	str	w0, [x29, 128]
8689	lsl	w0, w23, 1
8690	sbfiz	x24, x23, 1, 32
8691	str	w0, [x29, 140]
8692	add	x0, x25, :lo12:.LANCHOR26
8693	sub	w25, w26, #5
8694	str	x0, [x29, 120]
8695	add	x0, x22, 1
8696	str	x0, [x29, 112]
8697.L1194:
8698	ldr	x0, [x29, 120]
8699	ldrb	w0, [x0]
8700	cmp	w0, w21
8701	bls	.L1193
8702	adrp	x0, .LANCHOR27
8703	add	x0, x0, :lo12:.LANCHOR27
8704	ldrb	w22, [x0, w21, sxtw]
8705	adrp	x0, .LANCHOR0
8706	add	x0, x0, :lo12:.LANCHOR0
8707	sbfiz	x1, x22, 4, 32
8708	add	x3, x0, x1
8709	ldr	x0, [x0, x1]
8710	ldrb	w19, [x3, 8]
8711	add	x19, x0, x19, lsl 8
8712	mov	w0, 255
8713	str	w0, [x19, 2056]
8714	mov	w0, w22
8715	bl	NandcWaitFlashReady
8716	cmp	w26, 7
8717	bne	.L1195
8718	mov	x1, 28
8719	mov	w0, 160
8720	add	x3, x20, :lo12:.LANCHOR20
8721	umaddl	x0, w0, w22, x1
8722.L1288:
8723	add	x3, x3, x0
8724	mov	w0, 54
8725	str	w0, [x19, 2056]
8726	cmp	w26, 4
8727	bne	.L1198
8728	mov	w0, 255
8729	str	w0, [x19, 2052]
8730	mov	w0, 64
8731	str	w0, [x19, 2048]
8732	mov	w0, 204
8733.L1289:
8734	str	w0, [x19, 2052]
8735	mov	w0, 77
8736	b	.L1290
8737.L1195:
8738	cmp	w26, 8
8739	beq	.L1197
8740	ubfiz	x0, x22, 6, 8
8741	add	x3, x20, :lo12:.LANCHOR20
8742	add	x0, x0, 20
8743	b	.L1288
8744.L1198:
8745	cmp	w25, 1
8746	bhi	.L1200
8747	add	x0, x20, :lo12:.LANCHOR20
8748	ldrb	w0, [x0, 4]
8749	str	w0, [x19, 2052]
8750	mov	w0, 82
8751.L1290:
8752	str	w0, [x19, 2048]
8753.L1199:
8754	mov	w0, 22
8755	str	w0, [x19, 2056]
8756	mov	w0, 23
8757	str	w0, [x19, 2056]
8758	mov	w0, 4
8759	str	w0, [x19, 2056]
8760	mov	w0, 25
8761	str	w0, [x19, 2056]
8762	str	wzr, [x19, 2056]
8763	cmp	w26, 6
8764	str	wzr, [x19, 2052]
8765	str	wzr, [x19, 2052]
8766	bne	.L1201
8767	mov	w0, 31
8768	str	w0, [x19, 2052]
8769.L1202:
8770	mov	w0, 2
8771	str	w0, [x19, 2052]
8772	str	wzr, [x19, 2052]
8773.L1242:
8774	mov	w0, 48
8775	str	w0, [x19, 2056]
8776	str	x3, [x29, 104]
8777	mov	w0, w22
8778	bl	NandcWaitFlashReady
8779	cmp	w25, 1
8780	ldr	x3, [x29, 104]
8781	ccmp	w26, 8, 4, hi
8782	beq	.L1244
8783	cmp	w26, 7
8784	mov	w0, 2
8785	mov	w1, 32
8786	csel	w1, w1, w0, eq
8787.L1203:
8788	adrp	x8, .LANCHOR154
8789	mov	x7, 0
8790	ldr	x0, [x8, #:lo12:.LANCHOR154]
8791.L1204:
8792	ldr	w10, [x19, 2048]
8793	strb	w10, [x0, x7]
8794	add	x7, x7, 1
8795	cmp	w1, w7, uxtb
8796	bhi	.L1204
8797	cmp	w26, 8
8798	bne	.L1205
8799	mov	w1, 0
8800.L1207:
8801	ldrb	w7, [x0]
8802	cmp	w7, 50
8803	beq	.L1206
8804	ldrb	w7, [x0, 1]
8805	cmp	w7, 5
8806	beq	.L1206
8807	add	w1, w1, 1
8808	add	x0, x0, 4
8809	and	w1, w1, 255
8810	cmp	w1, 8
8811	bne	.L1207
8812.L1208:
8813	adrp	x0, .LC22
8814	mov	w1, 0
8815	add	x0, x0, :lo12:.LC22
8816	bl	printf
8817.L1210:
8818	b	.L1210
8819.L1200:
8820	cmp	w26, 7
8821	bne	.L1199
8822	mov	w0, 174
8823	str	w0, [x19, 2052]
8824	str	wzr, [x19, 2048]
8825	mov	w0, 176
8826	b	.L1289
8827.L1201:
8828	str	wzr, [x19, 2052]
8829	b	.L1202
8830.L1244:
8831	mov	w1, 16
8832	b	.L1203
8833.L1206:
8834	cmp	w1, 6
8835	bhi	.L1208
8836.L1209:
8837	ldr	x7, [x8, #:lo12:.LANCHOR154]
8838	mov	x0, 0
8839.L1219:
8840	ldr	w1, [x29, 128]
8841	cmp	w1, w0
8842	bgt	.L1220
8843	ldr	x1, [x8, #:lo12:.LANCHOR154]
8844	mov	w10, 8
8845	add	x8, x1, x24
8846.L1222:
8847	mov	x0, 0
8848.L1221:
8849	ldrh	w11, [x8, x0, lsl 1]
8850	mvn	w11, w11
8851	strh	w11, [x8, x0, lsl 1]
8852	add	x0, x0, 1
8853	cmp	w23, w0
8854	bgt	.L1221
8855	ldr	w0, [x29, 140]
8856	subs	w10, w10, #1
8857	add	x8, x8, x0, uxtw 1
8858	bne	.L1222
8859	mov	x10, x1
8860	mov	w11, 0
8861	mov	w16, 1
8862.L1228:
8863	mov	w0, 0
8864	mov	w8, 0
8865.L1227:
8866	mov	x14, x10
8867	lsl	w15, w16, w8
8868	mov	w13, 16
8869	mov	w12, 0
8870.L1225:
8871	ldrh	w17, [x14]
8872	add	x14, x14, x24
8873	bics	wzr, w15, w17
8874	cinc	w12, w12, eq
8875	subs	w13, w13, #1
8876	bne	.L1225
8877	cmp	w12, 8
8878	bls	.L1226
8879	orr	w0, w0, w15
8880	and	w0, w0, 65535
8881.L1226:
8882	add	w8, w8, 1
8883	cmp	w8, 16
8884	bne	.L1227
8885	strh	w0, [x10], 2
8886	add	w11, w11, 1
8887	cmp	w23, w11
8888	bgt	.L1228
8889	mov	x0, 0
8890	mov	w8, 0
8891.L1231:
8892	ldr	w10, [x1, x0]
8893	add	x0, x0, 4
8894	cmp	w10, 0
8895	cinc	w8, w8, eq
8896	cmp	x0, 32
8897	bne	.L1231
8898	cmp	w8, 7
8899	ble	.L1232
8900	mov	w3, 1024
8901	mov	w2, 1
8902	adrp	x0, .LC23
8903	add	x0, x0, :lo12:.LC23
8904	bl	rknand_print_hex
8905	adrp	x0, .LC22
8906	mov	w1, 0
8907	add	x0, x0, :lo12:.LC22
8908	bl	printf
8909.L1233:
8910	b	.L1233
8911.L1205:
8912	cmp	w26, 7
8913	bne	.L1211
8914	mov	w1, 0
8915.L1213:
8916	ldrb	w7, [x0]
8917	cmp	w7, 12
8918	beq	.L1212
8919	ldrb	w7, [x0, 1]
8920	cmp	w7, 10
8921	beq	.L1212
8922	add	w1, w1, 1
8923	add	x0, x0, 4
8924	and	w1, w1, 255
8925	cmp	w1, 8
8926	bne	.L1213
8927.L1214:
8928	adrp	x0, .LC22
8929	mov	w1, 0
8930	add	x0, x0, :lo12:.LC22
8931	bl	printf
8932.L1215:
8933	b	.L1215
8934.L1212:
8935	cmp	w1, 6
8936	bls	.L1209
8937	b	.L1214
8938.L1211:
8939	cmp	w26, 6
8940	bne	.L1209
8941	mov	x1, 0
8942.L1216:
8943	ldrb	w7, [x0, x1]
8944	cmp	w7, 12
8945	beq	.L1209
8946	add	x7, x0, x1
8947	ldrb	w7, [x7, 8]
8948	cmp	w7, 4
8949	beq	.L1209
8950	add	x1, x1, 1
8951	cmp	x1, 8
8952	bne	.L1216
8953	adrp	x0, .LC22
8954	mov	w1, 0
8955	add	x0, x0, :lo12:.LC22
8956	bl	printf
8957.L1218:
8958	b	.L1218
8959.L1220:
8960	ldr	w1, [x19, 2048]
8961	strb	w1, [x7, x0]
8962	add	x0, x0, 1
8963	b	.L1219
8964.L1232:
8965	cmp	w26, 6
8966	beq	.L1246
8967	cmp	w26, 7
8968	beq	.L1247
8969	cmp	w26, 8
8970	mov	x1, 8
8971	mov	x0, 5
8972	csel	x0, x0, x1, eq
8973.L1234:
8974	mov	w8, 0
8975.L1235:
8976	mov	x1, 0
8977.L1236:
8978	ldrb	w10, [x7, x1]
8979	strb	w10, [x3, x1]
8980	add	x1, x1, 1
8981	cmp	w28, w1, uxtb
8982	bhi	.L1236
8983	ldr	x1, [x29, 112]
8984	add	w8, w8, 1
8985	add	x3, x3, x0
8986	cmp	w27, w8
8987	add	x7, x7, x1
8988	bgt	.L1235
8989	mov	w0, 255
8990	str	w0, [x19, 2056]
8991	mov	w0, w22
8992	bl	NandcWaitFlashReady
8993	cmp	w25, 1
8994	bhi	.L1238
8995	mov	w0, 54
8996	str	w0, [x19, 2056]
8997	adrp	x0, .LANCHOR20+4
8998	mov	w1, -1
8999	ldrb	w0, [x0, #:lo12:.LANCHOR20+4]
9000	str	w0, [x19, 2052]
9001	str	wzr, [x19, 2048]
9002	mov	w0, 22
9003	str	w0, [x19, 2056]
9004	mov	w0, w21
9005	bl	FlashReadCmd
9006.L1239:
9007	add	w21, w21, 1
9008	mov	w0, w22
9009	and	w21, w21, 255
9010	bl	NandcWaitFlashReady
9011	b	.L1194
9012.L1246:
9013	mov	x0, 4
9014	b	.L1234
9015.L1247:
9016	mov	x0, 10
9017	b	.L1234
9018.L1238:
9019	cmp	w26, 8
9020	bne	.L1240
9021	mov	w0, 190
9022.L1291:
9023	str	w0, [x19, 2056]
9024	b	.L1239
9025.L1240:
9026	mov	w0, 56
9027	b	.L1291
9028.L1197:
9029	mov	w0, 120
9030	str	w0, [x19, 2056]
9031	str	wzr, [x19, 2052]
9032	mov	w0, 23
9033	str	wzr, [x19, 2052]
9034	mov	w1, 25
9035	str	wzr, [x19, 2052]
9036	add	x3, x20, :lo12:.LANCHOR20
9037	str	w0, [x19, 2056]
9038	mov	w0, 4
9039	str	w0, [x19, 2056]
9040	add	x3, x3, 28
9041	str	w1, [x19, 2056]
9042	mov	w1, 218
9043	str	w1, [x19, 2056]
9044	mov	w1, 21
9045	str	wzr, [x19, 2056]
9046	str	wzr, [x19, 2052]
9047	str	wzr, [x19, 2052]
9048	str	w1, [x19, 2052]
9049	str	w0, [x19, 2052]
9050	str	wzr, [x19, 2052]
9051	b	.L1242
9052	.size	HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
9053	.section	.text.FlashGetReadRetryDefault,"ax",@progbits
9054	.align	2
9055	.global	FlashGetReadRetryDefault
9056	.type	FlashGetReadRetryDefault, %function
9057FlashGetReadRetryDefault:
9058	mov	w1, w0
9059	cbz	w0, .L1292
9060	sub	w2, w0, #1
9061	cmp	w2, 7
9062	bhi	.L1294
9063	b	HynixGetReadRetryDefault
9064.L1294:
9065	cmp	w0, 49
9066	bne	.L1295
9067	adrp	x2, .LANCHOR20
9068	add	x0, x2, :lo12:.LANCHOR20
9069	strb	w1, [x2, #:lo12:.LANCHOR20]
9070	mov	w1, 4
9071	strb	w1, [x0, 1]
9072	mov	w1, 15
9073	strb	w1, [x0, 2]
9074	adrp	x1, .LANCHOR14
9075	add	x1, x1, :lo12:.LANCHOR14
9076	mov	w2, 64
9077.L1304:
9078	add	x0, x0, 4
9079	b	ftl_memcpy
9080.L1295:
9081	sub	w0, w0, #65
9082	cmp	w1, 33
9083	ccmp	w0, 1, 0, ne
9084	bhi	.L1296
9085	adrp	x2, .LANCHOR20
9086	add	x0, x2, :lo12:.LANCHOR20
9087	strb	w1, [x2, #:lo12:.LANCHOR20]
9088	mov	w1, 4
9089.L1305:
9090	strb	w1, [x0, 1]
9091	mov	w1, 7
9092	mov	w2, 45
9093	strb	w1, [x0, 2]
9094	adrp	x1, .LANCHOR10
9095	add	x1, x1, :lo12:.LANCHOR10
9096	b	.L1304
9097.L1296:
9098	cmp	w1, 34
9099	mov	w0, 67
9100	ccmp	w1, w0, 4, ne
9101	bne	.L1297
9102	adrp	x2, .LANCHOR20
9103	add	x0, x2, :lo12:.LANCHOR20
9104	strb	w1, [x2, #:lo12:.LANCHOR20]
9105	mov	w1, 5
9106	b	.L1305
9107.L1297:
9108	cmp	w1, 35
9109	mov	w0, 68
9110	ccmp	w1, w0, 4, ne
9111	bne	.L1292
9112	adrp	x2, .LANCHOR20
9113	add	x0, x2, :lo12:.LANCHOR20
9114	strb	w1, [x2, #:lo12:.LANCHOR20]
9115	mov	w1, 5
9116	strb	w1, [x0, 1]
9117	mov	w1, 17
9118	mov	w2, 95
9119	strb	w1, [x0, 2]
9120	adrp	x1, .LANCHOR9
9121	add	x1, x1, :lo12:.LANCHOR9
9122	b	.L1304
9123.L1292:
9124	ret
9125	.size	FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
9126	.section	.text.FlashInit,"ax",@progbits
9127	.align	2
9128	.global	FlashInit
9129	.type	FlashInit, %function
9130FlashInit:
9131	stp	x29, x30, [sp, -128]!
9132	add	x29, sp, 0
9133	stp	x19, x20, [sp, 16]
9134	mov	x19, x0
9135	stp	x21, x22, [sp, 32]
9136	mov	w0, 32768
9137	stp	x23, x24, [sp, 48]
9138	adrp	x20, .LANCHOR30
9139	stp	x25, x26, [sp, 64]
9140	adrp	x25, .LANCHOR3
9141	stp	x27, x28, [sp, 80]
9142	bl	ftl_malloc
9143	adrp	x1, .LANCHOR154
9144	adrp	x26, .LANCHOR208
9145	adrp	x21, .LANCHOR2
9146	adrp	x22, .LANCHOR158
9147	str	x0, [x1, #:lo12:.LANCHOR154]
9148	mov	w0, 32768
9149	bl	ftl_malloc
9150	adrp	x24, .LANCHOR0
9151	adrp	x1, .LANCHOR152
9152	add	x24, x24, :lo12:.LANCHOR0
9153	mov	w23, 0
9154	str	x0, [x1, #:lo12:.LANCHOR152]
9155	mov	w0, 4096
9156	bl	ftl_malloc
9157	adrp	x1, .LANCHOR205
9158	str	x0, [x1, #:lo12:.LANCHOR205]
9159	mov	w0, 32768
9160	bl	ftl_malloc
9161	adrp	x1, .LANCHOR206
9162	str	x0, [x1, #:lo12:.LANCHOR206]
9163	mov	w0, 4096
9164	bl	ftl_malloc
9165	strb	wzr, [x26, #:lo12:.LANCHOR208]
9166	adrp	x1, .LANCHOR207
9167	strb	wzr, [x20, #:lo12:.LANCHOR30]
9168	strb	wzr, [x21, #:lo12:.LANCHOR2]
9169	str	x0, [x1, #:lo12:.LANCHOR207]
9170	adrp	x1, .LANCHOR157
9171	mov	w0, 50
9172	strb	w0, [x25, #:lo12:.LANCHOR3]
9173	strb	w0, [x1, #:lo12:.LANCHOR157]
9174	adrp	x0, .LANCHOR156
9175	mov	w1, 128
9176	str	wzr, [x0, #:lo12:.LANCHOR156]
9177	adrp	x0, .LANCHOR4
9178	str	w1, [x0, #:lo12:.LANCHOR4]
9179	adrp	x0, .LANCHOR147
9180	str	wzr, [x0, #:lo12:.LANCHOR147]
9181	mov	w0, 60
9182	strb	w0, [x22, #:lo12:.LANCHOR158]
9183	mov	x0, x19
9184	adrp	x19, .LANCHOR22
9185	bl	NandcInit
9186	add	x28, x19, :lo12:.LANCHOR22
9187	str	x26, [x29, 120]
9188	adrp	x26, .LC24
9189	add	x0, x26, :lo12:.LC24
9190	str	x0, [x29, 112]
9191.L1312:
9192	ldrb	w2, [x24, 8]
9193	and	w27, w23, 255
9194	str	w2, [x29, 108]
9195	mov	w0, w27
9196	ldr	x26, [x24]
9197	bl	FlashReset
9198	mov	w0, w27
9199	bl	NandcFlashCs
9200	ldr	w2, [x29, 108]
9201	mov	w0, 144
9202	ubfiz	x2, x2, 8, 8
9203	add	x26, x26, x2
9204	str	w0, [x26, 2056]
9205	mov	x0, 200
9206	str	wzr, [x26, 2052]
9207	bl	udelay
9208	ldr	w0, [x26, 2048]
9209	and	w0, w0, 255
9210	strb	w0, [x28]
9211	cmp	w0, 44
9212	ldr	w2, [x26, 2048]
9213	strb	w2, [x28, 1]
9214	ldr	w2, [x26, 2048]
9215	strb	w2, [x28, 2]
9216	ldr	w2, [x26, 2048]
9217	strb	w2, [x28, 3]
9218	ldr	w2, [x26, 2048]
9219	strb	w2, [x28, 4]
9220	ldr	w2, [x26, 2048]
9221	strb	w2, [x28, 5]
9222	bne	.L1307
9223	mov	w0, 239
9224	str	w0, [x26, 2056]
9225	mov	w0, 1
9226	str	w0, [x26, 2052]
9227	mov	x0, 200
9228	bl	udelay
9229	mov	w0, 4
9230	str	w0, [x26, 2048]
9231	str	wzr, [x26, 2048]
9232	str	wzr, [x26, 2048]
9233	str	wzr, [x26, 2048]
9234.L1307:
9235	mov	w0, w27
9236	bl	NandcFlashDeCs
9237	ldrb	w2, [x28]
9238	sub	w0, w2, #1
9239	and	w0, w0, 255
9240	cmp	w0, 253
9241	bhi	.L1308
9242	ldrb	w7, [x28, 5]
9243	add	w1, w23, 1
9244	ldrb	w6, [x28, 4]
9245	ldrb	w5, [x28, 3]
9246	ldrb	w4, [x28, 2]
9247	ldrb	w3, [x28, 1]
9248	ldr	x0, [x29, 112]
9249	bl	printf
9250.L1308:
9251	cbnz	w23, .L1309
9252	ldrb	w0, [x19, #:lo12:.LANCHOR22]
9253	add	x1, x19, :lo12:.LANCHOR22
9254	sub	w0, w0, #1
9255	and	w0, w0, 255
9256	cmp	w0, 253
9257	bhi	.L1357
9258	ldrb	w0, [x1, 1]
9259	cmp	w0, 255
9260	beq	.L1357
9261.L1309:
9262	ldrb	w0, [x28]
9263	cmp	w0, 181
9264	bne	.L1311
9265	mov	w0, 44
9266	strb	w0, [x28]
9267.L1311:
9268	add	w23, w23, 1
9269	add	x24, x24, 16
9270	add	x28, x28, 8
9271	cmp	w23, 4
9272	bne	.L1312
9273	ldrb	w0, [x19, #:lo12:.LANCHOR22]
9274	cmp	w0, 173
9275	beq	.L1313
9276	adrp	x0, .LANCHOR160
9277	ldr	w0, [x0, #:lo12:.LANCHOR160]
9278	bl	NandcSetDdrMode
9279.L1313:
9280	adrp	x24, .LANCHOR7
9281	adrp	x27, .LANCHOR6
9282	adrp	x26, .LANCHOR122
9283	mov	w1, 0
9284	adrp	x23, .LANCHOR20
9285	mov	w2, 852
9286	add	x0, x23, :lo12:.LANCHOR20
9287	bl	ftl_memset
9288	adrp	x3, .LANCHOR31
9289	ldr	w4, [x26, #:lo12:.LANCHOR122]
9290	add	x0, x3, :lo12:.LANCHOR31
9291	strb	wzr, [x27, #:lo12:.LANCHOR6]
9292	str	x0, [x24, #:lo12:.LANCHOR7]
9293	mov	w1, 12336
9294	movk	w1, 0x5638, lsl 16
9295	cmp	w4, w1
9296	bne	.L1314
9297	ldrb	w0, [x0, 19]
9298	cmp	w0, 50
9299	beq	.L1314
9300	adrp	x0, .LANCHOR29
9301	mov	w1, 1
9302	str	w1, [x0, #:lo12:.LANCHOR29]
9303.L1314:
9304	add	x0, x19, :lo12:.LANCHOR22
9305	ldrb	w2, [x0, 1]
9306	add	w0, w2, 95
9307	and	w1, w0, 255
9308	mov	x0, 1
9309	cmp	w1, 57
9310	bhi	.L1315
9311	movk	x0, 0x205, lsl 48
9312	lsr	x0, x0, x1
9313	mvn	x0, x0
9314.L1315:
9315	cmp	w2, 241
9316	and	w0, w0, 1
9317	cset	w1, eq
9318	eor	w0, w0, 1
9319	orr	w0, w1, w0
9320	cbnz	w0, .L1316
9321	cmp	w2, 220
9322	bne	.L1317
9323	add	x0, x19, :lo12:.LANCHOR22
9324	ldrb	w0, [x0, 3]
9325	cmp	w0, 149
9326	bne	.L1317
9327.L1316:
9328	adrp	x28, .LANCHOR209
9329	add	x5, x28, :lo12:.LANCHOR209
9330	mov	w1, 16
9331	strb	w1, [x25, #:lo12:.LANCHOR3]
9332	strb	w1, [x22, #:lo12:.LANCHOR158]
9333	mov	w0, 1
9334	ldrb	w1, [x19, #:lo12:.LANCHOR22]
9335	add	x6, x19, :lo12:.LANCHOR22
9336	strb	w0, [x21, #:lo12:.LANCHOR2]
9337	strb	w1, [x5, 1]
9338	cmp	w1, 152
9339	strb	w2, [x5, 2]
9340	bne	.L1319
9341	ldrsb	w1, [x6, 4]
9342	tbnz	w1, #31, .L1320
9343	mov	w0, 24
9344	strb	w0, [x22, #:lo12:.LANCHOR158]
9345.L1319:
9346	cmp	w4, 2049
9347	mov	w0, 12336
9348	movk	w0, 0x5638, lsl 16
9349	ccmp	w4, w0, 4, ne
9350	bne	.L1322
9351	mov	w0, 16
9352	strb	w0, [x22, #:lo12:.LANCHOR158]
9353.L1322:
9354	cmp	w2, 218
9355	bne	.L1323
9356	add	x0, x28, :lo12:.LANCHOR209
9357	mov	w1, 2048
9358	strh	w1, [x0, 14]
9359	mov	w1, -38
9360.L1394:
9361	strb	w1, [x0, 2]
9362.L1324:
9363	adrp	x1, .LANCHOR146
9364	add	x1, x1, :lo12:.LANCHOR146
9365	mov	w2, 32
9366	add	x1, x1, 32
9367	str	x3, [x29, 120]
9368	adrp	x0, .LANCHOR8
9369	add	x0, x0, :lo12:.LANCHOR8
9370	bl	ftl_memcpy
9371	ldr	x3, [x29, 120]
9372	mov	w2, 32
9373	add	x1, x28, :lo12:.LANCHOR209
9374	add	x0, x3, :lo12:.LANCHOR31
9375	bl	ftl_memcpy
9376.L1317:
9377	ldrb	w0, [x21, #:lo12:.LANCHOR2]
9378	adrp	x22, .LANCHOR16
9379	cbnz	w0, .L1327
9380	bl	FlashLoadPhyInfoInRam
9381	cbnz	w0, .L1329
9382	ldr	x0, [x24, #:lo12:.LANCHOR7]
9383	adrp	x28, .LANCHOR25
9384	ldrb	w1, [x0, 17]
9385	and	w0, w1, 7
9386	strb	w0, [x28, #:lo12:.LANCHOR25]
9387	tbnz	x1, 0, .L1329
9388	mov	w1, 1
9389	strb	w1, [x20, #:lo12:.LANCHOR30]
9390	bl	FlashSetInterfaceMode
9391	ldrb	w0, [x28, #:lo12:.LANCHOR25]
9392	bl	NandcSetMode
9393.L1329:
9394	ldr	x0, [x24, #:lo12:.LANCHOR7]
9395	ldrb	w0, [x0, 26]
9396	strb	w0, [x22, #:lo12:.LANCHOR16]
9397	bl	FlashLoadPhyInfo
9398	cbz	w0, .L1327
9399	ldr	x0, [x24, #:lo12:.LANCHOR7]
9400	ldrh	w1, [x0, 14]
9401	adrp	x0, .LC25
9402	add	x0, x0, :lo12:.LC25
9403	bl	printf
9404	bl	FlashLoadPhyInfoInRam
9405	cmn	w0, #1
9406	beq	.L1306
9407	bl	FlashDieInfoInit
9408	ldr	x0, [x24, #:lo12:.LANCHOR7]
9409	ldrb	w0, [x0, 19]
9410	bl	FlashGetReadRetryDefault
9411	ldr	x0, [x24, #:lo12:.LANCHOR7]
9412	adrp	x1, .LANCHOR125
9413	ldrh	w1, [x1, #:lo12:.LANCHOR125]
9414	ldrb	w2, [x0, 9]
9415	add	w1, w1, 4095
9416	cmp	w2, w1, lsr 12
9417	blt	.L1332
9418	ldrh	w1, [x0, 14]
9419	add	w1, w1, 255
9420	cmp	w2, w1, lsr 8
9421	bge	.L1333
9422.L1332:
9423	ldrh	w1, [x0, 14]
9424	and	w1, w1, -256
9425	strh	w1, [x0, 14]
9426.L1333:
9427	adrp	x0, .LANCHOR25
9428	ldrb	w0, [x0, #:lo12:.LANCHOR25]
9429	tst	w0, 6
9430	beq	.L1334
9431	bl	FlashSavePhyInfo
9432	mov	w0, 0
9433	bl	flash_enter_slc_mode
9434	adrp	x0, .LANCHOR155
9435	ldr	w1, [x0, #:lo12:.LANCHOR155]
9436	mov	w0, 0
9437	bl	FlashDdrParaScan
9438	mov	w0, 0
9439	bl	flash_exit_slc_mode
9440.L1334:
9441	bl	FlashSavePhyInfo
9442.L1327:
9443	ldr	x2, [x24, #:lo12:.LANCHOR7]
9444	adrp	x28, .LANCHOR148
9445	str	xzr, [x28, #:lo12:.LANCHOR148]
9446	ldrb	w0, [x2, 26]
9447	strb	w0, [x22, #:lo12:.LANCHOR16]
9448	ldrh	w0, [x2, 16]
9449	ubfx	x1, x0, 7, 1
9450	strb	w1, [x27, #:lo12:.LANCHOR6]
9451	adrp	x1, .LANCHOR210
9452	ubfx	x3, x0, 3, 1
9453	adrp	x27, .LANCHOR25
9454	strb	w3, [x1, #:lo12:.LANCHOR210]
9455	adrp	x1, .LANCHOR28
9456	ubfx	x3, x0, 4, 1
9457	ubfx	x0, x0, 8, 3
9458	strb	w3, [x1, #:lo12:.LANCHOR28]
9459	strb	w0, [x27, #:lo12:.LANCHOR25]
9460	ldrh	w1, [x2, 10]
9461	ldrb	w0, [x2, 12]
9462	sdiv	w1, w1, w0
9463	ldrb	w0, [x2, 18]
9464	bl	BuildFlashLsbPageTable
9465	bl	FlashDieInfoInit
9466	ldr	x0, [x24, #:lo12:.LANCHOR7]
9467	ldrh	w1, [x0, 16]
9468	tbz	x1, 6, .L1336
9469	add	x3, x23, :lo12:.LANCHOR20
9470	adrp	x1, .LANCHOR11
9471	ldrb	w0, [x0, 19]
9472	adrp	x2, .LANCHOR13
9473	strb	w0, [x1, #:lo12:.LANCHOR11]
9474	mov	x4, x2
9475	ldrb	w1, [x3, 1]
9476	strb	w1, [x2, #:lo12:.LANCHOR13]
9477	adrp	x1, .LANCHOR149
9478	ldrb	w3, [x3, 2]
9479	strb	w3, [x1, #:lo12:.LANCHOR149]
9480	sub	w3, w0, #1
9481	and	w3, w3, 255
9482	cmp	w3, 7
9483	bhi	.L1337
9484	adrp	x1, HynixReadRetrial
9485	add	x1, x1, :lo12:HynixReadRetrial
9486	str	x1, [x28, #:lo12:.LANCHOR148]
9487	sub	w1, w0, #5
9488	and	w1, w1, 255
9489	cmp	w1, 1
9490	ccmp	w0, 8, 4, hi
9491	bne	.L1338
9492	adrp	x1, .LANCHOR36
9493	mov	w2, 1
9494	str	w2, [x1, #:lo12:.LANCHOR36]
9495.L1338:
9496	add	x23, x23, :lo12:.LANCHOR20
9497	cmp	w0, 7
9498	beq	.L1395
9499	cmp	w0, 8
9500	bne	.L1360
9501.L1395:
9502	add	x23, x23, 28
9503.L1339:
9504	mov	x1, 0
9505	mov	w2, 0
9506.L1341:
9507	ldrsb	w3, [x23, x1]
9508	add	x1, x1, 1
9509	cmp	w3, 0
9510	cinc	w2, w2, eq
9511	cmp	x1, 32
9512	bne	.L1341
9513	cmp	w2, 27
9514	bls	.L1336
9515	bl	FlashGetReadRetryDefault
9516	bl	FlashSavePhyInfo
9517.L1336:
9518	ldr	w1, [x26, #:lo12:.LANCHOR122]
9519	mov	w0, 12336
9520	movk	w0, 0x5638, lsl 16
9521	cmp	w1, w0
9522	bne	.L1351
9523	ldrb	w0, [x22, #:lo12:.LANCHOR16]
9524	cbz	w0, .L1351
9525	ldr	x0, [x24, #:lo12:.LANCHOR7]
9526	strb	wzr, [x0, 18]
9527.L1351:
9528	ldrb	w0, [x19, #:lo12:.LANCHOR22]
9529	cmp	w0, 44
9530	bne	.L1352
9531	ldrb	w0, [x20, #:lo12:.LANCHOR30]
9532	cbz	w0, .L1352
9533	strb	wzr, [x20, #:lo12:.LANCHOR30]
9534	mov	w0, 1
9535	bl	FlashSetInterfaceMode
9536	mov	w0, 1
9537	bl	NandcSetMode
9538.L1352:
9539	ldrb	w0, [x27, #:lo12:.LANCHOR25]
9540	tst	w0, 6
9541	beq	.L1353
9542	ldrb	w1, [x20, #:lo12:.LANCHOR30]
9543	cbnz	w1, .L1354
9544	tbnz	x0, 0, .L1353
9545.L1354:
9546	mov	w0, 0
9547	bl	flash_enter_slc_mode
9548	adrp	x0, .LANCHOR155
9549	ldr	w1, [x0, #:lo12:.LANCHOR155]
9550	mov	w0, 0
9551	bl	FlashDdrParaScan
9552	mov	w0, 0
9553	bl	flash_exit_slc_mode
9554.L1353:
9555	ldr	x0, [x24, #:lo12:.LANCHOR7]
9556	ldrb	w0, [x0, 20]
9557	bl	FlashBchSel
9558	adrp	x0, .LANCHOR144
9559	add	x0, x0, :lo12:.LANCHOR144
9560	bl	FlashReadIdbDataRaw
9561	ldr	x2, [x24, #:lo12:.LANCHOR7]
9562	mov	w0, 16
9563	adrp	x5, .LANCHOR15
9564	strb	w0, [x25, #:lo12:.LANCHOR3]
9565	add	x0, x5, :lo12:.LANCHOR15
9566	ldrb	w6, [x19, #:lo12:.LANCHOR22]
9567	ldrb	w3, [x2, 12]
9568	strh	w3, [x0, 8]
9569	ldrb	w1, [x2, 7]
9570	str	w1, [x0, 4]
9571	add	x1, x19, :lo12:.LANCHOR22
9572	ldrb	w4, [x1, 1]
9573	ldrb	w1, [x1, 3]
9574	orr	w1, w6, w1, lsl 24
9575	lsl	w6, w4, 16
9576	orr	w4, w6, w4, lsl 8
9577	orr	w1, w1, w4
9578	str	w1, [x5, #:lo12:.LANCHOR15]
9579	adrp	x1, .LANCHOR26
9580	ldrh	w4, [x2, 14]
9581	ldrb	w1, [x1, #:lo12:.LANCHOR26]
9582	strh	w1, [x0, 10]
9583	ldrb	w1, [x2, 13]
9584	strh	w1, [x0, 12]
9585	ldrh	w1, [x2, 10]
9586	strh	w1, [x0, 16]
9587	strh	w4, [x0, 14]
9588	sdiv	w3, w1, w3
9589	strh	w3, [x0, 18]
9590	ldrb	w5, [x2, 9]
9591	strh	w5, [x0, 20]
9592	mov	w3, w5
9593	mul	w1, w1, w5
9594	mov	w5, 512
9595	strh	w5, [x0, 24]
9596	mov	w5, 16
9597	and	w1, w1, 65535
9598	strh	w5, [x0, 26]
9599	strh	w1, [x0, 22]
9600	ldrb	w5, [x21, #:lo12:.LANCHOR2]
9601	cmp	w5, 1
9602	bne	.L1355
9603	ubfiz	w1, w1, 1, 15
9604	lsr	w4, w4, 1
9605	ubfiz	w3, w3, 1, 15
9606	strh	w1, [x0, 22]
9607	strh	w4, [x0, 14]
9608	mov	w1, 8
9609	strh	w3, [x0, 20]
9610	strh	w1, [x0, 26]
9611.L1355:
9612	ldrb	w0, [x2, 20]
9613	bl	FlashBchSel
9614	mov	w0, 0
9615.L1306:
9616	ldp	x19, x20, [sp, 16]
9617	ldp	x21, x22, [sp, 32]
9618	ldp	x23, x24, [sp, 48]
9619	ldp	x25, x26, [sp, 64]
9620	ldp	x27, x28, [sp, 80]
9621	ldp	x29, x30, [sp], 128
9622	ret
9623.L1323:
9624	cmp	w2, 220
9625	bne	.L1325
9626	add	x0, x28, :lo12:.LANCHOR209
9627	mov	w1, 4096
9628	strh	w1, [x0, 14]
9629	mov	w1, -36
9630	b	.L1394
9631.L1325:
9632	cmp	w2, 211
9633	bne	.L1324
9634	add	x0, x28, :lo12:.LANCHOR209
9635	mov	w1, 4096
9636	strh	w1, [x0, 14]
9637	mov	w1, 2
9638	strb	w1, [x0, 13]
9639	b	.L1324
9640.L1360:
9641	add	x23, x23, 20
9642	b	.L1339
9643.L1337:
9644	sub	w3, w0, #17
9645	and	w3, w3, 255
9646	cmp	w3, 2
9647	bhi	.L1343
9648	adrp	x2, MicronReadRetrial
9649	add	x2, x2, :lo12:MicronReadRetrial
9650	str	x2, [x28, #:lo12:.LANCHOR148]
9651	cmp	w0, 19
9652	beq	.L1344
9653.L1399:
9654	mov	w0, 7
9655	b	.L1397
9656.L1344:
9657	mov	w0, 15
9658.L1397:
9659	strb	w0, [x1, #:lo12:.LANCHOR149]
9660	b	.L1336
9661.L1343:
9662	sub	w3, w0, #65
9663	cmp	w0, 33
9664	and	w3, w3, 255
9665	ccmp	w3, 1, 0, ne
9666	bhi	.L1345
9667	adrp	x0, ToshibaReadRetrial
9668	add	x0, x0, :lo12:ToshibaReadRetrial
9669	str	x0, [x28, #:lo12:.LANCHOR148]
9670	mov	w0, 4
9671	strb	w0, [x2, #:lo12:.LANCHOR13]
9672	b	.L1399
9673.L1345:
9674	sub	w3, w0, #34
9675	sub	w2, w0, #67
9676	and	w3, w3, 255
9677	and	w2, w2, 255
9678	cmp	w3, 1
9679	ccmp	w2, 1, 0, hi
9680	bhi	.L1346
9681	adrp	x3, ToshibaReadRetrial
9682	add	x3, x3, :lo12:ToshibaReadRetrial
9683	str	x3, [x28, #:lo12:.LANCHOR148]
9684	cmp	w0, 35
9685	mov	w3, 68
9686	ccmp	w0, w3, 4, ne
9687	beq	.L1347
9688	mov	w0, 7
9689.L1396:
9690	strb	w0, [x1, #:lo12:.LANCHOR149]
9691	cmp	w2, 1
9692	bhi	.L1349
9693	mov	w0, 4
9694.L1398:
9695	strb	w0, [x4, #:lo12:.LANCHOR13]
9696	b	.L1336
9697.L1347:
9698	mov	w0, 17
9699	b	.L1396
9700.L1349:
9701	mov	w0, 5
9702	b	.L1398
9703.L1346:
9704	cmp	w0, 49
9705	bne	.L1350
9706	adrp	x0, SamsungReadRetrial
9707	add	x0, x0, :lo12:SamsungReadRetrial
9708	str	x0, [x28, #:lo12:.LANCHOR148]
9709	b	.L1336
9710.L1350:
9711	cmp	w0, 50
9712	bne	.L1336
9713	adrp	x0, samsung_read_retrial
9714	add	x0, x0, :lo12:samsung_read_retrial
9715	str	x0, [x28, #:lo12:.LANCHOR148]
9716	adrp	x0, .LANCHOR29
9717	str	wzr, [x0, #:lo12:.LANCHOR29]
9718	b	.L1336
9719.L1357:
9720	mov	w0, -2
9721	b	.L1306
9722.L1320:
9723	ldr	x1, [x29, 120]
9724	strb	w0, [x1, #:lo12:.LANCHOR208]
9725	b	.L1319
9726	.size	FlashInit, .-FlashInit
9727	.section	.text.FlashReadSlc2KPages,"ax",@progbits
9728	.align	2
9729	.global	FlashReadSlc2KPages
9730	.type	FlashReadSlc2KPages, %function
9731FlashReadSlc2KPages:
9732	stp	x29, x30, [sp, -144]!
9733	add	x29, sp, 0
9734	stp	x21, x22, [sp, 32]
9735	mov	w22, 56
9736	stp	x25, x26, [sp, 64]
9737	and	w21, w1, 255
9738	str	w2, [x29, 116]
9739	adrp	x2, .LANCHOR31+9
9740	stp	x19, x20, [sp, 16]
9741	mov	x19, x0
9742	ldrb	w25, [x2, #:lo12:.LANCHOR31+9]
9743	nop // between mem op and mult-accumulate
9744	umaddl	x0, w1, w22, x0
9745	adrp	x26, .LANCHOR208
9746	str	x0, [x29, 120]
9747	stp	x23, x24, [sp, 48]
9748	add	x0, x26, :lo12:.LANCHOR208
9749	stp	x27, x28, [sp, 80]
9750	str	x0, [x29, 104]
9751.L1401:
9752	ldr	x0, [x29, 120]
9753	cmp	x19, x0
9754	bne	.L1421
9755	ldp	x19, x20, [sp, 16]
9756	mov	w0, 0
9757	ldp	x21, x22, [sp, 32]
9758	ldp	x23, x24, [sp, 48]
9759	ldp	x25, x26, [sp, 64]
9760	ldp	x27, x28, [sp, 80]
9761	ldp	x29, x30, [sp], 144
9762	ret
9763.L1421:
9764	ldr	w1, [x29, 116]
9765	mov	w4, w21
9766	add	x3, x29, 136
9767	add	x2, x29, 140
9768	mov	x0, x19
9769	bl	LogAddr2PhyAddr
9770	adrp	x0, .LANCHOR26
9771	ldr	w1, [x29, 136]
9772	ldrb	w0, [x0, #:lo12:.LANCHOR26]
9773	cmp	w0, w1
9774	bhi	.L1402
9775	mov	w0, -1
9776	str	w0, [x19]
9777.L1403:
9778	sub	w21, w21, #1
9779	add	x19, x19, 56
9780	and	w21, w21, 255
9781	b	.L1401
9782.L1402:
9783	adrp	x0, .LANCHOR27
9784	add	x0, x0, :lo12:.LANCHOR27
9785	add	x23, x26, :lo12:.LANCHOR208
9786	mov	w22, 0
9787	mov	w24, 256
9788	ldrb	w20, [x0, w1, uxtw]
9789	mov	w0, w20
9790	bl	NandcWaitFlashReady
9791	mov	w0, w20
9792	bl	NandcFlashCs
9793.L1404:
9794	ldr	w1, [x29, 140]
9795	mov	w0, w20
9796	bl	FlashReadCmd
9797	mov	w0, w20
9798	bl	NandcWaitFlashReady
9799	ldp	x3, x4, [x19, 8]
9800	mov	w2, w25
9801	mov	w1, 0
9802	mov	w0, w20
9803	bl	NandcXferData
9804	mov	w28, w0
9805	ldrb	w0, [x23]
9806	cbz	w0, .L1405
9807	mov	w0, w20
9808	bl	flash_read_ecc
9809	cmp	w0, 5
9810	csel	w28, w28, w24, ls
9811.L1405:
9812	cmp	w22, 9
9813	ccmn	w28, #1, 0, ls
9814	bne	.L1406
9815	add	w22, w22, 1
9816	b	.L1404
9817.L1406:
9818	cmp	w22, 0
9819	mov	w23, 256
9820	adrp	x24, .LANCHOR4
9821	csel	w28, w28, w23, eq
9822	add	x24, x24, :lo12:.LANCHOR4
9823	mov	w22, 0
9824.L1408:
9825	ldr	w0, [x24]
9826	ldr	w1, [x29, 140]
9827	add	w1, w1, w0
9828	mov	w0, w20
9829	bl	FlashReadCmd
9830	mov	w0, w20
9831	bl	NandcWaitFlashReady
9832	ldr	x0, [x19, 8]
9833	mov	w2, w25
9834	mov	w1, 0
9835	cmp	x0, 0
9836	add	x3, x0, 2048
9837	ldr	x0, [x19, 16]
9838	csel	x3, x3, xzr, ne
9839	cmp	x0, 0
9840	add	x4, x0, 8
9841	csel	x4, x4, xzr, ne
9842	mov	w0, w20
9843	bl	NandcXferData
9844	mov	w27, w0
9845	ldr	x0, [x29, 104]
9846	ldrb	w0, [x0]
9847	cbz	w0, .L1411
9848	mov	w0, w20
9849	bl	flash_read_ecc
9850	cmp	w0, 5
9851	csel	w27, w27, w23, ls
9852.L1411:
9853	cmp	w22, 9
9854	ccmn	w27, #1, 0, ls
9855	bne	.L1412
9856	add	w22, w22, 1
9857	b	.L1408
9858.L1412:
9859	cmp	w22, 0
9860	mov	w3, 256
9861	mov	w0, w20
9862	csel	w27, w27, w3, eq
9863	bl	NandcFlashDeCs
9864	adrp	x0, .LANCHOR33
9865	cmp	w28, w27
9866	csel	w5, w28, w27, cs
9867	ldrb	w2, [x0, #:lo12:.LANCHOR33]
9868	add	w0, w2, w2, lsl 1
9869	cmp	w5, w0, lsr 2
9870	bls	.L1414
9871	cmn	w5, #1
9872	csel	w5, w5, w3, eq
9873.L1414:
9874	cmp	w5, 256
9875	ldr	x0, [x19, 16]
9876	ccmn	w5, #1, 4, ne
9877	csel	w5, w5, wzr, eq
9878	str	w5, [x19]
9879	cbz	x0, .L1417
9880	ldr	w1, [x0, 12]
9881	cmn	w1, #1
9882	bne	.L1417
9883	ldr	w1, [x0, 8]
9884	cmn	w1, #1
9885	bne	.L1417
9886	ldr	w0, [x0]
9887	cmn	w0, #1
9888	beq	.L1417
9889	str	w1, [x19]
9890.L1417:
9891	ldr	w3, [x19]
9892	cmn	w3, #1
9893	bne	.L1403
9894	ldr	w1, [x19, 4]
9895	adrp	x0, .LC26
9896	add	x0, x0, :lo12:.LC26
9897	bl	printf
9898	ldr	x1, [x19, 8]
9899	cbz	x1, .L1419
9900	adrp	x0, .LC27
9901	mov	w3, 8
9902	mov	w2, 4
9903	add	x0, x0, :lo12:.LC27
9904	bl	rknand_print_hex
9905.L1419:
9906	ldr	x1, [x19, 16]
9907	cbz	x1, .L1403
9908	mov	w3, 4
9909	adrp	x0, .LC28
9910	mov	w2, w3
9911	add	x0, x0, :lo12:.LC28
9912	bl	rknand_print_hex
9913	b	.L1403
9914	.size	FlashReadSlc2KPages, .-FlashReadSlc2KPages
9915	.section	.text.FlashReadPages,"ax",@progbits
9916	.align	2
9917	.global	FlashReadPages
9918	.type	FlashReadPages, %function
9919FlashReadPages:
9920	stp	x29, x30, [sp, -176]!
9921	adrp	x3, .LANCHOR2
9922	add	x29, sp, 0
9923	ldrb	w3, [x3, #:lo12:.LANCHOR2]
9924	stp	x19, x20, [sp, 16]
9925	stp	x21, x22, [sp, 32]
9926	stp	x23, x24, [sp, 48]
9927	stp	x25, x26, [sp, 64]
9928	stp	x27, x28, [sp, 80]
9929	stp	w2, w1, [x29, 148]
9930	cbnz	w3, .L1450
9931	mov	x25, x0
9932	adrp	x0, .LANCHOR31+9
9933	adrp	x27, .LANCHOR20
9934	mov	w23, 0
9935	ldrb	w0, [x0, #:lo12:.LANCHOR31+9]
9936	mov	w22, 0
9937	str	w0, [x29, 156]
9938	adrp	x0, .LANCHOR6
9939	str	x0, [x29, 128]
9940	ldrb	w1, [x0, #:lo12:.LANCHOR6]
9941	add	x0, x27, :lo12:.LANCHOR20
9942	str	w1, [x29, 144]
9943	str	x0, [x29, 104]
9944	add	x0, x0, 4
9945	str	x0, [x29, 96]
9946.L1451:
9947	ldr	w0, [x29, 152]
9948	cmp	w22, w0
9949	bcc	.L1485
9950	mov	w0, 0
9951	b	.L1449
9952.L1450:
9953	bl	FlashReadSlc2KPages
9954.L1449:
9955	ldp	x19, x20, [sp, 16]
9956	ldp	x21, x22, [sp, 32]
9957	ldp	x23, x24, [sp, 48]
9958	ldp	x25, x26, [sp, 64]
9959	ldp	x27, x28, [sp, 80]
9960	ldp	x29, x30, [sp], 176
9961	ret
9962.L1485:
9963	mov	w26, 56
9964	add	x3, x29, 168
9965	ldp	w1, w0, [x29, 148]
9966	umull	x26, w22, w26
9967	add	x2, x29, 172
9968	add	x21, x25, x26
9969	sub	w4, w0, w22
9970	mov	x0, x21
9971	ldr	w24, [x21, 4]
9972	bl	LogAddr2PhyAddr
9973	mov	w20, w0
9974	adrp	x0, .LANCHOR26
9975	ldr	w1, [x29, 168]
9976	ldrb	w0, [x0, #:lo12:.LANCHOR26]
9977	cmp	w0, w1
9978	bhi	.L1453
9979	mov	w0, -1
9980	str	w0, [x25, x26]
9981.L1454:
9982	add	w22, w22, 1
9983	b	.L1451
9984.L1453:
9985	adrp	x0, .LANCHOR27
9986	add	x0, x0, :lo12:.LANCHOR27
9987	ldrb	w19, [x0, w1, uxtw]
9988	adrp	x0, .LANCHOR210
9989	ldrb	w0, [x0, #:lo12:.LANCHOR210]
9990	cmp	w0, 0
9991	mov	w0, w19
9992	csel	w20, w20, wzr, ne
9993	bl	NandcWaitFlashReady
9994	adrp	x2, .LANCHOR7
9995	str	x2, [x29, 120]
9996	ldr	x0, [x2, #:lo12:.LANCHOR7]
9997	ldrb	w1, [x0, 19]
9998	sub	w0, w1, #1
9999	and	w0, w0, 255
10000	cmp	w0, 7
10001	bhi	.L1456
10002	add	x0, x27, :lo12:.LANCHOR20
10003	sxtw	x2, w19
10004	add	x0, x0, x2
10005	sub	w1, w1, #7
10006	and	w1, w1, 255
10007	cmp	w1, 1
10008	ldrb	w3, [x0, 12]
10009	bhi	.L1457
10010	ldrb	w3, [x0, 20]
10011.L1457:
10012	adrp	x0, .LANCHOR21
10013	add	x0, x0, :lo12:.LANCHOR21
10014	ldrb	w0, [x0, x2]
10015	cmp	w0, w3
10016	beq	.L1456
10017	ldp	x2, x0, [x29, 96]
10018	ldrb	w1, [x0, 1]
10019	mov	w0, w19
10020	bl	HynixSetRRPara
10021.L1456:
10022	mov	w0, w19
10023	bl	NandcFlashCs
10024	ldr	w0, [x29, 148]
10025	cmp	w0, 1
10026	cset	w0, eq
10027	orr	w24, w0, w24, lsr 31
10028	cbz	w24, .L1458
10029	adrp	x0, .LANCHOR16
10030	ldrb	w0, [x0, #:lo12:.LANCHOR16]
10031	cbz	w0, .L1458
10032	mov	w0, w19
10033	bl	flash_enter_slc_mode
10034.L1459:
10035	adrp	x0, .LANCHOR4
10036	add	x0, x0, :lo12:.LANCHOR4
10037	str	x0, [x29, 112]
10038	ldr	x0, [x29, 128]
10039	add	x0, x0, :lo12:.LANCHOR6
10040	str	x0, [x29, 136]
10041.L1465:
10042	ldr	w1, [x29, 172]
10043	cmn	w1, #1
10044	bne	.L1460
10045	cmp	w19, 255
10046	beq	.L1487
10047.L1460:
10048	cbz	w20, .L1462
10049	ldr	x0, [x29, 112]
10050	ldr	w2, [x0]
10051	mov	w0, w19
10052	add	w2, w1, w2
10053	bl	FlashReadDpCmd
10054.L1463:
10055	mov	w0, w19
10056	bl	NandcWaitFlashReady
10057	cbz	w20, .L1461
10058	ldr	w1, [x29, 172]
10059	mov	w0, w19
10060	bl	FlashReadDpDataOutCmd
10061.L1461:
10062	ldrb	w2, [x29, 156]
10063	mov	w1, 0
10064	ldp	x3, x4, [x21, 8]
10065	mov	w0, w19
10066	bl	NandcXferData
10067	mov	w28, w0
10068	ldr	x0, [x29, 136]
10069	ldrb	w0, [x0]
10070	cbz	w0, .L1464
10071	cmn	w28, #1
10072	bne	.L1464
10073	ldr	x0, [x29, 136]
10074	mov	w20, 0
10075	strb	wzr, [x0]
10076	b	.L1465
10077.L1458:
10078	mov	w0, w19
10079	bl	flash_exit_slc_mode
10080	b	.L1459
10081.L1462:
10082	mov	w0, w19
10083	bl	FlashReadCmd
10084	b	.L1463
10085.L1487:
10086	mov	w20, 0
10087	b	.L1461
10088.L1464:
10089	cbz	w20, .L1466
10090	adrp	x0, .LANCHOR4
10091	ldr	w1, [x29, 172]
10092	ldr	w0, [x0, #:lo12:.LANCHOR4]
10093	add	w1, w1, w0
10094	mov	w0, w19
10095	bl	FlashReadDpDataOutCmd
10096	add	w0, w22, 1
10097	mov	w1, 56
10098	ldrb	w2, [x29, 156]
10099	nop // between mem op and mult-accumulate
10100	umaddl	x0, w0, w1, x25
10101	mov	w1, 0
10102	ldp	x3, x4, [x0, 8]
10103	mov	w0, w19
10104	bl	NandcXferData
10105	cmn	w0, #1
10106	mov	w23, w0
10107	csel	w20, w20, wzr, ne
10108.L1466:
10109	mov	w0, w19
10110	bl	NandcFlashDeCs
10111	ldr	x0, [x29, 128]
10112	cmn	w28, #1
10113	ldrb	w1, [x29, 144]
10114	strb	w1, [x0, #:lo12:.LANCHOR6]
10115	bne	.L1467
10116	adrp	x0, .LANCHOR30
10117	ldrb	w0, [x0, #:lo12:.LANCHOR30]
10118	cbnz	w0, .L1468
10119.L1472:
10120	adrp	x20, .LANCHOR148
10121	ldr	x4, [x20, #:lo12:.LANCHOR148]
10122	cbnz	x4, .L1469
10123	ldr	w1, [x29, 172]
10124	mov	w0, w19
10125	ldp	x2, x3, [x21, 8]
10126	bl	FlashReadRawPage
10127	b	.L1524
10128.L1468:
10129	adrp	x0, .LANCHOR19
10130	ldr	w1, [x29, 172]
10131	ldp	x2, x3, [x21, 8]
10132	mov	w4, 1
10133	ldr	x0, [x0, #:lo12:.LANCHOR19]
10134	ldr	w20, [x0, 304]
10135	mov	w0, w19
10136	bl	FlashDdrTunningRead
10137	mov	w28, w0
10138	cmn	w0, #1
10139	beq	.L1471
10140	adrp	x0, .LANCHOR33
10141	ldrb	w0, [x0, #:lo12:.LANCHOR33]
10142	cmp	w28, w0, lsr 1
10143	bls	.L1488
10144.L1471:
10145	lsr	w0, w20, 8
10146	bl	NandcSetDdrPara
10147	cmn	w28, #1
10148	beq	.L1472
10149.L1488:
10150	mov	w20, 0
10151.L1467:
10152	adrp	x0, .LANCHOR33
10153	ldrb	w0, [x0, #:lo12:.LANCHOR33]
10154	add	w0, w0, w0, lsl 1
10155	cmp	w28, w0, lsr 2
10156	bls	.L1473
10157	adrp	x0, .LANCHOR148
10158	ldr	x0, [x0, #:lo12:.LANCHOR148]
10159	cmp	x0, 0
10160	mov	w0, 256
10161	csel	w28, w28, w0, ne
10162.L1473:
10163	cmp	w28, 256
10164	ccmn	w28, #1, 4, ne
10165	csel	w3, w28, wzr, eq
10166	str	w3, [x25, x26]
10167	cmn	w3, #1
10168	bne	.L1480
10169	adrp	x0, .LANCHOR33
10170	ldr	w1, [x21, 4]
10171	ldrb	w2, [x0, #:lo12:.LANCHOR33]
10172	adrp	x0, .LC26
10173	add	x0, x0, :lo12:.LC26
10174	bl	printf
10175	ldr	x1, [x21, 16]
10176	cbz	x1, .L1480
10177	mov	w3, 4
10178	adrp	x0, .LC28
10179	mov	w2, w3
10180	add	x0, x0, :lo12:.LC28
10181	bl	rknand_print_hex
10182.L1480:
10183	cbz	w20, .L1482
10184	adrp	x0, .LANCHOR33
10185	ldrb	w0, [x0, #:lo12:.LANCHOR33]
10186	add	w0, w0, w0, lsl 1
10187	cmp	w23, w0, lsr 2
10188	bls	.L1483
10189	adrp	x0, .LANCHOR148
10190	ldr	x0, [x0, #:lo12:.LANCHOR148]
10191	cmp	x0, 0
10192	mov	w0, 256
10193	csel	w23, w23, w0, ne
10194.L1483:
10195	add	w0, w22, 1
10196	mov	w1, 56
10197	cmp	w23, 256
10198	ccmn	w23, #1, 4, ne
10199	umull	x0, w0, w1
10200	csel	w1, w23, wzr, eq
10201	str	w1, [x25, x0]
10202.L1482:
10203	add	w22, w22, w20
10204	cbz	w24, .L1454
10205	adrp	x0, .LANCHOR16
10206	ldrb	w0, [x0, #:lo12:.LANCHOR16]
10207	cbz	w0, .L1454
10208	mov	w0, w19
10209	bl	flash_exit_slc_mode
10210	b	.L1454
10211.L1469:
10212	ldr	w1, [x29, 172]
10213	mov	w0, w19
10214	ldp	x2, x3, [x21, 8]
10215	blr	x4
10216	mov	w28, w0
10217	cmn	w0, #1
10218	bne	.L1491
10219	ldr	x0, [x29, 120]
10220	ldr	x0, [x0, #:lo12:.LANCHOR7]
10221	ldrb	w0, [x0, 19]
10222	sub	w0, w0, #1
10223	and	w0, w0, 255
10224	cmp	w0, 7
10225	bhi	.L1474
10226	add	x0, x27, :lo12:.LANCHOR20
10227	mov	w3, 0
10228	add	x2, x0, 4
10229	ldrb	w1, [x0, 1]
10230	mov	w0, w19
10231	bl	HynixSetRRPara
10232.L1474:
10233	ldp	x2, x3, [x21, 8]
10234	mov	w0, w19
10235	ldr	w1, [x29, 172]
10236	bl	FlashReadRawPage
10237	mov	w28, w0
10238	mov	w3, w0
10239	adrp	x0, .LANCHOR33
10240	ldr	w1, [x21, 4]
10241	ldrb	w2, [x0, #:lo12:.LANCHOR33]
10242	adrp	x0, .LC29
10243	add	x0, x0, :lo12:.LC29
10244	bl	printf
10245	cmn	w28, #1
10246	bne	.L1491
10247	adrp	x0, .LANCHOR16
10248	ldrb	w0, [x0, #:lo12:.LANCHOR16]
10249	cbz	w0, .L1491
10250	mov	w0, w19
10251	cbz	w24, .L1475
10252	bl	flash_enter_slc_mode
10253.L1476:
10254	ldr	x4, [x20, #:lo12:.LANCHOR148]
10255	mov	w0, w19
10256	ldr	w1, [x29, 172]
10257	ldp	x2, x3, [x21, 8]
10258	blr	x4
10259.L1524:
10260	mov	w28, w0
10261.L1491:
10262	mov	w20, 0
10263	b	.L1473
10264.L1475:
10265	bl	flash_exit_slc_mode
10266	b	.L1476
10267	.size	FlashReadPages, .-FlashReadPages
10268	.section	.text.FlashProgSlc2KPages,"ax",@progbits
10269	.align	2
10270	.global	FlashProgSlc2KPages
10271	.type	FlashProgSlc2KPages, %function
10272FlashProgSlc2KPages:
10273	stp	x29, x30, [sp, -160]!
10274	add	x29, sp, 0
10275	stp	x23, x24, [sp, 48]
10276	mov	w24, 56
10277	stp	x25, x26, [sp, 64]
10278	mov	w25, w2
10279	adrp	x2, .LANCHOR31+9
10280	stp	x21, x22, [sp, 32]
10281	nop // between mem op and mult-accumulate
10282	umaddl	x24, w1, w24, x0
10283	and	w22, w1, 255
10284	ldrb	w26, [x2, #:lo12:.LANCHOR31+9]
10285	mov	w23, w22
10286	stp	x27, x28, [sp, 80]
10287	mov	x21, x0
10288	stp	x19, x20, [sp, 16]
10289	adrp	x27, .LANCHOR4
10290	mov	x19, x0
10291	add	x28, x27, :lo12:.LANCHOR4
10292.L1526:
10293	cmp	x21, x24
10294	bne	.L1532
10295	adrp	x23, .LANCHOR206
10296	mov	x24, x23
10297.L1533:
10298	cmp	x19, x21
10299	bne	.L1540
10300	ldp	x19, x20, [sp, 16]
10301	mov	w0, 0
10302	ldp	x21, x22, [sp, 32]
10303	ldp	x23, x24, [sp, 48]
10304	ldp	x25, x26, [sp, 64]
10305	ldp	x27, x28, [sp, 80]
10306	ldp	x29, x30, [sp], 160
10307	ret
10308.L1532:
10309	mov	w1, w25
10310	mov	w4, w23
10311	add	x3, x29, 100
10312	add	x2, x29, 96
10313	mov	x0, x21
10314	bl	LogAddr2PhyAddr
10315	adrp	x0, .LANCHOR26
10316	ldr	w1, [x29, 100]
10317	ldrb	w0, [x0, #:lo12:.LANCHOR26]
10318	cmp	w0, w1
10319	bhi	.L1527
10320	mov	w0, -1
10321	str	w0, [x21]
10322.L1528:
10323	sub	w23, w23, #1
10324	add	x21, x21, 56
10325	and	w23, w23, 255
10326	b	.L1526
10327.L1527:
10328	adrp	x0, .LANCHOR27
10329	add	x0, x0, :lo12:.LANCHOR27
10330	ldrb	w20, [x0, w1, uxtw]
10331	mov	w0, w20
10332	bl	NandcWaitFlashReady
10333	mov	w0, w20
10334	bl	NandcFlashCs
10335	ldr	w1, [x29, 96]
10336	mov	w0, w20
10337	bl	FlashProgFirstCmd
10338	ldp	x3, x4, [x21, 8]
10339	mov	w2, w26
10340	mov	w1, 1
10341	mov	w0, w20
10342	bl	NandcXferData
10343	ldr	w1, [x29, 96]
10344	mov	w0, w20
10345	bl	FlashProgSecondCmd
10346	mov	w0, w20
10347	bl	NandcWaitFlashReady
10348	ldr	w1, [x29, 96]
10349	mov	w0, w20
10350	bl	FlashReadStatus
10351	sbfx	x0, x0, 0, 1
10352	str	w0, [x21]
10353	ldr	w1, [x29, 96]
10354	ldr	w0, [x27, #:lo12:.LANCHOR4]
10355	add	w1, w1, w0
10356	mov	w0, w20
10357	bl	FlashProgFirstCmd
10358	ldr	x0, [x21, 8]
10359	mov	w2, w26
10360	mov	w1, 1
10361	cmp	x0, 0
10362	add	x3, x0, 2048
10363	ldr	x0, [x21, 16]
10364	csel	x3, x3, xzr, ne
10365	cmp	x0, 0
10366	add	x4, x0, 8
10367	csel	x4, x4, xzr, ne
10368	mov	w0, w20
10369	bl	NandcXferData
10370	ldr	w0, [x28]
10371	ldr	w1, [x29, 96]
10372	add	w1, w1, w0
10373	mov	w0, w20
10374	bl	FlashProgSecondCmd
10375	mov	w0, w20
10376	bl	NandcWaitFlashReady
10377	ldr	w1, [x29, 96]
10378	mov	w0, w20
10379	bl	FlashReadStatus
10380	tbz	x0, 0, .L1531
10381	mov	w0, -1
10382	str	w0, [x21]
10383.L1531:
10384	mov	w0, w20
10385	bl	NandcFlashDeCs
10386	b	.L1528
10387.L1540:
10388	ldr	w0, [x19]
10389	cmn	w0, #1
10390	bne	.L1534
10391	ldr	w1, [x19, 4]
10392	adrp	x0, .LC30
10393	add	x0, x0, :lo12:.LC30
10394	bl	printf
10395.L1535:
10396	sub	w22, w22, #1
10397	add	x19, x19, 56
10398	and	w22, w22, 255
10399	b	.L1533
10400.L1534:
10401	adrp	x20, .LANCHOR207
10402	mov	w4, w22
10403	add	x3, x29, 100
10404	add	x2, x29, 96
10405	mov	w1, w25
10406	mov	x0, x19
10407	bl	LogAddr2PhyAddr
10408	ldr	x27, [x23, #:lo12:.LANCHOR206]
10409	ldr	x26, [x20, #:lo12:.LANCHOR207]
10410	mov	x2, 56
10411	mov	x1, x19
10412	add	x0, x29, 104
10413	str	wzr, [x27]
10414	str	wzr, [x26]
10415	bl	memcpy
10416	stp	x27, x26, [x29, 112]
10417	mov	w2, w25
10418	mov	w1, 1
10419	add	x0, x29, 104
10420	bl	FlashReadPages
10421	ldr	w26, [x29, 104]
10422	cmn	w26, #1
10423	bne	.L1536
10424	ldr	w1, [x19, 4]
10425	adrp	x0, .LC31
10426	add	x0, x0, :lo12:.LC31
10427	bl	printf
10428	str	w26, [x19]
10429.L1536:
10430	ldr	w26, [x29, 104]
10431	cmp	w26, 256
10432	bne	.L1537
10433	ldr	w1, [x19, 4]
10434	adrp	x0, .LC32
10435	add	x0, x0, :lo12:.LC32
10436	bl	printf
10437	str	w26, [x19]
10438.L1537:
10439	ldr	x0, [x19, 16]
10440	cbz	x0, .L1538
10441	ldr	w2, [x0]
10442	ldr	x0, [x20, #:lo12:.LANCHOR207]
10443	ldr	w3, [x0]
10444	cmp	w2, w3
10445	beq	.L1538
10446	ldr	w1, [x19, 4]
10447	adrp	x0, .LC33
10448	add	x0, x0, :lo12:.LC33
10449	bl	printf
10450	mov	w0, -1
10451	str	w0, [x19]
10452.L1538:
10453	ldr	x0, [x19, 8]
10454	cbz	x0, .L1535
10455	ldr	w2, [x0]
10456	ldr	x0, [x24, #:lo12:.LANCHOR206]
10457	ldr	w3, [x0]
10458	cmp	w2, w3
10459	beq	.L1535
10460	ldr	w1, [x19, 4]
10461	adrp	x0, .LC34
10462	add	x0, x0, :lo12:.LC34
10463	bl	printf
10464	mov	w0, -1
10465	str	w0, [x19]
10466	b	.L1535
10467	.size	FlashProgSlc2KPages, .-FlashProgSlc2KPages
10468	.section	.text.FlashProgPages,"ax",@progbits
10469	.align	2
10470	.global	FlashProgPages
10471	.type	FlashProgPages, %function
10472FlashProgPages:
10473	stp	x29, x30, [sp, -176]!
10474	adrp	x4, .LANCHOR7
10475	add	x29, sp, 0
10476	ldr	x4, [x4, #:lo12:.LANCHOR7]
10477	stp	x19, x20, [sp, 16]
10478	stp	x21, x22, [sp, 32]
10479	stp	x23, x24, [sp, 48]
10480	stp	x25, x26, [sp, 64]
10481	stp	x27, x28, [sp, 80]
10482	ldrb	w4, [x4, 19]
10483	stp	w3, w4, [x29, 100]
10484	adrp	x4, .LANCHOR2
10485	ldrb	w4, [x4, #:lo12:.LANCHOR2]
10486	cbnz	w4, .L1554
10487	mov	x19, x0
10488	adrp	x0, .LANCHOR31+9
10489	adrp	x27, .LANCHOR23
10490	mov	w24, w1
10491	ldrb	w0, [x0, #:lo12:.LANCHOR31+9]
10492	mov	w22, w2
10493	add	x28, x27, :lo12:.LANCHOR23
10494	mov	w21, 0
10495	str	w0, [x29, 108]
10496.L1555:
10497	cmp	w21, w24
10498	adrp	x26, .LANCHOR26
10499	bcc	.L1568
10500	adrp	x21, .LANCHOR16
10501	adrp	x23, .LANCHOR23
10502	add	x25, x26, :lo12:.LANCHOR26
10503	add	x21, x21, :lo12:.LANCHOR16
10504	add	x23, x23, :lo12:.LANCHOR23
10505	mov	x20, 0
10506.L1569:
10507	ldrb	w0, [x25]
10508	cmp	w0, w20
10509	bhi	.L1571
10510	ldr	w0, [x29, 100]
10511	cbnz	w0, .L1572
10512.L1580:
10513	mov	w0, 0
10514	b	.L1553
10515.L1554:
10516	bl	FlashProgSlc2KPages
10517.L1553:
10518	ldp	x19, x20, [sp, 16]
10519	ldp	x21, x22, [sp, 32]
10520	ldp	x23, x24, [sp, 48]
10521	ldp	x25, x26, [sp, 64]
10522	ldp	x27, x28, [sp, 80]
10523	ldp	x29, x30, [sp], 176
10524	ret
10525.L1568:
10526	mov	w12, 56
10527	mov	w1, w22
10528	sub	w4, w24, w21
10529	add	x3, x29, 116
10530	umull	x12, w21, w12
10531	add	x2, x29, 112
10532	add	x25, x19, x12
10533	mov	x0, x25
10534	bl	LogAddr2PhyAddr
10535	mov	w23, w0
10536	ldrb	w1, [x26, #:lo12:.LANCHOR26]
10537	ldr	w0, [x29, 116]
10538	cmp	w1, w0
10539	bhi	.L1557
10540	mov	w0, -1
10541	str	w0, [x19, x12]
10542.L1558:
10543	add	w21, w21, 1
10544	b	.L1555
10545.L1557:
10546	adrp	x1, .LANCHOR28
10547	add	x2, x27, :lo12:.LANCHOR23
10548	mov	x3, 24
10549	ldrb	w1, [x1, #:lo12:.LANCHOR28]
10550	cmp	w1, 0
10551	uxtw	x1, w0
10552	csel	w23, w23, wzr, ne
10553	madd	x1, x1, x3, x2
10554	ldr	x1, [x1, 8]
10555	cbz	x1, .L1560
10556	bl	FlashWaitCmdDone
10557.L1560:
10558	ldp	w2, w1, [x29, 112]
10559	mov	x0, 24
10560	madd	x0, x1, x0, x28
10561	str	w2, [x0, 4]
10562	stp	x25, xzr, [x0, 8]
10563	cbz	w23, .L1561
10564	add	w2, w21, 1
10565	mov	w3, 56
10566	umaddl	x2, w2, w3, x19
10567	str	x2, [x0, 16]
10568.L1561:
10569	adrp	x0, .LANCHOR27
10570	add	x0, x0, :lo12:.LANCHOR27
10571	ldrb	w20, [x0, x1]
10572	mov	x0, 24
10573	mul	x1, x1, x0
10574	ldrb	w0, [x26, #:lo12:.LANCHOR26]
10575	cmp	w0, 1
10576	mov	w0, w20
10577	strb	w20, [x28, x1]
10578	bne	.L1562
10579	bl	NandcWaitFlashReady
10580.L1563:
10581	ldr	w0, [x29, 104]
10582	sub	w0, w0, #1
10583	cmp	w0, 7
10584	bhi	.L1564
10585	adrp	x0, .LANCHOR21
10586	add	x0, x0, :lo12:.LANCHOR21
10587	ldrb	w0, [x0, w20, sxtw]
10588	cbz	w0, .L1564
10589	adrp	x0, .LANCHOR20
10590	add	x0, x0, :lo12:.LANCHOR20
10591	add	x2, x0, 4
10592	mov	w3, 0
10593	ldrb	w1, [x0, 1]
10594	mov	w0, w20
10595	bl	HynixSetRRPara
10596.L1564:
10597	mov	w0, w20
10598	bl	NandcFlashCs
10599	cmp	w22, 1
10600	bne	.L1565
10601	adrp	x0, .LANCHOR16
10602	ldrb	w0, [x0, #:lo12:.LANCHOR16]
10603	cbz	w0, .L1565
10604	mov	w0, w20
10605	bl	flash_enter_slc_mode
10606.L1566:
10607	ldr	w1, [x29, 112]
10608	mov	w0, w20
10609	bl	FlashProgFirstCmd
10610	ldrb	w2, [x29, 108]
10611	mov	w1, 1
10612	ldp	x3, x4, [x25, 8]
10613	mov	w0, w20
10614	bl	NandcXferData
10615	cbz	w23, .L1567
10616	ldr	w1, [x29, 112]
10617	mov	w0, w20
10618	bl	FlashProgDpFirstCmd
10619	ldr	w1, [x29, 116]
10620	adrp	x0, .LANCHOR18
10621	add	x0, x0, :lo12:.LANCHOR18
10622	ldr	w0, [x0, x1, lsl 2]
10623	ldr	w1, [x29, 112]
10624	cmp	w0, 0
10625	mov	w0, w20
10626	cset	w2, ne
10627	bl	FlashWaitReadyEN
10628	adrp	x0, .LANCHOR4
10629	ldr	w1, [x29, 112]
10630	ldr	w0, [x0, #:lo12:.LANCHOR4]
10631	add	w1, w1, w0
10632	mov	w0, w20
10633	bl	FlashProgDpSecondCmd
10634	add	w0, w21, 1
10635	mov	w1, 56
10636	ldrb	w2, [x29, 108]
10637	nop // between mem op and mult-accumulate
10638	umaddl	x0, w0, w1, x19
10639	mov	w1, 1
10640	ldp	x3, x4, [x0, 8]
10641	mov	w0, w20
10642	bl	NandcXferData
10643.L1567:
10644	ldr	w1, [x29, 112]
10645	mov	w0, w20
10646	add	w21, w21, w23
10647	bl	FlashProgSecondCmd
10648	mov	w0, w20
10649	bl	NandcFlashDeCs
10650	b	.L1558
10651.L1562:
10652	bl	NandcFlashCs
10653	ldr	w1, [x29, 116]
10654	adrp	x0, .LANCHOR18
10655	add	x0, x0, :lo12:.LANCHOR18
10656	ldr	w0, [x0, x1, lsl 2]
10657	ldr	w1, [x29, 112]
10658	cmp	w0, 0
10659	mov	w0, w20
10660	cset	w2, ne
10661	bl	FlashWaitReadyEN
10662	mov	w0, w20
10663	bl	NandcFlashDeCs
10664	b	.L1563
10665.L1565:
10666	mov	w0, w20
10667	bl	flash_exit_slc_mode
10668	b	.L1566
10669.L1571:
10670	mov	w0, w20
10671	bl	FlashWaitCmdDone
10672	cmp	w22, 1
10673	bne	.L1570
10674	ldrb	w0, [x21]
10675	cbz	w0, .L1570
10676	mov	x0, 24
10677	mul	x0, x20, x0
10678	ldrb	w0, [x0, x23]
10679	bl	flash_exit_slc_mode
10680.L1570:
10681	add	x20, x20, 1
10682	b	.L1569
10683.L1572:
10684	mov	w0, 56
10685	and	w20, w24, 255
10686	adrp	x23, .LANCHOR206
10687	mov	x25, x23
10688	umaddl	x24, w24, w0, x19
10689.L1573:
10690	cmp	x24, x19
10691	beq	.L1580
10692	ldr	w0, [x19]
10693	cmn	w0, #1
10694	bne	.L1574
10695	ldr	w1, [x19, 4]
10696	adrp	x0, .LC30
10697	add	x0, x0, :lo12:.LC30
10698	bl	printf
10699.L1575:
10700	sub	w20, w20, #1
10701	add	x19, x19, 56
10702	and	w20, w20, 255
10703	b	.L1573
10704.L1574:
10705	adrp	x21, .LANCHOR207
10706	mov	w4, w20
10707	add	x3, x29, 116
10708	add	x2, x29, 112
10709	mov	w1, w22
10710	mov	x0, x19
10711	bl	LogAddr2PhyAddr
10712	ldr	x27, [x23, #:lo12:.LANCHOR206]
10713	ldr	x26, [x21, #:lo12:.LANCHOR207]
10714	mov	x2, 56
10715	mov	x1, x19
10716	add	x0, x29, 120
10717	str	wzr, [x27]
10718	str	wzr, [x26]
10719	bl	memcpy
10720	stp	x27, x26, [x29, 128]
10721	mov	w2, w22
10722	mov	w1, 1
10723	add	x0, x29, 120
10724	bl	FlashReadPages
10725	ldr	w26, [x29, 120]
10726	cmn	w26, #1
10727	bne	.L1576
10728	ldr	w1, [x19, 4]
10729	adrp	x0, .LC31
10730	add	x0, x0, :lo12:.LC31
10731	bl	printf
10732	str	w26, [x19]
10733.L1576:
10734	ldr	x0, [x19, 16]
10735	cbz	x0, .L1577
10736	ldr	w2, [x0]
10737	ldr	x0, [x21, #:lo12:.LANCHOR207]
10738	ldr	w3, [x0]
10739	cmp	w2, w3
10740	beq	.L1577
10741	ldr	w1, [x19, 4]
10742	adrp	x0, .LC33
10743	add	x0, x0, :lo12:.LC33
10744	bl	printf
10745	mov	w0, -1
10746	str	w0, [x19]
10747.L1577:
10748	ldr	x0, [x19, 8]
10749	cbz	x0, .L1575
10750	ldr	w2, [x0]
10751	ldr	x0, [x25, #:lo12:.LANCHOR206]
10752	ldr	w3, [x0]
10753	cmp	w2, w3
10754	beq	.L1575
10755	ldr	w1, [x19, 4]
10756	adrp	x0, .LC34
10757	add	x0, x0, :lo12:.LC34
10758	bl	printf
10759	mov	w0, -1
10760	str	w0, [x19]
10761	b	.L1575
10762	.size	FlashProgPages, .-FlashProgPages
10763	.section	.text.FlashTestBlk,"ax",@progbits
10764	.align	2
10765	.global	FlashTestBlk
10766	.type	FlashTestBlk, %function
10767FlashTestBlk:
10768	stp	x29, x30, [sp, -160]!
10769	add	x29, sp, 0
10770	stp	x19, x20, [sp, 16]
10771	and	w19, w0, 65535
10772	adrp	x0, .LANCHOR156
10773	ldr	w0, [x0, #:lo12:.LANCHOR156]
10774	cmp	w19, w0
10775	bcc	.L1608
10776	adrp	x20, .LANCHOR152
10777	mov	w2, 32
10778	mov	w1, 165
10779	lsl	w19, w19, 10
10780	ldr	x0, [x20, #:lo12:.LANCHOR152]
10781	str	x0, [x29, 48]
10782	add	x0, x29, 96
10783	str	x0, [x29, 56]
10784	bl	ftl_memset
10785	ldr	x0, [x20, #:lo12:.LANCHOR152]
10786	mov	w2, 8
10787	mov	w1, 90
10788	bl	ftl_memset
10789	str	w19, [x29, 44]
10790	mov	w2, 1
10791	add	x0, x29, 40
10792	mov	w1, w2
10793	bl	FlashEraseBlocks
10794	mov	w3, 1
10795	add	x0, x29, 40
10796	mov	w2, w3
10797	mov	w1, w3
10798	bl	FlashProgPages
10799	ldr	w0, [x29, 40]
10800	mov	w2, 1
10801	mov	w1, 0
10802	cmp	w0, 0
10803	add	x0, x29, 40
10804	csetm	w19, ne
10805	bl	FlashEraseBlocks
10806.L1606:
10807	mov	w0, w19
10808	ldp	x19, x20, [sp, 16]
10809	ldp	x29, x30, [sp], 160
10810	ret
10811.L1608:
10812	mov	w19, 0
10813	b	.L1606
10814	.size	FlashTestBlk, .-FlashTestBlk
10815	.section	.text.FtlLowFormatEraseBlock,"ax",@progbits
10816	.align	2
10817	.global	FtlLowFormatEraseBlock
10818	.type	FtlLowFormatEraseBlock, %function
10819FtlLowFormatEraseBlock:
10820	stp	x29, x30, [sp, -144]!
10821	add	x29, sp, 0
10822	stp	x25, x26, [sp, 64]
10823	and	w26, w0, 65535
10824	adrp	x0, .LANCHOR78
10825	stp	x19, x20, [sp, 16]
10826	stp	x21, x22, [sp, 32]
10827	ldr	w0, [x0, #:lo12:.LANCHOR78]
10828	stp	x23, x24, [sp, 48]
10829	stp	x27, x28, [sp, 80]
10830	cbnz	w0, .L1633
10831	adrp	x23, .LANCHOR28
10832	and	w25, w1, 255
10833	adrp	x20, .LANCHOR16
10834	adrp	x1, .LANCHOR38
10835	ldrb	w0, [x23, #:lo12:.LANCHOR28]
10836	adrp	x21, .LANCHOR79
10837	str	w0, [x29, 136]
10838	mov	x8, 56
10839	adrp	x0, .LANCHOR75
10840	ldrb	w10, [x20, #:lo12:.LANCHOR16]
10841	ldrh	w11, [x1, #:lo12:.LANCHOR38]
10842	adrp	x7, .LANCHOR47
10843	str	w26, [x0, #:lo12:.LANCHOR75]
10844	adrp	x0, .LANCHOR196
10845	ldr	x6, [x21, #:lo12:.LANCHOR79]
10846	add	x7, x7, :lo12:.LANCHOR47
10847	ldr	x12, [x0, #:lo12:.LANCHOR196]
10848	adrp	x0, .LANCHOR58
10849	mov	w14, w8
10850	mov	x5, 0
10851	ldrh	w13, [x0, #:lo12:.LANCHOR58]
10852	mov	w24, 0
10853	mov	w19, 0
10854	str	x1, [x29, 128]
10855	str	x0, [x29, 120]
10856.L1612:
10857	cmp	w11, w5, uxth
10858	bhi	.L1616
10859	cbz	w24, .L1610
10860	cmp	w10, 0
10861	mov	w2, w24
10862	cset	w22, ne
10863	strb	wzr, [x23, #:lo12:.LANCHOR28]
10864	mov	w1, w22
10865	mov	x0, x6
10866	bl	FlashEraseBlocks
10867	mov	x27, 0
10868	ldrb	w0, [x29, 136]
10869	strb	w0, [x23, #:lo12:.LANCHOR28]
10870	mov	w0, 56
10871	umull	x24, w24, w0
10872.L1619:
10873	ldr	x0, [x21, #:lo12:.LANCHOR79]
10874	add	x1, x0, x27
10875	ldr	w0, [x0, x27]
10876	cmn	w0, #1
10877	bne	.L1618
10878	ldr	w0, [x1, 4]
10879	add	w19, w19, 1
10880	and	w19, w19, 65535
10881	lsr	w0, w0, 10
10882	bl	FtlBbmMapBadBlock
10883.L1618:
10884	add	x27, x27, 56
10885	cmp	x27, x24
10886	bne	.L1619
10887	cbnz	w25, .L1620
10888	and	w22, w22, 65535
10889	mov	w28, 6
10890	mov	w27, 1
10891.L1621:
10892	adrp	x0, .LANCHOR47
10893	mov	w24, 0
10894	add	x0, x0, :lo12:.LANCHOR47
10895	str	x0, [x29, 112]
10896.L1629:
10897	ldr	x0, [x29, 128]
10898	mov	x5, 0
10899	ldr	x6, [x21, #:lo12:.LANCHOR79]
10900	mov	w20, 0
10901	mov	w12, 56
10902	ldrh	w7, [x0, #:lo12:.LANCHOR38]
10903	adrp	x0, .LANCHOR193
10904	ldr	x8, [x0, #:lo12:.LANCHOR193]
10905	adrp	x0, .LANCHOR194
10906	ldr	x10, [x0, #:lo12:.LANCHOR194]
10907	ldr	x0, [x29, 120]
10908	ldrh	w11, [x0, #:lo12:.LANCHOR58]
10909.L1622:
10910	cmp	w7, w5, uxth
10911	bhi	.L1625
10912	cbz	w20, .L1610
10913	mov	w2, w22
10914	mov	w1, w20
10915	strb	wzr, [x23, #:lo12:.LANCHOR28]
10916	mov	w3, 1
10917	mov	x0, x6
10918	bl	FlashProgPages
10919	mov	w1, 56
10920	ldrb	w0, [x29, 136]
10921	strb	w0, [x23, #:lo12:.LANCHOR28]
10922	mov	x2, 0
10923	umull	x1, w20, w1
10924.L1628:
10925	ldr	x0, [x21, #:lo12:.LANCHOR79]
10926	add	x3, x0, x2
10927	ldr	w0, [x0, x2]
10928	cbz	w0, .L1627
10929	ldr	w0, [x3, 4]
10930	add	w19, w19, 1
10931	stp	x2, x1, [x29, 96]
10932	and	w19, w19, 65535
10933	lsr	w0, w0, 10
10934	bl	FtlBbmMapBadBlock
10935	ldp	x2, x1, [x29, 96]
10936.L1627:
10937	add	x2, x2, 56
10938	cmp	x1, x2
10939	bne	.L1628
10940	add	w24, w24, w28
10941	and	w24, w24, 65535
10942	cmp	w27, w24
10943	bhi	.L1629
10944	mov	x23, 0
10945.L1631:
10946	cbz	w25, .L1630
10947	ldr	x0, [x21, #:lo12:.LANCHOR79]
10948	add	x1, x0, x23
10949	ldr	w0, [x0, x23]
10950	cbnz	w0, .L1630
10951	ldr	w0, [x1, 4]
10952	mov	w1, 1
10953	str	x2, [x29, 136]
10954	lsr	w0, w0, 10
10955	bl	FtlFreeSysBlkQueueIn
10956	ldr	x2, [x29, 136]
10957.L1630:
10958	add	x23, x23, 56
10959	cmp	x23, x2
10960	bne	.L1631
10961	cmp	w26, 63
10962	ccmp	w25, 0, 0, hi
10963	beq	.L1610
10964	ldr	x0, [x21, #:lo12:.LANCHOR79]
10965	mov	w2, w20
10966	mov	w1, w22
10967	bl	FlashEraseBlocks
10968.L1610:
10969	mov	w0, w19
10970	ldp	x19, x20, [sp, 16]
10971	ldp	x21, x22, [sp, 32]
10972	ldp	x23, x24, [sp, 48]
10973	ldp	x25, x26, [sp, 64]
10974	ldp	x27, x28, [sp, 80]
10975	ldp	x29, x30, [sp], 144
10976	ret
10977.L1616:
10978	mul	x0, x5, x8
10979	mov	w1, w26
10980	str	wzr, [x6, x0]
10981	ldrb	w0, [x7, x5]
10982	bl	V2P_block
10983	and	w15, w0, 65535
10984	mov	w22, w15
10985	cbz	w25, .L1613
10986	bl	IsBlkInVendorPart
10987	cbnz	w0, .L1614
10988.L1613:
10989	mov	w0, w22
10990	bl	FtlBbmIsBadBlock
10991	cbnz	w0, .L1615
10992	umaddl	x1, w24, w14, x6
10993	lsl	w15, w15, 10
10994	mul	w0, w24, w13
10995	add	w24, w24, 1
10996	and	w24, w24, 65535
10997	asr	w0, w0, 2
10998	str	w15, [x1, 4]
10999	add	x0, x12, x0, sxtw 2
11000	stp	xzr, x0, [x1, 8]
11001.L1614:
11002	add	x5, x5, 1
11003	b	.L1612
11004.L1615:
11005	add	w19, w19, 1
11006	and	w19, w19, 65535
11007	b	.L1614
11008.L1620:
11009	adrp	x0, .LANCHOR53
11010	ldrh	w27, [x0, #:lo12:.LANCHOR53]
11011	ldrb	w0, [x20, #:lo12:.LANCHOR16]
11012	cbnz	w0, .L1634
11013	lsr	w28, w27, 2
11014	mov	w22, 1
11015	b	.L1621
11016.L1634:
11017	mov	w22, 1
11018	mov	w28, w22
11019	b	.L1621
11020.L1625:
11021	mov	x0, 56
11022	mov	w1, w26
11023	mul	x0, x5, x0
11024	str	wzr, [x6, x0]
11025	ldr	x0, [x29, 112]
11026	ldrb	w0, [x0, x5]
11027	bl	V2P_block
11028	and	w13, w0, 65535
11029	mov	w14, w13
11030	cbz	w25, .L1623
11031	bl	IsBlkInVendorPart
11032	cbnz	w0, .L1624
11033.L1623:
11034	mov	w0, w14
11035	bl	FtlBbmIsBadBlock
11036	cbnz	w0, .L1624
11037	umaddl	x1, w20, w12, x6
11038	add	w13, w24, w13, lsl 10
11039	mul	w0, w20, w11
11040	add	w20, w20, 1
11041	and	w20, w20, 65535
11042	asr	w0, w0, 2
11043	str	w13, [x1, 4]
11044	add	x0, x10, x0, sxtw 2
11045	stp	x8, x0, [x1, 8]
11046.L1624:
11047	add	x5, x5, 1
11048	b	.L1622
11049.L1633:
11050	mov	w19, 0
11051	b	.L1610
11052	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
11053	.section	.text.FtlBbmTblFlush,"ax",@progbits
11054	.align	2
11055	.global	FtlBbmTblFlush
11056	.type	FtlBbmTblFlush, %function
11057FtlBbmTblFlush:
11058	stp	x29, x30, [sp, -96]!
11059	add	x29, sp, 0
11060	stp	x21, x22, [sp, 32]
11061	adrp	x22, .LANCHOR78
11062	stp	x19, x20, [sp, 16]
11063	ldr	w0, [x22, #:lo12:.LANCHOR78]
11064	stp	x23, x24, [sp, 48]
11065	stp	x25, x26, [sp, 64]
11066	stp	x27, x28, [sp, 80]
11067	cbnz	w0, .L1657
11068	adrp	x24, .LANCHOR195
11069	adrp	x23, .LANCHOR189
11070	adrp	x20, .LANCHOR211
11071	add	x19, x20, :lo12:.LANCHOR211
11072	ldr	x1, [x24, #:lo12:.LANCHOR195]
11073	adrp	x21, .LANCHOR76
11074	ldr	x0, [x23, #:lo12:.LANCHOR189]
11075	add	x26, x21, :lo12:.LANCHOR76
11076	stp	x0, x1, [x19, 8]
11077	adrp	x1, .LANCHOR57
11078	adrp	x27, .LANCHOR45
11079	adrp	x28, .LANCHOR126
11080	ldrh	w2, [x1, #:lo12:.LANCHOR57]
11081	add	x26, x26, 32
11082	mov	w25, 0
11083	add	x27, x27, :lo12:.LANCHOR45
11084	add	x28, x28, :lo12:.LANCHOR126
11085	mov	w1, 0
11086	bl	ftl_memset
11087.L1658:
11088	ldrh	w0, [x27]
11089	cmp	w25, w0
11090	blt	.L1659
11091	add	x20, x20, :lo12:.LANCHOR211
11092	add	x19, x21, :lo12:.LANCHOR76
11093	mov	w2, 16
11094	mov	w1, 255
11095	adrp	x26, .LC35
11096	adrp	x27, .LANCHOR53
11097	ldr	x28, [x20, 16]
11098	add	x26, x26, :lo12:.LC35
11099	add	x27, x27, :lo12:.LANCHOR53
11100	mov	w25, 0
11101	mov	x0, x28
11102	bl	ftl_memset
11103	mov	w0, -3887
11104	strh	w0, [x28]
11105	ldr	w0, [x19, 8]
11106	str	w0, [x28, 4]
11107	ldrh	w0, [x21, #:lo12:.LANCHOR76]
11108	mov	w21, 0
11109	strh	w0, [x28, 2]
11110	ldrh	w0, [x19, 4]
11111	strh	w0, [x28, 8]
11112	ldrh	w0, [x19, 6]
11113	strh	w0, [x28, 10]
11114	adrp	x0, .LANCHOR37
11115	ldr	w0, [x0, #:lo12:.LANCHOR37]
11116	strh	w0, [x28, 12]
11117.L1660:
11118	ldrh	w1, [x19]
11119	ldrh	w4, [x28, 10]
11120	ldrh	w2, [x19, 2]
11121	ldrh	w3, [x19, 4]
11122	ldr	x0, [x23, #:lo12:.LANCHOR189]
11123	str	x0, [x20, 8]
11124	ldr	x0, [x24, #:lo12:.LANCHOR195]
11125	str	x0, [x20, 16]
11126	orr	w0, w2, w1, lsl 10
11127	str	wzr, [x20]
11128	str	w0, [x20, 4]
11129	mov	x0, x26
11130	bl	printf
11131	ldrh	w0, [x27]
11132	ldrh	w1, [x19, 2]
11133	sub	w0, w0, #1
11134	cmp	w1, w0
11135	blt	.L1661
11136	ldr	w0, [x19, 8]
11137	mov	w2, 1
11138	ldrh	w1, [x19, 4]
11139	add	w0, w0, 1
11140	str	w0, [x19, 8]
11141	str	w0, [x28, 4]
11142	ldrh	w0, [x19]
11143	strh	w0, [x28, 8]
11144	strh	w0, [x19, 4]
11145	adrp	x0, .LANCHOR79
11146	strh	w1, [x19]
11147	lsl	w1, w1, 10
11148	ldr	x0, [x0, #:lo12:.LANCHOR79]
11149	str	w1, [x20, 4]
11150	strh	wzr, [x19, 2]
11151	str	w1, [x0, 4]
11152	mov	w1, w2
11153	bl	FlashEraseBlocks
11154.L1661:
11155	mov	w3, 1
11156	mov	x0, x20
11157	mov	w2, w3
11158	mov	w1, w3
11159	bl	FlashProgPages
11160	ldrh	w0, [x19, 2]
11161	add	w0, w0, 1
11162	strh	w0, [x19, 2]
11163	ldr	w0, [x20]
11164	cmn	w0, #1
11165	bne	.L1662
11166	ldr	w1, [x20, 4]
11167	add	w21, w21, 1
11168	adrp	x0, .LC36
11169	and	w21, w21, 65535
11170	add	x0, x0, :lo12:.LC36
11171	bl	printf
11172	cmp	w21, 3
11173	bls	.L1660
11174	ldr	w1, [x20, 4]
11175	mov	w2, w21
11176	adrp	x0, .LC37
11177	add	x0, x0, :lo12:.LC37
11178	bl	printf
11179	mov	w0, 1
11180	str	w0, [x22, #:lo12:.LANCHOR78]
11181.L1657:
11182	mov	w0, 0
11183	ldp	x19, x20, [sp, 16]
11184	ldp	x21, x22, [sp, 32]
11185	ldp	x23, x24, [sp, 48]
11186	ldp	x25, x26, [sp, 64]
11187	ldp	x27, x28, [sp, 80]
11188	ldp	x29, x30, [sp], 96
11189	ret
11190.L1659:
11191	ldrh	w2, [x28]
11192	ldr	x1, [x26], 8
11193	ldr	x0, [x19, 8]
11194	mul	w3, w2, w25
11195	lsl	w2, w2, 2
11196	add	w25, w25, 1
11197	add	x0, x0, x3, sxtw 2
11198	bl	ftl_memcpy
11199	b	.L1658
11200.L1662:
11201	add	w25, w25, 1
11202	cmp	w25, 1
11203	beq	.L1660
11204	cmp	w0, 256
11205	beq	.L1660
11206	b	.L1657
11207	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
11208	.section	.text.allocate_data_superblock,"ax",@progbits
11209	.align	2
11210	.global	allocate_data_superblock
11211	.type	allocate_data_superblock, %function
11212allocate_data_superblock:
11213	adrp	x1, .LANCHOR78
11214	ldr	w1, [x1, #:lo12:.LANCHOR78]
11215	cbnz	w1, .L1736
11216	stp	x29, x30, [sp, -128]!
11217	add	x29, sp, 0
11218	stp	x19, x20, [sp, 16]
11219	mov	x19, x0
11220	stp	x27, x28, [sp, 80]
11221	adrp	x27, .LANCHOR87
11222	add	x0, x27, :lo12:.LANCHOR87
11223	stp	x23, x24, [sp, 48]
11224	str	x0, [x29, 120]
11225	adrp	x0, .LANCHOR90
11226	add	x23, x0, :lo12:.LANCHOR90
11227	stp	x21, x22, [sp, 32]
11228	stp	x25, x26, [sp, 64]
11229.L1727:
11230	ldr	x1, [x29, 120]
11231	adrp	x0, .LANCHOR90
11232	adrp	x24, .LANCHOR40
11233	ldrh	w0, [x0, #:lo12:.LANCHOR90]
11234	ldrh	w1, [x1]
11235	add	w0, w0, w1
11236	ldrh	w1, [x24, #:lo12:.LANCHOR40]
11237	cmp	w0, w1
11238	ble	.L1675
11239	mov	w2, 3507
11240	adrp	x1, .LANCHOR212
11241	adrp	x0, .LC5
11242	add	x1, x1, :lo12:.LANCHOR212
11243	add	x0, x0, :lo12:.LC5
11244	bl	printf
11245	adrp	x1, .LC6
11246	adrp	x0, .LC7
11247	add	x1, x1, :lo12:.LC6
11248	add	x0, x0, :lo12:.LC7
11249	bl	printf
11250.L1675:
11251	adrp	x0, .LANCHOR95
11252	add	x0, x0, :lo12:.LANCHOR95
11253	cmp	x19, x0
11254	bne	.L1676
11255	adrp	x1, .LANCHOR177
11256	ldrh	w2, [x23]
11257	ldr	w3, [x1, #:lo12:.LANCHOR177]
11258	lsr	w0, w2, 1
11259	add	w4, w0, 1
11260	mul	w1, w2, w3
11261	add	w1, w4, w1, lsr 2
11262	adrp	x4, .LANCHOR104
11263	and	w1, w1, 65535
11264	ldr	w4, [x4, #:lo12:.LANCHOR104]
11265	cbz	w4, .L1677
11266	adrp	x4, .LANCHOR175
11267	ldr	w4, [x4, #:lo12:.LANCHOR175]
11268	cmp	w4, 39
11269	bhi	.L1677
11270	cmp	w4, 2
11271	bls	.L1711
11272	tbz	x2, 0, .L1707
11273	cbz	w3, .L1711
11274.L1707:
11275	mov	w1, w0
11276	b	.L1677
11277.L1676:
11278	ldrb	w0, [x19, 8]
11279	cmp	w0, 1
11280	bne	.L1711
11281	adrp	x0, .LANCHOR44
11282	ldrh	w0, [x0, #:lo12:.LANCHOR44]
11283	cmp	w0, 1
11284	beq	.L1711
11285	adrp	x0, .LANCHOR16
11286	ldrb	w0, [x0, #:lo12:.LANCHOR16]
11287	cbnz	w0, .L1711
11288	adrp	x2, .LANCHOR104
11289	ldrh	w0, [x23]
11290	ldr	w2, [x2, #:lo12:.LANCHOR104]
11291	lsr	w1, w0, 3
11292	cbz	w2, .L1677
11293	adrp	x2, .LANCHOR175
11294	ldr	w2, [x2, #:lo12:.LANCHOR175]
11295	cmp	w2, 1
11296	bhi	.L1677
11297	mov	w1, 7
11298	mul	w1, w0, w1
11299	lsr	w1, w1, 3
11300.L1677:
11301	cbz	w1, .L1678
11302	sub	w1, w1, #1
11303	and	w1, w1, 65535
11304.L1678:
11305	ldrb	w2, [x19, 8]
11306	adrp	x0, .LANCHOR89
11307	add	x0, x0, :lo12:.LANCHOR89
11308	bl	List_pop_index_node
11309	and	w22, w0, 65535
11310	ldrh	w0, [x23]
11311	cbnz	w0, .L1679
11312	mov	w2, 3532
11313	adrp	x1, .LANCHOR212
11314	adrp	x0, .LC5
11315	add	x1, x1, :lo12:.LANCHOR212
11316	add	x0, x0, :lo12:.LC5
11317	bl	printf
11318	adrp	x1, .LC6
11319	adrp	x0, .LC7
11320	add	x1, x1, :lo12:.LC6
11321	add	x0, x0, :lo12:.LC7
11322	bl	printf
11323.L1679:
11324	ldrh	w0, [x23]
11325	sub	w0, w0, #1
11326	strh	w0, [x23]
11327	ldrh	w0, [x24, #:lo12:.LANCHOR40]
11328	cmp	w0, w22
11329	bls	.L1727
11330	adrp	x25, .LANCHOR85
11331	ubfiz	x21, x22, 1, 16
11332	ldr	x0, [x25, #:lo12:.LANCHOR85]
11333	ldrh	w20, [x0, x21]
11334	cbnz	w20, .L1727
11335	strh	w22, [x19]
11336	mov	x0, x19
11337	bl	make_superblock
11338	ldrb	w0, [x19, 7]
11339	cbnz	w0, .L1681
11340	ldr	x0, [x25, #:lo12:.LANCHOR85]
11341	mov	w1, -1
11342	strh	w1, [x0, x21]
11343	ldrh	w1, [x27, #:lo12:.LANCHOR87]
11344	ldrh	w0, [x23]
11345	add	w0, w0, w1
11346	ldrh	w1, [x24, #:lo12:.LANCHOR40]
11347	cmp	w0, w1
11348	ble	.L1727
11349	mov	w2, 3552
11350	adrp	x1, .LANCHOR212
11351	adrp	x0, .LC5
11352	add	x1, x1, :lo12:.LANCHOR212
11353	add	x0, x0, :lo12:.LC5
11354	bl	printf
11355	adrp	x1, .LC6
11356	adrp	x0, .LC7
11357	add	x1, x1, :lo12:.LC6
11358	add	x0, x0, :lo12:.LC7
11359	bl	printf
11360	b	.L1727
11361.L1711:
11362	mov	w1, 0
11363	b	.L1678
11364.L1681:
11365	ldrh	w1, [x27, #:lo12:.LANCHOR87]
11366	ldrh	w0, [x23]
11367	add	w0, w0, w1
11368	ldrh	w1, [x24, #:lo12:.LANCHOR40]
11369	cmp	w0, w1
11370	ble	.L1683
11371	mov	w2, 3556
11372	adrp	x1, .LANCHOR212
11373	adrp	x0, .LC5
11374	add	x1, x1, :lo12:.LANCHOR212
11375	add	x0, x0, :lo12:.LC5
11376	bl	printf
11377	adrp	x1, .LC6
11378	adrp	x0, .LC7
11379	add	x1, x1, :lo12:.LC6
11380	add	x0, x0, :lo12:.LC7
11381	bl	printf
11382.L1683:
11383	adrp	x1, .LANCHOR38
11384	adrp	x25, .LANCHOR79
11385	mov	w2, 56
11386	mov	x3, 8
11387	ldrh	w1, [x1, #:lo12:.LANCHOR38]
11388	add	x26, x19, 16
11389	ldr	x4, [x25, #:lo12:.LANCHOR79]
11390	mov	x5, x26
11391	mov	w6, 65535
11392	add	x0, x4, 8
11393	umaddl	x1, w2, w1, x3
11394	add	x1, x4, x1
11395.L1684:
11396	cmp	x1, x0
11397	bne	.L1686
11398	cbnz	w20, .L1687
11399	mov	w2, 3571
11400	adrp	x1, .LANCHOR212
11401	adrp	x0, .LC5
11402	add	x1, x1, :lo12:.LANCHOR212
11403	add	x0, x0, :lo12:.LC5
11404	bl	printf
11405	adrp	x1, .LC6
11406	adrp	x0, .LC7
11407	add	x1, x1, :lo12:.LC6
11408	add	x0, x0, :lo12:.LC7
11409	bl	printf
11410.L1687:
11411	adrp	x0, .LANCHOR104
11412	adrp	x28, .LANCHOR80
11413	ldr	w0, [x0, #:lo12:.LANCHOR104]
11414	cbz	w0, .L1688
11415	adrp	x0, .LANCHOR93
11416	add	x0, x0, :lo12:.LANCHOR93
11417	cmp	x19, x0
11418	bne	.L1688
11419	ldr	x0, [x28, #:lo12:.LANCHOR80]
11420	ldrh	w0, [x0, x21]
11421	cmp	w0, 40
11422	bls	.L1688
11423	strb	wzr, [x19, 8]
11424.L1688:
11425	adrp	x0, .LANCHOR213
11426	ldrh	w0, [x0, #:lo12:.LANCHOR213]
11427	cmp	w0, w22
11428	bne	.L1689
11429	mov	w2, 3578
11430	adrp	x1, .LANCHOR212
11431	adrp	x0, .LC5
11432	add	x1, x1, :lo12:.LANCHOR212
11433	add	x0, x0, :lo12:.LC5
11434	bl	printf
11435	adrp	x1, .LC6
11436	adrp	x0, .LC7
11437	add	x1, x1, :lo12:.LC6
11438	add	x0, x0, :lo12:.LC7
11439	bl	printf
11440.L1689:
11441	ldrb	w0, [x19, 8]
11442	adrp	x6, .LANCHOR48
11443	adrp	x5, .LANCHOR172
11444	adrp	x4, .LANCHOR173
11445	ldr	x1, [x28, #:lo12:.LANCHOR80]
11446	cbnz	w0, .L1690
11447	ldrh	w0, [x1, x21]
11448	cbz	w0, .L1691
11449	ldrh	w2, [x6, #:lo12:.LANCHOR48]
11450	add	w0, w0, w2
11451.L1739:
11452	strh	w0, [x1, x21]
11453	mov	w1, 0
11454	ldr	w0, [x5, #:lo12:.LANCHOR172]
11455	add	w0, w0, 1
11456	str	w0, [x5, #:lo12:.LANCHOR172]
11457	mov	w0, w22
11458	bl	ftl_set_blk_mode
11459.L1693:
11460	ldr	x0, [x28, #:lo12:.LANCHOR80]
11461	ldrh	w1, [x0, x21]
11462	adrp	x0, .LANCHOR174
11463	ldr	w2, [x0, #:lo12:.LANCHOR174]
11464	cmp	w1, w2
11465	bls	.L1694
11466	str	w1, [x0, #:lo12:.LANCHOR174]
11467.L1694:
11468	ldr	w2, [x5, #:lo12:.LANCHOR172]
11469	mov	x3, 4
11470	ldr	w1, [x4, #:lo12:.LANCHOR173]
11471	ldrh	w0, [x6, #:lo12:.LANCHOR48]
11472	madd	w0, w0, w2, w1
11473	ldrh	w1, [x24, #:lo12:.LANCHOR40]
11474	udiv	w0, w0, w1
11475	adrp	x1, .LANCHOR214
11476	str	w0, [x1, #:lo12:.LANCHOR214]
11477	adrp	x0, .LANCHOR199
11478	ldr	x1, [x0, #:lo12:.LANCHOR199]
11479	ldr	w0, [x1, 16]
11480	add	w0, w0, 1
11481	str	w0, [x1, 16]
11482	mov	w1, 56
11483	ldr	x0, [x25, #:lo12:.LANCHOR79]
11484	nop // between mem op and mult-accumulate
11485	umaddl	x1, w1, w20, x3
11486	add	x2, x0, 4
11487	add	x1, x0, x1
11488.L1695:
11489	cmp	x1, x2
11490	bne	.L1696
11491	adrp	x1, .LANCHOR16
11492	ldrb	w1, [x1, #:lo12:.LANCHOR16]
11493	cbz	w1, .L1697
11494	ldrb	w1, [x19, 8]
11495	mov	w2, w20
11496	cmp	w1, 1
11497	bne	.L1698
11498	mov	w1, 0
11499.L1740:
11500	bl	FlashEraseBlocks
11501.L1697:
11502	ldrb	w1, [x19, 8]
11503	mov	w2, w20
11504	ldr	x0, [x25, #:lo12:.LANCHOR79]
11505	mov	x24, 0
11506	bl	FlashEraseBlocks
11507	mov	w1, 0
11508	mov	x3, 56
11509.L1699:
11510	cmp	w20, w24, uxth
11511	bhi	.L1701
11512	cbz	w1, .L1702
11513	mov	w0, w22
11514	bl	update_multiplier_value
11515	bl	FtlBbmTblFlush
11516.L1702:
11517	ldrb	w0, [x19, 7]
11518	cbnz	w0, .L1703
11519	adrp	x0, .LANCHOR85
11520	mov	w1, -1
11521	ldr	x0, [x0, #:lo12:.LANCHOR85]
11522	strh	w1, [x0, x21]
11523	b	.L1727
11524.L1686:
11525	ldrh	w3, [x5]
11526	stp	xzr, xzr, [x0]
11527	cmp	w3, w6
11528	beq	.L1685
11529	umaddl	x7, w20, w2, x4
11530	add	w20, w20, 1
11531	and	w20, w20, 65535
11532	lsl	w3, w3, 10
11533	str	w3, [x7, 4]
11534.L1685:
11535	add	x0, x0, 56
11536	add	x5, x5, 2
11537	b	.L1684
11538.L1691:
11539	mov	w0, 2
11540	b	.L1739
11541.L1690:
11542	ldrh	w0, [x1, x21]
11543	add	w0, w0, 1
11544	strh	w0, [x1, x21]
11545	ldr	w0, [x4, #:lo12:.LANCHOR173]
11546	add	w0, w0, 1
11547	str	w0, [x4, #:lo12:.LANCHOR173]
11548	mov	w0, w22
11549	bl	ftl_set_blk_mode.part.11
11550	b	.L1693
11551.L1696:
11552	ldr	w3, [x2]
11553	and	w3, w3, -1024
11554	str	w3, [x2], 56
11555	b	.L1695
11556.L1698:
11557	mov	w1, 1
11558	b	.L1740
11559.L1701:
11560	mul	x0, x24, x3
11561	ldr	x2, [x25, #:lo12:.LANCHOR79]
11562	add	x4, x2, x0
11563	ldr	w2, [x2, x0]
11564	cmn	w2, #1
11565	bne	.L1700
11566	add	w1, w1, 1
11567	ldr	w0, [x4, 4]
11568	str	x3, [x29, 104]
11569	stp	w2, w1, [x29, 112]
11570	lsr	w0, w0, 10
11571	bl	FtlBbmMapBadBlock
11572	ldp	w2, w1, [x29, 112]
11573	strh	w2, [x26]
11574	ldr	x3, [x29, 104]
11575	ldrb	w0, [x19, 7]
11576	sub	w0, w0, #1
11577	strb	w0, [x19, 7]
11578.L1700:
11579	add	x24, x24, 1
11580	add	x26, x26, 2
11581	b	.L1699
11582.L1703:
11583	adrp	x1, .LANCHOR52
11584	adrp	x2, .LANCHOR164
11585	strh	wzr, [x19, 2]
11586	ldrh	w1, [x1, #:lo12:.LANCHOR52]
11587	strh	w22, [x19]
11588	strb	wzr, [x19, 6]
11589	mul	w0, w0, w1
11590	ldr	w1, [x2, #:lo12:.LANCHOR164]
11591	str	w1, [x19, 12]
11592	add	w1, w1, 1
11593	str	w1, [x2, #:lo12:.LANCHOR164]
11594	adrp	x1, .LANCHOR85
11595	and	w0, w0, 65535
11596	strh	w0, [x19, 4]
11597	ldr	x1, [x1, #:lo12:.LANCHOR85]
11598	strh	w0, [x1, x21]
11599	ldrh	w0, [x19, 4]
11600	cbz	w0, .L1704
11601	ldrb	w0, [x19, 7]
11602	cbnz	w0, .L1674
11603.L1704:
11604	mov	w2, 3642
11605	adrp	x1, .LANCHOR212
11606	adrp	x0, .LC5
11607	add	x1, x1, :lo12:.LANCHOR212
11608	add	x0, x0, :lo12:.LC5
11609	bl	printf
11610	adrp	x1, .LC6
11611	adrp	x0, .LC7
11612	add	x1, x1, :lo12:.LC6
11613	add	x0, x0, :lo12:.LC7
11614	bl	printf
11615.L1674:
11616	ldp	x19, x20, [sp, 16]
11617	mov	w0, 0
11618	ldp	x21, x22, [sp, 32]
11619	ldp	x23, x24, [sp, 48]
11620	ldp	x25, x26, [sp, 64]
11621	ldp	x27, x28, [sp, 80]
11622	ldp	x29, x30, [sp], 128
11623	ret
11624.L1736:
11625	mov	w0, 0
11626	ret
11627	.size	allocate_data_superblock, .-allocate_data_superblock
11628	.section	.text.FtlGcFreeBadSuperBlk,"ax",@progbits
11629	.align	2
11630	.global	FtlGcFreeBadSuperBlk
11631	.type	FtlGcFreeBadSuperBlk, %function
11632FtlGcFreeBadSuperBlk:
11633	stp	x29, x30, [sp, -96]!
11634	add	x29, sp, 0
11635	stp	x21, x22, [sp, 32]
11636	adrp	x21, .LANCHOR119
11637	stp	x25, x26, [sp, 64]
11638	and	w25, w0, 65535
11639	ldrh	w0, [x21, #:lo12:.LANCHOR119]
11640	stp	x19, x20, [sp, 16]
11641	stp	x23, x24, [sp, 48]
11642	str	x27, [sp, 80]
11643	cbz	w0, .L1742
11644	adrp	x23, .LANCHOR120
11645	add	x24, x23, :lo12:.LANCHOR120
11646	mov	w19, 0
11647.L1743:
11648	adrp	x0, .LANCHOR38
11649	ldrh	w0, [x0, #:lo12:.LANCHOR38]
11650	cmp	w0, w19
11651	bhi	.L1749
11652	bl	FtlGcReFreshBadBlk
11653.L1742:
11654	mov	w0, 0
11655	ldr	x27, [sp, 80]
11656	ldp	x19, x20, [sp, 16]
11657	ldp	x21, x22, [sp, 32]
11658	ldp	x23, x24, [sp, 48]
11659	ldp	x25, x26, [sp, 64]
11660	ldp	x29, x30, [sp], 96
11661	ret
11662.L1749:
11663	adrp	x0, .LANCHOR47
11664	add	x0, x0, :lo12:.LANCHOR47
11665	mov	w1, w25
11666	add	x22, x21, :lo12:.LANCHOR119
11667	mov	w20, 0
11668	ldrb	w0, [x0, w19, sxtw]
11669	bl	V2P_block
11670	and	w26, w0, 65535
11671.L1744:
11672	ldrh	w0, [x22]
11673	cmp	w0, w20
11674	bhi	.L1748
11675	add	w19, w19, 1
11676	and	w19, w19, 65535
11677	b	.L1743
11678.L1748:
11679	add	x0, x23, :lo12:.LANCHOR120
11680	add	w27, w20, 1
11681	ldrh	w0, [x0, w20, sxtw 1]
11682	cmp	w0, w26
11683	bne	.L1745
11684	mov	w0, w26
11685	bl	FtlBbmMapBadBlock
11686	bl	FtlBbmTblFlush
11687	ldrh	w1, [x22]
11688	sxtw	x3, w27
11689	and	x4, x20, 65535
11690	mov	x0, 0
11691.L1746:
11692	add	w2, w20, w0
11693	cmp	w1, w2, uxth
11694	bhi	.L1747
11695	sub	w1, w1, #1
11696	strh	w1, [x22]
11697.L1745:
11698	and	w20, w27, 65535
11699	b	.L1744
11700.L1747:
11701	add	x2, x3, x0
11702	ldrh	w5, [x24, x2, lsl 1]
11703	add	x2, x4, x0
11704	add	x0, x0, 1
11705	strh	w5, [x24, x2, lsl 1]
11706	b	.L1746
11707	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
11708	.section	.text.update_vpc_list,"ax",@progbits
11709	.align	2
11710	.global	update_vpc_list
11711	.type	update_vpc_list, %function
11712update_vpc_list:
11713	stp	x29, x30, [sp, -32]!
11714	adrp	x1, .LANCHOR85
11715	add	x29, sp, 0
11716	stp	x19, x20, [sp, 16]
11717	and	w19, w0, 65535
11718	ldr	x1, [x1, #:lo12:.LANCHOR85]
11719	ubfiz	x0, x19, 1, 16
11720	ldrh	w0, [x1, x0]
11721	cbnz	w0, .L1755
11722	adrp	x0, .LANCHOR213
11723	ldrh	w1, [x0, #:lo12:.LANCHOR213]
11724	cmp	w1, w19
11725	bne	.L1756
11726	mov	w1, -1
11727	strh	w1, [x0, #:lo12:.LANCHOR213]
11728.L1757:
11729	adrp	x20, .LANCHOR87
11730	mov	w1, w19
11731	adrp	x0, .LANCHOR84
11732	add	x0, x0, :lo12:.LANCHOR84
11733	bl	List_remove_node
11734	ldrh	w0, [x20, #:lo12:.LANCHOR87]
11735	cbnz	w0, .L1759
11736	mov	w2, 3767
11737	adrp	x1, .LANCHOR215
11738	adrp	x0, .LC5
11739	add	x1, x1, :lo12:.LANCHOR215
11740	add	x0, x0, :lo12:.LC5
11741	bl	printf
11742	adrp	x1, .LC6
11743	adrp	x0, .LC7
11744	add	x1, x1, :lo12:.LC6
11745	add	x0, x0, :lo12:.LC7
11746	bl	printf
11747.L1759:
11748	ldrh	w0, [x20, #:lo12:.LANCHOR87]
11749	sub	w0, w0, #1
11750	strh	w0, [x20, #:lo12:.LANCHOR87]
11751	mov	w0, w19
11752	bl	free_data_superblock
11753	mov	w0, w19
11754	bl	FtlGcFreeBadSuperBlk
11755	adrp	x0, .LANCHOR90
11756	ldrh	w1, [x20, #:lo12:.LANCHOR87]
11757	ldrh	w0, [x0, #:lo12:.LANCHOR90]
11758	add	w0, w0, w1
11759	adrp	x1, .LANCHOR40
11760	ldrh	w1, [x1, #:lo12:.LANCHOR40]
11761	cmp	w0, w1
11762	ble	.L1763
11763	mov	w2, 3770
11764	adrp	x1, .LANCHOR215
11765	adrp	x0, .LC5
11766	add	x1, x1, :lo12:.LANCHOR215
11767	add	x0, x0, :lo12:.LC5
11768	bl	printf
11769	adrp	x1, .LC6
11770	adrp	x0, .LC7
11771	add	x1, x1, :lo12:.LC6
11772	add	x0, x0, :lo12:.LC7
11773	bl	printf
11774.L1763:
11775	mov	w0, 1
11776	b	.L1754
11777.L1756:
11778	adrp	x0, .LANCHOR93
11779	ldrh	w0, [x0, #:lo12:.LANCHOR93]
11780	cmp	w0, w19
11781	beq	.L1762
11782	adrp	x0, .LANCHOR94
11783	ldrh	w0, [x0, #:lo12:.LANCHOR94]
11784	cmp	w0, w19
11785	beq	.L1762
11786	adrp	x0, .LANCHOR95
11787	ldrh	w0, [x0, #:lo12:.LANCHOR95]
11788	cmp	w0, w19
11789	bne	.L1757
11790.L1762:
11791	mov	w0, 0
11792.L1754:
11793	ldp	x19, x20, [sp, 16]
11794	ldp	x29, x30, [sp], 32
11795	ret
11796.L1755:
11797	mov	w0, w19
11798	bl	List_update_data_list
11799	b	.L1762
11800	.size	update_vpc_list, .-update_vpc_list
11801	.section	.text.decrement_vpc_count,"ax",@progbits
11802	.align	2
11803	.global	decrement_vpc_count
11804	.type	decrement_vpc_count, %function
11805decrement_vpc_count:
11806	stp	x29, x30, [sp, -48]!
11807	add	x29, sp, 0
11808	stp	x19, x20, [sp, 16]
11809	and	w19, w0, 65535
11810	stp	x21, x22, [sp, 32]
11811	mov	w0, 65535
11812	cmp	w19, w0
11813	beq	.L1766
11814	adrp	x20, .LANCHOR85
11815	ubfiz	x21, x19, 1, 16
11816	ldr	x1, [x20, #:lo12:.LANCHOR85]
11817	ldrh	w0, [x1, x21]
11818	cbnz	w0, .L1767
11819	mov	w2, 0
11820	mov	w1, w19
11821	adrp	x0, .LC38
11822	add	x0, x0, :lo12:.LC38
11823	bl	printf
11824	ldr	x0, [x20, #:lo12:.LANCHOR85]
11825	ldrh	w0, [x0, x21]
11826	cbnz	w0, .L1768
11827	mov	w2, 3786
11828	adrp	x1, .LANCHOR216
11829	adrp	x0, .LC5
11830	add	x1, x1, :lo12:.LANCHOR216
11831	add	x0, x0, :lo12:.LC5
11832	bl	printf
11833	adrp	x1, .LC6
11834	adrp	x0, .LC7
11835	add	x1, x1, :lo12:.LC6
11836	add	x0, x0, :lo12:.LC7
11837	bl	printf
11838.L1768:
11839	ldr	x0, [x20, #:lo12:.LANCHOR85]
11840	adrp	x6, .LANCHOR89
11841	add	x6, x6, :lo12:.LANCHOR89
11842	mov	w1, 32
11843	strh	w1, [x0, x21]
11844	mov	w1, w19
11845	mov	x0, x6
11846	bl	test_node_in_list
11847	cbz	w0, .L1769
11848	adrp	x22, .LANCHOR90
11849	mov	w1, w19
11850	mov	x0, x6
11851	bl	List_remove_node
11852	ldrh	w0, [x22, #:lo12:.LANCHOR90]
11853	cbnz	w0, .L1770
11854	mov	w2, 3792
11855	adrp	x1, .LANCHOR216
11856	adrp	x0, .LC5
11857	add	x1, x1, :lo12:.LANCHOR216
11858	add	x0, x0, :lo12:.LC5
11859	bl	printf
11860	adrp	x1, .LC6
11861	adrp	x0, .LC7
11862	add	x1, x1, :lo12:.LC6
11863	add	x0, x0, :lo12:.LC7
11864	bl	printf
11865.L1770:
11866	ldrh	w0, [x22, #:lo12:.LANCHOR90]
11867	sub	w0, w0, #1
11868	strh	w0, [x22, #:lo12:.LANCHOR90]
11869	mov	w0, w19
11870	bl	INSERT_DATA_LIST
11871	ldr	x0, [x20, #:lo12:.LANCHOR85]
11872	mov	w1, w19
11873	ldrh	w2, [x0, x21]
11874	adrp	x0, .LC39
11875	add	x0, x0, :lo12:.LC39
11876	bl	printf
11877.L1769:
11878	mov	w0, w19
11879	bl	FtlGcRefreshBlock
11880.L1773:
11881	mov	w20, 0
11882	b	.L1765
11883.L1767:
11884	sub	w0, w0, #1
11885	strh	w0, [x1, x21]
11886.L1766:
11887	adrp	x21, .LANCHOR136
11888	mov	w1, 65535
11889	ldrh	w0, [x21, #:lo12:.LANCHOR136]
11890	cmp	w0, w1
11891	bne	.L1772
11892	strh	w19, [x21, #:lo12:.LANCHOR136]
11893	b	.L1773
11894.L1772:
11895	cmp	w19, w0
11896	beq	.L1773
11897	bl	update_vpc_list
11898	cmp	w0, 0
11899	adrp	x1, .LANCHOR83
11900	adrp	x0, .LANCHOR84
11901	strh	w19, [x21, #:lo12:.LANCHOR136]
11902	cset	w20, ne
11903	ldr	x1, [x1, #:lo12:.LANCHOR83]
11904	ldr	x0, [x0, #:lo12:.LANCHOR84]
11905	sub	x0, x0, x1
11906	mov	x1, -6148914691236517206
11907	asr	x0, x0, 1
11908	movk	x1, 0xaaab, lsl 0
11909	mul	x0, x0, x1
11910	adrp	x1, .LANCHOR85
11911	ldr	x1, [x1, #:lo12:.LANCHOR85]
11912	and	x2, x0, 65535
11913	ldrh	w1, [x1, x2, lsl 1]
11914	cbnz	w1, .L1765
11915	cmp	w19, w0, uxth
11916	beq	.L1765
11917	mov	w2, 3816
11918	adrp	x1, .LANCHOR216
11919	adrp	x0, .LC5
11920	add	x1, x1, :lo12:.LANCHOR216
11921	add	x0, x0, :lo12:.LC5
11922	bl	printf
11923	adrp	x1, .LC6
11924	adrp	x0, .LC7
11925	add	x1, x1, :lo12:.LC6
11926	add	x0, x0, :lo12:.LC7
11927	bl	printf
11928.L1765:
11929	mov	w0, w20
11930	ldp	x19, x20, [sp, 16]
11931	ldp	x21, x22, [sp, 32]
11932	ldp	x29, x30, [sp], 48
11933	ret
11934	.size	decrement_vpc_count, .-decrement_vpc_count
11935	.section	.text.FtlSlcSuperblockCheck,"ax",@progbits
11936	.align	2
11937	.global	FtlSlcSuperblockCheck
11938	.type	FtlSlcSuperblockCheck, %function
11939FtlSlcSuperblockCheck:
11940	ldrh	w1, [x0, 4]
11941	cbz	w1, .L1790
11942	stp	x29, x30, [sp, -64]!
11943	add	x29, sp, 0
11944	stp	x19, x20, [sp, 16]
11945	mov	w20, 65535
11946	ldrh	w1, [x0]
11947	stp	x21, x22, [sp, 32]
11948	str	x23, [sp, 48]
11949	cmp	w1, w20
11950	beq	.L1778
11951	mov	x19, x0
11952	ldrb	w0, [x0, 6]
11953	adrp	x22, .LANCHOR16
11954	adrp	x21, .LANCHOR123
11955	add	x0, x0, 8
11956	add	x23, x22, :lo12:.LANCHOR16
11957	add	x21, x21, :lo12:.LANCHOR123
11958	ldrh	w0, [x19, x0, lsl 1]
11959.L1782:
11960	cmp	w0, w20
11961	beq	.L1784
11962	ldrb	w0, [x19, 8]
11963	cmp	w0, 1
11964	bne	.L1785
11965	ldrb	w1, [x23]
11966	cbnz	w1, .L1785
11967	ldrh	w1, [x19, 2]
11968	ldrh	w1, [x21, x1, lsl 1]
11969	cmp	w1, w20
11970	bne	.L1785
11971	ldrh	w0, [x19, 4]
11972	sub	w0, w0, #1
11973	strh	w0, [x19, 4]
11974	ldrh	w0, [x19]
11975	bl	decrement_vpc_count
11976	ldrh	w0, [x19, 4]
11977	cbnz	w0, .L1784
11978	ldrh	w0, [x19, 2]
11979	add	w0, w0, 1
11980.L1793:
11981	strh	w0, [x19, 2]
11982	strb	wzr, [x19, 6]
11983.L1778:
11984	ldp	x19, x20, [sp, 16]
11985	ldp	x21, x22, [sp, 32]
11986	ldr	x23, [sp, 48]
11987	ldp	x29, x30, [sp], 64
11988	ret
11989.L1784:
11990	ldrb	w0, [x19, 6]
11991	adrp	x1, .LANCHOR38
11992	add	w0, w0, 1
11993	ldrh	w1, [x1, #:lo12:.LANCHOR38]
11994	and	w0, w0, 255
11995	strb	w0, [x19, 6]
11996	cmp	w1, w0
11997	bne	.L1783
11998	ldrh	w0, [x19, 2]
11999	strb	wzr, [x19, 6]
12000	add	w0, w0, 1
12001	strh	w0, [x19, 2]
12002.L1783:
12003	ldrb	w0, [x19, 6]
12004	add	x0, x0, 8
12005	ldrh	w0, [x19, x0, lsl 1]
12006	b	.L1782
12007.L1785:
12008	ldrb	w1, [x22, #:lo12:.LANCHOR16]
12009	cbz	w1, .L1778
12010	cmp	w0, 1
12011	bne	.L1778
12012	adrp	x0, .LANCHOR53
12013	ldrh	w1, [x19, 2]
12014	ldrh	w0, [x0, #:lo12:.LANCHOR53]
12015	cmp	w1, w0
12016	bcc	.L1778
12017	ldrh	w0, [x19]
12018	adrp	x1, .LANCHOR85
12019	ldrh	w3, [x19, 4]
12020	ldr	x2, [x1, #:lo12:.LANCHOR85]
12021	lsl	x0, x0, 1
12022	ldrh	w1, [x2, x0]
12023	sub	w1, w1, w3
12024	strh	w1, [x2, x0]
12025	adrp	x0, .LANCHOR52
12026	strh	wzr, [x19, 4]
12027	ldrh	w0, [x0, #:lo12:.LANCHOR52]
12028	b	.L1793
12029.L1790:
12030	ret
12031	.size	FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
12032	.section	.text.get_new_active_ppa,"ax",@progbits
12033	.align	2
12034	.global	get_new_active_ppa
12035	.type	get_new_active_ppa, %function
12036get_new_active_ppa:
12037	stp	x29, x30, [sp, -80]!
12038	add	x29, sp, 0
12039	stp	x19, x20, [sp, 16]
12040	mov	x19, x0
12041	ldrh	w1, [x0]
12042	mov	w0, 65535
12043	stp	x21, x22, [sp, 32]
12044	stp	x23, x24, [sp, 48]
12045	cmp	w1, w0
12046	str	x25, [sp, 64]
12047	bne	.L1795
12048	mov	w2, 3700
12049	adrp	x1, .LANCHOR217
12050	adrp	x0, .LC5
12051	add	x1, x1, :lo12:.LANCHOR217
12052	add	x0, x0, :lo12:.LC5
12053	bl	printf
12054	adrp	x1, .LC6
12055	adrp	x0, .LC7
12056	add	x1, x1, :lo12:.LC6
12057	add	x0, x0, :lo12:.LC7
12058	bl	printf
12059.L1795:
12060	adrp	x20, .LANCHOR52
12061	ldrh	w1, [x19, 2]
12062	ldrh	w0, [x20, #:lo12:.LANCHOR52]
12063	cmp	w1, w0
12064	bne	.L1796
12065	mov	w2, 3701
12066	adrp	x1, .LANCHOR217
12067	adrp	x0, .LC5
12068	add	x1, x1, :lo12:.LANCHOR217
12069	add	x0, x0, :lo12:.LC5
12070	bl	printf
12071	adrp	x1, .LC6
12072	adrp	x0, .LC7
12073	add	x1, x1, :lo12:.LC6
12074	add	x0, x0, :lo12:.LC7
12075	bl	printf
12076.L1796:
12077	ldrh	w0, [x19, 4]
12078	cbnz	w0, .L1797
12079	mov	w2, 3702
12080	adrp	x1, .LANCHOR217
12081	adrp	x0, .LC5
12082	add	x1, x1, :lo12:.LANCHOR217
12083	add	x0, x0, :lo12:.LC5
12084	bl	printf
12085	adrp	x1, .LC6
12086	adrp	x0, .LC7
12087	add	x1, x1, :lo12:.LC6
12088	add	x0, x0, :lo12:.LC7
12089	bl	printf
12090.L1797:
12091	ldrb	w0, [x19, 6]
12092	adrp	x21, .LANCHOR38
12093	strb	wzr, [x19, 10]
12094	adrp	x23, .LANCHOR16
12095	add	x0, x0, 8
12096	adrp	x24, .LANCHOR123
12097	add	x23, x23, :lo12:.LANCHOR16
12098	add	x24, x24, :lo12:.LANCHOR123
12099	add	x25, x21, :lo12:.LANCHOR38
12100	ldrh	w22, [x19, x0, lsl 1]
12101.L1798:
12102	mov	w2, 65535
12103	cmp	w22, w2
12104	beq	.L1799
12105	ldrb	w0, [x19, 8]
12106	ldrh	w1, [x19, 4]
12107	cmp	w0, 1
12108	ldrh	w0, [x19, 2]
12109	bne	.L1801
12110	ldrb	w3, [x23]
12111	cbnz	w3, .L1801
12112	ldrh	w3, [x24, w0, sxtw 1]
12113	cmp	w3, w2
12114	bne	.L1801
12115	ldrh	w0, [x19]
12116	sub	w1, w1, #1
12117	strh	w1, [x19, 4]
12118	bl	decrement_vpc_count
12119.L1799:
12120	ldrb	w0, [x19, 6]
12121	ldrh	w1, [x25]
12122	add	w0, w0, 1
12123	and	w0, w0, 255
12124	strb	w0, [x19, 6]
12125	cmp	w1, w0
12126	bne	.L1800
12127	ldrh	w0, [x19, 2]
12128	strb	wzr, [x19, 6]
12129	add	w0, w0, 1
12130	strh	w0, [x19, 2]
12131.L1800:
12132	ldrb	w0, [x19, 6]
12133	add	x0, x0, 8
12134	ldrh	w22, [x19, x0, lsl 1]
12135	b	.L1798
12136.L1801:
12137	adrp	x23, .LANCHOR16
12138	adrp	x24, .LANCHOR123
12139	orr	w22, w0, w22, lsl 10
12140	add	x23, x23, :lo12:.LANCHOR16
12141	add	x24, x24, :lo12:.LANCHOR123
12142	sub	w1, w1, #1
12143	strh	w1, [x19, 4]
12144.L1802:
12145	ldrb	w0, [x19, 6]
12146	mov	w1, 65535
12147	ldrh	w3, [x21, #:lo12:.LANCHOR38]
12148.L1804:
12149	add	w0, w0, 1
12150	and	w0, w0, 255
12151	cmp	w0, w3
12152	bne	.L1803
12153	ldrh	w0, [x19, 2]
12154	add	w0, w0, 1
12155	strh	w0, [x19, 2]
12156	mov	w0, 0
12157.L1803:
12158	add	x2, x19, x0, sxtw 1
12159	ldrh	w2, [x2, 16]
12160	cmp	w2, w1
12161	beq	.L1804
12162	strb	w0, [x19, 6]
12163	ldrb	w0, [x19, 8]
12164	cmp	w0, 1
12165	bne	.L1805
12166	ldrb	w2, [x23]
12167	ldrh	w0, [x19, 2]
12168	cbnz	w2, .L1806
12169	ldrh	w0, [x24, w0, sxtw 1]
12170	cmp	w0, w1
12171	bne	.L1805
12172	ldrh	w0, [x19, 4]
12173	cbz	w0, .L1805
12174	sub	w0, w0, #1
12175	strh	w0, [x19, 4]
12176	ldrh	w0, [x19]
12177	bl	decrement_vpc_count
12178	b	.L1802
12179.L1806:
12180	adrp	x1, .LANCHOR53
12181	ldrh	w1, [x1, #:lo12:.LANCHOR53]
12182	cmp	w0, w1
12183	bcc	.L1805
12184	ldrh	w0, [x19]
12185	adrp	x1, .LANCHOR85
12186	ldrh	w3, [x19, 4]
12187	ldr	x2, [x1, #:lo12:.LANCHOR85]
12188	lsl	x0, x0, 1
12189	ldrh	w1, [x2, x0]
12190	sub	w1, w1, w3
12191	strh	w1, [x2, x0]
12192	strh	wzr, [x19, 4]
12193	ldrh	w0, [x20, #:lo12:.LANCHOR52]
12194	strh	w0, [x19, 2]
12195	strb	wzr, [x19, 6]
12196.L1805:
12197	ldrh	w1, [x19, 2]
12198	ldrh	w0, [x20, #:lo12:.LANCHOR52]
12199	cmp	w1, w0
12200	bne	.L1794
12201	ldrh	w0, [x19, 4]
12202	cbz	w0, .L1794
12203	mov	w2, 3752
12204	adrp	x1, .LANCHOR217
12205	adrp	x0, .LC5
12206	add	x1, x1, :lo12:.LANCHOR217
12207	add	x0, x0, :lo12:.LC5
12208	bl	printf
12209	adrp	x1, .LC6
12210	adrp	x0, .LC7
12211	add	x1, x1, :lo12:.LC6
12212	add	x0, x0, :lo12:.LC7
12213	bl	printf
12214.L1794:
12215	mov	w0, w22
12216	ldr	x25, [sp, 64]
12217	ldp	x19, x20, [sp, 16]
12218	ldp	x21, x22, [sp, 32]
12219	ldp	x23, x24, [sp, 48]
12220	ldp	x29, x30, [sp], 80
12221	ret
12222	.size	get_new_active_ppa, .-get_new_active_ppa
12223	.section	.text.FtlVpcTblFlush,"ax",@progbits
12224	.align	2
12225	.global	FtlVpcTblFlush
12226	.type	FtlVpcTblFlush, %function
12227FtlVpcTblFlush:
12228	stp	x29, x30, [sp, -128]!
12229	adrp	x0, .LANCHOR78
12230	add	x29, sp, 0
12231	ldr	w1, [x0, #:lo12:.LANCHOR78]
12232	stp	x19, x20, [sp, 16]
12233	stp	x21, x22, [sp, 32]
12234	stp	x23, x24, [sp, 48]
12235	stp	x25, x26, [sp, 64]
12236	stp	x27, x28, [sp, 80]
12237	str	x0, [x29, 112]
12238	cbnz	w1, .L1819
12239	adrp	x25, .LANCHOR195
12240	adrp	x27, .LANCHOR218
12241	adrp	x23, .LANCHOR189
12242	adrp	x20, .LANCHOR211
12243	ldr	x19, [x25, #:lo12:.LANCHOR195]
12244	add	x22, x20, :lo12:.LANCHOR211
12245	ldr	x0, [x23, #:lo12:.LANCHOR189]
12246	add	x1, x27, :lo12:.LANCHOR218
12247	ldrh	w2, [x27, #:lo12:.LANCHOR218]
12248	mov	w3, 19539
12249	stp	x0, x19, [x22, 8]
12250	movk	w3, 0x4654, lsl 16
12251	strh	w2, [x19, 2]
12252	mov	w2, -3932
12253	strh	w2, [x19]
12254	adrp	x24, .LANCHOR164
12255	ldr	w2, [x1, 8]
12256	adrp	x26, .LANCHOR57
12257	ldrh	w1, [x1, 6]
12258	stp	w2, wzr, [x19, 4]
12259	adrp	x2, .LANCHOR82
12260	add	x21, x2, :lo12:.LANCHOR82
12261	str	wzr, [x19, 12]
12262	str	w3, [x2, #:lo12:.LANCHOR82]
12263	mov	w2, 99
12264	movk	w2, 0x5000, lsl 16
12265	strh	w1, [x21, 8]
12266	adrp	x1, .LANCHOR45
12267	str	w2, [x21, 4]
12268	adrp	x2, .LANCHOR93
12269	ldrh	w1, [x1, #:lo12:.LANCHOR45]
12270	strb	w1, [x21, 10]
12271	add	x1, x2, :lo12:.LANCHOR93
12272	ldrh	w2, [x2, #:lo12:.LANCHOR93]
12273	strh	w2, [x21, 14]
12274	ldrb	w3, [x1, 6]
12275	ldrh	w2, [x1, 2]
12276	ldrb	w1, [x1, 8]
12277	strb	w1, [x21, 11]
12278	orr	w2, w3, w2, lsl 6
12279	strh	w2, [x21, 16]
12280	adrp	x2, .LANCHOR94
12281	add	x1, x2, :lo12:.LANCHOR94
12282	ldrh	w2, [x2, #:lo12:.LANCHOR94]
12283	ldrb	w3, [x1, 6]
12284	strh	w2, [x21, 18]
12285	ldrh	w2, [x1, 2]
12286	ldrb	w1, [x1, 8]
12287	strb	w1, [x21, 12]
12288	orr	w2, w3, w2, lsl 6
12289	strh	w2, [x21, 20]
12290	adrp	x2, .LANCHOR95
12291	add	x1, x2, :lo12:.LANCHOR95
12292	ldrh	w2, [x2, #:lo12:.LANCHOR95]
12293	strh	w2, [x21, 22]
12294	ldrb	w3, [x1, 6]
12295	ldrh	w2, [x1, 2]
12296	ldrb	w1, [x1, 8]
12297	strb	w1, [x21, 13]
12298	adrp	x1, .LANCHOR172
12299	orr	w2, w3, w2, lsl 6
12300	strh	w2, [x21, 24]
12301	ldr	w1, [x1, #:lo12:.LANCHOR172]
12302	str	w1, [x21, 32]
12303	ldr	w1, [x24, #:lo12:.LANCHOR164]
12304	str	w1, [x21, 40]
12305	adrp	x1, .LANCHOR165
12306	ldrh	w2, [x26, #:lo12:.LANCHOR57]
12307	ldr	w1, [x1, #:lo12:.LANCHOR165]
12308	str	w1, [x21, 36]
12309	adrp	x1, .LANCHOR115
12310	ldrh	w1, [x1, #:lo12:.LANCHOR115]
12311	strh	w1, [x21, 44]
12312	adrp	x1, .LANCHOR116
12313	ldrh	w1, [x1, #:lo12:.LANCHOR116]
12314	strh	w1, [x21, 46]
12315	mov	w1, 255
12316	bl	ftl_memset
12317	ldr	x0, [x22, 8]
12318	mov	x1, x21
12319	mov	w2, 48
12320	adrp	x21, .LANCHOR40
12321	bl	ftl_memcpy
12322	adrp	x1, .LANCHOR85
12323	ldrh	w2, [x21, #:lo12:.LANCHOR40]
12324	ldr	x0, [x22, 8]
12325	ldr	x1, [x1, #:lo12:.LANCHOR85]
12326	lsl	w2, w2, 1
12327	add	x0, x0, 48
12328	bl	ftl_memcpy
12329	ldrh	w0, [x21, #:lo12:.LANCHOR40]
12330	adrp	x1, .LANCHOR1
12331	ldr	x3, [x22, 8]
12332	ldr	x1, [x1, #:lo12:.LANCHOR1]
12333	lsr	w2, w0, 3
12334	ubfiz	x0, x0, 1, 16
12335	add	x0, x0, 51
12336	add	w2, w2, 4
12337	and	x0, x0, -4
12338	add	x0, x3, x0
12339	bl	ftl_memcpy
12340	adrp	x0, .LANCHOR69
12341	str	x26, [x29, 104]
12342	ldrh	w0, [x0, #:lo12:.LANCHOR69]
12343	cbz	w0, .L1820
12344	ldrh	w0, [x21, #:lo12:.LANCHOR40]
12345	adrp	x1, .LANCHOR66
12346	ldr	x3, [x22, 8]
12347	ldrh	w2, [x1, #:lo12:.LANCHOR66]
12348	lsr	w1, w0, 3
12349	add	w0, w1, w0, lsl 1
12350	adrp	x1, .LANCHOR134
12351	add	w0, w0, 52
12352	lsl	w2, w2, 2
12353	ldr	x1, [x1, #:lo12:.LANCHOR134]
12354	and	x0, x0, 65532
12355	add	x0, x3, x0
12356	bl	ftl_memcpy
12357.L1820:
12358	mov	w0, 0
12359	bl	FtlUpdateVaildLpn
12360	adrp	x0, .LANCHOR2
12361	add	x22, x20, :lo12:.LANCHOR211
12362	add	x0, x0, :lo12:.LANCHOR2
12363	add	x28, x27, :lo12:.LANCHOR218
12364	str	x0, [x29, 120]
12365	adrp	x27, .LANCHOR53
12366	mov	w21, 0
12367	add	x0, x27, :lo12:.LANCHOR53
12368	mov	w26, 65535
12369	str	x0, [x29, 96]
12370.L1821:
12371	ldrh	w2, [x28, 2]
12372	ldrh	w1, [x28]
12373	ldr	x0, [x23, #:lo12:.LANCHOR189]
12374	str	x0, [x22, 8]
12375	ldr	x0, [x25, #:lo12:.LANCHOR195]
12376	str	x0, [x22, 16]
12377	orr	w0, w2, w1, lsl 10
12378	str	w0, [x22, 4]
12379	ldrh	w0, [x27, #:lo12:.LANCHOR53]
12380	sub	w0, w0, #1
12381	cmp	w2, w0
12382	blt	.L1822
12383	ldrh	w26, [x28, 4]
12384	strh	wzr, [x28, 2]
12385	strh	w1, [x28, 4]
12386	bl	FtlFreeSysBlkQueueOut
12387	ldr	w1, [x24, #:lo12:.LANCHOR164]
12388	str	w1, [x28, 8]
12389	add	w2, w1, 1
12390	str	w2, [x24, #:lo12:.LANCHOR164]
12391	ubfiz	w2, w0, 10, 16
12392	str	w2, [x22, 4]
12393	strh	w0, [x28]
12394	strh	w0, [x19, 2]
12395	str	w1, [x19, 4]
12396.L1822:
12397	ldr	x0, [x29, 120]
12398	ldrb	w0, [x0]
12399	cbz	w0, .L1823
12400	ldr	x0, [x29, 104]
12401	ldrh	w1, [x0, #:lo12:.LANCHOR57]
12402	ldr	x0, [x23, #:lo12:.LANCHOR189]
12403	bl	js_hash
12404	str	w0, [x19, 12]
12405.L1823:
12406	mov	w3, 1
12407	mov	x0, x22
12408	mov	w1, w3
12409	mov	w2, w3
12410	bl	FlashProgPages
12411	ldrh	w0, [x28, 2]
12412	ldr	w1, [x22]
12413	add	w0, w0, 1
12414	and	w0, w0, 65535
12415	strh	w0, [x28, 2]
12416	cmn	w1, #1
12417	bne	.L1824
12418	cmp	w0, 1
12419	bne	.L1825
12420	mov	w2, 1375
12421	adrp	x1, .LANCHOR219
12422	adrp	x0, .LC5
12423	add	x1, x1, :lo12:.LANCHOR219
12424	add	x0, x0, :lo12:.LC5
12425	bl	printf
12426	adrp	x1, .LC6
12427	adrp	x0, .LC7
12428	add	x1, x1, :lo12:.LC6
12429	add	x0, x0, :lo12:.LC7
12430	bl	printf
12431.L1825:
12432	ldrh	w0, [x28, 2]
12433	cmp	w0, 1
12434	bne	.L1826
12435	ldr	x0, [x29, 96]
12436	ldrh	w0, [x0]
12437	sub	w0, w0, #1
12438	strh	w0, [x28, 2]
12439.L1826:
12440	add	w21, w21, 1
12441	and	w21, w21, 65535
12442	cmp	w21, 3
12443	bls	.L1821
12444	add	x20, x20, :lo12:.LANCHOR211
12445	mov	w2, w21
12446	adrp	x0, .LC40
12447	add	x0, x0, :lo12:.LC40
12448	ldr	w1, [x20, 4]
12449	bl	printf
12450	ldr	x1, [x29, 112]
12451	mov	w0, 1
12452	str	w0, [x1, #:lo12:.LANCHOR78]
12453.L1819:
12454	ldp	x19, x20, [sp, 16]
12455	mov	w0, 0
12456	ldp	x21, x22, [sp, 32]
12457	ldp	x23, x24, [sp, 48]
12458	ldp	x25, x26, [sp, 64]
12459	ldp	x27, x28, [sp, 80]
12460	ldp	x29, x30, [sp], 128
12461	ret
12462.L1824:
12463	cmp	w0, 1
12464	beq	.L1821
12465	cmp	w1, 256
12466	beq	.L1821
12467	mov	w0, 65535
12468	cmp	w26, w0
12469	beq	.L1819
12470	mov	w1, 1
12471	mov	w0, w26
12472	bl	FtlFreeSysBlkQueueIn
12473	b	.L1819
12474	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
12475	.section	.text.FtlSuperblockPowerLostFix,"ax",@progbits
12476	.align	2
12477	.global	FtlSuperblockPowerLostFix
12478	.type	FtlSuperblockPowerLostFix, %function
12479FtlSuperblockPowerLostFix:
12480	stp	x29, x30, [sp, -128]!
12481	adrp	x1, .LANCHOR78
12482	add	x29, sp, 0
12483	str	x23, [sp, 48]
12484	ldr	w23, [x1, #:lo12:.LANCHOR78]
12485	stp	x19, x20, [sp, 16]
12486	stp	x21, x22, [sp, 32]
12487	cbnz	w23, .L1842
12488	adrp	x1, .LANCHOR16
12489	ldrb	w1, [x1, #:lo12:.LANCHOR16]
12490	cbz	w1, .L1853
12491	ldrb	w1, [x0, 8]
12492	cmp	w1, 1
12493	bne	.L1853
12494	ldrh	w21, [x0, 4]
12495	mov	w23, w1
12496.L1844:
12497	adrp	x1, .LANCHOR195
12498	mov	x19, x0
12499	mov	w0, -1
12500	str	w0, [x29, 96]
12501	ldr	x20, [x1, #:lo12:.LANCHOR195]
12502	adrp	x0, .LANCHOR189
12503	str	x20, [x29, 88]
12504	mov	w1, -3
12505	ldr	x0, [x0, #:lo12:.LANCHOR189]
12506	adrp	x22, .LANCHOR165
12507	str	x0, [x29, 80]
12508	add	x22, x22, :lo12:.LANCHOR165
12509	str	w1, [x20, 8]
12510	mov	w1, -2
12511	str	w1, [x20, 12]
12512	ldrh	w1, [x19]
12513	strh	w1, [x20, 2]
12514	strh	wzr, [x20]
12515	mov	w1, 61589
12516	str	w1, [x0]
12517	mov	w1, 22136
12518	movk	w1, 0x1234, lsl 16
12519	str	w1, [x0, 4]
12520.L1845:
12521	sub	w21, w21, #1
12522	cmn	w21, #1
12523	beq	.L1848
12524	ldrh	w0, [x19, 4]
12525	cbnz	w0, .L1846
12526.L1848:
12527	ldrh	w0, [x19]
12528	adrp	x1, .LANCHOR85
12529	ldrh	w3, [x19, 4]
12530	ldr	x2, [x1, #:lo12:.LANCHOR85]
12531	lsl	x0, x0, 1
12532	ldrh	w1, [x2, x0]
12533	sub	w1, w1, w3
12534	strh	w1, [x2, x0]
12535	adrp	x0, .LANCHOR52
12536	strb	wzr, [x19, 6]
12537	strh	wzr, [x19, 4]
12538	ldrh	w0, [x0, #:lo12:.LANCHOR52]
12539	strh	w0, [x19, 2]
12540.L1842:
12541	ldp	x19, x20, [sp, 16]
12542	ldp	x21, x22, [sp, 32]
12543	ldr	x23, [sp, 48]
12544	ldp	x29, x30, [sp], 128
12545	ret
12546.L1853:
12547	mov	w21, 12
12548	b	.L1844
12549.L1846:
12550	mov	x0, x19
12551	bl	get_new_active_ppa
12552	str	w0, [x29, 76]
12553	cmn	w0, #1
12554	beq	.L1848
12555	ldr	w0, [x22]
12556	mov	w3, 0
12557	str	w0, [x20, 4]
12558	mov	w2, w23
12559	add	w0, w0, 1
12560	mov	w1, 1
12561	cmn	w0, #1
12562	csel	w0, w0, wzr, ne
12563	str	w0, [x22]
12564	add	x0, x29, 72
12565	bl	FlashProgPages
12566	ldrh	w0, [x19]
12567	bl	decrement_vpc_count
12568	b	.L1845
12569	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
12570	.section	.text.FtlLoadFactoryBbt,"ax",@progbits
12571	.align	2
12572	.global	FtlLoadFactoryBbt
12573	.type	FtlLoadFactoryBbt, %function
12574FtlLoadFactoryBbt:
12575	stp	x29, x30, [sp, -112]!
12576	adrp	x2, .LANCHOR189
12577	adrp	x0, .LANCHOR211
12578	add	x1, x0, :lo12:.LANCHOR211
12579	add	x29, sp, 0
12580	ldr	x2, [x2, #:lo12:.LANCHOR189]
12581	stp	x21, x22, [sp, 32]
12582	mov	x22, x0
12583	stp	x25, x26, [sp, 64]
12584	adrp	x26, .LANCHOR51
12585	stp	x27, x28, [sp, 80]
12586	add	x28, x26, :lo12:.LANCHOR51
12587	stp	x19, x20, [sp, 16]
12588	adrp	x20, .LANCHOR76
12589	stp	x23, x24, [sp, 48]
12590	add	x20, x20, :lo12:.LANCHOR76
12591	str	x2, [x1, 8]
12592	adrp	x2, .LANCHOR195
12593	adrp	x23, .LANCHOR45
12594	add	x20, x20, 12
12595	ldr	x25, [x2, #:lo12:.LANCHOR195]
12596	add	x23, x23, :lo12:.LANCHOR45
12597	mov	w21, 0
12598	mov	w27, -1
12599	str	x25, [x1, 16]
12600.L1859:
12601	ldrh	w0, [x23]
12602	cmp	w21, w0
12603	bcc	.L1864
12604	ldp	x19, x20, [sp, 16]
12605	mov	w0, 0
12606	ldp	x21, x22, [sp, 32]
12607	ldp	x23, x24, [sp, 48]
12608	ldp	x25, x26, [sp, 64]
12609	ldp	x27, x28, [sp, 80]
12610	ldp	x29, x30, [sp], 112
12611	ret
12612.L1864:
12613	ldrh	w19, [x26, #:lo12:.LANCHOR51]
12614	add	x24, x22, :lo12:.LANCHOR211
12615	strh	w27, [x20]
12616	mov	w3, 61664
12617	sub	w19, w19, #1
12618	and	w19, w19, 65535
12619.L1860:
12620	ldrh	w0, [x28]
12621	sub	w1, w0, #15
12622	cmp	w1, w19
12623	bgt	.L1862
12624	madd	w0, w0, w21, w19
12625	mov	w2, 1
12626	str	w3, [x29, 108]
12627	mov	w1, w2
12628	lsl	w0, w0, 10
12629	str	w0, [x24, 4]
12630	mov	x0, x24
12631	bl	FlashReadPages
12632	ldr	w0, [x24]
12633	ldr	w3, [x29, 108]
12634	cmn	w0, #1
12635	beq	.L1861
12636	ldrh	w0, [x25]
12637	cmp	w0, w3
12638	bne	.L1861
12639	strh	w19, [x20]
12640.L1862:
12641	add	w21, w21, 1
12642	add	x20, x20, 2
12643	b	.L1859
12644.L1861:
12645	sub	w19, w19, #1
12646	and	w19, w19, 65535
12647	b	.L1860
12648	.size	FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
12649	.section	.text.FtlGetLastWrittenPage,"ax",@progbits
12650	.align	2
12651	.global	FtlGetLastWrittenPage
12652	.type	FtlGetLastWrittenPage, %function
12653FtlGetLastWrittenPage:
12654	stp	x29, x30, [sp, -192]!
12655	cmp	w1, 1
12656	add	x29, sp, 0
12657	stp	x23, x24, [sp, 48]
12658	mov	w23, w1
12659	stp	x19, x20, [sp, 16]
12660	stp	x21, x22, [sp, 32]
12661	bne	.L1870
12662	adrp	x1, .LANCHOR53
12663	ldrh	w19, [x1, #:lo12:.LANCHOR53]
12664.L1871:
12665	sub	w19, w19, #1
12666	lsl	w21, w0, 10
12667	sxth	w19, w19
12668	add	x1, x29, 128
12669	orr	w0, w19, w21
12670	stp	xzr, x1, [x29, 80]
12671	str	w0, [x29, 76]
12672	mov	w2, w23
12673	mov	w1, 1
12674	add	x0, x29, 72
12675	bl	FlashReadPages
12676	ldr	w0, [x29, 128]
12677	cmn	w0, #1
12678	bne	.L1872
12679	mov	w22, 0
12680	mov	w24, 2
12681.L1873:
12682	cmp	w22, w19
12683	ble	.L1876
12684.L1872:
12685	mov	w0, w19
12686	ldp	x19, x20, [sp, 16]
12687	ldp	x21, x22, [sp, 32]
12688	ldp	x23, x24, [sp, 48]
12689	ldp	x29, x30, [sp], 192
12690	ret
12691.L1870:
12692	adrp	x1, .LANCHOR52
12693	ldrh	w19, [x1, #:lo12:.LANCHOR52]
12694	b	.L1871
12695.L1876:
12696	add	w20, w22, w19
12697	mov	w2, w23
12698	mov	w1, 1
12699	sdiv	w20, w20, w24
12700	sxth	w0, w20
12701	orr	w0, w0, w21
12702	str	w0, [x29, 76]
12703	add	x0, x29, 72
12704	bl	FlashReadPages
12705	ldr	w0, [x29, 128]
12706	cmn	w0, #1
12707	bne	.L1874
12708	ldr	w0, [x29, 132]
12709	cmn	w0, #1
12710	bne	.L1874
12711	ldr	w0, [x29, 72]
12712	cmn	w0, #1
12713	beq	.L1874
12714	sub	w19, w20, #1
12715	sxth	w19, w19
12716	b	.L1873
12717.L1874:
12718	add	w20, w20, 1
12719	sxth	w22, w20
12720	b	.L1873
12721	.size	FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
12722	.section	.text.FtlLoadBbt,"ax",@progbits
12723	.align	2
12724	.global	FtlLoadBbt
12725	.type	FtlLoadBbt, %function
12726FtlLoadBbt:
12727	stp	x29, x30, [sp, -80]!
12728	add	x29, sp, 0
12729	stp	x23, x24, [sp, 48]
12730	adrp	x23, .LANCHOR189
12731	stp	x19, x20, [sp, 16]
12732	adrp	x24, .LANCHOR51
12733	stp	x21, x22, [sp, 32]
12734	adrp	x22, .LANCHOR211
12735	add	x20, x22, :lo12:.LANCHOR211
12736	ldr	x0, [x23, #:lo12:.LANCHOR189]
12737	str	x25, [sp, 64]
12738	mov	w25, 61649
12739	str	x0, [x20, 8]
12740	adrp	x0, .LANCHOR195
12741	ldr	x21, [x0, #:lo12:.LANCHOR195]
12742	str	x21, [x20, 16]
12743	bl	FtlBbtMemInit
12744	ldrh	w19, [x24, #:lo12:.LANCHOR51]
12745	add	x24, x24, :lo12:.LANCHOR51
12746	sub	w19, w19, #1
12747	and	w19, w19, 65535
12748.L1882:
12749	ldrh	w0, [x24]
12750	sub	w0, w0, #47
12751	cmp	w0, w19
12752	bgt	.L1885
12753	lsl	w0, w19, 10
12754	mov	w2, 1
12755	str	w0, [x20, 4]
12756	mov	w1, w2
12757	mov	x0, x20
12758	bl	FlashReadPages
12759	ldr	w0, [x20]
12760	cmn	w0, #1
12761	bne	.L1883
12762	ldr	w0, [x20, 4]
12763	mov	w2, 1
12764	mov	w1, w2
12765	add	w0, w0, 1
12766	str	w0, [x20, 4]
12767	mov	x0, x20
12768	bl	FlashReadPages
12769.L1883:
12770	ldr	w0, [x20]
12771	cmn	w0, #1
12772	beq	.L1884
12773	ldrh	w0, [x21]
12774	cmp	w0, w25
12775	bne	.L1884
12776	adrp	x1, .LANCHOR76
12777	add	x0, x1, :lo12:.LANCHOR76
12778	strh	w19, [x1, #:lo12:.LANCHOR76]
12779	ldr	w1, [x21, 4]
12780	str	w1, [x0, 8]
12781	ldrh	w1, [x21, 8]
12782	strh	w1, [x0, 4]
12783.L1885:
12784	adrp	x19, .LANCHOR76
12785	mov	w0, 65535
12786	add	x20, x19, :lo12:.LANCHOR76
12787	ldrh	w1, [x19, #:lo12:.LANCHOR76]
12788	cmp	w1, w0
12789	beq	.L1899
12790	ldrh	w1, [x20, 4]
12791	cmp	w1, w0
12792	beq	.L1889
12793	add	x0, x22, :lo12:.LANCHOR211
12794	lsl	w1, w1, 10
12795	mov	w2, 1
12796	str	w1, [x0, 4]
12797	mov	w1, w2
12798	bl	FlashReadPages
12799	ldr	w0, [x22, #:lo12:.LANCHOR211]
12800	cmn	w0, #1
12801	beq	.L1889
12802	ldrh	w1, [x21]
12803	mov	w0, 61649
12804	cmp	w1, w0
12805	bne	.L1889
12806	ldr	w1, [x20, 8]
12807	ldr	w0, [x21, 4]
12808	cmp	w0, w1
12809	bls	.L1889
12810	ldrh	w1, [x20, 4]
12811	str	w0, [x20, 8]
12812	ldrh	w0, [x21, 8]
12813	strh	w1, [x19, #:lo12:.LANCHOR76]
12814	strh	w0, [x20, 4]
12815.L1889:
12816	ldrh	w0, [x19, #:lo12:.LANCHOR76]
12817	add	x24, x19, :lo12:.LANCHOR76
12818	mov	w1, 1
12819	mov	w25, 61649
12820	bl	FtlGetLastWrittenPage
12821	sxth	w20, w0
12822	add	w0, w0, 1
12823	strh	w0, [x24, 2]
12824	add	x24, x22, :lo12:.LANCHOR211
12825.L1891:
12826	tbz	w20, #31, .L1894
12827	mov	w2, 339
12828	adrp	x1, .LANCHOR220
12829	adrp	x0, .LC5
12830	add	x1, x1, :lo12:.LANCHOR220
12831	add	x0, x0, :lo12:.LC5
12832	bl	printf
12833	adrp	x1, .LC6
12834	adrp	x0, .LC7
12835	add	x1, x1, :lo12:.LC6
12836	add	x0, x0, :lo12:.LC7
12837	bl	printf
12838.L1893:
12839	add	x0, x19, :lo12:.LANCHOR76
12840	ldrh	w1, [x21, 10]
12841	strh	w1, [x0, 6]
12842	mov	w1, 65535
12843	ldrh	w0, [x21, 12]
12844	cmp	w0, w1
12845	beq	.L1896
12846	adrp	x1, .LANCHOR37
12847	ldr	w2, [x1, #:lo12:.LANCHOR37]
12848	cmp	w0, w2
12849	beq	.L1896
12850	adrp	x1, .LANCHOR41
12851	ldrh	w1, [x1, #:lo12:.LANCHOR41]
12852	lsr	w1, w1, 2
12853	cmp	w2, w1
12854	bcs	.L1896
12855	cmp	w0, w1
12856	bcs	.L1896
12857	bl	FtlSysBlkNumInit
12858.L1896:
12859	add	x19, x19, :lo12:.LANCHOR76
12860	adrp	x21, .LANCHOR45
12861	adrp	x23, .LANCHOR126
12862	add	x19, x19, 32
12863	add	x21, x21, :lo12:.LANCHOR45
12864	add	x23, x23, :lo12:.LANCHOR126
12865	add	x22, x22, :lo12:.LANCHOR211
12866	mov	w20, 0
12867.L1897:
12868	ldrh	w0, [x21]
12869	cmp	w20, w0
12870	bcc	.L1898
12871	mov	w0, 0
12872.L1881:
12873	ldp	x19, x20, [sp, 16]
12874	ldp	x21, x22, [sp, 32]
12875	ldp	x23, x24, [sp, 48]
12876	ldr	x25, [sp, 64]
12877	ldp	x29, x30, [sp], 80
12878	ret
12879.L1884:
12880	sub	w19, w19, #1
12881	and	w19, w19, 65535
12882	b	.L1882
12883.L1894:
12884	ldrh	w0, [x19, #:lo12:.LANCHOR76]
12885	mov	w2, 1
12886	mov	w1, w2
12887	orr	w0, w20, w0, lsl 10
12888	str	w0, [x24, 4]
12889	ldr	x0, [x23, #:lo12:.LANCHOR189]
12890	str	x0, [x24, 8]
12891	mov	x0, x24
12892	bl	FlashReadPages
12893	ldr	w0, [x24]
12894	cmn	w0, #1
12895	beq	.L1892
12896	ldrh	w0, [x21]
12897	cmp	w0, w25
12898	beq	.L1893
12899.L1892:
12900	sub	w20, w20, #1
12901	sxth	w20, w20
12902	b	.L1891
12903.L1898:
12904	ldrh	w2, [x23]
12905	ldr	x0, [x22, 8]
12906	mul	w1, w2, w20
12907	lsl	w2, w2, 2
12908	add	w20, w20, 1
12909	add	x1, x0, x1, lsl 2
12910	ldr	x0, [x19], 8
12911	bl	ftl_memcpy
12912	b	.L1897
12913.L1899:
12914	mov	w0, -1
12915	b	.L1881
12916	.size	FtlLoadBbt, .-FtlLoadBbt
12917	.section	.text.ftl_map_blk_gc,"ax",@progbits
12918	.align	2
12919	.global	ftl_map_blk_gc
12920	.type	ftl_map_blk_gc, %function
12921ftl_map_blk_gc:
12922	stp	x29, x30, [sp, -112]!
12923	add	x29, sp, 0
12924	stp	x19, x20, [sp, 16]
12925	mov	x19, x0
12926	stp	x25, x26, [sp, 64]
12927	adrp	x25, .LANCHOR53
12928	stp	x21, x22, [sp, 32]
12929	stp	x23, x24, [sp, 48]
12930	stp	x27, x28, [sp, 80]
12931	ldr	x20, [x0, 16]
12932	ldr	x26, [x0, 40]
12933	bl	ftl_free_no_use_map_blk
12934	ldrh	w1, [x19, 10]
12935	ldrh	w2, [x19, 8]
12936	sub	w1, w1, #4
12937	cmp	w2, w1
12938	blt	.L1912
12939	ubfiz	x0, x0, 1, 16
12940	ldrh	w21, [x20, x0]
12941	cbz	w21, .L1912
12942	ldr	w1, [x19, 52]
12943	cbnz	w1, .L1912
12944	mov	w1, 1
12945	str	w1, [x19, 52]
12946	strh	wzr, [x20, x0]
12947	ldrh	w0, [x19, 8]
12948	ldrh	w1, [x19, 2]
12949	sub	w0, w0, #1
12950	strh	w0, [x19, 8]
12951	ldrh	w0, [x25, #:lo12:.LANCHOR53]
12952	cmp	w1, w0
12953	bcc	.L1913
12954	mov	x0, x19
12955	bl	ftl_map_blk_alloc_new_blk
12956.L1913:
12957	adrp	x22, .LANCHOR211
12958	adrp	x24, .LANCHOR221
12959	mov	x23, x22
12960	add	x27, x22, :lo12:.LANCHOR211
12961	add	x24, x24, :lo12:.LANCHOR221
12962	mov	w20, 0
12963.L1914:
12964	ldrh	w0, [x19, 6]
12965	cmp	w0, w20
12966	bhi	.L1920
12967	mov	w1, 1
12968	mov	w0, w21
12969	bl	FtlFreeSysBlkQueueIn
12970	str	wzr, [x19, 52]
12971.L1912:
12972	ldrh	w1, [x19, 2]
12973	ldrh	w0, [x25, #:lo12:.LANCHOR53]
12974	cmp	w1, w0
12975	bcc	.L1918
12976	mov	x0, x19
12977	bl	ftl_map_blk_alloc_new_blk
12978	b	.L1918
12979.L1920:
12980	ubfiz	x0, x20, 2, 16
12981	add	x1, x26, x0
12982	str	x1, [x29, 104]
12983	ldr	w1, [x26, x0]
12984	cmp	w21, w1, lsr 10
12985	bne	.L1915
12986	adrp	x2, .LANCHOR190
12987	add	x0, x22, :lo12:.LANCHOR211
12988	ldr	x2, [x2, #:lo12:.LANCHOR190]
12989	str	x2, [x0, 8]
12990	adrp	x2, .LANCHOR195
12991	str	w1, [x0, 4]
12992	ldr	x28, [x2, #:lo12:.LANCHOR195]
12993	mov	w2, 1
12994	str	x28, [x0, 16]
12995	mov	w1, w2
12996	bl	FlashReadPages
12997	ldrh	w0, [x28, 8]
12998	cmp	w0, w20
12999	beq	.L1916
13000	mov	w2, 752
13001	mov	x1, x24
13002	adrp	x0, .LC5
13003	add	x0, x0, :lo12:.LC5
13004	bl	printf
13005	adrp	x1, .LC6
13006	adrp	x0, .LC7
13007	add	x1, x1, :lo12:.LC6
13008	add	x0, x0, :lo12:.LC7
13009	bl	printf
13010.L1916:
13011	ldr	w0, [x27]
13012	ldrh	w2, [x28, 8]
13013	cmn	w0, #1
13014	bne	.L1917
13015.L1919:
13016	ldr	x0, [x29, 104]
13017	add	x23, x23, :lo12:.LANCHOR211
13018	str	wzr, [x0]
13019	adrp	x0, .LC41
13020	add	x0, x0, :lo12:.LC41
13021	ldr	w1, [x23, 4]
13022	bl	printf
13023	adrp	x0, .LANCHOR78
13024	mov	w1, 1
13025	str	w1, [x0, #:lo12:.LANCHOR78]
13026.L1918:
13027	ldp	x19, x20, [sp, 16]
13028	mov	w0, 0
13029	ldp	x21, x22, [sp, 32]
13030	ldp	x23, x24, [sp, 48]
13031	ldp	x25, x26, [sp, 64]
13032	ldp	x27, x28, [sp, 80]
13033	ldp	x29, x30, [sp], 112
13034	ret
13035.L1917:
13036	cmp	w2, w20
13037	bne	.L1919
13038	ldrh	w1, [x28]
13039	ldrh	w0, [x19, 4]
13040	cmp	w1, w0
13041	bne	.L1919
13042	ldr	x2, [x27, 8]
13043	mov	w1, w20
13044	mov	x0, x19
13045	bl	FtlMapWritePage
13046.L1915:
13047	add	w20, w20, 1
13048	and	w20, w20, 65535
13049	b	.L1914
13050	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
13051	.section	.text.Ftl_write_map_blk_to_last_page,"ax",@progbits
13052	.align	2
13053	.global	Ftl_write_map_blk_to_last_page
13054	.type	Ftl_write_map_blk_to_last_page, %function
13055Ftl_write_map_blk_to_last_page:
13056	adrp	x1, .LANCHOR78
13057	ldr	w1, [x1, #:lo12:.LANCHOR78]
13058	cbnz	w1, .L1940
13059	stp	x29, x30, [sp, -64]!
13060	mov	w1, 65535
13061	add	x29, sp, 0
13062	stp	x19, x20, [sp, 16]
13063	mov	x19, x0
13064	stp	x21, x22, [sp, 32]
13065	ldrh	w0, [x0]
13066	stp	x23, x24, [sp, 48]
13067	cmp	w0, w1
13068	ldr	x20, [x19, 16]
13069	bne	.L1927
13070	ldrh	w0, [x19, 8]
13071	cbz	w0, .L1928
13072	mov	w2, 793
13073	adrp	x1, .LANCHOR222
13074	adrp	x0, .LC5
13075	add	x1, x1, :lo12:.LANCHOR222
13076	add	x0, x0, :lo12:.LC5
13077	bl	printf
13078	adrp	x1, .LC6
13079	adrp	x0, .LC7
13080	add	x1, x1, :lo12:.LC6
13081	add	x0, x0, :lo12:.LC7
13082	bl	printf
13083.L1928:
13084	ldrh	w0, [x19, 8]
13085	add	w0, w0, 1
13086	strh	w0, [x19, 8]
13087	bl	FtlFreeSysBlkQueueOut
13088	strh	w0, [x20]
13089	ldr	w0, [x19, 48]
13090	strh	wzr, [x19, 2]
13091	add	w0, w0, 1
13092	strh	wzr, [x19]
13093	str	w0, [x19, 48]
13094.L1926:
13095	mov	w0, 0
13096	ldp	x19, x20, [sp, 16]
13097	ldp	x21, x22, [sp, 32]
13098	ldp	x23, x24, [sp, 48]
13099	ldp	x29, x30, [sp], 64
13100	ret
13101.L1927:
13102	ubfiz	x0, x0, 1, 16
13103	adrp	x2, .LANCHOR195
13104	adrp	x21, .LANCHOR211
13105	add	x1, x21, :lo12:.LANCHOR211
13106	adrp	x24, .LANCHOR189
13107	ldr	x23, [x19, 40]
13108	ldrh	w22, [x20, x0]
13109	ldrh	w0, [x19, 2]
13110	ldr	x20, [x2, #:lo12:.LANCHOR195]
13111	str	x20, [x1, 16]
13112	orr	w0, w0, w22, lsl 10
13113	str	w0, [x1, 4]
13114	ldr	x0, [x24, #:lo12:.LANCHOR189]
13115	str	x0, [x1, 8]
13116	ldr	w1, [x19, 48]
13117	str	w1, [x20, 4]
13118	mov	w1, -1291
13119	strh	w1, [x20, 8]
13120	ldrh	w1, [x19, 4]
13121	strh	w1, [x20]
13122	adrp	x1, .LANCHOR53
13123	strh	w22, [x20, 2]
13124	ldrh	w2, [x1, #:lo12:.LANCHOR53]
13125	mov	w1, 255
13126	lsl	w2, w2, 3
13127	bl	ftl_memset
13128	ldrh	w4, [x19, 6]
13129	mov	x1, 0
13130	ldr	x3, [x24, #:lo12:.LANCHOR189]
13131	mov	w0, 0
13132.L1929:
13133	cmp	w4, w1, uxth
13134	bhi	.L1931
13135	adrp	x0, .LANCHOR2
13136	ldrb	w0, [x0, #:lo12:.LANCHOR2]
13137	cbz	w0, .L1932
13138	add	x0, x21, :lo12:.LANCHOR211
13139	adrp	x1, .LANCHOR57
13140	ldrh	w1, [x1, #:lo12:.LANCHOR57]
13141	ldr	x0, [x0, 8]
13142	bl	js_hash
13143	str	w0, [x20, 12]
13144.L1932:
13145	mov	w2, 1
13146	mov	w3, 0
13147	mov	w1, w2
13148	add	x0, x21, :lo12:.LANCHOR211
13149	bl	FlashProgPages
13150	ldrh	w0, [x19, 2]
13151	add	w0, w0, 1
13152	strh	w0, [x19, 2]
13153	mov	x0, x19
13154	bl	ftl_map_blk_gc
13155	b	.L1926
13156.L1931:
13157	ldr	w2, [x23, x1, lsl 2]
13158	cmp	w22, w2, lsr 10
13159	bne	.L1930
13160	add	w0, w0, 1
13161	and	w0, w0, 65535
13162	ubfiz	x2, x0, 1, 16
13163	str	w1, [x3, x2, lsl 2]
13164	add	x2, x2, 1
13165	ldr	w5, [x23, x1, lsl 2]
13166	str	w5, [x3, x2, lsl 2]
13167.L1930:
13168	add	x1, x1, 1
13169	b	.L1929
13170.L1940:
13171	mov	w0, 0
13172	ret
13173	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
13174	.section	.text.FtlMapWritePage,"ax",@progbits
13175	.align	2
13176	.global	FtlMapWritePage
13177	.type	FtlMapWritePage, %function
13178FtlMapWritePage:
13179	stp	x29, x30, [sp, -112]!
13180	add	x29, sp, 0
13181	stp	x19, x20, [sp, 16]
13182	mov	w19, 0
13183	stp	x25, x26, [sp, 64]
13184	adrp	x26, .LANCHOR53
13185	stp	x27, x28, [sp, 80]
13186	mov	w25, w1
13187	stp	x21, x22, [sp, 32]
13188	mov	x27, x0
13189	adrp	x22, .LANCHOR211
13190	stp	x23, x24, [sp, 48]
13191	mov	x20, x22
13192	add	x23, x22, :lo12:.LANCHOR211
13193	add	x28, x26, :lo12:.LANCHOR53
13194	str	x2, [x29, 104]
13195.L1944:
13196	adrp	x1, .LANCHOR170
13197	ldr	w0, [x1, #:lo12:.LANCHOR170]
13198	add	w0, w0, 1
13199	str	w0, [x1, #:lo12:.LANCHOR170]
13200	ldrh	w0, [x26, #:lo12:.LANCHOR53]
13201	ldrh	w1, [x27, 2]
13202	sub	w0, w0, #1
13203	cmp	w1, w0
13204	bge	.L1945
13205	ldrh	w1, [x27]
13206	mov	w0, 65535
13207	cmp	w1, w0
13208	bne	.L1946
13209.L1945:
13210	mov	x0, x27
13211	bl	Ftl_write_map_blk_to_last_page
13212.L1946:
13213	adrp	x21, .LANCHOR78
13214	ldr	w0, [x21, #:lo12:.LANCHOR78]
13215	cbnz	w0, .L1961
13216	ldrh	w1, [x27]
13217	ldr	x0, [x27, 16]
13218	ldrh	w0, [x0, x1, lsl 1]
13219	cbnz	w0, .L1948
13220	mov	w2, 865
13221	adrp	x1, .LANCHOR223
13222	adrp	x0, .LC5
13223	add	x1, x1, :lo12:.LANCHOR223
13224	add	x0, x0, :lo12:.LC5
13225	bl	printf
13226	adrp	x1, .LC6
13227	adrp	x0, .LC7
13228	add	x1, x1, :lo12:.LC6
13229	add	x0, x0, :lo12:.LC7
13230	bl	printf
13231.L1948:
13232	ldrh	w1, [x27]
13233	ldrh	w0, [x27, 10]
13234	cmp	w1, w0
13235	bcc	.L1949
13236	mov	w2, 866
13237	adrp	x1, .LANCHOR223
13238	adrp	x0, .LC5
13239	add	x1, x1, :lo12:.LANCHOR223
13240	add	x0, x0, :lo12:.LC5
13241	bl	printf
13242	adrp	x1, .LC6
13243	adrp	x0, .LC7
13244	add	x1, x1, :lo12:.LC6
13245	add	x0, x0, :lo12:.LC7
13246	bl	printf
13247.L1949:
13248	ldrh	w1, [x27]
13249	add	x3, x22, :lo12:.LANCHOR211
13250	ldr	x0, [x27, 16]
13251	mov	w2, 16
13252	str	x3, [x29, 96]
13253	ldrh	w24, [x0, x1, lsl 1]
13254	mov	w1, 0
13255	ldrh	w0, [x27, 2]
13256	orr	w0, w0, w24, lsl 10
13257	str	w0, [x3, 4]
13258	ldr	x0, [x29, 104]
13259	str	x0, [x3, 8]
13260	adrp	x0, .LANCHOR195
13261	ldr	x0, [x0, #:lo12:.LANCHOR195]
13262	str	x0, [x3, 16]
13263	bl	ftl_memset
13264	ldr	x3, [x29, 96]
13265	ldr	w0, [x27, 48]
13266	ldr	x6, [x3, 16]
13267	str	w0, [x6, 4]
13268	ldrh	w0, [x27, 4]
13269	strh	w0, [x6]
13270	adrp	x0, .LANCHOR2
13271	strh	w25, [x6, 8]
13272	strh	w24, [x6, 2]
13273	ldrb	w0, [x0, #:lo12:.LANCHOR2]
13274	cbz	w0, .L1950
13275	adrp	x0, .LANCHOR57
13276	ldrh	w1, [x0, #:lo12:.LANCHOR57]
13277	ldr	x0, [x3, 8]
13278	bl	js_hash
13279	str	w0, [x6, 12]
13280.L1950:
13281	mov	w3, 1
13282	mov	x0, x23
13283	mov	w1, w3
13284	mov	w2, w3
13285	bl	FlashProgPages
13286	ldrh	w0, [x27, 2]
13287	ldr	w1, [x23]
13288	add	w0, w0, 1
13289	and	w0, w0, 65535
13290	strh	w0, [x27, 2]
13291	cmn	w1, #1
13292	bne	.L1951
13293	ldr	w1, [x23, 4]
13294	adrp	x0, .LC42
13295	add	x0, x0, :lo12:.LC42
13296	add	w19, w19, 1
13297	and	w19, w19, 65535
13298	bl	printf
13299	ldrh	w0, [x27, 2]
13300	cmp	w0, 2
13301	bhi	.L1952
13302	ldrh	w0, [x28]
13303	sub	w0, w0, #1
13304	strh	w0, [x27, 2]
13305.L1952:
13306	cmp	w19, 3
13307	bls	.L1944
13308	add	x20, x20, :lo12:.LANCHOR211
13309	mov	w2, w19
13310	adrp	x0, .LC43
13311	add	x0, x0, :lo12:.LC43
13312	ldr	w1, [x20, 4]
13313	bl	printf
13314	mov	w0, 1
13315	str	w0, [x21, #:lo12:.LANCHOR78]
13316.L1961:
13317	ldp	x19, x20, [sp, 16]
13318	mov	w0, 0
13319	ldp	x21, x22, [sp, 32]
13320	ldp	x23, x24, [sp, 48]
13321	ldp	x25, x26, [sp, 64]
13322	ldp	x27, x28, [sp, 80]
13323	ldp	x29, x30, [sp], 112
13324	ret
13325.L1951:
13326	cbz	w1, .L1954
13327	strh	w24, [x27, 60]
13328	cmp	w0, 1
13329	bne	.L1955
13330.L1956:
13331	str	wzr, [x27, 56]
13332	b	.L1944
13333.L1955:
13334	cmp	w1, 256
13335.L1969:
13336	beq	.L1956
13337	ldr	w0, [x27, 56]
13338	cbnz	w0, .L1956
13339	add	x20, x20, :lo12:.LANCHOR211
13340	ldr	x0, [x27, 40]
13341	ldr	w1, [x20, 4]
13342	str	w1, [x0, w25, uxtw 2]
13343	b	.L1961
13344.L1954:
13345	cmp	w0, 1
13346	b	.L1969
13347	.size	FtlMapWritePage, .-FtlMapWritePage
13348	.section	.text.flush_l2p_region,"ax",@progbits
13349	.align	2
13350	.global	flush_l2p_region
13351	.type	flush_l2p_region, %function
13352flush_l2p_region:
13353	stp	x29, x30, [sp, -32]!
13354	add	x29, sp, 0
13355	stp	x19, x20, [sp, 16]
13356	adrp	x20, .LANCHOR98
13357	ubfiz	x19, x0, 4, 16
13358	ldr	x0, [x20, #:lo12:.LANCHOR98]
13359	add	x1, x0, x19
13360	ldr	x2, [x1, 8]
13361	ldrh	w1, [x0, x19]
13362	adrp	x0, .LANCHOR130
13363	add	x0, x0, :lo12:.LANCHOR130
13364	bl	FtlMapWritePage
13365	ldr	x0, [x20, #:lo12:.LANCHOR98]
13366	add	x0, x0, x19
13367	ldp	x19, x20, [sp, 16]
13368	ldr	w1, [x0, 4]
13369	and	w1, w1, 2147483647
13370	str	w1, [x0, 4]
13371	mov	w0, 0
13372	ldp	x29, x30, [sp], 32
13373	ret
13374	.size	flush_l2p_region, .-flush_l2p_region
13375	.section	.text.l2p_flush,"ax",@progbits
13376	.align	2
13377	.global	l2p_flush
13378	.type	l2p_flush, %function
13379l2p_flush:
13380	stp	x29, x30, [sp, -48]!
13381	add	x29, sp, 0
13382	stp	x19, x20, [sp, 16]
13383	adrp	x20, .LANCHOR67
13384	add	x20, x20, :lo12:.LANCHOR67
13385	str	x21, [sp, 32]
13386	mov	w19, 0
13387	adrp	x21, .LANCHOR98
13388.L1973:
13389	ldrh	w0, [x20]
13390	cmp	w0, w19
13391	bhi	.L1975
13392	mov	w0, 0
13393	ldr	x21, [sp, 32]
13394	ldp	x19, x20, [sp, 16]
13395	ldp	x29, x30, [sp], 48
13396	ret
13397.L1975:
13398	ldr	x1, [x21, #:lo12:.LANCHOR98]
13399	ubfiz	x0, x19, 4, 16
13400	add	x0, x1, x0
13401	ldr	w0, [x0, 4]
13402	tbz	w0, #31, .L1974
13403	mov	w0, w19
13404	bl	flush_l2p_region
13405.L1974:
13406	add	w19, w19, 1
13407	and	w19, w19, 65535
13408	b	.L1973
13409	.size	l2p_flush, .-l2p_flush
13410	.section	.text.FtlVendorPartWrite,"ax",@progbits
13411	.align	2
13412	.global	FtlVendorPartWrite
13413	.type	FtlVendorPartWrite, %function
13414FtlVendorPartWrite:
13415	stp	x29, x30, [sp, -176]!
13416	add	x29, sp, 0
13417	stp	x19, x20, [sp, 16]
13418	mov	w20, w1
13419	stp	x21, x22, [sp, 32]
13420	add	w1, w0, w1
13421	mov	w22, w0
13422	adrp	x0, .LANCHOR50
13423	stp	x23, x24, [sp, 48]
13424	ldrh	w0, [x0, #:lo12:.LANCHOR50]
13425	stp	x25, x26, [sp, 64]
13426	stp	x27, x28, [sp, 80]
13427	cmp	w1, w0
13428	bhi	.L1985
13429	adrp	x0, .LANCHOR56
13430	adrp	x26, .LANCHOR55
13431	adrp	x27, .LANCHOR57
13432	mov	x25, x2
13433	ldrh	w21, [x0, #:lo12:.LANCHOR56]
13434	add	x26, x26, :lo12:.LANCHOR55
13435	add	x27, x27, :lo12:.LANCHOR57
13436	mov	w24, 0
13437	lsr	w21, w22, w21
13438.L1979:
13439	cbnz	w20, .L1984
13440.L1977:
13441	mov	w0, w24
13442	ldp	x19, x20, [sp, 16]
13443	ldp	x21, x22, [sp, 32]
13444	ldp	x23, x24, [sp, 48]
13445	ldp	x25, x26, [sp, 64]
13446	ldp	x27, x28, [sp, 80]
13447	ldp	x29, x30, [sp], 176
13448	ret
13449.L1984:
13450	ldrh	w1, [x26]
13451	adrp	x0, .LANCHOR202
13452	adrp	x28, .LANCHOR191
13453	ldr	x0, [x0, #:lo12:.LANCHOR202]
13454	udiv	w23, w22, w1
13455	ldr	w2, [x0, w21, uxtw 2]
13456	and	w0, w20, 65535
13457	msub	w23, w23, w1, w22
13458	sub	w19, w1, w23
13459	and	w19, w19, 65535
13460	cmp	w20, w19
13461	csel	w19, w0, w19, cc
13462	cbz	w2, .L1981
13463	cmp	w19, w1
13464	beq	.L1981
13465	ldr	x0, [x28, #:lo12:.LANCHOR191]
13466	str	w2, [x29, 124]
13467	mov	w2, 1
13468	stp	x0, xzr, [x29, 128]
13469	mov	w1, w2
13470	add	x0, x29, 120
13471	bl	FlashReadPages
13472.L1982:
13473	lsl	w3, w19, 9
13474	ldr	x0, [x28, #:lo12:.LANCHOR191]
13475	lsl	w23, w23, 7
13476	mov	w2, w3
13477	mov	x1, x25
13478	str	w3, [x29, 108]
13479	add	x0, x0, x23, sxtw 2
13480	bl	ftl_memcpy
13481	ldr	x2, [x28, #:lo12:.LANCHOR191]
13482	mov	w1, w21
13483	adrp	x0, .LANCHOR224
13484	add	x0, x0, :lo12:.LANCHOR224
13485	sub	w20, w20, w19
13486	add	w22, w22, w19
13487	add	w21, w21, 1
13488	bl	FtlMapWritePage
13489	cmn	w0, #1
13490	ldr	w3, [x29, 108]
13491	csinv	w24, w24, wzr, ne
13492	add	x25, x25, x3, sxtw
13493	b	.L1979
13494.L1981:
13495	ldrh	w2, [x27]
13496	mov	w1, 0
13497	ldr	x0, [x28, #:lo12:.LANCHOR191]
13498	bl	ftl_memset
13499	b	.L1982
13500.L1985:
13501	mov	w24, -1
13502	b	.L1977
13503	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
13504	.section	.text.Ftl_save_ext_data,"ax",@progbits
13505	.align	2
13506	.global	Ftl_save_ext_data
13507	.type	Ftl_save_ext_data, %function
13508Ftl_save_ext_data:
13509	adrp	x0, .LANCHOR141
13510	add	x2, x0, :lo12:.LANCHOR141
13511	ldr	w1, [x0, #:lo12:.LANCHOR141]
13512	mov	w0, 19539
13513	movk	w0, 0x4654, lsl 16
13514	cmp	w1, w0
13515	bne	.L1990
13516	mov	w0, 99
13517	mov	w1, 1
13518	movk	w0, 0x5000, lsl 16
13519	str	w0, [x2, 4]
13520	adrp	x0, .LANCHOR225
13521	ldr	w0, [x0, #:lo12:.LANCHOR225]
13522	str	w0, [x2, 88]
13523	adrp	x0, .LANCHOR226
13524	ldr	w0, [x0, #:lo12:.LANCHOR226]
13525	str	w0, [x2, 92]
13526	adrp	x0, .LANCHOR166
13527	ldr	w0, [x0, #:lo12:.LANCHOR166]
13528	str	w0, [x2, 8]
13529	adrp	x0, .LANCHOR167
13530	ldr	w0, [x0, #:lo12:.LANCHOR167]
13531	str	w0, [x2, 12]
13532	adrp	x0, .LANCHOR171
13533	ldr	w0, [x0, #:lo12:.LANCHOR171]
13534	str	w0, [x2, 16]
13535	adrp	x0, .LANCHOR170
13536	ldr	w0, [x0, #:lo12:.LANCHOR170]
13537	str	w0, [x2, 20]
13538	adrp	x0, .LANCHOR173
13539	ldr	w0, [x0, #:lo12:.LANCHOR173]
13540	str	w0, [x2, 28]
13541	adrp	x0, .LANCHOR81
13542	ldr	w0, [x0, #:lo12:.LANCHOR81]
13543	str	w0, [x2, 32]
13544	adrp	x0, .LANCHOR168
13545	ldr	w0, [x0, #:lo12:.LANCHOR168]
13546	str	w0, [x2, 36]
13547	adrp	x0, .LANCHOR169
13548	ldr	w0, [x0, #:lo12:.LANCHOR169]
13549	str	w0, [x2, 40]
13550	adrp	x0, .LANCHOR174
13551	ldr	w0, [x0, #:lo12:.LANCHOR174]
13552	str	w0, [x2, 44]
13553	adrp	x0, .LANCHOR175
13554	ldr	w0, [x0, #:lo12:.LANCHOR175]
13555	str	w0, [x2, 48]
13556	adrp	x0, .LANCHOR163
13557	ldr	w0, [x0, #:lo12:.LANCHOR163]
13558	str	w0, [x2, 60]
13559	adrp	x0, .LANCHOR162
13560	ldr	w0, [x0, #:lo12:.LANCHOR162]
13561	str	w0, [x2, 64]
13562	mov	w0, 0
13563	b	FtlVendorPartWrite
13564.L1990:
13565	ret
13566	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
13567	.section	.text.FtlEctTblFlush,"ax",@progbits
13568	.align	2
13569	.global	FtlEctTblFlush
13570	.type	FtlEctTblFlush, %function
13571FtlEctTblFlush:
13572	adrp	x1, .LANCHOR104
13573	ldr	w1, [x1, #:lo12:.LANCHOR104]
13574	cbz	w1, .L1997
13575	adrp	x1, .LANCHOR175
13576	mov	w2, 4
13577	ldr	w1, [x1, #:lo12:.LANCHOR175]
13578	cmp	w1, 39
13579	mov	w1, 32
13580	csel	w1, w1, w2, hi
13581.L1993:
13582	adrp	x3, .LANCHOR227
13583	ldrh	w2, [x3, #:lo12:.LANCHOR227]
13584	cmp	w2, 31
13585	bhi	.L1994
13586	add	w2, w2, 1
13587	mov	w1, 1
13588	strh	w2, [x3, #:lo12:.LANCHOR227]
13589.L1994:
13590	adrp	x2, .LANCHOR199
13591	cbnz	w0, .L1995
13592	ldr	x0, [x2, #:lo12:.LANCHOR199]
13593	ldr	w3, [x0, 20]
13594	ldr	w0, [x0, 16]
13595	add	w1, w1, w3
13596	cmp	w0, w1
13597	bcc	.L2000
13598.L1995:
13599	stp	x29, x30, [sp, -16]!
13600	add	x29, sp, 0
13601	ldr	x2, [x2, #:lo12:.LANCHOR199]
13602	ldr	w0, [x2, 16]
13603	str	w0, [x2, 20]
13604	mov	w0, 17221
13605	str	wzr, [x2, 4]
13606	movk	w0, 0x4254, lsl 16
13607	str	w0, [x2]
13608	adrp	x0, .LANCHOR198
13609	ldrh	w1, [x0, #:lo12:.LANCHOR198]
13610	lsl	w0, w1, 9
13611	str	w0, [x2, 12]
13612	ldr	w0, [x2, 8]
13613	add	w0, w0, 1
13614	str	w0, [x2, 8]
13615	mov	w0, 64
13616	bl	FtlVendorPartWrite
13617	bl	Ftl_save_ext_data
13618	mov	w0, 0
13619	ldp	x29, x30, [sp], 16
13620	ret
13621.L1997:
13622	mov	w1, 32
13623	b	.L1993
13624.L2000:
13625	mov	w0, 0
13626	ret
13627	.size	FtlEctTblFlush, .-FtlEctTblFlush
13628	.section	.text.allocate_new_data_superblock,"ax",@progbits
13629	.align	2
13630	.global	allocate_new_data_superblock
13631	.type	allocate_new_data_superblock, %function
13632allocate_new_data_superblock:
13633	stp	x29, x30, [sp, -48]!
13634	add	x29, sp, 0
13635	stp	x19, x20, [sp, 16]
13636	mov	x19, x0
13637	ldrh	w20, [x0]
13638	adrp	x0, .LANCHOR40
13639	str	x21, [sp, 32]
13640	ldrh	w0, [x0, #:lo12:.LANCHOR40]
13641	cmp	w0, w20
13642	bcs	.L2003
13643	mov	w2, 3650
13644	adrp	x1, .LANCHOR228
13645	adrp	x0, .LC5
13646	add	x1, x1, :lo12:.LANCHOR228
13647	add	x0, x0, :lo12:.LC5
13648	bl	printf
13649	adrp	x1, .LC6
13650	adrp	x0, .LC7
13651	add	x1, x1, :lo12:.LC6
13652	add	x0, x0, :lo12:.LC7
13653	bl	printf
13654.L2003:
13655	adrp	x0, .LANCHOR78
13656	ldr	w0, [x0, #:lo12:.LANCHOR78]
13657	cbnz	w0, .L2004
13658	mov	w0, 65535
13659	cmp	w20, w0
13660	beq	.L2005
13661	adrp	x1, .LANCHOR85
13662	ubfiz	x0, x20, 1, 16
13663	ldr	x1, [x1, #:lo12:.LANCHOR85]
13664	ldrh	w0, [x1, x0]
13665	cbz	w0, .L2006
13666	mov	w0, w20
13667	bl	INSERT_DATA_LIST
13668.L2005:
13669	strb	wzr, [x19, 8]
13670	adrp	x0, .LANCHOR94
13671	add	x0, x0, :lo12:.LANCHOR94
13672	cmp	x19, x0
13673	beq	.L2007
13674	adrp	x0, .LANCHOR44
13675	ldrh	w1, [x0, #:lo12:.LANCHOR44]
13676	cmp	w1, 1
13677	beq	.L2007
13678	adrp	x0, .LANCHOR16
13679	ldrb	w0, [x0, #:lo12:.LANCHOR16]
13680	cbz	w0, .L2008
13681.L2007:
13682	mov	w0, 1
13683	strb	w0, [x19, 8]
13684.L2009:
13685	adrp	x1, .LANCHOR136
13686	mov	w2, 65535
13687	mov	x21, x1
13688	ldrh	w0, [x1, #:lo12:.LANCHOR136]
13689	cmp	w0, w2
13690	beq	.L2014
13691	cmp	w20, w0
13692	bne	.L2015
13693	adrp	x2, .LANCHOR85
13694	ubfiz	x1, x0, 1, 16
13695	ldr	x2, [x2, #:lo12:.LANCHOR85]
13696	ldrh	w1, [x2, x1]
13697	cbz	w1, .L2016
13698.L2015:
13699	bl	update_vpc_list
13700.L2016:
13701	mov	w0, -1
13702	strh	w0, [x21, #:lo12:.LANCHOR136]
13703.L2014:
13704	mov	x0, x19
13705	bl	allocate_data_superblock
13706	bl	l2p_flush
13707	mov	w0, 0
13708	bl	FtlEctTblFlush
13709	bl	FtlVpcTblFlush
13710.L2004:
13711	mov	w0, 0
13712	ldr	x21, [sp, 32]
13713	ldp	x19, x20, [sp, 16]
13714	ldp	x29, x30, [sp], 48
13715	ret
13716.L2006:
13717	mov	w0, w20
13718	bl	INSERT_FREE_LIST
13719	b	.L2005
13720.L2008:
13721	adrp	x0, .LANCHOR93
13722	add	x2, x0, :lo12:.LANCHOR93
13723	cmp	x19, x2
13724	bne	.L2009
13725	cmp	w1, 3
13726	beq	.L2011
13727	adrp	x1, .LANCHOR163
13728	ldr	w1, [x1, #:lo12:.LANCHOR163]
13729	cmp	w1, 1
13730	bne	.L2012
13731.L2011:
13732	add	x1, x0, :lo12:.LANCHOR93
13733	mov	w2, 1
13734	strb	w2, [x1, 8]
13735.L2012:
13736	adrp	x1, .LANCHOR104
13737	ldr	w1, [x1, #:lo12:.LANCHOR104]
13738	cbz	w1, .L2009
13739	adrp	x1, .LANCHOR175
13740	ldr	w1, [x1, #:lo12:.LANCHOR175]
13741	cmp	w1, 39
13742	bhi	.L2009
13743	add	x0, x0, :lo12:.LANCHOR93
13744	mov	w1, 1
13745	strb	w1, [x0, 8]
13746	b	.L2009
13747	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
13748	.section	.text.FtlVendorPartRead,"ax",@progbits
13749	.align	2
13750	.global	FtlVendorPartRead
13751	.type	FtlVendorPartRead, %function
13752FtlVendorPartRead:
13753	stp	x29, x30, [sp, -176]!
13754	add	x29, sp, 0
13755	stp	x21, x22, [sp, 32]
13756	mov	w22, w0
13757	mov	w21, w1
13758	add	w1, w0, w1
13759	adrp	x0, .LANCHOR50
13760	stp	x19, x20, [sp, 16]
13761	stp	x23, x24, [sp, 48]
13762	ldrh	w0, [x0, #:lo12:.LANCHOR50]
13763	stp	x25, x26, [sp, 64]
13764	stp	x27, x28, [sp, 80]
13765	cmp	w1, w0
13766	bhi	.L2039
13767	adrp	x0, .LANCHOR56
13768	adrp	x26, .LANCHOR191
13769	mov	x25, x2
13770	mov	x28, x26
13771	ldrh	w20, [x0, #:lo12:.LANCHOR56]
13772	mov	w24, 0
13773	adrp	x0, .LANCHOR55
13774	add	x0, x0, :lo12:.LANCHOR55
13775	str	x0, [x29, 104]
13776	lsr	w20, w22, w20
13777.L2032:
13778	cbnz	w21, .L2038
13779.L2030:
13780	mov	w0, w24
13781	ldp	x19, x20, [sp, 16]
13782	ldp	x21, x22, [sp, 32]
13783	ldp	x23, x24, [sp, 48]
13784	ldp	x25, x26, [sp, 64]
13785	ldp	x27, x28, [sp, 80]
13786	ldp	x29, x30, [sp], 176
13787	ret
13788.L2038:
13789	adrp	x0, .LANCHOR202
13790	ldr	x0, [x0, #:lo12:.LANCHOR202]
13791	ldr	w3, [x0, w20, uxtw 2]
13792	ldr	x0, [x29, 104]
13793	ldrh	w19, [x0]
13794	and	w0, w21, 65535
13795	udiv	w23, w22, w19
13796	msub	w23, w23, w19, w22
13797	sub	w19, w19, w23
13798	and	w19, w19, 65535
13799	cmp	w21, w19
13800	csel	w19, w0, w19, cc
13801	lsl	w27, w19, 9
13802	cbz	w3, .L2034
13803	ldr	x0, [x26, #:lo12:.LANCHOR191]
13804	mov	w2, 1
13805	str	w3, [x29, 100]
13806	mov	w1, w2
13807	str	w3, [x29, 124]
13808	stp	x0, xzr, [x29, 128]
13809	add	x0, x29, 120
13810	bl	FlashReadPages
13811	ldr	w0, [x29, 120]
13812	ldr	w3, [x29, 100]
13813	cmn	w0, #1
13814	adrp	x0, .LANCHOR211
13815	csinv	w24, w24, wzr, ne
13816	ldr	w0, [x0, #:lo12:.LANCHOR211]
13817	cmp	w0, 256
13818	bne	.L2036
13819	mov	w2, w3
13820	mov	w1, w20
13821	adrp	x0, .LC44
13822	add	x0, x0, :lo12:.LC44
13823	bl	printf
13824	ldr	x2, [x26, #:lo12:.LANCHOR191]
13825	adrp	x0, .LANCHOR224
13826	mov	w1, w20
13827	add	x0, x0, :lo12:.LANCHOR224
13828	bl	FtlMapWritePage
13829.L2036:
13830	ldr	x1, [x28, #:lo12:.LANCHOR191]
13831	lsl	w23, w23, 7
13832	mov	w2, w27
13833	mov	x0, x25
13834	add	x1, x1, x23, sxtw 2
13835	bl	ftl_memcpy
13836.L2037:
13837	add	w20, w20, 1
13838	sub	w21, w21, w19
13839	add	w22, w22, w19
13840	add	x25, x25, x27, sxtw
13841	b	.L2032
13842.L2034:
13843	mov	w2, w27
13844	mov	w1, 0
13845	mov	x0, x25
13846	bl	ftl_memset
13847	b	.L2037
13848.L2039:
13849	mov	w24, -1
13850	b	.L2030
13851	.size	FtlVendorPartRead, .-FtlVendorPartRead
13852	.section	.text.FtlLoadEctTbl,"ax",@progbits
13853	.align	2
13854	.global	FtlLoadEctTbl
13855	.type	FtlLoadEctTbl, %function
13856FtlLoadEctTbl:
13857	stp	x29, x30, [sp, -32]!
13858	mov	w0, 64
13859	add	x29, sp, 0
13860	stp	x19, x20, [sp, 16]
13861	adrp	x19, .LANCHOR199
13862	adrp	x20, .LANCHOR198
13863	ldr	x2, [x19, #:lo12:.LANCHOR199]
13864	ldrh	w1, [x20, #:lo12:.LANCHOR198]
13865	bl	FtlVendorPartRead
13866	ldr	x0, [x19, #:lo12:.LANCHOR199]
13867	ldr	w1, [x0]
13868	mov	w0, 17221
13869	movk	w0, 0x4254, lsl 16
13870	cmp	w1, w0
13871	beq	.L2042
13872	adrp	x1, .LC45
13873	adrp	x0, .LC7
13874	add	x1, x1, :lo12:.LC45
13875	add	x0, x0, :lo12:.LC7
13876	bl	printf
13877	ldr	x0, [x19, #:lo12:.LANCHOR199]
13878	mov	w1, 0
13879	ldrh	w2, [x20, #:lo12:.LANCHOR198]
13880	lsl	w2, w2, 9
13881	bl	ftl_memset
13882.L2042:
13883	mov	w0, 0
13884	ldp	x19, x20, [sp, 16]
13885	ldp	x29, x30, [sp], 32
13886	ret
13887	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
13888	.section	.text.Ftl_load_ext_data,"ax",@progbits
13889	.align	2
13890	.global	Ftl_load_ext_data
13891	.type	Ftl_load_ext_data, %function
13892Ftl_load_ext_data:
13893	stp	x29, x30, [sp, -48]!
13894	mov	w1, 1
13895	mov	w0, 0
13896	add	x29, sp, 0
13897	stp	x19, x20, [sp, 16]
13898	adrp	x19, .LANCHOR141
13899	str	x21, [sp, 32]
13900	add	x21, x19, :lo12:.LANCHOR141
13901	mov	x2, x21
13902	bl	FtlVendorPartRead
13903	ldr	w0, [x19, #:lo12:.LANCHOR141]
13904	mov	w20, 19539
13905	movk	w20, 0x4654, lsl 16
13906	cmp	w0, w20
13907	beq	.L2045
13908	mov	w2, 512
13909	mov	w1, 0
13910	mov	x0, x21
13911	bl	ftl_memset
13912	str	w20, [x19, #:lo12:.LANCHOR141]
13913.L2045:
13914	ldr	w1, [x19, #:lo12:.LANCHOR141]
13915	add	x0, x19, :lo12:.LANCHOR141
13916	cmp	w1, w20
13917	adrp	x20, .LANCHOR173
13918	bne	.L2046
13919	adrp	x1, .LANCHOR225
13920	ldr	w2, [x0, 88]
13921	str	w2, [x1, #:lo12:.LANCHOR225]
13922	adrp	x1, .LANCHOR226
13923	ldr	w2, [x0, 92]
13924	str	w2, [x1, #:lo12:.LANCHOR226]
13925	adrp	x1, .LANCHOR166
13926	ldr	w2, [x0, 8]
13927	str	w2, [x1, #:lo12:.LANCHOR166]
13928	adrp	x1, .LANCHOR167
13929	ldr	w2, [x0, 12]
13930	str	w2, [x1, #:lo12:.LANCHOR167]
13931	adrp	x1, .LANCHOR171
13932	ldr	w2, [x0, 16]
13933	str	w2, [x1, #:lo12:.LANCHOR171]
13934	adrp	x1, .LANCHOR170
13935	ldr	w2, [x0, 20]
13936	str	w2, [x1, #:lo12:.LANCHOR170]
13937	ldp	w1, w2, [x0, 28]
13938	str	w1, [x20, #:lo12:.LANCHOR173]
13939	adrp	x1, .LANCHOR81
13940	str	w2, [x1, #:lo12:.LANCHOR81]
13941	adrp	x1, .LANCHOR168
13942	ldr	w2, [x0, 36]
13943	str	w2, [x1, #:lo12:.LANCHOR168]
13944	adrp	x1, .LANCHOR169
13945	ldr	w2, [x0, 40]
13946	str	w2, [x1, #:lo12:.LANCHOR169]
13947	adrp	x1, .LANCHOR174
13948	ldr	w2, [x0, 44]
13949	str	w2, [x1, #:lo12:.LANCHOR174]
13950	adrp	x1, .LANCHOR175
13951	ldr	w2, [x0, 48]
13952	str	w2, [x1, #:lo12:.LANCHOR175]
13953	ldr	w1, [x0, 60]
13954	adrp	x0, .LANCHOR163
13955	str	w1, [x0, #:lo12:.LANCHOR163]
13956.L2046:
13957	add	x19, x19, :lo12:.LANCHOR141
13958	adrp	x0, .LANCHOR162
13959	str	wzr, [x0, #:lo12:.LANCHOR162]
13960	mov	w0, 34661
13961	ldr	w1, [x19, 68]
13962	movk	w0, 0x1234, lsl 16
13963	cmp	w1, w0
13964	bne	.L2047
13965	adrp	x0, .LANCHOR16
13966	ldrb	w0, [x0, #:lo12:.LANCHOR16]
13967	cbz	w0, .L2048
13968	str	wzr, [x19, 68]
13969	bl	Ftl_save_ext_data
13970.L2047:
13971	adrp	x1, .LANCHOR172
13972	adrp	x0, .LANCHOR48
13973	ldr	x21, [sp, 32]
13974	ldr	w2, [x1, #:lo12:.LANCHOR172]
13975	ldrh	w0, [x0, #:lo12:.LANCHOR48]
13976	ldr	w1, [x20, #:lo12:.LANCHOR173]
13977	ldp	x19, x20, [sp, 16]
13978	ldp	x29, x30, [sp], 48
13979	madd	w0, w0, w2, w1
13980	adrp	x1, .LANCHOR40
13981	ldrh	w1, [x1, #:lo12:.LANCHOR40]
13982	udiv	w0, w0, w1
13983	adrp	x1, .LANCHOR214
13984	str	w0, [x1, #:lo12:.LANCHOR214]
13985	ret
13986.L2048:
13987	adrp	x0, .LANCHOR104
13988	mov	w1, 1
13989	str	w1, [x0, #:lo12:.LANCHOR104]
13990	adrp	x1, .LC46
13991	adrp	x0, .LC7
13992	add	x1, x1, :lo12:.LC46
13993	add	x0, x0, :lo12:.LC7
13994	bl	printf
13995	b	.L2047
13996	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
13997	.section	.text.FtlMapBlkWriteDumpData,"ax",@progbits
13998	.align	2
13999	.global	FtlMapBlkWriteDumpData
14000	.type	FtlMapBlkWriteDumpData, %function
14001FtlMapBlkWriteDumpData:
14002	ldr	w1, [x0, 56]
14003	cbz	w1, .L2064
14004	stp	x29, x30, [sp, -80]!
14005	adrp	x1, .LANCHOR78
14006	add	x29, sp, 0
14007	ldr	w1, [x1, #:lo12:.LANCHOR78]
14008	stp	x19, x20, [sp, 16]
14009	stp	x21, x22, [sp, 32]
14010	stp	x23, x24, [sp, 48]
14011	ldrh	w20, [x0, 6]
14012	str	x25, [sp, 64]
14013	str	wzr, [x0, 56]
14014	ldr	x25, [x0, 40]
14015	cbnz	w1, .L2050
14016	mov	x19, x0
14017	adrp	x0, .LANCHOR190
14018	adrp	x23, .LANCHOR211
14019	add	x21, x23, :lo12:.LANCHOR211
14020	ldr	x0, [x0, #:lo12:.LANCHOR190]
14021	mov	x22, x23
14022	str	x0, [x21, 8]
14023	adrp	x0, .LANCHOR195
14024	ldr	x24, [x0, #:lo12:.LANCHOR195]
14025	ldrh	w0, [x19, 2]
14026	str	x24, [x21, 16]
14027	cbz	w0, .L2054
14028	adrp	x1, .LANCHOR53
14029	ldrh	w1, [x1, #:lo12:.LANCHOR53]
14030	sub	w1, w1, #1
14031	cmp	w0, w1
14032	bge	.L2054
14033	ldrh	w1, [x19]
14034	mov	w2, 65535
14035	cmp	w1, w2
14036	beq	.L2054
14037	ldr	x2, [x19, 16]
14038	ubfiz	x1, x1, 1, 16
14039	sub	w0, w0, #1
14040	ldrh	w1, [x2, x1]
14041	mov	w2, 1
14042	orr	w0, w0, w1, lsl 10
14043	mov	w1, w2
14044	str	w0, [x21, 4]
14045	mov	x0, x21
14046	bl	FlashReadPages
14047	ldr	w0, [x23, #:lo12:.LANCHOR211]
14048	cmn	w0, #1
14049	beq	.L2054
14050	ldrh	w1, [x24, 8]
14051	ldr	x2, [x19, 40]
14052	ubfiz	x0, x1, 2, 16
14053	ldr	w2, [x2, x0]
14054	ldr	w0, [x21, 4]
14055	cmp	w2, w0
14056	bne	.L2054
14057	ldr	x2, [x21, 8]
14058.L2067:
14059	mov	x0, x19
14060	ldr	x25, [sp, 64]
14061	ldp	x19, x20, [sp, 16]
14062	ldp	x21, x22, [sp, 32]
14063	ldp	x23, x24, [sp, 48]
14064	ldp	x29, x30, [sp], 80
14065	b	FtlMapWritePage
14066.L2054:
14067	sub	w20, w20, #1
14068	and	w20, w20, 65535
14069	ubfiz	x0, x20, 2, 16
14070	ldr	w1, [x25, x0]
14071	add	x0, x22, :lo12:.LANCHOR211
14072	str	w1, [x0, 4]
14073	cbz	w1, .L2055
14074	mov	w2, 1
14075	mov	w1, w2
14076	bl	FlashReadPages
14077.L2056:
14078	add	x22, x22, :lo12:.LANCHOR211
14079	mov	w1, w20
14080	ldr	x2, [x22, 8]
14081	b	.L2067
14082.L2055:
14083	adrp	x1, .LANCHOR57
14084	ldr	x0, [x0, 8]
14085	ldrh	w2, [x1, #:lo12:.LANCHOR57]
14086	mov	w1, 255
14087	bl	ftl_memset
14088	b	.L2056
14089.L2050:
14090	ldp	x19, x20, [sp, 16]
14091	ldp	x21, x22, [sp, 32]
14092	ldp	x23, x24, [sp, 48]
14093	ldr	x25, [sp, 64]
14094	ldp	x29, x30, [sp], 80
14095	ret
14096.L2064:
14097	ret
14098	.size	FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData
14099	.section	.text.FtlScanSysBlk,"ax",@progbits
14100	.align	2
14101	.global	FtlScanSysBlk
14102	.type	FtlScanSysBlk, %function
14103FtlScanSysBlk:
14104	stp	x29, x30, [sp, -176]!
14105	mov	w1, 0
14106	add	x29, sp, 0
14107	stp	x25, x26, [sp, 64]
14108	adrp	x25, .LANCHOR133
14109	stp	x21, x22, [sp, 32]
14110	adrp	x21, .LANCHOR64
14111	ldr	x0, [x25, #:lo12:.LANCHOR133]
14112	adrp	x22, .LANCHOR201
14113	ldr	w2, [x21, #:lo12:.LANCHOR64]
14114	stp	x19, x20, [sp, 16]
14115	adrp	x20, .LANCHOR131
14116	stp	x23, x24, [sp, 48]
14117	adrp	x23, .LANCHOR70
14118	stp	x27, x28, [sp, 80]
14119	adrp	x27, .LANCHOR132
14120	lsl	w2, w2, 2
14121	strh	wzr, [x20, #:lo12:.LANCHOR131]
14122	strh	wzr, [x23, #:lo12:.LANCHOR70]
14123	bl	ftl_memset
14124	ldr	x0, [x27, #:lo12:.LANCHOR132]
14125	mov	w1, 0
14126	ldr	w2, [x21, #:lo12:.LANCHOR64]
14127	adrp	x19, .LANCHOR61
14128	adrp	x28, .LANCHOR71
14129	adrp	x24, .LANCHOR218
14130	lsl	w2, w2, 1
14131	bl	ftl_memset
14132	ldr	x0, [x22, #:lo12:.LANCHOR201]
14133	mov	w1, 0
14134	ldrh	w2, [x19, #:lo12:.LANCHOR61]
14135	lsl	w2, w2, 2
14136	bl	ftl_memset
14137	ldr	x0, [x28, #:lo12:.LANCHOR71]
14138	mov	w1, 0
14139	ldrh	w2, [x19, #:lo12:.LANCHOR61]
14140	lsl	w2, w2, 1
14141	bl	ftl_memset
14142	mov	w2, 16
14143	mov	w1, 255
14144	add	x0, x24, :lo12:.LANCHOR218
14145	bl	ftl_memset
14146	adrp	x0, .LANCHOR40
14147	stp	x22, x25, [x29, 144]
14148	str	x27, [x29, 160]
14149	ldrh	w0, [x0, #:lo12:.LANCHOR40]
14150	str	w0, [x29, 172]
14151	adrp	x0, .LANCHOR41
14152	add	x0, x0, :lo12:.LANCHOR41
14153	str	x0, [x29, 120]
14154	adrp	x0, .LANCHOR164
14155	add	x0, x0, :lo12:.LANCHOR164
14156	str	x0, [x29, 112]
14157.L2069:
14158	ldr	x0, [x29, 120]
14159	ldr	w1, [x29, 172]
14160	ldrh	w0, [x0]
14161	cmp	w0, w1
14162	bls	.L2110
14163	adrp	x0, .LANCHOR38
14164	adrp	x25, .LANCHOR186
14165	adrp	x6, .LANCHOR47
14166	mov	x5, 0
14167	ldrh	w13, [x0, #:lo12:.LANCHOR38]
14168	adrp	x0, .LANCHOR107
14169	ldr	x7, [x25, #:lo12:.LANCHOR186]
14170	mov	w22, 0
14171	ldr	x12, [x0, #:lo12:.LANCHOR107]
14172	adrp	x0, .LANCHOR108
14173	add	x6, x6, :lo12:.LANCHOR47
14174	mov	w8, 56
14175	ldr	x11, [x0, #:lo12:.LANCHOR108]
14176	adrp	x0, .LANCHOR58
14177	ldrh	w10, [x0, #:lo12:.LANCHOR58]
14178	b	.L2111
14179.L2071:
14180	ldrh	w1, [x29, 172]
14181	ldrb	w0, [x6, x5]
14182	bl	V2P_block
14183	and	w4, w0, 65535
14184	bl	FtlBbmIsBadBlock
14185	cbnz	w0, .L2070
14186	umaddl	x1, w22, w8, x7
14187	lsl	w4, w4, 10
14188	mul	w0, w22, w10
14189	add	w22, w22, 1
14190	and	w22, w22, 65535
14191	asr	w0, w0, 2
14192	str	w4, [x1, 4]
14193	add	x0, x11, x0, sxtw 2
14194	stp	x12, x0, [x1, 8]
14195.L2070:
14196	add	x5, x5, 1
14197.L2111:
14198	cmp	w13, w5, uxth
14199	bhi	.L2071
14200	cbnz	w22, .L2072
14201.L2109:
14202	ldr	w0, [x29, 172]
14203	add	w26, w0, 1
14204	and	w0, w26, 65535
14205	str	w0, [x29, 172]
14206	b	.L2069
14207.L2072:
14208	mov	w1, w22
14209	mov	w2, 1
14210	mov	x0, x7
14211	bl	FlashReadPages
14212	mov	w0, 56
14213	umull	x0, w22, w0
14214	mov	x22, 0
14215	str	x0, [x29, 128]
14216	adrp	x0, .LANCHOR229
14217	add	x0, x0, :lo12:.LANCHOR229
14218	str	x0, [x29, 136]
14219.L2108:
14220	ldr	x0, [x25, #:lo12:.LANCHOR186]
14221	add	x1, x0, x22
14222	ldr	w0, [x0, x22]
14223	ldr	w3, [x1, 4]
14224	cmn	w0, #1
14225	ldr	x27, [x1, 16]
14226	ubfx	x26, x3, 10, 16
14227	bne	.L2075
14228	mov	w5, 16
14229	mov	w7, 65535
14230.L2077:
14231	ldr	x0, [x25, #:lo12:.LANCHOR186]
14232	add	x6, x25, :lo12:.LANCHOR186
14233	mov	w2, 1
14234	str	w7, [x29, 100]
14235	add	x0, x0, x22
14236	str	x6, [x29, 104]
14237	str	w5, [x29, 168]
14238	ldr	w1, [x0, 4]
14239	add	w1, w1, 1
14240	str	w1, [x0, 4]
14241	mov	w1, w2
14242	bl	FlashReadPages
14243	ldrh	w0, [x27]
14244	ldr	w7, [x29, 100]
14245	ldr	w5, [x29, 168]
14246	cmp	w0, w7
14247	ldr	x6, [x29, 104]
14248	bne	.L2074
14249	ldr	x0, [x6]
14250	mov	w1, -1
14251	str	w1, [x0, x22]
14252	ldr	x0, [x6]
14253	ldr	w0, [x0, x22]
14254	cmp	w0, w1
14255	beq	.L2147
14256.L2075:
14257	adrp	x0, .LANCHOR164
14258	ldr	w1, [x0, #:lo12:.LANCHOR164]
14259	ldr	w0, [x27, 4]
14260	cmn	w1, #1
14261	beq	.L2078
14262	cmp	w1, w0
14263	bhi	.L2079
14264.L2078:
14265	cmn	w0, #1
14266	beq	.L2079
14267	ldr	x2, [x29, 112]
14268	add	w1, w0, 1
14269	str	w1, [x2]
14270.L2079:
14271	ldrh	w1, [x27]
14272	mov	w2, 61604
14273	cmp	w1, w2
14274	beq	.L2081
14275	bhi	.L2082
14276	mov	w0, 61574
14277	cmp	w1, w0
14278	beq	.L2083
14279.L2080:
14280	ldr	x0, [x29, 128]
14281	add	x22, x22, 56
14282	cmp	x0, x22
14283	bne	.L2108
14284	b	.L2109
14285.L2074:
14286	ldr	x0, [x25, #:lo12:.LANCHOR186]
14287	ldr	w0, [x0, x22]
14288	cmn	w0, #1
14289	bne	.L2075
14290	sub	w5, w5, #1
14291	ands	w5, w5, 65535
14292	bne	.L2077
14293.L2147:
14294	mov	w1, 0
14295	mov	w0, w26
14296	bl	FtlFreeSysBlkQueueIn
14297	b	.L2080
14298.L2082:
14299	mov	w0, 61634
14300	cmp	w1, w0
14301	beq	.L2084
14302	mov	w0, 65535
14303	cmp	w1, w0
14304	beq	.L2147
14305	b	.L2080
14306.L2084:
14307	ldrh	w1, [x20, #:lo12:.LANCHOR131]
14308	ldr	w0, [x21, #:lo12:.LANCHOR64]
14309	cmp	w1, w0
14310	bls	.L2086
14311	ldr	x1, [x29, 136]
14312	mov	w2, 1469
14313	adrp	x0, .LC5
14314	add	x0, x0, :lo12:.LC5
14315	bl	printf
14316	adrp	x1, .LC6
14317	adrp	x0, .LC7
14318	add	x1, x1, :lo12:.LC6
14319	add	x0, x0, :lo12:.LC7
14320	bl	printf
14321.L2086:
14322	ldr	w6, [x21, #:lo12:.LANCHOR64]
14323	ldr	x3, [x29, 152]
14324	ldrh	w1, [x20, #:lo12:.LANCHOR131]
14325	and	w2, w6, 65535
14326	sub	w0, w2, #1
14327	sub	w2, w2, w1
14328	sxth	x0, w0
14329	sub	w2, w2, #1
14330	ldr	x5, [x3, #:lo12:.LANCHOR133]
14331	sxth	w2, w2
14332.L2087:
14333	cmp	w0, w2
14334	bgt	.L2093
14335	tbz	w0, #31, .L2128
14336	b	.L2080
14337.L2093:
14338	sxtw	x8, w0
14339	ldr	w11, [x27, 4]
14340	lsl	x7, x8, 2
14341	add	x10, x5, x7
14342	ldr	w7, [x5, x7]
14343	cmp	w11, w7
14344	bls	.L2088
14345	ldr	w2, [x5]
14346	cbnz	w2, .L2089
14347	cmp	w6, w1
14348	beq	.L2089
14349	add	w1, w1, 1
14350	strh	w1, [x20, #:lo12:.LANCHOR131]
14351.L2089:
14352	ldr	x1, [x29, 160]
14353	ldr	x6, [x1, #:lo12:.LANCHOR132]
14354	mov	w1, 0
14355.L2090:
14356	cmp	w1, w0
14357	bne	.L2091
14358	ldr	w1, [x27, 4]
14359	str	w1, [x10]
14360	strh	w26, [x6, x8, lsl 1]
14361	tbnz	w0, #31, .L2080
14362	ldrh	w1, [x20, #:lo12:.LANCHOR131]
14363	ldr	w2, [x21, #:lo12:.LANCHOR64]
14364	sub	w2, w2, w1
14365	sub	w2, w2, #1
14366	cmp	w0, w2, sxth
14367	bgt	.L2080
14368.L2128:
14369	add	w1, w1, 1
14370	strh	w1, [x20, #:lo12:.LANCHOR131]
14371	ldr	w1, [x27, 4]
14372	str	w1, [x5, x0, lsl 2]
14373	ldr	x1, [x29, 160]
14374	ldr	x1, [x1, #:lo12:.LANCHOR132]
14375.L2146:
14376	strh	w26, [x1, x0, lsl 1]
14377	b	.L2080
14378.L2091:
14379	sxtw	x2, w1
14380	add	w1, w1, 1
14381	lsl	x7, x2, 2
14382	lsl	x2, x2, 1
14383	add	x11, x5, x7
14384	sxth	w1, w1
14385	ldr	w11, [x11, 4]
14386	str	w11, [x5, x7]
14387	add	x7, x6, x2
14388	ldrh	w7, [x7, 2]
14389	strh	w7, [x6, x2]
14390	b	.L2090
14391.L2088:
14392	sub	w0, w0, #1
14393	sxth	x0, w0
14394	b	.L2087
14395.L2083:
14396	ldrh	w1, [x23, #:lo12:.LANCHOR70]
14397	ldrh	w0, [x19, #:lo12:.LANCHOR61]
14398	cmp	w1, w0
14399	bls	.L2096
14400	ldr	x1, [x29, 136]
14401	mov	w2, 1513
14402	adrp	x0, .LC5
14403	add	x0, x0, :lo12:.LC5
14404	bl	printf
14405	adrp	x1, .LC6
14406	adrp	x0, .LC7
14407	add	x1, x1, :lo12:.LC6
14408	add	x0, x0, :lo12:.LC7
14409	bl	printf
14410.L2096:
14411	ldrh	w6, [x19, #:lo12:.LANCHOR61]
14412	ldrh	w2, [x23, #:lo12:.LANCHOR70]
14413	sub	w1, w6, #1
14414	sxth	x0, w1
14415	sub	w5, w1, w2
14416	ldr	x1, [x29, 144]
14417	ldr	x1, [x1, #:lo12:.LANCHOR201]
14418.L2097:
14419	cmp	w0, w5
14420	ble	.L2102
14421	sxtw	x7, w0
14422	ldr	w11, [x27, 4]
14423	lsl	x8, x7, 2
14424	add	x10, x1, x8
14425	ldr	w8, [x1, x8]
14426	cmp	w11, w8
14427	bls	.L2098
14428	ldr	w5, [x1]
14429	cbnz	w5, .L2099
14430	cmp	w6, w2
14431	beq	.L2099
14432	add	w2, w2, 1
14433	strh	w2, [x23, #:lo12:.LANCHOR70]
14434.L2099:
14435	ldr	x6, [x28, #:lo12:.LANCHOR71]
14436	mov	w2, 0
14437.L2100:
14438	cmp	w2, w0
14439	bne	.L2101
14440	ldr	w2, [x27, 4]
14441	str	w2, [x10]
14442	strh	w26, [x6, x7, lsl 1]
14443.L2102:
14444	tbnz	w0, #31, .L2080
14445	ldrh	w2, [x19, #:lo12:.LANCHOR61]
14446	ldrh	w5, [x23, #:lo12:.LANCHOR70]
14447	sub	w2, w2, #1
14448	sub	w2, w2, w5
14449	cmp	w0, w2, sxth
14450	bgt	.L2080
14451	add	w5, w5, 1
14452	ldr	w2, [x27, 4]
14453	strh	w5, [x23, #:lo12:.LANCHOR70]
14454	str	w2, [x1, x0, lsl 2]
14455	ldr	x1, [x28, #:lo12:.LANCHOR71]
14456	b	.L2146
14457.L2101:
14458	sxtw	x5, w2
14459	add	w2, w2, 1
14460	lsl	x8, x5, 2
14461	lsl	x5, x5, 1
14462	add	x11, x1, x8
14463	sxth	w2, w2
14464	ldr	w11, [x11, 4]
14465	str	w11, [x1, x8]
14466	add	x8, x6, x5
14467	ldrh	w8, [x8, 2]
14468	strh	w8, [x6, x5]
14469	b	.L2100
14470.L2098:
14471	sub	w0, w0, #1
14472	sxth	x0, w0
14473	b	.L2097
14474.L2081:
14475	ldrh	w5, [x24, #:lo12:.LANCHOR218]
14476	mov	w1, 65535
14477	add	x2, x24, :lo12:.LANCHOR218
14478	cmp	w5, w1
14479	bne	.L2104
14480	strh	w26, [x24, #:lo12:.LANCHOR218]
14481	str	w0, [x2, 8]
14482	b	.L2080
14483.L2104:
14484	ldrh	w0, [x2, 4]
14485	cmp	w0, w1
14486	beq	.L2105
14487	mov	w1, 1
14488	bl	FtlFreeSysBlkQueueIn
14489.L2105:
14490	add	x0, x24, :lo12:.LANCHOR218
14491	ldr	w1, [x27, 4]
14492	ldr	w2, [x0, 8]
14493	cmp	w2, w1
14494	bcs	.L2106
14495	ldrh	w2, [x24, #:lo12:.LANCHOR218]
14496	strh	w2, [x0, 4]
14497	strh	w26, [x24, #:lo12:.LANCHOR218]
14498	str	w1, [x0, 8]
14499	b	.L2080
14500.L2106:
14501	strh	w26, [x0, 4]
14502	b	.L2080
14503.L2110:
14504	ldr	x0, [x29, 160]
14505	ldr	x2, [x0, #:lo12:.LANCHOR132]
14506	ldrh	w0, [x2]
14507	cbz	w0, .L2112
14508.L2115:
14509	ldr	x1, [x28, #:lo12:.LANCHOR71]
14510	ldrh	w0, [x1]
14511	cbz	w0, .L2113
14512.L2114:
14513	ldrh	w1, [x20, #:lo12:.LANCHOR131]
14514	ldr	w0, [x21, #:lo12:.LANCHOR64]
14515	cmp	w1, w0
14516	bls	.L2144
14517	mov	w2, 1631
14518	adrp	x1, .LANCHOR229
14519	adrp	x0, .LC5
14520	add	x1, x1, :lo12:.LANCHOR229
14521	add	x0, x0, :lo12:.LC5
14522	bl	printf
14523	adrp	x1, .LC6
14524	adrp	x0, .LC7
14525	add	x1, x1, :lo12:.LC6
14526	add	x0, x0, :lo12:.LC7
14527	bl	printf
14528.L2144:
14529	ldp	x19, x20, [sp, 16]
14530	mov	w0, 0
14531	ldp	x21, x22, [sp, 32]
14532	ldp	x23, x24, [sp, 48]
14533	ldp	x25, x26, [sp, 64]
14534	ldp	x27, x28, [sp, 80]
14535	ldp	x29, x30, [sp], 176
14536	ret
14537.L2112:
14538	ldrh	w0, [x20, #:lo12:.LANCHOR131]
14539	cbz	w0, .L2115
14540	ldr	w1, [x21, #:lo12:.LANCHOR64]
14541	mov	w0, 0
14542.L2116:
14543	cmp	w0, w1
14544	bcs	.L2115
14545	ldrh	w3, [x2, w0, sxtw 1]
14546	cbz	w3, .L2117
14547	ldr	x1, [x29, 152]
14548	add	x7, x21, :lo12:.LANCHOR64
14549	ldr	x4, [x1, #:lo12:.LANCHOR133]
14550	mov	w1, w0
14551.L2118:
14552	ldr	w3, [x7]
14553	cmp	w1, w3
14554	bcs	.L2115
14555	sxtw	x6, w1
14556	sub	w3, w1, w0
14557	lsl	x5, x6, 1
14558	sxtw	x3, w3
14559	add	w1, w1, 1
14560	ldr	w6, [x4, x6, lsl 2]
14561	sxth	w1, w1
14562	ldrh	w8, [x2, x5]
14563	strh	w8, [x2, x3, lsl 1]
14564	str	w6, [x4, x3, lsl 2]
14565	strh	wzr, [x2, x5]
14566	b	.L2118
14567.L2117:
14568	add	w0, w0, 1
14569	sxth	w0, w0
14570	b	.L2116
14571.L2113:
14572	ldrh	w0, [x23, #:lo12:.LANCHOR70]
14573	cbz	w0, .L2114
14574	ldrh	w2, [x19, #:lo12:.LANCHOR61]
14575	mov	w0, 0
14576.L2123:
14577	mov	w6, w0
14578	cmp	w0, w2
14579	bge	.L2114
14580	ldrh	w3, [x1, w0, sxtw 1]
14581	cbz	w3, .L2124
14582	ldr	x2, [x29, 144]
14583	add	x19, x19, :lo12:.LANCHOR61
14584	ldr	x3, [x2, #:lo12:.LANCHOR201]
14585.L2125:
14586	ldrh	w2, [x19]
14587	cmp	w0, w2
14588	bge	.L2114
14589	sxtw	x5, w0
14590	sub	w2, w0, w6
14591	lsl	x4, x5, 1
14592	sxtw	x2, w2
14593	add	w0, w0, 1
14594	ldr	w5, [x3, x5, lsl 2]
14595	sxth	w0, w0
14596	ldrh	w7, [x1, x4]
14597	strh	w7, [x1, x2, lsl 1]
14598	str	w5, [x3, x2, lsl 2]
14599	strh	wzr, [x1, x4]
14600	b	.L2125
14601.L2124:
14602	add	w0, w0, 1
14603	sxth	w0, w0
14604	b	.L2123
14605	.size	FtlScanSysBlk, .-FtlScanSysBlk
14606	.section	.text.FtlLoadSysInfo,"ax",@progbits
14607	.align	2
14608	.global	FtlLoadSysInfo
14609	.type	FtlLoadSysInfo, %function
14610FtlLoadSysInfo:
14611	sub	sp, sp, #128
14612	stp	x29, x30, [sp, 16]
14613	add	x29, sp, 16
14614	stp	x23, x24, [sp, 64]
14615	adrp	x23, .LANCHOR189
14616	stp	x19, x20, [sp, 32]
14617	adrp	x19, .LANCHOR211
14618	add	x0, x19, :lo12:.LANCHOR211
14619	stp	x25, x26, [sp, 80]
14620	adrp	x25, .LANCHOR195
14621	stp	x21, x22, [sp, 48]
14622	stp	x27, x28, [sp, 96]
14623	adrp	x24, .LANCHOR85
14624	ldr	x1, [x23, #:lo12:.LANCHOR189]
14625	adrp	x22, .LANCHOR40
14626	str	x1, [x0, 8]
14627	adrp	x21, .LANCHOR218
14628	ldr	x1, [x25, #:lo12:.LANCHOR195]
14629	str	x1, [x0, 16]
14630	ldr	x0, [x24, #:lo12:.LANCHOR85]
14631	mov	w1, 0
14632	ldrh	w2, [x22, #:lo12:.LANCHOR40]
14633	lsl	w2, w2, 1
14634	bl	ftl_memset
14635	ldrh	w0, [x21, #:lo12:.LANCHOR218]
14636	mov	w1, 65535
14637	cmp	w0, w1
14638	bne	.L2149
14639.L2161:
14640	mov	w0, -1
14641.L2148:
14642	ldp	x19, x20, [sp, 32]
14643	ldp	x21, x22, [sp, 48]
14644	ldp	x23, x24, [sp, 64]
14645	ldp	x25, x26, [sp, 80]
14646	ldp	x27, x28, [sp, 96]
14647	ldp	x29, x30, [sp, 16]
14648	add	sp, sp, 128
14649	ret
14650.L2149:
14651	add	x26, x21, :lo12:.LANCHOR218
14652	mov	w1, 1
14653	bl	FtlGetLastWrittenPage
14654	ldrsh	w28, [x21, #:lo12:.LANCHOR218]
14655	sxth	w20, w0
14656	adrp	x27, .LANCHOR57
14657	add	w0, w0, 1
14658	add	x27, x27, :lo12:.LANCHOR57
14659	strh	w0, [x26, 2]
14660	adrp	x26, .LANCHOR2
14661	add	x0, x26, :lo12:.LANCHOR2
14662	str	x0, [x29, 104]
14663.L2151:
14664	tbz	w20, #31, .L2157
14665	mov	w2, 1708
14666	adrp	x1, .LANCHOR230
14667	adrp	x0, .LC5
14668	add	x1, x1, :lo12:.LANCHOR230
14669	add	x0, x0, :lo12:.LC5
14670	bl	printf
14671	adrp	x1, .LC6
14672	adrp	x0, .LC7
14673	add	x1, x1, :lo12:.LC6
14674	add	x0, x0, :lo12:.LC7
14675	bl	printf
14676	b	.L2156
14677.L2157:
14678	add	x26, x19, :lo12:.LANCHOR211
14679	orr	w0, w20, w28, lsl 10
14680	mov	w2, 1
14681	mov	w1, w2
14682	str	w0, [x26, 4]
14683	ldr	x0, [x23, #:lo12:.LANCHOR189]
14684	str	x0, [x26, 8]
14685	mov	x0, x26
14686	bl	FlashReadPages
14687	ldr	x0, [x29, 104]
14688	ldrb	w0, [x0]
14689	cbz	w0, .L2152
14690	ldr	x8, [x26, 16]
14691	ldr	w7, [x8, 12]
14692	cbz	w7, .L2152
14693	ldr	x6, [x26, 8]
14694	ldrh	w1, [x27]
14695	mov	x0, x6
14696	bl	js_hash
14697	cmp	w7, w0
14698	beq	.L2152
14699	cbnz	w20, .L2153
14700	add	x10, x21, :lo12:.LANCHOR218
14701	str	x10, [x29, 96]
14702	ldrh	w0, [x10, 4]
14703	cmp	w28, w0
14704	beq	.L2153
14705	ldr	w0, [x6]
14706	str	w0, [sp]
14707	ldrh	w1, [x21, #:lo12:.LANCHOR218]
14708	adrp	x0, .LC47
14709	ldr	w2, [x19, #:lo12:.LANCHOR211]
14710	add	x0, x0, :lo12:.LC47
14711	ldp	w4, w5, [x8]
14712	ldr	w6, [x8, 8]
14713	ldr	w3, [x26, 4]
14714	bl	printf
14715	ldr	x10, [x29, 96]
14716	adrp	x0, .LANCHOR53
14717	ldrh	w20, [x0, #:lo12:.LANCHOR53]
14718	ldrsh	w28, [x10, 4]
14719.L2155:
14720	sub	w20, w20, #1
14721	sxth	w20, w20
14722	b	.L2151
14723.L2153:
14724	mov	w0, -1
14725	str	w0, [x19, #:lo12:.LANCHOR211]
14726.L2152:
14727	ldr	w0, [x19, #:lo12:.LANCHOR211]
14728	cmn	w0, #1
14729	beq	.L2155
14730	ldr	x0, [x23, #:lo12:.LANCHOR189]
14731	mov	w1, 19539
14732	movk	w1, 0x4654, lsl 16
14733	ldr	w0, [x0]
14734	cmp	w0, w1
14735	bne	.L2155
14736	ldr	x0, [x25, #:lo12:.LANCHOR195]
14737	ldrh	w1, [x0]
14738	mov	w0, 61604
14739	cmp	w1, w0
14740	bne	.L2155
14741.L2156:
14742	adrp	x1, .LANCHOR57
14743	ldrh	w0, [x22, #:lo12:.LANCHOR40]
14744	ldrh	w1, [x1, #:lo12:.LANCHOR57]
14745	add	x0, x0, 24
14746	cmp	x1, x0, lsl 1
14747	bcs	.L2159
14748	mov	w2, 1710
14749	adrp	x1, .LANCHOR230
14750	adrp	x0, .LC5
14751	add	x1, x1, :lo12:.LANCHOR230
14752	add	x0, x0, :lo12:.LC5
14753	bl	printf
14754	adrp	x1, .LC6
14755	adrp	x0, .LC7
14756	add	x1, x1, :lo12:.LC6
14757	add	x0, x0, :lo12:.LC7
14758	bl	printf
14759.L2159:
14760	add	x19, x19, :lo12:.LANCHOR211
14761	mov	w2, 48
14762	adrp	x20, .LANCHOR82
14763	add	x0, x20, :lo12:.LANCHOR82
14764	ldr	x1, [x19, 8]
14765	bl	ftl_memcpy
14766	ldr	x0, [x24, #:lo12:.LANCHOR85]
14767	ldrh	w2, [x22, #:lo12:.LANCHOR40]
14768	ldr	x1, [x19, 8]
14769	lsl	w2, w2, 1
14770	add	x1, x1, 48
14771	bl	ftl_memcpy
14772	ldrh	w1, [x22, #:lo12:.LANCHOR40]
14773	ldr	x0, [x19, 8]
14774	lsr	w2, w1, 3
14775	ubfiz	x1, x1, 1, 16
14776	add	x1, x1, 51
14777	add	w2, w2, 4
14778	and	x1, x1, -4
14779	add	x1, x0, x1
14780	adrp	x0, .LANCHOR1
14781	ldr	x0, [x0, #:lo12:.LANCHOR1]
14782	bl	ftl_memcpy
14783	adrp	x0, .LANCHOR69
14784	ldrh	w0, [x0, #:lo12:.LANCHOR69]
14785	cbz	w0, .L2160
14786	ldrh	w1, [x22, #:lo12:.LANCHOR40]
14787	adrp	x0, .LANCHOR66
14788	ldrh	w2, [x0, #:lo12:.LANCHOR66]
14789	lsr	w0, w1, 3
14790	add	w1, w0, w1, lsl 1
14791	ldr	x0, [x19, 8]
14792	add	w1, w1, 52
14793	lsl	w2, w2, 2
14794	and	x1, x1, 65532
14795	add	x1, x0, x1
14796	adrp	x0, .LANCHOR203
14797	ldr	x0, [x0, #:lo12:.LANCHOR203]
14798	bl	ftl_memcpy
14799.L2160:
14800	ldr	w2, [x20, #:lo12:.LANCHOR82]
14801	mov	w1, 19539
14802	movk	w1, 0x4654, lsl 16
14803	add	x0, x20, :lo12:.LANCHOR82
14804	cmp	w2, w1
14805	bne	.L2161
14806	add	x21, x21, :lo12:.LANCHOR218
14807	ldrh	w1, [x0, 8]
14808	ldrb	w2, [x0, 10]
14809	adrp	x0, .LANCHOR45
14810	strh	w1, [x21, 6]
14811	ldrh	w0, [x0, #:lo12:.LANCHOR45]
14812	cmp	w2, w0
14813	bne	.L2161
14814	adrp	x0, .LANCHOR231
14815	adrp	x2, .LANCHOR74
14816	adrp	x3, .LANCHOR38
14817	str	w1, [x0, #:lo12:.LANCHOR231]
14818	adrp	x0, .LANCHOR52
14819	ldrh	w3, [x3, #:lo12:.LANCHOR38]
14820	ldrh	w0, [x0, #:lo12:.LANCHOR52]
14821	mul	w0, w0, w1
14822	str	w0, [x2, #:lo12:.LANCHOR74]
14823	adrp	x2, .LANCHOR55
14824	ldrh	w2, [x2, #:lo12:.LANCHOR55]
14825	mul	w0, w2, w0
14826	adrp	x2, .LANCHOR68
14827	str	w0, [x2, #:lo12:.LANCHOR68]
14828	adrp	x0, .LANCHOR42
14829	ldr	w2, [x0, #:lo12:.LANCHOR42]
14830	adrp	x0, .LANCHOR76+6
14831	ldrh	w0, [x0, #:lo12:.LANCHOR76+6]
14832	cmp	w1, w2
14833	sub	w0, w2, w0
14834	sub	w0, w0, w1
14835	udiv	w0, w0, w3
14836	adrp	x3, .LANCHOR232
14837	strh	w0, [x3, #:lo12:.LANCHOR232]
14838	bls	.L2162
14839	mov	w2, 1739
14840	adrp	x1, .LANCHOR230
14841	adrp	x0, .LC5
14842	add	x1, x1, :lo12:.LANCHOR230
14843	add	x0, x0, :lo12:.LC5
14844	bl	printf
14845	adrp	x1, .LC6
14846	adrp	x0, .LC7
14847	add	x1, x1, :lo12:.LC6
14848	add	x0, x0, :lo12:.LC7
14849	bl	printf
14850.L2162:
14851	add	x4, x20, :lo12:.LANCHOR82
14852	adrp	x0, .LANCHOR93
14853	add	x2, x0, :lo12:.LANCHOR93
14854	adrp	x5, .LANCHOR213
14855	adrp	x19, .LANCHOR94
14856	mov	x22, x5
14857	ldrh	w1, [x4, 16]
14858	ldrh	w6, [x4, 14]
14859	strh	w6, [x0, #:lo12:.LANCHOR93]
14860	lsr	w3, w1, 6
14861	and	w1, w1, 63
14862	strb	w1, [x2, 6]
14863	ldrb	w1, [x4, 11]
14864	strb	w1, [x2, 8]
14865	add	x1, x5, :lo12:.LANCHOR213
14866	strh	w3, [x2, 2]
14867	mov	w2, -1
14868	strh	w2, [x5, #:lo12:.LANCHOR213]
14869	add	x2, x19, :lo12:.LANCHOR94
14870	strh	wzr, [x1, 2]
14871	strb	wzr, [x1, 6]
14872	strb	wzr, [x1, 8]
14873	ldrh	w1, [x4, 18]
14874	strh	w1, [x19, #:lo12:.LANCHOR94]
14875	ldrh	w1, [x4, 20]
14876	lsr	w3, w1, 6
14877	and	w1, w1, 63
14878	strb	w1, [x2, 6]
14879	ldrb	w1, [x4, 12]
14880	strh	w3, [x2, 2]
14881	strb	w1, [x2, 8]
14882	adrp	x2, .LANCHOR95
14883	ldrh	w1, [x4, 22]
14884	add	x3, x2, :lo12:.LANCHOR95
14885	strh	w1, [x2, #:lo12:.LANCHOR95]
14886	mov	x21, x2
14887	ldrh	w1, [x4, 24]
14888	lsr	w7, w1, 6
14889	and	w1, w1, 63
14890	strb	w1, [x3, 6]
14891	ldrb	w1, [x4, 13]
14892	strb	w1, [x3, 8]
14893	adrp	x1, .LANCHOR166
14894	strh	w7, [x3, 2]
14895	ldr	w3, [x4, 32]
14896	str	wzr, [x1, #:lo12:.LANCHOR166]
14897	adrp	x1, .LANCHOR167
14898	str	wzr, [x1, #:lo12:.LANCHOR167]
14899	adrp	x1, .LANCHOR171
14900	str	wzr, [x1, #:lo12:.LANCHOR171]
14901	adrp	x1, .LANCHOR170
14902	str	wzr, [x1, #:lo12:.LANCHOR170]
14903	adrp	x1, .LANCHOR172
14904	str	w3, [x1, #:lo12:.LANCHOR172]
14905	adrp	x1, .LANCHOR173
14906	str	wzr, [x1, #:lo12:.LANCHOR173]
14907	adrp	x1, .LANCHOR174
14908	str	wzr, [x1, #:lo12:.LANCHOR174]
14909	adrp	x1, .LANCHOR169
14910	ldr	w3, [x4, 40]
14911	str	wzr, [x1, #:lo12:.LANCHOR169]
14912	adrp	x1, .LANCHOR164
14913	ldr	w4, [x1, #:lo12:.LANCHOR164]
14914	cmp	w3, w4
14915	bls	.L2163
14916	str	w3, [x1, #:lo12:.LANCHOR164]
14917.L2163:
14918	add	x20, x20, :lo12:.LANCHOR82
14919	adrp	x1, .LANCHOR165
14920	ldr	w3, [x1, #:lo12:.LANCHOR165]
14921	ldr	w2, [x20, 36]
14922	cmp	w2, w3
14923	bls	.L2164
14924	str	w2, [x1, #:lo12:.LANCHOR165]
14925.L2164:
14926	mov	w1, 65535
14927	cmp	w6, w1
14928	beq	.L2165
14929	add	x0, x0, :lo12:.LANCHOR93
14930	bl	make_superblock
14931.L2165:
14932	ldrh	w2, [x19, #:lo12:.LANCHOR94]
14933	mov	w1, 65535
14934	add	x0, x19, :lo12:.LANCHOR94
14935	cmp	w2, w1
14936	beq	.L2166
14937	bl	make_superblock
14938.L2166:
14939	ldrh	w2, [x21, #:lo12:.LANCHOR95]
14940	mov	w1, 65535
14941	add	x0, x21, :lo12:.LANCHOR95
14942	cmp	w2, w1
14943	beq	.L2167
14944	bl	make_superblock
14945.L2167:
14946	ldrh	w2, [x22, #:lo12:.LANCHOR213]
14947	mov	w1, 65535
14948	add	x0, x22, :lo12:.LANCHOR213
14949	cmp	w2, w1
14950	beq	.L2168
14951	bl	make_superblock
14952.L2168:
14953	mov	w0, 0
14954	b	.L2148
14955	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
14956	.section	.text.FtlDumpBlockInfo,"ax",@progbits
14957	.align	2
14958	.global	FtlDumpBlockInfo
14959	.type	FtlDumpBlockInfo, %function
14960FtlDumpBlockInfo:
14961	sub	sp, sp, #160
14962	lsr	w0, w0, 10
14963	stp	x29, x30, [sp, 16]
14964	add	x29, sp, 16
14965	stp	x19, x20, [sp, 32]
14966	adrp	x19, .LANCHOR52
14967	stp	x21, x22, [sp, 48]
14968	and	w22, w1, 255
14969	stp	x23, x24, [sp, 64]
14970	add	x23, x29, 144
14971	stp	x25, x26, [sp, 80]
14972	str	x27, [sp, 96]
14973	bl	P2V_block_in_plane
14974	ldrh	w25, [x19, #:lo12:.LANCHOR52]
14975	and	w21, w0, 65535
14976	adrp	x1, .LANCHOR233
14977	adrp	x0, .LC48
14978	add	x1, x1, :lo12:.LANCHOR233
14979	add	x0, x0, :lo12:.LC48
14980	bl	printf
14981	adrp	x1, .LANCHOR85
14982	ubfiz	x0, x21, 1, 16
14983	ldr	x1, [x1, #:lo12:.LANCHOR85]
14984	ldrh	w2, [x1, x0]
14985	mov	w1, w21
14986	adrp	x0, .LC49
14987	add	x0, x0, :lo12:.LC49
14988	bl	printf
14989	strh	w21, [x23, -48]!
14990	mov	x0, x23
14991	bl	make_superblock
14992	adrp	x0, .LANCHOR16
14993	ldrb	w0, [x0, #:lo12:.LANCHOR16]
14994	cbz	w0, .L2193
14995	cbnz	w22, .L2193
14996	mov	w0, w21
14997	bl	ftl_get_blk_mode
14998	mov	w21, w0
14999	cmp	w0, 1
15000	bne	.L2184
15001	adrp	x0, .LANCHOR53
15002	ldrh	w25, [x0, #:lo12:.LANCHOR53]
15003.L2184:
15004	ldrh	w3, [x19, #:lo12:.LANCHOR52]
15005	adrp	x26, .LC51
15006	add	x26, x26, :lo12:.LC51
15007	mov	w20, 0
15008	mov	w27, 56
15009	mov	w2, w25
15010	mov	w1, w21
15011	adrp	x0, .LC50
15012	add	x0, x0, :lo12:.LC50
15013	bl	printf
15014.L2185:
15015	adrp	x1, .LANCHOR107
15016	adrp	x0, .LANCHOR38
15017	adrp	x24, .LANCHOR186
15018	add	x3, x23, 16
15019	ldr	x6, [x1, #:lo12:.LANCHOR107]
15020	adrp	x1, .LANCHOR57
15021	ldrh	w5, [x0, #:lo12:.LANCHOR38]
15022	mov	w19, 0
15023	ldrh	w7, [x1, #:lo12:.LANCHOR57]
15024	adrp	x1, .LANCHOR108
15025	ldr	x0, [x24, #:lo12:.LANCHOR186]
15026	mov	w11, 65535
15027	ldr	x8, [x1, #:lo12:.LANCHOR108]
15028	adrp	x1, .LANCHOR58
15029	ldrh	w10, [x1, #:lo12:.LANCHOR58]
15030	mov	w1, 0
15031.L2186:
15032	cmp	w1, w5
15033	bne	.L2188
15034	mov	w1, w19
15035	umull	x19, w19, w27
15036	mov	x22, 0
15037	mov	w2, w21
15038	bl	FlashReadPages
15039.L2189:
15040	cmp	x22, x19
15041	bne	.L2190
15042	add	w20, w20, 1
15043	and	w20, w20, 65535
15044	cmp	w25, w20
15045	bne	.L2185
15046.L2191:
15047	ldp	x19, x20, [sp, 32]
15048	mov	w0, 0
15049	ldp	x21, x22, [sp, 48]
15050	ldp	x23, x24, [sp, 64]
15051	ldp	x25, x26, [sp, 80]
15052	ldp	x29, x30, [sp, 16]
15053	ldr	x27, [sp, 96]
15054	add	sp, sp, 160
15055	ret
15056.L2193:
15057	mov	w21, 0
15058	b	.L2184
15059.L2188:
15060	ldrh	w2, [x3]
15061	cmp	w2, w11
15062	beq	.L2187
15063	umaddl	x4, w19, w27, x0
15064	orr	w2, w20, w2, lsl 10
15065	str	w2, [x4, 4]
15066	mul	w2, w19, w7
15067	asr	w2, w2, 2
15068	add	x2, x6, x2, sxtw 2
15069	str	x2, [x4, 8]
15070	mul	w2, w19, w10
15071	add	w19, w19, 1
15072	and	w19, w19, 65535
15073	asr	w2, w2, 2
15074	add	x2, x8, x2, sxtw 2
15075	str	x2, [x4, 16]
15076.L2187:
15077	add	w1, w1, 1
15078	add	x3, x3, 2
15079	and	w1, w1, 65535
15080	b	.L2186
15081.L2190:
15082	ldr	x8, [x24, #:lo12:.LANCHOR186]
15083	ldrh	w1, [x29, 96]
15084	add	x2, x8, x22
15085	ldp	x3, x0, [x2, 8]
15086	ldr	w4, [x3, 4]
15087	str	w4, [sp, 8]
15088	ldr	w3, [x3]
15089	str	w3, [sp]
15090	ldp	w4, w5, [x0]
15091	ldp	w6, w7, [x0, 8]
15092	mov	x0, x26
15093	ldr	w3, [x2, 4]
15094	ldr	w2, [x8, x22]
15095	add	x22, x22, 56
15096	bl	printf
15097	b	.L2189
15098	.size	FtlDumpBlockInfo, .-FtlDumpBlockInfo
15099	.section	.text.FtlScanAllBlock,"ax",@progbits
15100	.align	2
15101	.global	FtlScanAllBlock
15102	.type	FtlScanAllBlock, %function
15103FtlScanAllBlock:
15104	sub	sp, sp, #144
15105	adrp	x1, .LANCHOR234
15106	adrp	x0, .LC48
15107	add	x1, x1, :lo12:.LANCHOR234
15108	add	x0, x0, :lo12:.LC48
15109	stp	x29, x30, [sp, 16]
15110	add	x29, sp, 16
15111	stp	x23, x24, [sp, 64]
15112	adrp	x23, .LANCHOR41
15113	stp	x19, x20, [sp, 32]
15114	adrp	x24, .LC53
15115	stp	x21, x22, [sp, 48]
15116	mov	w20, 0
15117	add	x23, x23, :lo12:.LANCHOR41
15118	add	x24, x24, :lo12:.LC53
15119	str	x25, [sp, 80]
15120	bl	printf
15121.L2197:
15122	ldrh	w0, [x23]
15123	cmp	w0, w20
15124	bhi	.L2205
15125	ldp	x19, x20, [sp, 32]
15126	mov	w0, 0
15127	ldp	x21, x22, [sp, 48]
15128	ldp	x23, x24, [sp, 64]
15129	ldp	x29, x30, [sp, 16]
15130	ldr	x25, [sp, 80]
15131	add	sp, sp, 144
15132	ret
15133.L2205:
15134	strh	w20, [x29, 80]
15135	mov	w0, w20
15136	bl	ftl_get_blk_mode
15137	mov	w3, w0
15138	adrp	x2, .LANCHOR85
15139	ubfiz	x1, x20, 1, 16
15140	adrp	x0, .LC52
15141	add	x0, x0, :lo12:.LC52
15142	ldr	x2, [x2, #:lo12:.LANCHOR85]
15143	adrp	x22, .LANCHOR186
15144	mov	w19, 0
15145	ldrh	w2, [x2, x1]
15146	mov	w1, w20
15147	bl	printf
15148	add	x0, x29, 80
15149	bl	make_superblock
15150	adrp	x1, .LANCHOR107
15151	adrp	x0, .LANCHOR38
15152	add	x3, x29, 96
15153	mov	w11, 65535
15154	ldr	x6, [x1, #:lo12:.LANCHOR107]
15155	adrp	x1, .LANCHOR57
15156	ldrh	w5, [x0, #:lo12:.LANCHOR38]
15157	mov	w12, 56
15158	ldrh	w7, [x1, #:lo12:.LANCHOR57]
15159	adrp	x1, .LANCHOR108
15160	ldr	x0, [x22, #:lo12:.LANCHOR186]
15161	ldr	x8, [x1, #:lo12:.LANCHOR108]
15162	adrp	x1, .LANCHOR58
15163	ldrh	w10, [x1, #:lo12:.LANCHOR58]
15164	mov	w1, 0
15165.L2198:
15166	cmp	w1, w5
15167	bne	.L2200
15168	mov	w25, 56
15169	mov	x21, 0
15170	mov	w2, 0
15171	mov	w1, w19
15172	umull	x25, w19, w25
15173	bl	FlashReadPages
15174.L2201:
15175	cmp	x21, x25
15176	bne	.L2202
15177	ldr	x0, [x22, #:lo12:.LANCHOR186]
15178	adrp	x25, .LC54
15179	add	x25, x25, :lo12:.LC54
15180	mov	w1, w19
15181	mov	x19, 0
15182	mov	w2, 1
15183	bl	FlashReadPages
15184.L2203:
15185	cmp	x21, x19
15186	bne	.L2204
15187	add	w20, w20, 1
15188	and	w20, w20, 65535
15189	b	.L2197
15190.L2200:
15191	ldrh	w2, [x3]
15192	cmp	w2, w11
15193	beq	.L2199
15194	umaddl	x4, w19, w12, x0
15195	lsl	w2, w2, 10
15196	str	w2, [x4, 4]
15197	mul	w2, w19, w7
15198	asr	w2, w2, 2
15199	add	x2, x6, x2, sxtw 2
15200	str	x2, [x4, 8]
15201	mul	w2, w19, w10
15202	add	w19, w19, 1
15203	and	w19, w19, 65535
15204	asr	w2, w2, 2
15205	add	x2, x8, x2, sxtw 2
15206	str	x2, [x4, 16]
15207.L2199:
15208	add	w1, w1, 1
15209	add	x3, x3, 2
15210	and	w1, w1, 65535
15211	b	.L2198
15212.L2202:
15213	ldr	x8, [x22, #:lo12:.LANCHOR186]
15214	ldrh	w1, [x29, 80]
15215	add	x2, x8, x21
15216	ldp	x3, x0, [x2, 8]
15217	ldr	w4, [x3, 4]
15218	str	w4, [sp, 8]
15219	ldr	w3, [x3]
15220	str	w3, [sp]
15221	ldp	w4, w5, [x0]
15222	ldp	w6, w7, [x0, 8]
15223	mov	x0, x24
15224	ldr	w3, [x2, 4]
15225	ldr	w2, [x8, x21]
15226	add	x21, x21, 56
15227	bl	printf
15228	b	.L2201
15229.L2204:
15230	ldr	x8, [x22, #:lo12:.LANCHOR186]
15231	ldrh	w1, [x29, 80]
15232	add	x2, x8, x19
15233	ldp	x3, x0, [x2, 8]
15234	ldr	w4, [x3, 4]
15235	str	w4, [sp, 8]
15236	ldr	w3, [x3]
15237	str	w3, [sp]
15238	ldp	w4, w5, [x0]
15239	ldp	w6, w7, [x0, 8]
15240	mov	x0, x25
15241	ldr	w3, [x2, 4]
15242	ldr	w2, [x8, x19]
15243	add	x19, x19, 56
15244	bl	printf
15245	b	.L2203
15246	.size	FtlScanAllBlock, .-FtlScanAllBlock
15247	.section	.text.FtlMapTblRecovery,"ax",@progbits
15248	.align	2
15249	.global	FtlMapTblRecovery
15250	.type	FtlMapTblRecovery, %function
15251FtlMapTblRecovery:
15252	stp	x29, x30, [sp, -160]!
15253	mov	w1, 0
15254	add	x29, sp, 0
15255	stp	x27, x28, [sp, 80]
15256	mov	x28, x0
15257	stp	x23, x24, [sp, 48]
15258	ldrh	w24, [x0, 6]
15259	stp	x21, x22, [sp, 32]
15260	adrp	x21, .LANCHOR189
15261	ldr	x22, [x0, 40]
15262	ldr	x23, [x0, 16]
15263	lsl	w2, w24, 2
15264	ldr	x0, [x0, 24]
15265	str	x0, [x29, 144]
15266	ldrh	w0, [x28, 8]
15267	stp	x19, x20, [sp, 16]
15268	mov	w19, 0
15269	stp	x25, x26, [sp, 64]
15270	adrp	x25, .LANCHOR53
15271	str	w0, [x29, 156]
15272	mov	x0, x22
15273	bl	ftl_memset
15274	stp	wzr, wzr, [x28, 48]
15275	adrp	x0, .LANCHOR211
15276	add	x4, x0, :lo12:.LANCHOR211
15277	ldr	x1, [x21, #:lo12:.LANCHOR189]
15278	mov	x27, x4
15279	str	x0, [x29, 128]
15280	str	x1, [x4, 8]
15281	adrp	x1, .LANCHOR195
15282	ldr	w0, [x29, 156]
15283	ldr	x20, [x1, #:lo12:.LANCHOR195]
15284	mov	w1, -1
15285	str	x20, [x4, 16]
15286	sub	w0, w0, #1
15287	strh	w1, [x28]
15288	strh	w1, [x28, 2]
15289	mov	w1, 1
15290	str	w0, [x29, 116]
15291	add	x0, x25, :lo12:.LANCHOR53
15292	str	w1, [x28, 56]
15293	str	x0, [x29, 104]
15294.L2208:
15295	ldr	w0, [x29, 156]
15296	cmp	w19, w0
15297	bge	.L2227
15298	ldr	w0, [x29, 116]
15299	sxtw	x26, w19
15300	cmp	w19, w0
15301	bne	.L2209
15302	lsl	x0, x26, 1
15303	mov	w1, 1
15304	add	x21, x23, x0
15305	adrp	x27, .LANCHOR57
15306	add	x27, x27, :lo12:.LANCHOR57
15307	mov	w25, 0
15308	ldrh	w0, [x23, x0]
15309	bl	FtlGetLastWrittenPage
15310	sxth	w23, w0
15311	add	w0, w0, 1
15312	strh	w0, [x28, 2]
15313	ldr	x0, [x29, 144]
15314	strh	w19, [x28]
15315	ldr	w0, [x0, x26, lsl 2]
15316	adrp	x26, .LANCHOR2
15317	str	w0, [x28, 48]
15318	add	x26, x26, :lo12:.LANCHOR2
15319	ldr	x0, [x29, 128]
15320	add	x19, x0, :lo12:.LANCHOR211
15321.L2210:
15322	cmp	w25, w23
15323	ble	.L2213
15324.L2227:
15325	mov	x0, x28
15326	bl	ftl_free_no_use_map_blk
15327	adrp	x0, .LANCHOR53
15328	ldrh	w1, [x28, 2]
15329	ldrh	w0, [x0, #:lo12:.LANCHOR53]
15330	cmp	w1, w0
15331	bne	.L2215
15332	mov	x0, x28
15333	bl	ftl_map_blk_alloc_new_blk
15334.L2215:
15335	mov	x0, x28
15336	bl	ftl_map_blk_gc
15337	mov	x0, x28
15338	bl	ftl_map_blk_gc
15339	mov	w0, 0
15340	ldp	x19, x20, [sp, 16]
15341	ldp	x21, x22, [sp, 32]
15342	ldp	x23, x24, [sp, 48]
15343	ldp	x25, x26, [sp, 64]
15344	ldp	x27, x28, [sp, 80]
15345	ldp	x29, x30, [sp], 160
15346	ret
15347.L2213:
15348	ldrh	w0, [x21]
15349	mov	w2, 1
15350	mov	w1, w2
15351	orr	w0, w25, w0, lsl 10
15352	str	w0, [x19, 4]
15353	mov	x0, x19
15354	bl	FlashReadPages
15355	ldrb	w0, [x26]
15356	cbz	w0, .L2211
15357	ldr	x0, [x19, 16]
15358	ldr	w0, [x0, 12]
15359	str	w0, [x29, 156]
15360	uxtw	x0, w0
15361	cbz	w0, .L2211
15362	ldrh	w1, [x27]
15363	ldr	x0, [x19, 8]
15364	bl	js_hash
15365	ldr	w1, [x29, 156]
15366	cmp	w1, w0
15367	beq	.L2211
15368	mov	w0, -1
15369	str	w0, [x19]
15370.L2211:
15371	ldr	w0, [x19]
15372	cmn	w0, #1
15373	beq	.L2212
15374	ldrh	w0, [x20, 8]
15375	cmp	w24, w0
15376	bls	.L2212
15377	ldrh	w2, [x20]
15378	ldrh	w1, [x28, 4]
15379	cmp	w2, w1
15380	bne	.L2212
15381	ubfiz	x0, x0, 2, 16
15382	ldr	w1, [x19, 4]
15383	str	w1, [x22, x0]
15384.L2212:
15385	add	w25, w25, 1
15386	sxth	w25, w25
15387	b	.L2210
15388.L2209:
15389	lsl	x26, x26, 1
15390	ldr	x0, [x21, #:lo12:.LANCHOR189]
15391	str	x0, [x27, 8]
15392	add	x0, x23, x26
15393	ldrh	w1, [x25, #:lo12:.LANCHOR53]
15394	mov	w2, 1
15395	str	x0, [x29, 136]
15396	ldrh	w0, [x23, x26]
15397	sub	w1, w1, #1
15398	orr	w0, w1, w0, lsl 10
15399	mov	w1, w2
15400	str	w0, [x27, 4]
15401	mov	x0, x27
15402	bl	FlashReadPages
15403	ldr	w0, [x27]
15404	cmn	w0, #1
15405	beq	.L2229
15406	ldrh	w1, [x20]
15407	ldrh	w0, [x28, 4]
15408	cmp	w1, w0
15409	bne	.L2229
15410	ldrh	w1, [x20, 8]
15411	mov	w0, 64245
15412	cmp	w1, w0
15413	beq	.L2217
15414.L2229:
15415	adrp	x26, .LANCHOR57
15416	add	x26, x26, :lo12:.LANCHOR57
15417	adrp	x0, .LANCHOR2
15418	mov	w5, 0
15419	add	x0, x0, :lo12:.LANCHOR2
15420	str	x0, [x29, 120]
15421.L2218:
15422	ldr	x0, [x29, 104]
15423	ldrh	w0, [x0]
15424	cmp	w5, w0
15425	bge	.L2225
15426	ldr	x0, [x29, 136]
15427	mov	w2, 1
15428	str	w5, [x29, 152]
15429	mov	w1, w2
15430	ldrh	w0, [x0]
15431	orr	w0, w5, w0, lsl 10
15432	str	w0, [x27, 4]
15433	mov	x0, x27
15434	bl	FlashReadPages
15435	ldr	x0, [x29, 120]
15436	ldr	w5, [x29, 152]
15437	ldrb	w0, [x0]
15438	cbz	w0, .L2222
15439	ldr	x0, [x27, 16]
15440	ldr	w0, [x0, 12]
15441	str	w0, [x29, 152]
15442	uxtw	x0, w0
15443	cbz	w0, .L2222
15444	ldrh	w1, [x26]
15445	ldr	x0, [x27, 8]
15446	str	w5, [x29, 112]
15447	bl	js_hash
15448	ldr	w1, [x29, 152]
15449	ldr	w5, [x29, 112]
15450	cmp	w1, w0
15451	beq	.L2222
15452	mov	w0, -1
15453	str	w0, [x27]
15454.L2222:
15455	ldr	w0, [x27]
15456	cmn	w0, #1
15457	beq	.L2223
15458	ldrh	w0, [x20, 8]
15459	cmp	w24, w0
15460	bls	.L2223
15461	ldrh	w2, [x20]
15462	ldrh	w1, [x28, 4]
15463	cmp	w2, w1
15464	bne	.L2223
15465	ubfiz	x0, x0, 2, 16
15466	ldr	w1, [x27, 4]
15467	str	w1, [x22, x0]
15468.L2223:
15469	add	w5, w5, 1
15470	sxth	w5, w5
15471	b	.L2218
15472.L2217:
15473	ldrh	w5, [x25, #:lo12:.LANCHOR53]
15474	mov	w0, 0
15475	ldr	x6, [x21, #:lo12:.LANCHOR189]
15476	sub	w5, w5, #1
15477.L2219:
15478	cmp	w0, w5
15479	blt	.L2221
15480.L2225:
15481	add	w19, w19, 1
15482	sxth	w19, w19
15483	b	.L2208
15484.L2221:
15485	lsl	w2, w0, 1
15486	sxtw	x2, w2
15487	lsl	x1, x2, 2
15488	ldrh	w1, [x6, x1]
15489	cmp	w24, w1
15490	bls	.L2220
15491	add	x2, x2, 1
15492	ubfiz	x1, x1, 2, 16
15493	ldr	w2, [x6, x2, lsl 2]
15494	str	w2, [x22, x1]
15495.L2220:
15496	add	w0, w0, 1
15497	sxth	w0, w0
15498	b	.L2219
15499	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
15500	.section	.text.FtlLoadVonderInfo,"ax",@progbits
15501	.align	2
15502	.global	FtlLoadVonderInfo
15503	.type	FtlLoadVonderInfo, %function
15504FtlLoadVonderInfo:
15505	stp	x29, x30, [sp, -16]!
15506	adrp	x1, .LANCHOR61
15507	adrp	x0, .LANCHOR224
15508	add	x0, x0, :lo12:.LANCHOR224
15509	add	x29, sp, 0
15510	ldrh	w1, [x1, #:lo12:.LANCHOR61]
15511	strh	w1, [x0, 10]
15512	mov	w1, -3962
15513	strh	w1, [x0, 4]
15514	adrp	x1, .LANCHOR70
15515	ldrh	w1, [x1, #:lo12:.LANCHOR70]
15516	strh	w1, [x0, 8]
15517	adrp	x1, .LANCHOR62
15518	ldrh	w1, [x1, #:lo12:.LANCHOR62]
15519	strh	w1, [x0, 6]
15520	adrp	x1, .LANCHOR71
15521	ldr	x1, [x1, #:lo12:.LANCHOR71]
15522	str	x1, [x0, 16]
15523	adrp	x1, .LANCHOR201
15524	ldr	x1, [x1, #:lo12:.LANCHOR201]
15525	str	x1, [x0, 24]
15526	adrp	x1, .LANCHOR200
15527	ldr	x1, [x1, #:lo12:.LANCHOR200]
15528	str	x1, [x0, 32]
15529	adrp	x1, .LANCHOR202
15530	ldr	x1, [x1, #:lo12:.LANCHOR202]
15531	str	x1, [x0, 40]
15532	bl	FtlMapTblRecovery
15533	mov	w0, 0
15534	ldp	x29, x30, [sp], 16
15535	ret
15536	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
15537	.section	.text.FtlLoadMapInfo,"ax",@progbits
15538	.align	2
15539	.global	FtlLoadMapInfo
15540	.type	FtlLoadMapInfo, %function
15541FtlLoadMapInfo:
15542	stp	x29, x30, [sp, -16]!
15543	add	x29, sp, 0
15544	bl	FtlL2PDataInit
15545	adrp	x0, .LANCHOR130
15546	add	x0, x0, :lo12:.LANCHOR130
15547	bl	FtlMapTblRecovery
15548	mov	w0, 0
15549	ldp	x29, x30, [sp], 16
15550	ret
15551	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
15552	.section	.text.ftl_scan_all_ppa,"ax",@progbits
15553	.align	2
15554	.global	ftl_scan_all_ppa
15555	.type	ftl_scan_all_ppa, %function
15556ftl_scan_all_ppa:
15557	sub	sp, sp, #112
15558	stp	x29, x30, [sp, 16]
15559	add	x29, sp, 16
15560	stp	x21, x22, [sp, 48]
15561	adrp	x22, .LANCHOR51
15562	stp	x19, x20, [sp, 32]
15563	adrp	x20, .LANCHOR211
15564	ldrh	w19, [x22, #:lo12:.LANCHOR51]
15565	add	x20, x20, :lo12:.LANCHOR211
15566	stp	x25, x26, [sp, 80]
15567	adrp	x26, .LANCHOR16
15568	sub	w19, w19, #16
15569	add	x26, x26, :lo12:.LANCHOR16
15570	lsl	w25, w19, 10
15571	stp	x23, x24, [sp, 64]
15572	str	x27, [sp, 96]
15573.L2254:
15574	ldrh	w0, [x22, #:lo12:.LANCHOR51]
15575	cmp	w19, w0
15576	blt	.L2262
15577	ldp	x19, x20, [sp, 32]
15578	adrp	x1, .LANCHOR235
15579	ldp	x21, x22, [sp, 48]
15580	add	x1, x1, :lo12:.LANCHOR235
15581	ldp	x23, x24, [sp, 64]
15582	adrp	x0, .LC58
15583	ldp	x25, x26, [sp, 80]
15584	add	x0, x0, :lo12:.LC58
15585	ldp	x29, x30, [sp, 16]
15586	ldr	x27, [sp, 96]
15587	add	sp, sp, 112
15588	b	printf
15589.L2262:
15590	and	w24, w19, 65535
15591	mov	w0, w24
15592	bl	ftl_get_blk_mode
15593	ldrb	w1, [x26]
15594	cbz	w1, .L2255
15595	adrp	x1, .LANCHOR40
15596	ldrh	w1, [x1, #:lo12:.LANCHOR40]
15597	cmp	w19, w1
15598	bge	.L2256
15599	adrp	x1, .LANCHOR59
15600	ldrh	w1, [x1, #:lo12:.LANCHOR59]
15601	cmp	w19, w1
15602	blt	.L2256
15603.L2255:
15604	cmp	w0, 1
15605	bne	.L2257
15606.L2256:
15607	adrp	x0, .LANCHOR53
15608	mov	w21, -2147483648
15609	ldrh	w23, [x0, #:lo12:.LANCHOR53]
15610.L2258:
15611	mov	w3, w21
15612	mov	w2, w23
15613	mov	w1, w19
15614	adrp	x0, .LC55
15615	add	x0, x0, :lo12:.LC55
15616	bl	printf
15617	mov	w0, w24
15618	bl	FtlBbmIsBadBlock
15619	cbz	w0, .L2259
15620	adrp	x0, .LC56
15621	mov	w3, w21
15622	mov	w2, w23
15623	mov	w1, w19
15624	add	x0, x0, :lo12:.LC56
15625	bl	printf
15626.L2259:
15627	adrp	x27, .LC57
15628	add	w21, w21, w25
15629	add	x27, x27, :lo12:.LC57
15630	mov	w24, 0
15631.L2260:
15632	cmp	w24, w23
15633	bne	.L2261
15634	add	w19, w19, 1
15635	add	w25, w25, 1024
15636	b	.L2254
15637.L2257:
15638	adrp	x0, .LANCHOR52
15639	mov	w21, 0
15640	ldrh	w23, [x0, #:lo12:.LANCHOR52]
15641	b	.L2258
15642.L2261:
15643	add	w0, w21, w24
15644	stp	wzr, w0, [x20]
15645	adrp	x0, .LANCHOR189
15646	mov	w2, 0
15647	mov	w1, 1
15648	add	w24, w24, 1
15649	ldr	x0, [x0, #:lo12:.LANCHOR189]
15650	str	x0, [x20, 8]
15651	adrp	x0, .LANCHOR195
15652	ldr	x0, [x0, #:lo12:.LANCHOR195]
15653	str	x0, [x20, 16]
15654	mov	x0, x20
15655	bl	FlashReadPages
15656	ldp	x1, x0, [x20, 8]
15657	ldr	w2, [x1, 4]
15658	str	w2, [sp]
15659	ldp	w3, w4, [x0]
15660	ldp	w5, w6, [x0, 8]
15661	mov	x0, x27
15662	ldr	w7, [x1]
15663	ldp	w2, w1, [x20]
15664	bl	printf
15665	b	.L2260
15666	.size	ftl_scan_all_ppa, .-ftl_scan_all_ppa
15667	.section	.text.FlashReadFacBbtData,"ax",@progbits
15668	.align	2
15669	.global	FlashReadFacBbtData
15670	.type	FlashReadFacBbtData, %function
15671FlashReadFacBbtData:
15672	stp	x29, x30, [sp, -160]!
15673	add	x29, sp, 0
15674	stp	x25, x26, [sp, 64]
15675	mov	w25, w1
15676	adrp	x1, .LANCHOR15
15677	add	x1, x1, :lo12:.LANCHOR15
15678	stp	x23, x24, [sp, 48]
15679	mov	x23, x0
15680	stp	x21, x22, [sp, 32]
15681	adrp	x21, .LANCHOR154
15682	ldrh	w0, [x1, 14]
15683	mov	w24, w2
15684	ldrh	w1, [x1, 12]
15685	stp	x19, x20, [sp, 16]
15686	str	x27, [sp, 80]
15687	mov	w27, 61664
15688	mul	w0, w0, w1
15689	ldr	x1, [x21, #:lo12:.LANCHOR154]
15690	str	x1, [x29, 112]
15691	and	w0, w0, 65535
15692	adrp	x1, .LANCHOR205
15693	sub	w20, w0, #1
15694	sub	w19, w0, #15
15695	ldr	x2, [x1, #:lo12:.LANCHOR205]
15696	and	w20, w20, 65535
15697	mul	w26, w0, w25
15698	mov	x22, x1
15699	str	x2, [x29, 120]
15700.L2271:
15701	cmp	w19, w20
15702	ble	.L2278
15703	mov	w0, -1
15704.L2270:
15705	ldp	x19, x20, [sp, 16]
15706	ldp	x21, x22, [sp, 32]
15707	ldp	x23, x24, [sp, 48]
15708	ldp	x25, x26, [sp, 64]
15709	ldr	x27, [sp, 80]
15710	ldp	x29, x30, [sp], 160
15711	ret
15712.L2278:
15713	add	w0, w20, w26
15714	mov	w2, 1
15715	lsl	w0, w0, 10
15716	mov	w1, w2
15717	str	w0, [x29, 108]
15718	add	x0, x29, 104
15719	bl	FlashReadPages
15720	ldr	w0, [x29, 104]
15721	cmn	w0, #1
15722	beq	.L2272
15723	ldr	x0, [x22, #:lo12:.LANCHOR205]
15724	ldrh	w0, [x0]
15725	cmp	w0, w27
15726	bne	.L2272
15727	cbz	x23, .L2279
15728	cbz	w25, .L2274
15729.L2277:
15730	ldr	x1, [x21, #:lo12:.LANCHOR154]
15731	mov	w2, w24
15732	mov	x0, x23
15733	bl	ftl_memcpy
15734	mov	w3, 4
15735	adrp	x0, .LC59
15736	mov	w2, w3
15737	mov	x1, x23
15738	add	x0, x0, :lo12:.LC59
15739	bl	rknand_print_hex
15740.L2279:
15741	mov	w0, 0
15742	b	.L2270
15743.L2274:
15744	ldr	x5, [x21, #:lo12:.LANCHOR154]
15745	adrp	x2, .LANCHOR156
15746	add	x2, x2, :lo12:.LANCHOR156
15747	mov	w0, 0
15748	mov	w6, 1
15749.L2275:
15750	ldr	w1, [x2]
15751	cmp	w0, w1
15752	bcs	.L2277
15753	ubfx	x1, x0, 5, 11
15754	and	w3, w0, 31
15755	lsl	x1, x1, 2
15756	add	w0, w0, 1
15757	lsl	w4, w6, w3
15758	and	w0, w0, 65535
15759	ldr	w3, [x5, x1]
15760	orr	w3, w3, w4
15761	str	w3, [x5, x1]
15762	b	.L2275
15763.L2272:
15764	sub	w20, w20, #1
15765	and	w20, w20, 65535
15766	b	.L2271
15767	.size	FlashReadFacBbtData, .-FlashReadFacBbtData
15768	.section	.text.FlashGetBadBlockList,"ax",@progbits
15769	.align	2
15770	.global	FlashGetBadBlockList
15771	.type	FlashGetBadBlockList, %function
15772FlashGetBadBlockList:
15773	stp	x29, x30, [sp, -48]!
15774	add	x29, sp, 0
15775	stp	x19, x20, [sp, 16]
15776	mov	x20, x0
15777	adrp	x0, .LANCHOR7
15778	ldr	x0, [x0, #:lo12:.LANCHOR7]
15779	ldrh	w19, [x0, 14]
15780	str	x21, [sp, 32]
15781	adrp	x21, .LANCHOR152
15782	ldrb	w2, [x0, 13]
15783	ldr	x0, [x21, #:lo12:.LANCHOR152]
15784	mul	w19, w19, w2
15785	and	w19, w19, 65535
15786	add	w2, w19, 7
15787	lsr	w2, w2, 3
15788	bl	FlashReadFacBbtData
15789	cmn	w0, #1
15790	bne	.L2285
15791.L2289:
15792	mov	w0, 0
15793.L2286:
15794	ubfiz	x0, x0, 1, 16
15795	mov	w1, -1
15796	ldr	x21, [sp, 32]
15797	strh	w1, [x20, x0]
15798	mov	w0, 0
15799	ldp	x19, x20, [sp, 16]
15800	ldp	x29, x30, [sp], 48
15801	ret
15802.L2285:
15803	ldr	x4, [x21, #:lo12:.LANCHOR152]
15804	lsr	w5, w19, 4
15805	sub	w19, w19, #1
15806	mov	w1, 0
15807	mov	w0, 0
15808	mov	w6, 1
15809.L2287:
15810	cmp	w1, w19
15811	bge	.L2286
15812	ubfx	x3, x1, 5, 11
15813	and	w2, w1, 31
15814	lsl	w2, w6, w2
15815	ldr	w3, [x4, x3, lsl 2]
15816	tst	w2, w3
15817	beq	.L2288
15818	add	w2, w0, 1
15819	ubfiz	x0, x0, 1, 16
15820	strh	w1, [x20, x0]
15821	and	w0, w2, 65535
15822.L2288:
15823	cmp	w0, w5
15824	bcs	.L2289
15825	add	w1, w1, 1
15826	and	w1, w1, 65535
15827	b	.L2287
15828	.size	FlashGetBadBlockList, .-FlashGetBadBlockList
15829	.section	.text.FtlMakeBbt,"ax",@progbits
15830	.align	2
15831	.global	FtlMakeBbt
15832	.type	FtlMakeBbt, %function
15833FtlMakeBbt:
15834	stp	x29, x30, [sp, -128]!
15835	adrp	x0, .LANCHOR78
15836	add	x29, sp, 0
15837	stp	x21, x22, [sp, 32]
15838	ldr	w21, [x0, #:lo12:.LANCHOR78]
15839	stp	x19, x20, [sp, 16]
15840	stp	x23, x24, [sp, 48]
15841	stp	x25, x26, [sp, 64]
15842	stp	x27, x28, [sp, 80]
15843	cbnz	w21, .L2296
15844	adrp	x20, .LANCHOR76
15845	add	x22, x20, :lo12:.LANCHOR76
15846	bl	FtlBbtMemInit
15847	add	x24, x22, 32
15848	bl	FtlLoadFactoryBbt
15849	adrp	x28, .LANCHOR211
15850	add	x22, x22, 12
15851	add	x25, x28, :lo12:.LANCHOR211
15852	adrp	x0, .LANCHOR45
15853	add	x0, x0, :lo12:.LANCHOR45
15854	str	x0, [x29, 120]
15855.L2297:
15856	ldr	x0, [x29, 120]
15857	ldrh	w0, [x0]
15858	cmp	w21, w0
15859	bcc	.L2303
15860	adrp	x21, .LANCHOR59
15861	add	x21, x21, :lo12:.LANCHOR59
15862	mov	w19, 0
15863.L2304:
15864	ldrh	w0, [x21]
15865	cmp	w0, w19
15866	bhi	.L2305
15867	add	x21, x20, :lo12:.LANCHOR76
15868	mov	w22, 65535
15869	ldrh	w19, [x21, 12]
15870	sub	w19, w19, #1
15871	and	w19, w19, 65535
15872.L2306:
15873	ldrh	w0, [x21, 12]
15874	sub	w0, w0, #47
15875	cmp	w0, w19
15876	bgt	.L2310
15877	mov	w0, w19
15878	bl	FtlBbmIsBadBlock
15879	cmp	w0, 1
15880	beq	.L2307
15881	mov	w0, w19
15882	bl	FlashTestBlk
15883	cbz	w0, .L2308
15884	mov	w0, w19
15885	bl	FtlBbmMapBadBlock
15886.L2307:
15887	sub	w19, w19, #1
15888	and	w19, w19, 65535
15889	b	.L2306
15890.L2303:
15891	adrp	x2, .LANCHOR195
15892	adrp	x0, .LANCHOR189
15893	add	x19, x28, :lo12:.LANCHOR211
15894	ldrh	w1, [x22]
15895	ldr	x0, [x0, #:lo12:.LANCHOR189]
15896	mov	w3, 65535
15897	ldr	x26, [x2, #:lo12:.LANCHOR195]
15898	cmp	w1, w3
15899	stp	x0, x26, [x19, 8]
15900	adrp	x23, .LANCHOR51
15901	str	x2, [x29, 112]
15902	beq	.L2298
15903	ldrh	w4, [x23, #:lo12:.LANCHOR51]
15904	mov	w2, 1
15905	madd	w27, w4, w21, w1
15906	mov	w1, w2
15907	lsl	w0, w27, 10
15908	str	w0, [x19, 4]
15909	mov	x0, x19
15910	bl	FlashReadPages
15911	ldr	x1, [x19, 8]
15912	ldr	x0, [x24]
15913	ldrh	w2, [x23, #:lo12:.LANCHOR51]
15914	add	w2, w2, 7
15915	lsr	w2, w2, 3
15916	bl	ftl_memcpy
15917.L2299:
15918	mov	w0, w27
15919	add	w21, w21, 1
15920	bl	FtlBbmMapBadBlock
15921	add	x24, x24, 8
15922	add	x22, x22, 2
15923	b	.L2297
15924.L2298:
15925	mov	w1, w21
15926	bl	FlashGetBadBlockList
15927	ldr	x0, [x19, 8]
15928	adrp	x27, .LANCHOR126
15929	ldr	x1, [x24]
15930	bl	FtlBbt2Bitmap
15931	ldrh	w19, [x23, #:lo12:.LANCHOR51]
15932	add	x23, x23, :lo12:.LANCHOR51
15933	add	x0, x27, :lo12:.LANCHOR126
15934	sub	w19, w19, #1
15935	str	x0, [x29, 104]
15936	and	w19, w19, 65535
15937.L2300:
15938	ldrh	w0, [x23]
15939	madd	w0, w21, w0, w19
15940	bl	FtlBbmIsBadBlock
15941	cmp	w0, 1
15942	beq	.L2301
15943	ldr	x0, [x29, 112]
15944	mov	w2, 16
15945	strh	w19, [x22]
15946	mov	w1, 0
15947	ldr	x0, [x0, #:lo12:.LANCHOR195]
15948	bl	ftl_memset
15949	mov	w0, -3872
15950	strh	w0, [x26]
15951	ldrh	w4, [x23]
15952	ldrh	w0, [x22]
15953	strh	w0, [x26, 2]
15954	ldr	x1, [x24]
15955	str	wzr, [x26, 4]
15956	madd	w27, w4, w21, w0
15957	lsl	w0, w27, 10
15958	str	w0, [x25, 4]
15959	ldr	x0, [x29, 104]
15960	ldrh	w2, [x0]
15961	ldr	x0, [x25, 8]
15962	lsl	w2, w2, 2
15963	bl	ftl_memcpy
15964	mov	w2, 1
15965	mov	x0, x25
15966	mov	w1, w2
15967	bl	FlashEraseBlocks
15968	mov	w3, 1
15969	mov	x0, x25
15970	mov	w2, w3
15971	mov	w1, w3
15972	bl	FlashProgPages
15973	ldr	w0, [x25]
15974	cmn	w0, #1
15975	bne	.L2299
15976	mov	w0, w27
15977	bl	FtlBbmMapBadBlock
15978	b	.L2300
15979.L2301:
15980	sub	w19, w19, #1
15981	and	w19, w19, 65535
15982	b	.L2300
15983.L2305:
15984	mov	w0, w19
15985	add	w19, w19, 1
15986	bl	FtlBbmMapBadBlock
15987	and	w19, w19, 65535
15988	b	.L2304
15989.L2308:
15990	ldrh	w0, [x21]
15991	cmp	w0, w22
15992	bne	.L2309
15993	strh	w19, [x21]
15994	b	.L2307
15995.L2309:
15996	strh	w19, [x21, 4]
15997.L2310:
15998	adrp	x0, .LANCHOR79
15999	add	x19, x20, :lo12:.LANCHOR76
16000	ldrh	w1, [x20, #:lo12:.LANCHOR76]
16001	mov	w2, 2
16002	ldr	x0, [x0, #:lo12:.LANCHOR79]
16003	str	wzr, [x19, 8]
16004	lsl	w1, w1, 10
16005	strh	wzr, [x19, 2]
16006	str	w1, [x0, 4]
16007	ldrh	w1, [x19, 4]
16008	lsl	w1, w1, 10
16009	str	w1, [x0, 60]
16010	mov	w1, 1
16011	bl	FlashEraseBlocks
16012	ldrh	w0, [x20, #:lo12:.LANCHOR76]
16013	bl	FtlBbmMapBadBlock
16014	ldrh	w0, [x19, 4]
16015	bl	FtlBbmMapBadBlock
16016	bl	FtlBbmTblFlush
16017	strh	wzr, [x19, 2]
16018	ldr	w0, [x19, 8]
16019	ldrh	w1, [x19, 4]
16020	add	w0, w0, 1
16021	str	w0, [x19, 8]
16022	ldrh	w0, [x20, #:lo12:.LANCHOR76]
16023	strh	w0, [x19, 4]
16024	strh	w1, [x20, #:lo12:.LANCHOR76]
16025	bl	FtlBbmTblFlush
16026.L2296:
16027	ldp	x19, x20, [sp, 16]
16028	mov	w0, 0
16029	ldp	x21, x22, [sp, 32]
16030	ldp	x23, x24, [sp, 48]
16031	ldp	x25, x26, [sp, 64]
16032	ldp	x27, x28, [sp, 80]
16033	ldp	x29, x30, [sp], 128
16034	ret
16035	.size	FtlMakeBbt, .-FtlMakeBbt
16036	.section	.text.log2phys,"ax",@progbits
16037	.align	2
16038	.global	log2phys
16039	.type	log2phys, %function
16040log2phys:
16041	stp	x29, x30, [sp, -128]!
16042	add	x29, sp, 0
16043	stp	x25, x26, [sp, 64]
16044	mov	w25, w0
16045	adrp	x0, .LANCHOR56
16046	stp	x23, x24, [sp, 48]
16047	stp	x19, x20, [sp, 16]
16048	mov	x26, x1
16049	ldrh	w24, [x0, #:lo12:.LANCHOR56]
16050	adrp	x0, .LANCHOR74
16051	stp	x21, x22, [sp, 32]
16052	mov	x19, x0
16053	ldr	w1, [x0, #:lo12:.LANCHOR74]
16054	stp	x27, x28, [sp, 80]
16055	str	w2, [x29, 116]
16056	cmp	w25, w1
16057	bcc	.L2317
16058	mov	w2, 1004
16059	adrp	x1, .LANCHOR236
16060	adrp	x0, .LC5
16061	add	x1, x1, :lo12:.LANCHOR236
16062	add	x0, x0, :lo12:.LC5
16063	bl	printf
16064	adrp	x1, .LC6
16065	adrp	x0, .LC7
16066	add	x1, x1, :lo12:.LC6
16067	add	x0, x0, :lo12:.LC7
16068	bl	printf
16069.L2317:
16070	ldr	w0, [x19, #:lo12:.LANCHOR74]
16071	cmp	w25, w0
16072	bcs	.L2318
16073	adrp	x19, .LANCHOR98
16074	add	w24, w24, 7
16075	adrp	x0, .LANCHOR67
16076	ldr	x2, [x19, #:lo12:.LANCHOR98]
16077	lsr	w23, w25, w24
16078	and	w22, w23, 65535
16079	ldrh	w1, [x0, #:lo12:.LANCHOR67]
16080	mov	x0, 0
16081.L2319:
16082	and	x20, x0, 65535
16083	cmp	w20, w1
16084	bcc	.L2324
16085	bl	select_l2p_ram_region
16086	and	x20, x0, 65535
16087	ldr	x1, [x19, #:lo12:.LANCHOR98]
16088	ubfiz	x21, x20, 4, 16
16089	add	x2, x1, x21
16090	ldrh	w3, [x1, x21]
16091	mov	w1, 65535
16092	cmp	w3, w1
16093	beq	.L2325
16094	ldr	w1, [x2, 4]
16095	tbz	w1, #31, .L2325
16096	bl	flush_l2p_region
16097.L2325:
16098	adrp	x0, .LANCHOR66
16099	str	x0, [x29, 104]
16100	ldrh	w1, [x0, #:lo12:.LANCHOR66]
16101	cmp	w1, w22
16102	bcs	.L2326
16103	mov	w2, 597
16104	adrp	x1, .LANCHOR237
16105	adrp	x0, .LC5
16106	add	x1, x1, :lo12:.LANCHOR237
16107	add	x0, x0, :lo12:.LC5
16108	bl	printf
16109	adrp	x1, .LC6
16110	adrp	x0, .LC7
16111	add	x1, x1, :lo12:.LC6
16112	add	x0, x0, :lo12:.LC7
16113	bl	printf
16114.L2326:
16115	adrp	x27, .LANCHOR134
16116	ubfiz	x0, x22, 2, 16
16117	ldr	x1, [x27, #:lo12:.LANCHOR134]
16118	ldr	w3, [x1, x0]
16119	cbnz	w3, .L2327
16120	ldr	x0, [x19, #:lo12:.LANCHOR98]
16121	adrp	x1, .LANCHOR57
16122	add	x0, x0, x21
16123	ldrh	w2, [x1, #:lo12:.LANCHOR57]
16124	mov	w1, 255
16125	ldr	x0, [x0, 8]
16126	bl	ftl_memset
16127	ldr	x0, [x19, #:lo12:.LANCHOR98]
16128	add	x1, x0, x21
16129	strh	w22, [x0, x21]
16130	str	wzr, [x1, 4]
16131	b	.L2321
16132.L2318:
16133	ldr	w1, [x29, 116]
16134	mov	w0, -1
16135	cbnz	w1, .L2316
16136	str	w0, [x26]
16137.L2316:
16138	ldp	x19, x20, [sp, 16]
16139	ldp	x21, x22, [sp, 32]
16140	ldp	x23, x24, [sp, 48]
16141	ldp	x25, x26, [sp, 64]
16142	ldp	x27, x28, [sp, 80]
16143	ldp	x29, x30, [sp], 128
16144	ret
16145.L2324:
16146	add	x0, x0, 1
16147	add	x3, x2, x0, lsl 4
16148	ldrh	w3, [x3, -16]
16149	cmp	w3, w22
16150	bne	.L2319
16151.L2321:
16152	mov	x0, 1
16153	lsl	x24, x0, x24
16154	ldr	w0, [x29, 116]
16155	sub	w24, w24, #1
16156	and	w25, w24, w25
16157	and	x25, x25, 65535
16158	cbnz	w0, .L2322
16159	ldr	x0, [x19, #:lo12:.LANCHOR98]
16160	add	x0, x0, x20, lsl 4
16161	ldr	x0, [x0, 8]
16162	ldr	w0, [x0, x25, lsl 2]
16163	str	w0, [x26]
16164.L2323:
16165	ldr	x0, [x19, #:lo12:.LANCHOR98]
16166	add	x20, x0, x20, lsl 4
16167	ldr	w0, [x20, 4]
16168	cmn	w0, #1
16169	beq	.L2332
16170	add	w0, w0, 1
16171	str	w0, [x20, 4]
16172.L2332:
16173	mov	w0, 0
16174	b	.L2316
16175.L2322:
16176	ldr	x0, [x19, #:lo12:.LANCHOR98]
16177	ldr	w2, [x26]
16178	add	x0, x0, x20, lsl 4
16179	ldr	x1, [x0, 8]
16180	str	w2, [x1, x25, lsl 2]
16181	ldr	w1, [x0, 4]
16182	orr	w1, w1, -2147483648
16183	str	w1, [x0, 4]
16184	adrp	x0, .LANCHOR99
16185	strh	w22, [x0, #:lo12:.LANCHOR99]
16186	b	.L2323
16187.L2327:
16188	ldr	x0, [x19, #:lo12:.LANCHOR98]
16189	adrp	x5, .LANCHOR211
16190	add	x28, x5, :lo12:.LANCHOR211
16191	mov	w2, 1
16192	add	x0, x0, x21
16193	str	x5, [x29, 96]
16194	str	w3, [x29, 112]
16195	mov	w1, w2
16196	str	w3, [x28, 4]
16197	ldr	x0, [x0, 8]
16198	str	x0, [x28, 8]
16199	adrp	x0, .LANCHOR195
16200	ldr	x0, [x0, #:lo12:.LANCHOR195]
16201	str	x0, [x28, 16]
16202	mov	x0, x28
16203	bl	FlashReadPages
16204	ldr	x0, [x28, 16]
16205	str	x0, [x29, 120]
16206	ldr	w3, [x29, 112]
16207	ldr	x5, [x29, 96]
16208	ldrh	w0, [x0, 8]
16209	cmp	w0, w22
16210	beq	.L2328
16211	mov	w2, w3
16212	and	w1, w23, 65535
16213	adrp	x0, .LC60
16214	add	x0, x0, :lo12:.LC60
16215	bl	printf
16216	ldr	x1, [x28, 16]
16217	mov	w3, 4
16218	adrp	x0, .LC28
16219	mov	w2, w3
16220	add	x0, x0, :lo12:.LC28
16221	bl	rknand_print_hex
16222	ldr	x0, [x29, 104]
16223	mov	w2, 4
16224	ldr	x1, [x27, #:lo12:.LANCHOR134]
16225	ldrh	w3, [x0, #:lo12:.LANCHOR66]
16226	adrp	x0, .LC61
16227	add	x0, x0, :lo12:.LC61
16228	bl	rknand_print_hex
16229	adrp	x0, .LANCHOR78
16230	mov	w1, 1
16231	str	w1, [x0, #:lo12:.LANCHOR78]
16232.L2329:
16233	ldr	x0, [x29, 120]
16234	ldrh	w0, [x0, 8]
16235	cmp	w0, w22
16236	beq	.L2330
16237	mov	w2, 624
16238	adrp	x1, .LANCHOR237
16239	adrp	x0, .LC5
16240	add	x1, x1, :lo12:.LANCHOR237
16241	add	x0, x0, :lo12:.LC5
16242	bl	printf
16243	adrp	x1, .LC6
16244	adrp	x0, .LC7
16245	add	x1, x1, :lo12:.LC6
16246	add	x0, x0, :lo12:.LC7
16247	bl	printf
16248.L2330:
16249	ldr	x0, [x19, #:lo12:.LANCHOR98]
16250	add	x1, x0, x21
16251	str	wzr, [x1, 4]
16252	strh	w22, [x0, x21]
16253	b	.L2321
16254.L2328:
16255	ldr	w0, [x5, #:lo12:.LANCHOR211]
16256	cmp	w0, 256
16257	bne	.L2329
16258	and	w23, w23, 65535
16259	mov	w2, w3
16260	mov	w1, w23
16261	adrp	x0, .LC62
16262	add	x0, x0, :lo12:.LC62
16263	bl	printf
16264	ldr	x0, [x19, #:lo12:.LANCHOR98]
16265	mov	w1, w23
16266	add	x0, x0, x21
16267	ldr	x2, [x0, 8]
16268	adrp	x0, .LANCHOR130
16269	add	x0, x0, :lo12:.LANCHOR130
16270	bl	FtlMapWritePage
16271	b	.L2329
16272	.size	log2phys, .-log2phys
16273	.section	.text.FtlCheckVpc,"ax",@progbits
16274	.align	2
16275	.global	FtlCheckVpc
16276	.type	FtlCheckVpc, %function
16277FtlCheckVpc:
16278	stp	x29, x30, [sp, -112]!
16279	adrp	x0, .LC48
16280	add	x0, x0, :lo12:.LC48
16281	add	x29, sp, 0
16282	stp	x23, x24, [sp, 48]
16283	adrp	x23, .LANCHOR74
16284	add	x23, x23, :lo12:.LANCHOR74
16285	stp	x21, x22, [sp, 32]
16286	mov	w22, 0
16287	stp	x19, x20, [sp, 16]
16288	stp	x25, x26, [sp, 64]
16289	adrp	x21, .LANCHOR238
16290	stp	x27, x28, [sp, 80]
16291	add	x1, x21, :lo12:.LANCHOR238
16292	adrp	x20, check_valid_page_count_table
16293	bl	printf
16294	add	x19, x20, :lo12:check_valid_page_count_table
16295	mov	x2, 8192
16296	mov	w1, 0
16297	mov	x0, x19
16298	bl	memset
16299.L2336:
16300	ldr	w0, [x23]
16301	cmp	w22, w0
16302	bcc	.L2338
16303	adrp	x23, .LANCHOR40
16304	adrp	x24, .LC63
16305	add	x23, x23, :lo12:.LANCHOR40
16306	add	x26, x20, :lo12:check_valid_page_count_table
16307	add	x24, x24, :lo12:.LC63
16308	mov	w22, 0
16309	mov	w19, 0
16310	adrp	x25, .LANCHOR85
16311.L2339:
16312	ldrh	w0, [x23]
16313	cmp	w0, w19
16314	bhi	.L2341
16315	adrp	x0, .LANCHOR89
16316	ldr	x19, [x0, #:lo12:.LANCHOR89]
16317	cbz	x19, .L2342
16318	adrp	x0, .LANCHOR90
16319	adrp	x25, .LC64
16320	add	x20, x20, :lo12:check_valid_page_count_table
16321	add	x25, x25, :lo12:.LC64
16322	ldrh	w26, [x0, #:lo12:.LANCHOR90]
16323	adrp	x0, .LANCHOR83
16324	mov	x24, x0
16325	mov	w23, 0
16326	ldr	x1, [x0, #:lo12:.LANCHOR83]
16327	adrp	x27, .LANCHOR85
16328	mov	w28, 6
16329	sub	x19, x19, x1
16330	mov	x1, -6148914691236517206
16331	asr	x19, x19, 1
16332	movk	x1, 0xaaab, lsl 0
16333	mul	x19, x19, x1
16334	and	w19, w19, 65535
16335.L2343:
16336	cmp	w23, w26
16337	bne	.L2345
16338.L2342:
16339	adrp	x0, .LC65
16340	mov	w1, w22
16341	add	x0, x0, :lo12:.LC65
16342	bl	printf
16343	cbz	w22, .L2335
16344	mov	w2, 1849
16345	add	x1, x21, :lo12:.LANCHOR238
16346	adrp	x0, .LC5
16347	add	x0, x0, :lo12:.LC5
16348	bl	printf
16349	adrp	x1, .LC6
16350	adrp	x0, .LC7
16351	add	x1, x1, :lo12:.LC6
16352	add	x0, x0, :lo12:.LC7
16353	bl	printf
16354.L2335:
16355	ldp	x19, x20, [sp, 16]
16356	ldp	x21, x22, [sp, 32]
16357	ldp	x23, x24, [sp, 48]
16358	ldp	x25, x26, [sp, 64]
16359	ldp	x27, x28, [sp, 80]
16360	ldp	x29, x30, [sp], 112
16361	ret
16362.L2338:
16363	mov	w2, 0
16364	add	x1, x29, 108
16365	mov	w0, w22
16366	bl	log2phys
16367	ldr	w0, [x29, 108]
16368	cmn	w0, #1
16369	beq	.L2337
16370	lsr	w0, w0, 10
16371	bl	P2V_block_in_plane
16372	and	x0, x0, 65535
16373	ldrh	w1, [x19, x0, lsl 1]
16374	add	w1, w1, 1
16375	strh	w1, [x19, x0, lsl 1]
16376.L2337:
16377	add	w22, w22, 1
16378	b	.L2336
16379.L2341:
16380	ldr	x0, [x25, #:lo12:.LANCHOR85]
16381	ubfiz	x28, x19, 1, 16
16382	sxtw	x27, w19
16383	ldrh	w2, [x0, x28]
16384	ldrh	w3, [x26, x27, lsl 1]
16385	cmp	w2, w3
16386	beq	.L2340
16387	mov	w1, w19
16388	mov	x0, x24
16389	bl	printf
16390	ldr	x0, [x25, #:lo12:.LANCHOR85]
16391	mov	w1, 65535
16392	ldrh	w0, [x0, x28]
16393	cmp	w0, w1
16394	beq	.L2340
16395	ldrh	w1, [x26, x27, lsl 1]
16396	cmp	w1, w0
16397	csinc	w22, w22, wzr, ls
16398.L2340:
16399	add	w19, w19, 1
16400	and	w19, w19, 65535
16401	b	.L2339
16402.L2345:
16403	ldr	x1, [x27, #:lo12:.LANCHOR85]
16404	ubfiz	x0, x19, 1, 16
16405	ldrh	w2, [x1, x0]
16406	cbz	w2, .L2344
16407	ldrh	w3, [x20, w19, sxtw 1]
16408	mov	w22, 1
16409	mov	w1, w19
16410	mov	x0, x25
16411	bl	printf
16412.L2344:
16413	ldr	x0, [x24, #:lo12:.LANCHOR83]
16414	umull	x19, w19, w28
16415	ldrh	w19, [x0, x19]
16416	mov	w0, 65535
16417	cmp	w19, w0
16418	beq	.L2342
16419	add	w23, w23, 1
16420	and	w23, w23, 65535
16421	b	.L2343
16422	.size	FtlCheckVpc, .-FtlCheckVpc
16423	.section	.text.Ftlscanalldata,"ax",@progbits
16424	.align	2
16425	.global	Ftlscanalldata
16426	.type	Ftlscanalldata, %function
16427Ftlscanalldata:
16428	sub	sp, sp, #96
16429	adrp	x0, .LC66
16430	mov	w1, 0
16431	add	x0, x0, :lo12:.LC66
16432	stp	x29, x30, [sp, 16]
16433	add	x29, sp, 16
16434	stp	x19, x20, [sp, 32]
16435	adrp	x20, .LANCHOR211
16436	stp	x21, x22, [sp, 48]
16437	mov	w19, 0
16438	adrp	x21, .LANCHOR74
16439	add	x22, x20, :lo12:.LANCHOR211
16440	add	x21, x21, :lo12:.LANCHOR74
16441	str	x23, [sp, 64]
16442	bl	printf
16443.L2361:
16444	ldr	w0, [x21]
16445	cmp	w19, w0
16446	bcc	.L2367
16447	ldp	x19, x20, [sp, 32]
16448	ldp	x21, x22, [sp, 48]
16449	ldp	x29, x30, [sp, 16]
16450	ldr	x23, [sp, 64]
16451	add	sp, sp, 96
16452	ret
16453.L2367:
16454	mov	w2, 0
16455	add	x1, x29, 76
16456	mov	w0, w19
16457	bl	log2phys
16458	tst	x19, 2047
16459	bne	.L2362
16460	ldr	w2, [x29, 76]
16461	adrp	x0, .LC67
16462	mov	w1, w19
16463	add	x0, x0, :lo12:.LC67
16464	bl	printf
16465.L2362:
16466	ldr	w1, [x29, 76]
16467	cmn	w1, #1
16468	beq	.L2364
16469	add	x0, x20, :lo12:.LANCHOR211
16470	str	wzr, [x20, #:lo12:.LANCHOR211]
16471	mov	w2, 0
16472	str	w1, [x0, 4]
16473	adrp	x1, .LANCHOR189
16474	str	w19, [x0, 24]
16475	ldr	x1, [x1, #:lo12:.LANCHOR189]
16476	str	x1, [x0, 8]
16477	adrp	x1, .LANCHOR195
16478	ldr	x23, [x1, #:lo12:.LANCHOR195]
16479	mov	w1, 1
16480	str	x23, [x0, 16]
16481	bl	FlashReadPages
16482	ldr	w0, [x20, #:lo12:.LANCHOR211]
16483	cmp	w0, 256
16484	ccmn	w0, #1, 4, ne
16485	beq	.L2365
16486	ldr	w0, [x23, 8]
16487	cmp	w19, w0
16488	beq	.L2364
16489.L2365:
16490	ldp	x1, x0, [x22, 8]
16491	ldr	w2, [x1, 4]
16492	str	w2, [sp]
16493	ldr	w2, [x22, 4]
16494	ldp	w3, w4, [x0]
16495	ldp	w5, w6, [x0, 8]
16496	adrp	x0, .LC68
16497	ldr	w7, [x1]
16498	add	x0, x0, :lo12:.LC68
16499	mov	w1, w19
16500	bl	printf
16501.L2364:
16502	add	w19, w19, 1
16503	b	.L2361
16504	.size	Ftlscanalldata, .-Ftlscanalldata
16505	.section	.text.FtlReUsePrevPpa,"ax",@progbits
16506	.align	2
16507	.global	FtlReUsePrevPpa
16508	.type	FtlReUsePrevPpa, %function
16509FtlReUsePrevPpa:
16510	stp	x29, x30, [sp, -80]!
16511	add	x29, sp, 0
16512	stp	x21, x22, [sp, 32]
16513	adrp	x22, .LANCHOR85
16514	stp	x19, x20, [sp, 16]
16515	mov	w21, w0
16516	str	w1, [x29, 76]
16517	lsr	w0, w1, 10
16518	str	x23, [sp, 48]
16519	bl	P2V_block_in_plane
16520	ldr	x2, [x22, #:lo12:.LANCHOR85]
16521	and	w3, w0, 65535
16522	ubfiz	x20, x3, 1, 16
16523	ldrh	w1, [x2, x20]
16524	cbnz	w1, .L2370
16525	adrp	x0, .LANCHOR89
16526	ldr	x19, [x0, #:lo12:.LANCHOR89]
16527	cbz	x19, .L2371
16528	adrp	x2, .LANCHOR83
16529	mov	x5, -6148914691236517206
16530	movk	x5, 0xaaab, lsl 0
16531	adrp	x23, .LANCHOR90
16532	ldr	x2, [x2, #:lo12:.LANCHOR83]
16533	mov	w6, 65535
16534	ldrh	w4, [x23, #:lo12:.LANCHOR90]
16535	sub	x19, x19, x2
16536	asr	x19, x19, 1
16537	mul	x19, x19, x5
16538	mov	w5, 6
16539	and	w19, w19, 65535
16540.L2372:
16541	cmp	w1, w4
16542	beq	.L2371
16543	cmp	w19, w3
16544	bne	.L2373
16545	mov	w1, w19
16546	add	x0, x0, :lo12:.LANCHOR89
16547	bl	List_remove_node
16548	ldrh	w0, [x23, #:lo12:.LANCHOR90]
16549	cbnz	w0, .L2374
16550	mov	w2, 2271
16551	adrp	x1, .LANCHOR239
16552	adrp	x0, .LC5
16553	add	x1, x1, :lo12:.LANCHOR239
16554	add	x0, x0, :lo12:.LC5
16555	bl	printf
16556	adrp	x1, .LC6
16557	adrp	x0, .LC7
16558	add	x1, x1, :lo12:.LC6
16559	add	x0, x0, :lo12:.LC7
16560	bl	printf
16561.L2374:
16562	ldrh	w0, [x23, #:lo12:.LANCHOR90]
16563	sub	w0, w0, #1
16564	strh	w0, [x23, #:lo12:.LANCHOR90]
16565	mov	w0, w19
16566	bl	INSERT_DATA_LIST
16567	ldr	x1, [x22, #:lo12:.LANCHOR85]
16568	ldrh	w0, [x1, x20]
16569	add	w0, w0, 1
16570	strh	w0, [x1, x20]
16571.L2371:
16572	add	x1, x29, 76
16573	mov	w2, 1
16574	mov	w0, w21
16575	bl	log2phys
16576	ldp	x19, x20, [sp, 16]
16577	ldp	x21, x22, [sp, 32]
16578	ldr	x23, [sp, 48]
16579	ldp	x29, x30, [sp], 80
16580	ret
16581.L2373:
16582	umull	x19, w19, w5
16583	ldrh	w19, [x2, x19]
16584	cmp	w19, w6
16585	beq	.L2371
16586	add	w1, w1, 1
16587	and	w1, w1, 65535
16588	b	.L2372
16589.L2370:
16590	add	w1, w1, 1
16591	strh	w1, [x2, x20]
16592	b	.L2371
16593	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
16594	.section	.text.FtlRecoverySuperblock,"ax",@progbits
16595	.align	2
16596	.global	FtlRecoverySuperblock
16597	.type	FtlRecoverySuperblock, %function
16598FtlRecoverySuperblock:
16599	stp	x29, x30, [sp, -208]!
16600	mov	w1, 65535
16601	add	x29, sp, 0
16602	stp	x19, x20, [sp, 16]
16603	mov	x19, x0
16604	stp	x21, x22, [sp, 32]
16605	ldrh	w0, [x0]
16606	stp	x23, x24, [sp, 48]
16607	stp	x25, x26, [sp, 64]
16608	cmp	w0, w1
16609	stp	x27, x28, [sp, 80]
16610	beq	.L2542
16611	ldrb	w0, [x19, 6]
16612	str	w0, [x29, 180]
16613	adrp	x0, .LANCHOR52
16614	ldrh	w26, [x19, 2]
16615	str	x0, [x29, 144]
16616	ldrh	w2, [x0, #:lo12:.LANCHOR52]
16617	cmp	w2, w26
16618	bne	.L2383
16619	strh	wzr, [x19, 4]
16620.L2549:
16621	strb	wzr, [x19, 6]
16622.L2542:
16623	ldp	x19, x20, [sp, 16]
16624	mov	w0, 0
16625	ldp	x21, x22, [sp, 32]
16626	ldp	x23, x24, [sp, 48]
16627	ldp	x25, x26, [sp, 64]
16628	ldp	x27, x28, [sp, 80]
16629	ldp	x29, x30, [sp], 208
16630	ret
16631.L2383:
16632	ldrh	w0, [x19, 16]
16633	mov	w21, 0
16634.L2384:
16635	cmp	w0, w1
16636	beq	.L2385
16637	ldrb	w1, [x19, 8]
16638	cmp	w1, 1
16639	bne	.L2386
16640	bl	FtlGetLastWrittenPage
16641	mov	w20, w0
16642	cmn	w0, #1
16643	beq	.L2387
16644	adrp	x0, .LANCHOR16
16645	ldrb	w0, [x0, #:lo12:.LANCHOR16]
16646	cbnz	w0, .L2464
16647	adrp	x0, .LANCHOR17
16648	add	x0, x0, :lo12:.LANCHOR17
16649	ldrh	w23, [x0, w20, sxtw 1]
16650.L2388:
16651	adrp	x1, .LANCHOR108
16652	adrp	x2, .LANCHOR38
16653	adrp	x22, .LANCHOR186
16654	add	x4, x19, 16
16655	ldr	x6, [x1, #:lo12:.LANCHOR108]
16656	adrp	x1, .LANCHOR58
16657	ldr	x0, [x22, #:lo12:.LANCHOR186]
16658	mov	w27, 0
16659	ldrh	w7, [x1, #:lo12:.LANCHOR58]
16660	add	x1, x19, 16
16661	str	x1, [x29, 184]
16662	mov	w8, 65535
16663	ldrh	w1, [x2, #:lo12:.LANCHOR38]
16664	mov	w10, 56
16665	str	x2, [x29, 160]
16666	add	x1, x1, 8
16667	add	x1, x19, x1, lsl 1
16668.L2389:
16669	cmp	x1, x4
16670	bne	.L2393
16671	ldrb	w1, [x19, 8]
16672	cmp	w1, 1
16673	bne	.L2465
16674	adrp	x1, .LANCHOR16
16675	ldrb	w1, [x1, #:lo12:.LANCHOR16]
16676	cmp	w1, 0
16677	cset	w1, ne
16678	str	w1, [x29, 176]
16679.L2394:
16680	ldr	w2, [x29, 176]
16681	mov	w1, w27
16682	adrp	x24, .LC69
16683	adrp	x25, .LANCHOR241
16684	add	x24, x24, :lo12:.LC69
16685	add	x25, x25, :lo12:.LANCHOR241
16686	mov	x28, 0
16687	bl	FlashReadPages
16688	adrp	x0, .LANCHOR165
16689	mov	w5, 65535
16690	str	x0, [x29, 168]
16691	ldr	w21, [x0, #:lo12:.LANCHOR165]
16692	sub	w21, w21, #1
16693.L2395:
16694	and	w0, w28, 65535
16695	cmp	w27, w0
16696	bhi	.L2400
16697	bne	.L2398
16698	ldr	x0, [x22, #:lo12:.LANCHOR186]
16699	add	w20, w20, 1
16700	and	w20, w20, 65535
16701	ldr	w0, [x0, 4]
16702.L2544:
16703	lsr	w0, w0, 10
16704	bl	P2V_plane
16705	ldrb	w1, [x19, 8]
16706	and	w27, w0, 65535
16707	cmp	w1, 1
16708	bne	.L2402
16709	adrp	x0, .LANCHOR16
16710	ldrb	w0, [x0, #:lo12:.LANCHOR16]
16711	cbnz	w0, .L2402
16712	adrp	x0, .LANCHOR17
16713	add	x0, x0, :lo12:.LANCHOR17
16714	ldrh	w20, [x0, w20, sxtw 1]
16715.L2402:
16716	ldr	x0, [x29, 144]
16717	ldrh	w0, [x0, #:lo12:.LANCHOR52]
16718	cmp	w0, w20
16719	bne	.L2403
16720	strh	w20, [x19, 2]
16721	strb	wzr, [x19, 6]
16722	strh	wzr, [x19, 4]
16723.L2403:
16724	ldr	w0, [x29, 180]
16725	cmp	w20, w26
16726	cset	w2, eq
16727	cmp	w27, w0
16728	cset	w0, eq
16729	tst	w2, w0
16730	beq	.L2404
16731.L2550:
16732	mov	w2, w27
16733	mov	w1, w20
16734	mov	x0, x19
16735	bl	ftl_sb_update_avl_pages
16736	b	.L2542
16737.L2385:
16738	add	w21, w21, 1
16739	and	w21, w21, 65535
16740	add	x0, x19, x21, sxtw 1
16741	ldrh	w0, [x0, 16]
16742	b	.L2384
16743.L2386:
16744	mov	w1, 0
16745	bl	FtlGetLastWrittenPage
16746	mov	w20, w0
16747	cmn	w0, #1
16748	beq	.L2387
16749.L2464:
16750	mov	w23, w20
16751	b	.L2388
16752.L2387:
16753	cbz	w26, .L2390
16754	mov	w2, 2350
16755	adrp	x1, .LANCHOR240
16756	adrp	x0, .LC5
16757	add	x1, x1, :lo12:.LANCHOR240
16758	add	x0, x0, :lo12:.LC5
16759	bl	printf
16760	adrp	x1, .LC6
16761	adrp	x0, .LC7
16762	add	x1, x1, :lo12:.LC6
16763	add	x0, x0, :lo12:.LC7
16764	bl	printf
16765.L2390:
16766	ldr	w0, [x29, 180]
16767	cmp	w0, 0
16768	ccmp	w21, w0, 4, ne
16769	beq	.L2391
16770	mov	w2, 2351
16771	adrp	x1, .LANCHOR240
16772	adrp	x0, .LC5
16773	add	x1, x1, :lo12:.LANCHOR240
16774	add	x0, x0, :lo12:.LC5
16775	bl	printf
16776	adrp	x1, .LC6
16777	adrp	x0, .LC7
16778	add	x1, x1, :lo12:.LC6
16779	add	x0, x0, :lo12:.LC7
16780	bl	printf
16781.L2391:
16782	strh	wzr, [x19, 2]
16783	b	.L2549
16784.L2393:
16785	ldrh	w2, [x4]
16786	cmp	w2, w8
16787	beq	.L2392
16788	umaddl	x5, w27, w10, x0
16789	orr	w2, w23, w2, lsl 10
16790	add	w3, w27, 1
16791	str	w2, [x5, 4]
16792	mul	w2, w27, w7
16793	and	w27, w3, 65535
16794	str	xzr, [x5, 8]
16795	asr	w2, w2, 2
16796	add	x2, x6, x2, sxtw 2
16797	str	x2, [x5, 16]
16798.L2392:
16799	add	x4, x4, 2
16800	b	.L2389
16801.L2465:
16802	str	wzr, [x29, 176]
16803	b	.L2394
16804.L2400:
16805	mov	x0, 56
16806	ldr	x2, [x22, #:lo12:.LANCHOR186]
16807	mul	x0, x28, x0
16808	add	x1, x2, x0
16809	ldr	w0, [x2, x0]
16810	cbnz	w0, .L2396
16811	ldr	x6, [x1, 16]
16812	ldr	w4, [x6, 4]
16813	cmn	w4, #1
16814	beq	.L2397
16815	ldr	x0, [x29, 168]
16816	ldr	w1, [x0, #:lo12:.LANCHOR165]
16817	mov	w0, w4
16818	bl	ftl_cmp_data_ver
16819	cbz	w0, .L2397
16820	ldr	x0, [x29, 168]
16821	add	w4, w4, 1
16822	str	w4, [x0, #:lo12:.LANCHOR165]
16823.L2397:
16824	ldr	w0, [x6]
16825	cmn	w0, #1
16826	bne	.L2399
16827.L2398:
16828	ldr	x0, [x22, #:lo12:.LANCHOR186]
16829	and	x28, x28, 65535
16830	mov	x1, 56
16831	and	w20, w20, 65535
16832	madd	x28, x28, x1, x0
16833	ldr	w0, [x28, 4]
16834	b	.L2544
16835.L2396:
16836	ldr	w1, [x1, 4]
16837	mov	x0, x24
16838	bl	printf
16839	ldrh	w0, [x19]
16840	and	w5, w23, 65535
16841	strh	w0, [x25]
16842.L2399:
16843	add	x28, x28, 1
16844	b	.L2395
16845.L2404:
16846	mov	w0, 65535
16847	cmp	w5, w0
16848	bne	.L2405
16849	cbnz	w1, .L2406
16850.L2405:
16851	adrp	x24, .LANCHOR139
16852	and	w6, w23, 65535
16853	ldr	w0, [x24, #:lo12:.LANCHOR139]
16854	cmn	w0, #1
16855	bne	.L2407
16856	str	w21, [x24, #:lo12:.LANCHOR139]
16857.L2407:
16858	add	w0, w26, 7
16859	ldr	w7, [x24, #:lo12:.LANCHOR139]
16860	cmp	w0, w23, uxth
16861	bge	.L2466
16862	sub	w23, w6, #7
16863	and	w23, w23, 65535
16864.L2408:
16865	mov	w3, -1
16866	adrp	x5, .LANCHOR123
16867	mov	w28, w3
16868	add	x5, x5, :lo12:.LANCHOR123
16869	mov	w4, 65535
16870.L2409:
16871	cmp	w23, w6
16872	bhi	.L2424
16873	ldr	x1, [x29, 160]
16874	mov	w25, 0
16875	ldr	x0, [x22, #:lo12:.LANCHOR186]
16876	mov	w10, 56
16877	ldr	x2, [x29, 184]
16878	ldrh	w1, [x1, #:lo12:.LANCHOR38]
16879	add	x1, x1, 8
16880	add	x1, x19, x1, lsl 1
16881	b	.L2425
16882.L2466:
16883	mov	w23, w26
16884	b	.L2408
16885.L2411:
16886	ldrh	w8, [x2]
16887	cmp	w8, w4
16888	beq	.L2410
16889	umaddl	x11, w25, w10, x0
16890	add	w25, w25, 1
16891	and	w25, w25, 65535
16892	orr	w8, w23, w8, lsl 10
16893	str	w8, [x11, 4]
16894.L2410:
16895	add	x2, x2, 2
16896.L2425:
16897	cmp	x2, x1
16898	bne	.L2411
16899	ldr	w2, [x29, 176]
16900	mov	w1, w25
16901	str	x5, [x29, 112]
16902	str	w4, [x29, 120]
16903	str	w7, [x29, 128]
16904	str	w6, [x29, 136]
16905	str	w3, [x29, 152]
16906	bl	FlashReadPages
16907	adrp	x1, .LANCHOR16
16908	mov	w2, 56
16909	ldr	w0, [x24, #:lo12:.LANCHOR139]
16910	sxtw	x12, w23
16911	ldrb	w10, [x1, #:lo12:.LANCHOR16]
16912	mov	w11, 1
16913	ldr	x1, [x22, #:lo12:.LANCHOR186]
16914	ldr	w4, [x29, 120]
16915	ldr	w7, [x29, 128]
16916	ldr	w6, [x29, 136]
16917	ldr	w3, [x29, 152]
16918	nop // between mem op and mult-accumulate
16919	umaddl	x25, w25, w2, x1
16920	ldr	x5, [x29, 112]
16921	mov	w2, 0
16922.L2412:
16923	cmp	x25, x1
16924	bne	.L2422
16925	cbz	w2, .L2423
16926	str	w0, [x24, #:lo12:.LANCHOR139]
16927.L2423:
16928	add	w23, w23, 1
16929	and	w23, w23, 65535
16930	b	.L2409
16931.L2422:
16932	ldr	w8, [x1]
16933	cbnz	w8, .L2413
16934	ldr	x8, [x1, 16]
16935	ldrh	w13, [x8]
16936	cmp	w13, w4
16937	beq	.L2468
16938	ldr	w8, [x8, 4]
16939	cmn	w8, #1
16940	beq	.L2468
16941	cmn	w3, #1
16942	bne	.L2470
16943	ldrh	w2, [x5, x12, lsl 1]
16944	cmp	w2, w4
16945	bne	.L2415
16946	cbz	w10, .L2470
16947.L2415:
16948	cmp	w21, w0
16949	mov	w2, w11
16950	csel	w3, w3, w0, eq
16951.L2414:
16952	mov	w28, w0
16953	add	x1, x1, 56
16954	mov	w0, w8
16955	b	.L2412
16956.L2413:
16957	cbz	w2, .L2416
16958	str	w0, [x24, #:lo12:.LANCHOR139]
16959.L2416:
16960	adrp	x0, .LANCHOR241
16961	ldrh	w1, [x19]
16962	strh	w1, [x0, #:lo12:.LANCHOR241]
16963	ldrb	w0, [x19, 8]
16964	cbnz	w0, .L2406
16965	adrp	x0, .LANCHOR123
16966	add	x0, x0, :lo12:.LANCHOR123
16967	ldrh	w1, [x0, w23, sxtw 1]
16968	mov	w0, 65535
16969	cmp	w1, w0
16970	bne	.L2418
16971	cmn	w3, #1
16972	beq	.L2419
16973	str	w3, [x24, #:lo12:.LANCHOR139]
16974.L2406:
16975	adrp	x0, .LANCHOR242
16976	mov	w23, w26
16977	mov	w1, 1
16978	adrp	x28, .LANCHOR139
16979	strh	w1, [x0, #:lo12:.LANCHOR242]
16980	add	x0, x28, :lo12:.LANCHOR139
16981	str	x0, [x29, 112]
16982.L2426:
16983	ldr	x2, [x29, 160]
16984	adrp	x1, .LANCHOR16
16985	ldr	x0, [x22, #:lo12:.LANCHOR186]
16986	mov	w24, 0
16987	ldrb	w5, [x1, #:lo12:.LANCHOR16]
16988	mov	w6, 65535
16989	ldr	x3, [x29, 184]
16990	ldrh	w2, [x2, #:lo12:.LANCHOR38]
16991	str	x1, [x29, 128]
16992	add	x2, x2, 8
16993	add	x2, x19, x2, lsl 1
16994.L2427:
16995	cmp	x2, x3
16996	bne	.L2430
16997	ldr	w2, [x29, 176]
16998	mov	w1, w24
16999	mov	x25, 0
17000	bl	FlashReadPages
17001	mov	w0, 56
17002	umull	x0, w24, w0
17003	str	x0, [x29, 136]
17004	adrp	x0, .LANCHOR241
17005	add	x0, x0, :lo12:.LANCHOR241
17006	str	x0, [x29, 120]
17007.L2431:
17008	ldr	x0, [x29, 136]
17009	cmp	x25, x0
17010	bne	.L2457
17011	ldrb	w0, [x19, 8]
17012	add	w23, w23, 1
17013	and	w23, w23, 65535
17014	cmp	w0, 1
17015	bne	.L2458
17016	ldr	x0, [x29, 128]
17017	ldrb	w0, [x0, #:lo12:.LANCHOR16]
17018	cbz	w0, .L2458
17019	adrp	x0, .LANCHOR53
17020	ldrh	w0, [x0, #:lo12:.LANCHOR53]
17021	cmp	w0, w23
17022	bne	.L2458
17023	cmp	w20, w23
17024	beq	.L2433
17025.L2458:
17026	ldr	x0, [x29, 144]
17027	ldrh	w0, [x0, #:lo12:.LANCHOR52]
17028	cmp	w0, w23
17029	bne	.L2426
17030	ldr	x0, [x29, 160]
17031	mov	w2, 65535
17032	strh	w23, [x19, 2]
17033	strh	wzr, [x19, 4]
17034	ldrh	w1, [x0, #:lo12:.LANCHOR38]
17035	mov	w0, 0
17036.L2459:
17037	cmp	w0, w1
17038	beq	.L2542
17039	ldr	x4, [x29, 184]
17040	ldrh	w3, [x4], 2
17041	str	x4, [x29, 184]
17042	cmp	w3, w2
17043	beq	.L2460
17044	strb	w0, [x19, 6]
17045	b	.L2542
17046.L2419:
17047	cmp	w21, w7
17048	beq	.L2420
17049	str	w7, [x24, #:lo12:.LANCHOR139]
17050	b	.L2406
17051.L2420:
17052	ldr	w0, [x24, #:lo12:.LANCHOR139]
17053.L2551:
17054	sub	w0, w0, #1
17055.L2545:
17056	str	w0, [x24, #:lo12:.LANCHOR139]
17057	b	.L2406
17058.L2418:
17059	cmp	w28, w21
17060	beq	.L2421
17061	cmn	w28, #1
17062	beq	.L2406
17063	str	w28, [x24, #:lo12:.LANCHOR139]
17064	b	.L2406
17065.L2421:
17066	ldr	w0, [x24, #:lo12:.LANCHOR139]
17067	cmp	w21, w0
17068	bne	.L2551
17069	b	.L2406
17070.L2468:
17071	mov	w8, w0
17072	mov	w0, w28
17073	b	.L2414
17074.L2470:
17075	mov	w2, 1
17076	b	.L2414
17077.L2424:
17078	mov	w0, -1
17079	b	.L2545
17080.L2430:
17081	ldrh	w1, [x3]
17082	cmp	w1, w6
17083	beq	.L2428
17084	mov	w4, 56
17085	orr	w1, w23, w1, lsl 10
17086	umaddl	x4, w24, w4, x0
17087	str	w1, [x4, 4]
17088	ldrb	w7, [x19, 8]
17089	cmp	w7, 1
17090	bne	.L2429
17091	cbz	w5, .L2429
17092	orr	w1, w1, -2147483648
17093	str	w1, [x4, 4]
17094.L2429:
17095	add	w24, w24, 1
17096	and	w24, w24, 65535
17097.L2428:
17098	add	x3, x3, 2
17099	b	.L2427
17100.L2457:
17101	ldr	x4, [x22, #:lo12:.LANCHOR186]
17102	add	x4, x4, x25
17103	ldr	w5, [x4, 4]
17104	str	w5, [x29, 204]
17105	lsr	w0, w5, 10
17106	bl	P2V_plane
17107	and	w0, w0, 65535
17108	cmp	w23, w26
17109	bcc	.L2432
17110	ldr	w1, [x29, 180]
17111	ccmp	w1, w0, 0, eq
17112	bhi	.L2432
17113	cmp	w23, w20
17114	ccmp	w27, w0, 0, eq
17115	beq	.L2433
17116	ldr	w0, [x4]
17117	cmn	w0, #1
17118	beq	.L2434
17119	ldr	x3, [x4, 16]
17120	mov	w0, 61589
17121	ldrh	w1, [x3]
17122	cmp	w1, w0
17123	beq	.L2435
17124	ldrh	w0, [x19]
17125.L2547:
17126	bl	decrement_vpc_count
17127	b	.L2432
17128.L2435:
17129	ldr	w21, [x3, 4]
17130	cmn	w21, #1
17131	beq	.L2436
17132	ldr	x0, [x29, 168]
17133	ldr	w1, [x0, #:lo12:.LANCHOR165]
17134	mov	w0, w21
17135	bl	ftl_cmp_data_ver
17136	cbz	w0, .L2436
17137	ldr	x1, [x29, 168]
17138	add	w0, w21, 1
17139	str	w0, [x1, #:lo12:.LANCHOR165]
17140.L2436:
17141	ldp	w24, w0, [x3, 8]
17142	add	x1, x29, 200
17143	str	w0, [x29, 196]
17144	mov	w2, 0
17145	mov	w0, w24
17146	bl	log2phys
17147	ldr	w1, [x28, #:lo12:.LANCHOR139]
17148	ldr	w3, [x29, 196]
17149	cmn	w1, #1
17150	beq	.L2437
17151	mov	w0, w21
17152	bl	ftl_cmp_data_ver
17153	cbz	w0, .L2437
17154	cmn	w3, #1
17155	beq	.L2438
17156	ldr	x0, [x22, #:lo12:.LANCHOR186]
17157	mov	w2, 0
17158	mov	w1, 1
17159	add	x0, x0, x25
17160	ldr	x4, [x0, 16]
17161	str	w3, [x0, 4]
17162	str	x4, [x29, 152]
17163	bl	FlashReadPages
17164	ldr	x0, [x22, #:lo12:.LANCHOR186]
17165	ldr	x4, [x29, 152]
17166	add	x3, x0, x25
17167	ldr	w0, [x0, x25]
17168	cmn	w0, #1
17169	bne	.L2439
17170.L2440:
17171	mov	w0, -1
17172	str	w0, [x29, 196]
17173.L2447:
17174	ldr	w3, [x29, 196]
17175	cmn	w3, #1
17176	beq	.L2432
17177.L2463:
17178	lsr	w0, w3, 10
17179	bl	P2V_block_in_plane
17180	and	w24, w0, 65535
17181	adrp	x0, .LANCHOR40
17182	mov	w3, w24
17183	ldrh	w0, [x0, #:lo12:.LANCHOR40]
17184	cmp	w0, w24
17185	bhi	.L2453
17186	mov	w2, 2683
17187	adrp	x1, .LANCHOR240
17188	adrp	x0, .LC5
17189	add	x1, x1, :lo12:.LANCHOR240
17190	add	x0, x0, :lo12:.LC5
17191	str	w24, [x29, 152]
17192	bl	printf
17193	adrp	x1, .LC6
17194	adrp	x0, .LC7
17195	add	x1, x1, :lo12:.LC6
17196	add	x0, x0, :lo12:.LC7
17197	bl	printf
17198	ldr	w3, [x29, 152]
17199.L2453:
17200	adrp	x1, .LANCHOR85
17201	ubfiz	x0, x24, 1, 16
17202	ldr	x1, [x1, #:lo12:.LANCHOR85]
17203	ldrh	w0, [x1, x0]
17204	cbz	w0, .L2454
17205	mov	w0, w3
17206	b	.L2547
17207.L2438:
17208	ldp	w1, w0, [x29, 200]
17209	cmp	w1, w0
17210	bne	.L2432
17211	mov	w2, 1
17212	add	x1, x29, 196
17213	mov	w0, w24
17214	bl	log2phys
17215.L2432:
17216	add	x25, x25, 56
17217	b	.L2431
17218.L2439:
17219	ldr	w0, [x4, 8]
17220	cmp	w24, w0
17221	bne	.L2440
17222	ldr	w0, [x4, 4]
17223	str	w0, [x29, 152]
17224	str	x4, [x29, 104]
17225	uxtw	x1, w0
17226	ldr	w0, [x28, #:lo12:.LANCHOR139]
17227	bl	ftl_cmp_data_ver
17228	cbz	w0, .L2440
17229	ldp	w0, w1, [x29, 200]
17230	ldr	x4, [x29, 104]
17231	cmp	w0, w1
17232	ldr	w1, [x29, 196]
17233	bne	.L2442
17234.L2546:
17235	mov	w0, w24
17236	bl	FtlReUsePrevPpa
17237	b	.L2440
17238.L2442:
17239	cmp	w0, w1
17240	beq	.L2440
17241	cmn	w0, #1
17242	beq	.L2443
17243	ldr	x4, [x3, 16]
17244	mov	w2, 0
17245	str	w0, [x3, 4]
17246	mov	w1, 1
17247	str	x4, [x29, 104]
17248	mov	x0, x3
17249	bl	FlashReadPages
17250	ldr	x4, [x29, 104]
17251.L2444:
17252	ldr	x0, [x22, #:lo12:.LANCHOR186]
17253	ldr	w0, [x0, x25]
17254	cmn	w0, #1
17255	beq	.L2445
17256	ldr	x0, [x29, 112]
17257	ldr	w3, [x4, 4]
17258	mov	w1, w3
17259	ldr	w0, [x0]
17260	bl	ftl_cmp_data_ver
17261	cbz	w0, .L2445
17262	ldr	w0, [x29, 152]
17263	mov	w1, w3
17264	bl	ftl_cmp_data_ver
17265	cbz	w0, .L2440
17266.L2445:
17267	ldr	w1, [x29, 196]
17268	b	.L2546
17269.L2443:
17270	str	w0, [x3]
17271	b	.L2444
17272.L2437:
17273	ldp	w1, w0, [x29, 200]
17274	cmp	w1, w0
17275	beq	.L2447
17276	cmn	w3, #1
17277	beq	.L2449
17278	adrp	x0, .LANCHOR43
17279	ubfx	x3, x3, 10, 21
17280	ldr	w0, [x0, #:lo12:.LANCHOR43]
17281	cmp	w3, w0
17282	bcs	.L2432
17283.L2449:
17284	mov	w2, 1
17285	add	x1, x29, 204
17286	mov	w0, w24
17287	bl	log2phys
17288	ldr	w3, [x29, 200]
17289	cmn	w3, #1
17290	beq	.L2447
17291	ldr	w0, [x29, 196]
17292	cmp	w3, w0
17293	beq	.L2463
17294	lsr	w0, w3, 10
17295	bl	P2V_block_in_plane
17296	adrp	x1, .LANCHOR93
17297	and	w0, w0, 65535
17298	ldrh	w1, [x1, #:lo12:.LANCHOR93]
17299	cmp	w1, w0
17300	beq	.L2452
17301	adrp	x1, .LANCHOR94
17302	ldrh	w1, [x1, #:lo12:.LANCHOR94]
17303	cmp	w1, w0
17304	beq	.L2452
17305	adrp	x1, .LANCHOR95
17306	ldrh	w1, [x1, #:lo12:.LANCHOR95]
17307	cmp	w1, w0
17308	bne	.L2447
17309.L2452:
17310	ldr	x0, [x22, #:lo12:.LANCHOR186]
17311	mov	w2, 0
17312	mov	w1, 1
17313	ldr	x4, [x0, 16]
17314	str	w3, [x0, 4]
17315	str	x4, [x29, 152]
17316	bl	FlashReadPages
17317	ldr	x0, [x22, #:lo12:.LANCHOR186]
17318	ldr	w0, [x0]
17319	cmn	w0, #1
17320	beq	.L2447
17321	ldr	x4, [x29, 152]
17322	mov	w0, w21
17323	ldr	w1, [x4, 4]
17324	bl	ftl_cmp_data_ver
17325	cbnz	w0, .L2447
17326	mov	w2, 1
17327	add	x1, x29, 200
17328	mov	w0, w24
17329	bl	log2phys
17330	b	.L2447
17331.L2454:
17332	mov	w1, w24
17333	adrp	x0, .LC70
17334	add	x0, x0, :lo12:.LC70
17335	bl	printf
17336	b	.L2432
17337.L2434:
17338	ldr	x1, [x29, 120]
17339	mov	w2, w21
17340	ldrh	w0, [x19]
17341	strh	w0, [x1]
17342	mov	w1, w5
17343	adrp	x0, .LC71
17344	add	x0, x0, :lo12:.LC71
17345	bl	printf
17346	adrp	x2, .LANCHOR243
17347	ldr	w0, [x2, #:lo12:.LANCHOR243]
17348	cmp	w0, 31
17349	bhi	.L2455
17350	adrp	x1, .LANCHOR244
17351	add	x1, x1, :lo12:.LANCHOR244
17352	ldr	w3, [x29, 204]
17353	str	w3, [x1, w0, uxtw 2]
17354	add	w0, w0, 1
17355	str	w0, [x2, #:lo12:.LANCHOR243]
17356.L2455:
17357	ldrh	w0, [x19]
17358	bl	decrement_vpc_count
17359	ldr	w0, [x28, #:lo12:.LANCHOR139]
17360	cmn	w0, #1
17361	bne	.L2456
17362.L2548:
17363	str	w21, [x28, #:lo12:.LANCHOR139]
17364	b	.L2432
17365.L2456:
17366	cmp	w21, w0
17367	bcs	.L2432
17368	b	.L2548
17369.L2460:
17370	add	w0, w0, 1
17371	and	w0, w0, 65535
17372	b	.L2459
17373.L2433:
17374	strb	w27, [x19, 6]
17375	strh	w20, [x19, 2]
17376	b	.L2550
17377	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
17378	.section	.text.FtlGcScanTempBlk,"ax",@progbits
17379	.align	2
17380	.global	FtlGcScanTempBlk
17381	.type	FtlGcScanTempBlk, %function
17382FtlGcScanTempBlk:
17383	stp	x29, x30, [sp, -176]!
17384	mov	w2, 65535
17385	add	x29, sp, 0
17386	stp	x19, x20, [sp, 16]
17387	mov	x19, x0
17388	adrp	x0, .LANCHOR245
17389	stp	x21, x22, [sp, 32]
17390	stp	x23, x24, [sp, 48]
17391	ldrh	w20, [x0, #:lo12:.LANCHOR245]
17392	stp	x25, x26, [sp, 64]
17393	stp	x27, x28, [sp, 80]
17394	cmp	w20, w2
17395	str	x0, [x29, 96]
17396	beq	.L2580
17397	cbnz	w20, .L2553
17398.L2554:
17399	bl	FtlGcPageVarInit
17400	b	.L2555
17401.L2580:
17402	mov	w20, 0
17403.L2553:
17404	adrp	x0, .LANCHOR52
17405	ldrh	w0, [x0, #:lo12:.LANCHOR52]
17406	cmp	w0, w1
17407	beq	.L2554
17408.L2555:
17409	adrp	x24, .LANCHOR74
17410	add	x24, x24, :lo12:.LANCHOR74
17411	mov	w27, -1
17412.L2556:
17413	ldrh	w1, [x19]
17414	mov	w0, 65535
17415	strb	wzr, [x19, 8]
17416	cmp	w1, w0
17417	beq	.L2581
17418	mov	w28, 56
17419.L2579:
17420	adrp	x1, .LANCHOR107
17421	adrp	x23, .LANCHOR186
17422	add	x3, x19, 16
17423	mov	w21, 0
17424	ldr	x5, [x1, #:lo12:.LANCHOR107]
17425	adrp	x1, .LANCHOR57
17426	ldr	x0, [x23, #:lo12:.LANCHOR186]
17427	mov	w10, 65535
17428	ldrh	w6, [x1, #:lo12:.LANCHOR57]
17429	adrp	x1, .LANCHOR108
17430	ldr	x7, [x1, #:lo12:.LANCHOR108]
17431	adrp	x1, .LANCHOR58
17432	ldrh	w8, [x1, #:lo12:.LANCHOR58]
17433	adrp	x1, .LANCHOR38
17434	ldrh	w1, [x1, #:lo12:.LANCHOR38]
17435	add	x1, x1, 8
17436	add	x1, x19, x1, lsl 1
17437.L2558:
17438	cmp	x3, x1
17439	bne	.L2560
17440	mov	w2, 0
17441	mov	w1, w21
17442	bl	FlashReadPages
17443	adrp	x25, .LANCHOR2
17444	umull	x0, w21, w28
17445	add	x25, x25, :lo12:.LANCHOR2
17446	mov	x22, 0
17447	str	x0, [x29, 104]
17448.L2561:
17449	ldr	x0, [x29, 104]
17450	cmp	x22, x0
17451	bne	.L2578
17452	adrp	x0, .LANCHOR52
17453	add	w20, w20, 1
17454	and	w20, w20, 65535
17455	ldrh	w0, [x0, #:lo12:.LANCHOR52]
17456	cmp	w0, w20
17457	bhi	.L2579
17458.L2581:
17459	mov	w2, 0
17460	b	.L2557
17461.L2560:
17462	ldrh	w2, [x3]
17463	cmp	w2, w10
17464	beq	.L2559
17465	umaddl	x4, w21, w28, x0
17466	orr	w2, w20, w2, lsl 10
17467	str	w2, [x4, 4]
17468	mul	w2, w21, w6
17469	asr	w2, w2, 2
17470	add	x2, x5, x2, sxtw 2
17471	str	x2, [x4, 8]
17472	mul	w2, w21, w8
17473	add	w21, w21, 1
17474	and	w21, w21, 65535
17475	asr	w2, w2, 2
17476	add	x2, x7, x2, sxtw 2
17477	str	x2, [x4, 16]
17478.L2559:
17479	add	x3, x3, 2
17480	b	.L2558
17481.L2578:
17482	ldr	x4, [x23, #:lo12:.LANCHOR186]
17483	add	x5, x4, x22
17484	ldr	w26, [x5, 4]
17485	lsr	w0, w26, 10
17486	bl	P2V_plane
17487	and	w2, w0, 65535
17488	ldr	w0, [x4, x22]
17489	ldr	x21, [x5, 16]
17490	cbnz	w0, .L2562
17491	ldrh	w1, [x21]
17492	mov	w0, 65535
17493	cmp	w1, w0
17494	bne	.L2563
17495.L2566:
17496	adrp	x0, .LANCHOR16
17497	ldrb	w0, [x0, #:lo12:.LANCHOR16]
17498	cbz	w0, .L2597
17499	adrp	x0, .LANCHOR138
17500	mov	w1, 1
17501	str	w1, [x0, #:lo12:.LANCHOR138]
17502.L2557:
17503	ldr	x1, [x29, 96]
17504	mov	w0, -1
17505	strb	w2, [x19, 6]
17506	strh	w20, [x19, 2]
17507	strh	w0, [x1, #:lo12:.LANCHOR245]
17508	mov	w1, w20
17509	mov	x0, x19
17510	bl	ftl_sb_update_avl_pages
17511	mov	w0, w27
17512	ldp	x19, x20, [sp, 16]
17513	ldp	x21, x22, [sp, 32]
17514	ldp	x23, x24, [sp, 48]
17515	ldp	x25, x26, [sp, 64]
17516	ldp	x27, x28, [sp, 80]
17517	ldp	x29, x30, [sp], 176
17518	ret
17519.L2563:
17520	ldr	w0, [x21, 8]
17521	ldr	w1, [x24]
17522	cmp	w0, w1
17523	bhi	.L2566
17524	ldrb	w1, [x25]
17525	cbnz	w1, .L2569
17526.L2570:
17527	ldp	w2, w0, [x21, 8]
17528	mov	w1, w26
17529	add	x22, x22, 56
17530	bl	FtlGcUpdatePage
17531	b	.L2561
17532.L2569:
17533	add	x1, x29, 116
17534	mov	w2, 0
17535	bl	log2phys
17536	ldr	w0, [x21, 12]
17537	ldr	w1, [x29, 116]
17538	cmp	w0, w1
17539	bne	.L2570
17540	cmn	w0, #1
17541	beq	.L2570
17542	str	w0, [x29, 124]
17543	adrp	x0, .LANCHOR194
17544	mov	w2, 0
17545	mov	w1, 1
17546	ldr	x0, [x0, #:lo12:.LANCHOR194]
17547	str	x0, [x29, 128]
17548	adrp	x0, .LANCHOR196
17549	ldr	x0, [x0, #:lo12:.LANCHOR196]
17550	str	x0, [x29, 136]
17551	add	x0, x29, 120
17552	bl	FlashReadPages
17553	adrp	x0, .LANCHOR55
17554	ldr	x2, [x23, #:lo12:.LANCHOR186]
17555	ldr	x4, [x29, 128]
17556	ldrh	w1, [x0, #:lo12:.LANCHOR55]
17557	add	x2, x2, x22
17558	mov	x0, 0
17559	ubfiz	x1, x1, 9, 16
17560.L2571:
17561	cmp	x0, x1
17562	beq	.L2570
17563	ldr	x5, [x2, 8]
17564	ldr	w6, [x5, x0]
17565	add	x0, x0, 4
17566	add	x5, x4, x0
17567	ldr	w5, [x5, -4]
17568	cmp	w6, w5
17569	beq	.L2571
17570	ldrh	w1, [x19]
17571	adrp	x0, .LC72
17572	ldr	w2, [x29, 124]
17573	add	x0, x0, :lo12:.LC72
17574	bl	printf
17575.L2597:
17576	adrp	x0, .LANCHOR85
17577	ldrh	w1, [x19]
17578	ldr	x0, [x0, #:lo12:.LANCHOR85]
17579	strh	wzr, [x0, x1, lsl 1]
17580	ldrh	w0, [x19]
17581	bl	INSERT_FREE_LIST
17582	adrp	x1, .LANCHOR213
17583	mov	w0, -1
17584	strh	w0, [x19]
17585	strh	w0, [x1, #:lo12:.LANCHOR213]
17586.L2596:
17587	bl	FtlGcPageVarInit
17588	mov	w20, 0
17589	b	.L2556
17590.L2562:
17591	ldrh	w1, [x19]
17592	mov	w2, w26
17593	adrp	x0, .LC73
17594	add	x0, x0, :lo12:.LC73
17595	bl	printf
17596	adrp	x0, .LANCHOR104
17597	ldr	w1, [x0, #:lo12:.LANCHOR104]
17598	ldrh	w0, [x19]
17599	cbnz	w1, .L2574
17600	adrp	x1, .LANCHOR16
17601	ldrb	w1, [x1, #:lo12:.LANCHOR16]
17602	cbz	w1, .L2575
17603.L2574:
17604	adrp	x2, .LANCHOR80
17605	ubfiz	x1, x0, 1, 16
17606	ldr	x2, [x2, #:lo12:.LANCHOR80]
17607	ldrh	w1, [x2, x1]
17608	cmp	w1, 159
17609	bls	.L2576
17610.L2575:
17611	ldr	x1, [x23, #:lo12:.LANCHOR186]
17612	ldr	w1, [x1, x22]
17613	cmn	w1, #1
17614	bne	.L2577
17615.L2576:
17616	ldr	x1, [x23, #:lo12:.LANCHOR186]
17617	add	x22, x1, x22
17618	ldr	w27, [x22, 4]
17619.L2577:
17620	adrp	x1, .LANCHOR85
17621	ubfiz	x0, x0, 1, 16
17622	ldr	x1, [x1, #:lo12:.LANCHOR85]
17623	strh	wzr, [x1, x0]
17624	ldrh	w0, [x19]
17625	bl	INSERT_FREE_LIST
17626	mov	w0, -1
17627	strh	w0, [x19]
17628	b	.L2596
17629	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
17630	.section	.text.FtlGcFreeTempBlock,"ax",@progbits
17631	.align	2
17632	.global	FtlGcFreeTempBlock
17633	.type	FtlGcFreeTempBlock, %function
17634FtlGcFreeTempBlock:
17635	adrp	x0, .LANCHOR78
17636	ldr	w0, [x0, #:lo12:.LANCHOR78]
17637	cbz	w0, .L2599
17638	mov	w0, 0
17639	ret
17640.L2599:
17641	stp	x29, x30, [sp, -112]!
17642	mov	w1, 65535
17643	add	x29, sp, 0
17644	stp	x19, x20, [sp, 16]
17645	adrp	x19, .LANCHOR95
17646	stp	x21, x22, [sp, 32]
17647	add	x0, x19, :lo12:.LANCHOR95
17648	ldrh	w20, [x19, #:lo12:.LANCHOR95]
17649	adrp	x21, .LANCHOR138
17650	stp	x23, x24, [sp, 48]
17651	stp	x25, x26, [sp, 64]
17652	cmp	w20, w1
17653	stp	x27, x28, [sp, 80]
17654	beq	.L2601
17655	adrp	x1, .LANCHOR52
17656	ldrh	w1, [x1, #:lo12:.LANCHOR52]
17657	bl	FtlGcScanTempBlk
17658	str	w0, [x29, 108]
17659	cmn	w0, #1
17660	beq	.L2601
17661	adrp	x0, .LANCHOR80
17662	ubfiz	x20, x20, 1, 16
17663	ldr	x1, [x0, #:lo12:.LANCHOR80]
17664	ldrh	w0, [x1, x20]
17665	cmp	w0, 4
17666	bls	.L2602
17667	sub	w0, w0, #5
17668	strh	w0, [x1, x20]
17669	mov	w0, 1
17670	bl	FtlEctTblFlush
17671.L2602:
17672	ldr	w0, [x21, #:lo12:.LANCHOR138]
17673	cbnz	w0, .L2603
17674	adrp	x0, .LANCHOR141
17675	add	x0, x0, :lo12:.LANCHOR141
17676	ldr	w1, [x0, 96]
17677	add	w1, w1, 1
17678	str	w1, [x0, 96]
17679	ldr	w0, [x29, 108]
17680	lsr	w0, w0, 10
17681	bl	FtlBbmMapBadBlock
17682	bl	FtlBbmTblFlush
17683.L2603:
17684	str	wzr, [x21, #:lo12:.LANCHOR138]
17685	mov	w0, 1
17686.L2598:
17687	ldp	x19, x20, [sp, 16]
17688	ldp	x21, x22, [sp, 32]
17689	ldp	x23, x24, [sp, 48]
17690	ldp	x25, x26, [sp, 64]
17691	ldp	x27, x28, [sp, 80]
17692	ldp	x29, x30, [sp], 112
17693	ret
17694.L2601:
17695	str	wzr, [x21, #:lo12:.LANCHOR138]
17696	mov	w0, 65535
17697	ldrh	w1, [x19, #:lo12:.LANCHOR95]
17698	add	x21, x19, :lo12:.LANCHOR95
17699	cmp	w1, w0
17700	beq	.L2625
17701	bl	FtlCacheWriteBack
17702	adrp	x20, .LANCHOR113
17703	adrp	x0, .LANCHOR52
17704	ldrb	w1, [x21, 7]
17705	ldrh	w2, [x20, #:lo12:.LANCHOR113]
17706	mov	x21, x0
17707	ldrh	w3, [x0, #:lo12:.LANCHOR52]
17708	mul	w1, w1, w3
17709	cmp	w2, w1
17710	beq	.L2605
17711	mov	w2, 193
17712	adrp	x1, .LANCHOR246
17713	adrp	x0, .LC5
17714	add	x1, x1, :lo12:.LANCHOR246
17715	add	x0, x0, :lo12:.LC5
17716	bl	printf
17717	adrp	x1, .LC6
17718	adrp	x0, .LC7
17719	add	x1, x1, :lo12:.LC6
17720	add	x0, x0, :lo12:.LC7
17721	bl	printf
17722.L2605:
17723	add	x0, x19, :lo12:.LANCHOR95
17724	adrp	x22, .LANCHOR85
17725	ldrh	w3, [x21, #:lo12:.LANCHOR52]
17726	adrp	x25, .LANCHOR74
17727	ldrh	w2, [x19, #:lo12:.LANCHOR95]
17728	add	x26, x20, :lo12:.LANCHOR113
17729	ldrb	w0, [x0, 7]
17730	add	x25, x25, :lo12:.LANCHOR74
17731	ldr	x1, [x22, #:lo12:.LANCHOR85]
17732	mov	w21, 0
17733	adrp	x27, .LANCHOR114
17734	mul	w0, w0, w3
17735	strh	w0, [x1, x2, lsl 1]
17736	adrp	x1, .LANCHOR166
17737	ldrh	w0, [x20, #:lo12:.LANCHOR113]
17738	ldr	w2, [x1, #:lo12:.LANCHOR166]
17739	add	w0, w0, w2
17740	str	w0, [x1, #:lo12:.LANCHOR166]
17741.L2606:
17742	ldrh	w0, [x26]
17743	cmp	w0, w21
17744	bhi	.L2610
17745	mov	w0, -1
17746	bl	decrement_vpc_count
17747	adrp	x0, .LANCHOR16
17748	ldrb	w0, [x0, #:lo12:.LANCHOR16]
17749	cbz	w0, .L2611
17750	ldrh	w1, [x19, #:lo12:.LANCHOR95]
17751	adrp	x0, .LC74
17752	add	x0, x0, :lo12:.LC74
17753	bl	printf
17754.L2611:
17755	ldrh	w0, [x19, #:lo12:.LANCHOR95]
17756	ldr	x2, [x22, #:lo12:.LANCHOR85]
17757	ubfiz	x1, x0, 1, 16
17758	ldrh	w1, [x2, x1]
17759	cbz	w1, .L2612
17760	bl	INSERT_DATA_LIST
17761.L2613:
17762	adrp	x0, .LANCHOR111
17763	mov	w21, -1
17764	strh	wzr, [x20, #:lo12:.LANCHOR113]
17765	strh	w21, [x19, #:lo12:.LANCHOR95]
17766	strh	wzr, [x0, #:lo12:.LANCHOR111]
17767	bl	l2p_flush
17768	bl	FtlVpcTblFlush
17769	adrp	x0, .LANCHOR213
17770	strh	w21, [x0, #:lo12:.LANCHOR213]
17771	adrp	x0, .LANCHOR90
17772	ldrh	w1, [x0, #:lo12:.LANCHOR90]
17773	adrp	x0, .LANCHOR232
17774	ldrh	w0, [x0, #:lo12:.LANCHOR232]
17775	add	w0, w0, w0, lsl 1
17776	cmp	w1, w0, lsr 2
17777	ble	.L2625
17778	adrp	x0, .LANCHOR181
17779	mov	w1, 20
17780	strh	w1, [x0, #:lo12:.LANCHOR181]
17781.L2625:
17782	mov	w0, 0
17783	b	.L2598
17784.L2610:
17785	mov	w24, 12
17786	ldr	x28, [x27, #:lo12:.LANCHOR114]
17787	ldr	w1, [x25]
17788	umull	x24, w21, w24
17789	add	x23, x28, x24
17790	ldr	w0, [x23, 8]
17791	cmp	w0, w1
17792	bcc	.L2607
17793.L2623:
17794	ldrh	w0, [x19, #:lo12:.LANCHOR95]
17795	b	.L2624
17796.L2607:
17797	add	x1, x29, 108
17798	mov	w2, 0
17799	bl	log2phys
17800	ldr	w0, [x28, x24]
17801	ldr	w1, [x29, 108]
17802	cmp	w0, w1
17803	bne	.L2609
17804	lsr	w0, w0, 10
17805	bl	P2V_block_in_plane
17806	mov	w24, w0
17807	ldr	w0, [x23, 8]
17808	mov	w2, 1
17809	add	x1, x23, 4
17810	bl	log2phys
17811	mov	w0, w24
17812.L2624:
17813	bl	decrement_vpc_count
17814	b	.L2608
17815.L2609:
17816	ldr	w0, [x23, 4]
17817	cmp	w1, w0
17818	bne	.L2623
17819.L2608:
17820	add	w21, w21, 1
17821	and	w21, w21, 65535
17822	b	.L2606
17823.L2612:
17824	bl	INSERT_FREE_LIST
17825	b	.L2613
17826	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
17827	.section	.text.FtlGcPageRecovery,"ax",@progbits
17828	.align	2
17829	.global	FtlGcPageRecovery
17830	.type	FtlGcPageRecovery, %function
17831FtlGcPageRecovery:
17832	stp	x29, x30, [sp, -32]!
17833	add	x29, sp, 0
17834	stp	x19, x20, [sp, 16]
17835	adrp	x20, .LANCHOR52
17836	adrp	x19, .LANCHOR95
17837	add	x19, x19, :lo12:.LANCHOR95
17838	ldrh	w1, [x20, #:lo12:.LANCHOR52]
17839	mov	x0, x19
17840	bl	FtlGcScanTempBlk
17841	ldrh	w1, [x19, 2]
17842	ldrh	w0, [x20, #:lo12:.LANCHOR52]
17843	cmp	w1, w0
17844	bcc	.L2626
17845	adrp	x0, .LANCHOR130
17846	add	x0, x0, :lo12:.LANCHOR130
17847	bl	FtlMapBlkWriteDumpData
17848	mov	w0, 0
17849	bl	FtlGcFreeTempBlock
17850	adrp	x0, .LANCHOR138
17851	str	wzr, [x0, #:lo12:.LANCHOR138]
17852.L2626:
17853	ldp	x19, x20, [sp, 16]
17854	ldp	x29, x30, [sp], 32
17855	ret
17856	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
17857	.section	.text.FtlPowerLostRecovery,"ax",@progbits
17858	.align	2
17859	.global	FtlPowerLostRecovery
17860	.type	FtlPowerLostRecovery, %function
17861FtlPowerLostRecovery:
17862	stp	x29, x30, [sp, -32]!
17863	adrp	x0, .LANCHOR243
17864	add	x29, sp, 0
17865	str	x19, [sp, 16]
17866	adrp	x19, .LANCHOR93
17867	add	x19, x19, :lo12:.LANCHOR93
17868	str	wzr, [x0, #:lo12:.LANCHOR243]
17869	mov	x0, x19
17870	bl	FtlRecoverySuperblock
17871	mov	x0, x19
17872	adrp	x19, .LANCHOR94
17873	bl	FtlSlcSuperblockCheck
17874	add	x19, x19, :lo12:.LANCHOR94
17875	mov	x0, x19
17876	bl	FtlRecoverySuperblock
17877	mov	x0, x19
17878	bl	FtlSlcSuperblockCheck
17879	bl	FtlGcPageRecovery
17880	mov	w0, -1
17881	bl	decrement_vpc_count
17882	mov	w0, 0
17883	ldr	x19, [sp, 16]
17884	ldp	x29, x30, [sp], 32
17885	ret
17886	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
17887	.section	.text.FtlSysBlkInit,"ax",@progbits
17888	.align	2
17889	.global	FtlSysBlkInit
17890	.type	FtlSysBlkInit, %function
17891FtlSysBlkInit:
17892	stp	x29, x30, [sp, -32]!
17893	adrp	x0, .LANCHOR241
17894	mov	w1, -1
17895	add	x29, sp, 0
17896	strh	w1, [x0, #:lo12:.LANCHOR241]
17897	adrp	x0, .LANCHOR39
17898	stp	x19, x20, [sp, 16]
17899	adrp	x20, .LANCHOR242
17900	ldrh	w0, [x0, #:lo12:.LANCHOR39]
17901	strh	wzr, [x20, #:lo12:.LANCHOR242]
17902	bl	FtlFreeSysBlkQueueInit
17903	bl	FtlScanSysBlk
17904	adrp	x0, .LANCHOR218
17905	ldrh	w1, [x0, #:lo12:.LANCHOR218]
17906	mov	w0, 65535
17907	cmp	w1, w0
17908	bne	.L2632
17909.L2634:
17910	mov	w19, -1
17911.L2631:
17912	mov	w0, w19
17913	ldp	x19, x20, [sp, 16]
17914	ldp	x29, x30, [sp], 32
17915	ret
17916.L2632:
17917	bl	FtlLoadSysInfo
17918	mov	w19, w0
17919	cbnz	w0, .L2634
17920	bl	FtlLoadMapInfo
17921	bl	FtlLoadVonderInfo
17922	bl	Ftl_load_ext_data
17923	bl	FtlLoadEctTbl
17924	bl	FtlFreeSysBLkSort
17925	bl	SupperBlkListInit
17926	bl	FtlPowerLostRecovery
17927	mov	w0, 1
17928	bl	FtlUpdateVaildLpn
17929	adrp	x0, .LANCHOR67
17930	ldrh	w2, [x0, #:lo12:.LANCHOR67]
17931	adrp	x0, .LANCHOR98
17932	ldr	x1, [x0, #:lo12:.LANCHOR98]
17933	mov	w0, 0
17934	add	x1, x1, 4
17935.L2635:
17936	cmp	w0, w2
17937	bge	.L2640
17938	ldr	w3, [x1], 16
17939	tbz	w3, #31, .L2636
17940.L2640:
17941	adrp	x3, .LANCHOR165
17942	cmp	w0, w2
17943	ldr	w1, [x3, #:lo12:.LANCHOR165]
17944	add	w1, w1, 32
17945	str	w1, [x3, #:lo12:.LANCHOR165]
17946	bge	.L2642
17947.L2637:
17948	adrp	x0, .LANCHOR85
17949	adrp	x1, .LANCHOR93
17950	ldr	x2, [x0, #:lo12:.LANCHOR85]
17951	add	x0, x1, :lo12:.LANCHOR93
17952	ldrh	w1, [x1, #:lo12:.LANCHOR93]
17953	ldrh	w4, [x0, 4]
17954	lsl	x1, x1, 1
17955	ldrh	w3, [x2, x1]
17956	sub	w3, w3, w4
17957	adrp	x4, .LANCHOR52
17958	strh	w3, [x2, x1]
17959	strh	wzr, [x0, 4]
17960	ldrh	w1, [x4, #:lo12:.LANCHOR52]
17961	strh	w1, [x0, 2]
17962	adrp	x1, .LANCHOR94
17963	strb	wzr, [x0, 6]
17964	add	x0, x1, :lo12:.LANCHOR94
17965	ldrh	w1, [x1, #:lo12:.LANCHOR94]
17966	ldrh	w5, [x0, 4]
17967	lsl	x1, x1, 1
17968	ldrh	w3, [x2, x1]
17969	sub	w3, w3, w5
17970	strh	w3, [x2, x1]
17971	strb	wzr, [x0, 6]
17972	ldrh	w1, [x4, #:lo12:.LANCHOR52]
17973	strh	w1, [x0, 2]
17974	strh	wzr, [x0, 4]
17975	adrp	x0, .LANCHOR82
17976	add	x0, x0, :lo12:.LANCHOR82
17977	ldrh	w1, [x0, 30]
17978	add	w1, w1, 1
17979	strh	w1, [x0, 30]
17980	bl	l2p_flush
17981	bl	FtlVpcTblFlush
17982.L2644:
17983	bl	FtlVpcTblFlush
17984	b	.L2631
17985.L2636:
17986	add	w0, w0, 1
17987	b	.L2635
17988.L2642:
17989	ldrh	w0, [x20, #:lo12:.LANCHOR242]
17990	cbnz	w0, .L2637
17991	bl	l2p_flush
17992	b	.L2644
17993	.size	FtlSysBlkInit, .-FtlSysBlkInit
17994	.section	.text.FtlLowFormat,"ax",@progbits
17995	.align	2
17996	.global	FtlLowFormat
17997	.type	FtlLowFormat, %function
17998FtlLowFormat:
17999	adrp	x0, .LANCHOR78
18000	ldr	w0, [x0, #:lo12:.LANCHOR78]
18001	cbnz	w0, .L2677
18002	stp	x29, x30, [sp, -96]!
18003	adrp	x0, .LANCHOR203
18004	mov	w1, 0
18005	add	x29, sp, 0
18006	stp	x19, x20, [sp, 16]
18007	adrp	x19, .LANCHOR66
18008	ldr	x0, [x0, #:lo12:.LANCHOR203]
18009	adrp	x20, .LANCHOR164
18010	ldrh	w2, [x19, #:lo12:.LANCHOR66]
18011	stp	x23, x24, [sp, 48]
18012	adrp	x24, .LANCHOR39
18013	stp	x21, x22, [sp, 32]
18014	stp	x25, x26, [sp, 64]
18015	lsl	w2, w2, 2
18016	str	x27, [sp, 80]
18017	bl	ftl_memset
18018	adrp	x0, .LANCHOR134
18019	ldrh	w2, [x19, #:lo12:.LANCHOR66]
18020	mov	w1, 0
18021	ldr	x0, [x0, #:lo12:.LANCHOR134]
18022	lsl	w2, w2, 2
18023	bl	ftl_memset
18024	str	wzr, [x20, #:lo12:.LANCHOR164]
18025	adrp	x0, .LANCHOR165
18026	str	wzr, [x0, #:lo12:.LANCHOR165]
18027	ldrh	w0, [x24, #:lo12:.LANCHOR39]
18028	bl	FtlFreeSysBlkQueueInit
18029	bl	FtlLoadBbt
18030	cbz	w0, .L2648
18031	bl	FtlMakeBbt
18032.L2648:
18033	adrp	x23, .LANCHOR55
18034	adrp	x0, .LANCHOR193
18035	mov	w6, 23752
18036	ldrh	w1, [x23, #:lo12:.LANCHOR55]
18037	movk	w6, 0xa0f, lsl 16
18038	ldr	x4, [x0, #:lo12:.LANCHOR193]
18039	adrp	x0, .LANCHOR194
18040	lsl	w1, w1, 7
18041	ldr	x5, [x0, #:lo12:.LANCHOR194]
18042	mov	w0, 0
18043.L2649:
18044	cmp	w0, w1
18045	blt	.L2650
18046	adrp	x21, .LANCHOR40
18047	adrp	x22, .LANCHOR41
18048	add	x26, x22, :lo12:.LANCHOR41
18049	mov	w19, 0
18050	ldrh	w25, [x21, #:lo12:.LANCHOR40]
18051.L2651:
18052	ldrh	w0, [x26]
18053	cmp	w0, w25
18054	bhi	.L2652
18055	adrp	x26, .LANCHOR38
18056	sub	w1, w19, #2
18057	ldrh	w0, [x26, #:lo12:.LANCHOR38]
18058	cmp	w1, w0, lsl 1
18059	ble	.L2653
18060	adrp	x1, .LANCHOR65
18061	add	x25, x22, :lo12:.LANCHOR41
18062	udiv	w0, w19, w0
18063	ldr	w19, [x1, #:lo12:.LANCHOR65]
18064	add	w0, w0, w19
18065	bl	FtlSysBlkNumInit
18066	ldrh	w0, [x24, #:lo12:.LANCHOR39]
18067	mov	w19, 0
18068	bl	FtlFreeSysBlkQueueInit
18069	ldrh	w24, [x21, #:lo12:.LANCHOR40]
18070.L2654:
18071	ldrh	w0, [x25]
18072	cmp	w0, w24
18073	bhi	.L2655
18074.L2653:
18075	add	x27, x21, :lo12:.LANCHOR40
18076	mov	w24, 0
18077	mov	w25, 0
18078.L2656:
18079	ldrh	w0, [x27]
18080	cmp	w0, w25
18081	bhi	.L2657
18082	adrp	x0, .LANCHOR75
18083	ldrh	w1, [x22, #:lo12:.LANCHOR41]
18084	adrp	x2, .LANCHOR232
18085	str	w1, [x0, #:lo12:.LANCHOR75]
18086	adrp	x0, .LANCHOR42
18087	ldrh	w1, [x26, #:lo12:.LANCHOR38]
18088	ldr	w3, [x0, #:lo12:.LANCHOR42]
18089	adrp	x0, .LANCHOR74
18090	udiv	w6, w3, w1
18091	ubfx	x5, x6, 5, 16
18092	str	w6, [x0, #:lo12:.LANCHOR74]
18093	add	w4, w5, 36
18094	strh	w4, [x2, #:lo12:.LANCHOR232]
18095	mov	w4, 24
18096	mul	w4, w1, w4
18097	cmp	w24, w4
18098	ble	.L2658
18099	sub	w3, w3, w24
18100	udiv	w3, w3, w1
18101	str	w3, [x0, #:lo12:.LANCHOR74]
18102	lsr	w3, w3, 5
18103	add	w3, w3, 24
18104	strh	w3, [x2, #:lo12:.LANCHOR232]
18105.L2658:
18106	adrp	x3, .LANCHOR104
18107	ldr	w3, [x3, #:lo12:.LANCHOR104]
18108	cmp	w3, 1
18109	bne	.L2659
18110	udiv	w4, w24, w1
18111	ldrh	w3, [x2, #:lo12:.LANCHOR232]
18112	add	w4, w4, w3
18113	add	w4, w3, w4, asr 2
18114	strh	w4, [x2, #:lo12:.LANCHOR232]
18115.L2659:
18116	adrp	x3, .LANCHOR16
18117	ldrb	w3, [x3, #:lo12:.LANCHOR16]
18118	cbz	w3, .L2660
18119	udiv	w4, w24, w1
18120	ldrh	w3, [x2, #:lo12:.LANCHOR232]
18121	add	w4, w4, w3
18122	add	w4, w3, w4, asr 2
18123	strh	w4, [x2, #:lo12:.LANCHOR232]
18124.L2660:
18125	adrp	x3, .LANCHOR49
18126	ldrh	w3, [x3, #:lo12:.LANCHOR49]
18127	cbz	w3, .L2662
18128	ldrh	w4, [x2, #:lo12:.LANCHOR232]
18129	add	w4, w4, w3, lsr 1
18130	strh	w4, [x2, #:lo12:.LANCHOR232]
18131	mul	w4, w3, w1
18132	cmp	w24, w4
18133	bge	.L2662
18134	add	w3, w3, 32
18135	str	w6, [x0, #:lo12:.LANCHOR74]
18136	add	w3, w5, w3
18137	strh	w3, [x2, #:lo12:.LANCHOR232]
18138.L2662:
18139	ldrh	w3, [x2, #:lo12:.LANCHOR232]
18140	adrp	x25, .LANCHOR231
18141	ldr	w2, [x0, #:lo12:.LANCHOR74]
18142	sub	w2, w2, w3
18143	mul	w1, w2, w1
18144	adrp	x2, .LANCHOR52
18145	str	w1, [x25, #:lo12:.LANCHOR231]
18146	ldrh	w2, [x2, #:lo12:.LANCHOR52]
18147	mul	w1, w2, w1
18148	str	w1, [x0, #:lo12:.LANCHOR74]
18149	ldrh	w0, [x23, #:lo12:.LANCHOR55]
18150	mul	w1, w0, w1
18151	adrp	x0, .LANCHOR68
18152	str	w1, [x0, #:lo12:.LANCHOR68]
18153	bl	FtlBbmTblFlush
18154	adrp	x0, .LANCHOR43
18155	add	w1, w19, w24
18156	ldr	w2, [x0, #:lo12:.LANCHOR43]
18157	adrp	x0, .LANCHOR59
18158	ldrh	w0, [x0, #:lo12:.LANCHOR59]
18159	add	w0, w0, w2, lsr 3
18160	cmp	w1, w0
18161	bls	.L2664
18162	adrp	x0, .LC75
18163	lsr	w2, w2, 5
18164	add	x0, x0, :lo12:.LC75
18165	bl	printf
18166.L2664:
18167	adrp	x24, .LANCHOR85
18168	ldrh	w2, [x22, #:lo12:.LANCHOR41]
18169	mov	w1, 0
18170	mov	w22, -1
18171	ldr	x0, [x24, #:lo12:.LANCHOR85]
18172	lsl	w2, w2, 1
18173	bl	ftl_memset
18174	adrp	x0, .LANCHOR102
18175	adrp	x1, .LANCHOR213
18176	ldrh	w2, [x21, #:lo12:.LANCHOR40]
18177	str	wzr, [x0, #:lo12:.LANCHOR102]
18178	add	x0, x1, :lo12:.LANCHOR213
18179	strh	w22, [x1, #:lo12:.LANCHOR213]
18180	mov	w1, 255
18181	lsr	w2, w2, 3
18182	strh	wzr, [x0, 2]
18183	strb	wzr, [x0, 6]
18184	strb	wzr, [x0, 8]
18185	adrp	x0, .LANCHOR93
18186	add	x19, x0, :lo12:.LANCHOR93
18187	strh	wzr, [x0, #:lo12:.LANCHOR93]
18188	mov	w0, 1
18189	strb	w0, [x19, 8]
18190	adrp	x0, .LANCHOR1
18191	strh	wzr, [x19, 2]
18192	ldr	x0, [x0, #:lo12:.LANCHOR1]
18193	strb	wzr, [x19, 6]
18194	bl	ftl_memset
18195.L2665:
18196	mov	x0, x19
18197	bl	make_superblock
18198	ldrb	w1, [x19, 7]
18199	ldrh	w0, [x19]
18200	cbnz	w1, .L2666
18201	ldr	x1, [x24, #:lo12:.LANCHOR85]
18202	ubfiz	x0, x0, 1, 16
18203	strh	w22, [x1, x0]
18204	ldrh	w0, [x19]
18205	add	w0, w0, 1
18206	strh	w0, [x19]
18207	b	.L2665
18208.L2650:
18209	ubfiz	x3, x0, 2, 16
18210	mvn	w2, w0
18211	orr	w2, w0, w2, lsl 16
18212	add	w0, w0, 1
18213	and	w0, w0, 65535
18214	str	w2, [x4, x3]
18215	str	w6, [x5, x3]
18216	b	.L2649
18217.L2652:
18218	mov	w0, w25
18219	mov	w1, 1
18220	add	w25, w25, 1
18221	bl	FtlLowFormatEraseBlock
18222	add	w19, w19, w0
18223	and	w25, w25, 65535
18224	and	w19, w19, 65535
18225	b	.L2651
18226.L2655:
18227	mov	w0, w24
18228	mov	w1, 1
18229	add	w24, w24, 1
18230	bl	FtlLowFormatEraseBlock
18231	add	w19, w19, w0
18232	and	w24, w24, 65535
18233	and	w19, w19, 65535
18234	b	.L2654
18235.L2657:
18236	mov	w0, w25
18237	mov	w1, 0
18238	add	w25, w25, 1
18239	bl	FtlLowFormatEraseBlock
18240	add	w24, w24, w0
18241	and	w25, w25, 65535
18242	and	w24, w24, 65535
18243	b	.L2656
18244.L2666:
18245	ldr	w1, [x20, #:lo12:.LANCHOR164]
18246	ubfiz	x0, x0, 1, 16
18247	str	w1, [x19, 12]
18248	mov	w22, -1
18249	add	w1, w1, 1
18250	str	w1, [x20, #:lo12:.LANCHOR164]
18251	ldr	x1, [x24, #:lo12:.LANCHOR85]
18252	ldrh	w2, [x19, 4]
18253	strh	w2, [x1, x0]
18254	adrp	x2, .LANCHOR94
18255	add	x0, x2, :lo12:.LANCHOR94
18256	ldrh	w1, [x19]
18257	mov	x19, x0
18258	add	w1, w1, 1
18259	strh	wzr, [x0, 2]
18260	strh	w1, [x2, #:lo12:.LANCHOR94]
18261	mov	w1, 1
18262	strb	wzr, [x0, 6]
18263	strb	w1, [x0, 8]
18264.L2667:
18265	mov	x0, x19
18266	bl	make_superblock
18267	ldrb	w1, [x19, 7]
18268	ldrh	w0, [x19]
18269	cbnz	w1, .L2668
18270	ldr	x1, [x24, #:lo12:.LANCHOR85]
18271	ubfiz	x0, x0, 1, 16
18272	strh	w22, [x1, x0]
18273	ldrh	w0, [x19]
18274	add	w0, w0, 1
18275	strh	w0, [x19]
18276	b	.L2667
18277.L2668:
18278	ldr	w1, [x20, #:lo12:.LANCHOR164]
18279	ubfiz	x0, x0, 1, 16
18280	str	w1, [x19, 12]
18281	add	w1, w1, 1
18282	str	w1, [x20, #:lo12:.LANCHOR164]
18283	ldr	x1, [x24, #:lo12:.LANCHOR85]
18284	ldrh	w2, [x19, 4]
18285	mov	w19, -1
18286	strh	w2, [x1, x0]
18287	adrp	x0, .LANCHOR95
18288	strh	w19, [x0, #:lo12:.LANCHOR95]
18289	bl	FtlFreeSysBlkQueueOut
18290	adrp	x2, .LANCHOR218
18291	add	x1, x2, :lo12:.LANCHOR218
18292	strh	w0, [x2, #:lo12:.LANCHOR218]
18293	ldr	w0, [x25, #:lo12:.LANCHOR231]
18294	strh	w0, [x1, 6]
18295	ldr	w0, [x20, #:lo12:.LANCHOR164]
18296	str	w0, [x1, 8]
18297	add	w0, w0, 1
18298	strh	wzr, [x1, 2]
18299	strh	w19, [x1, 4]
18300	str	w0, [x20, #:lo12:.LANCHOR164]
18301	bl	FtlVpcTblFlush
18302	bl	FtlSysBlkInit
18303	cbnz	w0, .L2647
18304	adrp	x0, .LANCHOR247
18305	mov	w1, 1
18306	str	w1, [x0, #:lo12:.LANCHOR247]
18307.L2647:
18308	mov	w0, 0
18309	ldr	x27, [sp, 80]
18310	ldp	x19, x20, [sp, 16]
18311	ldp	x21, x22, [sp, 32]
18312	ldp	x23, x24, [sp, 48]
18313	ldp	x25, x26, [sp, 64]
18314	ldp	x29, x30, [sp], 96
18315	ret
18316.L2677:
18317	mov	w0, 0
18318	ret
18319	.size	FtlLowFormat, .-FtlLowFormat
18320	.section	.text.Ftl_gc_temp_data_write_back,"ax",@progbits
18321	.align	2
18322	.global	Ftl_gc_temp_data_write_back
18323	.type	Ftl_gc_temp_data_write_back, %function
18324Ftl_gc_temp_data_write_back:
18325	adrp	x0, .LANCHOR78
18326	ldr	w0, [x0, #:lo12:.LANCHOR78]
18327	cbz	w0, .L2681
18328	mov	w0, 0
18329	ret
18330.L2684:
18331	mov	w0, 0
18332.L2680:
18333	ldp	x19, x20, [sp, 16]
18334	ldp	x29, x30, [sp], 32
18335	ret
18336.L2681:
18337	stp	x29, x30, [sp, -32]!
18338	adrp	x0, .LANCHOR16
18339	add	x29, sp, 0
18340	ldrb	w0, [x0, #:lo12:.LANCHOR16]
18341	stp	x19, x20, [sp, 16]
18342	adrp	x19, .LANCHOR105
18343	cbz	w0, .L2683
18344	ldr	w0, [x19, #:lo12:.LANCHOR105]
18345	tbz	x0, 0, .L2683
18346	adrp	x0, .LANCHOR95+4
18347	ldrh	w0, [x0, #:lo12:.LANCHOR95+4]
18348	cbnz	w0, .L2684
18349.L2683:
18350	adrp	x20, .LANCHOR187
18351	ldr	w1, [x19, #:lo12:.LANCHOR105]
18352	mov	w3, 0
18353	mov	w2, 0
18354	ldr	x0, [x20, #:lo12:.LANCHOR187]
18355	add	x19, x19, :lo12:.LANCHOR105
18356	bl	FlashProgPages
18357	mov	w11, 0
18358	mov	w12, 56
18359.L2685:
18360	ldr	w1, [x19]
18361	cmp	w11, w1
18362	bcc	.L2687
18363	ldr	x0, [x20, #:lo12:.LANCHOR187]
18364	bl	FtlGcBufFree
18365	str	wzr, [x19]
18366	adrp	x0, .LANCHOR95+4
18367	ldrh	w0, [x0, #:lo12:.LANCHOR95+4]
18368	cbnz	w0, .L2684
18369	mov	w0, 1
18370	bl	FtlGcFreeTempBlock
18371	b	.L2697
18372.L2687:
18373	umull	x0, w11, w12
18374	ldr	x2, [x20, #:lo12:.LANCHOR187]
18375	add	x1, x2, x0
18376	ldr	w2, [x2, x0]
18377	ldr	x3, [x1, 16]
18378	cmn	w2, #1
18379	bne	.L2686
18380	adrp	x0, .LANCHOR95
18381	adrp	x3, .LANCHOR85
18382	ldrh	w4, [x0, #:lo12:.LANCHOR95]
18383	ldr	x3, [x3, #:lo12:.LANCHOR85]
18384	strh	wzr, [x3, x4, lsl 1]
18385	strh	w2, [x0, #:lo12:.LANCHOR95]
18386	adrp	x0, .LANCHOR141
18387	add	x0, x0, :lo12:.LANCHOR141
18388	ldr	w2, [x0, 96]
18389	add	w2, w2, 1
18390	str	w2, [x0, 96]
18391	ldr	w0, [x1, 4]
18392	lsr	w0, w0, 10
18393	bl	FtlBbmMapBadBlock
18394	bl	FtlBbmTblFlush
18395	bl	FtlGcPageVarInit
18396.L2697:
18397	mov	w0, 1
18398	b	.L2680
18399.L2686:
18400	ldr	w1, [x1, 4]
18401	ldp	w2, w0, [x3, 8]
18402	bl	FtlGcUpdatePage
18403	add	w11, w11, 1
18404	and	w11, w11, 65535
18405	b	.L2685
18406	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
18407	.section	.text.Ftl_get_new_temp_ppa,"ax",@progbits
18408	.align	2
18409	.global	Ftl_get_new_temp_ppa
18410	.type	Ftl_get_new_temp_ppa, %function
18411Ftl_get_new_temp_ppa:
18412	stp	x29, x30, [sp, -32]!
18413	adrp	x0, .LANCHOR95
18414	mov	w2, 65535
18415	add	x29, sp, 0
18416	str	x19, [sp, 16]
18417	mov	x19, x0
18418	ldrh	w3, [x0, #:lo12:.LANCHOR95]
18419	cmp	w3, w2
18420	beq	.L2699
18421	add	x1, x0, :lo12:.LANCHOR95
18422	ldrh	w0, [x1, 4]
18423	cbnz	w0, .L2700
18424.L2699:
18425	bl	FtlCacheWriteBack
18426	mov	w0, 0
18427	bl	FtlGcFreeTempBlock
18428	add	x0, x19, :lo12:.LANCHOR95
18429	strb	wzr, [x0, 8]
18430	bl	allocate_data_superblock
18431	adrp	x0, .LANCHOR111
18432	strh	wzr, [x0, #:lo12:.LANCHOR111]
18433	adrp	x0, .LANCHOR113
18434	strh	wzr, [x0, #:lo12:.LANCHOR113]
18435	bl	l2p_flush
18436	mov	w0, 0
18437	bl	FtlEctTblFlush
18438	bl	FtlVpcTblFlush
18439.L2700:
18440	add	x0, x19, :lo12:.LANCHOR95
18441	ldr	x19, [sp, 16]
18442	ldp	x29, x30, [sp], 32
18443	b	get_new_active_ppa
18444	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
18445	.section	.text.ftl_do_gc,"ax",@progbits
18446	.align	2
18447	.global	ftl_do_gc
18448	.type	ftl_do_gc, %function
18449ftl_do_gc:
18450	adrp	x1, .LANCHOR78
18451	ldr	w1, [x1, #:lo12:.LANCHOR78]
18452	cbnz	w1, .L2762
18453	adrp	x1, .LANCHOR247
18454	ldr	w1, [x1, #:lo12:.LANCHOR247]
18455	cmp	w1, 1
18456	bne	.L2762
18457	stp	x29, x30, [sp, -176]!
18458	add	x29, sp, 0
18459	stp	x21, x22, [sp, 32]
18460	adrp	x21, .LANCHOR176
18461	stp	x19, x20, [sp, 16]
18462	ldr	w1, [x21, #:lo12:.LANCHOR176]
18463	stp	x23, x24, [sp, 48]
18464	stp	x25, x26, [sp, 64]
18465	stp	x27, x28, [sp, 80]
18466	cbnz	w1, .L2764
18467	adrp	x1, .LANCHOR87
18468	ldrh	w1, [x1, #:lo12:.LANCHOR87]
18469	cmp	w1, 47
18470	bls	.L2764
18471	adrp	x5, .LANCHOR116
18472	mov	w2, 65535
18473	ldrh	w8, [x5, #:lo12:.LANCHOR116]
18474	cmp	w8, w2
18475	beq	.L2704
18476	adrp	x7, .LANCHOR115
18477	ldrh	w1, [x7, #:lo12:.LANCHOR115]
18478	cmp	w1, w2
18479	bne	.L2704
18480	adrp	x3, .LANCHOR117
18481	ldrh	w6, [x3, #:lo12:.LANCHOR117]
18482	cmp	w6, w1
18483	beq	.L2704
18484	adrp	x2, .LANCHOR118
18485	ldrh	w4, [x2, #:lo12:.LANCHOR118]
18486	cmp	w4, w1
18487	beq	.L2704
18488	mov	w1, -1
18489	strh	w8, [x7, #:lo12:.LANCHOR115]
18490	strh	w6, [x5, #:lo12:.LANCHOR116]
18491	strh	w4, [x3, #:lo12:.LANCHOR117]
18492	strh	w1, [x2, #:lo12:.LANCHOR118]
18493.L2704:
18494	cbnz	w0, .L2765
18495	adrp	x0, .LANCHOR90
18496	ldrh	w0, [x0, #:lo12:.LANCHOR90]
18497	cmp	w0, 24
18498	bhi	.L2766
18499	adrp	x1, .LANCHOR52
18500	cmp	w0, 16
18501	ldrh	w20, [x1, #:lo12:.LANCHOR52]
18502	bls	.L2707
18503	lsr	w20, w20, 5
18504.L2706:
18505	adrp	x2, .LANCHOR181
18506	mov	x3, x2
18507	ldrh	w1, [x2, #:lo12:.LANCHOR181]
18508	cmp	w1, w0
18509	bcs	.L2710
18510	adrp	x0, .LANCHOR95
18511	mov	w1, 65535
18512	ldrh	w0, [x0, #:lo12:.LANCHOR95]
18513	cmp	w0, w1
18514	bne	.L2711
18515	adrp	x1, .LANCHOR115
18516	ldrh	w1, [x1, #:lo12:.LANCHOR115]
18517	cmp	w1, w0
18518	bne	.L2711
18519	adrp	x0, .LANCHOR248
18520	ldrh	w0, [x0, #:lo12:.LANCHOR248]
18521	cbnz	w0, .L2712
18522	adrp	x1, .LANCHOR74
18523	adrp	x4, .LANCHOR102
18524	ldr	w1, [x1, #:lo12:.LANCHOR74]
18525	ldr	w4, [x4, #:lo12:.LANCHOR102]
18526	add	w1, w1, w1, lsl 1
18527	cmp	w4, w1, lsr 2
18528	bcs	.L2713
18529.L2712:
18530	adrp	x1, .LANCHOR232
18531	ldrh	w1, [x1, #:lo12:.LANCHOR232]
18532	add	w1, w1, w1, lsl 1
18533	asr	w1, w1, 2
18534	strh	w1, [x3, #:lo12:.LANCHOR181]
18535.L2714:
18536	adrp	x1, .LANCHOR177
18537	str	wzr, [x1, #:lo12:.LANCHOR177]
18538.L2702:
18539	ldp	x19, x20, [sp, 16]
18540	ldp	x21, x22, [sp, 32]
18541	ldp	x23, x24, [sp, 48]
18542	ldp	x25, x26, [sp, 64]
18543	ldp	x27, x28, [sp, 80]
18544	ldp	x29, x30, [sp], 176
18545	ret
18546.L2707:
18547	cmp	w0, 12
18548	bls	.L2708
18549	lsr	w20, w20, 4
18550	b	.L2706
18551.L2708:
18552	cmp	w0, 8
18553	bls	.L2706
18554	lsr	w20, w20, 2
18555	b	.L2706
18556.L2766:
18557	mov	w20, 1
18558	b	.L2706
18559.L2713:
18560	mov	w1, 18
18561	strh	w1, [x2, #:lo12:.LANCHOR181]
18562	b	.L2714
18563.L2711:
18564	adrp	x0, .LANCHOR232
18565	ldrh	w0, [x0, #:lo12:.LANCHOR232]
18566	add	w0, w0, w0, lsl 1
18567	asr	w0, w0, 2
18568	strh	w0, [x3, #:lo12:.LANCHOR181]
18569.L2710:
18570	adrp	x0, .LANCHOR119
18571	ldrh	w0, [x0, #:lo12:.LANCHOR119]
18572	cbz	w0, .L2705
18573	add	w20, w20, 32
18574	and	w20, w20, 65535
18575.L2705:
18576	adrp	x19, .LANCHOR213
18577	mov	w0, 65535
18578	ldrh	w2, [x19, #:lo12:.LANCHOR213]
18579	cmp	w2, w0
18580	bne	.L2717
18581	adrp	x0, .LANCHOR115
18582	ldrh	w1, [x0, #:lo12:.LANCHOR115]
18583	cmp	w1, w2
18584	beq	.L2718
18585	adrp	x2, .LANCHOR85
18586	ubfiz	x1, x1, 1, 16
18587	ldr	x2, [x2, #:lo12:.LANCHOR85]
18588	ldrh	w1, [x2, x1]
18589	cbnz	w1, .L2719
18590	mov	w1, -1
18591	strh	w1, [x0, #:lo12:.LANCHOR115]
18592.L2719:
18593	ldrh	w1, [x0, #:lo12:.LANCHOR115]
18594	strh	w1, [x19, #:lo12:.LANCHOR213]
18595	mov	w1, -1
18596	strh	w1, [x0, #:lo12:.LANCHOR115]
18597.L2718:
18598	add	x0, x19, :lo12:.LANCHOR213
18599	mov	w1, 65535
18600	strb	wzr, [x0, 8]
18601	ldrh	w0, [x19, #:lo12:.LANCHOR213]
18602	cmp	w0, w1
18603	beq	.L2717
18604	bl	IsBlkInGcList
18605	cbz	w0, .L2721
18606	mov	w0, -1
18607	strh	w0, [x19, #:lo12:.LANCHOR213]
18608.L2721:
18609	adrp	x0, .LANCHOR16
18610	ldrb	w0, [x0, #:lo12:.LANCHOR16]
18611	cbz	w0, .L2722
18612	ldrh	w0, [x19, #:lo12:.LANCHOR213]
18613	add	x3, x19, :lo12:.LANCHOR213
18614	bl	ftl_get_blk_mode
18615	strb	w0, [x3, 8]
18616.L2722:
18617	ldrh	w1, [x19, #:lo12:.LANCHOR213]
18618	mov	w0, 65535
18619	add	x22, x19, :lo12:.LANCHOR213
18620	cmp	w1, w0
18621	beq	.L2717
18622	mov	x0, x22
18623	bl	make_superblock
18624	adrp	x0, .LANCHOR249
18625	ldrh	w1, [x19, #:lo12:.LANCHOR213]
18626	strh	wzr, [x22, 2]
18627	strh	wzr, [x0, #:lo12:.LANCHOR249]
18628	adrp	x0, .LANCHOR85
18629	strb	wzr, [x22, 6]
18630	ldr	x0, [x0, #:lo12:.LANCHOR85]
18631	ldrh	w1, [x0, x1, lsl 1]
18632	adrp	x0, .LANCHOR250
18633	strh	w1, [x0, #:lo12:.LANCHOR250]
18634.L2717:
18635	adrp	x1, .LANCHOR93
18636	ldrh	w0, [x19, #:lo12:.LANCHOR213]
18637	str	x1, [x29, 128]
18638	ldrh	w2, [x1, #:lo12:.LANCHOR93]
18639	cmp	w2, w0
18640	beq	.L2723
18641	adrp	x1, .LANCHOR94
18642	ldrh	w1, [x1, #:lo12:.LANCHOR94]
18643	cmp	w1, w0
18644	beq	.L2723
18645	adrp	x1, .LANCHOR95
18646	ldrh	w1, [x1, #:lo12:.LANCHOR95]
18647	cmp	w1, w0
18648	bne	.L2724
18649.L2723:
18650	mov	w0, -1
18651	strh	w0, [x19, #:lo12:.LANCHOR213]
18652.L2724:
18653	adrp	x25, .LANCHOR183
18654	add	x26, x25, :lo12:.LANCHOR183
18655.L2760:
18656	ldrh	w1, [x19, #:lo12:.LANCHOR213]
18657	mov	w0, 65535
18658	cmp	w1, w0
18659	bne	.L2725
18660	adrp	x0, .LANCHOR177
18661	adrp	x22, .LANCHOR52
18662	add	x22, x22, :lo12:.LANCHOR52
18663	str	wzr, [x0, #:lo12:.LANCHOR177]
18664.L2726:
18665	ldrh	w5, [x25, #:lo12:.LANCHOR183]
18666	add	x7, x25, :lo12:.LANCHOR183
18667	mov	w0, w5
18668	bl	List_get_gc_head_node
18669	and	w6, w0, 65535
18670	strh	w6, [x19, #:lo12:.LANCHOR213]
18671	mov	w0, 65535
18672	cmp	w6, w0
18673	bne	.L2727
18674	strh	wzr, [x7]
18675	mov	w0, 8
18676	b	.L2702
18677.L2765:
18678	mov	w20, 1
18679	b	.L2705
18680.L2727:
18681	mov	w0, w6
18682	bl	IsBlkInGcList
18683	add	w5, w5, 1
18684	cbz	w0, .L2728
18685	strh	w5, [x25, #:lo12:.LANCHOR183]
18686	b	.L2726
18687.L2728:
18688	adrp	x23, .LANCHOR85
18689	adrp	x4, .LANCHOR38
18690	ldrh	w0, [x22]
18691	ubfiz	x1, x6, 1, 16
18692	ldr	x2, [x23, #:lo12:.LANCHOR85]
18693	and	w5, w5, 65535
18694	ldrh	w4, [x4, #:lo12:.LANCHOR38]
18695	strh	w5, [x25, #:lo12:.LANCHOR183]
18696	ldrh	w3, [x2, x1]
18697	mul	w0, w0, w4
18698	cmp	w3, w0, asr 1
18699	bgt	.L2730
18700	cmp	w5, 48
18701	bls	.L2731
18702	cmp	w3, 8
18703	bls	.L2731
18704	adrp	x3, .LANCHOR111
18705	ldrh	w3, [x3, #:lo12:.LANCHOR111]
18706	cmp	w3, 35
18707	bhi	.L2731
18708.L2730:
18709	strh	wzr, [x26]
18710.L2731:
18711	ldrh	w1, [x2, x1]
18712	cmp	w0, w1
18713	bgt	.L2732
18714	ldrh	w0, [x26]
18715	cmp	w0, 3
18716	bhi	.L2732
18717	mov	w0, -1
18718	strh	wzr, [x26]
18719	strh	w0, [x19, #:lo12:.LANCHOR213]
18720.L2804:
18721	adrp	x0, .LANCHOR248
18722	ldrh	w0, [x0, #:lo12:.LANCHOR248]
18723	b	.L2702
18724.L2732:
18725	cbnz	w1, .L2733
18726	mov	w0, -1
18727	bl	decrement_vpc_count
18728	ldrh	w0, [x26]
18729	add	w0, w0, 1
18730	strh	w0, [x26]
18731	b	.L2726
18732.L2733:
18733	adrp	x0, .LANCHOR16
18734	add	x3, x19, :lo12:.LANCHOR213
18735	ldrb	w0, [x0, #:lo12:.LANCHOR16]
18736	strb	wzr, [x3, 8]
18737	cbz	w0, .L2734
18738	mov	w0, w6
18739	bl	ftl_get_blk_mode
18740	strb	w0, [x3, 8]
18741.L2734:
18742	ldr	x0, [x29, 128]
18743	ldrh	w0, [x0, #:lo12:.LANCHOR93]
18744	cmp	w0, w6
18745	bne	.L2735
18746	mov	w2, 1069
18747	adrp	x1, .LANCHOR251
18748	adrp	x0, .LC5
18749	add	x1, x1, :lo12:.LANCHOR251
18750	add	x0, x0, :lo12:.LC5
18751	bl	printf
18752	adrp	x1, .LC6
18753	adrp	x0, .LC7
18754	add	x1, x1, :lo12:.LC6
18755	add	x0, x0, :lo12:.LC7
18756	bl	printf
18757.L2735:
18758	adrp	x0, .LANCHOR94
18759	ldrh	w1, [x19, #:lo12:.LANCHOR213]
18760	ldrh	w0, [x0, #:lo12:.LANCHOR94]
18761	cmp	w1, w0
18762	bne	.L2736
18763	mov	w2, 1070
18764	adrp	x1, .LANCHOR251
18765	adrp	x0, .LC5
18766	add	x1, x1, :lo12:.LANCHOR251
18767	add	x0, x0, :lo12:.LC5
18768	bl	printf
18769	adrp	x1, .LC6
18770	adrp	x0, .LC7
18771	add	x1, x1, :lo12:.LC6
18772	add	x0, x0, :lo12:.LC7
18773	bl	printf
18774.L2736:
18775	adrp	x0, .LANCHOR95
18776	ldrh	w1, [x19, #:lo12:.LANCHOR213]
18777	ldrh	w0, [x0, #:lo12:.LANCHOR95]
18778	cmp	w1, w0
18779	bne	.L2737
18780	mov	w2, 1071
18781	adrp	x1, .LANCHOR251
18782	adrp	x0, .LC5
18783	add	x1, x1, :lo12:.LANCHOR251
18784	add	x0, x0, :lo12:.LC5
18785	bl	printf
18786	adrp	x1, .LC6
18787	adrp	x0, .LC7
18788	add	x1, x1, :lo12:.LC6
18789	add	x0, x0, :lo12:.LC7
18790	bl	printf
18791.L2737:
18792	add	x22, x19, :lo12:.LANCHOR213
18793	mov	x0, x22
18794	bl	make_superblock
18795	adrp	x0, .LANCHOR249
18796	ldrh	w1, [x19, #:lo12:.LANCHOR213]
18797	strh	wzr, [x0, #:lo12:.LANCHOR249]
18798	ldr	x0, [x23, #:lo12:.LANCHOR85]
18799	ldrh	w1, [x0, x1, lsl 1]
18800	adrp	x0, .LANCHOR250
18801	strh	wzr, [x22, 2]
18802	strh	w1, [x0, #:lo12:.LANCHOR250]
18803	strb	wzr, [x22, 6]
18804.L2725:
18805	adrp	x1, .LANCHOR52
18806	mov	w0, 1
18807	str	w0, [x21, #:lo12:.LANCHOR176]
18808	ldrh	w0, [x1, #:lo12:.LANCHOR52]
18809	str	w0, [x29, 156]
18810	adrp	x0, .LANCHOR16
18811	str	x1, [x29, 120]
18812	str	x0, [x29, 112]
18813	ldrb	w2, [x0, #:lo12:.LANCHOR16]
18814	cbz	w2, .L2738
18815	add	x0, x19, :lo12:.LANCHOR213
18816	ldrb	w0, [x0, 8]
18817	cmp	w0, 1
18818	bne	.L2738
18819	adrp	x0, .LANCHOR53
18820	ldrh	w0, [x0, #:lo12:.LANCHOR53]
18821	str	w0, [x29, 156]
18822.L2738:
18823	add	x0, x19, :lo12:.LANCHOR213
18824	ldr	w2, [x29, 156]
18825	ldrh	w0, [x0, 2]
18826	add	w1, w0, w20
18827	cmp	w1, w2
18828	ble	.L2739
18829	sub	w20, w2, w0
18830	and	w20, w20, 65535
18831.L2739:
18832	adrp	x0, .LANCHOR249
18833	mov	w28, 0
18834	add	x0, x0, :lo12:.LANCHOR249
18835	str	x0, [x29, 144]
18836.L2740:
18837	cmp	w20, w28, uxth
18838	bls	.L2748
18839	add	x1, x19, :lo12:.LANCHOR213
18840	adrp	x0, .LANCHOR38
18841	adrp	x23, .LANCHOR109
18842	add	x1, x1, 16
18843	ldrh	w7, [x0, #:lo12:.LANCHOR38]
18844	mov	w22, 0
18845	ldrh	w4, [x1, -14]
18846	mov	w2, 0
18847	ldr	x0, [x23, #:lo12:.LANCHOR109]
18848	mov	w6, 65535
18849	add	w4, w4, w28
18850	mov	w5, 56
18851	b	.L2749
18852.L2742:
18853	ldrh	w3, [x1]
18854	cmp	w3, w6
18855	beq	.L2741
18856	umaddl	x8, w22, w5, x0
18857	add	w22, w22, 1
18858	and	w22, w22, 65535
18859	orr	w3, w4, w3, lsl 10
18860	str	w3, [x8, 4]
18861.L2741:
18862	add	w2, w2, 1
18863	add	x1, x1, 2
18864	and	w2, w2, 65535
18865.L2749:
18866	cmp	w2, w7
18867	bne	.L2742
18868	add	x1, x19, :lo12:.LANCHOR213
18869	adrp	x24, .LANCHOR105
18870	add	x24, x24, :lo12:.LANCHOR105
18871	ldrb	w2, [x1, 8]
18872	mov	w1, w22
18873	bl	FlashReadPages
18874	mov	w0, 56
18875	umull	x0, w22, w0
18876	mov	x22, 0
18877	str	x0, [x29, 136]
18878.L2743:
18879	ldr	x0, [x29, 136]
18880	cmp	x0, x22
18881	bne	.L2747
18882	add	w28, w28, 1
18883	b	.L2740
18884.L2747:
18885	ldr	x0, [x23, #:lo12:.LANCHOR109]
18886	add	x1, x0, x22
18887	ldr	w0, [x0, x22]
18888	cmn	w0, #1
18889	beq	.L2744
18890	ldr	x27, [x1, 16]
18891	mov	w0, 61589
18892	ldrh	w1, [x27]
18893	cmp	w1, w0
18894	bne	.L2744
18895	ldr	w4, [x27, 8]
18896	cmn	w4, #1
18897	bne	.L2745
18898	mov	w2, 1119
18899	str	w4, [x29, 104]
18900	adrp	x1, .LANCHOR251
18901	adrp	x0, .LC5
18902	add	x1, x1, :lo12:.LANCHOR251
18903	add	x0, x0, :lo12:.LC5
18904	bl	printf
18905	adrp	x1, .LC6
18906	adrp	x0, .LC7
18907	add	x1, x1, :lo12:.LC6
18908	add	x0, x0, :lo12:.LC7
18909	bl	printf
18910	ldr	w4, [x29, 104]
18911.L2745:
18912	mov	w2, 0
18913	add	x1, x29, 168
18914	mov	w0, w4
18915	bl	log2phys
18916	ldr	x0, [x23, #:lo12:.LANCHOR109]
18917	ldr	w1, [x29, 168]
18918	add	x0, x0, x22
18919	and	w1, w1, 2147483647
18920	ldr	w2, [x0, 4]
18921	cmp	w1, w2
18922	bne	.L2744
18923	ldr	x1, [x29, 144]
18924	adrp	x4, .LANCHOR187
18925	ldr	x2, [x29, 144]
18926	ldr	x5, [x4, #:lo12:.LANCHOR187]
18927	ldr	w0, [x0, 24]
18928	ldrh	w1, [x1]
18929	add	w1, w1, 1
18930	strh	w1, [x2]
18931	ldr	w2, [x24]
18932	mov	w1, 56
18933	str	w1, [x29, 152]
18934	nop // between mem op and mult-accumulate
18935	umaddl	x2, w2, w1, x5
18936	stp	x4, x2, [x29, 96]
18937	str	w0, [x2, 24]
18938	bl	Ftl_get_new_temp_ppa
18939	ldp	x4, x2, [x29, 96]
18940	ldr	w1, [x29, 152]
18941	str	w0, [x2, 4]
18942	ldr	x0, [x4, #:lo12:.LANCHOR187]
18943	ldr	w2, [x24]
18944	umaddl	x1, w2, w1, x0
18945	ldr	x0, [x23, #:lo12:.LANCHOR109]
18946	add	w2, w2, 1
18947	add	x0, x0, x22
18948	ldr	x4, [x0, 8]
18949	str	x4, [x1, 8]
18950	ldr	x4, [x0, 16]
18951	str	x4, [x1, 16]
18952	ldr	w1, [x29, 168]
18953	str	w1, [x27, 12]
18954	adrp	x1, .LANCHOR95
18955	add	x12, x1, :lo12:.LANCHOR95
18956	ldrh	w1, [x1, #:lo12:.LANCHOR95]
18957	strh	w1, [x27, 2]
18958	adrp	x1, .LANCHOR165
18959	str	w2, [x24]
18960	ldr	w1, [x1, #:lo12:.LANCHOR165]
18961	str	w1, [x27, 4]
18962	mov	w1, 1
18963	bl	FtlGcBufAlloc
18964	ldr	x0, [x29, 112]
18965	ldrb	w0, [x0, #:lo12:.LANCHOR16]
18966	cbnz	w0, .L2746
18967	ldrb	w1, [x12, 7]
18968	ldr	w0, [x24]
18969	cmp	w1, w0
18970	beq	.L2746
18971	ldrh	w0, [x12, 4]
18972	cbnz	w0, .L2744
18973.L2746:
18974	bl	Ftl_gc_temp_data_write_back
18975	cbz	w0, .L2744
18976	add	x0, x19, :lo12:.LANCHOR213
18977	mov	w1, -1
18978	str	wzr, [x21, #:lo12:.LANCHOR176]
18979	strh	w1, [x19, #:lo12:.LANCHOR213]
18980	strh	wzr, [x0, 2]
18981	b	.L2804
18982.L2744:
18983	add	x22, x22, 56
18984	b	.L2743
18985.L2748:
18986	add	x1, x19, :lo12:.LANCHOR213
18987	ldrh	w0, [x1, 2]
18988	add	w20, w20, w0
18989	ldr	w0, [x29, 156]
18990	and	w20, w20, 65535
18991	strh	w20, [x1, 2]
18992	cmp	w0, w20
18993	bhi	.L2750
18994	adrp	x0, .LANCHOR105
18995	ldr	w0, [x0, #:lo12:.LANCHOR105]
18996	cbz	w0, .L2751
18997	bl	Ftl_gc_temp_data_write_back
18998	cbz	w0, .L2751
18999	str	wzr, [x21, #:lo12:.LANCHOR176]
19000	b	.L2804
19001.L2751:
19002	adrp	x0, .LANCHOR249
19003	ldrh	w0, [x0, #:lo12:.LANCHOR249]
19004	cbnz	w0, .L2752
19005	adrp	x22, .LANCHOR85
19006	ldrh	w1, [x19, #:lo12:.LANCHOR213]
19007	ldr	x0, [x22, #:lo12:.LANCHOR85]
19008	ldrh	w0, [x0, x1, lsl 1]
19009	cbz	w0, .L2752
19010	adrp	x23, .LANCHOR74
19011	add	x24, x23, :lo12:.LANCHOR74
19012	mov	w20, 0
19013.L2753:
19014	ldr	w0, [x24]
19015	cmp	w20, w0
19016	bcs	.L2758
19017	mov	w2, 0
19018	add	x1, x29, 172
19019	mov	w0, w20
19020	bl	log2phys
19021	ldr	w0, [x29, 172]
19022	cmn	w0, #1
19023	beq	.L2754
19024	lsr	w0, w0, 10
19025	bl	P2V_block_in_plane
19026	ldrh	w1, [x19, #:lo12:.LANCHOR213]
19027	cmp	w1, w0, uxth
19028	bne	.L2754
19029.L2758:
19030	ldr	w0, [x23, #:lo12:.LANCHOR74]
19031	cmp	w20, w0
19032	bcc	.L2752
19033	ldrh	w1, [x19, #:lo12:.LANCHOR213]
19034	ldr	x0, [x22, #:lo12:.LANCHOR85]
19035	strh	wzr, [x0, x1, lsl 1]
19036	ldrh	w0, [x19, #:lo12:.LANCHOR213]
19037	bl	update_vpc_list
19038	bl	FtlCacheWriteBack
19039	bl	l2p_flush
19040	bl	FtlVpcTblFlush
19041.L2752:
19042	mov	w0, -1
19043	strh	w0, [x19, #:lo12:.LANCHOR213]
19044.L2750:
19045	adrp	x0, .LANCHOR90
19046	ldrh	w0, [x0, #:lo12:.LANCHOR90]
19047	cmp	w0, 2
19048	bhi	.L2759
19049	ldr	x0, [x29, 120]
19050	ldrh	w20, [x0, #:lo12:.LANCHOR52]
19051	b	.L2760
19052.L2754:
19053	add	w20, w20, 1
19054	b	.L2753
19055.L2759:
19056	str	wzr, [x21, #:lo12:.LANCHOR176]
19057	add	w0, w0, 1
19058	b	.L2702
19059.L2762:
19060	mov	w0, 0
19061	ret
19062.L2764:
19063	mov	w0, 0
19064	b	.L2702
19065	.size	ftl_do_gc, .-ftl_do_gc
19066	.section	.text.FtlCacheWriteBack,"ax",@progbits
19067	.align	2
19068	.global	FtlCacheWriteBack
19069	.type	FtlCacheWriteBack, %function
19070FtlCacheWriteBack:
19071	stp	x29, x30, [sp, -128]!
19072	add	x29, sp, 0
19073	stp	x25, x26, [sp, 64]
19074	adrp	x25, .LANCHOR78
19075	stp	x23, x24, [sp, 48]
19076	ldr	w23, [x25, #:lo12:.LANCHOR78]
19077	stp	x19, x20, [sp, 16]
19078	stp	x21, x22, [sp, 32]
19079	stp	x27, x28, [sp, 80]
19080	cbnz	w23, .L2807
19081	adrp	x22, .LANCHOR72
19082	ldr	w1, [x22, #:lo12:.LANCHOR72]
19083	cbz	w1, .L2807
19084	adrp	x0, .LANCHOR252
19085	ldr	x19, [x0, #:lo12:.LANCHOR252]
19086	adrp	x0, .LANCHOR16
19087	ldrb	w0, [x0, #:lo12:.LANCHOR16]
19088	cbz	w0, .L2832
19089	ldrb	w0, [x19, 8]
19090	cmp	w0, 1
19091	cset	w24, eq
19092.L2809:
19093	adrp	x20, .LANCHOR73
19094	ldrb	w3, [x19, 9]
19095	adrp	x26, .LC76
19096	add	x27, x22, :lo12:.LANCHOR72
19097	ldr	x0, [x20, #:lo12:.LANCHOR73]
19098	add	x26, x26, :lo12:.LC76
19099	mov	w21, 0
19100	mov	w28, 56
19101	mov	w2, w24
19102	bl	FlashProgPages
19103.L2810:
19104	ldr	w0, [x27]
19105	cmp	w21, w0
19106	bcc	.L2817
19107.L2829:
19108	str	wzr, [x22, #:lo12:.LANCHOR72]
19109.L2807:
19110	ldp	x19, x20, [sp, 16]
19111	mov	w0, 0
19112	ldp	x21, x22, [sp, 32]
19113	ldp	x23, x24, [sp, 48]
19114	ldp	x25, x26, [sp, 64]
19115	ldp	x27, x28, [sp, 80]
19116	ldp	x29, x30, [sp], 128
19117	ret
19118.L2832:
19119	mov	w24, 0
19120	b	.L2809
19121.L2817:
19122	umull	x3, w21, w28
19123	ldr	x0, [x20, #:lo12:.LANCHOR73]
19124	add	x4, x0, x3
19125	ldr	w0, [x0, x3]
19126	cmn	w0, #1
19127	bne	.L2811
19128	adrp	x27, .LANCHOR52
19129	adrp	x26, .LANCHOR141
19130	add	x27, x27, :lo12:.LANCHOR52
19131	add	x26, x26, :lo12:.LANCHOR141
19132.L2812:
19133	ldr	w0, [x22, #:lo12:.LANCHOR72]
19134	cmp	w23, w0
19135	bcc	.L2827
19136	adrp	x19, .LANCHOR119
19137	add	x19, x19, :lo12:.LANCHOR119
19138	mov	w20, 16386
19139.L2830:
19140	ldrh	w0, [x19]
19141	cbz	w0, .L2829
19142	mov	w1, 1
19143	mov	w0, w1
19144	bl	ftl_do_gc
19145	subs	w20, w20, #1
19146	bne	.L2830
19147	b	.L2829
19148.L2811:
19149	ldr	w0, [x4, 4]
19150	cbnz	w24, .L2813
19151.L2846:
19152	str	w0, [x29, 124]
19153	mov	w2, 1
19154	ldr	w0, [x4, 24]
19155	add	x1, x29, 124
19156	str	x3, [x29, 104]
19157	bl	log2phys
19158	ldr	x0, [x20, #:lo12:.LANCHOR73]
19159	ldr	x3, [x29, 104]
19160	add	x0, x0, x3
19161	ldr	x0, [x0, 16]
19162	ldr	w0, [x0, 12]
19163	cmn	w0, #1
19164	beq	.L2815
19165	lsr	w0, w0, 10
19166	bl	P2V_block_in_plane
19167	adrp	x2, .LANCHOR85
19168	and	w1, w0, 65535
19169	ubfiz	x0, x1, 1, 16
19170	mov	w3, w1
19171	ldr	x2, [x2, #:lo12:.LANCHOR85]
19172	ldrh	w0, [x2, x0]
19173	cbnz	w0, .L2816
19174	mov	w2, 0
19175	mov	x0, x26
19176	str	w1, [x29, 104]
19177	bl	printf
19178	ldr	w3, [x29, 104]
19179.L2816:
19180	mov	w0, w3
19181	bl	decrement_vpc_count
19182.L2815:
19183	add	w21, w21, 1
19184	b	.L2810
19185.L2813:
19186	orr	w0, w0, -2147483648
19187	b	.L2846
19188.L2827:
19189	mov	w21, 56
19190	ldr	x0, [x20, #:lo12:.LANCHOR73]
19191	mov	w1, -1
19192	adrp	x28, .LANCHOR85
19193	umull	x21, w23, w21
19194	str	w1, [x0, x21]
19195.L2818:
19196	ldr	x0, [x20, #:lo12:.LANCHOR73]
19197	add	x3, x0, x21
19198	ldr	w0, [x0, x21]
19199	cmn	w0, #1
19200	ldr	w0, [x3, 4]
19201	beq	.L2822
19202	cbnz	w24, .L2823
19203.L2847:
19204	str	w0, [x29, 124]
19205	mov	w2, 1
19206	ldr	w0, [x3, 24]
19207	add	x1, x29, 124
19208	bl	log2phys
19209	ldr	x0, [x20, #:lo12:.LANCHOR73]
19210	add	x21, x0, x21
19211	ldr	x0, [x21, 16]
19212	ldr	w0, [x0, 12]
19213	cmn	w0, #1
19214	beq	.L2825
19215	lsr	w0, w0, 10
19216	bl	P2V_block_in_plane
19217	adrp	x2, .LANCHOR85
19218	and	w1, w0, 65535
19219	ubfiz	x0, x1, 1, 16
19220	mov	w21, w1
19221	ldr	x2, [x2, #:lo12:.LANCHOR85]
19222	ldrh	w0, [x2, x0]
19223	cbnz	w0, .L2826
19224	adrp	x0, .LC76
19225	mov	w2, 0
19226	add	x0, x0, :lo12:.LC76
19227	bl	printf
19228.L2826:
19229	mov	w0, w21
19230	bl	decrement_vpc_count
19231.L2825:
19232	add	w23, w23, 1
19233	b	.L2812
19234.L2822:
19235	lsr	w0, w0, 10
19236	bl	P2V_block_in_plane
19237	ldrh	w1, [x19]
19238	cmp	w1, w0, uxth
19239	bne	.L2819
19240	ldr	x2, [x28, #:lo12:.LANCHOR85]
19241	ubfiz	x1, x1, 1, 16
19242	ldrh	w3, [x19, 4]
19243	ldrh	w0, [x2, x1]
19244	sub	w0, w0, w3
19245	strh	w0, [x2, x1]
19246	strb	wzr, [x19, 6]
19247	ldrh	w0, [x27]
19248	strh	w0, [x19, 2]
19249	strh	wzr, [x19, 4]
19250.L2819:
19251	ldrh	w0, [x19, 4]
19252	cbnz	w0, .L2820
19253	mov	x0, x19
19254	bl	allocate_new_data_superblock
19255.L2820:
19256	ldr	w0, [x26, 96]
19257	add	w0, w0, 1
19258	str	w0, [x26, 96]
19259	ldr	x0, [x20, #:lo12:.LANCHOR73]
19260	add	x0, x0, x21
19261	ldr	w0, [x0, 4]
19262	lsr	w0, w0, 10
19263	bl	FtlGcMarkBadPhyBlk
19264	mov	x0, x19
19265	bl	get_new_active_ppa
19266	ldr	x1, [x20, #:lo12:.LANCHOR73]
19267	mov	w2, w0
19268	str	w2, [x29, 124]
19269	add	x0, x1, x21
19270	mov	w1, 1
19271	str	w2, [x0, 4]
19272	mov	w2, w24
19273	ldrb	w3, [x19, 9]
19274	bl	FlashProgPages
19275	ldr	x0, [x20, #:lo12:.LANCHOR73]
19276	ldr	w0, [x0, x21]
19277	cmn	w0, #1
19278	bne	.L2821
19279	mov	w0, 1
19280	str	w0, [x25, #:lo12:.LANCHOR78]
19281.L2821:
19282	ldr	w0, [x25, #:lo12:.LANCHOR78]
19283	cbz	w0, .L2818
19284	b	.L2807
19285.L2823:
19286	orr	w0, w0, -2147483648
19287	b	.L2847
19288	.size	FtlCacheWriteBack, .-FtlCacheWriteBack
19289	.section	.text.FtlSysFlush,"ax",@progbits
19290	.align	2
19291	.global	FtlSysFlush
19292	.type	FtlSysFlush, %function
19293FtlSysFlush:
19294	adrp	x0, .LANCHOR78
19295	ldr	w0, [x0, #:lo12:.LANCHOR78]
19296	cbnz	w0, .L2851
19297	stp	x29, x30, [sp, -32]!
19298	adrp	x0, .LANCHOR247
19299	add	x29, sp, 0
19300	str	x19, [sp, 16]
19301	ldr	w19, [x0, #:lo12:.LANCHOR247]
19302	cmp	w19, 1
19303	bne	.L2849
19304	bl	FtlCacheWriteBack
19305	bl	l2p_flush
19306	mov	w0, w19
19307	bl	FtlEctTblFlush
19308	bl	FtlVpcTblFlush
19309.L2849:
19310	mov	w0, 0
19311	ldr	x19, [sp, 16]
19312	ldp	x29, x30, [sp], 32
19313	ret
19314.L2851:
19315	mov	w0, 0
19316	ret
19317	.size	FtlSysFlush, .-FtlSysFlush
19318	.section	.text.FtlDeInit,"ax",@progbits
19319	.align	2
19320	.global	FtlDeInit
19321	.type	FtlDeInit, %function
19322FtlDeInit:
19323	adrp	x0, .LANCHOR247
19324	ldr	w0, [x0, #:lo12:.LANCHOR247]
19325	cmp	w0, 1
19326	bne	.L2857
19327	stp	x29, x30, [sp, -16]!
19328	add	x29, sp, 0
19329	bl	FtlSysFlush
19330	mov	w0, 0
19331	ldp	x29, x30, [sp], 16
19332	ret
19333.L2857:
19334	mov	w0, 0
19335	ret
19336	.size	FtlDeInit, .-FtlDeInit
19337	.section	.text.ftl_deinit,"ax",@progbits
19338	.align	2
19339	.global	ftl_deinit
19340	.type	ftl_deinit, %function
19341ftl_deinit:
19342	stp	x29, x30, [sp, -16]!
19343	add	x29, sp, 0
19344	bl	ftl_flash_de_init
19345	bl	FtlDeInit
19346	ldp	x29, x30, [sp], 16
19347	b	ftl_flash_de_init
19348	.size	ftl_deinit, .-ftl_deinit
19349	.section	.text.rk_ftl_de_init,"ax",@progbits
19350	.align	2
19351	.global	rk_ftl_de_init
19352	.type	rk_ftl_de_init, %function
19353rk_ftl_de_init:
19354	stp	x29, x30, [sp, -16]!
19355	add	x29, sp, 0
19356	bl	FlashDeInit
19357	bl	FtlDeInit
19358	ldp	x29, x30, [sp], 16
19359	b	FlashDeInit
19360	.size	rk_ftl_de_init, .-rk_ftl_de_init
19361	.section	.text.ftl_cache_flush,"ax",@progbits
19362	.align	2
19363	.global	ftl_cache_flush
19364	.type	ftl_cache_flush, %function
19365ftl_cache_flush:
19366	b	FtlCacheWriteBack
19367	.size	ftl_cache_flush, .-ftl_cache_flush
19368	.section	.text.ftl_discard,"ax",@progbits
19369	.align	2
19370	.global	ftl_discard
19371	.type	ftl_discard, %function
19372ftl_discard:
19373	adrp	x0, .LANCHOR68
19374	ldr	w0, [x0, #:lo12:.LANCHOR68]
19375	cmp	w0, w1
19376	bls	.L2873
19377	stp	x29, x30, [sp, -80]!
19378	cmp	w0, w2
19379	add	x29, sp, 0
19380	stp	x19, x20, [sp, 16]
19381	mov	w19, w2
19382	stp	x21, x22, [sp, 32]
19383	str	x23, [sp, 48]
19384	bcc	.L2875
19385	mov	w20, w1
19386	add	w1, w1, w2
19387	cmp	w0, w1
19388	bcc	.L2875
19389	cmp	w2, 31
19390	bhi	.L2867
19391.L2886:
19392	mov	w0, 0
19393.L2865:
19394	ldp	x19, x20, [sp, 16]
19395	ldp	x21, x22, [sp, 32]
19396	ldr	x23, [sp, 48]
19397	ldp	x29, x30, [sp], 80
19398	ret
19399.L2867:
19400	adrp	x0, .LANCHOR78
19401	ldr	w0, [x0, #:lo12:.LANCHOR78]
19402	cbnz	w0, .L2886
19403	adrp	x22, .LANCHOR55
19404	bl	FtlCacheWriteBack
19405	ldrh	w0, [x22, #:lo12:.LANCHOR55]
19406	udiv	w21, w20, w0
19407	msub	w20, w0, w21, w20
19408	ands	w20, w20, 65535
19409	beq	.L2869
19410	sub	w20, w0, w20
19411	add	w21, w21, 1
19412	cmp	w20, w19
19413	csel	w20, w20, w19, ls
19414	sub	w19, w19, w20, uxth
19415.L2869:
19416	adrp	x20, .LANCHOR253
19417	adrp	x23, .LANCHOR168
19418	add	x20, x20, :lo12:.LANCHOR253
19419	add	x23, x23, :lo12:.LANCHOR168
19420	mov	w0, -1
19421	str	w0, [x29, 76]
19422.L2870:
19423	ldrh	w0, [x22, #:lo12:.LANCHOR55]
19424	cmp	w19, w0
19425	bcs	.L2872
19426	adrp	x0, .LANCHOR253
19427	ldr	w1, [x0, #:lo12:.LANCHOR253]
19428	cmp	w1, 32
19429	bls	.L2886
19430	str	wzr, [x0, #:lo12:.LANCHOR253]
19431	bl	l2p_flush
19432	bl	FtlVpcTblFlush
19433	b	.L2886
19434.L2872:
19435	mov	w2, 0
19436	add	x1, x29, 72
19437	mov	w0, w21
19438	bl	log2phys
19439	ldr	w0, [x29, 72]
19440	cmn	w0, #1
19441	beq	.L2871
19442	ldr	w0, [x20]
19443	mov	w2, 1
19444	add	x1, x29, 76
19445	add	w0, w0, 1
19446	str	w0, [x20]
19447	ldr	w0, [x23]
19448	add	w0, w0, 1
19449	str	w0, [x23]
19450	mov	w0, w21
19451	bl	log2phys
19452	ldr	w0, [x29, 72]
19453	lsr	w0, w0, 10
19454	bl	P2V_block_in_plane
19455	bl	decrement_vpc_count
19456.L2871:
19457	ldrh	w0, [x22, #:lo12:.LANCHOR55]
19458	add	w21, w21, 1
19459	sub	w19, w19, w0
19460	b	.L2870
19461.L2873:
19462	mov	w0, -1
19463	ret
19464.L2875:
19465	mov	w0, -1
19466	b	.L2865
19467	.size	ftl_discard, .-ftl_discard
19468	.section	.text.FtlRead,"ax",@progbits
19469	.align	2
19470	.global	FtlRead
19471	.type	FtlRead, %function
19472FtlRead:
19473	sub	sp, sp, #208
19474	adrp	x4, .LANCHOR247
19475	stp	x29, x30, [sp, 16]
19476	add	x29, sp, 16
19477	ldr	w4, [x4, #:lo12:.LANCHOR247]
19478	stp	x19, x20, [sp, 32]
19479	stp	x21, x22, [sp, 48]
19480	cmp	w4, 1
19481	stp	x23, x24, [sp, 64]
19482	stp	x25, x26, [sp, 80]
19483	stp	x27, x28, [sp, 96]
19484	bne	.L2914
19485	mov	x21, x3
19486	mov	w23, w2
19487	mov	w19, w1
19488	cmp	w0, 16
19489	bne	.L2889
19490	mov	x2, x3
19491	mov	w1, w23
19492	add	w0, w19, 256
19493	bl	FtlVendorPartRead
19494	mov	w25, w0
19495.L2887:
19496	mov	w0, w25
19497	ldp	x19, x20, [sp, 32]
19498	ldp	x21, x22, [sp, 48]
19499	ldp	x23, x24, [sp, 64]
19500	ldp	x25, x26, [sp, 80]
19501	ldp	x27, x28, [sp, 96]
19502	ldp	x29, x30, [sp, 16]
19503	add	sp, sp, 208
19504	ret
19505.L2889:
19506	adrp	x0, .LANCHOR68
19507	ldr	w0, [x0, #:lo12:.LANCHOR68]
19508	cmp	w1, w0
19509	bcs	.L2914
19510	cmp	w2, w0
19511	bhi	.L2914
19512	add	w1, w1, w2
19513	str	w1, [x29, 148]
19514	cmp	w0, w1
19515	bcc	.L2914
19516	adrp	x22, .LANCHOR55
19517	ldrh	w0, [x22, #:lo12:.LANCHOR55]
19518	udiv	w1, w19, w0
19519	str	w1, [x29, 172]
19520	add	w1, w19, w2
19521	sub	w1, w1, #1
19522	udiv	w0, w1, w0
19523	adrp	x1, .LANCHOR226
19524	str	w0, [x29, 168]
19525	ldr	w0, [x29, 172]
19526	sub	w4, w4, w0
19527	ldr	w0, [x29, 168]
19528	add	w0, w4, w0
19529	str	w0, [x29, 164]
19530	ldr	w0, [x1, #:lo12:.LANCHOR226]
19531	add	w0, w0, w2
19532	str	w0, [x1, #:lo12:.LANCHOR226]
19533	adrp	x1, .LANCHOR171
19534	ldr	w2, [x29, 164]
19535	ldr	w0, [x1, #:lo12:.LANCHOR171]
19536	add	w0, w0, w2
19537	str	w0, [x1, #:lo12:.LANCHOR171]
19538	ldp	w1, w0, [x29, 168]
19539	bl	FtlCacheMetchLpa
19540	cbz	w0, .L2890
19541	bl	FtlCacheWriteBack
19542.L2890:
19543	ldr	w20, [x29, 172]
19544	adrp	x26, .LANCHOR141
19545	add	x26, x26, :lo12:.LANCHOR141
19546	mov	w24, 0
19547	mov	w25, 0
19548	adrp	x27, .LANCHOR186
19549	stp	wzr, wzr, [x29, 156]
19550.L2891:
19551	ldr	w0, [x29, 164]
19552	cbnz	w0, .L2910
19553	adrp	x0, .LANCHOR119
19554	ldrh	w0, [x0, #:lo12:.LANCHOR119]
19555	cbz	w0, .L2887
19556	mov	w1, 1
19557	mov	w0, 0
19558	bl	ftl_do_gc
19559	b	.L2887
19560.L2910:
19561	add	x1, x29, 188
19562	mov	w2, 0
19563	mov	w0, w20
19564	bl	log2phys
19565	ldr	w1, [x29, 188]
19566	cmn	w1, #1
19567	bne	.L2892
19568	add	x3, x22, :lo12:.LANCHOR55
19569	mov	w28, 0
19570.L2893:
19571	ldrh	w0, [x3]
19572	cmp	w28, w0
19573	bcc	.L2895
19574.L2896:
19575	ldr	w0, [x29, 164]
19576	add	w20, w20, 1
19577	subs	w0, w0, #1
19578	str	w0, [x29, 164]
19579	beq	.L2900
19580	adrp	x0, .LANCHOR38
19581	ldrh	w0, [x0, #:lo12:.LANCHOR38]
19582	cmp	w24, w0, lsl 2
19583	bne	.L2891
19584.L2900:
19585	cbz	w24, .L2891
19586	ldr	x0, [x27, #:lo12:.LANCHOR186]
19587	mov	w1, w24
19588	mov	w2, 0
19589	adrp	x28, .LANCHOR194
19590	bl	FlashReadPages
19591	ldr	w0, [x29, 156]
19592	lsl	w0, w0, 9
19593	str	w0, [x29, 132]
19594	ldr	w0, [x29, 152]
19595	lsl	w0, w0, 9
19596	str	x0, [x29, 136]
19597	ldr	w0, [x29, 160]
19598	lsl	w0, w0, 9
19599	str	w0, [x29, 144]
19600	mov	w0, 56
19601	umull	x0, w24, w0
19602	mov	x24, 0
19603	str	x0, [x29, 120]
19604	adrp	x0, .LC68
19605	add	x0, x0, :lo12:.LC68
19606	str	x0, [x29, 112]
19607.L2909:
19608	ldr	x0, [x27, #:lo12:.LANCHOR186]
19609	ldr	w2, [x29, 172]
19610	add	x0, x0, x24
19611	ldr	w1, [x0, 24]
19612	cmp	w2, w1
19613	bne	.L2902
19614	ldr	x1, [x0, 8]
19615	adrp	x0, .LANCHOR193
19616	ldr	x0, [x0, #:lo12:.LANCHOR193]
19617	cmp	x1, x0
19618	bne	.L2903
19619	ldr	x0, [x29, 136]
19620	ldr	w2, [x29, 144]
19621	add	x1, x1, x0
19622	mov	x0, x21
19623.L2931:
19624	bl	ftl_memcpy
19625.L2903:
19626	ldr	x0, [x27, #:lo12:.LANCHOR186]
19627	add	x2, x0, x24
19628	ldr	w1, [x0, x24]
19629	cmn	w1, #1
19630	bne	.L2904
19631	ldr	w0, [x26, 72]
19632	mov	w25, w1
19633	add	w0, w0, 1
19634	str	w0, [x26, 72]
19635.L2904:
19636	ldr	x0, [x2, 16]
19637	ldr	w1, [x2, 24]
19638	ldr	w3, [x0, 8]
19639	cmp	w1, w3
19640	beq	.L2905
19641	ldr	w3, [x26, 72]
19642	add	w3, w3, 1
19643	str	w3, [x26, 72]
19644	ldr	x3, [x2, 8]
19645	ldr	w4, [x3, 4]
19646	str	w4, [sp]
19647	ldp	w4, w5, [x0, 4]
19648	ldr	w6, [x0, 12]
19649	ldr	w7, [x3]
19650	ldr	w2, [x2, 4]
19651	ldr	w3, [x0]
19652	ldr	x0, [x29, 112]
19653	bl	printf
19654.L2905:
19655	ldr	x0, [x27, #:lo12:.LANCHOR186]
19656	add	x1, x0, x24
19657	ldr	w0, [x0, x24]
19658	cmp	w0, 256
19659	bne	.L2906
19660	ldr	w0, [x1, 4]
19661	lsr	w0, w0, 10
19662	bl	P2V_block_in_plane
19663	and	w1, w0, 65535
19664	str	w1, [x29, 128]
19665	bl	FtlGcRefreshBlock
19666	adrp	x2, .LANCHOR78
19667	add	x2, x2, :lo12:.LANCHOR78
19668	adrp	x3, .LANCHOR213
19669.L2908:
19670	mov	w1, 1
19671	stp	x3, x2, [x29, 96]
19672	mov	w0, w1
19673	bl	ftl_do_gc
19674	ldr	x2, [x29, 104]
19675	ldr	w0, [x2]
19676	cbnz	w0, .L2907
19677	ldr	x3, [x29, 96]
19678	ldr	w1, [x29, 128]
19679	ldrh	w0, [x3, #:lo12:.LANCHOR213]
19680	cmp	w0, w1
19681	beq	.L2908
19682.L2907:
19683	bl	FtlSysFlush
19684.L2906:
19685	ldr	x0, [x29, 120]
19686	add	x24, x24, 56
19687	cmp	x0, x24
19688	bne	.L2909
19689	mov	w24, 0
19690	b	.L2891
19691.L2895:
19692	madd	w0, w20, w0, w28
19693	cmp	w19, w0
19694	bhi	.L2894
19695	ldr	w1, [x29, 148]
19696	cmp	w1, w0
19697	bls	.L2894
19698	sub	w0, w0, w19
19699	str	x3, [x29, 136]
19700	lsl	w0, w0, 9
19701	mov	w2, 512
19702	mov	w1, 0
19703	add	x0, x21, x0
19704	bl	ftl_memset
19705	ldr	x3, [x29, 136]
19706.L2894:
19707	add	w28, w28, 1
19708	b	.L2893
19709.L2892:
19710	ldr	x0, [x27, #:lo12:.LANCHOR186]
19711	mov	w2, 56
19712	umaddl	x0, w24, w2, x0
19713	str	w1, [x0, 4]
19714	ldr	w1, [x29, 172]
19715	cmp	w20, w1
19716	bne	.L2897
19717	adrp	x1, .LANCHOR193
19718	ldr	x1, [x1, #:lo12:.LANCHOR193]
19719	str	x1, [x0, 8]
19720	ldrh	w1, [x22, #:lo12:.LANCHOR55]
19721	udiv	w2, w19, w1
19722	msub	w2, w2, w1, w19
19723	str	w2, [x29, 152]
19724	sub	w2, w1, w2
19725	cmp	w23, w2
19726	csel	w2, w23, w2, ls
19727	str	w2, [x29, 160]
19728	cmp	w2, w1
19729	bne	.L2898
19730	str	x21, [x0, 8]
19731.L2898:
19732	adrp	x1, .LANCHOR58
19733	adrp	x2, .LANCHOR196
19734	str	w20, [x0, 24]
19735	ldrh	w1, [x1, #:lo12:.LANCHOR58]
19736	ldr	x2, [x2, #:lo12:.LANCHOR196]
19737	mul	w1, w1, w24
19738	add	w24, w24, 1
19739	and	x1, x1, 4294967292
19740	add	x1, x2, x1
19741	str	x1, [x0, 16]
19742	b	.L2896
19743.L2897:
19744	ldr	w1, [x29, 168]
19745	cmp	w20, w1
19746	bne	.L2899
19747	ldrh	w2, [x22, #:lo12:.LANCHOR55]
19748	adrp	x1, .LANCHOR194
19749	ldr	w3, [x29, 148]
19750	ldr	x1, [x1, #:lo12:.LANCHOR194]
19751	str	x1, [x0, 8]
19752	mul	w1, w20, w2
19753	sub	w3, w3, w1
19754	str	w3, [x29, 156]
19755	cmp	w2, w3
19756	bne	.L2898
19757.L2930:
19758	sub	w1, w1, w19
19759	lsl	w1, w1, 9
19760	add	x1, x21, x1
19761	str	x1, [x0, 8]
19762	b	.L2898
19763.L2899:
19764	ldrh	w1, [x22, #:lo12:.LANCHOR55]
19765	mul	w1, w1, w20
19766	b	.L2930
19767.L2902:
19768	ldr	w2, [x29, 168]
19769	cmp	w2, w1
19770	bne	.L2903
19771	ldr	x1, [x0, 8]
19772	ldr	x0, [x28, #:lo12:.LANCHOR194]
19773	cmp	x1, x0
19774	bne	.L2903
19775	ldrh	w0, [x22, #:lo12:.LANCHOR55]
19776	mul	w0, w0, w2
19777	ldr	w2, [x29, 132]
19778	sub	w0, w0, w19
19779	lsl	w0, w0, 9
19780	add	x0, x21, x0
19781	b	.L2931
19782.L2914:
19783	mov	w25, -1
19784	b	.L2887
19785	.size	FtlRead, .-FtlRead
19786	.section	.text.ftl_vendor_read,"ax",@progbits
19787	.align	2
19788	.global	ftl_vendor_read
19789	.type	ftl_vendor_read, %function
19790ftl_vendor_read:
19791	mov	x3, x2
19792	mov	w2, w1
19793	mov	w1, w0
19794	mov	w0, 16
19795	b	FtlRead
19796	.size	ftl_vendor_read, .-ftl_vendor_read
19797	.section	.text.ftl_sys_read,"ax",@progbits
19798	.align	2
19799	.global	ftl_sys_read
19800	.type	ftl_sys_read, %function
19801ftl_sys_read:
19802	mov	x3, x2
19803	mov	w2, w1
19804	add	w1, w0, 256
19805	mov	w0, 16
19806	b	FtlRead
19807	.size	ftl_sys_read, .-ftl_sys_read
19808	.section	.text.StorageSysDataLoad,"ax",@progbits
19809	.align	2
19810	.global	StorageSysDataLoad
19811	.type	StorageSysDataLoad, %function
19812StorageSysDataLoad:
19813	stp	x29, x30, [sp, -32]!
19814	mov	x2, 512
19815	add	x29, sp, 0
19816	stp	x19, x20, [sp, 16]
19817	mov	x19, x1
19818	mov	w20, w0
19819	mov	w1, 0
19820	mov	x0, x19
19821	bl	memset
19822	mov	x3, x19
19823	add	w1, w20, 256
19824	ldp	x19, x20, [sp, 16]
19825	mov	w2, 1
19826	ldp	x29, x30, [sp], 32
19827	mov	w0, 16
19828	b	FtlRead
19829	.size	StorageSysDataLoad, .-StorageSysDataLoad
19830	.section	.text.FlashBootVendorRead,"ax",@progbits
19831	.align	2
19832	.global	FlashBootVendorRead
19833	.type	FlashBootVendorRead, %function
19834FlashBootVendorRead:
19835	mov	x3, x2
19836	mov	w1, w0
19837	mov	w2, 1
19838	mov	w0, 16
19839	b	FtlRead
19840	.size	FlashBootVendorRead, .-FlashBootVendorRead
19841	.section	.text.ftl_read,"ax",@progbits
19842	.align	2
19843	.global	ftl_read
19844	.type	ftl_read, %function
19845ftl_read:
19846	and	w0, w0, 255
19847	b	FtlRead
19848	.size	ftl_read, .-ftl_read
19849	.section	.text.FtlInit,"ax",@progbits
19850	.align	2
19851	.global	FtlInit
19852	.type	FtlInit, %function
19853FtlInit:
19854	stp	x29, x30, [sp, -64]!
19855	mov	w0, -1
19856	adrp	x1, .LC77
19857	add	x1, x1, :lo12:.LC77
19858	add	x29, sp, 0
19859	stp	x19, x20, [sp, 16]
19860	adrp	x19, .LANCHOR247
19861	stp	x21, x22, [sp, 32]
19862	str	w0, [x19, #:lo12:.LANCHOR247]
19863	adrp	x0, .LANCHOR254
19864	stp	x23, x24, [sp, 48]
19865	str	wzr, [x0, #:lo12:.LANCHOR254]
19866	adrp	x0, .LANCHOR78
19867	str	wzr, [x0, #:lo12:.LANCHOR78]
19868	adrp	x0, .LC7
19869	add	x0, x0, :lo12:.LC7
19870	bl	printf
19871	adrp	x0, .LANCHOR15
19872	add	x0, x0, :lo12:.LANCHOR15
19873	bl	FtlConstantsInit
19874	bl	FtlMemInit
19875	bl	FtlVariablesInit
19876	adrp	x0, .LANCHOR39
19877	ldrh	w0, [x0, #:lo12:.LANCHOR39]
19878	bl	FtlFreeSysBlkQueueInit
19879	bl	FtlLoadBbt
19880	cbz	w0, .L2939
19881	adrp	x1, .LANCHOR255
19882	adrp	x0, .LC78
19883	add	x1, x1, :lo12:.LANCHOR255
19884	add	x0, x0, :lo12:.LC78
19885.L2948:
19886	bl	printf
19887.L2940:
19888	mov	w0, 0
19889	ldp	x19, x20, [sp, 16]
19890	ldp	x21, x22, [sp, 32]
19891	ldp	x23, x24, [sp, 48]
19892	ldp	x29, x30, [sp], 64
19893	ret
19894.L2939:
19895	bl	FtlSysBlkInit
19896	cbz	w0, .L2941
19897	adrp	x1, .LANCHOR255
19898	adrp	x0, .LC79
19899	add	x1, x1, :lo12:.LANCHOR255
19900	add	x0, x0, :lo12:.LC79
19901	b	.L2948
19902.L2941:
19903	mov	w1, 1
19904	str	w1, [x19, #:lo12:.LANCHOR247]
19905	bl	ftl_do_gc
19906	adrp	x0, .LANCHOR90
19907	mov	x22, x0
19908	ldrh	w23, [x0, #:lo12:.LANCHOR90]
19909	cmp	w23, 15
19910	bhi	.L2940
19911	adrp	x20, .LANCHOR115
19912	add	x20, x20, :lo12:.LANCHOR115
19913	mov	w19, 0
19914	adrp	x24, .LANCHOR213
19915	mov	w21, 65535
19916.L2945:
19917	ldrh	w0, [x24, #:lo12:.LANCHOR213]
19918	cmp	w0, w21
19919	bne	.L2943
19920	ldrh	w0, [x20]
19921	cmp	w0, w21
19922	bne	.L2943
19923	and	w0, w19, 63
19924	bl	List_get_gc_head_node
19925	bl	FtlGcRefreshBlock
19926.L2943:
19927	mov	w1, 1
19928	mov	w0, w1
19929	bl	ftl_do_gc
19930	mov	w1, 1
19931	mov	w0, 0
19932	bl	ftl_do_gc
19933	ldrh	w1, [x22, #:lo12:.LANCHOR90]
19934	add	w0, w23, 2
19935	cmp	w1, w0
19936	bhi	.L2940
19937	add	w19, w19, 1
19938	cmp	w19, 4096
19939	bne	.L2945
19940	b	.L2940
19941	.size	FtlInit, .-FtlInit
19942	.section	.text.rk_ftl_init,"ax",@progbits
19943	.align	2
19944	.global	rk_ftl_init
19945	.type	rk_ftl_init, %function
19946rk_ftl_init:
19947	stp	x29, x30, [sp, -32]!
19948	add	x29, sp, 0
19949	str	x19, [sp, 16]
19950	bl	FlashInit
19951	mov	w19, w0
19952	cbnz	w0, .L2950
19953	bl	FtlInit
19954.L2950:
19955	bl	idb_init
19956	mov	w1, w19
19957	adrp	x0, .LC80
19958	add	x0, x0, :lo12:.LC80
19959	bl	printf
19960	mov	w0, w19
19961	ldr	x19, [sp, 16]
19962	ldp	x29, x30, [sp], 32
19963	ret
19964	.size	rk_ftl_init, .-rk_ftl_init
19965	.section	.text.ftl_fix_nand_power_lost_error,"ax",@progbits
19966	.align	2
19967	.global	ftl_fix_nand_power_lost_error
19968	.type	ftl_fix_nand_power_lost_error, %function
19969ftl_fix_nand_power_lost_error:
19970	adrp	x0, .LANCHOR16
19971	ldrb	w0, [x0, #:lo12:.LANCHOR16]
19972	cbz	w0, .L2967
19973	stp	x29, x30, [sp, -128]!
19974	add	x29, sp, 0
19975	str	x25, [sp, 64]
19976	adrp	x25, .LANCHOR241
19977	stp	x23, x24, [sp, 48]
19978	stp	x21, x22, [sp, 32]
19979	adrp	x21, .LANCHOR85
19980	ldrh	w23, [x25, #:lo12:.LANCHOR241]
19981	ldr	x0, [x21, #:lo12:.LANCHOR85]
19982	mov	w1, w23
19983	stp	x19, x20, [sp, 16]
19984	ubfiz	x24, x23, 1, 16
19985	adrp	x19, .LC81
19986	ldrh	w2, [x0, x24]
19987	add	x0, x19, :lo12:.LC81
19988	bl	printf
19989	adrp	x0, .LANCHOR93
19990	add	x11, x0, :lo12:.LANCHOR93
19991	ldrh	w0, [x0, #:lo12:.LANCHOR93]
19992	bl	FtlGcRefreshOpenBlock
19993	adrp	x0, .LANCHOR94
19994	add	x20, x0, :lo12:.LANCHOR94
19995	ldrh	w0, [x0, #:lo12:.LANCHOR94]
19996	bl	FtlGcRefreshOpenBlock
19997	mov	x0, x11
19998	bl	allocate_new_data_superblock
19999	mov	x0, x20
20000	mov	w20, 4097
20001	bl	allocate_new_data_superblock
20002.L2954:
20003	subs	w20, w20, #1
20004	beq	.L2958
20005	mov	w1, 1
20006	mov	w0, w1
20007	bl	ftl_do_gc
20008	ldr	x0, [x21, #:lo12:.LANCHOR85]
20009	ldrh	w0, [x0, x24]
20010	cbnz	w0, .L2954
20011.L2958:
20012	ldr	x0, [x21, #:lo12:.LANCHOR85]
20013	mov	w1, w23
20014	ldrh	w2, [x0, x24]
20015	add	x0, x19, :lo12:.LC81
20016	bl	printf
20017	ldr	x0, [x21, #:lo12:.LANCHOR85]
20018	ldrh	w19, [x0, x24]
20019	cbnz	w19, .L2956
20020	add	x20, x29, 128
20021	adrp	x22, .LANCHOR79
20022	strh	w23, [x20, -48]!
20023	mov	x0, x20
20024	bl	make_superblock
20025	adrp	x0, .LANCHOR38
20026	ldr	x4, [x22, #:lo12:.LANCHOR79]
20027	add	x20, x20, 16
20028	mov	w5, 65535
20029	ldrh	w3, [x0, #:lo12:.LANCHOR38]
20030	mov	w6, 56
20031	mov	w0, 0
20032.L2959:
20033	cmp	w0, w3
20034	bne	.L2961
20035	ldr	x0, [x21, #:lo12:.LANCHOR85]
20036	mov	w1, w23
20037	ldrh	w2, [x0, x24]
20038	adrp	x0, .LC82
20039	add	x0, x0, :lo12:.LC82
20040	bl	printf
20041	ldr	x0, [x22, #:lo12:.LANCHOR79]
20042	mov	w2, w19
20043	mov	w1, 0
20044	bl	FlashEraseBlocks
20045	ldr	x0, [x22, #:lo12:.LANCHOR79]
20046	mov	w2, w19
20047	mov	w1, 1
20048	bl	FlashEraseBlocks
20049.L2956:
20050	mov	w0, -1
20051	strh	w0, [x25, #:lo12:.LANCHOR241]
20052	ldp	x19, x20, [sp, 16]
20053	ldp	x21, x22, [sp, 32]
20054	ldp	x23, x24, [sp, 48]
20055	ldr	x25, [sp, 64]
20056	ldp	x29, x30, [sp], 128
20057	ret
20058.L2961:
20059	ldrh	w1, [x20]
20060	cmp	w1, w5
20061	beq	.L2960
20062	umaddl	x2, w19, w6, x4
20063	add	w19, w19, 1
20064	and	w19, w19, 65535
20065	lsl	w1, w1, 10
20066	stp	xzr, xzr, [x2, 8]
20067	str	w1, [x2, 4]
20068.L2960:
20069	add	w0, w0, 1
20070	add	x20, x20, 2
20071	and	w0, w0, 65535
20072	b	.L2959
20073.L2967:
20074	ret
20075	.size	ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
20076	.section	.text.FtlWrite,"ax",@progbits
20077	.align	2
20078	.global	FtlWrite
20079	.type	FtlWrite, %function
20080FtlWrite:
20081	stp	x29, x30, [sp, -256]!
20082	add	x29, sp, 0
20083	stp	x21, x22, [sp, 32]
20084	mov	w22, w1
20085	adrp	x1, .LANCHOR78
20086	stp	x25, x26, [sp, 64]
20087	mov	w25, w2
20088	stp	x19, x20, [sp, 16]
20089	ldr	w2, [x1, #:lo12:.LANCHOR78]
20090	stp	x23, x24, [sp, 48]
20091	stp	x27, x28, [sp, 80]
20092	str	x1, [x29, 120]
20093	cbnz	w2, .L3013
20094	adrp	x1, .LANCHOR247
20095	ldr	w1, [x1, #:lo12:.LANCHOR247]
20096	cmp	w1, 1
20097	bne	.L3013
20098	mov	x23, x3
20099	cmp	w0, 16
20100	bne	.L2972
20101	mov	x2, x3
20102	mov	w1, w25
20103	add	w0, w22, 256
20104	bl	FtlVendorPartWrite
20105.L2970:
20106	ldp	x19, x20, [sp, 16]
20107	ldp	x21, x22, [sp, 32]
20108	ldp	x23, x24, [sp, 48]
20109	ldp	x25, x26, [sp, 64]
20110	ldp	x27, x28, [sp, 80]
20111	ldp	x29, x30, [sp], 256
20112	ret
20113.L2972:
20114	adrp	x0, .LANCHOR68
20115	ldr	w1, [x0, #:lo12:.LANCHOR68]
20116	cmp	w22, w1
20117	bcs	.L3016
20118	cmp	w25, w1
20119	bhi	.L3016
20120	add	w0, w22, w25
20121	cmp	w1, w0
20122	bcc	.L3016
20123	adrp	x1, .LANCHOR256
20124	adrp	x3, .LANCHOR55
20125	mov	w2, 2048
20126	sub	w0, w0, #1
20127	str	w2, [x1, #:lo12:.LANCHOR256]
20128	adrp	x2, .LANCHOR167
20129	ldrh	w1, [x3, #:lo12:.LANCHOR55]
20130	adrp	x21, .LANCHOR72
20131	str	x3, [x29, 184]
20132	cmp	w25, w1, lsl 1
20133	udiv	w0, w0, w1
20134	udiv	w26, w22, w1
20135	str	w0, [x29, 172]
20136	sub	w27, w0, w26
20137	ldr	w0, [x2, #:lo12:.LANCHOR167]
20138	add	w24, w27, 1
20139	add	w0, w0, w24
20140	str	w0, [x2, #:lo12:.LANCHOR167]
20141	adrp	x2, .LANCHOR225
20142	ldr	w0, [x2, #:lo12:.LANCHOR225]
20143	add	w0, w0, w25
20144	str	w0, [x2, #:lo12:.LANCHOR225]
20145	ldr	w2, [x21, #:lo12:.LANCHOR72]
20146	cset	w0, cs
20147	str	w0, [x29, 176]
20148	cbz	w2, .L2974
20149	adrp	x0, .LANCHOR73
20150	sub	w2, w2, #1
20151	mov	w3, 56
20152	adrp	x20, .LANCHOR257
20153	ldr	x0, [x0, #:lo12:.LANCHOR73]
20154	umaddl	x2, w2, w3, x0
20155	ldr	w0, [x2, 24]
20156	cmp	w26, w0
20157	bne	.L2975
20158	adrp	x3, .LANCHOR169
20159	ldr	w0, [x3, #:lo12:.LANCHOR169]
20160	add	w0, w0, 1
20161	str	w0, [x3, #:lo12:.LANCHOR169]
20162	ldr	w0, [x20, #:lo12:.LANCHOR257]
20163	ldr	x3, [x2, 8]
20164	add	w0, w0, 1
20165	str	w0, [x20, #:lo12:.LANCHOR257]
20166	msub	w0, w26, w1, w22
20167	sub	w1, w1, w0
20168	cmp	w25, w1
20169	lsl	w0, w0, 9
20170	csel	w19, w25, w1, ls
20171	add	x0, x3, x0
20172	lsl	w24, w19, 9
20173	mov	x1, x23
20174	mov	w2, w24
20175	bl	ftl_memcpy
20176	cbnz	w27, .L2976
20177	ldr	w0, [x20, #:lo12:.LANCHOR257]
20178	cmp	w0, 2
20179	bgt	.L2976
20180.L3013:
20181	mov	w0, 0
20182	b	.L2970
20183.L2976:
20184	add	x23, x23, x24
20185	sub	w25, w25, w19
20186	add	w22, w22, w19
20187	add	w26, w26, 1
20188	mov	w24, w27
20189.L2975:
20190	str	wzr, [x20, #:lo12:.LANCHOR257]
20191.L2974:
20192	ldr	w1, [x29, 172]
20193	mov	w0, w26
20194	bl	FtlCacheMetchLpa
20195	cbz	w0, .L2977
20196	bl	FtlCacheWriteBack
20197.L2977:
20198	adrp	x0, .LANCHOR252
20199	mov	w20, w26
20200	adrp	x27, .LANCHOR93
20201	str	x0, [x29, 112]
20202	add	x1, x27, :lo12:.LANCHOR93
20203	str	x1, [x0, #:lo12:.LANCHOR252]
20204	adrp	x0, .LANCHOR57
20205	add	x0, x0, :lo12:.LANCHOR57
20206	str	x0, [x29, 136]
20207.L2978:
20208	cbnz	w24, .L3007
20209	bl	FtlCacheWriteBack
20210	ldr	w0, [x29, 172]
20211	sub	w1, w0, w26
20212	mov	w0, 0
20213	bl	ftl_do_gc
20214	adrp	x1, .LANCHOR90
20215	mov	x22, x1
20216	ldrh	w0, [x1, #:lo12:.LANCHOR90]
20217	cmp	w0, 5
20218	bls	.L3008
20219	cmp	w0, 31
20220	bhi	.L3013
20221	adrp	x0, .LANCHOR2
20222	ldrb	w0, [x0, #:lo12:.LANCHOR2]
20223	cbnz	w0, .L3013
20224.L3008:
20225	adrp	x20, .LANCHOR115
20226	adrp	x21, .LANCHOR116
20227	adrp	x19, .LANCHOR182
20228	add	x20, x20, :lo12:.LANCHOR115
20229	add	x21, x21, :lo12:.LANCHOR116
20230	add	x19, x19, :lo12:.LANCHOR182
20231.L3011:
20232	adrp	x0, .LANCHOR213
20233	ldrh	w1, [x0, #:lo12:.LANCHOR213]
20234	mov	w0, 65535
20235	cmp	w1, w0
20236	bne	.L3010
20237	ldrh	w0, [x20]
20238	cmp	w0, w1
20239	bne	.L3010
20240	ldrh	w1, [x21]
20241	cmp	w1, w0
20242	bne	.L3010
20243	and	w0, w24, 7
20244	bl	List_get_gc_head_node
20245	bl	FtlGcRefreshBlock
20246.L3010:
20247	adrp	x1, .LANCHOR181
20248	mov	w0, 128
20249	strh	w0, [x19]
20250	strh	w0, [x1, #:lo12:.LANCHOR181]
20251	mov	w1, 1
20252	mov	w0, w1
20253	bl	ftl_do_gc
20254	mov	w1, 1
20255	mov	w0, 0
20256	bl	ftl_do_gc
20257	ldr	x0, [x29, 120]
20258	ldr	w0, [x0, #:lo12:.LANCHOR78]
20259	cbnz	w0, .L3013
20260	ldrh	w0, [x22, #:lo12:.LANCHOR90]
20261	cmp	w0, 2
20262	bhi	.L3013
20263	add	w24, w24, 1
20264	cmp	w24, 256
20265	bne	.L3011
20266	b	.L3013
20267.L3007:
20268	add	x0, x27, :lo12:.LANCHOR93
20269	adrp	x1, .LANCHOR38
20270	str	x1, [x29, 144]
20271	ldrb	w2, [x0, 6]
20272	ldrh	w0, [x1, #:lo12:.LANCHOR38]
20273	cmp	w2, w0
20274	bcc	.L2979
20275	mov	w2, 1472
20276	adrp	x1, .LANCHOR258
20277	adrp	x0, .LC5
20278	add	x1, x1, :lo12:.LANCHOR258
20279	add	x0, x0, :lo12:.LC5
20280	bl	printf
20281	adrp	x1, .LC6
20282	adrp	x0, .LC7
20283	add	x1, x1, :lo12:.LC6
20284	add	x0, x0, :lo12:.LC7
20285	bl	printf
20286.L2979:
20287	add	x19, x27, :lo12:.LANCHOR93
20288	ldrh	w0, [x19, 4]
20289	cbnz	w0, .L2980
20290	mov	x0, x19
20291	bl	allocate_new_data_superblock
20292	ldr	x0, [x29, 112]
20293	str	x19, [x0, #:lo12:.LANCHOR252]
20294.L2980:
20295	adrp	x1, .LANCHOR185
20296	ldr	w2, [x21, #:lo12:.LANCHOR72]
20297	str	x1, [x29, 104]
20298	ldr	w0, [x1, #:lo12:.LANCHOR185]
20299	sub	w0, w0, w2
20300	add	x2, x27, :lo12:.LANCHOR93
20301	ldrh	w3, [x2, 4]
20302	ldrb	w2, [x2, 6]
20303	cmp	w0, w3
20304	csel	w0, w0, w3, ls
20305	cmp	w0, w24
20306	csel	w0, w0, w24, ls
20307	str	w0, [x29, 132]
20308	ldr	x0, [x29, 144]
20309	ldrh	w0, [x0, #:lo12:.LANCHOR38]
20310	cmp	w2, w0
20311	bcc	.L2981
20312	mov	w2, 1515
20313	adrp	x1, .LANCHOR258
20314	adrp	x0, .LC5
20315	add	x1, x1, :lo12:.LANCHOR258
20316	add	x0, x0, :lo12:.LC5
20317	bl	printf
20318	adrp	x1, .LC6
20319	adrp	x0, .LC7
20320	add	x1, x1, :lo12:.LC6
20321	add	x0, x0, :lo12:.LC7
20322	bl	printf
20323.L2981:
20324	str	wzr, [x29, 180]
20325.L2982:
20326	ldr	w1, [x29, 132]
20327	ldr	w0, [x29, 180]
20328	cmp	w0, w1
20329	bne	.L3002
20330.L2983:
20331	ldr	w0, [x29, 180]
20332	cmp	w24, w0
20333	bcs	.L3003
20334	mov	w2, 1609
20335	adrp	x1, .LANCHOR258
20336	adrp	x0, .LC5
20337	add	x1, x1, :lo12:.LANCHOR258
20338	add	x0, x0, :lo12:.LC5
20339	bl	printf
20340	adrp	x1, .LC6
20341	adrp	x0, .LC7
20342	add	x1, x1, :lo12:.LC6
20343	add	x0, x0, :lo12:.LC7
20344	bl	printf
20345.L3003:
20346	ldr	w0, [x29, 180]
20347	ldr	w1, [x21, #:lo12:.LANCHOR72]
20348	sub	w24, w24, w0
20349	ldr	x0, [x29, 104]
20350	ldr	w0, [x0, #:lo12:.LANCHOR185]
20351	cmp	w1, w0
20352	bcs	.L3004
20353	ldr	w0, [x29, 176]
20354	cbnz	w0, .L3004
20355	add	x0, x27, :lo12:.LANCHOR93
20356	ldrh	w0, [x0, 4]
20357	cbz	w0, .L3004
20358.L3006:
20359	str	wzr, [x29, 176]
20360	b	.L2978
20361.L3002:
20362	add	x0, x27, :lo12:.LANCHOR93
20363	ldrh	w0, [x0, 4]
20364	cbz	w0, .L2983
20365	ldr	w0, [x29, 172]
20366	cmp	w0, w20
20367	ldr	w0, [x29, 176]
20368	cset	w3, eq
20369	tst	w3, w0
20370	beq	.L2984
20371	ldr	w0, [x29, 180]
20372	cbz	w0, .L2984
20373	ldr	x0, [x29, 184]
20374	ldrh	w1, [x0, #:lo12:.LANCHOR55]
20375	add	w0, w22, w25
20376	msub	w0, w20, w1, w0
20377	cmp	w1, w0
20378	bne	.L2983
20379.L2984:
20380	add	x1, x29, 196
20381	mov	w2, 0
20382	str	w3, [x29, 96]
20383	adrp	x19, .LANCHOR73
20384	mov	w0, w20
20385	bl	log2phys
20386	add	x0, x27, :lo12:.LANCHOR93
20387	bl	get_new_active_ppa
20388	ldr	w5, [x21, #:lo12:.LANCHOR72]
20389	mov	w4, 56
20390	ldr	x1, [x19, #:lo12:.LANCHOR73]
20391	str	w4, [x29, 168]
20392	nop // between mem op and mult-accumulate
20393	umaddl	x1, w5, w4, x1
20394	str	w0, [x1, 4]
20395	adrp	x0, .LANCHOR58
20396	str	w20, [x1, 24]
20397	ldrh	w2, [x0, #:lo12:.LANCHOR58]
20398	mul	w0, w5, w2
20399	and	x0, x0, 4294967292
20400	str	x0, [x29, 160]
20401	adrp	x0, .LANCHOR197
20402	ldr	x3, [x29, 160]
20403	ldr	x0, [x0, #:lo12:.LANCHOR197]
20404	str	x0, [x29, 152]
20405	add	x28, x0, x3
20406	adrp	x0, .LANCHOR57
20407	str	x28, [x1, 16]
20408	ldrh	w0, [x0, #:lo12:.LANCHOR57]
20409	mul	w0, w0, w5
20410	adrp	x5, .LANCHOR192
20411	ldr	x5, [x5, #:lo12:.LANCHOR192]
20412	and	x0, x0, 4294967292
20413	add	x0, x5, x0
20414	str	x0, [x1, 8]
20415	mov	w1, 0
20416	mov	x0, x28
20417	bl	ftl_memset
20418	ldr	w3, [x29, 96]
20419	cmp	w26, w20
20420	cset	w0, eq
20421	ldr	w4, [x29, 168]
20422	orr	w0, w3, w0
20423	mov	x3, x19
20424	cbz	w0, .L2985
20425	bne	.L2986
20426	ldr	x0, [x29, 184]
20427	ldrh	w19, [x0, #:lo12:.LANCHOR55]
20428	udiv	w0, w22, w19
20429	msub	w0, w0, w19, w22
20430	str	w0, [x29, 168]
20431	sub	w19, w19, w0
20432	cmp	w19, w25
20433	csel	w19, w19, w25, ls
20434.L2987:
20435	ldr	x0, [x29, 184]
20436	ldrh	w0, [x0, #:lo12:.LANCHOR55]
20437	cmp	w0, w19
20438	bne	.L2988
20439	cmp	w26, w20
20440	beq	.L3019
20441	mul	w1, w20, w19
20442	sub	w1, w1, w22
20443	lsl	w1, w1, 9
20444	add	x1, x23, x1
20445.L2989:
20446	ldr	w0, [x29, 176]
20447	cbz	w0, .L2990
20448	ldr	x2, [x3, #:lo12:.LANCHOR73]
20449	mov	w3, 56
20450	ldr	w0, [x21, #:lo12:.LANCHOR72]
20451	umaddl	x0, w0, w3, x2
20452	str	x1, [x0, 8]
20453.L2991:
20454	add	x0, x27, :lo12:.LANCHOR93
20455	ldrb	w1, [x0, 6]
20456	ldr	x0, [x29, 144]
20457	ldrh	w0, [x0, #:lo12:.LANCHOR38]
20458	cmp	w1, w0
20459	bcc	.L2999
20460	mov	w2, 1599
20461	adrp	x1, .LANCHOR258
20462	adrp	x0, .LC5
20463	add	x1, x1, :lo12:.LANCHOR258
20464	add	x0, x0, :lo12:.LC5
20465	bl	printf
20466	adrp	x1, .LC6
20467	adrp	x0, .LC7
20468	add	x1, x1, :lo12:.LC6
20469	add	x0, x0, :lo12:.LC7
20470	bl	printf
20471.L2999:
20472	ldp	x1, x2, [x29, 152]
20473	mov	w0, -3947
20474	strh	w0, [x1, x2]
20475	adrp	x1, .LANCHOR165
20476	ldr	w0, [x1, #:lo12:.LANCHOR165]
20477	stp	w0, w20, [x28, 4]
20478	add	w20, w20, 1
20479	add	w0, w0, 1
20480	cmn	w0, #1
20481	csel	w0, w0, wzr, ne
20482	str	w0, [x1, #:lo12:.LANCHOR165]
20483	ldr	w0, [x29, 196]
20484	str	w0, [x28, 12]
20485	ldrh	w0, [x27, #:lo12:.LANCHOR93]
20486	strh	w0, [x28, 2]
20487	ldr	w0, [x21, #:lo12:.LANCHOR72]
20488	add	w0, w0, 1
20489	str	w0, [x21, #:lo12:.LANCHOR72]
20490	ldr	w0, [x29, 180]
20491	add	w0, w0, 1
20492	str	w0, [x29, 180]
20493	b	.L2982
20494.L2986:
20495	ldr	x0, [x29, 184]
20496	add	w19, w22, w25
20497	str	wzr, [x29, 168]
20498	ldrh	w0, [x0, #:lo12:.LANCHOR55]
20499	msub	w19, w20, w0, w19
20500	and	w19, w19, 65535
20501	b	.L2987
20502.L3019:
20503	mov	x1, x23
20504	b	.L2989
20505.L2990:
20506	ldr	x2, [x3, #:lo12:.LANCHOR73]
20507	mov	w3, 56
20508	ldr	w0, [x21, #:lo12:.LANCHOR72]
20509	umaddl	x0, w0, w3, x2
20510	ldr	x2, [x29, 136]
20511	ldrh	w2, [x2]
20512.L3039:
20513	ldr	x0, [x0, 8]
20514	b	.L3038
20515.L2988:
20516	ldr	w0, [x29, 196]
20517	cmn	w0, #1
20518	beq	.L2992
20519	ldr	x1, [x3, #:lo12:.LANCHOR73]
20520	mov	w2, 56
20521	str	w0, [x29, 204]
20522	ldr	w0, [x21, #:lo12:.LANCHOR72]
20523	str	x3, [x29, 96]
20524	str	w20, [x29, 224]
20525	nop // between mem op and mult-accumulate
20526	umaddl	x0, w0, w2, x1
20527	mov	w2, 0
20528	ldp	x1, x0, [x0, 8]
20529	stp	x1, x0, [x29, 208]
20530	mov	w1, 1
20531	add	x0, x29, 200
20532	bl	FlashReadPages
20533	ldr	w0, [x29, 200]
20534	ldr	x3, [x29, 96]
20535	cmn	w0, #1
20536	bne	.L2993
20537	adrp	x0, .LANCHOR141
20538	add	x0, x0, :lo12:.LANCHOR141
20539	ldr	w1, [x0, 72]
20540	add	w1, w1, 1
20541	str	w1, [x0, 72]
20542.L2996:
20543	cmp	w26, w20
20544	lsl	w2, w19, 9
20545	bne	.L2997
20546	ldr	x0, [x3, #:lo12:.LANCHOR73]
20547	mov	w3, 56
20548	ldr	w1, [x21, #:lo12:.LANCHOR72]
20549	umaddl	x1, w1, w3, x0
20550	ldr	w0, [x29, 168]
20551	lsl	w0, w0, 9
20552	ldr	x3, [x1, 8]
20553	mov	x1, x23
20554	add	x0, x3, x0
20555.L3038:
20556	bl	ftl_memcpy
20557	b	.L2991
20558.L2993:
20559	ldr	w1, [x28, 8]
20560	cmp	w20, w1
20561	beq	.L2995
20562	adrp	x0, .LANCHOR141
20563	add	x0, x0, :lo12:.LANCHOR141
20564	str	x3, [x29, 96]
20565	ldr	w2, [x0, 72]
20566	add	w2, w2, 1
20567	str	w2, [x0, 72]
20568	mov	w2, w20
20569	adrp	x0, .LC83
20570	add	x0, x0, :lo12:.LC83
20571	bl	printf
20572	ldr	x3, [x29, 96]
20573.L2995:
20574	ldr	w0, [x28, 8]
20575	cmp	w20, w0
20576	beq	.L2996
20577	mov	w2, 1581
20578	adrp	x1, .LANCHOR258
20579	adrp	x0, .LC5
20580	add	x1, x1, :lo12:.LANCHOR258
20581	add	x0, x0, :lo12:.LC5
20582	str	x3, [x29, 96]
20583	bl	printf
20584	adrp	x1, .LC6
20585	adrp	x0, .LC7
20586	add	x1, x1, :lo12:.LC6
20587	add	x0, x0, :lo12:.LC7
20588	bl	printf
20589.L3037:
20590	ldr	x3, [x29, 96]
20591	b	.L2996
20592.L2992:
20593	ldr	x1, [x3, #:lo12:.LANCHOR73]
20594	mov	w2, 56
20595	ldr	w0, [x21, #:lo12:.LANCHOR72]
20596	str	x3, [x29, 96]
20597	nop // between mem op and mult-accumulate
20598	umaddl	x0, w0, w2, x1
20599	ldr	x1, [x29, 136]
20600	ldr	x0, [x0, 8]
20601	ldrh	w2, [x1]
20602	mov	w1, 0
20603	bl	ftl_memset
20604	b	.L3037
20605.L2997:
20606	ldr	x0, [x29, 184]
20607	mov	w4, 56
20608	ldr	x3, [x3, #:lo12:.LANCHOR73]
20609	ldrh	w1, [x0, #:lo12:.LANCHOR55]
20610	ldr	w0, [x21, #:lo12:.LANCHOR72]
20611	mul	w1, w1, w20
20612	umaddl	x0, w0, w4, x3
20613	sub	w1, w1, w22
20614	lsl	w1, w1, 9
20615	add	x1, x23, x1
20616	b	.L3039
20617.L2985:
20618	ldr	w0, [x29, 176]
20619	cbz	w0, .L2998
20620	ldr	w0, [x21, #:lo12:.LANCHOR72]
20621	ldr	x1, [x19, #:lo12:.LANCHOR73]
20622	umaddl	x4, w0, w4, x1
20623	ldr	x0, [x29, 184]
20624	ldrh	w0, [x0, #:lo12:.LANCHOR55]
20625	mul	w0, w0, w20
20626	sub	w0, w0, w22
20627	lsl	w0, w0, 9
20628	add	x0, x23, x0
20629	str	x0, [x4, 8]
20630	b	.L2991
20631.L2998:
20632	ldr	x0, [x29, 184]
20633	ldr	x2, [x19, #:lo12:.LANCHOR73]
20634	ldrh	w1, [x0, #:lo12:.LANCHOR55]
20635	ldr	w0, [x21, #:lo12:.LANCHOR72]
20636	mul	w1, w1, w20
20637	umaddl	x4, w0, w4, x2
20638	adrp	x0, .LANCHOR57
20639	sub	w1, w1, w22
20640	lsl	w1, w1, 9
20641	ldrh	w2, [x0, #:lo12:.LANCHOR57]
20642	add	x1, x23, x1
20643	ldr	x0, [x4, 8]
20644	b	.L3038
20645.L3004:
20646	bl	FtlCacheWriteBack
20647	str	wzr, [x21, #:lo12:.LANCHOR72]
20648	cmp	w24, 1
20649	bhi	.L2978
20650	b	.L3006
20651.L3016:
20652	mov	w0, -1
20653	b	.L2970
20654	.size	FtlWrite, .-FtlWrite
20655	.section	.text.ftl_vendor_write,"ax",@progbits
20656	.align	2
20657	.global	ftl_vendor_write
20658	.type	ftl_vendor_write, %function
20659ftl_vendor_write:
20660	mov	x3, x2
20661	mov	w2, w1
20662	mov	w1, w0
20663	mov	w0, 16
20664	b	FtlWrite
20665	.size	ftl_vendor_write, .-ftl_vendor_write
20666	.section	.text.ftl_sys_write,"ax",@progbits
20667	.align	2
20668	.global	ftl_sys_write
20669	.type	ftl_sys_write, %function
20670ftl_sys_write:
20671	mov	x3, x2
20672	mov	w2, w1
20673	add	w1, w0, 256
20674	mov	w0, 16
20675	b	FtlWrite
20676	.size	ftl_sys_write, .-ftl_sys_write
20677	.section	.text.StorageSysDataStore,"ax",@progbits
20678	.align	2
20679	.global	StorageSysDataStore
20680	.type	StorageSysDataStore, %function
20681StorageSysDataStore:
20682	mov	x3, x1
20683	mov	w2, 1
20684	add	w1, w0, 256
20685	mov	w0, 16
20686	b	FtlWrite
20687	.size	StorageSysDataStore, .-StorageSysDataStore
20688	.section	.text.FlashBootVendorWrite,"ax",@progbits
20689	.align	2
20690	.global	FlashBootVendorWrite
20691	.type	FlashBootVendorWrite, %function
20692FlashBootVendorWrite:
20693	mov	x3, x2
20694	mov	w1, w0
20695	mov	w2, 1
20696	mov	w0, 16
20697	b	FtlWrite
20698	.size	FlashBootVendorWrite, .-FlashBootVendorWrite
20699	.section	.text.ftl_write,"ax",@progbits
20700	.align	2
20701	.global	ftl_write
20702	.type	ftl_write, %function
20703ftl_write:
20704	stp	x29, x30, [sp, -48]!
20705	add	x29, sp, 0
20706	stp	x19, x20, [sp, 16]
20707	mov	w19, w2
20708	stp	x21, x22, [sp, 32]
20709	mov	x20, x3
20710	mov	w22, w1
20711	ands	w21, w0, 255
20712	bne	.L3045
20713	mov	w3, w2
20714	mov	w0, 0
20715	mov	x2, x20
20716	bl	idb_write_data
20717.L3045:
20718	mov	x3, x20
20719	mov	w2, w19
20720	mov	w1, w22
20721	mov	w0, w21
20722	ldp	x19, x20, [sp, 16]
20723	ldp	x21, x22, [sp, 32]
20724	ldp	x29, x30, [sp], 48
20725	b	FtlWrite
20726	.size	ftl_write, .-ftl_write
20727	.section	.text.FtlDumpSysBlock,"ax",@progbits
20728	.align	2
20729	.global	FtlDumpSysBlock
20730	.type	FtlDumpSysBlock, %function
20731FtlDumpSysBlock:
20732	sub	sp, sp, #112
20733	stp	x29, x30, [sp, 16]
20734	add	x29, sp, 16
20735	stp	x25, x26, [sp, 80]
20736	and	w25, w0, 65535
20737	adrp	x0, .LANCHOR189
20738	stp	x21, x22, [sp, 48]
20739	adrp	x21, .LANCHOR211
20740	add	x1, x21, :lo12:.LANCHOR211
20741	ldr	x2, [x0, #:lo12:.LANCHOR189]
20742	adrp	x22, .LANCHOR53
20743	stp	x23, x24, [sp, 64]
20744	lsl	w26, w25, 10
20745	stp	x19, x20, [sp, 32]
20746	adrp	x23, .LC84
20747	str	x27, [sp, 96]
20748	adrp	x24, .LC85
20749	str	x2, [x1, 8]
20750	adrp	x2, .LANCHOR195
20751	add	x22, x22, :lo12:.LANCHOR53
20752	add	x23, x23, :lo12:.LC84
20753	ldr	x2, [x2, #:lo12:.LANCHOR195]
20754	add	x24, x24, :lo12:.LC85
20755	mov	x27, x0
20756	mov	w19, 0
20757	str	x2, [x1, 16]
20758.L3048:
20759	ldrh	w0, [x22]
20760	cmp	w19, w0
20761	blt	.L3050
20762	ldp	x19, x20, [sp, 32]
20763	ldp	x21, x22, [sp, 48]
20764	ldp	x23, x24, [sp, 64]
20765	ldp	x25, x26, [sp, 80]
20766	ldp	x29, x30, [sp, 16]
20767	ldr	x27, [sp, 96]
20768	add	sp, sp, 112
20769	ret
20770.L3050:
20771	add	x20, x21, :lo12:.LANCHOR211
20772	orr	w0, w19, w26
20773	mov	w2, 1
20774	mov	w1, w2
20775	str	w0, [x20, 4]
20776	mov	x0, x20
20777	bl	FlashReadPages
20778	ldp	x1, x0, [x20, 8]
20779	ldr	w2, [x21, #:lo12:.LANCHOR211]
20780	ldr	w3, [x20, 4]
20781	ldr	w1, [x1]
20782	str	w1, [sp]
20783	mov	w1, w25
20784	ldp	w4, w5, [x0]
20785	ldp	w6, w7, [x0, 8]
20786	mov	x0, x23
20787	bl	printf
20788	ldr	x0, [x20, 16]
20789	ldr	w0, [x0]
20790	cmn	w0, #1
20791	beq	.L3049
20792	ldr	x1, [x27, #:lo12:.LANCHOR189]
20793	mov	w3, 768
20794	mov	w2, 4
20795	mov	x0, x24
20796	bl	rknand_print_hex
20797.L3049:
20798	add	w19, w19, 1
20799	sxth	w19, w19
20800	b	.L3048
20801	.size	FtlDumpSysBlock, .-FtlDumpSysBlock
20802	.section	.text.dump_map_info,"ax",@progbits
20803	.align	2
20804	.global	dump_map_info
20805	.type	dump_map_info, %function
20806dump_map_info:
20807	sub	sp, sp, #96
20808	adrp	x0, .LANCHOR40
20809	stp	x29, x30, [sp, 16]
20810	add	x29, sp, 16
20811	stp	x19, x20, [sp, 32]
20812	ldrh	w20, [x0, #:lo12:.LANCHOR40]
20813	stp	x23, x24, [sp, 64]
20814	adrp	x23, .LANCHOR47
20815	stp	x21, x22, [sp, 48]
20816	add	x23, x23, :lo12:.LANCHOR47
20817	adrp	x22, .LANCHOR41
20818	add	x22, x22, :lo12:.LANCHOR41
20819	stp	x25, x26, [sp, 80]
20820	adrp	x24, .LANCHOR38
20821.L3056:
20822	ldrh	w0, [x22]
20823	cmp	w0, w20
20824	bhi	.L3062
20825	adrp	x25, .LANCHOR131
20826	adrp	x19, .LANCHOR211
20827	add	x25, x25, :lo12:.LANCHOR131
20828	add	x19, x19, :lo12:.LANCHOR211
20829	mov	w26, 0
20830.L3063:
20831	ldrh	w0, [x25]
20832	cmp	w26, w0
20833	bge	.L3066
20834	adrp	x21, .LANCHOR53
20835	adrp	x0, .LC51
20836	sbfiz	x23, x26, 1, 32
20837	mov	w20, 0
20838	add	x21, x21, :lo12:.LANCHOR53
20839	add	x24, x0, :lo12:.LC51
20840	b	.L3067
20841.L3058:
20842	ldrb	w0, [x23, x5]
20843	mov	w1, w20
20844	bl	V2P_block
20845	and	w4, w0, 65535
20846	bl	FtlBbmIsBadBlock
20847	cbnz	w0, .L3057
20848	umaddl	x1, w19, w7, x6
20849	lsl	w4, w4, 10
20850	mul	w0, w19, w8
20851	add	w19, w19, 1
20852	and	w19, w19, 65535
20853	asr	w0, w0, 2
20854	str	w4, [x1, 4]
20855	add	x0, x10, x0, sxtw 2
20856	stp	x11, x0, [x1, 8]
20857.L3057:
20858	add	x5, x5, 1
20859.L3064:
20860	cmp	w12, w5, uxth
20861	bhi	.L3058
20862	cbnz	w19, .L3059
20863.L3061:
20864	add	w20, w20, 1
20865	and	w20, w20, 65535
20866	b	.L3056
20867.L3059:
20868	mov	w1, w19
20869	mov	w2, 1
20870	mov	x0, x6
20871	bl	FlashReadPages
20872	mov	w0, 56
20873	adrp	x26, .LC86
20874	add	x26, x26, :lo12:.LC86
20875	mov	x25, 0
20876	umull	x19, w19, w0
20877.L3060:
20878	ldr	x0, [x21, #:lo12:.LANCHOR186]
20879	add	x0, x0, x25
20880	add	x25, x25, 56
20881	ldr	x1, [x0, 16]
20882	ldr	w2, [x0, 4]
20883	ldr	x0, [x0, 8]
20884	ldr	w3, [x0, 4]
20885	str	w3, [sp]
20886	ldr	w7, [x0]
20887	mov	x0, x26
20888	ldp	w3, w4, [x1]
20889	ldp	w5, w6, [x1, 8]
20890	ubfx	x1, x2, 10, 16
20891	bl	printf
20892	cmp	x25, x19
20893	bne	.L3060
20894	b	.L3061
20895.L3062:
20896	adrp	x0, .LANCHOR107
20897	adrp	x21, .LANCHOR186
20898	ldrh	w12, [x24, #:lo12:.LANCHOR38]
20899	mov	x5, 0
20900	ldr	x11, [x0, #:lo12:.LANCHOR107]
20901	adrp	x0, .LANCHOR108
20902	ldr	x6, [x21, #:lo12:.LANCHOR186]
20903	mov	w19, 0
20904	ldr	x10, [x0, #:lo12:.LANCHOR108]
20905	adrp	x0, .LANCHOR58
20906	mov	w7, 56
20907	ldrh	w8, [x0, #:lo12:.LANCHOR58]
20908	b	.L3064
20909.L3065:
20910	adrp	x22, .LANCHOR132
20911	mov	w2, 1
20912	mov	w1, w2
20913	ldr	x0, [x22, #:lo12:.LANCHOR132]
20914	ldrh	w0, [x0, x23]
20915	orr	w0, w20, w0, lsl 10
20916	str	w0, [x19, 4]
20917	mov	x0, x19
20918	bl	FlashReadPages
20919	ldp	x2, x0, [x19, 8]
20920	add	w20, w20, 1
20921	ldr	x1, [x22, #:lo12:.LANCHOR132]
20922	sxth	w20, w20
20923	ldr	w3, [x2, 4]
20924	ldrh	w1, [x1, x23]
20925	str	w3, [sp, 8]
20926	ldr	w2, [x2]
20927	str	w2, [sp]
20928	ldp	w4, w5, [x0]
20929	ldp	w6, w7, [x0, 8]
20930	mov	x0, x24
20931	ldp	w2, w3, [x19]
20932	bl	printf
20933.L3067:
20934	ldrh	w0, [x21]
20935	cmp	w20, w0
20936	blt	.L3065
20937	add	w0, w26, 1
20938	sxth	w26, w0
20939	b	.L3063
20940.L3066:
20941	adrp	x0, .LANCHOR64
20942	mov	w2, 2
20943	adrp	x19, .LANCHOR66
20944	ldr	w3, [x0, #:lo12:.LANCHOR64]
20945	adrp	x0, .LANCHOR132
20946	ldr	x1, [x0, #:lo12:.LANCHOR132]
20947	adrp	x0, .LC87
20948	add	x0, x0, :lo12:.LC87
20949	bl	rknand_print_hex
20950	adrp	x0, .LANCHOR134
20951	ldrh	w3, [x19, #:lo12:.LANCHOR66]
20952	mov	w2, 4
20953	ldr	x1, [x0, #:lo12:.LANCHOR134]
20954	adrp	x0, .LC88
20955	add	x0, x0, :lo12:.LC88
20956	bl	rknand_print_hex
20957	adrp	x0, .LANCHOR203
20958	ldrh	w3, [x19, #:lo12:.LANCHOR66]
20959	ldp	x21, x22, [sp, 48]
20960	mov	w2, 4
20961	ldr	x1, [x0, #:lo12:.LANCHOR203]
20962	adrp	x0, .LC89
20963	ldp	x19, x20, [sp, 32]
20964	add	x0, x0, :lo12:.LC89
20965	ldp	x23, x24, [sp, 64]
20966	ldp	x25, x26, [sp, 80]
20967	ldp	x29, x30, [sp, 16]
20968	add	sp, sp, 96
20969	b	rknand_print_hex
20970	.size	dump_map_info, .-dump_map_info
20971	.global	FtlMallocOffset
20972	.global	FtlMallocBuffer
20973	.global	LastWritenPbaAddr
20974	.global	gc_ink_free_return_value
20975	.global	check_valid_page_count_table
20976	.global	FtlUpdateVaildLpnCount
20977	.global	g_ect_tbl_power_up_flush
20978	.global	last_cache_match_count
20979	.global	power_up_flag
20980	.global	g_LowFormat
20981	.global	gFtlInitStatus
20982	.global	DeviceCapacity
20983	.global	ToshibaRefValue
20984	.global	Toshiba15RefValue
20985	.global	ToshibaA19RefValue
20986	.global	SamsungRefValue
20987	.global	refValueDefault
20988	.global	random_seed
20989	.global	gSlcNandParaInfo
20990	.global	gNandParaInfo
20991	.global	g_page_map_check_enable
20992	.global	g_power_lost_ecc_error_blk
20993	.global	g_power_lost_recovery_flag
20994	.global	c_mlc_erase_count_value
20995	.global	g_recovery_ppa_tbl
20996	.global	g_recovery_page_min_ver
20997	.global	g_recovery_page_num
20998	.global	g_cur_erase_blk
20999	.global	g_gc_skip_write_count
21000	.global	g_gc_head_data_block_count
21001	.global	g_gc_head_data_block
21002	.global	g_ftl_nand_free_count
21003	.global	g_in_swl_replace
21004	.global	g_in_gc_progress
21005	.global	g_all_blk_used_slc_mode
21006	.global	g_max_erase_count
21007	.global	g_totle_sys_slc_erase_count
21008	.global	g_totle_slc_erase_count
21009	.global	g_min_erase_count
21010	.global	g_totle_avg_erase_count
21011	.global	g_totle_mlc_erase_count
21012	.global	g_totle_l2p_write_count
21013	.global	g_totle_cache_write_count
21014	.global	g_tmp_data_superblock_id
21015	.global	g_totle_read_page_count
21016	.global	g_totle_discard_page_count
21017	.global	g_totle_read_sector
21018	.global	g_totle_write_sector
21019	.global	g_totle_write_page_count
21020	.global	g_totle_gc_page_count
21021	.global	g_gc_blk_index
21022	.global	g_gc_merge_free_blk_threshold
21023	.global	g_gc_free_blk_threshold
21024	.global	g_gc_refresh_block_temp_tbl
21025	.global	g_free_slc_blk_num
21026	.global	g_gc_refresh_block_temp_num
21027	.global	g_gc_bad_block_temp_tbl
21028	.global	g_gc_bad_block_gc_index
21029	.global	g_gc_bad_block_temp_num
21030	.global	g_gc_next_blk_3
21031	.global	g_gc_next_blk_2
21032	.global	g_gc_next_blk_1
21033	.global	g_gc_next_blk
21034	.global	g_gc_cur_blk_max_valid_pages
21035	.global	g_gc_cur_blk_valid_pages
21036	.global	g_gc_page_offset
21037	.global	g_gc_blk_num
21038	.global	p_gc_blk_tbl
21039	.global	p_gc_page_info
21040	.global	g_sys_ext_data
21041	.global	g_sys_save_data
21042	.global	gp_last_act_superblock
21043	.global	g_gc_superblock
21044	.global	g_gc_temp_superblock
21045	.global	g_buffer_superblock
21046	.global	g_active_superblock
21047	.global	g_num_data_superblocks
21048	.global	g_num_free_superblocks
21049	.global	p_data_block_list_tail
21050	.global	p_data_block_list_head
21051	.global	p_free_data_block_list_head
21052	.global	p_data_block_list_table
21053	.global	g_l2p_last_update_region_id
21054	.global	p_l2p_map_buf
21055	.global	p_l2p_ram_map
21056	.global	g_totle_vendor_block
21057	.global	p_vendor_region_ppn_table
21058	.global	p_vendor_block_ver_table
21059	.global	p_vendor_block_valid_page_count
21060	.global	p_vendor_block_table
21061	.global	g_totle_map_block
21062	.global	p_map_region_ppn_check_table
21063	.global	p_map_region_ppn_table
21064	.global	p_map_block_ver_table
21065	.global	p_map_block_valid_page_count
21066	.global	p_map_block_table
21067	.global	p_blk_mode_table
21068	.global	p_valid_page_count_table
21069	.global	g_totle_swl_count
21070	.global	p_swl_mul_table
21071	.global	p_erase_count_table
21072	.global	g_ect_tbl_info_size
21073	.global	gp_ect_tbl_info
21074	.global	g_gc_num_req
21075	.global	c_gc_page_buf_num
21076	.global	gp_gc_page_buf_info
21077	.global	p_gc_data_buf
21078	.global	p_gc_spare_buf
21079	.global	p_io_spare_buf
21080	.global	p_io_data_buf_1
21081	.global	p_io_data_buf_0
21082	.global	p_sys_spare_buf
21083	.global	p_vendor_data_buf
21084	.global	p_sys_data_buf_1
21085	.global	p_sys_data_buf
21086	.global	g_wr_page_num
21087	.global	req_wr_io
21088	.global	c_wr_page_buf_num
21089	.global	p_wr_io_data_buf
21090	.global	p_wr_io_spare_buf
21091	.global	p_plane_order_table
21092	.global	g_req_cache
21093	.global	req_gc_dst
21094	.global	req_gc
21095	.global	req_erase
21096	.global	req_prgm
21097	.global	req_read
21098	.global	req_sys
21099	.global	gVendorBlkInfo
21100	.global	gL2pMapInfo
21101	.global	gSysFreeQueue
21102	.global	gSysInfo
21103	.global	gBbtInfo
21104	.global	g_flash_read_only_en
21105	.global	g_inkDie_check_enable
21106	.global	g_SlcPartLbaEndSector
21107	.global	g_MaxLbn
21108	.global	g_VaildLpn
21109	.global	g_MaxLpn
21110	.global	g_MaxLbaSector
21111	.global	g_GlobalDataVersion
21112	.global	g_GlobalSysVersion
21113	.global	ftl_gc_temp_power_lost_recovery_flag
21114	.global	c_ftl_nand_max_data_blks
21115	.global	c_ftl_nand_data_op_blks_per_plane
21116	.global	c_ftl_nand_data_blks_per_plane
21117	.global	c_ftl_nand_max_sys_blks
21118	.global	c_ftl_nand_init_sys_blks_per_plane
21119	.global	c_ftl_nand_sys_blks_per_plane
21120	.global	c_ftl_vendor_part_size
21121	.global	c_ftl_nand_max_vendor_blks
21122	.global	c_ftl_nand_max_map_blks
21123	.global	c_ftl_nand_map_blks_per_plane
21124	.global	c_ftl_nand_vendor_region_num
21125	.global	c_ftl_nand_l2pmap_ram_region_num
21126	.global	c_ftl_nand_map_region_num
21127	.global	c_ftl_nand_totle_phy_blks
21128	.global	c_ftl_nand_reserved_blks
21129	.global	c_ftl_nand_byte_pre_oob
21130	.global	c_ftl_nand_byte_pre_page
21131	.global	c_ftl_nand_sec_pre_page_shift
21132	.global	c_ftl_nand_sec_pre_page
21133	.global	c_ftl_nand_page_pre_super_blk
21134	.global	c_ftl_nand_page_pre_slc_blk
21135	.global	c_ftl_nand_page_pre_blk
21136	.global	c_ftl_nand_bbm_buf_size
21137	.global	c_ftl_nand_ext_blk_pre_plane
21138	.global	c_ftl_nand_blk_pre_plane
21139	.global	c_ftl_nand_planes_num
21140	.global	c_ftl_nand_blks_per_die
21141	.global	c_ftl_nand_planes_per_die
21142	.global	c_ftl_nand_die_num
21143	.global	c_ftl_nand_type
21144	.global	gMasterTempBuf
21145	.global	gMasterInfo
21146	.global	gNandcDumpWriteEn
21147	.global	gToggleModeClkDiv
21148	.global	gBootDdrMode
21149	.global	gNandcEccBits
21150	.global	gpNandc1
21151	.global	gpNandc
21152	.global	g_nandc_version_data
21153	.global	gNandcVer
21154	.global	gNandChipMap
21155	.global	gNandIDataBuf
21156	.global	idb_flash_slc_mode
21157	.global	FlashDdrTunningReadCount
21158	.global	FlashWaitBusyScheduleEn
21159	.global	gNandPhyInfo
21160	.global	gFlashProgCheckSpareBuffer
21161	.global	gFlashProgCheckBuffer
21162	.global	gFlashSpareBuffer
21163	.global	gFlashPageBuffer1
21164	.global	gFlashPageBuffer0
21165	.global	gpFlashSaveInfo
21166	.global	gReadRetryInfo
21167	.global	gpNandParaInfo
21168	.global	gNandOptPara
21169	.global	g_nand_ecc_en
21170	.global	g_slc2KBNand
21171	.global	g_maxRetryCount
21172	.global	g_maxRegNum
21173	.global	g_retryMode
21174	.global	gNandIDBResBlkNumSaveInFlash
21175	.global	gNandIDBResBlkNum
21176	.global	gNandFlashResEndPageAddr
21177	.global	gNandFlashInfoBlockAddr
21178	.global	gNandFlashIdbBlockAddr
21179	.global	gNandFlashInfoBlockEcc
21180	.global	gNandFlashIDBEccBits
21181	.global	gNandFlashEccBits
21182	.global	gNandRandomizer
21183	.global	gBlockPageAlignSize
21184	.global	gTotleBlock
21185	.global	gNandMaxChip
21186	.global	gNandMaxDie
21187	.global	gFlashInterfaceMode
21188	.global	gFlashCurMode
21189	.global	gFlashSlcMode
21190	.global	gFlashOnfiModeEn
21191	.global	gFlashToggleModeEn
21192	.global	gFlashSdrModeEn
21193	.global	gMultiPageProgEn
21194	.global	gMultiPageReadEn
21195	.global	gpReadRetrial
21196	.global	mlcPageToSlcPageTbl
21197	.global	slcPageToMlcPageTbl
21198	.global	DieAddrs
21199	.global	gDieOp
21200	.global	DieCsIndex
21201	.global	IDByte
21202	.global	read_retry_cur_offset
21203	.section	.bss.DeviceCapacity,"aw",@nobits
21204	.align	2
21205	.set	.LANCHOR60,. + 0
21206	.type	DeviceCapacity, %object
21207	.size	DeviceCapacity, 4
21208DeviceCapacity:
21209	.zero	4
21210	.section	.bss.DieAddrs,"aw",@nobits
21211	.align	2
21212	.set	.LANCHOR18,. + 0
21213	.type	DieAddrs, %object
21214	.size	DieAddrs, 32
21215DieAddrs:
21216	.zero	32
21217	.section	.bss.DieCsIndex,"aw",@nobits
21218	.align	2
21219	.set	.LANCHOR27,. + 0
21220	.type	DieCsIndex, %object
21221	.size	DieCsIndex, 8
21222DieCsIndex:
21223	.zero	8
21224	.section	.bss.FlashDdrTunningReadCount,"aw",@nobits
21225	.align	2
21226	.set	.LANCHOR147,. + 0
21227	.type	FlashDdrTunningReadCount, %object
21228	.size	FlashDdrTunningReadCount, 4
21229FlashDdrTunningReadCount:
21230	.zero	4
21231	.section	.bss.FlashWaitBusyScheduleEn,"aw",@nobits
21232	.align	2
21233	.type	FlashWaitBusyScheduleEn, %object
21234	.size	FlashWaitBusyScheduleEn, 4
21235FlashWaitBusyScheduleEn:
21236	.zero	4
21237	.section	.bss.FtlMallocBuffer,"aw",@nobits
21238	.align	6
21239	.type	FtlMallocBuffer, %object
21240	.size	FtlMallocBuffer, 1310720
21241FtlMallocBuffer:
21242	.zero	1310720
21243	.section	.bss.FtlUpdateVaildLpnCount,"aw",@nobits
21244	.align	1
21245	.set	.LANCHOR101,. + 0
21246	.type	FtlUpdateVaildLpnCount, %object
21247	.size	FtlUpdateVaildLpnCount, 2
21248FtlUpdateVaildLpnCount:
21249	.zero	2
21250	.section	.bss.IDByte,"aw",@nobits
21251	.align	2
21252	.set	.LANCHOR22,. + 0
21253	.type	IDByte, %object
21254	.size	IDByte, 32
21255IDByte:
21256	.zero	32
21257	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",@nobits
21258	.align	1
21259	.set	.LANCHOR126,. + 0
21260	.type	c_ftl_nand_bbm_buf_size, %object
21261	.size	c_ftl_nand_bbm_buf_size, 2
21262c_ftl_nand_bbm_buf_size:
21263	.zero	2
21264	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",@nobits
21265	.align	1
21266	.set	.LANCHOR41,. + 0
21267	.type	c_ftl_nand_blk_pre_plane, %object
21268	.size	c_ftl_nand_blk_pre_plane, 2
21269c_ftl_nand_blk_pre_plane:
21270	.zero	2
21271	.section	.bss.c_ftl_nand_blks_per_die,"aw",@nobits
21272	.align	1
21273	.set	.LANCHOR51,. + 0
21274	.type	c_ftl_nand_blks_per_die, %object
21275	.size	c_ftl_nand_blks_per_die, 2
21276c_ftl_nand_blks_per_die:
21277	.zero	2
21278	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",@nobits
21279	.align	1
21280	.set	.LANCHOR58,. + 0
21281	.type	c_ftl_nand_byte_pre_oob, %object
21282	.size	c_ftl_nand_byte_pre_oob, 2
21283c_ftl_nand_byte_pre_oob:
21284	.zero	2
21285	.section	.bss.c_ftl_nand_byte_pre_page,"aw",@nobits
21286	.align	1
21287	.set	.LANCHOR57,. + 0
21288	.type	c_ftl_nand_byte_pre_page, %object
21289	.size	c_ftl_nand_byte_pre_page, 2
21290c_ftl_nand_byte_pre_page:
21291	.zero	2
21292	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits
21293	.align	1
21294	.set	.LANCHOR40,. + 0
21295	.type	c_ftl_nand_data_blks_per_plane, %object
21296	.size	c_ftl_nand_data_blks_per_plane, 2
21297c_ftl_nand_data_blks_per_plane:
21298	.zero	2
21299	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits
21300	.align	1
21301	.set	.LANCHOR232,. + 0
21302	.type	c_ftl_nand_data_op_blks_per_plane, %object
21303	.size	c_ftl_nand_data_op_blks_per_plane, 2
21304c_ftl_nand_data_op_blks_per_plane:
21305	.zero	2
21306	.section	.bss.c_ftl_nand_die_num,"aw",@nobits
21307	.align	1
21308	.set	.LANCHOR45,. + 0
21309	.type	c_ftl_nand_die_num, %object
21310	.size	c_ftl_nand_die_num, 2
21311c_ftl_nand_die_num:
21312	.zero	2
21313	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits
21314	.align	1
21315	.set	.LANCHOR49,. + 0
21316	.type	c_ftl_nand_ext_blk_pre_plane, %object
21317	.size	c_ftl_nand_ext_blk_pre_plane, 2
21318c_ftl_nand_ext_blk_pre_plane:
21319	.zero	2
21320	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits
21321	.align	2
21322	.set	.LANCHOR65,. + 0
21323	.type	c_ftl_nand_init_sys_blks_per_plane, %object
21324	.size	c_ftl_nand_init_sys_blks_per_plane, 4
21325c_ftl_nand_init_sys_blks_per_plane:
21326	.zero	4
21327	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits
21328	.align	1
21329	.set	.LANCHOR67,. + 0
21330	.type	c_ftl_nand_l2pmap_ram_region_num, %object
21331	.size	c_ftl_nand_l2pmap_ram_region_num, 2
21332c_ftl_nand_l2pmap_ram_region_num:
21333	.zero	2
21334	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits
21335	.align	1
21336	.set	.LANCHOR63,. + 0
21337	.type	c_ftl_nand_map_blks_per_plane, %object
21338	.size	c_ftl_nand_map_blks_per_plane, 2
21339c_ftl_nand_map_blks_per_plane:
21340	.zero	2
21341	.section	.bss.c_ftl_nand_map_region_num,"aw",@nobits
21342	.align	1
21343	.set	.LANCHOR66,. + 0
21344	.type	c_ftl_nand_map_region_num, %object
21345	.size	c_ftl_nand_map_region_num, 2
21346c_ftl_nand_map_region_num:
21347	.zero	2
21348	.section	.bss.c_ftl_nand_max_data_blks,"aw",@nobits
21349	.align	2
21350	.set	.LANCHOR42,. + 0
21351	.type	c_ftl_nand_max_data_blks, %object
21352	.size	c_ftl_nand_max_data_blks, 4
21353c_ftl_nand_max_data_blks:
21354	.zero	4
21355	.section	.bss.c_ftl_nand_max_map_blks,"aw",@nobits
21356	.align	2
21357	.set	.LANCHOR64,. + 0
21358	.type	c_ftl_nand_max_map_blks, %object
21359	.size	c_ftl_nand_max_map_blks, 4
21360c_ftl_nand_max_map_blks:
21361	.zero	4
21362	.section	.bss.c_ftl_nand_max_sys_blks,"aw",@nobits
21363	.align	2
21364	.set	.LANCHOR39,. + 0
21365	.type	c_ftl_nand_max_sys_blks, %object
21366	.size	c_ftl_nand_max_sys_blks, 4
21367c_ftl_nand_max_sys_blks:
21368	.zero	4
21369	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",@nobits
21370	.align	1
21371	.set	.LANCHOR61,. + 0
21372	.type	c_ftl_nand_max_vendor_blks, %object
21373	.size	c_ftl_nand_max_vendor_blks, 2
21374c_ftl_nand_max_vendor_blks:
21375	.zero	2
21376	.section	.bss.c_ftl_nand_page_pre_blk,"aw",@nobits
21377	.align	1
21378	.set	.LANCHOR52,. + 0
21379	.type	c_ftl_nand_page_pre_blk, %object
21380	.size	c_ftl_nand_page_pre_blk, 2
21381c_ftl_nand_page_pre_blk:
21382	.zero	2
21383	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits
21384	.align	1
21385	.set	.LANCHOR53,. + 0
21386	.type	c_ftl_nand_page_pre_slc_blk, %object
21387	.size	c_ftl_nand_page_pre_slc_blk, 2
21388c_ftl_nand_page_pre_slc_blk:
21389	.zero	2
21390	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits
21391	.align	1
21392	.set	.LANCHOR54,. + 0
21393	.type	c_ftl_nand_page_pre_super_blk, %object
21394	.size	c_ftl_nand_page_pre_super_blk, 2
21395c_ftl_nand_page_pre_super_blk:
21396	.zero	2
21397	.section	.bss.c_ftl_nand_planes_num,"aw",@nobits
21398	.align	1
21399	.set	.LANCHOR38,. + 0
21400	.type	c_ftl_nand_planes_num, %object
21401	.size	c_ftl_nand_planes_num, 2
21402c_ftl_nand_planes_num:
21403	.zero	2
21404	.section	.bss.c_ftl_nand_planes_per_die,"aw",@nobits
21405	.align	1
21406	.set	.LANCHOR46,. + 0
21407	.type	c_ftl_nand_planes_per_die, %object
21408	.size	c_ftl_nand_planes_per_die, 2
21409c_ftl_nand_planes_per_die:
21410	.zero	2
21411	.section	.bss.c_ftl_nand_reserved_blks,"aw",@nobits
21412	.align	1
21413	.set	.LANCHOR59,. + 0
21414	.type	c_ftl_nand_reserved_blks, %object
21415	.size	c_ftl_nand_reserved_blks, 2
21416c_ftl_nand_reserved_blks:
21417	.zero	2
21418	.section	.bss.c_ftl_nand_sec_pre_page,"aw",@nobits
21419	.align	1
21420	.set	.LANCHOR55,. + 0
21421	.type	c_ftl_nand_sec_pre_page, %object
21422	.size	c_ftl_nand_sec_pre_page, 2
21423c_ftl_nand_sec_pre_page:
21424	.zero	2
21425	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits
21426	.align	1
21427	.set	.LANCHOR56,. + 0
21428	.type	c_ftl_nand_sec_pre_page_shift, %object
21429	.size	c_ftl_nand_sec_pre_page_shift, 2
21430c_ftl_nand_sec_pre_page_shift:
21431	.zero	2
21432	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits
21433	.align	2
21434	.set	.LANCHOR37,. + 0
21435	.type	c_ftl_nand_sys_blks_per_plane, %object
21436	.size	c_ftl_nand_sys_blks_per_plane, 4
21437c_ftl_nand_sys_blks_per_plane:
21438	.zero	4
21439	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",@nobits
21440	.align	2
21441	.set	.LANCHOR43,. + 0
21442	.type	c_ftl_nand_totle_phy_blks, %object
21443	.size	c_ftl_nand_totle_phy_blks, 4
21444c_ftl_nand_totle_phy_blks:
21445	.zero	4
21446	.section	.bss.c_ftl_nand_type,"aw",@nobits
21447	.align	1
21448	.set	.LANCHOR44,. + 0
21449	.type	c_ftl_nand_type, %object
21450	.size	c_ftl_nand_type, 2
21451c_ftl_nand_type:
21452	.zero	2
21453	.section	.bss.c_ftl_nand_vendor_region_num,"aw",@nobits
21454	.align	1
21455	.set	.LANCHOR62,. + 0
21456	.type	c_ftl_nand_vendor_region_num, %object
21457	.size	c_ftl_nand_vendor_region_num, 2
21458c_ftl_nand_vendor_region_num:
21459	.zero	2
21460	.section	.bss.c_ftl_vendor_part_size,"aw",@nobits
21461	.align	1
21462	.set	.LANCHOR50,. + 0
21463	.type	c_ftl_vendor_part_size, %object
21464	.size	c_ftl_vendor_part_size, 2
21465c_ftl_vendor_part_size:
21466	.zero	2
21467	.section	.bss.c_gc_page_buf_num,"aw",@nobits
21468	.align	2
21469	.set	.LANCHOR110,. + 0
21470	.type	c_gc_page_buf_num, %object
21471	.size	c_gc_page_buf_num, 4
21472c_gc_page_buf_num:
21473	.zero	4
21474	.section	.bss.c_mlc_erase_count_value,"aw",@nobits
21475	.align	1
21476	.set	.LANCHOR48,. + 0
21477	.type	c_mlc_erase_count_value, %object
21478	.size	c_mlc_erase_count_value, 2
21479c_mlc_erase_count_value:
21480	.zero	2
21481	.section	.bss.c_wr_page_buf_num,"aw",@nobits
21482	.align	2
21483	.set	.LANCHOR185,. + 0
21484	.type	c_wr_page_buf_num, %object
21485	.size	c_wr_page_buf_num, 4
21486c_wr_page_buf_num:
21487	.zero	4
21488	.section	.bss.check_valid_page_count_table,"aw",@nobits
21489	.align	3
21490	.type	check_valid_page_count_table, %object
21491	.size	check_valid_page_count_table, 8192
21492check_valid_page_count_table:
21493	.zero	8192
21494	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits
21495	.align	2
21496	.set	.LANCHOR138,. + 0
21497	.type	ftl_gc_temp_power_lost_recovery_flag, %object
21498	.size	ftl_gc_temp_power_lost_recovery_flag, 4
21499ftl_gc_temp_power_lost_recovery_flag:
21500	.zero	4
21501	.section	.bss.gBbtInfo,"aw",@nobits
21502	.align	3
21503	.set	.LANCHOR76,. + 0
21504	.type	gBbtInfo, %object
21505	.size	gBbtInfo, 96
21506gBbtInfo:
21507	.zero	96
21508	.section	.bss.gBlockPageAlignSize,"aw",@nobits
21509	.align	2
21510	.set	.LANCHOR4,. + 0
21511	.type	gBlockPageAlignSize, %object
21512	.size	gBlockPageAlignSize, 4
21513gBlockPageAlignSize:
21514	.zero	4
21515	.section	.bss.gBootDdrMode,"aw",@nobits
21516	.align	2
21517	.set	.LANCHOR160,. + 0
21518	.type	gBootDdrMode, %object
21519	.size	gBootDdrMode, 4
21520gBootDdrMode:
21521	.zero	4
21522	.section	.bss.gDieOp,"aw",@nobits
21523	.align	2
21524	.set	.LANCHOR23,. + 0
21525	.type	gDieOp, %object
21526	.size	gDieOp, 192
21527gDieOp:
21528	.zero	192
21529	.section	.bss.gFlashCurMode,"aw",@nobits
21530	.set	.LANCHOR24,. + 0
21531	.type	gFlashCurMode, %object
21532	.size	gFlashCurMode, 1
21533gFlashCurMode:
21534	.zero	1
21535	.section	.bss.gFlashInterfaceMode,"aw",@nobits
21536	.set	.LANCHOR25,. + 0
21537	.type	gFlashInterfaceMode, %object
21538	.size	gFlashInterfaceMode, 1
21539gFlashInterfaceMode:
21540	.zero	1
21541	.section	.bss.gFlashOnfiModeEn,"aw",@nobits
21542	.type	gFlashOnfiModeEn, %object
21543	.size	gFlashOnfiModeEn, 1
21544gFlashOnfiModeEn:
21545	.zero	1
21546	.section	.bss.gFlashPageBuffer0,"aw",@nobits
21547	.align	3
21548	.set	.LANCHOR154,. + 0
21549	.type	gFlashPageBuffer0, %object
21550	.size	gFlashPageBuffer0, 8
21551gFlashPageBuffer0:
21552	.zero	8
21553	.section	.bss.gFlashPageBuffer1,"aw",@nobits
21554	.align	3
21555	.set	.LANCHOR152,. + 0
21556	.type	gFlashPageBuffer1, %object
21557	.size	gFlashPageBuffer1, 8
21558gFlashPageBuffer1:
21559	.zero	8
21560	.section	.bss.gFlashProgCheckBuffer,"aw",@nobits
21561	.align	3
21562	.set	.LANCHOR206,. + 0
21563	.type	gFlashProgCheckBuffer, %object
21564	.size	gFlashProgCheckBuffer, 8
21565gFlashProgCheckBuffer:
21566	.zero	8
21567	.section	.bss.gFlashProgCheckSpareBuffer,"aw",@nobits
21568	.align	3
21569	.set	.LANCHOR207,. + 0
21570	.type	gFlashProgCheckSpareBuffer, %object
21571	.size	gFlashProgCheckSpareBuffer, 8
21572gFlashProgCheckSpareBuffer:
21573	.zero	8
21574	.section	.bss.gFlashSdrModeEn,"aw",@nobits
21575	.type	gFlashSdrModeEn, %object
21576	.size	gFlashSdrModeEn, 1
21577gFlashSdrModeEn:
21578	.zero	1
21579	.section	.bss.gFlashSlcMode,"aw",@nobits
21580	.set	.LANCHOR16,. + 0
21581	.type	gFlashSlcMode, %object
21582	.size	gFlashSlcMode, 1
21583gFlashSlcMode:
21584	.zero	1
21585	.section	.bss.gFlashSpareBuffer,"aw",@nobits
21586	.align	3
21587	.set	.LANCHOR205,. + 0
21588	.type	gFlashSpareBuffer, %object
21589	.size	gFlashSpareBuffer, 8
21590gFlashSpareBuffer:
21591	.zero	8
21592	.section	.bss.gFlashToggleModeEn,"aw",@nobits
21593	.set	.LANCHOR30,. + 0
21594	.type	gFlashToggleModeEn, %object
21595	.size	gFlashToggleModeEn, 1
21596gFlashToggleModeEn:
21597	.zero	1
21598	.section	.bss.gL2pMapInfo,"aw",@nobits
21599	.align	3
21600	.set	.LANCHOR130,. + 0
21601	.type	gL2pMapInfo, %object
21602	.size	gL2pMapInfo, 64
21603gL2pMapInfo:
21604	.zero	64
21605	.section	.bss.gMasterInfo,"aw",@nobits
21606	.align	3
21607	.set	.LANCHOR35,. + 0
21608	.type	gMasterInfo, %object
21609	.size	gMasterInfo, 48
21610gMasterInfo:
21611	.zero	48
21612	.section	.bss.gMasterTempBuf,"aw",@nobits
21613	.align	3
21614	.set	.LANCHOR161,. + 0
21615	.type	gMasterTempBuf, %object
21616	.size	gMasterTempBuf, 8
21617gMasterTempBuf:
21618	.zero	8
21619	.section	.bss.gMultiPageProgEn,"aw",@nobits
21620	.set	.LANCHOR28,. + 0
21621	.type	gMultiPageProgEn, %object
21622	.size	gMultiPageProgEn, 1
21623gMultiPageProgEn:
21624	.zero	1
21625	.section	.bss.gMultiPageReadEn,"aw",@nobits
21626	.set	.LANCHOR210,. + 0
21627	.type	gMultiPageReadEn, %object
21628	.size	gMultiPageReadEn, 1
21629gMultiPageReadEn:
21630	.zero	1
21631	.section	.bss.gNandChipMap,"aw",@nobits
21632	.align	3
21633	.set	.LANCHOR0,. + 0
21634	.type	gNandChipMap, %object
21635	.size	gNandChipMap, 64
21636gNandChipMap:
21637	.zero	64
21638	.section	.bss.gNandFlashEccBits,"aw",@nobits
21639	.set	.LANCHOR33,. + 0
21640	.type	gNandFlashEccBits, %object
21641	.size	gNandFlashEccBits, 1
21642gNandFlashEccBits:
21643	.zero	1
21644	.section	.bss.gNandFlashIDBEccBits,"aw",@nobits
21645	.set	.LANCHOR158,. + 0
21646	.type	gNandFlashIDBEccBits, %object
21647	.size	gNandFlashIDBEccBits, 1
21648gNandFlashIDBEccBits:
21649	.zero	1
21650	.section	.bss.gNandFlashIdbBlockAddr,"aw",@nobits
21651	.align	2
21652	.set	.LANCHOR156,. + 0
21653	.type	gNandFlashIdbBlockAddr, %object
21654	.size	gNandFlashIdbBlockAddr, 4
21655gNandFlashIdbBlockAddr:
21656	.zero	4
21657	.section	.bss.gNandFlashInfoBlockAddr,"aw",@nobits
21658	.align	2
21659	.set	.LANCHOR155,. + 0
21660	.type	gNandFlashInfoBlockAddr, %object
21661	.size	gNandFlashInfoBlockAddr, 4
21662gNandFlashInfoBlockAddr:
21663	.zero	4
21664	.section	.bss.gNandFlashInfoBlockEcc,"aw",@nobits
21665	.type	gNandFlashInfoBlockEcc, %object
21666	.size	gNandFlashInfoBlockEcc, 1
21667gNandFlashInfoBlockEcc:
21668	.zero	1
21669	.section	.bss.gNandFlashResEndPageAddr,"aw",@nobits
21670	.align	2
21671	.type	gNandFlashResEndPageAddr, %object
21672	.size	gNandFlashResEndPageAddr, 4
21673gNandFlashResEndPageAddr:
21674	.zero	4
21675	.section	.bss.gNandIDBResBlkNum,"aw",@nobits
21676	.set	.LANCHOR3,. + 0
21677	.type	gNandIDBResBlkNum, %object
21678	.size	gNandIDBResBlkNum, 1
21679gNandIDBResBlkNum:
21680	.zero	1
21681	.section	.bss.gNandIDBResBlkNumSaveInFlash,"aw",@nobits
21682	.set	.LANCHOR157,. + 0
21683	.type	gNandIDBResBlkNumSaveInFlash, %object
21684	.size	gNandIDBResBlkNumSaveInFlash, 1
21685gNandIDBResBlkNumSaveInFlash:
21686	.zero	1
21687	.section	.bss.gNandIDataBuf,"aw",@nobits
21688	.align	3
21689	.set	.LANCHOR144,. + 0
21690	.type	gNandIDataBuf, %object
21691	.size	gNandIDataBuf, 2048
21692gNandIDataBuf:
21693	.zero	2048
21694	.section	.bss.gNandMaxChip,"aw",@nobits
21695	.set	.LANCHOR124,. + 0
21696	.type	gNandMaxChip, %object
21697	.size	gNandMaxChip, 1
21698gNandMaxChip:
21699	.zero	1
21700	.section	.bss.gNandMaxDie,"aw",@nobits
21701	.set	.LANCHOR26,. + 0
21702	.type	gNandMaxDie, %object
21703	.size	gNandMaxDie, 1
21704gNandMaxDie:
21705	.zero	1
21706	.section	.bss.gNandOptPara,"aw",@nobits
21707	.align	3
21708	.set	.LANCHOR8,. + 0
21709	.type	gNandOptPara, %object
21710	.size	gNandOptPara, 32
21711gNandOptPara:
21712	.zero	32
21713	.section	.bss.gNandPhyInfo,"aw",@nobits
21714	.align	3
21715	.set	.LANCHOR15,. + 0
21716	.type	gNandPhyInfo, %object
21717	.size	gNandPhyInfo, 28
21718gNandPhyInfo:
21719	.zero	28
21720	.section	.bss.gNandRandomizer,"aw",@nobits
21721	.set	.LANCHOR6,. + 0
21722	.type	gNandRandomizer, %object
21723	.size	gNandRandomizer, 1
21724gNandRandomizer:
21725	.zero	1
21726	.section	.bss.gNandcDumpWriteEn,"aw",@nobits
21727	.align	2
21728	.set	.LANCHOR36,. + 0
21729	.type	gNandcDumpWriteEn, %object
21730	.size	gNandcDumpWriteEn, 4
21731gNandcDumpWriteEn:
21732	.zero	4
21733	.section	.bss.gNandcEccBits,"aw",@nobits
21734	.align	2
21735	.set	.LANCHOR32,. + 0
21736	.type	gNandcEccBits, %object
21737	.size	gNandcEccBits, 4
21738gNandcEccBits:
21739	.zero	4
21740	.section	.bss.gNandcVer,"aw",@nobits
21741	.align	2
21742	.set	.LANCHOR34,. + 0
21743	.type	gNandcVer, %object
21744	.size	gNandcVer, 4
21745gNandcVer:
21746	.zero	4
21747	.section	.bss.gReadRetryInfo,"aw",@nobits
21748	.align	3
21749	.set	.LANCHOR20,. + 0
21750	.type	gReadRetryInfo, %object
21751	.size	gReadRetryInfo, 852
21752gReadRetryInfo:
21753	.zero	852
21754	.section	.bss.gSysFreeQueue,"aw",@nobits
21755	.align	3
21756	.set	.LANCHOR77,. + 0
21757	.type	gSysFreeQueue, %object
21758	.size	gSysFreeQueue, 2056
21759gSysFreeQueue:
21760	.zero	2056
21761	.section	.bss.gSysInfo,"aw",@nobits
21762	.align	3
21763	.set	.LANCHOR218,. + 0
21764	.type	gSysInfo, %object
21765	.size	gSysInfo, 16
21766gSysInfo:
21767	.zero	16
21768	.section	.bss.gToggleModeClkDiv,"aw",@nobits
21769	.align	2
21770	.type	gToggleModeClkDiv, %object
21771	.size	gToggleModeClkDiv, 4
21772gToggleModeClkDiv:
21773	.zero	4
21774	.section	.bss.gTotleBlock,"aw",@nobits
21775	.align	1
21776	.set	.LANCHOR125,. + 0
21777	.type	gTotleBlock, %object
21778	.size	gTotleBlock, 2
21779gTotleBlock:
21780	.zero	2
21781	.section	.bss.gVendorBlkInfo,"aw",@nobits
21782	.align	3
21783	.set	.LANCHOR224,. + 0
21784	.type	gVendorBlkInfo, %object
21785	.size	gVendorBlkInfo, 64
21786gVendorBlkInfo:
21787	.zero	64
21788	.section	.bss.g_GlobalDataVersion,"aw",@nobits
21789	.align	2
21790	.set	.LANCHOR165,. + 0
21791	.type	g_GlobalDataVersion, %object
21792	.size	g_GlobalDataVersion, 4
21793g_GlobalDataVersion:
21794	.zero	4
21795	.section	.bss.g_GlobalSysVersion,"aw",@nobits
21796	.align	2
21797	.set	.LANCHOR164,. + 0
21798	.type	g_GlobalSysVersion, %object
21799	.size	g_GlobalSysVersion, 4
21800g_GlobalSysVersion:
21801	.zero	4
21802	.section	.bss.g_LowFormat,"aw",@nobits
21803	.align	2
21804	.set	.LANCHOR254,. + 0
21805	.type	g_LowFormat, %object
21806	.size	g_LowFormat, 4
21807g_LowFormat:
21808	.zero	4
21809	.section	.bss.g_MaxLbaSector,"aw",@nobits
21810	.align	2
21811	.set	.LANCHOR68,. + 0
21812	.type	g_MaxLbaSector, %object
21813	.size	g_MaxLbaSector, 4
21814g_MaxLbaSector:
21815	.zero	4
21816	.section	.bss.g_MaxLbn,"aw",@nobits
21817	.align	2
21818	.set	.LANCHOR231,. + 0
21819	.type	g_MaxLbn, %object
21820	.size	g_MaxLbn, 4
21821g_MaxLbn:
21822	.zero	4
21823	.section	.bss.g_MaxLpn,"aw",@nobits
21824	.align	2
21825	.set	.LANCHOR74,. + 0
21826	.type	g_MaxLpn, %object
21827	.size	g_MaxLpn, 4
21828g_MaxLpn:
21829	.zero	4
21830	.section	.bss.g_SlcPartLbaEndSector,"aw",@nobits
21831	.align	2
21832	.set	.LANCHOR162,. + 0
21833	.type	g_SlcPartLbaEndSector, %object
21834	.size	g_SlcPartLbaEndSector, 4
21835g_SlcPartLbaEndSector:
21836	.zero	4
21837	.section	.bss.g_VaildLpn,"aw",@nobits
21838	.align	2
21839	.set	.LANCHOR102,. + 0
21840	.type	g_VaildLpn, %object
21841	.size	g_VaildLpn, 4
21842g_VaildLpn:
21843	.zero	4
21844	.section	.bss.g_active_superblock,"aw",@nobits
21845	.align	3
21846	.set	.LANCHOR93,. + 0
21847	.type	g_active_superblock, %object
21848	.size	g_active_superblock, 48
21849g_active_superblock:
21850	.zero	48
21851	.section	.bss.g_all_blk_used_slc_mode,"aw",@nobits
21852	.align	2
21853	.set	.LANCHOR163,. + 0
21854	.type	g_all_blk_used_slc_mode, %object
21855	.size	g_all_blk_used_slc_mode, 4
21856g_all_blk_used_slc_mode:
21857	.zero	4
21858	.section	.bss.g_buffer_superblock,"aw",@nobits
21859	.align	3
21860	.set	.LANCHOR94,. + 0
21861	.type	g_buffer_superblock, %object
21862	.size	g_buffer_superblock, 48
21863g_buffer_superblock:
21864	.zero	48
21865	.section	.bss.g_cur_erase_blk,"aw",@nobits
21866	.align	2
21867	.set	.LANCHOR75,. + 0
21868	.type	g_cur_erase_blk, %object
21869	.size	g_cur_erase_blk, 4
21870g_cur_erase_blk:
21871	.zero	4
21872	.section	.bss.g_ect_tbl_info_size,"aw",@nobits
21873	.align	1
21874	.set	.LANCHOR198,. + 0
21875	.type	g_ect_tbl_info_size, %object
21876	.size	g_ect_tbl_info_size, 2
21877g_ect_tbl_info_size:
21878	.zero	2
21879	.section	.bss.g_ect_tbl_power_up_flush,"aw",@nobits
21880	.align	1
21881	.set	.LANCHOR227,. + 0
21882	.type	g_ect_tbl_power_up_flush, %object
21883	.size	g_ect_tbl_power_up_flush, 2
21884g_ect_tbl_power_up_flush:
21885	.zero	2
21886	.section	.bss.g_flash_read_only_en,"aw",@nobits
21887	.align	2
21888	.set	.LANCHOR78,. + 0
21889	.type	g_flash_read_only_en, %object
21890	.size	g_flash_read_only_en, 4
21891g_flash_read_only_en:
21892	.zero	4
21893	.section	.bss.g_free_slc_blk_num,"aw",@nobits
21894	.align	1
21895	.set	.LANCHOR142,. + 0
21896	.type	g_free_slc_blk_num, %object
21897	.size	g_free_slc_blk_num, 2
21898g_free_slc_blk_num:
21899	.zero	2
21900	.section	.bss.g_ftl_nand_free_count,"aw",@nobits
21901	.align	2
21902	.set	.LANCHOR256,. + 0
21903	.type	g_ftl_nand_free_count, %object
21904	.size	g_ftl_nand_free_count, 4
21905g_ftl_nand_free_count:
21906	.zero	4
21907	.section	.bss.g_gc_bad_block_gc_index,"aw",@nobits
21908	.align	1
21909	.set	.LANCHOR121,. + 0
21910	.type	g_gc_bad_block_gc_index, %object
21911	.size	g_gc_bad_block_gc_index, 2
21912g_gc_bad_block_gc_index:
21913	.zero	2
21914	.section	.bss.g_gc_bad_block_temp_num,"aw",@nobits
21915	.align	1
21916	.set	.LANCHOR119,. + 0
21917	.type	g_gc_bad_block_temp_num, %object
21918	.size	g_gc_bad_block_temp_num, 2
21919g_gc_bad_block_temp_num:
21920	.zero	2
21921	.section	.bss.g_gc_bad_block_temp_tbl,"aw",@nobits
21922	.align	3
21923	.set	.LANCHOR120,. + 0
21924	.type	g_gc_bad_block_temp_tbl, %object
21925	.size	g_gc_bad_block_temp_tbl, 34
21926g_gc_bad_block_temp_tbl:
21927	.zero	34
21928	.section	.bss.g_gc_blk_index,"aw",@nobits
21929	.align	1
21930	.set	.LANCHOR183,. + 0
21931	.type	g_gc_blk_index, %object
21932	.size	g_gc_blk_index, 2
21933g_gc_blk_index:
21934	.zero	2
21935	.section	.bss.g_gc_blk_num,"aw",@nobits
21936	.align	1
21937	.set	.LANCHOR111,. + 0
21938	.type	g_gc_blk_num, %object
21939	.size	g_gc_blk_num, 2
21940g_gc_blk_num:
21941	.zero	2
21942	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits
21943	.align	1
21944	.set	.LANCHOR250,. + 0
21945	.type	g_gc_cur_blk_max_valid_pages, %object
21946	.size	g_gc_cur_blk_max_valid_pages, 2
21947g_gc_cur_blk_max_valid_pages:
21948	.zero	2
21949	.section	.bss.g_gc_cur_blk_valid_pages,"aw",@nobits
21950	.align	1
21951	.set	.LANCHOR249,. + 0
21952	.type	g_gc_cur_blk_valid_pages, %object
21953	.size	g_gc_cur_blk_valid_pages, 2
21954g_gc_cur_blk_valid_pages:
21955	.zero	2
21956	.section	.bss.g_gc_free_blk_threshold,"aw",@nobits
21957	.align	1
21958	.set	.LANCHOR181,. + 0
21959	.type	g_gc_free_blk_threshold, %object
21960	.size	g_gc_free_blk_threshold, 2
21961g_gc_free_blk_threshold:
21962	.zero	2
21963	.section	.bss.g_gc_head_data_block,"aw",@nobits
21964	.align	2
21965	.set	.LANCHOR178,. + 0
21966	.type	g_gc_head_data_block, %object
21967	.size	g_gc_head_data_block, 4
21968g_gc_head_data_block:
21969	.zero	4
21970	.section	.bss.g_gc_head_data_block_count,"aw",@nobits
21971	.align	2
21972	.set	.LANCHOR179,. + 0
21973	.type	g_gc_head_data_block_count, %object
21974	.size	g_gc_head_data_block_count, 4
21975g_gc_head_data_block_count:
21976	.zero	4
21977	.section	.bss.g_gc_merge_free_blk_threshold,"aw",@nobits
21978	.align	1
21979	.set	.LANCHOR182,. + 0
21980	.type	g_gc_merge_free_blk_threshold, %object
21981	.size	g_gc_merge_free_blk_threshold, 2
21982g_gc_merge_free_blk_threshold:
21983	.zero	2
21984	.section	.bss.g_gc_next_blk,"aw",@nobits
21985	.align	1
21986	.set	.LANCHOR115,. + 0
21987	.type	g_gc_next_blk, %object
21988	.size	g_gc_next_blk, 2
21989g_gc_next_blk:
21990	.zero	2
21991	.section	.bss.g_gc_next_blk_1,"aw",@nobits
21992	.align	1
21993	.set	.LANCHOR116,. + 0
21994	.type	g_gc_next_blk_1, %object
21995	.size	g_gc_next_blk_1, 2
21996g_gc_next_blk_1:
21997	.zero	2
21998	.section	.bss.g_gc_next_blk_2,"aw",@nobits
21999	.align	1
22000	.set	.LANCHOR117,. + 0
22001	.type	g_gc_next_blk_2, %object
22002	.size	g_gc_next_blk_2, 2
22003g_gc_next_blk_2:
22004	.zero	2
22005	.section	.bss.g_gc_next_blk_3,"aw",@nobits
22006	.align	1
22007	.set	.LANCHOR118,. + 0
22008	.type	g_gc_next_blk_3, %object
22009	.size	g_gc_next_blk_3, 2
22010g_gc_next_blk_3:
22011	.zero	2
22012	.section	.bss.g_gc_num_req,"aw",@nobits
22013	.align	2
22014	.set	.LANCHOR105,. + 0
22015	.type	g_gc_num_req, %object
22016	.size	g_gc_num_req, 4
22017g_gc_num_req:
22018	.zero	4
22019	.section	.bss.g_gc_page_offset,"aw",@nobits
22020	.align	1
22021	.set	.LANCHOR113,. + 0
22022	.type	g_gc_page_offset, %object
22023	.size	g_gc_page_offset, 2
22024g_gc_page_offset:
22025	.zero	2
22026	.section	.bss.g_gc_refresh_block_temp_num,"aw",@nobits
22027	.align	1
22028	.set	.LANCHOR184,. + 0
22029	.type	g_gc_refresh_block_temp_num, %object
22030	.size	g_gc_refresh_block_temp_num, 2
22031g_gc_refresh_block_temp_num:
22032	.zero	2
22033	.section	.bss.g_gc_refresh_block_temp_tbl,"aw",@nobits
22034	.align	3
22035	.type	g_gc_refresh_block_temp_tbl, %object
22036	.size	g_gc_refresh_block_temp_tbl, 34
22037g_gc_refresh_block_temp_tbl:
22038	.zero	34
22039	.section	.bss.g_gc_skip_write_count,"aw",@nobits
22040	.align	2
22041	.set	.LANCHOR180,. + 0
22042	.type	g_gc_skip_write_count, %object
22043	.size	g_gc_skip_write_count, 4
22044g_gc_skip_write_count:
22045	.zero	4
22046	.section	.bss.g_gc_superblock,"aw",@nobits
22047	.align	3
22048	.set	.LANCHOR213,. + 0
22049	.type	g_gc_superblock, %object
22050	.size	g_gc_superblock, 48
22051g_gc_superblock:
22052	.zero	48
22053	.section	.bss.g_gc_temp_superblock,"aw",@nobits
22054	.align	3
22055	.set	.LANCHOR95,. + 0
22056	.type	g_gc_temp_superblock, %object
22057	.size	g_gc_temp_superblock, 48
22058g_gc_temp_superblock:
22059	.zero	48
22060	.section	.bss.g_in_gc_progress,"aw",@nobits
22061	.align	2
22062	.set	.LANCHOR176,. + 0
22063	.type	g_in_gc_progress, %object
22064	.size	g_in_gc_progress, 4
22065g_in_gc_progress:
22066	.zero	4
22067	.section	.bss.g_in_swl_replace,"aw",@nobits
22068	.align	2
22069	.set	.LANCHOR177,. + 0
22070	.type	g_in_swl_replace, %object
22071	.size	g_in_swl_replace, 4
22072g_in_swl_replace:
22073	.zero	4
22074	.section	.bss.g_inkDie_check_enable,"aw",@nobits
22075	.align	2
22076	.set	.LANCHOR104,. + 0
22077	.type	g_inkDie_check_enable, %object
22078	.size	g_inkDie_check_enable, 4
22079g_inkDie_check_enable:
22080	.zero	4
22081	.section	.bss.g_l2p_last_update_region_id,"aw",@nobits
22082	.align	1
22083	.set	.LANCHOR99,. + 0
22084	.type	g_l2p_last_update_region_id, %object
22085	.size	g_l2p_last_update_region_id, 2
22086g_l2p_last_update_region_id:
22087	.zero	2
22088	.section	.bss.g_maxRegNum,"aw",@nobits
22089	.set	.LANCHOR13,. + 0
22090	.type	g_maxRegNum, %object
22091	.size	g_maxRegNum, 1
22092g_maxRegNum:
22093	.zero	1
22094	.section	.bss.g_maxRetryCount,"aw",@nobits
22095	.set	.LANCHOR149,. + 0
22096	.type	g_maxRetryCount, %object
22097	.size	g_maxRetryCount, 1
22098g_maxRetryCount:
22099	.zero	1
22100	.section	.bss.g_max_erase_count,"aw",@nobits
22101	.align	2
22102	.set	.LANCHOR174,. + 0
22103	.type	g_max_erase_count, %object
22104	.size	g_max_erase_count, 4
22105g_max_erase_count:
22106	.zero	4
22107	.section	.bss.g_min_erase_count,"aw",@nobits
22108	.align	2
22109	.set	.LANCHOR175,. + 0
22110	.type	g_min_erase_count, %object
22111	.size	g_min_erase_count, 4
22112g_min_erase_count:
22113	.zero	4
22114	.section	.bss.g_nand_ecc_en,"aw",@nobits
22115	.set	.LANCHOR208,. + 0
22116	.type	g_nand_ecc_en, %object
22117	.size	g_nand_ecc_en, 1
22118g_nand_ecc_en:
22119	.zero	1
22120	.section	.bss.g_nandc_version_data,"aw",@nobits
22121	.align	2
22122	.set	.LANCHOR122,. + 0
22123	.type	g_nandc_version_data, %object
22124	.size	g_nandc_version_data, 4
22125g_nandc_version_data:
22126	.zero	4
22127	.section	.bss.g_num_data_superblocks,"aw",@nobits
22128	.align	1
22129	.set	.LANCHOR87,. + 0
22130	.type	g_num_data_superblocks, %object
22131	.size	g_num_data_superblocks, 2
22132g_num_data_superblocks:
22133	.zero	2
22134	.section	.bss.g_num_free_superblocks,"aw",@nobits
22135	.align	1
22136	.set	.LANCHOR90,. + 0
22137	.type	g_num_free_superblocks, %object
22138	.size	g_num_free_superblocks, 2
22139g_num_free_superblocks:
22140	.zero	2
22141	.section	.bss.g_page_map_check_enable,"aw",@nobits
22142	.align	1
22143	.set	.LANCHOR69,. + 0
22144	.type	g_page_map_check_enable, %object
22145	.size	g_page_map_check_enable, 2
22146g_page_map_check_enable:
22147	.zero	2
22148	.section	.bss.g_power_lost_ecc_error_blk,"aw",@nobits
22149	.align	1
22150	.set	.LANCHOR241,. + 0
22151	.type	g_power_lost_ecc_error_blk, %object
22152	.size	g_power_lost_ecc_error_blk, 2
22153g_power_lost_ecc_error_blk:
22154	.zero	2
22155	.section	.bss.g_power_lost_recovery_flag,"aw",@nobits
22156	.align	1
22157	.set	.LANCHOR242,. + 0
22158	.type	g_power_lost_recovery_flag, %object
22159	.size	g_power_lost_recovery_flag, 2
22160g_power_lost_recovery_flag:
22161	.zero	2
22162	.section	.bss.g_recovery_page_min_ver,"aw",@nobits
22163	.align	2
22164	.set	.LANCHOR139,. + 0
22165	.type	g_recovery_page_min_ver, %object
22166	.size	g_recovery_page_min_ver, 4
22167g_recovery_page_min_ver:
22168	.zero	4
22169	.section	.bss.g_recovery_page_num,"aw",@nobits
22170	.align	2
22171	.set	.LANCHOR243,. + 0
22172	.type	g_recovery_page_num, %object
22173	.size	g_recovery_page_num, 4
22174g_recovery_page_num:
22175	.zero	4
22176	.section	.bss.g_recovery_ppa_tbl,"aw",@nobits
22177	.align	3
22178	.set	.LANCHOR244,. + 0
22179	.type	g_recovery_ppa_tbl, %object
22180	.size	g_recovery_ppa_tbl, 128
22181g_recovery_ppa_tbl:
22182	.zero	128
22183	.section	.bss.g_req_cache,"aw",@nobits
22184	.align	3
22185	.set	.LANCHOR135,. + 0
22186	.type	g_req_cache, %object
22187	.size	g_req_cache, 8
22188g_req_cache:
22189	.zero	8
22190	.section	.bss.g_retryMode,"aw",@nobits
22191	.set	.LANCHOR11,. + 0
22192	.type	g_retryMode, %object
22193	.size	g_retryMode, 1
22194g_retryMode:
22195	.zero	1
22196	.section	.bss.g_slc2KBNand,"aw",@nobits
22197	.set	.LANCHOR2,. + 0
22198	.type	g_slc2KBNand, %object
22199	.size	g_slc2KBNand, 1
22200g_slc2KBNand:
22201	.zero	1
22202	.section	.bss.g_sys_ext_data,"aw",@nobits
22203	.align	3
22204	.set	.LANCHOR141,. + 0
22205	.type	g_sys_ext_data, %object
22206	.size	g_sys_ext_data, 512
22207g_sys_ext_data:
22208	.zero	512
22209	.section	.bss.g_sys_save_data,"aw",@nobits
22210	.align	3
22211	.set	.LANCHOR82,. + 0
22212	.type	g_sys_save_data, %object
22213	.size	g_sys_save_data, 48
22214g_sys_save_data:
22215	.zero	48
22216	.section	.bss.g_tmp_data_superblock_id,"aw",@nobits
22217	.align	1
22218	.set	.LANCHOR136,. + 0
22219	.type	g_tmp_data_superblock_id, %object
22220	.size	g_tmp_data_superblock_id, 2
22221g_tmp_data_superblock_id:
22222	.zero	2
22223	.section	.bss.g_totle_avg_erase_count,"aw",@nobits
22224	.align	2
22225	.set	.LANCHOR214,. + 0
22226	.type	g_totle_avg_erase_count, %object
22227	.size	g_totle_avg_erase_count, 4
22228g_totle_avg_erase_count:
22229	.zero	4
22230	.section	.bss.g_totle_cache_write_count,"aw",@nobits
22231	.align	2
22232	.set	.LANCHOR169,. + 0
22233	.type	g_totle_cache_write_count, %object
22234	.size	g_totle_cache_write_count, 4
22235g_totle_cache_write_count:
22236	.zero	4
22237	.section	.bss.g_totle_discard_page_count,"aw",@nobits
22238	.align	2
22239	.set	.LANCHOR168,. + 0
22240	.type	g_totle_discard_page_count, %object
22241	.size	g_totle_discard_page_count, 4
22242g_totle_discard_page_count:
22243	.zero	4
22244	.section	.bss.g_totle_gc_page_count,"aw",@nobits
22245	.align	2
22246	.set	.LANCHOR166,. + 0
22247	.type	g_totle_gc_page_count, %object
22248	.size	g_totle_gc_page_count, 4
22249g_totle_gc_page_count:
22250	.zero	4
22251	.section	.bss.g_totle_l2p_write_count,"aw",@nobits
22252	.align	2
22253	.set	.LANCHOR170,. + 0
22254	.type	g_totle_l2p_write_count, %object
22255	.size	g_totle_l2p_write_count, 4
22256g_totle_l2p_write_count:
22257	.zero	4
22258	.section	.bss.g_totle_map_block,"aw",@nobits
22259	.align	1
22260	.set	.LANCHOR131,. + 0
22261	.type	g_totle_map_block, %object
22262	.size	g_totle_map_block, 2
22263g_totle_map_block:
22264	.zero	2
22265	.section	.bss.g_totle_mlc_erase_count,"aw",@nobits
22266	.align	2
22267	.set	.LANCHOR172,. + 0
22268	.type	g_totle_mlc_erase_count, %object
22269	.size	g_totle_mlc_erase_count, 4
22270g_totle_mlc_erase_count:
22271	.zero	4
22272	.section	.bss.g_totle_read_page_count,"aw",@nobits
22273	.align	2
22274	.set	.LANCHOR171,. + 0
22275	.type	g_totle_read_page_count, %object
22276	.size	g_totle_read_page_count, 4
22277g_totle_read_page_count:
22278	.zero	4
22279	.section	.bss.g_totle_read_sector,"aw",@nobits
22280	.align	2
22281	.set	.LANCHOR226,. + 0
22282	.type	g_totle_read_sector, %object
22283	.size	g_totle_read_sector, 4
22284g_totle_read_sector:
22285	.zero	4
22286	.section	.bss.g_totle_slc_erase_count,"aw",@nobits
22287	.align	2
22288	.set	.LANCHOR173,. + 0
22289	.type	g_totle_slc_erase_count, %object
22290	.size	g_totle_slc_erase_count, 4
22291g_totle_slc_erase_count:
22292	.zero	4
22293	.section	.bss.g_totle_swl_count,"aw",@nobits
22294	.align	2
22295	.set	.LANCHOR137,. + 0
22296	.type	g_totle_swl_count, %object
22297	.size	g_totle_swl_count, 4
22298g_totle_swl_count:
22299	.zero	4
22300	.section	.bss.g_totle_sys_slc_erase_count,"aw",@nobits
22301	.align	2
22302	.set	.LANCHOR81,. + 0
22303	.type	g_totle_sys_slc_erase_count, %object
22304	.size	g_totle_sys_slc_erase_count, 4
22305g_totle_sys_slc_erase_count:
22306	.zero	4
22307	.section	.bss.g_totle_vendor_block,"aw",@nobits
22308	.align	1
22309	.set	.LANCHOR70,. + 0
22310	.type	g_totle_vendor_block, %object
22311	.size	g_totle_vendor_block, 2
22312g_totle_vendor_block:
22313	.zero	2
22314	.section	.bss.g_totle_write_page_count,"aw",@nobits
22315	.align	2
22316	.set	.LANCHOR167,. + 0
22317	.type	g_totle_write_page_count, %object
22318	.size	g_totle_write_page_count, 4
22319g_totle_write_page_count:
22320	.zero	4
22321	.section	.bss.g_totle_write_sector,"aw",@nobits
22322	.align	2
22323	.set	.LANCHOR225,. + 0
22324	.type	g_totle_write_sector, %object
22325	.size	g_totle_write_sector, 4
22326g_totle_write_sector:
22327	.zero	4
22328	.section	.bss.g_wr_page_num,"aw",@nobits
22329	.align	2
22330	.set	.LANCHOR72,. + 0
22331	.type	g_wr_page_num, %object
22332	.size	g_wr_page_num, 4
22333g_wr_page_num:
22334	.zero	4
22335	.section	.bss.gc_discard_updated,"aw",@nobits
22336	.align	2
22337	.set	.LANCHOR253,. + 0
22338	.type	gc_discard_updated, %object
22339	.size	gc_discard_updated, 4
22340gc_discard_updated:
22341	.zero	4
22342	.section	.bss.gc_ink_free_return_value,"aw",@nobits
22343	.align	1
22344	.set	.LANCHOR248,. + 0
22345	.type	gc_ink_free_return_value, %object
22346	.size	gc_ink_free_return_value, 2
22347gc_ink_free_return_value:
22348	.zero	2
22349	.section	.bss.gpFlashSaveInfo,"aw",@nobits
22350	.align	3
22351	.set	.LANCHOR153,. + 0
22352	.type	gpFlashSaveInfo, %object
22353	.size	gpFlashSaveInfo, 8
22354gpFlashSaveInfo:
22355	.zero	8
22356	.section	.bss.gpNandParaInfo,"aw",@nobits
22357	.align	3
22358	.set	.LANCHOR7,. + 0
22359	.type	gpNandParaInfo, %object
22360	.size	gpNandParaInfo, 8
22361gpNandParaInfo:
22362	.zero	8
22363	.section	.bss.gpNandc,"aw",@nobits
22364	.align	3
22365	.set	.LANCHOR19,. + 0
22366	.type	gpNandc, %object
22367	.size	gpNandc, 8
22368gpNandc:
22369	.zero	8
22370	.section	.bss.gpNandc1,"aw",@nobits
22371	.align	3
22372	.type	gpNandc1, %object
22373	.size	gpNandc1, 8
22374gpNandc1:
22375	.zero	8
22376	.section	.bss.gpReadRetrial,"aw",@nobits
22377	.align	3
22378	.set	.LANCHOR148,. + 0
22379	.type	gpReadRetrial, %object
22380	.size	gpReadRetrial, 8
22381gpReadRetrial:
22382	.zero	8
22383	.section	.bss.gp_ect_tbl_info,"aw",@nobits
22384	.align	3
22385	.set	.LANCHOR199,. + 0
22386	.type	gp_ect_tbl_info, %object
22387	.size	gp_ect_tbl_info, 8
22388gp_ect_tbl_info:
22389	.zero	8
22390	.section	.bss.gp_flash_check_buf,"aw",@nobits
22391	.align	3
22392	.type	gp_flash_check_buf, %object
22393	.size	gp_flash_check_buf, 262144
22394gp_flash_check_buf:
22395	.zero	262144
22396	.section	.bss.gp_gc_page_buf_info,"aw",@nobits
22397	.align	3
22398	.set	.LANCHOR106,. + 0
22399	.type	gp_gc_page_buf_info, %object
22400	.size	gp_gc_page_buf_info, 8
22401gp_gc_page_buf_info:
22402	.zero	8
22403	.section	.bss.gp_last_act_superblock,"aw",@nobits
22404	.align	3
22405	.set	.LANCHOR252,. + 0
22406	.type	gp_last_act_superblock, %object
22407	.size	gp_last_act_superblock, 8
22408gp_last_act_superblock:
22409	.zero	8
22410	.section	.bss.idb_buf,"aw",@nobits
22411	.align	3
22412	.type	idb_buf, %object
22413	.size	idb_buf, 262144
22414idb_buf:
22415	.zero	262144
22416	.section	.bss.idb_flash_slc_mode,"aw",@nobits
22417	.align	2
22418	.set	.LANCHOR29,. + 0
22419	.type	idb_flash_slc_mode, %object
22420	.size	idb_flash_slc_mode, 4
22421idb_flash_slc_mode:
22422	.zero	4
22423	.section	.bss.idb_need_write_back,"aw",@nobits
22424	.align	2
22425	.set	.LANCHOR159,. + 0
22426	.type	idb_need_write_back, %object
22427	.size	idb_need_write_back, 4
22428idb_need_write_back:
22429	.zero	4
22430	.section	.bss.last_cache_match_count,"aw",@nobits
22431	.align	2
22432	.set	.LANCHOR257,. + 0
22433	.type	last_cache_match_count, %object
22434	.size	last_cache_match_count, 4
22435last_cache_match_count:
22436	.zero	4
22437	.section	.bss.mlcPageToSlcPageTbl,"aw",@nobits
22438	.align	2
22439	.set	.LANCHOR123,. + 0
22440	.type	mlcPageToSlcPageTbl, %object
22441	.size	mlcPageToSlcPageTbl, 2048
22442mlcPageToSlcPageTbl:
22443	.zero	2048
22444	.section	.bss.p_blk_mode_table,"aw",@nobits
22445	.align	3
22446	.set	.LANCHOR1,. + 0
22447	.type	p_blk_mode_table, %object
22448	.size	p_blk_mode_table, 8
22449p_blk_mode_table:
22450	.zero	8
22451	.section	.bss.p_data_block_list_head,"aw",@nobits
22452	.align	3
22453	.set	.LANCHOR84,. + 0
22454	.type	p_data_block_list_head, %object
22455	.size	p_data_block_list_head, 8
22456p_data_block_list_head:
22457	.zero	8
22458	.section	.bss.p_data_block_list_table,"aw",@nobits
22459	.align	3
22460	.set	.LANCHOR83,. + 0
22461	.type	p_data_block_list_table, %object
22462	.size	p_data_block_list_table, 8
22463p_data_block_list_table:
22464	.zero	8
22465	.section	.bss.p_data_block_list_tail,"aw",@nobits
22466	.align	3
22467	.set	.LANCHOR86,. + 0
22468	.type	p_data_block_list_tail, %object
22469	.size	p_data_block_list_tail, 8
22470p_data_block_list_tail:
22471	.zero	8
22472	.section	.bss.p_erase_count_table,"aw",@nobits
22473	.align	3
22474	.set	.LANCHOR80,. + 0
22475	.type	p_erase_count_table, %object
22476	.size	p_erase_count_table, 8
22477p_erase_count_table:
22478	.zero	8
22479	.section	.bss.p_free_data_block_list_head,"aw",@nobits
22480	.align	3
22481	.set	.LANCHOR89,. + 0
22482	.type	p_free_data_block_list_head, %object
22483	.size	p_free_data_block_list_head, 8
22484p_free_data_block_list_head:
22485	.zero	8
22486	.section	.bss.p_gc_blk_tbl,"aw",@nobits
22487	.align	3
22488	.set	.LANCHOR112,. + 0
22489	.type	p_gc_blk_tbl, %object
22490	.size	p_gc_blk_tbl, 8
22491p_gc_blk_tbl:
22492	.zero	8
22493	.section	.bss.p_gc_data_buf,"aw",@nobits
22494	.align	3
22495	.set	.LANCHOR107,. + 0
22496	.type	p_gc_data_buf, %object
22497	.size	p_gc_data_buf, 8
22498p_gc_data_buf:
22499	.zero	8
22500	.section	.bss.p_gc_page_info,"aw",@nobits
22501	.align	3
22502	.set	.LANCHOR114,. + 0
22503	.type	p_gc_page_info, %object
22504	.size	p_gc_page_info, 8
22505p_gc_page_info:
22506	.zero	8
22507	.section	.bss.p_gc_spare_buf,"aw",@nobits
22508	.align	3
22509	.set	.LANCHOR108,. + 0
22510	.type	p_gc_spare_buf, %object
22511	.size	p_gc_spare_buf, 8
22512p_gc_spare_buf:
22513	.zero	8
22514	.section	.bss.p_io_data_buf_0,"aw",@nobits
22515	.align	3
22516	.set	.LANCHOR193,. + 0
22517	.type	p_io_data_buf_0, %object
22518	.size	p_io_data_buf_0, 8
22519p_io_data_buf_0:
22520	.zero	8
22521	.section	.bss.p_io_data_buf_1,"aw",@nobits
22522	.align	3
22523	.set	.LANCHOR194,. + 0
22524	.type	p_io_data_buf_1, %object
22525	.size	p_io_data_buf_1, 8
22526p_io_data_buf_1:
22527	.zero	8
22528	.section	.bss.p_io_spare_buf,"aw",@nobits
22529	.align	3
22530	.set	.LANCHOR196,. + 0
22531	.type	p_io_spare_buf, %object
22532	.size	p_io_spare_buf, 8
22533p_io_spare_buf:
22534	.zero	8
22535	.section	.bss.p_l2p_map_buf,"aw",@nobits
22536	.align	3
22537	.set	.LANCHOR129,. + 0
22538	.type	p_l2p_map_buf, %object
22539	.size	p_l2p_map_buf, 8
22540p_l2p_map_buf:
22541	.zero	8
22542	.section	.bss.p_l2p_ram_map,"aw",@nobits
22543	.align	3
22544	.set	.LANCHOR98,. + 0
22545	.type	p_l2p_ram_map, %object
22546	.size	p_l2p_ram_map, 8
22547p_l2p_ram_map:
22548	.zero	8
22549	.section	.bss.p_map_block_table,"aw",@nobits
22550	.align	3
22551	.set	.LANCHOR132,. + 0
22552	.type	p_map_block_table, %object
22553	.size	p_map_block_table, 8
22554p_map_block_table:
22555	.zero	8
22556	.section	.bss.p_map_block_valid_page_count,"aw",@nobits
22557	.align	3
22558	.set	.LANCHOR128,. + 0
22559	.type	p_map_block_valid_page_count, %object
22560	.size	p_map_block_valid_page_count, 8
22561p_map_block_valid_page_count:
22562	.zero	8
22563	.section	.bss.p_map_block_ver_table,"aw",@nobits
22564	.align	3
22565	.set	.LANCHOR133,. + 0
22566	.type	p_map_block_ver_table, %object
22567	.size	p_map_block_ver_table, 8
22568p_map_block_ver_table:
22569	.zero	8
22570	.section	.bss.p_map_region_ppn_check_table,"aw",@nobits
22571	.align	3
22572	.set	.LANCHOR203,. + 0
22573	.type	p_map_region_ppn_check_table, %object
22574	.size	p_map_region_ppn_check_table, 8
22575p_map_region_ppn_check_table:
22576	.zero	8
22577	.section	.bss.p_map_region_ppn_table,"aw",@nobits
22578	.align	3
22579	.set	.LANCHOR134,. + 0
22580	.type	p_map_region_ppn_table, %object
22581	.size	p_map_region_ppn_table, 8
22582p_map_region_ppn_table:
22583	.zero	8
22584	.section	.bss.p_plane_order_table,"aw",@nobits
22585	.align	3
22586	.set	.LANCHOR47,. + 0
22587	.type	p_plane_order_table, %object
22588	.size	p_plane_order_table, 32
22589p_plane_order_table:
22590	.zero	32
22591	.section	.bss.p_swl_mul_table,"aw",@nobits
22592	.align	3
22593	.set	.LANCHOR140,. + 0
22594	.type	p_swl_mul_table, %object
22595	.size	p_swl_mul_table, 8
22596p_swl_mul_table:
22597	.zero	8
22598	.section	.bss.p_sys_data_buf,"aw",@nobits
22599	.align	3
22600	.set	.LANCHOR189,. + 0
22601	.type	p_sys_data_buf, %object
22602	.size	p_sys_data_buf, 8
22603p_sys_data_buf:
22604	.zero	8
22605	.section	.bss.p_sys_data_buf_1,"aw",@nobits
22606	.align	3
22607	.set	.LANCHOR190,. + 0
22608	.type	p_sys_data_buf_1, %object
22609	.size	p_sys_data_buf_1, 8
22610p_sys_data_buf_1:
22611	.zero	8
22612	.section	.bss.p_sys_spare_buf,"aw",@nobits
22613	.align	3
22614	.set	.LANCHOR195,. + 0
22615	.type	p_sys_spare_buf, %object
22616	.size	p_sys_spare_buf, 8
22617p_sys_spare_buf:
22618	.zero	8
22619	.section	.bss.p_valid_page_count_table,"aw",@nobits
22620	.align	3
22621	.set	.LANCHOR85,. + 0
22622	.type	p_valid_page_count_table, %object
22623	.size	p_valid_page_count_table, 8
22624p_valid_page_count_table:
22625	.zero	8
22626	.section	.bss.p_vendor_block_table,"aw",@nobits
22627	.align	3
22628	.set	.LANCHOR71,. + 0
22629	.type	p_vendor_block_table, %object
22630	.size	p_vendor_block_table, 8
22631p_vendor_block_table:
22632	.zero	8
22633	.section	.bss.p_vendor_block_valid_page_count,"aw",@nobits
22634	.align	3
22635	.set	.LANCHOR200,. + 0
22636	.type	p_vendor_block_valid_page_count, %object
22637	.size	p_vendor_block_valid_page_count, 8
22638p_vendor_block_valid_page_count:
22639	.zero	8
22640	.section	.bss.p_vendor_block_ver_table,"aw",@nobits
22641	.align	3
22642	.set	.LANCHOR201,. + 0
22643	.type	p_vendor_block_ver_table, %object
22644	.size	p_vendor_block_ver_table, 8
22645p_vendor_block_ver_table:
22646	.zero	8
22647	.section	.bss.p_vendor_data_buf,"aw",@nobits
22648	.align	3
22649	.set	.LANCHOR191,. + 0
22650	.type	p_vendor_data_buf, %object
22651	.size	p_vendor_data_buf, 8
22652p_vendor_data_buf:
22653	.zero	8
22654	.section	.bss.p_vendor_region_ppn_table,"aw",@nobits
22655	.align	3
22656	.set	.LANCHOR202,. + 0
22657	.type	p_vendor_region_ppn_table, %object
22658	.size	p_vendor_region_ppn_table, 8
22659p_vendor_region_ppn_table:
22660	.zero	8
22661	.section	.bss.p_wr_io_data_buf,"aw",@nobits
22662	.align	3
22663	.set	.LANCHOR192,. + 0
22664	.type	p_wr_io_data_buf, %object
22665	.size	p_wr_io_data_buf, 8
22666p_wr_io_data_buf:
22667	.zero	8
22668	.section	.bss.p_wr_io_spare_buf,"aw",@nobits
22669	.align	3
22670	.set	.LANCHOR197,. + 0
22671	.type	p_wr_io_spare_buf, %object
22672	.size	p_wr_io_spare_buf, 8
22673p_wr_io_spare_buf:
22674	.zero	8
22675	.section	.bss.read_retry_cur_offset,"aw",@nobits
22676	.align	3
22677	.set	.LANCHOR21,. + 0
22678	.type	read_retry_cur_offset, %object
22679	.size	read_retry_cur_offset, 4
22680read_retry_cur_offset:
22681	.zero	4
22682	.section	.bss.req_erase,"aw",@nobits
22683	.align	3
22684	.set	.LANCHOR79,. + 0
22685	.type	req_erase, %object
22686	.size	req_erase, 8
22687req_erase:
22688	.zero	8
22689	.section	.bss.req_gc,"aw",@nobits
22690	.align	3
22691	.set	.LANCHOR109,. + 0
22692	.type	req_gc, %object
22693	.size	req_gc, 8
22694req_gc:
22695	.zero	8
22696	.section	.bss.req_gc_dst,"aw",@nobits
22697	.align	3
22698	.set	.LANCHOR187,. + 0
22699	.type	req_gc_dst, %object
22700	.size	req_gc_dst, 8
22701req_gc_dst:
22702	.zero	8
22703	.section	.bss.req_prgm,"aw",@nobits
22704	.align	3
22705	.set	.LANCHOR188,. + 0
22706	.type	req_prgm, %object
22707	.size	req_prgm, 8
22708req_prgm:
22709	.zero	8
22710	.section	.bss.req_read,"aw",@nobits
22711	.align	3
22712	.set	.LANCHOR186,. + 0
22713	.type	req_read, %object
22714	.size	req_read, 8
22715req_read:
22716	.zero	8
22717	.section	.bss.req_sys,"aw",@nobits
22718	.align	3
22719	.set	.LANCHOR211,. + 0
22720	.type	req_sys, %object
22721	.size	req_sys, 56
22722req_sys:
22723	.zero	56
22724	.section	.bss.req_wr_io,"aw",@nobits
22725	.align	3
22726	.set	.LANCHOR73,. + 0
22727	.type	req_wr_io, %object
22728	.size	req_wr_io, 8
22729req_wr_io:
22730	.zero	8
22731	.section	.bss.slcPageToMlcPageTbl,"aw",@nobits
22732	.align	2
22733	.set	.LANCHOR17,. + 0
22734	.type	slcPageToMlcPageTbl, %object
22735	.size	slcPageToMlcPageTbl, 1024
22736slcPageToMlcPageTbl:
22737	.zero	1024
22738	.section	.data.FtlMallocOffset,"aw",@progbits
22739	.align	2
22740	.type	FtlMallocOffset, %object
22741	.size	FtlMallocOffset, 4
22742FtlMallocOffset:
22743	.word	64
22744	.section	.data.LastWritenPbaAddr,"aw",@progbits
22745	.align	2
22746	.type	LastWritenPbaAddr, %object
22747	.size	LastWritenPbaAddr, 4
22748LastWritenPbaAddr:
22749	.word	-1
22750	.section	.data.NandFlashParaTbl,"aw",@progbits
22751	.align	3
22752	.set	.LANCHOR145,. + 0
22753	.type	NandFlashParaTbl, %object
22754	.size	NandFlashParaTbl, 2752
22755NandFlashParaTbl:
22756	.byte	6
22757	.byte	44
22758	.byte	100
22759	.byte	68
22760	.byte	75
22761	.byte	-87
22762	.byte	0
22763	.byte	4
22764	.byte	1
22765	.byte	16
22766	.hword	256
22767	.byte	2
22768	.byte	2
22769	.hword	2048
22770	.hword	479
22771	.byte	3
22772	.byte	17
22773	.byte	40
22774	.byte	32
22775	.byte	1
22776	.byte	0
22777	.byte	1
22778	.byte	0
22779	.byte	0
22780	.byte	0
22781	.zero	4
22782	.byte	6
22783	.byte	44
22784	.byte	68
22785	.byte	68
22786	.byte	75
22787	.byte	-87
22788	.byte	0
22789	.byte	4
22790	.byte	1
22791	.byte	16
22792	.hword	256
22793	.byte	2
22794	.byte	2
22795	.hword	1064
22796	.hword	479
22797	.byte	3
22798	.byte	17
22799	.byte	40
22800	.byte	32
22801	.byte	1
22802	.byte	0
22803	.byte	1
22804	.byte	0
22805	.byte	0
22806	.byte	0
22807	.zero	4
22808	.byte	6
22809	.byte	44
22810	.byte	104
22811	.byte	4
22812	.byte	74
22813	.byte	-87
22814	.byte	0
22815	.byte	4
22816	.byte	1
22817	.byte	8
22818	.hword	256
22819	.byte	2
22820	.byte	2
22821	.hword	2048
22822	.hword	287
22823	.byte	1
22824	.byte	0
22825	.byte	24
22826	.byte	32
22827	.byte	1
22828	.byte	0
22829	.byte	1
22830	.byte	0
22831	.byte	0
22832	.byte	0
22833	.zero	4
22834	.byte	5
22835	.byte	44
22836	.byte	-120
22837	.byte	4
22838	.byte	75
22839	.byte	-87
22840	.byte	0
22841	.byte	4
22842	.byte	1
22843	.byte	16
22844	.hword	256
22845	.byte	2
22846	.byte	2
22847	.hword	2048
22848	.hword	287
22849	.byte	1
22850	.byte	0
22851	.byte	24
22852	.byte	32
22853	.byte	1
22854	.byte	0
22855	.byte	1
22856	.byte	0
22857	.byte	0
22858	.byte	0
22859	.zero	4
22860	.byte	6
22861	.byte	44
22862	.byte	-88
22863	.byte	5
22864	.byte	-53
22865	.byte	-87
22866	.byte	0
22867	.byte	4
22868	.byte	2
22869	.byte	16
22870	.hword	256
22871	.byte	2
22872	.byte	2
22873	.hword	2048
22874	.hword	287
22875	.byte	1
22876	.byte	0
22877	.byte	24
22878	.byte	32
22879	.byte	1
22880	.byte	0
22881	.byte	1
22882	.byte	0
22883	.byte	0
22884	.byte	0
22885	.zero	4
22886	.byte	6
22887	.byte	44
22888	.byte	104
22889	.byte	4
22890	.byte	70
22891	.byte	-119
22892	.byte	0
22893	.byte	4
22894	.byte	1
22895	.byte	8
22896	.hword	256
22897	.byte	2
22898	.byte	2
22899	.hword	2048
22900	.hword	287
22901	.byte	1
22902	.byte	0
22903	.byte	24
22904	.byte	32
22905	.byte	1
22906	.byte	0
22907	.byte	1
22908	.byte	0
22909	.byte	0
22910	.byte	0
22911	.zero	4
22912	.byte	6
22913	.byte	44
22914	.byte	72
22915	.byte	4
22916	.byte	74
22917	.byte	-91
22918	.byte	0
22919	.byte	4
22920	.byte	1
22921	.byte	8
22922	.hword	256
22923	.byte	2
22924	.byte	2
22925	.hword	1024
22926	.hword	287
22927	.byte	1
22928	.byte	0
22929	.byte	24
22930	.byte	32
22931	.byte	1
22932	.byte	0
22933	.byte	1
22934	.byte	0
22935	.byte	0
22936	.byte	0
22937	.zero	4
22938	.byte	6
22939	.byte	44
22940	.byte	-124
22941	.byte	100
22942	.byte	60
22943	.byte	-91
22944	.byte	0
22945	.byte	4
22946	.byte	1
22947	.byte	32
22948	.hword	512
22949	.byte	2
22950	.byte	2
22951	.hword	1024
22952	.hword	479
22953	.byte	3
22954	.byte	17
22955	.byte	40
22956	.byte	32
22957	.byte	1
22958	.byte	0
22959	.byte	1
22960	.byte	0
22961	.byte	0
22962	.byte	0
22963	.zero	4
22964	.byte	5
22965	.byte	44
22966	.byte	-124
22967	.byte	100
22968	.byte	84
22969	.byte	-87
22970	.byte	0
22971	.byte	4
22972	.byte	1
22973	.byte	32
22974	.hword	512
22975	.byte	2
22976	.byte	2
22977	.hword	1024
22978	.hword	479
22979	.byte	4
22980	.byte	18
22981	.byte	60
22982	.byte	32
22983	.byte	1
22984	.byte	0
22985	.byte	1
22986	.byte	0
22987	.byte	0
22988	.byte	0
22989	.zero	4
22990	.byte	6
22991	.byte	44
22992	.byte	-41
22993	.byte	-108
22994	.byte	62
22995	.byte	-124
22996	.byte	0
22997	.byte	4
22998	.byte	1
22999	.byte	8
23000	.hword	128
23001	.byte	2
23002	.byte	2
23003	.hword	4096
23004	.hword	279
23005	.byte	1
23006	.byte	0
23007	.byte	24
23008	.byte	32
23009	.byte	1
23010	.byte	0
23011	.byte	1
23012	.byte	0
23013	.byte	0
23014	.byte	0
23015	.zero	4
23016	.byte	6
23017	.byte	44
23018	.byte	72
23019	.byte	4
23020	.byte	70
23021	.byte	-123
23022	.byte	0
23023	.byte	4
23024	.byte	1
23025	.byte	8
23026	.hword	256
23027	.byte	2
23028	.byte	2
23029	.hword	1024
23030	.hword	287
23031	.byte	1
23032	.byte	0
23033	.byte	24
23034	.byte	32
23035	.byte	1
23036	.byte	0
23037	.byte	1
23038	.byte	0
23039	.byte	0
23040	.byte	0
23041	.zero	4
23042	.byte	6
23043	.byte	44
23044	.byte	-120
23045	.byte	5
23046	.byte	-58
23047	.byte	-119
23048	.byte	0
23049	.byte	4
23050	.byte	2
23051	.byte	8
23052	.hword	256
23053	.byte	2
23054	.byte	2
23055	.hword	2048
23056	.hword	287
23057	.byte	1
23058	.byte	0
23059	.byte	24
23060	.byte	32
23061	.byte	1
23062	.byte	0
23063	.byte	1
23064	.byte	0
23065	.byte	0
23066	.byte	0
23067	.zero	4
23068	.byte	5
23069	.byte	44
23070	.byte	-120
23071	.byte	36
23072	.byte	75
23073	.byte	-87
23074	.byte	0
23075	.byte	4
23076	.byte	1
23077	.byte	16
23078	.hword	256
23079	.byte	2
23080	.byte	2
23081	.hword	2048
23082	.hword	287
23083	.byte	1
23084	.byte	0
23085	.byte	24
23086	.byte	32
23087	.byte	1
23088	.byte	0
23089	.byte	1
23090	.byte	0
23091	.byte	0
23092	.byte	0
23093	.zero	4
23094	.byte	6
23095	.byte	44
23096	.byte	104
23097	.byte	0
23098	.byte	39
23099	.byte	-87
23100	.byte	0
23101	.byte	4
23102	.byte	1
23103	.byte	16
23104	.hword	128
23105	.byte	1
23106	.byte	2
23107	.hword	2048
23108	.hword	287
23109	.byte	0
23110	.byte	0
23111	.byte	24
23112	.byte	32
23113	.byte	1
23114	.byte	0
23115	.byte	1
23116	.byte	0
23117	.byte	0
23118	.byte	0
23119	.zero	4
23120	.byte	5
23121	.byte	44
23122	.byte	100
23123	.byte	100
23124	.byte	86
23125	.byte	-91
23126	.byte	0
23127	.byte	4
23128	.byte	1
23129	.byte	24
23130	.hword	512
23131	.byte	2
23132	.byte	2
23133	.hword	700
23134	.hword	479
23135	.byte	4
23136	.byte	18
23137	.byte	60
23138	.byte	32
23139	.byte	1
23140	.byte	0
23141	.byte	1
23142	.byte	0
23143	.byte	0
23144	.byte	0
23145	.zero	4
23146	.byte	6
23147	.byte	44
23148	.byte	-124
23149	.byte	-59
23150	.byte	75
23151	.byte	-87
23152	.byte	0
23153	.byte	4
23154	.byte	2
23155	.byte	16
23156	.hword	256
23157	.byte	2
23158	.byte	2
23159	.hword	2048
23160	.hword	479
23161	.byte	3
23162	.byte	17
23163	.byte	40
23164	.byte	32
23165	.byte	1
23166	.byte	0
23167	.byte	1
23168	.byte	0
23169	.byte	0
23170	.byte	0
23171	.zero	4
23172	.byte	6
23173	.byte	44
23174	.byte	-43
23175	.byte	-47
23176	.byte	-90
23177	.byte	104
23178	.byte	0
23179	.byte	4
23180	.byte	2
23181	.byte	8
23182	.hword	64
23183	.byte	1
23184	.byte	2
23185	.hword	2048
23186	.hword	279
23187	.byte	0
23188	.byte	0
23189	.byte	24
23190	.byte	32
23191	.byte	1
23192	.byte	0
23193	.byte	1
23194	.byte	0
23195	.byte	0
23196	.byte	0
23197	.zero	4
23198	.byte	6
23199	.byte	44
23200	.byte	-36
23201	.byte	-112
23202	.byte	-90
23203	.byte	84
23204	.byte	0
23205	.byte	4
23206	.byte	1
23207	.byte	8
23208	.hword	64
23209	.byte	1
23210	.byte	2
23211	.hword	1024
23212	.hword	279
23213	.byte	0
23214	.byte	0
23215	.byte	24
23216	.byte	32
23217	.byte	1
23218	.byte	0
23219	.byte	1
23220	.byte	0
23221	.byte	0
23222	.byte	0
23223	.zero	4
23224	.byte	5
23225	.byte	44
23226	.byte	100
23227	.byte	100
23228	.byte	84
23229	.byte	-92
23230	.byte	0
23231	.byte	4
23232	.byte	1
23233	.byte	32
23234	.hword	512
23235	.byte	2
23236	.byte	1
23237	.hword	1024
23238	.hword	479
23239	.byte	4
23240	.byte	18
23241	.byte	60
23242	.byte	32
23243	.byte	1
23244	.byte	0
23245	.byte	1
23246	.byte	0
23247	.byte	0
23248	.byte	0
23249	.zero	4
23250	.byte	5
23251	.byte	44
23252	.byte	-124
23253	.byte	68
23254	.byte	50
23255	.byte	-86
23256	.byte	0
23257	.byte	4
23258	.byte	1
23259	.byte	32
23260	.hword	512
23261	.byte	2
23262	.byte	1
23263	.hword	2184
23264	.hword	1479
23265	.byte	5
23266	.byte	19
23267	.byte	60
23268	.byte	32
23269	.byte	1
23270	.byte	0
23271	.byte	1
23272	.byte	0
23273	.byte	1
23274	.byte	0
23275	.zero	4
23276	.byte	5
23277	.byte	44
23278	.byte	100
23279	.byte	68
23280	.byte	50
23281	.byte	-91
23282	.byte	0
23283	.byte	4
23284	.byte	1
23285	.byte	32
23286	.hword	512
23287	.byte	2
23288	.byte	1
23289	.hword	1048
23290	.hword	1479
23291	.byte	5
23292	.byte	19
23293	.byte	60
23294	.byte	32
23295	.byte	1
23296	.byte	0
23297	.byte	1
23298	.byte	0
23299	.byte	1
23300	.byte	0
23301	.zero	4
23302	.byte	5
23303	.byte	44
23304	.byte	100
23305	.byte	100
23306	.byte	60
23307	.byte	-91
23308	.byte	0
23309	.byte	4
23310	.byte	1
23311	.byte	32
23312	.hword	512
23313	.byte	2
23314	.byte	1
23315	.hword	1044
23316	.hword	479
23317	.byte	3
23318	.byte	17
23319	.byte	40
23320	.byte	32
23321	.byte	1
23322	.byte	0
23323	.byte	1
23324	.byte	0
23325	.byte	0
23326	.byte	0
23327	.zero	4
23328	.byte	5
23329	.byte	44
23330	.byte	-124
23331	.byte	68
23332	.byte	50
23333	.byte	-86
23334	.byte	0
23335	.byte	4
23336	.byte	1
23337	.byte	32
23338	.hword	512
23339	.byte	2
23340	.byte	1
23341	.hword	2184
23342	.hword	1479
23343	.byte	5
23344	.byte	19
23345	.byte	60
23346	.byte	32
23347	.byte	1
23348	.byte	0
23349	.byte	4
23350	.byte	0
23351	.byte	1
23352	.byte	0
23353	.zero	4
23354	.byte	5
23355	.byte	44
23356	.byte	-124
23357	.byte	68
23358	.byte	52
23359	.byte	-86
23360	.byte	0
23361	.byte	4
23362	.byte	1
23363	.byte	32
23364	.hword	512
23365	.byte	2
23366	.byte	1
23367	.hword	2184
23368	.hword	1479
23369	.byte	5
23370	.byte	19
23371	.byte	60
23372	.byte	32
23373	.byte	1
23374	.byte	0
23375	.byte	4
23376	.byte	0
23377	.byte	1
23378	.byte	0
23379	.zero	4
23380	.byte	5
23381	.byte	44
23382	.byte	-124
23383	.byte	-60
23384	.byte	52
23385	.byte	-86
23386	.byte	0
23387	.byte	4
23388	.byte	1
23389	.byte	32
23390	.hword	512
23391	.byte	2
23392	.byte	1
23393	.hword	2184
23394	.hword	1479
23395	.byte	5
23396	.byte	19
23397	.byte	60
23398	.byte	32
23399	.byte	1
23400	.byte	0
23401	.byte	1
23402	.byte	0
23403	.byte	1
23404	.byte	0
23405	.zero	4
23406	.byte	5
23407	.byte	44
23408	.byte	-124
23409	.byte	68
23410	.byte	52
23411	.byte	-92
23412	.byte	0
23413	.byte	4
23414	.byte	1
23415	.byte	32
23416	.hword	512
23417	.byte	2
23418	.byte	1
23419	.hword	2184
23420	.hword	1479
23421	.byte	5
23422	.byte	19
23423	.byte	60
23424	.byte	32
23425	.byte	1
23426	.byte	0
23427	.byte	1
23428	.byte	0
23429	.byte	1
23430	.byte	0
23431	.zero	4
23432	.byte	5
23433	.byte	44
23434	.byte	-124
23435	.byte	100
23436	.byte	60
23437	.byte	-87
23438	.byte	0
23439	.byte	4
23440	.byte	1
23441	.byte	32
23442	.hword	512
23443	.byte	2
23444	.byte	2
23445	.hword	1024
23446	.hword	479
23447	.byte	3
23448	.byte	17
23449	.byte	40
23450	.byte	32
23451	.byte	1
23452	.byte	0
23453	.byte	1
23454	.byte	0
23455	.byte	0
23456	.byte	0
23457	.zero	4
23458	.byte	6
23459	.byte	44
23460	.byte	-92
23461	.byte	100
23462	.byte	50
23463	.byte	-86
23464	.byte	4
23465	.byte	4
23466	.byte	1
23467	.byte	32
23468	.hword	1024
23469	.byte	2
23470	.byte	1
23471	.hword	2192
23472	.hword	1479
23473	.byte	10
23474	.byte	19
23475	.byte	60
23476	.byte	32
23477	.byte	1
23478	.byte	0
23479	.byte	4
23480	.byte	0
23481	.byte	1
23482	.byte	0
23483	.zero	4
23484	.byte	6
23485	.byte	-83
23486	.byte	-34
23487	.byte	-108
23488	.byte	-46
23489	.byte	4
23490	.byte	67
23491	.byte	2
23492	.byte	1
23493	.byte	16
23494	.hword	256
23495	.byte	2
23496	.byte	2
23497	.hword	2048
23498	.hword	473
23499	.byte	1
23500	.byte	1
23501	.byte	24
23502	.byte	32
23503	.byte	4
23504	.byte	0
23505	.byte	3
23506	.byte	0
23507	.byte	0
23508	.byte	0
23509	.zero	4
23510	.byte	6
23511	.byte	-83
23512	.byte	-41
23513	.byte	-108
23514	.byte	-38
23515	.byte	116
23516	.byte	-61
23517	.byte	2
23518	.byte	1
23519	.byte	16
23520	.hword	256
23521	.byte	2
23522	.byte	2
23523	.hword	1024
23524	.hword	473
23525	.byte	1
23526	.byte	2
23527	.byte	40
23528	.byte	32
23529	.byte	4
23530	.byte	0
23531	.byte	3
23532	.byte	0
23533	.byte	0
23534	.byte	0
23535	.zero	4
23536	.byte	6
23537	.byte	-83
23538	.byte	-41
23539	.byte	-108
23540	.byte	-111
23541	.byte	96
23542	.byte	68
23543	.byte	2
23544	.byte	1
23545	.byte	16
23546	.hword	256
23547	.byte	2
23548	.byte	2
23549	.hword	1046
23550	.hword	473
23551	.byte	1
23552	.byte	3
23553	.byte	40
23554	.byte	32
23555	.byte	4
23556	.byte	1
23557	.byte	3
23558	.byte	0
23559	.byte	0
23560	.byte	0
23561	.zero	4
23562	.byte	6
23563	.byte	-83
23564	.byte	-34
23565	.byte	-108
23566	.byte	-38
23567	.byte	116
23568	.byte	-60
23569	.byte	2
23570	.byte	1
23571	.byte	16
23572	.hword	256
23573	.byte	2
23574	.byte	2
23575	.hword	2090
23576	.hword	473
23577	.byte	1
23578	.byte	4
23579	.byte	40
23580	.byte	32
23581	.byte	4
23582	.byte	1
23583	.byte	3
23584	.byte	0
23585	.byte	0
23586	.byte	0
23587	.zero	4
23588	.byte	6
23589	.byte	-83
23590	.byte	-34
23591	.byte	-108
23592	.byte	-21
23593	.byte	116
23594	.byte	68
23595	.byte	2
23596	.byte	1
23597	.byte	32
23598	.hword	256
23599	.byte	2
23600	.byte	2
23601	.hword	1066
23602	.hword	473
23603	.byte	1
23604	.byte	7
23605	.byte	40
23606	.byte	32
23607	.byte	4
23608	.byte	1
23609	.byte	3
23610	.byte	0
23611	.byte	0
23612	.byte	0
23613	.zero	4
23614	.byte	6
23615	.byte	-83
23616	.byte	-43
23617	.byte	-108
23618	.byte	-38
23619	.byte	116
23620	.byte	-60
23621	.byte	2
23622	.byte	1
23623	.byte	16
23624	.hword	256
23625	.byte	2
23626	.byte	2
23627	.hword	530
23628	.hword	473
23629	.byte	1
23630	.byte	3
23631	.byte	40
23632	.byte	32
23633	.byte	4
23634	.byte	1
23635	.byte	3
23636	.byte	0
23637	.byte	0
23638	.byte	0
23639	.zero	4
23640	.byte	6
23641	.byte	-83
23642	.byte	-41
23643	.byte	-108
23644	.byte	-102
23645	.byte	116
23646	.byte	66
23647	.byte	2
23648	.byte	1
23649	.byte	16
23650	.hword	256
23651	.byte	2
23652	.byte	2
23653	.hword	1024
23654	.hword	281
23655	.byte	1
23656	.byte	0
23657	.byte	24
23658	.byte	32
23659	.byte	4
23660	.byte	0
23661	.byte	3
23662	.byte	0
23663	.byte	0
23664	.byte	0
23665	.zero	4
23666	.byte	6
23667	.byte	-83
23668	.byte	-34
23669	.byte	20
23670	.byte	-89
23671	.byte	66
23672	.byte	74
23673	.byte	2
23674	.byte	1
23675	.byte	32
23676	.hword	256
23677	.byte	2
23678	.byte	2
23679	.hword	1060
23680	.hword	473
23681	.byte	2
23682	.byte	5
23683	.byte	40
23684	.byte	32
23685	.byte	4
23686	.byte	1
23687	.byte	3
23688	.byte	0
23689	.byte	0
23690	.byte	0
23691	.zero	4
23692	.byte	6
23693	.byte	-83
23694	.byte	-41
23695	.byte	20
23696	.byte	-98
23697	.byte	52
23698	.byte	74
23699	.byte	2
23700	.byte	1
23701	.byte	16
23702	.hword	256
23703	.byte	2
23704	.byte	2
23705	.hword	1056
23706	.hword	473
23707	.byte	2
23708	.byte	5
23709	.byte	40
23710	.byte	32
23711	.byte	4
23712	.byte	1
23713	.byte	3
23714	.byte	0
23715	.byte	0
23716	.byte	0
23717	.zero	4
23718	.byte	6
23719	.byte	-83
23720	.byte	-34
23721	.byte	-108
23722	.byte	-89
23723	.byte	66
23724	.byte	72
23725	.byte	2
23726	.byte	1
23727	.byte	32
23728	.hword	256
23729	.byte	2
23730	.byte	2
23731	.hword	1060
23732	.hword	473
23733	.byte	2
23734	.byte	5
23735	.byte	40
23736	.byte	32
23737	.byte	4
23738	.byte	1
23739	.byte	3
23740	.byte	0
23741	.byte	0
23742	.byte	0
23743	.zero	4
23744	.byte	6
23745	.byte	-83
23746	.byte	-34
23747	.byte	20
23748	.byte	-85
23749	.byte	66
23750	.byte	74
23751	.byte	2
23752	.byte	1
23753	.byte	32
23754	.hword	256
23755	.byte	2
23756	.byte	2
23757	.hword	1056
23758	.hword	473
23759	.byte	2
23760	.byte	6
23761	.byte	40
23762	.byte	32
23763	.byte	3
23764	.byte	1
23765	.byte	3
23766	.byte	0
23767	.byte	0
23768	.byte	0
23769	.zero	4
23770	.byte	6
23771	.byte	-83
23772	.byte	58
23773	.byte	20
23774	.byte	-85
23775	.byte	66
23776	.byte	74
23777	.byte	2
23778	.byte	1
23779	.byte	32
23780	.hword	256
23781	.byte	2
23782	.byte	2
23783	.hword	2092
23784	.hword	473
23785	.byte	2
23786	.byte	5
23787	.byte	40
23788	.byte	32
23789	.byte	3
23790	.byte	1
23791	.byte	3
23792	.byte	0
23793	.byte	0
23794	.byte	0
23795	.zero	4
23796	.byte	6
23797	.byte	-83
23798	.byte	-43
23799	.byte	-108
23800	.byte	-102
23801	.byte	116
23802	.byte	66
23803	.byte	2
23804	.byte	1
23805	.byte	16
23806	.hword	256
23807	.byte	2
23808	.byte	1
23809	.hword	1024
23810	.hword	273
23811	.byte	1
23812	.byte	0
23813	.byte	24
23814	.byte	32
23815	.byte	4
23816	.byte	1
23817	.byte	3
23818	.byte	0
23819	.byte	0
23820	.byte	0
23821	.zero	4
23822	.byte	6
23823	.byte	-83
23824	.byte	58
23825	.byte	20
23826	.byte	3
23827	.byte	8
23828	.byte	80
23829	.byte	2
23830	.byte	1
23831	.byte	32
23832	.hword	388
23833	.byte	2
23834	.byte	2
23835	.hword	1362
23836	.hword	473
23837	.byte	9
23838	.byte	8
23839	.byte	40
23840	.byte	32
23841	.byte	3
23842	.byte	1
23843	.byte	3
23844	.byte	0
23845	.byte	0
23846	.byte	0
23847	.zero	4
23848	.byte	6
23849	.byte	-119
23850	.byte	100
23851	.byte	68
23852	.byte	75
23853	.byte	-87
23854	.byte	0
23855	.byte	7
23856	.byte	1
23857	.byte	16
23858	.hword	256
23859	.byte	2
23860	.byte	2
23861	.hword	2048
23862	.hword	479
23863	.byte	3
23864	.byte	17
23865	.byte	40
23866	.byte	32
23867	.byte	1
23868	.byte	0
23869	.byte	1
23870	.byte	0
23871	.byte	0
23872	.byte	0
23873	.zero	4
23874	.byte	6
23875	.byte	-119
23876	.byte	-120
23877	.byte	36
23878	.byte	75
23879	.byte	-87
23880	.byte	-124
23881	.byte	7
23882	.byte	1
23883	.byte	16
23884	.hword	256
23885	.byte	2
23886	.byte	2
23887	.hword	2048
23888	.hword	479
23889	.byte	3
23890	.byte	17
23891	.byte	40
23892	.byte	32
23893	.byte	1
23894	.byte	0
23895	.byte	1
23896	.byte	0
23897	.byte	0
23898	.byte	0
23899	.zero	4
23900	.byte	6
23901	.byte	-119
23902	.byte	-120
23903	.byte	36
23904	.byte	75
23905	.byte	-87
23906	.byte	0
23907	.byte	7
23908	.byte	1
23909	.byte	16
23910	.hword	256
23911	.byte	2
23912	.byte	2
23913	.hword	2048
23914	.hword	279
23915	.byte	1
23916	.byte	0
23917	.byte	24
23918	.byte	32
23919	.byte	1
23920	.byte	0
23921	.byte	1
23922	.byte	0
23923	.byte	0
23924	.byte	0
23925	.zero	4
23926	.byte	6
23927	.byte	-119
23928	.byte	104
23929	.byte	36
23930	.byte	74
23931	.byte	-87
23932	.byte	0
23933	.byte	7
23934	.byte	1
23935	.byte	8
23936	.hword	256
23937	.byte	2
23938	.byte	2
23939	.hword	2048
23940	.hword	279
23941	.byte	1
23942	.byte	0
23943	.byte	24
23944	.byte	32
23945	.byte	1
23946	.byte	0
23947	.byte	1
23948	.byte	0
23949	.byte	0
23950	.byte	0
23951	.zero	4
23952	.byte	6
23953	.byte	-119
23954	.byte	104
23955	.byte	4
23956	.byte	74
23957	.byte	-87
23958	.byte	0
23959	.byte	7
23960	.byte	1
23961	.byte	8
23962	.hword	256
23963	.byte	2
23964	.byte	2
23965	.hword	2048
23966	.hword	279
23967	.byte	1
23968	.byte	0
23969	.byte	24
23970	.byte	32
23971	.byte	1
23972	.byte	0
23973	.byte	1
23974	.byte	0
23975	.byte	0
23976	.byte	0
23977	.zero	4
23978	.byte	6
23979	.byte	-119
23980	.byte	-41
23981	.byte	-108
23982	.byte	62
23983	.byte	-124
23984	.byte	0
23985	.byte	7
23986	.byte	1
23987	.byte	8
23988	.hword	256
23989	.byte	2
23990	.byte	2
23991	.hword	2048
23992	.hword	279
23993	.byte	1
23994	.byte	0
23995	.byte	24
23996	.byte	32
23997	.byte	1
23998	.byte	0
23999	.byte	1
24000	.byte	0
24001	.byte	0
24002	.byte	0
24003	.zero	4
24004	.byte	6
24005	.byte	-119
24006	.byte	104
24007	.byte	4
24008	.byte	70
24009	.byte	-87
24010	.byte	0
24011	.byte	7
24012	.byte	1
24013	.byte	8
24014	.hword	256
24015	.byte	2
24016	.byte	2
24017	.hword	2048
24018	.hword	279
24019	.byte	1
24020	.byte	0
24021	.byte	24
24022	.byte	32
24023	.byte	1
24024	.byte	0
24025	.byte	1
24026	.byte	0
24027	.byte	0
24028	.byte	0
24029	.zero	4
24030	.byte	5
24031	.byte	-119
24032	.byte	100
24033	.byte	100
24034	.byte	60
24035	.byte	-95
24036	.byte	0
24037	.byte	7
24038	.byte	1
24039	.byte	32
24040	.hword	512
24041	.byte	2
24042	.byte	1
24043	.hword	1024
24044	.hword	455
24045	.byte	4
24046	.byte	17
24047	.byte	40
24048	.byte	32
24049	.byte	1
24050	.byte	0
24051	.byte	1
24052	.byte	0
24053	.byte	0
24054	.byte	0
24055	.zero	4
24056	.byte	5
24057	.byte	-119
24058	.byte	-124
24059	.byte	100
24060	.byte	60
24061	.byte	-91
24062	.byte	0
24063	.byte	7
24064	.byte	1
24065	.byte	32
24066	.hword	512
24067	.byte	2
24068	.byte	2
24069	.hword	1024
24070	.hword	455
24071	.byte	4
24072	.byte	17
24073	.byte	40
24074	.byte	32
24075	.byte	1
24076	.byte	0
24077	.byte	1
24078	.byte	0
24079	.byte	0
24080	.byte	0
24081	.zero	4
24082	.byte	6
24083	.byte	-119
24084	.byte	-120
24085	.byte	36
24086	.byte	59
24087	.byte	-87
24088	.byte	0
24089	.byte	7
24090	.byte	1
24091	.byte	16
24092	.hword	192
24093	.byte	2
24094	.byte	2
24095	.hword	2048
24096	.hword	279
24097	.byte	12
24098	.byte	0
24099	.byte	24
24100	.byte	32
24101	.byte	1
24102	.byte	0
24103	.byte	1
24104	.byte	0
24105	.byte	0
24106	.byte	0
24107	.zero	4
24108	.byte	6
24109	.byte	-104
24110	.byte	-41
24111	.byte	-124
24112	.byte	-109
24113	.byte	114
24114	.byte	87
24115	.byte	1
24116	.byte	1
24117	.byte	32
24118	.hword	256
24119	.byte	2
24120	.byte	1
24121	.hword	1060
24122	.hword	1473
24123	.byte	2
24124	.byte	33
24125	.byte	40
24126	.byte	32
24127	.byte	2
24128	.byte	1
24129	.byte	1
24130	.byte	0
24131	.byte	0
24132	.byte	0
24133	.zero	4
24134	.byte	6
24135	.byte	-104
24136	.byte	-34
24137	.byte	-124
24138	.byte	-109
24139	.byte	114
24140	.byte	87
24141	.byte	1
24142	.byte	1
24143	.byte	32
24144	.hword	256
24145	.byte	2
24146	.byte	1
24147	.hword	2092
24148	.hword	1473
24149	.byte	2
24150	.byte	33
24151	.byte	40
24152	.byte	32
24153	.byte	2
24154	.byte	1
24155	.byte	1
24156	.byte	0
24157	.byte	0
24158	.byte	0
24159	.zero	4
24160	.byte	6
24161	.byte	-104
24162	.byte	58
24163	.byte	-123
24164	.byte	-109
24165	.byte	118
24166	.byte	87
24167	.byte	1
24168	.byte	2
24169	.byte	32
24170	.hword	256
24171	.byte	2
24172	.byte	1
24173	.hword	2092
24174	.hword	1505
24175	.byte	2
24176	.byte	33
24177	.byte	40
24178	.byte	32
24179	.byte	2
24180	.byte	1
24181	.byte	1
24182	.byte	0
24183	.byte	0
24184	.byte	0
24185	.zero	4
24186	.byte	6
24187	.byte	-104
24188	.byte	-43
24189	.byte	-124
24190	.byte	50
24191	.byte	114
24192	.byte	86
24193	.byte	1
24194	.byte	1
24195	.byte	16
24196	.hword	128
24197	.byte	2
24198	.byte	1
24199	.hword	2056
24200	.hword	1473
24201	.byte	2
24202	.byte	33
24203	.byte	40
24204	.byte	32
24205	.byte	2
24206	.byte	1
24207	.byte	1
24208	.byte	0
24209	.byte	0
24210	.byte	0
24211	.zero	4
24212	.byte	6
24213	.byte	-104
24214	.byte	-41
24215	.byte	-108
24216	.byte	50
24217	.byte	118
24218	.byte	86
24219	.byte	1
24220	.byte	1
24221	.byte	16
24222	.hword	128
24223	.byte	2
24224	.byte	2
24225	.hword	2058
24226	.hword	1489
24227	.byte	2
24228	.byte	33
24229	.byte	40
24230	.byte	32
24231	.byte	2
24232	.byte	1
24233	.byte	1
24234	.byte	0
24235	.byte	0
24236	.byte	0
24237	.zero	4
24238	.byte	6
24239	.byte	-104
24240	.byte	-34
24241	.byte	-108
24242	.byte	-126
24243	.byte	118
24244	.byte	86
24245	.byte	1
24246	.byte	1
24247	.byte	16
24248	.hword	256
24249	.byte	2
24250	.byte	2
24251	.hword	2062
24252	.hword	1489
24253	.byte	1
24254	.byte	33
24255	.byte	40
24256	.byte	32
24257	.byte	2
24258	.byte	1
24259	.byte	1
24260	.byte	0
24261	.byte	0
24262	.byte	0
24263	.zero	4
24264	.byte	6
24265	.byte	-104
24266	.byte	-34
24267	.byte	-108
24268	.byte	-109
24269	.byte	118
24270	.byte	80
24271	.byte	1
24272	.byte	1
24273	.byte	32
24274	.hword	256
24275	.byte	2
24276	.byte	2
24277	.hword	1066
24278	.hword	1497
24279	.byte	2
24280	.byte	34
24281	.byte	40
24282	.byte	32
24283	.byte	3
24284	.byte	1
24285	.byte	1
24286	.byte	0
24287	.byte	0
24288	.byte	0
24289	.zero	4
24290	.byte	6
24291	.byte	-104
24292	.byte	58
24293	.byte	-107
24294	.byte	-109
24295	.byte	122
24296	.byte	80
24297	.byte	1
24298	.byte	2
24299	.byte	32
24300	.hword	256
24301	.byte	2
24302	.byte	2
24303	.hword	1066
24304	.hword	1497
24305	.byte	2
24306	.byte	34
24307	.byte	40
24308	.byte	32
24309	.byte	3
24310	.byte	1
24311	.byte	1
24312	.byte	0
24313	.byte	0
24314	.byte	0
24315	.zero	4
24316	.byte	6
24317	.byte	-104
24318	.byte	-41
24319	.byte	-108
24320	.byte	50
24321	.byte	118
24322	.byte	85
24323	.byte	1
24324	.byte	1
24325	.byte	16
24326	.hword	128
24327	.byte	2
24328	.byte	2
24329	.hword	2050
24330	.hword	401
24331	.byte	2
24332	.byte	0
24333	.byte	24
24334	.byte	32
24335	.byte	1
24336	.byte	1
24337	.byte	1
24338	.byte	0
24339	.byte	0
24340	.byte	0
24341	.zero	4
24342	.byte	6
24343	.byte	-104
24344	.byte	-34
24345	.byte	-108
24346	.byte	-109
24347	.byte	118
24348	.byte	87
24349	.byte	1
24350	.byte	1
24351	.byte	32
24352	.hword	256
24353	.byte	2
24354	.byte	2
24355	.hword	1058
24356	.hword	1497
24357	.byte	2
24358	.byte	33
24359	.byte	40
24360	.byte	32
24361	.byte	3
24362	.byte	1
24363	.byte	1
24364	.byte	0
24365	.byte	0
24366	.byte	0
24367	.zero	4
24368	.byte	6
24369	.byte	-104
24370	.byte	-41
24371	.byte	-124
24372	.byte	-109
24373	.byte	114
24374	.byte	80
24375	.byte	1
24376	.byte	1
24377	.byte	32
24378	.hword	256
24379	.byte	2
24380	.byte	1
24381	.hword	1060
24382	.hword	1473
24383	.byte	2
24384	.byte	34
24385	.byte	40
24386	.byte	32
24387	.byte	3
24388	.byte	1
24389	.byte	1
24390	.byte	0
24391	.byte	0
24392	.byte	0
24393	.zero	4
24394	.byte	6
24395	.byte	-104
24396	.byte	-34
24397	.byte	-108
24398	.byte	-109
24399	.byte	118
24400	.byte	81
24401	.byte	1
24402	.byte	1
24403	.byte	32
24404	.hword	256
24405	.byte	2
24406	.byte	2
24407	.hword	1074
24408	.hword	1497
24409	.byte	2
24410	.byte	35
24411	.byte	40
24412	.byte	32
24413	.byte	3
24414	.byte	1
24415	.byte	4
24416	.byte	0
24417	.byte	0
24418	.byte	0
24419	.zero	4
24420	.byte	6
24421	.byte	-104
24422	.byte	58
24423	.byte	-108
24424	.byte	-109
24425	.byte	118
24426	.byte	81
24427	.byte	1
24428	.byte	1
24429	.byte	32
24430	.hword	256
24431	.byte	2
24432	.byte	2
24433	.hword	2106
24434	.hword	1497
24435	.byte	2
24436	.byte	35
24437	.byte	40
24438	.byte	32
24439	.byte	3
24440	.byte	1
24441	.byte	4
24442	.byte	0
24443	.byte	0
24444	.byte	0
24445	.zero	4
24446	.byte	6
24447	.byte	-104
24448	.byte	-41
24449	.byte	-124
24450	.byte	-109
24451	.byte	114
24452	.byte	81
24453	.byte	1
24454	.byte	1
24455	.byte	32
24456	.hword	256
24457	.byte	2
24458	.byte	1
24459	.hword	1056
24460	.hword	1497
24461	.byte	2
24462	.byte	35
24463	.byte	40
24464	.byte	32
24465	.byte	3
24466	.byte	1
24467	.byte	4
24468	.byte	0
24469	.byte	0
24470	.byte	0
24471	.zero	4
24472	.byte	6
24473	.byte	-104
24474	.byte	-34
24475	.byte	-108
24476	.byte	-109
24477	.byte	118
24478	.byte	-47
24479	.byte	1
24480	.byte	1
24481	.byte	32
24482	.hword	256
24483	.byte	2
24484	.byte	2
24485	.hword	1074
24486	.hword	1497
24487	.byte	2
24488	.byte	35
24489	.byte	40
24490	.byte	32
24491	.byte	3
24492	.byte	1
24493	.byte	4
24494	.byte	0
24495	.byte	0
24496	.byte	0
24497	.zero	4
24498	.byte	6
24499	.byte	69
24500	.byte	-34
24501	.byte	-108
24502	.byte	-109
24503	.byte	118
24504	.byte	87
24505	.byte	8
24506	.byte	1
24507	.byte	32
24508	.hword	256
24509	.byte	2
24510	.byte	2
24511	.hword	1058
24512	.hword	1497
24513	.byte	2
24514	.byte	66
24515	.byte	40
24516	.byte	32
24517	.byte	3
24518	.byte	1
24519	.byte	1
24520	.byte	0
24521	.byte	0
24522	.byte	0
24523	.zero	4
24524	.byte	6
24525	.byte	69
24526	.byte	-41
24527	.byte	-124
24528	.byte	-109
24529	.byte	114
24530	.byte	87
24531	.byte	8
24532	.byte	1
24533	.byte	32
24534	.hword	256
24535	.byte	2
24536	.byte	1
24537	.hword	1060
24538	.hword	1473
24539	.byte	2
24540	.byte	66
24541	.byte	40
24542	.byte	32
24543	.byte	2
24544	.byte	1
24545	.byte	1
24546	.byte	0
24547	.byte	0
24548	.byte	0
24549	.zero	4
24550	.byte	6
24551	.byte	69
24552	.byte	-34
24553	.byte	-92
24554	.byte	-126
24555	.byte	118
24556	.byte	86
24557	.byte	8
24558	.byte	1
24559	.byte	16
24560	.hword	256
24561	.byte	2
24562	.byte	2
24563	.hword	2082
24564	.hword	473
24565	.byte	1
24566	.byte	65
24567	.byte	40
24568	.byte	32
24569	.byte	3
24570	.byte	1
24571	.byte	1
24572	.byte	0
24573	.byte	0
24574	.byte	0
24575	.zero	4
24576	.byte	6
24577	.byte	69
24578	.byte	-34
24579	.byte	-108
24580	.byte	-109
24581	.byte	118
24582	.byte	80
24583	.byte	8
24584	.byte	1
24585	.byte	32
24586	.hword	256
24587	.byte	2
24588	.byte	2
24589	.hword	1066
24590	.hword	1497
24591	.byte	2
24592	.byte	67
24593	.byte	40
24594	.byte	32
24595	.byte	3
24596	.byte	1
24597	.byte	1
24598	.byte	0
24599	.byte	0
24600	.byte	0
24601	.zero	4
24602	.byte	6
24603	.byte	69
24604	.byte	-41
24605	.byte	-124
24606	.byte	-109
24607	.byte	114
24608	.byte	80
24609	.byte	8
24610	.byte	1
24611	.byte	32
24612	.hword	256
24613	.byte	2
24614	.byte	1
24615	.hword	1060
24616	.hword	1473
24617	.byte	2
24618	.byte	67
24619	.byte	40
24620	.byte	32
24621	.byte	3
24622	.byte	1
24623	.byte	1
24624	.byte	0
24625	.byte	0
24626	.byte	0
24627	.zero	4
24628	.byte	6
24629	.byte	69
24630	.byte	-34
24631	.byte	-92
24632	.byte	-126
24633	.byte	118
24634	.byte	-41
24635	.byte	8
24636	.byte	1
24637	.byte	16
24638	.hword	256
24639	.byte	2
24640	.byte	2
24641	.hword	2090
24642	.hword	1241
24643	.byte	1
24644	.byte	66
24645	.byte	40
24646	.byte	32
24647	.byte	3
24648	.byte	1
24649	.byte	1
24650	.byte	0
24651	.byte	0
24652	.byte	0
24653	.zero	4
24654	.byte	6
24655	.byte	69
24656	.byte	-34
24657	.byte	-124
24658	.byte	-109
24659	.byte	114
24660	.byte	87
24661	.byte	8
24662	.byte	1
24663	.byte	32
24664	.hword	256
24665	.byte	2
24666	.byte	1
24667	.hword	2092
24668	.hword	1473
24669	.byte	2
24670	.byte	66
24671	.byte	40
24672	.byte	32
24673	.byte	3
24674	.byte	1
24675	.byte	1
24676	.byte	0
24677	.byte	0
24678	.byte	0
24679	.zero	4
24680	.byte	6
24681	.byte	69
24682	.byte	58
24683	.byte	-108
24684	.byte	-109
24685	.byte	118
24686	.byte	81
24687	.byte	8
24688	.byte	1
24689	.byte	32
24690	.hword	256
24691	.byte	2
24692	.byte	2
24693	.hword	2106
24694	.hword	473
24695	.byte	2
24696	.byte	68
24697	.byte	40
24698	.byte	32
24699	.byte	3
24700	.byte	1
24701	.byte	4
24702	.byte	0
24703	.byte	0
24704	.byte	0
24705	.zero	4
24706	.byte	6
24707	.byte	69
24708	.byte	-34
24709	.byte	-108
24710	.byte	-109
24711	.byte	118
24712	.byte	81
24713	.byte	8
24714	.byte	1
24715	.byte	32
24716	.hword	256
24717	.byte	2
24718	.byte	2
24719	.hword	1074
24720	.hword	473
24721	.byte	2
24722	.byte	68
24723	.byte	40
24724	.byte	32
24725	.byte	3
24726	.byte	1
24727	.byte	4
24728	.byte	0
24729	.byte	0
24730	.byte	0
24731	.zero	4
24732	.byte	6
24733	.byte	69
24734	.byte	58
24735	.byte	-92
24736	.byte	-109
24737	.byte	122
24738	.byte	80
24739	.byte	8
24740	.byte	1
24741	.byte	32
24742	.hword	256
24743	.byte	2
24744	.byte	2
24745	.hword	2138
24746	.hword	1497
24747	.byte	2
24748	.byte	0
24749	.byte	40
24750	.byte	32
24751	.byte	3
24752	.byte	1
24753	.byte	1
24754	.byte	0
24755	.byte	0
24756	.byte	0
24757	.zero	4
24758	.byte	6
24759	.byte	69
24760	.byte	-34
24761	.byte	-108
24762	.byte	-126
24763	.byte	118
24764	.byte	86
24765	.byte	8
24766	.byte	1
24767	.byte	16
24768	.hword	256
24769	.byte	2
24770	.byte	2
24771	.hword	2062
24772	.hword	473
24773	.byte	1
24774	.byte	0
24775	.byte	40
24776	.byte	32
24777	.byte	3
24778	.byte	1
24779	.byte	1
24780	.byte	0
24781	.byte	0
24782	.byte	0
24783	.zero	4
24784	.byte	6
24785	.byte	69
24786	.byte	-34
24787	.byte	-108
24788	.byte	-109
24789	.byte	118
24790	.byte	-41
24791	.byte	8
24792	.byte	1
24793	.byte	32
24794	.hword	256
24795	.byte	2
24796	.byte	2
24797	.hword	1058
24798	.hword	1497
24799	.byte	2
24800	.byte	66
24801	.byte	40
24802	.byte	32
24803	.byte	3
24804	.byte	1
24805	.byte	1
24806	.byte	0
24807	.byte	0
24808	.byte	0
24809	.zero	4
24810	.byte	5
24811	.byte	-20
24812	.byte	-41
24813	.byte	-108
24814	.byte	126
24815	.byte	100
24816	.byte	68
24817	.byte	0
24818	.byte	1
24819	.byte	16
24820	.hword	128
24821	.byte	2
24822	.byte	2
24823	.hword	2048
24824	.hword	473
24825	.byte	2
24826	.byte	49
24827	.byte	60
24828	.byte	36
24829	.byte	3
24830	.byte	0
24831	.byte	3
24832	.byte	0
24833	.byte	0
24834	.byte	0
24835	.zero	4
24836	.byte	6
24837	.byte	-20
24838	.byte	-34
24839	.byte	-43
24840	.byte	126
24841	.byte	104
24842	.byte	68
24843	.byte	0
24844	.byte	2
24845	.byte	16
24846	.hword	128
24847	.byte	2
24848	.byte	2
24849	.hword	2048
24850	.hword	505
24851	.byte	2
24852	.byte	49
24853	.byte	60
24854	.byte	36
24855	.byte	3
24856	.byte	0
24857	.byte	3
24858	.byte	0
24859	.byte	0
24860	.byte	0
24861	.zero	4
24862	.byte	6
24863	.byte	-20
24864	.byte	-41
24865	.byte	-108
24866	.byte	122
24867	.byte	84
24868	.byte	67
24869	.byte	0
24870	.byte	1
24871	.byte	16
24872	.hword	128
24873	.byte	2
24874	.byte	2
24875	.hword	2076
24876	.hword	409
24877	.byte	2
24878	.byte	0
24879	.byte	40
24880	.byte	36
24881	.byte	3
24882	.byte	1
24883	.byte	3
24884	.byte	0
24885	.byte	0
24886	.byte	0
24887	.zero	4
24888	.byte	6
24889	.byte	-20
24890	.byte	-34
24891	.byte	-43
24892	.byte	122
24893	.byte	88
24894	.byte	67
24895	.byte	0
24896	.byte	2
24897	.byte	16
24898	.hword	128
24899	.byte	2
24900	.byte	2
24901	.hword	2076
24902	.hword	441
24903	.byte	2
24904	.byte	0
24905	.byte	40
24906	.byte	36
24907	.byte	3
24908	.byte	1
24909	.byte	3
24910	.byte	0
24911	.byte	0
24912	.byte	0
24913	.zero	4
24914	.byte	6
24915	.byte	-20
24916	.byte	-43
24917	.byte	-108
24918	.byte	118
24919	.byte	84
24920	.byte	67
24921	.byte	0
24922	.byte	1
24923	.byte	16
24924	.hword	128
24925	.byte	2
24926	.byte	2
24927	.hword	1038
24928	.hword	281
24929	.byte	2
24930	.byte	0
24931	.byte	24
24932	.byte	36
24933	.byte	3
24934	.byte	1
24935	.byte	3
24936	.byte	0
24937	.byte	0
24938	.byte	0
24939	.zero	4
24940	.byte	6
24941	.byte	-20
24942	.byte	-41
24943	.byte	20
24944	.byte	118
24945	.byte	84
24946	.byte	-62
24947	.byte	0
24948	.byte	1
24949	.byte	16
24950	.hword	128
24951	.byte	2
24952	.byte	2
24953	.hword	2076
24954	.hword	1169
24955	.byte	2
24956	.byte	0
24957	.byte	24
24958	.byte	40
24959	.byte	3
24960	.byte	1
24961	.byte	3
24962	.byte	0
24963	.byte	0
24964	.byte	0
24965	.zero	4
24966	.byte	6
24967	.byte	-20
24968	.byte	-34
24969	.byte	-108
24970	.byte	-61
24971	.byte	-92
24972	.byte	-54
24973	.byte	0
24974	.byte	1
24975	.byte	32
24976	.hword	792
24977	.byte	2
24978	.byte	1
24979	.hword	688
24980	.hword	1217
24981	.byte	11
24982	.byte	50
24983	.byte	40
24984	.byte	32
24985	.byte	3
24986	.byte	1
24987	.byte	1
24988	.byte	0
24989	.byte	1
24990	.byte	0
24991	.zero	4
24992	.section	.data.NandOptPara,"aw",@progbits
24993	.align	3
24994	.set	.LANCHOR146,. + 0
24995	.type	NandOptPara, %object
24996	.size	NandOptPara, 128
24997NandOptPara:
24998	.byte	1
24999	.byte	0
25000	.byte	49
25001	.byte	63
25002	.byte	0
25003	.byte	49
25004	.byte	-128
25005	.byte	21
25006	.byte	0
25007	.byte	50
25008	.byte	17
25009	.byte	-128
25010	.byte	112
25011	.byte	120
25012	.byte	120
25013	.byte	3
25014	.byte	1
25015	.byte	0
25016	.zero	14
25017	.byte	2
25018	.byte	0
25019	.byte	49
25020	.byte	63
25021	.byte	0
25022	.byte	49
25023	.byte	-128
25024	.byte	21
25025	.byte	0
25026	.byte	0
25027	.byte	17
25028	.byte	-127
25029	.byte	112
25030	.byte	-15
25031	.byte	-14
25032	.byte	0
25033	.byte	0
25034	.byte	0
25035	.zero	14
25036	.byte	3
25037	.byte	0
25038	.byte	49
25039	.byte	63
25040	.byte	0
25041	.byte	49
25042	.byte	-128
25043	.byte	21
25044	.byte	96
25045	.byte	96
25046	.byte	17
25047	.byte	-127
25048	.byte	112
25049	.byte	-15
25050	.byte	-14
25051	.byte	0
25052	.byte	0
25053	.byte	0
25054	.zero	14
25055	.byte	4
25056	.byte	0
25057	.byte	49
25058	.byte	63
25059	.byte	0
25060	.byte	49
25061	.byte	-128
25062	.byte	21
25063	.byte	96
25064	.byte	96
25065	.byte	17
25066	.byte	-127
25067	.byte	112
25068	.byte	112
25069	.byte	112
25070	.byte	0
25071	.byte	0
25072	.byte	0
25073	.zero	14
25074	.section	.data.SamsungRefValue,"aw",@progbits
25075	.align	3
25076	.set	.LANCHOR14,. + 0
25077	.type	SamsungRefValue, %object
25078	.size	SamsungRefValue, 64
25079SamsungRefValue:
25080	.byte	-89
25081	.byte	-92
25082	.byte	-91
25083	.byte	-90
25084	.byte	0
25085	.byte	0
25086	.byte	0
25087	.byte	0
25088	.byte	5
25089	.byte	10
25090	.byte	0
25091	.byte	0
25092	.byte	40
25093	.byte	0
25094	.byte	-20
25095	.byte	-40
25096	.byte	-19
25097	.byte	-11
25098	.byte	-19
25099	.byte	-26
25100	.byte	10
25101	.byte	15
25102	.byte	5
25103	.byte	0
25104	.byte	15
25105	.byte	10
25106	.byte	-5
25107	.byte	-20
25108	.byte	-24
25109	.byte	-17
25110	.byte	-24
25111	.byte	-36
25112	.byte	-15
25113	.byte	-5
25114	.byte	-2
25115	.byte	-16
25116	.byte	10
25117	.byte	0
25118	.byte	-5
25119	.byte	-20
25120	.byte	-48
25121	.byte	-30
25122	.byte	-48
25123	.byte	-62
25124	.byte	20
25125	.byte	15
25126	.byte	-5
25127	.byte	-20
25128	.byte	-24
25129	.byte	-5
25130	.byte	-24
25131	.byte	-36
25132	.byte	30
25133	.byte	20
25134	.byte	-5
25135	.byte	-20
25136	.byte	-5
25137	.byte	-1
25138	.byte	-5
25139	.byte	-8
25140	.byte	7
25141	.byte	12
25142	.byte	2
25143	.byte	0
25144	.section	.data.Toshiba15RefValue,"aw",@progbits
25145	.align	3
25146	.set	.LANCHOR9,. + 0
25147	.type	Toshiba15RefValue, %object
25148	.size	Toshiba15RefValue, 95
25149Toshiba15RefValue:
25150	.byte	4
25151	.byte	5
25152	.byte	6
25153	.byte	7
25154	.byte	13
25155	.byte	0
25156	.byte	0
25157	.byte	0
25158	.byte	0
25159	.byte	0
25160	.byte	0
25161	.byte	0
25162	.byte	0
25163	.byte	0
25164	.byte	0
25165	.byte	2
25166	.byte	4
25167	.byte	2
25168	.byte	0
25169	.byte	0
25170	.byte	8
25171	.byte	8
25172	.byte	0
25173	.byte	0
25174	.byte	0
25175	.byte	124
25176	.byte	0
25177	.byte	124
25178	.byte	124
25179	.byte	0
25180	.byte	122
25181	.byte	0
25182	.byte	122
25183	.byte	122
25184	.byte	0
25185	.byte	11
25186	.byte	126
25187	.byte	118
25188	.byte	116
25189	.byte	0
25190	.byte	120
25191	.byte	2
25192	.byte	120
25193	.byte	122
25194	.byte	0
25195	.byte	126
25196	.byte	4
25197	.byte	126
25198	.byte	122
25199	.byte	0
25200	.byte	16
25201	.byte	118
25202	.byte	114
25203	.byte	112
25204	.byte	0
25205	.byte	118
25206	.byte	4
25207	.byte	118
25208	.byte	120
25209	.byte	0
25210	.byte	4
25211	.byte	4
25212	.byte	4
25213	.byte	118
25214	.byte	0
25215	.byte	2
25216	.byte	0
25217	.byte	126
25218	.byte	124
25219	.byte	0
25220	.byte	6
25221	.byte	10
25222	.byte	6
25223	.byte	2
25224	.byte	0
25225	.byte	116
25226	.byte	124
25227	.byte	116
25228	.byte	118
25229	.byte	0
25230	.byte	4
25231	.byte	4
25232	.byte	124
25233	.byte	126
25234	.byte	0
25235	.byte	0
25236	.byte	124
25237	.byte	120
25238	.byte	120
25239	.byte	0
25240	.byte	124
25241	.byte	118
25242	.byte	116
25243	.byte	114
25244	.byte	0
25245	.section	.data.ToshibaA19RefValue,"aw",@progbits
25246	.align	3
25247	.set	.LANCHOR10,. + 0
25248	.type	ToshibaA19RefValue, %object
25249	.size	ToshibaA19RefValue, 45
25250ToshibaA19RefValue:
25251	.byte	4
25252	.byte	5
25253	.byte	6
25254	.byte	7
25255	.byte	13
25256	.byte	0
25257	.byte	0
25258	.byte	0
25259	.byte	0
25260	.byte	0
25261	.byte	4
25262	.byte	4
25263	.byte	124
25264	.byte	126
25265	.byte	0
25266	.byte	0
25267	.byte	124
25268	.byte	120
25269	.byte	120
25270	.byte	0
25271	.byte	124
25272	.byte	118
25273	.byte	116
25274	.byte	114
25275	.byte	0
25276	.byte	8
25277	.byte	8
25278	.byte	0
25279	.byte	0
25280	.byte	0
25281	.byte	11
25282	.byte	126
25283	.byte	118
25284	.byte	116
25285	.byte	0
25286	.byte	16
25287	.byte	118
25288	.byte	114
25289	.byte	112
25290	.byte	0
25291	.byte	2
25292	.byte	0
25293	.byte	126
25294	.byte	124
25295	.byte	0
25296	.section	.data.ToshibaRefValue,"aw",@progbits
25297	.align	3
25298	.set	.LANCHOR12,. + 0
25299	.type	ToshibaRefValue, %object
25300	.size	ToshibaRefValue, 8
25301ToshibaRefValue:
25302	.byte	0
25303	.byte	4
25304	.byte	124
25305	.byte	120
25306	.byte	116
25307	.byte	8
25308	.byte	12
25309	.byte	112
25310	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits
25311	.align	1
25312	.set	.LANCHOR245,. + 0
25313	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
25314	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
25315ftl_gc_temp_block_bops_scan_page_addr:
25316	.hword	-1
25317	.section	.data.gFtlInitStatus,"aw",@progbits
25318	.align	2
25319	.set	.LANCHOR247,. + 0
25320	.type	gFtlInitStatus, %object
25321	.size	gFtlInitStatus, 4
25322gFtlInitStatus:
25323	.word	-1
25324	.section	.data.gNandParaInfo,"aw",@progbits
25325	.align	3
25326	.set	.LANCHOR31,. + 0
25327	.type	gNandParaInfo, %object
25328	.size	gNandParaInfo, 32
25329gNandParaInfo:
25330	.byte	0
25331	.byte	0
25332	.zero	5
25333	.byte	0
25334	.byte	1
25335	.byte	8
25336	.hword	128
25337	.byte	2
25338	.byte	1
25339	.hword	2048
25340	.hword	0
25341	.byte	1
25342	.byte	0
25343	.byte	24
25344	.byte	32
25345	.byte	1
25346	.byte	0
25347	.byte	1
25348	.byte	0
25349	.byte	0
25350	.byte	0
25351	.zero	4
25352	.section	.data.gSlcNandParaInfo,"aw",@progbits
25353	.align	3
25354	.set	.LANCHOR209,. + 0
25355	.type	gSlcNandParaInfo, %object
25356	.size	gSlcNandParaInfo, 32
25357gSlcNandParaInfo:
25358	.byte	2
25359	.byte	-104
25360	.byte	-15
25361	.byte	0
25362	.byte	0
25363	.byte	0
25364	.byte	0
25365	.byte	1
25366	.byte	1
25367	.byte	4
25368	.hword	64
25369	.byte	1
25370	.byte	1
25371	.hword	1024
25372	.hword	256
25373	.byte	0
25374	.byte	0
25375	.byte	16
25376	.byte	40
25377	.byte	1
25378	.byte	0
25379	.byte	1
25380	.byte	0
25381	.byte	0
25382	.byte	0
25383	.zero	4
25384	.section	.data.power_up_flag,"aw",@progbits
25385	.align	2
25386	.type	power_up_flag, %object
25387	.size	power_up_flag, 4
25388power_up_flag:
25389	.word	1
25390	.section	.data.random_seed,"aw",@progbits
25391	.align	3
25392	.set	.LANCHOR5,. + 0
25393	.type	random_seed, %object
25394	.size	random_seed, 256
25395random_seed:
25396	.hword	22378
25397	.hword	1512
25398	.hword	25245
25399	.hword	17827
25400	.hword	25756
25401	.hword	19440
25402	.hword	9026
25403	.hword	10030
25404	.hword	29528
25405	.hword	20467
25406	.hword	29676
25407	.hword	24432
25408	.hword	31328
25409	.hword	6872
25410	.hword	13426
25411	.hword	13842
25412	.hword	8783
25413	.hword	1108
25414	.hword	782
25415	.hword	28837
25416	.hword	30729
25417	.hword	9505
25418	.hword	18676
25419	.hword	23085
25420	.hword	18730
25421	.hword	1085
25422	.hword	32609
25423	.hword	14697
25424	.hword	20858
25425	.hword	15170
25426	.hword	30365
25427	.hword	1607
25428	.hword	32298
25429	.hword	4995
25430	.hword	18905
25431	.hword	1976
25432	.hword	9592
25433	.hword	20204
25434	.hword	17443
25435	.hword	13615
25436	.hword	23330
25437	.hword	29369
25438	.hword	13947
25439	.hword	9398
25440	.hword	32398
25441	.hword	8984
25442	.hword	27600
25443	.hword	21785
25444	.hword	6019
25445	.hword	6311
25446	.hword	31598
25447	.hword	30210
25448	.hword	19327
25449	.hword	13896
25450	.hword	11347
25451	.hword	27545
25452	.hword	3107
25453	.hword	26575
25454	.hword	32270
25455	.hword	19852
25456	.hword	20601
25457	.hword	8349
25458	.hword	9290
25459	.hword	29819
25460	.hword	13579
25461	.hword	3661
25462	.hword	28676
25463	.hword	27331
25464	.hword	32574
25465	.hword	8693
25466	.hword	31253
25467	.hword	9081
25468	.hword	5399
25469	.hword	6842
25470	.hword	20087
25471	.hword	5537
25472	.hword	1274
25473	.hword	11617
25474	.hword	9530
25475	.hword	4866
25476	.hword	8035
25477	.hword	23219
25478	.hword	1178
25479	.hword	23272
25480	.hword	7383
25481	.hword	18944
25482	.hword	12488
25483	.hword	12871
25484	.hword	29340
25485	.hword	20532
25486	.hword	11022
25487	.hword	22514
25488	.hword	228
25489	.hword	22363
25490	.hword	24978
25491	.hword	14584
25492	.hword	12138
25493	.hword	3092
25494	.hword	17916
25495	.hword	16863
25496	.hword	14554
25497	.hword	31457
25498	.hword	29474
25499	.hword	25311
25500	.hword	24121
25501	.hword	3684
25502	.hword	28037
25503	.hword	22865
25504	.hword	22839
25505	.hword	25217
25506	.hword	13217
25507	.hword	27186
25508	.hword	14938
25509	.hword	11180
25510	.hword	29754
25511	.hword	24180
25512	.hword	15150
25513	.hword	32455
25514	.hword	20434
25515	.hword	23848
25516	.hword	29983
25517	.hword	16120
25518	.hword	14769
25519	.hword	20041
25520	.hword	29803
25521	.hword	28406
25522	.hword	17598
25523	.hword	28087
25524	.section	.data.refValueDefault,"aw",@progbits
25525	.align	3
25526	.set	.LANCHOR204,. + 0
25527	.type	refValueDefault, %object
25528	.size	refValueDefault, 28
25529refValueDefault:
25530	.byte	0
25531	.byte	0
25532	.byte	0
25533	.byte	0
25534	.byte	0
25535	.byte	6
25536	.byte	10
25537	.byte	6
25538	.byte	0
25539	.byte	-3
25540	.byte	-7
25541	.byte	-8
25542	.byte	0
25543	.byte	-6
25544	.byte	-13
25545	.byte	-15
25546	.byte	0
25547	.byte	-11
25548	.byte	-20
25549	.byte	-23
25550	.byte	0
25551	.byte	0
25552	.byte	-26
25553	.byte	-30
25554	.byte	0
25555	.byte	0
25556	.byte	-32
25557	.byte	-37
25558	.section	.rodata.FlashDdrTunningRead.str1.1,"aMS",@progbits,1
25559.LC9:
25560	.string	"sdr read ok %x ecc=%d\n"
25561.LC10:
25562	.string	"sync para %d\n"
25563.LC11:
25564	.string	"TOG mode Read error %x %x\n"
25565	.section	.rodata.FlashEraseSLc2KBlocks.str1.1,"aMS",@progbits,1
25566.LC1:
25567	.string	"FlashEraseBlocks pageAddr error %x\n"
25568	.section	.rodata.FlashInit.str1.1,"aMS",@progbits,1
25569.LC24:
25570	.string	"No.%d FLASH ID:%x %x %x %x %x %x\n"
25571.LC25:
25572	.string	"FlashLoadPhyInfo fail %x!!\n"
25573	.section	.rodata.FlashProgSlc2KPages.str1.1,"aMS",@progbits,1
25574.LC30:
25575	.string	"prog error: = %x\n"
25576.LC31:
25577	.string	"prog read error: = %x\n"
25578.LC32:
25579	.string	"prog read REFRESH: = %x\n"
25580.LC33:
25581	.string	"prog read s error: = %x %x %x\n"
25582.LC34:
25583	.string	"prog read d error: = %x %x %x\n"
25584	.section	.rodata.FlashReadFacBbtData.str1.1,"aMS",@progbits,1
25585.LC59:
25586	.string	"BBT:"
25587	.section	.rodata.FlashReadIdbDataRaw.str1.1,"aMS",@progbits,1
25588.LC15:
25589	.string	"ECC:%d\n"
25590	.section	.rodata.FlashReadPage.str1.1,"aMS",@progbits,1
25591.LC12:
25592	.string	"read retry status %x %x %x\n"
25593	.section	.rodata.FlashReadPages.str1.1,"aMS",@progbits,1
25594.LC29:
25595	.string	"ReadRetry pageadd=%x ecc=%x err=%x\n"
25596	.section	.rodata.FlashReadSlc2KPages.str1.1,"aMS",@progbits,1
25597.LC26:
25598	.string	"Read pageadd=%x  ecc=%x err=%x\n"
25599.LC27:
25600	.string	"data:"
25601.LC28:
25602	.string	"spare:"
25603	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1
25604.LC2:
25605	.string	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n"
25606	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1
25607.LC35:
25608	.string	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n"
25609.LC36:
25610	.string	"FtlBbmTblFlush error:%x\n"
25611.LC37:
25612	.string	"FtlBbmTblFlush error = %x error count = %d\n"
25613	.section	.rodata.FtlCacheWriteBack.str1.1,"aMS",@progbits,1
25614.LC76:
25615	.string	"Ftlwrite decrement_vpc_count %x = %d\n"
25616	.section	.rodata.FtlCheckVpc.str1.1,"aMS",@progbits,1
25617.LC63:
25618	.string	"FtlCheckVpc2 %x = %x  %x\n"
25619.LC64:
25620	.string	"free blk vpc error %x = %x  %x\n"
25621.LC65:
25622	.string	"error_flag %x\n"
25623	.section	.rodata.FtlDumpBlockInfo.str1.1,"aMS",@progbits,1
25624.LC48:
25625	.string	"...%s enter...\n"
25626.LC49:
25627	.string	"superBlkID = %x vpc=%x\n"
25628.LC50:
25629	.string	"flashmode = %x pagenum = %x %x\n"
25630.LC51:
25631	.string	"id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n"
25632	.section	.rodata.FtlDumpSysBlock.str1.1,"aMS",@progbits,1
25633.LC84:
25634	.string	"id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n"
25635.LC85:
25636	.string	":"
25637	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1
25638.LC3:
25639	.string	"FtlFreeSysBlkQueueOut free count = %d\n"
25640.LC4:
25641	.string	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\n"
25642	.section	.rodata.FtlGcFreeTempBlock.str1.1,"aMS",@progbits,1
25643.LC74:
25644	.string	"GC des block %x done\n"
25645	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1
25646.LC72:
25647	.string	"FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
25648.LC73:
25649	.string	"FtlGcScanTempBlkError ID %x %x!!!!!!!\n"
25650	.section	.rodata.FtlInit.str1.1,"aMS",@progbits,1
25651.LC77:
25652	.string	"FTL version: 5.0.63 20200923"
25653.LC78:
25654	.string	"...%s: no bad block mapping table, format device\n"
25655.LC79:
25656	.string	"...%s FtlSysBlkInit error ,format device!\n"
25657	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1
25658.LC45:
25659	.string	"no ect"
25660	.section	.rodata.FtlLoadSysInfo.str1.1,"aMS",@progbits,1
25661.LC47:
25662	.string	"id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n"
25663	.section	.rodata.FtlLowFormat.str1.1,"aMS",@progbits,1
25664.LC75:
25665	.string	"too many bad block  = %d %d\n"
25666	.section	.rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1
25667.LC42:
25668	.string	"FtlMapWritePage error = %x\n"
25669.LC43:
25670	.string	"FtlMapWritePage error = %x error count = %d\n"
25671	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1
25672.LC69:
25673	.string	"RSB refresh addr %x\n"
25674.LC70:
25675	.string	"spuer block %x vpn is 0\n "
25676.LC71:
25677	.string	"g_recovery_ppa %x ver %x\n "
25678	.section	.rodata.FtlScanAllBlock.str1.1,"aMS",@progbits,1
25679.LC52:
25680	.string	"blk = %x vpc=%x mode = %x\n"
25681.LC53:
25682	.string	"mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n"
25683.LC54:
25684	.string	"slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n"
25685	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",@progbits,1
25686.LC44:
25687	.string	"FtlVendorPartRead refresh = %x phyAddr = %x\n"
25688	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1
25689.LC40:
25690	.string	"FtlVpcTblFlush error = %x error count = %d\n"
25691	.section	.rodata.FtlWrite.str1.1,"aMS",@progbits,1
25692.LC83:
25693	.string	"FtlWrite: lpa error:%x %x\n"
25694	.section	.rodata.Ftl_load_ext_data.str1.1,"aMS",@progbits,1
25695.LC46:
25696	.string	"slc mode"
25697	.section	.rodata.Ftlscanalldata.str1.1,"aMS",@progbits,1
25698.LC66:
25699	.string	"Ftlscanalldata = %x\n"
25700.LC67:
25701	.string	"scan lpa = %x ppa= %x\n"
25702.LC68:
25703	.string	"lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
25704	.section	.rodata.HynixGetReadRetryDefault.str1.1,"aMS",@progbits,1
25705.LC22:
25706	.string	"otp error! %d"
25707.LC23:
25708	.string	"rr"
25709	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1
25710.LC5:
25711	.string	"\n!!!!! error @ func:%s - line:%d\n"
25712.LC6:
25713	.string	"!!!!! FTL sys Error !!!!!"
25714.LC7:
25715	.string	"%s\n"
25716	.section	.rodata.MicronReadRetrial.str1.1,"aMS",@progbits,1
25717.LC13:
25718	.string	"micron RR %d row=%x,count %d,status=%d\n"
25719	.section	.rodata.__func__.10027,"a",@progbits
25720	.align	3
25721	.set	.LANCHOR96,. + 0
25722	.type	__func__.10027, %object
25723	.size	__func__.10027, 22
25724__func__.10027:
25725	.string	"List_update_data_list"
25726	.section	.rodata.__func__.10034,"a",@progbits
25727	.align	3
25728	.set	.LANCHOR237,. + 0
25729	.type	__func__.10034, %object
25730	.size	__func__.10034, 20
25731__func__.10034:
25732	.string	"ftl_load_l2p_region"
25733	.section	.rodata.__func__.10065,"a",@progbits
25734	.align	3
25735	.set	.LANCHOR97,. + 0
25736	.type	__func__.10065, %object
25737	.size	__func__.10065, 26
25738__func__.10065:
25739	.string	"ftl_map_blk_alloc_new_blk"
25740	.section	.rodata.__func__.10075,"a",@progbits
25741	.align	3
25742	.set	.LANCHOR221,. + 0
25743	.type	__func__.10075, %object
25744	.size	__func__.10075, 15
25745__func__.10075:
25746	.string	"ftl_map_blk_gc"
25747	.section	.rodata.__func__.10088,"a",@progbits
25748	.align	3
25749	.set	.LANCHOR222,. + 0
25750	.type	__func__.10088, %object
25751	.size	__func__.10088, 31
25752__func__.10088:
25753	.string	"Ftl_write_map_blk_to_last_page"
25754	.section	.rodata.__func__.10101,"a",@progbits
25755	.align	3
25756	.set	.LANCHOR223,. + 0
25757	.type	__func__.10101, %object
25758	.size	__func__.10101, 16
25759__func__.10101:
25760	.string	"FtlMapWritePage"
25761	.section	.rodata.__func__.10121,"a",@progbits
25762	.align	3
25763	.set	.LANCHOR100,. + 0
25764	.type	__func__.10121, %object
25765	.size	__func__.10121, 22
25766__func__.10121:
25767	.string	"select_l2p_ram_region"
25768	.section	.rodata.__func__.10137,"a",@progbits
25769	.align	3
25770	.set	.LANCHOR236,. + 0
25771	.type	__func__.10137, %object
25772	.size	__func__.10137, 9
25773__func__.10137:
25774	.string	"log2phys"
25775	.section	.rodata.__func__.10199,"a",@progbits
25776	.align	3
25777	.set	.LANCHOR219,. + 0
25778	.type	__func__.10199, %object
25779	.size	__func__.10199, 15
25780__func__.10199:
25781	.string	"FtlVpcTblFlush"
25782	.section	.rodata.__func__.10218,"a",@progbits
25783	.align	3
25784	.set	.LANCHOR229,. + 0
25785	.type	__func__.10218, %object
25786	.size	__func__.10218, 14
25787__func__.10218:
25788	.string	"FtlScanSysBlk"
25789	.section	.rodata.__func__.10273,"a",@progbits
25790	.align	3
25791	.set	.LANCHOR230,. + 0
25792	.type	__func__.10273, %object
25793	.size	__func__.10273, 15
25794__func__.10273:
25795	.string	"FtlLoadSysInfo"
25796	.section	.rodata.__func__.10284,"a",@progbits
25797	.align	3
25798	.set	.LANCHOR238,. + 0
25799	.type	__func__.10284, %object
25800	.size	__func__.10284, 12
25801__func__.10284:
25802	.string	"FtlCheckVpc"
25803	.section	.rodata.__func__.10316,"a",@progbits
25804	.align	3
25805	.set	.LANCHOR233,. + 0
25806	.type	__func__.10316, %object
25807	.size	__func__.10316, 17
25808__func__.10316:
25809	.string	"FtlDumpBlockInfo"
25810	.section	.rodata.__func__.10335,"a",@progbits
25811	.align	3
25812	.set	.LANCHOR234,. + 0
25813	.type	__func__.10335, %object
25814	.size	__func__.10335, 16
25815__func__.10335:
25816	.string	"FtlScanAllBlock"
25817	.section	.rodata.__func__.10440,"a",@progbits
25818	.align	3
25819	.set	.LANCHOR239,. + 0
25820	.type	__func__.10440, %object
25821	.size	__func__.10440, 16
25822__func__.10440:
25823	.string	"FtlReUsePrevPpa"
25824	.section	.rodata.__func__.10473,"a",@progbits
25825	.align	3
25826	.set	.LANCHOR240,. + 0
25827	.type	__func__.10473, %object
25828	.size	__func__.10473, 22
25829__func__.10473:
25830	.string	"FtlRecoverySuperblock"
25831	.section	.rodata.__func__.10527,"a",@progbits
25832	.align	3
25833	.set	.LANCHOR103,. + 0
25834	.type	__func__.10527, %object
25835	.size	__func__.10527, 16
25836__func__.10527:
25837	.string	"make_superblock"
25838	.section	.rodata.__func__.10547,"a",@progbits
25839	.align	3
25840	.set	.LANCHOR143,. + 0
25841	.type	__func__.10547, %object
25842	.size	__func__.10547, 18
25843__func__.10547:
25844	.string	"SupperBlkListInit"
25845	.section	.rodata.__func__.10593,"a",@progbits
25846	.align	3
25847	.set	.LANCHOR235,. + 0
25848	.type	__func__.10593, %object
25849	.size	__func__.10593, 17
25850__func__.10593:
25851	.string	"ftl_scan_all_ppa"
25852	.section	.rodata.__func__.10638,"a",@progbits
25853	.align	3
25854	.set	.LANCHOR212,. + 0
25855	.type	__func__.10638, %object
25856	.size	__func__.10638, 25
25857__func__.10638:
25858	.string	"allocate_data_superblock"
25859	.section	.rodata.__func__.10652,"a",@progbits
25860	.align	3
25861	.set	.LANCHOR228,. + 0
25862	.type	__func__.10652, %object
25863	.size	__func__.10652, 29
25864__func__.10652:
25865	.string	"allocate_new_data_superblock"
25866	.section	.rodata.__func__.10658,"a",@progbits
25867	.align	3
25868	.set	.LANCHOR217,. + 0
25869	.type	__func__.10658, %object
25870	.size	__func__.10658, 19
25871__func__.10658:
25872	.string	"get_new_active_ppa"
25873	.section	.rodata.__func__.10669,"a",@progbits
25874	.align	3
25875	.set	.LANCHOR215,. + 0
25876	.type	__func__.10669, %object
25877	.size	__func__.10669, 16
25878__func__.10669:
25879	.string	"update_vpc_list"
25880	.section	.rodata.__func__.10674,"a",@progbits
25881	.align	3
25882	.set	.LANCHOR216,. + 0
25883	.type	__func__.10674, %object
25884	.size	__func__.10674, 20
25885__func__.10674:
25886	.string	"decrement_vpc_count"
25887	.section	.rodata.__func__.10742,"a",@progbits
25888	.align	3
25889	.set	.LANCHOR246,. + 0
25890	.type	__func__.10742, %object
25891	.size	__func__.10742, 19
25892__func__.10742:
25893	.string	"FtlGcFreeTempBlock"
25894	.section	.rodata.__func__.10843,"a",@progbits
25895	.align	3
25896	.set	.LANCHOR251,. + 0
25897	.type	__func__.10843, %object
25898	.size	__func__.10843, 10
25899__func__.10843:
25900	.string	"ftl_do_gc"
25901	.section	.rodata.__func__.9622,"a",@progbits
25902	.align	3
25903	.set	.LANCHOR255,. + 0
25904	.type	__func__.9622, %object
25905	.size	__func__.9622, 8
25906__func__.9622:
25907	.string	"FtlInit"
25908	.section	.rodata.__func__.9726,"a",@progbits
25909	.align	3
25910	.set	.LANCHOR258,. + 0
25911	.type	__func__.9726, %object
25912	.size	__func__.9726, 9
25913__func__.9726:
25914	.string	"FtlWrite"
25915	.section	.rodata.__func__.9816,"a",@progbits
25916	.align	3
25917	.set	.LANCHOR127,. + 0
25918	.type	__func__.9816, %object
25919	.size	__func__.9816, 14
25920__func__.9816:
25921	.string	"FtlBbt2Bitmap"
25922	.section	.rodata.__func__.9862,"a",@progbits
25923	.align	3
25924	.set	.LANCHOR220,. + 0
25925	.type	__func__.9862, %object
25926	.size	__func__.9862, 11
25927__func__.9862:
25928	.string	"FtlLoadBbt"
25929	.section	.rodata.__func__.9955,"a",@progbits
25930	.align	3
25931	.set	.LANCHOR91,. + 0
25932	.type	__func__.9955, %object
25933	.size	__func__.9955, 17
25934__func__.9955:
25935	.string	"INSERT_FREE_LIST"
25936	.section	.rodata.__func__.9959,"a",@progbits
25937	.align	3
25938	.set	.LANCHOR88,. + 0
25939	.type	__func__.9959, %object
25940	.size	__func__.9959, 17
25941__func__.9959:
25942	.string	"INSERT_DATA_LIST"
25943	.section	.rodata.__func__.9997,"a",@progbits
25944	.align	3
25945	.set	.LANCHOR92,. + 0
25946	.type	__func__.9997, %object
25947	.size	__func__.9997, 17
25948__func__.9997:
25949	.string	"List_remove_node"
25950	.section	.rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1
25951.LC38:
25952	.string	"decrement_vpc_count %x = %d\n"
25953.LC39:
25954	.string	"decrement_vpc_count %x = %d in free list\n"
25955	.section	.rodata.dump_map_info.str1.1,"aMS",@progbits,1
25956.LC86:
25957	.string	"phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
25958.LC87:
25959	.string	"Mblk:"
25960.LC88:
25961	.string	"L2P:"
25962.LC89:
25963	.string	"L2PC:"
25964	.section	.rodata.ftl_fix_nand_power_lost_error.str1.1,"aMS",@progbits,1
25965.LC81:
25966	.string	"fix power lost blk = %x vpc=%x\n"
25967.LC82:
25968	.string	"erase power lost blk = %x vpc=%x\n"
25969	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1
25970.LC8:
25971	.string	"FtlFreeSysBlkQueueOut = %x, free count = %d\n"
25972	.section	.rodata.ftl_map_blk_gc.str1.1,"aMS",@progbits,1
25973.LC41:
25974	.string	"page map lost: %x %x\n"
25975	.section	.rodata.ftl_scan_all_ppa.str1.1,"aMS",@progbits,1
25976.LC55:
25977	.string	"ftl_scan_all_ppa blk %x page %x flag: %x\n"
25978.LC56:
25979	.string	"ftl_scan_all_ppa blk %x page %x flag: %x ............... is bad block\n"
25980.LC57:
25981	.string	"addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n"
25982.LC58:
25983	.string	"%s finished\n"
25984	.section	.rodata.idb_write_data.str1.1,"aMS",@progbits,1
25985.LC16:
25986	.string	"1 write_idblock fix data %x %x %x\n"
25987.LC17:
25988	.string	"write_idblock fail! %x %x %x %x\n"
25989.LC18:
25990	.string	"write_idblock fail! %x\n"
25991	.section	.rodata.log2phys.str1.1,"aMS",@progbits,1
25992.LC60:
25993	.string	"region_id = %x phyAddr = %x\n"
25994.LC61:
25995	.string	"map_ppn:"
25996.LC62:
25997	.string	"load_l2p_region refresh = %x phyAddr = %x\n"
25998	.section	.rodata.rk_ftl_init.str1.1,"aMS",@progbits,1
25999.LC80:
26000	.string	"FtlInit %x\n"
26001	.section	.rodata.rknand_print_hex.str1.1,"aMS",@progbits,1
26002.LC19:
26003	.string	"%s 0x%x:"
26004.LC20:
26005	.string	"%x "
26006.LC21:
26007	.string	""
26008	.section	.rodata.samsung_14nm_mlc_rr,"a",@progbits
26009	.align	3
26010	.set	.LANCHOR151,. + 0
26011	.type	samsung_14nm_mlc_rr, %object
26012	.size	samsung_14nm_mlc_rr, 104
26013samsung_14nm_mlc_rr:
26014	.byte	0
26015	.byte	0
26016	.byte	0
26017	.byte	0
26018	.byte	-4
26019	.byte	3
26020	.byte	-4
26021	.byte	-6
26022	.byte	6
26023	.byte	0
26024	.byte	6
26025	.byte	-10
26026	.byte	-10
26027	.byte	4
26028	.byte	-10
26029	.byte	16
26030	.byte	12
26031	.byte	-4
26032	.byte	12
26033	.byte	8
26034	.byte	-16
26035	.byte	10
26036	.byte	-16
26037	.byte	24
26038	.byte	18
26039	.byte	-14
26040	.byte	18
26041	.byte	-4
26042	.byte	-22
26043	.byte	-16
26044	.byte	-22
26045	.byte	-8
26046	.byte	24
26047	.byte	-9
26048	.byte	24
26049	.byte	8
26050	.byte	-28
26051	.byte	-4
26052	.byte	-28
26053	.byte	16
26054	.byte	30
26055	.byte	10
26056	.byte	30
26057	.byte	10
26058	.byte	-34
26059	.byte	6
26060	.byte	-34
26061	.byte	0
26062	.byte	36
26063	.byte	-8
26064	.byte	36
26065	.byte	-8
26066	.byte	-40
26067	.byte	-2
26068	.byte	-40
26069	.byte	-20
26070	.byte	-46
26071	.byte	-4
26072	.byte	-46
26073	.byte	-30
26074	.byte	3
26075	.byte	0
26076	.byte	3
26077	.byte	-3
26078	.byte	-2
26079	.byte	-4
26080	.byte	-2
26081	.byte	-6
26082	.byte	-4
26083	.byte	-4
26084	.byte	-4
26085	.byte	-10
26086	.byte	-6
26087	.byte	-8
26088	.byte	-6
26089	.byte	-14
26090	.byte	-9
26091	.byte	-8
26092	.byte	-9
26093	.byte	-18
26094	.byte	-52
26095	.byte	22
26096	.byte	-52
26097	.byte	10
26098	.byte	42
26099	.byte	4
26100	.byte	42
26101	.byte	4
26102	.byte	48
26103	.byte	-9
26104	.byte	48
26105	.byte	4
26106	.byte	-58
26107	.byte	12
26108	.byte	-58
26109	.byte	0
26110	.byte	-64
26111	.byte	-24
26112	.byte	-64
26113	.byte	-6
26114	.byte	9
26115	.byte	18
26116	.byte	9
26117	.byte	8
26118	.section	.rodata.samsung_14nm_slc_rr,"a",@progbits
26119	.align	3
26120	.set	.LANCHOR150,. + 0
26121	.type	samsung_14nm_slc_rr, %object
26122	.size	samsung_14nm_slc_rr, 26
26123samsung_14nm_slc_rr:
26124	.byte	0
26125	.byte	10
26126	.byte	-10
26127	.byte	20
26128	.byte	-20
26129	.byte	30
26130	.byte	-30
26131	.byte	40
26132	.byte	-40
26133	.byte	50
26134	.byte	-50
26135	.byte	60
26136	.byte	-60
26137	.byte	-70
26138	.byte	-80
26139	.byte	-90
26140	.byte	-100
26141	.byte	-110
26142	.byte	-120
26143	.byte	-9
26144	.byte	70
26145	.byte	80
26146	.byte	90
26147	.byte	-125
26148	.byte	-115
26149	.byte	100
26150	.section	.rodata.samsung_read_retrial.str1.1,"aMS",@progbits,1
26151.LC14:
26152	.string	"samsung RR %d row=%x,count %d,status=%d\n"
26153	.hidden	free
26154