xref: /rk3399_rockchip-uboot/drivers/rknand/rk_zftl_spl_arm_v8.S (revision ef806aea7e46d376f90b71a457e30c9385bf8fac)
1/*
2 * Copyright (c) 2016-2017, Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 * date: 2021-06-15
9 */
10	.arch armv8-a+nosimd
11	.file	"rk_zftl_spl_arm_v8.S"
12	.section	.text.flash_mem_cmp8,"ax",@progbits
13	.align	2
14	.type	flash_mem_cmp8, %function
15flash_mem_cmp8:
16	mov	x3, 0
17.L2:
18	mov	w4, w3
19	cmp	w3, w2
20	bcc	.L4
21	mov	w0, 0
22	ret
23.L4:
24	ldrb	w5, [x0, x3]
25	add	x3, x3, 1
26	add	x6, x1, x3
27	ldrb	w6, [x6, -1]
28	cmp	w6, w5
29	beq	.L2
30	add	w0, w4, 1
31	ret
32	.size	flash_mem_cmp8, .-flash_mem_cmp8
33	.section	.text.slc_phy_page_address_calc,"ax",@progbits
34	.align	2
35	.type	slc_phy_page_address_calc, %function
36slc_phy_page_address_calc:
37	adrp	x1, .LANCHOR0
38	adrp	x2, .LANCHOR1
39	ldrb	w1, [x1, #:lo12:.LANCHOR0]
40	cbz	w1, .L7
41	ldrb	w1, [x2, #:lo12:.LANCHOR1]
42	cbz	w1, .L8
43.L7:
44	adrp	x1, .LANCHOR2
45	ldrb	w2, [x2, #:lo12:.LANCHOR1]
46	ldrh	w3, [x1, #:lo12:.LANCHOR2]
47	udiv	w1, w0, w3
48	mul	w1, w1, w3
49	sub	w0, w0, w1
50	cbz	w2, .L9
51	add	w0, w1, w0, lsl 1
52	ret
53.L9:
54	adrp	x2, .LANCHOR3
55	add	x2, x2, :lo12:.LANCHOR3
56	ldrh	w0, [x2, w0, uxtw 1]
57	add	w0, w0, w1
58.L8:
59	ret
60	.size	slc_phy_page_address_calc, .-slc_phy_page_address_calc
61	.section	.text._list_remove_node,"ax",@progbits
62	.align	2
63	.type	_list_remove_node, %function
64_list_remove_node:
65	stp	x29, x30, [sp, -64]!
66	and	w1, w1, 65535
67	mov	w3, 6
68	add	x29, sp, 0
69	stp	x21, x22, [sp, 32]
70	adrp	x21, .LANCHOR4
71	stp	x19, x20, [sp, 16]
72	umull	x20, w1, w3
73	stp	x23, x24, [sp, 48]
74	mov	w1, 65535
75	ldr	x24, [x21, #:lo12:.LANCHOR4]
76	add	x19, x24, x20
77	ldrh	w4, [x24, x20]
78	ldrh	w3, [x19, 2]
79	cmp	w4, w1
80	ldr	x1, [x0]
81	bne	.L17
82	cmp	w3, w4
83	bne	.L17
84	cmp	x19, x1
85	bne	.L16
86.L17:
87	mov	x22, x0
88	mov	x23, x2
89	mov	w0, 65535
90	cmp	w3, w0
91	bne	.L19
92	cmp	x19, x1
93	beq	.L19
94	adrp	x1, .LANCHOR5
95	adrp	x0, .LC0
96	mov	w2, 202
97	add	x1, x1, :lo12:.LANCHOR5
98	add	x0, x0, :lo12:.LC0
99	bl	printf
100.L19:
101	ldr	x0, [x22]
102	ldrh	w3, [x24, x20]
103	cmp	x19, x0
104	mov	w0, 65535
105	bne	.L20
106	cmp	w3, w0
107	bne	.L21
108	str	xzr, [x22]
109.L22:
110	mov	w0, -1
111	strh	w0, [x24, x20]
112	strh	w0, [x19, 2]
113	ldrh	w0, [x23]
114	sub	w0, w0, #1
115	strh	w0, [x23]
116.L16:
117	ldp	x19, x20, [sp, 16]
118	ldp	x21, x22, [sp, 32]
119	ldp	x23, x24, [sp, 48]
120	ldp	x29, x30, [sp], 64
121	ret
122.L21:
123	ldr	x0, [x21, #:lo12:.LANCHOR4]
124	mov	w1, 6
125	umaddl	x3, w3, w1, x0
126	mov	w0, -1
127	str	x3, [x22]
128	strh	w0, [x3, 2]
129	b	.L22
130.L20:
131	cmp	w3, w0
132	ldrh	w0, [x19, 2]
133	bne	.L23
134	cmp	w0, w3
135	beq	.L22
136	mov	w1, 6
137	mov	w2, -1
138	umull	x0, w0, w1
139	ldr	x1, [x21, #:lo12:.LANCHOR4]
140	strh	w2, [x1, x0]
141	b	.L22
142.L23:
143	ldr	x1, [x21, #:lo12:.LANCHOR4]
144	mov	w2, 6
145	umaddl	x4, w3, w2, x1
146	strh	w0, [x4, 2]
147	ldrh	w0, [x19, 2]
148	umull	x0, w0, w2
149	strh	w3, [x1, x0]
150	b	.L22
151	.size	_list_remove_node, .-_list_remove_node
152	.section	.text.hynix_set_rr_para,"ax",@progbits
153	.align	2
154	.type	hynix_set_rr_para, %function
155hynix_set_rr_para:
156	stp	x29, x30, [sp, -64]!
157	adrp	x2, .LANCHOR6
158	and	w1, w1, 255
159	adrp	x3, .LANCHOR7
160	add	x29, sp, 0
161	ldr	x2, [x2, #:lo12:.LANCHOR6]
162	and	w0, w0, 255
163	stp	x19, x20, [sp, 16]
164	stp	x21, x22, [sp, 32]
165	add	x21, x2, 112
166	str	x23, [sp, 48]
167	add	x23, x2, 128
168	ldr	x19, [x3, #:lo12:.LANCHOR7]
169	ldrb	w22, [x2, 113]
170	ldrb	w2, [x2, 112]
171	cmp	w2, 8
172	mov	x2, 32
173	umaddl	x1, w1, w22, x2
174	beq	.L26
175	mov	w2, 160
176	umaddl	x1, w2, w0, x1
177.L26:
178	ubfiz	x0, x0, 8, 8
179	add	x21, x21, x1
180	add	x19, x19, x0
181	mov	x20, 0
182	mov	w0, 54
183	str	w0, [x19, 2056]
184.L28:
185	cmp	w22, w20, uxtb
186	bhi	.L29
187	ldp	x21, x22, [sp, 32]
188	mov	w0, 22
189	ldr	x23, [sp, 48]
190	str	w0, [x19, 2056]
191	ldp	x19, x20, [sp, 16]
192	ldp	x29, x30, [sp], 64
193	ret
194.L29:
195	ldrb	w0, [x23, x20]
196	str	w0, [x19, 2052]
197	mov	x0, 1
198	bl	udelay
199	ldrsb	w0, [x21, x20]
200	add	x20, x20, 1
201	str	w0, [x19, 2048]
202	b	.L28
203	.size	hynix_set_rr_para, .-hynix_set_rr_para
204	.section	.text._insert_free_list,"ax",@progbits
205	.align	2
206	.type	_insert_free_list, %function
207_insert_free_list:
208	adrp	x3, .LANCHOR8
209	and	w1, w1, 65535
210	ldrh	w3, [x3, #:lo12:.LANCHOR8]
211	cmp	w3, w1
212	bls	.L31
213	ldrh	w3, [x2]
214	mov	w8, 6
215	ldr	x7, [x0]
216	add	w3, w3, 1
217	strh	w3, [x2]
218	adrp	x2, .LANCHOR4
219	umull	x12, w1, w8
220	ldr	x5, [x2, #:lo12:.LANCHOR4]
221	mov	w2, -1
222	add	x6, x5, x12
223	strh	w2, [x6, 2]
224	strh	w2, [x5, x12]
225	cbnz	x7, .L33
226.L38:
227	str	x6, [x0]
228	ret
229.L33:
230	adrp	x2, .LANCHOR9
231	adrp	x3, .LANCHOR10
232	mov	w10, w8
233	mov	w15, 65535
234	ldr	x11, [x2, #:lo12:.LANCHOR9]
235	ubfiz	x2, x1, 2, 16
236	ldrh	w14, [x3, #:lo12:.LANCHOR10]
237	mov	x3, -6148914691236517206
238	movk	x3, 0xaaab, lsl 0
239	ldr	w4, [x11, x2]
240	ldrh	w2, [x11, x2]
241	ubfx	x4, x4, 11, 8
242	and	w2, w2, 2047
243	madd	w4, w14, w4, w2
244	sub	x2, x7, x5
245	asr	x2, x2, 1
246	and	w4, w4, 65535
247	mul	x2, x2, x3
248	mov	x3, x7
249	and	w2, w2, 65535
250.L36:
251	ubfiz	x13, x2, 2, 16
252	ldr	w8, [x11, x13]
253	ldrh	w13, [x11, x13]
254	ubfx	x8, x8, 11, 8
255	and	w13, w13, 2047
256	madd	w8, w14, w8, w13
257	cmp	w4, w8, uxth
258	bls	.L34
259	ldrh	w8, [x3]
260	cmp	w8, w15
261	bne	.L35
262	strh	w2, [x6, 2]
263	strh	w1, [x3]
264	ret
265.L35:
266	umaddl	x3, w8, w10, x5
267	mov	w2, w8
268	b	.L36
269.L34:
270	ldrh	w4, [x3, 2]
271	cmp	x7, x3
272	strh	w4, [x6, 2]
273	strh	w2, [x5, x12]
274	bne	.L37
275	strh	w1, [x7, 2]
276	b	.L38
277.L37:
278	ldrh	w0, [x3, 2]
279	mov	w2, 6
280	umull	x0, w0, w2
281	strh	w1, [x5, x0]
282	strh	w1, [x3, 2]
283.L31:
284	ret
285	.size	_insert_free_list, .-_insert_free_list
286	.section	.text._insert_data_list,"ax",@progbits
287	.align	2
288	.type	_insert_data_list, %function
289_insert_data_list:
290	adrp	x3, .LANCHOR8
291	and	w1, w1, 65535
292	ldrh	w4, [x3, #:lo12:.LANCHOR8]
293	cmp	w4, w1
294	bls	.L61
295	mov	x5, x3
296	ldrh	w3, [x2]
297	mov	w13, 6
298	ldr	x12, [x0]
299	add	w3, w3, 1
300	strh	w3, [x2]
301	adrp	x2, .LANCHOR4
302	umull	x13, w1, w13
303	ldr	x10, [x2, #:lo12:.LANCHOR4]
304	mov	w2, -1
305	add	x11, x10, x13
306	strh	w2, [x11, 2]
307	strh	w2, [x10, x13]
308	cbnz	x12, .L42
309	str	x11, [x0]
310	ret
311.L42:
312	stp	x29, x30, [sp, -32]!
313	adrp	x2, .LANCHOR11
314	uxtw	x3, w1
315	adrp	x6, .LANCHOR10
316	add	x29, sp, 0
317	ldr	x15, [x2, #:lo12:.LANCHOR11]
318	adrp	x2, .LANCHOR9
319	ldrh	w4, [x11, 4]
320	ldr	x14, [x2, #:lo12:.LANCHOR9]
321	stp	x19, x20, [sp, 16]
322	ldrh	w8, [x15, x3, lsl 1]
323	lsl	x3, x3, 2
324	ldrh	w16, [x6, #:lo12:.LANCHOR10]
325	ldr	w2, [x14, x3]
326	mul	w8, w8, w4
327	ldrh	w3, [x14, x3]
328	ubfx	x2, x2, 11, 8
329	and	w3, w3, 2047
330	cbz	w8, .L43
331	madd	w2, w16, w2, w3
332	add	w8, w8, w2, uxth
333.L43:
334	sub	x2, x12, x10
335	mov	x3, -6148914691236517206
336	asr	x2, x2, 1
337	movk	x3, 0xaaab, lsl 0
338	cmp	w4, 0
339	ldrh	w19, [x5, #:lo12:.LANCHOR8]
340	csinv	w8, w8, wzr, ne
341	mov	x7, x12
342	mul	x2, x2, x3
343	mov	w4, 0
344	mov	w20, 65535
345	mov	w30, 6
346	and	w2, w2, 65535
347.L49:
348	add	w4, w4, 1
349	and	w4, w4, 65535
350	cmp	w4, w19
351	bhi	.L39
352	cmp	w1, w2
353	beq	.L39
354	uxtw	x6, w2
355	ldrh	w17, [x7, 4]
356	ldrh	w3, [x15, x6, lsl 1]
357	lsl	x6, x6, 2
358	ldr	w5, [x14, x6]
359	mul	w3, w3, w17
360	ldrh	w6, [x14, x6]
361	ubfx	x5, x5, 11, 8
362	and	w6, w6, 2047
363	cbz	w3, .L46
364	madd	w5, w16, w5, w6
365	add	w3, w3, w5, uxth
366.L46:
367	cbz	w17, .L47
368	cmp	w8, w3
369	bls	.L47
370	ldrh	w3, [x7]
371	cmp	w3, w20
372	bne	.L48
373	strh	w2, [x11, 2]
374	strh	w1, [x7]
375.L39:
376	ldp	x19, x20, [sp, 16]
377	ldp	x29, x30, [sp], 32
378	ret
379.L48:
380	umaddl	x7, w3, w30, x10
381	mov	w2, w3
382	b	.L49
383.L47:
384	ldrh	w3, [x7, 2]
385	cmp	x12, x7
386	strh	w3, [x11, 2]
387	strh	w2, [x10, x13]
388	bne	.L50
389	strh	w1, [x12, 2]
390	str	x11, [x0]
391	b	.L39
392.L50:
393	ldrh	w0, [x7, 2]
394	mov	w2, 6
395	umull	x0, w0, w2
396	strh	w1, [x10, x0]
397	strh	w1, [x7, 2]
398	b	.L39
399.L61:
400	ret
401	.size	_insert_data_list, .-_insert_data_list
402	.section	.text._list_update_data_list,"ax",@progbits
403	.align	2
404	.type	_list_update_data_list, %function
405_list_update_data_list:
406	stp	x29, x30, [sp, -80]!
407	add	x29, sp, 0
408	stp	x19, x20, [sp, 16]
409	and	w19, w1, 65535
410	adrp	x1, .LANCHOR12
411	stp	x21, x22, [sp, 32]
412	stp	x23, x24, [sp, 48]
413	ldr	x1, [x1, #:lo12:.LANCHOR12]
414	ldrh	w3, [x1, 16]
415	str	x25, [sp, 64]
416	cmp	w3, w19
417	beq	.L63
418	ldrh	w3, [x1, 48]
419	cmp	w3, w19
420	beq	.L63
421	ldrh	w1, [x1, 80]
422	cmp	w1, w19
423	beq	.L63
424	adrp	x1, .LANCHOR4
425	mov	w22, 6
426	ldr	x3, [x0]
427	mov	x25, x1
428	umull	x22, w19, w22
429	ldr	x24, [x1, #:lo12:.LANCHOR4]
430	add	x23, x24, x22
431	cmp	x23, x3
432	beq	.L63
433	mov	x20, x0
434	ldrh	w0, [x23, 2]
435	mov	w1, 65535
436	mov	x21, x2
437	cmp	w0, w1
438	bne	.L67
439	ldrh	w1, [x24, x22]
440	cmp	w1, w0
441	bne	.L67
442	adrp	x1, .LANCHOR13
443	adrp	x0, .LC0
444	mov	w2, 273
445	add	x1, x1, :lo12:.LANCHOR13
446	add	x0, x0, :lo12:.LC0
447	bl	printf
448.L67:
449	ldrh	w1, [x23, 2]
450	mov	w0, 65535
451	cmp	w1, w0
452	bne	.L68
453	ldrh	w0, [x24, x22]
454	cmp	w0, w1
455	beq	.L63
456.L68:
457	adrp	x0, .LANCHOR11
458	ubfiz	x2, x19, 1, 16
459	mov	x5, -6148914691236517206
460	mov	w4, -1
461	ldr	x0, [x0, #:lo12:.LANCHOR11]
462	movk	x5, 0xaaab, lsl 0
463	ldrh	w3, [x0, x2]
464	ldrh	w2, [x23, 4]
465	cmp	w2, 0
466	mul	w3, w3, w2
467	mov	w2, 6
468	umull	x1, w1, w2
469	csel	w3, w3, w4, ne
470	asr	x2, x1, 1
471	mul	x2, x2, x5
472	ldrh	w0, [x0, x2, lsl 1]
473	ldr	x2, [x25, #:lo12:.LANCHOR4]
474	add	x1, x2, x1
475	ldrh	w1, [x1, 4]
476	cmp	w1, 0
477	mul	w0, w0, w1
478	csel	w0, w0, w4, ne
479	cmp	w3, w0
480	bcs	.L63
481	mov	x2, x21
482	mov	w1, w19
483	mov	x0, x20
484	bl	_list_remove_node
485	mov	x2, x21
486	mov	w1, w19
487	mov	x0, x20
488	ldr	x25, [sp, 64]
489	ldp	x19, x20, [sp, 16]
490	ldp	x21, x22, [sp, 32]
491	ldp	x23, x24, [sp, 48]
492	ldp	x29, x30, [sp], 80
493	b	_insert_data_list
494.L63:
495	ldp	x19, x20, [sp, 16]
496	ldp	x21, x22, [sp, 32]
497	ldp	x23, x24, [sp, 48]
498	ldr	x25, [sp, 64]
499	ldp	x29, x30, [sp], 80
500	ret
501	.size	_list_update_data_list, .-_list_update_data_list
502	.section	.text.nandc_de_cs.constprop.31,"ax",@progbits
503	.align	2
504	.type	nandc_de_cs.constprop.31, %function
505nandc_de_cs.constprop.31:
506	adrp	x0, .LANCHOR7
507	ldr	x1, [x0, #:lo12:.LANCHOR7]
508	ldr	w0, [x1]
509	and	w0, w0, -256
510	and	w0, w0, -131073
511	str	w0, [x1]
512	ret
513	.size	nandc_de_cs.constprop.31, .-nandc_de_cs.constprop.31
514	.section	.text.flash_read_status,"ax",@progbits
515	.align	2
516	.global	flash_read_status
517	.type	flash_read_status, %function
518flash_read_status:
519	stp	x29, x30, [sp, -32]!
520	add	x29, sp, 0
521	str	x19, [sp, 16]
522	mov	x19, x0
523	mov	w0, 112
524	str	w0, [x19, 8]
525	mov	x0, 1
526	bl	udelay
527	ldr	w0, [x19]
528	ldr	x19, [sp, 16]
529	and	w0, w0, 255
530	ldp	x29, x30, [sp], 32
531	ret
532	.size	flash_read_status, .-flash_read_status
533	.section	.text.toshiba_set_rr_para,"ax",@progbits
534	.align	2
535	.global	toshiba_set_rr_para
536	.type	toshiba_set_rr_para, %function
537toshiba_set_rr_para:
538	stp	x29, x30, [sp, -96]!
539	add	x29, sp, 0
540	str	x27, [sp, 80]
541	and	w27, w1, 255
542	add	w2, w27, 1
543	stp	x21, x22, [sp, 32]
544	mov	x21, x0
545	mov	w0, 5
546	stp	x19, x20, [sp, 16]
547	adrp	x20, .LANCHOR14
548	umull	x2, w2, w0
549	stp	x23, x24, [sp, 48]
550	adrp	x0, .LANCHOR15
551	add	x20, x20, :lo12:.LANCHOR14
552	add	x24, x0, :lo12:.LANCHOR15
553	stp	x25, x26, [sp, 64]
554	adrp	x23, .LANCHOR18
555	adrp	x25, .LANCHOR16
556	adrp	x26, .LANCHOR17
557	add	x23, x23, :lo12:.LANCHOR18
558	add	x25, x25, :lo12:.LANCHOR16
559	add	x26, x26, :lo12:.LANCHOR17
560	add	x20, x20, x2
561	add	x24, x24, x2
562	mov	x22, x0
563	mov	x19, 0
564.L78:
565	ldrb	w0, [x23]
566	cmp	w0, w19
567	bhi	.L82
568	ldp	x19, x20, [sp, 16]
569	ldp	x21, x22, [sp, 32]
570	ldp	x23, x24, [sp, 48]
571	ldp	x25, x26, [sp, 64]
572	ldr	x27, [sp, 80]
573	ldp	x29, x30, [sp], 96
574	ret
575.L82:
576	mov	w0, 85
577	str	w0, [x21, 8]
578	add	x0, x22, :lo12:.LANCHOR15
579	ldrsb	w0, [x19, x0]
580	str	w0, [x21, 4]
581	mov	x0, 1
582	bl	udelay
583	ldrb	w0, [x25]
584	cmp	w0, 34
585	bne	.L79
586	ldrsb	w0, [x24, x19]
587.L84:
588	add	x19, x19, 1
589	str	w0, [x21]
590	b	.L78
591.L79:
592	cmp	w0, 35
593	bne	.L81
594	ldrsb	w0, [x20, x19]
595	b	.L84
596.L81:
597	ldrsb	w0, [x26, w27, sxtw]
598	b	.L84
599	.size	toshiba_set_rr_para, .-toshiba_set_rr_para
600	.section	.text.hynix_reconfig_rr_para,"ax",@progbits
601	.align	2
602	.global	hynix_reconfig_rr_para
603	.type	hynix_reconfig_rr_para, %function
604hynix_reconfig_rr_para:
605	adrp	x1, .LANCHOR16
606	ldrb	w1, [x1, #:lo12:.LANCHOR16]
607	sub	w1, w1, #1
608	and	w1, w1, 255
609	cmp	w1, 7
610	bhi	.L91
611	stp	x29, x30, [sp, -32]!
612	and	w0, w0, 255
613	add	x29, sp, 0
614	stp	x19, x20, [sp, 16]
615	adrp	x20, .LANCHOR6
616	sxtw	x19, w0
617	ldr	x1, [x20, #:lo12:.LANCHOR6]
618	add	x1, x1, x19
619	ldrb	w1, [x1, 120]
620	cbz	w1, .L85
621	mov	w1, 0
622	bl	hynix_set_rr_para
623	ldr	x0, [x20, #:lo12:.LANCHOR6]
624	add	x0, x0, x19
625	strb	wzr, [x0, 120]
626.L85:
627	ldp	x19, x20, [sp, 16]
628	ldp	x29, x30, [sp], 32
629	ret
630.L91:
631	ret
632	.size	hynix_reconfig_rr_para, .-hynix_reconfig_rr_para
633	.section	.text.nand_flash_print_info,"ax",@progbits
634	.align	2
635	.global	nand_flash_print_info
636	.type	nand_flash_print_info, %function
637nand_flash_print_info:
638	stp	x29, x30, [sp, -32]!
639	add	x29, sp, 0
640	str	x19, [sp, 16]
641	adrp	x19, .LANCHOR19
642	ldr	w0, [x19, #:lo12:.LANCHOR19]
643	tbz	x0, 12, .L95
644	adrp	x1, .LANCHOR20
645	adrp	x0, .LC1
646	add	x1, x1, :lo12:.LANCHOR20
647	add	x0, x0, :lo12:.LC1
648	bl	printf
649.L95:
650	ldr	w0, [x19, #:lo12:.LANCHOR19]
651	tbz	x0, 12, .L96
652	adrp	x0, .LANCHOR21
653	ldr	x0, [x0, #:lo12:.LANCHOR21]
654	ldrb	w6, [x0, 6]
655	ldrb	w5, [x0, 5]
656	ldrb	w4, [x0, 4]
657	ldrb	w3, [x0, 3]
658	ldrb	w2, [x0, 2]
659	ldrb	w1, [x0, 1]
660	adrp	x0, .LC2
661	add	x0, x0, :lo12:.LC2
662	bl	printf
663.L96:
664	ldr	w0, [x19, #:lo12:.LANCHOR19]
665	tbz	x0, 12, .L97
666	adrp	x0, .LANCHOR21
667	ldr	x0, [x0, #:lo12:.LANCHOR21]
668	ldrb	w1, [x0, 8]
669	adrp	x0, .LC3
670	add	x0, x0, :lo12:.LC3
671	bl	printf
672.L97:
673	ldr	w0, [x19, #:lo12:.LANCHOR19]
674	tbz	x0, 12, .L98
675	adrp	x0, .LANCHOR21
676	ldr	x0, [x0, #:lo12:.LANCHOR21]
677	ldrb	w1, [x0, 9]
678	adrp	x0, .LC4
679	add	x0, x0, :lo12:.LC4
680	bl	printf
681.L98:
682	ldr	w0, [x19, #:lo12:.LANCHOR19]
683	tbz	x0, 12, .L99
684	adrp	x0, .LANCHOR21
685	ldr	x0, [x0, #:lo12:.LANCHOR21]
686	ldrh	w1, [x0, 10]
687	adrp	x0, .LC5
688	add	x0, x0, :lo12:.LC5
689	bl	printf
690.L99:
691	ldr	w0, [x19, #:lo12:.LANCHOR19]
692	tbz	x0, 12, .L100
693	adrp	x0, .LANCHOR21
694	ldr	x0, [x0, #:lo12:.LANCHOR21]
695	ldrb	w1, [x0, 12]
696	adrp	x0, .LC6
697	add	x0, x0, :lo12:.LC6
698	bl	printf
699.L100:
700	ldr	w0, [x19, #:lo12:.LANCHOR19]
701	tbz	x0, 12, .L101
702	adrp	x0, .LANCHOR21
703	ldr	x0, [x0, #:lo12:.LANCHOR21]
704	ldrb	w1, [x0, 13]
705	adrp	x0, .LC7
706	add	x0, x0, :lo12:.LC7
707	bl	printf
708.L101:
709	ldr	w0, [x19, #:lo12:.LANCHOR19]
710	tbz	x0, 12, .L102
711	adrp	x0, .LANCHOR21
712	ldr	x0, [x0, #:lo12:.LANCHOR21]
713	ldrh	w1, [x0, 14]
714	adrp	x0, .LC8
715	add	x0, x0, :lo12:.LC8
716	bl	printf
717.L102:
718	ldr	w0, [x19, #:lo12:.LANCHOR19]
719	tbz	x0, 12, .L103
720	adrp	x0, .LANCHOR21
721	ldr	x0, [x0, #:lo12:.LANCHOR21]
722	ldrb	w1, [x0, 23]
723	adrp	x0, .LC9
724	add	x0, x0, :lo12:.LC9
725	bl	printf
726.L103:
727	ldr	w0, [x19, #:lo12:.LANCHOR19]
728	tbz	x0, 12, .L104
729	adrp	x0, .LANCHOR21
730	ldr	x0, [x0, #:lo12:.LANCHOR21]
731	ldrb	w1, [x0, 18]
732	adrp	x0, .LC10
733	add	x0, x0, :lo12:.LC10
734	bl	printf
735.L104:
736	ldr	w0, [x19, #:lo12:.LANCHOR19]
737	tbz	x0, 12, .L105
738	adrp	x0, .LANCHOR21
739	ldr	x0, [x0, #:lo12:.LANCHOR21]
740	ldrb	w1, [x0, 19]
741	adrp	x0, .LC11
742	add	x0, x0, :lo12:.LC11
743	bl	printf
744.L105:
745	ldr	w0, [x19, #:lo12:.LANCHOR19]
746	tbz	x0, 12, .L106
747	adrp	x0, .LANCHOR21
748	ldr	x0, [x0, #:lo12:.LANCHOR21]
749	ldrb	w1, [x0, 20]
750	adrp	x0, .LC12
751	add	x0, x0, :lo12:.LC12
752	bl	printf
753.L106:
754	ldr	w0, [x19, #:lo12:.LANCHOR19]
755	tbz	x0, 12, .L107
756	adrp	x0, .LANCHOR22
757	ldrb	w1, [x0, #:lo12:.LANCHOR22]
758	adrp	x0, .LC13
759	add	x0, x0, :lo12:.LC13
760	bl	printf
761.L107:
762	ldr	w0, [x19, #:lo12:.LANCHOR19]
763	tbz	x0, 12, .L108
764	adrp	x0, .LANCHOR21
765	ldr	x0, [x0, #:lo12:.LANCHOR21]
766	ldrb	w1, [x0, 22]
767	adrp	x0, .LC14
768	add	x0, x0, :lo12:.LC14
769	bl	printf
770.L108:
771	ldr	w0, [x19, #:lo12:.LANCHOR19]
772	tbz	x0, 12, .L109
773	adrp	x0, .LANCHOR23
774	ldrb	w1, [x0, #:lo12:.LANCHOR23]
775	adrp	x0, .LC15
776	add	x0, x0, :lo12:.LC15
777	bl	printf
778.L109:
779	ldr	w0, [x19, #:lo12:.LANCHOR19]
780	tbz	x0, 12, .L110
781	adrp	x0, .LANCHOR21
782	ldr	x0, [x0, #:lo12:.LANCHOR21]
783	ldrb	w1, [x0, 16]
784	adrp	x0, .LC16
785	add	x0, x0, :lo12:.LC16
786	and	w1, w1, 1
787	bl	printf
788.L110:
789	ldr	w0, [x19, #:lo12:.LANCHOR19]
790	tbz	x0, 12, .L111
791	adrp	x0, .LANCHOR21
792	ldr	x0, [x0, #:lo12:.LANCHOR21]
793	ldrh	w1, [x0, 16]
794	adrp	x0, .LC17
795	add	x0, x0, :lo12:.LC17
796	ubfx	x1, x1, 1, 1
797	bl	printf
798.L111:
799	ldr	w0, [x19, #:lo12:.LANCHOR19]
800	tbz	x0, 12, .L112
801	adrp	x0, .LANCHOR21
802	ldr	x0, [x0, #:lo12:.LANCHOR21]
803	ldrh	w1, [x0, 16]
804	adrp	x0, .LC18
805	add	x0, x0, :lo12:.LC18
806	ubfx	x1, x1, 2, 1
807	bl	printf
808.L112:
809	ldr	w0, [x19, #:lo12:.LANCHOR19]
810	tbz	x0, 12, .L113
811	adrp	x0, .LANCHOR21
812	ldr	x0, [x0, #:lo12:.LANCHOR21]
813	ldrh	w1, [x0, 16]
814	adrp	x0, .LC19
815	add	x0, x0, :lo12:.LC19
816	ubfx	x1, x1, 3, 1
817	bl	printf
818.L113:
819	ldr	w0, [x19, #:lo12:.LANCHOR19]
820	tbz	x0, 12, .L114
821	adrp	x0, .LANCHOR21
822	ldr	x0, [x0, #:lo12:.LANCHOR21]
823	ldrh	w1, [x0, 16]
824	adrp	x0, .LC20
825	add	x0, x0, :lo12:.LC20
826	ubfx	x1, x1, 4, 1
827	bl	printf
828.L114:
829	ldr	w0, [x19, #:lo12:.LANCHOR19]
830	tbz	x0, 12, .L115
831	adrp	x0, .LANCHOR21
832	ldr	x0, [x0, #:lo12:.LANCHOR21]
833	ldrh	w1, [x0, 16]
834	adrp	x0, .LC21
835	add	x0, x0, :lo12:.LC21
836	ubfx	x1, x1, 5, 1
837	bl	printf
838.L115:
839	ldr	w0, [x19, #:lo12:.LANCHOR19]
840	tbz	x0, 12, .L116
841	adrp	x0, .LANCHOR21
842	ldr	x0, [x0, #:lo12:.LANCHOR21]
843	ldrh	w1, [x0, 16]
844	adrp	x0, .LC22
845	add	x0, x0, :lo12:.LC22
846	ubfx	x1, x1, 6, 1
847	bl	printf
848.L116:
849	ldr	w0, [x19, #:lo12:.LANCHOR19]
850	tbz	x0, 12, .L117
851	adrp	x0, .LANCHOR21
852	ldr	x0, [x0, #:lo12:.LANCHOR21]
853	ldrh	w1, [x0, 16]
854	adrp	x0, .LC23
855	add	x0, x0, :lo12:.LC23
856	ubfx	x1, x1, 7, 1
857	bl	printf
858.L117:
859	ldr	w0, [x19, #:lo12:.LANCHOR19]
860	tbz	x0, 12, .L118
861	adrp	x0, .LANCHOR21
862	ldr	x0, [x0, #:lo12:.LANCHOR21]
863	ldrb	w1, [x0, 17]
864	adrp	x0, .LC24
865	add	x0, x0, :lo12:.LC24
866	and	w1, w1, 1
867	bl	printf
868.L118:
869	ldr	w0, [x19, #:lo12:.LANCHOR19]
870	tbz	x0, 12, .L119
871	adrp	x0, .LANCHOR21
872	ldr	x0, [x0, #:lo12:.LANCHOR21]
873	ldrh	w1, [x0, 16]
874	adrp	x0, .LC25
875	add	x0, x0, :lo12:.LC25
876	ubfx	x1, x1, 9, 1
877	bl	printf
878.L119:
879	ldr	w0, [x19, #:lo12:.LANCHOR19]
880	tbz	x0, 12, .L120
881	adrp	x0, .LANCHOR21
882	ldr	x0, [x0, #:lo12:.LANCHOR21]
883	ldrh	w1, [x0, 16]
884	adrp	x0, .LC26
885	add	x0, x0, :lo12:.LC26
886	ubfx	x1, x1, 10, 1
887	bl	printf
888.L120:
889	ldr	w0, [x19, #:lo12:.LANCHOR19]
890	tbz	x0, 12, .L121
891	adrp	x0, .LANCHOR24
892	ldrb	w2, [x0, #:lo12:.LANCHOR24]
893	adrp	x0, .LANCHOR0
894	ldrb	w1, [x0, #:lo12:.LANCHOR0]
895	adrp	x0, .LC27
896	add	x0, x0, :lo12:.LC27
897	bl	printf
898.L121:
899	ldr	w0, [x19, #:lo12:.LANCHOR19]
900	tbz	x0, 12, .L122
901	adrp	x0, .LANCHOR25
902	add	x0, x0, :lo12:.LANCHOR25
903	ldrb	w2, [x0, 11]
904	ldrb	w1, [x0, 10]
905	adrp	x0, .LC28
906	add	x0, x0, :lo12:.LC28
907	bl	printf
908.L122:
909	ldr	w0, [x19, #:lo12:.LANCHOR19]
910	tbz	x0, 12, .L123
911	adrp	x0, .LANCHOR25
912	add	x0, x0, :lo12:.LANCHOR25
913	ldrb	w2, [x0, 9]
914	ldrb	w1, [x0, 8]
915	adrp	x0, .LC29
916	add	x0, x0, :lo12:.LC29
917	bl	printf
918.L123:
919	ldr	w0, [x19, #:lo12:.LANCHOR19]
920	tbz	x0, 12, .L94
921	adrp	x0, .LANCHOR26
922	ldr	x19, [sp, 16]
923	ldp	x29, x30, [sp], 32
924	ldrb	w1, [x0, #:lo12:.LANCHOR26]
925	adrp	x0, .LC30
926	add	x0, x0, :lo12:.LC30
927	b	printf
928.L94:
929	ldr	x19, [sp, 16]
930	ldp	x29, x30, [sp], 32
931	ret
932	.size	nand_flash_print_info, .-nand_flash_print_info
933	.section	.text.timer_delay_ns,"ax",@progbits
934	.align	2
935	.global	timer_delay_ns
936	.type	timer_delay_ns, %function
937timer_delay_ns:
938	uxtw	x0, w0
939	mov	x1, 1000
940	add	x0, x0, 999
941	udiv	x0, x0, x1
942	b	udelay
943	.size	timer_delay_ns, .-timer_delay_ns
944	.section	.text.nandc_set_ddr_para,"ax",@progbits
945	.align	2
946	.global	nandc_set_ddr_para
947	.type	nandc_set_ddr_para, %function
948nandc_set_ddr_para:
949	adrp	x1, .LANCHOR27
950	and	w0, w0, 255
951	adrp	x2, .LANCHOR7
952	ldrb	w1, [x1, #:lo12:.LANCHOR27]
953	ldr	x2, [x2, #:lo12:.LANCHOR7]
954	cmp	w1, 9
955	lsl	w1, w0, 16
956	lsl	w0, w0, 8
957	orr	w1, w1, w0
958	orr	w1, w1, 3
959	bne	.L215
960	str	w1, [x2, 80]
961	ret
962.L215:
963	str	w1, [x2, 304]
964	ret
965	.size	nandc_set_ddr_para, .-nandc_set_ddr_para
966	.section	.text.nandc_get_ddr_para,"ax",@progbits
967	.align	2
968	.global	nandc_get_ddr_para
969	.type	nandc_get_ddr_para, %function
970nandc_get_ddr_para:
971	adrp	x0, .LANCHOR27
972	ldrb	w0, [x0, #:lo12:.LANCHOR27]
973	cmp	w0, 9
974	adrp	x0, .LANCHOR7
975	ldr	x0, [x0, #:lo12:.LANCHOR7]
976	bne	.L218
977	ldr	w0, [x0, 80]
978.L220:
979	ubfx	x0, x0, 8, 8
980	ret
981.L218:
982	ldr	w0, [x0, 304]
983	b	.L220
984	.size	nandc_get_ddr_para, .-nandc_get_ddr_para
985	.section	.text.nandc_set_if_mode,"ax",@progbits
986	.align	2
987	.global	nandc_set_if_mode
988	.type	nandc_set_if_mode, %function
989nandc_set_if_mode:
990	adrp	x1, .LANCHOR7
991	and	w0, w0, 255
992	tst	w0, 6
993	ldr	x2, [x1, #:lo12:.LANCHOR7]
994	ldr	w1, [x2]
995	beq	.L222
996	tst	x0, 4
997	orr	w1, w1, 24576
998	adrp	x0, .LANCHOR27
999	and	w1, w1, -32769
1000	orr	w1, w1, 196608
1001	ldrb	w0, [x0, #:lo12:.LANCHOR27]
1002	orr	w3, w1, 32768
1003	csel	w1, w3, w1, ne
1004	cmp	w0, 9
1005	mov	w0, 4099
1006	movk	w0, 0x10, lsl 16
1007	bne	.L224
1008	mov	w3, 8321
1009	str	w3, [x2, 8]
1010	str	w0, [x2, 80]
1011	mov	w0, 38
1012	str	w0, [x2, 84]
1013	mov	w0, 39
1014	str	w0, [x2, 84]
1015.L225:
1016	str	w1, [x2]
1017	ret
1018.L224:
1019	mov	w3, 8322
1020	str	w3, [x2, 344]
1021	str	w0, [x2, 304]
1022	mov	w0, 38
1023	str	w0, [x2, 308]
1024	mov	w0, 39
1025	str	w0, [x2, 308]
1026	b	.L225
1027.L222:
1028	and	w1, w1, -8193
1029	b	.L225
1030	.size	nandc_set_if_mode, .-nandc_set_if_mode
1031	.section	.text.nandc_cs,"ax",@progbits
1032	.align	2
1033	.global	nandc_cs
1034	.type	nandc_cs, %function
1035nandc_cs:
1036	adrp	x1, .LANCHOR7
1037	mov	w2, 1
1038	lsl	w0, w2, w0
1039	ldr	x3, [x1, #:lo12:.LANCHOR7]
1040	ldr	w1, [x3]
1041	bfi	w1, w0, 0, 8
1042	str	w1, [x3]
1043	ret
1044	.size	nandc_cs, .-nandc_cs
1045	.section	.text.flash_wait_device_ready_raw,"ax",@progbits
1046	.align	2
1047	.global	flash_wait_device_ready_raw
1048	.type	flash_wait_device_ready_raw, %function
1049flash_wait_device_ready_raw:
1050	stp	x29, x30, [sp, -96]!
1051	add	x29, sp, 0
1052	stp	x19, x20, [sp, 16]
1053	and	w19, w0, 255
1054	adrp	x0, .LANCHOR23
1055	stp	x25, x26, [sp, 64]
1056	stp	x21, x22, [sp, 32]
1057	mov	w20, w1
1058	ldrb	w0, [x0, #:lo12:.LANCHOR23]
1059	mov	w26, w2
1060	stp	x23, x24, [sp, 48]
1061	str	x27, [sp, 80]
1062	cmp	w0, w19
1063	bhi	.L230
1064	adrp	x1, .LANCHOR28
1065	adrp	x0, .LC0
1066	mov	w2, 812
1067	add	x1, x1, :lo12:.LANCHOR28
1068	add	x0, x0, :lo12:.LC0
1069	bl	printf
1070.L230:
1071	adrp	x0, .LANCHOR29
1072	add	x0, x0, :lo12:.LANCHOR29
1073	lsr	w23, w20, 8
1074	lsr	w24, w20, 16
1075	lsr	w25, w20, 24
1076	adrp	x21, .LANCHOR30
1077	ldrb	w22, [x0, w19, sxtw]
1078	adrp	x0, .LANCHOR7
1079	and	w20, w20, 255
1080	add	x21, x21, :lo12:.LANCHOR30
1081	ldr	x19, [x0, #:lo12:.LANCHOR7]
1082	mov	w27, 120
1083	ubfiz	x0, x22, 8, 8
1084	add	x19, x19, x0
1085.L236:
1086	mov	w0, w22
1087	bl	nandc_cs
1088	str	w27, [x19, 2056]
1089	str	w20, [x19, 2052]
1090	ldrb	w0, [x21]
1091	str	w23, [x19, 2052]
1092	str	w24, [x19, 2052]
1093	cbz	w0, .L231
1094	str	w25, [x19, 2052]
1095.L231:
1096	mov	x0, 1
1097	bl	udelay
1098	ldr	w2, [x19, 2048]
1099	and	w2, w2, 255
1100	bl	nandc_de_cs.constprop.31
1101	bics	wzr, w26, w2
1102	bne	.L236
1103	cmp	w2, 255
1104	beq	.L236
1105	mov	w0, w2
1106	ldr	x27, [sp, 80]
1107	ldp	x19, x20, [sp, 16]
1108	ldp	x21, x22, [sp, 32]
1109	ldp	x23, x24, [sp, 48]
1110	ldp	x25, x26, [sp, 64]
1111	ldp	x29, x30, [sp], 96
1112	ret
1113	.size	flash_wait_device_ready_raw, .-flash_wait_device_ready_raw
1114	.section	.text.flash_wait_device_ready,"ax",@progbits
1115	.align	2
1116	.global	flash_wait_device_ready
1117	.type	flash_wait_device_ready, %function
1118flash_wait_device_ready:
1119	mov	w2, w1
1120	adrp	x1, .LANCHOR31
1121	mov	w5, 24
1122	mov	w4, 1
1123	ldrb	w6, [x1, #:lo12:.LANCHOR31]
1124	tst	x0, 50331648
1125	sub	w5, w5, w6
1126	lsl	w3, w4, w5
1127	sub	w3, w3, #1
1128	lsl	w4, w4, w6
1129	sub	w4, w4, #1
1130	asr	w5, w0, w5
1131	and	w4, w4, w5
1132	and	w1, w3, w0
1133	and	w4, w4, 255
1134	bne	.L241
1135	adrp	x0, .LANCHOR0
1136	adrp	x5, .LANCHOR1
1137	ldrb	w0, [x0, #:lo12:.LANCHOR0]
1138	cbz	w0, .L242
1139	ldrb	w0, [x5, #:lo12:.LANCHOR1]
1140	cbz	w0, .L241
1141.L242:
1142	adrp	x0, .LANCHOR2
1143	ldrh	w3, [x0, #:lo12:.LANCHOR2]
1144	udiv	w0, w1, w3
1145	mul	w0, w0, w3
1146	sub	w3, w1, w0
1147	ldrb	w1, [x5, #:lo12:.LANCHOR1]
1148	cbz	w1, .L243
1149	add	w1, w0, w3, lsl 1
1150.L241:
1151	mov	w0, w4
1152	b	flash_wait_device_ready_raw
1153.L243:
1154	adrp	x5, .LANCHOR3
1155	add	x5, x5, :lo12:.LANCHOR3
1156	ldrh	w3, [x5, w3, uxtw 1]
1157	add	w1, w3, w0
1158	b	.L241
1159	.size	flash_wait_device_ready, .-flash_wait_device_ready
1160	.section	.text.nandc_de_cs,"ax",@progbits
1161	.align	2
1162	.global	nandc_de_cs
1163	.type	nandc_de_cs, %function
1164nandc_de_cs:
1165	adrp	x0, .LANCHOR7
1166	ldr	x1, [x0, #:lo12:.LANCHOR7]
1167	ldr	w0, [x1]
1168	and	w0, w0, -256
1169	and	w0, w0, -131073
1170	str	w0, [x1]
1171	ret
1172	.size	nandc_de_cs, .-nandc_de_cs
1173	.section	.text.nandc_wait_flash_ready_no_delay,"ax",@progbits
1174	.align	2
1175	.global	nandc_wait_flash_ready_no_delay
1176	.type	nandc_wait_flash_ready_no_delay, %function
1177nandc_wait_flash_ready_no_delay:
1178	stp	x29, x30, [sp, -48]!
1179	add	x29, sp, 0
1180	stp	x19, x20, [sp, 16]
1181	mov	w19, 34464
1182	movk	w19, 0x1, lsl 16
1183	adrp	x20, .LANCHOR7
1184.L253:
1185	ldr	x0, [x20, #:lo12:.LANCHOR7]
1186	ldr	w0, [x0]
1187	str	w0, [x29, 40]
1188	ldr	w0, [x29, 40]
1189	tbnz	x0, 9, .L254
1190	mov	x0, 1
1191	bl	udelay
1192	subs	w19, w19, #1
1193	bne	.L253
1194	mov	w0, -1
1195.L251:
1196	ldp	x19, x20, [sp, 16]
1197	ldp	x29, x30, [sp], 48
1198	ret
1199.L254:
1200	mov	w0, 0
1201	b	.L251
1202	.size	nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay
1203	.section	.text.zftl_flash_enter_slc_mode,"ax",@progbits
1204	.align	2
1205	.global	zftl_flash_enter_slc_mode
1206	.type	zftl_flash_enter_slc_mode, %function
1207zftl_flash_enter_slc_mode:
1208	stp	x29, x30, [sp, -48]!
1209	add	x29, sp, 0
1210	stp	x19, x20, [sp, 16]
1211	and	x19, x0, 255
1212	adrp	x0, .LANCHOR0
1213	stp	x21, x22, [sp, 32]
1214	ldrb	w0, [x0, #:lo12:.LANCHOR0]
1215	cbz	w0, .L257
1216	adrp	x1, .LANCHOR7
1217	cmp	w0, 1
1218	ldr	x20, [x1, #:lo12:.LANCHOR7]
1219	bne	.L260
1220	adrp	x0, .LANCHOR32+29
1221	ldrb	w0, [x0, #:lo12:.LANCHOR32+29]
1222	cbz	w0, .L257
1223.L276:
1224	add	x19, x19, 8
1225	add	x19, x20, x19, lsl 8
1226	str	w0, [x19, 8]
1227.L257:
1228	ldp	x19, x20, [sp, 16]
1229	ldp	x21, x22, [sp, 32]
1230	ldp	x29, x30, [sp], 48
1231	ret
1232.L260:
1233	cmp	w0, 2
1234	bne	.L262
1235	adrp	x0, .LANCHOR33
1236	add	x0, x0, :lo12:.LANCHOR33
1237	ldrb	w1, [x0, x19]
1238	cbz	w1, .L257
1239	adrp	x21, .LANCHOR32
1240	add	x21, x21, :lo12:.LANCHOR32
1241	strb	wzr, [x0, x19]
1242	ldrb	w0, [x21, 29]
1243	cbz	w0, .L257
1244	bl	nandc_wait_flash_ready_no_delay
1245	ldrb	w0, [x21, 29]
1246	b	.L276
1247.L262:
1248	cmp	w0, 3
1249	bne	.L257
1250	adrp	x21, .LANCHOR33
1251	sxtw	x22, w19
1252	add	x21, x21, :lo12:.LANCHOR33
1253	ldrb	w0, [x21, x22]
1254	cbz	w0, .L257
1255	ubfiz	x19, x19, 8, 8
1256	bl	nandc_wait_flash_ready_no_delay
1257	add	x19, x20, x19
1258	mov	w0, 239
1259	strb	wzr, [x21, x22]
1260	str	w0, [x19, 2056]
1261	mov	w0, 145
1262	str	w0, [x19, 2052]
1263	mov	x0, 1
1264	bl	udelay
1265	str	wzr, [x19, 2048]
1266	mov	w0, 1
1267	str	w0, [x19, 2048]
1268	str	wzr, [x19, 2048]
1269	mov	x0, 1
1270	str	wzr, [x19, 2048]
1271	bl	udelay
1272	bl	nandc_wait_flash_ready_no_delay
1273	mov	w0, 218
1274	ldp	x21, x22, [sp, 32]
1275	str	w0, [x19, 2056]
1276	ldp	x19, x20, [sp, 16]
1277	mov	x0, 1
1278	ldp	x29, x30, [sp], 48
1279	b	udelay
1280	.size	zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode
1281	.section	.text.zftl_flash_exit_slc_mode,"ax",@progbits
1282	.align	2
1283	.global	zftl_flash_exit_slc_mode
1284	.type	zftl_flash_exit_slc_mode, %function
1285zftl_flash_exit_slc_mode:
1286	stp	x29, x30, [sp, -64]!
1287	add	x29, sp, 0
1288	stp	x19, x20, [sp, 16]
1289	and	x19, x0, 255
1290	adrp	x0, .LANCHOR0
1291	stp	x21, x22, [sp, 32]
1292	str	x23, [sp, 48]
1293	ldrb	w0, [x0, #:lo12:.LANCHOR0]
1294	cbz	w0, .L277
1295	adrp	x1, .LANCHOR7
1296	cmp	w0, 1
1297	ldr	x20, [x1, #:lo12:.LANCHOR7]
1298	bne	.L280
1299	adrp	x0, .LANCHOR32+30
1300	ldrb	w0, [x0, #:lo12:.LANCHOR32+30]
1301	cbz	w0, .L277
1302.L298:
1303	add	x19, x19, 8
1304	add	x19, x20, x19, lsl 8
1305	str	w0, [x19, 8]
1306.L277:
1307	ldp	x19, x20, [sp, 16]
1308	ldp	x21, x22, [sp, 32]
1309	ldr	x23, [sp, 48]
1310	ldp	x29, x30, [sp], 64
1311	ret
1312.L280:
1313	cmp	w0, 2
1314	bne	.L282
1315	adrp	x0, .LANCHOR33
1316	add	x0, x0, :lo12:.LANCHOR33
1317	ldrb	w1, [x0, x19]
1318	cbnz	w1, .L277
1319	adrp	x21, .LANCHOR32
1320	add	x21, x21, :lo12:.LANCHOR32
1321	mov	w2, 4
1322	ldrb	w1, [x21, 12]
1323	cmp	w1, 2
1324	csel	w1, w1, w2, eq
1325	strb	w1, [x0, x19]
1326	ldrb	w0, [x21, 30]
1327	cbz	w0, .L277
1328	bl	nandc_wait_flash_ready_no_delay
1329	ldrb	w0, [x21, 30]
1330	b	.L298
1331.L282:
1332	cmp	w0, 3
1333	bne	.L277
1334	adrp	x21, .LANCHOR33
1335	sxtw	x23, w19
1336	add	x21, x21, :lo12:.LANCHOR33
1337	ldrb	w0, [x21, x23]
1338	cbnz	w0, .L277
1339	adrp	x22, .LANCHOR32
1340	add	x22, x22, :lo12:.LANCHOR32
1341	bl	nandc_wait_flash_ready_no_delay
1342	ubfiz	x19, x19, 8, 8
1343	add	x19, x20, x19
1344	mov	w1, 4
1345	ldrb	w0, [x22, 12]
1346	cmp	w0, 2
1347	csel	w0, w0, w1, eq
1348	strb	w0, [x21, x23]
1349	mov	w0, 239
1350	str	w0, [x19, 2056]
1351	mov	w0, 145
1352	str	w0, [x19, 2052]
1353	mov	x0, 1
1354	bl	udelay
1355	ldrb	w0, [x22, 7]
1356	cmp	w0, 9
1357	mov	w0, 1
1358	bne	.L285
1359	str	w0, [x19, 2048]
1360.L286:
1361	str	w0, [x19, 2048]
1362	mov	x0, 1
1363	str	wzr, [x19, 2048]
1364	str	wzr, [x19, 2048]
1365	bl	udelay
1366	bl	nandc_wait_flash_ready_no_delay
1367	ldr	x23, [sp, 48]
1368	ldp	x21, x22, [sp, 32]
1369	mov	w0, 223
1370	str	w0, [x19, 2056]
1371	mov	x0, 1
1372	ldp	x19, x20, [sp, 16]
1373	ldp	x29, x30, [sp], 64
1374	b	udelay
1375.L285:
1376	ldrb	w1, [x21, x23]
1377	str	w1, [x19, 2048]
1378	b	.L286
1379	.size	zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode
1380	.section	.text.flash_start_page_read,"ax",@progbits
1381	.align	2
1382	.global	flash_start_page_read
1383	.type	flash_start_page_read, %function
1384flash_start_page_read:
1385	stp	x29, x30, [sp, -64]!
1386	add	x29, sp, 0
1387	stp	x21, x22, [sp, 32]
1388	and	w21, w0, 255
1389	adrp	x0, .LANCHOR31
1390	stp	x19, x20, [sp, 16]
1391	str	x23, [sp, 48]
1392	mov	w19, 24
1393	ldrb	w0, [x0, #:lo12:.LANCHOR31]
1394	mov	w20, 1
1395	mov	w22, w1
1396	sub	w23, w19, w0
1397	lsl	w20, w20, w0
1398	sub	w20, w20, #1
1399	lsr	w0, w1, w23
1400	and	w20, w20, w0
1401	adrp	x0, .LANCHOR23
1402	and	w20, w20, 255
1403	mov	x19, x0
1404	ldrb	w1, [x0, #:lo12:.LANCHOR23]
1405	cmp	w1, w20
1406	bhi	.L300
1407	adrp	x1, .LANCHOR34
1408	adrp	x0, .LC0
1409	mov	w2, 1013
1410	add	x1, x1, :lo12:.LANCHOR34
1411	add	x0, x0, :lo12:.LC0
1412	bl	printf
1413.L300:
1414	ldrb	w0, [x19, #:lo12:.LANCHOR23]
1415	cmp	w0, w20
1416	bls	.L299
1417	adrp	x0, .LANCHOR29
1418	add	x0, x0, :lo12:.LANCHOR29
1419	mov	w19, 1
1420	ubfx	x4, x22, 24, 2
1421	lsl	w19, w19, w23
1422	sub	w19, w19, #1
1423	and	w19, w19, w22
1424	ldrb	w22, [x0, w20, sxtw]
1425	adrp	x0, .LANCHOR7
1426	adrp	x23, .LANCHOR21
1427	ldr	x20, [x0, #:lo12:.LANCHOR7]
1428	mov	w0, w22
1429	bl	nandc_cs
1430	cbnz	w4, .L302
1431	mov	w0, w19
1432	bl	slc_phy_page_address_calc
1433	mov	w19, w0
1434	adrp	x0, .LANCHOR0
1435	ldrb	w0, [x0, #:lo12:.LANCHOR0]
1436	cbz	w0, .L303
1437	mov	w0, w22
1438	bl	zftl_flash_enter_slc_mode
1439.L303:
1440	ldr	x0, [x23, #:lo12:.LANCHOR21]
1441	ldrb	w1, [x0, 7]
1442	cmp	w1, 1
1443	bne	.L305
1444	ldrb	w0, [x0, 12]
1445	cmp	w0, 2
1446	bne	.L305
1447	sxtw	x0, w22
1448	mov	w1, 38
1449	add	x0, x0, 8
1450	add	x0, x20, x0, lsl 8
1451	str	w1, [x0, 8]
1452.L305:
1453	ubfiz	x0, x22, 8, 8
1454	and	w1, w19, 255
1455	add	x0, x20, x0
1456	str	wzr, [x0, 2056]
1457	str	wzr, [x0, 2052]
1458	str	wzr, [x0, 2052]
1459	str	w1, [x0, 2052]
1460	lsr	w1, w19, 8
1461	str	w1, [x0, 2052]
1462	lsr	w1, w19, 16
1463	str	w1, [x0, 2052]
1464	adrp	x1, .LANCHOR30
1465	ldrb	w1, [x1, #:lo12:.LANCHOR30]
1466	cbz	w1, .L306
1467	lsr	w19, w19, 24
1468	str	w19, [x0, 2052]
1469.L306:
1470	str	w21, [x0, 2056]
1471.L299:
1472	ldp	x19, x20, [sp, 16]
1473	ldp	x21, x22, [sp, 32]
1474	ldr	x23, [sp, 48]
1475	ldp	x29, x30, [sp], 64
1476	ret
1477.L302:
1478	ldr	x0, [x23, #:lo12:.LANCHOR21]
1479	ldrb	w0, [x0, 12]
1480	cmp	w0, 3
1481	bne	.L304
1482	adrp	x0, .LANCHOR35
1483	ldrb	w0, [x0, #:lo12:.LANCHOR35]
1484	cbnz	w0, .L304
1485	adrp	x0, .LANCHOR36
1486	ldrb	w0, [x0, #:lo12:.LANCHOR36]
1487	cbnz	w0, .L304
1488	sxtw	x0, w22
1489	add	x0, x0, 8
1490	add	x0, x20, x0, lsl 8
1491	str	w4, [x0, 8]
1492	b	.L303
1493.L304:
1494	mov	w0, w22
1495	bl	zftl_flash_exit_slc_mode
1496	b	.L303
1497	.size	flash_start_page_read, .-flash_start_page_read
1498	.section	.text.nandc_wait_flash_ready,"ax",@progbits
1499	.align	2
1500	.global	nandc_wait_flash_ready
1501	.type	nandc_wait_flash_ready, %function
1502nandc_wait_flash_ready:
1503	stp	x29, x30, [sp, -48]!
1504	mov	x0, 1
1505	add	x29, sp, 0
1506	stp	x19, x20, [sp, 16]
1507	mov	w19, 34464
1508	movk	w19, 0x1, lsl 16
1509	adrp	x20, .LANCHOR7
1510	bl	udelay
1511.L316:
1512	ldr	x0, [x20, #:lo12:.LANCHOR7]
1513	ldr	w0, [x0]
1514	str	w0, [x29, 40]
1515	ldr	w0, [x29, 40]
1516	tbnz	x0, 9, .L317
1517	mov	x0, 1
1518	bl	udelay
1519	subs	w19, w19, #1
1520	bne	.L316
1521	mov	w0, -1
1522.L314:
1523	ldp	x19, x20, [sp, 16]
1524	ldp	x29, x30, [sp], 48
1525	ret
1526.L317:
1527	mov	w0, 0
1528	b	.L314
1529	.size	nandc_wait_flash_ready, .-nandc_wait_flash_ready
1530	.section	.text.sandisk_set_rr_para,"ax",@progbits
1531	.align	2
1532	.global	sandisk_set_rr_para
1533	.type	sandisk_set_rr_para, %function
1534sandisk_set_rr_para:
1535	stp	x29, x30, [sp, -32]!
1536	add	x29, sp, 0
1537	stp	x19, x20, [sp, 16]
1538	mov	x20, x0
1539	mov	w0, 239
1540	and	w19, w1, 255
1541	str	w0, [x20, 8]
1542	mov	w0, 17
1543	str	w0, [x20, 4]
1544	mov	x0, 1
1545	bl	udelay
1546	adrp	x0, .LANCHOR18
1547	add	w1, w19, 1
1548	adrp	x2, .LANCHOR14
1549	add	x2, x2, :lo12:.LANCHOR14
1550	ldrb	w3, [x0, #:lo12:.LANCHOR18]
1551	adrp	x0, .LANCHOR16
1552	ldrb	w4, [x0, #:lo12:.LANCHOR16]
1553	mov	w0, 5
1554	umull	x1, w1, w0
1555	adrp	x0, .LANCHOR15
1556	add	x0, x0, :lo12:.LANCHOR15
1557	add	x2, x2, x1
1558	add	x1, x0, x1
1559	mov	x0, 0
1560.L321:
1561	cmp	w3, w0
1562	bhi	.L324
1563	ldp	x19, x20, [sp, 16]
1564	ldp	x29, x30, [sp], 32
1565	b	nandc_wait_flash_ready
1566.L324:
1567	cmp	w4, 67
1568	bne	.L322
1569	ldrsb	w5, [x1, x0]
1570.L326:
1571	add	x0, x0, 1
1572	str	w5, [x20]
1573	b	.L321
1574.L322:
1575	ldrsb	w5, [x2, x0]
1576	b	.L326
1577	.size	sandisk_set_rr_para, .-sandisk_set_rr_para
1578	.section	.text.toshiba_3d_set_tlc_rr_para,"ax",@progbits
1579	.align	2
1580	.global	toshiba_3d_set_tlc_rr_para
1581	.type	toshiba_3d_set_tlc_rr_para, %function
1582toshiba_3d_set_tlc_rr_para:
1583	stp	x29, x30, [sp, -48]!
1584	and	x2, x1, 255
1585	mov	x1, 7
1586	add	x29, sp, 0
1587	stp	x19, x20, [sp, 16]
1588	mov	x19, x0
1589	str	x21, [sp, 32]
1590	mov	w21, 213
1591	madd	x1, x2, x1, x1
1592	mov	w0, -119
1593	str	w21, [x19, 8]
1594	str	wzr, [x19, 4]
1595	str	w0, [x19, 4]
1596	adrp	x0, .LANCHOR37
1597	add	x0, x0, :lo12:.LANCHOR37
1598	add	x20, x0, x1
1599	ldrsb	w0, [x0, x1]
1600	str	w0, [x19]
1601	ldrsb	w0, [x20, 1]
1602	str	w0, [x19]
1603	ldrsb	w0, [x20, 2]
1604	str	w0, [x19]
1605	ldrsb	w0, [x20, 3]
1606	str	w0, [x19]
1607	bl	nandc_wait_flash_ready
1608	str	w21, [x19, 8]
1609	str	wzr, [x19, 4]
1610	mov	w0, -118
1611	str	w0, [x19, 4]
1612	ldrsb	w0, [x20, 4]
1613	ldr	x21, [sp, 32]
1614	str	w0, [x19]
1615	ldrsb	w0, [x20, 5]
1616	str	w0, [x19]
1617	ldrsb	w0, [x20, 6]
1618	str	w0, [x19]
1619	str	wzr, [x19]
1620	ldp	x19, x20, [sp, 16]
1621	ldp	x29, x30, [sp], 48
1622	b	nandc_wait_flash_ready
1623	.size	toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para
1624	.section	.text.toshiba_3d_set_slc_rr_para,"ax",@progbits
1625	.align	2
1626	.global	toshiba_3d_set_slc_rr_para
1627	.type	toshiba_3d_set_slc_rr_para, %function
1628toshiba_3d_set_slc_rr_para:
1629	mov	w2, 213
1630	str	w2, [x0, 8]
1631	str	wzr, [x0, 4]
1632	mov	w2, -117
1633	str	w2, [x0, 4]
1634	adrp	x2, .LANCHOR38
1635	add	x2, x2, :lo12:.LANCHOR38
1636	add	x1, x2, x1, uxtb
1637	ldrsb	w1, [x1, 1]
1638	str	w1, [x0]
1639	str	wzr, [x0]
1640	str	wzr, [x0]
1641	str	wzr, [x0]
1642	b	nandc_wait_flash_ready
1643	.size	toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para
1644	.section	.text.toshiba_tlc_set_rr_para,"ax",@progbits
1645	.align	2
1646	.global	toshiba_tlc_set_rr_para
1647	.type	toshiba_tlc_set_rr_para, %function
1648toshiba_tlc_set_rr_para:
1649	stp	x29, x30, [sp, -48]!
1650	uxtw	x1, w1
1651	add	x29, sp, 0
1652	str	x21, [sp, 32]
1653	mov	w21, 239
1654	stp	x19, x20, [sp, 16]
1655	cbz	w2, .L331
1656	mov	x19, x0
1657	mov	x2, 7
1658	mov	w0, 18
1659	mul	x1, x1, x2
1660	str	w21, [x19, 8]
1661	str	w0, [x19, 4]
1662	adrp	x0, .LANCHOR39
1663	add	x0, x0, :lo12:.LANCHOR39
1664	add	x20, x0, x1
1665	ldrb	w0, [x0, x1]
1666	str	w0, [x19]
1667	ldrb	w0, [x20, 1]
1668	str	w0, [x19]
1669	ldrb	w0, [x20, 2]
1670	str	w0, [x19]
1671	ldrb	w0, [x20, 3]
1672	str	w0, [x19]
1673	bl	nandc_wait_flash_ready
1674	str	w21, [x19, 8]
1675	mov	w0, 19
1676	str	w0, [x19, 4]
1677	ldrb	w0, [x20, 4]
1678	str	w0, [x19]
1679	ldrb	w0, [x20, 5]
1680	str	w0, [x19]
1681	ldrb	w0, [x20, 6]
1682	str	w0, [x19]
1683	str	wzr, [x19]
1684.L332:
1685	ldp	x19, x20, [sp, 16]
1686	ldr	x21, [sp, 32]
1687	ldp	x29, x30, [sp], 48
1688	b	nandc_wait_flash_ready
1689.L331:
1690	str	w21, [x0, 8]
1691	mov	w2, 20
1692	str	w2, [x0, 4]
1693	adrp	x2, .LANCHOR40
1694	add	x2, x2, :lo12:.LANCHOR40
1695	ldrb	w1, [x2, x1]
1696	str	w1, [x0]
1697	str	wzr, [x0]
1698	str	wzr, [x0]
1699	str	wzr, [x0]
1700	b	.L332
1701	.size	toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para
1702	.section	.text.ymtc_3d_set_tlc_rr_para,"ax",@progbits
1703	.align	2
1704	.global	ymtc_3d_set_tlc_rr_para
1705	.type	ymtc_3d_set_tlc_rr_para, %function
1706ymtc_3d_set_tlc_rr_para:
1707	stp	x29, x30, [sp, -48]!
1708	and	x1, x1, 255
1709	mov	x2, 7
1710	add	x29, sp, 0
1711	stp	x19, x20, [sp, 16]
1712	mov	x19, x0
1713	str	x21, [sp, 32]
1714	mul	x1, x1, x2
1715	mov	w21, 239
1716	mov	w0, 160
1717	str	w21, [x19, 8]
1718	str	w0, [x19, 4]
1719	adrp	x0, .LANCHOR41
1720	add	x0, x0, :lo12:.LANCHOR41
1721	add	x20, x0, x1
1722	ldrsb	w0, [x0, x1]
1723	str	w0, [x19]
1724	ldrsb	w0, [x20, 4]
1725	str	w0, [x19]
1726	str	wzr, [x19]
1727	str	wzr, [x19]
1728	bl	nandc_wait_flash_ready
1729	str	w21, [x19, 8]
1730	mov	w0, 161
1731	str	w0, [x19, 4]
1732	ldrsb	w0, [x20, 1]
1733	str	w0, [x19]
1734	ldrsb	w0, [x20, 3]
1735	str	w0, [x19]
1736	ldrsb	w0, [x20, 5]
1737	str	w0, [x19]
1738	str	wzr, [x19]
1739	bl	nandc_wait_flash_ready
1740	str	w21, [x19, 8]
1741	mov	w0, 162
1742	str	w0, [x19, 4]
1743	ldrsb	w0, [x20, 2]
1744	ldr	x21, [sp, 32]
1745	str	w0, [x19]
1746	ldrsb	w0, [x20, 6]
1747	str	w0, [x19]
1748	str	wzr, [x19]
1749	str	wzr, [x19]
1750	ldp	x19, x20, [sp, 16]
1751	ldp	x29, x30, [sp], 48
1752	b	nandc_wait_flash_ready
1753	.size	ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para
1754	.section	.text.ymtc_3d_set_slc_rr_para,"ax",@progbits
1755	.align	2
1756	.global	ymtc_3d_set_slc_rr_para
1757	.type	ymtc_3d_set_slc_rr_para, %function
1758ymtc_3d_set_slc_rr_para:
1759	mov	w2, 239
1760	str	w2, [x0, 8]
1761	mov	w2, 163
1762	and	x1, x1, 255
1763	str	w2, [x0, 4]
1764	adrp	x2, .LANCHOR42
1765	add	x2, x2, :lo12:.LANCHOR42
1766	ldrsb	w1, [x2, x1]
1767	str	w1, [x0]
1768	str	wzr, [x0]
1769	str	wzr, [x0]
1770	str	wzr, [x0]
1771	b	nandc_wait_flash_ready
1772	.size	ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para
1773	.section	.text.flash_erase_duplane_block,"ax",@progbits
1774	.align	2
1775	.global	flash_erase_duplane_block
1776	.type	flash_erase_duplane_block, %function
1777flash_erase_duplane_block:
1778	stp	x29, x30, [sp, -80]!
1779	add	x29, sp, 0
1780	stp	x21, x22, [sp, 32]
1781	and	w22, w0, 255
1782	adrp	x0, .LANCHOR23
1783	stp	x19, x20, [sp, 16]
1784	stp	x23, x24, [sp, 48]
1785	and	w24, w1, 255
1786	str	x25, [sp, 64]
1787	mov	w21, w2
1788	ldrb	w1, [x0, #:lo12:.LANCHOR23]
1789	mov	w20, w3
1790	mov	x19, x0
1791	cmp	w1, w22
1792	bhi	.L338
1793	adrp	x1, .LANCHOR43
1794	adrp	x0, .LC0
1795	mov	w2, 695
1796	add	x1, x1, :lo12:.LANCHOR43
1797	add	x0, x0, :lo12:.LC0
1798	bl	printf
1799.L338:
1800	ldrb	w0, [x19, #:lo12:.LANCHOR23]
1801	cmp	w0, w22
1802	bls	.L347
1803	adrp	x0, .LANCHOR29
1804	add	x0, x0, :lo12:.LANCHOR29
1805	ldrb	w22, [x0, w22, sxtw]
1806	adrp	x0, .LANCHOR7
1807	ldr	x25, [x0, #:lo12:.LANCHOR7]
1808	adrp	x0, .LANCHOR19
1809	and	x19, x22, 255
1810	ldr	w0, [x0, #:lo12:.LANCHOR19]
1811	add	x23, x19, 8
1812	add	x23, x25, x23, lsl 8
1813	tbz	x0, 4, .L340
1814	adrp	x0, .LC31
1815	mov	w3, w20
1816	mov	w2, w21
1817	mov	w1, w22
1818	add	x0, x0, :lo12:.LC31
1819	bl	printf
1820.L340:
1821	bl	nandc_wait_flash_ready
1822	mov	w0, w22
1823	bl	nandc_cs
1824	mov	w0, w22
1825	cbnz	w24, .L341
1826	bl	zftl_flash_enter_slc_mode
1827.L342:
1828	add	x19, x25, x19, lsl 8
1829	mov	w0, 96
1830	str	w0, [x19, 2056]
1831	and	w0, w21, 255
1832	str	w0, [x19, 2052]
1833	lsr	w0, w21, 8
1834	str	w0, [x19, 2052]
1835	lsr	w0, w21, 16
1836	str	w0, [x19, 2052]
1837	adrp	x0, .LANCHOR30
1838	mov	x24, x0
1839	ldrb	w1, [x0, #:lo12:.LANCHOR30]
1840	cbz	w1, .L343
1841	lsr	w0, w21, 24
1842	str	w0, [x19, 2052]
1843.L343:
1844	adrp	x0, .LANCHOR44
1845	ldrb	w0, [x0, #:lo12:.LANCHOR44]
1846	cbnz	w0, .L348
1847	mov	w0, 208
1848	str	w0, [x19, 2056]
1849	mov	w22, 5
1850	bl	nandc_wait_flash_ready
1851	mov	x0, x23
1852	bl	flash_read_status
1853	and	w22, w0, w22
1854.L344:
1855	mov	w0, 96
1856	str	w0, [x19, 2056]
1857	and	w0, w20, 255
1858	str	w0, [x19, 2052]
1859	lsr	w0, w20, 8
1860	str	w0, [x19, 2052]
1861	lsr	w0, w20, 16
1862	str	w0, [x19, 2052]
1863	ldrb	w0, [x24, #:lo12:.LANCHOR30]
1864	cbz	w0, .L345
1865	lsr	w20, w20, 24
1866	str	w20, [x19, 2052]
1867.L345:
1868	mov	w0, 208
1869	str	w0, [x19, 2056]
1870	mov	w19, 5
1871	bl	nandc_wait_flash_ready
1872	mov	x0, x23
1873	bl	flash_read_status
1874	mov	w2, w0
1875	bl	nandc_de_cs.constprop.31
1876	and	w19, w2, w19
1877	orr	w19, w19, w22
1878	cbz	w19, .L346
1879	adrp	x0, .LC32
1880	mov	w1, w21
1881	add	x0, x0, :lo12:.LC32
1882	bl	printf
1883.L346:
1884	mov	w0, w19
1885.L337:
1886	ldp	x19, x20, [sp, 16]
1887	ldp	x21, x22, [sp, 32]
1888	ldp	x23, x24, [sp, 48]
1889	ldr	x25, [sp, 64]
1890	ldp	x29, x30, [sp], 80
1891	ret
1892.L341:
1893	bl	zftl_flash_exit_slc_mode
1894	b	.L342
1895.L348:
1896	mov	w22, 0
1897	b	.L344
1898.L347:
1899	mov	w0, -1
1900	b	.L337
1901	.size	flash_erase_duplane_block, .-flash_erase_duplane_block
1902	.section	.text.flash_erase_block_en,"ax",@progbits
1903	.align	2
1904	.global	flash_erase_block_en
1905	.type	flash_erase_block_en, %function
1906flash_erase_block_en:
1907	stp	x29, x30, [sp, -80]!
1908	add	x29, sp, 0
1909	stp	x21, x22, [sp, 32]
1910	and	w22, w0, 255
1911	adrp	x0, .LANCHOR31
1912	stp	x19, x20, [sp, 16]
1913	mov	w19, 24
1914	stp	x23, x24, [sp, 48]
1915	ldrb	w0, [x0, #:lo12:.LANCHOR31]
1916	and	w24, w1, 255
1917	stp	x25, x26, [sp, 64]
1918	mov	w23, w2
1919	sub	w0, w19, w0
1920	mov	w19, 1
1921	lsl	w19, w19, w0
1922	adrp	x0, .LANCHOR23
1923	sub	w19, w19, #1
1924	mov	x20, x0
1925	ldrb	w1, [x0, #:lo12:.LANCHOR23]
1926	and	w19, w19, w2
1927	cmp	w1, w22
1928	bhi	.L363
1929	adrp	x1, .LANCHOR45
1930	adrp	x0, .LC0
1931	mov	w2, 757
1932	add	x1, x1, :lo12:.LANCHOR45
1933	add	x0, x0, :lo12:.LC0
1934	bl	printf
1935.L363:
1936	ldrb	w0, [x20, #:lo12:.LANCHOR23]
1937	cmp	w0, w22
1938	bls	.L370
1939	adrp	x0, .LANCHOR29
1940	add	x0, x0, :lo12:.LANCHOR29
1941	ldrb	w21, [x0, w22, sxtw]
1942	adrp	x0, .LANCHOR7
1943	ldr	x26, [x0, #:lo12:.LANCHOR7]
1944	adrp	x0, .LANCHOR19
1945	and	x20, x21, 255
1946	ldr	w0, [x0, #:lo12:.LANCHOR19]
1947	add	x25, x20, 8
1948	add	x25, x26, x25, lsl 8
1949	tbz	x0, 4, .L365
1950	adrp	x0, .LC33
1951	mov	w3, w24
1952	mov	w2, w23
1953	mov	w1, w21
1954	add	x0, x0, :lo12:.LC33
1955	bl	printf
1956.L365:
1957	bl	nandc_wait_flash_ready
1958	mov	w0, w21
1959	bl	nandc_cs
1960	mov	w0, w21
1961	cbnz	w24, .L366
1962	bl	zftl_flash_enter_slc_mode
1963.L367:
1964	add	x0, x26, x20, lsl 8
1965	mov	w1, 96
1966	str	w1, [x0, 2056]
1967	and	w1, w19, 255
1968	str	w1, [x0, 2052]
1969	lsr	w1, w19, 8
1970	str	w1, [x0, 2052]
1971	lsr	w1, w19, 16
1972	str	w1, [x0, 2052]
1973	adrp	x1, .LANCHOR30
1974	ldrb	w1, [x1, #:lo12:.LANCHOR30]
1975	cbz	w1, .L368
1976	lsr	w19, w19, 24
1977	str	w19, [x0, 2052]
1978.L368:
1979	mov	w1, 208
1980	str	w1, [x0, 2056]
1981	bl	nandc_wait_flash_ready
1982	mov	x0, x25
1983	bl	flash_read_status
1984	mov	w3, w0
1985	bl	nandc_de_cs.constprop.31
1986	mov	w0, 5
1987	ands	w3, w3, w0
1988	beq	.L369
1989	adrp	x0, .LANCHOR2
1990	mov	w1, w22
1991	ldrh	w2, [x0, #:lo12:.LANCHOR2]
1992	adrp	x0, .LC34
1993	add	x0, x0, :lo12:.LC34
1994	udiv	w2, w23, w2
1995	bl	printf
1996	mov	w3, -1
1997.L369:
1998	mov	w0, w3
1999.L362:
2000	ldp	x19, x20, [sp, 16]
2001	ldp	x21, x22, [sp, 32]
2002	ldp	x23, x24, [sp, 48]
2003	ldp	x25, x26, [sp, 64]
2004	ldp	x29, x30, [sp], 80
2005	ret
2006.L366:
2007	bl	zftl_flash_exit_slc_mode
2008	b	.L367
2009.L370:
2010	mov	w0, -1
2011	b	.L362
2012	.size	flash_erase_block_en, .-flash_erase_block_en
2013	.section	.text.flash_erase_block,"ax",@progbits
2014	.align	2
2015	.global	flash_erase_block
2016	.type	flash_erase_block, %function
2017flash_erase_block:
2018	mov	w2, w1
2019	mov	w1, 0
2020	b	flash_erase_block_en
2021	.size	flash_erase_block, .-flash_erase_block
2022	.section	.text.flash_erase_all,"ax",@progbits
2023	.align	2
2024	.global	flash_erase_all
2025	.type	flash_erase_all, %function
2026flash_erase_all:
2027	stp	x29, x30, [sp, -80]!
2028	adrp	x0, .LANCHOR32
2029	add	x0, x0, :lo12:.LANCHOR32
2030	add	x29, sp, 0
2031	stp	x19, x20, [sp, 16]
2032	mov	w19, 0
2033	stp	x23, x24, [sp, 48]
2034	adrp	x23, .LANCHOR2
2035	stp	x21, x22, [sp, 32]
2036	add	x23, x23, :lo12:.LANCHOR2
2037	ldrh	w20, [x0, 14]
2038	adrp	x22, .LANCHOR23
2039	str	x25, [sp, 64]
2040	add	x22, x22, :lo12:.LANCHOR23
2041	adrp	x24, .LANCHOR29
2042	ldrb	w1, [x0, 13]
2043	mul	w20, w20, w1
2044	and	w20, w20, 65535
2045.L383:
2046	ldrb	w0, [x22]
2047	cmp	w0, w19
2048	bhi	.L386
2049	ldp	x19, x20, [sp, 16]
2050	mov	w1, 0
2051	ldp	x21, x22, [sp, 32]
2052	adrp	x0, .LC35
2053	ldp	x23, x24, [sp, 48]
2054	add	x0, x0, :lo12:.LC35
2055	ldr	x25, [sp, 64]
2056	ldp	x29, x30, [sp], 80
2057	b	printf
2058.L386:
2059	add	x0, x24, :lo12:.LANCHOR29
2060	mov	w21, 0
2061	ldrb	w25, [x0, w19, sxtw]
2062.L384:
2063	cmp	w20, w21, uxth
2064	bhi	.L385
2065	add	w19, w19, 1
2066	and	w19, w19, 65535
2067	b	.L383
2068.L385:
2069	ldrh	w1, [x23]
2070	mov	w0, w25
2071	mul	w1, w1, w21
2072	add	w21, w21, 1
2073	bl	flash_erase_block
2074	b	.L384
2075	.size	flash_erase_all, .-flash_erase_all
2076	.section	.text.flash_start_plane_read,"ax",@progbits
2077	.align	2
2078	.global	flash_start_plane_read
2079	.type	flash_start_plane_read, %function
2080flash_start_plane_read:
2081	stp	x29, x30, [sp, -96]!
2082	adrp	x2, .LANCHOR31
2083	mov	w3, 24
2084	add	x29, sp, 0
2085	stp	x19, x20, [sp, 16]
2086	ldrb	w19, [x2, #:lo12:.LANCHOR31]
2087	mov	w2, 1
2088	stp	x21, x22, [sp, 32]
2089	ubfx	x22, x0, 24, 2
2090	sub	w3, w3, w19
2091	stp	x23, x24, [sp, 48]
2092	lsl	w19, w2, w19
2093	sub	w19, w19, #1
2094	lsl	w20, w2, w3
2095	sub	w20, w20, #1
2096	and	w23, w20, w0
2097	lsr	w3, w0, w3
2098	adrp	x0, .LANCHOR23
2099	and	w19, w19, w3
2100	stp	x25, x26, [sp, 64]
2101	and	w19, w19, 255
2102	ldrb	w0, [x0, #:lo12:.LANCHOR23]
2103	and	w20, w20, w1
2104	stp	x27, x28, [sp, 80]
2105	cmp	w0, w19
2106	bhi	.L389
2107	adrp	x1, .LANCHOR46
2108	adrp	x0, .LC0
2109	mov	w2, 1148
2110	add	x1, x1, :lo12:.LANCHOR46
2111	add	x0, x0, :lo12:.LC0
2112	bl	printf
2113.L389:
2114	adrp	x0, .LANCHOR29
2115	add	x0, x0, :lo12:.LANCHOR29
2116	adrp	x25, .LANCHOR21
2117	ldrb	w21, [x0, w19, sxtw]
2118	adrp	x0, .LANCHOR7
2119	ldr	x24, [x0, #:lo12:.LANCHOR7]
2120	mov	w0, w21
2121	bl	nandc_cs
2122	cbnz	w22, .L390
2123	mov	w0, w23
2124	bl	slc_phy_page_address_calc
2125	mov	w23, w0
2126	mov	w0, w20
2127	bl	slc_phy_page_address_calc
2128	mov	w20, w0
2129	adrp	x0, .LANCHOR0
2130	ldrb	w0, [x0, #:lo12:.LANCHOR0]
2131	cbz	w0, .L391
2132	mov	w0, w21
2133	bl	zftl_flash_enter_slc_mode
2134.L391:
2135	adrp	x0, .LANCHOR25
2136	add	x1, x0, :lo12:.LANCHOR25
2137	and	x19, x21, 255
2138	and	w4, w23, 255
2139	lsr	w3, w23, 8
2140	and	w28, w20, 255
2141	ldrb	w2, [x1, 16]
2142	lsr	w27, w20, 8
2143	lsr	w26, w20, 16
2144	cmp	w2, 1
2145	lsr	w2, w23, 16
2146	bne	.L393
2147	add	x19, x24, x19, lsl 8
2148	ldrb	w1, [x1, 8]
2149	str	w1, [x19, 2056]
2150	adrp	x1, .LANCHOR30
2151	str	wzr, [x19, 2052]
2152	mov	x21, x1
2153	str	wzr, [x19, 2052]
2154	str	w4, [x19, 2052]
2155	str	w3, [x19, 2052]
2156	str	w2, [x19, 2052]
2157	ldrb	w2, [x1, #:lo12:.LANCHOR30]
2158	cbz	w2, .L394
2159	lsr	w23, w23, 24
2160	str	w23, [x19, 2052]
2161.L394:
2162	add	x0, x0, :lo12:.LANCHOR25
2163	ldrb	w0, [x0, 9]
2164	str	w0, [x19, 2056]
2165	bl	nandc_wait_flash_ready
2166	ldr	x0, [x25, #:lo12:.LANCHOR21]
2167	ldrb	w0, [x0, 12]
2168	cmp	w0, 3
2169	bne	.L395
2170	cbz	w22, .L395
2171	str	w22, [x19, 2056]
2172.L395:
2173	str	wzr, [x19, 2056]
2174	str	wzr, [x19, 2052]
2175	str	wzr, [x19, 2052]
2176	str	w28, [x19, 2052]
2177	ldrb	w0, [x21, #:lo12:.LANCHOR30]
2178	str	w27, [x19, 2052]
2179	str	w26, [x19, 2052]
2180	cbz	w0, .L416
2181	lsr	w20, w20, 24
2182	str	w20, [x19, 2052]
2183.L416:
2184	ldp	x21, x22, [sp, 32]
2185	mov	w0, 48
2186	ldp	x23, x24, [sp, 48]
2187	ldp	x25, x26, [sp, 64]
2188	ldp	x27, x28, [sp, 80]
2189	str	w0, [x19, 2056]
2190	ldp	x19, x20, [sp, 16]
2191	ldp	x29, x30, [sp], 96
2192	ret
2193.L390:
2194	ldr	x0, [x25, #:lo12:.LANCHOR21]
2195	ldrb	w0, [x0, 12]
2196	cmp	w0, 3
2197	bne	.L392
2198	adrp	x0, .LANCHOR35
2199	ldrb	w0, [x0, #:lo12:.LANCHOR35]
2200	cbnz	w0, .L392
2201	adrp	x0, .LANCHOR36
2202	ldrb	w0, [x0, #:lo12:.LANCHOR36]
2203	cbnz	w0, .L392
2204	sxtw	x0, w21
2205	add	x0, x0, 8
2206	add	x0, x24, x0, lsl 8
2207	str	w22, [x0, 8]
2208	b	.L391
2209.L392:
2210	mov	w0, w21
2211	bl	zftl_flash_exit_slc_mode
2212	b	.L391
2213.L393:
2214	ldr	x1, [x25, #:lo12:.LANCHOR21]
2215	ldrb	w5, [x1, 7]
2216	cmp	w5, 1
2217	bne	.L398
2218	ldrb	w5, [x1, 12]
2219	cmp	w5, 2
2220	bne	.L398
2221	add	x21, x21, 8
2222	mov	w5, 38
2223	add	x21, x24, x21, lsl 8
2224	str	w5, [x21, 8]
2225.L398:
2226	add	x5, x0, :lo12:.LANCHOR25
2227	add	x19, x24, x19, lsl 8
2228	ldrb	w5, [x5, 8]
2229	str	w5, [x19, 2056]
2230	str	w4, [x19, 2052]
2231	str	w3, [x19, 2052]
2232	str	w2, [x19, 2052]
2233	ldrb	w1, [x1, 12]
2234	cmp	w1, 3
2235	bne	.L399
2236	cbz	w22, .L399
2237	str	w22, [x19, 2056]
2238.L399:
2239	add	x0, x0, :lo12:.LANCHOR25
2240	ldrb	w0, [x0, 9]
2241	str	w0, [x19, 2056]
2242	str	w28, [x19, 2052]
2243	str	w27, [x19, 2052]
2244	str	w26, [x19, 2052]
2245	b	.L416
2246	.size	flash_start_plane_read, .-flash_start_plane_read
2247	.section	.text.flash_set_interface_mode,"ax",@progbits
2248	.align	2
2249	.global	flash_set_interface_mode
2250	.type	flash_set_interface_mode, %function
2251flash_set_interface_mode:
2252	stp	x29, x30, [sp, -80]!
2253	add	x29, sp, 0
2254	stp	x21, x22, [sp, 32]
2255	adrp	x22, .LANCHOR47
2256	stp	x19, x20, [sp, 16]
2257	adrp	x21, .LANCHOR19
2258	stp	x23, x24, [sp, 48]
2259	adrp	x20, .LANCHOR48
2260	mov	w23, w0
2261	add	x22, x22, :lo12:.LANCHOR47
2262	add	x20, x20, :lo12:.LANCHOR48
2263	add	x21, x21, :lo12:.LANCHOR19
2264	str	x25, [sp, 64]
2265	mov	x25, 0
2266.L430:
2267	adrp	x0, .LANCHOR7
2268	ldr	x19, [x0, #:lo12:.LANCHOR7]
2269	lsl	x0, x25, 3
2270	ldrb	w24, [x0, x22]
2271	cmp	w24, 69
2272	beq	.L418
2273	add	w0, w24, 119
2274	cmp	w24, 44
2275	and	w1, w0, 255
2276	cset	w2, eq
2277	cmp	w1, 18
2278	bhi	.L431
2279	mov	x0, 32769
2280	movk	x0, 0x4, lsl 16
2281	lsr	x0, x0, x1
2282	mvn	x0, x0
2283.L419:
2284	and	w0, w0, 1
2285	eor	w0, w0, 1
2286	orr	w0, w2, w0
2287	cbz	w0, .L420
2288.L418:
2289	ldrb	w1, [x20]
2290	cmp	w23, 1
2291	bne	.L421
2292	tbz	x1, 0, .L420
2293	ldr	w0, [x21]
2294	tbz	x0, 12, .L422
2295	adrp	x0, .LC36
2296	add	x0, x0, :lo12:.LC36
2297	bl	printf
2298.L422:
2299	add	x0, x19, x25, lsl 8
2300	mov	w1, 239
2301	cmp	w24, 44
2302	str	w1, [x0, 2056]
2303	mov	w1, 137
2304	ccmp	w24, w1, 4, ne
2305	mov	w1, 1
2306	bne	.L423
2307.L454:
2308	str	w1, [x0, 2052]
2309	mov	w1, 5
2310.L453:
2311	str	w1, [x0, 2048]
2312.L428:
2313	str	wzr, [x0, 2048]
2314	str	wzr, [x0, 2048]
2315	str	wzr, [x0, 2048]
2316.L420:
2317	add	x25, x25, 1
2318	cmp	x25, 4
2319	bne	.L430
2320	bl	nandc_wait_flash_ready
2321	ldr	x25, [sp, 64]
2322	mov	w0, 0
2323	ldp	x19, x20, [sp, 16]
2324	ldp	x21, x22, [sp, 32]
2325	ldp	x23, x24, [sp, 48]
2326	ldp	x29, x30, [sp], 80
2327	ret
2328.L431:
2329	mov	x0, 1
2330	b	.L419
2331.L423:
2332	cmp	w24, 155
2333	beq	.L454
2334	mov	w2, 128
2335	str	w2, [x0, 2052]
2336	b	.L453
2337.L421:
2338	tbz	x1, 2, .L420
2339	ldr	w0, [x21]
2340	tbz	x0, 12, .L426
2341	adrp	x0, .LC37
2342	add	x0, x0, :lo12:.LC37
2343	bl	printf
2344.L426:
2345	add	x0, x19, x25, lsl 8
2346	mov	w1, 239
2347	cmp	w24, 44
2348	str	w1, [x0, 2056]
2349	mov	w1, 137
2350	ccmp	w24, w1, 4, ne
2351	bne	.L427
2352	mov	w1, 1
2353	str	w1, [x0, 2052]
2354	mov	w1, 35
2355	b	.L453
2356.L427:
2357	cmp	w24, 155
2358	bne	.L429
2359	mov	w1, 1
2360	str	w1, [x0, 2052]
2361	mov	w1, 37
2362	b	.L453
2363.L429:
2364	mov	w1, 128
2365	str	w1, [x0, 2052]
2366	str	wzr, [x0, 2048]
2367	b	.L428
2368	.size	flash_set_interface_mode, .-flash_set_interface_mode
2369	.section	.text.mt_auto_read_calibration_config,"ax",@progbits
2370	.align	2
2371	.type	mt_auto_read_calibration_config, %function
2372mt_auto_read_calibration_config:
2373	stp	x29, x30, [sp, -32]!
2374	add	x29, sp, 0
2375	stp	x19, x20, [sp, 16]
2376	mov	w20, w1
2377	and	w19, w0, 255
2378	bl	nandc_wait_flash_ready
2379	adrp	x1, .LANCHOR7
2380	ubfiz	x0, x19, 8, 8
2381	ldr	x19, [x1, #:lo12:.LANCHOR7]
2382	add	x19, x19, x0
2383	mov	w0, 239
2384	str	w0, [x19, 2056]
2385	mov	w0, 150
2386	str	w0, [x19, 2052]
2387	mov	x0, 1
2388	bl	udelay
2389	str	w20, [x19, 2048]
2390	str	wzr, [x19, 2048]
2391	str	wzr, [x19, 2048]
2392	str	wzr, [x19, 2048]
2393	ldp	x19, x20, [sp, 16]
2394	ldp	x29, x30, [sp], 32
2395	ret
2396	.size	mt_auto_read_calibration_config, .-mt_auto_read_calibration_config
2397	.section	.text.flash_reset,"ax",@progbits
2398	.align	2
2399	.global	flash_reset
2400	.type	flash_reset, %function
2401flash_reset:
2402	adrp	x1, .LANCHOR7
2403	ubfiz	x0, x0, 8, 8
2404	add	x0, x0, 2048
2405	ldr	x1, [x1, #:lo12:.LANCHOR7]
2406	add	x1, x1, x0
2407	mov	w0, 255
2408	str	w0, [x1, 8]
2409	b	nandc_wait_flash_ready
2410	.size	flash_reset, .-flash_reset
2411	.section	.text.flash_read_id,"ax",@progbits
2412	.align	2
2413	.global	flash_read_id
2414	.type	flash_read_id, %function
2415flash_read_id:
2416	stp	x29, x30, [sp, -48]!
2417	add	x29, sp, 0
2418	str	x21, [sp, 32]
2419	and	w21, w0, 255
2420	adrp	x0, .LANCHOR7
2421	stp	x19, x20, [sp, 16]
2422	mov	x19, x1
2423	ldr	x20, [x0, #:lo12:.LANCHOR7]
2424	mov	w0, w21
2425	bl	flash_reset
2426	mov	w0, w21
2427	bl	nandc_cs
2428	ubfiz	x0, x21, 8, 8
2429	add	x20, x20, x0
2430	mov	w0, 144
2431	str	w0, [x20, 2056]
2432	mov	x0, 1
2433	str	wzr, [x20, 2052]
2434	bl	udelay
2435	ldr	w0, [x20, 2048]
2436	strb	w0, [x19]
2437	ldr	w0, [x20, 2048]
2438	strb	w0, [x19, 1]
2439	ldr	w0, [x20, 2048]
2440	strb	w0, [x19, 2]
2441	ldr	w0, [x20, 2048]
2442	strb	w0, [x19, 3]
2443	ldr	w0, [x20, 2048]
2444	strb	w0, [x19, 4]
2445	ldr	w0, [x20, 2048]
2446	strb	w0, [x19, 5]
2447	ldr	w0, [x20, 2048]
2448	strb	w0, [x19, 6]
2449	ldr	w0, [x20, 2048]
2450	strb	w0, [x19, 7]
2451	bl	nandc_de_cs.constprop.31
2452	ldrb	w2, [x19]
2453	sub	w0, w2, #1
2454	and	w0, w0, 255
2455	cmp	w0, 253
2456	bhi	.L458
2457	ldrb	w7, [x19, 5]
2458	add	w1, w21, 1
2459	ldrb	w6, [x19, 4]
2460	adrp	x0, .LC38
2461	ldrb	w5, [x19, 3]
2462	add	x0, x0, :lo12:.LC38
2463	ldrb	w4, [x19, 2]
2464	ldrb	w3, [x19, 1]
2465	ldr	x21, [sp, 32]
2466	ldp	x19, x20, [sp, 16]
2467	ldp	x29, x30, [sp], 48
2468	b	printf
2469.L458:
2470	ldp	x19, x20, [sp, 16]
2471	ldr	x21, [sp, 32]
2472	ldp	x29, x30, [sp], 48
2473	ret
2474	.size	flash_read_id, .-flash_read_id
2475	.section	.text.flash_read_spare,"ax",@progbits
2476	.align	2
2477	.global	flash_read_spare
2478	.type	flash_read_spare, %function
2479flash_read_spare:
2480	stp	x29, x30, [sp, -32]!
2481	ubfiz	x0, x0, 8, 8
2482	add	x29, sp, 0
2483	stp	x19, x20, [sp, 16]
2484	mov	x20, x2
2485	adrp	x2, .LANCHOR32+9
2486	ldrb	w3, [x2, #:lo12:.LANCHOR32+9]
2487	adrp	x2, .LANCHOR7
2488	ldr	x19, [x2, #:lo12:.LANCHOR7]
2489	lsl	w3, w3, 9
2490	add	x19, x19, x0
2491	and	w0, w1, 255
2492	str	wzr, [x19, 2056]
2493	str	w3, [x19, 2052]
2494	lsr	w3, w3, 8
2495	str	w3, [x19, 2052]
2496	str	w0, [x19, 2052]
2497	lsr	w0, w1, 8
2498	str	w0, [x19, 2052]
2499	lsr	w1, w1, 16
2500	str	w1, [x19, 2052]
2501	mov	w0, 48
2502	str	w0, [x19, 2056]
2503	bl	nandc_wait_flash_ready
2504	ldr	w0, [x19, 2048]
2505	strb	w0, [x20]
2506	ldp	x19, x20, [sp, 16]
2507	ldp	x29, x30, [sp], 32
2508	ret
2509	.size	flash_read_spare, .-flash_read_spare
2510	.section	.text.flash_read_otp_data,"ax",@progbits
2511	.align	2
2512	.global	flash_read_otp_data
2513	.type	flash_read_otp_data, %function
2514flash_read_otp_data:
2515	stp	x29, x30, [sp, -48]!
2516	and	w4, w0, 255
2517	adrp	x0, .LANCHOR7
2518	add	x29, sp, 0
2519	stp	x19, x20, [sp, 16]
2520	mov	w20, w1
2521	ldr	x19, [x0, #:lo12:.LANCHOR7]
2522	mov	w0, w4
2523	stp	x21, x22, [sp, 32]
2524	mov	x22, x2
2525	bl	nandc_cs
2526	ubfiz	x4, x4, 8, 8
2527	add	x19, x19, x4
2528	mov	w0, 239
2529	mov	w21, 144
2530	str	w0, [x19, 2056]
2531	mov	x0, 1
2532	str	w21, [x19, 2052]
2533	bl	udelay
2534	mov	w0, 1
2535	str	w0, [x19, 2048]
2536	str	wzr, [x19, 2048]
2537	str	wzr, [x19, 2048]
2538	str	wzr, [x19, 2048]
2539	bl	nandc_wait_flash_ready
2540	mov	w0, 238
2541	str	w0, [x19, 2056]
2542	str	w21, [x19, 2052]
2543	mov	w1, w20
2544	adrp	x0, .LC39
2545	add	x0, x0, :lo12:.LC39
2546	ldr	w2, [x19, 2048]
2547	ldr	w3, [x19, 2048]
2548	ldr	w4, [x19, 2048]
2549	bl	printf
2550	bl	nandc_wait_flash_ready
2551	str	wzr, [x19, 2056]
2552	str	wzr, [x19, 2052]
2553	and	w0, w20, 255
2554	str	wzr, [x19, 2052]
2555	str	w0, [x19, 2052]
2556	lsr	w0, w20, 8
2557	str	w0, [x19, 2052]
2558	lsr	w20, w20, 16
2559	str	w20, [x19, 2052]
2560	mov	w0, 48
2561	str	w0, [x19, 2056]
2562	bl	nandc_wait_flash_ready
2563	mov	x0, 0
2564.L464:
2565	ldr	w1, [x19, 2048]
2566	strb	w1, [x22, x0]
2567	add	x0, x0, 1
2568	cmp	x0, 16384
2569	bne	.L464
2570	mov	w0, 239
2571	str	w0, [x19, 2056]
2572	mov	w0, 144
2573	str	w0, [x19, 2052]
2574	mov	x0, 1
2575	bl	udelay
2576	ldp	x21, x22, [sp, 32]
2577	str	wzr, [x19, 2048]
2578	str	wzr, [x19, 2048]
2579	str	wzr, [x19, 2048]
2580	str	wzr, [x19, 2048]
2581	ldp	x19, x20, [sp, 16]
2582	ldp	x29, x30, [sp], 48
2583	b	nandc_de_cs.constprop.31
2584	.size	flash_read_otp_data, .-flash_read_otp_data
2585	.section	.text.sandisk_prog_test_bad_block,"ax",@progbits
2586	.align	2
2587	.global	sandisk_prog_test_bad_block
2588	.type	sandisk_prog_test_bad_block, %function
2589sandisk_prog_test_bad_block:
2590	stp	x29, x30, [sp, -48]!
2591	and	x2, x0, 255
2592	mov	x0, x2
2593	add	x2, x2, 8
2594	add	x29, sp, 0
2595	stp	x21, x22, [sp, 32]
2596	mov	w22, w1
2597	adrp	x1, .LANCHOR7
2598	stp	x19, x20, [sp, 16]
2599	adrp	x20, .LANCHOR32
2600	ldr	x19, [x1, #:lo12:.LANCHOR7]
2601	add	x1, x20, :lo12:.LANCHOR32
2602	ldrb	w1, [x1, 29]
2603	add	x2, x19, x2, lsl 8
2604	cbz	w1, .L468
2605.L483:
2606	ubfiz	x0, x0, 8, 8
2607	str	w1, [x2, 8]
2608	add	x19, x19, x0
2609	mov	w0, 128
2610	str	w0, [x19, 2056]
2611	and	w0, w22, 255
2612	str	wzr, [x19, 2052]
2613	str	wzr, [x19, 2052]
2614	str	w0, [x19, 2052]
2615	lsr	w0, w22, 8
2616	str	w0, [x19, 2052]
2617	lsr	w0, w22, 16
2618	str	w0, [x19, 2052]
2619	mov	w0, 16
2620	str	w0, [x19, 2056]
2621	bl	nandc_wait_flash_ready
2622	mov	w0, 112
2623	str	w0, [x19, 2056]
2624	mov	x0, 1
2625	bl	udelay
2626	ldr	w2, [x19, 2048]
2627	cmp	w2, 255
2628	bne	.L470
2629	ldr	w2, [x19, 2048]
2630.L470:
2631	mov	w0, 5
2632	ands	w21, w2, w0
2633	beq	.L471
2634	adrp	x0, .LANCHOR19
2635	ldr	w0, [x0, #:lo12:.LANCHOR19]
2636	tbz	x0, 12, .L471
2637	adrp	x0, .LC40
2638	mov	w1, w22
2639	add	x0, x0, :lo12:.LC40
2640	bl	printf
2641.L471:
2642	add	x20, x20, :lo12:.LANCHOR32
2643	ldrb	w0, [x20, 30]
2644	cbz	w0, .L467
2645	str	w0, [x19, 2056]
2646.L467:
2647	mov	w0, w21
2648	ldp	x19, x20, [sp, 16]
2649	ldp	x21, x22, [sp, 32]
2650	ldp	x29, x30, [sp], 48
2651	ret
2652.L468:
2653	mov	w1, 162
2654	b	.L483
2655	.size	sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block
2656	.section	.text.nand_flash_exit_boot_rom_slc_mode,"ax",@progbits
2657	.align	2
2658	.type	nand_flash_exit_boot_rom_slc_mode, %function
2659nand_flash_exit_boot_rom_slc_mode:
2660	stp	x29, x30, [sp, -48]!
2661	adrp	x0, .LANCHOR7
2662	mov	w1, 137
2663	add	x29, sp, 0
2664	stp	x19, x20, [sp, 16]
2665	adrp	x20, .LANCHOR33
2666	ldr	x19, [x0, #:lo12:.LANCHOR7]
2667	adrp	x0, .LANCHOR47
2668	str	x21, [sp, 32]
2669	ldrb	w0, [x0, #:lo12:.LANCHOR47]
2670	cmp	w0, 44
2671	ccmp	w0, w1, 4, ne
2672	bne	.L485
2673	mov	w0, 223
2674	str	w0, [x19, 2056]
2675	adrp	x0, .LANCHOR32+12
2676	mov	w1, 4
2677	ldrb	w0, [x0, #:lo12:.LANCHOR32+12]
2678	cmp	w0, 2
2679	csel	w0, w0, w1, eq
2680	strb	w0, [x20, #:lo12:.LANCHOR33]
2681	bl	nandc_wait_flash_ready
2682	mov	w0, 239
2683	str	w0, [x19, 2056]
2684	mov	w0, 145
2685	str	w0, [x19, 2052]
2686	mov	x0, 1
2687	bl	udelay
2688	ldrb	w0, [x20, #:lo12:.LANCHOR33]
2689	str	w0, [x19, 2048]
2690	str	wzr, [x19, 2048]
2691	str	wzr, [x19, 2048]
2692	str	wzr, [x19, 2048]
2693.L494:
2694	ldp	x19, x20, [sp, 16]
2695	ldr	x21, [sp, 32]
2696	ldp	x29, x30, [sp], 48
2697	b	nandc_wait_flash_ready
2698.L485:
2699	cmp	w0, 173
2700	bne	.L487
2701	add	x19, x19, 2048
2702	mov	w0, 190
2703	str	w0, [x19, 8]
2704	bl	nandc_wait_flash_ready
2705	mov	w0, 223
2706	str	w0, [x19, 8]
2707	adrp	x0, .LANCHOR32+12
2708	mov	w1, 4
2709	ldrb	w0, [x0, #:lo12:.LANCHOR32+12]
2710	cmp	w0, 2
2711	csel	w0, w0, w1, eq
2712	strb	w0, [x20, #:lo12:.LANCHOR33]
2713	b	.L494
2714.L487:
2715	strb	wzr, [x20, #:lo12:.LANCHOR33]
2716	mov	w0, 0
2717	ldp	x19, x20, [sp, 16]
2718	ldr	x21, [sp, 32]
2719	ldp	x29, x30, [sp], 48
2720	b	zftl_flash_exit_slc_mode
2721	.size	nand_flash_exit_boot_rom_slc_mode, .-nand_flash_exit_boot_rom_slc_mode
2722	.section	.text.nandc_rdy_status,"ax",@progbits
2723	.align	2
2724	.global	nandc_rdy_status
2725	.type	nandc_rdy_status, %function
2726nandc_rdy_status:
2727	adrp	x0, .LANCHOR7
2728	sub	sp, sp, #16
2729	ldr	x0, [x0, #:lo12:.LANCHOR7]
2730	ldr	w0, [x0]
2731	str	w0, [sp, 8]
2732	ldr	w0, [sp, 8]
2733	add	sp, sp, 16
2734	ubfx	x0, x0, 9, 1
2735	ret
2736	.size	nandc_rdy_status, .-nandc_rdy_status
2737	.section	.text.nandc_bch_sel,"ax",@progbits
2738	.align	2
2739	.global	nandc_bch_sel
2740	.type	nandc_bch_sel, %function
2741nandc_bch_sel:
2742	sub	sp, sp, #16
2743	str	wzr, [sp, 8]
2744	ldr	w1, [sp, 8]
2745	orr	w1, w1, 1
2746	str	w1, [sp, 8]
2747	adrp	x1, .LANCHOR49
2748	strb	w0, [x1, #:lo12:.LANCHOR49]
2749	adrp	x1, .LANCHOR27
2750	ldrb	w1, [x1, #:lo12:.LANCHOR27]
2751	cmp	w1, 9
2752	adrp	x1, .LANCHOR7
2753	bne	.L498
2754	ldr	x1, [x1, #:lo12:.LANCHOR7]
2755	cmp	w0, 70
2756	ldr	w2, [sp, 8]
2757	str	w2, [x1, 16]
2758	beq	.L504
2759	cmp	w0, 60
2760	beq	.L505
2761	cmp	w0, 40
2762	cset	w0, eq
2763	add	w0, w0, 1
2764.L499:
2765	str	wzr, [sp]
2766	ldr	w2, [sp]
2767	bfi	w2, w0, 25, 3
2768	str	w2, [sp]
2769	ldr	w0, [sp]
2770	orr	w0, w0, 1
2771	str	w0, [sp]
2772	ldr	w0, [sp]
2773	str	w0, [x1, 32]
2774.L497:
2775	add	sp, sp, 16
2776	ret
2777.L504:
2778	mov	w0, 0
2779	b	.L499
2780.L505:
2781	mov	w0, 3
2782	b	.L499
2783.L498:
2784	ldr	x2, [x1, #:lo12:.LANCHOR7]
2785	mov	w3, 16
2786	ldr	w1, [sp, 8]
2787	cmp	w0, w3
2788	str	w1, [x2, 8]
2789	str	wzr, [sp]
2790	ldr	w1, [sp]
2791	bfi	w1, w3, 8, 8
2792	str	w1, [sp]
2793	ldr	w1, [sp]
2794	and	w1, w1, -262145
2795	str	w1, [sp]
2796	bne	.L501
2797.L508:
2798	ldr	w0, [sp]
2799	and	w0, w0, -17
2800	b	.L509
2801.L501:
2802	cmp	w0, 24
2803	bne	.L503
2804	ldr	w0, [sp]
2805	orr	w0, w0, 16
2806.L509:
2807	str	w0, [sp]
2808	b	.L502
2809.L503:
2810	ldr	w1, [sp]
2811	cmp	w0, 40
2812	orr	w1, w1, 262144
2813	str	w1, [sp]
2814	ldr	w1, [sp]
2815	orr	w1, w1, 16
2816	str	w1, [sp]
2817	beq	.L508
2818.L502:
2819	ldr	w0, [sp]
2820	orr	w0, w0, 1
2821	str	w0, [sp]
2822	ldr	w0, [sp]
2823	str	w0, [x2, 12]
2824	b	.L497
2825	.size	nandc_bch_sel, .-nandc_bch_sel
2826	.section	.text.zftl_nandc_get_irq_status,"ax",@progbits
2827	.align	2
2828	.global	zftl_nandc_get_irq_status
2829	.type	zftl_nandc_get_irq_status, %function
2830zftl_nandc_get_irq_status:
2831	adrp	x1, .LANCHOR27
2832	ldrb	w1, [x1, #:lo12:.LANCHOR27]
2833	cmp	w1, 9
2834	bne	.L511
2835	ldr	w0, [x0, 296]
2836	ret
2837.L511:
2838	ldr	w0, [x0, 372]
2839	ret
2840	.size	zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status
2841	.section	.text.rk_nandc_flash_ready,"ax",@progbits
2842	.align	2
2843	.global	rk_nandc_flash_ready
2844	.type	rk_nandc_flash_ready, %function
2845rk_nandc_flash_ready:
2846	ret
2847	.size	rk_nandc_flash_ready, .-rk_nandc_flash_ready
2848	.section	.text.nandc_iqr_wait_flash_ready,"ax",@progbits
2849	.align	2
2850	.global	nandc_iqr_wait_flash_ready
2851	.type	nandc_iqr_wait_flash_ready, %function
2852nandc_iqr_wait_flash_ready:
2853	ret
2854	.size	nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready
2855	.section	.text.rk_nandc_flash_xfer_completed,"ax",@progbits
2856	.align	2
2857	.global	rk_nandc_flash_xfer_completed
2858	.type	rk_nandc_flash_xfer_completed, %function
2859rk_nandc_flash_xfer_completed:
2860	ret
2861	.size	rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
2862	.section	.text.nandc_xfer_start,"ax",@progbits
2863	.align	2
2864	.global	nandc_xfer_start
2865	.type	nandc_xfer_start, %function
2866nandc_xfer_start:
2867	stp	x29, x30, [sp, -80]!
2868	and	w1, w1, 255
2869	adrp	x4, .LANCHOR52
2870	add	x29, sp, 0
2871	stp	x19, x20, [sp, 16]
2872	and	w20, w0, 255
2873	adrp	x0, .LANCHOR27
2874	str	x21, [sp, 32]
2875	and	w6, w20, 1
2876	adrp	x21, .LANCHOR7
2877	ldrb	w0, [x0, #:lo12:.LANCHOR27]
2878	cmp	w0, 9
2879	add	w0, w1, 1
2880	bne	.L517
2881	str	wzr, [x29, 56]
2882	mov	w5, 1
2883	ubfx	x0, x0, 1, 6
2884	ldr	w1, [x29, 56]
2885	bfi	w1, w6, 1, 1
2886	str	w1, [x29, 56]
2887	ldr	w1, [x29, 56]
2888	orr	w1, w1, 8
2889	str	w1, [x29, 56]
2890	ldr	w1, [x29, 56]
2891	bfi	w1, w5, 5, 2
2892	str	w1, [x29, 56]
2893	ldr	w1, [x29, 56]
2894	orr	w1, w1, 536870912
2895	str	w1, [x29, 56]
2896	ldr	w1, [x29, 56]
2897	orr	w1, w1, 1024
2898	str	w1, [x29, 56]
2899	ldr	w1, [x29, 56]
2900	and	w1, w1, -17
2901	str	w1, [x29, 56]
2902	ldr	w1, [x29, 56]
2903	bfi	w1, w0, 22, 6
2904	str	w1, [x29, 56]
2905	ldr	w0, [x29, 56]
2906	orr	w0, w0, 128
2907	str	w0, [x29, 56]
2908	adrp	x0, .LANCHOR50
2909	ldrb	w0, [x0, #:lo12:.LANCHOR50]
2910	cbz	w0, .L518
2911	adrp	x0, .LANCHOR51
2912	ldrb	w0, [x0, #:lo12:.LANCHOR51]
2913	cbz	w0, .L518
2914	ldr	w0, [x29, 56]
2915	orr	w0, w0, 512
2916	str	w0, [x29, 56]
2917.L518:
2918	ldr	w0, [x29, 56]
2919	add	x19, x4, :lo12:.LANCHOR52
2920	add	x1, x2, 63
2921	and	x1, x1, -64
2922	ubfx	x0, x0, 22, 6
2923	stp	x2, x3, [x19, 8]
2924	ubfiz	x0, x0, 10, 6
2925	stp	w2, w3, [x19, 24]
2926	add	x1, x1, x0
2927	and	x0, x2, -64
2928	bl	flush_dcache_range
2929	ldr	x0, [x19, 16]
2930	add	x1, x0, 63
2931	and	x0, x0, -64
2932	and	x1, x1, -64
2933	add	x1, x1, 64
2934	bl	flush_dcache_range
2935	mov	w0, 1
2936	str	w0, [x19, 32]
2937	ldr	x0, [x21, #:lo12:.LANCHOR7]
2938	mov	w2, 16
2939	ldr	w1, [x19, 24]
2940	cmp	w20, 0
2941	str	w1, [x0, 52]
2942	ldr	w1, [x19, 28]
2943	str	w1, [x0, 56]
2944	ldr	w1, [x0, 48]
2945	str	w1, [x29, 64]
2946	ldr	w1, [x29, 64]
2947	bfi	w1, w2, 9, 5
2948	str	w1, [x29, 64]
2949	mov	w2, 2
2950	ldr	w1, [x29, 64]
2951	orr	w1, w1, 448
2952	str	w1, [x29, 64]
2953	ldr	w1, [x29, 64]
2954	bfi	w1, w2, 3, 3
2955	str	w1, [x29, 64]
2956	cset	w2, eq
2957	ldr	w1, [x29, 64]
2958	orr	w1, w1, 4
2959	str	w1, [x29, 64]
2960	ldr	w1, [x29, 64]
2961	bfi	w1, w2, 1, 1
2962	str	w1, [x29, 64]
2963	ldr	w1, [x29, 64]
2964	orr	w1, w1, 1
2965	str	w1, [x29, 64]
2966	adrp	x1, .LANCHOR53
2967	ldrh	w2, [x1, #:lo12:.LANCHOR53]
2968	ldr	w1, [x29, 64]
2969	bfi	w1, w2, 16, 11
2970	str	w1, [x29, 64]
2971	ldr	w1, [x29, 64]
2972	str	w1, [x0, 48]
2973	ldr	w1, [x29, 56]
2974	str	w1, [x0, 16]
2975	ldr	w1, [x29, 56]
2976	orr	w1, w1, 4
2977	str	w1, [x29, 56]
2978	ldr	w1, [x29, 56]
2979	str	w1, [x0, 16]
2980.L516:
2981	ldp	x19, x20, [sp, 16]
2982	ldr	x21, [sp, 32]
2983	ldp	x29, x30, [sp], 80
2984	ret
2985.L517:
2986	ldr	x5, [x21, #:lo12:.LANCHOR7]
2987	mov	w7, 16
2988	ubfx	x0, x0, 1, 6
2989	ldr	w5, [x5, 12]
2990	str	w5, [x29, 72]
2991	ldr	w5, [x29, 72]
2992	bfi	w5, w7, 8, 8
2993	str	w5, [x29, 72]
2994	ldr	w5, [x29, 72]
2995	and	w5, w5, -9
2996	str	w5, [x29, 72]
2997	ldr	w5, [x29, 72]
2998	and	w5, w5, -225
2999	str	w5, [x29, 72]
3000	str	wzr, [x29, 56]
3001	ldr	w5, [x29, 56]
3002	bfi	w5, w6, 1, 1
3003	str	w5, [x29, 56]
3004	mov	w6, 1
3005	ldr	w5, [x29, 56]
3006	orr	w5, w5, 8
3007	str	w5, [x29, 56]
3008	ldr	w5, [x29, 56]
3009	bfi	w5, w6, 5, 2
3010	str	w5, [x29, 56]
3011	ldr	w5, [x29, 56]
3012	orr	w5, w5, 536870912
3013	str	w5, [x29, 56]
3014	ldr	w5, [x29, 56]
3015	orr	w5, w5, 1024
3016	str	w5, [x29, 56]
3017	ldr	w5, [x29, 56]
3018	and	w5, w5, -17
3019	str	w5, [x29, 56]
3020	ldr	w5, [x29, 56]
3021	bfi	w5, w0, 22, 6
3022	str	w5, [x29, 56]
3023	cbz	w20, .L520
3024	adrp	x0, .LANCHOR49
3025	ubfx	x1, x1, 1, 7
3026	ldr	x8, [x4, #:lo12:.LANCHOR52]
3027	add	x1, x3, x1, lsl 2
3028	ldrb	w0, [x0, #:lo12:.LANCHOR49]
3029	mov	w5, 64
3030	cmp	w0, 25
3031	mov	w0, 128
3032	csel	w5, w5, w0, cc
3033	mov	w0, 0
3034.L522:
3035	add	w7, w5, w0
3036	cmp	x3, x1
3037	bne	.L523
3038.L524:
3039	add	x19, x4, :lo12:.LANCHOR52
3040	ldr	x0, [x4, #:lo12:.LANCHOR52]
3041	add	x1, x2, 63
3042	and	x1, x1, -64
3043	stp	x2, x0, [x19, 8]
3044	stp	w2, w0, [x19, 24]
3045	ldr	w0, [x29, 56]
3046	ubfx	x0, x0, 22, 6
3047	ubfiz	x0, x0, 10, 6
3048	add	x1, x1, x0
3049	and	x0, x2, -64
3050	bl	flush_dcache_range
3051	ldr	x0, [x19, 16]
3052	ldr	w1, [x29, 56]
3053	add	x2, x0, 63
3054	and	x0, x0, -64
3055	and	x2, x2, -64
3056	ubfx	x1, x1, 22, 6
3057	ubfiz	x1, x1, 7, 6
3058	add	x1, x2, x1
3059	bl	flush_dcache_range
3060	mov	w0, 1
3061	str	w0, [x19, 32]
3062	ldr	x0, [x21, #:lo12:.LANCHOR7]
3063	mov	w2, 16
3064	ldr	w1, [x19, 24]
3065	cmp	w20, 0
3066	str	w1, [x0, 20]
3067	ldr	w1, [x19, 28]
3068	str	w1, [x0, 24]
3069	str	wzr, [x29, 64]
3070	ldr	w1, [x29, 64]
3071	bfi	w1, w2, 9, 5
3072	str	w1, [x29, 64]
3073	mov	w2, 2
3074	ldr	w1, [x29, 64]
3075	orr	w1, w1, 448
3076	str	w1, [x29, 64]
3077	ldr	w1, [x29, 64]
3078	bfi	w1, w2, 3, 3
3079	str	w1, [x29, 64]
3080	cset	w2, eq
3081	ldr	w1, [x29, 64]
3082	orr	w1, w1, 4
3083	str	w1, [x29, 64]
3084	ldr	w1, [x29, 64]
3085	bfi	w1, w2, 1, 1
3086	str	w1, [x29, 64]
3087	ldr	w1, [x29, 64]
3088	orr	w1, w1, 1
3089	str	w1, [x29, 64]
3090	ldr	w1, [x29, 64]
3091	str	w1, [x0, 16]
3092	ldr	w1, [x29, 72]
3093	str	w1, [x0, 12]
3094	ldr	w1, [x29, 56]
3095	str	w1, [x0, 8]
3096	ldr	w1, [x29, 56]
3097	orr	w1, w1, 4
3098	str	w1, [x29, 56]
3099	ldr	w1, [x29, 56]
3100	str	w1, [x0, 8]
3101	b	.L516
3102.L523:
3103	ldrh	w10, [x3]
3104	and	x0, x0, 4294967292
3105	ldrh	w6, [x3, 2]
3106	add	x3, x3, 4
3107	orr	x6, x10, x6, lsl 16
3108	str	w6, [x8, x0]
3109	mov	w0, w7
3110	b	.L522
3111.L520:
3112	ldr	x0, [x4, #:lo12:.LANCHOR52]
3113	str	w6, [x0]
3114	b	.L524
3115	.size	nandc_xfer_start, .-nandc_xfer_start
3116	.section	.text.nandc_set_seed,"ax",@progbits
3117	.align	2
3118	.global	nandc_set_seed
3119	.type	nandc_set_seed, %function
3120nandc_set_seed:
3121	and	x0, x0, 127
3122	adrp	x1, .LANCHOR54
3123	add	x1, x1, :lo12:.LANCHOR54
3124	ldrh	w0, [x1, x0, lsl 1]
3125	adrp	x1, .LANCHOR51
3126	ldrb	w2, [x1, #:lo12:.LANCHOR51]
3127	orr	w1, w0, -1073741824
3128	cmp	w2, 0
3129	csel	w0, w1, w0, ne
3130	adrp	x1, .LANCHOR27
3131	ldrb	w1, [x1, #:lo12:.LANCHOR27]
3132	cmp	w1, 9
3133	adrp	x1, .LANCHOR7
3134	ldr	x1, [x1, #:lo12:.LANCHOR7]
3135	bne	.L535
3136	str	w0, [x1, 520]
3137	ret
3138.L535:
3139	str	w0, [x1, 336]
3140	ret
3141	.size	nandc_set_seed, .-nandc_set_seed
3142	.section	.text.zftl_flash_de_init,"ax",@progbits
3143	.align	2
3144	.global	zftl_flash_de_init
3145	.type	zftl_flash_de_init, %function
3146zftl_flash_de_init:
3147	stp	x29, x30, [sp, -32]!
3148	add	x29, sp, 0
3149	str	x19, [sp, 16]
3150	bl	nandc_wait_flash_ready
3151	adrp	x0, .LANCHOR0
3152	ldrb	w0, [x0, #:lo12:.LANCHOR0]
3153	cbz	w0, .L540
3154	adrp	x0, .LANCHOR24
3155	ldrb	w0, [x0, #:lo12:.LANCHOR24]
3156	cbnz	w0, .L540
3157	adrp	x0, .LANCHOR27
3158	ldrb	w0, [x0, #:lo12:.LANCHOR27]
3159	cmp	w0, 9
3160	beq	.L540
3161	mov	w0, 0
3162	bl	zftl_flash_exit_slc_mode
3163.L540:
3164	adrp	x19, .LANCHOR26
3165	mov	w0, 0
3166	bl	hynix_reconfig_rr_para
3167	ldrb	w0, [x19, #:lo12:.LANCHOR26]
3168	cbz	w0, .L541
3169	adrp	x0, .LANCHOR48
3170	ldrb	w0, [x0, #:lo12:.LANCHOR48]
3171	tbz	x0, 0, .L541
3172	mov	w0, 1
3173	bl	flash_set_interface_mode
3174	mov	w0, 1
3175	bl	nandc_set_if_mode
3176	strb	wzr, [x19, #:lo12:.LANCHOR26]
3177.L541:
3178	adrp	x3, .LANCHOR51
3179	ldrb	w0, [x3, #:lo12:.LANCHOR51]
3180	cbz	w0, .L542
3181	mov	w0, 0
3182	strb	wzr, [x3, #:lo12:.LANCHOR51]
3183	bl	nandc_set_seed
3184	mov	w0, 1
3185	strb	w0, [x3, #:lo12:.LANCHOR51]
3186.L542:
3187	mov	w0, 0
3188	ldr	x19, [sp, 16]
3189	ldp	x29, x30, [sp], 32
3190	ret
3191	.size	zftl_flash_de_init, .-zftl_flash_de_init
3192	.section	.text.nandc_randomizer_enable,"ax",@progbits
3193	.align	2
3194	.global	nandc_randomizer_enable
3195	.type	nandc_randomizer_enable, %function
3196nandc_randomizer_enable:
3197	adrp	x1, .LANCHOR51
3198	strb	w0, [x1, #:lo12:.LANCHOR51]
3199	ret
3200	.size	nandc_randomizer_enable, .-nandc_randomizer_enable
3201	.section	.text.nandc_get_chip_if,"ax",@progbits
3202	.align	2
3203	.global	nandc_get_chip_if
3204	.type	nandc_get_chip_if, %function
3205nandc_get_chip_if:
3206	adrp	x1, .LANCHOR7
3207	ubfiz	x0, x0, 8, 8
3208	add	x0, x0, 2048
3209	ldr	x1, [x1, #:lo12:.LANCHOR7]
3210	add	x0, x1, x0
3211	ret
3212	.size	nandc_get_chip_if, .-nandc_get_chip_if
3213	.section	.text.buf_reinit,"ax",@progbits
3214	.align	2
3215	.global	buf_reinit
3216	.type	buf_reinit, %function
3217buf_reinit:
3218	adrp	x0, .LANCHOR55
3219	add	x1, x0, :lo12:.LANCHOR55
3220	mov	w2, 0
3221.L562:
3222	and	w3, w2, 255
3223	strb	wzr, [x1, 2]
3224	add	w4, w3, 1
3225	strb	w3, [x1, 1]
3226	strb	w4, [x1]
3227	add	w2, w2, 1
3228	str	xzr, [x1, 16]
3229	cmp	w2, 16
3230	add	x1, x1, 64
3231	bne	.L562
3232	add	x0, x0, :lo12:.LANCHOR55
3233	mov	w1, -1
3234	strb	w1, [x0, 960]
3235	adrp	x0, .LANCHOR56
3236	strb	wzr, [x0, #:lo12:.LANCHOR56]
3237	adrp	x0, .LANCHOR57
3238	strb	w2, [x0, #:lo12:.LANCHOR57]
3239	ret
3240	.size	buf_reinit, .-buf_reinit
3241	.section	.text.buf_add_tail,"ax",@progbits
3242	.align	2
3243	.global	buf_add_tail
3244	.type	buf_add_tail, %function
3245buf_add_tail:
3246	stp	x29, x30, [sp, -48]!
3247	add	x29, sp, 0
3248	stp	x19, x20, [sp, 16]
3249	mov	x19, x0
3250	str	x21, [sp, 32]
3251	mov	w0, -1
3252	strb	w0, [x1]
3253	mov	x20, x1
3254	ldrb	w1, [x19]
3255	cmp	w1, 255
3256	bne	.L570
3257	ldrb	w0, [x20, 1]
3258	cmp	w0, 255
3259	bne	.L566
3260	adrp	x1, .LANCHOR58
3261	adrp	x0, .LC0
3262	mov	w2, 74
3263	add	x1, x1, :lo12:.LANCHOR58
3264	add	x0, x0, :lo12:.LC0
3265	bl	printf
3266.L566:
3267	ldrb	w0, [x20, 1]
3268	strb	w0, [x19]
3269.L564:
3270	ldp	x19, x20, [sp, 16]
3271	ldr	x21, [sp, 32]
3272	ldp	x29, x30, [sp], 48
3273	ret
3274.L570:
3275	adrp	x0, .LANCHOR55
3276	add	x2, x0, :lo12:.LANCHOR55
3277	mov	x19, x0
3278.L571:
3279	sbfiz	x0, x1, 6, 32
3280	mov	w21, w1
3281	ldrb	w1, [x2, x0]
3282	cmp	w1, 255
3283	bne	.L571
3284	ldrb	w0, [x20, 1]
3285	cmp	w0, 255
3286	bne	.L568
3287	adrp	x1, .LANCHOR58
3288	adrp	x0, .LC0
3289	mov	w2, 81
3290	add	x1, x1, :lo12:.LANCHOR58
3291	add	x0, x0, :lo12:.LC0
3292	bl	printf
3293.L568:
3294	add	x0, x19, :lo12:.LANCHOR55
3295	sbfiz	x21, x21, 6, 32
3296	ldrb	w1, [x20, 1]
3297	strb	w1, [x0, x21]
3298	b	.L564
3299	.size	buf_add_tail, .-buf_add_tail
3300	.section	.text.queue_read_cmd,"ax",@progbits
3301	.align	2
3302	.type	queue_read_cmd, %function
3303queue_read_cmd:
3304	stp	x29, x30, [sp, -32]!
3305	add	x29, sp, 0
3306	str	x19, [sp, 16]
3307	mov	x19, x0
3308	mov	w0, 48
3309	ldr	w1, [x19, 40]
3310	bl	flash_start_page_read
3311	strb	wzr, [x19, 59]
3312	mov	w0, 1
3313	strb	w0, [x19, 58]
3314	mov	w0, -1
3315	strb	w0, [x19]
3316	mov	x1, x19
3317	adrp	x0, .LANCHOR59
3318	ldr	x19, [sp, 16]
3319	add	x0, x0, :lo12:.LANCHOR59
3320	ldp	x29, x30, [sp], 32
3321	b	buf_add_tail
3322	.size	queue_read_cmd, .-queue_read_cmd
3323	.section	.text.zbuf_free,"ax",@progbits
3324	.align	2
3325	.global	zbuf_free
3326	.type	zbuf_free, %function
3327zbuf_free:
3328	ldrb	w1, [x0, 2]
3329	adrp	x2, .LANCHOR56
3330	and	w1, w1, 8
3331	strb	w1, [x0, 2]
3332	cbz	w1, .L576
3333	ldr	w1, [x0, 36]
3334	cmn	w1, #1
3335	beq	.L576
3336	stp	x29, x30, [sp, -16]!
3337	mov	x1, x0
3338	add	x0, x2, :lo12:.LANCHOR56
3339	add	x29, sp, 0
3340	bl	buf_add_tail
3341	adrp	x1, .LANCHOR57
3342	ldp	x29, x30, [sp], 16
3343	ldrb	w0, [x1, #:lo12:.LANCHOR57]
3344	add	w0, w0, 1
3345	strb	w0, [x1, #:lo12:.LANCHOR57]
3346	ret
3347.L576:
3348	ldrb	w1, [x2, #:lo12:.LANCHOR56]
3349	strb	w1, [x0]
3350	adrp	x1, .LANCHOR57
3351	ldrb	w0, [x0, 1]
3352	strb	w0, [x2, #:lo12:.LANCHOR56]
3353	ldrb	w0, [x1, #:lo12:.LANCHOR57]
3354	add	w0, w0, 1
3355	strb	w0, [x1, #:lo12:.LANCHOR57]
3356	ret
3357	.size	zbuf_free, .-zbuf_free
3358	.section	.text.buf_alloc,"ax",@progbits
3359	.align	2
3360	.global	buf_alloc
3361	.type	buf_alloc, %function
3362buf_alloc:
3363	stp	x29, x30, [sp, -32]!
3364	add	x29, sp, 0
3365	stp	x19, x20, [sp, 16]
3366	adrp	x19, .LANCHOR57
3367	and	w20, w0, 255
3368	ldrb	w0, [x19, #:lo12:.LANCHOR57]
3369	cbz	w0, .L589
3370.L592:
3371	adrp	x2, .LANCHOR56
3372	adrp	x1, .LANCHOR55
3373	add	x0, x1, :lo12:.LANCHOR55
3374	ldrb	w3, [x2, #:lo12:.LANCHOR56]
3375	ubfiz	x4, x3, 6, 8
3376	add	x0, x0, x4
3377	mov	x4, x2
3378	cbz	w20, .L590
3379.L591:
3380	add	x1, x1, :lo12:.LANCHOR55
3381	sbfiz	x3, x3, 6, 32
3382	add	x2, x1, x3
3383	ldrb	w5, [x1, x3]
3384	strb	w5, [x4, #:lo12:.LANCHOR56]
3385	ldrb	w4, [x19, #:lo12:.LANCHOR57]
3386	strh	wzr, [x2, 50]
3387	sub	w4, w4, #1
3388	strb	w4, [x19, #:lo12:.LANCHOR57]
3389	mov	w4, 1
3390	strb	wzr, [x2, 56]
3391	strb	w4, [x2, 2]
3392	mov	w4, -1
3393	strb	wzr, [x2, 57]
3394	strb	w4, [x1, x3]
3395	mov	w1, -1
3396	str	xzr, [x2, 16]
3397	str	w1, [x2, 36]
3398	b	.L588
3399.L589:
3400	mov	w2, 121
3401	adrp	x1, .LANCHOR60
3402	adrp	x0, .LC0
3403	add	x1, x1, :lo12:.LANCHOR60
3404	add	x0, x0, :lo12:.LC0
3405	bl	printf
3406	ldrb	w0, [x19, #:lo12:.LANCHOR57]
3407	cbnz	w0, .L592
3408.L594:
3409	mov	x0, 0
3410.L588:
3411	ldp	x19, x20, [sp, 16]
3412	ldp	x29, x30, [sp], 32
3413	ret
3414.L590:
3415	ldrb	w2, [x19, #:lo12:.LANCHOR57]
3416	cmp	w2, 1
3417	bne	.L591
3418	b	.L594
3419	.size	buf_alloc, .-buf_alloc
3420	.section	.text.buf_remove_buf,"ax",@progbits
3421	.align	2
3422	.global	buf_remove_buf
3423	.type	buf_remove_buf, %function
3424buf_remove_buf:
3425	ldrb	w4, [x1, 1]
3426	ldrb	w2, [x0]
3427	cmp	w4, w2
3428	bne	.L602
3429	ldrb	w1, [x1]
3430	strb	w1, [x0]
3431.L606:
3432	mov	w0, 1
3433	ret
3434.L603:
3435	mov	w3, w2
3436	sbfiz	x2, x2, 6, 32
3437	ldrb	w2, [x0, x2]
3438	cmp	w4, w2
3439	bne	.L604
3440	sbfiz	x3, x3, 6, 32
3441	ldrb	w2, [x1]
3442	strb	w2, [x0, x3]
3443	mov	w0, -1
3444	strb	w0, [x1]
3445	b	.L606
3446.L602:
3447	adrp	x0, .LANCHOR55
3448	add	x0, x0, :lo12:.LANCHOR55
3449.L604:
3450	cmp	w2, 255
3451	bne	.L603
3452	mov	w0, 0
3453	ret
3454	.size	buf_remove_buf, .-buf_remove_buf
3455	.section	.text.buf_remove_free,"ax",@progbits
3456	.align	2
3457	.global	buf_remove_free
3458	.type	buf_remove_free, %function
3459buf_remove_free:
3460	stp	x29, x30, [sp, -32]!
3461	add	x29, sp, 0
3462	stp	x19, x20, [sp, 16]
3463	adrp	x19, .LANCHOR57
3464	mov	x20, x0
3465	ldrb	w0, [x19, #:lo12:.LANCHOR57]
3466	cbnz	w0, .L608
3467	adrp	x1, .LANCHOR61
3468	adrp	x0, .LC0
3469	mov	w2, 172
3470	add	x1, x1, :lo12:.LANCHOR61
3471	add	x0, x0, :lo12:.LC0
3472	bl	printf
3473.L608:
3474	ldrb	w0, [x19, #:lo12:.LANCHOR57]
3475	cbz	w0, .L607
3476	mov	x1, x20
3477	adrp	x0, .LANCHOR56
3478	add	x0, x0, :lo12:.LANCHOR56
3479	bl	buf_remove_buf
3480	cmp	w0, 1
3481	bne	.L607
3482	ldrb	w0, [x19, #:lo12:.LANCHOR57]
3483	sub	w0, w0, #1
3484	strb	w0, [x19, #:lo12:.LANCHOR57]
3485	ldrb	w0, [x20, 2]
3486	orr	w0, w0, 1
3487	strb	w0, [x20, 2]
3488.L607:
3489	ldp	x19, x20, [sp, 16]
3490	ldp	x29, x30, [sp], 32
3491	ret
3492	.size	buf_remove_free, .-buf_remove_free
3493	.section	.text.dump_buf_info,"ax",@progbits
3494	.align	2
3495	.global	dump_buf_info
3496	.type	dump_buf_info, %function
3497dump_buf_info:
3498	sub	sp, sp, #64
3499	adrp	x0, .LANCHOR59
3500	stp	x29, x30, [sp, 16]
3501	add	x29, sp, 16
3502	ldrb	w1, [x0, #:lo12:.LANCHOR59]
3503	stp	x19, x20, [sp, 32]
3504	adrp	x0, .LC41
3505	str	x21, [sp, 48]
3506	add	x0, x0, :lo12:.LC41
3507	adrp	x19, .LANCHOR55
3508	add	x19, x19, :lo12:.LANCHOR55
3509	bl	printf
3510	adrp	x20, .LC47
3511	adrp	x0, .LANCHOR62
3512	add	x20, x20, :lo12:.LC47
3513	add	x21, x19, 1024
3514	ldrb	w1, [x0, #:lo12:.LANCHOR62]
3515	adrp	x0, .LC42
3516	add	x0, x0, :lo12:.LC42
3517	bl	printf
3518	adrp	x0, .LANCHOR63
3519	ldrb	w1, [x0, #:lo12:.LANCHOR63]
3520	adrp	x0, .LC43
3521	add	x0, x0, :lo12:.LC43
3522	bl	printf
3523	adrp	x0, .LANCHOR64
3524	ldrb	w1, [x0, #:lo12:.LANCHOR64]
3525	adrp	x0, .LC44
3526	add	x0, x0, :lo12:.LC44
3527	bl	printf
3528	adrp	x0, .LANCHOR56
3529	ldrb	w1, [x0, #:lo12:.LANCHOR56]
3530	adrp	x0, .LC45
3531	add	x0, x0, :lo12:.LC45
3532	bl	printf
3533	adrp	x0, .LANCHOR57
3534	ldrb	w1, [x0, #:lo12:.LANCHOR57]
3535	adrp	x0, .LC46
3536	add	x0, x0, :lo12:.LC46
3537	bl	printf
3538.L614:
3539	ldp	w7, w0, [x19, 36]
3540	str	w0, [sp]
3541	ldrb	w5, [x19, 58]
3542	mov	x0, x20
3543	ldrh	w4, [x19, 50]
3544	add	x19, x19, 64
3545	ldrb	w3, [x19, -62]
3546	ldrb	w2, [x19, -64]
3547	ldrb	w1, [x19, -63]
3548	ldr	w6, [x19, -12]
3549	bl	printf
3550	cmp	x19, x21
3551	bne	.L614
3552	ldp	x19, x20, [sp, 32]
3553	ldp	x29, x30, [sp, 16]
3554	ldr	x21, [sp, 48]
3555	add	sp, sp, 64
3556	ret
3557	.size	dump_buf_info, .-dump_buf_info
3558	.section	.text.flash_check_bad_block,"ax",@progbits
3559	.align	2
3560	.global	flash_check_bad_block
3561	.type	flash_check_bad_block, %function
3562flash_check_bad_block:
3563	adrp	x3, .LANCHOR32
3564	add	x3, x3, :lo12:.LANCHOR32
3565	and	w5, w0, 255
3566	lsr	w4, w1, 5
3567	ldrb	w0, [x3, 13]
3568	ldrh	w2, [x3, 14]
3569	mul	w2, w2, w0
3570	mov	x0, 912
3571	and	w2, w2, 65535
3572	add	w2, w2, 31
3573	asr	w2, w2, 5
3574	lsl	w2, w2, 2
3575	umaddl	x0, w2, w5, x0
3576	adrp	x2, .LANCHOR6
3577	ldr	x2, [x2, #:lo12:.LANCHOR6]
3578	add	x0, x0, x4, uxtw 2
3579	ldr	w0, [x2, x0]
3580	lsr	w0, w0, w1
3581	and	w0, w0, 1
3582	ret
3583	.size	flash_check_bad_block, .-flash_check_bad_block
3584	.section	.text.flash_mask_bad_block,"ax",@progbits
3585	.align	2
3586	.global	flash_mask_bad_block
3587	.type	flash_mask_bad_block, %function
3588flash_mask_bad_block:
3589	stp	x29, x30, [sp, -48]!
3590	mov	w2, w1
3591	add	x29, sp, 0
3592	str	x21, [sp, 32]
3593	and	w21, w0, 255
3594	adrp	x0, .LANCHOR32
3595	add	x0, x0, :lo12:.LANCHOR32
3596	stp	x19, x20, [sp, 16]
3597	mov	w20, w1
3598	ldrh	w19, [x0, 14]
3599	ldrb	w1, [x0, 13]
3600	adrp	x0, .LC48
3601	add	x0, x0, :lo12:.LC48
3602	mul	w19, w19, w1
3603	mov	w1, w21
3604	bl	printf
3605	and	w19, w19, 65535
3606	lsr	w0, w20, 5
3607	add	w1, w19, 31
3608	mov	x19, 912
3609	asr	w1, w1, 5
3610	mov	w2, 1
3611	lsl	w1, w1, 2
3612	umaddl	x1, w1, w21, x19
3613	ldr	x21, [sp, 32]
3614	add	x1, x1, x0, uxtw 2
3615	adrp	x0, .LANCHOR6
3616	ldr	x3, [x0, #:lo12:.LANCHOR6]
3617	lsl	w0, w2, w20
3618	ldp	x19, x20, [sp, 16]
3619	ldr	w2, [x3, x1]
3620	orr	w2, w2, w0
3621	str	w2, [x3, x1]
3622	ldp	x29, x30, [sp], 48
3623	ret
3624	.size	flash_mask_bad_block, .-flash_mask_bad_block
3625	.section	.text.ftl_gc_write_buf,"ax",@progbits
3626	.align	2
3627	.global	ftl_gc_write_buf
3628	.type	ftl_gc_write_buf, %function
3629ftl_gc_write_buf:
3630	stp	x29, x30, [sp, -16]!
3631	add	x29, sp, 0
3632	ldrb	w1, [x0, 2]
3633	orr	w1, w1, 2
3634	strb	w1, [x0, 2]
3635	mov	x1, x0
3636	adrp	x0, .LANCHOR65
3637	add	x0, x0, :lo12:.LANCHOR65
3638	bl	buf_add_tail
3639	adrp	x1, .LANCHOR66
3640	ldp	x29, x30, [sp], 16
3641	ldrb	w0, [x1, #:lo12:.LANCHOR66]
3642	add	w0, w0, 1
3643	and	w0, w0, 255
3644	strb	w0, [x1, #:lo12:.LANCHOR66]
3645	ret
3646	.size	ftl_gc_write_buf, .-ftl_gc_write_buf
3647	.section	.text.ftl_write_buf,"ax",@progbits
3648	.align	2
3649	.global	ftl_write_buf
3650	.type	ftl_write_buf, %function
3651ftl_write_buf:
3652	stp	x29, x30, [sp, -48]!
3653	add	x29, sp, 0
3654	stp	x19, x20, [sp, 16]
3655	str	x21, [sp, 32]
3656	cbnz	x0, .L623
3657	mov	w2, 806
3658	adrp	x1, .LANCHOR67
3659	adrp	x0, .LC0
3660	add	x1, x1, :lo12:.LANCHOR67
3661	add	x0, x0, :lo12:.LC0
3662	bl	printf
3663	mov	w0, -1
3664.L622:
3665	ldp	x19, x20, [sp, 16]
3666	ldr	x21, [sp, 32]
3667	ldp	x29, x30, [sp], 48
3668	ret
3669.L626:
3670	mov	x1, x19
3671	adrp	x0, .LANCHOR65
3672	add	x0, x0, :lo12:.LANCHOR65
3673	bl	buf_add_tail
3674	adrp	x1, .LANCHOR69
3675	ldrb	w3, [x19, 56]
3676	ldrb	w0, [x21, #:lo12:.LANCHOR66]
3677	ldr	x1, [x1, #:lo12:.LANCHOR69]
3678	add	w0, w0, 1
3679	and	w0, w0, 255
3680	strb	w0, [x21, #:lo12:.LANCHOR66]
3681	ldr	w2, [x1, 16]
3682	add	w2, w2, w3
3683	str	w2, [x1, 16]
3684	ldr	w2, [x1, 32]
3685	add	w2, w2, 1
3686	str	w2, [x1, 32]
3687	b	.L622
3688.L623:
3689	mov	x19, x0
3690	adrp	x0, .LANCHOR68
3691	mov	x20, x0
3692	ldrb	w1, [x0, #:lo12:.LANCHOR68]
3693	ldrb	w2, [x19, 56]
3694	cmp	w2, w1
3695	bls	.L628
3696	adrp	x1, .LANCHOR67
3697	adrp	x0, .LC0
3698	mov	w2, 813
3699	add	x1, x1, :lo12:.LANCHOR67
3700	add	x0, x0, :lo12:.LC0
3701	bl	printf
3702.L628:
3703	ldrb	w0, [x19, 56]
3704	adrp	x21, .LANCHOR66
3705	cbz	w0, .L625
3706	ldrb	w1, [x20, #:lo12:.LANCHOR68]
3707	cmp	w1, w0
3708	bcs	.L626
3709.L625:
3710	mov	x0, x19
3711	bl	zbuf_free
3712	ldrb	w0, [x21, #:lo12:.LANCHOR66]
3713	b	.L622
3714	.size	ftl_write_buf, .-ftl_write_buf
3715	.section	.text.zftl_cache_flush,"ax",@progbits
3716	.align	2
3717	.global	zftl_cache_flush
3718	.type	zftl_cache_flush, %function
3719zftl_cache_flush:
3720	ret
3721	.size	zftl_cache_flush, .-zftl_cache_flush
3722	.section	.text.zftl_add_read_buf,"ax",@progbits
3723	.align	2
3724	.global	zftl_add_read_buf
3725	.type	zftl_add_read_buf, %function
3726zftl_add_read_buf:
3727	cbnz	x0, .L635
3728	adrp	x1, .LANCHOR70
3729	adrp	x0, .LC0
3730	mov	w2, 1147
3731	add	x1, x1, :lo12:.LANCHOR70
3732	add	x0, x0, :lo12:.LC0
3733	b	printf
3734.L635:
3735	stp	x29, x30, [sp, -32]!
3736	add	x29, sp, 0
3737	str	x19, [sp, 16]
3738	mov	x19, x0
3739	ldrb	w1, [x0, 56]
3740	adrp	x0, .LANCHOR68
3741	ldrb	w0, [x0, #:lo12:.LANCHOR68]
3742	cmp	w1, w0
3743	bls	.L637
3744	adrp	x1, .LANCHOR70
3745	adrp	x0, .LC0
3746	mov	w2, 1154
3747	add	x1, x1, :lo12:.LANCHOR70
3748	add	x0, x0, :lo12:.LC0
3749	bl	printf
3750.L637:
3751	mov	x1, x19
3752	adrp	x0, .LANCHOR71
3753	add	x0, x0, :lo12:.LANCHOR71
3754	bl	buf_add_tail
3755	adrp	x1, .LANCHOR72
3756	ldr	x19, [sp, 16]
3757	ldp	x29, x30, [sp], 32
3758	ldrb	w0, [x1, #:lo12:.LANCHOR72]
3759	add	w0, w0, 1
3760	strb	w0, [x1, #:lo12:.LANCHOR72]
3761	ret
3762	.size	zftl_add_read_buf, .-zftl_add_read_buf
3763	.section	.text.zftl_get_density,"ax",@progbits
3764	.align	2
3765	.global	zftl_get_density
3766	.type	zftl_get_density, %function
3767zftl_get_density:
3768	cbnz	w0, .L642
3769	adrp	x0, .LANCHOR73
3770	ldr	w0, [x0, #:lo12:.LANCHOR73]
3771	ret
3772.L642:
3773	cmp	w0, 4
3774	cset	w0, cc
3775	lsl	w0, w0, 13
3776	ret
3777	.size	zftl_get_density, .-zftl_get_density
3778	.section	.text.gc_hook,"ax",@progbits
3779	.align	2
3780	.global	gc_hook
3781	.type	gc_hook, %function
3782gc_hook:
3783	ret
3784	.size	gc_hook, .-gc_hook
3785	.section	.text.vpn_check,"ax",@progbits
3786	.align	2
3787	.global	vpn_check
3788	.type	vpn_check, %function
3789vpn_check:
3790	ret
3791	.size	vpn_check, .-vpn_check
3792	.section	.text.ftl_scan_all_data,"ax",@progbits
3793	.align	2
3794	.global	ftl_scan_all_data
3795	.type	ftl_scan_all_data, %function
3796ftl_scan_all_data:
3797	ret
3798	.size	ftl_scan_all_data, .-ftl_scan_all_data
3799	.section	.text.FtlGetCurEraseBlock,"ax",@progbits
3800	.align	2
3801	.global	FtlGetCurEraseBlock
3802	.type	FtlGetCurEraseBlock, %function
3803FtlGetCurEraseBlock:
3804	adrp	x0, .LANCHOR74
3805	ldrh	w0, [x0, #:lo12:.LANCHOR74]
3806	ret
3807	.size	FtlGetCurEraseBlock, .-FtlGetCurEraseBlock
3808	.section	.text.FtlGetAllBlockNum,"ax",@progbits
3809	.align	2
3810	.global	FtlGetAllBlockNum
3811	.type	FtlGetAllBlockNum, %function
3812FtlGetAllBlockNum:
3813	adrp	x0, .LANCHOR8
3814	ldrh	w0, [x0, #:lo12:.LANCHOR8]
3815	ret
3816	.size	FtlGetAllBlockNum, .-FtlGetAllBlockNum
3817	.section	.text.FtlLowFormat,"ax",@progbits
3818	.align	2
3819	.global	FtlLowFormat
3820	.type	FtlLowFormat, %function
3821FtlLowFormat:
3822	mov	w0, 0
3823	ret
3824	.size	FtlLowFormat, .-FtlLowFormat
3825	.section	.text.gc_add_sblk,"ax",@progbits
3826	.align	2
3827	.global	gc_add_sblk
3828	.type	gc_add_sblk, %function
3829gc_add_sblk:
3830	stp	x29, x30, [sp, -64]!
3831	add	x29, sp, 0
3832	stp	x21, x22, [sp, 32]
3833	adrp	x21, .LANCHOR19
3834	stp	x19, x20, [sp, 16]
3835	and	w19, w0, 65535
3836	ldr	w0, [x21, #:lo12:.LANCHOR19]
3837	and	w22, w1, 65535
3838	stp	x23, x24, [sp, 48]
3839	and	w23, w2, 65535
3840	tbz	x0, 8, .L652
3841	adrp	x1, .LANCHOR11
3842	uxtw	x0, w19
3843	mov	w3, w23
3844	ldr	x2, [x1, #:lo12:.LANCHOR11]
3845	adrp	x1, .LANCHOR9
3846	ldr	x1, [x1, #:lo12:.LANCHOR9]
3847	ldrh	w5, [x2, x0, lsl 1]
3848	mov	w2, w22
3849	add	x1, x1, x0, lsl 2
3850	adrp	x0, .LC49
3851	add	x0, x0, :lo12:.LC49
3852	ldrb	w4, [x1, 2]
3853	adrp	x1, .LANCHOR75
3854	ldrh	w7, [x1, #:lo12:.LANCHOR75]
3855	adrp	x1, .LANCHOR76+56
3856	ubfx	x4, x4, 5, 3
3857	ldrh	w6, [x1, #:lo12:.LANCHOR76+56]
3858	mov	w1, w19
3859	bl	printf
3860.L652:
3861	adrp	x0, .LANCHOR8
3862	mov	x20, x0
3863	ldrh	w1, [x0, #:lo12:.LANCHOR8]
3864	cmp	w1, w19
3865	bhi	.L653
3866	adrp	x1, .LANCHOR77
3867	adrp	x0, .LC0
3868	mov	w2, 543
3869	add	x1, x1, :lo12:.LANCHOR77
3870	add	x0, x0, :lo12:.LC0
3871	bl	printf
3872.L653:
3873	ldrh	w0, [x20, #:lo12:.LANCHOR8]
3874	cmp	w0, w19
3875	bhi	.L654
3876	ldr	w0, [x21, #:lo12:.LANCHOR19]
3877	tbz	x0, 10, .L676
3878	adrp	x0, .LC50
3879	mov	w3, w23
3880	mov	w2, w22
3881	mov	w1, w19
3882	add	x0, x0, :lo12:.LC50
3883	bl	printf
3884.L676:
3885	mov	w0, 0
3886	b	.L651
3887.L654:
3888	adrp	x1, .LANCHOR11
3889	uxtw	x0, w19
3890	ldr	x1, [x1, #:lo12:.LANCHOR11]
3891	ldrh	w3, [x1, x0, lsl 1]
3892	adrp	x1, .LANCHOR9
3893	ldr	x1, [x1, #:lo12:.LANCHOR9]
3894	add	x0, x1, x0, lsl 2
3895	ldrb	w2, [x0, 2]
3896	tst	w2, 224
3897	bne	.L656
3898	cbz	w3, .L676
3899	mov	w2, 553
3900	adrp	x1, .LANCHOR77
3901	adrp	x0, .LC0
3902	add	x1, x1, :lo12:.LANCHOR77
3903	add	x0, x0, :lo12:.LC0
3904	bl	printf
3905	b	.L676
3906.L656:
3907	adrp	x0, .LANCHOR76
3908	add	x1, x0, :lo12:.LANCHOR76
3909	ldrh	w0, [x0, #:lo12:.LANCHOR76]
3910	cmp	w0, w19
3911	beq	.L676
3912	adrp	x24, .LANCHOR12
3913	ldr	x0, [x24, #:lo12:.LANCHOR12]
3914	ldrh	w4, [x0, 48]
3915	cmp	w4, w19
3916	beq	.L676
3917	ldrh	w4, [x0, 16]
3918	cmp	w4, w19
3919	beq	.L676
3920	ldrh	w4, [x0, 80]
3921	cmp	w4, w19
3922	beq	.L676
3923	ldrh	w5, [x1, 56]
3924	add	x1, x1, 58
3925	mov	w4, 0
3926.L657:
3927	cmp	w4, w5
3928	bcc	.L658
3929	cbnz	w22, .L662
3930	adrp	x1, .LANCHOR78
3931	ldrh	w6, [x1, #:lo12:.LANCHOR78]
3932	cmp	w19, w6
3933	beq	.L676
3934	adrp	x4, .LANCHOR79
3935	add	x4, x4, :lo12:.LANCHOR79
3936	mov	x1, 0
3937.L661:
3938	ldrh	w7, [x1, x4]
3939	cmp	w19, w7
3940	bne	.L660
3941	ldr	w0, [x21, #:lo12:.LANCHOR19]
3942	tbz	x0, 8, .L676
3943	mov	w5, w6
3944	mov	w4, w19
3945	ubfx	x2, x2, 5, 3
3946	mov	w1, w19
3947	adrp	x0, .LC51
3948	add	x0, x0, :lo12:.LC51
3949	bl	printf
3950	b	.L676
3951.L658:
3952	ldrh	w6, [x1], 2
3953	cmp	w6, w19
3954	beq	.L676
3955	add	w4, w4, 1
3956	b	.L657
3957.L660:
3958	add	x1, x1, 2
3959	cmp	x1, 16
3960	bne	.L661
3961	ubfiz	x20, x23, 7, 16
3962	add	x20, x20, 136
3963	add	x20, x0, x20
3964.L663:
3965	ldr	w0, [x21, #:lo12:.LANCHOR19]
3966	tbz	x0, 8, .L664
3967	adrp	x0, .LANCHOR75
3968	mov	w4, w3
3969	mov	w1, w19
3970	ubfx	x3, x2, 5, 3
3971	ldrh	w6, [x0, #:lo12:.LANCHOR75]
3972	mov	w2, w22
3973	adrp	x0, .LC52
3974	add	x0, x0, :lo12:.LC52
3975	bl	printf
3976.L664:
3977	mov	x0, x20
3978	add	x1, x20, 128
3979	mov	w2, 65535
3980.L667:
3981	ldrh	w3, [x0]
3982	cmp	w3, w2
3983	bne	.L665
3984	strh	w19, [x0]
3985	cbz	w22, .L666
3986	ldr	x1, [x24, #:lo12:.LANCHOR12]
3987	ldrh	w0, [x1, 124]
3988	add	w0, w0, 1
3989	strh	w0, [x1, 124]
3990.L686:
3991	mov	w0, 1
3992.L651:
3993	ldp	x19, x20, [sp, 16]
3994	ldp	x21, x22, [sp, 32]
3995	ldp	x23, x24, [sp, 48]
3996	ldp	x29, x30, [sp], 64
3997	ret
3998.L662:
3999	add	x20, x0, 392
4000	b	.L663
4001.L666:
4002	ldr	x0, [x24, #:lo12:.LANCHOR12]
4003	add	x23, x0, x23, uxth 1
4004	ldrh	w0, [x23, 120]
4005	add	w0, w0, 1
4006	strh	w0, [x23, 120]
4007	b	.L686
4008.L665:
4009	add	x0, x0, 2
4010	cmp	x1, x0
4011	bne	.L667
4012	b	.L686
4013	.size	gc_add_sblk, .-gc_add_sblk
4014	.section	.text.gc_mark_bad_ppa,"ax",@progbits
4015	.align	2
4016	.global	gc_mark_bad_ppa
4017	.type	gc_mark_bad_ppa, %function
4018gc_mark_bad_ppa:
4019	stp	x29, x30, [sp, -64]!
4020	adrp	x1, .LANCHOR80
4021	adrp	x3, .LANCHOR31
4022	add	x29, sp, 0
4023	ldrh	w1, [x1, #:lo12:.LANCHOR80]
4024	ldrb	w3, [x3, #:lo12:.LANCHOR31]
4025	stp	x19, x20, [sp, 16]
4026	mov	w19, 24
4027	sub	w19, w19, w3
4028	lsr	w2, w0, w1
4029	sub	w19, w19, w1
4030	adrp	x1, .LANCHOR81
4031	str	x23, [sp, 48]
4032	mov	w23, 1
4033	ldrb	w1, [x1, #:lo12:.LANCHOR81]
4034	lsl	w19, w23, w19
4035	sub	w19, w19, #1
4036	stp	x21, x22, [sp, 32]
4037	and	w19, w19, w2
4038	adrp	x20, .LANCHOR76
4039	add	x21, x20, :lo12:.LANCHOR76
4040	mov	w3, w0
4041	and	w22, w2, 65535
4042	adrp	x0, .LC53
4043	udiv	w19, w19, w1
4044	mov	w2, w22
4045	ldr	w1, [x21, 2200]
4046	add	x0, x0, :lo12:.LC53
4047	and	w19, w19, 65535
4048	bl	printf
4049	mov	w1, w23
4050	mov	w2, 0
4051	mov	w0, w19
4052	bl	gc_add_sblk
4053	ldr	w0, [x21, 2200]
4054	mov	w1, 0
4055.L688:
4056	cmp	w1, w0
4057	bcc	.L690
4058	cmp	w0, 5
4059	bhi	.L689
4060	add	x20, x20, :lo12:.LANCHOR76
4061	add	w1, w0, 1
4062	str	w1, [x20, 2200]
4063	add	x20, x20, x0, uxtw 1
4064	strh	w22, [x20, 2204]
4065.L689:
4066	mov	w0, 0
4067	ldr	x23, [sp, 48]
4068	ldp	x19, x20, [sp, 16]
4069	ldp	x21, x22, [sp, 32]
4070	ldp	x29, x30, [sp], 64
4071	ret
4072.L690:
4073	add	x2, x21, x1, sxtw 1
4074	ldrh	w2, [x2, 2204]
4075	cmp	w2, w22
4076	beq	.L689
4077	add	w1, w1, 1
4078	and	w1, w1, 65535
4079	b	.L688
4080	.size	gc_mark_bad_ppa, .-gc_mark_bad_ppa
4081	.section	.text.gc_get_src_ppa_from_index,"ax",@progbits
4082	.align	2
4083	.global	gc_get_src_ppa_from_index
4084	.type	gc_get_src_ppa_from_index, %function
4085gc_get_src_ppa_from_index:
4086	adrp	x1, .LANCHOR82
4087	ubfiz	x0, x0, 2, 16
4088	ldr	x1, [x1, #:lo12:.LANCHOR82]
4089	ldr	w0, [x1, x0]
4090	ret
4091	.size	gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index
4092	.section	.text.gc_write_completed,"ax",@progbits
4093	.align	2
4094	.global	gc_write_completed
4095	.type	gc_write_completed, %function
4096gc_write_completed:
4097	stp	x29, x30, [sp, -96]!
4098	add	x29, sp, 0
4099	stp	x21, x22, [sp, 32]
4100	adrp	x22, .LANCHOR63
4101	stp	x23, x24, [sp, 48]
4102	add	x22, x22, :lo12:.LANCHOR63
4103	stp	x25, x26, [sp, 64]
4104	adrp	x23, .LANCHOR55
4105	add	x25, x23, :lo12:.LANCHOR55
4106	stp	x19, x20, [sp, 16]
4107	str	x27, [sp, 80]
4108.L694:
4109	ldrb	w0, [x22]
4110	cmp	w0, 255
4111	bne	.L707
4112	ldp	x19, x20, [sp, 16]
4113	ldp	x21, x22, [sp, 32]
4114	ldp	x23, x24, [sp, 48]
4115	ldp	x25, x26, [sp, 64]
4116	ldr	x27, [sp, 80]
4117	ldp	x29, x30, [sp], 96
4118	ret
4119.L707:
4120	sxtw	x20, w0
4121	add	x1, x23, :lo12:.LANCHOR55
4122	lsl	x3, x20, 6
4123	add	x2, x1, x3
4124	ldrb	w0, [x1, x3]
4125	ldr	w1, [x2, 52]
4126	strb	w0, [x22]
4127	ldrh	w24, [x2, 48]
4128	cbz	w1, .L695
4129	ldr	w2, [x2, 40]
4130	adrp	x0, .LANCHOR76
4131	add	x0, x0, :lo12:.LANCHOR76
4132	mov	w3, 1
4133	str	w2, [x0, 2196]
4134	strh	w3, [x0, 2194]
4135	adrp	x0, .LC54
4136	add	x0, x0, :lo12:.LC54
4137	bl	printf
4138	adrp	x1, .LANCHOR83
4139	adrp	x0, .LC0
4140	mov	w2, 956
4141	add	x1, x1, :lo12:.LANCHOR83
4142	add	x0, x0, :lo12:.LC0
4143	bl	printf
4144.L695:
4145	adrp	x0, .LANCHOR84
4146	mov	x26, x0
4147	ldrb	w1, [x0, #:lo12:.LANCHOR84]
4148	cmp	w1, 3
4149	bne	.L696
4150	adrp	x0, .LANCHOR35
4151	ldrb	w0, [x0, #:lo12:.LANCHOR35]
4152	cbnz	w0, .L696
4153	adrp	x0, .LANCHOR12
4154	adrp	x1, .LANCHOR85
4155	ldr	x0, [x0, #:lo12:.LANCHOR12]
4156	ldrb	w1, [x1, #:lo12:.LANCHOR85]
4157	ldrb	w0, [x0, 89]
4158	mov	w19, w0
4159	cmp	w1, w0
4160	bhi	.L708
4161	cmp	w0, 2
4162	mov	w0, 2
4163	csel	w19, w19, w0, ls
4164.L697:
4165	add	w19, w19, w19, lsl 1
4166.L698:
4167	adrp	x1, .LANCHOR88
4168	and	x21, x24, 65535
4169	add	x0, x25, x20, lsl 6
4170	mov	x27, x1
4171	ldr	x2, [x1, #:lo12:.LANCHOR88]
4172	ldrb	w0, [x0, 1]
4173	ldrb	w2, [x2, x21]
4174	cmp	w2, w0
4175	beq	.L699
4176	adrp	x1, .LANCHOR83
4177	adrp	x0, .LC0
4178	mov	w2, 976
4179	add	x1, x1, :lo12:.LANCHOR83
4180	add	x0, x0, :lo12:.LC0
4181	bl	printf
4182.L699:
4183	add	x0, x25, x20, lsl 6
4184	ldrb	w0, [x0, 61]
4185	cmp	w0, 3
4186	beq	.L700
4187	ldrb	w0, [x26, #:lo12:.LANCHOR84]
4188	cmp	w0, 3
4189	bne	.L700
4190	adrp	x0, .LANCHOR89
4191	ldrb	w0, [x0, #:lo12:.LANCHOR89]
4192	cbnz	w0, .L700
4193	adrp	x0, .LANCHOR35
4194	ldrb	w0, [x0, #:lo12:.LANCHOR35]
4195	cbnz	w0, .L700
4196	adrp	x0, .LANCHOR36
4197	ldrb	w0, [x0, #:lo12:.LANCHOR36]
4198	cbnz	w0, .L700
4199	adrp	x0, .LANCHOR86
4200	ldrb	w0, [x0, #:lo12:.LANCHOR86]
4201	cbz	w0, .L701
4202	adrp	x0, .LANCHOR87
4203	ldrb	w0, [x0, #:lo12:.LANCHOR87]
4204	cbnz	w0, .L700
4205.L701:
4206	ldr	x1, [x27, #:lo12:.LANCHOR88]
4207	mov	x0, 0
4208	add	x21, x1, x21
4209.L702:
4210	cmp	w19, w0, uxth
4211	bls	.L694
4212	ldrb	w1, [x21, x0]
4213	add	x0, x0, 1
4214	add	x1, x25, x1, lsl 6
4215	strb	wzr, [x1, 61]
4216	b	.L702
4217.L708:
4218	mov	w19, 1
4219	b	.L697
4220.L696:
4221	adrp	x0, .LANCHOR86
4222	ldrb	w0, [x0, #:lo12:.LANCHOR86]
4223	cbz	w0, .L709
4224	adrp	x0, .LANCHOR87
4225	ldrb	w0, [x0, #:lo12:.LANCHOR87]
4226	cmp	w0, 0
4227	cset	w19, ne
4228	add	w19, w19, 1
4229	b	.L698
4230.L709:
4231	mov	w19, 1
4232	b	.L698
4233.L700:
4234	adrp	x20, .LANCHOR76
4235	add	x20, x20, :lo12:.LANCHOR76
4236	add	x19, x21, x19, uxth
4237	strh	w24, [x20, 2108]
4238	mov	w24, -1
4239.L703:
4240	cmp	x21, x19
4241	beq	.L694
4242	ldr	x1, [x27, #:lo12:.LANCHOR88]
4243	ldrb	w0, [x1, x21]
4244	strb	w24, [x1, x21]
4245	add	x21, x21, 1
4246	sbfiz	x1, x0, 6, 32
4247	ubfiz	x0, x0, 6, 8
4248	add	x1, x25, x1
4249	add	x0, x25, x0
4250	strb	wzr, [x1, 61]
4251	bl	zbuf_free
4252	ldrb	w0, [x20, 7]
4253	sub	w0, w0, #1
4254	strb	w0, [x20, 7]
4255	b	.L703
4256	.size	gc_write_completed, .-gc_write_completed
4257	.section	.text.gc_get_src_blk,"ax",@progbits
4258	.align	2
4259	.global	gc_get_src_blk
4260	.type	gc_get_src_blk, %function
4261gc_get_src_blk:
4262	adrp	x0, .LANCHOR12
4263	ldr	x2, [x0, #:lo12:.LANCHOR12]
4264	adrp	x0, .LANCHOR90
4265	ldrb	w3, [x0, #:lo12:.LANCHOR90]
4266	ldrh	w0, [x2, 124]
4267	cbz	w0, .L722
4268	add	x1, x2, 392
4269	mov	w4, 1
4270.L723:
4271	add	x5, x1, 128
4272	mov	w6, 65535
4273.L727:
4274	ldrh	w0, [x1]
4275	cmp	w0, w6
4276	beq	.L725
4277	mov	w5, -1
4278	strh	w5, [x1]
4279	cbz	w4, .L726
4280	ldrh	w1, [x2, 124]
4281	sub	w1, w1, #1
4282	strh	w1, [x2, 124]
4283	ret
4284.L722:
4285	add	x0, x2, x3, sxtw 1
4286	ldrh	w0, [x0, 120]
4287	cbz	w0, .L728
4288	ubfiz	x1, x3, 7, 8
4289	mov	w4, 0
4290	add	x1, x1, 136
4291	add	x1, x2, x1
4292	b	.L723
4293.L726:
4294	add	x2, x2, x3, uxtb 1
4295	ldrh	w1, [x2, 120]
4296	sub	w1, w1, #1
4297	strh	w1, [x2, 120]
4298	ret
4299.L725:
4300	add	x1, x1, 2
4301	cmp	x1, x5
4302	bne	.L727
4303	ret
4304.L728:
4305	mov	w0, 65535
4306	ret
4307	.size	gc_get_src_blk, .-gc_get_src_blk
4308	.section	.text.gc_free_temp_buf,"ax",@progbits
4309	.align	2
4310	.global	gc_free_temp_buf
4311	.type	gc_free_temp_buf, %function
4312gc_free_temp_buf:
4313	stp	x29, x30, [sp, -48]!
4314	add	x29, sp, 0
4315	stp	x19, x20, [sp, 16]
4316	adrp	x20, .LANCHOR76
4317	add	x0, x20, :lo12:.LANCHOR76
4318	stp	x21, x22, [sp, 32]
4319	ldrb	w1, [x0, 7]
4320	cbz	w1, .L737
4321	adrp	x1, .LANCHOR57
4322	ldrb	w1, [x1, #:lo12:.LANCHOR57]
4323	cmp	w1, 1
4324	bhi	.L737
4325	ldrh	w19, [x0, 2108]
4326	adrp	x2, .LANCHOR85
4327	adrp	x0, .LANCHOR91
4328	adrp	x21, .LANCHOR88
4329	ldrb	w2, [x2, #:lo12:.LANCHOR85]
4330	add	w1, w19, 24
4331	ldrh	w0, [x0, #:lo12:.LANCHOR91]
4332	ldr	x4, [x21, #:lo12:.LANCHOR88]
4333	mul	w0, w0, w2
4334	cmp	w0, w1
4335	csel	w1, w0, w1, ls
4336	adrp	x0, .LANCHOR55
4337	add	x0, x0, :lo12:.LANCHOR55
4338.L732:
4339	cmp	w19, w1
4340	bcc	.L735
4341.L737:
4342	mov	w0, 0
4343	b	.L730
4344.L735:
4345	uxtw	x22, w19
4346	ldrb	w2, [x4, x22]
4347	cmp	w2, 255
4348	beq	.L733
4349	sbfiz	x3, x2, 6, 32
4350	add	x3, x0, x3
4351	ldrb	w3, [x3, 61]
4352	cbnz	w3, .L733
4353	ubfiz	x2, x2, 6, 8
4354	add	x0, x0, x2
4355	bl	zbuf_free
4356	adrp	x0, .LANCHOR19
4357	ldr	w0, [x0, #:lo12:.LANCHOR19]
4358	tbz	x0, 8, .L734
4359	ldr	x0, [x21, #:lo12:.LANCHOR88]
4360	mov	w1, w19
4361	ldrb	w2, [x0, x22]
4362	adrp	x0, .LC55
4363	add	x0, x0, :lo12:.LC55
4364	bl	printf
4365.L734:
4366	ldr	x0, [x21, #:lo12:.LANCHOR88]
4367	add	x20, x20, :lo12:.LANCHOR76
4368	mov	w1, -1
4369	strb	w1, [x0, x22]
4370	ldrb	w0, [x20, 7]
4371	sub	w0, w0, #1
4372	strb	w0, [x20, 7]
4373	mov	w0, 1
4374.L730:
4375	ldp	x19, x20, [sp, 16]
4376	ldp	x21, x22, [sp, 32]
4377	ldp	x29, x30, [sp], 48
4378	ret
4379.L733:
4380	add	w19, w19, 1
4381	b	.L732
4382	.size	gc_free_temp_buf, .-gc_free_temp_buf
4383	.section	.text.get_ink_scaned_blk,"ax",@progbits
4384	.align	2
4385	.global	get_ink_scaned_blk
4386	.type	get_ink_scaned_blk, %function
4387get_ink_scaned_blk:
4388	adrp	x1, .LANCHOR76
4389	add	x1, x1, :lo12:.LANCHOR76
4390	ldrh	w2, [x1, 2112]
4391	cbz	w2, .L747
4392	sub	w2, w2, #1
4393	strh	w2, [x1, 2112]
4394	add	x0, x1, x2, sxtw 1
4395	ldrh	w0, [x0, 2114]
4396	ret
4397.L747:
4398	mov	w0, 65535
4399	ret
4400	.size	get_ink_scaned_blk, .-get_ink_scaned_blk
4401	.section	.text.print_gc_debug_info,"ax",@progbits
4402	.align	2
4403	.global	print_gc_debug_info
4404	.type	print_gc_debug_info, %function
4405print_gc_debug_info:
4406	adrp	x2, .LANCHOR92
4407	adrp	x1, .LANCHOR76
4408	add	x0, x1, :lo12:.LANCHOR76
4409	ldrh	w6, [x2, #:lo12:.LANCHOR92]
4410	adrp	x2, .LANCHOR57
4411	ldrh	w1, [x1, #:lo12:.LANCHOR76]
4412	ldrb	w5, [x0, 7]
4413	ldrb	w4, [x2, #:lo12:.LANCHOR57]
4414	ldrh	w3, [x0, 2106]
4415	ldrh	w2, [x0, 2]
4416	adrp	x0, .LC56
4417	add	x0, x0, :lo12:.LC56
4418	b	printf
4419	.size	print_gc_debug_info, .-print_gc_debug_info
4420	.section	.text._list_pop_index_node,"ax",@progbits
4421	.align	2
4422	.global	_list_pop_index_node
4423	.type	_list_pop_index_node, %function
4424_list_pop_index_node:
4425	stp	x29, x30, [sp, -32]!
4426	add	x29, sp, 0
4427	stp	x19, x20, [sp, 16]
4428	ldr	x20, [x0]
4429	cbz	x20, .L755
4430	adrp	x3, .LANCHOR4
4431	and	w1, w1, 65535
4432	mov	w4, 65535
4433	mov	w5, 6
4434	ldr	x19, [x3, #:lo12:.LANCHOR4]
4435.L751:
4436	cbnz	w1, .L752
4437.L754:
4438	sub	x19, x20, x19
4439	mov	x1, -6148914691236517206
4440	asr	x19, x19, 1
4441	movk	x1, 0xaaab, lsl 0
4442	mul	x19, x19, x1
4443	and	w19, w19, 65535
4444	mov	w1, w19
4445	bl	_list_remove_node
4446	mov	w0, -1
4447	strh	w0, [x20]
4448	strh	w0, [x20, 2]
4449	mov	w0, w19
4450.L749:
4451	ldp	x19, x20, [sp, 16]
4452	ldp	x29, x30, [sp], 32
4453	ret
4454.L752:
4455	ldrh	w3, [x20]
4456	cmp	w3, w4
4457	beq	.L754
4458	sub	w1, w1, #1
4459	umaddl	x20, w3, w5, x19
4460	and	w1, w1, 65535
4461	b	.L751
4462.L755:
4463	mov	w0, 65535
4464	b	.L749
4465	.size	_list_pop_index_node, .-_list_pop_index_node
4466	.section	.text._list_get_gc_head_node,"ax",@progbits
4467	.align	2
4468	.global	_list_get_gc_head_node
4469	.type	_list_get_gc_head_node, %function
4470_list_get_gc_head_node:
4471	ldr	x0, [x0]
4472	and	w1, w1, 65535
4473	cbz	x0, .L762
4474	adrp	x2, .LANCHOR4
4475	mov	w3, 65535
4476	mov	w4, 6
4477	ldr	x2, [x2, #:lo12:.LANCHOR4]
4478.L759:
4479	cbz	w1, .L760
4480	ldrh	w0, [x0]
4481	cmp	w0, w3
4482	bne	.L761
4483	ret
4484.L761:
4485	sub	w1, w1, #1
4486	umaddl	x0, w0, w4, x2
4487	and	w1, w1, 65535
4488	b	.L759
4489.L762:
4490	mov	w0, 65535
4491	ret
4492.L760:
4493	sub	x0, x0, x2
4494	mov	x1, -6148914691236517206
4495	asr	x0, x0, 1
4496	movk	x1, 0xaaab, lsl 0
4497	mul	x0, x0, x1
4498	and	w0, w0, 65535
4499	ret
4500	.size	_list_get_gc_head_node, .-_list_get_gc_head_node
4501	.section	.text.gc_search_src_blk,"ax",@progbits
4502	.align	2
4503	.global	gc_search_src_blk
4504	.type	gc_search_src_blk, %function
4505gc_search_src_blk:
4506	stp	x29, x30, [sp, -176]!
4507	add	x29, sp, 0
4508	stp	x21, x22, [sp, 32]
4509	and	w22, w0, 255
4510	and	w0, w1, 255
4511	stp	x19, x20, [sp, 16]
4512	str	w0, [x29, 160]
4513	adrp	x0, .LANCHOR12
4514	and	w19, w2, 255
4515	stp	x23, x24, [sp, 48]
4516	ldr	x2, [x0, #:lo12:.LANCHOR12]
4517	stp	x25, x26, [sp, 64]
4518	stp	x27, x28, [sp, 80]
4519	add	x0, x2, x22, sxtw 1
4520	ldrh	w21, [x0, 120]
4521	cbz	w21, .L765
4522	mov	w0, w21
4523.L764:
4524	ldp	x19, x20, [sp, 16]
4525	ldp	x21, x22, [sp, 32]
4526	ldp	x23, x24, [sp, 48]
4527	ldp	x25, x26, [sp, 64]
4528	ldp	x27, x28, [sp, 80]
4529	ldp	x29, x30, [sp], 176
4530	ret
4531.L765:
4532	adrp	x0, .LANCHOR76
4533	add	x1, x0, :lo12:.LANCHOR76
4534	ldrh	w1, [x1, 56]
4535	cmp	w1, 1
4536	bhi	.L767
4537	adrp	x3, .LANCHOR93
4538	strh	wzr, [x3, #:lo12:.LANCHOR93]
4539	adrp	x3, .LANCHOR94
4540	strh	wzr, [x3, #:lo12:.LANCHOR94]
4541	adrp	x3, .LANCHOR95
4542	strh	wzr, [x3, #:lo12:.LANCHOR95]
4543.L767:
4544	cbnz	w22, .L768
4545	adrp	x26, .LANCHOR94
4546	adrp	x25, .LANCHOR96
4547	add	x23, x26, :lo12:.LANCHOR94
4548	add	x25, x25, :lo12:.LANCHOR96
4549	mov	w24, 0
4550	mov	w20, 0
4551	mov	w27, 65535
4552.L769:
4553	cmp	w19, w20
4554	blt	.L774
4555	ldrh	w6, [x23]
4556	mov	x0, x25
4557	mov	w1, w6
4558	bl	_list_get_gc_head_node
4559	add	w2, w6, 1
4560	and	w2, w2, 65535
4561	strh	w2, [x23]
4562	and	w1, w0, 65535
4563	mov	w28, w1
4564	cmp	w1, w27
4565	beq	.L770
4566	adrp	x0, .LANCHOR19
4567	adrp	x6, .LANCHOR11
4568	uxtw	x4, w1
4569	ldr	w0, [x0, #:lo12:.LANCHOR19]
4570	tbz	x0, 8, .L771
4571	ldr	x0, [x6, #:lo12:.LANCHOR11]
4572	stp	x6, x4, [x29, 144]
4573	ldrh	w3, [x0, x4, lsl 1]
4574	adrp	x0, .LC57
4575	add	x0, x0, :lo12:.LC57
4576	bl	printf
4577	ldp	x6, x4, [x29, 144]
4578.L771:
4579	ldr	x0, [x6, #:lo12:.LANCHOR11]
4580	ldrh	w1, [x0, x4, lsl 1]
4581	adrp	x0, .LANCHOR75
4582	ldrh	w0, [x0, #:lo12:.LANCHOR75]
4583	cmp	w1, w0
4584	bcs	.L772
4585	mov	w2, 0
4586	mov	w1, 0
4587	mov	w0, w28
4588	bl	gc_add_sblk
4589	cbz	w0, .L773
4590	add	w5, w24, 1
4591	and	w24, w5, 65535
4592	cmp	w24, w19
4593	bcc	.L773
4594.L774:
4595	ldr	x0, [x29, 160]
4596	tbz	x0, 1, .L776
4597	adrp	x0, .LANCHOR97
4598	ldrh	w0, [x0, #:lo12:.LANCHOR97]
4599	cmp	w0, 32
4600	bls	.L776
4601	adrp	x23, .LANCHOR99
4602	adrp	x20, .LANCHOR95
4603	adrp	x26, .LANCHOR98
4604	add	x20, x20, :lo12:.LANCHOR95
4605	add	x26, x26, :lo12:.LANCHOR98
4606	add	x27, x23, :lo12:.LANCHOR99
4607	mov	w25, 0
4608.L777:
4609	cmp	w19, w25
4610	blt	.L781
4611	ldrh	w6, [x20]
4612	mov	x0, x26
4613	mov	w1, w6
4614	bl	_list_get_gc_head_node
4615	add	w6, w6, 1
4616	strh	w6, [x20]
4617	and	w1, w0, 65535
4618	mov	w2, 65535
4619	cmp	w1, w2
4620	beq	.L778
4621	adrp	x2, .LANCHOR11
4622	ubfiz	x1, x1, 1, 16
4623	ldr	x2, [x2, #:lo12:.LANCHOR11]
4624	ldrh	w2, [x2, x1]
4625	ldrh	w1, [x27]
4626	cmp	w2, w1
4627	bcs	.L778
4628	mov	w2, 0
4629	mov	w1, 0
4630	bl	gc_add_sblk
4631	cbz	w0, .L780
4632	add	w5, w24, 1
4633	and	w24, w5, 65535
4634	cmp	w24, w19
4635	bcc	.L780
4636.L781:
4637	cmp	w24, w19
4638	adrp	x0, .LANCHOR100
4639	bcs	.L783
4640	ldrh	w1, [x0, #:lo12:.LANCHOR100]
4641	adrp	x3, .LANCHOR85
4642	adrp	x0, .LANCHOR91
4643	ldrh	w2, [x23, #:lo12:.LANCHOR99]
4644	ldrb	w3, [x3, #:lo12:.LANCHOR85]
4645	ldrh	w0, [x0, #:lo12:.LANCHOR91]
4646	mul	w0, w0, w3
4647	sub	w0, w0, w1, lsr 2
4648	cmp	w2, w0
4649	bge	.L776
4650	add	w1, w2, w1, lsr 3
4651	strh	w1, [x23, #:lo12:.LANCHOR99]
4652.L776:
4653	ldr	x0, [x29, 160]
4654	tbz	x0, 0, .L784
4655	and	w23, w19, 65535
4656	cmp	w24, w23
4657	bcs	.L784
4658	adrp	x20, .LANCHOR93
4659	adrp	x25, .LANCHOR101
4660	add	x20, x20, :lo12:.LANCHOR93
4661	add	x25, x25, :lo12:.LANCHOR101
4662	mov	w26, 65535
4663.L789:
4664	ldrh	w6, [x20]
4665	mov	x0, x25
4666	mov	w1, w6
4667	bl	_list_get_gc_head_node
4668	add	w6, w6, 1
4669	strh	w6, [x20]
4670	cmp	w26, w0, uxth
4671	beq	.L785
4672	mov	w2, 0
4673	mov	w1, 0
4674	bl	gc_add_sblk
4675	cbz	w0, .L786
4676	add	w5, w24, 1
4677	and	w24, w5, 65535
4678	cmp	w23, w24
4679	bhi	.L786
4680.L787:
4681	adrp	x0, .LANCHOR100
4682	adrp	x1, .LANCHOR75
4683	ldrh	w0, [x0, #:lo12:.LANCHOR100]
4684	ldrh	w2, [x1, #:lo12:.LANCHOR75]
4685	cmp	w2, w0, lsr 1
4686	bls	.L784
4687	sub	w0, w2, w0, lsr 3
4688	b	.L875
4689.L772:
4690	strh	wzr, [x26, #:lo12:.LANCHOR94]
4691	b	.L774
4692.L770:
4693	strh	wzr, [x23]
4694	b	.L774
4695.L773:
4696	add	w20, w20, 1
4697	and	w20, w20, 65535
4698	b	.L769
4699.L778:
4700	strh	wzr, [x20]
4701	b	.L781
4702.L780:
4703	add	w25, w25, 1
4704	and	w25, w25, 65535
4705	b	.L777
4706.L783:
4707	ldrh	w1, [x23, #:lo12:.LANCHOR99]
4708	ldrh	w0, [x0, #:lo12:.LANCHOR100]
4709	cmp	w1, w0
4710	bls	.L776
4711	sub	w0, w1, w0, lsr 3
4712	strh	w0, [x23, #:lo12:.LANCHOR99]
4713	b	.L776
4714.L785:
4715	strh	wzr, [x20]
4716.L788:
4717	cmp	w24, w23
4718	bcs	.L787
4719	adrp	x1, .LANCHOR75
4720	adrp	x0, .LANCHOR100
4721	ldrh	w2, [x1, #:lo12:.LANCHOR75]
4722	ldrh	w0, [x0, #:lo12:.LANCHOR100]
4723	cmp	w2, w0
4724	bcs	.L784
4725	add	w0, w2, w0, lsr 3
4726.L875:
4727	strh	w0, [x1, #:lo12:.LANCHOR75]
4728.L784:
4729	adrp	x0, .LANCHOR19
4730	ldr	w0, [x0, #:lo12:.LANCHOR19]
4731	tbz	x0, 8, .L820
4732	ldr	w2, [x29, 160]
4733	adrp	x0, .LC58
4734	mov	w4, w19
4735	mov	w3, w24
4736	mov	w1, w22
4737	add	x0, x0, :lo12:.LC58
4738	bl	printf
4739.L820:
4740	mov	w0, w24
4741	b	.L764
4742.L786:
4743	add	w21, w21, 1
4744	and	w21, w21, 65535
4745	cmp	w23, w21
4746	bhi	.L789
4747	b	.L788
4748.L768:
4749	adrp	x23, .LANCHOR85
4750	adrp	x25, .LANCHOR91
4751	stp	x25, x23, [x29, 144]
4752	cmp	w19, 1
4753	ldrb	w20, [x23, #:lo12:.LANCHOR85]
4754	ldrh	w3, [x25, #:lo12:.LANCHOR91]
4755	mul	w20, w20, w3
4756	and	w20, w20, 65535
4757	bne	.L790
4758	cbz	w1, .L790
4759	ldrh	w3, [x2, 80]
4760	mov	w2, 65535
4761	cmp	w3, w2
4762	beq	.L823
4763	add	x2, x0, :lo12:.LANCHOR76
4764	ldrh	w2, [x2, 2106]
4765	sub	w20, w20, w2
4766	and	w20, w20, 65535
4767.L823:
4768	mov	w19, 8
4769.L790:
4770	add	x0, x0, :lo12:.LANCHOR76
4771	strh	wzr, [x0, 2192]
4772	adrp	x0, .LANCHOR102
4773	strh	wzr, [x0, #:lo12:.LANCHOR102]
4774	ldr	w0, [x29, 160]
4775	and	w0, w0, 1
4776	str	w0, [x29, 128]
4777	ldr	x0, [x29, 160]
4778	tbz	x0, 0, .L824
4779	adrp	x2, .LANCHOR104
4780	adrp	x26, .LANCHOR103
4781	str	x2, [x29, 120]
4782	ldrh	w0, [x26, #:lo12:.LANCHOR103]
4783	ldrh	w3, [x2, #:lo12:.LANCHOR104]
4784	cmp	w0, w3, lsr 2
4785	bhi	.L792
4786	adrp	x2, .LANCHOR105
4787	ldrh	w2, [x2, #:lo12:.LANCHOR105]
4788	cmp	w2, w0
4789	bcs	.L825
4790.L792:
4791	cmp	w1, 1
4792	adrp	x25, .LANCHOR93
4793	adrp	x28, .LANCHOR101
4794	bls	.L794
4795.L796:
4796	mov	w24, 0
4797.L795:
4798	add	x0, x28, :lo12:.LANCHOR101
4799	add	x25, x25, :lo12:.LANCHOR93
4800	adrp	x28, .LANCHOR105
4801	add	x28, x28, :lo12:.LANCHOR105
4802	mov	w23, 0
4803	mov	w27, 64
4804	str	x0, [x29, 136]
4805.L799:
4806	ldrh	w7, [x25]
4807	ldr	x0, [x29, 136]
4808	mov	w1, w7
4809	bl	_list_get_gc_head_node
4810	and	w6, w0, 65535
4811	str	w6, [x29, 112]
4812	mov	w1, 65535
4813	cmp	w6, w1
4814	beq	.L797
4815	add	w7, w7, 1
4816	mov	w2, w22
4817	strh	w7, [x25]
4818	mov	w1, 0
4819	bl	gc_add_sblk
4820	cbz	w0, .L798
4821	adrp	x0, .LANCHOR11
4822	ldr	w6, [x29, 112]
4823	add	w5, w24, 1
4824	ldr	x0, [x0, #:lo12:.LANCHOR11]
4825	and	w24, w5, 65535
4826	ubfiz	x6, x6, 1, 16
4827	cmp	w24, w19
4828	ldrh	w0, [x0, x6]
4829	add	w3, w23, w0
4830	and	w23, w3, 65535
4831	bcs	.L793
4832	cmp	w20, w23
4833	bcc	.L793
4834	ldrh	w0, [x28]
4835	ldrh	w1, [x26, #:lo12:.LANCHOR103]
4836	cmp	w0, w1, lsl 1
4837	ble	.L798
4838.L793:
4839	adrp	x0, .LANCHOR105
4840	ldrh	w1, [x0, #:lo12:.LANCHOR105]
4841	ldr	x0, [x29, 120]
4842	ldrh	w0, [x0, #:lo12:.LANCHOR104]
4843	cmp	w1, w0, lsr 2
4844	bhi	.L821
4845	ldrh	w0, [x26, #:lo12:.LANCHOR103]
4846	add	w0, w0, 8
4847	cmp	w1, w0
4848	ble	.L791
4849.L821:
4850	cmp	w20, w23
4851	bls	.L791
4852	adrp	x7, .LANCHOR94
4853	and	w25, w19, 65535
4854	add	x28, x7, :lo12:.LANCHOR94
4855	adrp	x0, .LANCHOR96
4856	mov	w26, 64
4857	add	x0, x0, :lo12:.LANCHOR96
4858	adrp	x27, .LANCHOR11
4859	str	x0, [x29, 136]
4860.L802:
4861	ldrh	w6, [x28]
4862	ldr	x0, [x29, 136]
4863	mov	w1, w6
4864	bl	_list_get_gc_head_node
4865	and	w4, w0, 65535
4866	str	w4, [x29, 120]
4867	mov	w1, 65535
4868	cmp	w4, w1
4869	beq	.L800
4870	add	w6, w6, 1
4871	mov	w2, w22
4872	strh	w6, [x28]
4873	mov	w1, 0
4874	bl	gc_add_sblk
4875	cbz	w0, .L801
4876	ldr	w4, [x29, 120]
4877	add	w5, w24, 1
4878	ldr	x0, [x27, #:lo12:.LANCHOR11]
4879	and	w24, w5, 65535
4880	cmp	w24, w25
4881	ubfiz	x4, x4, 1, 16
4882	ldrh	w0, [x0, x4]
4883	add	w3, w23, w0
4884	and	w23, w3, 65535
4885	bcs	.L791
4886	cmp	w20, w23
4887	bcs	.L801
4888.L791:
4889	ldr	x0, [x29, 160]
4890	tbz	x0, 1, .L803
4891	adrp	x0, .LANCHOR97
4892	str	x0, [x29, 112]
4893	ldrh	w1, [x0, #:lo12:.LANCHOR97]
4894	cmp	w1, 32
4895	bls	.L803
4896	cmp	w23, w20
4897	bcs	.L803
4898	adrp	x25, .LANCHOR95
4899	adrp	x0, .LANCHOR98
4900	add	x28, x25, :lo12:.LANCHOR95
4901	add	x0, x0, :lo12:.LANCHOR98
4902	adrp	x27, .LANCHOR106
4903	str	x0, [x29, 120]
4904	mov	w26, 64
4905	add	x0, x27, :lo12:.LANCHOR106
4906	str	x0, [x29, 136]
4907.L809:
4908	ldrh	w6, [x28]
4909	ldr	x0, [x29, 120]
4910	mov	w1, w6
4911	bl	_list_get_gc_head_node
4912	and	w8, w0, 65535
4913	mov	w1, 65535
4914	cmp	w8, w1
4915	beq	.L804
4916	add	w6, w6, 1
4917	strh	w6, [x28]
4918	cmp	w19, 1
4919	bne	.L805
4920	ldp	x2, x1, [x29, 144]
4921	ldrb	w1, [x1, #:lo12:.LANCHOR85]
4922	ldrh	w2, [x2, #:lo12:.LANCHOR91]
4923	mul	w2, w1, w2
4924	adrp	x1, .LANCHOR100
4925	ldrh	w1, [x1, #:lo12:.LANCHOR100]
4926	sub	w1, w2, w1, lsr 3
4927	ldr	x2, [x29, 136]
4928	strh	w1, [x2]
4929.L805:
4930	ubfiz	x6, x8, 1, 16
4931	adrp	x8, .LANCHOR11
4932	stp	x8, x6, [x29, 96]
4933	ldr	x1, [x8, #:lo12:.LANCHOR11]
4934	ldrh	w2, [x1, x6]
4935	ldr	x1, [x29, 136]
4936	ldrh	w1, [x1]
4937	cmp	w2, w1
4938	bcs	.L806
4939	mov	w2, w22
4940	mov	w1, 0
4941	bl	gc_add_sblk
4942	cbz	w0, .L807
4943	ldp	x8, x6, [x29, 96]
4944	add	w5, w24, 1
4945	add	w21, w21, 1
4946	and	w24, w5, 65535
4947	and	w21, w21, 65535
4948	cmp	w24, w19
4949	ldr	x0, [x8, #:lo12:.LANCHOR11]
4950	ldrh	w0, [x0, x6]
4951	add	w3, w23, w0
4952	and	w23, w3, 65535
4953	bcs	.L808
4954	cmp	w20, w23
4955	bcs	.L807
4956.L808:
4957	cmp	w24, w19
4958	adrp	x0, .LANCHOR100
4959	bcc	.L810
4960	cbnz	w21, .L811
4961	ldr	x1, [x29, 112]
4962	ldrh	w2, [x1, #:lo12:.LANCHOR97]
4963	adrp	x1, .LANCHOR107
4964	ldrh	w1, [x1, #:lo12:.LANCHOR107]
4965	cmp	w2, w1
4966	bls	.L811
4967.L810:
4968	ldrh	w2, [x0, #:lo12:.LANCHOR100]
4969	ldp	x0, x3, [x29, 144]
4970	ldrh	w1, [x27, #:lo12:.LANCHOR106]
4971	lsr	w2, w2, 3
4972	ldrh	w0, [x0, #:lo12:.LANCHOR91]
4973	ldrb	w6, [x3, #:lo12:.LANCHOR85]
4974	mul	w0, w0, w6
4975	sub	w0, w0, w2
4976	cmp	w1, w0
4977	bge	.L803
4978	add	w1, w1, w2
4979	strh	w1, [x27, #:lo12:.LANCHOR106]
4980.L803:
4981	ldr	w0, [x29, 128]
4982	cbz	w0, .L784
4983	and	w27, w19, 65535
4984	cmp	w24, w27
4985	bcs	.L784
4986	cmp	w23, w20
4987	bcs	.L784
4988	adrp	x26, .LANCHOR96
4989	adrp	x4, .LANCHOR94
4990	add	x0, x26, :lo12:.LANCHOR96
4991	add	x28, x4, :lo12:.LANCHOR94
4992	adrp	x21, .LANCHOR108
4993	str	x0, [x29, 144]
4994	mov	w25, 64
4995	add	x0, x21, :lo12:.LANCHOR108
4996	adrp	x26, .LANCHOR11
4997	str	x0, [x29, 136]
4998.L819:
4999	ldrh	w6, [x28]
5000	ldr	x0, [x29, 144]
5001	mov	w1, w6
5002	bl	_list_get_gc_head_node
5003	and	w1, w0, 65535
5004	mov	w2, 65535
5005	cmp	w1, w2
5006	beq	.L813
5007	add	w6, w6, 1
5008	strh	w6, [x28]
5009	ubfiz	x6, x1, 1, 16
5010	ldr	x1, [x26, #:lo12:.LANCHOR11]
5011	ldrh	w2, [x1, x6]
5012	ldr	x1, [x29, 136]
5013	ldrh	w1, [x1]
5014	cmp	w2, w1
5015	bcs	.L814
5016	adrp	x1, .LANCHOR104
5017	ldrh	w2, [x1, #:lo12:.LANCHOR104]
5018	adrp	x1, .LANCHOR105
5019	ldrh	w1, [x1, #:lo12:.LANCHOR105]
5020	cmp	w1, w2, lsr 1
5021	bls	.L815
5022.L814:
5023	mov	w2, w22
5024	mov	w1, 0
5025	str	x6, [x29, 128]
5026	bl	gc_add_sblk
5027	cbz	w0, .L816
5028	adrp	x0, .LANCHOR11
5029	ldr	x6, [x29, 128]
5030	add	w5, w24, 1
5031	ldr	x0, [x0, #:lo12:.LANCHOR11]
5032	and	w24, w5, 65535
5033	cmp	w27, w24
5034	ldrh	w0, [x0, x6]
5035	add	w3, w23, w0
5036	and	w23, w3, 65535
5037	bls	.L817
5038	cmp	w20, w23
5039	bcs	.L816
5040.L818:
5041	adrp	x0, .LANCHOR100
5042	ldrh	w1, [x21, #:lo12:.LANCHOR108]
5043	ldrh	w0, [x0, #:lo12:.LANCHOR100]
5044	cmp	w1, w0, lsr 1
5045	bls	.L784
5046	sub	w0, w1, w0, lsr 3
5047	strh	w0, [x21, #:lo12:.LANCHOR108]
5048	b	.L784
5049.L794:
5050	lsr	w0, w0, 2
5051	mov	w1, 0
5052	strh	w0, [x25, #:lo12:.LANCHOR93]
5053	add	x0, x28, :lo12:.LANCHOR101
5054	bl	_list_get_gc_head_node
5055	and	w1, w0, 65535
5056	mov	w2, 65535
5057	cmp	w1, w2
5058	beq	.L796
5059	adrp	x2, .LANCHOR11
5060	ubfiz	x1, x1, 1, 16
5061	ldr	x3, [x2, #:lo12:.LANCHOR11]
5062	adrp	x2, .LANCHOR100
5063	ldrh	w2, [x2, #:lo12:.LANCHOR100]
5064	ldrh	w1, [x3, x1]
5065	cmp	w1, w2, lsr 2
5066	bcs	.L796
5067	mov	w1, 1
5068	mov	w2, w22
5069	strh	w1, [x25, #:lo12:.LANCHOR93]
5070	mov	w1, 0
5071	bl	gc_add_sblk
5072	cmp	w0, 0
5073	cset	w24, ne
5074	b	.L795
5075.L797:
5076	strh	wzr, [x25]
5077	b	.L793
5078.L798:
5079	sub	w27, w27, #1
5080	ands	w27, w27, 65535
5081	bne	.L799
5082	b	.L793
5083.L800:
5084	cmp	w6, 64
5085	bls	.L791
5086	strh	wzr, [x28]
5087	b	.L791
5088.L801:
5089	sub	w26, w26, #1
5090	ands	w26, w26, 65535
5091	bne	.L802
5092	b	.L791
5093.L824:
5094	mov	w23, 0
5095	mov	w24, 0
5096	b	.L791
5097.L806:
5098	strh	wzr, [x25, #:lo12:.LANCHOR95]
5099	b	.L808
5100.L804:
5101	strh	wzr, [x28]
5102	b	.L808
5103.L807:
5104	sub	w26, w26, #1
5105	ands	w26, w26, 65535
5106	bne	.L809
5107	b	.L808
5108.L811:
5109	ldr	x1, [x29, 152]
5110	ldrh	w0, [x0, #:lo12:.LANCHOR100]
5111	ldrh	w2, [x27, #:lo12:.LANCHOR106]
5112	ldrb	w1, [x1, #:lo12:.LANCHOR85]
5113	mul	w1, w1, w0
5114	cmp	w2, w1
5115	ble	.L784
5116	sub	w0, w2, w0, lsr 3
5117	strh	w0, [x27, #:lo12:.LANCHOR106]
5118	b	.L784
5119.L813:
5120	cmp	w6, 64
5121	bls	.L815
5122	strh	wzr, [x28]
5123.L815:
5124	cmp	w24, w27
5125	bcc	.L818
5126.L817:
5127	adrp	x0, .LANCHOR100
5128	ldrh	w2, [x21, #:lo12:.LANCHOR108]
5129	ldrh	w1, [x0, #:lo12:.LANCHOR100]
5130	ldr	x0, [x29, 152]
5131	ldrb	w0, [x0, #:lo12:.LANCHOR85]
5132	mul	w0, w0, w1
5133	sub	w0, w0, #32
5134	cmp	w2, w0
5135	bge	.L784
5136	add	w1, w2, w1, lsr 3
5137	strh	w1, [x21, #:lo12:.LANCHOR108]
5138	b	.L784
5139.L816:
5140	sub	w25, w25, #1
5141	ands	w25, w25, 65535
5142	bne	.L819
5143	b	.L815
5144.L825:
5145	mov	w23, 0
5146	mov	w24, 0
5147	b	.L793
5148	.size	gc_search_src_blk, .-gc_search_src_blk
5149	.section	.text.zftl_get_gc_node,"ax",@progbits
5150	.align	2
5151	.global	zftl_get_gc_node
5152	.type	zftl_get_gc_node, %function
5153zftl_get_gc_node:
5154	and	w1, w1, 65535
5155	and	w0, w0, 65535
5156	cmp	w1, 5
5157	bne	.L877
5158	mov	w1, w0
5159	adrp	x0, .LANCHOR98
5160	add	x0, x0, :lo12:.LANCHOR98
5161.L879:
5162	b	_list_get_gc_head_node
5163.L877:
5164	cmp	w1, 2
5165	mov	w1, w0
5166	bne	.L878
5167	adrp	x0, .LANCHOR101
5168	add	x0, x0, :lo12:.LANCHOR101
5169	b	.L879
5170.L878:
5171	adrp	x0, .LANCHOR96
5172	add	x0, x0, :lo12:.LANCHOR96
5173	b	.L879
5174	.size	zftl_get_gc_node, .-zftl_get_gc_node
5175	.section	.text.zftl_insert_free_list,"ax",@progbits
5176	.align	2
5177	.global	zftl_insert_free_list
5178	.type	zftl_insert_free_list, %function
5179zftl_insert_free_list:
5180	and	w1, w0, 65535
5181	adrp	x0, .LANCHOR9
5182	ldr	x0, [x0, #:lo12:.LANCHOR9]
5183	add	x0, x0, x1, uxth 2
5184	ldrb	w0, [x0, 2]
5185	ands	w0, w0, 24
5186	bne	.L881
5187	adrp	x2, .LANCHOR109
5188	adrp	x0, .LANCHOR110
5189	add	x2, x2, :lo12:.LANCHOR109
5190	add	x0, x0, :lo12:.LANCHOR110
5191.L883:
5192	b	_insert_free_list
5193.L881:
5194	cmp	w0, 16
5195	bne	.L882
5196	adrp	x2, .LANCHOR111
5197	adrp	x0, .LANCHOR112
5198	add	x2, x2, :lo12:.LANCHOR111
5199	add	x0, x0, :lo12:.LANCHOR112
5200	b	.L883
5201.L882:
5202	adrp	x2, .LANCHOR113
5203	adrp	x0, .LANCHOR114
5204	add	x2, x2, :lo12:.LANCHOR113
5205	add	x0, x0, :lo12:.LANCHOR114
5206	b	.L883
5207	.size	zftl_insert_free_list, .-zftl_insert_free_list
5208	.section	.text.zftl_insert_data_list,"ax",@progbits
5209	.align	2
5210	.global	zftl_insert_data_list
5211	.type	zftl_insert_data_list, %function
5212zftl_insert_data_list:
5213	and	w1, w0, 65535
5214	adrp	x0, .LANCHOR9
5215	ldr	x0, [x0, #:lo12:.LANCHOR9]
5216	add	x0, x0, x1, uxth 2
5217	ldrb	w2, [x0, 2]
5218	and	w2, w2, 224
5219	cmp	w2, 64
5220	bne	.L885
5221	adrp	x2, .LANCHOR103
5222	adrp	x0, .LANCHOR101
5223	add	x2, x2, :lo12:.LANCHOR103
5224	add	x0, x0, :lo12:.LANCHOR101
5225.L888:
5226	b	_insert_data_list
5227.L885:
5228	cmp	w2, 96
5229	bne	.L886
5230	adrp	x2, .LANCHOR105
5231	adrp	x0, .LANCHOR96
5232	add	x2, x2, :lo12:.LANCHOR105
5233	add	x0, x0, :lo12:.LANCHOR96
5234	b	.L888
5235.L886:
5236	cmp	w2, 160
5237	bne	.L884
5238	adrp	x2, .LANCHOR97
5239	adrp	x0, .LANCHOR98
5240	add	x2, x2, :lo12:.LANCHOR97
5241	add	x0, x0, :lo12:.LANCHOR98
5242	b	.L888
5243.L884:
5244	ret
5245	.size	zftl_insert_data_list, .-zftl_insert_data_list
5246	.section	.text.zftl_gc_get_free_sblk,"ax",@progbits
5247	.align	2
5248	.global	zftl_gc_get_free_sblk
5249	.type	zftl_gc_get_free_sblk, %function
5250zftl_gc_get_free_sblk:
5251	stp	x29, x30, [sp, -48]!
5252	add	x29, sp, 0
5253	stp	x19, x20, [sp, 16]
5254	adrp	x20, .LANCHOR12
5255	stp	x21, x22, [sp, 32]
5256	and	w21, w0, 65535
5257	ldr	x0, [x20, #:lo12:.LANCHOR12]
5258	and	w22, w1, 65535
5259	ldrh	w19, [x0, 588]
5260	mov	w0, 65535
5261	cmp	w19, w0
5262	beq	.L890
5263	cbnz	w21, .L890
5264	mov	w1, w19
5265	adrp	x0, .LC59
5266	add	x0, x0, :lo12:.LC59
5267	bl	printf
5268	ldr	x0, [x20, #:lo12:.LANCHOR12]
5269	mov	w1, -1
5270	strh	w1, [x0, 588]
5271.L891:
5272	mov	w0, w19
5273	ldp	x19, x20, [sp, 16]
5274	ldp	x21, x22, [sp, 32]
5275	ldp	x29, x30, [sp], 48
5276	ret
5277.L890:
5278	adrp	x2, .LANCHOR111
5279	adrp	x20, .LANCHOR113
5280	ldrh	w0, [x2, #:lo12:.LANCHOR111]
5281	ldrh	w1, [x20, #:lo12:.LANCHOR113]
5282	cmp	w0, w1
5283	bcc	.L892
5284	adrp	x3, .LANCHOR109
5285	ldrh	w3, [x3, #:lo12:.LANCHOR109]
5286	cmp	w3, w0
5287	bls	.L893
5288	cbz	w1, .L893
5289.L892:
5290	cbnz	w21, .L894
5291	lsr	w1, w1, 2
5292.L895:
5293	adrp	x0, .LANCHOR114
5294	add	x2, x20, :lo12:.LANCHOR113
5295	add	x0, x0, :lo12:.LANCHOR114
5296.L910:
5297	bl	_list_pop_index_node
5298	and	w19, w0, 65535
5299	mov	w0, 65535
5300	cmp	w19, w0
5301	bne	.L898
5302	adrp	x0, .LANCHOR109
5303	ldrh	w5, [x20, #:lo12:.LANCHOR113]
5304	mov	w2, w22
5305	mov	w1, w19
5306	ldrh	w4, [x0, #:lo12:.LANCHOR109]
5307	adrp	x0, .LANCHOR110
5308	ldr	x3, [x0, #:lo12:.LANCHOR110]
5309	adrp	x0, .LC60
5310	add	x0, x0, :lo12:.LC60
5311	bl	printf
5312.L898:
5313	cbz	w21, .L891
5314	adrp	x0, .LANCHOR19
5315	ldr	w0, [x0, #:lo12:.LANCHOR19]
5316	tbz	x0, 8, .L891
5317	adrp	x4, .LANCHOR11
5318	adrp	x1, .LANCHOR9
5319	uxtw	x3, w19
5320	ldr	x1, [x1, #:lo12:.LANCHOR9]
5321	lsl	x0, x3, 2
5322	ldr	x6, [x4, #:lo12:.LANCHOR11]
5323	add	x2, x1, x0
5324	ldr	w4, [x1, x0]
5325	ldrh	w6, [x6, x3, lsl 1]
5326	ldrb	w2, [x2, 2]
5327	ldrh	w5, [x1, x0]
5328	ubfx	x4, x4, 11, 8
5329	mov	w1, w19
5330	adrp	x0, .LC61
5331	ubfx	x3, x2, 3, 2
5332	and	w5, w5, 2047
5333	ubfx	x2, x2, 5, 3
5334	add	x0, x0, :lo12:.LC61
5335	bl	printf
5336	b	.L891
5337.L894:
5338	mov	w1, 7
5339	mul	w1, w0, w1
5340	lsr	w1, w1, 3
5341	b	.L895
5342.L893:
5343	lsr	w1, w0, 3
5344	cmp	w21, 0
5345	adrp	x0, .LANCHOR112
5346	csel	w1, w1, wzr, ne
5347	add	x2, x2, :lo12:.LANCHOR111
5348	add	x0, x0, :lo12:.LANCHOR112
5349	b	.L910
5350	.size	zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk
5351	.section	.text.zftl_get_free_sblk,"ax",@progbits
5352	.align	2
5353	.global	zftl_get_free_sblk
5354	.type	zftl_get_free_sblk, %function
5355zftl_get_free_sblk:
5356	stp	x29, x30, [sp, -48]!
5357	add	x29, sp, 0
5358	stp	x19, x20, [sp, 16]
5359	and	w20, w1, 65535
5360	str	x21, [sp, 32]
5361	cmp	w20, 5
5362	bne	.L912
5363	adrp	x2, .LANCHOR111
5364	adrp	x0, .LANCHOR113
5365	ldrh	w3, [x2, #:lo12:.LANCHOR111]
5366	ldrh	w1, [x0, #:lo12:.LANCHOR113]
5367	cmp	w3, w1
5368	bcc	.L913
5369	adrp	x4, .LANCHOR109
5370	ldrh	w4, [x4, #:lo12:.LANCHOR109]
5371	cmp	w4, w3
5372	bls	.L914
5373	cbz	w1, .L914
5374.L913:
5375	add	x2, x0, :lo12:.LANCHOR113
5376	lsr	w1, w1, 1
5377.L933:
5378	adrp	x0, .LANCHOR114
5379	add	x0, x0, :lo12:.LANCHOR114
5380	b	.L932
5381.L914:
5382	adrp	x0, .LANCHOR112
5383	add	x2, x2, :lo12:.LANCHOR111
5384	add	x0, x0, :lo12:.LANCHOR112
5385	mov	w1, 0
5386.L932:
5387	bl	_list_pop_index_node
5388	and	w19, w0, 65535
5389	mov	w0, 65535
5390	cmp	w19, w0
5391	bne	.L917
5392	adrp	x0, .LANCHOR113
5393	mov	w2, w20
5394	mov	w1, w19
5395	ldrh	w5, [x0, #:lo12:.LANCHOR113]
5396	adrp	x0, .LANCHOR109
5397	ldrh	w4, [x0, #:lo12:.LANCHOR109]
5398	adrp	x0, .LANCHOR110
5399	ldr	x3, [x0, #:lo12:.LANCHOR110]
5400	adrp	x0, .LC60
5401	add	x0, x0, :lo12:.LC60
5402	bl	printf
5403	b	.L917
5404.L912:
5405	adrp	x21, .LANCHOR12
5406	and	w3, w0, 65535
5407	ldr	x0, [x21, #:lo12:.LANCHOR12]
5408	ldrh	w19, [x0, 590]
5409	mov	w0, 65535
5410	cmp	w19, w0
5411	beq	.L916
5412	cmp	w20, 1
5413	beq	.L916
5414	mov	w1, w19
5415	adrp	x0, .LC62
5416	add	x0, x0, :lo12:.LC62
5417	bl	printf
5418	ldr	x0, [x21, #:lo12:.LANCHOR12]
5419	mov	w1, -1
5420	strh	w1, [x0, 590]
5421.L917:
5422	mov	w0, w19
5423	ldr	x21, [sp, 32]
5424	ldp	x19, x20, [sp, 16]
5425	ldp	x29, x30, [sp], 48
5426	ret
5427.L916:
5428	adrp	x2, .LANCHOR109
5429	adrp	x4, .LANCHOR113
5430	ldrh	w0, [x2, #:lo12:.LANCHOR109]
5431	ldrh	w1, [x4, #:lo12:.LANCHOR113]
5432	cmp	w0, w1
5433	bcc	.L918
5434	adrp	x5, .LANCHOR111
5435	ldrh	w5, [x5, #:lo12:.LANCHOR111]
5436	cmp	w5, w0
5437	bls	.L919
5438	cbz	w1, .L919
5439.L918:
5440	bl	get_ink_scaned_blk
5441	and	w19, w0, 65535
5442	mov	w0, 65535
5443	cmp	w19, w0
5444	bne	.L917
5445	cmp	w20, 1
5446	bne	.L920
5447	ldrh	w3, [x4, #:lo12:.LANCHOR113]
5448	lsr	w3, w3, 1
5449.L920:
5450	add	x2, x4, :lo12:.LANCHOR113
5451	mov	w1, w3
5452	b	.L933
5453.L919:
5454	lsr	w0, w0, 1
5455	cmp	w20, 1
5456	csel	w3, w0, w3, eq
5457	add	x2, x2, :lo12:.LANCHOR109
5458	adrp	x0, .LANCHOR110
5459	mov	w1, w3
5460	add	x0, x0, :lo12:.LANCHOR110
5461	b	.L932
5462	.size	zftl_get_free_sblk, .-zftl_get_free_sblk
5463	.section	.text.zftl_remove_data_node,"ax",@progbits
5464	.align	2
5465	.global	zftl_remove_data_node
5466	.type	zftl_remove_data_node, %function
5467zftl_remove_data_node:
5468	and	w1, w0, 65535
5469	adrp	x0, .LANCHOR9
5470	ldr	x0, [x0, #:lo12:.LANCHOR9]
5471	add	x0, x0, x1, uxth 2
5472	ldrb	w2, [x0, 2]
5473	and	w2, w2, 224
5474	cmp	w2, 64
5475	bne	.L935
5476	adrp	x2, .LANCHOR103
5477	adrp	x0, .LANCHOR101
5478	add	x2, x2, :lo12:.LANCHOR103
5479	add	x0, x0, :lo12:.LANCHOR101
5480.L938:
5481	b	_list_remove_node
5482.L935:
5483	cmp	w2, 96
5484	bne	.L936
5485	adrp	x2, .LANCHOR105
5486	adrp	x0, .LANCHOR96
5487	add	x2, x2, :lo12:.LANCHOR105
5488	add	x0, x0, :lo12:.LANCHOR96
5489	b	.L938
5490.L936:
5491	cmp	w2, 160
5492	bne	.L934
5493	adrp	x2, .LANCHOR97
5494	adrp	x0, .LANCHOR98
5495	add	x2, x2, :lo12:.LANCHOR97
5496	add	x0, x0, :lo12:.LANCHOR98
5497	b	.L938
5498.L934:
5499	ret
5500	.size	zftl_remove_data_node, .-zftl_remove_data_node
5501	.section	.text.zftl_remove_free_node,"ax",@progbits
5502	.align	2
5503	.global	zftl_remove_free_node
5504	.type	zftl_remove_free_node, %function
5505zftl_remove_free_node:
5506	and	w1, w0, 65535
5507	adrp	x0, .LANCHOR9
5508	ldr	x0, [x0, #:lo12:.LANCHOR9]
5509	add	x0, x0, x1, uxth 2
5510	ldrb	w0, [x0, 2]
5511	ands	w0, w0, 24
5512	bne	.L940
5513	adrp	x2, .LANCHOR109
5514	adrp	x0, .LANCHOR110
5515	add	x2, x2, :lo12:.LANCHOR109
5516	add	x0, x0, :lo12:.LANCHOR110
5517.L942:
5518	b	_list_remove_node
5519.L940:
5520	cmp	w0, 16
5521	bne	.L941
5522	adrp	x2, .LANCHOR111
5523	adrp	x0, .LANCHOR112
5524	add	x2, x2, :lo12:.LANCHOR111
5525	add	x0, x0, :lo12:.LANCHOR112
5526	b	.L942
5527.L941:
5528	adrp	x2, .LANCHOR113
5529	adrp	x0, .LANCHOR114
5530	add	x2, x2, :lo12:.LANCHOR113
5531	add	x0, x0, :lo12:.LANCHOR114
5532	b	.L942
5533	.size	zftl_remove_free_node, .-zftl_remove_free_node
5534	.section	.text.zftl_list_update_data_list,"ax",@progbits
5535	.align	2
5536	.global	zftl_list_update_data_list
5537	.type	zftl_list_update_data_list, %function
5538zftl_list_update_data_list:
5539	and	w1, w0, 65535
5540	adrp	x0, .LANCHOR9
5541	ldr	x0, [x0, #:lo12:.LANCHOR9]
5542	add	x0, x0, x1, uxth 2
5543	ldrb	w2, [x0, 2]
5544	and	w2, w2, 224
5545	cmp	w2, 64
5546	bne	.L944
5547	adrp	x2, .LANCHOR103
5548	adrp	x0, .LANCHOR101
5549	add	x2, x2, :lo12:.LANCHOR103
5550	add	x0, x0, :lo12:.LANCHOR101
5551.L947:
5552	b	_list_update_data_list
5553.L944:
5554	cmp	w2, 96
5555	bne	.L945
5556	adrp	x2, .LANCHOR105
5557	adrp	x0, .LANCHOR96
5558	add	x2, x2, :lo12:.LANCHOR105
5559	add	x0, x0, :lo12:.LANCHOR96
5560	b	.L947
5561.L945:
5562	cmp	w2, 160
5563	bne	.L943
5564	adrp	x2, .LANCHOR97
5565	adrp	x0, .LANCHOR98
5566	add	x2, x2, :lo12:.LANCHOR97
5567	add	x0, x0, :lo12:.LANCHOR98
5568	b	.L947
5569.L943:
5570	ret
5571	.size	zftl_list_update_data_list, .-zftl_list_update_data_list
5572	.section	.text.print_list_info,"ax",@progbits
5573	.align	2
5574	.global	print_list_info
5575	.type	print_list_info, %function
5576print_list_info:
5577	sub	sp, sp, #96
5578	stp	x29, x30, [sp, 32]
5579	add	x29, sp, 32
5580	ldrh	w2, [x1]
5581	ldr	x1, [x0]
5582	stp	x19, x20, [sp, 48]
5583	mov	x19, x0
5584	stp	x21, x22, [sp, 64]
5585	adrp	x0, .LC63
5586	stp	x23, x24, [sp, 80]
5587	add	x0, x0, :lo12:.LC63
5588	bl	printf
5589	ldr	x19, [x19]
5590	cbz	x19, .L948
5591	mov	x24, -6148914691236517206
5592	adrp	x22, .LC64
5593	adrp	x21, .LANCHOR115
5594	add	x22, x22, :lo12:.LC64
5595	add	x21, x21, :lo12:.LANCHOR115
5596	mov	w20, 0
5597	adrp	x23, .LANCHOR4
5598	movk	x24, 0xaaab, lsl 0
5599.L952:
5600	ldr	x2, [x23, #:lo12:.LANCHOR4]
5601	adrp	x1, .LANCHOR9
5602	adrp	x8, .LANCHOR11
5603	ldrh	w5, [x19, 4]
5604	sub	x2, x19, x2
5605	ldr	x1, [x1, #:lo12:.LANCHOR9]
5606	asr	x2, x2, 1
5607	ldr	x8, [x8, #:lo12:.LANCHOR11]
5608	ldrh	w4, [x19, 2]
5609	mul	x2, x2, x24
5610	and	x7, x2, 65535
5611	and	w2, w2, 65535
5612	lsl	x0, x7, 2
5613	add	x3, x1, x0
5614	ldrh	w7, [x8, x7, lsl 1]
5615	ldrb	w6, [x3, 2]
5616	ldrh	w3, [x19]
5617	str	w7, [sp, 16]
5618	ldrh	w7, [x1, x0]
5619	and	w7, w7, 2047
5620	str	w7, [sp, 8]
5621	ubfx	x7, x6, 3, 2
5622	ubfx	x6, x6, 5, 3
5623	ldr	w0, [x1, x0]
5624	mov	w1, w20
5625	ubfx	x0, x0, 11, 8
5626	str	w0, [sp]
5627	mov	x0, x22
5628	bl	printf
5629	ldrh	w19, [x19]
5630	mov	w0, 65535
5631	cmp	w19, w0
5632	beq	.L948
5633	ldr	x0, [x23, #:lo12:.LANCHOR4]
5634	mov	w1, 6
5635	add	w20, w20, 1
5636	and	w20, w20, 65535
5637	umaddl	x19, w19, w1, x0
5638	ldrh	w0, [x21]
5639	cmp	w0, w20
5640	bcs	.L952
5641.L948:
5642	ldp	x19, x20, [sp, 48]
5643	ldp	x21, x22, [sp, 64]
5644	ldp	x23, x24, [sp, 80]
5645	ldp	x29, x30, [sp, 32]
5646	add	sp, sp, 96
5647	ret
5648	.size	print_list_info, .-print_list_info
5649	.section	.text.dump_all_list_info,"ax",@progbits
5650	.align	2
5651	.global	dump_all_list_info
5652	.type	dump_all_list_info, %function
5653dump_all_list_info:
5654	stp	x29, x30, [sp, -16]!
5655	adrp	x1, .LANCHOR109
5656	adrp	x0, .LANCHOR110
5657	add	x1, x1, :lo12:.LANCHOR109
5658	add	x29, sp, 0
5659	add	x0, x0, :lo12:.LANCHOR110
5660	bl	print_list_info
5661	adrp	x1, .LANCHOR111
5662	adrp	x0, .LANCHOR112
5663	add	x1, x1, :lo12:.LANCHOR111
5664	add	x0, x0, :lo12:.LANCHOR112
5665	bl	print_list_info
5666	adrp	x1, .LANCHOR113
5667	adrp	x0, .LANCHOR114
5668	add	x1, x1, :lo12:.LANCHOR113
5669	add	x0, x0, :lo12:.LANCHOR114
5670	bl	print_list_info
5671	adrp	x1, .LANCHOR103
5672	adrp	x0, .LANCHOR101
5673	add	x1, x1, :lo12:.LANCHOR103
5674	add	x0, x0, :lo12:.LANCHOR101
5675	bl	print_list_info
5676	adrp	x1, .LANCHOR105
5677	adrp	x0, .LANCHOR96
5678	add	x1, x1, :lo12:.LANCHOR105
5679	add	x0, x0, :lo12:.LANCHOR96
5680	bl	print_list_info
5681	ldp	x29, x30, [sp], 16
5682	adrp	x1, .LANCHOR97
5683	adrp	x0, .LANCHOR98
5684	add	x1, x1, :lo12:.LANCHOR97
5685	add	x0, x0, :lo12:.LANCHOR98
5686	b	print_list_info
5687	.size	dump_all_list_info, .-dump_all_list_info
5688	.section	.text.ftl_tmp_into_update,"ax",@progbits
5689	.align	2
5690	.global	ftl_tmp_into_update
5691	.type	ftl_tmp_into_update, %function
5692ftl_tmp_into_update:
5693	adrp	x0, .LANCHOR69
5694	ldr	x0, [x0, #:lo12:.LANCHOR69]
5695	ldr	w1, [x0, 16]
5696	cmp	w1, 2048
5697	bls	.L957
5698	ldr	w2, [x0, 20]
5699	add	w2, w2, w1, lsr 11
5700	and	w1, w1, 2047
5701	stp	w1, w2, [x0, 16]
5702.L957:
5703	ldr	w1, [x0, 24]
5704	cmp	w1, 2048
5705	bls	.L958
5706	ldr	w2, [x0, 28]
5707	add	w2, w2, w1, lsr 11
5708	and	w1, w1, 2047
5709	stp	w1, w2, [x0, 24]
5710.L958:
5711	ldr	w1, [x0, 32]
5712	cmp	w1, 1024
5713	bls	.L959
5714	ldr	w2, [x0, 36]
5715	add	w2, w2, w1, lsr 10
5716	and	w1, w1, 1023
5717	stp	w1, w2, [x0, 32]
5718.L959:
5719	ldr	w1, [x0, 40]
5720	cmp	w1, 1024
5721	bls	.L956
5722	ldr	w2, [x0, 44]
5723	add	w2, w2, w1, lsr 10
5724	and	w1, w1, 1023
5725	stp	w1, w2, [x0, 40]
5726.L956:
5727	ret
5728	.size	ftl_tmp_into_update, .-ftl_tmp_into_update
5729	.section	.text.ftl_get_blk_list_in_sblk,"ax",@progbits
5730	.align	2
5731	.global	ftl_get_blk_list_in_sblk
5732	.type	ftl_get_blk_list_in_sblk, %function
5733ftl_get_blk_list_in_sblk:
5734	adrp	x2, .LANCHOR9
5735	and	w0, w0, 65535
5736	mov	w7, 24
5737	adrp	x8, .LANCHOR80
5738	ldr	x2, [x2, #:lo12:.LANCHOR9]
5739	add	x8, x8, :lo12:.LANCHOR80
5740	mov	w3, 0
5741	add	x2, x2, x0, uxth 2
5742	ldrb	w13, [x2, 3]
5743	adrp	x2, .LANCHOR85
5744	ldrb	w11, [x2, #:lo12:.LANCHOR85]
5745	adrp	x2, .LANCHOR81
5746	ldrb	w6, [x2, #:lo12:.LANCHOR81]
5747	adrp	x2, .LANCHOR31
5748	ldrb	w2, [x2, #:lo12:.LANCHOR31]
5749	sub	w7, w7, w2
5750	and	w2, w6, 65535
5751	mul	w0, w0, w2
5752	sub	w2, w2, #1
5753	sxth	w5, w2
5754	and	w4, w0, 65535
5755	mov	w0, 0
5756.L962:
5757	cmp	w3, w11
5758	blt	.L966
5759	sxtw	x2, w0
5760	mov	w3, -1
5761.L967:
5762	cmp	w11, w2
5763	bgt	.L968
5764	ret
5765.L966:
5766	asr	w2, w13, w3
5767	tbnz	x2, 0, .L963
5768	sdiv	w2, w3, w6
5769	ldrh	w10, [x8]
5770	sbfiz	x12, x0, 1, 32
5771	cmp	w6, 1
5772	sub	w10, w7, w10
5773	lsl	w2, w2, w10
5774	add	w2, w4, w2
5775	and	w2, w2, 65535
5776	bhi	.L964
5777.L969:
5778	add	w0, w0, 1
5779	strh	w2, [x1, x12]
5780.L963:
5781	add	w3, w3, 1
5782	b	.L962
5783.L964:
5784	and	w10, w5, w3
5785	add	w2, w2, w10
5786	b	.L969
5787.L968:
5788	strh	w3, [x1, x2, lsl 1]
5789	add	x2, x2, 1
5790	b	.L967
5791	.size	ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk
5792	.section	.text.ftl_ink_check_sblk,"ax",@progbits
5793	.align	2
5794	.global	ftl_ink_check_sblk
5795	.type	ftl_ink_check_sblk, %function
5796ftl_ink_check_sblk:
5797	ret
5798	.size	ftl_ink_check_sblk, .-ftl_ink_check_sblk
5799	.section	.text.ftl_alloc_sblk,"ax",@progbits
5800	.align	2
5801	.global	ftl_alloc_sblk
5802	.type	ftl_alloc_sblk, %function
5803ftl_alloc_sblk:
5804	stp	x29, x30, [sp, -64]!
5805	cmp	w0, 5
5806	add	x29, sp, 0
5807	str	x23, [sp, 48]
5808	and	w23, w0, 65535
5809	stp	x19, x20, [sp, 16]
5810	mov	w1, w23
5811	stp	x21, x22, [sp, 32]
5812	cset	w20, eq
5813	mov	w21, w0
5814	mov	w0, 0
5815	bl	zftl_get_free_sblk
5816	and	w19, w0, 65535
5817	mov	w0, 65535
5818	cmp	w19, w0
5819	beq	.L973
5820	adrp	x0, .LANCHOR9
5821	mov	w22, w19
5822	lsl	w20, w20, 1
5823	ldr	x0, [x0, #:lo12:.LANCHOR9]
5824	add	x19, x0, x19, uxth 2
5825	ldrb	w0, [x19, 2]
5826	tst	w0, 224
5827	beq	.L974
5828	adrp	x1, .LANCHOR116
5829	adrp	x0, .LC0
5830	mov	w2, 1014
5831	add	x1, x1, :lo12:.LANCHOR116
5832	add	x0, x0, :lo12:.LC0
5833	bl	printf
5834.L974:
5835	ldrb	w0, [x19, 2]
5836	bfi	w0, w21, 5, 3
5837	ubfx	x1, x0, 3, 2
5838	orr	w1, w20, w1
5839	bfi	w0, w1, 3, 2
5840	strb	w0, [x19, 2]
5841	and	w1, w0, 24
5842	cmp	w1, 24
5843	bne	.L975
5844	cbnz	w20, .L975
5845	mov	w1, 1
5846	bfi	w0, w1, 3, 2
5847	strb	w0, [x19, 2]
5848.L975:
5849	mov	w0, w22
5850	ldr	x23, [sp, 48]
5851	ldp	x19, x20, [sp, 16]
5852	ldp	x21, x22, [sp, 32]
5853	ldp	x29, x30, [sp], 64
5854	ret
5855.L973:
5856	mov	w1, w23
5857	ldr	x23, [sp, 48]
5858	ldp	x19, x20, [sp, 16]
5859	mov	w0, 0
5860	ldp	x21, x22, [sp, 32]
5861	ldp	x29, x30, [sp], 64
5862	b	zftl_get_free_sblk
5863	.size	ftl_alloc_sblk, .-ftl_alloc_sblk
5864	.section	.text.ftl_erase_phy_blk,"ax",@progbits
5865	.align	2
5866	.global	ftl_erase_phy_blk
5867	.type	ftl_erase_phy_blk, %function
5868ftl_erase_phy_blk:
5869	stp	x29, x30, [sp, -48]!
5870	and	w0, w0, 65535
5871	add	x29, sp, 0
5872	stp	x21, x22, [sp, 32]
5873	mov	w21, w1
5874	adrp	x1, .LANCHOR31
5875	stp	x19, x20, [sp, 16]
5876	adrp	x22, .LANCHOR117
5877	ldrb	w19, [x1, #:lo12:.LANCHOR31]
5878	mov	w1, 24
5879	sub	w19, w1, w19
5880	adrp	x1, .LANCHOR80
5881	ldrh	w1, [x1, #:lo12:.LANCHOR80]
5882	sub	w1, w19, w1
5883	mov	w19, 1
5884	lsl	w19, w19, w1
5885	sub	w19, w19, #1
5886	and	w19, w19, w0
5887	asr	w20, w0, w1
5888	adrp	x0, .LANCHOR86
5889	sxth	w19, w19
5890	ldrb	w0, [x0, #:lo12:.LANCHOR86]
5891	cbz	w0, .L982
5892	adrp	x0, .LANCHOR87
5893	ldrb	w0, [x0, #:lo12:.LANCHOR87]
5894	cbnz	w0, .L982
5895	ldrh	w2, [x22, #:lo12:.LANCHOR117]
5896	cmp	w21, 0
5897	cset	w1, eq
5898	mov	w0, w20
5899	mul	w2, w2, w19
5900	bl	flash_erase_block_en
5901.L982:
5902	ldrh	w2, [x22, #:lo12:.LANCHOR117]
5903	mov	w1, w21
5904	mov	w0, w20
5905	ldp	x21, x22, [sp, 32]
5906	mul	w2, w2, w19
5907	ldp	x19, x20, [sp, 16]
5908	ldp	x29, x30, [sp], 48
5909	b	flash_erase_block_en
5910	.size	ftl_erase_phy_blk, .-ftl_erase_phy_blk
5911	.section	.text.ftl_erase_sblk,"ax",@progbits
5912	.align	2
5913	.global	ftl_erase_sblk
5914	.type	ftl_erase_sblk, %function
5915ftl_erase_sblk:
5916	stp	x29, x30, [sp, -176]!
5917	add	x29, sp, 0
5918	stp	x23, x24, [sp, 48]
5919	adrp	x23, .LANCHOR9
5920	stp	x25, x26, [sp, 64]
5921	and	w26, w0, 65535
5922	ldr	x0, [x23, #:lo12:.LANCHOR9]
5923	adrp	x25, .LANCHOR118
5924	stp	x21, x22, [sp, 32]
5925	ubfiz	x22, x26, 2, 16
5926	add	x0, x0, x22
5927	stp	x27, x28, [sp, 80]
5928	stp	x19, x20, [sp, 16]
5929	adrp	x24, .LANCHOR81
5930	mov	w20, w1
5931	add	x25, x25, :lo12:.LANCHOR118
5932	ldrb	w28, [x0, 3]
5933	add	x24, x24, :lo12:.LANCHOR81
5934	add	x27, x29, 112
5935	mov	w19, 0
5936.L988:
5937	ldrb	w0, [x25]
5938	cmp	w19, w0
5939	bge	.L999
5940	ldrb	w1, [x24]
5941	adrp	x0, .LANCHOR117
5942	mov	w21, 0
5943	ldrh	w3, [x0, #:lo12:.LANCHOR117]
5944	sub	w4, w1, #1
5945	mov	w0, 0
5946	mul	w6, w19, w1
5947	mul	w5, w26, w1
5948	b	.L1000
5949.L990:
5950	add	w2, w0, w6
5951	asr	w2, w28, w2
5952	tbnz	x2, 0, .L989
5953	and	w2, w0, w4
5954	add	w2, w2, w5
5955	mul	w2, w2, w3
5956	str	w2, [x27, w21, sxtw 2]
5957	add	w21, w21, 1
5958.L989:
5959	add	w0, w0, 1
5960.L1000:
5961	cmp	w0, w1
5962	blt	.L990
5963	cmp	w1, 4
5964	bne	.L991
5965	mov	x3, 0
5966.L992:
5967	cmp	w21, w3
5968	bgt	.L993
5969.L994:
5970	add	w19, w19, 1
5971	b	.L988
5972.L993:
5973	ldr	w2, [x27, x3, lsl 2]
5974	mov	w1, w20
5975	str	x3, [x29, 104]
5976	mov	w0, w19
5977	bl	flash_erase_block_en
5978	ldr	x3, [x29, 104]
5979	add	x3, x3, 1
5980	b	.L992
5981.L991:
5982	cmp	w21, 2
5983	bne	.L995
5984	adrp	x0, .LANCHOR86
5985	ldrb	w0, [x0, #:lo12:.LANCHOR86]
5986	cbz	w0, .L996
5987	adrp	x0, .LANCHOR87
5988	ldrb	w0, [x0, #:lo12:.LANCHOR87]
5989	cbnz	w0, .L996
5990	ldp	w2, w3, [x29, 112]
5991	cmp	w20, 0
5992	cset	w1, eq
5993	mov	w0, w19
5994	bl	flash_erase_duplane_block
5995.L996:
5996	ldp	w2, w3, [x29, 112]
5997	mov	w1, w20
5998	mov	w0, w19
5999	bl	flash_erase_duplane_block
6000	b	.L994
6001.L995:
6002	cmp	w21, 1
6003	bne	.L994
6004	adrp	x0, .LANCHOR86
6005	ldrb	w0, [x0, #:lo12:.LANCHOR86]
6006	cbz	w0, .L998
6007	adrp	x0, .LANCHOR87
6008	ldrb	w0, [x0, #:lo12:.LANCHOR87]
6009	cbnz	w0, .L998
6010	ldr	w2, [x29, 112]
6011	cmp	w20, 0
6012	cset	w1, eq
6013	mov	w0, w19
6014	bl	flash_erase_block_en
6015.L998:
6016	ldr	w2, [x29, 112]
6017	mov	w1, w20
6018	mov	w0, w19
6019	bl	flash_erase_block_en
6020	b	.L994
6021.L999:
6022	adrp	x2, .LANCHOR69
6023	ldr	x3, [x23, #:lo12:.LANCHOR9]
6024	cbnz	w20, .L1001
6025	ldrh	w1, [x3, x22]
6026	add	w0, w1, 1
6027	and	w0, w0, 2047
6028	bfi	w1, w0, 0, 11
6029	strh	w1, [x3, x22]
6030	ldr	x1, [x2, #:lo12:.LANCHOR69]
6031	ldr	w2, [x1, 84]
6032	add	w2, w2, 1
6033	str	w2, [x1, 84]
6034	ldrh	w2, [x1, 96]
6035	cmp	w2, w0
6036	bge	.L1003
6037	strh	w0, [x1, 96]
6038.L1003:
6039	ldp	x19, x20, [sp, 16]
6040	mov	w0, 0
6041	ldp	x21, x22, [sp, 32]
6042	ldp	x23, x24, [sp, 48]
6043	ldp	x25, x26, [sp, 64]
6044	ldp	x27, x28, [sp, 80]
6045	ldp	x29, x30, [sp], 176
6046	ret
6047.L1001:
6048	ldr	w1, [x3, x22]
6049	ubfx	x0, x1, 11, 8
6050	add	w0, w0, 1
6051	and	w0, w0, 255
6052	bfi	w1, w0, 11, 8
6053	str	w1, [x3, x22]
6054	and	w0, w0, 65535
6055	ldr	x1, [x2, #:lo12:.LANCHOR69]
6056	ldr	w2, [x1, 80]
6057	add	w2, w2, 1
6058	str	w2, [x1, 80]
6059	ldrh	w2, [x1, 98]
6060	cmp	w2, w0
6061	bcs	.L1003
6062	strh	w0, [x1, 98]
6063	b	.L1003
6064	.size	ftl_erase_sblk, .-ftl_erase_sblk
6065	.section	.text.ftl_alloc_sys_blk,"ax",@progbits
6066	.align	2
6067	.global	ftl_alloc_sys_blk
6068	.type	ftl_alloc_sys_blk, %function
6069ftl_alloc_sys_blk:
6070	stp	x29, x30, [sp, -32]!
6071	adrp	x0, .LANCHOR69
6072	add	x29, sp, 0
6073	ldr	x1, [x0, #:lo12:.LANCHOR69]
6074	ldrh	w2, [x1, 136]
6075	str	x19, [sp, 16]
6076	mov	x19, x0
6077	cmp	w2, 63
6078	bls	.L1013
6079	strh	wzr, [x1, 136]
6080.L1013:
6081	ldrh	w0, [x1, 112]
6082	cbnz	w0, .L1014
6083	adrp	x1, .LANCHOR119
6084	adrp	x0, .LC0
6085	mov	w2, 1364
6086	add	x1, x1, :lo12:.LANCHOR119
6087	add	x0, x0, :lo12:.LC0
6088	bl	printf
6089.L1014:
6090	ldr	x1, [x19, #:lo12:.LANCHOR69]
6091	mov	w5, 65535
6092.L1017:
6093	ldrh	w2, [x1, 136]
6094.L1015:
6095	mov	w3, w2
6096	cmp	w2, 63
6097	ble	.L1016
6098	strh	wzr, [x1, 136]
6099	b	.L1017
6100.L1016:
6101	add	x4, x2, 1
6102	add	x0, x1, x4, lsl 1
6103	ldrh	w0, [x0, 158]
6104	cmp	w0, w5
6105	bne	.L1020
6106	mov	x2, x4
6107	b	.L1015
6108.L1020:
6109	add	x3, x1, x3, sxtw 1
6110	mov	w4, -1
6111	ldr	x19, [sp, 16]
6112	strh	w4, [x3, 160]
6113	strh	w2, [x1, 136]
6114	ldrh	w2, [x1, 112]
6115	sub	w2, w2, #1
6116	strh	w2, [x1, 112]
6117	ldp	x29, x30, [sp], 32
6118	ret
6119	.size	ftl_alloc_sys_blk, .-ftl_alloc_sys_blk
6120	.section	.text.ftl_free_sys_blk,"ax",@progbits
6121	.align	2
6122	.global	ftl_free_sys_blk
6123	.type	ftl_free_sys_blk, %function
6124ftl_free_sys_blk:
6125	stp	x29, x30, [sp, -32]!
6126	add	x29, sp, 0
6127	stp	x19, x20, [sp, 16]
6128	and	w20, w0, 65535
6129	adrp	x0, .LANCHOR69
6130	mov	x19, x0
6131	ldr	x1, [x0, #:lo12:.LANCHOR69]
6132	ldrh	w2, [x1, 138]
6133	cmp	w2, 63
6134	bls	.L1023
6135	strh	wzr, [x1, 138]
6136.L1023:
6137	ldrh	w0, [x1, 112]
6138	cmp	w0, 63
6139	bls	.L1024
6140	adrp	x1, .LANCHOR120
6141	adrp	x0, .LC0
6142	mov	w2, 1391
6143	add	x1, x1, :lo12:.LANCHOR120
6144	add	x0, x0, :lo12:.LC0
6145	bl	printf
6146.L1024:
6147	ldr	x0, [x19, #:lo12:.LANCHOR69]
6148	mov	w4, 65535
6149.L1027:
6150	ldrh	w1, [x0, 138]
6151.L1025:
6152	mov	w2, w1
6153	cmp	w1, 63
6154	ble	.L1026
6155	strh	wzr, [x0, 138]
6156	b	.L1027
6157.L1026:
6158	add	x3, x1, 1
6159	add	x5, x0, x3, lsl 1
6160	ldrh	w5, [x5, 158]
6161	cmp	w5, w4
6162	bne	.L1028
6163	add	x2, x0, x2, sxtw 1
6164	strh	w20, [x2, 160]
6165	strh	w1, [x0, 138]
6166	ldrh	w1, [x0, 112]
6167	ldp	x19, x20, [sp, 16]
6168	add	w1, w1, 1
6169	strh	w1, [x0, 112]
6170	ldp	x29, x30, [sp], 32
6171	ret
6172.L1028:
6173	mov	x1, x3
6174	b	.L1025
6175	.size	ftl_free_sys_blk, .-ftl_free_sys_blk
6176	.section	.text.ftl_info_data_recovery,"ax",@progbits
6177	.align	2
6178	.global	ftl_info_data_recovery
6179	.type	ftl_info_data_recovery, %function
6180ftl_info_data_recovery:
6181	ldrh	w2, [x0]
6182	mov	w1, 65535
6183	cmp	w2, w1
6184	beq	.L1041
6185	stp	x29, x30, [sp, -48]!
6186	adrp	x1, .LANCHOR9
6187	add	x29, sp, 0
6188	stp	x19, x20, [sp, 16]
6189	ubfiz	x19, x2, 2, 16
6190	ldr	x20, [x1, #:lo12:.LANCHOR9]
6191	str	x21, [sp, 32]
6192	add	x21, x20, x19
6193	ldrb	w1, [x21, 2]
6194	tst	w1, 224
6195	bne	.L1031
6196	ldrb	w0, [x0, 4]
6197	bfi	w1, w0, 5, 3
6198	strb	w1, [x21, 2]
6199	mov	w0, w2
6200	bl	zftl_remove_free_node
6201	ldrb	w0, [x21, 2]
6202	adrp	x1, .LANCHOR69
6203	ldr	x3, [x1, #:lo12:.LANCHOR69]
6204	tbz	x0, 3, .L1035
6205	ldrh	w2, [x3, 116]
6206	sub	w2, w2, #1
6207	strh	w2, [x3, 116]
6208.L1036:
6209	and	w0, w0, 224
6210	cmp	w0, 160
6211	bne	.L1038
6212	ldr	w0, [x20, x19]
6213	ldr	x1, [x1, #:lo12:.LANCHOR69]
6214	ubfx	x2, x0, 11, 8
6215	add	w2, w2, 1
6216	bfi	w0, w2, 11, 8
6217	str	w0, [x20, x19]
6218	ldrh	w0, [x1, 120]
6219	sub	w0, w0, #1
6220	strh	w0, [x1, 120]
6221.L1031:
6222	ldp	x19, x20, [sp, 16]
6223	ldr	x21, [sp, 32]
6224	ldp	x29, x30, [sp], 48
6225	ret
6226.L1035:
6227	tst	w0, 24
6228	bne	.L1037
6229	ldrh	w2, [x3, 114]
6230	sub	w2, w2, #1
6231	strh	w2, [x3, 114]
6232	b	.L1036
6233.L1037:
6234	ldrh	w2, [x3, 118]
6235	sub	w2, w2, #1
6236	strh	w2, [x3, 118]
6237	b	.L1036
6238.L1038:
6239	ldrh	w2, [x20, x19]
6240	cmp	w0, 64
6241	add	w3, w2, 1
6242	bfi	w2, w3, 0, 11
6243	strh	w2, [x20, x19]
6244	bne	.L1039
6245	ldr	x1, [x1, #:lo12:.LANCHOR69]
6246	ldrh	w0, [x1, 122]
6247	sub	w0, w0, #1
6248	strh	w0, [x1, 122]
6249	b	.L1031
6250.L1039:
6251	cmp	w0, 96
6252	bne	.L1031
6253	ldr	x1, [x1, #:lo12:.LANCHOR69]
6254	ldrh	w0, [x1, 124]
6255	sub	w0, w0, #1
6256	strh	w0, [x1, 124]
6257	b	.L1031
6258.L1041:
6259	ret
6260	.size	ftl_info_data_recovery, .-ftl_info_data_recovery
6261	.section	.text.ftl_get_ppa_from_index,"ax",@progbits
6262	.align	2
6263	.global	ftl_get_ppa_from_index
6264	.type	ftl_get_ppa_from_index, %function
6265ftl_get_ppa_from_index:
6266	stp	x29, x30, [sp, -32]!
6267	adrp	x1, .LANCHOR12
6268	adrp	x3, .LANCHOR85
6269	and	w0, w0, 65535
6270	add	x29, sp, 0
6271	ldr	x2, [x1, #:lo12:.LANCHOR12]
6272	adrp	x1, .LANCHOR100
6273	ldrb	w3, [x3, #:lo12:.LANCHOR85]
6274	ldrh	w1, [x1, #:lo12:.LANCHOR100]
6275	stp	x19, x20, [sp, 16]
6276	mul	w1, w1, w3
6277	cmp	w0, w1
6278	bge	.L1045
6279	add	x2, x2, 16
6280.L1046:
6281	ldrb	w1, [x2, 9]
6282	sdiv	w19, w0, w1
6283	msub	w0, w19, w1, w0
6284	add	x0, x2, x0, uxth 1
6285	ldrh	w20, [x0, 16]
6286	mov	w0, 65535
6287	cmp	w20, w0
6288	bne	.L1047
6289	adrp	x1, .LANCHOR121
6290	adrp	x0, .LC0
6291	mov	w2, 1950
6292	add	x1, x1, :lo12:.LANCHOR121
6293	add	x0, x0, :lo12:.LC0
6294	bl	printf
6295.L1047:
6296	adrp	x0, .LANCHOR117
6297	ldrh	w0, [x0, #:lo12:.LANCHOR117]
6298	madd	w0, w0, w20, w19
6299	ldp	x19, x20, [sp, 16]
6300	ldp	x29, x30, [sp], 32
6301	ret
6302.L1045:
6303	sub	w0, w0, w1
6304	add	x2, x2, 48
6305	and	w0, w0, 65535
6306	b	.L1046
6307	.size	ftl_get_ppa_from_index, .-ftl_get_ppa_from_index
6308	.section	.text.lpa_hash_get_ppa,"ax",@progbits
6309	.align	2
6310	.global	lpa_hash_get_ppa
6311	.type	lpa_hash_get_ppa, %function
6312lpa_hash_get_ppa:
6313	and	x2, x0, 255
6314	adrp	x1, .LANCHOR122
6315	add	x1, x1, :lo12:.LANCHOR122
6316	mov	w3, 65535
6317	ldrh	w1, [x1, x2, lsl 1]
6318	adrp	x2, .LANCHOR123
6319	ldr	x4, [x2, #:lo12:.LANCHOR123]
6320	adrp	x2, .LANCHOR124
6321	ldr	x5, [x2, #:lo12:.LANCHOR124]
6322.L1050:
6323	cmp	w1, w3
6324	bne	.L1052
6325	mov	w0, -1
6326	ret
6327.L1052:
6328	uxtw	x2, w1
6329	ldr	w6, [x4, x2, lsl 2]
6330	cmp	w0, w6
6331	bne	.L1051
6332	mov	w0, w1
6333	b	ftl_get_ppa_from_index
6334.L1051:
6335	ldrh	w1, [x5, x2, lsl 1]
6336	b	.L1050
6337	.size	lpa_hash_get_ppa, .-lpa_hash_get_ppa
6338	.section	.text.ftl_get_new_free_page,"ax",@progbits
6339	.align	2
6340	.global	ftl_get_new_free_page
6341	.type	ftl_get_new_free_page, %function
6342ftl_get_new_free_page:
6343	stp	x29, x30, [sp, -32]!
6344	add	x29, sp, 0
6345	ldrh	w1, [x0]
6346	str	x19, [sp, 16]
6347	mov	x19, x0
6348	mov	w0, 65535
6349	cmp	w1, w0
6350	bne	.L1054
6351	adrp	x1, .LANCHOR125
6352	adrp	x0, .LC0
6353	mov	w2, 2093
6354	add	x1, x1, :lo12:.LANCHOR125
6355	add	x0, x0, :lo12:.LC0
6356	bl	printf
6357.L1054:
6358	adrp	x0, .LANCHOR100
6359	ldrh	w1, [x19, 2]
6360	ldrh	w0, [x0, #:lo12:.LANCHOR100]
6361	cmp	w1, w0
6362	bne	.L1055
6363	adrp	x1, .LANCHOR125
6364	adrp	x0, .LC0
6365	mov	w2, 2094
6366	add	x1, x1, :lo12:.LANCHOR125
6367	add	x0, x0, :lo12:.LC0
6368	bl	printf
6369.L1055:
6370	ldrh	w0, [x19, 6]
6371	cbnz	w0, .L1056
6372	adrp	x1, .LANCHOR125
6373	adrp	x0, .LC0
6374	mov	w2, 2095
6375	add	x1, x1, :lo12:.LANCHOR125
6376	add	x0, x0, :lo12:.LC0
6377	bl	printf
6378.L1056:
6379	ldrb	w0, [x19, 5]
6380	mov	w2, 65535
6381	add	x0, x0, 8
6382	ldrh	w3, [x19, x0, lsl 1]
6383	adrp	x0, .LANCHOR85
6384	ldrb	w4, [x0, #:lo12:.LANCHOR85]
6385.L1057:
6386	cmp	w3, w2
6387	ldrb	w1, [x19, 5]
6388	beq	.L1059
6389	adrp	x0, .LANCHOR117
6390	add	w1, w1, 1
6391	and	w1, w1, 255
6392	ldrh	w2, [x19, 2]
6393	ldrh	w0, [x0, #:lo12:.LANCHOR117]
6394	cmp	w4, w1
6395	strb	w1, [x19, 5]
6396	mul	w0, w0, w3
6397	ldrh	w3, [x19, 6]
6398	sub	w3, w3, #1
6399	strh	w3, [x19, 6]
6400	ldrh	w3, [x19, 10]
6401	orr	w0, w0, w2
6402	add	w3, w3, 1
6403	strh	w3, [x19, 10]
6404	bne	.L1053
6405	add	w2, w2, 1
6406	strb	wzr, [x19, 5]
6407	strh	w2, [x19, 2]
6408.L1053:
6409	ldr	x19, [sp, 16]
6410	ldp	x29, x30, [sp], 32
6411	ret
6412.L1059:
6413	add	w1, w1, 1
6414	and	w1, w1, 255
6415	strb	w1, [x19, 5]
6416	cmp	w1, w4
6417	bne	.L1058
6418	ldrh	w0, [x19, 2]
6419	strb	wzr, [x19, 5]
6420	add	w0, w0, 1
6421	strh	w0, [x19, 2]
6422.L1058:
6423	ldrb	w0, [x19, 5]
6424	add	x0, x0, 8
6425	ldrh	w3, [x19, x0, lsl 1]
6426	b	.L1057
6427	.size	ftl_get_new_free_page, .-ftl_get_new_free_page
6428	.section	.text.ftl_ext_alloc_new_blk,"ax",@progbits
6429	.align	2
6430	.global	ftl_ext_alloc_new_blk
6431	.type	ftl_ext_alloc_new_blk, %function
6432ftl_ext_alloc_new_blk:
6433	stp	x29, x30, [sp, -32]!
6434	add	x29, sp, 0
6435	stp	x19, x20, [sp, 16]
6436	bl	ftl_alloc_sys_blk
6437	and	w0, w0, 65535
6438	mov	w1, 65533
6439	mov	w19, w0
6440	sub	w0, w0, #1
6441	cmp	w1, w0, uxth
6442	bcs	.L1063
6443	adrp	x1, .LANCHOR126
6444	adrp	x0, .LC0
6445	mov	w2, 2130
6446	add	x1, x1, :lo12:.LANCHOR126
6447	add	x0, x0, :lo12:.LC0
6448	bl	printf
6449.L1063:
6450	adrp	x20, .LANCHOR69
6451	mov	w1, 0
6452	mov	w0, w19
6453	bl	ftl_erase_phy_blk
6454	ldr	x0, [x20, #:lo12:.LANCHOR69]
6455	ldrh	w0, [x0, 130]
6456	bl	ftl_free_sys_blk
6457	ldr	x0, [x20, #:lo12:.LANCHOR69]
6458	strh	w19, [x0, 130]
6459	strh	wzr, [x0, 140]
6460	mov	w0, 0
6461	ldp	x19, x20, [sp, 16]
6462	ldp	x29, x30, [sp], 32
6463	ret
6464	.size	ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk
6465	.section	.text.ftl_total_vpn_update,"ax",@progbits
6466	.align	2
6467	.global	ftl_total_vpn_update
6468	.type	ftl_total_vpn_update, %function
6469ftl_total_vpn_update:
6470	adrp	x2, .LANCHOR127
6471	mov	x3, x2
6472	ldrh	w1, [x2, #:lo12:.LANCHOR127]
6473	cmp	w1, 4
6474	bhi	.L1066
6475	cbnz	w0, .L1066
6476	add	w1, w1, 1
6477	strh	w1, [x2, #:lo12:.LANCHOR127]
6478	ret
6479.L1066:
6480	adrp	x0, .LANCHOR8
6481	strh	wzr, [x3, #:lo12:.LANCHOR127]
6482	mov	x1, 0
6483	mov	w2, 0
6484	ldrh	w5, [x0, #:lo12:.LANCHOR8]
6485	adrp	x0, .LANCHOR11
6486	mov	w8, 65535
6487	ldr	x6, [x0, #:lo12:.LANCHOR11]
6488	adrp	x0, .LANCHOR9
6489	ldr	x7, [x0, #:lo12:.LANCHOR9]
6490	mov	w0, 0
6491.L1068:
6492	cmp	w5, w1, uxth
6493	bhi	.L1071
6494	adrp	x1, .LANCHOR12
6495	ldr	x1, [x1, #:lo12:.LANCHOR12]
6496	str	w2, [x1, 524]
6497	adrp	x2, .LANCHOR69
6498	str	w0, [x1, 528]
6499	ldr	x2, [x2, #:lo12:.LANCHOR69]
6500	ldrh	w2, [x2, 120]
6501	cbz	w2, .L1065
6502	udiv	w0, w0, w2
6503	str	w0, [x1, 532]
6504.L1065:
6505	ret
6506.L1071:
6507	ldrh	w3, [x6, x1, lsl 1]
6508	cmp	w3, w8
6509	beq	.L1069
6510	add	x4, x7, x1, lsl 2
6511	ldrb	w4, [x4, 2]
6512	and	w4, w4, 224
6513	cmp	w4, 160
6514	bne	.L1070
6515	add	w0, w0, w3
6516.L1069:
6517	add	x1, x1, 1
6518	b	.L1068
6519.L1070:
6520	add	w2, w2, w3
6521	b	.L1069
6522	.size	ftl_total_vpn_update, .-ftl_total_vpn_update
6523	.section	.text.ftl_vpn_update,"ax",@progbits
6524	.align	2
6525	.global	ftl_vpn_update
6526	.type	ftl_vpn_update, %function
6527ftl_vpn_update:
6528	stp	x29, x30, [sp, -32]!
6529	add	x29, sp, 0
6530	str	x19, [sp, 16]
6531	and	w19, w0, 65535
6532	mov	w0, w19
6533	bl	zftl_list_update_data_list
6534	adrp	x0, .LANCHOR11
6535	ubfiz	x19, x19, 1, 16
6536	ldr	x0, [x0, #:lo12:.LANCHOR11]
6537	ldrh	w0, [x0, x19]
6538	cbnz	w0, .L1078
6539	adrp	x1, .LANCHOR128
6540	mov	w0, 1
6541	str	w0, [x1, #:lo12:.LANCHOR128]
6542.L1076:
6543	ldr	x19, [sp, 16]
6544	ldp	x29, x30, [sp], 32
6545	ret
6546.L1078:
6547	mov	w0, 0
6548	b	.L1076
6549	.size	ftl_vpn_update, .-ftl_vpn_update
6550	.section	.text.ftl_vpn_decrement,"ax",@progbits
6551	.align	2
6552	.global	ftl_vpn_decrement
6553	.type	ftl_vpn_decrement, %function
6554ftl_vpn_decrement:
6555	stp	x29, x30, [sp, -32]!
6556	add	x29, sp, 0
6557	stp	x19, x20, [sp, 16]
6558	and	w19, w0, 65535
6559	mov	w0, 65535
6560	cmp	w19, w0
6561	beq	.L1081
6562	adrp	x0, .LANCHOR11
6563	uxtw	x1, w19
6564	lsl	x2, x1, 1
6565	ldr	x3, [x0, #:lo12:.LANCHOR11]
6566	ldrh	w0, [x3, x2]
6567	cbnz	w0, .L1082
6568	adrp	x0, .LANCHOR9
6569	mov	w2, 0
6570	ldr	x0, [x0, #:lo12:.LANCHOR9]
6571	add	x1, x0, x1, lsl 2
6572	adrp	x0, .LC65
6573	add	x0, x0, :lo12:.LC65
6574	ldrb	w3, [x1, 2]
6575	mov	w1, w19
6576	ubfx	x3, x3, 5, 3
6577	bl	printf
6578.L1087:
6579	mov	w0, 0
6580	b	.L1080
6581.L1082:
6582	sub	w0, w0, #1
6583	strh	w0, [x3, x2]
6584.L1081:
6585	adrp	x20, .LANCHOR78
6586	ldrh	w0, [x20, #:lo12:.LANCHOR78]
6587	cmp	w19, w0
6588	beq	.L1087
6589	mov	w1, 65535
6590	cmp	w0, w1
6591	bne	.L1084
6592	strh	w19, [x20, #:lo12:.LANCHOR78]
6593	b	.L1087
6594.L1084:
6595	bl	ftl_vpn_update
6596	cmp	w0, 0
6597	adrp	x1, .LANCHOR129
6598	cset	w0, ne
6599	ldrh	w3, [x20, #:lo12:.LANCHOR78]
6600	ldrh	w2, [x1, #:lo12:.LANCHOR129]
6601	strh	w19, [x20, #:lo12:.LANCHOR78]
6602	add	w2, w2, 1
6603	and	w2, w2, 65535
6604	cmp	w2, 7
6605	csel	w2, w2, wzr, ls
6606	strh	w2, [x1, #:lo12:.LANCHOR129]
6607	and	x2, x2, 65535
6608	adrp	x1, .LANCHOR79
6609	add	x1, x1, :lo12:.LANCHOR79
6610	strh	w3, [x1, x2, lsl 1]
6611.L1080:
6612	ldp	x19, x20, [sp, 16]
6613	ldp	x29, x30, [sp], 32
6614	ret
6615	.size	ftl_vpn_decrement, .-ftl_vpn_decrement
6616	.section	.text.lpa_hash_update_ppa,"ax",@progbits
6617	.align	2
6618	.global	lpa_hash_update_ppa
6619	.type	lpa_hash_update_ppa, %function
6620lpa_hash_update_ppa:
6621	adrp	x3, .LANCHOR122
6622	and	x5, x0, 255
6623	add	x4, x3, :lo12:.LANCHOR122
6624	mov	w7, 65535
6625	and	w2, w2, 65535
6626	mov	w12, w7
6627	ldrh	w6, [x4, x5, lsl 1]
6628	adrp	x4, .LANCHOR123
6629	ldr	x8, [x4, #:lo12:.LANCHOR123]
6630	adrp	x4, .LANCHOR124
6631	ldr	x4, [x4, #:lo12:.LANCHOR124]
6632.L1090:
6633	cmp	w6, w12
6634	beq	.L1094
6635	uxtw	x11, w6
6636	lsl	x10, x11, 2
6637	add	x13, x8, x10
6638	ldr	w10, [x8, x10]
6639	cmp	w0, w10
6640	lsl	x10, x11, 1
6641	bne	.L1091
6642	mov	w6, -1
6643	str	w6, [x13]
6644	cmp	w7, w12
6645	bne	.L1092
6646	add	x6, x3, :lo12:.LANCHOR122
6647	ldrh	w7, [x4, x10]
6648	strh	w7, [x6, x5, lsl 1]
6649.L1093:
6650	mov	w6, -1
6651	strh	w6, [x4, x11, lsl 1]
6652.L1094:
6653	uxtw	x6, w2
6654	add	x3, x3, :lo12:.LANCHOR122
6655	cmn	w1, #1
6656	str	w0, [x8, x6, lsl 2]
6657	ldrh	w0, [x3, x5, lsl 1]
6658	strh	w2, [x3, x5, lsl 1]
6659	strh	w0, [x4, x6, lsl 1]
6660	beq	.L1101
6661	stp	x29, x30, [sp, -16]!
6662	adrp	x0, .LANCHOR80
6663	add	x29, sp, 0
6664	ldrh	w3, [x0, #:lo12:.LANCHOR80]
6665	adrp	x0, .LANCHOR31
6666	ldrb	w2, [x0, #:lo12:.LANCHOR31]
6667	mov	w0, 24
6668	lsr	w1, w1, w3
6669	sub	w0, w0, w2
6670	sub	w2, w0, w3
6671	mov	w0, 1
6672	lsl	w0, w0, w2
6673	sub	w0, w0, #1
6674	and	w1, w0, w1
6675	adrp	x0, .LANCHOR81
6676	ldrb	w0, [x0, #:lo12:.LANCHOR81]
6677	udiv	w0, w1, w0
6678	bl	ftl_vpn_decrement
6679	mov	w0, -1
6680	ldp	x29, x30, [sp], 16
6681	ret
6682.L1092:
6683	ldrh	w6, [x4, x10]
6684	strh	w6, [x4, w7, uxtw 1]
6685	b	.L1093
6686.L1091:
6687	mov	w7, w6
6688	ldrh	w6, [x4, x10]
6689	b	.L1090
6690.L1101:
6691	mov	w0, -1
6692	ret
6693	.size	lpa_hash_update_ppa, .-lpa_hash_update_ppa
6694	.section	.text.ftl_write_completed,"ax",@progbits
6695	.align	2
6696	.global	ftl_write_completed
6697	.type	ftl_write_completed, %function
6698ftl_write_completed:
6699	stp	x29, x30, [sp, -80]!
6700	add	x29, sp, 0
6701	stp	x21, x22, [sp, 32]
6702	adrp	x21, .LANCHOR55
6703	stp	x19, x20, [sp, 16]
6704	add	x22, x21, :lo12:.LANCHOR55
6705	stp	x23, x24, [sp, 48]
6706	adrp	x20, .LANCHOR64
6707	mov	w23, 20041
6708	add	x20, x20, :lo12:.LANCHOR64
6709	str	x25, [sp, 64]
6710	movk	w23, 0x444b, lsl 16
6711	mov	w25, 0
6712.L1105:
6713	ldrb	w0, [x20]
6714	cmp	w0, 255
6715	bne	.L1116
6716	ldp	x19, x20, [sp, 16]
6717	ldp	x21, x22, [sp, 32]
6718	ldp	x23, x24, [sp, 48]
6719	ldr	x25, [sp, 64]
6720	ldp	x29, x30, [sp], 80
6721	ret
6722.L1116:
6723	add	x1, x21, :lo12:.LANCHOR55
6724	lsl	x2, x0, 6
6725	add	x24, x1, x2
6726	ubfiz	x19, x0, 6, 8
6727	add	x19, x1, x19
6728	ldrb	w1, [x1, x2]
6729	strb	w1, [x20]
6730	ldr	w1, [x24, 52]
6731	cmn	w1, #1
6732	bne	.L1106
6733	adrp	x1, .LANCHOR130
6734	ldrb	w1, [x1, #:lo12:.LANCHOR130]
6735	cbnz	w1, .L1107
6736	adrp	x1, .LANCHOR86
6737	ldrb	w1, [x1, #:lo12:.LANCHOR86]
6738	cbz	w1, .L1108
6739.L1107:
6740	adrp	x1, .LANCHOR69
6741	ldr	x1, [x1, #:lo12:.LANCHOR69]
6742	ldr	w1, [x1, 156]
6743	cmp	w1, w23
6744	beq	.L1109
6745.L1108:
6746	add	x1, x22, x0, lsl 6
6747	mov	w2, 24
6748	mov	w5, 65535
6749	ldr	w3, [x1, 40]
6750	adrp	x1, .LANCHOR80
6751	ldrh	w4, [x1, #:lo12:.LANCHOR80]
6752	adrp	x1, .LANCHOR31
6753	ldrb	w1, [x1, #:lo12:.LANCHOR31]
6754	sub	w1, w2, w1
6755	sub	w2, w1, w4
6756	mov	w1, 1
6757	lsr	w4, w3, w4
6758	lsl	w1, w1, w2
6759	adrp	x2, .LANCHOR81
6760	sub	w1, w1, #1
6761	ldrb	w2, [x2, #:lo12:.LANCHOR81]
6762	and	w1, w1, w4
6763	udiv	w1, w1, w2
6764	adrp	x2, .LANCHOR12
6765	mov	x24, x2
6766	ldr	x4, [x2, #:lo12:.LANCHOR12]
6767	and	w25, w1, 65535
6768	and	w1, w1, w5
6769	ldr	w6, [x4, 560]
6770	cmp	w6, w5
6771	bne	.L1110
6772	str	w1, [x4, 560]
6773	str	w3, [x4, 564]
6774.L1110:
6775	add	x0, x22, x0, lsl 6
6776	ldr	w2, [x0, 36]
6777	adrp	x0, .LC66
6778	add	x0, x0, :lo12:.LC66
6779	bl	printf
6780	ldr	x0, [x24, #:lo12:.LANCHOR12]
6781	ldr	w1, [x0, 556]
6782	add	w1, w1, 1
6783	str	w1, [x0, 556]
6784	ldrh	w1, [x0, 16]
6785	cmp	w1, w25
6786	bne	.L1111
6787	strh	wzr, [x0, 22]
6788.L1109:
6789	mov	x0, x19
6790	mov	w25, 1
6791	bl	ftl_write_buf
6792	b	.L1105
6793.L1111:
6794	ldrh	w1, [x0, 48]
6795	cmp	w1, w25
6796	bne	.L1109
6797	strh	wzr, [x0, 54]
6798	b	.L1109
6799.L1106:
6800	cbz	w25, .L1114
6801	ldp	w1, w2, [x24, 36]
6802	adrp	x0, .LC67
6803	add	x0, x0, :lo12:.LC67
6804	bl	printf
6805	mov	x0, x19
6806	bl	ftl_write_buf
6807	b	.L1105
6808.L1114:
6809	ldrh	w2, [x24, 48]
6810	ldr	w0, [x24, 36]
6811	ldr	w1, [x24, 44]
6812	bl	lpa_hash_update_ppa
6813	ldrb	w0, [x24, 2]
6814	tbz	x0, 2, .L1115
6815	and	w0, w0, -3
6816	strb	w0, [x24, 2]
6817	b	.L1105
6818.L1115:
6819	mov	x0, x19
6820	bl	zbuf_free
6821	b	.L1105
6822	.size	ftl_write_completed, .-ftl_write_completed
6823	.section	.text.ftl_mask_bad_block,"ax",@progbits
6824	.align	2
6825	.global	ftl_mask_bad_block
6826	.type	ftl_mask_bad_block, %function
6827ftl_mask_bad_block:
6828	stp	x29, x30, [sp, -32]!
6829	adrp	x1, .LANCHOR31
6830	mov	w6, 24
6831	mov	w4, 1
6832	add	x29, sp, 0
6833	ldrb	w1, [x1, #:lo12:.LANCHOR31]
6834	stp	x19, x20, [sp, 16]
6835	sub	w6, w6, w1
6836	lsl	w1, w4, w1
6837	sub	w1, w1, #1
6838	lsr	w2, w0, w6
6839	and	w1, w1, w2
6840	adrp	x2, .LANCHOR81
6841	and	w1, w1, 255
6842	ldrb	w5, [x2, #:lo12:.LANCHOR81]
6843	cmp	w5, 1
6844	mul	w2, w1, w5
6845	and	w19, w2, 255
6846	adrp	x2, .LANCHOR80
6847	ldrh	w3, [x2, #:lo12:.LANCHOR80]
6848	lsr	w0, w0, w3
6849	sub	w3, w6, w3
6850	lsl	w3, w4, w3
6851	sub	w3, w3, #1
6852	and	w3, w3, w0
6853	and	w4, w3, 65535
6854	udiv	w3, w3, w5
6855	and	w20, w3, 65535
6856	bls	.L1122
6857	sub	w2, w5, #1
6858	and	w2, w2, w4
6859	add	w2, w19, w2
6860	and	w19, w2, 255
6861.L1122:
6862	adrp	x0, .LANCHOR19
6863	ldr	w0, [x0, #:lo12:.LANCHOR19]
6864	tbz	x0, 14, .L1123
6865	adrp	x0, .LC68
6866	and	w3, w3, 65535
6867	mov	w2, w19
6868	add	x0, x0, :lo12:.LC68
6869	bl	printf
6870.L1123:
6871	adrp	x0, .LANCHOR8
6872	ldrh	w0, [x0, #:lo12:.LANCHOR8]
6873	cmp	w0, w20
6874	bls	.L1121
6875	adrp	x0, .LANCHOR9
6876	mov	w2, 1
6877	lsl	w2, w2, w19
6878	ldr	x0, [x0, #:lo12:.LANCHOR9]
6879	add	x20, x0, x20, uxth 2
6880	ldrb	w19, [x20, 3]
6881	orr	w2, w2, w19
6882	strb	w2, [x20, 3]
6883.L1121:
6884	ldp	x19, x20, [sp, 16]
6885	ldp	x29, x30, [sp], 32
6886	ret
6887	.size	ftl_mask_bad_block, .-ftl_mask_bad_block
6888	.section	.text.gc_free_bad_sblk,"ax",@progbits
6889	.align	2
6890	.global	gc_free_bad_sblk
6891	.type	gc_free_bad_sblk, %function
6892gc_free_bad_sblk:
6893	stp	x29, x30, [sp, -96]!
6894	add	x29, sp, 0
6895	stp	x23, x24, [sp, 48]
6896	and	w23, w0, 65535
6897	str	x27, [sp, 80]
6898	adrp	x27, .LANCHOR76
6899	add	x0, x27, :lo12:.LANCHOR76
6900	stp	x19, x20, [sp, 16]
6901	stp	x21, x22, [sp, 32]
6902	stp	x25, x26, [sp, 64]
6903	ldr	w0, [x0, 2200]
6904	cbz	w0, .L1144
6905	adrp	x22, .LC69
6906	mov	w24, 20041
6907	add	x22, x22, :lo12:.LC69
6908	mov	w26, 0
6909	movk	w24, 0x444b, lsl 16
6910.L1131:
6911	adrp	x0, .LANCHOR85
6912	ldrb	w0, [x0, #:lo12:.LANCHOR85]
6913	cmp	w0, w26
6914	bhi	.L1141
6915.L1144:
6916	mov	w0, 0
6917	ldr	x27, [sp, 80]
6918	ldp	x19, x20, [sp, 16]
6919	ldp	x21, x22, [sp, 32]
6920	ldp	x23, x24, [sp, 48]
6921	ldp	x25, x26, [sp, 64]
6922	ldp	x29, x30, [sp], 96
6923	ret
6924.L1141:
6925	adrp	x0, .LANCHOR81
6926	adrp	x1, .LANCHOR31
6927	adrp	x21, .LANCHOR80
6928	ldrb	w2, [x0, #:lo12:.LANCHOR81]
6929	ldrb	w3, [x1, #:lo12:.LANCHOR31]
6930	mov	w1, 24
6931	and	w0, w2, 65535
6932	cmp	w2, 1
6933	sub	w1, w1, w3
6934	ldrh	w3, [x21, #:lo12:.LANCHOR80]
6935	sdiv	w19, w26, w2
6936	sub	w1, w1, w3
6937	lsl	w19, w19, w1
6938	madd	w19, w23, w0, w19
6939	and	w19, w19, 65535
6940	bls	.L1132
6941	sub	w0, w0, #1
6942	and	w0, w0, w26
6943	add	w19, w19, w0
6944	and	w19, w19, 65535
6945.L1132:
6946	adrp	x25, .LANCHOR130
6947	add	x25, x25, :lo12:.LANCHOR130
6948	mov	w20, 0
6949.L1133:
6950	add	x0, x27, :lo12:.LANCHOR76
6951	ldr	w1, [x0, 2200]
6952	cmp	w20, w1
6953	bcc	.L1140
6954	add	w26, w26, 1
6955	and	w26, w26, 65535
6956	b	.L1131
6957.L1140:
6958	add	x0, x0, x20, sxtw 1
6959	ldrh	w0, [x0, 2204]
6960	cmp	w0, w19
6961	bne	.L1134
6962	mov	w1, w19
6963	mov	x0, x22
6964	bl	printf
6965	ldrb	w0, [x25]
6966	cbnz	w0, .L1135
6967	adrp	x0, .LANCHOR86
6968	ldrb	w0, [x0, #:lo12:.LANCHOR86]
6969	cbz	w0, .L1136
6970.L1135:
6971	adrp	x0, .LANCHOR69
6972	ldr	x0, [x0, #:lo12:.LANCHOR69]
6973	ldr	w0, [x0, 156]
6974	cmp	w0, w24
6975	beq	.L1137
6976.L1136:
6977	ldrh	w0, [x21, #:lo12:.LANCHOR80]
6978	lsl	w0, w19, w0
6979	bl	ftl_mask_bad_block
6980.L1137:
6981	add	x1, x27, :lo12:.LANCHOR76
6982	mov	w0, w20
6983	ldr	w2, [x1, 2200]
6984.L1138:
6985	cmp	w0, w2
6986	bcc	.L1139
6987	add	x0, x27, :lo12:.LANCHOR76
6988	sub	w2, w2, #1
6989	str	w2, [x0, 2200]
6990.L1134:
6991	add	w20, w20, 1
6992	and	w20, w20, 65535
6993	b	.L1133
6994.L1139:
6995	add	w3, w0, 1
6996	add	x0, x1, x0, sxtw 1
6997	add	x4, x1, x3, sxtw 1
6998	ldrh	w4, [x4, 2204]
6999	strh	w4, [x0, 2204]
7000	and	w0, w3, 65535
7001	b	.L1138
7002	.size	gc_free_bad_sblk, .-gc_free_bad_sblk
7003	.section	.text.ftl_free_sblk,"ax",@progbits
7004	.align	2
7005	.global	ftl_free_sblk
7006	.type	ftl_free_sblk, %function
7007ftl_free_sblk:
7008	stp	x29, x30, [sp, -64]!
7009	add	x29, sp, 0
7010	stp	x23, x24, [sp, 48]
7011	adrp	x23, .LANCHOR9
7012	and	x24, x0, 65535
7013	stp	x19, x20, [sp, 16]
7014	ldr	x3, [x23, #:lo12:.LANCHOR9]
7015	lsl	x19, x24, 2
7016	stp	x21, x22, [sp, 32]
7017	mov	x21, x24
7018	add	x20, x3, x19
7019	ldrb	w0, [x20, 2]
7020	ubfx	x22, x0, 5, 3
7021	tbz	x0, 3, .L1151
7022	adrp	x2, .LANCHOR69
7023	ldrh	w1, [x3, x19]
7024	adrp	x8, .LANCHOR131
7025	ldr	x7, [x2, #:lo12:.LANCHOR69]
7026	and	w1, w1, 2047
7027	ldr	w2, [x3, x19]
7028	ldrh	w8, [x8, #:lo12:.LANCHOR131]
7029	ldrh	w4, [x7, 74]
7030	ubfx	x5, x2, 11, 8
7031	adrp	x2, .LANCHOR10
7032	add	w4, w1, w4
7033	ldrh	w2, [x2, #:lo12:.LANCHOR10]
7034	and	w6, w4, 65535
7035	ldrh	w4, [x7, 72]
7036	add	w4, w5, w4
7037	udiv	w7, w6, w2
7038	and	w4, w4, 65535
7039	add	w7, w7, w4
7040	cmp	w7, w8
7041	ble	.L1152
7042	adrp	x4, .LANCHOR107
7043	adrp	x7, .LANCHOR111
7044	ldrh	w6, [x4, #:lo12:.LANCHOR107]
7045	adrp	x4, .LANCHOR97
7046	ldrh	w7, [x7, #:lo12:.LANCHOR111]
7047	ldrh	w4, [x4, #:lo12:.LANCHOR97]
7048	add	w6, w6, 7
7049	add	w4, w4, w7
7050	cmp	w6, w4
7051	blt	.L1153
7052.L1158:
7053	mov	w4, 2
7054	bfi	w0, w4, 3, 2
7055	b	.L1169
7056.L1153:
7057	adrp	x4, .LANCHOR104
7058	adrp	x7, .LANCHOR109
7059	ldrh	w6, [x4, #:lo12:.LANCHOR104]
7060	adrp	x4, .LANCHOR103
7061	ldrh	w7, [x7, #:lo12:.LANCHOR109]
7062	ldrh	w4, [x4, #:lo12:.LANCHOR103]
7063	add	w6, w6, 7
7064	add	w4, w4, w7
7065	adrp	x7, .LANCHOR105
7066	ldrh	w7, [x7, #:lo12:.LANCHOR105]
7067	add	w4, w4, w7
7068	cmp	w6, w4
7069	blt	.L1158
7070.L1171:
7071	and	w0, w0, -25
7072.L1169:
7073	strb	w0, [x20, 2]
7074.L1154:
7075	ldrb	w0, [x20, 2]
7076	ands	w0, w0, 24
7077	bne	.L1159
7078	mul	w2, w5, w2
7079	ldrh	w0, [x3, x19]
7080	add	w2, w2, w2, lsl 1
7081	add	w1, w1, w2, lsr 2
7082	lsr	w2, w5, 3
7083	bfi	w0, w1, 0, 11
7084	strh	w0, [x3, x19]
7085	ldr	w0, [x3, x19]
7086	bfi	w0, w2, 11, 8
7087	str	w0, [x3, x19]
7088.L1160:
7089	mov	w0, w21
7090	bl	zftl_remove_data_node
7091	ldr	x0, [x23, #:lo12:.LANCHOR9]
7092	add	w22, w22, 6
7093	and	w22, w22, 7
7094	add	x19, x0, x19
7095	cmp	w22, 4
7096	ldrb	w0, [x19, 2]
7097	and	w0, w0, 31
7098	strb	w0, [x19, 2]
7099	adrp	x0, .LANCHOR11
7100	ldr	x0, [x0, #:lo12:.LANCHOR11]
7101	strh	wzr, [x0, x24, lsl 1]
7102	bhi	.L1163
7103	mov	w0, w21
7104	bl	gc_free_bad_sblk
7105.L1163:
7106	ldrb	w0, [x20, 2]
7107	tbz	x0, 3, .L1164
7108	adrp	x0, .LANCHOR12
7109	ldr	x0, [x0, #:lo12:.LANCHOR12]
7110	ldrh	w1, [x0, 586]
7111	cmp	w1, w21
7112	bne	.L1164
7113	mov	w1, -1
7114	ldrh	w2, [x0, 590]
7115	strh	w1, [x0, 586]
7116	mov	w1, 65535
7117	cmp	w2, w1
7118	bne	.L1164
7119	strh	w21, [x0, 590]
7120	mov	w1, w21
7121	ldp	x19, x20, [sp, 16]
7122	adrp	x0, .LC70
7123	ldp	x21, x22, [sp, 32]
7124	add	x0, x0, :lo12:.LC70
7125	ldp	x23, x24, [sp, 48]
7126	ldp	x29, x30, [sp], 64
7127	b	printf
7128.L1152:
7129	madd	w4, w2, w4, w6
7130	adrp	x6, .LANCHOR132
7131	ldrh	w6, [x6, #:lo12:.LANCHOR132]
7132	cmp	w4, w6
7133	ble	.L1154
7134	adrp	x4, .LANCHOR104
7135	adrp	x7, .LANCHOR109
7136	ldrh	w6, [x4, #:lo12:.LANCHOR104]
7137	adrp	x4, .LANCHOR103
7138	ldrh	w7, [x7, #:lo12:.LANCHOR109]
7139	ldrh	w4, [x4, #:lo12:.LANCHOR103]
7140	add	w4, w4, w7
7141	adrp	x7, .LANCHOR105
7142	ldrh	w7, [x7, #:lo12:.LANCHOR105]
7143	add	w4, w4, w7
7144	add	w7, w6, 7
7145	cmp	w7, w4
7146	bge	.L1171
7147	adrp	x7, .LANCHOR107
7148	adrp	x10, .LANCHOR111
7149	ldrh	w8, [x7, #:lo12:.LANCHOR107]
7150	adrp	x7, .LANCHOR97
7151	ldrh	w10, [x10, #:lo12:.LANCHOR111]
7152	ldrh	w7, [x7, #:lo12:.LANCHOR97]
7153	add	w8, w8, 7
7154	add	w7, w7, w10
7155	cmp	w8, w7
7156	bge	.L1158
7157	add	w6, w6, 23
7158	cmp	w4, w6
7159	bgt	.L1158
7160	b	.L1171
7161.L1159:
7162	cmp	w0, 16
7163	bne	.L1160
7164	sdiv	w2, w1, w2
7165	ldr	w0, [x3, x19]
7166	add	w2, w2, w2, lsl 1
7167	add	w2, w5, w2, lsr 2
7168.L1170:
7169	bfi	w0, w2, 11, 8
7170	asr	w1, w1, 5
7171	str	w0, [x3, x19]
7172	bfi	w0, w1, 0, 11
7173	strh	w0, [x3, x19]
7174	b	.L1160
7175.L1151:
7176	tst	w0, 24
7177	bne	.L1160
7178	adrp	x1, .LANCHOR113
7179	ldrh	w1, [x1, #:lo12:.LANCHOR113]
7180	cbnz	w1, .L1160
7181	adrp	x1, .LANCHOR111
7182	ldrh	w4, [x1, #:lo12:.LANCHOR111]
7183	cmp	w4, 15
7184	bhi	.L1160
7185	adrp	x1, .LANCHOR103
7186	adrp	x2, .LANCHOR109
7187	ldrh	w1, [x1, #:lo12:.LANCHOR103]
7188	ldrh	w2, [x2, #:lo12:.LANCHOR109]
7189	add	w1, w1, w2
7190	adrp	x2, .LANCHOR105
7191	ldrh	w2, [x2, #:lo12:.LANCHOR105]
7192	add	w1, w1, w2
7193	adrp	x2, .LANCHOR104
7194	ldrh	w2, [x2, #:lo12:.LANCHOR104]
7195	add	w2, w2, 16
7196	cmp	w1, w2
7197	ble	.L1160
7198	adrp	x1, .LANCHOR107
7199	ldrh	w2, [x1, #:lo12:.LANCHOR107]
7200	adrp	x1, .LANCHOR97
7201	ldrh	w1, [x1, #:lo12:.LANCHOR97]
7202	add	w2, w2, 7
7203	add	w1, w1, w4
7204	cmp	w2, w1
7205	blt	.L1160
7206	mov	w1, 2
7207	bfi	w0, w1, 3, 2
7208	strb	w0, [x20, 2]
7209	adrp	x0, .LANCHOR10
7210	ldrh	w1, [x3, x19]
7211	ldrh	w0, [x0, #:lo12:.LANCHOR10]
7212	and	w1, w1, 2047
7213	sdiv	w0, w1, w0
7214	add	w2, w0, w0, lsl 1
7215	ldr	w0, [x3, x19]
7216	ubfx	x4, x0, 11, 8
7217	add	w2, w4, w2, lsr 2
7218	b	.L1170
7219.L1164:
7220	mov	w0, w21
7221	ldp	x19, x20, [sp, 16]
7222	ldp	x21, x22, [sp, 32]
7223	ldp	x23, x24, [sp, 48]
7224	ldp	x29, x30, [sp], 64
7225	b	zftl_insert_free_list
7226	.size	ftl_free_sblk, .-ftl_free_sblk
7227	.section	.text.gc_free_src_blk,"ax",@progbits
7228	.align	2
7229	.global	gc_free_src_blk
7230	.type	gc_free_src_blk, %function
7231gc_free_src_blk:
7232	stp	x29, x30, [sp, -80]!
7233	add	x29, sp, 0
7234	stp	x21, x22, [sp, 32]
7235	adrp	x21, .LANCHOR76
7236	stp	x23, x24, [sp, 48]
7237	adrp	x22, .LC71
7238	adrp	x23, .LANCHOR11
7239	add	x21, x21, :lo12:.LANCHOR76
7240	mov	x24, x23
7241	add	x22, x22, :lo12:.LC71
7242	stp	x19, x20, [sp, 16]
7243	mov	w20, 0
7244	stp	x25, x26, [sp, 64]
7245.L1173:
7246	ldrh	w0, [x21, 56]
7247	cmp	w0, w20
7248	bhi	.L1187
7249	strh	wzr, [x21, 56]
7250	ldp	x19, x20, [sp, 16]
7251	ldp	x21, x22, [sp, 32]
7252	ldp	x23, x24, [sp, 48]
7253	ldp	x25, x26, [sp, 64]
7254	ldp	x29, x30, [sp], 80
7255	ret
7256.L1187:
7257	add	x0, x21, x20, sxtw 1
7258	ldrh	w25, [x0, 58]
7259	ldr	x0, [x23, #:lo12:.LANCHOR11]
7260	mov	x19, x25
7261	lsl	x26, x25, 1
7262	ldrh	w2, [x0, x26]
7263	cbz	w2, .L1174
7264	mov	w1, w25
7265	mov	x0, x22
7266	bl	printf
7267.L1174:
7268	ldr	x0, [x24, #:lo12:.LANCHOR11]
7269	strh	wzr, [x0, x26]
7270	adrp	x0, .LANCHOR9
7271	ldr	x0, [x0, #:lo12:.LANCHOR9]
7272	add	x25, x0, x25, lsl 2
7273	adrp	x0, .LANCHOR19
7274	ldr	w0, [x0, #:lo12:.LANCHOR19]
7275	tbz	x0, 8, .L1175
7276	ldrb	w2, [x25, 2]
7277	adrp	x0, .LC72
7278	mov	w1, w19
7279	add	x0, x0, :lo12:.LC72
7280	ubfx	x2, x2, 5, 3
7281	bl	printf
7282.L1175:
7283	ldrb	w0, [x25, 2]
7284	and	w1, w0, 224
7285	cmp	w1, 224
7286	beq	.L1176
7287	tst	w0, 192
7288	bne	.L1177
7289.L1176:
7290	adrp	x1, .LANCHOR133
7291	adrp	x0, .LC0
7292	mov	w2, 1363
7293	add	x1, x1, :lo12:.LANCHOR133
7294	add	x0, x0, :lo12:.LC0
7295	bl	printf
7296.L1177:
7297	mov	w0, w19
7298	bl	ftl_free_sblk
7299	adrp	x0, .LANCHOR12
7300	ldr	x0, [x0, #:lo12:.LANCHOR12]
7301	ldrh	w2, [x0, 124]
7302	cbz	w2, .L1178
7303	add	x3, x0, 392
7304	mov	w1, 0
7305.L1180:
7306	ldrh	w4, [x3]
7307	cmp	w4, w19
7308	bne	.L1179
7309	add	x1, x0, x1, sxtw 1
7310	mov	w3, -1
7311	sub	w2, w2, #1
7312	strh	w3, [x1, 392]
7313	strh	w2, [x0, 124]
7314.L1178:
7315	ldrh	w2, [x0, 120]
7316	cbz	w2, .L1181
7317	add	x3, x0, 136
7318	mov	w1, 0
7319.L1183:
7320	ldrh	w4, [x3]
7321	cmp	w4, w19
7322	bne	.L1182
7323	add	x1, x0, x1, sxtw 1
7324	mov	w3, -1
7325	sub	w2, w2, #1
7326	strh	w3, [x1, 136]
7327	strh	w2, [x0, 120]
7328.L1181:
7329	ldrh	w2, [x0, 122]
7330	cbz	w2, .L1184
7331	add	x3, x0, 264
7332	mov	w1, 0
7333.L1186:
7334	ldrh	w4, [x3]
7335	cmp	w4, w19
7336	bne	.L1185
7337	add	x1, x0, x1, sxtw 1
7338	mov	w3, -1
7339	sub	w2, w2, #1
7340	strh	w3, [x1, 264]
7341	strh	w2, [x0, 122]
7342.L1184:
7343	add	w20, w20, 1
7344	and	w20, w20, 65535
7345	b	.L1173
7346.L1179:
7347	add	w1, w1, 1
7348	add	x3, x3, 2
7349	cmp	w1, 64
7350	bne	.L1180
7351	b	.L1178
7352.L1182:
7353	add	w1, w1, 1
7354	add	x3, x3, 2
7355	cmp	w1, 64
7356	bne	.L1183
7357	b	.L1181
7358.L1185:
7359	add	w1, w1, 1
7360	add	x3, x3, 2
7361	cmp	w1, 64
7362	bne	.L1186
7363	b	.L1184
7364	.size	gc_free_src_blk, .-gc_free_src_blk
7365	.section	.text.print_ftl_debug_info,"ax",@progbits
7366	.align	2
7367	.global	print_ftl_debug_info
7368	.type	print_ftl_debug_info, %function
7369print_ftl_debug_info:
7370	ret
7371	.size	print_ftl_debug_info, .-print_ftl_debug_info
7372	.section	.text.sblk_init,"ax",@progbits
7373	.align	2
7374	.global	sblk_init
7375	.type	sblk_init, %function
7376sblk_init:
7377	adrp	x1, .LANCHOR59
7378	mov	w0, -1
7379	strb	w0, [x1, #:lo12:.LANCHOR59]
7380	adrp	x1, .LANCHOR64
7381	strb	w0, [x1, #:lo12:.LANCHOR64]
7382	adrp	x1, .LANCHOR62
7383	strb	w0, [x1, #:lo12:.LANCHOR62]
7384	adrp	x1, .LANCHOR63
7385	strb	w0, [x1, #:lo12:.LANCHOR63]
7386	mov	w0, 0
7387	ret
7388	.size	sblk_init, .-sblk_init
7389	.section	.text.dump_sblk_queue,"ax",@progbits
7390	.align	2
7391	.global	dump_sblk_queue
7392	.type	dump_sblk_queue, %function
7393dump_sblk_queue:
7394	stp	x29, x30, [sp, -48]!
7395	adrp	x0, .LC73
7396	add	x0, x0, :lo12:.LC73
7397	add	x29, sp, 0
7398	stp	x19, x20, [sp, 16]
7399	adrp	x19, .LANCHOR59
7400	str	x21, [sp, 32]
7401	ldrb	w1, [x19, #:lo12:.LANCHOR59]
7402	bl	printf
7403	ldrb	w19, [x19, #:lo12:.LANCHOR59]
7404	cmp	w19, 255
7405	beq	.L1212
7406	adrp	x1, .LANCHOR55
7407	ubfiz	x19, x19, 6, 8
7408	add	x1, x1, :lo12:.LANCHOR55
7409	adrp	x21, .LC74
7410	add	x19, x1, x19
7411	add	x21, x21, :lo12:.LC74
7412	mov	x20, x1
7413.L1214:
7414	ldrb	w2, [x19, 58]
7415	mov	x0, x21
7416	ldrb	w1, [x19, 1]
7417	ldr	w3, [x19, 40]
7418	bl	printf
7419	ldrb	w19, [x19]
7420	cmp	w19, 255
7421	beq	.L1212
7422	ubfiz	x19, x19, 6, 8
7423	add	x19, x20, x19
7424	b	.L1214
7425.L1212:
7426	ldp	x19, x20, [sp, 16]
7427	ldr	x21, [sp, 32]
7428	ldp	x29, x30, [sp], 48
7429	ret
7430	.size	dump_sblk_queue, .-dump_sblk_queue
7431	.section	.text.queue_lun_state,"ax",@progbits
7432	.align	2
7433	.global	queue_lun_state
7434	.type	queue_lun_state, %function
7435queue_lun_state:
7436	adrp	x2, .LANCHOR59
7437	ldrb	w2, [x2, #:lo12:.LANCHOR59]
7438	cmp	w2, 255
7439	beq	.L1230
7440	adrp	x3, .LANCHOR31
7441	mov	w8, 24
7442	adrp	x10, .LANCHOR55
7443	add	x10, x10, :lo12:.LANCHOR55
7444	ldrb	w4, [x3, #:lo12:.LANCHOR31]
7445	mov	w3, 1
7446	adrp	x13, .L1226
7447	mov	x15, x10
7448	sub	w8, w8, w4
7449	add	x13, x13, :lo12:.L1226
7450	lsl	w4, w3, w4
7451	sub	w4, w4, #1
7452	and	w6, w4, 65535
7453	adrp	x4, .LANCHOR80
7454	asr	w11, w0, w8
7455	and	w11, w11, w6
7456	ldrh	w12, [x4, #:lo12:.LANCHOR80]
7457	sub	w4, w8, w12
7458	lsl	w3, w3, w4
7459	sub	w3, w3, #1
7460	and	w7, w3, 65535
7461	adrp	x3, .LANCHOR81
7462	ldrb	w5, [x3, #:lo12:.LANCHOR81]
7463	asr	w3, w0, w12
7464	sub	w5, w5, #1
7465	and	w5, w5, 65535
7466	and	w3, w3, w5
7467	and	w3, w3, w7
7468.L1229:
7469	add	x14, x10, x2, lsl 6
7470	ldr	w4, [x14, 40]
7471	lsr	w0, w4, w8
7472	and	w0, w6, w0
7473	cmp	w11, w0
7474	bne	.L1224
7475	lsr	w4, w4, w12
7476	and	w4, w5, w4
7477	and	w4, w7, w4
7478	ldrb	w0, [x14, 58]
7479	cmp	w3, w4
7480	bne	.L1225
7481	cmp	w1, 1
7482	bne	.L1222
7483	cmp	w0, 7
7484	ccmp	w0, 9, 4, ne
7485	beq	.L1224
7486	ret
7487.L1225:
7488	cmp	w1, 3
7489	bhi	.L1224
7490	ldrb	w4, [x13,w1,uxtw]
7491	adr	x14, .Lrtx1226
7492	add	x4, x14, w4, sxtb #2
7493	br	x4
7494.Lrtx1226:
7495	.section	.rodata.queue_lun_state,"a",@progbits
7496	.align	0
7497	.align	2
7498.L1226:
7499	.byte	(.L1222 - .Lrtx1226) / 4
7500	.byte	(.L1227 - .Lrtx1226) / 4
7501	.byte	(.L1228 - .Lrtx1226) / 4
7502	.byte	(.L1222 - .Lrtx1226) / 4
7503	.section	.text.queue_lun_state
7504.L1227:
7505	cmp	w0, 7
7506	ccmp	w0, 9, 4, ne
7507	beq	.L1224
7508	ret
7509.L1228:
7510	cmp	w0, 11
7511	bne	.L1222
7512.L1224:
7513	lsl	x2, x2, 6
7514	ldrb	w2, [x15, x2]
7515	cmp	w2, 255
7516	bne	.L1229
7517.L1230:
7518	mov	w0, 0
7519.L1222:
7520	ret
7521	.size	queue_lun_state, .-queue_lun_state
7522	.section	.text.queue_remove_completed_req,"ax",@progbits
7523	.align	2
7524	.global	queue_remove_completed_req
7525	.type	queue_remove_completed_req, %function
7526queue_remove_completed_req:
7527	adrp	x4, .LANCHOR64
7528	adrp	x8, .LANCHOR63
7529	adrp	x1, .LANCHOR59
7530	adrp	x7, .LANCHOR62
7531	adrp	x3, .LANCHOR55
7532	ldrb	w14, [x4, #:lo12:.LANCHOR64]
7533	add	x5, x3, :lo12:.LANCHOR55
7534	ldrb	w2, [x1, #:lo12:.LANCHOR59]
7535	ldrb	w12, [x8, #:lo12:.LANCHOR63]
7536	mov	x11, x5
7537	ldrb	w13, [x7, #:lo12:.LANCHOR62]
7538	add	x16, x8, :lo12:.LANCHOR63
7539	add	x7, x7, :lo12:.LANCHOR62
7540	add	x10, x4, :lo12:.LANCHOR64
7541	mov	w6, 0
7542	mov	w15, -1
7543.L1233:
7544	cmp	w2, 255
7545	beq	.L1234
7546	sbfiz	x8, x2, 6, 32
7547	sxtw	x0, w2
7548	add	x4, x5, x8
7549	ldrb	w4, [x4, 58]
7550	sub	w4, w4, #12
7551	and	w4, w4, 255
7552	cmp	w4, 1
7553	bls	.L1235
7554	cbz	w6, .L1232
7555	strb	w2, [x1, #:lo12:.LANCHOR59]
7556	ret
7557.L1235:
7558	lsl	x6, x0, 6
7559	ldrb	w2, [x5, x8]
7560	add	x4, x5, x6
7561	strb	w15, [x5, x6]
7562	ldrb	w6, [x4, 59]
7563	cmp	w6, 1
7564	bne	.L1238
7565	ldrh	w4, [x4, 50]
7566	cbnz	w4, .L1246
7567	mov	w4, w14
7568	mov	x6, x10
7569.L1239:
7570	cmp	w4, 255
7571	bne	.L1244
7572	add	x3, x3, :lo12:.LANCHOR55
7573	strb	w2, [x1, #:lo12:.LANCHOR59]
7574	add	x0, x3, x0, lsl 6
7575	ldrb	w0, [x0, 1]
7576	strb	w0, [x6]
7577	ret
7578.L1238:
7579	cbnz	w6, .L1240
7580	ldr	w4, [x4, 36]
7581	cmn	w4, #1
7582	beq	.L1240
7583	mov	w4, w13
7584	mov	x6, x7
7585	b	.L1239
7586.L1246:
7587	mov	w4, w12
7588	mov	x6, x16
7589	b	.L1239
7590.L1244:
7591	mov	w6, w4
7592	sbfiz	x4, x4, 6, 32
7593	ldrb	w4, [x11, x4]
7594	cmp	w4, 255
7595	bne	.L1244
7596	add	x0, x11, x0, lsl 6
7597	sbfiz	x6, x6, 6, 32
7598	ldrb	w0, [x0, 1]
7599	strb	w0, [x11, x6]
7600.L1240:
7601	mov	w6, 1
7602	b	.L1233
7603.L1234:
7604	cbz	w6, .L1232
7605	mov	w0, -1
7606	strb	w0, [x1, #:lo12:.LANCHOR59]
7607.L1232:
7608	ret
7609	.size	queue_remove_completed_req, .-queue_remove_completed_req
7610	.section	.text.pm_alloc_new_blk,"ax",@progbits
7611	.align	2
7612	.global	pm_alloc_new_blk
7613	.type	pm_alloc_new_blk, %function
7614pm_alloc_new_blk:
7615	stp	x29, x30, [sp, -64]!
7616	adrp	x2, .LANCHOR85
7617	add	x29, sp, 0
7618	stp	x19, x20, [sp, 16]
7619	adrp	x20, .LANCHOR69
7620	stp	x21, x22, [sp, 32]
7621	ldr	x1, [x20, #:lo12:.LANCHOR69]
7622	ldrb	w2, [x2, #:lo12:.LANCHOR85]
7623	ldrh	w0, [x1, 690]
7624	str	x23, [sp, 48]
7625	add	w0, w0, 1
7626	and	w0, w0, 65535
7627	strh	w0, [x1, 690]
7628	cmp	w2, w0
7629	bls	.L1257
7630	add	x0, x1, x0, sxtw 1
7631	ldrh	w1, [x0, 672]
7632	mov	w0, 65535
7633	cmp	w1, w0
7634	bne	.L1258
7635.L1257:
7636	adrp	x19, .LC75
7637	add	x19, x19, :lo12:.LC75
7638	mov	w23, 65535
7639	adrp	x22, .LANCHOR9
7640.L1259:
7641	mov	w0, 1
7642	bl	ftl_alloc_sblk
7643	and	w21, w0, 65535
7644	cmp	w21, w23
7645	beq	.L1259
7646	mov	w1, 0
7647	mov	w0, w21
7648	bl	ftl_erase_sblk
7649	add	x14, x20, :lo12:.LANCHOR69
7650	ldr	x1, [x20, #:lo12:.LANCHOR69]
7651	mov	w0, w21
7652	add	x1, x1, 672
7653	bl	ftl_get_blk_list_in_sblk
7654	tst	w0, 65535
7655	bne	.L1260
7656	mov	w1, w21
7657	mov	x0, x19
7658	bl	printf
7659	ldr	x0, [x22, #:lo12:.LANCHOR9]
7660	add	x21, x0, x21, uxth 2
7661	ldrb	w0, [x21, 2]
7662	orr	w0, w0, -32
7663	strb	w0, [x21, 2]
7664	b	.L1259
7665.L1260:
7666	ldr	x0, [x14]
7667	adrp	x1, .LANCHOR134
7668	mov	w2, 1
7669	mov	w19, 0
7670	add	x0, x0, 416
7671	str	w2, [x1, #:lo12:.LANCHOR134]
7672	mov	w1, 65535
7673	strh	wzr, [x0, 274]
7674.L1262:
7675	ldrh	w2, [x0]
7676	cmp	w2, w1
7677	beq	.L1261
7678	add	w19, w19, 1
7679	add	x0, x0, 2
7680	and	w19, w19, 65535
7681	cmp	w19, 128
7682	bne	.L1262
7683	adrp	x1, .LANCHOR135
7684	adrp	x0, .LC0
7685	mov	w2, 264
7686	add	x1, x1, :lo12:.LANCHOR135
7687	add	x0, x0, :lo12:.LC0
7688	bl	printf
7689.L1261:
7690	ldr	x0, [x20, #:lo12:.LANCHOR69]
7691	add	x19, x0, x19, sxtw 1
7692	ldrh	w1, [x0, 688]
7693	strh	w21, [x19, 416]
7694	add	w1, w1, 1
7695	strh	w1, [x0, 688]
7696.L1258:
7697	ldr	x1, [x20, #:lo12:.LANCHOR69]
7698	ldrh	w0, [x1, 690]
7699	add	x0, x0, 336
7700	ldrh	w19, [x1, x0, lsl 1]
7701	mov	w0, 65533
7702	sub	w1, w19, #1
7703	cmp	w0, w1, uxth
7704	bcs	.L1264
7705	adrp	x1, .LANCHOR135
7706	adrp	x0, .LC0
7707	mov	w2, 270
7708	add	x1, x1, :lo12:.LANCHOR135
7709	add	x0, x0, :lo12:.LC0
7710	bl	printf
7711.L1264:
7712	adrp	x1, .LANCHOR31
7713	mov	w2, 24
7714	ldr	x0, [x20, #:lo12:.LANCHOR69]
7715	ldrb	w1, [x1, #:lo12:.LANCHOR31]
7716	sub	w2, w2, w1
7717	adrp	x1, .LANCHOR80
7718	strh	wzr, [x0, 696]
7719	ldrh	w1, [x1, #:lo12:.LANCHOR80]
7720	strh	w19, [x0, 692]
7721	sub	w2, w2, w1
7722	asr	w4, w19, w2
7723	strh	w4, [x0, 694]
7724	adrp	x0, .LANCHOR19
7725	ldr	w0, [x0, #:lo12:.LANCHOR19]
7726	tbz	x0, 12, .L1267
7727	mov	w0, 1
7728	and	w4, w4, 65535
7729	lsl	w2, w0, w2
7730	mov	w3, w19
7731	adrp	x0, .LC76
7732	sub	w2, w2, #1
7733	mov	w1, w19
7734	add	x0, x0, :lo12:.LC76
7735	bl	printf
7736.L1267:
7737	mov	w0, 0
7738	ldr	x23, [sp, 48]
7739	ldp	x19, x20, [sp, 16]
7740	ldp	x21, x22, [sp, 32]
7741	ldp	x29, x30, [sp], 64
7742	ret
7743	.size	pm_alloc_new_blk, .-pm_alloc_new_blk
7744	.section	.text.pm_select_ram_region,"ax",@progbits
7745	.align	2
7746	.global	pm_select_ram_region
7747	.type	pm_select_ram_region, %function
7748pm_select_ram_region:
7749	stp	x29, x30, [sp, -32]!
7750	adrp	x0, .LANCHOR136
7751	add	x0, x0, :lo12:.LANCHOR136
7752	mov	x1, 0
7753	add	x29, sp, 0
7754	mov	w2, 65535
7755	str	x19, [sp, 16]
7756.L1276:
7757	lsl	x3, x1, 4
7758	and	w19, w1, 65535
7759	ldrh	w3, [x3, x0]
7760	cmp	w3, w2
7761	beq	.L1275
7762	add	x1, x1, 1
7763	cmp	x1, 8
7764	bne	.L1276
7765	add	x0, x0, 2
7766	mov	w19, w1
7767	mov	x2, x0
7768	mov	w4, 32768
7769	mov	w1, 0
7770.L1278:
7771	ldrh	w3, [x2]
7772	tbnz	x3, 15, .L1277
7773	cmp	w3, w4
7774	bcs	.L1277
7775	mov	w4, w3
7776	mov	w19, w1
7777.L1277:
7778	add	w1, w1, 1
7779	add	x2, x2, 16
7780	and	w1, w1, 65535
7781	cmp	w1, 8
7782	bne	.L1278
7783	cmp	w19, 8
7784	bne	.L1275
7785	adrp	x1, .LANCHOR137
7786	mov	w2, -1
7787	ldrb	w3, [x1, #:lo12:.LANCHOR137]
7788	mov	w1, 0
7789.L1280:
7790	ldrh	w5, [x0]
7791	cmp	w5, w2
7792	bcs	.L1279
7793	ldrh	w4, [x0, -2]
7794	cmp	w4, w3
7795	csel	w2, w2, w5, eq
7796	csel	w19, w19, w1, eq
7797.L1279:
7798	add	w1, w1, 1
7799	add	x0, x0, 16
7800	and	w1, w1, 65535
7801	cmp	w1, 8
7802	bne	.L1280
7803	cmp	w19, 8
7804	bne	.L1275
7805	adrp	x1, .LANCHOR138
7806	adrp	x0, .LC0
7807	mov	w2, 377
7808	add	x1, x1, :lo12:.LANCHOR138
7809	add	x0, x0, :lo12:.LC0
7810	bl	printf
7811.L1275:
7812	mov	w0, w19
7813	ldr	x19, [sp, 16]
7814	ldp	x29, x30, [sp], 32
7815	ret
7816	.size	pm_select_ram_region, .-pm_select_ram_region
7817	.section	.text.pm_ppa_update_check,"ax",@progbits
7818	.align	2
7819	.global	pm_ppa_update_check
7820	.type	pm_ppa_update_check, %function
7821pm_ppa_update_check:
7822	adrp	x4, .LANCHOR31
7823	adrp	x3, .LANCHOR80
7824	mov	w5, 24
7825	ldrb	w4, [x4, #:lo12:.LANCHOR31]
7826	ldrh	w3, [x3, #:lo12:.LANCHOR80]
7827	sub	w4, w5, w4
7828	sub	w5, w4, w3
7829	mov	w4, 1
7830	lsr	w3, w2, w3
7831	lsl	w4, w4, w5
7832	sub	w4, w4, #1
7833	and	w4, w4, w3
7834	adrp	x3, .LANCHOR81
7835	ldrb	w3, [x3, #:lo12:.LANCHOR81]
7836	udiv	w4, w4, w3
7837	adrp	x3, .LANCHOR9
7838	ldr	x3, [x3, #:lo12:.LANCHOR9]
7839	add	x4, x3, x4, uxth 2
7840	ldrb	w3, [x4, 2]
7841	ubfx	x3, x3, 5, 3
7842	cmp	w3, 1
7843	ccmp	w3, 7, 4, ne
7844	bne	.L1287
7845	stp	x29, x30, [sp, -16]!
7846	mov	w3, w2
7847	mov	w2, w1
7848	mov	x1, x0
7849	add	x29, sp, 0
7850	adrp	x0, .LC77
7851	add	x0, x0, :lo12:.LC77
7852	bl	printf
7853	mov	w0, -1
7854	ldp	x29, x30, [sp], 16
7855	ret
7856.L1287:
7857	mov	w0, 0
7858	ret
7859	.size	pm_ppa_update_check, .-pm_ppa_update_check
7860	.section	.text.idb_init,"ax",@progbits
7861	.align	2
7862	.global	idb_init
7863	.type	idb_init, %function
7864idb_init:
7865	adrp	x0, .LANCHOR139
7866	str	xzr, [x0, #:lo12:.LANCHOR139]
7867	adrp	x0, .LANCHOR140
7868	str	wzr, [x0, #:lo12:.LANCHOR140]
7869	adrp	x0, .LANCHOR141
7870	strb	wzr, [x0, #:lo12:.LANCHOR141]
7871	adrp	x0, .LANCHOR142
7872	str	xzr, [x0, #:lo12:.LANCHOR142]
7873	mov	w0, 0
7874	ret
7875	.size	idb_init, .-idb_init
7876	.section	.text.ftl_memset,"ax",@progbits
7877	.align	2
7878	.global	ftl_memset
7879	.type	ftl_memset, %function
7880ftl_memset:
7881	uxtw	x2, w2
7882	b	memset
7883	.size	ftl_memset, .-ftl_memset
7884	.section	.text.flash_lsb_page_tbl_build,"ax",@progbits
7885	.align	2
7886	.global	flash_lsb_page_tbl_build
7887	.type	flash_lsb_page_tbl_build, %function
7888flash_lsb_page_tbl_build:
7889	stp	x29, x30, [sp, -48]!
7890	adrp	x1, .LANCHOR21
7891	add	x29, sp, 0
7892	ldr	x1, [x1, #:lo12:.LANCHOR21]
7893	stp	x19, x20, [sp, 16]
7894	mov	w20, 1024
7895	str	x21, [sp, 32]
7896	adrp	x19, .LANCHOR3
7897	ldrb	w1, [x1, 12]
7898	sdiv	w20, w20, w1
7899	cbnz	w0, .L1295
7900	add	x1, x19, :lo12:.LANCHOR3
7901	mov	x0, 0
7902.L1296:
7903	strh	w0, [x1, x0, lsl 1]
7904	add	x0, x0, 1
7905	cmp	x0, 512
7906	bne	.L1296
7907.L1302:
7908	adrp	x21, .LANCHOR143
7909	add	x21, x21, :lo12:.LANCHOR143
7910	mov	w2, 2048
7911	mov	w1, 255
7912	mov	x0, x21
7913	add	x19, x19, :lo12:.LANCHOR3
7914	bl	ftl_memset
7915	mov	x0, 0
7916.L1297:
7917	ldrh	w1, [x19, x0, lsl 1]
7918	add	x0, x0, 1
7919	cmp	w20, w0, uxth
7920	strh	w1, [x21, w1, sxtw 1]
7921	bhi	.L1297
7922	ldp	x19, x20, [sp, 16]
7923	ldr	x21, [sp, 32]
7924	ldp	x29, x30, [sp], 48
7925	ret
7926.L1295:
7927	cmp	w0, 1
7928	bne	.L1298
7929	add	x3, x19, :lo12:.LANCHOR3
7930	mov	x1, 0
7931.L1301:
7932	and	w0, w1, 65535
7933	cmp	x1, 3
7934	bls	.L1299
7935	ubfiz	w2, w0, 1, 15
7936	and	w0, w0, 1
7937	add	w0, w0, 2
7938	sub	w0, w2, w0
7939	and	w0, w0, 65535
7940.L1299:
7941	strh	w0, [x3, x1, lsl 1]
7942	add	x1, x1, 1
7943	cmp	x1, 512
7944	bne	.L1301
7945	b	.L1302
7946.L1298:
7947	cmp	w0, 2
7948	bne	.L1303
7949	add	x3, x19, :lo12:.LANCHOR3
7950	mov	w1, 65535
7951	mov	x0, 0
7952.L1305:
7953	cmp	x0, 2
7954	and	w2, w0, 65535
7955	csel	w2, w2, w1, cc
7956	strh	w2, [x3, x0, lsl 1]
7957	add	w1, w1, 2
7958	add	x0, x0, 1
7959	and	w1, w1, 65535
7960	cmp	x0, 512
7961	bne	.L1305
7962	b	.L1302
7963.L1303:
7964	cmp	w0, 3
7965	bne	.L1306
7966	add	x3, x19, :lo12:.LANCHOR3
7967	mov	x1, 0
7968.L1309:
7969	and	w0, w1, 65535
7970	cmp	x1, 5
7971	bls	.L1307
7972	ubfiz	w2, w0, 1, 15
7973	and	w0, w0, 1
7974	add	w0, w0, 4
7975	sub	w0, w2, w0
7976	and	w0, w0, 65535
7977.L1307:
7978	strh	w0, [x3, x1, lsl 1]
7979	add	x1, x1, 1
7980	cmp	x1, 512
7981	bne	.L1309
7982	b	.L1302
7983.L1306:
7984	cmp	w0, 4
7985	bne	.L1310
7986	add	x1, x19, :lo12:.LANCHOR3
7987	mov	w2, 1
7988	add	x1, x1, 16
7989	strh	wzr, [x19, #:lo12:.LANCHOR3]
7990	strh	w0, [x1, -8]
7991	mov	w0, 5
7992	strh	w2, [x1, -14]
7993	mov	w2, 2
7994	strh	w0, [x1, -6]
7995	mov	w0, 7
7996	strh	w2, [x1, -12]
7997	mov	w2, 3
7998	strh	w0, [x1, -4]
7999	mov	w0, 8
8000	strh	w2, [x1, -10]
8001	strh	w0, [x1, -2]
8002	mov	w0, 8
8003.L1312:
8004	and	w3, w0, 1
8005	ubfiz	w2, w0, 1, 15
8006	add	w3, w3, 6
8007	add	w0, w0, 1
8008	sub	w2, w2, w3
8009	strh	w2, [x1], 2
8010	and	w0, w0, 65535
8011	cmp	w0, 512
8012	bne	.L1312
8013	b	.L1302
8014.L1310:
8015	cmp	w0, 5
8016	bne	.L1313
8017	add	x1, x19, :lo12:.LANCHOR3
8018	mov	x0, 0
8019.L1314:
8020	strh	w0, [x1, x0, lsl 1]
8021	add	x0, x0, 1
8022	cmp	x0, 16
8023	bne	.L1314
8024	add	x1, x1, 32
8025.L1315:
8026	strh	w0, [x1], 2
8027	add	w0, w0, 2
8028	and	w0, w0, 65535
8029	cmp	w0, 1008
8030	bne	.L1315
8031	b	.L1302
8032.L1313:
8033	cmp	w0, 8
8034	bne	.L1316
8035	add	x1, x19, :lo12:.LANCHOR3
8036	mov	x0, 0
8037.L1317:
8038	strh	w0, [x0, x1]
8039	add	x0, x0, 2
8040	cmp	x0, 1024
8041	bne	.L1317
8042	b	.L1302
8043.L1316:
8044	cmp	w0, 9
8045	bne	.L1318
8046	add	x0, x19, :lo12:.LANCHOR3
8047	mov	w1, 1
8048	add	x0, x0, 6
8049	strh	wzr, [x19, #:lo12:.LANCHOR3]
8050	strh	w1, [x0, -4]
8051	mov	w1, 2
8052	strh	w1, [x0, -2]
8053	mov	w1, 3
8054.L1319:
8055	strh	w1, [x0], 2
8056	add	w1, w1, 2
8057	and	w1, w1, 65535
8058	cmp	w1, 1021
8059	bne	.L1319
8060	b	.L1302
8061.L1318:
8062	cmp	w0, 10
8063	bne	.L1320
8064	add	x1, x19, :lo12:.LANCHOR3
8065	mov	x0, 0
8066.L1321:
8067	strh	w0, [x1, x0, lsl 1]
8068	add	x0, x0, 1
8069	cmp	x0, 63
8070	bne	.L1321
8071	add	x1, x1, 126
8072.L1322:
8073	strh	w0, [x1], 2
8074	add	w0, w0, 2
8075	and	w0, w0, 65535
8076	cmp	w0, 961
8077	bne	.L1322
8078	b	.L1302
8079.L1320:
8080	cmp	w0, 11
8081	bne	.L1323
8082	add	x1, x19, :lo12:.LANCHOR3
8083	mov	x0, 0
8084.L1324:
8085	strh	w0, [x1, x0, lsl 1]
8086	add	x0, x0, 1
8087	cmp	x0, 8
8088	bne	.L1324
8089	add	x1, x1, 16
8090.L1326:
8091	and	w3, w0, 1
8092	ubfiz	w2, w0, 1, 15
8093	add	w3, w3, 6
8094	add	w0, w0, 1
8095	sub	w2, w2, w3
8096	strh	w2, [x1], 2
8097	and	w0, w0, 65535
8098	cmp	w0, 512
8099	bne	.L1326
8100	b	.L1302
8101.L1323:
8102	cmp	w0, 13
8103	bne	.L1302
8104	add	x2, x19, :lo12:.LANCHOR3
8105	mov	x1, 0
8106	mov	w0, 0
8107.L1327:
8108	strh	w0, [x1, x2]
8109	add	w0, w0, 3
8110	and	w0, w0, 65535
8111	add	x1, x1, 2
8112	cmp	w0, 1536
8113	bne	.L1327
8114	b	.L1302
8115	.size	flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build
8116	.section	.text.flash_die_info_init,"ax",@progbits
8117	.align	2
8118	.global	flash_die_info_init
8119	.type	flash_die_info_init, %function
8120flash_die_info_init:
8121	stp	x29, x30, [sp, -128]!
8122	adrp	x0, .LANCHOR19
8123	add	x29, sp, 0
8124	ldr	w0, [x0, #:lo12:.LANCHOR19]
8125	stp	x19, x20, [sp, 16]
8126	stp	x21, x22, [sp, 32]
8127	stp	x23, x24, [sp, 48]
8128	stp	x25, x26, [sp, 64]
8129	stp	x27, x28, [sp, 80]
8130	tbz	x0, 12, .L1350
8131	adrp	x1, .LANCHOR144
8132	adrp	x0, .LC1
8133	add	x1, x1, :lo12:.LANCHOR144
8134	add	x0, x0, :lo12:.LC1
8135	bl	printf
8136.L1350:
8137	adrp	x19, .LANCHOR32
8138	add	x23, x19, :lo12:.LANCHOR32
8139	adrp	x25, .LANCHOR2
8140	adrp	x20, .LANCHOR23
8141	mov	w2, 8
8142	adrp	x22, .LANCHOR29
8143	ldrh	w0, [x23, 26]
8144	adrp	x21, .LANCHOR146
8145	ldrb	w1, [x23, 12]
8146	adrp	x26, .LANCHOR33
8147	strh	w0, [x25, #:lo12:.LANCHOR2]
8148	adrp	x24, .LANCHOR47
8149	ldrh	w0, [x23, 10]
8150	add	x26, x26, :lo12:.LANCHOR33
8151	strb	wzr, [x20, #:lo12:.LANCHOR23]
8152	add	x27, x24, :lo12:.LANCHOR47
8153	mov	x28, 0
8154	sdiv	w0, w0, w1
8155	adrp	x1, .LANCHOR145
8156	strh	w0, [x1, #:lo12:.LANCHOR145]
8157	mov	w1, 0
8158	add	x0, x22, :lo12:.LANCHOR29
8159	bl	ftl_memset
8160	mov	w2, 32
8161	mov	w1, 0
8162	add	x0, x21, :lo12:.LANCHOR146
8163	bl	ftl_memset
8164	add	x0, x23, 1
8165	str	x0, [x29, 120]
8166.L1353:
8167	mov	w0, 2
8168	ldrb	w2, [x23]
8169	strb	w0, [x28, x26]
8170	lsl	x7, x28, 3
8171	ldr	x0, [x29, 120]
8172	add	x1, x27, x7
8173	bl	flash_mem_cmp8
8174	cbnz	w0, .L1351
8175	ldrb	w4, [x20, #:lo12:.LANCHOR23]
8176	add	x1, x21, :lo12:.LANCHOR146
8177	and	w2, w28, 255
8178	add	w0, w4, 1
8179	strb	w0, [x20, #:lo12:.LANCHOR23]
8180	add	x0, x22, :lo12:.LANCHOR29
8181	str	wzr, [x1, x4, lsl 2]
8182	strb	w2, [x0, x4]
8183	ldrb	w0, [x7, x27]
8184	cmp	w0, 173
8185	bne	.L1352
8186	adrp	x0, .LANCHOR7
8187	str	w2, [x29, 108]
8188	ldr	x1, [x0, #:lo12:.LANCHOR7]
8189	mov	w0, 191
8190	add	x1, x1, x28, lsl 8
8191	str	x1, [x29, 112]
8192	str	w0, [x1, 2056]
8193	bl	nandc_wait_flash_ready
8194	ldr	x1, [x29, 112]
8195	mov	w0, 223
8196	str	w0, [x1, 2056]
8197	bl	nandc_wait_flash_ready
8198	ldr	w2, [x29, 108]
8199.L1352:
8200	mov	w0, w2
8201	bl	zftl_flash_enter_slc_mode
8202.L1351:
8203	add	x28, x28, 1
8204	cmp	x28, 4
8205	bne	.L1353
8206	add	x0, x19, :lo12:.LANCHOR32
8207	ldrb	w1, [x0, 8]
8208	cmp	w1, 2
8209	beq	.L1354
8210.L1358:
8211	add	x19, x19, :lo12:.LANCHOR32
8212	ldrb	w0, [x20, #:lo12:.LANCHOR23]
8213	ldp	x21, x22, [sp, 32]
8214	ldrb	w1, [x19, 13]
8215	ldp	x23, x24, [sp, 48]
8216	ldp	x25, x26, [sp, 64]
8217	mul	w0, w0, w1
8218	ldrh	w1, [x19, 14]
8219	ldp	x27, x28, [sp, 80]
8220	ldp	x19, x20, [sp, 16]
8221	mul	w0, w0, w1
8222	adrp	x1, .LANCHOR147
8223	strh	w0, [x1, #:lo12:.LANCHOR147]
8224	ldp	x29, x30, [sp], 128
8225	ret
8226.L1354:
8227	ldrh	w1, [x25, #:lo12:.LANCHOR2]
8228	add	x24, x24, :lo12:.LANCHOR47
8229	ldrb	w8, [x0, 13]
8230	add	x7, x0, 1
8231	ldrb	w12, [x19, #:lo12:.LANCHOR32]
8232	add	x11, x20, :lo12:.LANCHOR23
8233	ldrb	w13, [x0, 23]
8234	add	x21, x21, :lo12:.LANCHOR146
8235	add	x22, x22, :lo12:.LANCHOR29
8236	mov	x10, 0
8237	mul	w8, w8, w1
8238	ldrh	w1, [x0, 14]
8239	and	w1, w1, 65280
8240	mul	w8, w8, w1
8241	lsl	w14, w8, 1
8242.L1357:
8243	mov	w2, w12
8244	add	x1, x24, x10, lsl 3
8245	mov	x0, x7
8246	bl	flash_mem_cmp8
8247	cbnz	w0, .L1355
8248	ldrb	w1, [x11]
8249	cmp	w13, 0
8250	csel	w2, w8, w14, eq
8251	add	w0, w1, 1
8252	strb	w0, [x11]
8253	str	w2, [x21, x1, lsl 2]
8254	strb	w10, [x22, x1]
8255.L1355:
8256	add	x10, x10, 1
8257	cmp	x10, 4
8258	bne	.L1357
8259	b	.L1358
8260	.size	flash_die_info_init, .-flash_die_info_init
8261	.section	.text.lpa_hash_init,"ax",@progbits
8262	.align	2
8263	.global	lpa_hash_init
8264	.type	lpa_hash_init, %function
8265lpa_hash_init:
8266	stp	x29, x30, [sp, -16]!
8267	mov	w2, 512
8268	mov	w1, 255
8269	adrp	x0, .LANCHOR122
8270	add	x29, sp, 0
8271	add	x0, x0, :lo12:.LANCHOR122
8272	bl	ftl_memset
8273	adrp	x0, .LANCHOR100
8274	mov	w1, 255
8275	ldp	x29, x30, [sp], 16
8276	ldrh	w2, [x0, #:lo12:.LANCHOR100]
8277	adrp	x0, .LANCHOR85
8278	ldrb	w0, [x0, #:lo12:.LANCHOR85]
8279	mul	w2, w2, w0
8280	adrp	x0, .LANCHOR124
8281	ldr	x0, [x0, #:lo12:.LANCHOR124]
8282	lsl	w2, w2, 2
8283	b	ftl_memset
8284	.size	lpa_hash_init, .-lpa_hash_init
8285	.section	.text.lpa_rebuild_hash,"ax",@progbits
8286	.align	2
8287	.global	lpa_rebuild_hash
8288	.type	lpa_rebuild_hash, %function
8289lpa_rebuild_hash:
8290	stp	x29, x30, [sp, -48]!
8291	adrp	x0, .LANCHOR19
8292	add	x29, sp, 0
8293	ldr	w0, [x0, #:lo12:.LANCHOR19]
8294	stp	x19, x20, [sp, 16]
8295	stp	x21, x22, [sp, 32]
8296	tbz	x0, 12, .L1371
8297	adrp	x1, .LANCHOR148
8298	adrp	x0, .LC78
8299	mov	w3, 0
8300	mov	w2, 239
8301	add	x1, x1, :lo12:.LANCHOR148
8302	add	x0, x0, :lo12:.LC78
8303	bl	printf
8304.L1371:
8305	adrp	x20, .LANCHOR100
8306	adrp	x22, .LANCHOR85
8307	adrp	x19, .LANCHOR122
8308	add	x19, x19, :lo12:.LANCHOR122
8309	mov	w2, 512
8310	mov	w1, 255
8311	mov	x0, x19
8312	bl	ftl_memset
8313	ldrh	w2, [x20, #:lo12:.LANCHOR100]
8314	adrp	x21, .LANCHOR124
8315	ldrb	w0, [x22, #:lo12:.LANCHOR85]
8316	mov	w1, 255
8317	add	x20, x20, :lo12:.LANCHOR100
8318	mul	w2, w2, w0
8319	ldr	x0, [x21, #:lo12:.LANCHOR124]
8320	lsl	w2, w2, 2
8321	bl	ftl_memset
8322	adrp	x0, .LANCHOR123
8323	ldrb	w3, [x22, #:lo12:.LANCHOR85]
8324	ldr	x5, [x21, #:lo12:.LANCHOR124]
8325	mov	w1, 0
8326	ldr	x4, [x0, #:lo12:.LANCHOR123]
8327.L1372:
8328	ldrh	w0, [x20]
8329	mul	w0, w0, w3
8330	cmp	w1, w0, lsl 1
8331	blt	.L1374
8332	ldp	x19, x20, [sp, 16]
8333	ldp	x21, x22, [sp, 32]
8334	ldp	x29, x30, [sp], 48
8335	ret
8336.L1374:
8337	uxtw	x2, w1
8338	ldr	w0, [x4, x2, lsl 2]
8339	cmn	w0, #1
8340	beq	.L1373
8341	and	x0, x0, 255
8342	ldrh	w6, [x19, x0, lsl 1]
8343	strh	w1, [x19, x0, lsl 1]
8344	strh	w6, [x5, x2, lsl 1]
8345.L1373:
8346	add	w1, w1, 1
8347	and	w1, w1, 65535
8348	b	.L1372
8349	.size	lpa_rebuild_hash, .-lpa_rebuild_hash
8350	.section	.text.zftl_read_flash_info,"ax",@progbits
8351	.align	2
8352	.global	zftl_read_flash_info
8353	.type	zftl_read_flash_info, %function
8354zftl_read_flash_info:
8355	stp	x29, x30, [sp, -32]!
8356	mov	w2, 11
8357	mov	w1, 0
8358	add	x29, sp, 0
8359	str	x19, [sp, 16]
8360	mov	x19, x0
8361	bl	ftl_memset
8362	adrp	x1, .LANCHOR32
8363	add	x1, x1, :lo12:.LANCHOR32
8364	adrp	x0, .LANCHOR2
8365	adrp	x3, .LANCHOR73
8366	strb	wzr, [x19, 10]
8367	mov	w4, 1
8368	ldrb	w2, [x1, 9]
8369	ldrh	w0, [x0, #:lo12:.LANCHOR2]
8370	mul	w0, w2, w0
8371	strb	w0, [x19, 4]
8372	ubfx	x0, x0, 8, 8
8373	strb	w0, [x19, 5]
8374	adrp	x0, .LANCHOR49
8375	ldrb	w0, [x0, #:lo12:.LANCHOR49]
8376	strb	w0, [x19, 7]
8377	add	x0, x3, :lo12:.LANCHOR73
8378	ldrb	w3, [x3, #:lo12:.LANCHOR73]
8379	strb	w3, [x19]
8380	ldrb	w3, [x0, 1]
8381	strb	w3, [x19, 1]
8382	ldrb	w3, [x0, 2]
8383	ldrb	w0, [x0, 3]
8384	strb	w3, [x19, 2]
8385	strb	w0, [x19, 3]
8386	mov	w0, 32
8387	strb	w2, [x19, 6]
8388	adrp	x2, .LANCHOR29
8389	strb	w0, [x19, 8]
8390	add	x2, x2, :lo12:.LANCHOR29
8391	ldrb	w0, [x1, 7]
8392	mov	x1, 0
8393	strb	w0, [x19, 9]
8394	adrp	x0, .LANCHOR23
8395	ldrb	w3, [x0, #:lo12:.LANCHOR23]
8396.L1383:
8397	cmp	w3, w1, uxtb
8398	bhi	.L1384
8399	ldr	x19, [sp, 16]
8400	ldp	x29, x30, [sp], 32
8401	ret
8402.L1384:
8403	ldrb	w0, [x1, x2]
8404	add	x1, x1, 1
8405	ldrb	w5, [x19, 10]
8406	lsl	w0, w4, w0
8407	orr	w0, w0, w5
8408	strb	w0, [x19, 10]
8409	b	.L1383
8410	.size	zftl_read_flash_info, .-zftl_read_flash_info
8411	.section	.text.gc_static_wearleveling,"ax",@progbits
8412	.align	2
8413	.global	gc_static_wearleveling
8414	.type	gc_static_wearleveling, %function
8415gc_static_wearleveling:
8416	stp	x29, x30, [sp, -160]!
8417	add	x29, sp, 0
8418	stp	x21, x22, [sp, 32]
8419	adrp	x22, .LANCHOR69
8420	stp	x19, x20, [sp, 16]
8421	ldr	x0, [x22, #:lo12:.LANCHOR69]
8422	stp	x23, x24, [sp, 48]
8423	stp	x25, x26, [sp, 64]
8424	stp	x27, x28, [sp, 80]
8425	ldr	w1, [x0, 32]
8426	mov	w0, 10240
8427	cmp	w1, w0
8428	bls	.L1387
8429	bl	ftl_tmp_into_update
8430.L1387:
8431	adrp	x19, .LANCHOR12
8432	mov	w3, 36000
8433	ldr	x0, [x19, #:lo12:.LANCHOR12]
8434	ldr	w1, [x0, 568]
8435	ldr	w2, [x0, 12]
8436	add	w3, w1, w3
8437	cmp	w2, w3
8438	bcs	.L1388
8439	ldr	x4, [x22, #:lo12:.LANCHOR69]
8440	ldr	w3, [x0, 572]
8441	add	w3, w3, 256
8442	ldr	w4, [x4, 36]
8443	cmp	w4, w3
8444	bcc	.L1440
8445.L1388:
8446	add	w1, w1, 860160
8447	add	w1, w1, 3840
8448	cmp	w2, w1
8449	bhi	.L1390
8450	ldr	x3, [x22, #:lo12:.LANCHOR69]
8451	ldr	w1, [x0, 572]
8452	add	w1, w1, 32
8453	ldr	w3, [x3, 36]
8454	cmp	w3, w1
8455	bls	.L1441
8456.L1390:
8457	ldr	x1, [x22, #:lo12:.LANCHOR69]
8458	mov	w20, 65535
8459	adrp	x8, .LANCHOR19
8460	mov	w21, w20
8461	add	x8, x8, :lo12:.LANCHOR19
8462	mov	w27, 0
8463	mov	w25, 0
8464	mov	w26, 0
8465	ldr	w3, [x1, 36]
8466	mov	w23, 0
8467	ldrh	w28, [x1, 134]
8468	adrp	x24, .LANCHOR9
8469	str	w2, [x0, 568]
8470	str	w3, [x0, 572]
8471	adrp	x0, .LANCHOR8
8472	add	x10, x0, :lo12:.LANCHOR8
8473	str	wzr, [x29, 128]
8474	str	wzr, [x29, 136]
8475	stp	wzr, wzr, [x29, 144]
8476.L1392:
8477	ldrh	w0, [x10]
8478	cmp	w0, w28
8479	bhi	.L1401
8480	ldr	x0, [x19, #:lo12:.LANCHOR12]
8481	mov	w2, 128
8482	mov	w1, 255
8483	add	x0, x0, 264
8484	strh	wzr, [x0, -142]
8485	bl	ftl_memset
8486	ldr	x0, [x19, #:lo12:.LANCHOR12]
8487	adrp	x2, .LANCHOR19
8488	ldr	x8, [x24, #:lo12:.LANCHOR9]
8489	ldr	w3, [x2, #:lo12:.LANCHOR19]
8490	str	x2, [x29, 152]
8491	ldrh	w0, [x0, 586]
8492	mov	x1, x0
8493	lsl	x28, x0, 2
8494	add	x10, x8, x28
8495	tbz	x3, 10, .L1402
8496	adrp	x2, .LANCHOR11
8497	ldrb	w6, [x10, 3]
8498	ldrb	w4, [x10, 2]
8499	ldr	x5, [x2, #:lo12:.LANCHOR11]
8500	ldr	w3, [x8, x28]
8501	ldrh	w2, [x8, x28]
8502	stp	x8, x10, [x29, 112]
8503	ldrh	w7, [x5, x0, lsl 1]
8504	ubfx	x3, x3, 11, 8
8505	ubfx	x5, x4, 5, 3
8506	and	w2, w2, 2047
8507	ubfx	x4, x4, 3, 2
8508	adrp	x0, .LC80
8509	add	x0, x0, :lo12:.LC80
8510	bl	printf
8511	ldp	x8, x10, [x29, 112]
8512.L1402:
8513	ldrb	w0, [x10, 2]
8514	and	w3, w0, 224
8515	cmp	w3, 32
8516	bne	.L1403
8517	ldr	x1, [x22, #:lo12:.LANCHOR69]
8518	ldrh	w1, [x1, 688]
8519	cmp	w1, 2
8520	bls	.L1403
8521	adrp	x1, .LANCHOR149
8522	mov	w2, 1
8523	str	w2, [x1, #:lo12:.LANCHOR149]
8524.L1403:
8525	ldrb	w1, [x10, 2]
8526	tbz	x1, 3, .L1404
8527	ldr	x1, [x22, #:lo12:.LANCHOR69]
8528	ldrh	w2, [x8, x28]
8529	and	w2, w2, 2047
8530	ldrh	w4, [x1, 96]
8531	adrp	x1, .LANCHOR150
8532	ldrh	w1, [x1, #:lo12:.LANCHOR150]
8533	add	w1, w2, w1, lsr 2
8534	cmp	w4, w1
8535	ble	.L1404
8536	and	w0, w0, 192
8537	cmp	w0, 64
8538	bne	.L1405
8539	ldr	x0, [x19, #:lo12:.LANCHOR12]
8540	mov	w1, 0
8541	mov	w2, 1
8542	ldrh	w0, [x0, 586]
8543	bl	gc_add_sblk
8544	adrp	x0, .LANCHOR76+2192
8545	mov	w1, 1
8546	strh	w1, [x0, #:lo12:.LANCHOR76+2192]
8547.L1404:
8548	ldr	x0, [x19, #:lo12:.LANCHOR12]
8549	ldr	x2, [x29, 152]
8550	ldr	x11, [x24, #:lo12:.LANCHOR9]
8551	ldrh	w0, [x0, 584]
8552	ldr	w2, [x2, #:lo12:.LANCHOR19]
8553	mov	x1, x0
8554	lsl	x10, x0, 2
8555	add	x28, x11, x10
8556	tbz	x2, 10, .L1406
8557	adrp	x2, .LANCHOR11
8558	ldrb	w6, [x28, 3]
8559	ldrb	w4, [x28, 2]
8560	ldr	x5, [x2, #:lo12:.LANCHOR11]
8561	ldr	w3, [x11, x10]
8562	ldrh	w2, [x11, x10]
8563	stp	x10, x11, [x29, 112]
8564	ldrh	w7, [x5, x0, lsl 1]
8565	ubfx	x3, x3, 11, 8
8566	ubfx	x5, x4, 5, 3
8567	and	w2, w2, 2047
8568	ubfx	x4, x4, 3, 2
8569	adrp	x0, .LC81
8570	add	x0, x0, :lo12:.LC81
8571	bl	printf
8572	ldp	x10, x11, [x29, 112]
8573.L1406:
8574	ldrb	w0, [x28, 2]
8575	tbz	x0, 3, .L1407
8576	ldr	x0, [x22, #:lo12:.LANCHOR69]
8577	ldr	w1, [x11, x10]
8578	ldrh	w2, [x0, 98]
8579	adrp	x0, .LANCHOR151
8580	ubfx	x1, x1, 11, 8
8581	ldrh	w0, [x0, #:lo12:.LANCHOR151]
8582	add	w0, w1, w0, lsr 2
8583	cmp	w2, w0
8584	ble	.L1407
8585	ldrb	w0, [x28, 2]
8586	and	w1, w0, 192
8587	cmp	w1, 64
8588	bne	.L1408
8589	ldr	x0, [x19, #:lo12:.LANCHOR12]
8590	mov	w1, 0
8591	mov	w2, 1
8592	ldrh	w0, [x0, 584]
8593	bl	gc_add_sblk
8594	adrp	x0, .LANCHOR76+2192
8595	mov	w1, 1
8596	strh	w1, [x0, #:lo12:.LANCHOR76+2192]
8597.L1407:
8598	ldr	x0, [x29, 152]
8599	ldr	w0, [x0, #:lo12:.LANCHOR19]
8600	tbz	x0, 10, .L1409
8601	adrp	x2, .LANCHOR11
8602	ldr	x1, [x24, #:lo12:.LANCHOR9]
8603	uxtw	x6, w27
8604	lsl	x0, x6, 2
8605	ldr	x7, [x2, #:lo12:.LANCHOR11]
8606	add	x5, x1, x0
8607	ldr	w3, [x1, x0]
8608	ldrh	w7, [x7, x6, lsl 1]
8609	ldrb	w6, [x5, 3]
8610	ldrb	w4, [x5, 2]
8611	ubfx	x3, x3, 11, 8
8612	ldrh	w2, [x1, x0]
8613	adrp	x0, .LC82
8614	mov	w1, w27
8615	add	x0, x0, :lo12:.LC82
8616	ubfx	x5, x4, 5, 3
8617	and	w2, w2, 2047
8618	ubfx	x4, x4, 3, 2
8619	bl	printf
8620.L1409:
8621	ldr	x0, [x29, 152]
8622	ldr	w0, [x0, #:lo12:.LANCHOR19]
8623	tbz	x0, 10, .L1410
8624	ldr	w6, [x29, 128]
8625	adrp	x2, .LANCHOR11
8626	ldr	x1, [x24, #:lo12:.LANCHOR9]
8627	ldr	x7, [x2, #:lo12:.LANCHOR11]
8628	lsl	x0, x6, 2
8629	add	x5, x1, x0
8630	ldr	w3, [x1, x0]
8631	ldrh	w2, [x1, x0]
8632	adrp	x0, .LC83
8633	ldrh	w7, [x7, x6, lsl 1]
8634	add	x0, x0, :lo12:.LC83
8635	ldrb	w6, [x5, 3]
8636	ubfx	x3, x3, 11, 8
8637	ldr	w1, [x29, 128]
8638	and	w2, w2, 2047
8639	ldrb	w4, [x5, 2]
8640	ubfx	x5, x4, 5, 3
8641	ubfx	x4, x4, 3, 2
8642	bl	printf
8643.L1410:
8644	ldr	x0, [x22, #:lo12:.LANCHOR69]
8645	ldrh	w1, [x29, 148]
8646	strh	w1, [x0, 96]
8647	ldr	w1, [x29, 136]
8648	strh	w23, [x0, 98]
8649	strh	w20, [x0, 92]
8650	strh	w21, [x0, 94]
8651	udiv	w3, w1, w26
8652	ldr	w1, [x29, 144]
8653	udiv	w4, w1, w25
8654	strh	w3, [x0, 88]
8655	strh	w4, [x0, 90]
8656	ldr	x0, [x29, 152]
8657	ldr	w0, [x0, #:lo12:.LANCHOR19]
8658	tbz	x0, 10, .L1411
8659	adrp	x0, .LC84
8660	and	w4, w4, 65535
8661	and	w3, w3, 65535
8662	mov	w2, w25
8663	mov	w1, w26
8664	add	x0, x0, :lo12:.LC84
8665	bl	printf
8666.L1411:
8667	ldr	x0, [x29, 152]
8668	ldr	w0, [x0, #:lo12:.LANCHOR19]
8669	tbz	x0, 10, .L1412
8670	adrp	x0, .LANCHOR151
8671	ldr	w3, [x29, 148]
8672	mov	w4, w23
8673	mov	w2, w21
8674	ldrh	w6, [x0, #:lo12:.LANCHOR151]
8675	adrp	x0, .LANCHOR150
8676	mov	w1, w20
8677	ldrh	w5, [x0, #:lo12:.LANCHOR150]
8678	adrp	x0, .LC85
8679	add	x0, x0, :lo12:.LC85
8680	bl	printf
8681.L1412:
8682	sub	w0, w23, w21
8683	str	w0, [x29, 144]
8684	adrp	x0, .LANCHOR151
8685	ldr	w1, [x29, 144]
8686	ldrh	w0, [x0, #:lo12:.LANCHOR151]
8687	cmp	w1, w0
8688	bgt	.L1413
8689	adrp	x1, .LANCHOR150
8690	ldr	w0, [x29, 148]
8691	ldrh	w1, [x1, #:lo12:.LANCHOR150]
8692	sub	w0, w0, w20
8693	cmp	w0, w1
8694	ble	.L1442
8695.L1413:
8696	ldr	x0, [x19, #:lo12:.LANCHOR12]
8697	adrp	x26, .LANCHOR76
8698	add	x26, x26, :lo12:.LANCHOR76
8699	mov	w25, 0
8700	mov	w23, 0
8701	ldrh	w28, [x0, 580]
8702	ldr	x0, [x22, #:lo12:.LANCHOR69]
8703	ldrh	w27, [x0, 134]
8704	adrp	x0, .LANCHOR8
8705	add	x0, x0, :lo12:.LANCHOR8
8706	str	x0, [x29, 136]
8707	adrp	x0, .LANCHOR150
8708	add	x0, x0, :lo12:.LANCHOR150
8709	str	x0, [x29, 128]
8710.L1415:
8711	ldr	x0, [x29, 136]
8712	ldrh	w0, [x0]
8713	cmp	w27, w0
8714	bcc	.L1425
8715.L1424:
8716	ldr	x0, [x19, #:lo12:.LANCHOR12]
8717	str	w28, [x0, 580]
8718.L1414:
8719	cbz	w21, .L1427
8720	ldr	x2, [x22, #:lo12:.LANCHOR69]
8721	adrp	x0, .LANCHOR8
8722	ldrh	w5, [x0, #:lo12:.LANCHOR8]
8723	ldr	x0, [x24, #:lo12:.LANCHOR9]
8724	ldrh	w1, [x2, 134]
8725	add	x0, x0, x1, uxth 2
8726.L1428:
8727	cmp	w1, w5
8728	bcc	.L1430
8729	ldrh	w0, [x2, 72]
8730	add	w0, w21, w0
8731	strh	w0, [x2, 72]
8732	ldrh	w0, [x2, 98]
8733	cmp	w21, w0
8734	bcs	.L1427
8735	sub	w21, w0, w21
8736	strh	w21, [x2, 98]
8737.L1427:
8738	cbz	w20, .L1433
8739	ldr	x2, [x22, #:lo12:.LANCHOR69]
8740	adrp	x0, .LANCHOR8
8741	ldrh	w6, [x0, #:lo12:.LANCHOR8]
8742	ldr	x0, [x24, #:lo12:.LANCHOR9]
8743	ldrh	w1, [x2, 134]
8744	add	x0, x0, x1, uxth 2
8745.L1434:
8746	cmp	w1, w6
8747	bcc	.L1436
8748	ldrh	w0, [x2, 74]
8749	add	w0, w20, w0
8750	strh	w0, [x2, 74]
8751	ldrh	w0, [x2, 96]
8752	cmp	w20, w0
8753	bcs	.L1433
8754	sub	w20, w0, w20
8755	strh	w20, [x2, 96]
8756.L1433:
8757	mov	w1, 0
8758	adrp	x0, .LANCHOR98
8759	add	x0, x0, :lo12:.LANCHOR98
8760	bl	_list_get_gc_head_node
8761	and	w1, w0, 65535
8762	mov	w2, 65535
8763	cmp	w1, w2
8764	beq	.L1391
8765	adrp	x2, .LANCHOR11
8766	ubfiz	x1, x1, 1, 16
8767	ldr	x3, [x2, #:lo12:.LANCHOR11]
8768	adrp	x2, .LANCHOR100
8769	ldrh	w2, [x2, #:lo12:.LANCHOR100]
8770	ldrh	w1, [x3, x1]
8771	cmp	w1, w2, lsr 1
8772	bhi	.L1391
8773	add	w23, w23, 1
8774	mov	w2, 1
8775	mov	w1, 0
8776	bl	gc_add_sblk
8777.L1391:
8778	add	w0, w23, w25
8779.L1386:
8780	ldp	x19, x20, [sp, 16]
8781	ldp	x21, x22, [sp, 32]
8782	ldp	x23, x24, [sp, 48]
8783	ldp	x25, x26, [sp, 64]
8784	ldp	x27, x28, [sp, 80]
8785	ldp	x29, x30, [sp], 160
8786	ret
8787.L1401:
8788	uxtw	x7, w28
8789	ldr	x6, [x24, #:lo12:.LANCHOR9]
8790	lsl	x2, x7, 2
8791	add	x11, x6, x2
8792	ldrb	w0, [x11, 2]
8793	and	w1, w0, 224
8794	cmp	w1, 224
8795	beq	.L1393
8796	ubfx	x4, x0, 3, 2
8797	tbz	x4, 0, .L1394
8798	ldr	w0, [x6, x2]
8799	ldrh	w1, [x6, x2]
8800	ubfx	x0, x0, 11, 8
8801	and	w1, w1, 2047
8802.L1395:
8803	ldr	w3, [x29, 136]
8804	add	w26, w26, 1
8805	and	w26, w26, 65535
8806	cmp	w20, w1
8807	add	w3, w3, w1
8808	str	w3, [x29, 136]
8809	bls	.L1439
8810	ldr	x3, [x19, #:lo12:.LANCHOR12]
8811	mov	w20, w1
8812	strh	w28, [x3, 586]
8813.L1439:
8814	ldr	w3, [x29, 148]
8815	cmp	w3, w1
8816	bcs	.L1398
8817	mov	w27, w28
8818	str	w1, [x29, 148]
8819.L1398:
8820	mov	w3, 65535
8821	cmp	w0, w3
8822	bne	.L1397
8823.L1399:
8824	cmp	w0, 9
8825	ccmp	w1, 9, 0, hi
8826	bhi	.L1393
8827	ldr	w0, [x8]
8828	tbz	x0, 8, .L1393
8829	adrp	x0, .LANCHOR11
8830	ldr	w3, [x6, x2]
8831	ldrh	w2, [x6, x2]
8832	mov	w1, w28
8833	ldr	x0, [x0, #:lo12:.LANCHOR11]
8834	ldrb	w6, [x11, 3]
8835	ubfx	x3, x3, 11, 8
8836	ldrb	w5, [x11, 2]
8837	and	w2, w2, 2047
8838	str	x8, [x29, 120]
8839	ldrh	w7, [x0, x7, lsl 1]
8840	adrp	x0, .LC79
8841	str	x10, [x29, 152]
8842	ubfx	x5, x5, 5, 3
8843	add	x0, x0, :lo12:.LC79
8844	bl	printf
8845	ldr	x8, [x29, 120]
8846	ldr	x10, [x29, 152]
8847.L1393:
8848	add	w28, w28, 1
8849	and	w28, w28, 65535
8850	b	.L1392
8851.L1394:
8852	tst	w0, 24
8853	bne	.L1396
8854	ldrh	w1, [x6, x2]
8855	mov	w0, 65535
8856	and	w1, w1, 2047
8857	b	.L1395
8858.L1396:
8859	ldr	w0, [x6, x2]
8860	mov	w1, 65535
8861	ubfx	x0, x0, 11, 8
8862.L1397:
8863	ldr	w3, [x29, 144]
8864	add	w25, w25, 1
8865	and	w25, w25, 65535
8866	cmp	w21, w0
8867	add	w3, w3, w0
8868	str	w3, [x29, 144]
8869	bls	.L1400
8870	ldr	x3, [x19, #:lo12:.LANCHOR12]
8871	mov	w21, w0
8872	strh	w28, [x3, 584]
8873.L1400:
8874	cmp	w23, w0
8875	bcs	.L1399
8876	mov	w23, w0
8877	str	w28, [x29, 128]
8878	b	.L1399
8879.L1405:
8880	cbnz	w3, .L1404
8881	ldr	x1, [x19, #:lo12:.LANCHOR12]
8882	mov	w0, 65535
8883	ldrh	w2, [x1, 590]
8884	cmp	w2, w0
8885	bne	.L1404
8886	ldrh	w0, [x1, 586]
8887	ldrh	w1, [x1, 588]
8888	cmp	w1, w0
8889	beq	.L1404
8890	bl	zftl_remove_free_node
8891	ldr	x0, [x19, #:lo12:.LANCHOR12]
8892	ldrh	w1, [x0, 586]
8893	strh	w1, [x0, 590]
8894	mov	w1, -1
8895	strh	w1, [x0, 586]
8896	b	.L1404
8897.L1408:
8898	and	w0, w0, 248
8899	cmp	w0, 16
8900	bne	.L1407
8901	ldr	x1, [x19, #:lo12:.LANCHOR12]
8902	mov	w0, 65535
8903	ldrh	w2, [x1, 588]
8904	cmp	w2, w0
8905	bne	.L1407
8906	ldrh	w0, [x1, 584]
8907	ldrh	w1, [x1, 590]
8908	cmp	w1, w0
8909	beq	.L1407
8910	bl	zftl_remove_free_node
8911	ldr	x0, [x19, #:lo12:.LANCHOR12]
8912	ldrh	w1, [x0, 584]
8913	strh	w1, [x0, 588]
8914	mov	w1, -1
8915	strh	w1, [x0, 584]
8916	b	.L1407
8917.L1425:
8918	add	w7, w28, 1
8919	ldr	x4, [x24, #:lo12:.LANCHOR9]
8920	and	w28, w7, 65535
8921	cmp	w0, w28
8922	csel	w28, w28, wzr, hi
8923	uxtw	x8, w28
8924	lsl	x3, x8, 2
8925	add	x0, x4, x3
8926	ldrb	w0, [x0, 2]
8927	tst	w0, 192
8928	beq	.L1417
8929	and	w2, w0, 224
8930	cmp	w2, 224
8931	beq	.L1417
8932	ubfx	x0, x0, 3, 2
8933	and	w1, w0, 1
8934	tbz	x0, 0, .L1418
8935	cmp	w2, 160
8936.L1505:
8937	bne	.L1420
8938	adrp	x0, .LANCHOR151
8939	ldr	w2, [x29, 144]
8940	ldrh	w0, [x0, #:lo12:.LANCHOR151]
8941	cmp	w2, w0
8942	ble	.L1421
8943	ldr	w0, [x4, x3]
8944	ubfx	x0, x0, 11, 8
8945	cmp	w0, w21
8946	bls	.L1422
8947	cbz	w1, .L1421
8948	ldrh	w0, [x4, x3]
8949	and	w0, w0, 2047
8950	cmp	w0, w20
8951	bgt	.L1421
8952.L1422:
8953	stp	x4, x8, [x29, 104]
8954	mov	w2, 1
8955	str	x3, [x29, 120]
8956	mov	w1, 0
8957	mov	w0, w28
8958	bl	gc_add_sblk
8959	mov	w0, 1
8960	strh	w0, [x26, 2192]
8961	ldr	x0, [x29, 152]
8962	add	w23, w23, 1
8963	ldp	x4, x8, [x29, 104]
8964	ldr	x3, [x29, 120]
8965	ldr	w0, [x0, #:lo12:.LANCHOR19]
8966	tbz	x0, 10, .L1421
8967	adrp	x0, .LANCHOR11
8968	ldr	w6, [x4, x3]
8969	ldrh	w5, [x4, x3]
8970	ldr	x1, [x0, #:lo12:.LANCHOR11]
8971	ldr	x0, [x24, #:lo12:.LANCHOR9]
8972	ubfx	x6, x6, 11, 8
8973	ldrh	w4, [x26, 56]
8974	and	w5, w5, 2047
8975	add	x3, x0, x3
8976	adrp	x0, .LC86
8977	add	x0, x0, :lo12:.LC86
8978	ldrb	w2, [x3, 2]
8979	ldrh	w3, [x1, x8, lsl 1]
8980	mov	w1, w28
8981	ubfx	x2, x2, 5, 3
8982.L1506:
8983	bl	printf
8984.L1421:
8985	cmp	w23, 4
8986	ccmp	w25, 4, 2, ls
8987	bhi	.L1424
8988.L1417:
8989	add	w27, w27, 1
8990	and	w27, w27, 65535
8991	b	.L1415
8992.L1418:
8993	cmp	w0, 2
8994	b	.L1505
8995.L1420:
8996	ldr	x2, [x29, 128]
8997	ldr	w0, [x29, 148]
8998	sub	w0, w0, w20
8999	ldrh	w2, [x2]
9000	cmp	w0, w2
9001	ble	.L1421
9002	ldrh	w0, [x4, x3]
9003	add	w2, w20, 8
9004	and	w0, w0, 2047
9005	cmp	w0, w2
9006	ble	.L1423
9007	cbz	w1, .L1421
9008	ldr	w0, [x4, x3]
9009	add	w1, w21, 4
9010	ubfx	x0, x0, 11, 8
9011	cmp	w0, w1
9012	bgt	.L1421
9013.L1423:
9014	stp	x4, x8, [x29, 104]
9015	mov	w2, 1
9016	str	x3, [x29, 120]
9017	mov	w1, 0
9018	mov	w0, w28
9019	bl	gc_add_sblk
9020	mov	w0, 1
9021	strh	w0, [x26, 2192]
9022	ldr	x0, [x29, 152]
9023	add	w25, w25, 1
9024	ldp	x4, x8, [x29, 104]
9025	ldr	x3, [x29, 120]
9026	ldr	w0, [x0, #:lo12:.LANCHOR19]
9027	tbz	x0, 10, .L1421
9028	adrp	x0, .LANCHOR11
9029	ldr	w6, [x4, x3]
9030	ldrh	w5, [x4, x3]
9031	ldr	x1, [x0, #:lo12:.LANCHOR11]
9032	ldr	x0, [x24, #:lo12:.LANCHOR9]
9033	ubfx	x6, x6, 11, 8
9034	and	w5, w5, 2047
9035	ldrh	w4, [x26, 56]
9036	add	x3, x0, x3
9037	adrp	x0, .LC87
9038	add	x0, x0, :lo12:.LC87
9039	ldrb	w2, [x3, 2]
9040	ldrh	w3, [x1, x8, lsl 1]
9041	mov	w1, w28
9042	ubfx	x2, x2, 5, 3
9043	b	.L1506
9044.L1442:
9045	mov	w25, 0
9046	mov	w23, 0
9047	b	.L1414
9048.L1430:
9049	ldr	w3, [x0]
9050	ubfx	x4, x3, 11, 8
9051	cmp	w21, w4
9052	bhi	.L1429
9053	ldrb	w6, [x0, 2]
9054	tst	w6, 24
9055	beq	.L1429
9056	sub	w4, w4, w21
9057	bfi	w3, w4, 11, 8
9058	str	w3, [x0]
9059.L1429:
9060	add	w1, w1, 1
9061	add	x0, x0, 4
9062	and	w1, w1, 65535
9063	b	.L1428
9064.L1436:
9065	ldrh	w3, [x0]
9066	and	w4, w3, 2047
9067	cmp	w4, w20
9068	blt	.L1435
9069	ldrb	w5, [x0, 2]
9070	and	w5, w5, 24
9071	cmp	w5, 16
9072	beq	.L1435
9073	sub	w4, w4, w20
9074	bfi	w3, w4, 0, 11
9075	strh	w3, [x0]
9076.L1435:
9077	add	w1, w1, 1
9078	add	x0, x0, 4
9079	and	w1, w1, 65535
9080	b	.L1434
9081.L1441:
9082	mov	w25, 0
9083	mov	w23, 0
9084	b	.L1391
9085.L1440:
9086	mov	w0, 0
9087	b	.L1386
9088	.size	gc_static_wearleveling, .-gc_static_wearleveling
9089	.section	.text.zftl_sblk_list_init,"ax",@progbits
9090	.align	2
9091	.global	zftl_sblk_list_init
9092	.type	zftl_sblk_list_init, %function
9093zftl_sblk_list_init:
9094	stp	x29, x30, [sp, -208]!
9095	adrp	x8, .LANCHOR4
9096	mov	w0, 6
9097	mov	w1, 0
9098	add	x29, sp, 0
9099	stp	x27, x28, [sp, 80]
9100	adrp	x28, .LANCHOR8
9101	stp	x19, x20, [sp, 16]
9102	adrp	x20, .LANCHOR105
9103	ldrh	w2, [x28, #:lo12:.LANCHOR8]
9104	mov	w27, 0
9105	stp	x21, x22, [sp, 32]
9106	adrp	x22, .LANCHOR103
9107	stp	x23, x24, [sp, 48]
9108	adrp	x21, .LANCHOR97
9109	stp	x25, x26, [sp, 64]
9110	adrp	x26, .LANCHOR69
9111	mul	w2, w2, w0
9112	ldr	x0, [x8, #:lo12:.LANCHOR4]
9113	str	x8, [x29, 192]
9114	adrp	x25, .LANCHOR109
9115	adrp	x24, .LANCHOR111
9116	adrp	x23, .LANCHOR113
9117	bl	ftl_memset
9118	strh	wzr, [x25, #:lo12:.LANCHOR109]
9119	adrp	x0, .LANCHOR115
9120	adrp	x3, .LANCHOR85
9121	adrp	x2, .LANCHOR91
9122	mov	w1, 32
9123	strh	w1, [x0, #:lo12:.LANCHOR115]
9124	adrp	x11, .LANCHOR110
9125	ldrb	w0, [x3, #:lo12:.LANCHOR85]
9126	adrp	x10, .LANCHOR112
9127	ldrh	w1, [x2, #:lo12:.LANCHOR91]
9128	adrp	x7, .LANCHOR114
9129	adrp	x6, .LANCHOR96
9130	adrp	x5, .LANCHOR101
9131	adrp	x4, .LANCHOR98
9132	ldr	x8, [x29, 192]
9133	str	xzr, [x11, #:lo12:.LANCHOR110]
9134	mul	w1, w0, w1
9135	mov	w0, 32768
9136	str	xzr, [x10, #:lo12:.LANCHOR112]
9137	str	xzr, [x7, #:lo12:.LANCHOR114]
9138	str	xzr, [x6, #:lo12:.LANCHOR96]
9139	sdiv	w0, w0, w1
9140	str	xzr, [x5, #:lo12:.LANCHOR101]
9141	str	xzr, [x4, #:lo12:.LANCHOR98]
9142	strh	wzr, [x24, #:lo12:.LANCHOR111]
9143	strh	wzr, [x23, #:lo12:.LANCHOR113]
9144	sxth	w0, w0
9145	str	w0, [x29, 204]
9146	ldr	x0, [x26, #:lo12:.LANCHOR69]
9147	strh	wzr, [x22, #:lo12:.LANCHOR103]
9148	strh	wzr, [x21, #:lo12:.LANCHOR97]
9149	strh	wzr, [x20, #:lo12:.LANCHOR105]
9150	strh	wzr, [x0, 146]
9151	ldrsh	w19, [x0, 134]
9152	add	x0, x28, :lo12:.LANCHOR8
9153	str	x0, [x29, 192]
9154	adrp	x0, .LANCHOR152
9155	add	x0, x0, :lo12:.LANCHOR152
9156	adrp	x28, .LC0
9157	str	x0, [x29, 112]
9158	add	x0, x28, :lo12:.LC0
9159	stp	x2, x3, [x29, 120]
9160	stp	x4, x5, [x29, 136]
9161	stp	x6, x7, [x29, 152]
9162	stp	x10, x11, [x29, 168]
9163	str	x8, [x29, 184]
9164	str	x0, [x29, 104]
9165.L1508:
9166	ldr	x0, [x29, 192]
9167	ldrh	w0, [x0]
9168	cmp	w19, w0
9169	blt	.L1525
9170	ldr	x0, [x26, #:lo12:.LANCHOR69]
9171	ldrh	w1, [x25, #:lo12:.LANCHOR109]
9172	ldp	x27, x28, [sp, 80]
9173	strh	w1, [x0, 114]
9174	ldrh	w1, [x24, #:lo12:.LANCHOR111]
9175	strh	w1, [x0, 118]
9176	ldrh	w1, [x23, #:lo12:.LANCHOR113]
9177	strh	w1, [x0, 116]
9178	ldrh	w1, [x22, #:lo12:.LANCHOR103]
9179	strh	w1, [x0, 122]
9180	ldrh	w1, [x21, #:lo12:.LANCHOR97]
9181	strh	w1, [x0, 120]
9182	ldrh	w1, [x20, #:lo12:.LANCHOR105]
9183	strh	w1, [x0, 124]
9184	ldp	x19, x20, [sp, 16]
9185	ldp	x21, x22, [sp, 32]
9186	ldp	x23, x24, [sp, 48]
9187	ldp	x25, x26, [sp, 64]
9188	ldp	x29, x30, [sp], 208
9189	ret
9190.L1525:
9191	adrp	x0, .LANCHOR9
9192	sxtw	x2, w19
9193	ldr	x3, [x0, #:lo12:.LANCHOR9]
9194	add	x28, x3, x2, lsl 2
9195	ldrb	w5, [x28, 3]
9196	cbz	w5, .L1526
9197	ldr	x0, [x29, 128]
9198	mov	w1, 0
9199	ldr	x6, [x26, #:lo12:.LANCHOR69]
9200	ldrb	w7, [x0, #:lo12:.LANCHOR85]
9201	ldr	x0, [x29, 120]
9202	ldrh	w8, [x0, #:lo12:.LANCHOR91]
9203	mov	w0, 0
9204.L1510:
9205	cmp	w1, w7
9206	blt	.L1513
9207	cbz	w0, .L1514
9208	mov	w1, 32768
9209	sdiv	w0, w1, w0
9210	add	w0, w0, 1
9211	sxth	w0, w0
9212.L1509:
9213	ldr	x3, [x29, 184]
9214	mov	w1, 6
9215	smull	x1, w19, w1
9216	ldr	x4, [x3, #:lo12:.LANCHOR4]
9217	add	x5, x4, x1
9218	strh	w0, [x5, 4]
9219	mov	w0, -1
9220	strh	w0, [x5, 2]
9221	strh	w0, [x4, x1]
9222	mov	w1, 224
9223	ldrb	w0, [x28, 2]
9224	and	w0, w0, 224
9225	cmp	w0, 32
9226	ccmp	w0, w1, 4, ne
9227	beq	.L1515
9228	adrp	x1, .LANCHOR12
9229	ldr	x1, [x1, #:lo12:.LANCHOR12]
9230	ldrh	w4, [x1, 16]
9231	cmp	w19, w4
9232	beq	.L1515
9233	ldrh	w4, [x1, 48]
9234	cmp	w19, w4
9235	beq	.L1515
9236	ldrh	w1, [x1, 80]
9237	cmp	w19, w1
9238	beq	.L1515
9239	cmp	w0, 64
9240	bne	.L1516
9241	ldr	x0, [x29, 144]
9242	add	x2, x22, :lo12:.LANCHOR103
9243	mov	w1, w19
9244	add	x0, x0, :lo12:.LANCHOR101
9245.L1532:
9246	bl	_insert_data_list
9247.L1515:
9248	add	w19, w19, 1
9249	sxth	w19, w19
9250	b	.L1508
9251.L1513:
9252	asr	w4, w5, w1
9253	tbnz	x4, 0, .L1511
9254	add	w0, w8, w0
9255	sxth	w0, w0
9256.L1512:
9257	add	w1, w1, 1
9258	b	.L1510
9259.L1511:
9260	ldrh	w4, [x6, 146]
9261	add	w4, w4, 1
9262	strh	w4, [x6, 146]
9263	b	.L1512
9264.L1514:
9265	ldrb	w1, [x28, 2]
9266	mov	w4, -1
9267	orr	w1, w1, -32
9268	strb	w1, [x28, 2]
9269	adrp	x1, .LANCHOR11
9270	ldr	x1, [x1, #:lo12:.LANCHOR11]
9271	strh	w4, [x1, x2, lsl 1]
9272	b	.L1509
9273.L1526:
9274	ldr	w0, [x29, 204]
9275	b	.L1509
9276.L1516:
9277	cmp	w0, 96
9278	bne	.L1517
9279	ldr	x0, [x29, 152]
9280	add	x2, x20, :lo12:.LANCHOR105
9281	mov	w1, w19
9282	add	x0, x0, :lo12:.LANCHOR96
9283	b	.L1532
9284.L1517:
9285	cmp	w0, 160
9286	bne	.L1518
9287	ldr	x0, [x29, 136]
9288	add	x2, x21, :lo12:.LANCHOR97
9289	mov	w1, w19
9290	add	x0, x0, :lo12:.LANCHOR98
9291	b	.L1532
9292.L1518:
9293	cbnz	w0, .L1515
9294	adrp	x0, .LANCHOR11
9295	ldr	x0, [x0, #:lo12:.LANCHOR11]
9296	ldrh	w2, [x0, x2, lsl 1]
9297	cbz	w2, .L1519
9298	cmp	w27, 2
9299	bgt	.L1520
9300	mov	w1, w19
9301	adrp	x0, .LC88
9302	add	x0, x0, :lo12:.LC88
9303	bl	printf
9304	ldrb	w0, [x28, 2]
9305	add	w27, w27, 1
9306	sxth	w27, w27
9307	tbz	x0, 4, .L1521
9308	mov	w1, 5
9309.L1531:
9310	bfi	w0, w1, 5, 3
9311	strb	w0, [x28, 2]
9312	mov	w2, 0
9313	mov	w1, 1
9314	mov	w0, w19
9315	bl	gc_add_sblk
9316	b	.L1515
9317.L1521:
9318	mov	w1, 2
9319	b	.L1531
9320.L1520:
9321	ldp	x0, x1, [x29, 104]
9322	mov	w2, 656
9323	bl	printf
9324.L1519:
9325	ldrb	w0, [x28, 2]
9326	ands	w0, w0, 24
9327	bne	.L1523
9328	ldr	x0, [x29, 176]
9329	add	x2, x25, :lo12:.LANCHOR109
9330	mov	w1, w19
9331	add	x0, x0, :lo12:.LANCHOR110
9332.L1533:
9333	bl	_insert_free_list
9334	b	.L1515
9335.L1523:
9336	cmp	w0, 16
9337	bne	.L1524
9338	ldr	x0, [x29, 168]
9339	add	x2, x24, :lo12:.LANCHOR111
9340	mov	w1, w19
9341	add	x0, x0, :lo12:.LANCHOR112
9342	b	.L1533
9343.L1524:
9344	ldr	x0, [x29, 160]
9345	add	x2, x23, :lo12:.LANCHOR113
9346	mov	w1, w19
9347	add	x0, x0, :lo12:.LANCHOR114
9348	b	.L1533
9349	.size	zftl_sblk_list_init, .-zftl_sblk_list_init
9350	.section	.text.ftl_open_sblk_init,"ax",@progbits
9351	.align	2
9352	.global	ftl_open_sblk_init
9353	.type	ftl_open_sblk_init, %function
9354ftl_open_sblk_init:
9355	stp	x29, x30, [sp, -80]!
9356	add	x29, sp, 0
9357	stp	x21, x22, [sp, 32]
9358	adrp	x21, .LANCHOR85
9359	stp	x23, x24, [sp, 48]
9360	adrp	x22, .LC75
9361	stp	x19, x20, [sp, 16]
9362	adrp	x24, .LANCHOR100
9363	mov	x19, x0
9364	mov	w23, w1
9365	add	x24, x24, :lo12:.LANCHOR100
9366	add	x21, x21, :lo12:.LANCHOR85
9367	add	x22, x22, :lo12:.LC75
9368	stp	x25, x26, [sp, 64]
9369.L1535:
9370	mov	w25, 65535
9371.L1536:
9372	mov	w0, w23
9373	bl	ftl_alloc_sblk
9374	and	w20, w0, 65535
9375	cmp	w20, w25
9376	beq	.L1536
9377	mov	w1, 0
9378	mov	w0, w20
9379	bl	ftl_erase_sblk
9380	add	x1, x19, 16
9381	mov	w0, w20
9382	bl	ftl_get_blk_list_in_sblk
9383	and	w0, w0, 255
9384	ldrh	w1, [x24]
9385	cmp	w23, 2
9386	strb	w0, [x19, 9]
9387	strh	w20, [x19]
9388	strh	wzr, [x19, 2]
9389	mul	w0, w1, w0
9390	strb	wzr, [x19, 5]
9391	strh	w0, [x19, 6]
9392	strh	wzr, [x19, 10]
9393	strb	w23, [x19, 4]
9394	beq	.L1539
9395	ldrb	w0, [x21]
9396	mul	w0, w1, w0
9397	and	w0, w0, 65535
9398.L1537:
9399	ldrb	w2, [x21]
9400	adrp	x26, .LANCHOR11
9401	strh	w0, [x19, 12]
9402	ubfiz	x25, x20, 1, 16
9403	mul	w2, w2, w1
9404	adrp	x1, .LANCHOR123
9405	ldr	x3, [x1, #:lo12:.LANCHOR123]
9406	mov	w1, 255
9407	lsl	w2, w2, 2
9408	add	x0, x3, x0, uxth 2
9409	bl	ftl_memset
9410	ldr	x0, [x26, #:lo12:.LANCHOR11]
9411	ldrh	w1, [x19, 6]
9412	strh	w1, [x0, x25]
9413	ldrb	w0, [x19, 9]
9414	cbnz	w0, .L1534
9415	mov	w1, w20
9416	mov	x0, x22
9417	bl	printf
9418	ldr	x0, [x26, #:lo12:.LANCHOR11]
9419	mov	w1, -1
9420	strh	w1, [x0, x25]
9421	mov	w0, 7
9422	strb	w0, [x19, 4]
9423	b	.L1535
9424.L1539:
9425	mov	w0, 0
9426	b	.L1537
9427.L1534:
9428	ldp	x19, x20, [sp, 16]
9429	ldp	x21, x22, [sp, 32]
9430	ldp	x23, x24, [sp, 48]
9431	ldp	x25, x26, [sp, 64]
9432	ldp	x29, x30, [sp], 80
9433	ret
9434	.size	ftl_open_sblk_init, .-ftl_open_sblk_init
9435	.section	.text.pm_free_sblk,"ax",@progbits
9436	.align	2
9437	.global	pm_free_sblk
9438	.type	pm_free_sblk, %function
9439pm_free_sblk:
9440	stp	x29, x30, [sp, -384]!
9441	adrp	x0, .LANCHOR153
9442	add	x29, sp, 0
9443	stp	x19, x20, [sp, 16]
9444	mov	x19, x0
9445	ldrh	w1, [x0, #:lo12:.LANCHOR153]
9446	stp	x21, x22, [sp, 32]
9447	stp	x23, x24, [sp, 48]
9448	cmp	w1, 128
9449	stp	x25, x26, [sp, 64]
9450	stp	x27, x28, [sp, 80]
9451	bls	.L1543
9452	adrp	x1, .LANCHOR154
9453	adrp	x0, .LC0
9454	mov	w2, 94
9455	add	x1, x1, :lo12:.LANCHOR154
9456	add	x0, x0, :lo12:.LC0
9457	bl	printf
9458.L1543:
9459	adrp	x5, .LANCHOR69
9460	mov	x26, x5
9461	ldrh	w3, [x19, #:lo12:.LANCHOR153]
9462	mov	w1, 0
9463	ldr	x0, [x5, #:lo12:.LANCHOR69]
9464	mov	w19, 0
9465	mov	w4, 65535
9466	add	x0, x0, 416
9467	ldrh	w2, [x0, 272]
9468.L1546:
9469	ldrh	w6, [x0]
9470	cmp	w6, w4
9471	beq	.L1544
9472	add	w1, w1, 1
9473	and	w1, w1, 65535
9474.L1544:
9475	cmp	w1, w2
9476	bcs	.L1545
9477	cmp	w1, w3
9478	bcs	.L1545
9479	add	w19, w19, 1
9480	add	x0, x0, 2
9481	and	w19, w19, 65535
9482	cmp	w19, 128
9483	bne	.L1546
9484.L1545:
9485	add	w19, w19, 1
9486	mov	w0, 128
9487	and	w19, w19, 65535
9488	add	x22, x29, 128
9489	cmp	w19, 129
9490	mov	w2, 256
9491	csel	w19, w19, w0, ne
9492	mov	w1, 0
9493	mov	x0, x22
9494	adrp	x23, .LANCHOR81
9495	bl	ftl_memset
9496	adrp	x0, .LANCHOR80
9497	ldr	x6, [x26, #:lo12:.LANCHOR69]
9498	mov	w2, 24
9499	ldrb	w11, [x23, #:lo12:.LANCHOR81]
9500	ldrh	w10, [x0, #:lo12:.LANCHOR80]
9501	adrp	x0, .LANCHOR31
9502	add	x4, x6, 704
9503	ldrb	w0, [x0, #:lo12:.LANCHOR31]
9504	ldrh	w1, [x6, 698]
9505	sub	w2, w2, w0
9506	sub	w0, w2, w10
9507	add	x1, x1, 176
9508	mov	w2, 1
9509	add	x1, x6, x1, lsl 2
9510	lsl	w2, w2, w0
9511	sub	w2, w2, #1
9512.L1548:
9513	cmp	x1, x4
9514	bne	.L1551
9515	adrp	x24, .LANCHOR85
9516	adrp	x25, .LANCHOR100
9517	adrp	x27, .LC89
9518	adrp	x28, .LANCHOR19
9519	ldrb	w21, [x24, #:lo12:.LANCHOR85]
9520	add	x23, x23, :lo12:.LANCHOR81
9521	ldrh	w0, [x25, #:lo12:.LANCHOR100]
9522	add	x27, x27, :lo12:.LC89
9523	add	x28, x28, :lo12:.LANCHOR19
9524	mov	x20, 0
9525	mov	w7, 65535
9526	str	wzr, [x29, 124]
9527	mul	w21, w21, w0
9528	and	w21, w21, 65535
9529.L1557:
9530	ldr	x0, [x26, #:lo12:.LANCHOR69]
9531	and	w6, w20, 65535
9532	ldrb	w2, [x23]
9533	mov	w8, w20
9534	add	x1, x0, x20, sxtw 1
9535	ldrh	w3, [x1, 416]
9536	ldrh	w1, [x0, 692]
9537	sdiv	w1, w1, w2
9538	cmp	w1, w3
9539	bne	.L1552
9540	ldrb	w1, [x24, #:lo12:.LANCHOR85]
9541	ldrh	w2, [x25, #:lo12:.LANCHOR100]
9542	mul	w1, w1, w2
9543	strh	w1, [x22, x20, lsl 1]
9544.L1552:
9545	ldrh	w2, [x22, x20, lsl 1]
9546	cmp	w2, w21
9547	bcs	.L1553
9548	cmp	w2, 0
9549	ldr	w1, [x29, 124]
9550	csel	w21, w21, w2, eq
9551	csel	w1, w1, w6, eq
9552	str	w1, [x29, 124]
9553.L1553:
9554	ldrh	w1, [x0, 74]
9555	cmp	w1, 2
9556	bls	.L1554
9557	mov	w1, 65535
9558	cmp	w3, w1
9559	beq	.L1554
9560	adrp	x4, .LANCHOR9
9561	ubfiz	x1, x3, 2, 16
9562	ldrh	w0, [x0, 92]
9563	ldr	x4, [x4, #:lo12:.LANCHOR9]
9564	add	w0, w0, 4
9565	ldrh	w4, [x4, x1]
9566	and	w4, w4, 2047
9567	cmp	w4, w0
9568	bgt	.L1554
9569	mov	w1, w8
9570	str	w6, [x29, 104]
9571	str	w8, [x29, 112]
9572	mov	x0, x27
9573	bl	printf
9574	ldr	w6, [x29, 104]
9575	ldr	w8, [x29, 112]
9576	mov	w7, w6
9577.L1554:
9578	ldrh	w0, [x22, x20, lsl 1]
9579	cbnz	w0, .L1555
9580	ldr	x0, [x26, #:lo12:.LANCHOR69]
9581	sxtw	x6, w8
9582	add	x1, x6, 208
9583	ldrh	w3, [x0, x1, lsl 1]
9584	mov	w1, 65535
9585	cmp	w3, w1
9586	beq	.L1555
9587	ldr	w1, [x28]
9588	tbz	x1, 12, .L1556
9589	ldrh	w4, [x0, 688]
9590	mov	w2, 0
9591	str	x6, [x29, 104]
9592	mov	w1, w8
9593	str	w7, [x29, 112]
9594	adrp	x0, .LC90
9595	add	x0, x0, :lo12:.LC90
9596	bl	printf
9597	ldr	w7, [x29, 112]
9598	ldr	x6, [x29, 104]
9599.L1556:
9600	ldr	x0, [x26, #:lo12:.LANCHOR69]
9601	add	x6, x6, 208
9602	str	w7, [x29, 104]
9603	str	x6, [x29, 112]
9604	ldrh	w0, [x0, x6, lsl 1]
9605	bl	ftl_free_sblk
9606	ldr	x0, [x26, #:lo12:.LANCHOR69]
9607	mov	w1, -1
9608	ldr	x6, [x29, 112]
9609	ldr	w7, [x29, 104]
9610	strh	w1, [x0, x6, lsl 1]
9611	ldrh	w1, [x0, 688]
9612	sub	w1, w1, #1
9613	strh	w1, [x0, 688]
9614.L1555:
9615	add	x20, x20, 1
9616	cmp	w19, w20, uxth
9617	bhi	.L1557
9618	mov	w0, 65535
9619	cmp	w7, w0
9620	ldr	w0, [x29, 124]
9621	ldp	x19, x20, [sp, 16]
9622	csel	w0, w0, w7, eq
9623	ldp	x21, x22, [sp, 32]
9624	ldp	x23, x24, [sp, 48]
9625	ldp	x25, x26, [sp, 64]
9626	ldp	x27, x28, [sp, 80]
9627	ldp	x29, x30, [sp], 384
9628	ret
9629.L1551:
9630	ldr	w0, [x4]
9631	add	x7, x6, 416
9632	mov	x3, 0
9633	lsr	w0, w0, w10
9634	and	w0, w0, w2
9635	udiv	w0, w0, w11
9636	and	w0, w0, 65535
9637.L1550:
9638	ldrh	w8, [x7]
9639	cmp	w8, w0
9640	bne	.L1549
9641	ldrh	w8, [x22, x3, lsl 1]
9642	add	w8, w8, 1
9643	strh	w8, [x22, x3, lsl 1]
9644.L1549:
9645	add	x3, x3, 1
9646	add	x7, x7, 2
9647	cmp	w19, w3, uxth
9648	bhi	.L1550
9649	add	x4, x4, 4
9650	b	.L1548
9651	.size	pm_free_sblk, .-pm_free_sblk
9652	.section	.text.ftl_memcpy,"ax",@progbits
9653	.align	2
9654	.global	ftl_memcpy
9655	.type	ftl_memcpy, %function
9656ftl_memcpy:
9657	uxtw	x2, w2
9658	b	memcpy
9659	.size	ftl_memcpy, .-ftl_memcpy
9660	.section	.text.flash_info_data_init,"ax",@progbits
9661	.align	2
9662	.global	flash_info_data_init
9663	.type	flash_info_data_init, %function
9664flash_info_data_init:
9665	stp	x29, x30, [sp, -32]!
9666	adrp	x0, .LANCHOR19
9667	add	x29, sp, 0
9668	ldr	w0, [x0, #:lo12:.LANCHOR19]
9669	str	x19, [sp, 16]
9670	tbz	x0, 12, .L1570
9671	adrp	x2, .LANCHOR155
9672	adrp	x0, .LC91
9673	add	x2, x2, :lo12:.LANCHOR155
9674	mov	w1, 120
9675	add	x0, x0, :lo12:.LC91
9676	bl	printf
9677.L1570:
9678	adrp	x19, .LANCHOR6
9679	mov	w2, 2048
9680	mov	w1, 0
9681	ldr	x0, [x19, #:lo12:.LANCHOR6]
9682	bl	ftl_memset
9683	ldr	x0, [x19, #:lo12:.LANCHOR6]
9684	mov	w1, 21321
9685	movk	w1, 0x5359, lsl 16
9686	mov	w2, 32
9687	add	x0, x0, 80
9688	str	w1, [x0, -80]
9689	mov	w1, 2032
9690	str	w1, [x0, -72]
9691	mov	w1, 1
9692	strh	w1, [x0, -64]
9693	adrp	x1, .LANCHOR25
9694	add	x1, x1, :lo12:.LANCHOR25
9695	bl	ftl_memcpy
9696	ldr	x0, [x19, #:lo12:.LANCHOR6]
9697	mov	w2, 32
9698	ldr	x19, [sp, 16]
9699	adrp	x1, .LANCHOR32
9700	ldp	x29, x30, [sp], 32
9701	add	x1, x1, :lo12:.LANCHOR32
9702	add	x0, x0, 48
9703	b	ftl_memcpy
9704	.size	flash_info_data_init, .-flash_info_data_init
9705	.section	.text.ftl_memcpy32,"ax",@progbits
9706	.align	2
9707	.global	ftl_memcpy32
9708	.type	ftl_memcpy32, %function
9709ftl_memcpy32:
9710	mov	x3, 0
9711.L1576:
9712	cmp	w2, w3
9713	bhi	.L1577
9714	ret
9715.L1577:
9716	ldr	w4, [x1, x3, lsl 2]
9717	str	w4, [x0, x3, lsl 2]
9718	add	x3, x3, 1
9719	b	.L1576
9720	.size	ftl_memcpy32, .-ftl_memcpy32
9721	.section	.text.ftl_memcmp,"ax",@progbits
9722	.align	2
9723	.global	ftl_memcmp
9724	.type	ftl_memcmp, %function
9725ftl_memcmp:
9726	uxtw	x2, w2
9727	b	memcmp
9728	.size	ftl_memcmp, .-ftl_memcmp
9729	.section	.text.rknand_get_clk_rate,"ax",@progbits
9730	.align	2
9731	.global	rknand_get_clk_rate
9732	.type	rknand_get_clk_rate, %function
9733rknand_get_clk_rate:
9734	mov	w0, 19712
9735	movk	w0, 0x8d2, lsl 16
9736	ret
9737	.size	rknand_get_clk_rate, .-rknand_get_clk_rate
9738	.section	.text.ftl_malloc,"ax",@progbits
9739	.align	2
9740	.global	ftl_malloc
9741	.type	ftl_malloc, %function
9742ftl_malloc:
9743	mov	w1, 0
9744	sxtw	x0, w0
9745	b	kmalloc
9746	.size	ftl_malloc, .-ftl_malloc
9747	.section	.text.nandc_init,"ax",@progbits
9748	.align	2
9749	.global	nandc_init
9750	.type	nandc_init, %function
9751nandc_init:
9752	stp	x29, x30, [sp, -64]!
9753	add	x29, sp, 0
9754	stp	x21, x22, [sp, 32]
9755	adrp	x21, .LANCHOR19
9756	stp	x19, x20, [sp, 16]
9757	mov	x19, x0
9758	ldr	w0, [x21, #:lo12:.LANCHOR19]
9759	str	wzr, [x29, 56]
9760	tbz	x0, 12, .L1582
9761	adrp	x1, .LANCHOR156
9762	adrp	x0, .LC92
9763	mov	x2, x19
9764	add	x1, x1, :lo12:.LANCHOR156
9765	add	x0, x0, :lo12:.LC92
9766	bl	printf
9767.L1582:
9768	adrp	x20, .LANCHOR27
9769	mov	w0, 6
9770	ldr	w2, [x19, 352]
9771	mov	w1, 12336
9772	strb	w0, [x20, #:lo12:.LANCHOR27]
9773	adrp	x0, .LANCHOR7
9774	movk	w1, 0x5638, lsl 16
9775	mov	x22, x0
9776	str	x19, [x0, #:lo12:.LANCHOR7]
9777	cmp	w2, w1
9778	bne	.L1583
9779	mov	w0, 8
9780	strb	w0, [x20, #:lo12:.LANCHOR27]
9781.L1583:
9782	ldr	w1, [x19, 128]
9783	mov	w0, 12336
9784	movk	w0, 0x5639, lsl 16
9785	cmp	w1, w0
9786	bne	.L1584
9787	mov	w0, 9
9788	strb	w0, [x20, #:lo12:.LANCHOR27]
9789.L1584:
9790	ldrb	w0, [x20, #:lo12:.LANCHOR27]
9791	cmp	w0, 9
9792	adrp	x0, .LANCHOR50
9793	bne	.L1585
9794	mov	w1, 1
9795	strb	w1, [x0, #:lo12:.LANCHOR50]
9796	ldr	w0, [x29, 56]
9797	mov	w1, 2
9798	orr	w0, w0, 256
9799	str	w0, [x29, 56]
9800	ldr	w0, [x29, 56]
9801	bfi	w0, w1, 18, 3
9802	str	w0, [x29, 56]
9803	ldr	w0, [x29, 56]
9804	str	w0, [x19]
9805	str	wzr, [x19, 520]
9806	mov	w0, 4161
9807	str	w0, [x19, 4]
9808	mov	w0, 8321
9809	str	w0, [x19, 8]
9810	mov	w0, 4099
9811	movk	w0, 0x10, lsl 16
9812	str	w0, [x19, 80]
9813	mov	w0, 38
9814	str	w0, [x19, 84]
9815	mov	w0, 39
9816	str	w0, [x19, 84]
9817	ldr	w0, [x21, #:lo12:.LANCHOR19]
9818	tbz	x0, 12, .L1587
9819	ldr	w1, [x19]
9820	ldr	w2, [x19, 8]
9821	ldr	w3, [x19, 80]
9822	ldr	w4, [x19, 84]
9823	ldr	w5, [x19, 88]
9824.L1600:
9825	adrp	x0, .LC93
9826	add	x0, x0, :lo12:.LC93
9827	bl	printf
9828.L1587:
9829	adrp	x0, .LANCHOR51
9830	mov	w1, 1
9831	strb	w1, [x0, #:lo12:.LANCHOR51]
9832	adrp	x0, .LANCHOR53
9833	strh	wzr, [x0, #:lo12:.LANCHOR53]
9834	adrp	x0, .LANCHOR49
9835	strb	wzr, [x0, #:lo12:.LANCHOR49]
9836	ldr	w0, [x21, #:lo12:.LANCHOR19]
9837	tbz	x0, 12, .L1581
9838	ldrb	w1, [x20, #:lo12:.LANCHOR27]
9839	adrp	x0, .LC94
9840	add	x0, x0, :lo12:.LC94
9841	bl	printf
9842.L1581:
9843	ldp	x19, x20, [sp, 16]
9844	ldp	x21, x22, [sp, 32]
9845	ldp	x29, x30, [sp], 64
9846	ret
9847.L1585:
9848	strb	wzr, [x0, #:lo12:.LANCHOR50]
9849	mov	w1, 1
9850	ldr	w0, [x29, 56]
9851	orr	w0, w0, 256
9852	str	w0, [x29, 56]
9853	ldr	w0, [x29, 56]
9854	bfi	w0, w1, 24, 3
9855	str	w0, [x29, 56]
9856	ldr	w0, [x29, 56]
9857	str	w0, [x19]
9858	str	wzr, [x19, 336]
9859	mov	w0, 4193
9860	str	w0, [x19, 4]
9861	mov	w0, 8321
9862	str	w0, [x19, 344]
9863	mov	w0, 4099
9864	movk	w0, 0x10, lsl 16
9865	str	w0, [x19, 304]
9866	mov	w0, 38
9867	str	w0, [x19, 308]
9868	mov	w0, 39
9869	str	w0, [x19, 308]
9870	mov	w0, 2048
9871	bl	ftl_malloc
9872	adrp	x1, .LANCHOR52
9873	str	x0, [x1, #:lo12:.LANCHOR52]
9874	ldr	w0, [x21, #:lo12:.LANCHOR19]
9875	tbz	x0, 12, .L1587
9876	ldr	x0, [x22, #:lo12:.LANCHOR7]
9877	ldr	w1, [x0]
9878	ldr	w2, [x0, 344]
9879	ldr	w3, [x0, 304]
9880	ldr	w4, [x0, 308]
9881	ldr	w5, [x0, 312]
9882	b	.L1600
9883	.size	nandc_init, .-nandc_init
9884	.section	.text.zbuf_init,"ax",@progbits
9885	.align	2
9886	.global	zbuf_init
9887	.type	zbuf_init, %function
9888zbuf_init:
9889	stp	x29, x30, [sp, -48]!
9890	adrp	x0, .LANCHOR55
9891	add	x29, sp, 0
9892	stp	x19, x20, [sp, 16]
9893	add	x19, x0, :lo12:.LANCHOR55
9894	stp	x21, x22, [sp, 32]
9895	mov	x20, x0
9896	adrp	x22, .LANCHOR68
9897	add	x22, x22, :lo12:.LANCHOR68
9898	mov	w21, 0
9899.L1602:
9900	and	w0, w21, 255
9901	strb	w0, [x19, 1]
9902	add	w1, w0, 1
9903	ldrb	w0, [x22]
9904	strb	w1, [x19]
9905	add	w21, w21, 1
9906	strb	wzr, [x19, 2]
9907	add	x19, x19, 64
9908	str	xzr, [x19, -48]
9909	lsl	w0, w0, 9
9910	bl	ftl_malloc
9911	str	x0, [x19, -56]
9912	mov	w0, 64
9913	bl	ftl_malloc
9914	str	x0, [x19, -40]
9915	cmp	w21, 16
9916	bne	.L1602
9917	add	x0, x20, :lo12:.LANCHOR55
9918	mov	w1, -1
9919	strb	w1, [x0, 960]
9920	adrp	x0, .LANCHOR56
9921	strb	wzr, [x0, #:lo12:.LANCHOR56]
9922	adrp	x0, .LANCHOR57
9923	ldp	x19, x20, [sp, 16]
9924	strb	w21, [x0, #:lo12:.LANCHOR57]
9925	ldp	x21, x22, [sp, 32]
9926	ldp	x29, x30, [sp], 48
9927	ret
9928	.size	zbuf_init, .-zbuf_init
9929	.section	.text.gc_init,"ax",@progbits
9930	.align	2
9931	.global	gc_init
9932	.type	gc_init, %function
9933gc_init:
9934	stp	x29, x30, [sp, -32]!
9935	adrp	x0, .LANCHOR90
9936	mov	w2, 2216
9937	mov	w1, 0
9938	add	x29, sp, 0
9939	strb	wzr, [x0, #:lo12:.LANCHOR90]
9940	adrp	x0, .LANCHOR157
9941	stp	x19, x20, [sp, 16]
9942	adrp	x20, .LANCHOR76
9943	strb	wzr, [x0, #:lo12:.LANCHOR157]
9944	adrp	x0, .LANCHOR158
9945	add	x19, x20, :lo12:.LANCHOR76
9946	str	wzr, [x0, #:lo12:.LANCHOR158]
9947	adrp	x0, .LANCHOR102
9948	strh	wzr, [x0, #:lo12:.LANCHOR102]
9949	mov	x0, x19
9950	bl	ftl_memset
9951	str	xzr, [x19, 8]
9952	mov	w0, -1
9953	strh	w0, [x20, #:lo12:.LANCHOR76]
9954	adrp	x0, .LANCHOR100
9955	adrp	x4, .LANCHOR108
9956	adrp	x20, .LANCHOR91
9957	ldrh	w1, [x0, #:lo12:.LANCHOR100]
9958	lsr	w2, w1, 1
9959	lsr	w0, w1, 2
9960	strh	w2, [x19, 38]
9961	adrp	x2, .LANCHOR93
9962	strh	w0, [x19, 36]
9963	adrp	x19, .LANCHOR85
9964	strh	wzr, [x2, #:lo12:.LANCHOR93]
9965	adrp	x2, .LANCHOR94
9966	ldrb	w3, [x19, #:lo12:.LANCHOR85]
9967	strh	wzr, [x2, #:lo12:.LANCHOR94]
9968	adrp	x2, .LANCHOR95
9969	strh	wzr, [x2, #:lo12:.LANCHOR95]
9970	mul	w2, w1, w3
9971	and	w2, w2, 65535
9972	sub	w5, w2, #32
9973	strh	w5, [x4, #:lo12:.LANCHOR108]
9974	adrp	x4, .LANCHOR106
9975	strh	w2, [x4, #:lo12:.LANCHOR106]
9976	adrp	x2, .LANCHOR99
9977	strh	w1, [x2, #:lo12:.LANCHOR99]
9978	adrp	x1, .LANCHOR159
9979	mov	w2, 4
9980	strh	w2, [x1, #:lo12:.LANCHOR159]
9981	adrp	x1, .LANCHOR75
9982	strh	w0, [x1, #:lo12:.LANCHOR75]
9983	ldrh	w0, [x20, #:lo12:.LANCHOR91]
9984	mul	w0, w0, w3
9985	lsl	w0, w0, 2
9986	bl	ftl_malloc
9987	adrp	x1, .LANCHOR160
9988	str	x0, [x1, #:lo12:.LANCHOR160]
9989	ldrb	w1, [x19, #:lo12:.LANCHOR85]
9990	ldrh	w0, [x20, #:lo12:.LANCHOR91]
9991	mul	w0, w0, w1
9992	lsl	w0, w0, 2
9993	bl	ftl_malloc
9994	adrp	x1, .LANCHOR161
9995	str	x0, [x1, #:lo12:.LANCHOR161]
9996	ldrh	w1, [x20, #:lo12:.LANCHOR91]
9997	ldrb	w0, [x19, #:lo12:.LANCHOR85]
9998	mul	w0, w1, w0
9999	bl	ftl_malloc
10000	adrp	x1, .LANCHOR88
10001	str	x0, [x1, #:lo12:.LANCHOR88]
10002	ldrb	w1, [x19, #:lo12:.LANCHOR85]
10003	ldrh	w0, [x20, #:lo12:.LANCHOR91]
10004	mul	w0, w0, w1
10005	lsl	w0, w0, 2
10006	bl	ftl_malloc
10007	adrp	x1, .LANCHOR82
10008	str	x0, [x1, #:lo12:.LANCHOR82]
10009	ldrb	w1, [x19, #:lo12:.LANCHOR85]
10010	ldrh	w0, [x20, #:lo12:.LANCHOR91]
10011	mul	w0, w0, w1
10012	lsl	w0, w0, 2
10013	bl	ftl_malloc
10014	adrp	x1, .LANCHOR162
10015	ldp	x19, x20, [sp, 16]
10016	str	x0, [x1, #:lo12:.LANCHOR162]
10017	adrp	x0, .LANCHOR104
10018	adrp	x1, .LANCHOR92
10019	ldp	x29, x30, [sp], 32
10020	ldrh	w0, [x0, #:lo12:.LANCHOR104]
10021	lsr	w0, w0, 2
10022	strh	w0, [x1, #:lo12:.LANCHOR92]
10023	ret
10024	.size	gc_init, .-gc_init
10025	.section	.text.ftl_free,"ax",@progbits
10026	.align	2
10027	.global	ftl_free
10028	.type	ftl_free, %function
10029ftl_free:
10030	ret
10031	.size	ftl_free, .-ftl_free
10032	.section	.text.js_hash,"ax",@progbits
10033	.align	2
10034	.global	js_hash
10035	.type	js_hash, %function
10036js_hash:
10037	mov	x4, x0
10038	mov	w0, 42982
10039	mov	x3, 0
10040	movk	w0, 0x47c6, lsl 16
10041.L1609:
10042	cmp	w1, w3
10043	bhi	.L1610
10044	ret
10045.L1610:
10046	lsr	w2, w0, 2
10047	ldrb	w5, [x4, x3]
10048	add	w2, w2, w0, lsl 5
10049	add	x3, x3, 1
10050	add	w2, w2, w5
10051	eor	w0, w0, w2
10052	b	.L1609
10053	.size	js_hash, .-js_hash
10054	.section	.text.ftl_debug_info_fill,"ax",@progbits
10055	.align	2
10056	.global	ftl_debug_info_fill
10057	.type	ftl_debug_info_fill, %function
10058ftl_debug_info_fill:
10059	adrp	x3, .LANCHOR68
10060	ldrb	w3, [x3, #:lo12:.LANCHOR68]
10061	cmp	w3, 8
10062	bls	.L1615
10063	and	w0, w0, 255
10064	cmp	x2, 0
10065	ccmp	w0, 2, 0, ne
10066	bne	.L1613
10067	stp	x29, x30, [sp, -16]!
10068	mov	x6, x1
10069	mov	w1, 21320
10070	mov	x0, x2
10071	add	x29, sp, 0
10072	movk	w1, 0x4841, lsl 16
10073	str	w1, [x6]
10074	mov	w1, 1024
10075	bl	js_hash
10076	str	w0, [x6, 4]
10077	mov	w0, 0
10078	ldp	x29, x30, [sp], 16
10079	ret
10080.L1613:
10081	stp	wzr, wzr, [x1]
10082.L1615:
10083	mov	w0, 0
10084	ret
10085	.size	ftl_debug_info_fill, .-ftl_debug_info_fill
10086	.section	.text.timer_get_time,"ax",@progbits
10087	.align	2
10088	.global	timer_get_time
10089	.type	timer_get_time, %function
10090timer_get_time:
10091	mov	w0, 0
10092	ret
10093	.size	timer_get_time, .-timer_get_time
10094	.section	.text.FlashCs123Init,"ax",@progbits
10095	.align	2
10096	.global	FlashCs123Init
10097	.type	FlashCs123Init, %function
10098FlashCs123Init:
10099	ret
10100	.size	FlashCs123Init, .-FlashCs123Init
10101	.section	.text.rk_nand_de_init,"ax",@progbits
10102	.align	2
10103	.global	rk_nand_de_init
10104	.type	rk_nand_de_init, %function
10105rk_nand_de_init:
10106	b	zftl_flash_de_init
10107	.size	rk_nand_de_init, .-rk_nand_de_init
10108	.section	.text.ftl_get_density,"ax",@progbits
10109	.align	2
10110	.global	ftl_get_density
10111	.type	ftl_get_density, %function
10112ftl_get_density:
10113	and	w0, w0, 255
10114	b	zftl_get_density
10115	.size	ftl_get_density, .-ftl_get_density
10116	.section	.text.ftl_get_capacity,"ax",@progbits
10117	.align	2
10118	.global	ftl_get_capacity
10119	.type	ftl_get_capacity, %function
10120ftl_get_capacity:
10121	adrp	x0, .LANCHOR73
10122	ldr	w0, [x0, #:lo12:.LANCHOR73]
10123	ret
10124	.size	ftl_get_capacity, .-ftl_get_capacity
10125	.section	.text.rknand_print_hex,"ax",@progbits
10126	.align	2
10127	.global	rknand_print_hex
10128	.type	rknand_print_hex, %function
10129rknand_print_hex:
10130	stp	x29, x30, [sp, -96]!
10131	add	x29, sp, 0
10132	stp	x21, x22, [sp, 32]
10133	adrp	x21, .LC96
10134	stp	x23, x24, [sp, 48]
10135	mov	x22, x1
10136	stp	x25, x26, [sp, 64]
10137	mov	w24, w2
10138	stp	x27, x28, [sp, 80]
10139	adrp	x25, .LC95
10140	mov	x27, x0
10141	uxtw	x26, w3
10142	add	x25, x25, :lo12:.LC95
10143	add	x21, x21, :lo12:.LC96
10144	stp	x19, x20, [sp, 16]
10145	mov	w23, 0
10146	mov	x19, 0
10147	mov	w20, 0
10148	adrp	x28, .LC97
10149.L1624:
10150	cmp	x26, x19
10151	bne	.L1630
10152	ldp	x19, x20, [sp, 16]
10153	adrp	x1, .LC97
10154	ldp	x21, x22, [sp, 32]
10155	add	x1, x1, :lo12:.LC97
10156	ldp	x23, x24, [sp, 48]
10157	adrp	x0, .LC98
10158	ldp	x25, x26, [sp, 64]
10159	add	x0, x0, :lo12:.LC98
10160	ldp	x27, x28, [sp, 80]
10161	ldp	x29, x30, [sp], 96
10162	b	printf
10163.L1630:
10164	cbnz	w20, .L1625
10165	mov	w3, w23
10166	mov	x2, x22
10167	mov	x1, x27
10168	mov	x0, x25
10169	bl	printf
10170.L1625:
10171	cmp	w24, 4
10172	bne	.L1626
10173	ldr	w1, [x22, x19, lsl 2]
10174.L1632:
10175	mov	x0, x21
10176	add	w20, w20, 1
10177	bl	printf
10178	cmp	w20, 15
10179	bls	.L1629
10180	mov	w20, 0
10181	add	x1, x28, :lo12:.LC97
10182	adrp	x0, .LC98
10183	add	x0, x0, :lo12:.LC98
10184	bl	printf
10185.L1629:
10186	add	x19, x19, 1
10187	add	w23, w23, w24
10188	b	.L1624
10189.L1626:
10190	cmp	w24, 2
10191	bne	.L1628
10192	ldrsh	w1, [x22, x19, lsl 1]
10193	b	.L1632
10194.L1628:
10195	ldrb	w1, [x22, x19]
10196	b	.L1632
10197	.size	rknand_print_hex, .-rknand_print_hex
10198	.section	.text.hynix_get_read_retry_default,"ax",@progbits
10199	.align	2
10200	.global	hynix_get_read_retry_default
10201	.type	hynix_get_read_retry_default, %function
10202hynix_get_read_retry_default:
10203	stp	x29, x30, [sp, -144]!
10204	mov	w2, -83
10205	mov	w1, -82
10206	add	x29, sp, 0
10207	stp	x25, x26, [sp, 64]
10208	mov	w25, w0
10209	adrp	x0, .LANCHOR6
10210	stp	x21, x22, [sp, 32]
10211	stp	x23, x24, [sp, 48]
10212	cmp	w25, 2
10213	ldr	x26, [x0, #:lo12:.LANCHOR6]
10214	mov	w0, -84
10215	stp	x19, x20, [sp, 16]
10216	stp	x27, x28, [sp, 80]
10217	add	x24, x26, 128
10218	add	x21, x26, 112
10219	strb	w0, [x26, 128]
10220	mov	w0, -81
10221	strb	w25, [x26, 112]
10222	strb	w2, [x26, 129]
10223	strb	w1, [x26, 130]
10224	strb	w0, [x26, 131]
10225	bne	.L1634
10226	mov	w0, -89
10227	strb	w0, [x21, 16]
10228	adrp	x0, .LANCHOR163+17
10229	mov	w1, -9
10230	strb	w1, [x0, #:lo12:.LANCHOR163+17]
10231.L1698:
10232	mov	w27, 7
10233	b	.L1741
10234.L1634:
10235	cmp	w25, 3
10236	bne	.L1636
10237	mov	x5, 0
10238.L1637:
10239	sub	w0, w5, #80
10240	strb	w0, [x24, x5]
10241	add	x5, x5, 1
10242	cmp	x5, 8
10243	bne	.L1637
10244	mov	w27, w5
10245	mov	w28, w5
10246.L1635:
10247	sub	w0, w25, #1
10248	cmp	w0, 1
10249	bhi	.L1643
10250	adrp	x25, .LANCHOR23
10251	adrp	x26, .LANCHOR29
10252	add	x25, x25, :lo12:.LANCHOR23
10253	add	x26, x26, :lo12:.LANCHOR29
10254	mov	w23, 0
10255	mov	w5, 55
10256.L1644:
10257	ldrb	w0, [x25]
10258	cmp	w0, w23
10259	bhi	.L1650
10260.L1651:
10261	strb	w28, [x21, 1]
10262	strb	w27, [x21, 2]
10263	ldp	x19, x20, [sp, 16]
10264	ldp	x21, x22, [sp, 32]
10265	ldp	x23, x24, [sp, 48]
10266	ldp	x25, x26, [sp, 64]
10267	ldp	x27, x28, [sp, 80]
10268	ldp	x29, x30, [sp], 144
10269	ret
10270.L1636:
10271	cmp	w25, 4
10272	bne	.L1638
10273	mov	w5, -52
10274	strb	w5, [x26, 128]
10275	mov	w5, -65
10276	strb	w5, [x26, 129]
10277	mov	w5, -86
10278	strb	w5, [x26, 130]
10279	mov	w5, -85
10280	mov	w27, 8
10281	strb	w5, [x26, 131]
10282	mov	w28, w27
10283	mov	w5, -51
10284	strb	w2, [x26, 133]
10285	strb	w5, [x26, 132]
10286	strb	w1, [x26, 134]
10287	strb	w0, [x26, 135]
10288	b	.L1635
10289.L1638:
10290	cmp	w25, 5
10291	bne	.L1639
10292	mov	w0, 56
10293	strb	w0, [x26, 128]
10294	mov	w0, 57
10295	strb	w0, [x26, 129]
10296	mov	w0, 58
10297	mov	w27, 8
10298	strb	w0, [x26, 130]
10299	mov	w0, 59
10300	strb	w0, [x26, 131]
10301.L1741:
10302	mov	w28, 4
10303	b	.L1635
10304.L1639:
10305	cmp	w25, 6
10306	bne	.L1640
10307	mov	w0, 14
10308	strb	w0, [x26, 128]
10309	mov	w0, 15
10310	strb	w0, [x26, 129]
10311	mov	w0, 16
10312	mov	w27, 12
10313	strb	w0, [x26, 130]
10314	mov	w0, 17
10315	strb	w0, [x26, 131]
10316	b	.L1741
10317.L1640:
10318	cmp	w25, 7
10319	bne	.L1641
10320	mov	x0, 0
10321.L1642:
10322	sub	w1, w0, #80
10323	strb	w1, [x24, x0]
10324	add	x0, x0, 1
10325	cmp	x0, 8
10326	bne	.L1642
10327	mov	w0, -44
10328	mov	w27, 12
10329	strb	w0, [x26, 136]
10330	mov	w28, 10
10331	mov	w0, -43
10332	strb	w0, [x26, 137]
10333	b	.L1635
10334.L1641:
10335	cmp	w25, 8
10336	bne	.L1698
10337	mov	w0, 6
10338	strb	w0, [x26, 128]
10339	mov	w0, 7
10340	strb	w0, [x26, 129]
10341	mov	w0, 9
10342	strb	w25, [x26, 130]
10343	strb	w0, [x26, 131]
10344	mov	w27, 50
10345	mov	w0, 10
10346	mov	w28, 5
10347	strb	w0, [x26, 132]
10348	b	.L1635
10349.L1650:
10350	ldrb	w0, [x26, w23, sxtw]
10351	mov	x1, 32
10352	mov	w19, 160
10353	mov	x20, 0
10354	umaddl	x19, w19, w0, x1
10355	adrp	x1, .LANCHOR7
10356	ubfiz	x0, x0, 8, 8
10357	ldr	x22, [x1, #:lo12:.LANCHOR7]
10358	add	x19, x21, x19
10359	add	x22, x22, x0
10360.L1645:
10361	str	w5, [x22, 2056]
10362	str	w5, [x29, 136]
10363	ldrb	w0, [x24, x20]
10364	str	w0, [x22, 2052]
10365	mov	x0, 1
10366	bl	udelay
10367	ldr	w0, [x22, 2048]
10368	strb	w0, [x19, x20]
10369	add	x20, x20, 1
10370	cmp	w28, w20, uxtb
10371	ldr	w5, [x29, 136]
10372	bhi	.L1645
10373	adrp	x2, .LANCHOR163
10374	add	x2, x2, :lo12:.LANCHOR163
10375	mov	x0, 0
10376.L1648:
10377	add	x7, x19, x0
10378	add	x4, x2, x0
10379	mov	x1, 1
10380.L1647:
10381	lsl	x3, x1, 2
10382	lsl	x8, x1, 3
10383	ldrb	w10, [x19, x0]
10384	add	x1, x1, 1
10385	cmp	x1, 7
10386	ldrb	w3, [x4, x3]
10387	add	w3, w3, w10
10388	strb	w3, [x7, x8]
10389	bne	.L1647
10390	add	x0, x0, 1
10391	cmp	x0, 4
10392	bne	.L1648
10393	add	w23, w23, 1
10394	strb	wzr, [x19, 16]
10395	strb	wzr, [x19, 24]
10396	and	w23, w23, 255
10397	strb	wzr, [x19, 32]
10398	strb	wzr, [x19, 40]
10399	strb	wzr, [x19, 48]
10400	strb	wzr, [x19, 41]
10401	strb	wzr, [x19, 49]
10402	b	.L1644
10403.L1643:
10404	sub	w0, w25, #3
10405	cmp	w0, 5
10406	bhi	.L1651
10407	mul	w24, w27, w28
10408	sub	w22, w28, #1
10409	and	x22, x22, 255
10410	mov	w20, 0
10411	asr	w23, w24, 1
10412	lsl	w0, w24, 4
10413	str	w0, [x29, 128]
10414	lsl	w0, w23, 1
10415	str	w0, [x29, 132]
10416	sbfiz	x0, x23, 1, 32
10417	sub	w24, w25, #5
10418	str	x0, [x29, 136]
10419	adrp	x0, .LANCHOR23
10420	add	x0, x0, :lo12:.LANCHOR23
10421	str	x0, [x29, 120]
10422	add	x0, x22, 1
10423	str	x0, [x29, 112]
10424.L1652:
10425	ldr	x0, [x29, 120]
10426	ldrb	w0, [x0]
10427	cmp	w0, w20
10428	bls	.L1651
10429	adrp	x0, .LANCHOR29
10430	add	x0, x0, :lo12:.LANCHOR29
10431	mov	w19, 160
10432	ldrb	w22, [x0, w20, sxtw]
10433	mov	w0, w22
10434	bl	zftl_flash_exit_slc_mode
10435	mov	x0, 32
10436	ubfiz	x2, x22, 8, 8
10437	mov	w1, 255
10438	str	w1, [x29, 108]
10439	nop // between mem op and mult-accumulate
10440	umaddl	x19, w19, w22, x0
10441	adrp	x0, .LANCHOR7
10442	ldr	x0, [x0, #:lo12:.LANCHOR7]
10443	add	x19, x21, x19
10444	add	x22, x0, x2
10445	str	w1, [x22, 2056]
10446	bl	nandc_wait_flash_ready
10447	cmp	w25, 8
10448	ldr	w1, [x29, 108]
10449	bne	.L1653
10450	mov	w0, 120
10451	str	w0, [x22, 2056]
10452	str	wzr, [x22, 2052]
10453	mov	w0, 23
10454	str	wzr, [x22, 2052]
10455	mov	w1, 25
10456	str	wzr, [x22, 2052]
10457	add	x19, x26, 144
10458	str	w0, [x22, 2056]
10459	mov	w0, 4
10460	str	w0, [x22, 2056]
10461	str	w1, [x22, 2056]
10462	mov	w1, 218
10463	str	w1, [x22, 2056]
10464	mov	w1, 21
10465	str	wzr, [x22, 2056]
10466	str	wzr, [x22, 2052]
10467	str	wzr, [x22, 2052]
10468	str	w1, [x22, 2052]
10469.L1744:
10470	str	w0, [x22, 2052]
10471	mov	w0, 48
10472	str	wzr, [x22, 2052]
10473	str	w0, [x22, 2056]
10474	bl	nandc_wait_flash_ready
10475	cmp	w24, 1
10476	ccmp	w25, 8, 4, hi
10477	beq	.L1699
10478	cmp	w25, 7
10479	mov	w0, 32
10480	mov	w1, 2
10481	csel	w1, w1, w0, ne
10482.L1660:
10483	adrp	x8, .LANCHOR164
10484	mov	x7, 0
10485	ldr	x0, [x8, #:lo12:.LANCHOR164]
10486.L1661:
10487	ldr	w10, [x22, 2048]
10488	strb	w10, [x0, x7]
10489	add	x7, x7, 1
10490	cmp	w1, w7, uxtb
10491	bhi	.L1661
10492	cmp	w25, 8
10493	bne	.L1662
10494	mov	w1, 0
10495.L1664:
10496	ldrb	w7, [x0]
10497	cmp	w7, 50
10498	beq	.L1663
10499	ldrb	w7, [x0, 1]
10500	cmp	w7, 5
10501	beq	.L1663
10502	add	w1, w1, 1
10503	add	x0, x0, 4
10504	and	w1, w1, 255
10505	cmp	w1, 8
10506	bne	.L1664
10507.L1665:
10508	adrp	x0, .LC99
10509	mov	w1, 0
10510	add	x0, x0, :lo12:.LC99
10511	bl	printf
10512.L1667:
10513	b	.L1667
10514.L1653:
10515	mov	w0, 54
10516	str	w0, [x22, 2056]
10517	cmp	w25, 4
10518	bne	.L1655
10519	mov	w0, 64
10520	str	w1, [x22, 2052]
10521	str	w0, [x22, 2048]
10522	mov	w0, 204
10523.L1742:
10524	str	w0, [x22, 2052]
10525	mov	w0, 77
10526	b	.L1743
10527.L1655:
10528	cmp	w24, 1
10529	bhi	.L1657
10530	ldrb	w0, [x26, 128]
10531	str	w0, [x22, 2052]
10532	mov	w0, 82
10533.L1743:
10534	str	w0, [x22, 2048]
10535.L1656:
10536	mov	w0, 22
10537	str	w0, [x22, 2056]
10538	mov	w0, 23
10539	str	w0, [x22, 2056]
10540	mov	w0, 4
10541	str	w0, [x22, 2056]
10542	mov	w0, 25
10543	str	w0, [x22, 2056]
10544	str	wzr, [x22, 2056]
10545	cmp	w25, 6
10546	str	wzr, [x22, 2052]
10547	str	wzr, [x22, 2052]
10548	bne	.L1658
10549	mov	w0, 31
10550	str	w0, [x22, 2052]
10551.L1659:
10552	mov	w0, 2
10553	b	.L1744
10554.L1657:
10555	cmp	w25, 7
10556	bne	.L1656
10557	mov	w0, 174
10558	str	w0, [x22, 2052]
10559	str	wzr, [x22, 2048]
10560	mov	w0, 176
10561	b	.L1742
10562.L1658:
10563	str	wzr, [x22, 2052]
10564	b	.L1659
10565.L1699:
10566	mov	w1, 16
10567	b	.L1660
10568.L1663:
10569	cmp	w1, 6
10570	bhi	.L1665
10571.L1666:
10572	ldr	x7, [x8, #:lo12:.LANCHOR164]
10573	mov	x0, 0
10574.L1676:
10575	ldr	w1, [x29, 128]
10576	cmp	w1, w0
10577	bgt	.L1677
10578	ldr	x1, [x8, #:lo12:.LANCHOR164]
10579	mov	w10, 8
10580	ldr	x0, [x29, 136]
10581	add	x8, x1, x0
10582.L1679:
10583	mov	x0, 0
10584.L1678:
10585	ldrh	w11, [x8, x0, lsl 1]
10586	mvn	w11, w11
10587	strh	w11, [x8, x0, lsl 1]
10588	add	x0, x0, 1
10589	cmp	w23, w0
10590	bgt	.L1678
10591	ldr	w0, [x29, 132]
10592	subs	w10, w10, #1
10593	add	x8, x8, x0, uxtw 1
10594	bne	.L1679
10595	mov	x10, x1
10596	mov	w11, 0
10597	mov	w16, 1
10598.L1680:
10599	mov	w0, 0
10600	mov	w8, 0
10601.L1684:
10602	mov	x14, x10
10603	lsl	w15, w16, w8
10604	mov	w13, 16
10605	mov	w12, 0
10606.L1682:
10607	ldrh	w17, [x14]
10608	ldr	x2, [x29, 136]
10609	bics	wzr, w15, w17
10610	cinc	w12, w12, eq
10611	add	x14, x14, x2
10612	subs	w13, w13, #1
10613	bne	.L1682
10614	cmp	w12, 8
10615	bls	.L1683
10616	orr	w0, w0, w15
10617	and	w0, w0, 65535
10618.L1683:
10619	add	w8, w8, 1
10620	cmp	w8, 16
10621	bne	.L1684
10622	strh	w0, [x10], 2
10623	add	w11, w11, 1
10624	cmp	w23, w11
10625	bgt	.L1680
10626	mov	x0, 0
10627	mov	w8, 0
10628.L1687:
10629	ldr	w10, [x1, x0]
10630	add	x0, x0, 4
10631	cmp	w10, 0
10632	cinc	w8, w8, eq
10633	cmp	x0, 32
10634	bne	.L1687
10635	cmp	w8, 7
10636	ble	.L1688
10637	mov	w3, 1024
10638	mov	w2, 1
10639	adrp	x0, .LC100
10640	add	x0, x0, :lo12:.LC100
10641	bl	rknand_print_hex
10642	adrp	x0, .LC99
10643	mov	w1, 0
10644	add	x0, x0, :lo12:.LC99
10645	bl	printf
10646.L1689:
10647	b	.L1689
10648.L1662:
10649	cmp	w25, 7
10650	bne	.L1668
10651	mov	w1, 0
10652.L1670:
10653	ldrb	w7, [x0]
10654	cmp	w7, 12
10655	beq	.L1669
10656	ldrb	w7, [x0, 1]
10657	cmp	w7, 10
10658	beq	.L1669
10659	add	w1, w1, 1
10660	add	x0, x0, 4
10661	and	w1, w1, 255
10662	cmp	w1, 8
10663	bne	.L1670
10664.L1671:
10665	adrp	x0, .LC99
10666	mov	w1, 0
10667	add	x0, x0, :lo12:.LC99
10668	bl	printf
10669.L1672:
10670	b	.L1672
10671.L1669:
10672	cmp	w1, 6
10673	bls	.L1666
10674	b	.L1671
10675.L1668:
10676	cmp	w25, 6
10677	bne	.L1666
10678	mov	x1, 0
10679.L1673:
10680	ldrb	w7, [x0, x1]
10681	cmp	w7, 12
10682	beq	.L1666
10683	add	x7, x0, x1
10684	ldrb	w7, [x7, 8]
10685	cmp	w7, 4
10686	beq	.L1666
10687	add	x1, x1, 1
10688	cmp	x1, 8
10689	bne	.L1673
10690	adrp	x0, .LC99
10691	mov	w1, 0
10692	add	x0, x0, :lo12:.LC99
10693	bl	printf
10694.L1675:
10695	b	.L1675
10696.L1677:
10697	ldr	w1, [x22, 2048]
10698	strb	w1, [x7, x0]
10699	add	x0, x0, 1
10700	b	.L1676
10701.L1688:
10702	cmp	w25, 6
10703	beq	.L1701
10704	cmp	w25, 7
10705	beq	.L1702
10706	cmp	w25, 8
10707	mov	x1, 5
10708	mov	x0, 8
10709	csel	x0, x0, x1, ne
10710.L1690:
10711	mov	w8, 0
10712.L1691:
10713	mov	x1, 0
10714.L1692:
10715	ldrb	w10, [x7, x1]
10716	strb	w10, [x19, x1]
10717	add	x1, x1, 1
10718	cmp	w28, w1, uxtb
10719	bhi	.L1692
10720	ldr	x1, [x29, 112]
10721	add	w8, w8, 1
10722	add	x19, x19, x0
10723	cmp	w27, w8
10724	add	x7, x7, x1
10725	bgt	.L1691
10726	mov	w19, 255
10727	str	w19, [x22, 2056]
10728	bl	nandc_wait_flash_ready
10729	cmp	w24, 1
10730	bhi	.L1694
10731	mov	w0, 54
10732	str	w0, [x22, 2056]
10733	ldrb	w0, [x26, 128]
10734	str	w0, [x22, 2052]
10735	str	wzr, [x22, 2048]
10736	mov	w0, 22
10737	str	w0, [x22, 2056]
10738	mov	w0, 48
10739	str	wzr, [x22, 2056]
10740	str	wzr, [x22, 2052]
10741	str	wzr, [x22, 2052]
10742	str	w19, [x22, 2052]
10743	str	w19, [x22, 2052]
10744	str	w19, [x22, 2052]
10745.L1745:
10746	str	w0, [x22, 2056]
10747	add	w20, w20, 1
10748	and	w20, w20, 255
10749	bl	nandc_wait_flash_ready
10750	b	.L1652
10751.L1701:
10752	mov	x0, 4
10753	b	.L1690
10754.L1702:
10755	mov	x0, 10
10756	b	.L1690
10757.L1694:
10758	cmp	w25, 8
10759	bne	.L1696
10760	mov	w0, 190
10761	b	.L1745
10762.L1696:
10763	mov	w0, 56
10764	b	.L1745
10765	.size	hynix_get_read_retry_default, .-hynix_get_read_retry_default
10766	.section	.text.flash_get_read_retry_tbl,"ax",@progbits
10767	.align	2
10768	.global	flash_get_read_retry_tbl
10769	.type	flash_get_read_retry_tbl, %function
10770flash_get_read_retry_tbl:
10771	adrp	x0, .LANCHOR32+19
10772	ldrb	w0, [x0, #:lo12:.LANCHOR32+19]
10773	sub	w1, w0, #1
10774	and	w1, w1, 255
10775	cmp	w1, 7
10776	bhi	.L1746
10777	b	hynix_get_read_retry_default
10778.L1746:
10779	ret
10780	.size	flash_get_read_retry_tbl, .-flash_get_read_retry_tbl
10781	.section	.text.nandc_xfer_done,"ax",@progbits
10782	.align	2
10783	.global	nandc_xfer_done
10784	.type	nandc_xfer_done, %function
10785nandc_xfer_done:
10786	stp	x29, x30, [sp, -80]!
10787	adrp	x0, .LANCHOR165
10788	adrp	x1, .LANCHOR27
10789	add	x29, sp, 0
10790	stp	x19, x20, [sp, 16]
10791	adrp	x19, .LANCHOR7
10792	ldrb	w1, [x1, #:lo12:.LANCHOR27]
10793	stp	x21, x22, [sp, 32]
10794	strb	wzr, [x0, #:lo12:.LANCHOR165]
10795	cmp	w1, 9
10796	str	x23, [sp, 48]
10797	bne	.L1749
10798	ldr	x20, [x19, #:lo12:.LANCHOR7]
10799	mov	x21, x0
10800	ldr	w0, [x20, 16]
10801	str	w0, [x29, 64]
10802	ldr	w0, [x20, 48]
10803	tbnz	x0, 1, .L1750
10804	adrp	x22, .LC103
10805	adrp	x23, .LC104
10806	add	x22, x22, :lo12:.LC103
10807	add	x23, x23, :lo12:.LC104
10808	mov	w21, 0
10809.L1751:
10810	ldr	w0, [x29, 64]
10811	tbnz	x0, 20, .L1753
10812	ldr	x0, [x19, #:lo12:.LANCHOR7]
10813	add	w21, w21, 1
10814	tst	x21, 16777215
10815	ldr	w0, [x0, 16]
10816	str	w0, [x29, 64]
10817	bne	.L1751
10818	ldr	w2, [x29, 64]
10819	mov	w1, w21
10820	ldr	w3, [x20, 64]
10821	mov	x0, x22
10822	ubfx	x3, x3, 16, 6
10823	bl	printf
10824	ldr	x1, [x19, #:lo12:.LANCHOR7]
10825	mov	w3, 64
10826	mov	w2, 4
10827	mov	x0, x23
10828	bl	rknand_print_hex
10829	b	.L1751
10830.L1752:
10831	ldr	w0, [x29, 64]
10832	add	w1, w1, 1
10833	ubfx	x0, x0, 22, 6
10834	cmp	w1, w0, lsl 12
10835	bne	.L1754
10836	ldr	w2, [x20, 64]
10837	adrp	x0, .LC102
10838	ldr	w3, [x29, 64]
10839	add	x0, x0, :lo12:.LC102
10840	ubfx	x2, x2, 16, 5
10841	ubfx	x3, x3, 22, 6
10842	bl	printf
10843	ldr	w0, [x29, 72]
10844	mov	w0, 1
10845	strb	w0, [x21, #:lo12:.LANCHOR165]
10846.L1753:
10847	adrp	x0, .LANCHOR52+32
10848	ldr	x23, [sp, 48]
10849	ldp	x19, x20, [sp, 16]
10850	str	wzr, [x0, #:lo12:.LANCHOR52+32]
10851	ldp	x21, x22, [sp, 32]
10852	ldp	x29, x30, [sp], 80
10853	ret
10854.L1750:
10855	mov	w1, 0
10856.L1754:
10857	ldr	w2, [x20, 64]
10858	ldr	w0, [x29, 64]
10859	ubfx	x2, x2, 16, 6
10860	ubfx	x0, x0, 22, 6
10861	cmp	w2, w0
10862	bge	.L1753
10863	ldr	w0, [x20]
10864	str	w0, [x29, 72]
10865	ldr	w0, [x29, 72]
10866	tbz	x0, 13, .L1752
10867	ldr	w0, [x29, 72]
10868	tbz	x0, 17, .L1752
10869	ldr	w1, [x29, 72]
10870	adrp	x0, .LC101
10871	add	x0, x0, :lo12:.LC101
10872	ubfx	x1, x1, 17, 1
10873.L1783:
10874	bl	printf
10875	b	.L1753
10876.L1749:
10877	ldr	x20, [x19, #:lo12:.LANCHOR7]
10878	mov	w21, 0
10879	ldr	w0, [x20, 8]
10880	str	w0, [x29, 64]
10881	ldr	w0, [x20, 16]
10882	tbnz	x0, 1, .L1759
10883	adrp	x22, .LC103
10884	adrp	x23, .LC104
10885	add	x22, x22, :lo12:.LC103
10886	add	x23, x23, :lo12:.LC104
10887.L1760:
10888	ldr	w0, [x29, 64]
10889	tbnz	x0, 20, .L1753
10890	ldr	x0, [x19, #:lo12:.LANCHOR7]
10891	add	w21, w21, 1
10892	tst	x21, 16777215
10893	ldr	w0, [x0, 8]
10894	str	w0, [x29, 64]
10895	bne	.L1760
10896	ldr	w2, [x29, 64]
10897	mov	w1, w21
10898	ldr	w3, [x20, 28]
10899	mov	x0, x22
10900	ubfx	x3, x3, 16, 5
10901	bl	printf
10902	ldr	x1, [x19, #:lo12:.LANCHOR7]
10903	mov	w3, 64
10904	mov	w2, 4
10905	mov	x0, x23
10906	bl	rknand_print_hex
10907	b	.L1760
10908.L1759:
10909	adrp	x22, .LC102
10910	adrp	x23, .LC104
10911	add	x22, x22, :lo12:.LC102
10912	add	x23, x23, :lo12:.LC104
10913.L1761:
10914	ldr	w1, [x20, 28]
10915	ldr	w0, [x29, 64]
10916	ubfx	x1, x1, 16, 5
10917	ubfx	x0, x0, 22, 6
10918	cmp	w1, w0
10919	bge	.L1753
10920	ldr	x0, [x19, #:lo12:.LANCHOR7]
10921	ldr	w0, [x0]
10922	str	w0, [x29, 72]
10923	ldr	w0, [x29, 72]
10924	tbz	x0, 13, .L1762
10925	ldr	w0, [x29, 72]
10926	tbz	x0, 17, .L1762
10927	adrp	x0, .LC105
10928	ldr	w1, [x29, 72]
10929	add	x0, x0, :lo12:.LC105
10930	b	.L1783
10931.L1762:
10932	add	w21, w21, 1
10933	tst	x21, 16777215
10934	bne	.L1761
10935	ldr	w2, [x20, 28]
10936	mov	w1, w21
10937	ldr	w3, [x29, 64]
10938	mov	x0, x22
10939	ubfx	x2, x2, 16, 5
10940	ubfx	x3, x3, 22, 6
10941	bl	printf
10942	ldr	x1, [x19, #:lo12:.LANCHOR7]
10943	mov	w3, 64
10944	mov	w2, 4
10945	mov	x0, x23
10946	bl	rknand_print_hex
10947	b	.L1761
10948	.size	nandc_xfer_done, .-nandc_xfer_done
10949	.section	.text.nandc_xfer,"ax",@progbits
10950	.align	2
10951	.global	nandc_xfer
10952	.type	nandc_xfer, %function
10953nandc_xfer:
10954	stp	x29, x30, [sp, -64]!
10955	add	x29, sp, 0
10956	stp	x19, x20, [sp, 16]
10957	and	w19, w2, 255
10958	mov	x20, x3
10959	stp	x21, x22, [sp, 32]
10960	mov	x3, x4
10961	and	w22, w1, 255
10962	mov	x2, x20
10963	mov	w1, w19
10964	mov	w0, w22
10965	mov	x21, x4
10966	bl	nandc_xfer_start
10967	mov	w0, w22
10968	bl	nandc_xfer_done
10969	cbnz	w22, .L1803
10970	adrp	x0, .LANCHOR27
10971	ldrb	w0, [x0, #:lo12:.LANCHOR27]
10972	cmp	w0, 9
10973	bne	.L1786
10974	adrp	x22, .LANCHOR7
10975	lsr	w19, w19, 2
10976	mov	w3, 1
10977	mov	w2, 0
10978	ldr	x5, [x22, #:lo12:.LANCHOR7]
10979	mov	w0, 0
10980.L1787:
10981	cmp	w2, w19
10982	bcc	.L1791
10983	ldr	w19, [x5]
10984	cmp	w3, 0
10985	mov	w1, 512
10986	csel	w0, w0, w1, eq
10987	mov	w1, 8192
10988	movk	w1, 0x2, lsl 16
10989	and	w1, w19, w1
10990	cmp	w1, 139264
10991	bne	.L1793
10992	mov	w1, w19
10993	adrp	x0, .LC106
10994	add	x0, x0, :lo12:.LC106
10995	bl	printf
10996	ldr	x0, [x22, #:lo12:.LANCHOR7]
10997	orr	w19, w19, 131072
10998	str	w19, [x0]
10999	mov	w0, -1
11000.L1793:
11001	tbz	x19, 13, .L1794
11002	adrp	x1, .LANCHOR165
11003	ldrb	w1, [x1, #:lo12:.LANCHOR165]
11004	cbz	w1, .L1794
11005	mov	w1, w19
11006	adrp	x0, .LC107
11007	add	x0, x0, :lo12:.LC107
11008	bl	printf
11009	ldr	x0, [x22, #:lo12:.LANCHOR7]
11010	mov	w1, 1
11011	str	w1, [x0, 16]
11012.L1822:
11013	mov	w0, -1
11014.L1785:
11015	ldp	x19, x20, [sp, 16]
11016	ldp	x21, x22, [sp, 32]
11017	ldp	x29, x30, [sp], 64
11018	ret
11019.L1791:
11020	uxtw	x1, w2
11021	add	x1, x1, 84
11022	ldr	w1, [x5, x1, lsl 2]
11023	str	w1, [x29, 56]
11024	ldr	w1, [x29, 56]
11025	ldr	w4, [x29, 56]
11026	ubfx	x4, x4, 26, 1
11027	and	w1, w4, w1, lsr 10
11028	and	w3, w3, w1
11029	ldr	w1, [x29, 56]
11030	tbnz	x1, 2, .L1805
11031	ldr	w1, [x29, 56]
11032	tbnz	x1, 18, .L1805
11033	ldr	w4, [x29, 56]
11034	ldr	w1, [x29, 56]
11035	ubfx	x4, x4, 3, 7
11036	ubfx	x1, x1, 19, 7
11037	cmp	w4, w1
11038	ldr	w1, [x29, 56]
11039	ble	.L1789
11040	ubfx	x1, x1, 3, 7
11041.L1790:
11042	cmp	w0, w1
11043	csel	w0, w0, w1, cs
11044.L1788:
11045	add	w2, w2, 1
11046	b	.L1787
11047.L1789:
11048	ubfx	x1, x1, 19, 7
11049	b	.L1790
11050.L1805:
11051	mov	w0, -1
11052	b	.L1788
11053.L1786:
11054	adrp	x0, .LANCHOR49
11055	lsr	w4, w19, 1
11056	mov	w3, 64
11057	mov	w1, 1
11058	ldrb	w0, [x0, #:lo12:.LANCHOR49]
11059	mov	w2, 0
11060	adrp	x6, .LANCHOR52
11061	cmp	w0, 25
11062	mov	w0, 128
11063	csel	w3, w3, w0, cc
11064	mov	w0, 0
11065.L1796:
11066	add	w5, w3, w0
11067	cmp	w2, w4
11068	bcc	.L1797
11069	adrp	x22, .LANCHOR7
11070	lsr	w19, w19, 2
11071	mov	w3, 0
11072	mov	w0, 0
11073	ldr	x4, [x22, #:lo12:.LANCHOR7]
11074.L1798:
11075	cmp	w3, w19
11076	bcc	.L1802
11077	str	wzr, [x4, 16]
11078	mov	w1, 8192
11079	movk	w1, 0x2, lsl 16
11080	ldr	w19, [x4]
11081	and	w1, w19, w1
11082	cmp	w1, 139264
11083	bne	.L1794
11084	mov	w1, w19
11085	adrp	x0, .LC108
11086	add	x0, x0, :lo12:.LC108
11087	bl	printf
11088	ldr	x0, [x22, #:lo12:.LANCHOR7]
11089	orr	w19, w19, 131072
11090	str	w19, [x0]
11091	b	.L1822
11092.L1797:
11093	ldr	x7, [x6, #:lo12:.LANCHOR52]
11094	and	x0, x0, 4294967292
11095	ldr	w0, [x7, x0]
11096	lsl	w7, w2, 2
11097	add	w2, w2, 1
11098	strb	w0, [x21, x7]
11099	lsr	w7, w0, 8
11100	strb	w7, [x21, w1, uxtw]
11101	add	w7, w1, 1
11102	lsr	w8, w0, 16
11103	lsr	w0, w0, 24
11104	strb	w8, [x21, x7]
11105	add	w7, w1, 2
11106	add	w1, w1, 4
11107	strb	w0, [x21, x7]
11108	mov	w0, w5
11109	b	.L1796
11110.L1802:
11111	uxtw	x1, w3
11112	add	x1, x1, 8
11113	ldr	w1, [x4, x1, lsl 2]
11114	str	w1, [x29, 56]
11115	ldr	w1, [x29, 56]
11116	tbnz	x1, 2, .L1808
11117	ldr	w1, [x29, 56]
11118	tbnz	x1, 15, .L1808
11119	ldr	w2, [x29, 56]
11120	ubfx	x6, x2, 3, 5
11121	ldr	w2, [x29, 56]
11122	ldr	w1, [x29, 56]
11123	ubfx	x2, x2, 27, 1
11124	ubfx	x5, x1, 16, 5
11125	ldr	w1, [x29, 56]
11126	orr	w2, w6, w2, lsl 5
11127	ubfx	x1, x1, 29, 1
11128	orr	w1, w5, w1, lsl 5
11129	cmp	w2, w1
11130	ldr	w1, [x29, 56]
11131	bls	.L1800
11132	ubfx	x2, x1, 3, 5
11133	ldr	w1, [x29, 56]
11134	ubfx	x1, x1, 27, 1
11135.L1821:
11136	orr	w1, w2, w1, lsl 5
11137	cmp	w0, w1
11138	csel	w0, w0, w1, cs
11139.L1799:
11140	add	w3, w3, 1
11141	b	.L1798
11142.L1800:
11143	ubfx	x2, x1, 16, 5
11144	ldr	w1, [x29, 56]
11145	ubfx	x1, x1, 29, 1
11146	b	.L1821
11147.L1808:
11148	mov	w0, -1
11149	b	.L1799
11150.L1794:
11151	cmn	w0, #1
11152	beq	.L1785
11153	ldr	w1, [x21]
11154	cmn	w1, #1
11155	bne	.L1785
11156	ldr	w1, [x21, 4]
11157	cmn	w1, #1
11158	bne	.L1785
11159	ldr	w1, [x20]
11160	cmn	w1, #1
11161	mov	w1, 512
11162	csel	w0, w0, w1, ne
11163	b	.L1785
11164.L1803:
11165	mov	w0, 0
11166	b	.L1785
11167	.size	nandc_xfer, .-nandc_xfer
11168	.section	.text.flash_read_page,"ax",@progbits
11169	.align	2
11170	.global	flash_read_page
11171	.type	flash_read_page, %function
11172flash_read_page:
11173	stp	x29, x30, [sp, -80]!
11174	add	x29, sp, 0
11175	stp	x21, x22, [sp, 32]
11176	and	w21, w0, 255
11177	adrp	x0, .LANCHOR7
11178	stp	x19, x20, [sp, 16]
11179	mov	w19, 24
11180	stp	x23, x24, [sp, 48]
11181	ldr	x20, [x0, #:lo12:.LANCHOR7]
11182	adrp	x0, .LANCHOR31
11183	stp	x25, x26, [sp, 64]
11184	mov	x24, x2
11185	ldrb	w0, [x0, #:lo12:.LANCHOR31]
11186	mov	x25, x3
11187	mov	w23, w4
11188	ubfx	x22, x1, 24, 2
11189	sub	w0, w19, w0
11190	mov	w19, 1
11191	adrp	x26, .LANCHOR21
11192	lsl	w19, w19, w0
11193	sub	w19, w19, #1
11194	and	w19, w19, w1
11195	bl	nandc_wait_flash_ready
11196	mov	w0, w21
11197	bl	nandc_cs
11198	cbnz	w22, .L1824
11199	mov	w0, w21
11200	bl	zftl_flash_enter_slc_mode
11201.L1825:
11202	ldr	x1, [x26, #:lo12:.LANCHOR21]
11203	ldrb	w0, [x1, 7]
11204	cmp	w0, 1
11205	bne	.L1827
11206	ldrb	w0, [x1, 12]
11207	cmp	w0, 2
11208	bne	.L1827
11209	sxtw	x0, w21
11210	mov	w2, 38
11211	add	x0, x0, 8
11212	add	x0, x20, x0, lsl 8
11213	str	w2, [x0, 8]
11214.L1827:
11215	ubfiz	x0, x21, 8, 8
11216	add	x20, x20, x0
11217	and	w0, w19, 255
11218	str	wzr, [x20, 2056]
11219	str	wzr, [x20, 2052]
11220	str	wzr, [x20, 2052]
11221	str	w0, [x20, 2052]
11222	lsr	w0, w19, 8
11223	str	w0, [x20, 2052]
11224	lsr	w0, w19, 16
11225	str	w0, [x20, 2052]
11226	adrp	x0, .LANCHOR30
11227	ldrb	w0, [x0, #:lo12:.LANCHOR30]
11228	cbz	w0, .L1828
11229	lsr	w0, w19, 24
11230	str	w0, [x20, 2052]
11231.L1828:
11232	mov	w0, 48
11233	str	w0, [x20, 2056]
11234	ldrb	w0, [x1, 12]
11235	cmp	w0, 3
11236	bne	.L1829
11237	cbz	w22, .L1829
11238	adrp	x0, .LANCHOR35
11239	ldrb	w0, [x0, #:lo12:.LANCHOR35]
11240	cbnz	w0, .L1829
11241	adrp	x0, .LANCHOR36
11242	ldrb	w0, [x0, #:lo12:.LANCHOR36]
11243	cbnz	w0, .L1829
11244	add	w19, w19, w19, lsl 1
11245	sub	w0, w19, #1
11246	add	w0, w0, w22
11247.L1838:
11248	bl	nandc_set_seed
11249	bl	nandc_wait_flash_ready
11250	mov	w0, 5
11251	str	w0, [x20, 2056]
11252	str	wzr, [x20, 2052]
11253	mov	w0, 224
11254	str	wzr, [x20, 2052]
11255	mov	w2, w23
11256	str	w0, [x20, 2056]
11257	mov	x4, x25
11258	mov	x3, x24
11259	mov	w1, 0
11260	mov	w0, w21
11261	bl	nandc_xfer
11262	mov	w2, w0
11263	bl	nandc_de_cs.constprop.31
11264	mov	w0, w2
11265	ldp	x19, x20, [sp, 16]
11266	ldp	x21, x22, [sp, 32]
11267	ldp	x23, x24, [sp, 48]
11268	ldp	x25, x26, [sp, 64]
11269	ldp	x29, x30, [sp], 80
11270	ret
11271.L1824:
11272	ldr	x0, [x26, #:lo12:.LANCHOR21]
11273	ldrb	w0, [x0, 12]
11274	cmp	w0, 3
11275	bne	.L1826
11276	adrp	x0, .LANCHOR35
11277	ldrb	w0, [x0, #:lo12:.LANCHOR35]
11278	cbnz	w0, .L1826
11279	adrp	x0, .LANCHOR36
11280	ldrb	w0, [x0, #:lo12:.LANCHOR36]
11281	cbnz	w0, .L1826
11282	sxtw	x0, w21
11283	add	x0, x0, 8
11284	add	x0, x20, x0, lsl 8
11285	str	w22, [x0, 8]
11286	b	.L1825
11287.L1826:
11288	mov	w0, w21
11289	bl	zftl_flash_exit_slc_mode
11290	b	.L1825
11291.L1829:
11292	mov	w0, w19
11293	b	.L1838
11294	.size	flash_read_page, .-flash_read_page
11295	.section	.text.micron_read_retrial,"ax",@progbits
11296	.align	2
11297	.global	micron_read_retrial
11298	.type	micron_read_retrial, %function
11299micron_read_retrial:
11300	stp	x29, x30, [sp, -128]!
11301	add	x29, sp, 0
11302	stp	x19, x20, [sp, 16]
11303	and	w20, w0, 255
11304	adrp	x0, .LANCHOR49
11305	stp	x23, x24, [sp, 48]
11306	stp	x25, x26, [sp, 64]
11307	mov	w24, w1
11308	stp	x21, x22, [sp, 32]
11309	mov	x25, x2
11310	ldrb	w21, [x0, #:lo12:.LANCHOR49]
11311	mov	x26, x3
11312	stp	x27, x28, [sp, 80]
11313	mov	w23, 0
11314	str	w4, [x29, 124]
11315	bl	nandc_wait_flash_ready
11316	adrp	x0, .LANCHOR7
11317	add	w21, w21, w21, lsl 1
11318	asr	w21, w21, 2
11319	ldr	x19, [x0, #:lo12:.LANCHOR7]
11320	adrp	x0, .LANCHOR167
11321	add	x0, x0, :lo12:.LANCHOR167
11322	str	x0, [x29, 112]
11323	ubfiz	x0, x20, 8, 8
11324	add	x19, x19, x0
11325.L1840:
11326	mov	w0, w20
11327	bl	zftl_flash_enter_slc_mode
11328	mov	w0, w20
11329	bl	zftl_flash_exit_slc_mode
11330	adrp	x0, .LANCHOR19
11331	mov	w22, 0
11332	add	x0, x0, :lo12:.LANCHOR19
11333	mov	w28, -1
11334	str	x0, [x29, 104]
11335.L1841:
11336	ldr	x0, [x29, 112]
11337	ldrb	w0, [x0]
11338	cmp	w22, w0
11339	bcc	.L1846
11340.L1845:
11341	mov	w0, 239
11342	str	w0, [x19, 2056]
11343	mov	w0, 137
11344	str	w0, [x19, 2052]
11345	mov	x0, 1
11346	bl	udelay
11347	str	wzr, [x19, 2048]
11348	str	wzr, [x19, 2048]
11349	cmp	w28, w21
11350	str	wzr, [x19, 2048]
11351	str	wzr, [x19, 2048]
11352	bcc	.L1847
11353	cmn	w28, #1
11354	mov	w0, 256
11355	csel	w28, w28, w0, eq
11356.L1847:
11357	cmn	w28, #1
11358	cset	w27, eq
11359	cmp	w28, 256
11360	cset	w0, eq
11361	orr	w0, w27, w0
11362	cbz	w0, .L1848
11363	mov	w4, w28
11364	mov	w3, w22
11365	mov	w2, w24
11366	mov	w1, w20
11367	adrp	x0, .LC110
11368	add	x0, x0, :lo12:.LC110
11369	bl	printf
11370	eor	w0, w23, 1
11371	tst	w27, w0
11372	beq	.L1849
11373	mov	w1, 3
11374	mov	w0, w20
11375	mov	w23, 1
11376	bl	mt_auto_read_calibration_config
11377	b	.L1840
11378.L1846:
11379	mov	w0, 239
11380	str	w0, [x19, 2056]
11381	mov	w0, 137
11382	str	w0, [x19, 2052]
11383	add	w27, w22, 1
11384	mov	x0, 1
11385	bl	udelay
11386	str	w27, [x19, 2048]
11387	str	wzr, [x19, 2048]
11388	mov	x3, x26
11389	ldr	w4, [x29, 124]
11390	mov	x2, x25
11391	str	wzr, [x19, 2048]
11392	mov	w1, w24
11393	str	wzr, [x19, 2048]
11394	mov	w0, w20
11395	bl	flash_read_page
11396	mov	w6, w0
11397	ldr	x0, [x29, 104]
11398	ldr	w0, [x0]
11399	tbz	x0, 12, .L1842
11400	mov	w4, w6
11401	str	w6, [x29, 120]
11402	mov	w3, w28
11403	mov	w2, w24
11404	mov	w1, w22
11405	adrp	x0, .LC109
11406	add	x0, x0, :lo12:.LC109
11407	bl	printf
11408	ldr	w6, [x29, 120]
11409.L1842:
11410	cmn	w6, #1
11411	beq	.L1843
11412	adrp	x0, .LANCHOR164
11413	cmn	w28, #1
11414	csel	w28, w28, w6, ne
11415	cmp	w6, w21
11416	ldr	x25, [x0, #:lo12:.LANCHOR164]
11417	adrp	x0, .LANCHOR166
11418	ldr	x26, [x0, #:lo12:.LANCHOR166]
11419	bcc	.L1852
11420.L1843:
11421	mov	w22, w27
11422	b	.L1841
11423.L1852:
11424	mov	w28, w6
11425	b	.L1845
11426.L1849:
11427	cbz	w23, .L1850
11428	mov	w0, w20
11429	mov	w1, 0
11430	bl	mt_auto_read_calibration_config
11431	cmn	w28, #1
11432	mov	w0, 256
11433	csel	w28, w28, w0, eq
11434.L1850:
11435	bl	nandc_wait_flash_ready
11436	mov	w0, w28
11437	ldp	x19, x20, [sp, 16]
11438	ldp	x21, x22, [sp, 32]
11439	ldp	x23, x24, [sp, 48]
11440	ldp	x25, x26, [sp, 64]
11441	ldp	x27, x28, [sp, 80]
11442	ldp	x29, x30, [sp], 128
11443	ret
11444.L1848:
11445	cbz	w23, .L1850
11446	mov	w1, 0
11447	mov	w0, w20
11448	mov	w28, 256
11449	bl	mt_auto_read_calibration_config
11450	b	.L1850
11451	.size	micron_read_retrial, .-micron_read_retrial
11452	.section	.text.toshiba_3d_read_retrial,"ax",@progbits
11453	.align	2
11454	.global	toshiba_3d_read_retrial
11455	.type	toshiba_3d_read_retrial, %function
11456toshiba_3d_read_retrial:
11457	stp	x29, x30, [sp, -144]!
11458	add	x29, sp, 0
11459	stp	x21, x22, [sp, 32]
11460	adrp	x22, .LANCHOR16
11461	stp	x23, x24, [sp, 48]
11462	mov	w24, w1
11463	stp	x25, x26, [sp, 64]
11464	and	w23, w0, 255
11465	stp	x27, x28, [sp, 80]
11466	mov	x26, x2
11467	stp	x19, x20, [sp, 16]
11468	mov	x27, x3
11469	mov	w28, w4
11470	bl	nandc_wait_flash_ready
11471	adrp	x0, .LANCHOR7
11472	mov	w1, 46
11473	mov	w2, 56
11474	ubfx	x19, x24, 24, 2
11475	ldr	x25, [x0, #:lo12:.LANCHOR7]
11476	and	x0, x23, 255
11477	add	x21, x0, 8
11478	str	x0, [x29, 128]
11479	ldrb	w0, [x22, #:lo12:.LANCHOR16]
11480	add	x21, x25, x21, lsl 8
11481	cmp	w0, 36
11482	mov	w0, 26
11483	csel	w1, w2, w1, ne
11484	str	w1, [x29, 120]
11485	mov	w1, 10
11486	csel	w0, w1, w0, ne
11487	str	w0, [x29, 136]
11488	cbnz	w19, .L1870
11489	add	x0, x22, :lo12:.LANCHOR16
11490	str	x0, [x29, 120]
11491	sxtw	x0, w23
11492	mov	w19, -1
11493	add	x0, x0, 8
11494	mov	w20, 1
11495	add	x0, x25, x0, lsl 8
11496	str	x0, [x29, 112]
11497.L1877:
11498	ldr	x0, [x29, 120]
11499	ldrb	w0, [x0]
11500	cmp	w0, 36
11501	bne	.L1871
11502	mov	w1, w20
11503	mov	x0, x21
11504	mov	w2, 0
11505	bl	toshiba_tlc_set_rr_para
11506	ldr	x1, [x29, 112]
11507	mov	w0, 93
11508	str	w0, [x1, 8]
11509.L1872:
11510	mov	w4, w28
11511	mov	x3, x27
11512	mov	x2, x26
11513	mov	w1, w24
11514	mov	w0, w23
11515	bl	flash_read_page
11516	mov	w4, w0
11517	adrp	x0, .LANCHOR19
11518	ldr	w0, [x0, #:lo12:.LANCHOR19]
11519	tbz	x0, 4, .L1873
11520	mov	w3, w4
11521	str	w4, [x29, 108]
11522	mov	w2, w24
11523	mov	w1, w20
11524	adrp	x0, .LC111
11525	add	x0, x0, :lo12:.LC111
11526	bl	printf
11527	ldr	w4, [x29, 108]
11528.L1873:
11529	cmn	w4, #1
11530	beq	.L1874
11531	adrp	x0, .LANCHOR164
11532	cmn	w19, #1
11533	csel	w19, w19, w4, ne
11534	ldr	x26, [x0, #:lo12:.LANCHOR164]
11535	adrp	x0, .LANCHOR166
11536	ldr	x27, [x0, #:lo12:.LANCHOR166]
11537	adrp	x0, .LANCHOR49
11538	ldrb	w0, [x0, #:lo12:.LANCHOR49]
11539	add	w0, w0, w0, lsl 1
11540	cmp	w4, w0, lsr 2
11541	bcc	.L1892
11542.L1874:
11543	ldr	w0, [x29, 136]
11544	add	w20, w20, 1
11545	cmp	w0, w20
11546	bne	.L1877
11547.L1876:
11548	ldrb	w0, [x22, #:lo12:.LANCHOR16]
11549	cmp	w0, 36
11550	bne	.L1878
11551	mov	w2, 0
11552.L1915:
11553	mov	w1, 0
11554	mov	x0, x21
11555	bl	toshiba_tlc_set_rr_para
11556	b	.L1879
11557.L1871:
11558	mov	w1, w20
11559	mov	x0, x21
11560	bl	toshiba_3d_set_slc_rr_para
11561	b	.L1872
11562.L1892:
11563	mov	w19, w4
11564	b	.L1876
11565.L1878:
11566	mov	w1, 0
11567	mov	x0, x21
11568	bl	toshiba_3d_set_slc_rr_para
11569.L1879:
11570	ldrb	w0, [x22, #:lo12:.LANCHOR16]
11571	cmp	w0, 36
11572	bne	.L1888
11573	ldr	x0, [x29, 128]
11574	add	x25, x25, x0, lsl 8
11575	mov	w0, 85
11576	str	w0, [x25, 2056]
11577	mov	w0, 255
11578	str	wzr, [x25, 2052]
11579	str	wzr, [x25, 2048]
11580	str	w0, [x25, 2056]
11581.L1888:
11582	adrp	x0, .LANCHOR49
11583	ldrb	w0, [x0, #:lo12:.LANCHOR49]
11584	add	w0, w0, w0, lsl 1
11585	cmp	w19, w0, lsr 2
11586	bcc	.L1889
11587	cmn	w19, #1
11588	mov	w0, 256
11589	csel	w19, w19, w0, eq
11590.L1889:
11591	cmp	w19, 256
11592	ccmn	w19, #1, 4, ne
11593	bne	.L1890
11594	adrp	x0, .LC113
11595	mov	w4, w19
11596	mov	w3, w20
11597	mov	w2, w24
11598	mov	w1, w23
11599	add	x0, x0, :lo12:.LC113
11600	bl	printf
11601.L1890:
11602	bl	nandc_wait_flash_ready
11603	mov	w0, w19
11604	ldp	x19, x20, [sp, 16]
11605	ldp	x21, x22, [sp, 32]
11606	ldp	x23, x24, [sp, 48]
11607	ldp	x25, x26, [sp, 64]
11608	ldp	x27, x28, [sp, 80]
11609	ldp	x29, x30, [sp], 144
11610	ret
11611.L1870:
11612	add	x0, x22, :lo12:.LANCHOR16
11613	str	x0, [x29, 112]
11614	sxtw	x0, w23
11615	mov	w19, -1
11616	add	x0, x0, 8
11617	mov	w20, 1
11618	add	x0, x25, x0, lsl 8
11619	str	x0, [x29, 136]
11620.L1886:
11621	ldr	x0, [x29, 112]
11622	ldrb	w0, [x0]
11623	cmp	w0, 36
11624	bne	.L1880
11625	mov	x0, x21
11626	mov	w2, 1
11627	mov	w1, w20
11628	bl	toshiba_tlc_set_rr_para
11629	mov	w0, 93
11630.L1914:
11631	ldr	x1, [x29, 136]
11632	mov	w4, w28
11633	mov	x3, x27
11634	mov	x2, x26
11635	str	w0, [x1, 8]
11636	mov	w1, w24
11637	mov	w0, w23
11638	bl	flash_read_page
11639	mov	w4, w0
11640	adrp	x0, .LANCHOR19
11641	ldr	w0, [x0, #:lo12:.LANCHOR19]
11642	tbz	x0, 4, .L1882
11643	mov	w3, w4
11644	str	w4, [x29, 108]
11645	mov	w2, w24
11646	mov	w1, w20
11647	adrp	x0, .LC112
11648	add	x0, x0, :lo12:.LC112
11649	bl	printf
11650	ldr	w4, [x29, 108]
11651.L1882:
11652	cmn	w4, #1
11653	beq	.L1883
11654	adrp	x0, .LANCHOR164
11655	cmn	w19, #1
11656	csel	w19, w19, w4, ne
11657	ldr	x26, [x0, #:lo12:.LANCHOR164]
11658	adrp	x0, .LANCHOR166
11659	ldr	x27, [x0, #:lo12:.LANCHOR166]
11660	adrp	x0, .LANCHOR49
11661	ldrb	w0, [x0, #:lo12:.LANCHOR49]
11662	add	w0, w0, w0, lsl 1
11663	cmp	w4, w0, lsr 2
11664	bcc	.L1893
11665.L1883:
11666	ldr	w0, [x29, 120]
11667	add	w20, w20, 1
11668	cmp	w0, w20
11669	bne	.L1886
11670.L1885:
11671	ldrb	w0, [x22, #:lo12:.LANCHOR16]
11672	cmp	w0, 36
11673	bne	.L1887
11674	mov	w2, 1
11675	b	.L1915
11676.L1880:
11677	mov	x0, x21
11678	mov	w1, w20
11679	bl	toshiba_3d_set_tlc_rr_para
11680	mov	w0, 38
11681	b	.L1914
11682.L1893:
11683	mov	w19, w4
11684	b	.L1885
11685.L1887:
11686	mov	w1, 0
11687	mov	x0, x21
11688	bl	toshiba_3d_set_tlc_rr_para
11689	b	.L1879
11690	.size	toshiba_3d_read_retrial, .-toshiba_3d_read_retrial
11691	.section	.text.toshiba_read_retrial,"ax",@progbits
11692	.align	2
11693	.global	toshiba_read_retrial
11694	.type	toshiba_read_retrial, %function
11695toshiba_read_retrial:
11696	stp	x29, x30, [sp, -128]!
11697	add	x29, sp, 0
11698	stp	x21, x22, [sp, 32]
11699	stp	x25, x26, [sp, 64]
11700	mov	w25, w1
11701	mov	x26, x2
11702	str	w4, [x29, 116]
11703	stp	x19, x20, [sp, 16]
11704	and	w19, w0, 255
11705	stp	x27, x28, [sp, 80]
11706	mov	x27, x3
11707	stp	x23, x24, [sp, 48]
11708	bl	nandc_wait_flash_ready
11709	mov	w0, w19
11710	bl	zftl_flash_enter_slc_mode
11711	mov	w0, w19
11712	bl	zftl_flash_exit_slc_mode
11713	adrp	x0, .LANCHOR7
11714	adrp	x1, .LANCHOR16
11715	str	x1, [x29, 120]
11716	ldr	x22, [x0, #:lo12:.LANCHOR7]
11717	and	x0, x19, 255
11718	add	x21, x0, 8
11719	str	x0, [x29, 104]
11720	ldrb	w0, [x1, #:lo12:.LANCHOR16]
11721	add	x21, x22, x21, lsl 8
11722	sub	w0, w0, #67
11723	and	w0, w0, 255
11724	cmp	w0, 1
11725	bls	.L1934
11726	adrp	x0, .LANCHOR26
11727	ldrb	w0, [x0, #:lo12:.LANCHOR26]
11728	cbz	w0, .L1935
11729	mov	w23, 1
11730	mov	w0, 1
11731	bl	nandc_set_if_mode
11732.L1918:
11733	and	x0, x19, 255
11734	mov	w1, 92
11735	add	x0, x22, x0, lsl 8
11736	str	w1, [x0, 2056]
11737	mov	w1, 197
11738	str	w1, [x0, 2056]
11739.L1917:
11740	sxtw	x0, w19
11741	mov	w20, 1
11742	add	x0, x0, 8
11743	mov	w24, -1
11744	add	x0, x22, x0, lsl 8
11745	str	x0, [x29, 96]
11746.L1919:
11747	adrp	x0, .LANCHOR167
11748	ldrb	w0, [x0, #:lo12:.LANCHOR167]
11749	add	w0, w0, 1
11750	cmp	w20, w0
11751	bcc	.L1928
11752	mov	w28, w24
11753.L1927:
11754	ldr	x0, [x29, 120]
11755	mov	w1, 0
11756	ldrb	w0, [x0, #:lo12:.LANCHOR16]
11757	sub	w0, w0, #67
11758	and	w0, w0, 255
11759	cmp	w0, 1
11760	mov	x0, x21
11761	bhi	.L1929
11762	bl	sandisk_set_rr_para
11763.L1930:
11764	sxtw	x19, w19
11765	mov	w0, 255
11766	add	x19, x19, 8
11767	add	x22, x22, x19, lsl 8
11768	str	w0, [x22, 8]
11769	adrp	x0, .LANCHOR49
11770	ldrb	w0, [x0, #:lo12:.LANCHOR49]
11771	add	w0, w0, w0, lsl 1
11772	cmp	w28, w0, lsr 2
11773	bcc	.L1931
11774	cmn	w28, #1
11775	mov	w0, 256
11776	csel	w28, w28, w0, eq
11777.L1931:
11778	cmp	w28, 256
11779	ccmn	w28, #1, 4, ne
11780	bne	.L1932
11781	adrp	x0, .LC113
11782	mov	w4, w28
11783	mov	w3, w20
11784	mov	w2, w25
11785	mov	w1, w20
11786	add	x0, x0, :lo12:.LC113
11787	bl	printf
11788.L1932:
11789	bl	nandc_wait_flash_ready
11790	cbz	w23, .L1916
11791	mov	w0, 4
11792	bl	nandc_set_if_mode
11793.L1916:
11794	mov	w0, w28
11795	ldp	x19, x20, [sp, 16]
11796	ldp	x21, x22, [sp, 32]
11797	ldp	x23, x24, [sp, 48]
11798	ldp	x25, x26, [sp, 64]
11799	ldp	x27, x28, [sp, 80]
11800	ldp	x29, x30, [sp], 128
11801	ret
11802.L1935:
11803	mov	w23, 0
11804	b	.L1918
11805.L1934:
11806	mov	w23, 0
11807	b	.L1917
11808.L1928:
11809	ldr	x0, [x29, 120]
11810	mov	w1, w20
11811	ldrb	w0, [x0, #:lo12:.LANCHOR16]
11812	sub	w0, w0, #67
11813	and	w0, w0, 255
11814	cmp	w0, 1
11815	mov	x0, x21
11816	bhi	.L1920
11817	bl	sandisk_set_rr_para
11818.L1921:
11819	ldr	x0, [x29, 120]
11820	ldrb	w0, [x0, #:lo12:.LANCHOR16]
11821	cmp	w0, 34
11822	bne	.L1922
11823	adrp	x0, .LANCHOR167
11824	ldrb	w0, [x0, #:lo12:.LANCHOR167]
11825	sub	w0, w0, #3
11826	cmp	w20, w0
11827	bne	.L1922
11828	ldr	x1, [x29, 96]
11829	mov	w0, 179
11830	str	w0, [x1, 8]
11831.L1922:
11832	ldr	x0, [x29, 104]
11833	mov	w1, 38
11834	ldr	w4, [x29, 116]
11835	mov	x3, x27
11836	mov	x2, x26
11837	add	x0, x22, x0, lsl 8
11838	str	w1, [x0, 2056]
11839	mov	w1, 93
11840	str	w1, [x0, 2056]
11841	mov	w1, w25
11842	mov	w0, w19
11843	bl	flash_read_page
11844	mov	w28, w0
11845	cmn	w0, #1
11846	beq	.L1925
11847	cmn	w24, #1
11848	csel	w24, w24, w0, ne
11849	adrp	x0, .LANCHOR164
11850	ldr	x26, [x0, #:lo12:.LANCHOR164]
11851	adrp	x0, .LANCHOR166
11852	ldr	x27, [x0, #:lo12:.LANCHOR166]
11853	adrp	x0, .LANCHOR49
11854	ldrb	w0, [x0, #:lo12:.LANCHOR49]
11855	add	w0, w0, w0, lsl 1
11856	cmp	w28, w0, lsr 2
11857	bcc	.L1927
11858.L1925:
11859	add	w20, w20, 1
11860	b	.L1919
11861.L1920:
11862	bl	toshiba_set_rr_para
11863	b	.L1921
11864.L1929:
11865	bl	toshiba_set_rr_para
11866	b	.L1930
11867	.size	toshiba_read_retrial, .-toshiba_read_retrial
11868	.section	.text.ymtc_3d_read_retrial,"ax",@progbits
11869	.align	2
11870	.global	ymtc_3d_read_retrial
11871	.type	ymtc_3d_read_retrial, %function
11872ymtc_3d_read_retrial:
11873	stp	x29, x30, [sp, -112]!
11874	add	x29, sp, 0
11875	stp	x19, x20, [sp, 16]
11876	mov	w19, -1
11877	stp	x21, x22, [sp, 32]
11878	and	w22, w0, 255
11879	stp	x23, x24, [sp, 48]
11880	mov	w23, w1
11881	stp	x25, x26, [sp, 64]
11882	mov	x24, x2
11883	stp	x27, x28, [sp, 80]
11884	mov	x25, x3
11885	mov	w26, w4
11886	bl	nandc_wait_flash_ready
11887	mov	w0, w22
11888	bl	zftl_flash_enter_slc_mode
11889	mov	w0, w22
11890	bl	zftl_flash_exit_slc_mode
11891	adrp	x1, .LANCHOR7
11892	ubfiz	x21, x22, 8, 8
11893	add	x0, x21, 2048
11894	adrp	x27, .LANCHOR49
11895	ldr	x21, [x1, #:lo12:.LANCHOR7]
11896	mov	w20, 1
11897	adrp	x28, .LANCHOR164
11898	adrp	x5, .LANCHOR166
11899	add	x21, x21, x0
11900	add	x27, x27, :lo12:.LANCHOR49
11901	tst	x23, 50331648
11902	bne	.L1958
11903.L1953:
11904	str	x5, [x29, 104]
11905	mov	w1, w20
11906	mov	x0, x21
11907	bl	ymtc_3d_set_slc_rr_para
11908	mov	w4, w26
11909	mov	x3, x25
11910	mov	x2, x24
11911	mov	w1, w23
11912	mov	w0, w22
11913	bl	flash_read_page
11914	ldr	x5, [x29, 104]
11915	cmn	w0, #1
11916	beq	.L1950
11917	ldrb	w1, [x27]
11918	cmn	w19, #1
11919	csel	w19, w19, w0, ne
11920	ldr	x24, [x28, #:lo12:.LANCHOR164]
11921	ldr	x25, [x5, #:lo12:.LANCHOR166]
11922	add	w1, w1, w1, lsl 1
11923	cmp	w0, w1, lsr 2
11924	bcc	.L1961
11925.L1950:
11926	add	w20, w20, 1
11927	cmp	w20, 10
11928	bne	.L1953
11929.L1952:
11930	mov	w1, 0
11931	mov	x0, x21
11932	bl	ymtc_3d_set_slc_rr_para
11933.L1954:
11934	adrp	x0, .LANCHOR49
11935	ldrb	w0, [x0, #:lo12:.LANCHOR49]
11936	add	w0, w0, w0, lsl 1
11937	cmp	w19, w0, lsr 2
11938	bcc	.L1959
11939	cmn	w19, #1
11940	mov	w0, 256
11941	csel	w19, w19, w0, eq
11942.L1959:
11943	cmp	w19, 256
11944	ccmn	w19, #1, 4, ne
11945	bne	.L1960
11946	adrp	x0, .LC114
11947	mov	w4, w19
11948	mov	w3, w20
11949	mov	w2, w23
11950	mov	w1, w20
11951	add	x0, x0, :lo12:.LC114
11952	bl	printf
11953.L1960:
11954	bl	nandc_wait_flash_ready
11955	mov	w0, w19
11956	ldp	x19, x20, [sp, 16]
11957	ldp	x21, x22, [sp, 32]
11958	ldp	x23, x24, [sp, 48]
11959	ldp	x25, x26, [sp, 64]
11960	ldp	x27, x28, [sp, 80]
11961	ldp	x29, x30, [sp], 112
11962	ret
11963.L1961:
11964	mov	w19, w0
11965	b	.L1952
11966.L1958:
11967	str	x5, [x29, 104]
11968	mov	w1, w20
11969	mov	x0, x21
11970	bl	ymtc_3d_set_tlc_rr_para
11971	mov	w4, w26
11972	mov	x3, x25
11973	mov	x2, x24
11974	mov	w1, w23
11975	mov	w0, w22
11976	bl	flash_read_page
11977	ldr	x5, [x29, 104]
11978	cmn	w0, #1
11979	beq	.L1955
11980	ldrb	w1, [x27]
11981	cmn	w19, #1
11982	csel	w19, w19, w0, ne
11983	ldr	x24, [x28, #:lo12:.LANCHOR164]
11984	ldr	x25, [x5, #:lo12:.LANCHOR166]
11985	add	w1, w1, w1, lsl 1
11986	cmp	w0, w1, lsr 2
11987	bcc	.L1962
11988.L1955:
11989	add	w20, w20, 1
11990	cmp	w20, 51
11991	bne	.L1958
11992.L1957:
11993	mov	w1, 0
11994	mov	x0, x21
11995	bl	ymtc_3d_set_tlc_rr_para
11996	b	.L1954
11997.L1962:
11998	mov	w19, w0
11999	b	.L1957
12000	.size	ymtc_3d_read_retrial, .-ymtc_3d_read_retrial
12001	.section	.text.samsung_read_retrial,"ax",@progbits
12002	.align	2
12003	.global	samsung_read_retrial
12004	.type	samsung_read_retrial, %function
12005samsung_read_retrial:
12006	stp	x29, x30, [sp, -112]!
12007	add	x29, sp, 0
12008	stp	x21, x22, [sp, 32]
12009	and	w21, w0, 255
12010	mov	x22, x2
12011	stp	x19, x20, [sp, 16]
12012	str	w4, [x29, 108]
12013	mov	w20, w1
12014	stp	x23, x24, [sp, 48]
12015	mov	x23, x3
12016	stp	x25, x26, [sp, 64]
12017	stp	x27, x28, [sp, 80]
12018	bl	nandc_wait_flash_ready
12019	mov	w0, w21
12020	bl	zftl_flash_enter_slc_mode
12021	mov	w0, w21
12022	bl	zftl_flash_exit_slc_mode
12023	adrp	x0, .LANCHOR7
12024	tst	x20, 50331648
12025	and	x5, x21, 255
12026	ldr	x0, [x0, #:lo12:.LANCHOR7]
12027	bne	.L1978
12028	adrp	x24, .LANCHOR168
12029	adrp	x27, .LC115
12030	add	x28, x0, x5, lsl 8
12031	add	x24, x24, :lo12:.LANCHOR168
12032	add	x27, x27, :lo12:.LC115
12033	mov	x26, 0
12034	mov	w25, -1
12035.L1983:
12036	mov	w0, 239
12037	str	w0, [x28, 2056]
12038	mov	w0, 141
12039	str	w0, [x28, 2052]
12040	add	x0, x24, x26
12041	add	w19, w26, 1
12042	ldrsb	w0, [x0, 1]
12043	str	w0, [x28, 2048]
12044	str	wzr, [x28, 2048]
12045	str	wzr, [x28, 2048]
12046	str	wzr, [x28, 2048]
12047	bl	nandc_wait_flash_ready
12048	ldr	w4, [x29, 108]
12049	mov	x3, x23
12050	mov	x2, x22
12051	mov	w1, w20
12052	mov	w0, w21
12053	bl	flash_read_page
12054	mov	w4, w0
12055	adrp	x0, .LANCHOR19
12056	ldr	w0, [x0, #:lo12:.LANCHOR19]
12057	tbz	x0, 4, .L1979
12058	mov	w3, w4
12059	str	w4, [x29, 104]
12060	mov	w2, w20
12061	mov	w1, w19
12062	mov	x0, x27
12063	bl	printf
12064	ldr	w4, [x29, 104]
12065.L1979:
12066	cmn	w4, #1
12067	beq	.L1980
12068	adrp	x0, .LANCHOR164
12069	cmn	w25, #1
12070	csel	w25, w25, w4, ne
12071	ldr	x22, [x0, #:lo12:.LANCHOR164]
12072	adrp	x0, .LANCHOR166
12073	ldr	x23, [x0, #:lo12:.LANCHOR166]
12074	adrp	x0, .LANCHOR49
12075	ldrb	w0, [x0, #:lo12:.LANCHOR49]
12076	add	w0, w0, w0, lsl 1
12077	cmp	w4, w0, lsr 2
12078	bcc	.L1992
12079.L1980:
12080	add	x26, x26, 1
12081	cmp	x26, 25
12082	bne	.L1983
12083	mov	w19, 26
12084.L1982:
12085	mov	w0, 239
12086	str	w0, [x28, 2056]
12087	mov	w0, 141
12088	str	w0, [x28, 2052]
12089	str	wzr, [x28, 2048]
12090	str	wzr, [x28, 2048]
12091	str	wzr, [x28, 2048]
12092	str	wzr, [x28, 2048]
12093.L2014:
12094	bl	nandc_wait_flash_ready
12095	adrp	x0, .LANCHOR49
12096	ldrb	w0, [x0, #:lo12:.LANCHOR49]
12097	add	w0, w0, w0, lsl 1
12098	cmp	w25, w0, lsr 2
12099	bcc	.L1990
12100	cmn	w25, #1
12101	mov	w0, 256
12102	csel	w25, w25, w0, eq
12103.L1990:
12104	cmp	w25, 256
12105	ccmn	w25, #1, 4, ne
12106	bne	.L1991
12107	adrp	x0, .LC117
12108	mov	w4, w25
12109	mov	w3, w19
12110	mov	w2, w20
12111	mov	w1, w19
12112	add	x0, x0, :lo12:.LC117
12113	bl	printf
12114.L1991:
12115	bl	nandc_wait_flash_ready
12116	mov	w0, w25
12117	ldp	x19, x20, [sp, 16]
12118	ldp	x21, x22, [sp, 32]
12119	ldp	x23, x24, [sp, 48]
12120	ldp	x25, x26, [sp, 64]
12121	ldp	x27, x28, [sp, 80]
12122	ldp	x29, x30, [sp], 112
12123	ret
12124.L1992:
12125	mov	w25, w4
12126	b	.L1982
12127.L1978:
12128	adrp	x7, .LANCHOR169
12129	add	x7, x7, :lo12:.LANCHOR169
12130	adrp	x24, .LC116
12131	add	x28, x7, 4
12132	add	x27, x0, x5, lsl 8
12133	add	x24, x24, :lo12:.LC116
12134	mov	w25, -1
12135	mov	w19, 1
12136	mov	w26, 137
12137.L1989:
12138	mov	w0, 239
12139	str	w0, [x27, 2056]
12140	str	w26, [x27, 2052]
12141	ldrb	w0, [x28]
12142	str	w0, [x27, 2048]
12143	ldrb	w0, [x28, 1]
12144	str	w0, [x27, 2048]
12145	ldrb	w0, [x28, 2]
12146	str	w0, [x27, 2048]
12147	ldrb	w0, [x28, 3]
12148	str	w0, [x27, 2048]
12149	bl	nandc_wait_flash_ready
12150	ldr	w4, [x29, 108]
12151	mov	x3, x23
12152	mov	x2, x22
12153	mov	w1, w20
12154	mov	w0, w21
12155	bl	flash_read_page
12156	mov	w4, w0
12157	adrp	x0, .LANCHOR19
12158	ldr	w0, [x0, #:lo12:.LANCHOR19]
12159	tbz	x0, 4, .L1985
12160	mov	w3, w4
12161	str	w4, [x29, 104]
12162	mov	w2, w20
12163	mov	w1, w19
12164	mov	x0, x24
12165	bl	printf
12166	ldr	w4, [x29, 104]
12167.L1985:
12168	cmn	w4, #1
12169	beq	.L1986
12170	adrp	x0, .LANCHOR164
12171	cmn	w25, #1
12172	csel	w25, w25, w4, ne
12173	ldr	x22, [x0, #:lo12:.LANCHOR164]
12174	adrp	x0, .LANCHOR166
12175	ldr	x23, [x0, #:lo12:.LANCHOR166]
12176	adrp	x0, .LANCHOR49
12177	ldrb	w0, [x0, #:lo12:.LANCHOR49]
12178	add	w0, w0, w0, lsl 1
12179	cmp	w4, w0, lsr 2
12180	bcc	.L1993
12181.L1986:
12182	add	w19, w19, 1
12183	add	x28, x28, 4
12184	cmp	w19, 26
12185	bne	.L1989
12186.L1988:
12187	mov	w0, 239
12188	str	w0, [x27, 2056]
12189	mov	w0, 137
12190	str	w0, [x27, 2052]
12191	str	wzr, [x27, 2048]
12192	str	wzr, [x27, 2048]
12193	str	wzr, [x27, 2048]
12194	str	wzr, [x27, 2048]
12195	b	.L2014
12196.L1993:
12197	mov	w25, w4
12198	b	.L1988
12199	.size	samsung_read_retrial, .-samsung_read_retrial
12200	.section	.text.hynix_read_retrial,"ax",@progbits
12201	.align	2
12202	.global	hynix_read_retrial
12203	.type	hynix_read_retrial, %function
12204hynix_read_retrial:
12205	stp	x29, x30, [sp, -128]!
12206	add	x29, sp, 0
12207	stp	x23, x24, [sp, 48]
12208	and	x23, x0, 255
12209	adrp	x0, .LANCHOR6
12210	stp	x27, x28, [sp, 80]
12211	stp	x21, x22, [sp, 32]
12212	mov	w27, w4
12213	ldr	x28, [x0, #:lo12:.LANCHOR6]
12214	mov	w22, w1
12215	stp	x25, x26, [sp, 64]
12216	mov	x25, x2
12217	add	x28, x28, 112
12218	stp	x19, x20, [sp, 16]
12219	add	x0, x28, x23
12220	mov	x26, x3
12221	mov	x21, x23
12222	mov	w19, -1
12223	ldrb	w24, [x28, 2]
12224	ldrb	w20, [x0, 8]
12225	bl	nandc_wait_flash_ready
12226	mov	w0, w23
12227	bl	zftl_flash_enter_slc_mode
12228	mov	w0, w23
12229	bl	zftl_flash_exit_slc_mode
12230	adrp	x6, .LANCHOR49
12231	add	x6, x6, :lo12:.LANCHOR49
12232	mov	w5, 0
12233	adrp	x7, .LANCHOR164
12234	adrp	x8, .LANCHOR166
12235.L2016:
12236	cmp	w5, w24
12237	bcc	.L2021
12238.L2020:
12239	adrp	x0, .LANCHOR49
12240	add	x23, x28, x23
12241	ldrb	w0, [x0, #:lo12:.LANCHOR49]
12242	strb	w20, [x23, 8]
12243	add	w0, w0, w0, lsl 1
12244	cmp	w19, w0, lsr 2
12245	bcc	.L2022
12246	cmn	w19, #1
12247	mov	w0, 256
12248	csel	w19, w19, w0, eq
12249.L2022:
12250	cmp	w19, 256
12251	ccmn	w19, #1, 4, ne
12252	bne	.L2023
12253	adrp	x0, .LC118
12254	mov	w4, w19
12255	mov	w3, w5
12256	mov	w2, w22
12257	mov	w1, w5
12258	add	x0, x0, :lo12:.LC118
12259	bl	printf
12260.L2023:
12261	bl	nandc_wait_flash_ready
12262	mov	w0, w19
12263	ldp	x19, x20, [sp, 16]
12264	ldp	x21, x22, [sp, 32]
12265	ldp	x23, x24, [sp, 48]
12266	ldp	x25, x26, [sp, 64]
12267	ldp	x27, x28, [sp, 80]
12268	ldp	x29, x30, [sp], 128
12269	ret
12270.L2021:
12271	add	w20, w20, 1
12272	stp	x6, x8, [x29, 96]
12273	and	w20, w20, 255
12274	str	x7, [x29, 112]
12275	cmp	w24, w20
12276	str	w5, [x29, 124]
12277	csel	w20, w20, wzr, hi
12278	mov	w0, w21
12279	mov	w1, w20
12280	bl	hynix_set_rr_para
12281	mov	w4, w27
12282	mov	x3, x26
12283	mov	x2, x25
12284	mov	w1, w22
12285	mov	w0, w21
12286	bl	flash_read_page
12287	ldr	w5, [x29, 124]
12288	cmn	w0, #1
12289	ldp	x6, x8, [x29, 96]
12290	ldr	x7, [x29, 112]
12291	beq	.L2018
12292	ldrb	w1, [x6]
12293	cmn	w19, #1
12294	csel	w19, w19, w0, ne
12295	ldr	x25, [x7, #:lo12:.LANCHOR164]
12296	ldr	x26, [x8, #:lo12:.LANCHOR166]
12297	add	w1, w1, w1, lsl 1
12298	cmp	w0, w1, lsr 2
12299	bcc	.L2024
12300.L2018:
12301	add	w5, w5, 1
12302	b	.L2016
12303.L2024:
12304	mov	w19, w0
12305	b	.L2020
12306	.size	hynix_read_retrial, .-hynix_read_retrial
12307	.section	.text.flash_ddr_tuning_read,"ax",@progbits
12308	.align	2
12309	.global	flash_ddr_tuning_read
12310	.type	flash_ddr_tuning_read, %function
12311flash_ddr_tuning_read:
12312	stp	x29, x30, [sp, -144]!
12313	add	x29, sp, 0
12314	stp	x19, x20, [sp, 16]
12315	and	w20, w0, 255
12316	stp	x21, x22, [sp, 32]
12317	mov	w22, w1
12318	stp	x23, x24, [sp, 48]
12319	mov	x23, x2
12320	stp	x25, x26, [sp, 64]
12321	mov	x24, x3
12322	stp	x27, x28, [sp, 80]
12323	adrp	x25, .LANCHOR49
12324	str	w4, [x29, 136]
12325	bl	nandc_get_ddr_para
12326	add	x25, x25, :lo12:.LANCHOR49
12327	str	w0, [x29, 132]
12328	adrp	x0, .LANCHOR19
12329	add	x0, x0, :lo12:.LANCHOR19
12330	mov	w28, 0
12331	str	x0, [x29, 120]
12332	mov	w26, 0
12333	adrp	x0, .LC119
12334	mov	w27, 0
12335	add	x0, x0, :lo12:.LC119
12336	mov	w19, 1024
12337	mov	w21, -1
12338	mov	w7, 6
12339	str	wzr, [x29, 140]
12340	str	x0, [x29, 112]
12341.L2040:
12342	mov	w0, w7
12343	str	w7, [x29, 128]
12344	bl	nandc_set_ddr_para
12345	ldr	w4, [x29, 136]
12346	mov	x3, x24
12347	mov	x2, x23
12348	mov	w1, w22
12349	mov	w0, w20
12350	bl	flash_read_page
12351	mov	w4, w0
12352	ldr	x0, [x29, 120]
12353	ldr	w7, [x29, 128]
12354	ldr	w0, [x0]
12355	tbz	x0, 4, .L2035
12356	ldr	x0, [x29, 112]
12357	mov	w3, w4
12358	mov	w1, w7
12359	str	w4, [x29, 108]
12360	str	w7, [x29, 128]
12361	mov	w2, w22
12362	bl	printf
12363	ldr	w4, [x29, 108]
12364	ldr	w7, [x29, 128]
12365.L2035:
12366	add	w0, w19, 1
12367	cmp	w4, w0
12368	bhi	.L2036
12369	adrp	x0, .LANCHOR164
12370	ldr	x23, [x0, #:lo12:.LANCHOR164]
12371	adrp	x0, .LANCHOR166
12372	ldr	x24, [x0, #:lo12:.LANCHOR166]
12373	ldrb	w0, [x25]
12374	cmp	w4, w0, lsr 2
12375	bcs	.L2046
12376	add	w27, w27, 1
12377	cmp	w27, 7
12378	bls	.L2046
12379	sub	w28, w7, w27
12380	mov	w19, w4
12381	mov	w21, 0
12382.L2038:
12383	ldr	w0, [x29, 140]
12384	cmp	w27, w26
12385	csel	w28, w28, w0, cs
12386.L2039:
12387	cbz	w28, .L2041
12388	adrp	x0, .LANCHOR49
12389	mov	w1, 3
12390	ldrb	w0, [x0, #:lo12:.LANCHOR49]
12391	udiv	w0, w0, w1
12392	cmp	w0, w19
12393	bls	.L2041
12394	mov	w1, w28
12395	adrp	x0, .LC120
12396	add	x0, x0, :lo12:.LC120
12397	bl	printf
12398	mov	w0, w28
12399.L2060:
12400	bl	nandc_set_ddr_para
12401	cbz	w21, .L2034
12402	adrp	x25, .LANCHOR48
12403	ldrb	w0, [x25, #:lo12:.LANCHOR48]
12404	tbz	x0, 0, .L2034
12405	mov	w2, w22
12406	mov	w1, w20
12407	adrp	x0, .LC121
12408	add	x0, x0, :lo12:.LC121
12409	bl	printf
12410	mov	w0, w20
12411	bl	flash_reset
12412	mov	w0, 1
12413	bl	flash_set_interface_mode
12414	mov	w0, 1
12415	bl	nandc_set_if_mode
12416	adrp	x0, .LANCHOR33
12417	add	x0, x0, :lo12:.LANCHOR33
12418	mov	w1, 2
12419	strb	w1, [x0, w20, sxtw]
12420	mov	w0, w20
12421	bl	zftl_flash_enter_slc_mode
12422	ldr	w4, [x29, 136]
12423	mov	x3, x24
12424	mov	x2, x23
12425	mov	w1, w22
12426	mov	w0, w20
12427	bl	flash_read_page
12428	mov	w19, w0
12429	mov	w3, w0
12430	mov	w2, w22
12431	mov	w1, w20
12432	adrp	x0, .LC122
12433	add	x0, x0, :lo12:.LC122
12434	bl	printf
12435	adrp	x0, .LANCHOR49
12436	ldrb	w0, [x0, #:lo12:.LANCHOR49]
12437	cmp	w19, w0
12438	bhi	.L2048
12439	adrp	x1, .LANCHOR170
12440	ldr	w0, [x1, #:lo12:.LANCHOR170]
12441	add	w0, w0, 1
12442	str	w0, [x1, #:lo12:.LANCHOR170]
12443	cmp	w0, 100
12444	bls	.L2044
12445	adrp	x0, .LANCHOR26
12446	strb	wzr, [x0, #:lo12:.LANCHOR26]
12447.L2034:
12448	mov	w0, w19
12449	ldp	x19, x20, [sp, 16]
12450	ldp	x21, x22, [sp, 32]
12451	ldp	x23, x24, [sp, 48]
12452	ldp	x25, x26, [sp, 64]
12453	ldp	x27, x28, [sp, 80]
12454	ldp	x29, x30, [sp], 144
12455	ret
12456.L2036:
12457	cmp	w27, w26
12458	bls	.L2047
12459	sub	w0, w28, w27
12460	str	w0, [x29, 140]
12461	cmp	w27, 7
12462	bhi	.L2039
12463	mov	w26, w27
12464.L2047:
12465	mov	w27, 0
12466	b	.L2037
12467.L2046:
12468	mov	w28, w7
12469	mov	w19, w4
12470	mov	w21, 0
12471.L2037:
12472	add	w7, w7, 2
12473	cmp	w7, 50
12474	bne	.L2040
12475	b	.L2038
12476.L2041:
12477	ldrb	w0, [x29, 132]
12478	b	.L2060
12479.L2048:
12480	mov	w19, w21
12481.L2044:
12482	ldrb	w0, [x25, #:lo12:.LANCHOR48]
12483	bl	flash_set_interface_mode
12484	ldrb	w0, [x25, #:lo12:.LANCHOR48]
12485	bl	nandc_set_if_mode
12486	b	.L2034
12487	.size	flash_ddr_tuning_read, .-flash_ddr_tuning_read
12488	.section	.text.flash_read_page_en,"ax",@progbits
12489	.align	2
12490	.global	flash_read_page_en
12491	.type	flash_read_page_en, %function
12492flash_read_page_en:
12493	stp	x29, x30, [sp, -80]!
12494	add	x29, sp, 0
12495	stp	x19, x20, [sp, 16]
12496	and	w20, w0, 255
12497	adrp	x0, .LANCHOR23
12498	stp	x23, x24, [sp, 48]
12499	stp	x21, x22, [sp, 32]
12500	mov	w19, w1
12501	str	x25, [sp, 64]
12502	mov	x22, x2
12503	ldrb	w1, [x0, #:lo12:.LANCHOR23]
12504	mov	x23, x3
12505	mov	w24, w4
12506	mov	x25, x0
12507	cmp	w1, w20
12508	bhi	.L2062
12509	adrp	x1, .LANCHOR171
12510	adrp	x0, .LC0
12511	mov	w2, 431
12512	add	x1, x1, :lo12:.LANCHOR171
12513	add	x0, x0, :lo12:.LC0
12514	bl	printf
12515.L2062:
12516	adrp	x0, .LANCHOR29
12517	add	x0, x0, :lo12:.LANCHOR29
12518	ldrb	w4, [x25, #:lo12:.LANCHOR23]
12519	ldrb	w21, [x0, w20, sxtw]
12520	cmp	w20, w4
12521	bcc	.L2063
12522	adrp	x0, .LANCHOR19
12523	ldr	w0, [x0, #:lo12:.LANCHOR19]
12524	tbnz	x0, 6, .L2064
12525.L2088:
12526	mov	w0, -1
12527.L2061:
12528	ldp	x19, x20, [sp, 16]
12529	ldp	x21, x22, [sp, 32]
12530	ldp	x23, x24, [sp, 48]
12531	ldr	x25, [sp, 64]
12532	ldp	x29, x30, [sp], 80
12533	ret
12534.L2064:
12535	mov	w3, w19
12536	mov	w2, w20
12537	mov	w1, w21
12538	adrp	x0, .LC123
12539	add	x0, x0, :lo12:.LC123
12540	bl	printf
12541	b	.L2088
12542.L2063:
12543	tst	x19, 50331648
12544	bne	.L2066
12545	adrp	x0, .LANCHOR0
12546	adrp	x1, .LANCHOR1
12547	ldrb	w0, [x0, #:lo12:.LANCHOR0]
12548	cbz	w0, .L2067
12549	ldrb	w0, [x1, #:lo12:.LANCHOR1]
12550	cbz	w0, .L2066
12551.L2067:
12552	adrp	x0, .LANCHOR2
12553	ldrb	w1, [x1, #:lo12:.LANCHOR1]
12554	ldrh	w2, [x0, #:lo12:.LANCHOR2]
12555	udiv	w0, w19, w2
12556	mul	w0, w0, w2
12557	sub	w19, w19, w0
12558	cbz	w1, .L2068
12559	add	w19, w0, w19, lsl 1
12560.L2066:
12561	mov	w4, w24
12562	mov	x3, x23
12563	mov	x2, x22
12564	mov	w1, w19
12565	mov	w0, w21
12566	bl	flash_read_page
12567	cmn	w0, #1
12568	bne	.L2061
12569	adrp	x20, .LANCHOR51
12570	ldrb	w25, [x20, #:lo12:.LANCHOR51]
12571	cbnz	w25, .L2069
12572.L2072:
12573	adrp	x0, .LANCHOR172
12574	ldr	x5, [x0, #:lo12:.LANCHOR172]
12575	cbnz	x5, .L2070
12576.L2071:
12577	ldrb	w4, [x20, #:lo12:.LANCHOR51]
12578	mov	w3, -1
12579	mov	w2, w19
12580	mov	w1, 0
12581	adrp	x0, .LC124
12582	add	x0, x0, :lo12:.LC124
12583	bl	printf
12584	adrp	x0, .LANCHOR26
12585	ldrb	w0, [x0, #:lo12:.LANCHOR26]
12586	cbz	w0, .L2088
12587	mov	w4, w24
12588	mov	x3, x23
12589	mov	x2, x22
12590	mov	w1, w19
12591	mov	w0, w21
12592	ldr	x25, [sp, 64]
12593	ldp	x19, x20, [sp, 16]
12594	ldp	x21, x22, [sp, 32]
12595	ldp	x23, x24, [sp, 48]
12596	ldp	x29, x30, [sp], 80
12597	b	flash_ddr_tuning_read
12598.L2068:
12599	adrp	x1, .LANCHOR3
12600	add	x1, x1, :lo12:.LANCHOR3
12601	ldrh	w19, [x1, w19, uxtw 1]
12602	add	w19, w19, w0
12603	b	.L2066
12604.L2069:
12605	strb	wzr, [x20, #:lo12:.LANCHOR51]
12606	mov	w4, w24
12607	mov	x3, x23
12608	mov	x2, x22
12609	mov	w1, w19
12610	mov	w0, w21
12611	bl	flash_read_page
12612	strb	w25, [x20, #:lo12:.LANCHOR51]
12613	cmn	w0, #1
12614	beq	.L2072
12615	b	.L2061
12616.L2070:
12617	mov	w4, w24
12618	mov	x3, x23
12619	mov	x2, x22
12620	mov	w1, w19
12621	mov	w0, w21
12622	blr	x5
12623	cmn	w0, #1
12624	beq	.L2071
12625	b	.L2061
12626	.size	flash_read_page_en, .-flash_read_page_en
12627	.section	.text.flash_get_last_written_page,"ax",@progbits
12628	.align	2
12629	.global	flash_get_last_written_page
12630	.type	flash_get_last_written_page, %function
12631flash_get_last_written_page:
12632	stp	x29, x30, [sp, -96]!
12633	add	x29, sp, 0
12634	stp	x23, x24, [sp, 48]
12635	and	w23, w0, 255
12636	adrp	x0, .LANCHOR145
12637	stp	x19, x20, [sp, 16]
12638	stp	x25, x26, [sp, 64]
12639	mov	x24, x2
12640	ldrh	w19, [x0, #:lo12:.LANCHOR145]
12641	adrp	x0, .LANCHOR32+26
12642	stp	x21, x22, [sp, 32]
12643	and	w21, w1, 65535
12644	ldrh	w26, [x0, #:lo12:.LANCHOR32+26]
12645	sub	w19, w19, #1
12646	sxth	w19, w19
12647	stp	x27, x28, [sp, 80]
12648	mov	x22, x3
12649	mov	w25, w4
12650	mov	w0, w23
12651	mul	w26, w26, w21
12652	add	w1, w19, w26
12653	bl	flash_read_page_en
12654	cmp	w0, 512
12655	bne	.L2090
12656	mov	w27, 0
12657	mov	w28, 2
12658.L2091:
12659	cmp	w27, w19
12660	ble	.L2094
12661.L2090:
12662	adrp	x0, .LANCHOR19
12663	ldr	w0, [x0, #:lo12:.LANCHOR19]
12664	tbz	x0, 12, .L2095
12665	ldr	w3, [x22]
12666	adrp	x0, .LC125
12667	mov	w2, w19
12668	mov	w1, w21
12669	add	x0, x0, :lo12:.LC125
12670	bl	printf
12671.L2095:
12672	mov	w0, w19
12673	ldp	x19, x20, [sp, 16]
12674	ldp	x21, x22, [sp, 32]
12675	ldp	x23, x24, [sp, 48]
12676	ldp	x25, x26, [sp, 64]
12677	ldp	x27, x28, [sp, 80]
12678	ldp	x29, x30, [sp], 96
12679	ret
12680.L2094:
12681	add	w20, w27, w19
12682	mov	w4, w25
12683	mov	x3, x22
12684	mov	x2, x24
12685	mov	w0, w23
12686	sdiv	w20, w20, w28
12687	add	w1, w26, w20, sxth
12688	bl	flash_read_page_en
12689	cmp	w0, 512
12690	bne	.L2092
12691	sub	w19, w20, #1
12692	sxth	w19, w19
12693	b	.L2091
12694.L2092:
12695	add	w20, w20, 1
12696	sxth	w27, w20
12697	b	.L2091
12698	.size	flash_get_last_written_page, .-flash_get_last_written_page
12699	.section	.text.flash_get_last_written_page_ext,"ax",@progbits
12700	.align	2
12701	.global	flash_get_last_written_page_ext
12702	.type	flash_get_last_written_page_ext, %function
12703flash_get_last_written_page_ext:
12704	adrp	x4, .LANCHOR31
12705	mov	w5, 24
12706	and	w0, w0, 65535
12707	mov	w6, 1
12708	ldrb	w4, [x4, #:lo12:.LANCHOR31]
12709	sub	w5, w5, w4
12710	adrp	x4, .LANCHOR80
12711	ldrh	w4, [x4, #:lo12:.LANCHOR80]
12712	sub	w5, w5, w4
12713	mov	w4, w3
12714	mov	x3, x2
12715	mov	x2, x1
12716	lsl	w6, w6, w5
12717	sub	w6, w6, #1
12718	and	w1, w6, w0
12719	asr	w0, w0, w5
12720	b	flash_get_last_written_page
12721	.size	flash_get_last_written_page_ext, .-flash_get_last_written_page_ext
12722	.section	.text.flash_ddr_para_scan,"ax",@progbits
12723	.align	2
12724	.global	flash_ddr_para_scan
12725	.type	flash_ddr_para_scan, %function
12726flash_ddr_para_scan:
12727	stp	x29, x30, [sp, -80]!
12728	add	x29, sp, 0
12729	stp	x19, x20, [sp, 16]
12730	adrp	x20, .LANCHOR48
12731	stp	x21, x22, [sp, 32]
12732	and	w22, w0, 255
12733	ldrb	w0, [x20, #:lo12:.LANCHOR48]
12734	adrp	x19, .LANCHOR26
12735	stp	x23, x24, [sp, 48]
12736	mov	w21, 1
12737	mov	w23, w1
12738	str	x25, [sp, 64]
12739	strb	w21, [x19, #:lo12:.LANCHOR26]
12740	adrp	x24, .LANCHOR174
12741	bl	flash_set_interface_mode
12742	adrp	x25, .LANCHOR173
12743	ldrb	w0, [x20, #:lo12:.LANCHOR48]
12744	bl	nandc_set_if_mode
12745	ldr	x3, [x25, #:lo12:.LANCHOR173]
12746	mov	w4, 4
12747	ldr	x2, [x24, #:lo12:.LANCHOR174]
12748	mov	w1, w23
12749	mov	w0, w22
12750	bl	flash_ddr_tuning_read
12751	ldr	x3, [x25, #:lo12:.LANCHOR173]
12752	mov	w4, 4
12753	ldr	x2, [x24, #:lo12:.LANCHOR174]
12754	mov	w1, w23
12755	mov	w0, w22
12756	bl	flash_read_page
12757	cmn	w0, #1
12758	mov	x0, x19
12759	bne	.L2102
12760	ldrb	w1, [x20, #:lo12:.LANCHOR48]
12761	tbz	x1, 0, .L2102
12762	mov	w0, 1
12763	bl	flash_set_interface_mode
12764	mov	w0, w21
12765	bl	nandc_set_if_mode
12766	strb	wzr, [x19, #:lo12:.LANCHOR26]
12767.L2103:
12768	mov	w0, 0
12769	ldr	x25, [sp, 64]
12770	ldp	x19, x20, [sp, 16]
12771	ldp	x21, x22, [sp, 32]
12772	ldp	x23, x24, [sp, 48]
12773	ldp	x29, x30, [sp], 80
12774	ret
12775.L2102:
12776	mov	w1, 1
12777	strb	w1, [x0, #:lo12:.LANCHOR26]
12778	b	.L2103
12779	.size	flash_ddr_para_scan, .-flash_ddr_para_scan
12780	.section	.text.flash_prog_page,"ax",@progbits
12781	.align	2
12782	.global	flash_prog_page
12783	.type	flash_prog_page, %function
12784flash_prog_page:
12785	stp	x29, x30, [sp, -80]!
12786	add	x29, sp, 0
12787	stp	x21, x22, [sp, 32]
12788	and	w21, w0, 255
12789	adrp	x0, .LANCHOR7
12790	stp	x25, x26, [sp, 64]
12791	stp	x19, x20, [sp, 16]
12792	mov	w20, 24
12793	ldr	x26, [x0, #:lo12:.LANCHOR7]
12794	adrp	x0, .LANCHOR31
12795	mov	w22, w1
12796	stp	x23, x24, [sp, 48]
12797	ldrb	w0, [x0, #:lo12:.LANCHOR31]
12798	mov	x24, x2
12799	mov	x25, x3
12800	and	x19, x21, 255
12801	sub	w0, w20, w0
12802	mov	w20, 1
12803	add	x23, x19, 8
12804	lsl	w20, w20, w0
12805	sub	w20, w20, #1
12806	and	w20, w20, w1
12807	bl	nandc_wait_flash_ready
12808	mov	w0, w21
12809	bl	hynix_reconfig_rr_para
12810	mov	w0, w21
12811	bl	nandc_cs
12812	add	x23, x26, x23, lsl 8
12813	mov	w0, w21
12814	tst	x22, 50331648
12815	bne	.L2109
12816	bl	zftl_flash_enter_slc_mode
12817.L2110:
12818	add	x19, x26, x19, lsl 8
12819	mov	w0, 128
12820	str	w0, [x19, 2056]
12821	and	w0, w20, 255
12822	str	wzr, [x19, 2052]
12823	str	wzr, [x19, 2052]
12824	str	w0, [x19, 2052]
12825	lsr	w0, w20, 8
12826	str	w0, [x19, 2052]
12827	lsr	w0, w20, 16
12828	str	w0, [x19, 2052]
12829	adrp	x0, .LANCHOR30
12830	ldrb	w0, [x0, #:lo12:.LANCHOR30]
12831	cbz	w0, .L2111
12832	lsr	w0, w20, 24
12833	str	w0, [x19, 2052]
12834.L2111:
12835	mov	w0, w20
12836	bl	nandc_set_seed
12837	adrp	x0, .LANCHOR32+9
12838	mov	x4, x25
12839	mov	x3, x24
12840	mov	w1, 1
12841	ldrb	w2, [x0, #:lo12:.LANCHOR32+9]
12842	mov	w0, w21
12843	bl	nandc_xfer
12844	mov	w0, 16
12845	str	w0, [x19, 2056]
12846	bl	nandc_wait_flash_ready
12847	mov	x0, x23
12848	bl	flash_read_status
12849	mov	w3, w0
12850	bl	nandc_de_cs.constprop.31
12851	and	w2, w3, 4
12852	tbz	x3, 2, .L2108
12853	mov	w1, w22
12854	adrp	x0, .LC126
12855	add	x0, x0, :lo12:.LC126
12856	bl	printf
12857	mov	w2, -1
12858.L2108:
12859	mov	w0, w2
12860	ldp	x19, x20, [sp, 16]
12861	ldp	x21, x22, [sp, 32]
12862	ldp	x23, x24, [sp, 48]
12863	ldp	x25, x26, [sp, 64]
12864	ldp	x29, x30, [sp], 80
12865	ret
12866.L2109:
12867	bl	zftl_flash_exit_slc_mode
12868	b	.L2110
12869	.size	flash_prog_page, .-flash_prog_page
12870	.section	.text.flash_test_blk,"ax",@progbits
12871	.align	2
12872	.global	flash_test_blk
12873	.type	flash_test_blk, %function
12874flash_test_blk:
12875	stp	x29, x30, [sp, -64]!
12876	mov	w2, 32
12877	add	x29, sp, 0
12878	stp	x21, x22, [sp, 32]
12879	adrp	x22, .LANCHOR164
12880	stp	x19, x20, [sp, 16]
12881	and	w20, w0, 255
12882	ldr	x0, [x22, #:lo12:.LANCHOR164]
12883	adrp	x21, .LANCHOR166
12884	and	w19, w1, 65535
12885	str	x23, [sp, 48]
12886	mov	w1, 165
12887	bl	ftl_memset
12888	ldr	x0, [x21, #:lo12:.LANCHOR166]
12889	mov	w2, 8
12890	mov	w1, 90
12891	bl	ftl_memset
12892	adrp	x0, .LANCHOR2
12893	ldrh	w0, [x0, #:lo12:.LANCHOR2]
12894	mul	w19, w0, w19
12895	mov	w0, w20
12896	mov	w1, w19
12897	bl	flash_erase_block
12898	cmn	w0, #1
12899	bne	.L2121
12900.L2123:
12901	mov	w21, -1
12902.L2122:
12903	mov	w1, w19
12904	mov	w0, w20
12905	bl	flash_erase_block
12906	ldr	x23, [sp, 48]
12907	mov	w0, w21
12908	ldp	x19, x20, [sp, 16]
12909	ldp	x21, x22, [sp, 32]
12910	ldp	x29, x30, [sp], 64
12911	ret
12912.L2121:
12913	adrp	x23, .LANCHOR32
12914	add	x23, x23, :lo12:.LANCHOR32
12915	ldr	x3, [x21, #:lo12:.LANCHOR166]
12916	mov	w1, w19
12917	ldr	x2, [x22, #:lo12:.LANCHOR164]
12918	mov	w0, w20
12919	ldrb	w4, [x23, 9]
12920	bl	flash_prog_page
12921	cmn	w0, #1
12922	beq	.L2123
12923	ldrb	w4, [x23, 9]
12924	mov	w1, w19
12925	ldr	x3, [x21, #:lo12:.LANCHOR166]
12926	mov	w0, w20
12927	ldr	x2, [x22, #:lo12:.LANCHOR164]
12928	bl	flash_read_page_en
12929	cmn	w0, #1
12930	beq	.L2123
12931	ldr	x0, [x22, #:lo12:.LANCHOR164]
12932	ldr	w1, [x0]
12933	mov	w0, 42405
12934	movk	w0, 0xa5a5, lsl 16
12935	cmp	w1, w0
12936	bne	.L2123
12937	ldr	x0, [x21, #:lo12:.LANCHOR166]
12938	ldr	w1, [x0]
12939	mov	w0, 23130
12940	movk	w0, 0x5a5a, lsl 16
12941	cmp	w1, w0
12942	csetm	w21, ne
12943	b	.L2122
12944	.size	flash_test_blk, .-flash_test_blk
12945	.section	.text.id_block_prog_msb_ff_data,"ax",@progbits
12946	.align	2
12947	.global	id_block_prog_msb_ff_data
12948	.type	id_block_prog_msb_ff_data, %function
12949id_block_prog_msb_ff_data:
12950	stp	x29, x30, [sp, -80]!
12951	add	x29, sp, 0
12952	stp	x21, x22, [sp, 32]
12953	and	w22, w0, 255
12954	adrp	x0, .LANCHOR24
12955	stp	x19, x20, [sp, 16]
12956	stp	x23, x24, [sp, 48]
12957	ldrb	w0, [x0, #:lo12:.LANCHOR24]
12958	str	x25, [sp, 64]
12959	cbnz	w0, .L2131
12960	adrp	x20, .LANCHOR32
12961	add	x20, x20, :lo12:.LANCHOR32
12962	ldrb	w0, [x20, 19]
12963	sub	w0, w0, #5
12964	and	w3, w0, 255
12965	cmp	w3, 63
12966	bhi	.L2131
12967	and	w19, w2, 65535
12968	mov	x2, 16391
12969	movk	x2, 0x4000, lsl 16
12970	movk	x2, 0x8000, lsl 48
12971	lsr	x0, x2, x3
12972	tbz	x0, 0, .L2131
12973	adrp	x21, .LANCHOR143
12974	mov	w23, w1
12975	add	x21, x21, :lo12:.LANCHOR143
12976	mov	w25, 65535
12977	adrp	x24, .LANCHOR164
12978.L2133:
12979	ldrh	w0, [x20, 10]
12980	cmp	w0, w19
12981	bhi	.L2134
12982.L2131:
12983	ldp	x19, x20, [sp, 16]
12984	ldp	x21, x22, [sp, 32]
12985	ldp	x23, x24, [sp, 48]
12986	ldr	x25, [sp, 64]
12987	ldp	x29, x30, [sp], 80
12988	ret
12989.L2134:
12990	ldrh	w0, [x21, w19, sxtw 1]
12991	cmp	w0, w25
12992	bne	.L2131
12993	ldr	x0, [x24, #:lo12:.LANCHOR164]
12994	mov	w2, 16384
12995	mov	w1, 255
12996	bl	ftl_memset
12997	ldr	x3, [x24, #:lo12:.LANCHOR164]
12998	add	w1, w19, w23
12999	ldrb	w4, [x20, 9]
13000	add	w19, w19, 1
13001	mov	x2, x3
13002	mov	w0, w22
13003	and	w19, w19, 65535
13004	bl	flash_prog_page
13005	b	.L2133
13006	.size	id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data
13007	.section	.text.flash_start_one_pass_page_prog,"ax",@progbits
13008	.align	2
13009	.global	flash_start_one_pass_page_prog
13010	.type	flash_start_one_pass_page_prog, %function
13011flash_start_one_pass_page_prog:
13012	stp	x29, x30, [sp, -32]!
13013	and	w8, w0, 255
13014	and	w7, w3, 255
13015	adrp	x0, .LANCHOR7
13016	add	x29, sp, 0
13017	stp	x19, x20, [sp, 16]
13018	and	w20, w2, 255
13019	ldr	x19, [x0, #:lo12:.LANCHOR7]
13020	mov	w0, w7
13021	bl	nandc_cs
13022	cbz	w8, .L2137
13023	sxtw	x0, w7
13024	add	x0, x0, 8
13025	add	x0, x19, x0, lsl 8
13026	str	w8, [x0, 8]
13027.L2137:
13028	ubfiz	x0, x7, 8, 8
13029	add	x19, x19, x0
13030	mov	w0, 128
13031	str	w0, [x19, 2056]
13032	and	w0, w4, 255
13033	str	wzr, [x19, 2052]
13034	str	wzr, [x19, 2052]
13035	str	w0, [x19, 2052]
13036	lsr	w0, w4, 8
13037	str	w0, [x19, 2052]
13038	lsr	w0, w4, 16
13039	str	w0, [x19, 2052]
13040	adrp	x0, .LANCHOR30
13041	ldrb	w0, [x0, #:lo12:.LANCHOR30]
13042	cbz	w0, .L2138
13043	lsr	w0, w4, 24
13044	str	w0, [x19, 2052]
13045.L2138:
13046	mov	w0, w4
13047	bl	nandc_set_seed
13048	adrp	x0, .LANCHOR32+9
13049	mov	x4, x6
13050	mov	x3, x5
13051	mov	w1, 1
13052	ldrb	w2, [x0, #:lo12:.LANCHOR32+9]
13053	mov	w0, w7
13054	bl	nandc_xfer
13055	str	w20, [x19, 2056]
13056	ldp	x19, x20, [sp, 16]
13057	ldp	x29, x30, [sp], 32
13058	ret
13059	.size	flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog
13060	.section	.text.flash_dual_page_prog,"ax",@progbits
13061	.align	2
13062	.global	flash_dual_page_prog
13063	.type	flash_dual_page_prog, %function
13064flash_dual_page_prog:
13065	stp	x29, x30, [sp, -96]!
13066	add	x29, sp, 0
13067	stp	x19, x20, [sp, 16]
13068	and	w20, w0, 255
13069	stp	x25, x26, [sp, 64]
13070	mov	x25, x2
13071	adrp	x2, .LANCHOR7
13072	stp	x21, x22, [sp, 32]
13073	ubfiz	x22, x20, 8, 8
13074	stp	x27, x28, [sp, 80]
13075	add	x0, x22, 2048
13076	ldr	x22, [x2, #:lo12:.LANCHOR7]
13077	mov	w19, 24
13078	adrp	x27, .LANCHOR19
13079	add	x22, x22, x0
13080	adrp	x0, .LANCHOR31
13081	stp	x23, x24, [sp, 48]
13082	mov	w21, w1
13083	ldrb	w0, [x0, #:lo12:.LANCHOR31]
13084	mov	x26, x3
13085	mov	x23, x4
13086	mov	x24, x5
13087	sub	w0, w19, w0
13088	mov	w19, 1
13089	ubfx	x28, x21, 24, 2
13090	lsl	w19, w19, w0
13091	ldr	w0, [x27, #:lo12:.LANCHOR19]
13092	sub	w19, w19, #1
13093	and	w19, w19, w1
13094	tbz	x0, 4, .L2147
13095	adrp	x0, .LC127
13096	mov	w3, w6
13097	mov	w2, w28
13098	add	x0, x0, :lo12:.LC127
13099	bl	printf
13100.L2147:
13101	bl	nandc_wait_flash_ready
13102	mov	w0, w20
13103	bl	nandc_cs
13104	mov	w0, w20
13105	cbnz	w28, .L2148
13106	bl	zftl_flash_enter_slc_mode
13107.L2149:
13108	mov	x6, x26
13109	mov	x5, x25
13110	mov	w4, w19
13111	mov	w3, w20
13112	mov	w2, 16
13113	mov	w1, 0
13114	mov	w0, 0
13115	bl	flash_start_one_pass_page_prog
13116	bl	nandc_wait_flash_ready
13117	mov	x6, x24
13118	mov	x5, x23
13119	add	w4, w19, 1
13120	mov	w3, w20
13121	mov	w2, 16
13122	mov	w1, 0
13123	mov	w0, 0
13124	bl	flash_start_one_pass_page_prog
13125	bl	nandc_wait_flash_ready
13126	mov	x0, x22
13127	bl	flash_read_status
13128	mov	w3, w0
13129	bl	nandc_de_cs.constprop.31
13130	and	w2, w3, 4
13131	tbz	x3, 2, .L2146
13132	ldr	w0, [x27, #:lo12:.LANCHOR19]
13133	tbz	x0, 12, .L2151
13134	adrp	x0, .LC126
13135	mov	w1, w21
13136	add	x0, x0, :lo12:.LC126
13137	bl	printf
13138.L2151:
13139	mov	w2, -1
13140.L2146:
13141	mov	w0, w2
13142	ldp	x19, x20, [sp, 16]
13143	ldp	x21, x22, [sp, 32]
13144	ldp	x23, x24, [sp, 48]
13145	ldp	x25, x26, [sp, 64]
13146	ldp	x27, x28, [sp, 80]
13147	ldp	x29, x30, [sp], 96
13148	ret
13149.L2148:
13150	bl	zftl_flash_exit_slc_mode
13151	b	.L2149
13152	.size	flash_dual_page_prog, .-flash_dual_page_prog
13153	.section	.text.ymtc_flash_tlc_page_prog,"ax",@progbits
13154	.align	2
13155	.global	ymtc_flash_tlc_page_prog
13156	.type	ymtc_flash_tlc_page_prog, %function
13157ymtc_flash_tlc_page_prog:
13158	stp	x29, x30, [sp, -80]!
13159	add	x29, sp, 0
13160	stp	x19, x20, [sp, 16]
13161	and	w20, w0, 255
13162	str	x25, [sp, 64]
13163	mov	w25, w1
13164	adrp	x1, .LANCHOR7
13165	stp	x21, x22, [sp, 32]
13166	ubfiz	x22, x20, 8, 8
13167	mov	w19, 24
13168	add	x0, x22, 2048
13169	ldr	x22, [x1, #:lo12:.LANCHOR7]
13170	mov	w21, 1
13171	stp	x23, x24, [sp, 48]
13172	add	x22, x22, x0
13173	adrp	x0, .LANCHOR31
13174	mov	x23, x2
13175	mov	x24, x3
13176	ldrb	w0, [x0, #:lo12:.LANCHOR31]
13177	sub	w19, w19, w0
13178	bl	nandc_wait_flash_ready
13179	lsl	w19, w21, w19
13180	mov	w0, w20
13181	sub	w19, w19, #1
13182	bl	nandc_cs
13183	and	w19, w19, w25
13184	mov	w0, w20
13185	bl	zftl_flash_exit_slc_mode
13186	mov	x6, x24
13187	mov	x5, x23
13188	mov	w4, w19
13189	mov	w3, w20
13190	mov	w1, w21
13191	mov	w2, 26
13192	mov	w0, 0
13193	bl	flash_start_one_pass_page_prog
13194	bl	nandc_wait_flash_ready
13195	mov	x6, x24
13196	mov	x5, x23
13197	add	w4, w19, w21
13198	mov	w3, w20
13199	mov	w1, w21
13200	mov	w2, 26
13201	mov	w0, 0
13202	bl	flash_start_one_pass_page_prog
13203	bl	nandc_wait_flash_ready
13204	mov	x6, x24
13205	mov	x5, x23
13206	add	w4, w19, 2
13207	mov	w3, w20
13208	mov	w1, w21
13209	mov	w2, 16
13210	mov	w0, 0
13211	bl	flash_start_one_pass_page_prog
13212	bl	nandc_wait_flash_ready
13213	mov	x0, x22
13214	bl	flash_read_status
13215	mov	w3, w0
13216	bl	nandc_de_cs.constprop.31
13217	and	w2, w3, 4
13218	tbz	x3, 2, .L2159
13219	adrp	x0, .LANCHOR19
13220	ldr	w0, [x0, #:lo12:.LANCHOR19]
13221	tbz	x0, 12, .L2161
13222	adrp	x0, .LC128
13223	mov	w1, w25
13224	add	x0, x0, :lo12:.LC128
13225	bl	printf
13226.L2161:
13227	mov	w2, -1
13228.L2159:
13229	mov	w0, w2
13230	ldr	x25, [sp, 64]
13231	ldp	x19, x20, [sp, 16]
13232	ldp	x21, x22, [sp, 32]
13233	ldp	x23, x24, [sp, 48]
13234	ldp	x29, x30, [sp], 80
13235	ret
13236	.size	ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog
13237	.section	.text.fw_flash_page_prog.constprop.28,"ax",@progbits
13238	.align	2
13239	.type	fw_flash_page_prog.constprop.28, %function
13240fw_flash_page_prog.constprop.28:
13241	stp	x29, x30, [sp, -64]!
13242	adrp	x4, .LANCHOR32
13243	add	x4, x4, :lo12:.LANCHOR32
13244	add	x29, sp, 0
13245	stp	x19, x20, [sp, 16]
13246	mov	x20, x1
13247	stp	x21, x22, [sp, 32]
13248	mov	x21, x2
13249	str	x23, [sp, 48]
13250	ldrb	w19, [x4, 9]
13251	udiv	w19, w0, w19
13252	adrp	x0, .LANCHOR49
13253	ldrb	w23, [x0, #:lo12:.LANCHOR49]
13254	adrp	x0, .LANCHOR22
13255	ldrb	w0, [x0, #:lo12:.LANCHOR22]
13256	bl	nandc_bch_sel
13257	ldrb	w0, [x4, 7]
13258	cmp	w0, 9
13259	bne	.L2167
13260	adrp	x0, .LANCHOR24
13261	ldrb	w0, [x0, #:lo12:.LANCHOR24]
13262	cbnz	w0, .L2167
13263	ldrb	w0, [x4, 12]
13264	cmp	w0, 3
13265	bne	.L2168
13266	mov	x3, x21
13267	mov	x2, x20
13268	mov	w1, w19
13269	mov	w0, 0
13270	bl	ymtc_flash_tlc_page_prog
13271.L2171:
13272	mov	w4, w0
13273	mov	w0, w23
13274	bl	nandc_bch_sel
13275	ldr	x23, [sp, 48]
13276	mov	w0, w4
13277	ldp	x19, x20, [sp, 16]
13278	ldp	x21, x22, [sp, 32]
13279	ldp	x29, x30, [sp], 64
13280	ret
13281.L2168:
13282	adrp	x22, .LANCHOR164
13283	mov	w2, 16384
13284	mov	w1, 255
13285	ldr	x0, [x22, #:lo12:.LANCHOR164]
13286	bl	ftl_memset
13287	ldr	x5, [x22, #:lo12:.LANCHOR164]
13288	mov	w6, 4
13289	mov	x3, x21
13290	mov	x2, x20
13291	mov	x4, x5
13292	mov	w1, w19
13293	mov	w0, 0
13294	bl	flash_dual_page_prog
13295	b	.L2171
13296.L2167:
13297	mov	w4, 4
13298	mov	x3, x21
13299	mov	x2, x20
13300	mov	w1, w19
13301	mov	w0, 0
13302	bl	flash_prog_page
13303	b	.L2171
13304	.size	fw_flash_page_prog.constprop.28, .-fw_flash_page_prog.constprop.28
13305	.section	.text.idb_write_data,"ax",@progbits
13306	.align	2
13307	.global	idb_write_data
13308	.type	idb_write_data, %function
13309idb_write_data:
13310	stp	x29, x30, [sp, -272]!
13311	cmp	w1, 64
13312	add	x29, sp, 0
13313	stp	x19, x20, [sp, 16]
13314	mov	w19, w1
13315	stp	x21, x22, [sp, 32]
13316	mov	w20, w3
13317	stp	x23, x24, [sp, 48]
13318	adrp	x22, .LANCHOR141
13319	stp	x25, x26, [sp, 64]
13320	mov	x24, x2
13321	stp	x27, x28, [sp, 80]
13322	bne	.L2173
13323	ldr	w0, [x2]
13324	mov	w1, 35899
13325	movk	w1, 0xfcdc, lsl 16
13326	cmp	w0, w1
13327	mov	w1, 19282
13328	movk	w1, 0x534e, lsl 16
13329	ccmp	w0, w1, 4, ne
13330	beq	.L2174
13331	add	w1, w1, 327680
13332	cmp	w0, w1
13333	bne	.L2173
13334.L2174:
13335	adrp	x21, .LANCHOR139
13336	mov	w1, 1
13337	strb	w1, [x22, #:lo12:.LANCHOR141]
13338	ldr	x0, [x21, #:lo12:.LANCHOR139]
13339	cbnz	x0, .L2175
13340	mov	w0, 262144
13341	bl	ftl_malloc
13342	str	x0, [x21, #:lo12:.LANCHOR139]
13343.L2175:
13344	adrp	x0, .LANCHOR175
13345	mov	w1, 64
13346	str	w1, [x0, #:lo12:.LANCHOR175]
13347.L2173:
13348	ldrb	w0, [x22, #:lo12:.LANCHOR141]
13349	cbz	w0, .L2241
13350	adrp	x0, .LANCHOR139
13351	mov	x23, x0
13352	ldr	x21, [x0, #:lo12:.LANCHOR139]
13353	cbz	x21, .L2241
13354	add	w0, w19, w20
13355	str	w0, [x29, 140]
13356	cmp	w0, 63
13357	bls	.L2177
13358	cmp	w19, 575
13359	bhi	.L2178
13360	adrp	x21, .LANCHOR142
13361	ldr	x0, [x21, #:lo12:.LANCHOR142]
13362	cbz	x0, .L2179
13363.L2182:
13364	adrp	x1, .LANCHOR140
13365	mov	w2, 1
13366	ldr	x0, [x23, #:lo12:.LANCHOR139]
13367	cmp	w19, 64
13368	str	w2, [x1, #:lo12:.LANCHOR140]
13369	bhi	.L2294
13370	mov	w4, 64
13371	sub	w4, w4, w19
13372	sub	w2, w20, w4
13373	ubfiz	x4, x4, 9, 25
13374	lsl	w2, w2, 9
13375	add	x1, x24, x4
13376.L2300:
13377	bl	ftl_memcpy
13378.L2183:
13379	adrp	x0, .LANCHOR175
13380	ldr	w0, [x0, #:lo12:.LANCHOR175]
13381	cmp	w19, w0
13382	beq	.L2237
13383	strb	wzr, [x22, #:lo12:.LANCHOR141]
13384	b	.L2237
13385.L2179:
13386	mov	w0, 262144
13387	bl	ftl_malloc
13388	str	x0, [x21, #:lo12:.LANCHOR142]
13389	cbnz	x0, .L2182
13390	mov	w0, -1
13391	b	.L2172
13392.L2294:
13393	mov	w2, 576
13394	sub	w2, w2, w19
13395	cmp	w20, w2
13396	sub	w3, w19, #64
13397	csel	w2, w20, w2, ls
13398	ubfiz	x3, x3, 9, 25
13399	lsl	w2, w2, 9
13400	mov	x1, x24
13401	add	x0, x0, x3
13402	b	.L2300
13403.L2177:
13404	cmp	w19, 575
13405	bls	.L2183
13406.L2178:
13407	adrp	x0, .LANCHOR140
13408	ldr	w0, [x0, #:lo12:.LANCHOR140]
13409	cbz	w0, .L2183
13410	ldr	w0, [x21]
13411	mov	w1, 35899
13412	movk	w1, 0xfcdc, lsl 16
13413	cmp	w0, w1
13414	mov	w1, 19282
13415	movk	w1, 0x534e, lsl 16
13416	ccmp	w0, w1, 4, ne
13417	beq	.L2184
13418	add	w1, w1, 327680
13419	cmp	w0, w1
13420	bne	.L2185
13421.L2184:
13422	adrp	x0, .LANCHOR0
13423	mov	x20, x0
13424	ldrb	w1, [x0, #:lo12:.LANCHOR0]
13425	str	w1, [x29, 176]
13426	adrp	x1, .LANCHOR24
13427	mov	x24, x1
13428	ldr	w0, [x29, 176]
13429	ldrb	w2, [x1, #:lo12:.LANCHOR24]
13430	str	w2, [x29, 204]
13431	cbz	w0, .L2186
13432	ldrh	w0, [x29, 176]
13433	str	w0, [x29, 172]
13434	uxtw	x0, w2
13435	cmp	w0, 0
13436	cset	w0, eq
13437.L2297:
13438	adrp	x23, .LANCHOR32
13439	add	x23, x23, :lo12:.LANCHOR32
13440	str	w0, [x29, 200]
13441	mov	w0, 0
13442	ldrb	w19, [x23, 9]
13443	ldrh	w22, [x23, 26]
13444	bl	zftl_flash_exit_slc_mode
13445	ldrb	w0, [x24, #:lo12:.LANCHOR24]
13446	add	x1, x21, 258048
13447	strb	w0, [x20, #:lo12:.LANCHOR0]
13448	mov	w4, 16981
13449	ldrh	w20, [x23, 10]
13450	add	x1, x1, 2044
13451	ldrb	w0, [x23, 12]
13452	mov	w2, 65023
13453	movk	w4, 0x4f4f, lsl 16
13454	mov	w3, 4098
13455	lsl	w20, w20, 2
13456	sdiv	w20, w20, w0
13457	mov	w0, 512
13458	cmp	w20, 512
13459	csel	w20, w20, w0, lt
13460	mov	w0, 0
13461.L2193:
13462	ldr	w5, [x1]
13463	cbnz	w5, .L2189
13464	cbnz	w0, .L2190
13465	str	w4, [x1, 2048]
13466.L2191:
13467	add	w0, w0, 1
13468	sub	w2, w2, #1
13469	cmp	w0, w3
13470	sub	x1, x1, #4
13471	csel	w0, w0, wzr, ls
13472	cmp	w2, 4096
13473	bne	.L2193
13474.L2189:
13475	ldr	w1, [x21, w2, uxtw 2]
13476	mov	w3, w20
13477	adrp	x0, .LC129
13478	add	x0, x0, :lo12:.LC129
13479	bl	printf
13480	str	wzr, [x29, 180]
13481	mul	w0, w22, w19
13482	str	wzr, [x29, 192]
13483	str	w0, [x29, 128]
13484	adrp	x0, .LANCHOR51
13485	add	x0, x0, :lo12:.LANCHOR51
13486	str	x0, [x29, 184]
13487.L2232:
13488	adrp	x23, .LANCHOR142
13489	mov	w1, 0
13490	mov	w2, 512
13491	ldr	x0, [x23, #:lo12:.LANCHOR142]
13492	bl	ftl_memset
13493	str	x23, [x29, 160]
13494	adrp	x0, .LANCHOR6
13495	ldr	w1, [x29, 192]
13496	ldr	x0, [x0, #:lo12:.LANCHOR6]
13497	add	x0, x0, x1, uxtw
13498	ldrb	w19, [x0, 32]
13499	cmp	w19, 255
13500	beq	.L2194
13501	ldr	w0, [x29, 128]
13502	mul	w19, w19, w0
13503	ldr	w0, [x29, 200]
13504	cbz	w0, .L2195
13505	and	w0, w1, -3
13506	adrp	x24, .LANCHOR0
13507	cmp	w0, 1
13508	adrp	x22, .LANCHOR24
13509	beq	.L2196
13510	ldr	w0, [x29, 200]
13511	cmp	w0, 3
13512	bne	.L2197
13513.L2196:
13514	ldrb	w0, [x29, 172]
13515	strb	w0, [x24, #:lo12:.LANCHOR0]
13516	strb	w0, [x22, #:lo12:.LANCHOR24]
13517.L2195:
13518	adrp	x22, .LANCHOR32
13519	add	x27, x22, :lo12:.LANCHOR32
13520	ldr	x0, [x29, 184]
13521	ldrb	w24, [x27, 9]
13522	ldrh	w25, [x27, 26]
13523	ldrb	w0, [x0]
13524	str	w0, [x29, 136]
13525	udiv	w1, w19, w24
13526	ldr	x0, [x29, 184]
13527	mul	w25, w25, w24
13528	strb	wzr, [x0]
13529	mov	w0, 0
13530	bl	flash_erase_block
13531	udiv	w0, w19, w25
13532	ldrb	w1, [x27, 12]
13533	msub	w0, w0, w25, w19
13534	str	w0, [x29, 168]
13535	sub	w26, w19, w0
13536	ldrh	w0, [x27, 10]
13537	cmp	w19, w26
13538	lsl	w0, w0, 2
13539	sdiv	w0, w0, w1
13540	str	w0, [x29, 156]
13541	bne	.L2247
13542	adrp	x0, .LANCHOR27
13543	ldrb	w0, [x0, #:lo12:.LANCHOR27]
13544	cmp	w0, 9
13545	bne	.L2247
13546	ldr	x0, [x29, 160]
13547	mov	w2, 1024
13548	mov	w1, 0
13549	ldr	x25, [x0, #:lo12:.LANCHOR142]
13550	mov	x0, x25
13551	bl	ftl_memset
13552	mov	w0, 18766
13553	movk	w0, 0x464e, lsl 16
13554	str	w0, [x25]
13555	mov	w0, 12
13556	str	w0, [x25, 4]
13557	adrp	x0, .LANCHOR24
13558	strb	wzr, [x25, 16]
13559	str	wzr, [x25, 12]
13560	ldrb	w0, [x0, #:lo12:.LANCHOR24]
13561	cbz	w0, .L2199
13562	ldrb	w0, [x27, 29]
13563	strb	w0, [x25, 16]
13564.L2199:
13565	add	x1, x22, :lo12:.LANCHOR32
13566	mov	w0, 4
13567	strb	w0, [x25, 17]
13568	cmp	w24, 8
13569	strb	wzr, [x25, 20]
13570	ldrh	w0, [x1, 10]
13571	ldrb	w1, [x1, 12]
13572	strh	wzr, [x25, 22]
13573	sdiv	w0, w0, w1
13574	mov	w1, 16
13575	strh	w0, [x25, 18]
13576	mov	w0, 70
13577	csel	w0, w0, w1, hi
13578	strb	w0, [x25, 21]
13579	mov	w1, 12
13580	add	x0, x25, 12
13581	bl	js_hash
13582	str	w0, [x25, 8]
13583	sub	w0, w20, #4
13584	str	w0, [x29, 196]
13585.L2198:
13586	adrp	x27, .LANCHOR3
13587	mov	x23, x21
13588	add	x27, x27, :lo12:.LANCHOR3
13589	adrp	x0, .LANCHOR24
13590	mov	w28, 0
13591	add	x0, x0, :lo12:.LANCHOR24
13592	str	x0, [x29, 144]
13593.L2201:
13594	ldr	w0, [x29, 156]
13595	cmp	w0, w28
13596	bhi	.L2212
13597	ldr	x0, [x29, 160]
13598	add	x22, x22, :lo12:.LANCHOR32
13599	mov	w24, 4
13600	mov	w25, 0
13601	mov	w28, 0
13602	ldr	x23, [x0, #:lo12:.LANCHOR142]
13603	ldrb	w0, [x22, 9]
13604	str	w0, [x29, 144]
13605	ldrh	w0, [x22, 26]
13606	ldr	w1, [x29, 144]
13607	mul	w0, w0, w1
13608	adrp	x1, .LANCHOR51
13609	strb	wzr, [x1, #:lo12:.LANCHOR51]
13610	udiv	w1, w19, w0
13611	msub	w0, w1, w0, w19
13612	str	w0, [x29, 168]
13613	sub	w0, w19, w0
13614	str	w0, [x29, 152]
13615	ldr	w0, [x29, 168]
13616	and	w0, w0, 3
13617	str	w0, [x29, 160]
13618	ldr	w0, [x29, 196]
13619	str	w0, [x29, 156]
13620	adrp	x0, .LANCHOR3
13621	add	x0, x0, :lo12:.LANCHOR3
13622	str	x0, [x29, 112]
13623.L2213:
13624	ldr	w0, [x29, 156]
13625	cmp	w25, w0
13626	bcc	.L2227
13627	ldr	x0, [x29, 184]
13628	ldrb	w1, [x29, 136]
13629	strb	w1, [x0]
13630	ldr	w0, [x29, 200]
13631	cbz	w0, .L2228
13632	mov	w0, 0
13633	bl	zftl_flash_exit_slc_mode
13634	adrp	x0, .LANCHOR0
13635	strb	wzr, [x0, #:lo12:.LANCHOR0]
13636	adrp	x0, .LANCHOR24
13637	strb	wzr, [x0, #:lo12:.LANCHOR24]
13638.L2228:
13639	ldr	w0, [x29, 196]
13640	mov	x2, 0
13641	lsl	w1, w0, 7
13642	adrp	x0, .LANCHOR142
13643	ldr	x0, [x0, #:lo12:.LANCHOR142]
13644.L2229:
13645	mov	w22, w2
13646	cmp	w2, w1
13647	bcc	.L2230
13648	ldr	w0, [x29, 180]
13649	add	w0, w0, 1
13650	str	w0, [x29, 180]
13651	cmp	w0, 5
13652	bls	.L2194
13653	b	.L2239
13654.L2186:
13655	ldr	w0, [x29, 204]
13656	cmp	w0, 3
13657	beq	.L2243
13658	cmp	w0, 2
13659	mov	w0, 2
13660	csel	w0, wzr, w0, ne
13661	str	w0, [x29, 172]
13662	ldr	w0, [x29, 204]
13663	cmp	w0, 2
13664	mov	w0, 3
13665	csel	w0, wzr, w0, ne
13666	b	.L2297
13667.L2243:
13668	ldr	w0, [x29, 204]
13669	str	w0, [x29, 172]
13670	mov	w0, 2
13671	b	.L2297
13672.L2190:
13673	ldr	w5, [x21, w0, uxtw 2]
13674	str	w5, [x1, 2048]
13675	b	.L2191
13676.L2197:
13677	mov	w0, 0
13678	bl	zftl_flash_exit_slc_mode
13679	strb	wzr, [x24, #:lo12:.LANCHOR0]
13680	strb	wzr, [x22, #:lo12:.LANCHOR24]
13681	b	.L2195
13682.L2247:
13683	mov	x25, 0
13684	str	w20, [x29, 196]
13685	b	.L2198
13686.L2212:
13687	ldr	w0, [x29, 168]
13688	adrp	x2, .LANCHOR24
13689	add	w4, w0, w28
13690	ldrb	w2, [x2, #:lo12:.LANCHOR24]
13691	ubfx	x4, x4, 2, 16
13692	add	w1, w4, 1
13693	ldrh	w0, [x27, w1, sxtw 1]
13694	cbz	w2, .L2203
13695	adrp	x0, .LANCHOR1
13696	ldrb	w7, [x0, #:lo12:.LANCHOR1]
13697	lsl	w0, w1, 1
13698	cmp	w7, 0
13699	csel	w0, w0, w1, ne
13700.L2203:
13701	adrp	x1, .LANCHOR27
13702	ldrb	w1, [x1, #:lo12:.LANCHOR27]
13703	cmp	w1, 9
13704	bne	.L2205
13705.L2298:
13706	str	w0, [x29, 208]
13707	mov	w0, 61424
13708	str	w0, [x29, 212]
13709	ldrh	w0, [x27, w4, sxtw 1]
13710	cbnz	w2, .L2207
13711	mov	w4, w0
13712.L2208:
13713	mul	w0, w24, w4
13714	cbnz	x25, .L2209
13715	str	w4, [x29, 152]
13716	add	x2, x29, 208
13717	mov	x1, x23
13718	add	w0, w0, w26
13719	bl	fw_flash_page_prog.constprop.28
13720	ldr	x0, [x29, 144]
13721	ldr	w4, [x29, 152]
13722	ldrb	w0, [x0]
13723	cbnz	w0, .L2210
13724	udiv	w1, w26, w24
13725	add	w2, w4, 1
13726	bl	id_block_prog_msb_ff_data
13727.L2210:
13728	ldr	w0, [x29, 196]
13729	add	x23, x23, 2048
13730	add	w0, w0, 16
13731	cmp	w28, w0
13732	bcc	.L2211
13733	ldr	w0, [x29, 196]
13734	add	w1, w0, 20
13735	add	x0, x21, 2048
13736	cmp	w28, w1
13737	csel	x23, x0, x23, cc
13738.L2211:
13739	add	w5, w28, 4
13740	mov	x25, 0
13741	and	w28, w5, 65535
13742	b	.L2201
13743.L2205:
13744	sub	w0, w0, #1
13745	lsl	w0, w0, 2
13746	b	.L2298
13747.L2207:
13748	adrp	x0, .LANCHOR1
13749	ldrb	w1, [x0, #:lo12:.LANCHOR1]
13750	lsl	w0, w4, 1
13751	cmp	w1, 0
13752	csel	w4, w0, w4, ne
13753	b	.L2208
13754.L2209:
13755	add	x2, x29, 208
13756	mov	x1, x25
13757	add	w0, w0, w26
13758	bl	fw_flash_page_prog.constprop.28
13759	b	.L2211
13760.L2227:
13761	ldr	w0, [x29, 160]
13762	adrp	x1, .LANCHOR24
13763	sub	w27, w24, w0
13764	ldr	w0, [x29, 168]
13765	ldrb	w1, [x1, #:lo12:.LANCHOR24]
13766	and	w27, w27, 65535
13767	add	w22, w0, w25
13768	ldr	x0, [x29, 112]
13769	udiv	w22, w22, w24
13770	and	w22, w22, 65535
13771	ldrh	w0, [x0, w22, sxtw 1]
13772	cbnz	w1, .L2214
13773	mov	w22, w0
13774.L2215:
13775	adrp	x0, .LANCHOR22
13776	ldr	w1, [x29, 152]
13777	ldrb	w26, [x0, #:lo12:.LANCHOR22]
13778	ldr	w0, [x29, 160]
13779	add	w0, w0, w1
13780	ldr	w1, [x29, 144]
13781	madd	w22, w1, w22, w0
13782	adrp	x0, .LANCHOR32+9
13783	ldrb	w0, [x0, #:lo12:.LANCHOR32+9]
13784	udiv	w22, w22, w0
13785	adrp	x0, .LANCHOR49
13786	ldrb	w0, [x0, #:lo12:.LANCHOR49]
13787	str	w0, [x29, 132]
13788	mov	w0, w26
13789	bl	nandc_bch_sel
13790	adrp	x0, .LANCHOR26
13791	add	x0, x0, :lo12:.LANCHOR26
13792	str	x0, [x29, 120]
13793.L2216:
13794	mov	w4, w24
13795	add	x3, x29, 208
13796	mov	x2, x23
13797	mov	w1, w22
13798	mov	w0, 0
13799	bl	flash_read_page
13800	mov	w5, w0
13801	cmn	w0, #1
13802	bne	.L2217
13803	ldr	x0, [x29, 184]
13804	ldrb	w6, [x0]
13805	cbnz	w6, .L2218
13806.L2221:
13807	adrp	x0, .LANCHOR172
13808	ldr	x6, [x0, #:lo12:.LANCHOR172]
13809	cbnz	x6, .L2219
13810.L2220:
13811	ldr	x0, [x29, 120]
13812	ldrb	w0, [x0]
13813	cbz	w0, .L2217
13814	mov	w4, w24
13815	add	x3, x29, 208
13816	mov	x2, x23
13817	mov	w1, w22
13818	mov	w0, 0
13819	bl	flash_ddr_tuning_read
13820	b	.L2299
13821.L2214:
13822	adrp	x0, .LANCHOR1
13823	ldrb	w1, [x0, #:lo12:.LANCHOR1]
13824	lsl	w0, w22, 1
13825	cmp	w1, 0
13826	csel	w22, w0, w22, ne
13827	b	.L2215
13828.L2218:
13829	ldr	x0, [x29, 184]
13830	mov	w1, w22
13831	stp	w6, w5, [x29, 104]
13832	mov	w4, w24
13833	add	x3, x29, 208
13834	mov	x2, x23
13835	strb	wzr, [x0]
13836	mov	w0, 0
13837	bl	flash_read_page
13838	cmn	w0, #1
13839	ldr	x1, [x29, 184]
13840	ldp	w6, w5, [x29, 104]
13841	strb	w6, [x1]
13842	beq	.L2221
13843.L2299:
13844	mov	w5, w0
13845.L2217:
13846	cmn	w5, #1
13847	cset	w4, eq
13848	cmp	w26, 16
13849	cset	w0, ne
13850	tst	w4, w0
13851	beq	.L2223
13852	mov	w0, 16
13853	mov	w26, 16
13854	bl	nandc_bch_sel
13855	b	.L2216
13856.L2219:
13857	str	w5, [x29, 108]
13858	mov	w4, w24
13859	add	x3, x29, 208
13860	mov	x2, x23
13861	mov	w1, w22
13862	mov	w0, 0
13863	blr	x6
13864	cmn	w0, #1
13865	ldr	w5, [x29, 108]
13866	beq	.L2220
13867	b	.L2299
13868.L2223:
13869	ldr	w0, [x29, 132]
13870	bl	nandc_bch_sel
13871	cmp	w4, 0
13872	ldr	w0, [x29, 152]
13873	csinv	w28, w28, wzr, eq
13874	cmp	w25, 0
13875	ccmp	w19, w0, 0, eq
13876	bne	.L2225
13877	cbnz	w28, .L2225
13878	ldr	w1, [x23]
13879	mov	w0, 18766
13880	movk	w0, 0x464e, lsl 16
13881	cmp	w1, w0
13882	bne	.L2225
13883	ldr	w0, [x29, 156]
13884	ldrb	w24, [x23, 17]
13885	add	w0, w0, w27
13886	str	w0, [x29, 156]
13887.L2226:
13888	add	w25, w27, w25
13889	and	w25, w25, 65535
13890	b	.L2213
13891.L2225:
13892	ubfiz	x0, x27, 9, 16
13893	str	wzr, [x29, 160]
13894	add	x23, x23, x0
13895	b	.L2226
13896.L2230:
13897	ldr	w4, [x0, x2, lsl 2]
13898	add	x2, x2, 1
13899	add	x3, x21, x2, lsl 2
13900	ldr	w3, [x3, -4]
13901	cmp	w4, w3
13902	beq	.L2229
13903	mov	w2, 512
13904	mov	w1, 0
13905	bl	ftl_memset
13906	mov	w1, w22
13907	adrp	x0, .LC130
13908	add	x0, x0, :lo12:.LC130
13909	bl	printf
13910	mov	w1, w19
13911	mov	w0, 0
13912	bl	flash_erase_block
13913.L2194:
13914	ldr	w0, [x29, 192]
13915	add	w0, w0, 1
13916	str	w0, [x29, 192]
13917	cmp	w0, 4
13918	bne	.L2232
13919.L2239:
13920	mov	w0, 0
13921	bl	zftl_flash_exit_slc_mode
13922	adrp	x0, .LANCHOR0
13923	ldrb	w1, [x29, 176]
13924	strb	w1, [x0, #:lo12:.LANCHOR0]
13925	ldr	w0, [x29, 200]
13926	cbz	w0, .L2233
13927	adrp	x0, .LANCHOR24
13928	ldrb	w1, [x29, 204]
13929	strb	w1, [x0, #:lo12:.LANCHOR24]
13930.L2233:
13931	mov	w1, 2
13932	adrp	x0, .LANCHOR33
13933	strb	w1, [x0, #:lo12:.LANCHOR33]
13934	mov	w0, 0
13935	bl	zftl_flash_enter_slc_mode
13936	ldr	w0, [x29, 180]
13937	cbnz	w0, .L2185
13938	adrp	x0, .LC131
13939	mov	w1, 0
13940	add	x0, x0, :lo12:.LC131
13941	bl	printf
13942.L2185:
13943	adrp	x0, .LANCHOR140
13944	str	wzr, [x0, #:lo12:.LANCHOR140]
13945	adrp	x0, .LANCHOR141
13946	strb	wzr, [x0, #:lo12:.LANCHOR141]
13947	adrp	x0, .LANCHOR139
13948	ldr	x1, [x0, #:lo12:.LANCHOR139]
13949	cbz	x1, .L2235
13950	str	xzr, [x0, #:lo12:.LANCHOR139]
13951.L2235:
13952	adrp	x0, .LANCHOR142
13953	ldr	x1, [x0, #:lo12:.LANCHOR142]
13954	cbz	x1, .L2237
13955	str	xzr, [x0, #:lo12:.LANCHOR142]
13956.L2237:
13957	adrp	x0, .LANCHOR175
13958	ldr	w1, [x29, 140]
13959	str	w1, [x0, #:lo12:.LANCHOR175]
13960.L2241:
13961	mov	w0, 0
13962.L2172:
13963	ldp	x19, x20, [sp, 16]
13964	ldp	x21, x22, [sp, 32]
13965	ldp	x23, x24, [sp, 48]
13966	ldp	x25, x26, [sp, 64]
13967	ldp	x27, x28, [sp, 80]
13968	ldp	x29, x30, [sp], 272
13969	ret
13970	.size	idb_write_data, .-idb_write_data
13971	.section	.text.flash_start_tlc_page_prog,"ax",@progbits
13972	.align	2
13973	.global	flash_start_tlc_page_prog
13974	.type	flash_start_tlc_page_prog, %function
13975flash_start_tlc_page_prog:
13976	stp	x29, x30, [sp, -80]!
13977	add	x29, sp, 0
13978	stp	x25, x26, [sp, 64]
13979	and	w25, w0, 255
13980	adrp	x0, .LANCHOR23
13981	stp	x19, x20, [sp, 16]
13982	stp	x21, x22, [sp, 32]
13983	and	w21, w1, 255
13984	stp	x23, x24, [sp, 48]
13985	and	w26, w3, 255
13986	ldrb	w1, [x0, #:lo12:.LANCHOR23]
13987	and	w22, w2, 255
13988	mov	w20, w4
13989	mov	x23, x5
13990	mov	x24, x6
13991	cmp	w1, w26
13992	mov	x19, x0
13993	bhi	.L2302
13994	adrp	x1, .LANCHOR176
13995	adrp	x0, .LC0
13996	mov	w2, 868
13997	add	x1, x1, :lo12:.LANCHOR176
13998	add	x0, x0, :lo12:.LC0
13999	bl	printf
14000.L2302:
14001	ldrb	w0, [x19, #:lo12:.LANCHOR23]
14002	cmp	w0, w26
14003	bls	.L2301
14004	adrp	x0, .LANCHOR29
14005	add	x0, x0, :lo12:.LANCHOR29
14006	ldrb	w5, [x0, w26, sxtw]
14007	adrp	x0, .LANCHOR7
14008	ldr	x19, [x0, #:lo12:.LANCHOR7]
14009	mov	w0, w5
14010	bl	nandc_cs
14011	cbz	w25, .L2304
14012	sxtw	x0, w5
14013	add	x0, x0, 8
14014	add	x0, x19, x0, lsl 8
14015	str	w25, [x0, 8]
14016.L2304:
14017	ubfiz	x0, x5, 8, 8
14018	add	x19, x19, x0
14019	mov	w0, 128
14020	str	w21, [x19, 2056]
14021	str	w0, [x19, 2056]
14022	and	w0, w20, 255
14023	str	wzr, [x19, 2052]
14024	str	wzr, [x19, 2052]
14025	str	w0, [x19, 2052]
14026	lsr	w0, w20, 8
14027	str	w0, [x19, 2052]
14028	lsr	w0, w20, 16
14029	add	w20, w20, w20, lsl 1
14030	str	w0, [x19, 2052]
14031	sub	w0, w20, #1
14032	add	w0, w0, w21
14033	bl	nandc_set_seed
14034	adrp	x0, .LANCHOR32+9
14035	mov	x4, x24
14036	mov	x3, x23
14037	mov	w1, 1
14038	ldrb	w2, [x0, #:lo12:.LANCHOR32+9]
14039	mov	w0, w5
14040	bl	nandc_xfer
14041	ldp	x23, x24, [sp, 48]
14042	ldp	x25, x26, [sp, 64]
14043	str	w22, [x19, 2056]
14044	ldp	x19, x20, [sp, 16]
14045	ldp	x21, x22, [sp, 32]
14046	ldp	x29, x30, [sp], 80
14047	b	nandc_de_cs.constprop.31
14048.L2301:
14049	ldp	x19, x20, [sp, 16]
14050	ldp	x21, x22, [sp, 32]
14051	ldp	x23, x24, [sp, 48]
14052	ldp	x25, x26, [sp, 64]
14053	ldp	x29, x30, [sp], 80
14054	ret
14055	.size	flash_start_tlc_page_prog, .-flash_start_tlc_page_prog
14056	.section	.text.queue_tlc_prog_cmd,"ax",@progbits
14057	.align	2
14058	.type	queue_tlc_prog_cmd, %function
14059queue_tlc_prog_cmd:
14060	stp	x29, x30, [sp, -64]!
14061	mov	w2, 24
14062	add	x29, sp, 0
14063	stp	x21, x22, [sp, 32]
14064	mov	x21, x0
14065	ldr	x7, [x0]
14066	adrp	x0, .LANCHOR31
14067	mov	w22, 1
14068	stp	x19, x20, [sp, 16]
14069	ldrb	w0, [x0, #:lo12:.LANCHOR31]
14070	str	x23, [sp, 48]
14071	mov	w23, w1
14072	sub	w2, w2, w0
14073	ldr	w1, [x7, 40]
14074	lsl	w19, w22, w0
14075	adrp	x0, .LANCHOR36
14076	lsl	w20, w22, w2
14077	sub	w19, w19, #1
14078	ldrb	w0, [x0, #:lo12:.LANCHOR36]
14079	sub	w20, w20, #1
14080	and	w20, w20, w1
14081	lsr	w1, w1, w2
14082	and	w19, w19, w1
14083	and	w19, w19, 255
14084	cbz	w0, .L2310
14085	mov	w0, w19
14086	bl	zftl_flash_exit_slc_mode
14087	ldr	x0, [x21]
14088	mov	w4, w20
14089	mov	w3, w19
14090	mov	w1, w22
14091	mov	w2, 26
14092	ldr	x5, [x0, 8]
14093	ldr	x6, [x0, 24]
14094	mov	w0, 0
14095	bl	flash_start_one_pass_page_prog
14096	bl	nandc_wait_flash_ready
14097	ldr	x0, [x21, 8]
14098	add	w4, w20, w22
14099	mov	w3, w19
14100	mov	w1, w22
14101	mov	w2, 26
14102	ldr	x5, [x0, 8]
14103	ldr	x6, [x0, 24]
14104	mov	w0, 0
14105	bl	flash_start_one_pass_page_prog
14106	bl	nandc_wait_flash_ready
14107	ldr	x0, [x21, 16]
14108	add	w4, w20, 2
14109	mov	w3, w19
14110	mov	w2, 16
14111	mov	w1, w22
14112	ldr	x5, [x0, 8]
14113	ldr	x6, [x0, 24]
14114	mov	w0, 0
14115	bl	flash_start_one_pass_page_prog
14116.L2311:
14117	cbz	w23, .L2309
14118	ldr	x1, [x21]
14119	mov	w0, 4
14120	strb	w0, [x1, 58]
14121	mov	w0, 1
14122	strb	w0, [x1, 59]
14123	mov	w0, -1
14124	strb	w0, [x1]
14125	adrp	x0, .LANCHOR59
14126	add	x0, x0, :lo12:.LANCHOR59
14127	ldp	x19, x20, [sp, 16]
14128	ldp	x21, x22, [sp, 32]
14129	ldr	x23, [sp, 48]
14130	ldp	x29, x30, [sp], 64
14131	b	buf_add_tail
14132.L2310:
14133	ldr	x5, [x7, 8]
14134	mov	w4, w20
14135	ldr	x6, [x7, 24]
14136	mov	w3, w19
14137	ldrb	w0, [x7, 60]
14138	mov	w1, w22
14139	mov	w2, 26
14140	bl	flash_start_tlc_page_prog
14141	bl	nandc_wait_flash_ready
14142	ldp	x7, x0, [x21]
14143	mov	w4, w20
14144	mov	w3, w19
14145	mov	w2, 26
14146	mov	w1, 2
14147	ldr	x5, [x0, 8]
14148	ldr	x6, [x0, 24]
14149	ldrb	w0, [x7, 60]
14150	bl	flash_start_tlc_page_prog
14151	bl	nandc_wait_flash_ready
14152	ldr	x0, [x21, 16]
14153	mov	w4, w20
14154	ldr	x7, [x21]
14155	mov	w3, w19
14156	mov	w2, 16
14157	mov	w1, 3
14158	ldr	x5, [x0, 8]
14159	ldr	x6, [x0, 24]
14160	ldrb	w0, [x7, 60]
14161	bl	flash_start_tlc_page_prog
14162	b	.L2311
14163.L2309:
14164	ldp	x19, x20, [sp, 16]
14165	ldp	x21, x22, [sp, 32]
14166	ldr	x23, [sp, 48]
14167	ldp	x29, x30, [sp], 64
14168	ret
14169	.size	queue_tlc_prog_cmd, .-queue_tlc_prog_cmd
14170	.section	.text.sblk_3d_tlc_dump_prog,"ax",@progbits
14171	.align	2
14172	.global	sblk_3d_tlc_dump_prog
14173	.type	sblk_3d_tlc_dump_prog, %function
14174sblk_3d_tlc_dump_prog:
14175	stp	x29, x30, [sp, -48]!
14176	mov	w2, 24
14177	add	x29, sp, 0
14178	stp	x19, x20, [sp, 16]
14179	mov	x20, x0
14180	ldr	w1, [x0, 40]
14181	adrp	x0, .LANCHOR31
14182	stp	x21, x22, [sp, 32]
14183	mov	w22, 1
14184	ldrb	w0, [x0, #:lo12:.LANCHOR31]
14185	sub	w2, w2, w0
14186	lsl	w19, w22, w0
14187	adrp	x0, .LANCHOR36
14188	lsl	w21, w22, w2
14189	sub	w19, w19, #1
14190	ldrb	w0, [x0, #:lo12:.LANCHOR36]
14191	sub	w21, w21, #1
14192	and	w21, w21, w1
14193	lsr	w1, w1, w2
14194	and	w19, w19, w1
14195	and	w19, w19, 255
14196	cbz	w0, .L2315
14197	mov	w0, w19
14198	bl	zftl_flash_exit_slc_mode
14199	ldr	x5, [x20, 8]
14200	mov	w4, w21
14201	ldr	x6, [x20, 24]
14202	mov	w3, w19
14203	mov	w1, w22
14204	mov	w2, 26
14205	mov	w0, 0
14206	bl	flash_start_one_pass_page_prog
14207	bl	nandc_wait_flash_ready
14208	ldr	x5, [x20, 8]
14209	add	w4, w21, w22
14210	ldr	x6, [x20, 24]
14211	mov	w3, w19
14212	mov	w1, w22
14213	mov	w2, 26
14214	mov	w0, 0
14215	bl	flash_start_one_pass_page_prog
14216	bl	nandc_wait_flash_ready
14217	ldr	x5, [x20, 8]
14218	add	w4, w21, 2
14219	ldr	x6, [x20, 24]
14220	mov	w3, w19
14221	mov	w2, 16
14222	mov	w1, w22
14223	mov	w0, 0
14224	bl	flash_start_one_pass_page_prog
14225.L2316:
14226	bl	nandc_wait_flash_ready
14227	ldr	w0, [x20, 40]
14228	mov	w1, 64
14229	ldp	x21, x22, [sp, 32]
14230	ldp	x19, x20, [sp, 16]
14231	ldp	x29, x30, [sp], 48
14232	b	flash_wait_device_ready
14233.L2315:
14234	ldr	x5, [x20, 8]
14235	mov	w4, w21
14236	ldr	x6, [x20, 24]
14237	mov	w3, w19
14238	mov	w1, w22
14239	mov	w2, 26
14240	mov	w0, 0
14241	bl	flash_start_tlc_page_prog
14242	bl	nandc_wait_flash_ready
14243	ldr	x5, [x20, 8]
14244	mov	w4, w21
14245	ldr	x6, [x20, 24]
14246	mov	w3, w19
14247	mov	w2, 26
14248	mov	w1, 2
14249	mov	w0, 0
14250	bl	flash_start_tlc_page_prog
14251	bl	nandc_wait_flash_ready
14252	ldr	x5, [x20, 8]
14253	mov	w4, w21
14254	ldr	x6, [x20, 24]
14255	mov	w3, w19
14256	mov	w2, 16
14257	mov	w1, 3
14258	mov	w0, 0
14259	bl	flash_start_tlc_page_prog
14260	b	.L2316
14261	.size	sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog
14262	.section	.text.flash_start_3d_mlc_page_prog,"ax",@progbits
14263	.align	2
14264	.global	flash_start_3d_mlc_page_prog
14265	.type	flash_start_3d_mlc_page_prog, %function
14266flash_start_3d_mlc_page_prog:
14267	stp	x29, x30, [sp, -64]!
14268	add	x29, sp, 0
14269	stp	x21, x22, [sp, 32]
14270	and	w21, w0, 255
14271	adrp	x0, .LANCHOR23
14272	stp	x19, x20, [sp, 16]
14273	stp	x23, x24, [sp, 48]
14274	and	w24, w1, 255
14275	ldrb	w1, [x0, #:lo12:.LANCHOR23]
14276	mov	w20, w2
14277	mov	x22, x3
14278	mov	x23, x4
14279	cmp	w1, w24
14280	mov	x19, x0
14281	bhi	.L2319
14282	adrp	x1, .LANCHOR177
14283	adrp	x0, .LC0
14284	mov	w2, 903
14285	add	x1, x1, :lo12:.LANCHOR177
14286	add	x0, x0, :lo12:.LC0
14287	bl	printf
14288.L2319:
14289	ldrb	w0, [x19, #:lo12:.LANCHOR23]
14290	cmp	w0, w24
14291	bls	.L2318
14292	adrp	x0, .LANCHOR29
14293	add	x0, x0, :lo12:.LANCHOR29
14294	ldrb	w5, [x0, w24, sxtw]
14295	adrp	x0, .LANCHOR7
14296	ldr	x19, [x0, #:lo12:.LANCHOR7]
14297	mov	w0, w5
14298	bl	nandc_cs
14299	ubfiz	x0, x5, 8, 8
14300	add	x19, x19, x0
14301	mov	w0, 128
14302	str	w0, [x19, 2056]
14303	and	w0, w20, 255
14304	str	wzr, [x19, 2052]
14305	str	wzr, [x19, 2052]
14306	str	w0, [x19, 2052]
14307	lsr	w0, w20, 8
14308	str	w0, [x19, 2052]
14309	lsr	w0, w20, 16
14310	str	w0, [x19, 2052]
14311	mov	w0, w20
14312	bl	nandc_set_seed
14313	adrp	x0, .LANCHOR32+9
14314	mov	x4, x23
14315	mov	x3, x22
14316	mov	w1, 1
14317	ldrb	w2, [x0, #:lo12:.LANCHOR32+9]
14318	mov	w0, w5
14319	bl	nandc_xfer
14320	str	w21, [x19, 2056]
14321.L2318:
14322	ldp	x19, x20, [sp, 16]
14323	ldp	x21, x22, [sp, 32]
14324	ldp	x23, x24, [sp, 48]
14325	ldp	x29, x30, [sp], 64
14326	ret
14327	.size	flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog
14328	.section	.text.sblk_mlc_dump_prog,"ax",@progbits
14329	.align	2
14330	.global	sblk_mlc_dump_prog
14331	.type	sblk_mlc_dump_prog, %function
14332sblk_mlc_dump_prog:
14333	stp	x29, x30, [sp, -48]!
14334	mov	w2, 24
14335	add	x29, sp, 0
14336	stp	x19, x20, [sp, 16]
14337	mov	x20, x0
14338	ldr	w1, [x0, 40]
14339	adrp	x0, .LANCHOR31
14340	str	x21, [sp, 32]
14341	ldrb	w19, [x0, #:lo12:.LANCHOR31]
14342	mov	w0, 1
14343	sub	w2, w2, w19
14344	lsl	w19, w0, w19
14345	sub	w19, w19, #1
14346	lsl	w21, w0, w2
14347	sub	w21, w21, #1
14348	and	w21, w21, w1
14349	lsr	w1, w1, w2
14350	and	w19, w19, w1
14351	and	w19, w19, 255
14352	mov	w0, w19
14353	bl	zftl_flash_exit_slc_mode
14354	adrp	x0, .LANCHOR19
14355	ldr	w0, [x0, #:lo12:.LANCHOR19]
14356	tbz	x0, 12, .L2323
14357	ldr	w2, [x20, 40]
14358	adrp	x0, .LC132
14359	mov	w1, w21
14360	add	x0, x0, :lo12:.LC132
14361	add	w3, w2, 1
14362	bl	printf
14363.L2323:
14364	ldr	x3, [x20, 8]
14365	mov	w2, w21
14366	ldr	x4, [x20, 24]
14367	mov	w1, w19
14368	mov	w0, 16
14369	bl	flash_start_3d_mlc_page_prog
14370	bl	nandc_wait_flash_ready
14371	ldr	x3, [x20, 8]
14372	add	w2, w21, 1
14373	ldr	x4, [x20, 24]
14374	mov	w1, w19
14375	mov	w0, 16
14376	bl	flash_start_3d_mlc_page_prog
14377	bl	nandc_wait_flash_ready
14378	ldr	w0, [x20, 40]
14379	mov	w1, 64
14380	bl	flash_wait_device_ready
14381	mov	w2, w0
14382	bl	nandc_de_cs.constprop.31
14383	ldr	x21, [sp, 32]
14384	mov	w0, w2
14385	ldp	x19, x20, [sp, 16]
14386	ldp	x29, x30, [sp], 48
14387	ret
14388	.size	sblk_mlc_dump_prog, .-sblk_mlc_dump_prog
14389	.section	.text.flash_start_page_prog,"ax",@progbits
14390	.align	2
14391	.global	flash_start_page_prog
14392	.type	flash_start_page_prog, %function
14393flash_start_page_prog:
14394	stp	x29, x30, [sp, -96]!
14395	add	x29, sp, 0
14396	stp	x21, x22, [sp, 32]
14397	and	w21, w0, 255
14398	adrp	x0, .LANCHOR31
14399	stp	x19, x20, [sp, 16]
14400	stp	x25, x26, [sp, 64]
14401	mov	w19, 24
14402	ldrb	w0, [x0, #:lo12:.LANCHOR31]
14403	mov	w20, 1
14404	str	x27, [sp, 80]
14405	adrp	x27, .LANCHOR23
14406	sub	w25, w19, w0
14407	stp	x23, x24, [sp, 48]
14408	lsl	w20, w20, w0
14409	sub	w20, w20, #1
14410	lsr	w0, w1, w25
14411	and	w20, w20, w0
14412	ldrb	w0, [x27, #:lo12:.LANCHOR23]
14413	and	w20, w20, 255
14414	mov	w24, w1
14415	mov	x22, x2
14416	mov	x23, x3
14417	cmp	w0, w20
14418	bhi	.L2329
14419	adrp	x1, .LANCHOR178
14420	adrp	x0, .LC0
14421	mov	w2, 956
14422	add	x1, x1, :lo12:.LANCHOR178
14423	add	x0, x0, :lo12:.LC0
14424	bl	printf
14425.L2329:
14426	ldrb	w0, [x27, #:lo12:.LANCHOR23]
14427	cmp	w0, w20
14428	bls	.L2328
14429	adrp	x0, .LANCHOR29
14430	add	x0, x0, :lo12:.LANCHOR29
14431	mov	w19, 1
14432	lsl	w19, w19, w25
14433	sub	w19, w19, #1
14434	ldrb	w26, [x0, w20, sxtw]
14435	adrp	x0, .LANCHOR7
14436	and	w19, w19, w24
14437	ldr	x25, [x0, #:lo12:.LANCHOR7]
14438	bl	nandc_rdy_status
14439	cbnz	w0, .L2331
14440	ldrb	w0, [x27, #:lo12:.LANCHOR23]
14441	cmp	w0, 1
14442	bne	.L2332
14443	bl	nandc_wait_flash_ready
14444.L2331:
14445	mov	w0, w26
14446	bl	hynix_reconfig_rr_para
14447	mov	w0, w26
14448	bl	nandc_cs
14449	tst	x24, 50331648
14450	bne	.L2333
14451	mov	w0, w19
14452	bl	slc_phy_page_address_calc
14453	mov	w19, w0
14454	adrp	x0, .LANCHOR0
14455	ldrb	w0, [x0, #:lo12:.LANCHOR0]
14456	cbz	w0, .L2334
14457	mov	w0, w26
14458	bl	zftl_flash_enter_slc_mode
14459.L2334:
14460	ubfiz	x20, x26, 8, 8
14461	mov	w0, 128
14462	add	x20, x25, x20
14463	str	w0, [x20, 2056]
14464	and	w0, w19, 255
14465	str	wzr, [x20, 2052]
14466	str	wzr, [x20, 2052]
14467	str	w0, [x20, 2052]
14468	lsr	w0, w19, 8
14469	str	w0, [x20, 2052]
14470	lsr	w0, w19, 16
14471	str	w0, [x20, 2052]
14472	adrp	x0, .LANCHOR30
14473	ldrb	w0, [x0, #:lo12:.LANCHOR30]
14474	cbz	w0, .L2335
14475	lsr	w0, w19, 24
14476	str	w0, [x20, 2052]
14477.L2335:
14478	mov	w0, w19
14479	bl	nandc_set_seed
14480	adrp	x0, .LANCHOR32+9
14481	mov	x4, x23
14482	mov	x3, x22
14483	mov	w1, 1
14484	ldrb	w2, [x0, #:lo12:.LANCHOR32+9]
14485	mov	w0, w26
14486	bl	nandc_xfer
14487	ldr	x27, [sp, 80]
14488	ldp	x23, x24, [sp, 48]
14489	ldp	x25, x26, [sp, 64]
14490	str	w21, [x20, 2056]
14491	ldp	x19, x20, [sp, 16]
14492	ldp	x21, x22, [sp, 32]
14493	ldp	x29, x30, [sp], 96
14494	b	nandc_de_cs.constprop.31
14495.L2332:
14496	mov	w2, 64
14497	mov	w1, w19
14498	mov	w0, w20
14499	bl	flash_wait_device_ready_raw
14500	b	.L2331
14501.L2333:
14502	mov	w0, w26
14503	bl	zftl_flash_exit_slc_mode
14504	b	.L2334
14505.L2328:
14506	ldp	x19, x20, [sp, 16]
14507	ldp	x21, x22, [sp, 32]
14508	ldp	x23, x24, [sp, 48]
14509	ldp	x25, x26, [sp, 64]
14510	ldr	x27, [sp, 80]
14511	ldp	x29, x30, [sp], 96
14512	ret
14513	.size	flash_start_page_prog, .-flash_start_page_prog
14514	.section	.text.queue_prog_cmd,"ax",@progbits
14515	.align	2
14516	.type	queue_prog_cmd, %function
14517queue_prog_cmd:
14518	stp	x29, x30, [sp, -32]!
14519	add	x29, sp, 0
14520	ldr	w1, [x0, 40]
14521	ldr	x3, [x0, 24]
14522	ldr	x2, [x0, 8]
14523	str	x19, [sp, 16]
14524	mov	x19, x0
14525	mov	w0, 16
14526	bl	flash_start_page_prog
14527	adrp	x0, .LANCHOR59
14528	ldr	w3, [x19, 40]
14529	ldrb	w1, [x0, #:lo12:.LANCHOR59]
14530	cmp	w1, 255
14531	beq	.L2344
14532	adrp	x2, .LANCHOR31
14533	mov	w5, 24
14534	adrp	x6, .LANCHOR55
14535	add	x6, x6, :lo12:.LANCHOR55
14536	ldrb	w4, [x2, #:lo12:.LANCHOR31]
14537	mov	w2, 1
14538	mov	x8, x6
14539	sub	w5, w5, w4
14540	lsl	w2, w2, w4
14541	sub	w2, w2, #1
14542	and	w2, w2, 65535
14543	asr	w3, w3, w5
14544	and	w3, w3, w2
14545.L2346:
14546	add	x7, x6, x1, lsl 6
14547	ldr	w4, [x7, 40]
14548	lsr	w4, w4, w5
14549	and	w4, w2, w4
14550	cmp	w3, w4
14551	bne	.L2345
14552	ldrb	w4, [x7, 58]
14553	cmp	w4, 7
14554	bne	.L2345
14555	mov	w1, 3
14556	strb	w1, [x7, 58]
14557.L2344:
14558	mov	w1, 3
14559	strb	w1, [x19, 58]
14560	mov	w1, 1
14561	strb	w1, [x19, 59]
14562	mov	w1, -1
14563	strb	w1, [x19]
14564	mov	x1, x19
14565	add	x0, x0, :lo12:.LANCHOR59
14566	ldr	x19, [sp, 16]
14567	ldp	x29, x30, [sp], 32
14568	b	buf_add_tail
14569.L2345:
14570	lsl	x1, x1, 6
14571	ldrb	w1, [x8, x1]
14572	cmp	w1, 255
14573	bne	.L2346
14574	b	.L2344
14575	.size	queue_prog_cmd, .-queue_prog_cmd
14576	.section	.text.flash_complete_plane_page_read,"ax",@progbits
14577	.align	2
14578	.global	flash_complete_plane_page_read
14579	.type	flash_complete_plane_page_read, %function
14580flash_complete_plane_page_read:
14581	stp	x29, x30, [sp, -64]!
14582	mov	w4, 24
14583	add	x29, sp, 0
14584	stp	x23, x24, [sp, 48]
14585	mov	w24, w0
14586	adrp	x0, .LANCHOR31
14587	stp	x21, x22, [sp, 32]
14588	stp	x19, x20, [sp, 16]
14589	mov	w19, 1
14590	ldrb	w0, [x0, #:lo12:.LANCHOR31]
14591	mov	x20, x1
14592	mov	x21, x2
14593	sub	w22, w4, w0
14594	lsl	w19, w19, w0
14595	sub	w19, w19, #1
14596	lsr	w0, w24, w22
14597	and	w19, w19, w0
14598	adrp	x0, .LANCHOR23
14599	and	w19, w19, 255
14600	mov	x23, x0
14601	ldrb	w1, [x0, #:lo12:.LANCHOR23]
14602	cmp	w1, w19
14603	bhi	.L2353
14604	adrp	x1, .LANCHOR179
14605	adrp	x0, .LC0
14606	mov	w2, 1070
14607	add	x1, x1, :lo12:.LANCHOR179
14608	add	x0, x0, :lo12:.LC0
14609	bl	printf
14610.L2353:
14611	ldrb	w0, [x23, #:lo12:.LANCHOR23]
14612	cmp	w0, w19
14613	bls	.L2364
14614	adrp	x2, .LANCHOR29
14615	add	x2, x2, :lo12:.LANCHOR29
14616	adrp	x0, .LANCHOR7
14617	mov	w4, 1
14618	lsl	w4, w4, w22
14619	sub	w4, w4, #1
14620	ldrb	w8, [x2, w19, sxtw]
14621	and	w4, w4, w24
14622	ldr	x7, [x0, #:lo12:.LANCHOR7]
14623	ubfx	x24, x24, 24, 2
14624	mov	w0, w8
14625	bl	nandc_cs
14626	cbnz	w24, .L2355
14627	mov	w0, w4
14628	bl	slc_phy_page_address_calc
14629	mov	w4, w0
14630.L2355:
14631	adrp	x0, .LANCHOR25+16
14632	and	x1, x8, 255
14633	and	w6, w4, 255
14634	lsr	w5, w4, 8
14635	ldrb	w0, [x0, #:lo12:.LANCHOR25+16]
14636	lsr	w3, w4, 16
14637	adrp	x2, .LANCHOR30
14638	cmp	w0, 1
14639	adrp	x0, .LANCHOR21
14640	bne	.L2356
14641	add	x1, x7, x1, lsl 8
14642	mov	w7, 6
14643.L2382:
14644	str	w7, [x1, 2056]
14645	str	wzr, [x1, 2052]
14646	str	wzr, [x1, 2052]
14647	str	w6, [x1, 2052]
14648	str	w5, [x1, 2052]
14649	str	w3, [x1, 2052]
14650	ldrb	w2, [x2, #:lo12:.LANCHOR30]
14651	cbz	w2, .L2378
14652	lsr	w2, w4, 24
14653	str	w2, [x1, 2052]
14654.L2378:
14655	ldr	x0, [x0, #:lo12:.LANCHOR21]
14656	mov	w2, 224
14657	str	w2, [x1, 2056]
14658	ldrb	w0, [x0, 12]
14659	cmp	w0, 3
14660	bne	.L2362
14661	cbz	w24, .L2362
14662	adrp	x0, .LANCHOR35
14663	ldrb	w0, [x0, #:lo12:.LANCHOR35]
14664	cbnz	w0, .L2362
14665	adrp	x0, .LANCHOR36
14666	ldrb	w0, [x0, #:lo12:.LANCHOR36]
14667	cbnz	w0, .L2362
14668	add	w4, w4, w4, lsl 1
14669	sub	w0, w24, #1
14670	add	w0, w4, w0
14671.L2379:
14672	bl	nandc_set_seed
14673	adrp	x0, .LANCHOR32+9
14674	mov	x4, x21
14675	mov	x3, x20
14676	mov	w1, 0
14677	ldrb	w2, [x0, #:lo12:.LANCHOR32+9]
14678	mov	w0, w8
14679	bl	nandc_xfer
14680	mov	w2, w0
14681	bl	nandc_de_cs.constprop.31
14682	mov	w0, w2
14683.L2352:
14684	ldp	x19, x20, [sp, 16]
14685	ldp	x21, x22, [sp, 32]
14686	ldp	x23, x24, [sp, 48]
14687	ldp	x29, x30, [sp], 64
14688	ret
14689.L2356:
14690	ldr	x10, [x0, #:lo12:.LANCHOR21]
14691	add	x1, x7, x1, lsl 8
14692	ldrb	w10, [x10, 12]
14693	cmp	w10, 3
14694	bne	.L2359
14695	mov	w7, 5
14696	b	.L2382
14697.L2359:
14698	str	wzr, [x1, 2056]
14699	str	wzr, [x1, 2052]
14700	str	wzr, [x1, 2052]
14701	str	w6, [x1, 2052]
14702	ldrb	w2, [x2, #:lo12:.LANCHOR30]
14703	str	w5, [x1, 2052]
14704	str	w3, [x1, 2052]
14705	cbz	w2, .L2361
14706	lsr	w2, w4, 24
14707	str	w2, [x1, 2052]
14708.L2361:
14709	mov	w2, 5
14710	str	w2, [x1, 2056]
14711	str	wzr, [x1, 2052]
14712	str	wzr, [x1, 2052]
14713	b	.L2378
14714.L2362:
14715	mov	w0, w4
14716	b	.L2379
14717.L2364:
14718	mov	w0, -1
14719	b	.L2352
14720	.size	flash_complete_plane_page_read, .-flash_complete_plane_page_read
14721	.section	.text.flash_complete_page_read,"ax",@progbits
14722	.align	2
14723	.global	flash_complete_page_read
14724	.type	flash_complete_page_read, %function
14725flash_complete_page_read:
14726	stp	x29, x30, [sp, -96]!
14727	add	x29, sp, 0
14728	stp	x21, x22, [sp, 32]
14729	mov	w21, w0
14730	adrp	x0, .LANCHOR31
14731	stp	x19, x20, [sp, 16]
14732	mov	x22, x1
14733	mov	w1, 24
14734	ldrb	w20, [x0, #:lo12:.LANCHOR31]
14735	mov	w0, 1
14736	stp	x23, x24, [sp, 48]
14737	mov	x23, x2
14738	sub	w1, w1, w20
14739	stp	x25, x26, [sp, 64]
14740	lsl	w20, w0, w20
14741	sub	w20, w20, #1
14742	lsl	w19, w0, w1
14743	adrp	x0, .LANCHOR23
14744	lsr	w1, w21, w1
14745	stp	x27, x28, [sp, 80]
14746	and	w20, w20, w1
14747	ldrb	w0, [x0, #:lo12:.LANCHOR23]
14748	sub	w19, w19, #1
14749	and	w20, w20, 255
14750	and	w19, w19, w21
14751	ubfx	x24, x21, 24, 2
14752	cmp	w0, w20
14753	bhi	.L2384
14754	adrp	x1, .LANCHOR180
14755	adrp	x0, .LC0
14756	mov	w2, 1232
14757	add	x1, x1, :lo12:.LANCHOR180
14758	add	x0, x0, :lo12:.LC0
14759	bl	printf
14760.L2384:
14761	adrp	x0, .LANCHOR29
14762	add	x0, x0, :lo12:.LANCHOR29
14763	ldrb	w25, [x0, w20, sxtw]
14764	adrp	x0, .LANCHOR7
14765	ldr	x4, [x0, #:lo12:.LANCHOR7]
14766	mov	w0, w25
14767	bl	nandc_cs
14768	cbnz	w24, .L2385
14769	mov	w0, w19
14770	bl	slc_phy_page_address_calc
14771	mov	w19, w0
14772.L2385:
14773	adrp	x20, .LANCHOR32
14774	add	x0, x20, :lo12:.LANCHOR32
14775	ldrb	w0, [x0, 12]
14776	cmp	w0, 3
14777	bne	.L2386
14778	ubfiz	x0, x25, 8, 8
14779	mov	w1, 5
14780	add	x0, x4, x0
14781	str	w1, [x0, 2056]
14782	and	w1, w19, 255
14783	str	wzr, [x0, 2052]
14784	str	wzr, [x0, 2052]
14785	str	w1, [x0, 2052]
14786	lsr	w1, w19, 8
14787	str	w1, [x0, 2052]
14788	lsr	w1, w19, 16
14789	str	w1, [x0, 2052]
14790	mov	w1, 224
14791	str	w1, [x0, 2056]
14792.L2386:
14793	adrp	x0, .LANCHOR21
14794	ldr	x0, [x0, #:lo12:.LANCHOR21]
14795	ldrb	w0, [x0, 12]
14796	cmp	w0, 3
14797	bne	.L2387
14798	cbz	w24, .L2387
14799	adrp	x0, .LANCHOR35
14800	ldrb	w0, [x0, #:lo12:.LANCHOR35]
14801	cbnz	w0, .L2387
14802	adrp	x0, .LANCHOR36
14803	ldrb	w0, [x0, #:lo12:.LANCHOR36]
14804	cbnz	w0, .L2387
14805	sub	w0, w24, #1
14806	add	w1, w19, w19, lsl 1
14807	add	w0, w0, w1
14808.L2414:
14809	add	x28, x20, :lo12:.LANCHOR32
14810	bl	nandc_set_seed
14811	mov	x4, x23
14812	mov	x3, x22
14813	mov	w1, 0
14814	mov	w0, w25
14815	ldrb	w2, [x28, 9]
14816	bl	nandc_xfer
14817	cmn	w0, #1
14818	bne	.L2389
14819	adrp	x26, .LANCHOR51
14820	ldrb	w27, [x26, #:lo12:.LANCHOR51]
14821	cbz	w27, .L2390
14822	ldrb	w4, [x28, 9]
14823	mov	x3, x23
14824	strb	wzr, [x26, #:lo12:.LANCHOR51]
14825	mov	x2, x22
14826	orr	w1, w19, w24, lsl 24
14827	mov	w0, w25
14828	bl	flash_read_page
14829	strb	w27, [x26, #:lo12:.LANCHOR51]
14830	cbnz	w24, .L2391
14831.L2396:
14832	adrp	x1, .LANCHOR0
14833	ldrb	w1, [x1, #:lo12:.LANCHOR0]
14834	cbz	w1, .L2391
14835	adrp	x1, .LANCHOR49
14836	ldrb	w1, [x1, #:lo12:.LANCHOR49]
14837	add	w1, w1, w1, lsl 1
14838	cmp	w0, w1, lsr 2
14839	blt	.L2391
14840	add	x20, x20, :lo12:.LANCHOR32
14841	ldrb	w1, [x20, 19]
14842	sub	w1, w1, #4
14843	and	w1, w1, 255
14844	cmp	w1, 4
14845	mov	w1, 256
14846	csel	w0, w0, w1, hi
14847.L2383:
14848	ldp	x19, x20, [sp, 16]
14849	ldp	x21, x22, [sp, 32]
14850	ldp	x23, x24, [sp, 48]
14851	ldp	x25, x26, [sp, 64]
14852	ldp	x27, x28, [sp, 80]
14853	ldp	x29, x30, [sp], 96
14854	ret
14855.L2387:
14856	mov	w0, w19
14857	b	.L2414
14858.L2391:
14859	cmn	w0, #1
14860	bne	.L2383
14861.L2397:
14862	adrp	x0, .LANCHOR172
14863	ldr	x5, [x0, #:lo12:.LANCHOR172]
14864	cbnz	x5, .L2393
14865.L2395:
14866	adrp	x0, .LANCHOR51
14867	mov	w3, -1
14868	mov	w2, w21
14869	mov	w1, 0
14870	ldrb	w4, [x0, #:lo12:.LANCHOR51]
14871	adrp	x0, .LC133
14872	add	x0, x0, :lo12:.LC133
14873	bl	printf
14874	adrp	x0, .LANCHOR26
14875	ldrb	w0, [x0, #:lo12:.LANCHOR26]
14876	cbnz	w0, .L2394
14877	mov	w0, -1
14878	b	.L2383
14879.L2393:
14880	add	x0, x20, :lo12:.LANCHOR32
14881	mov	x3, x23
14882	mov	x2, x22
14883	orr	w1, w19, w24, lsl 24
14884	ldrb	w4, [x0, 9]
14885	mov	w0, w25
14886	blr	x5
14887	cmn	w0, #1
14888	beq	.L2395
14889	b	.L2383
14890.L2394:
14891	add	x20, x20, :lo12:.LANCHOR32
14892	orr	w1, w19, w24, lsl 24
14893	mov	x3, x23
14894	mov	x2, x22
14895	mov	w0, w25
14896	ldrb	w4, [x20, 9]
14897	ldp	x21, x22, [sp, 32]
14898	ldp	x19, x20, [sp, 16]
14899	ldp	x23, x24, [sp, 48]
14900	ldp	x25, x26, [sp, 64]
14901	ldp	x27, x28, [sp, 80]
14902	ldp	x29, x30, [sp], 96
14903	b	flash_ddr_tuning_read
14904.L2390:
14905	cbz	w24, .L2396
14906	b	.L2397
14907.L2389:
14908	cbnz	w24, .L2383
14909	b	.L2396
14910	.size	flash_complete_page_read, .-flash_complete_page_read
14911	.section	.text.queue_wait_first_req_completed,"ax",@progbits
14912	.align	2
14913	.type	queue_wait_first_req_completed, %function
14914queue_wait_first_req_completed:
14915	stp	x29, x30, [sp, -96]!
14916	adrp	x0, .LANCHOR59
14917	add	x29, sp, 0
14918	stp	x19, x20, [sp, 16]
14919	ldrb	w0, [x0, #:lo12:.LANCHOR59]
14920	stp	x21, x22, [sp, 32]
14921	stp	x23, x24, [sp, 48]
14922	cmp	w0, 255
14923	stp	x25, x26, [sp, 64]
14924	str	x27, [sp, 80]
14925	bne	.L2416
14926.L2449:
14927	mov	w21, 0
14928	b	.L2415
14929.L2416:
14930	adrp	x19, .LANCHOR55
14931	sxtw	x20, w0
14932	add	x1, x19, :lo12:.LANCHOR55
14933	add	x1, x1, x20, lsl 6
14934	ldrb	w2, [x1, 58]
14935	ldr	w21, [x1, 40]
14936	sub	w3, w2, #1
14937	cmp	w3, 10
14938	bhi	.L2449
14939	adrp	x1, .L2419
14940	add	x1, x1, :lo12:.L2419
14941	ldrh	w1, [x1,w3,uxtw #1]
14942	adr	x3, .Lrtx2419
14943	add	x1, x3, w1, sxth #2
14944	br	x1
14945.Lrtx2419:
14946	.section	.rodata.queue_wait_first_req_completed,"a",@progbits
14947	.align	0
14948	.align	2
14949.L2419:
14950	.2byte	(.L2418 - .Lrtx2419) / 4
14951	.2byte	(.L2420 - .Lrtx2419) / 4
14952	.2byte	(.L2421 - .Lrtx2419) / 4
14953	.2byte	(.L2421 - .Lrtx2419) / 4
14954	.2byte	(.L2421 - .Lrtx2419) / 4
14955	.2byte	(.L2421 - .Lrtx2419) / 4
14956	.2byte	(.L2422 - .Lrtx2419) / 4
14957	.2byte	(.L2423 - .Lrtx2419) / 4
14958	.2byte	(.L2424 - .Lrtx2419) / 4
14959	.2byte	(.L2421 - .Lrtx2419) / 4
14960	.2byte	(.L2424 - .Lrtx2419) / 4
14961	.section	.text.queue_wait_first_req_completed
14962.L2418:
14963	bl	nandc_wait_flash_ready
14964	add	x0, x19, :lo12:.LANCHOR55
14965	add	x0, x0, x20, lsl 6
14966	ldp	x1, x2, [x0, 8]
14967	cbz	x2, .L2425
14968	ldrb	w3, [x0, 56]
14969	adrp	x0, .LANCHOR68
14970	ldrb	w0, [x0, #:lo12:.LANCHOR68]
14971	cmp	w3, w0
14972	csel	x1, x1, x2, ne
14973.L2425:
14974	add	x19, x19, :lo12:.LANCHOR55
14975	mov	w0, w21
14976	add	x20, x19, x20, lsl 6
14977	ldr	x2, [x20, 24]
14978	bl	flash_complete_page_read
14979	str	w0, [x20, 52]
14980	mov	w0, 13
14981	strb	w0, [x20, 58]
14982	ldrb	w0, [x20, 2]
14983	orr	w0, w0, 8
14984	strb	w0, [x20, 2]
14985	b	.L2449
14986.L2420:
14987	bl	nandc_wait_flash_ready
14988	add	x0, x19, :lo12:.LANCHOR55
14989	lsl	x2, x20, 6
14990	add	x1, x0, x2
14991	ldrb	w21, [x0, x2]
14992	add	x0, x0, x21, lsl 6
14993	ldr	x24, [x0, 8]
14994	ldp	x26, x0, [x1, 8]
14995	cbz	x0, .L2426
14996	ldrb	w2, [x1, 56]
14997	adrp	x1, .LANCHOR68
14998	ldrb	w1, [x1, #:lo12:.LANCHOR68]
14999	cmp	w2, w1
15000	csel	x26, x26, x0, ne
15001.L2426:
15002	add	x0, x19, :lo12:.LANCHOR55
15003	add	x0, x0, x21, lsl 6
15004	ldr	x1, [x0, 16]
15005	cbz	x1, .L2427
15006	ldrb	w2, [x0, 56]
15007	adrp	x0, .LANCHOR68
15008	ldrb	w0, [x0, #:lo12:.LANCHOR68]
15009	cmp	w2, w0
15010	csel	x24, x24, x1, ne
15011.L2427:
15012	add	x22, x19, :lo12:.LANCHOR55
15013	mov	x1, x26
15014	add	x27, x22, x20, lsl 6
15015	add	x22, x22, x21, lsl 6
15016	ldr	x2, [x27, 24]
15017	ldr	w0, [x27, 40]
15018	bl	flash_complete_plane_page_read
15019	mov	w23, w0
15020	ldr	x2, [x22, 24]
15021	mov	x1, x24
15022	ldr	w0, [x22, 40]
15023	bl	flash_complete_plane_page_read
15024	mov	w25, w0
15025	cmn	w23, #1
15026	beq	.L2428
15027	ldr	w0, [x27, 36]
15028	cmn	w0, #1
15029	beq	.L2429
15030	ldr	x1, [x27, 24]
15031	ldr	w1, [x1, 4]
15032	cmp	w0, w1
15033	beq	.L2429
15034.L2428:
15035	adrp	x0, .LANCHOR31
15036	add	x22, x19, :lo12:.LANCHOR55
15037	add	x22, x22, x20, lsl 6
15038	mov	w5, 1
15039	ldrb	w2, [x0, #:lo12:.LANCHOR31]
15040	mov	w0, 24
15041	sub	w0, w0, w2
15042	ldr	x3, [x22, 24]
15043	lsl	w5, w5, w2
15044	adrp	x2, .LANCHOR68
15045	sub	w5, w5, #1
15046	ldr	w1, [x22, 40]
15047	ldrb	w4, [x2, #:lo12:.LANCHOR68]
15048	mov	x2, x26
15049	lsl	w6, w5, w0
15050	lsr	w0, w1, w0
15051	bic	w1, w1, w6
15052	and	w0, w0, w5
15053	bl	flash_read_page_en
15054	mov	w23, w0
15055	ldr	w2, [x22, 36]
15056	cmn	w2, #1
15057	beq	.L2430
15058	ldr	x0, [x22, 24]
15059	ldr	w4, [x0, 4]
15060	cmp	w2, w4
15061	beq	.L2430
15062	adrp	x1, .LANCHOR19
15063	ldr	w1, [x1, #:lo12:.LANCHOR19]
15064	tbz	x1, 6, .L2430
15065	ldr	w3, [x0]
15066	adrp	x0, .LC134
15067	ldr	w1, [x22, 40]
15068	add	x0, x0, :lo12:.LC134
15069	bl	printf
15070.L2430:
15071	add	x0, x19, :lo12:.LANCHOR55
15072	add	x0, x0, x20, lsl 6
15073	ldr	w1, [x0, 36]
15074	cmn	w1, #1
15075	beq	.L2429
15076	ldr	x0, [x0, 24]
15077	ldr	w0, [x0, 4]
15078	cmp	w1, w0
15079	beq	.L2429
15080	adrp	x1, .LANCHOR181
15081	adrp	x0, .LC0
15082	mov	w2, 431
15083	add	x1, x1, :lo12:.LANCHOR181
15084	add	x0, x0, :lo12:.LC0
15085	bl	printf
15086.L2429:
15087	add	x0, x19, :lo12:.LANCHOR55
15088	mov	w1, 13
15089	add	x20, x0, x20, lsl 6
15090	cmn	w25, #1
15091	strb	w1, [x20, 58]
15092	ldrb	w1, [x20, 2]
15093	str	w23, [x20, 52]
15094	orr	w1, w1, 8
15095	strb	w1, [x20, 2]
15096	beq	.L2431
15097	add	x0, x0, x21, lsl 6
15098	ldr	w1, [x0, 36]
15099	cmn	w1, #1
15100	beq	.L2433
15101	ldr	x0, [x0, 24]
15102	ldr	w0, [x0, 4]
15103	cmp	w1, w0
15104	beq	.L2433
15105.L2431:
15106	adrp	x0, .LANCHOR31
15107	add	x20, x19, :lo12:.LANCHOR55
15108	add	x20, x20, x21, lsl 6
15109	mov	w5, 1
15110	ldrb	w2, [x0, #:lo12:.LANCHOR31]
15111	mov	w0, 24
15112	sub	w0, w0, w2
15113	ldr	x3, [x20, 24]
15114	lsl	w5, w5, w2
15115	adrp	x2, .LANCHOR68
15116	sub	w5, w5, #1
15117	ldr	w1, [x20, 40]
15118	ldrb	w4, [x2, #:lo12:.LANCHOR68]
15119	mov	x2, x24
15120	lsl	w6, w5, w0
15121	lsr	w0, w1, w0
15122	bic	w1, w1, w6
15123	and	w0, w0, w5
15124	bl	flash_read_page_en
15125	ldr	w2, [x20, 36]
15126	cmn	w2, #1
15127	beq	.L2435
15128	ldr	x0, [x20, 24]
15129	ldr	w4, [x0, 4]
15130	cmp	w2, w4
15131	beq	.L2435
15132	adrp	x1, .LANCHOR19
15133	ldr	w1, [x1, #:lo12:.LANCHOR19]
15134	tbz	x1, 6, .L2435
15135	ldr	w3, [x0]
15136	adrp	x0, .LC134
15137	ldr	w1, [x20, 40]
15138	add	x0, x0, :lo12:.LC134
15139	bl	printf
15140.L2435:
15141	add	x0, x19, :lo12:.LANCHOR55
15142	add	x0, x0, x21, lsl 6
15143	ldr	w1, [x0, 36]
15144	cmn	w1, #1
15145	beq	.L2433
15146	ldr	x0, [x0, 24]
15147	ldr	w0, [x0, 4]
15148	cmp	w1, w0
15149	beq	.L2433
15150	adrp	x1, .LANCHOR181
15151	adrp	x0, .LC0
15152	mov	w2, 450
15153	add	x1, x1, :lo12:.LANCHOR181
15154	add	x0, x0, :lo12:.LC0
15155	bl	printf
15156.L2433:
15157	add	x19, x19, :lo12:.LANCHOR55
15158	mov	w0, 13
15159	add	x21, x19, x21, lsl 6
15160	strb	w0, [x21, 58]
15161	ldrb	w0, [x21, 2]
15162	str	w23, [x21, 52]
15163	orr	w0, w0, 8
15164	strb	w0, [x21, 2]
15165	b	.L2449
15166.L2421:
15167	mov	w0, w21
15168	mov	w1, 64
15169	bl	flash_wait_device_ready
15170	mov	w21, w0
15171	tbz	x21, 6, .L2449
15172	mov	w0, 5
15173	tst	w21, w0
15174	beq	.L2437
15175	add	x19, x19, :lo12:.LANCHOR55
15176	mov	w0, 12
15177	add	x20, x19, x20, lsl 6
15178	mov	w4, 12
15179	mov	w2, w21
15180	ldrb	w1, [x20, 1]
15181	ldr	w3, [x20, 40]
15182	strb	w0, [x20, 58]
15183	adrp	x0, .LC135
15184	add	x0, x0, :lo12:.LC135
15185	bl	printf
15186.L2507:
15187	mov	w0, -1
15188	str	w0, [x20, 52]
15189	b	.L2415
15190.L2437:
15191	add	x21, x19, :lo12:.LANCHOR55
15192	mov	w0, 13
15193	add	x21, x21, x20, lsl 6
15194	strb	w0, [x21, 58]
15195	adrp	x0, .LANCHOR69
15196	ldr	x0, [x0, #:lo12:.LANCHOR69]
15197	ldr	w1, [x0, 156]
15198	mov	w0, 20041
15199	str	wzr, [x21, 52]
15200	movk	w0, 0x444b, lsl 16
15201	cmp	w1, w0
15202	bne	.L2449
15203	ldrh	w0, [x21, 50]
15204	cbnz	w0, .L2449
15205	adrp	x0, .LANCHOR31
15206	mov	w5, 1
15207	adrp	x22, .LANCHOR173
15208	ldr	w1, [x21, 40]
15209	ldrb	w2, [x0, #:lo12:.LANCHOR31]
15210	mov	w0, 24
15211	ldr	x3, [x22, #:lo12:.LANCHOR173]
15212	sub	w0, w0, w2
15213	lsl	w5, w5, w2
15214	adrp	x2, .LANCHOR68
15215	sub	w5, w5, #1
15216	ldrb	w4, [x2, #:lo12:.LANCHOR68]
15217	adrp	x2, .LANCHOR174
15218	lsl	w6, w5, w0
15219	ldr	x2, [x2, #:lo12:.LANCHOR174]
15220	lsr	w0, w1, w0
15221	bic	w1, w1, w6
15222	and	w0, w0, w5
15223	bl	flash_read_page_en
15224	cmn	w0, #1
15225	beq	.L2438
15226	ldr	x1, [x22, #:lo12:.LANCHOR173]
15227	ldr	x2, [x21, 24]
15228	ldr	w1, [x1]
15229	ldr	w2, [x2]
15230	cmp	w2, w1
15231	beq	.L2449
15232.L2438:
15233	add	x19, x19, :lo12:.LANCHOR55
15234	adrp	x1, .LANCHOR51
15235	add	x20, x19, x20, lsl 6
15236	mov	w3, w0
15237	ldrb	w4, [x1, #:lo12:.LANCHOR51]
15238	adrp	x0, .LC136
15239	add	x0, x0, :lo12:.LC136
15240	ldrb	w1, [x20, 1]
15241	ldr	w2, [x20, 40]
15242	bl	printf
15243	mov	w0, -1
15244	str	w0, [x20, 52]
15245	b	.L2449
15246.L2424:
15247	cmp	w2, 11
15248	mov	w1, 3
15249	mov	w5, 10
15250	csel	w5, w5, w1, eq
15251	adrp	x1, .LANCHOR31
15252	mov	w4, 24
15253	mov	w2, 1
15254	add	x22, x19, :lo12:.LANCHOR55
15255	ldrb	w3, [x1, #:lo12:.LANCHOR31]
15256	ubfiz	x0, x0, 6, 8
15257	add	x0, x22, x0
15258	mov	x24, x1
15259	sub	w4, w4, w3
15260	lsl	w2, w2, w3
15261	sub	w2, w2, #1
15262	lsr	w3, w21, w4
15263	and	w3, w3, w2
15264	and	w3, w3, 65535
15265.L2440:
15266	ldrb	w1, [x0]
15267	cmp	w1, 255
15268	bne	.L2447
15269	mov	w21, -1
15270	b	.L2415
15271.L2447:
15272	sxtw	x23, w1
15273	ubfiz	x0, x1, 6, 8
15274	add	x1, x22, x23, lsl 6
15275	add	x0, x22, x0
15276	ldrb	w6, [x1, 58]
15277	cmp	w6, w5
15278	bne	.L2440
15279	ldr	w1, [x1, 40]
15280	lsr	w1, w1, w4
15281	and	w1, w1, w2
15282	cmp	w3, w1
15283	bne	.L2440
15284	mov	w0, w21
15285	mov	w1, 64
15286	bl	flash_wait_device_ready
15287	mov	w21, w0
15288	tbnz	x21, 6, .L2442
15289.L2506:
15290	mov	w21, 0
15291	b	.L2443
15292.L2442:
15293	tst	x21, 15
15294	beq	.L2444
15295	add	x22, x22, x20, lsl 6
15296	mov	w2, w0
15297	mov	w4, 12
15298	adrp	x0, .LC137
15299	add	x0, x0, :lo12:.LC137
15300	ldrb	w1, [x22, 1]
15301	ldr	w3, [x22, 40]
15302	bl	printf
15303	mov	w0, 12
15304	strb	w0, [x22, 58]
15305	mov	w0, -1
15306	str	w0, [x22, 52]
15307.L2443:
15308	add	x1, x19, :lo12:.LANCHOR55
15309	add	x20, x1, x20, lsl 6
15310	add	x1, x1, x23, lsl 6
15311	ldrb	w0, [x20, 58]
15312	strb	w0, [x1, 58]
15313	ldr	w0, [x20, 52]
15314	str	w0, [x1, 52]
15315.L2415:
15316	mov	w0, w21
15317	ldr	x27, [sp, 80]
15318	ldp	x19, x20, [sp, 16]
15319	ldp	x21, x22, [sp, 32]
15320	ldp	x23, x24, [sp, 48]
15321	ldp	x25, x26, [sp, 64]
15322	ldp	x29, x30, [sp], 96
15323	ret
15324.L2444:
15325	add	x21, x22, x20, lsl 6
15326	mov	w0, 13
15327	strb	w0, [x21, 58]
15328	adrp	x0, .LANCHOR69
15329	ldr	x0, [x0, #:lo12:.LANCHOR69]
15330	ldr	w1, [x0, 156]
15331	mov	w0, 20041
15332	str	wzr, [x21, 52]
15333	movk	w0, 0x444b, lsl 16
15334	cmp	w1, w0
15335	bne	.L2506
15336	ldrh	w0, [x21, 50]
15337	cbnz	w0, .L2506
15338	ldrb	w2, [x24, #:lo12:.LANCHOR31]
15339	mov	w5, 1
15340	mov	w0, 24
15341	adrp	x22, .LANCHOR173
15342	sub	w0, w0, w2
15343	ldr	w1, [x21, 40]
15344	lsl	w5, w5, w2
15345	adrp	x2, .LANCHOR68
15346	sub	w5, w5, #1
15347	ldr	x3, [x22, #:lo12:.LANCHOR173]
15348	ldrb	w4, [x2, #:lo12:.LANCHOR68]
15349	adrp	x2, .LANCHOR174
15350	lsl	w6, w5, w0
15351	ldr	x2, [x2, #:lo12:.LANCHOR174]
15352	lsr	w0, w1, w0
15353	bic	w1, w1, w6
15354	and	w0, w0, w5
15355	bl	flash_read_page_en
15356	cmn	w0, #1
15357	beq	.L2446
15358	ldr	x1, [x22, #:lo12:.LANCHOR173]
15359	ldr	x2, [x21, 24]
15360	ldr	w1, [x1]
15361	ldr	w2, [x2]
15362	cmp	w2, w1
15363	beq	.L2506
15364.L2446:
15365	add	x21, x19, :lo12:.LANCHOR55
15366	adrp	x1, .LANCHOR51
15367	add	x21, x21, x20, lsl 6
15368	mov	w3, w0
15369	ldrb	w4, [x1, #:lo12:.LANCHOR51]
15370	adrp	x0, .LC138
15371	add	x0, x0, :lo12:.LC138
15372	ldrb	w1, [x21, 1]
15373	ldr	w2, [x21, 40]
15374	bl	printf
15375	mov	w0, -1
15376	str	w0, [x21, 52]
15377	b	.L2506
15378.L2422:
15379	mov	w0, w21
15380	mov	w1, 32
15381	bl	flash_wait_device_ready
15382	mov	w21, w0
15383	tbz	x21, 5, .L2449
15384	add	x19, x19, :lo12:.LANCHOR55
15385	tst	x21, 15
15386	add	x20, x19, x20, lsl 6
15387	beq	.L2448
15388	mov	w0, 12
15389	strb	w0, [x20, 58]
15390	b	.L2507
15391.L2448:
15392	mov	w0, 13
15393	str	wzr, [x20, 52]
15394	strb	w0, [x20, 58]
15395	b	.L2449
15396.L2423:
15397	mov	w1, 64
15398	mov	w0, w21
15399	bl	flash_wait_device_ready
15400	tbz	x0, 6, .L2449
15401	add	x19, x19, :lo12:.LANCHOR55
15402	add	x19, x19, x20, lsl 6
15403	str	w0, [x19, 52]
15404	mov	w0, 7
15405	strb	w0, [x19, 58]
15406	b	.L2449
15407	.size	queue_wait_first_req_completed, .-queue_wait_first_req_completed
15408	.section	.text.sblk_prog_page,"ax",@progbits
15409	.align	2
15410	.global	sblk_prog_page
15411	.type	sblk_prog_page, %function
15412sblk_prog_page:
15413	stp	x29, x30, [sp, -96]!
15414	add	x29, sp, 0
15415	stp	x19, x20, [sp, 16]
15416	mov	x19, x0
15417	ldrh	w0, [x0, 50]
15418	and	w20, w1, 255
15419	stp	x21, x22, [sp, 32]
15420	stp	x23, x24, [sp, 48]
15421	stp	x25, x26, [sp, 64]
15422	stp	x27, x28, [sp, 80]
15423	cbz	w0, .L2509
15424	adrp	x0, .LANCHOR19
15425	ldr	w0, [x0, #:lo12:.LANCHOR19]
15426	tbz	x0, 8, .L2509
15427	ldr	w1, [x19, 40]
15428	adrp	x0, .LC139
15429	mov	w2, w20
15430	add	x0, x0, :lo12:.LC139
15431	bl	printf
15432.L2509:
15433	adrp	x23, .LANCHOR44
15434	adrp	x25, .LANCHOR31
15435	add	x23, x23, :lo12:.LANCHOR44
15436	add	x26, x25, :lo12:.LANCHOR31
15437	mov	w21, 0
15438.L2510:
15439	cbnz	w20, .L2521
15440.L2537:
15441	mov	w0, 0
15442	ldp	x19, x20, [sp, 16]
15443	ldp	x21, x22, [sp, 32]
15444	ldp	x23, x24, [sp, 48]
15445	ldp	x25, x26, [sp, 64]
15446	ldp	x27, x28, [sp, 80]
15447	ldp	x29, x30, [sp], 96
15448	ret
15449.L2521:
15450	ldrb	w24, [x19]
15451	ldr	w22, [x19, 40]
15452.L2511:
15453	mov	w1, 1
15454	mov	w0, w22
15455	bl	queue_lun_state
15456	cbnz	w0, .L2512
15457	cmp	w20, 1
15458	beq	.L2513
15459	ldrb	w0, [x23]
15460	cbz	w0, .L2513
15461	adrp	x0, .LANCHOR36
15462	ldrb	w0, [x0, #:lo12:.LANCHOR36]
15463	cbz	w0, .L2514
15464.L2513:
15465	mov	x0, x19
15466	bl	queue_prog_cmd
15467.L2515:
15468	subs	w20, w20, #1
15469	beq	.L2537
15470	ubfiz	x24, x24, 6, 8
15471	adrp	x19, .LANCHOR55
15472	add	x19, x19, :lo12:.LANCHOR55
15473	add	x19, x19, x24
15474	b	.L2510
15475.L2512:
15476	bl	queue_wait_first_req_completed
15477	bl	queue_remove_completed_req
15478	b	.L2511
15479.L2514:
15480	ldrb	w1, [x25, #:lo12:.LANCHOR31]
15481	mov	w27, 24
15482	mov	w0, 1
15483	sub	w27, w27, w1
15484	lsl	w0, w0, w1
15485	sub	w0, w0, #1
15486	lsr	w27, w22, w27
15487	and	w27, w27, w0
15488	ldrb	w0, [x19]
15489	and	w27, w27, 65535
15490	cmp	w0, 255
15491	bne	.L2516
15492	adrp	x1, .LANCHOR182
15493	adrp	x0, .LC0
15494	mov	w2, 697
15495	add	x1, x1, :lo12:.LANCHOR182
15496	add	x0, x0, :lo12:.LC0
15497	bl	printf
15498.L2516:
15499	ldrb	w0, [x19]
15500	adrp	x1, .LANCHOR55
15501	add	x1, x1, :lo12:.LANCHOR55
15502	mov	w3, 24
15503	mov	w28, 1
15504	add	x0, x1, x0, lsl 6
15505	ldr	w4, [x0, 40]
15506	ldrb	w0, [x26]
15507	sub	w3, w3, w0
15508	lsl	w0, w28, w0
15509	sub	w0, w0, #1
15510	lsr	w1, w4, w3
15511	and	w0, w0, w1
15512	cmp	w27, w0, uxth
15513	bne	.L2517
15514	adrp	x0, .LANCHOR80
15515	ldrh	w2, [x0, #:lo12:.LANCHOR80]
15516	adrp	x0, .LANCHOR81
15517	ldrb	w1, [x0, #:lo12:.LANCHOR81]
15518	sub	w0, w3, w2
15519	lsr	w5, w22, w2
15520	sub	w3, w1, #1
15521	lsl	w0, w28, w0
15522	sub	w0, w0, #1
15523	lsl	w1, w28, w2
15524	and	w0, w0, w3
15525	sub	w1, w1, #1
15526	and	w0, w0, 65535
15527	and	w1, w1, 65535
15528	and	w5, w0, w5
15529	lsr	w2, w4, w2
15530	and	w0, w0, w2
15531	and	w22, w1, w22
15532	cmp	w5, w0
15533	and	w1, w1, w4
15534	ccmp	w22, w1, 0, ne
15535	bne	.L2517
15536	cmp	w21, w3
15537	beq	.L2517
15538	ldr	w1, [x19, 40]
15539	mov	w0, 17
15540	ldr	x2, [x19, 8]
15541	add	w21, w21, w28
15542	ldr	x3, [x19, 24]
15543	bl	flash_start_page_prog
15544	strb	w28, [x19, 59]
15545	mov	w0, 9
15546	strb	w0, [x19, 58]
15547	mov	w0, -1
15548	strb	w0, [x19]
15549	mov	x1, x19
15550	adrp	x0, .LANCHOR59
15551	add	x0, x0, :lo12:.LANCHOR59
15552	bl	buf_add_tail
15553	b	.L2515
15554.L2517:
15555	mov	x0, x19
15556	mov	w21, 0
15557	bl	queue_prog_cmd
15558	b	.L2515
15559	.size	sblk_prog_page, .-sblk_prog_page
15560	.section	.text.sblk_wait_write_queue_completed,"ax",@progbits
15561	.align	2
15562	.global	sblk_wait_write_queue_completed
15563	.type	sblk_wait_write_queue_completed, %function
15564sblk_wait_write_queue_completed:
15565	stp	x29, x30, [sp, -32]!
15566	add	x29, sp, 0
15567	str	x19, [sp, 16]
15568	adrp	x19, .LANCHOR59
15569	add	x19, x19, :lo12:.LANCHOR59
15570.L2540:
15571	ldrb	w0, [x19]
15572	cmp	w0, 255
15573	bne	.L2541
15574	ldr	x19, [sp, 16]
15575	ldp	x29, x30, [sp], 32
15576	ret
15577.L2541:
15578	bl	queue_wait_first_req_completed
15579	bl	queue_remove_completed_req
15580	b	.L2540
15581	.size	sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed
15582	.section	.text.ftl_flush,"ax",@progbits
15583	.align	2
15584	.global	ftl_flush
15585	.type	ftl_flush, %function
15586ftl_flush:
15587	stp	x29, x30, [sp, -32]!
15588	adrp	x0, .LANCHOR183
15589	add	x29, sp, 0
15590	ldrb	w1, [x0, #:lo12:.LANCHOR183]
15591	stp	x19, x20, [sp, 16]
15592	mov	x19, x0
15593	adrp	x20, .LANCHOR184
15594	cbz	w1, .L2544
15595	ldrb	w2, [x20, #:lo12:.LANCHOR184]
15596	adrp	x0, .LANCHOR55
15597	add	x0, x0, :lo12:.LANCHOR55
15598	add	x0, x0, x2, lsl 6
15599	bl	sblk_prog_page
15600.L2544:
15601	mov	w0, -1
15602	strb	wzr, [x19, #:lo12:.LANCHOR183]
15603	strb	w0, [x20, #:lo12:.LANCHOR184]
15604	bl	sblk_wait_write_queue_completed
15605	bl	ftl_write_completed
15606	ldp	x19, x20, [sp, 16]
15607	mov	w0, -1
15608	ldp	x29, x30, [sp], 32
15609	b	ftl_vpn_decrement
15610	.size	ftl_flush, .-ftl_flush
15611	.section	.text.ftl_read_page,"ax",@progbits
15612	.align	2
15613	.global	ftl_read_page
15614	.type	ftl_read_page, %function
15615ftl_read_page:
15616	stp	x29, x30, [sp, -64]!
15617	add	x29, sp, 0
15618	stp	x19, x20, [sp, 16]
15619	and	w19, w0, 255
15620	stp	x21, x22, [sp, 32]
15621	mov	w20, w1
15622	mov	x21, x2
15623	mov	x22, x3
15624	str	x23, [sp, 48]
15625	mov	w23, w4
15626	bl	sblk_wait_write_queue_completed
15627	mov	w4, w23
15628	mov	x3, x22
15629	mov	x2, x21
15630	mov	w1, w20
15631	mov	w0, w19
15632	ldr	x23, [sp, 48]
15633	ldp	x19, x20, [sp, 16]
15634	ldp	x21, x22, [sp, 32]
15635	ldp	x29, x30, [sp], 64
15636	b	flash_read_page_en
15637	.size	ftl_read_page, .-ftl_read_page
15638	.section	.text.ftl_read_ppa_page,"ax",@progbits
15639	.align	2
15640	.global	ftl_read_ppa_page
15641	.type	ftl_read_ppa_page, %function
15642ftl_read_ppa_page:
15643	stp	x29, x30, [sp, -64]!
15644	mov	w5, 1
15645	add	x29, sp, 0
15646	stp	x19, x20, [sp, 16]
15647	mov	w20, w0
15648	adrp	x0, .LANCHOR31
15649	mov	w19, 24
15650	stp	x21, x22, [sp, 32]
15651	mov	x21, x1
15652	ldrb	w0, [x0, #:lo12:.LANCHOR31]
15653	mov	x22, x2
15654	str	x23, [sp, 48]
15655	mov	w23, w3
15656	sub	w19, w19, w0
15657	lsl	w5, w5, w0
15658	sub	w5, w5, #1
15659	lsr	w19, w20, w19
15660	and	w19, w19, w5
15661	and	w19, w19, 255
15662	bl	sblk_wait_write_queue_completed
15663	mov	w4, w23
15664	mov	x3, x22
15665	mov	x2, x21
15666	mov	w1, w20
15667	mov	w0, w19
15668	ldr	x23, [sp, 48]
15669	ldp	x19, x20, [sp, 16]
15670	ldp	x21, x22, [sp, 32]
15671	ldp	x29, x30, [sp], 64
15672	b	flash_read_page_en
15673	.size	ftl_read_ppa_page, .-ftl_read_ppa_page
15674	.section	.text.sblk_read_page,"ax",@progbits
15675	.align	2
15676	.global	sblk_read_page
15677	.type	sblk_read_page, %function
15678sblk_read_page:
15679	stp	x29, x30, [sp, -128]!
15680	add	x29, sp, 0
15681	stp	x21, x22, [sp, 32]
15682	and	w22, w1, 255
15683	stp	x27, x28, [sp, 80]
15684	mov	w21, w22
15685	stp	x19, x20, [sp, 16]
15686	adrp	x27, .LANCHOR31
15687	stp	x23, x24, [sp, 48]
15688	mov	x19, x0
15689	stp	x25, x26, [sp, 64]
15690	mov	x23, x0
15691	adrp	x25, .LANCHOR185
15692	add	x28, x27, :lo12:.LANCHOR31
15693	add	x25, x25, :lo12:.LANCHOR185
15694.L2554:
15695	cbnz	w21, .L2564
15696.L2577:
15697	adrp	x19, .LANCHOR55
15698	add	x19, x19, :lo12:.LANCHOR55
15699.L2565:
15700	cbnz	w22, .L2567
15701	ldp	x19, x20, [sp, 16]
15702	mov	w0, 0
15703	ldp	x21, x22, [sp, 32]
15704	ldp	x23, x24, [sp, 48]
15705	ldp	x25, x26, [sp, 64]
15706	ldp	x27, x28, [sp, 80]
15707	ldp	x29, x30, [sp], 128
15708	ret
15709.L2564:
15710	ldrb	w24, [x19]
15711	ldr	w26, [x19, 40]
15712.L2555:
15713	mov	w1, 0
15714	mov	w0, w26
15715	bl	queue_lun_state
15716	cbnz	w0, .L2556
15717	cmp	w21, 1
15718	beq	.L2561
15719	ldrb	w0, [x25]
15720	cbnz	w0, .L2558
15721.L2561:
15722	mov	x0, x19
15723	bl	queue_read_cmd
15724	b	.L2559
15725.L2556:
15726	bl	queue_wait_first_req_completed
15727	bl	queue_remove_completed_req
15728	b	.L2555
15729.L2558:
15730	ldrb	w1, [x27, #:lo12:.LANCHOR31]
15731	mov	w20, 24
15732	mov	w0, 1
15733	sub	w20, w20, w1
15734	lsl	w0, w0, w1
15735	sub	w0, w0, #1
15736	lsr	w20, w26, w20
15737	and	w20, w20, w0
15738	ldrb	w0, [x19]
15739	and	w20, w20, 65535
15740	cmp	w0, 255
15741	bne	.L2560
15742	adrp	x1, .LANCHOR186
15743	adrp	x0, .LC0
15744	mov	w2, 782
15745	add	x1, x1, :lo12:.LANCHOR186
15746	add	x0, x0, :lo12:.LC0
15747	bl	printf
15748.L2560:
15749	ldrb	w4, [x19]
15750	adrp	x2, .LANCHOR55
15751	add	x2, x2, :lo12:.LANCHOR55
15752	ldrb	w7, [x28]
15753	mov	w0, 24
15754	mov	w3, 1
15755	sbfiz	x5, x4, 6, 32
15756	sub	w0, w0, w7
15757	add	x6, x2, x5
15758	lsl	w3, w3, w7
15759	sub	w3, w3, #1
15760	ldr	w1, [x6, 40]
15761	lsr	w0, w1, w0
15762	and	w0, w0, w3
15763	cmp	w20, w0, uxth
15764	bne	.L2561
15765	adrp	x0, .LANCHOR117
15766	ldrh	w0, [x0, #:lo12:.LANCHOR117]
15767	add	w26, w0, w26
15768	cmp	w1, w26
15769	bne	.L2561
15770	ldr	w0, [x19, 40]
15771	mov	w26, -1
15772	ldrb	w24, [x2, x5]
15773	adrp	x20, .LANCHOR59
15774	stp	x6, x5, [x29, 96]
15775	add	x20, x20, :lo12:.LANCHOR59
15776	str	x2, [x29, 112]
15777	sub	w21, w21, #1
15778	str	w4, [x29, 120]
15779	bl	flash_start_plane_read
15780	mov	w3, 2
15781	strb	wzr, [x19, 59]
15782	strb	w3, [x19, 58]
15783	mov	x1, x19
15784	strb	w26, [x19]
15785	mov	x0, x20
15786	str	w3, [x29, 124]
15787	bl	buf_add_tail
15788	ldp	x6, x5, [x29, 96]
15789	strb	wzr, [x6, 59]
15790	ldr	x2, [x29, 112]
15791	mov	x0, x20
15792	ldp	w4, w3, [x29, 120]
15793	strb	w3, [x6, 58]
15794	strb	w26, [x2, x5]
15795	ubfiz	x1, x4, 6, 8
15796	add	x1, x2, x1
15797	bl	buf_add_tail
15798.L2559:
15799	subs	w21, w21, #1
15800	beq	.L2577
15801	ubfiz	x24, x24, 6, 8
15802	adrp	x19, .LANCHOR55
15803	add	x19, x19, :lo12:.LANCHOR55
15804	add	x19, x19, x24
15805	b	.L2554
15806.L2567:
15807	ldrb	w0, [x23, 58]
15808	cmp	w0, 13
15809	bne	.L2566
15810	ldrb	w0, [x23]
15811	sub	w22, w22, #1
15812	cmp	w0, 255
15813	beq	.L2566
15814	ubfiz	x23, x0, 6, 8
15815	add	x23, x19, x23
15816.L2566:
15817	bl	queue_wait_first_req_completed
15818	bl	queue_remove_completed_req
15819	b	.L2565
15820	.size	sblk_read_page, .-sblk_read_page
15821	.section	.text.gc_check_data_one_wl,"ax",@progbits
15822	.align	2
15823	.global	gc_check_data_one_wl
15824	.type	gc_check_data_one_wl, %function
15825gc_check_data_one_wl:
15826	sub	sp, sp, #112
15827	stp	x29, x30, [sp, 16]
15828	add	x29, sp, 16
15829	stp	x19, x20, [sp, 32]
15830	adrp	x19, .LANCHOR76
15831	stp	x21, x22, [sp, 48]
15832	add	x22, x19, :lo12:.LANCHOR76
15833	adrp	x20, .LANCHOR12
15834	stp	x23, x24, [sp, 64]
15835	stp	x25, x26, [sp, 80]
15836	ldr	x0, [x22, 8]
15837	stp	x27, x28, [sp, 96]
15838	ldr	x21, [x20, #:lo12:.LANCHOR12]
15839	cbnz	x0, .L2580
15840	mov	w0, 1
15841	bl	buf_alloc
15842	str	x0, [x22, 8]
15843.L2580:
15844	add	x0, x19, :lo12:.LANCHOR76
15845	ldr	x22, [x0, 8]
15846	cbnz	x22, .L2581
15847	adrp	x1, .LANCHOR187
15848	adrp	x0, .LC0
15849	mov	w2, 729
15850	add	x1, x1, :lo12:.LANCHOR187
15851	add	x0, x0, :lo12:.LC0
15852	bl	printf
15853.L2581:
15854	adrp	x27, .LANCHOR117
15855	adrp	x28, .LANCHOR84
15856	add	x26, x21, 96
15857	add	x27, x27, :lo12:.LANCHOR117
15858	add	x28, x28, :lo12:.LANCHOR84
15859	mov	w25, 0
15860.L2582:
15861	ldrb	w0, [x21, 89]
15862	cmp	w25, w0
15863	bge	.L2593
15864	mov	w24, 1
15865	add	x23, x19, :lo12:.LANCHOR76
15866	b	.L2594
15867.L2592:
15868	ldrh	w0, [x26]
15869	ldrh	w2, [x27]
15870	ldrb	w1, [x28]
15871	cmp	w1, 2
15872	mul	w2, w0, w2
15873	beq	.L2583
15874	adrp	x0, .LANCHOR35
15875	ldrb	w0, [x0, #:lo12:.LANCHOR35]
15876	cbz	w0, .L2584
15877.L2583:
15878	ldrh	w0, [x23, 16]
15879	sub	w3, w0, #1
15880	add	w0, w24, w2
15881	add	w0, w3, w0
15882	orr	w1, w0, w1, lsl 24
15883	str	w1, [x22, 40]
15884.L2585:
15885	mov	w1, 1
15886	mov	x0, x22
15887	bl	sblk_read_page
15888	ldr	w2, [x22, 52]
15889	adrp	x1, .LANCHOR160
15890	cmn	w2, #1
15891	beq	.L2588
15892	ldrh	w0, [x23, 22]
15893	ldr	x4, [x1, #:lo12:.LANCHOR160]
15894	ldr	x3, [x22, 24]
15895	lsl	x0, x0, 2
15896	ldr	w5, [x4, x0]
15897	ldr	w4, [x3, 4]
15898	cmp	w5, w4
15899	bne	.L2588
15900	adrp	x4, .LANCHOR161
15901	ldr	x4, [x4, #:lo12:.LANCHOR161]
15902	ldr	w4, [x4, x0]
15903	ldr	w0, [x3, 8]
15904	cmp	w4, w0
15905	beq	.L2589
15906.L2588:
15907	ldrh	w0, [x23, 22]
15908	ldr	x1, [x1, #:lo12:.LANCHOR160]
15909	lsl	x0, x0, 2
15910	ldr	w3, [x1, x0]
15911	cmn	w3, #1
15912	beq	.L2589
15913	adrp	x1, .LANCHOR19
15914	ldr	w1, [x1, #:lo12:.LANCHOR19]
15915	tbz	x1, 10, .L2590
15916	ldr	x1, [x22, 24]
15917	adrp	x4, .LANCHOR161
15918	ldr	x4, [x4, #:lo12:.LANCHOR161]
15919	ldr	w5, [x1, 12]
15920	str	w5, [sp]
15921	ldr	w4, [x4, x0]
15922	adrp	x0, .LC140
15923	ldp	w5, w6, [x1]
15924	add	x0, x0, :lo12:.LC140
15925	ldr	w7, [x1, 8]
15926	ldr	w1, [x22, 40]
15927	bl	printf
15928.L2590:
15929	adrp	x0, .LANCHOR130
15930	ldrh	w1, [x21, 80]
15931	ldrb	w2, [x0, #:lo12:.LANCHOR130]
15932	adrp	x0, .LANCHOR11
15933	ldr	x0, [x0, #:lo12:.LANCHOR11]
15934	strh	wzr, [x0, x1, lsl 1]
15935	ldr	x1, [x20, #:lo12:.LANCHOR12]
15936	ldr	w0, [x1, 556]
15937	add	w0, w0, 1
15938	str	w0, [x1, 556]
15939	adrp	x0, .LANCHOR69
15940	ldr	x0, [x0, #:lo12:.LANCHOR69]
15941	ldr	w1, [x0, 156]
15942	mov	w0, 20041
15943	movk	w0, 0x444b, lsl 16
15944	cmp	w1, w0
15945	bne	.L2597
15946	cbnz	w2, .L2597
15947	adrp	x0, .LANCHOR86
15948	ldrb	w0, [x0, #:lo12:.LANCHOR86]
15949	cbnz	w0, .L2597
15950	ldr	w0, [x22, 40]
15951	bl	ftl_mask_bad_block
15952.L2597:
15953	mov	w0, -1
15954.L2579:
15955	ldp	x19, x20, [sp, 32]
15956	ldp	x21, x22, [sp, 48]
15957	ldp	x23, x24, [sp, 64]
15958	ldp	x25, x26, [sp, 80]
15959	ldp	x27, x28, [sp, 96]
15960	ldp	x29, x30, [sp, 16]
15961	add	sp, sp, 112
15962	ret
15963.L2584:
15964	cmp	w1, 3
15965	ldrh	w0, [x23, 16]
15966	bne	.L2586
15967	adrp	x1, .LANCHOR36
15968	ldrb	w1, [x1, #:lo12:.LANCHOR36]
15969	cbz	w1, .L2587
15970	add	w0, w0, w0, lsl 1
15971	sub	w1, w0, #1
15972	add	w0, w24, w2
15973	add	w0, w1, w0
15974	orr	w0, w0, 50331648
15975.L2612:
15976	str	w0, [x22, 40]
15977	b	.L2585
15978.L2587:
15979	add	w0, w0, w2
15980	orr	w0, w0, w24, lsl 24
15981	b	.L2612
15982.L2586:
15983	add	w0, w0, w2
15984	b	.L2612
15985.L2589:
15986	ldrh	w0, [x23, 22]
15987	add	w24, w24, 1
15988	add	w0, w0, 1
15989	strh	w0, [x23, 22]
15990.L2594:
15991	ldrh	w0, [x23, 20]
15992	cmp	w24, w0
15993	ble	.L2592
15994	add	w25, w25, 1
15995	add	x26, x26, 2
15996	b	.L2582
15997.L2593:
15998	add	x19, x19, :lo12:.LANCHOR76
15999	ldrh	w0, [x19, 16]
16000	add	w1, w0, 1
16001	strh	w1, [x19, 16]
16002	adrp	x1, .LANCHOR86
16003	ldrb	w1, [x1, #:lo12:.LANCHOR86]
16004	cbz	w1, .L2598
16005	add	w0, w0, 2
16006	strh	w0, [x19, 16]
16007.L2598:
16008.L2591:
16009	mov	w0, 0
16010	b	.L2579
16011	.size	gc_check_data_one_wl, .-gc_check_data_one_wl
16012	.section	.text.sblk_tlc_prog_one_page,"ax",@progbits
16013	.align	2
16014	.global	sblk_tlc_prog_one_page
16015	.type	sblk_tlc_prog_one_page, %function
16016sblk_tlc_prog_one_page:
16017	stp	x29, x30, [sp, -32]!
16018	add	x29, sp, 0
16019	stp	x19, x20, [sp, 16]
16020	mov	x19, x0
16021	ldr	x0, [x0]
16022	ldr	w20, [x0, 40]
16023.L2614:
16024	mov	w1, 1
16025	mov	w0, w20
16026	bl	queue_lun_state
16027	cbnz	w0, .L2615
16028	mov	x0, x19
16029	mov	w1, 1
16030	bl	queue_tlc_prog_cmd
16031	mov	w0, 0
16032	ldp	x19, x20, [sp, 16]
16033	ldp	x29, x30, [sp], 32
16034	ret
16035.L2615:
16036	bl	queue_wait_first_req_completed
16037	bl	queue_remove_completed_req
16038	b	.L2614
16039	.size	sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page
16040	.section	.text.sblk_xlc_prog_pages,"ax",@progbits
16041	.align	2
16042	.global	sblk_xlc_prog_pages
16043	.type	sblk_xlc_prog_pages, %function
16044sblk_xlc_prog_pages:
16045	stp	x29, x30, [sp, -80]!
16046	add	x29, sp, 0
16047	stp	x19, x20, [sp, 16]
16048	mov	x20, x0
16049	ldr	x0, [x0]
16050	stp	x21, x22, [sp, 32]
16051	mov	x22, x1
16052	stp	x23, x24, [sp, 48]
16053	mov	w24, w2
16054	ldr	w19, [x0, 40]
16055	str	x25, [sp, 64]
16056.L2618:
16057	mov	w1, 1
16058	mov	w0, w19
16059	bl	queue_lun_state
16060	cbnz	w0, .L2619
16061	cmp	w24, 2
16062	bne	.L2620
16063	adrp	x0, .LANCHOR44
16064	ldr	x3, [x22]
16065	ldrb	w0, [x0, #:lo12:.LANCHOR44]
16066	cbz	w0, .L2621
16067	adrp	x0, .LANCHOR31
16068	ldr	x7, [x20]
16069	mov	w25, 1
16070	mov	w2, 24
16071	ldrb	w0, [x0, #:lo12:.LANCHOR31]
16072	ldr	w3, [x3, 40]
16073	sub	w2, w2, w0
16074	ldr	w1, [x7, 40]
16075	lsl	w19, w25, w0
16076	adrp	x0, .LANCHOR36
16077	lsl	w21, w25, w2
16078	sub	w19, w19, #1
16079	ldrb	w0, [x0, #:lo12:.LANCHOR36]
16080	sub	w21, w21, #1
16081	and	w23, w1, w21
16082	lsr	w1, w1, w2
16083	and	w19, w19, w1
16084	and	w21, w21, w3
16085	and	w19, w19, 255
16086	cbz	w0, .L2622
16087	mov	w0, w19
16088	bl	zftl_flash_exit_slc_mode
16089	ldr	x0, [x20]
16090	mov	w4, w23
16091	mov	w3, w19
16092	mov	w1, w25
16093	mov	w2, 17
16094	ldr	x5, [x0, 8]
16095	ldr	x6, [x0, 24]
16096	mov	w0, 0
16097	bl	flash_start_one_pass_page_prog
16098	bl	nandc_wait_flash_ready
16099	ldr	x0, [x22]
16100	mov	w4, w21
16101	mov	w3, w19
16102	mov	w1, w25
16103	mov	w2, 26
16104	ldr	x5, [x0, 8]
16105	ldr	x6, [x0, 24]
16106	mov	w0, 0
16107	bl	flash_start_one_pass_page_prog
16108	bl	nandc_wait_flash_ready
16109	ldr	x0, [x20, 8]
16110	add	w4, w23, w25
16111	mov	w3, w19
16112	mov	w1, w24
16113	mov	w2, 17
16114	ldr	x5, [x0, 8]
16115	ldr	x6, [x0, 24]
16116	mov	w0, 0
16117	bl	flash_start_one_pass_page_prog
16118	bl	nandc_wait_flash_ready
16119	ldr	x0, [x22, 8]
16120	add	w4, w21, w25
16121	mov	w3, w19
16122	mov	w1, w24
16123	mov	w2, 26
16124	ldr	x5, [x0, 8]
16125	ldr	x6, [x0, 24]
16126	mov	w0, 0
16127	bl	flash_start_one_pass_page_prog
16128	bl	nandc_wait_flash_ready
16129	ldr	x0, [x20, 16]
16130	add	w4, w23, 2
16131	mov	w3, w19
16132	mov	w2, 17
16133	mov	w1, 3
16134	ldr	x5, [x0, 8]
16135	ldr	x6, [x0, 24]
16136	mov	w0, 0
16137	bl	flash_start_one_pass_page_prog
16138	bl	nandc_wait_flash_ready
16139	ldr	x0, [x22, 16]
16140	add	w4, w21, 2
16141	mov	w3, w19
16142	mov	w2, 16
16143	mov	w1, 3
16144	ldr	x5, [x0, 8]
16145	ldr	x6, [x0, 24]
16146	mov	w0, 0
16147	bl	flash_start_one_pass_page_prog
16148.L2623:
16149	ldr	x1, [x20]
16150	mov	w0, 5
16151	strb	w0, [x1, 58]
16152	mov	w0, 1
16153	strb	w0, [x1, 59]
16154	mov	w0, -1
16155	strb	w0, [x1]
16156	adrp	x0, .LANCHOR59
16157	add	x0, x0, :lo12:.LANCHOR59
16158	bl	buf_add_tail
16159.L2624:
16160	mov	w0, 0
16161	ldr	x25, [sp, 64]
16162	ldp	x19, x20, [sp, 16]
16163	ldp	x21, x22, [sp, 32]
16164	ldp	x23, x24, [sp, 48]
16165	ldp	x29, x30, [sp], 80
16166	ret
16167.L2619:
16168	bl	queue_wait_first_req_completed
16169	bl	queue_remove_completed_req
16170	b	.L2618
16171.L2622:
16172	ldr	x5, [x7, 8]
16173	mov	w4, w23
16174	ldr	x6, [x7, 24]
16175	mov	w3, w19
16176	ldrb	w0, [x7, 60]
16177	mov	w1, w25
16178	mov	w2, 17
16179	bl	flash_start_tlc_page_prog
16180	bl	nandc_wait_flash_ready
16181	ldr	x7, [x20]
16182	mov	w4, w21
16183	ldr	x0, [x22]
16184	mov	w3, w19
16185	mov	w1, w25
16186	mov	w2, 26
16187	ldr	x5, [x0, 8]
16188	ldr	x6, [x0, 24]
16189	ldrb	w0, [x7, 60]
16190	bl	flash_start_tlc_page_prog
16191	bl	nandc_wait_flash_ready
16192	ldp	x7, x0, [x20]
16193	mov	w4, w23
16194	mov	w3, w19
16195	mov	w1, w24
16196	mov	w2, 17
16197	ldr	x5, [x0, 8]
16198	ldr	x6, [x0, 24]
16199	ldrb	w0, [x7, 60]
16200	bl	flash_start_tlc_page_prog
16201	bl	nandc_wait_flash_ready
16202	ldr	x7, [x20]
16203	mov	w4, w21
16204	ldr	x0, [x22, 8]
16205	mov	w3, w19
16206	mov	w1, w24
16207	mov	w2, 26
16208	ldr	x5, [x0, 8]
16209	ldr	x6, [x0, 24]
16210	ldrb	w0, [x7, 60]
16211	bl	flash_start_tlc_page_prog
16212	bl	nandc_wait_flash_ready
16213	ldr	x7, [x20]
16214	mov	w4, w23
16215	ldr	x0, [x20, 16]
16216	mov	w3, w19
16217	mov	w2, 17
16218	mov	w1, 3
16219	ldr	x5, [x0, 8]
16220	ldr	x6, [x0, 24]
16221	ldrb	w0, [x7, 60]
16222	bl	flash_start_tlc_page_prog
16223	bl	nandc_wait_flash_ready
16224	ldr	x0, [x22, 16]
16225	mov	w4, w21
16226	ldr	x7, [x20]
16227	mov	w3, w19
16228	mov	w2, 16
16229	mov	w1, 3
16230	ldr	x5, [x0, 8]
16231	ldr	x6, [x0, 24]
16232	ldrb	w0, [x7, 60]
16233	bl	flash_start_tlc_page_prog
16234	b	.L2623
16235.L2621:
16236	ldr	w19, [x3, 40]
16237.L2625:
16238	mov	w1, 1
16239	mov	w0, w19
16240	bl	queue_lun_state
16241	cbnz	w0, .L2626
16242	mov	w1, 1
16243	mov	x0, x20
16244	bl	queue_tlc_prog_cmd
16245	mov	w1, 0
16246	mov	x0, x22
16247	bl	queue_tlc_prog_cmd
16248.L2627:
16249	mov	w1, 1
16250	mov	w0, w19
16251	bl	queue_lun_state
16252	cbz	w0, .L2624
16253	bl	queue_wait_first_req_completed
16254	bl	queue_remove_completed_req
16255	b	.L2627
16256.L2626:
16257	bl	queue_wait_first_req_completed
16258	bl	queue_remove_completed_req
16259	b	.L2625
16260.L2620:
16261	mov	w1, 1
16262	mov	x0, x20
16263	bl	queue_tlc_prog_cmd
16264	b	.L2624
16265	.size	sblk_xlc_prog_pages, .-sblk_xlc_prog_pages
16266	.section	.text.sblk_3d_mlc_prog_pages,"ax",@progbits
16267	.align	2
16268	.global	sblk_3d_mlc_prog_pages
16269	.type	sblk_3d_mlc_prog_pages, %function
16270sblk_3d_mlc_prog_pages:
16271	stp	x29, x30, [sp, -80]!
16272	ubfiz	x1, x1, 4, 32
16273	add	x1, x1, 8
16274	add	x29, sp, 0
16275	stp	x21, x22, [sp, 32]
16276	add	x21, x0, x1
16277	stp	x23, x24, [sp, 48]
16278	adrp	x23, .LANCHOR31
16279	adrp	x24, .LANCHOR59
16280	str	x25, [sp, 64]
16281	add	x23, x23, :lo12:.LANCHOR31
16282	add	x24, x24, :lo12:.LANCHOR59
16283	add	x25, x0, 8
16284	stp	x19, x20, [sp, 16]
16285	mov	w22, 1
16286.L2631:
16287	cmp	x21, x25
16288	bne	.L2634
16289	mov	w0, 0
16290	ldr	x25, [sp, 64]
16291	ldp	x19, x20, [sp, 16]
16292	ldp	x21, x22, [sp, 32]
16293	ldp	x23, x24, [sp, 48]
16294	ldp	x29, x30, [sp], 80
16295	ret
16296.L2634:
16297	ldr	x0, [x25, -8]
16298	ldr	w19, [x0, 40]
16299.L2632:
16300	mov	w1, 1
16301	mov	w0, w19
16302	bl	queue_lun_state
16303	cbnz	w0, .L2633
16304	ldr	x0, [x25, -8]
16305	mov	w2, 24
16306	ldrb	w1, [x23]
16307	add	x25, x25, 16
16308	sub	w2, w2, w1
16309	ldr	w0, [x0, 40]
16310	lsl	w19, w22, w1
16311	lsl	w20, w22, w2
16312	sub	w19, w19, #1
16313	sub	w20, w20, #1
16314	and	w20, w20, w0
16315	lsr	w0, w0, w2
16316	and	w19, w19, w0
16317	and	w19, w19, 255
16318	mov	w0, w19
16319	bl	zftl_flash_exit_slc_mode
16320	ldr	x0, [x25, -24]
16321	mov	w2, w20
16322	mov	w1, w19
16323	ldr	x3, [x0, 8]
16324	ldr	x4, [x0, 24]
16325	mov	w0, 16
16326	bl	flash_start_3d_mlc_page_prog
16327	bl	nandc_wait_flash_ready
16328	ldr	x0, [x25, -16]
16329	add	w2, w20, 1
16330	mov	w1, w19
16331	ldr	x3, [x0, 8]
16332	ldr	x4, [x0, 24]
16333	mov	w0, 16
16334	bl	flash_start_3d_mlc_page_prog
16335	bl	nandc_de_cs.constprop.31
16336	ldr	x1, [x25, -24]
16337	mov	w0, 4
16338	strb	w22, [x1, 59]
16339	strb	w0, [x1, 58]
16340	mov	w0, -1
16341	strb	w0, [x1]
16342	mov	x0, x24
16343	bl	buf_add_tail
16344	b	.L2631
16345.L2633:
16346	bl	queue_wait_first_req_completed
16347	bl	queue_remove_completed_req
16348	b	.L2632
16349	.size	sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages
16350	.section	.text.flash_prog_page_en,"ax",@progbits
16351	.align	2
16352	.global	flash_prog_page_en
16353	.type	flash_prog_page_en, %function
16354flash_prog_page_en:
16355	stp	x29, x30, [sp, -128]!
16356	add	x29, sp, 0
16357	stp	x21, x22, [sp, 32]
16358	and	w21, w0, 255
16359	and	w0, w5, 255
16360	stp	x19, x20, [sp, 16]
16361	str	w0, [x29, 124]
16362	adrp	x0, .LANCHOR23
16363	stp	x23, x24, [sp, 48]
16364	mov	w20, w1
16365	stp	x27, x28, [sp, 80]
16366	mov	x23, x2
16367	ldrb	w1, [x0, #:lo12:.LANCHOR23]
16368	mov	x22, x3
16369	stp	x25, x26, [sp, 64]
16370	mov	w28, w4
16371	ubfx	x24, x20, 24, 2
16372	cmp	w1, w21
16373	mov	x19, x0
16374	bhi	.L2637
16375	adrp	x1, .LANCHOR188
16376	adrp	x0, .LC0
16377	mov	w2, 642
16378	add	x1, x1, :lo12:.LANCHOR188
16379	add	x0, x0, :lo12:.LC0
16380	bl	printf
16381.L2637:
16382	ldrb	w0, [x19, #:lo12:.LANCHOR23]
16383	cmp	w0, w21
16384	bls	.L2648
16385	adrp	x0, .LANCHOR29
16386	add	x0, x0, :lo12:.LANCHOR29
16387	ldrb	w27, [x0, w21, sxtw]
16388	cbnz	w24, .L2650
16389	adrp	x0, .LANCHOR0
16390	ldrb	w1, [x0, #:lo12:.LANCHOR0]
16391	adrp	x0, .LANCHOR1
16392	cbz	w1, .L2640
16393	ldrb	w1, [x0, #:lo12:.LANCHOR1]
16394	cbz	w1, .L2650
16395.L2640:
16396	adrp	x1, .LANCHOR2
16397	ldrb	w0, [x0, #:lo12:.LANCHOR1]
16398	ldrh	w1, [x1, #:lo12:.LANCHOR2]
16399	udiv	w19, w20, w1
16400	mul	w19, w19, w1
16401	sub	w1, w20, w19
16402	cbz	w0, .L2641
16403	add	w19, w19, w1, lsl 1
16404.L2639:
16405	adrp	x24, .LANCHOR19
16406	adrp	x25, .LC141
16407	add	x24, x24, :lo12:.LANCHOR19
16408	add	x25, x25, :lo12:.LC141
16409	adrp	x26, .LANCHOR173
16410.L2645:
16411	ldr	w0, [x24]
16412	tbz	x0, 4, .L2642
16413	mov	w3, w19
16414	mov	w2, w20
16415	mov	w1, w27
16416	mov	x0, x25
16417	bl	printf
16418.L2642:
16419	mov	w4, w28
16420	mov	x3, x22
16421	mov	x2, x23
16422	mov	w1, w19
16423	mov	w0, w27
16424	bl	flash_prog_page
16425	mov	w5, w0
16426	ldr	w0, [x29, 124]
16427	cbz	w0, .L2643
16428	adrp	x6, .LANCHOR174
16429	ldr	x3, [x26, #:lo12:.LANCHOR173]
16430	mov	w4, w28
16431	str	x6, [x29, 112]
16432	ldr	x2, [x6, #:lo12:.LANCHOR174]
16433	mov	w1, w20
16434	mov	w0, w21
16435	str	w5, [x29, 104]
16436	bl	flash_read_page_en
16437	cmp	w0, 512
16438	ldr	x6, [x29, 112]
16439	mov	w4, w0
16440	ccmn	w0, #1, 4, ne
16441	mov	x7, x6
16442	beq	.L2644
16443	ldr	x0, [x6, #:lo12:.LANCHOR174]
16444	ldr	w1, [x23]
16445	ldr	w5, [x29, 104]
16446	ldr	w0, [x0]
16447	cmp	w1, w0
16448	bne	.L2644
16449	ldr	x0, [x26, #:lo12:.LANCHOR173]
16450	ldr	w1, [x22]
16451	ldr	w0, [x0]
16452	cmp	w1, w0
16453	beq	.L2643
16454.L2644:
16455	str	w4, [x29, 112]
16456	mov	w3, 4
16457	str	x7, [x29, 104]
16458	mov	w2, w3
16459	mov	x1, x23
16460	adrp	x0, .LC142
16461	add	x0, x0, :lo12:.LC142
16462	bl	rknand_print_hex
16463	mov	w3, 4
16464	mov	x1, x22
16465	mov	w2, w3
16466	adrp	x0, .LC143
16467	add	x0, x0, :lo12:.LC143
16468	bl	rknand_print_hex
16469	adrp	x0, .LANCHOR173
16470	mov	w3, 4
16471	mov	w2, w3
16472	ldr	x1, [x0, #:lo12:.LANCHOR173]
16473	adrp	x0, .LC144
16474	add	x0, x0, :lo12:.LC144
16475	bl	rknand_print_hex
16476	ldr	x7, [x29, 104]
16477	mov	w3, 4
16478	adrp	x0, .LC145
16479	mov	w2, w3
16480	add	x0, x0, :lo12:.LC145
16481	ldr	x1, [x7, #:lo12:.LANCHOR174]
16482	bl	rknand_print_hex
16483	ldr	w4, [x29, 112]
16484	cmp	w4, 512
16485	beq	.L2645
16486.L2647:
16487	mov	w1, w20
16488	adrp	x0, .LC146
16489	add	x0, x0, :lo12:.LC146
16490	bl	printf
16491	adrp	x1, .LANCHOR188
16492	adrp	x0, .LC0
16493	mov	w2, 685
16494	add	x1, x1, :lo12:.LANCHOR188
16495	add	x0, x0, :lo12:.LC0
16496	bl	printf
16497.L2648:
16498	mov	w0, -1
16499	b	.L2636
16500.L2641:
16501	adrp	x0, .LANCHOR3
16502	add	x0, x0, :lo12:.LANCHOR3
16503	ldrh	w0, [x0, w1, uxtw 1]
16504	add	w19, w0, w19
16505	b	.L2639
16506.L2650:
16507	mov	w19, w20
16508	b	.L2639
16509.L2643:
16510	mov	w0, w5
16511	cmn	w5, #1
16512	beq	.L2647
16513.L2636:
16514	ldp	x19, x20, [sp, 16]
16515	ldp	x21, x22, [sp, 32]
16516	ldp	x23, x24, [sp, 48]
16517	ldp	x25, x26, [sp, 64]
16518	ldp	x27, x28, [sp, 80]
16519	ldp	x29, x30, [sp], 128
16520	ret
16521	.size	flash_prog_page_en, .-flash_prog_page_en
16522	.section	.text.ftl_test_block,"ax",@progbits
16523	.align	2
16524	.global	ftl_test_block
16525	.type	ftl_test_block, %function
16526ftl_test_block:
16527	stp	x29, x30, [sp, -128]!
16528	add	x29, sp, 0
16529	stp	x23, x24, [sp, 48]
16530	adrp	x24, .LANCHOR189
16531	stp	x21, x22, [sp, 32]
16532	and	w21, w0, 65535
16533	ldr	x0, [x24, #:lo12:.LANCHOR189]
16534	mov	w23, 0
16535	stp	x25, x26, [sp, 64]
16536	adrp	x25, .LANCHOR190
16537	stp	x19, x20, [sp, 16]
16538	adrp	x26, .LANCHOR118
16539	stp	x27, x28, [sp, 80]
16540	mov	w20, 0
16541	str	wzr, [x0]
16542	add	x0, x26, :lo12:.LANCHOR118
16543	adrp	x27, .LANCHOR81
16544	str	x0, [x29, 112]
16545	str	wzr, [x25, #:lo12:.LANCHOR190]
16546	add	x0, x27, :lo12:.LANCHOR81
16547	str	x0, [x29, 96]
16548.L2667:
16549	ldr	x0, [x29, 112]
16550	ldrb	w0, [x0]
16551	cmp	w0, w20
16552	bls	.L2677
16553	add	x0, x27, :lo12:.LANCHOR81
16554	mov	w22, 0
16555	str	x0, [x29, 120]
16556	adrp	x0, .LANCHOR19
16557	add	x0, x0, :lo12:.LANCHOR19
16558	str	x0, [x29, 104]
16559	b	.L2678
16560.L2676:
16561	ldr	x0, [x29, 104]
16562	ldr	w0, [x0]
16563	tbz	x0, 12, .L2668
16564	adrp	x0, .LC147
16565	mov	w1, w21
16566	add	x0, x0, :lo12:.LC147
16567	bl	printf
16568.L2668:
16569	ldr	x0, [x29, 96]
16570	ldrb	w19, [x0]
16571	madd	w19, w21, w19, w22
16572	and	w19, w19, 65535
16573	cbnz	w20, .L2669
16574	adrp	x0, .LANCHOR6
16575	ldr	x0, [x0, #:lo12:.LANCHOR6]
16576	ldrb	w0, [x0, 47]
16577	cmp	w0, w19
16578	bcs	.L2670
16579.L2669:
16580	and	w28, w20, 255
16581	mov	w1, w19
16582	mov	w0, w28
16583	bl	flash_check_bad_block
16584	cbnz	w0, .L2670
16585	adrp	x0, .LANCHOR117
16586	mov	w1, w23
16587	ldrh	w7, [x0, #:lo12:.LANCHOR117]
16588	mov	w0, w28
16589	mul	w26, w7, w19
16590	mov	w2, w26
16591	bl	flash_erase_block_en
16592	cbz	w0, .L2671
16593	adrp	x0, .LANCHOR84
16594	ldrb	w0, [x0, #:lo12:.LANCHOR84]
16595	cmp	w0, 2
16596	bne	.L2693
16597	adrp	x0, .LANCHOR0
16598	ldrb	w0, [x0, #:lo12:.LANCHOR0]
16599	cbz	w0, .L2693
16600	mov	w2, w26
16601	mov	w1, 1
16602	mov	w0, w28
16603	bl	flash_erase_block_en
16604	cbnz	w0, .L2693
16605.L2675:
16606	adrp	x0, .LANCHOR84
16607	mov	w23, 1
16608	ldrb	w0, [x0, #:lo12:.LANCHOR84]
16609	add	w26, w26, w0, lsl 24
16610.L2674:
16611	adrp	x0, .LANCHOR68
16612	ldr	x2, [x24, #:lo12:.LANCHOR189]
16613	mov	w5, 1
16614	add	x3, x25, :lo12:.LANCHOR190
16615	ldrb	w4, [x0, #:lo12:.LANCHOR68]
16616	mov	w1, w26
16617	mov	w0, w28
16618	bl	flash_prog_page_en
16619	cbz	w0, .L2670
16620.L2693:
16621	mov	w1, w19
16622	mov	w0, w28
16623	bl	flash_mask_bad_block
16624.L2670:
16625	add	w22, w22, 1
16626	and	w22, w22, 65535
16627.L2678:
16628	ldr	x0, [x29, 120]
16629	ldrb	w0, [x0]
16630	cmp	w0, w22
16631	bhi	.L2676
16632	add	w20, w20, 1
16633	and	w20, w20, 65535
16634	b	.L2667
16635.L2671:
16636	cbz	w23, .L2674
16637	b	.L2675
16638.L2677:
16639	cbz	w23, .L2679
16640	adrp	x0, .LANCHOR9
16641	mov	w1, 2
16642	ldr	x0, [x0, #:lo12:.LANCHOR9]
16643	add	x21, x0, x21, uxth 2
16644	ldrb	w0, [x21, 2]
16645	bfi	w0, w1, 3, 2
16646	strb	w0, [x21, 2]
16647.L2679:
16648	ldp	x19, x20, [sp, 16]
16649	mov	w0, 0
16650	ldp	x21, x22, [sp, 32]
16651	ldp	x23, x24, [sp, 48]
16652	ldp	x25, x26, [sp, 64]
16653	ldp	x27, x28, [sp, 80]
16654	ldp	x29, x30, [sp], 128
16655	ret
16656	.size	ftl_test_block, .-ftl_test_block
16657	.section	.text.ftl_prog_page,"ax",@progbits
16658	.align	2
16659	.global	ftl_prog_page
16660	.type	ftl_prog_page, %function
16661ftl_prog_page:
16662	stp	x29, x30, [sp, -64]!
16663	add	x29, sp, 0
16664	stp	x19, x20, [sp, 16]
16665	and	w19, w0, 255
16666	stp	x21, x22, [sp, 32]
16667	mov	w20, w1
16668	mov	x21, x2
16669	mov	x22, x3
16670	str	x23, [sp, 48]
16671	mov	w23, w4
16672	bl	sblk_wait_write_queue_completed
16673	mov	w0, w19
16674	mov	w5, 1
16675	mov	w4, w23
16676	mov	x3, x22
16677	mov	x2, x21
16678	mov	w1, w20
16679	bl	flash_prog_page_en
16680	mov	w19, w0
16681	cmn	w0, #1
16682	bne	.L2694
16683	mov	w2, 2683
16684	adrp	x1, .LANCHOR191
16685	adrp	x0, .LC0
16686	add	x1, x1, :lo12:.LANCHOR191
16687	add	x0, x0, :lo12:.LC0
16688	bl	printf
16689	adrp	x0, .LC146
16690	mov	w1, w20
16691	add	x0, x0, :lo12:.LC146
16692	bl	printf
16693.L2694:
16694	mov	w0, w19
16695	ldr	x23, [sp, 48]
16696	ldp	x19, x20, [sp, 16]
16697	ldp	x21, x22, [sp, 32]
16698	ldp	x29, x30, [sp], 64
16699	ret
16700	.size	ftl_prog_page, .-ftl_prog_page
16701	.section	.text.ftl_info_flush,"ax",@progbits
16702	.align	2
16703	.global	ftl_info_flush
16704	.type	ftl_info_flush, %function
16705ftl_info_flush:
16706	stp	x29, x30, [sp, -128]!
16707	mov	w1, 0
16708	add	x29, sp, 0
16709	stp	x21, x22, [sp, 32]
16710	adrp	x21, .LANCHOR68
16711	stp	x23, x24, [sp, 48]
16712	adrp	x24, .LANCHOR69
16713	ldrb	w2, [x21, #:lo12:.LANCHOR68]
16714	stp	x19, x20, [sp, 16]
16715	adrp	x20, .LANCHOR192
16716	str	w0, [x29, 116]
16717	add	x0, x20, :lo12:.LANCHOR192
16718	stp	x25, x26, [sp, 64]
16719	lsl	w2, w2, 1
16720	stp	x27, x28, [sp, 80]
16721	bl	ftl_memset
16722	ldr	x0, [x24, #:lo12:.LANCHOR69]
16723	ldrh	w1, [x0, 74]
16724	cmp	w1, 1
16725	bls	.L2698
16726	strh	wzr, [x0, 150]
16727.L2698:
16728	adrp	x23, .LANCHOR193
16729	add	x19, x23, :lo12:.LANCHOR193
16730	adrp	x25, .LANCHOR117
16731	mov	w26, 0
16732	add	x0, x25, :lo12:.LANCHOR117
16733	str	x0, [x29, 104]
16734.L2711:
16735	add	x0, x23, :lo12:.LANCHOR193
16736	adrp	x22, .LANCHOR194
16737	ldrh	w1, [x25, #:lo12:.LANCHOR117]
16738	add	x7, x20, :lo12:.LANCHOR192
16739	str	w1, [x29, 120]
16740	ldrh	w27, [x0, 2]
16741	ldr	x0, [x24, #:lo12:.LANCHOR69]
16742	ldrb	w1, [x21, #:lo12:.LANCHOR68]
16743	ldrb	w28, [x23, #:lo12:.LANCHOR193]
16744	ldr	w6, [x0, 4]
16745	lsl	w1, w1, 9
16746	add	w6, w6, 1
16747	str	w6, [x0, 4]
16748	ldr	w0, [x29, 116]
16749	str	w0, [x20, #:lo12:.LANCHOR192]
16750	ldr	x0, [x22, #:lo12:.LANCHOR194]
16751	str	w6, [x7, 4]
16752	bl	js_hash
16753	str	w0, [x7, 8]
16754	adrp	x0, .LANCHOR19
16755	ldr	w0, [x0, #:lo12:.LANCHOR19]
16756	tbz	x0, 12, .L2699
16757	adrp	x0, .LC148
16758	mov	w3, w6
16759	mov	w2, w27
16760	mov	w1, w28
16761	add	x0, x0, :lo12:.LC148
16762	bl	printf
16763.L2699:
16764	adrp	x1, .LANCHOR100
16765	ldrh	w0, [x19, 2]
16766	ldrh	w1, [x1, #:lo12:.LANCHOR100]
16767	cmp	w1, w0
16768	bhi	.L2700
16769	adrp	x27, .LANCHOR195
16770	adrp	x3, .LC0
16771	add	x27, x27, :lo12:.LANCHOR195
16772	add	x3, x3, :lo12:.LC0
16773.L2707:
16774	ldrb	w0, [x19, 1]
16775	adrp	x28, .LANCHOR6
16776	add	w0, w0, 1
16777	and	w0, w0, 255
16778	strb	w0, [x19, 1]
16779	cmp	w0, 7
16780	bls	.L2701
16781	mov	x0, 0
16782.L2706:
16783	ldr	x2, [x28, #:lo12:.LANCHOR6]
16784	add	w1, w0, 8
16785	and	w26, w0, 65535
16786	add	x1, x2, x1, sxtw
16787	ldrb	w2, [x1, 32]
16788	add	w1, w2, 127
16789	and	w1, w1, 255
16790	cmp	w1, 125
16791	bhi	.L2702
16792	mov	x0, x3
16793	str	x3, [x29, 120]
16794	mov	w2, 846
16795	mov	x1, x27
16796	bl	printf
16797	ldr	x3, [x29, 120]
16798.L2705:
16799	strb	w26, [x19, 1]
16800	mov	w26, 1
16801.L2701:
16802	ldr	x0, [x28, #:lo12:.LANCHOR6]
16803	ldrb	w1, [x19, 1]
16804	add	x0, x0, x1
16805	ldrb	w28, [x0, 40]
16806	strb	w28, [x19]
16807	cmp	w28, 255
16808	beq	.L2707
16809	ldr	x0, [x29, 104]
16810	ldrh	w27, [x0]
16811	mov	w0, 0
16812	mul	w27, w27, w28
16813	mov	w1, w27
16814	bl	flash_erase_block
16815	ldrb	w4, [x21, #:lo12:.LANCHOR68]
16816	mov	w1, w27
16817	ldr	x2, [x22, #:lo12:.LANCHOR194]
16818	add	x3, x20, :lo12:.LANCHOR192
16819	mov	w0, 0
16820	add	w27, w27, 1
16821	bl	ftl_prog_page
16822	mov	w0, 1
16823	strh	w0, [x19, 2]
16824.L2708:
16825	ldrb	w4, [x21, #:lo12:.LANCHOR68]
16826	mov	w1, w27
16827	ldr	x2, [x22, #:lo12:.LANCHOR194]
16828	add	x3, x20, :lo12:.LANCHOR192
16829	mov	w0, 0
16830	bl	ftl_prog_page
16831	cmn	w0, #1
16832	ldrh	w1, [x19, 2]
16833	adrp	x0, .LANCHOR196
16834	add	w1, w1, 1
16835	strh	w1, [x19, 2]
16836	beq	.L2709
16837	ldrb	w1, [x0, #:lo12:.LANCHOR196]
16838	cbz	w1, .L2710
16839.L2709:
16840	strb	wzr, [x0, #:lo12:.LANCHOR196]
16841	b	.L2711
16842.L2702:
16843	cmp	w2, 255
16844	bne	.L2705
16845	add	x0, x0, 1
16846	cmp	x0, 8
16847	bne	.L2706
16848	mov	w26, w0
16849	b	.L2705
16850.L2700:
16851	ldr	w1, [x29, 120]
16852	madd	w27, w1, w28, w27
16853	cbnz	w0, .L2708
16854	mov	w1, w27
16855	bl	flash_erase_block
16856	b	.L2708
16857.L2710:
16858	cbnz	w26, .L2712
16859.L2720:
16860	adrp	x0, .LANCHOR193
16861	ldrb	w0, [x0, #:lo12:.LANCHOR193]
16862	cmp	w0, 255
16863	bne	.L2714
16864	adrp	x1, .LANCHOR195
16865	adrp	x0, .LC0
16866	mov	w2, 890
16867	add	x1, x1, :lo12:.LANCHOR195
16868	add	x0, x0, :lo12:.LC0
16869	bl	printf
16870.L2714:
16871	ldp	x19, x20, [sp, 16]
16872	mov	w0, 0
16873	ldp	x21, x22, [sp, 32]
16874	ldp	x23, x24, [sp, 48]
16875	ldp	x25, x26, [sp, 64]
16876	ldp	x27, x28, [sp, 80]
16877	ldp	x29, x30, [sp], 128
16878	ret
16879.L2712:
16880	ldrb	w19, [x19, 1]
16881	adrp	x20, .LANCHOR195
16882	adrp	x21, .LC0
16883	add	x20, x20, :lo12:.LANCHOR195
16884	add	w19, w19, 1
16885	add	x21, x21, :lo12:.LC0
16886	adrp	x22, .LANCHOR6
16887.L2715:
16888	cmp	w19, 7
16889	bhi	.L2720
16890	ldr	x1, [x22, #:lo12:.LANCHOR6]
16891	add	w0, w19, 8
16892	add	x0, x1, x0, sxtw
16893	ldrb	w23, [x0, 32]
16894	add	w0, w23, 127
16895	and	w0, w0, 255
16896	cmp	w0, 125
16897	bhi	.L2716
16898	mov	w2, 881
16899	mov	x1, x20
16900	mov	x0, x21
16901	bl	printf
16902.L2717:
16903	adrp	x0, .LANCHOR117
16904	ldrh	w1, [x0, #:lo12:.LANCHOR117]
16905	mov	w0, 0
16906	mul	w1, w1, w23
16907	bl	flash_erase_block
16908	b	.L2718
16909.L2716:
16910	cmp	w23, 255
16911	bne	.L2717
16912.L2718:
16913	add	w19, w19, 1
16914	and	w19, w19, 65535
16915	b	.L2715
16916	.size	ftl_info_flush, .-ftl_info_flush
16917	.section	.text.ftl_info_blk_init,"ax",@progbits
16918	.align	2
16919	.global	ftl_info_blk_init
16920	.type	ftl_info_blk_init, %function
16921ftl_info_blk_init:
16922	stp	x29, x30, [sp, -112]!
16923	adrp	x0, .LANCHOR197
16924	adrp	x1, .LANCHOR196
16925	mov	w2, 16384
16926	add	x29, sp, 0
16927	strb	wzr, [x0, #:lo12:.LANCHOR197]
16928	mov	w0, 1
16929	strb	w0, [x1, #:lo12:.LANCHOR196]
16930	adrp	x1, .LANCHOR198
16931	stp	x21, x22, [sp, 32]
16932	adrp	x21, .LANCHOR194
16933	strb	w0, [x1, #:lo12:.LANCHOR198]
16934	adrp	x1, .LANCHOR9
16935	ldr	x0, [x21, #:lo12:.LANCHOR194]
16936	mov	x22, 7
16937	str	x0, [x1, #:lo12:.LANCHOR9]
16938	adrp	x1, .LANCHOR8
16939	stp	x19, x20, [sp, 16]
16940	adrp	x19, .LANCHOR69
16941	ldrh	w1, [x1, #:lo12:.LANCHOR8]
16942	adrp	x20, .LANCHOR193
16943	stp	x23, x24, [sp, 48]
16944	adrp	x23, .LANCHOR6
16945	stp	x25, x26, [sp, 64]
16946	adrp	x24, .LANCHOR68
16947	add	x1, x0, x1, lsl 2
16948	stp	x27, x28, [sp, 80]
16949	str	x1, [x19, #:lo12:.LANCHOR69]
16950	mov	w1, 0
16951	bl	ftl_memset
16952	adrp	x26, .LANCHOR117
16953	adrp	x0, .LANCHOR199
16954	mov	w1, 0
16955	mov	w2, 16384
16956	mov	w27, 21574
16957	ldr	x0, [x0, #:lo12:.LANCHOR199]
16958	add	x26, x26, :lo12:.LANCHOR117
16959	add	x24, x24, :lo12:.LANCHOR68
16960	movk	w27, 0x494c, lsl 16
16961	bl	ftl_memset
16962	ldr	x1, [x23, #:lo12:.LANCHOR6]
16963	add	x0, x20, :lo12:.LANCHOR193
16964	strb	wzr, [x0, 1]
16965	ldrb	w1, [x1, 40]
16966	strb	w1, [x20, #:lo12:.LANCHOR193]
16967	strh	wzr, [x0, 2]
16968.L2736:
16969	ldr	x1, [x23, #:lo12:.LANCHOR6]
16970	add	w0, w22, 8
16971	sxth	w25, w22
16972	mov	w28, w22
16973	add	x0, x1, x0, sxtw
16974	ldrb	w0, [x0, 32]
16975	cmp	w0, 255
16976	bne	.L2735
16977.L2740:
16978	sub	x22, x22, #1
16979	cmn	x22, #1
16980	bne	.L2736
16981	mov	w25, 0
16982.L2737:
16983	adrp	x24, .LANCHOR19
16984	ldr	w0, [x24, #:lo12:.LANCHOR19]
16985	tbz	x0, 12, .L2741
16986	ldr	x0, [x19, #:lo12:.LANCHOR69]
16987	mov	w2, 4800
16988	mov	w1, w22
16989	ldr	w3, [x0]
16990	adrp	x0, .LC150
16991	add	x0, x0, :lo12:.LC150
16992	bl	printf
16993.L2741:
16994	cmn	w22, #1
16995	bne	.L2742
16996	ldr	x0, [x21, #:lo12:.LANCHOR194]
16997	mov	w1, 0
16998	mov	w2, 16384
16999	bl	ftl_memset
17000	ldr	x0, [x19, #:lo12:.LANCHOR69]
17001	mov	w1, 21574
17002	movk	w1, 0x494c, lsl 16
17003	str	w1, [x0]
17004	mov	w1, 36
17005	movk	w1, 0x6, lsl 16
17006	str	w1, [x0, 12]
17007	mov	w0, w22
17008.L2734:
17009	ldp	x19, x20, [sp, 16]
17010	ldp	x21, x22, [sp, 32]
17011	ldp	x23, x24, [sp, 48]
17012	ldp	x25, x26, [sp, 64]
17013	ldp	x27, x28, [sp, 80]
17014	ldp	x29, x30, [sp], 112
17015	ret
17016.L2735:
17017	ldrh	w6, [x26]
17018	adrp	x7, .LANCHOR192
17019	ldrb	w4, [x24]
17020	add	x7, x7, :lo12:.LANCHOR192
17021	ldr	x2, [x21, #:lo12:.LANCHOR194]
17022	mov	x3, x7
17023	str	x7, [x29, 96]
17024	mul	w6, w6, w0
17025	mov	w0, 0
17026	str	w6, [x29, 108]
17027	mov	w1, w6
17028	bl	ftl_read_page
17029	mov	w5, w0
17030	cmn	w0, #1
17031	ldr	w6, [x29, 108]
17032	ldr	x7, [x29, 96]
17033	bne	.L2738
17034	ldrb	w4, [x24]
17035	mov	x3, x7
17036	ldr	x2, [x21, #:lo12:.LANCHOR194]
17037	add	w1, w6, 1
17038	mov	w0, 0
17039	bl	ftl_read_page
17040	mov	w5, w0
17041.L2738:
17042	adrp	x0, .LANCHOR19
17043	ldr	w0, [x0, #:lo12:.LANCHOR19]
17044	tbz	x0, 12, .L2739
17045	ldr	x0, [x19, #:lo12:.LANCHOR69]
17046	mov	w2, w5
17047	str	w5, [x29, 108]
17048	mov	w3, 749
17049	mov	w1, w28
17050	ldr	w4, [x0]
17051	adrp	x0, .LC149
17052	add	x0, x0, :lo12:.LC149
17053	bl	printf
17054	ldr	w5, [x29, 108]
17055.L2739:
17056	cmn	w5, #1
17057	beq	.L2740
17058	ldr	x0, [x19, #:lo12:.LANCHOR69]
17059	ldr	w0, [x0]
17060	cmp	w0, w27
17061	bne	.L2740
17062	mov	w22, w25
17063	b	.L2737
17064.L2742:
17065	ldr	x1, [x23, #:lo12:.LANCHOR6]
17066	add	w0, w25, 8
17067	ldr	x2, [x21, #:lo12:.LANCHOR194]
17068	mov	w4, 4
17069	adrp	x26, .LANCHOR68
17070	mov	w28, 21574
17071	add	x0, x1, x0, sxtw
17072	adrp	x27, .LC151
17073	add	x26, x26, :lo12:.LANCHOR68
17074	add	x27, x27, :lo12:.LC151
17075	movk	w28, 0x494c, lsl 16
17076	ldrb	w1, [x0, 32]
17077	add	x0, x20, :lo12:.LANCHOR193
17078	strb	w1, [x20, #:lo12:.LANCHOR193]
17079	strb	w25, [x0, 1]
17080	adrp	x25, .LANCHOR192
17081	mov	w0, 0
17082	add	x3, x25, :lo12:.LANCHOR192
17083	bl	flash_get_last_written_page
17084	sxth	w22, w0
17085	add	w0, w0, 1
17086	ldrb	w23, [x20, #:lo12:.LANCHOR193]
17087	and	w0, w0, 65535
17088	str	w0, [x29, 108]
17089	adrp	x0, .LANCHOR117
17090	ldrh	w0, [x0, #:lo12:.LANCHOR117]
17091	madd	w23, w23, w0, w22
17092.L2744:
17093	tbnz	w22, #31, .L2748
17094	ldrb	w4, [x26]
17095	add	x5, x25, :lo12:.LANCHOR192
17096	ldr	x2, [x21, #:lo12:.LANCHOR194]
17097	mov	x3, x5
17098	mov	w1, w23
17099	mov	w0, 0
17100	str	x5, [x29, 96]
17101	bl	ftl_read_page
17102	cmn	w0, #1
17103	beq	.L2745
17104	ldr	x0, [x19, #:lo12:.LANCHOR69]
17105	ldr	x5, [x29, 96]
17106	ldr	w0, [x0]
17107	cmp	w0, w28
17108	bne	.L2745
17109	ldr	w6, [x5, 8]
17110	cbnz	w6, .L2746
17111.L2748:
17112	ldrh	w0, [x29, 108]
17113	add	x20, x20, :lo12:.LANCHOR193
17114	strh	w0, [x20, 2]
17115	bl	ftl_tmp_into_update
17116	ldr	x1, [x19, #:lo12:.LANCHOR69]
17117	ldr	w0, [x1, 64]
17118	add	w0, w0, 1
17119	str	w0, [x1, 64]
17120	mov	w0, 0
17121	bl	ftl_info_flush
17122	mov	w0, 0
17123	bl	ftl_info_flush
17124	ldr	w0, [x24, #:lo12:.LANCHOR19]
17125	tbnz	x0, 14, .L2747
17126.L2764:
17127	mov	w0, 0
17128	b	.L2734
17129.L2746:
17130	ldr	x0, [x21, #:lo12:.LANCHOR194]
17131	ldrb	w1, [x26]
17132	lsl	w1, w1, 9
17133	bl	js_hash
17134	cmp	w6, w0
17135	beq	.L2748
17136	mov	w1, w6
17137	mov	x0, x27
17138	bl	printf
17139.L2745:
17140	sub	w22, w22, #1
17141	sub	w23, w23, #1
17142	sxth	w22, w22
17143	b	.L2744
17144.L2747:
17145	ldr	x0, [x19, #:lo12:.LANCHOR69]
17146	ldr	w1, [x0, 156]
17147	adrp	x0, .LC152
17148	add	x0, x0, :lo12:.LC152
17149	bl	printf
17150	b	.L2764
17151	.size	ftl_info_blk_init, .-ftl_info_blk_init
17152	.section	.text.ftl_ext_info_flush,"ax",@progbits
17153	.align	2
17154	.global	ftl_ext_info_flush
17155	.type	ftl_ext_info_flush, %function
17156ftl_ext_info_flush:
17157	stp	x29, x30, [sp, -96]!
17158	adrp	x0, .LANCHOR12
17159	add	x29, sp, 0
17160	ldr	x0, [x0, #:lo12:.LANCHOR12]
17161	stp	x19, x20, [sp, 16]
17162	stp	x21, x22, [sp, 32]
17163	stp	x23, x24, [sp, 48]
17164	ldr	w1, [x0, 520]
17165	stp	x25, x26, [sp, 64]
17166	stp	x27, x28, [sp, 80]
17167	cbz	w1, .L2766
17168	str	wzr, [x0, 520]
17169.L2766:
17170	adrp	x20, .LANCHOR100
17171	adrp	x22, .LANCHOR200
17172	adrp	x21, .LANCHOR31
17173	add	x20, x20, :lo12:.LANCHOR100
17174	add	x22, x22, :lo12:.LANCHOR200
17175	add	x21, x21, :lo12:.LANCHOR31
17176	mov	w0, 0
17177	bl	ftl_total_vpn_update
17178.L2767:
17179	adrp	x23, .LANCHOR69
17180	mov	x24, x23
17181.L2770:
17182	ldr	x0, [x23, #:lo12:.LANCHOR69]
17183	ldr	w1, [x0, 56]
17184	add	w1, w1, 1
17185	str	w1, [x0, 56]
17186	ldrh	w1, [x0, 140]
17187	ldrh	w0, [x20]
17188	cmp	w1, w0
17189	bcc	.L2768
17190	bl	ftl_ext_alloc_new_blk
17191.L2768:
17192	ldr	x0, [x24, #:lo12:.LANCHOR69]
17193	ldrh	w1, [x0, 130]
17194	mov	w0, 65535
17195	cmp	w1, w0
17196	bne	.L2769
17197	adrp	x0, .LC0
17198	mov	w2, 2216
17199	mov	x1, x22
17200	add	x0, x0, :lo12:.LC0
17201	bl	printf
17202.L2769:
17203	ldrb	w19, [x21]
17204	mov	w0, 24
17205	ldr	x1, [x24, #:lo12:.LANCHOR69]
17206	adrp	x26, .LANCHOR68
17207	sub	w19, w0, w19
17208	adrp	x0, .LANCHOR80
17209	adrp	x27, .LANCHOR192
17210	add	x25, x27, :lo12:.LANCHOR192
17211	ldrh	w0, [x0, #:lo12:.LANCHOR80]
17212	ldrh	w2, [x1, 130]
17213	sub	w0, w19, w0
17214	mov	w19, 1
17215	asr	w28, w2, w0
17216	lsl	w19, w19, w0
17217	adrp	x0, .LANCHOR117
17218	sub	w19, w19, #1
17219	and	w19, w19, w2
17220	ldrh	w2, [x0, #:lo12:.LANCHOR117]
17221	ldrh	w0, [x1, 140]
17222	sxth	w19, w19
17223	mov	w1, 0
17224	madd	w19, w19, w2, w0
17225	ldrb	w2, [x26, #:lo12:.LANCHOR68]
17226	mov	x0, x25
17227	lsl	w2, w2, 1
17228	bl	ftl_memset
17229	ldr	x0, [x24, #:lo12:.LANCHOR69]
17230	ldrb	w7, [x26, #:lo12:.LANCHOR68]
17231	str	wzr, [x27, #:lo12:.LANCHOR192]
17232	ldr	w0, [x0, 56]
17233	lsl	w1, w7, 9
17234	str	w0, [x25, 4]
17235	adrp	x0, .LANCHOR199
17236	ldr	x6, [x0, #:lo12:.LANCHOR199]
17237	mov	x0, x6
17238	bl	js_hash
17239	mov	x2, x6
17240	mov	w1, w19
17241	str	w0, [x25, 8]
17242	mov	w4, w7
17243	mov	x3, x25
17244	mov	w0, w28
17245	bl	ftl_prog_page
17246	ldr	x2, [x24, #:lo12:.LANCHOR69]
17247	ldrh	w1, [x2, 140]
17248	add	w1, w1, 1
17249	and	w1, w1, 65535
17250	strh	w1, [x2, 140]
17251	cmp	w1, 1
17252	beq	.L2770
17253	cmn	w0, #1
17254	adrp	x0, .LANCHOR198
17255	beq	.L2771
17256	ldrb	w1, [x0, #:lo12:.LANCHOR198]
17257	cbz	w1, .L2772
17258.L2771:
17259	strb	wzr, [x0, #:lo12:.LANCHOR198]
17260	b	.L2767
17261.L2772:
17262	mov	w0, 0
17263	ldp	x19, x20, [sp, 16]
17264	ldp	x21, x22, [sp, 32]
17265	ldp	x23, x24, [sp, 48]
17266	ldp	x25, x26, [sp, 64]
17267	ldp	x27, x28, [sp, 80]
17268	ldp	x29, x30, [sp], 96
17269	ret
17270	.size	ftl_ext_info_flush, .-ftl_ext_info_flush
17271	.section	.text.ftl_ext_info_init,"ax",@progbits
17272	.align	2
17273	.global	ftl_ext_info_init
17274	.type	ftl_ext_info_init, %function
17275ftl_ext_info_init:
17276	stp	x29, x30, [sp, -128]!
17277	adrp	x0, .LANCHOR127
17278	adrp	x2, .LANCHOR80
17279	mov	w4, 4
17280	add	x29, sp, 0
17281	stp	x19, x20, [sp, 16]
17282	adrp	x20, .LANCHOR69
17283	strh	wzr, [x0, #:lo12:.LANCHOR127]
17284	ldr	x0, [x20, #:lo12:.LANCHOR69]
17285	stp	x21, x22, [sp, 32]
17286	adrp	x21, .LANCHOR199
17287	stp	x27, x28, [sp, 80]
17288	stp	x23, x24, [sp, 48]
17289	adrp	x24, .LANCHOR192
17290	ldrh	w1, [x0, 130]
17291	adrp	x0, .LANCHOR31
17292	stp	x25, x26, [sp, 64]
17293	add	x3, x24, :lo12:.LANCHOR192
17294	ldrb	w19, [x0, #:lo12:.LANCHOR31]
17295	mov	w0, 24
17296	sub	w0, w0, w19
17297	ldrh	w19, [x2, #:lo12:.LANCHOR80]
17298	ldr	x2, [x21, #:lo12:.LANCHOR199]
17299	sub	w0, w0, w19
17300	mov	w19, 1
17301	lsl	w19, w19, w0
17302	sub	w19, w19, #1
17303	asr	w22, w1, w0
17304	and	w19, w19, w1
17305	and	w27, w22, 255
17306	mov	w1, w19
17307	mov	w0, w27
17308	bl	flash_get_last_written_page
17309	sxth	w23, w0
17310	adrp	x0, .LANCHOR19
17311	stp	x0, x24, [x29, 112]
17312	ldr	w1, [x0, #:lo12:.LANCHOR19]
17313	tbz	x1, 12, .L2783
17314	ldr	x0, [x20, #:lo12:.LANCHOR69]
17315	adrp	x1, .LANCHOR201
17316	and	w4, w22, 65535
17317	mov	w3, w23
17318	mov	w2, 2261
17319	add	x1, x1, :lo12:.LANCHOR201
17320	ldrh	w5, [x0, 130]
17321	adrp	x0, .LC153
17322	add	x0, x0, :lo12:.LC153
17323	bl	printf
17324.L2783:
17325	adrp	x25, .LANCHOR68
17326	adrp	x26, .LANCHOR117
17327	mov	w28, 20038
17328	add	x25, x25, :lo12:.LANCHOR68
17329	add	x26, x26, :lo12:.LANCHOR117
17330	mov	w24, 0
17331	movk	w28, 0x4549, lsl 16
17332.L2784:
17333	and	w22, w23, 65535
17334	sub	w0, w22, w24
17335	tbnz	x0, 15, .L2789
17336	ldr	x0, [x29, 120]
17337	sub	w1, w23, w24
17338	ldrb	w4, [x25]
17339	add	x5, x0, :lo12:.LANCHOR192
17340	ldrh	w0, [x26]
17341	ldr	x2, [x21, #:lo12:.LANCHOR199]
17342	mov	x3, x5
17343	str	x5, [x29, 104]
17344	madd	w1, w0, w19, w1
17345	mov	w0, w27
17346	bl	flash_read_page_en
17347	cmp	w0, 512
17348	ccmn	w0, #1, 4, ne
17349	beq	.L2785
17350	adrp	x0, .LANCHOR12
17351	ldr	x5, [x29, 104]
17352	ldr	x0, [x0, #:lo12:.LANCHOR12]
17353	ldr	w0, [x0]
17354	cmp	w0, w28
17355	bne	.L2785
17356	ldr	w6, [x5, 8]
17357	cbnz	w6, .L2786
17358.L2789:
17359	bl	zftl_sblk_list_init
17360	ldr	x0, [x20, #:lo12:.LANCHOR69]
17361	ldrh	w1, [x0, 140]
17362	cmp	w1, w23
17363	bgt	.L2788
17364	add	w22, w22, 1
17365	strh	w22, [x0, 140]
17366	bl	ftl_ext_info_flush
17367.L2788:
17368	adrp	x0, .LANCHOR12
17369	mov	w1, -1
17370	ldr	x0, [x0, #:lo12:.LANCHOR12]
17371	strh	w1, [x0, 584]
17372	strh	w1, [x0, 586]
17373	strh	w1, [x0, 588]
17374	strh	w1, [x0, 590]
17375	mov	w1, 65535
17376	str	w1, [x0, 560]
17377	mov	w1, -1
17378	str	w1, [x0, 564]
17379	ldr	x1, [x29, 112]
17380	str	wzr, [x0, 520]
17381	str	wzr, [x0, 604]
17382	str	wzr, [x0, 608]
17383	ldr	w1, [x1, #:lo12:.LANCHOR19]
17384	tbz	x1, 12, .L2791
17385	ldr	w3, [x0, 12]
17386	adrp	x1, .LANCHOR201
17387	adrp	x0, .LC155
17388	mov	w4, 0
17389	mov	w2, 0
17390	add	x1, x1, :lo12:.LANCHOR201
17391	add	x0, x0, :lo12:.LC155
17392	bl	printf
17393.L2791:
17394	adrp	x0, .LANCHOR78
17395	mov	w1, -1
17396	ldp	x19, x20, [sp, 16]
17397	strh	w1, [x0, #:lo12:.LANCHOR78]
17398	ldp	x21, x22, [sp, 32]
17399	mov	w0, 0
17400	ldp	x23, x24, [sp, 48]
17401	ldp	x25, x26, [sp, 64]
17402	ldp	x27, x28, [sp, 80]
17403	ldp	x29, x30, [sp], 128
17404	ret
17405.L2786:
17406	ldr	x0, [x21, #:lo12:.LANCHOR199]
17407	ldrb	w1, [x25]
17408	lsl	w1, w1, 9
17409	bl	js_hash
17410	cmp	w6, w0
17411	beq	.L2789
17412	adrp	x0, .LC154
17413	mov	w1, w6
17414	add	x0, x0, :lo12:.LC154
17415	bl	printf
17416.L2785:
17417	add	w24, w24, 1
17418	b	.L2784
17419	.size	ftl_ext_info_init, .-ftl_ext_info_init
17420	.section	.text.ftl_low_format_data_init,"ax",@progbits
17421	.align	2
17422	.global	ftl_low_format_data_init
17423	.type	ftl_low_format_data_init, %function
17424ftl_low_format_data_init:
17425	stp	x29, x30, [sp, -48]!
17426	adrp	x0, .LANCHOR199
17427	mov	w2, 16384
17428	mov	w1, 0
17429	add	x29, sp, 0
17430	ldr	x0, [x0, #:lo12:.LANCHOR199]
17431	stp	x19, x20, [sp, 16]
17432	adrp	x19, .LANCHOR69
17433	str	x21, [sp, 32]
17434	bl	ftl_memset
17435	bl	zftl_sblk_list_init
17436	mov	w0, 1
17437	bl	ftl_alloc_sblk
17438	mov	w1, 0
17439	mov	w21, w0
17440	bl	ftl_erase_sblk
17441	ldr	x1, [x19, #:lo12:.LANCHOR69]
17442	mov	w0, w21
17443	add	x1, x1, 672
17444	bl	ftl_get_blk_list_in_sblk
17445	ldr	x0, [x19, #:lo12:.LANCHOR69]
17446	ldrh	w20, [x0, 672]
17447	strh	wzr, [x0, 690]
17448	mov	w0, 65533
17449	sub	w1, w20, #1
17450	cmp	w0, w1, uxth
17451	bcs	.L2803
17452	adrp	x1, .LANCHOR202
17453	adrp	x0, .LC0
17454	mov	w2, 2489
17455	add	x1, x1, :lo12:.LANCHOR202
17456	add	x0, x0, :lo12:.LC0
17457	bl	printf
17458.L2803:
17459	ldr	x0, [x19, #:lo12:.LANCHOR69]
17460	mov	w2, 256
17461	mov	w1, 255
17462	add	x0, x0, 416
17463	strh	wzr, [x0, 280]
17464	bl	ftl_memset
17465	ldr	x0, [x19, #:lo12:.LANCHOR69]
17466	mov	w2, 4096
17467	mov	w1, 0
17468	add	x0, x0, 704
17469	bl	ftl_memset
17470	adrp	x0, .LANCHOR31
17471	ldr	x1, [x19, #:lo12:.LANCHOR69]
17472	ldrb	w2, [x0, #:lo12:.LANCHOR31]
17473	mov	w0, 24
17474	sub	w0, w0, w2
17475	adrp	x2, .LANCHOR80
17476	strh	w21, [x1, 416]
17477	adrp	x21, .LANCHOR12
17478	ldrh	w2, [x2, #:lo12:.LANCHOR80]
17479	strh	w20, [x1, 692]
17480	sub	w0, w0, w2
17481	asr	w0, w20, w0
17482	strh	w0, [x1, 694]
17483	mov	w0, 1
17484	strh	w0, [x1, 688]
17485	adrp	x0, .LANCHOR203
17486	ldrh	w0, [x0, #:lo12:.LANCHOR203]
17487	strh	w0, [x1, 698]
17488	mov	w1, 20038
17489	ldr	x0, [x21, #:lo12:.LANCHOR12]
17490	movk	w1, 0x4549, lsl 16
17491	str	w1, [x0]
17492	bl	ftl_alloc_sys_blk
17493	mov	w20, w0
17494	mov	w1, 0
17495	bl	ftl_erase_phy_blk
17496	ldr	x0, [x19, #:lo12:.LANCHOR69]
17497	mov	w1, 2
17498	strh	w20, [x0, 130]
17499	mov	w20, -1
17500	strh	wzr, [x0, 140]
17501	ldr	x0, [x21, #:lo12:.LANCHOR12]
17502	add	x0, x0, 16
17503	strh	w20, [x0, 568]
17504	strh	w20, [x0, 570]
17505	strh	w20, [x0, 572]
17506	strh	w20, [x0, 574]
17507	bl	ftl_open_sblk_init
17508	ldr	x0, [x21, #:lo12:.LANCHOR12]
17509	mov	w1, 3
17510	add	x0, x0, 48
17511	bl	ftl_open_sblk_init
17512	ldr	x1, [x19, #:lo12:.LANCHOR69]
17513	ldr	x0, [x21, #:lo12:.LANCHOR12]
17514	add	x0, x0, 136
17515	ldrh	w2, [x1, 134]
17516	strh	w2, [x0, -10]
17517	strh	w20, [x0, -56]
17518	mov	w2, -1
17519	strh	w20, [x0, -6]
17520	str	w2, [x0, 408]
17521	strh	wzr, [x0, -12]
17522	strh	wzr, [x0, -16]
17523	strh	wzr, [x0, -14]
17524	strh	w2, [x1, 126]
17525	mov	w2, 256
17526	str	wzr, [x0, 384]
17527	mov	w1, 255
17528	str	wzr, [x0, 388]
17529	str	wzr, [x0, 392]
17530	bl	ftl_memset
17531	mov	w2, 128
17532	mov	w1, 255
17533	ldr	x0, [x21, #:lo12:.LANCHOR12]
17534	add	x0, x0, 392
17535	bl	ftl_memset
17536	bl	ftl_ext_info_flush
17537	mov	w0, 0
17538	bl	ftl_info_flush
17539	bl	ftl_info_blk_init
17540	ldr	x21, [sp, 32]
17541	mov	w0, 0
17542	ldp	x19, x20, [sp, 16]
17543	ldp	x29, x30, [sp], 48
17544	ret
17545	.size	ftl_low_format_data_init, .-ftl_low_format_data_init
17546	.section	.text.ftl_low_format,"ax",@progbits
17547	.align	2
17548	.global	ftl_low_format
17549	.type	ftl_low_format, %function
17550ftl_low_format:
17551	stp	x29, x30, [sp, -80]!
17552	mov	w1, 0
17553	adrp	x0, .LC156
17554	add	x0, x0, :lo12:.LC156
17555	add	x29, sp, 0
17556	stp	x19, x20, [sp, 16]
17557	adrp	x20, .LANCHOR204
17558	stp	x21, x22, [sp, 32]
17559	add	x20, x20, :lo12:.LANCHOR204
17560	stp	x25, x26, [sp, 64]
17561	adrp	x22, .LANCHOR6
17562	mov	x25, x22
17563	stp	x23, x24, [sp, 48]
17564	mov	w19, 8
17565	adrp	x23, .LC0
17566	bl	printf
17567.L2808:
17568	ldr	x0, [x22, #:lo12:.LANCHOR6]
17569	add	x0, x0, x19, sxtw
17570	ldrb	w21, [x0, 32]
17571	add	w0, w21, 127
17572	and	w0, w0, 255
17573	cmp	w0, 125
17574	bhi	.L2806
17575	mov	w2, 2544
17576	mov	x1, x20
17577	add	x0, x23, :lo12:.LC0
17578	bl	printf
17579.L2806:
17580	cmp	w21, 255
17581	beq	.L2807
17582	adrp	x0, .LANCHOR117
17583	ldrh	w1, [x0, #:lo12:.LANCHOR117]
17584	mov	w0, 0
17585	mul	w1, w1, w21
17586	bl	flash_erase_block
17587.L2807:
17588	add	w19, w19, 1
17589	cmp	w19, 16
17590	bne	.L2808
17591	bl	sblk_init
17592	adrp	x22, .LANCHOR9
17593	bl	ftl_info_blk_init
17594	adrp	x19, .LANCHOR8
17595	adrp	x0, .LANCHOR194
17596	mov	w2, 16384
17597	mov	w1, 0
17598	ldr	x0, [x0, #:lo12:.LANCHOR194]
17599	bl	ftl_memset
17600	ldr	x0, [x22, #:lo12:.LANCHOR9]
17601	mov	w3, 1
17602	ldrh	w2, [x19, #:lo12:.LANCHOR8]
17603	add	x2, x0, x2, lsl 2
17604.L2809:
17605	cmp	x0, x2
17606	bne	.L2810
17607	adrp	x21, .LANCHOR69
17608	mov	w1, 21574
17609	adrp	x24, .LANCHOR74
17610	add	x24, x24, :lo12:.LANCHOR74
17611	ldr	x0, [x21, #:lo12:.LANCHOR69]
17612	movk	w1, 0x494c, lsl 16
17613	mov	w20, 0
17614	mov	w26, 1
17615	strh	wzr, [x0, 148]
17616	str	w1, [x0]
17617.L2811:
17618	ldrh	w0, [x19, #:lo12:.LANCHOR8]
17619	adrp	x23, .LANCHOR81
17620	cmp	w0, w20
17621	bhi	.L2820
17622	ldr	x0, [x25, #:lo12:.LANCHOR6]
17623	mov	w4, 3
17624	ldrb	w2, [x23, #:lo12:.LANCHOR81]
17625	mov	w10, 15
17626	ldr	x6, [x21, #:lo12:.LANCHOR69]
17627	cmp	w2, 1
17628	ldr	x1, [x22, #:lo12:.LANCHOR9]
17629	ldrb	w0, [x0, 47]
17630	csinc	w4, w4, wzr, ne
17631	and	w4, w4, 255
17632	and	w8, w2, 65535
17633	ldrh	w3, [x6, 148]
17634	udiv	w0, w0, w2
17635	and	w5, w0, 65535
17636	ubfiz	x0, x0, 2, 8
17637	add	x0, x0, 4
17638	add	w20, w5, 1
17639	add	x0, x1, x0
17640.L2823:
17641	cmp	w2, 4
17642	add	x1, x1, 4
17643	csel	w7, w10, w4, eq
17644	strb	w7, [x1, -1]
17645	ldrb	w7, [x1, -2]
17646	orr	w7, w7, -32
17647	strb	w7, [x1, -2]
17648	cmp	x1, x0
17649	bne	.L2823
17650	mul	w5, w5, w8
17651	mov	w4, 16
17652	add	w0, w8, w3
17653	sdiv	w4, w4, w2
17654	add	w0, w5, w0, uxth
17655	strh	w0, [x6, 148]
17656	adrp	x0, .LANCHOR19
17657	ldr	w0, [x0, #:lo12:.LANCHOR19]
17658	add	w4, w20, w4
17659	and	w4, w4, 65535
17660	strh	w4, [x6, 134]
17661	tbz	x0, 12, .L2824
17662	adrp	x0, .LC157
17663	mov	w3, w20
17664	mov	w2, 128
17665	mov	w1, 2603
17666	add	x0, x0, :lo12:.LC157
17667	bl	printf
17668.L2824:
17669	ldr	x0, [x21, #:lo12:.LANCHOR69]
17670	mov	w2, 128
17671	mov	w1, 255
17672	add	x0, x0, 160
17673	bl	ftl_memset
17674	adrp	x0, .LANCHOR118
17675	ldrb	w10, [x23, #:lo12:.LANCHOR81]
17676	adrp	x3, .LANCHOR80
17677	ldr	x2, [x21, #:lo12:.LANCHOR69]
17678	ldrb	w16, [x0, #:lo12:.LANCHOR118]
17679	adrp	x0, .LANCHOR31
17680	and	w11, w10, 65535
17681	ldr	x15, [x22, #:lo12:.LANCHOR9]
17682	ldrb	w4, [x0, #:lo12:.LANCHOR31]
17683	mov	w0, 24
17684	ldrh	w8, [x2, 134]
17685	sub	w0, w0, w4
17686	ldrh	w4, [x3, #:lo12:.LANCHOR80]
17687	mul	w1, w20, w11
17688	mov	w3, 0
17689	sub	w0, w0, w4
17690	mov	w4, 1
17691	and	w1, w1, 65535
17692	lsl	w4, w4, w0
17693	and	w4, w4, 65535
17694.L2825:
17695	cmp	w20, w8
17696	bcc	.L2831
17697	ldrh	w0, [x19, #:lo12:.LANCHOR8]
17698	strh	w3, [x2, 112]
17699	sub	w0, w0, w8
17700	strh	wzr, [x2, 114]
17701	strh	w0, [x2, 116]
17702	strh	wzr, [x2, 118]
17703	strh	w8, [x2, 132]
17704	bl	ftl_low_format_data_init
17705	mov	w0, 0
17706	ldp	x19, x20, [sp, 16]
17707	ldp	x21, x22, [sp, 32]
17708	ldp	x23, x24, [sp, 48]
17709	ldp	x25, x26, [sp, 64]
17710	ldp	x29, x30, [sp], 80
17711	ret
17712.L2810:
17713	ldrb	w1, [x0, 2]
17714	add	x0, x0, 4
17715	and	w1, w1, 31
17716	bfi	w1, w3, 3, 2
17717	strb	w1, [x0, -2]
17718	b	.L2809
17719.L2820:
17720	adrp	x0, .LANCHOR87
17721	strh	w20, [x24]
17722	ldrb	w0, [x0, #:lo12:.LANCHOR87]
17723	cbnz	w0, .L2812
17724	mov	w0, w20
17725	bl	ftl_test_block
17726.L2812:
17727	ldrb	w11, [x23, #:lo12:.LANCHOR81]
17728	adrp	x0, .LANCHOR118
17729	ldr	x6, [x22, #:lo12:.LANCHOR9]
17730	mov	w7, 0
17731	ldrb	w14, [x0, #:lo12:.LANCHOR118]
17732	mov	w10, 0
17733	ldr	x13, [x21, #:lo12:.LANCHOR69]
17734	mov	w8, 0
17735	mul	w12, w20, w11
17736	add	x6, x6, x20, uxth 2
17737.L2813:
17738	cmp	w8, w14
17739	bcs	.L2817
17740	add	w15, w11, w7
17741	b	.L2818
17742.L2816:
17743	add	w1, w7, w12
17744	mov	w0, w8
17745	bl	flash_check_bad_block
17746	cbz	w0, .L2814
17747	ldrb	w1, [x6, 3]
17748	lsl	w0, w26, w7
17749	orr	w0, w0, w1
17750	strb	w0, [x6, 3]
17751	ldrh	w0, [x13, 148]
17752	add	w0, w0, 1
17753	strh	w0, [x13, 148]
17754.L2815:
17755	add	w7, w7, 1
17756.L2818:
17757	cmp	w7, w15
17758	bne	.L2816
17759	add	w8, w8, 1
17760	sub	w12, w12, w11
17761	and	w8, w8, 65535
17762	b	.L2813
17763.L2814:
17764	add	w10, w10, 1
17765	and	w10, w10, 65535
17766	b	.L2815
17767.L2817:
17768	cbnz	w10, .L2819
17769	ldrb	w0, [x6, 2]
17770	orr	w0, w0, -32
17771	strb	w0, [x6, 2]
17772.L2819:
17773	add	w20, w20, 1
17774	and	w20, w20, 65535
17775	b	.L2811
17776.L2831:
17777	add	x13, x15, x20, uxth 2
17778	mov	w6, 0
17779	mov	w12, 0
17780	mov	w5, 0
17781	ldrb	w0, [x13, 2]
17782	orr	w0, w0, -32
17783	strb	w0, [x13, 2]
17784.L2826:
17785	cmp	w5, w16
17786	bcc	.L2833
17787	add	w20, w20, 1
17788	add	w1, w1, w11
17789	and	w20, w20, 65535
17790	and	w1, w1, 65535
17791	b	.L2825
17792.L2829:
17793	ldrb	w14, [x13, 3]
17794	add	w17, w12, w7
17795	asr	w14, w14, w17
17796	tbnz	x14, 0, .L2827
17797	cmp	w10, 1
17798	bls	.L2832
17799	and	w0, w0, 1
17800	add	w0, w1, w0
17801	and	w0, w0, 65535
17802.L2828:
17803	add	x14, x2, x3, sxtw 1
17804	add	w3, w3, 1
17805	and	w3, w3, 65535
17806	add	w0, w0, w6
17807	strh	w0, [x14, 160]
17808.L2827:
17809	add	x7, x7, 1
17810.L2830:
17811	and	w0, w7, 65535
17812	cmp	w0, w11
17813	bcc	.L2829
17814	add	w5, w5, 1
17815	add	w6, w4, w6
17816	and	w5, w5, 65535
17817	add	w12, w12, w10
17818	and	w6, w6, 65535
17819	b	.L2826
17820.L2832:
17821	mov	w0, w1
17822	b	.L2828
17823.L2833:
17824	mov	x7, 0
17825	b	.L2830
17826	.size	ftl_low_format, .-ftl_low_format
17827	.section	.text.ftl_re_low_format,"ax",@progbits
17828	.align	2
17829	.global	ftl_re_low_format
17830	.type	ftl_re_low_format, %function
17831ftl_re_low_format:
17832	stp	x29, x30, [sp, -16]!
17833	mov	w1, 1
17834	adrp	x0, .LC158
17835	add	x0, x0, :lo12:.LC158
17836	add	x29, sp, 0
17837	bl	printf
17838	bl	sblk_init
17839	bl	ftl_info_blk_init
17840	bl	ftl_ext_info_init
17841	adrp	x0, .LANCHOR69
17842	adrp	x2, .LANCHOR8
17843	mov	w3, 0
17844	mov	w4, 0
17845	ldr	x0, [x0, #:lo12:.LANCHOR69]
17846	mov	w5, 0
17847	ldrh	w7, [x2, #:lo12:.LANCHOR8]
17848	adrp	x2, .LANCHOR9
17849	ldr	x2, [x2, #:lo12:.LANCHOR9]
17850	ldrh	w1, [x0, 134]
17851	add	x2, x2, x1, uxth 2
17852.L2844:
17853	cmp	w1, w7
17854	bcc	.L2848
17855	strh	w5, [x0, 114]
17856	strh	w4, [x0, 118]
17857	strh	w3, [x0, 116]
17858	strh	wzr, [x0, 122]
17859	strh	wzr, [x0, 120]
17860	strh	wzr, [x0, 124]
17861	bl	ftl_low_format_data_init
17862	mov	w0, 0
17863	ldp	x29, x30, [sp], 16
17864	ret
17865.L2848:
17866	ldrb	w6, [x2, 2]
17867	and	w8, w6, 31
17868	strb	w8, [x2, 2]
17869	ands	w6, w6, 24
17870	bne	.L2845
17871	add	w5, w5, 1
17872	and	w5, w5, 65535
17873.L2846:
17874	add	w1, w1, 1
17875	add	x2, x2, 4
17876	and	w1, w1, 65535
17877	b	.L2844
17878.L2845:
17879	cmp	w6, 16
17880	bne	.L2847
17881	add	w4, w4, 1
17882	and	w4, w4, 65535
17883	b	.L2846
17884.L2847:
17885	add	w3, w3, 1
17886	and	w3, w3, 65535
17887	b	.L2846
17888	.size	ftl_re_low_format, .-ftl_re_low_format
17889	.section	.text.ftl_prog_ppa_page,"ax",@progbits
17890	.align	2
17891	.global	ftl_prog_ppa_page
17892	.type	ftl_prog_ppa_page, %function
17893ftl_prog_ppa_page:
17894	adrp	x4, .LANCHOR31
17895	mov	w5, 1
17896	ldrb	w6, [x4, #:lo12:.LANCHOR31]
17897	mov	w4, 24
17898	sub	w4, w4, w6
17899	lsl	w7, w5, w4
17900	sub	w7, w7, #1
17901	lsl	w5, w5, w6
17902	sub	w6, w5, #1
17903	lsr	w5, w0, w4
17904	mov	w4, w3
17905	mov	x3, x2
17906	mov	x2, x1
17907	and	w1, w7, w0
17908	and	w0, w6, w5
17909	b	ftl_prog_page
17910	.size	ftl_prog_ppa_page, .-ftl_prog_ppa_page
17911	.section	.text.ftl_write_last_log_page,"ax",@progbits
17912	.align	2
17913	.global	ftl_write_last_log_page
17914	.type	ftl_write_last_log_page, %function
17915ftl_write_last_log_page:
17916	ldrh	w1, [x0, 6]
17917	cmp	w1, 1
17918	bne	.L2853
17919	stp	x29, x30, [sp, -48]!
17920	adrp	x1, .LANCHOR123
17921	add	x29, sp, 0
17922	stp	x19, x20, [sp, 16]
17923	mov	x19, x0
17924	stp	x21, x22, [sp, 32]
17925	ldr	x20, [x1, #:lo12:.LANCHOR123]
17926	ldrh	w22, [x0, 12]
17927	bl	ftl_get_new_free_page
17928	mov	w21, w0
17929	cmn	w0, #1
17930	beq	.L2854
17931	ldrh	w0, [x19]
17932	add	x20, x20, x22, uxth 2
17933	bl	ftl_vpn_decrement
17934	adrp	x0, .LANCHOR190
17935	mov	w1, 15555
17936	add	x7, x0, :lo12:.LANCHOR190
17937	movk	w1, 0xf55f, lsl 16
17938	str	w1, [x0, #:lo12:.LANCHOR190]
17939	adrp	x0, .LANCHOR100
17940	ldrh	w1, [x0, #:lo12:.LANCHOR100]
17941	adrp	x0, .LANCHOR85
17942	ldrb	w0, [x0, #:lo12:.LANCHOR85]
17943	mul	w1, w1, w0
17944	mov	x0, x20
17945	lsl	w1, w1, 2
17946	bl	js_hash
17947	mov	x1, x7
17948	mov	x2, 0
17949	stp	w0, wzr, [x7, 4]
17950	mov	w0, 2
17951	str	wzr, [x7, 12]
17952	str	wzr, [x1, 16]!
17953	bl	ftl_debug_info_fill
17954	mov	x2, x7
17955	adrp	x0, .LANCHOR68
17956	mov	x1, x20
17957	ldrb	w3, [x0, #:lo12:.LANCHOR68]
17958	mov	w0, w21
17959	bl	ftl_prog_ppa_page
17960.L2854:
17961	mov	w0, 0
17962	ldp	x19, x20, [sp, 16]
17963	ldp	x21, x22, [sp, 32]
17964	ldp	x29, x30, [sp], 48
17965	ret
17966.L2853:
17967	mov	w0, -1
17968	ret
17969	.size	ftl_write_last_log_page, .-ftl_write_last_log_page
17970	.section	.text.pm_write_page,"ax",@progbits
17971	.align	2
17972	.global	pm_write_page
17973	.type	pm_write_page, %function
17974pm_write_page:
17975	stp	x29, x30, [sp, -96]!
17976	add	x29, sp, 0
17977	stp	x19, x20, [sp, 16]
17978	mov	w19, w0
17979	stp	x21, x22, [sp, 32]
17980	adrp	x21, .LANCHOR100
17981	stp	x23, x24, [sp, 48]
17982	adrp	x22, .LANCHOR117
17983	adrp	x24, .LANCHOR69
17984	mov	x23, x1
17985	add	x21, x21, :lo12:.LANCHOR100
17986	mov	x20, x24
17987	add	x22, x22, :lo12:.LANCHOR117
17988	stp	x25, x26, [sp, 64]
17989	str	x27, [sp, 80]
17990	mov	w25, 65535
17991.L2860:
17992	ldr	x0, [x24, #:lo12:.LANCHOR69]
17993	ldr	w1, [x0, 48]
17994	ldrh	w2, [x0, 696]
17995	add	w1, w1, 1
17996	str	w1, [x0, 48]
17997	ldrh	w1, [x21]
17998	cmp	w2, w1
17999	bcs	.L2861
18000	ldrh	w0, [x0, 692]
18001	cmp	w0, w25
18002	bne	.L2862
18003.L2861:
18004	bl	pm_alloc_new_blk
18005	mov	w0, 0
18006	bl	ftl_info_flush
18007.L2862:
18008	ldr	x0, [x20, #:lo12:.LANCHOR69]
18009	ldrh	w0, [x0, 692]
18010	cmp	w0, w25
18011	bne	.L2863
18012	adrp	x1, .LANCHOR205
18013	adrp	x0, .LC0
18014	mov	w2, 303
18015	add	x1, x1, :lo12:.LANCHOR205
18016	add	x0, x0, :lo12:.LC0
18017	bl	printf
18018.L2863:
18019	ldr	x0, [x20, #:lo12:.LANCHOR69]
18020	adrp	x27, .LANCHOR206
18021	ldrh	w1, [x22]
18022	mov	w2, 64
18023	ldrh	w26, [x0, 692]
18024	ldrh	w0, [x0, 696]
18025	madd	w26, w26, w1, w0
18026	ldr	x0, [x27, #:lo12:.LANCHOR206]
18027	mov	w1, 0
18028	bl	ftl_memset
18029	ldr	x6, [x27, #:lo12:.LANCHOR206]
18030	ldr	x7, [x20, #:lo12:.LANCHOR69]
18031	str	w19, [x6]
18032	ldr	w0, [x7, 48]
18033	str	w0, [x6, 4]
18034	adrp	x0, .LANCHOR68
18035	ldrb	w8, [x0, #:lo12:.LANCHOR68]
18036	mov	x0, x23
18037	lsl	w1, w8, 9
18038	bl	js_hash
18039	str	w0, [x6, 8]
18040	ldrb	w0, [x7, 694]
18041	mov	x2, x23
18042	mov	w1, w26
18043	mov	w4, w8
18044	mov	x3, x6
18045	bl	ftl_prog_page
18046	ldr	x2, [x20, #:lo12:.LANCHOR69]
18047	ldrh	w1, [x2, 696]
18048	add	w1, w1, 1
18049	and	w1, w1, 65535
18050	strh	w1, [x2, 696]
18051	cmp	w1, 1
18052	adrp	x1, .LANCHOR207
18053	beq	.L2864
18054	ldrb	w3, [x1, #:lo12:.LANCHOR207]
18055	cbz	w3, .L2865
18056.L2864:
18057	strb	wzr, [x1, #:lo12:.LANCHOR207]
18058	b	.L2860
18059.L2865:
18060	cmn	w0, #1
18061	bne	.L2867
18062	mov	w1, w26
18063	adrp	x0, .LC159
18064	add	x0, x0, :lo12:.LC159
18065	bl	printf
18066	b	.L2860
18067.L2867:
18068	ldrh	w0, [x2, 698]
18069	cmp	w19, w0
18070	bcs	.L2868
18071	add	x19, x2, x19, uxtw 2
18072	str	w26, [x19, 704]
18073.L2868:
18074	mov	w0, 0
18075	ldr	x27, [sp, 80]
18076	ldp	x19, x20, [sp, 16]
18077	ldp	x21, x22, [sp, 32]
18078	ldp	x23, x24, [sp, 48]
18079	ldp	x25, x26, [sp, 64]
18080	ldp	x29, x30, [sp], 96
18081	ret
18082	.size	pm_write_page, .-pm_write_page
18083	.section	.text.ftl_dump_write_open_sblk,"ax",@progbits
18084	.align	2
18085	.global	ftl_dump_write_open_sblk
18086	.type	ftl_dump_write_open_sblk, %function
18087ftl_dump_write_open_sblk:
18088	sub	sp, sp, #224
18089	stp	x29, x30, [sp, 48]
18090	add	x29, sp, 48
18091	stp	x19, x20, [sp, 64]
18092	and	w20, w0, 65535
18093	adrp	x0, .LANCHOR8
18094	stp	x21, x22, [sp, 80]
18095	stp	x23, x24, [sp, 96]
18096	ldrh	w0, [x0, #:lo12:.LANCHOR8]
18097	stp	x25, x26, [sp, 112]
18098	stp	x27, x28, [sp, 128]
18099	cmp	w0, w20
18100	bls	.L2873
18101	adrp	x0, .LANCHOR89
18102	str	x0, [x29, 120]
18103	ldrb	w1, [x0, #:lo12:.LANCHOR89]
18104	cbnz	w1, .L2875
18105	adrp	x0, .LANCHOR86
18106	ldrb	w0, [x0, #:lo12:.LANCHOR86]
18107	cbz	w0, .L2873
18108.L2875:
18109	adrp	x0, .LANCHOR35
18110	ldrb	w0, [x0, #:lo12:.LANCHOR35]
18111	cbnz	w0, .L2873
18112	adrp	x0, .LANCHOR9
18113	ubfiz	x14, x20, 2, 16
18114	mov	x15, x0
18115	ldr	x1, [x0, #:lo12:.LANCHOR9]
18116	add	x1, x1, x14
18117	ldrb	w1, [x1, 2]
18118	and	w1, w1, 224
18119	cmp	w1, 160
18120	bne	.L2897
18121	adrp	x0, .LANCHOR84
18122	ldrb	w25, [x0, #:lo12:.LANCHOR84]
18123.L2876:
18124	add	x21, x29, 176
18125	adrp	x23, .LANCHOR100
18126	mov	w0, w20
18127	adrp	x26, .LANCHOR117
18128	add	x26, x26, :lo12:.LANCHOR117
18129	mov	w27, 0
18130	strh	w20, [x21, -32]!
18131	mov	w28, 0
18132	add	x1, x21, 16
18133	bl	ftl_get_blk_list_in_sblk
18134	ldrh	w1, [x23, #:lo12:.LANCHOR100]
18135	and	w0, w0, 255
18136	strb	w0, [x29, 153]
18137	strb	wzr, [x29, 149]
18138	strh	wzr, [x29, 146]
18139	mul	w0, w0, w1
18140	strh	wzr, [x29, 154]
18141	strh	w0, [x29, 150]
18142	ldr	x0, [x15, #:lo12:.LANCHOR9]
18143	add	x1, x0, x14
18144	ldr	w5, [x0, x14]
18145	ldrb	w2, [x1, 2]
18146	mov	w1, w20
18147	ldrh	w4, [x0, x14]
18148	adrp	x0, .LC160
18149	ubfx	x5, x5, 11, 8
18150	add	x0, x0, :lo12:.LC160
18151	ubfx	x3, x2, 3, 2
18152	and	w4, w4, 2047
18153	ubfx	x2, x2, 5, 3
18154	bl	printf
18155	mov	w0, 1
18156	bl	buf_alloc
18157	mov	x19, x0
18158	mov	w10, 0
18159	add	x0, x23, :lo12:.LANCHOR100
18160	str	x0, [x29, 128]
18161.L2877:
18162	ldr	x0, [x29, 128]
18163	ldrh	w0, [x0]
18164	cmp	w0, w27
18165	bls	.L2885
18166	lsl	w22, w27, 1
18167	mov	w28, 0
18168	sub	w0, w22, #1
18169	add	w22, w22, w27
18170	str	w0, [x29, 140]
18171	sub	w22, w22, #1
18172	adrp	x0, .LC161
18173	add	x0, x0, :lo12:.LC161
18174	str	x0, [x29, 112]
18175	b	.L2888
18176.L2897:
18177	mov	w25, 1
18178	b	.L2876
18179.L2886:
18180	ldrh	w12, [x21, x24]
18181	mov	w0, 65535
18182	cmp	w12, w0
18183	bne	.L2878
18184.L2884:
18185	add	w10, w10, 1
18186	and	w10, w10, 65535
18187.L2879:
18188	cmp	w25, w10
18189	bcs	.L2886
18190	add	w11, w28, 1
18191	and	w28, w11, 65535
18192.L2888:
18193	ldrb	w0, [x29, 153]
18194	cmp	w0, w28
18195	bls	.L2887
18196	sxtw	x24, w28
18197	mov	w10, 1
18198	add	x24, x24, 8
18199	lsl	x24, x24, 1
18200	b	.L2879
18201.L2878:
18202	ldrh	w3, [x26]
18203	cmp	w25, 3
18204	mul	w3, w3, w12
18205	add	w0, w3, w10
18206	bne	.L2880
18207	adrp	x1, .LANCHOR36
18208	ldrb	w1, [x1, #:lo12:.LANCHOR36]
18209	cbz	w1, .L2881
18210	adrp	x1, .LANCHOR84
18211	add	w0, w0, w22
18212	ldrb	w3, [x1, #:lo12:.LANCHOR84]
18213.L2911:
18214	orr	w3, w0, w3, lsl 24
18215	b	.L2882
18216.L2881:
18217	add	w3, w27, w3
18218	orr	w3, w3, w10, lsl 24
18219.L2882:
18220	str	w3, [x19, 40]
18221	mov	w1, 1
18222	stp	w10, w12, [x29, 104]
18223	mov	x0, x19
18224	str	w3, [x29, 136]
18225	bl	sblk_read_page
18226	ldr	w13, [x19, 52]
18227	ldp	w10, w12, [x29, 104]
18228	cmp	w13, 512
18229	ccmn	w13, #1, 4, ne
18230	ldr	w3, [x29, 136]
18231	bne	.L2884
18232	ldr	x1, [x19, 24]
18233	mov	w4, w13
18234	ldr	x0, [x19, 8]
18235	str	w10, [x29, 108]
18236	str	w13, [x29, 136]
18237	ldr	w2, [x1, 12]
18238	str	w2, [sp, 32]
18239	ldr	w2, [x1, 8]
18240	str	w2, [sp, 24]
18241	ldr	w2, [x1, 4]
18242	str	w2, [sp, 16]
18243	mov	w2, w27
18244	ldr	w1, [x1]
18245	str	w1, [sp, 8]
18246	ldr	w1, [x0, 12]
18247	str	w1, [sp]
18248	mov	w1, w12
18249	ldp	w5, w6, [x0]
18250	ldr	w7, [x0, 8]
18251	ldr	x0, [x29, 112]
18252	bl	printf
18253	ldr	w13, [x29, 136]
18254	ldr	w10, [x29, 108]
18255	cmp	w13, 512
18256	bne	.L2884
18257.L2885:
18258	mov	w4, w10
18259	mov	w3, w28
18260	mov	w2, w27
18261	mov	w1, w20
18262	adrp	x24, .LANCHOR68
18263	adrp	x0, .LC162
18264	add	x0, x0, :lo12:.LC162
18265	bl	printf
18266	ldr	x0, [x19, 8]
18267	mov	w1, 0
18268	ldrb	w2, [x24, #:lo12:.LANCHOR68]
18269	adrp	x25, .LANCHOR19
18270	adrp	x26, .LC163
18271	add	x25, x25, :lo12:.LANCHOR19
18272	add	x26, x26, :lo12:.LC163
18273	lsl	w2, w2, 9
18274	bl	ftl_memset
18275	ldr	x0, [x19, 24]
18276	mov	w1, 0
18277	ldrb	w2, [x24, #:lo12:.LANCHOR68]
18278	lsl	w2, w2, 1
18279	bl	ftl_memset
18280.L2889:
18281	ldrh	w0, [x23, #:lo12:.LANCHOR100]
18282	cmp	w0, w27
18283	bls	.L2895
18284	lsl	w0, w27, 1
18285	str	w0, [x29, 140]
18286	ldr	x0, [x29, 120]
18287	mov	w22, 0
18288	add	x28, x0, :lo12:.LANCHOR89
18289	b	.L2896
18290.L2880:
18291	cmp	w25, 2
18292	bne	.L2883
18293	adrp	x1, .LANCHOR84
18294	ldrb	w3, [x1, #:lo12:.LANCHOR84]
18295	ldr	w1, [x29, 140]
18296	add	w0, w1, w0
18297	b	.L2911
18298.L2883:
18299	add	w3, w27, w3
18300	b	.L2882
18301.L2887:
18302	add	w8, w27, 1
18303	and	w27, w8, 65535
18304	b	.L2877
18305.L2894:
18306	ldr	w0, [x25]
18307	tbz	x0, 12, .L2890
18308	mov	w2, w22
18309	mov	w1, w27
18310	mov	x0, x26
18311	bl	printf
18312.L2890:
18313	ldrb	w1, [x28]
18314	adrp	x2, .LANCHOR117
18315	sxtw	x0, w22
18316	cbz	w1, .L2891
18317	add	x0, x0, 8
18318	ldrh	w1, [x2, #:lo12:.LANCHOR117]
18319	ldrh	w0, [x21, x0, lsl 1]
18320	mul	w0, w0, w1
18321	orr	w0, w0, w27
18322	str	w0, [x19, 40]
18323	mov	x0, x19
18324	bl	sblk_3d_tlc_dump_prog
18325.L2892:
18326	add	w22, w22, 1
18327	and	w22, w22, 65535
18328.L2896:
18329	ldrb	w0, [x29, 153]
18330	cmp	w0, w22
18331	bhi	.L2894
18332	add	w8, w27, 1
18333	and	w27, w8, 65535
18334	b	.L2889
18335.L2891:
18336	adrp	x1, .LANCHOR84
18337	add	x0, x0, 8
18338	ldrb	w1, [x1, #:lo12:.LANCHOR84]
18339	cmp	w1, 2
18340	bne	.L2893
18341	ldrh	w1, [x2, #:lo12:.LANCHOR117]
18342	ldrh	w0, [x21, x0, lsl 1]
18343	mul	w0, w0, w1
18344	ldr	w1, [x29, 140]
18345	orr	w0, w0, w1
18346	orr	w0, w0, 33554432
18347	str	w0, [x19, 40]
18348	mov	x0, x19
18349	bl	sblk_mlc_dump_prog
18350	b	.L2892
18351.L2893:
18352	ldrh	w1, [x21, x0, lsl 1]
18353	mov	w6, 1
18354	ldrh	w0, [x2, #:lo12:.LANCHOR117]
18355	mov	w5, 0
18356	ldrb	w4, [x24, #:lo12:.LANCHOR68]
18357	ldr	x3, [x19, 24]
18358	mul	w1, w1, w0
18359	adrp	x0, .LANCHOR31
18360	ldrb	w2, [x0, #:lo12:.LANCHOR31]
18361	mov	w0, 24
18362	orr	w1, w1, w27
18363	str	w1, [x19, 40]
18364	sub	w0, w0, w2
18365	lsl	w6, w6, w2
18366	ldr	x2, [x19, 8]
18367	sub	w6, w6, #1
18368	lsl	w7, w6, w0
18369	lsr	w0, w1, w0
18370	bic	w1, w1, w7
18371	and	w0, w0, w6
18372	bl	flash_prog_page_en
18373	b	.L2892
18374.L2895:
18375	mov	x0, x19
18376	bl	zbuf_free
18377	adrp	x0, .LC164
18378	mov	w1, w20
18379	add	x0, x0, :lo12:.LC164
18380	bl	printf
18381.L2873:
18382	ldp	x19, x20, [sp, 64]
18383	ldp	x21, x22, [sp, 80]
18384	ldp	x23, x24, [sp, 96]
18385	ldp	x25, x26, [sp, 112]
18386	ldp	x27, x28, [sp, 128]
18387	ldp	x29, x30, [sp, 48]
18388	add	sp, sp, 224
18389	ret
18390	.size	ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk
18391	.section	.text.gc_ink_check_sblk,"ax",@progbits
18392	.align	2
18393	.global	gc_ink_check_sblk
18394	.type	gc_ink_check_sblk, %function
18395gc_ink_check_sblk:
18396	stp	x29, x30, [sp, -80]!
18397	add	x29, sp, 0
18398	stp	x19, x20, [sp, 16]
18399	adrp	x19, .LANCHOR76
18400	add	x0, x19, :lo12:.LANCHOR76
18401	stp	x21, x22, [sp, 32]
18402	stp	x23, x24, [sp, 48]
18403	stp	x25, x26, [sp, 64]
18404	ldrh	w1, [x0, 2110]
18405	ldr	x22, [x0, 2184]
18406	cmp	w1, 3
18407	bhi	.L2913
18408	adrp	x0, .L2915
18409	mov	x20, x19
18410	add	x0, x0, :lo12:.L2915
18411	ldrh	w0, [x0,w1,uxtw #1]
18412	adr	x1, .Lrtx2915
18413	add	x0, x1, w0, sxth #2
18414	br	x0
18415.Lrtx2915:
18416	.section	.rodata.gc_ink_check_sblk,"a",@progbits
18417	.align	0
18418	.align	2
18419.L2915:
18420	.2byte	(.L2914 - .Lrtx2915) / 4
18421	.2byte	(.L2916 - .Lrtx2915) / 4
18422	.2byte	(.L2917 - .Lrtx2915) / 4
18423	.2byte	(.L2918 - .Lrtx2915) / 4
18424	.section	.text.gc_ink_check_sblk
18425.L2914:
18426	adrp	x0, .LANCHOR113
18427	add	x24, x0, :lo12:.LANCHOR113
18428	ldrh	w0, [x0, #:lo12:.LANCHOR113]
18429	cmp	w0, 7
18430	bls	.L2912
18431	adrp	x0, .LANCHOR57
18432	ldrb	w0, [x0, #:lo12:.LANCHOR57]
18433	cmp	w0, 2
18434	bls	.L2912
18435	adrp	x21, .LANCHOR114
18436	add	x21, x21, :lo12:.LANCHOR114
18437	mov	w1, 0
18438	mov	x0, x21
18439	bl	_list_get_gc_head_node
18440	and	w0, w0, 65535
18441	mov	w23, 65535
18442	cmp	w0, w23
18443	beq	.L2912
18444	adrp	x22, .LANCHOR9
18445	ubfiz	x0, x0, 2, 16
18446	ldr	x1, [x22, #:lo12:.LANCHOR9]
18447	ldrh	w0, [x1, x0]
18448	and	w0, w0, 2047
18449	cmp	w0, 2
18450	bgt	.L2912
18451	add	x20, x19, :lo12:.LANCHOR76
18452	mov	w0, 1
18453	bl	buf_alloc
18454	str	x0, [x20, 2184]
18455	cbz	x0, .L2912
18456	mov	x2, x24
18457	mov	w1, 0
18458	mov	x0, x21
18459	bl	_list_pop_index_node
18460	and	w14, w0, 65535
18461	cmp	w14, w23
18462	bne	.L2922
18463	ldr	x0, [x20, 2184]
18464	bl	zbuf_free
18465	str	xzr, [x20, 2184]
18466.L2912:
18467	ldp	x19, x20, [sp, 16]
18468	ldp	x21, x22, [sp, 32]
18469	ldp	x23, x24, [sp, 48]
18470	ldp	x25, x26, [sp, 64]
18471	ldp	x29, x30, [sp], 80
18472	ret
18473.L2922:
18474	add	x1, x20, 2162
18475	mov	w0, w14
18476	bl	ftl_get_blk_list_in_sblk
18477	strb	w0, [x20, 2155]
18478	mov	w0, 1
18479	strh	w0, [x20, 2110]
18480	ldr	x0, [x22, #:lo12:.LANCHOR9]
18481	strh	w14, [x20, 2146]
18482	ubfiz	x14, x14, 2, 16
18483	strh	wzr, [x20, 2148]
18484	ldrh	w1, [x0, x14]
18485	adrp	x0, .LANCHOR68
18486	ldrb	w2, [x0, #:lo12:.LANCHOR68]
18487	ldr	x0, [x20, 2184]
18488	lsl	w2, w2, 9
18489	tbz	x1, 0, .L2923
18490	mov	w1, 85
18491.L2938:
18492	ldp	x19, x20, [sp, 16]
18493	ldp	x21, x22, [sp, 32]
18494	ldp	x23, x24, [sp, 48]
18495	ldp	x25, x26, [sp, 64]
18496	ldr	x0, [x0, 8]
18497	ldp	x29, x30, [sp], 80
18498	b	ftl_memset
18499.L2923:
18500	mov	w1, 170
18501	b	.L2938
18502.L2916:
18503	add	x20, x19, :lo12:.LANCHOR76
18504	mov	w1, 0
18505	ldrh	w0, [x20, 2146]
18506	bl	ftl_erase_sblk
18507	mov	w0, 2
18508	strh	w0, [x20, 2110]
18509	b	.L2912
18510.L2917:
18511	adrp	x21, .LANCHOR117
18512	mov	w24, 65280
18513	adrp	x23, .LANCHOR31
18514	add	x21, x21, :lo12:.LANCHOR117
18515	add	x23, x23, :lo12:.LANCHOR31
18516	mov	w19, 0
18517	movk	w24, 0x55aa, lsl 16
18518	bl	sblk_wait_write_queue_completed
18519.L2924:
18520	add	x0, x20, :lo12:.LANCHOR76
18521	ldrb	w1, [x0, 2155]
18522	cmp	w1, w19
18523	bhi	.L2926
18524	ldrh	w1, [x0, 2148]
18525	adrp	x2, .LANCHOR100
18526	add	w1, w1, 1
18527	ldrh	w2, [x2, #:lo12:.LANCHOR100]
18528	and	w1, w1, 65535
18529	strh	w1, [x0, 2148]
18530	cmp	w2, w1
18531	bhi	.L2912
18532	mov	w1, 3
18533	strh	wzr, [x0, 2148]
18534	strh	w1, [x0, 2110]
18535	b	.L2912
18536.L2926:
18537	add	x1, x0, x19, sxtw 1
18538	ldrh	w2, [x1, 2162]
18539	mov	w1, 65535
18540	cmp	w2, w1
18541	beq	.L2925
18542	ldrh	w0, [x0, 2148]
18543	mov	w6, 1
18544	ldrh	w1, [x21]
18545	mov	w5, 0
18546	ldr	x3, [x22, 24]
18547	madd	w1, w1, w2, w0
18548	ldr	x2, [x22, 8]
18549	mov	w0, 24
18550	stp	w1, w24, [x2]
18551	str	wzr, [x3]
18552	ldrb	w4, [x23]
18553	sub	w0, w0, w4
18554	lsl	w6, w6, w4
18555	adrp	x4, .LANCHOR68
18556	sub	w6, w6, #1
18557	ldrb	w4, [x4, #:lo12:.LANCHOR68]
18558	lsl	w7, w6, w0
18559	lsr	w0, w1, w0
18560	bic	w1, w1, w7
18561	and	w0, w0, w6
18562	bl	flash_prog_page_en
18563.L2925:
18564	add	w19, w19, 1
18565	and	w19, w19, 65535
18566	b	.L2924
18567.L2918:
18568	adrp	x25, .LANCHOR117
18569	add	x19, x19, :lo12:.LANCHOR76
18570	add	x25, x25, :lo12:.LANCHOR117
18571	mov	w21, 0
18572	mov	w26, 65535
18573	bl	sblk_wait_write_queue_completed
18574.L2927:
18575	ldrb	w0, [x19, 2155]
18576	cmp	w0, w21
18577	bhi	.L2931
18578	ldrh	w0, [x19, 2148]
18579	adrp	x1, .LANCHOR100
18580	add	w0, w0, 1
18581	ldrh	w1, [x1, #:lo12:.LANCHOR100]
18582	and	w0, w0, 65535
18583	strh	w0, [x19, 2148]
18584	cmp	w1, w0
18585	bhi	.L2912
18586	ldr	x0, [x19, 2184]
18587	strh	wzr, [x19, 2110]
18588	bl	zbuf_free
18589	str	xzr, [x19, 2184]
18590	ldrh	w0, [x19, 2112]
18591	cmp	w0, 15
18592	bhi	.L2932
18593	add	w1, w0, 1
18594	add	x0, x19, x0, sxtw 1
18595	strh	w1, [x19, 2112]
18596	ldrh	w1, [x19, 2146]
18597	strh	w1, [x0, 2114]
18598.L2933:
18599	add	x19, x20, :lo12:.LANCHOR76
18600	adrp	x0, .LC165
18601	ldp	x21, x22, [sp, 32]
18602	add	x0, x0, :lo12:.LC165
18603	ldrh	w2, [x19, 2112]
18604	ldrh	w1, [x19, 2146]
18605	ldp	x23, x24, [sp, 48]
18606	ldp	x19, x20, [sp, 16]
18607	ldp	x25, x26, [sp, 64]
18608	ldp	x29, x30, [sp], 80
18609	b	printf
18610.L2931:
18611	add	x24, x19, x21, sxtw 1
18612	add	x24, x24, 16
18613	ldrh	w0, [x24, 2146]
18614	cmp	w0, w26
18615	beq	.L2929
18616	ldrh	w1, [x19, 2148]
18617	ldrh	w23, [x25]
18618	madd	w23, w23, w0, w1
18619	mov	w1, 1
18620	str	w23, [x22, 40]
18621	mov	x0, x22
18622	bl	sblk_read_page
18623	ldr	x0, [x22, 8]
18624	ldr	w0, [x0]
18625	cmp	w23, w0
18626	beq	.L2929
18627	mov	w0, w23
18628	bl	ftl_mask_bad_block
18629	mov	w0, -1
18630	strh	w0, [x24, 2146]
18631.L2929:
18632	add	w21, w21, 1
18633	and	w21, w21, 65535
18634	b	.L2927
18635.L2932:
18636	ldrh	w0, [x19, 2146]
18637	bl	zftl_insert_free_list
18638	b	.L2933
18639.L2913:
18640	strh	wzr, [x0, 2110]
18641	b	.L2912
18642	.size	gc_ink_check_sblk, .-gc_ink_check_sblk
18643	.section	.text.flash_info_flush,"ax",@progbits
18644	.align	2
18645	.global	flash_info_flush
18646	.type	flash_info_flush, %function
18647flash_info_flush:
18648	stp	x29, x30, [sp, -112]!
18649	adrp	x0, .LANCHOR19
18650	add	x29, sp, 0
18651	ldr	w0, [x0, #:lo12:.LANCHOR19]
18652	stp	x19, x20, [sp, 16]
18653	stp	x21, x22, [sp, 32]
18654	stp	x23, x24, [sp, 48]
18655	stp	x25, x26, [sp, 64]
18656	stp	x27, x28, [sp, 80]
18657	tbz	x0, 12, .L2940
18658	adrp	x2, .LANCHOR208
18659	adrp	x0, .LC91
18660	add	x2, x2, :lo12:.LANCHOR208
18661	mov	w1, 365
18662	add	x0, x0, :lo12:.LC91
18663	bl	printf
18664.L2940:
18665	adrp	x23, .LANCHOR209
18666	adrp	x20, .LANCHOR6
18667	mov	w2, 64
18668	mov	w1, 0
18669	ldr	x0, [x23, #:lo12:.LANCHOR209]
18670	adrp	x21, .LANCHOR210
18671	adrp	x22, .LANCHOR2
18672	adrp	x24, .LC167
18673	adrp	x25, .LANCHOR145
18674	add	x22, x22, :lo12:.LANCHOR2
18675	add	x24, x24, :lo12:.LC167
18676	add	x25, x25, :lo12:.LANCHOR145
18677	bl	ftl_memset
18678	add	x27, x21, :lo12:.LANCHOR210
18679	ldr	x1, [x20, #:lo12:.LANCHOR6]
18680	mov	w3, 16
18681	mov	w2, 4
18682	adrp	x0, .LC166
18683	add	x0, x0, :lo12:.LC166
18684	mov	w26, 0
18685	bl	rknand_print_hex
18686	ldr	x6, [x20, #:lo12:.LANCHOR6]
18687	add	x0, x6, 16
18688	ldr	w1, [x6, 8]
18689	bl	js_hash
18690	str	w0, [x6, 12]
18691.L2941:
18692	add	x28, x21, :lo12:.LANCHOR210
18693	ldrb	w4, [x21, #:lo12:.LANCHOR210]
18694	ldrh	w19, [x22]
18695	mov	x0, x24
18696	mov	w1, w4
18697	ldrh	w3, [x28, 2]
18698	stp	w3, w4, [x29, 104]
18699	mov	w2, w3
18700	bl	printf
18701	ldrh	w0, [x25]
18702	ldrh	w1, [x28, 2]
18703	sub	w0, w0, #1
18704	cmp	w1, w0
18705	ldp	w3, w4, [x29, 104]
18706	blt	.L2942
18707	ldr	x6, [x20, #:lo12:.LANCHOR6]
18708	ldrb	w7, [x28, 1]
18709	strh	wzr, [x28, 2]
18710	ldr	w0, [x6, 4]
18711	ldrh	w1, [x6, 16]
18712	add	w0, w0, 1
18713	str	w0, [x6, 4]
18714	ldrb	w0, [x21, #:lo12:.LANCHOR210]
18715	add	w1, w1, 1
18716	strb	w0, [x28, 1]
18717	mov	x0, x6
18718	strb	w7, [x21, #:lo12:.LANCHOR210]
18719	strh	w1, [x0, 16]!
18720	ldr	w1, [x6, 8]
18721	bl	js_hash
18722	ldrh	w19, [x22]
18723	str	w0, [x6, 12]
18724	mul	w19, w19, w7
18725.L2951:
18726	mov	w1, w19
18727	mov	w0, 0
18728	bl	flash_erase_block
18729	b	.L2943
18730.L2946:
18731	mov	w26, 1
18732	b	.L2941
18733.L2942:
18734	madd	w19, w19, w4, w3
18735	cbz	w1, .L2951
18736.L2943:
18737	ldr	x2, [x20, #:lo12:.LANCHOR6]
18738	mov	w1, w19
18739	ldr	x3, [x23, #:lo12:.LANCHOR209]
18740	mov	w5, 1
18741	mov	w4, 4
18742	ldr	w0, [x2, 4]
18743	str	w0, [x3]
18744	mov	w0, 21321
18745	movk	w0, 0x5359, lsl 16
18746	str	w0, [x3, 4]
18747	mov	w0, 0
18748	bl	flash_prog_page_en
18749	cmn	w0, #1
18750	ldrh	w1, [x27, 2]
18751	add	w1, w1, 1
18752	strh	w1, [x27, 2]
18753	bne	.L2944
18754	mov	w1, w19
18755	adrp	x0, .LC168
18756	add	x0, x0, :lo12:.LC168
18757	bl	printf
18758	b	.L2941
18759.L2944:
18760	cbz	w26, .L2946
18761	ldp	x19, x20, [sp, 16]
18762	mov	w0, 0
18763	ldp	x21, x22, [sp, 32]
18764	ldp	x23, x24, [sp, 48]
18765	ldp	x25, x26, [sp, 64]
18766	ldp	x27, x28, [sp, 80]
18767	ldp	x29, x30, [sp], 112
18768	ret
18769	.size	flash_info_flush, .-flash_info_flush
18770	.section	.text.flash_info_blk_init,"ax",@progbits
18771	.align	2
18772	.global	flash_info_blk_init
18773	.type	flash_info_blk_init, %function
18774flash_info_blk_init:
18775	stp	x29, x30, [sp, -96]!
18776	adrp	x0, .LANCHOR19
18777	add	x29, sp, 0
18778	ldr	w0, [x0, #:lo12:.LANCHOR19]
18779	stp	x19, x20, [sp, 16]
18780	adrp	x20, .LANCHOR6
18781	stp	x21, x22, [sp, 32]
18782	stp	x23, x24, [sp, 48]
18783	stp	x25, x26, [sp, 64]
18784	str	x27, [sp, 80]
18785	tbz	x0, 12, .L2953
18786	ldr	x4, [x20, #:lo12:.LANCHOR6]
18787	adrp	x2, .LANCHOR211
18788	adrp	x0, .LC169
18789	mov	w3, 2048
18790	add	x2, x2, :lo12:.LANCHOR211
18791	mov	w1, 50
18792	add	x0, x0, :lo12:.LC169
18793	bl	printf
18794.L2953:
18795	adrp	x24, .LANCHOR2
18796	mov	w23, 21321
18797	add	x26, x24, :lo12:.LANCHOR2
18798	mov	w22, 4
18799	adrp	x21, .LANCHOR209
18800	movk	w23, 0x5359, lsl 16
18801.L2957:
18802	mov	w19, 0
18803.L2956:
18804	ldrh	w1, [x26]
18805	mov	w4, 4
18806	ldr	x3, [x21, #:lo12:.LANCHOR209]
18807	mov	w0, 0
18808	ldr	x2, [x20, #:lo12:.LANCHOR6]
18809	add	x27, x21, :lo12:.LANCHOR209
18810	add	x25, x20, :lo12:.LANCHOR6
18811	madd	w1, w1, w22, w19
18812	bl	flash_read_page_en
18813	cmn	w0, #1
18814	beq	.L2954
18815	ldr	x2, [x20, #:lo12:.LANCHOR6]
18816	ldr	w0, [x2]
18817	cmp	w0, w23
18818	beq	.L2955
18819.L2954:
18820	add	w19, w19, 1
18821	cmp	w19, 4
18822	bne	.L2956
18823	add	w22, w22, 1
18824	cmp	w22, 16
18825	bne	.L2957
18826.L2983:
18827	mov	w0, -1
18828.L2952:
18829	ldp	x19, x20, [sp, 16]
18830	ldp	x21, x22, [sp, 32]
18831	ldp	x23, x24, [sp, 48]
18832	ldp	x25, x26, [sp, 64]
18833	ldr	x27, [sp, 80]
18834	ldp	x29, x30, [sp], 96
18835	ret
18836.L2965:
18837	ldr	x0, [x25]
18838	ldr	w1, [x0]
18839	cmp	w1, w23
18840	bne	.L2966
18841	ldr	w22, [x0, 4]
18842.L2959:
18843	add	x23, x19, :lo12:.LANCHOR210
18844	ldrh	w0, [x24, #:lo12:.LANCHOR2]
18845	ldr	x3, [x21, #:lo12:.LANCHOR209]
18846	mov	w4, 4
18847	ldr	x2, [x20, #:lo12:.LANCHOR6]
18848	ldrb	w1, [x23, 1]
18849	mul	w1, w1, w0
18850	mov	w0, 0
18851	bl	flash_read_page_en
18852	cmn	w0, #1
18853	beq	.L2960
18854	ldr	x0, [x20, #:lo12:.LANCHOR6]
18855	mov	w1, 21321
18856	movk	w1, 0x5359, lsl 16
18857	ldr	w2, [x0]
18858	cmp	w2, w1
18859	bne	.L2960
18860	ldr	w1, [x0, 4]
18861	cmp	w22, w1
18862	bcs	.L2960
18863	ldrb	w1, [x0, 37]
18864	ldrb	w0, [x0, 36]
18865	strb	w1, [x19, #:lo12:.LANCHOR210]
18866	strb	w0, [x23, 1]
18867.L2960:
18868	ldrb	w1, [x19, #:lo12:.LANCHOR210]
18869	add	x22, x19, :lo12:.LANCHOR210
18870	ldr	x3, [x21, #:lo12:.LANCHOR209]
18871	mov	w4, 4
18872	ldr	x2, [x20, #:lo12:.LANCHOR6]
18873	mov	w0, 0
18874	bl	flash_get_last_written_page
18875	and	w25, w0, 65535
18876	add	w1, w25, 1
18877	ldrb	w23, [x19, #:lo12:.LANCHOR210]
18878	strh	w1, [x22, 2]
18879	mov	w22, 0
18880	ldrh	w1, [x24, #:lo12:.LANCHOR2]
18881	mov	w24, 21321
18882	movk	w24, 0x5359, lsl 16
18883	mul	w23, w23, w1
18884	add	w23, w23, w0, sxth
18885.L2961:
18886	sub	w0, w25, w22
18887	sxth	w19, w0
18888	tbz	w19, #31, .L2964
18889	cmn	w19, #1
18890	bne	.L2963
18891	ldr	x0, [x20, #:lo12:.LANCHOR6]
18892	ldr	w1, [x0]
18893	adrp	x0, .LC170
18894	add	x0, x0, :lo12:.LC170
18895	bl	printf
18896	b	.L2983
18897.L2964:
18898	ldr	x3, [x21, #:lo12:.LANCHOR209]
18899	mov	w4, 4
18900	ldr	x2, [x20, #:lo12:.LANCHOR6]
18901	sub	w1, w23, w22
18902	mov	w0, 0
18903	bl	flash_read_page_en
18904	cmn	w0, #1
18905	beq	.L2962
18906	ldr	x0, [x20, #:lo12:.LANCHOR6]
18907	ldr	w0, [x0]
18908	cmp	w0, w24
18909	beq	.L2963
18910.L2962:
18911	add	w22, w22, 1
18912	b	.L2961
18913.L2963:
18914	cmp	w22, 1
18915	bls	.L2967
18916	bl	flash_info_flush
18917.L2967:
18918	mov	w0, 0
18919	b	.L2952
18920.L2955:
18921	adrp	x19, .LANCHOR210
18922	add	x1, x19, :lo12:.LANCHOR210
18923	ldrb	w3, [x2, 37]
18924	mov	w4, 4
18925	ldrb	w0, [x2, 36]
18926	strb	w3, [x1, 1]
18927	ldrh	w1, [x26]
18928	ldr	x3, [x27]
18929	strb	w0, [x19, #:lo12:.LANCHOR210]
18930	mul	w1, w1, w0
18931	mov	w0, 0
18932	bl	flash_read_page_en
18933	cmn	w0, #1
18934	bne	.L2965
18935.L2966:
18936	mov	w22, 0
18937	b	.L2959
18938	.size	flash_info_blk_init, .-flash_info_blk_init
18939	.section	.text.nand_flash_init,"ax",@progbits
18940	.align	2
18941	.global	nand_flash_init
18942	.type	nand_flash_init, %function
18943nand_flash_init:
18944	stp	x29, x30, [sp, -96]!
18945	add	x29, sp, 0
18946	stp	x21, x22, [sp, 32]
18947	adrp	x21, .LANCHOR19
18948	stp	x19, x20, [sp, 16]
18949	mov	x19, x0
18950	ldr	w0, [x21, #:lo12:.LANCHOR19]
18951	stp	x23, x24, [sp, 48]
18952	stp	x25, x26, [sp, 64]
18953	str	x27, [sp, 80]
18954	tbz	x0, 12, .L2985
18955	adrp	x2, .LANCHOR212
18956	adrp	x0, .LC91
18957	add	x2, x2, :lo12:.LANCHOR212
18958	mov	w1, 3451
18959	add	x0, x0, :lo12:.LC91
18960	bl	printf
18961.L2985:
18962	adrp	x0, .LANCHOR170
18963	adrp	x24, .LANCHOR21
18964	adrp	x22, .LANCHOR47
18965	add	x25, x22, :lo12:.LANCHOR47
18966	str	wzr, [x0, #:lo12:.LANCHOR170]
18967	mov	x0, x19
18968	bl	nandc_init
18969	adrp	x19, .LANCHOR32
18970	add	x0, x19, :lo12:.LANCHOR32
18971	str	x0, [x24, #:lo12:.LANCHOR21]
18972	adrp	x0, .LANCHOR23
18973	adrp	x23, .LANCHOR31
18974	mov	x26, x25
18975	mov	w1, 1
18976	mov	w20, 0
18977	strb	w1, [x0, #:lo12:.LANCHOR23]
18978	mov	w27, 44
18979	mov	w0, 3
18980	mov	w2, 8
18981	strb	w0, [x23, #:lo12:.LANCHOR31]
18982	mov	w1, 0
18983	adrp	x0, .LANCHOR29
18984	add	x0, x0, :lo12:.LANCHOR29
18985	bl	ftl_memset
18986	mov	w2, 32
18987	mov	w1, 0
18988	adrp	x0, .LANCHOR146
18989	add	x0, x0, :lo12:.LANCHOR146
18990	bl	ftl_memset
18991.L2991:
18992	mov	x1, x25
18993	mov	w0, w20
18994	bl	flash_read_id
18995	cbnz	w20, .L2986
18996	ldrb	w0, [x26]
18997	sub	w0, w0, #1
18998	and	w0, w0, 255
18999	cmp	w0, 253
19000	bls	.L2987
19001.L2989:
19002	mov	w22, -2
19003.L2984:
19004	mov	w0, w22
19005	ldr	x27, [sp, 80]
19006	ldp	x19, x20, [sp, 16]
19007	ldp	x21, x22, [sp, 32]
19008	ldp	x23, x24, [sp, 48]
19009	ldp	x25, x26, [sp, 64]
19010	ldp	x29, x30, [sp], 96
19011	ret
19012.L2987:
19013	ldrb	w0, [x26, 1]
19014	cmp	w0, 255
19015	beq	.L2989
19016.L2986:
19017	ldrb	w0, [x25]
19018	cmp	w0, 181
19019	bne	.L2990
19020	strb	w27, [x25]
19021.L2990:
19022	add	w20, w20, 1
19023	add	x25, x25, 8
19024	and	w20, w20, 255
19025	cmp	w20, 4
19026	bne	.L2991
19027	adrp	x0, .LANCHOR213
19028	add	x8, x0, :lo12:.LANCHOR213
19029	add	x8, x8, 1
19030	mov	x7, x0
19031	add	x12, x22, :lo12:.LANCHOR47
19032	mov	x10, 0
19033.L2994:
19034	ldrb	w2, [x8, -1]
19035	mov	w11, w10
19036	lsl	x25, x10, 5
19037	mov	x1, x12
19038	mov	x0, x8
19039	bl	flash_mem_cmp8
19040	cbnz	w0, .L2992
19041	add	x0, x7, :lo12:.LANCHOR213
19042	ubfiz	x11, x11, 5, 32
19043	add	x25, x0, x25
19044	add	x0, x0, x11
19045	adrp	x1, .LANCHOR214
19046	add	x4, x1, :lo12:.LANCHOR214
19047	ldrb	w3, [x0, 22]
19048	mov	x0, 0
19049.L2993:
19050	lsl	x5, x0, 5
19051	mov	w2, w0
19052	ldrb	w5, [x5, x4]
19053	cmp	w5, w3
19054	beq	.L2995
19055	add	x0, x0, 1
19056	cmp	x0, 4
19057	bne	.L2993
19058	mov	w2, w0
19059.L2995:
19060	ubfiz	x0, x2, 5, 32
19061	add	x1, x1, :lo12:.LANCHOR214
19062	add	x1, x1, x0
19063	mov	w2, 32
19064	adrp	x0, .LANCHOR25
19065	add	x20, x19, :lo12:.LANCHOR32
19066	add	x0, x0, :lo12:.LANCHOR25
19067	adrp	x26, .LANCHOR27
19068	bl	ftl_memcpy
19069	mov	w2, 32
19070	mov	x1, x25
19071	mov	x0, x20
19072	bl	ftl_memcpy
19073	ldrb	w0, [x26, #:lo12:.LANCHOR27]
19074	cmp	w0, 8
19075	bhi	.L2996
19076	ldrb	w0, [x20, 20]
19077	cmp	w0, 60
19078	bls	.L2996
19079	mov	w0, 60
19080	strb	w0, [x20, 20]
19081.L2996:
19082	ldr	w0, [x21, #:lo12:.LANCHOR19]
19083	tbz	x0, 12, .L3026
19084	adrp	x2, .LANCHOR212
19085	adrp	x0, .LC91
19086	add	x2, x2, :lo12:.LANCHOR212
19087	mov	w1, 3478
19088	add	x0, x0, :lo12:.LC91
19089	bl	printf
19090.L3026:
19091	ldr	x0, [x24, #:lo12:.LANCHOR21]
19092	ldrh	w0, [x0, 10]
19093	cmp	w0, 1023
19094	bls	.L2997
19095	mov	w0, 2
19096	strb	w0, [x23, #:lo12:.LANCHOR31]
19097.L2997:
19098	mov	w0, 16384
19099	bl	ftl_malloc
19100	adrp	x1, .LANCHOR174
19101	adrp	x23, .LANCHOR6
19102	add	x20, x19, :lo12:.LANCHOR32
19103	adrp	x25, .LANCHOR48
19104	str	x0, [x1, #:lo12:.LANCHOR174]
19105	mov	w0, 16384
19106	bl	ftl_malloc
19107	adrp	x1, .LANCHOR164
19108	str	x0, [x1, #:lo12:.LANCHOR164]
19109	mov	w0, 2048
19110	bl	ftl_malloc
19111	str	x0, [x23, #:lo12:.LANCHOR6]
19112	mov	w0, 64
19113	bl	ftl_malloc
19114	adrp	x1, .LANCHOR173
19115	str	x0, [x1, #:lo12:.LANCHOR173]
19116	mov	w0, 64
19117	bl	ftl_malloc
19118	adrp	x1, .LANCHOR166
19119	str	x0, [x1, #:lo12:.LANCHOR166]
19120	mov	w0, 64
19121	bl	ftl_malloc
19122	adrp	x1, .LANCHOR209
19123	str	x0, [x1, #:lo12:.LANCHOR209]
19124	adrp	x0, .LANCHOR215
19125	strb	wzr, [x0, #:lo12:.LANCHOR215]
19126	bl	flash_die_info_init
19127	ldrb	w0, [x20, 18]
19128	bl	flash_lsb_page_tbl_build
19129	ldrb	w0, [x20, 20]
19130	adrp	x20, .LANCHOR172
19131	bl	nandc_bch_sel
19132	str	xzr, [x20, #:lo12:.LANCHOR172]
19133	ldr	x2, [x24, #:lo12:.LANCHOR21]
19134	ldrh	w0, [x2, 16]
19135	ubfx	x1, x0, 8, 3
19136	strb	w1, [x25, #:lo12:.LANCHOR48]
19137	adrp	x1, .LANCHOR185
19138	ubfx	x3, x0, 3, 1
19139	strb	w3, [x1, #:lo12:.LANCHOR185]
19140	adrp	x1, .LANCHOR44
19141	ubfx	x3, x0, 4, 1
19142	strb	w3, [x1, #:lo12:.LANCHOR44]
19143	adrp	x1, .LANCHOR89
19144	ubfx	x3, x0, 12, 1
19145	strb	w3, [x1, #:lo12:.LANCHOR89]
19146	adrp	x1, .LANCHOR86
19147	ubfx	x3, x0, 13, 1
19148	strb	w3, [x1, #:lo12:.LANCHOR86]
19149	adrp	x1, .LANCHOR35
19150	ubfx	x3, x0, 11, 1
19151	strb	w3, [x1, #:lo12:.LANCHOR35]
19152	adrp	x3, .LANCHOR130
19153	ldrb	w1, [x2, 31]
19154	ldrb	w2, [x2, 28]
19155	ubfx	x4, x1, 1, 1
19156	strb	w4, [x3, #:lo12:.LANCHOR130]
19157	adrp	x3, .LANCHOR216
19158	ubfx	x4, x1, 2, 1
19159	strb	w4, [x3, #:lo12:.LANCHOR216]
19160	adrp	x3, .LANCHOR1
19161	ubfx	x4, x0, 14, 1
19162	lsr	w0, w0, 15
19163	strb	w4, [x3, #:lo12:.LANCHOR1]
19164	adrp	x3, .LANCHOR87
19165	strb	w0, [x3, #:lo12:.LANCHOR87]
19166	adrp	x0, .LANCHOR0
19167	ubfx	x3, x1, 3, 1
19168	ubfx	x1, x1, 4, 1
19169	strb	w2, [x0, #:lo12:.LANCHOR0]
19170	adrp	x0, .LANCHOR30
19171	strb	w3, [x0, #:lo12:.LANCHOR30]
19172	adrp	x0, .LANCHOR36
19173	strb	w1, [x0, #:lo12:.LANCHOR36]
19174	adrp	x1, .LANCHOR22
19175	mov	w0, 60
19176	strb	w0, [x1, #:lo12:.LANCHOR22]
19177	ldrb	w0, [x26, #:lo12:.LANCHOR27]
19178	cmp	w0, 9
19179	bne	.L2998
19180	mov	w3, 70
19181	strb	w3, [x1, #:lo12:.LANCHOR22]
19182.L2998:
19183	add	x1, x19, :lo12:.LANCHOR32
19184	adrp	x24, .LANCHOR24
19185	strb	w2, [x24, #:lo12:.LANCHOR24]
19186	ldrb	w2, [x1, 31]
19187	tbz	x2, 0, .L2999
19188	ldrb	w1, [x1, 29]
19189	cbz	w1, .L3000
19190	mov	w1, 2
19191.L3058:
19192	strb	w1, [x24, #:lo12:.LANCHOR24]
19193.L2999:
19194	cmp	w0, 8
19195	bne	.L3001
19196	ldrb	w0, [x22, #:lo12:.LANCHOR47]
19197	mov	w1, 137
19198	cmp	w0, 44
19199	ccmp	w0, w1, 4, ne
19200	bne	.L3001
19201	add	x0, x19, :lo12:.LANCHOR32
19202	ldrb	w0, [x0, 28]
19203	cmp	w0, 3
19204	bne	.L3001
19205	strb	wzr, [x24, #:lo12:.LANCHOR24]
19206.L3001:
19207	bl	nand_flash_exit_boot_rom_slc_mode
19208	adrp	x27, .LANCHOR16
19209	add	x1, x19, :lo12:.LANCHOR32
19210	ldrb	w0, [x1, 19]
19211	ldrh	w1, [x1, 16]
19212	strb	w0, [x27, #:lo12:.LANCHOR16]
19213	tbz	x1, 6, .L3003
19214	sub	w1, w0, #17
19215	and	w1, w1, 255
19216	cmp	w1, 2
19217	ccmp	w0, 21, 4, hi
19218	bne	.L3004
19219	adrp	x1, micron_read_retrial
19220	add	x1, x1, :lo12:micron_read_retrial
19221	str	x1, [x20, #:lo12:.LANCHOR172]
19222	cmp	w0, 21
19223	adrp	x0, .LANCHOR167
19224	beq	.L3005
19225	mov	w1, 15
19226.L3060:
19227	strb	w1, [x0, #:lo12:.LANCHOR167]
19228.L3003:
19229	ldr	w0, [x21, #:lo12:.LANCHOR19]
19230	tbz	x0, 12, .L3014
19231	adrp	x2, .LANCHOR212
19232	adrp	x0, .LC91
19233	add	x2, x2, :lo12:.LANCHOR212
19234	mov	w1, 3571
19235	add	x0, x0, :lo12:.LC91
19236	bl	printf
19237.L3014:
19238	adrp	x26, .LANCHOR26
19239	ldrb	w0, [x25, #:lo12:.LANCHOR48]
19240	strb	wzr, [x26, #:lo12:.LANCHOR26]
19241	tbz	x0, 0, .L3015
19242	ldrb	w0, [x22, #:lo12:.LANCHOR47]
19243	cmp	w0, 155
19244	beq	.L3016
19245	mov	w0, 4
19246	bl	flash_set_interface_mode
19247	mov	w0, 4
19248	bl	nandc_set_if_mode
19249.L3016:
19250	mov	w0, 1
19251	bl	flash_set_interface_mode
19252	mov	w0, 1
19253.L3062:
19254	bl	nandc_set_if_mode
19255	bl	flash_info_blk_init
19256	mov	w22, w0
19257	cmn	w0, #1
19258	bne	.L3018
19259	ldr	x0, [x23, #:lo12:.LANCHOR6]
19260	mov	w1, 17
19261	strb	w1, [x0, 32]
19262	adrp	x0, .LANCHOR33
19263	strb	wzr, [x0, #:lo12:.LANCHOR33]
19264	mov	w0, 0
19265	bl	zftl_flash_exit_slc_mode
19266	b	.L2984
19267.L2992:
19268	add	x10, x10, 1
19269	add	x8, x8, 32
19270	cmp	x10, 49
19271	bne	.L2994
19272	b	.L2989
19273.L3000:
19274	mov	w1, 3
19275	b	.L3058
19276.L3005:
19277	mov	w1, 4
19278	b	.L3060
19279.L3004:
19280	sub	w1, w0, #65
19281	cmp	w0, 33
19282	and	w1, w1, 255
19283	ccmp	w1, 1, 0, ne
19284	bhi	.L3007
19285	adrp	x0, toshiba_read_retrial
19286	add	x0, x0, :lo12:toshiba_read_retrial
19287	str	x0, [x20, #:lo12:.LANCHOR172]
19288	adrp	x0, .LANCHOR18
19289	mov	w1, 4
19290	strb	w1, [x0, #:lo12:.LANCHOR18]
19291.L3064:
19292	mov	w1, 7
19293.L3063:
19294	adrp	x0, .LANCHOR167
19295	b	.L3060
19296.L3007:
19297	sub	w2, w0, #34
19298	sub	w1, w0, #67
19299	and	w2, w2, 255
19300	and	w1, w1, 255
19301	cmp	w2, 1
19302	ccmp	w1, 1, 0, hi
19303	bhi	.L3008
19304	adrp	x2, toshiba_read_retrial
19305	add	x2, x2, :lo12:toshiba_read_retrial
19306	str	x2, [x20, #:lo12:.LANCHOR172]
19307	cmp	w0, 35
19308	mov	w2, 68
19309	ccmp	w0, w2, 4, ne
19310	adrp	x0, .LANCHOR167
19311	beq	.L3009
19312	mov	w2, 7
19313.L3059:
19314	strb	w2, [x0, #:lo12:.LANCHOR167]
19315	cmp	w1, 1
19316	adrp	x0, .LANCHOR18
19317	bhi	.L3011
19318	mov	w1, 4
19319.L3061:
19320	strb	w1, [x0, #:lo12:.LANCHOR18]
19321	b	.L3003
19322.L3009:
19323	mov	w2, 17
19324	b	.L3059
19325.L3011:
19326	mov	w1, 5
19327	b	.L3061
19328.L3008:
19329	sub	w1, w0, #36
19330	and	w1, w1, 255
19331	cmp	w1, 1
19332	bhi	.L3012
19333	adrp	x0, toshiba_3d_read_retrial
19334	add	x0, x0, :lo12:toshiba_3d_read_retrial
19335	str	x0, [x20, #:lo12:.LANCHOR172]
19336	b	.L3064
19337.L3012:
19338	cmp	w0, 50
19339	bne	.L3013
19340	adrp	x0, samsung_read_retrial
19341	mov	w1, 25
19342	add	x0, x0, :lo12:samsung_read_retrial
19343	str	x0, [x20, #:lo12:.LANCHOR172]
19344	b	.L3063
19345.L3013:
19346	cmp	w0, 81
19347	bne	.L3003
19348	adrp	x0, ymtc_3d_read_retrial
19349	add	x0, x0, :lo12:ymtc_3d_read_retrial
19350	str	x0, [x20, #:lo12:.LANCHOR172]
19351	adrp	x0, .LANCHOR167
19352	mov	w1, 7
19353	strb	w1, [x0, #:lo12:.LANCHOR167]
19354	adrp	x0, .LANCHOR50
19355	strb	wzr, [x0, #:lo12:.LANCHOR50]
19356	b	.L3003
19357.L3015:
19358	mov	w0, 4
19359	b	.L3062
19360.L3018:
19361	add	x19, x19, :lo12:.LANCHOR32
19362	ldrb	w0, [x19, 7]
19363	cmp	w0, 9
19364	bne	.L3019
19365	ldr	x0, [x23, #:lo12:.LANCHOR6]
19366	ldrb	w0, [x0, 20]
19367	cmp	w0, 1
19368	beq	.L3019
19369	strb	wzr, [x24, #:lo12:.LANCHOR24]
19370.L3019:
19371	ldrb	w0, [x27, #:lo12:.LANCHOR16]
19372	sub	w0, w0, #1
19373	and	w0, w0, 255
19374	cmp	w0, 7
19375	bhi	.L3020
19376	adrp	x0, hynix_read_retrial
19377	add	x0, x0, :lo12:hynix_read_retrial
19378	str	x0, [x20, #:lo12:.LANCHOR172]
19379.L3020:
19380	ldrb	w0, [x25, #:lo12:.LANCHOR48]
19381	tbz	x0, 2, .L3022
19382	ldr	x0, [x23, #:lo12:.LANCHOR6]
19383	ldrb	w0, [x0, 19]
19384	cbz	w0, .L3022
19385	adrp	x0, .LANCHOR210
19386	ldrb	w1, [x0, #:lo12:.LANCHOR210]
19387	adrp	x0, .LANCHOR2
19388	ldrh	w0, [x0, #:lo12:.LANCHOR2]
19389	mul	w1, w1, w0
19390	mov	w0, 0
19391	bl	flash_ddr_para_scan
19392	ldrb	w0, [x26, #:lo12:.LANCHOR26]
19393	cbnz	w0, .L3022
19394	ldr	x0, [x23, #:lo12:.LANCHOR6]
19395	strb	wzr, [x0, 19]
19396	bl	flash_info_flush
19397.L3022:
19398	bl	nand_flash_exit_boot_rom_slc_mode
19399	ldr	w0, [x21, #:lo12:.LANCHOR19]
19400	tbz	x0, 12, .L3024
19401	adrp	x2, .LANCHOR212
19402	adrp	x0, .LC91
19403	add	x2, x2, :lo12:.LANCHOR212
19404	mov	w1, 3674
19405	add	x0, x0, :lo12:.LC91
19406	bl	printf
19407.L3024:
19408	bl	nand_flash_print_info
19409	mov	w22, 0
19410	b	.L2984
19411	.size	nand_flash_init, .-nand_flash_init
19412	.section	.text.ftl_sysblk_dump,"ax",@progbits
19413	.align	2
19414	.global	ftl_sysblk_dump
19415	.type	ftl_sysblk_dump, %function
19416ftl_sysblk_dump:
19417	sub	sp, sp, #144
19418	stp	x29, x30, [sp, 48]
19419	add	x29, sp, 48
19420	stp	x19, x20, [sp, 64]
19421	mov	w20, 0
19422	stp	x23, x24, [sp, 96]
19423	and	w23, w0, 65535
19424	stp	x25, x26, [sp, 112]
19425	mov	w0, 1
19426	stp	x27, x28, [sp, 128]
19427	adrp	x25, .LANCHOR100
19428	stp	x21, x22, [sp, 80]
19429	bl	buf_alloc
19430	ldr	x28, [x0, 8]
19431	adrp	x26, .LANCHOR117
19432	adrp	x27, .LANCHOR68
19433	mov	x24, x0
19434	add	x25, x25, :lo12:.LANCHOR100
19435	add	x26, x26, :lo12:.LANCHOR117
19436	add	x27, x27, :lo12:.LANCHOR68
19437	mov	w19, 0
19438.L3066:
19439	ldrh	w0, [x25]
19440	cmp	w0, w19
19441	bhi	.L3068
19442	add	x1, x28, 704
19443	mov	w3, 32
19444	mov	w2, 4
19445	adrp	x0, .LC171
19446	add	x0, x0, :lo12:.LC171
19447	bl	rknand_print_hex
19448	mov	x0, x24
19449	bl	zbuf_free
19450	cbz	w20, .L3069
19451	adrp	x1, .LANCHOR217
19452	adrp	x0, .LC0
19453	mov	w2, 1624
19454	add	x1, x1, :lo12:.LANCHOR217
19455	add	x0, x0, :lo12:.LC0
19456	bl	printf
19457.L3069:
19458	mov	w0, w20
19459	ldp	x19, x20, [sp, 64]
19460	ldp	x21, x22, [sp, 80]
19461	ldp	x23, x24, [sp, 96]
19462	ldp	x25, x26, [sp, 112]
19463	ldp	x27, x28, [sp, 128]
19464	ldp	x29, x30, [sp, 48]
19465	add	sp, sp, 144
19466	ret
19467.L3068:
19468	ldrh	w21, [x26]
19469	ldrb	w3, [x27]
19470	ldr	x1, [x24, 8]
19471	ldr	x2, [x24, 24]
19472	madd	w21, w21, w23, w19
19473	mov	w0, w21
19474	bl	ftl_read_ppa_page
19475	mov	w22, w0
19476	ldr	x1, [x24, 24]
19477	mov	w4, w0
19478	ldr	x0, [x24, 8]
19479	mov	w3, w21
19480	ldr	w2, [x1, 12]
19481	str	w2, [sp, 32]
19482	ldr	w2, [x1, 8]
19483	str	w2, [sp, 24]
19484	ldr	w2, [x1, 4]
19485	str	w2, [sp, 16]
19486	mov	w2, w19
19487	add	w19, w19, 1
19488	ldr	w1, [x1]
19489	and	w19, w19, 65535
19490	str	w1, [sp, 8]
19491	ldr	w1, [x0, 12]
19492	str	w1, [sp]
19493	mov	w1, w23
19494	ldp	w5, w6, [x0]
19495	ldr	w7, [x0, 8]
19496	adrp	x0, .LC161
19497	add	x0, x0, :lo12:.LC161
19498	bl	printf
19499	cmp	w22, 512
19500	ccmn	w22, #1, 4, ne
19501	csinc	w20, w20, wzr, ne
19502	b	.L3066
19503	.size	ftl_sysblk_dump, .-ftl_sysblk_dump
19504	.section	.text.ftl_open_sblk_recovery,"ax",@progbits
19505	.align	2
19506	.global	ftl_open_sblk_recovery
19507	.type	ftl_open_sblk_recovery, %function
19508ftl_open_sblk_recovery:
19509	stp	x29, x30, [sp, -368]!
19510	add	x29, sp, 0
19511	stp	x21, x22, [sp, 32]
19512	adrp	x21, .LANCHOR19
19513	stp	x19, x20, [sp, 16]
19514	mov	x19, x0
19515	ldr	w0, [x21, #:lo12:.LANCHOR19]
19516	stp	x23, x24, [sp, 48]
19517	stp	x25, x26, [sp, 64]
19518	stp	x27, x28, [sp, 80]
19519	str	x1, [x29, 144]
19520	tbz	x0, 12, .L3077
19521	ldrh	w1, [x19, 2]
19522	adrp	x0, .LC172
19523	add	x0, x0, :lo12:.LC172
19524	bl	printf
19525.L3077:
19526	ldr	w0, [x21, #:lo12:.LANCHOR19]
19527	tbz	x0, 12, .L3078
19528	ldrb	w1, [x19, 5]
19529	adrp	x0, .LC173
19530	add	x0, x0, :lo12:.LC173
19531	bl	printf
19532.L3078:
19533	ldr	w0, [x21, #:lo12:.LANCHOR19]
19534	tbz	x0, 12, .L3079
19535	ldrh	w1, [x19]
19536	adrp	x0, .LC174
19537	add	x0, x0, :lo12:.LC174
19538	bl	printf
19539.L3079:
19540	ldr	w0, [x21, #:lo12:.LANCHOR19]
19541	tbz	x0, 12, .L3080
19542	ldrh	w2, [x19, 18]
19543	adrp	x0, .LC175
19544	ldrh	w1, [x19, 16]
19545	add	x0, x0, :lo12:.LC175
19546	bl	printf
19547.L3080:
19548	ldr	w0, [x21, #:lo12:.LANCHOR19]
19549	tbz	x0, 12, .L3081
19550	ldrb	w1, [x19, 9]
19551	adrp	x0, .LC176
19552	add	x0, x0, :lo12:.LC176
19553	bl	printf
19554.L3081:
19555	ldrh	w0, [x19, 10]
19556	strh	w0, [x19, 14]
19557	adrp	x0, .LANCHOR8
19558	ldrh	w1, [x19]
19559	ldrh	w0, [x0, #:lo12:.LANCHOR8]
19560	cmp	w1, w0
19561	bcs	.L3076
19562	mov	w0, 1
19563	adrp	x22, .LANCHOR68
19564	bl	buf_alloc
19565	mov	x20, x0
19566	ldrb	w0, [x22, #:lo12:.LANCHOR68]
19567	add	x26, x29, 176
19568	mov	w2, 64
19569	mov	w27, 2
19570	ldr	x1, [x20, 8]
19571	sub	w0, w0, #2
19572	lsl	w0, w0, 7
19573	add	x0, x1, x0, sxtw 2
19574	mov	w1, 255
19575	str	x0, [x29, 152]
19576	mov	x0, x26
19577	bl	ftl_memset
19578	mov	w2, 64
19579	mov	w1, 255
19580	add	x0, x29, 240
19581	bl	ftl_memset
19582	mov	w2, 64
19583	mov	w1, 255
19584	add	x0, x29, 304
19585	bl	ftl_memset
19586	ldrb	w23, [x19, 5]
19587	adrp	x0, .LANCHOR117
19588	ldrh	w24, [x19, 2]
19589	add	x0, x0, :lo12:.LANCHOR117
19590	str	x0, [x29, 128]
19591.L3083:
19592	adrp	x25, .LANCHOR100
19593	ldrh	w0, [x25, #:lo12:.LANCHOR100]
19594	cmp	w0, w24
19595	bhi	.L3098
19596.L3086:
19597	ldrh	w0, [x19, 10]
19598	ldrh	w1, [x19, 6]
19599	ldrh	w2, [x25, #:lo12:.LANCHOR100]
19600	add	w1, w1, w0
19601	ldrb	w0, [x19, 9]
19602	strh	w24, [x19, 2]
19603	strb	w23, [x19, 5]
19604	mul	w0, w0, w2
19605	cmp	w1, w0
19606	beq	.L3099
19607	adrp	x1, .LANCHOR218
19608	adrp	x0, .LC0
19609	mov	w2, 1807
19610	add	x1, x1, :lo12:.LANCHOR218
19611	add	x0, x0, :lo12:.LC0
19612	bl	printf
19613.L3099:
19614	adrp	x2, .LANCHOR123
19615	ldrh	w3, [x19, 10]
19616	mov	w0, 0
19617	mov	w1, 0
19618	ldr	x4, [x2, #:lo12:.LANCHOR123]
19619	str	x2, [x29, 152]
19620.L3100:
19621	cmp	w1, w3
19622	bcc	.L3102
19623	ldrb	w23, [x19, 9]
19624	adrp	x24, .LANCHOR11
19625	ldrh	w1, [x25, #:lo12:.LANCHOR100]
19626	madd	w23, w23, w1, w0
19627	ldr	w0, [x21, #:lo12:.LANCHOR19]
19628	sub	w23, w23, w3
19629	and	w23, w23, 65535
19630	tbz	x0, 12, .L3103
19631	ldrh	w1, [x19]
19632	ldr	x2, [x24, #:lo12:.LANCHOR11]
19633	ubfiz	x0, x1, 1, 16
19634	ldrh	w3, [x2, x0]
19635	adrp	x0, .LC179
19636	mov	w2, w23
19637	add	x0, x0, :lo12:.LC179
19638	bl	printf
19639.L3103:
19640	ldr	x0, [x24, #:lo12:.LANCHOR11]
19641	ldrh	w1, [x19]
19642	strh	w23, [x0, x1, lsl 1]
19643	ldr	w0, [x21, #:lo12:.LANCHOR19]
19644	tbz	x0, 14, .L3104
19645	ldp	w1, w2, [x29, 176]
19646	adrp	x0, .LC180
19647	ldp	w3, w4, [x29, 184]
19648	add	x0, x0, :lo12:.LC180
19649	bl	printf
19650.L3104:
19651	ldr	x0, [x20, 8]
19652	mov	w1, 0
19653	ldrb	w2, [x22, #:lo12:.LANCHOR68]
19654	adrp	x28, .LANCHOR85
19655	mov	x24, 0
19656	lsl	w2, w2, 9
19657	bl	ftl_memset
19658	adrp	x0, .LC182
19659	add	x0, x0, :lo12:.LC182
19660	str	x0, [x29, 136]
19661	add	x0, x28, :lo12:.LANCHOR85
19662	str	x0, [x29, 128]
19663.L3105:
19664	ldrb	w0, [x28, #:lo12:.LANCHOR85]
19665	add	x1, x28, :lo12:.LANCHOR85
19666	str	w24, [x29, 168]
19667	mul	w0, w0, w27
19668	cmp	w24, w0
19669	bcc	.L3116
19670	adrp	x24, .LC183
19671	adrp	x23, .LC182
19672	add	x24, x24, :lo12:.LC183
19673	add	x23, x23, :lo12:.LC182
19674	mov	x28, 0
19675	str	x1, [x29, 160]
19676.L3117:
19677	ldr	x0, [x29, 160]
19678	ldrb	w0, [x0]
19679	mul	w0, w0, w27
19680	cmp	w0, w28
19681	bhi	.L3123
19682	mov	x0, x20
19683	bl	zbuf_free
19684	ldrh	w1, [x19, 12]
19685	ldrh	w0, [x25, #:lo12:.LANCHOR100]
19686	ldrb	w2, [x19, 9]
19687	madd	w0, w0, w2, w1
19688	mov	x1, -4
19689	add	x0, x1, x0, sxtw 2
19690	ldr	x1, [x29, 152]
19691	ldr	x1, [x1, #:lo12:.LANCHOR123]
19692	ldr	w0, [x1, x0]
19693	cmn	w0, #1
19694	beq	.L3124
19695	adrp	x1, .LANCHOR218
19696	adrp	x0, .LC0
19697	mov	w2, 1922
19698	add	x1, x1, :lo12:.LANCHOR218
19699	add	x0, x0, :lo12:.LC0
19700	bl	printf
19701.L3124:
19702	ldrh	w0, [x19, 6]
19703	cmp	w0, 1
19704	bne	.L3076
19705	mov	x0, x19
19706	bl	ftl_write_last_log_page
19707.L3076:
19708	ldp	x19, x20, [sp, 16]
19709	ldp	x21, x22, [sp, 32]
19710	ldp	x23, x24, [sp, 48]
19711	ldp	x25, x26, [sp, 64]
19712	ldp	x27, x28, [sp, 80]
19713	ldp	x29, x30, [sp], 368
19714	ret
19715.L3098:
19716	ldrb	w23, [x19, 5]
19717	adrp	x0, .LANCHOR197
19718	add	x0, x0, :lo12:.LANCHOR197
19719	str	x0, [x29, 136]
19720.L3084:
19721	ldrb	w0, [x19, 9]
19722	cmp	w0, w23
19723	bhi	.L3097
19724	add	w24, w24, 1
19725	strb	wzr, [x19, 5]
19726	and	w24, w24, 65535
19727	b	.L3083
19728.L3097:
19729	add	x0, x19, x23, sxtw 1
19730	ldrh	w0, [x0, 16]
19731	str	w0, [x29, 168]
19732	mov	w0, 65535
19733	ldr	w1, [x29, 168]
19734	cmp	w1, w0
19735	beq	.L3085
19736	ldr	x0, [x29, 128]
19737	ldrb	w3, [x22, #:lo12:.LANCHOR68]
19738	ldr	x2, [x20, 24]
19739	ldrh	w0, [x0]
19740	madd	w0, w0, w1, w24
19741	ldr	x1, [x20, 8]
19742	str	w0, [x29, 160]
19743	bl	ftl_read_ppa_page
19744	mov	w28, w0
19745	cmp	w0, 512
19746	beq	.L3086
19747	cmn	w0, #1
19748	beq	.L3087
19749	ldr	x0, [x20, 24]
19750	ldr	w1, [x0]
19751	cmn	w1, #1
19752	bne	.L3087
19753	ldr	w0, [x0, 4]
19754	cmn	w0, #1
19755	bne	.L3087
19756	ldr	x0, [x20, 8]
19757	ldr	w0, [x0]
19758	cmn	w0, #1
19759	beq	.L3086
19760.L3087:
19761	ldr	x1, [x29, 136]
19762	mov	w0, 1
19763	strb	w0, [x1]
19764	ldrb	w0, [x19, 9]
19765	ldrh	w1, [x19, 10]
19766	madd	w0, w0, w24, w23
19767	cmp	w1, w0
19768	beq	.L3088
19769	adrp	x1, .LANCHOR218
19770	adrp	x0, .LC0
19771	mov	w2, 1699
19772	add	x1, x1, :lo12:.LANCHOR218
19773	add	x0, x0, :lo12:.LC0
19774	bl	printf
19775.L3088:
19776	ldrh	w0, [x19, 10]
19777	ldrh	w1, [x19, 6]
19778	ldrb	w2, [x19, 9]
19779	add	w1, w1, w0
19780	ldrh	w0, [x25, #:lo12:.LANCHOR100]
19781	mul	w0, w0, w2
19782	cmp	w1, w0
19783	beq	.L3089
19784	adrp	x1, .LANCHOR218
19785	adrp	x0, .LC0
19786	mov	w2, 1700
19787	add	x1, x1, :lo12:.LANCHOR218
19788	add	x0, x0, :lo12:.LC0
19789	bl	printf
19790.L3089:
19791	ldrb	w0, [x22, #:lo12:.LANCHOR68]
19792	cmp	w0, 8
19793	bls	.L3090
19794	ldr	x6, [x20, 24]
19795	mov	w1, 15555
19796	movk	w1, 0xf55f, lsl 16
19797	ldr	w0, [x6]
19798	cmp	w0, w1
19799	beq	.L3090
19800	cmn	w28, #1
19801	beq	.L3092
19802	ldr	w0, [x6, 4]
19803	cmn	w0, #1
19804	beq	.L3093
19805	ldr	w1, [x6, 16]
19806	mov	w0, 21320
19807	movk	w0, 0x4841, lsl 16
19808	cmp	w1, w0
19809	bne	.L3093
19810	ldr	x0, [x29, 152]
19811	mov	w1, 1024
19812	bl	js_hash
19813	ldr	w1, [x6, 20]
19814	cmp	w1, w0
19815	beq	.L3093
19816	ldr	w3, [x29, 160]
19817	mov	w5, w0
19818	ldr	w1, [x29, 168]
19819	mov	w4, w28
19820	mov	w2, w24
19821	adrp	x0, .LC177
19822	add	x0, x0, :lo12:.LC177
19823	bl	printf
19824	ldr	x1, [x29, 152]
19825	mov	w3, 16
19826	mov	w2, 4
19827	adrp	x0, .LC178
19828	add	x0, x0, :lo12:.LC178
19829	bl	rknand_print_hex
19830	ldr	x1, [x20, 24]
19831	adrp	x0, .LC144
19832	ldrb	w3, [x22, #:lo12:.LANCHOR68]
19833	mov	w2, 4
19834	add	x0, x0, :lo12:.LC144
19835	lsr	w3, w3, 1
19836	bl	rknand_print_hex
19837.L3092:
19838	ldrh	w0, [x19, 6]
19839	mov	w27, 4
19840	sub	w0, w0, #1
19841	strh	w0, [x19, 6]
19842	ldrh	w0, [x19, 10]
19843	add	w0, w0, 1
19844	strh	w0, [x19, 10]
19845.L3085:
19846	add	w23, w23, 1
19847	and	w23, w23, 65535
19848	b	.L3084
19849.L3090:
19850	cmn	w28, #1
19851	beq	.L3092
19852.L3093:
19853	ldr	x1, [x20, 24]
19854	ldr	w0, [x1, 4]
19855	cmn	w0, #1
19856	beq	.L3092
19857	ldr	w1, [x1]
19858	mov	w2, 15555
19859	movk	w2, 0xf55f, lsl 16
19860	cmp	w1, w2
19861	beq	.L3092
19862	bl	lpa_hash_get_ppa
19863	ldr	x1, [x29, 144]
19864	cbz	x1, .L3095
19865	ldr	x3, [x20, 24]
19866	ldr	w1, [x3, 8]
19867	cmp	w0, w1
19868	beq	.L3095
19869	cmn	w0, #1
19870	beq	.L3095
19871	adrp	x4, .LANCHOR31
19872	adrp	x5, .LANCHOR80
19873	mov	w28, 24
19874	mov	w27, 1
19875	ldrb	w1, [x4, #:lo12:.LANCHOR31]
19876	ldrh	w6, [x5, #:lo12:.LANCHOR80]
19877	sub	w1, w28, w1
19878	sub	w1, w1, w6
19879	lsr	w2, w0, w6
19880	adrp	x6, .LANCHOR81
19881	lsl	w1, w27, w1
19882	sub	w1, w1, #1
19883	and	w1, w1, w2
19884	ldrb	w2, [x6, #:lo12:.LANCHOR81]
19885	udiv	w1, w1, w2
19886	ldr	x2, [x29, 144]
19887	ldrh	w2, [x2]
19888	cmp	w2, w1, uxth
19889	bne	.L3095
19890	ldr	w8, [x3]
19891	adrp	x7, .LANCHOR192
19892	ldrb	w3, [x22, #:lo12:.LANCHOR68]
19893	add	x2, x7, :lo12:.LANCHOR192
19894	ldr	x1, [x20, 8]
19895	str	w8, [x29, 124]
19896	str	x7, [x29, 168]
19897	stp	x6, x4, [x29, 96]
19898	str	x5, [x29, 112]
19899	bl	ftl_read_ppa_page
19900	ldr	x7, [x29, 168]
19901	ldr	w8, [x29, 124]
19902	ldr	w0, [x7, #:lo12:.LANCHOR192]
19903	cmp	w8, w0
19904	bhi	.L3095
19905	ldr	x0, [x20, 24]
19906	ldr	w0, [x0, 8]
19907	cmn	w0, #1
19908	beq	.L3092
19909	ldp	x6, x4, [x29, 96]
19910	ldr	x5, [x29, 112]
19911	ldrb	w2, [x4, #:lo12:.LANCHOR31]
19912	ldrh	w1, [x5, #:lo12:.LANCHOR80]
19913	sub	w28, w28, w2
19914	sub	w28, w28, w1
19915	lsr	w0, w0, w1
19916	lsl	w27, w27, w28
19917	sub	w27, w27, #1
19918	and	w27, w27, w0
19919	ldrb	w0, [x6, #:lo12:.LANCHOR81]
19920	udiv	w0, w27, w0
19921	bl	ftl_vpn_decrement
19922	b	.L3092
19923.L3102:
19924	ldrh	w2, [x19, 12]
19925	add	w2, w2, w1
19926	ldr	w2, [x4, x2, lsl 2]
19927	cmn	w2, #1
19928	beq	.L3101
19929	add	w23, w0, 1
19930	and	w0, w23, 65535
19931.L3101:
19932	add	w1, w1, 1
19933	b	.L3100
19934.L3116:
19935	ldr	w0, [x26, x24, lsl 2]
19936	cmn	w0, #1
19937	bne	.L3106
19938.L3110:
19939	adrp	x0, .LANCHOR69
19940	ldr	x1, [x20, 24]
19941	mov	w23, -1
19942	mov	x2, 0
19943	ldr	x0, [x0, #:lo12:.LANCHOR69]
19944	ldr	w0, [x0, 8]
19945	stp	w0, w23, [x1]
19946	ldr	x0, [x20, 8]
19947	stp	w23, wzr, [x1, 8]
19948	str	wzr, [x1, 16]!
19949	str	wzr, [x0]
19950	mov	w0, 2
19951	bl	ftl_debug_info_fill
19952.L3107:
19953	ldrh	w0, [x19, 6]
19954	cmp	w0, 1
19955	bls	.L3112
19956	add	x0, x21, :lo12:.LANCHOR19
19957	str	x0, [x29, 160]
19958	add	x0, x22, :lo12:.LANCHOR68
19959	str	x0, [x29, 144]
19960.L3176:
19961	mov	x0, x19
19962	bl	ftl_get_new_free_page
19963	mov	w4, w0
19964	ldr	x0, [x29, 160]
19965	ldr	w0, [x0]
19966	tbz	x0, 14, .L3113
19967	ldrh	w0, [x19, 12]
19968	mov	w1, w4
19969	ldrh	w3, [x19, 10]
19970	str	w4, [x29, 124]
19971	add	w3, w3, w0
19972	ldr	x0, [x20, 24]
19973	sub	w3, w3, #1
19974	ldr	w2, [x0, 4]
19975	ldr	x0, [x29, 136]
19976	bl	printf
19977	ldr	w4, [x29, 124]
19978.L3113:
19979	ldr	x0, [x29, 128]
19980	ldr	w2, [x29, 168]
19981	ldrh	w1, [x19, 6]
19982	ldrb	w0, [x0]
19983	mul	w0, w0, w27
19984	add	w0, w0, 1
19985	sub	w0, w0, w2
19986	cmp	w1, w0
19987	bls	.L3112
19988	ldr	x0, [x29, 144]
19989	ldr	x1, [x20, 8]
19990	ldr	x2, [x20, 24]
19991	str	w4, [x29, 112]
19992	ldrb	w3, [x0]
19993	mov	w0, w4
19994	bl	ftl_prog_ppa_page
19995	mov	w1, w0
19996	ldrh	w0, [x19]
19997	str	w1, [x29, 124]
19998	bl	ftl_vpn_decrement
19999	ldr	w1, [x29, 124]
20000	cmn	w23, #1
20001	ldr	w4, [x29, 112]
20002	ccmn	w1, #1, 4, ne
20003	beq	.L3115
20004	add	x0, x29, 240
20005	ldrh	w1, [x19, 12]
20006	str	w4, [x0, x24, lsl 2]
20007	ldrh	w0, [x19, 10]
20008	add	w0, w0, w1
20009	add	x1, x29, 304
20010	sub	w0, w0, #1
20011	str	w0, [x1, x24, lsl 2]
20012.L3112:
20013	add	x24, x24, 1
20014	b	.L3105
20015.L3106:
20016	ldrb	w3, [x22, #:lo12:.LANCHOR68]
20017	ldr	x1, [x20, 8]
20018	ldr	x2, [x20, 24]
20019	bl	ftl_read_ppa_page
20020	mov	w23, w0
20021	ldr	x0, [x20, 24]
20022	ldr	w0, [x0, 4]
20023	bl	lpa_hash_get_ppa
20024	mov	w4, w0
20025	ldr	w0, [x21, #:lo12:.LANCHOR19]
20026	tbz	x0, 14, .L3108
20027	ldr	x0, [x20, 24]
20028	mov	w1, w4
20029	ldr	w2, [x26, x24, lsl 2]
20030	str	w4, [x29, 160]
20031	ldr	w3, [x0, 4]
20032	adrp	x0, .LC181
20033	add	x0, x0, :lo12:.LC181
20034	bl	printf
20035	ldr	w4, [x29, 160]
20036.L3108:
20037	ldr	x1, [x20, 24]
20038	mov	x2, 0
20039	ldr	w0, [x26, x24, lsl 2]
20040	cmp	w4, w0
20041	mov	w0, 1
20042	stp	w4, w0, [x1, 8]
20043	csinv	w23, w23, wzr, eq
20044	str	wzr, [x1, 16]!
20045	mov	w0, 2
20046	bl	ftl_debug_info_fill
20047	cmn	w23, #1
20048	bne	.L3107
20049	b	.L3110
20050.L3115:
20051	ldrh	w0, [x19, 6]
20052	cmp	w0, 1
20053	bls	.L3112
20054	cmn	w23, #1
20055	bne	.L3176
20056	b	.L3112
20057.L3123:
20058	add	x0, x29, 240
20059	ldr	w0, [x0, x28, lsl 2]
20060	cmn	w0, #1
20061	beq	.L3119
20062	ldrb	w3, [x22, #:lo12:.LANCHOR68]
20063	ldr	w0, [x26, x28, lsl 2]
20064	ldr	x1, [x20, 8]
20065	ldr	x2, [x20, 24]
20066	bl	ftl_read_ppa_page
20067	cmp	w0, 256
20068	ccmn	w0, #1, 4, ne
20069	bne	.L3119
20070	add	x0, x29, 240
20071	ldrb	w3, [x22, #:lo12:.LANCHOR68]
20072	ldr	x1, [x20, 8]
20073	ldr	x2, [x20, 24]
20074	ldr	w0, [x0, x28, lsl 2]
20075	bl	ftl_read_ppa_page
20076	mov	w5, w0
20077	ldr	w0, [x21, #:lo12:.LANCHOR19]
20078	tbz	x0, 14, .L3121
20079	ldr	x0, [x20, 24]
20080	mov	w1, w5
20081	ldr	w3, [x26, x28, lsl 2]
20082	str	w5, [x29, 168]
20083	ldr	w2, [x0, 8]
20084	mov	x0, x23
20085	bl	printf
20086	ldr	w5, [x29, 168]
20087.L3121:
20088	cmn	w5, #1
20089	beq	.L3119
20090	ldr	x0, [x20, 24]
20091	ldr	w2, [x26, x28, lsl 2]
20092	ldr	w1, [x0, 8]
20093	cmp	w2, w1
20094	bne	.L3119
20095	ldr	w1, [x21, #:lo12:.LANCHOR19]
20096	tbz	x1, 14, .L3122
20097	add	x1, x29, 304
20098	ldr	w3, [x1, x28, lsl 2]
20099	ldr	w1, [x0, 4]
20100	mov	x0, x24
20101	bl	printf
20102.L3122:
20103	add	x1, x29, 304
20104	ldr	x0, [x20, 24]
20105	ldr	w1, [x1, x28, lsl 2]
20106	str	w1, [x29, 168]
20107	ldr	w1, [x0, 8]
20108	ldrh	w2, [x29, 168]
20109	ldr	w0, [x0, 4]
20110	bl	lpa_hash_update_ppa
20111.L3119:
20112	add	x28, x28, 1
20113	b	.L3117
20114.L3095:
20115	ldr	x3, [x20, 24]
20116	adrp	x0, .LANCHOR219
20117	ldr	w0, [x0, #:lo12:.LANCHOR219]
20118	ldr	w1, [x3, 4]
20119	cmp	w1, w0
20120	bcs	.L3092
20121	ldrb	w0, [x19, 9]
20122	ldrh	w1, [x25, #:lo12:.LANCHOR100]
20123	ldrh	w2, [x19, 10]
20124	mul	w0, w0, w1
20125	sub	w0, w0, #1
20126	cmp	w2, w0
20127	bge	.L3092
20128	adrp	x0, .LANCHOR69
20129	ldr	w1, [x3]
20130	ldr	x0, [x0, #:lo12:.LANCHOR69]
20131	ldr	w4, [x0, 8]
20132	cmp	w1, w4
20133	bls	.L3096
20134	str	w1, [x0, 8]
20135.L3096:
20136	ldrh	w0, [x19, 12]
20137	add	w2, w2, w0
20138	ldp	w0, w1, [x3, 4]
20139	bl	lpa_hash_update_ppa
20140	ldr	w0, [x29, 180]
20141	str	w0, [x29, 176]
20142	ldr	w0, [x29, 184]
20143	str	w0, [x29, 180]
20144	ldr	w0, [x29, 188]
20145	str	w0, [x29, 184]
20146	ldr	w0, [x29, 160]
20147	str	w0, [x29, 188]
20148	b	.L3092
20149	.size	ftl_open_sblk_recovery, .-ftl_open_sblk_recovery
20150	.section	.text.load_l2p_region,"ax",@progbits
20151	.align	2
20152	.type	load_l2p_region, %function
20153load_l2p_region:
20154	stp	x29, x30, [sp, -80]!
20155	add	x29, sp, 0
20156	stp	x19, x20, [sp, 16]
20157	and	w19, w0, 65535
20158	stp	x21, x22, [sp, 32]
20159	and	x21, x1, 65535
20160	stp	x23, x24, [sp, 48]
20161	cmp	w21, 7
20162	stp	x25, x26, [sp, 64]
20163	bls	.L3205
20164	adrp	x1, .LANCHOR220
20165	adrp	x0, .LC0
20166	mov	w2, 32
20167	add	x1, x1, :lo12:.LANCHOR220
20168	add	x0, x0, :lo12:.LC0
20169	bl	printf
20170.L3205:
20171	adrp	x20, .LANCHOR69
20172	mov	x25, x20
20173	ldr	x0, [x20, #:lo12:.LANCHOR69]
20174	ldrh	w2, [x0, 698]
20175	cmp	w2, w19
20176	bcs	.L3206
20177	mov	w1, w19
20178	adrp	x0, .LC184
20179	add	x0, x0, :lo12:.LC184
20180	bl	printf
20181	adrp	x0, .LANCHOR221
20182	mov	w1, 255
20183	ldrh	w2, [x0, #:lo12:.LANCHOR221]
20184	mov	x0, 0
20185	ldr	x0, [x0, 8]
20186	bl	ftl_memset
20187	ldr	x0, [x20, #:lo12:.LANCHOR69]
20188	ldrh	w0, [x0, 698]
20189	cmp	w0, w19
20190	bcc	.L3207
20191.L3217:
20192	mov	w0, 0
20193.L3204:
20194	ldp	x19, x20, [sp, 16]
20195	ldp	x21, x22, [sp, 32]
20196	ldp	x23, x24, [sp, 48]
20197	ldp	x25, x26, [sp, 64]
20198	ldp	x29, x30, [sp], 80
20199	ret
20200.L3207:
20201	mov	w2, 37
20202.L3218:
20203	adrp	x1, .LANCHOR220
20204	adrp	x0, .LC0
20205	add	x1, x1, :lo12:.LANCHOR220
20206	add	x0, x0, :lo12:.LC0
20207	bl	printf
20208	b	.L3217
20209.L3206:
20210	add	x0, x0, x19, sxtw 2
20211	adrp	x22, .LANCHOR136
20212	add	x1, x22, :lo12:.LANCHOR136
20213	ldr	w23, [x0, 704]
20214	lsl	x0, x21, 4
20215	add	x26, x1, x0
20216	strh	w19, [x1, x0]
20217	strh	wzr, [x26, 2]
20218	cbnz	w23, .L3209
20219	mov	w1, w19
20220	mov	w2, 0
20221	adrp	x0, .LC185
20222	add	x0, x0, :lo12:.LC185
20223	bl	printf
20224	adrp	x0, .LANCHOR221
20225	mov	w1, 255
20226	ldrh	w2, [x0, #:lo12:.LANCHOR221]
20227	ldr	x0, [x26, 8]
20228	bl	ftl_memset
20229	b	.L3217
20230.L3209:
20231	adrp	x20, .LANCHOR206
20232	adrp	x24, .LANCHOR68
20233	ldr	x1, [x26, 8]
20234	mov	w0, w23
20235	ldr	x2, [x20, #:lo12:.LANCHOR206]
20236	ldrb	w3, [x24, #:lo12:.LANCHOR68]
20237	bl	ftl_read_ppa_page
20238	ldr	x1, [x20, #:lo12:.LANCHOR206]
20239	ldr	w2, [x1]
20240	cmp	w2, w19
20241	bne	.L3210
20242	cmp	w0, 512
20243	ccmn	w0, #1, 4, ne
20244	beq	.L3210
20245.L3214:
20246	ldr	x0, [x20, #:lo12:.LANCHOR206]
20247	ldr	w0, [x0]
20248	cmp	w19, w0
20249	beq	.L3217
20250	mov	w2, 73
20251	b	.L3218
20252.L3210:
20253	mov	w4, w23
20254	mov	w3, w0
20255	mov	w1, w19
20256	adrp	x0, .LC186
20257	add	x0, x0, :lo12:.LC186
20258	bl	printf
20259	ldr	x1, [x25, #:lo12:.LANCHOR69]
20260	add	x22, x22, :lo12:.LANCHOR136
20261	add	x21, x22, x21, lsl 4
20262	mov	w2, 4
20263	add	x1, x1, 704
20264	adrp	x0, .LC187
20265	add	x0, x0, :lo12:.LC187
20266	ldrh	w3, [x1, -6]
20267	bl	rknand_print_hex
20268	ldr	x1, [x21, 8]
20269	mov	w2, 4
20270	ldrb	w3, [x24, #:lo12:.LANCHOR68]
20271	adrp	x0, .LC178
20272	add	x0, x0, :lo12:.LC178
20273	lsl	w3, w3, 7
20274	bl	rknand_print_hex
20275	ldr	x1, [x20, #:lo12:.LANCHOR206]
20276	mov	w3, 16
20277	mov	w2, 4
20278	adrp	x0, .LC188
20279	add	x0, x0, :lo12:.LC188
20280	bl	rknand_print_hex
20281	ldrb	w3, [x24, #:lo12:.LANCHOR68]
20282	mov	w0, w23
20283	ldr	x2, [x20, #:lo12:.LANCHOR206]
20284	ldr	x1, [x21, 8]
20285	bl	ftl_read_ppa_page
20286	cmp	w0, 512
20287	ccmn	w0, #1, 4, ne
20288	bne	.L3213
20289	adrp	x0, .LANCHOR221
20290	mov	w1, 255
20291	ldrh	w2, [x0, #:lo12:.LANCHOR221]
20292	ldr	x0, [x21, 8]
20293	bl	ftl_memset
20294.L3215:
20295	mov	w0, -1
20296	b	.L3204
20297.L3213:
20298	ldr	x0, [x20, #:lo12:.LANCHOR206]
20299	ldr	w0, [x0]
20300	cmp	w19, w0
20301	beq	.L3214
20302	b	.L3215
20303	.size	load_l2p_region, .-load_l2p_region
20304	.section	.text.pm_gc,"ax",@progbits
20305	.align	2
20306	.global	pm_gc
20307	.type	pm_gc, %function
20308pm_gc:
20309	stp	x29, x30, [sp, -96]!
20310	add	x29, sp, 0
20311	stp	x19, x20, [sp, 16]
20312	adrp	x19, .LANCHOR69
20313	stp	x21, x22, [sp, 32]
20314	adrp	x21, .LANCHOR149
20315	ldr	x0, [x19, #:lo12:.LANCHOR69]
20316	stp	x23, x24, [sp, 48]
20317	stp	x25, x26, [sp, 64]
20318	ldrh	w2, [x0, 688]
20319	adrp	x0, .LANCHOR153
20320	str	x27, [sp, 80]
20321	mov	x20, x0
20322	ldrh	w1, [x0, #:lo12:.LANCHOR153]
20323	sub	w1, w1, #1
20324	cmp	w2, w1
20325	bge	.L3220
20326	ldr	w0, [x21, #:lo12:.LANCHOR149]
20327	cbz	w0, .L3221
20328.L3220:
20329	bl	pm_free_sblk
20330	ldr	x2, [x19, #:lo12:.LANCHOR69]
20331	ldrh	w1, [x20, #:lo12:.LANCHOR153]
20332	sub	w1, w1, #1
20333	ldrh	w3, [x2, 688]
20334	cmp	w3, w1
20335	bge	.L3222
20336	ldr	w1, [x21, #:lo12:.LANCHOR149]
20337	cbz	w1, .L3221
20338.L3222:
20339	add	x0, x2, x0, uxth 1
20340	str	wzr, [x21, #:lo12:.LANCHOR149]
20341	mov	w20, 65535
20342	ldrh	w21, [x0, 416]
20343	cmp	w21, w20
20344	bne	.L3224
20345	adrp	x1, .LANCHOR222
20346	add	x1, x1, :lo12:.LANCHOR222
20347	mov	w2, 182
20348	adrp	x0, .LC0
20349	add	x0, x0, :lo12:.LC0
20350	bl	printf
20351	bl	pm_free_sblk
20352	ldr	x1, [x19, #:lo12:.LANCHOR69]
20353	add	x0, x1, x0, uxth 1
20354	ldrh	w21, [x0, 416]
20355	cmp	w21, w20
20356	beq	.L3221
20357.L3224:
20358	bl	pm_select_ram_region
20359	and	x22, x0, 65535
20360	lsl	x0, x22, 4
20361	adrp	x20, .LANCHOR136
20362	add	x1, x20, :lo12:.LANCHOR136
20363	mov	x25, x22
20364	add	x23, x1, x0
20365	ldrh	w0, [x1, x0]
20366	mov	w1, 65535
20367	cmp	w0, w1
20368	beq	.L3225
20369	ldr	x1, [x23, 8]
20370	cbz	x1, .L3225
20371	ldrsh	w2, [x23, 2]
20372	tbz	w2, #31, .L3225
20373	bl	pm_write_page
20374	ldrh	w0, [x23, 2]
20375	and	w0, w0, 32767
20376	strh	w0, [x23, 2]
20377.L3225:
20378	adrp	x23, .LANCHOR80
20379	adrp	x24, .LANCHOR31
20380	add	x23, x23, :lo12:.LANCHOR80
20381	add	x24, x24, :lo12:.LANCHOR31
20382	mov	w27, 0
20383	mov	w26, 24
20384.L3226:
20385	ldr	x2, [x19, #:lo12:.LANCHOR69]
20386	ldrh	w0, [x2, 698]
20387	cmp	w0, w27
20388	bhi	.L3229
20389	bl	pm_free_sblk
20390.L3221:
20391	mov	w0, 0
20392	ldr	x27, [sp, 80]
20393	ldp	x19, x20, [sp, 16]
20394	ldp	x21, x22, [sp, 32]
20395	ldp	x23, x24, [sp, 48]
20396	ldp	x25, x26, [sp, 64]
20397	ldp	x29, x30, [sp], 96
20398	ret
20399.L3229:
20400	ldrb	w0, [x24]
20401	add	x2, x2, x27, sxtw 2
20402	ldrh	w3, [x23]
20403	sub	w0, w26, w0
20404	sub	w1, w0, w3
20405	mov	w0, 1
20406	lsl	w0, w0, w1
20407	ldr	w1, [x2, 704]
20408	sub	w0, w0, #1
20409	lsr	w1, w1, w3
20410	and	w0, w0, w1
20411	adrp	x1, .LANCHOR81
20412	ldrb	w1, [x1, #:lo12:.LANCHOR81]
20413	udiv	w0, w0, w1
20414	cmp	w21, w0, uxth
20415	bne	.L3227
20416	mov	w1, w25
20417	mov	w0, w27
20418	bl	load_l2p_region
20419	cbnz	w0, .L3228
20420	add	x0, x20, :lo12:.LANCHOR136
20421	add	x0, x0, x22, lsl 4
20422	ldr	x1, [x0, 8]
20423	mov	w0, w27
20424	bl	pm_write_page
20425.L3228:
20426	add	x1, x20, :lo12:.LANCHOR136
20427	lsl	x0, x22, 4
20428	mov	w2, -1
20429	strh	w2, [x1, x0]
20430.L3227:
20431	add	w27, w27, 1
20432	and	w27, w27, 65535
20433	b	.L3226
20434	.size	pm_gc, .-pm_gc
20435	.section	.text.pm_flush_id,"ax",@progbits
20436	.align	2
20437	.global	pm_flush_id
20438	.type	pm_flush_id, %function
20439pm_flush_id:
20440	stp	x29, x30, [sp, -32]!
20441	ubfiz	x0, x0, 4, 16
20442	adrp	x2, .LANCHOR136
20443	add	x2, x2, :lo12:.LANCHOR136
20444	add	x29, sp, 0
20445	str	x19, [sp, 16]
20446	add	x19, x2, x0
20447	ldrh	w0, [x2, x0]
20448	ldr	x1, [x19, 8]
20449	bl	pm_write_page
20450	ldrh	w0, [x19, 2]
20451	and	w0, w0, 32767
20452	strh	w0, [x19, 2]
20453	adrp	x19, .LANCHOR134
20454	ldr	w0, [x19, #:lo12:.LANCHOR134]
20455	cbz	w0, .L3238
20456	bl	pm_gc
20457	str	wzr, [x19, #:lo12:.LANCHOR134]
20458.L3238:
20459	mov	w0, 0
20460	ldr	x19, [sp, 16]
20461	ldp	x29, x30, [sp], 32
20462	ret
20463	.size	pm_flush_id, .-pm_flush_id
20464	.section	.text.pm_flush,"ax",@progbits
20465	.align	2
20466	.global	pm_flush
20467	.type	pm_flush, %function
20468pm_flush:
20469	stp	x29, x30, [sp, -32]!
20470	add	x29, sp, 0
20471	stp	x19, x20, [sp, 16]
20472	adrp	x19, .LANCHOR136
20473	add	x19, x19, :lo12:.LANCHOR136
20474	mov	w20, 0
20475	add	x19, x19, 2
20476.L3245:
20477	ldrsh	w0, [x19]
20478	tbz	w0, #31, .L3244
20479	mov	w0, w20
20480	bl	pm_flush_id
20481.L3244:
20482	add	w20, w20, 1
20483	add	x19, x19, 16
20484	and	w20, w20, 65535
20485	cmp	w20, 8
20486	bne	.L3245
20487	mov	w0, 0
20488	ldp	x19, x20, [sp, 16]
20489	ldp	x29, x30, [sp], 32
20490	ret
20491	.size	pm_flush, .-pm_flush
20492	.section	.text.flt_sys_flush,"ax",@progbits
20493	.align	2
20494	.global	flt_sys_flush
20495	.type	flt_sys_flush, %function
20496flt_sys_flush:
20497	stp	x29, x30, [sp, -16]!
20498	add	x29, sp, 0
20499	bl	ftl_flush
20500	bl	pm_flush
20501	bl	ftl_ext_info_flush
20502	ldp	x29, x30, [sp], 16
20503	mov	w0, 0
20504	b	ftl_info_flush
20505	.size	flt_sys_flush, .-flt_sys_flush
20506	.section	.text.rk_ftl_de_init,"ax",@progbits
20507	.align	2
20508	.global	rk_ftl_de_init
20509	.type	rk_ftl_de_init, %function
20510rk_ftl_de_init:
20511	stp	x29, x30, [sp, -16]!
20512	add	x29, sp, 0
20513	bl	zftl_flash_de_init
20514	bl	flt_sys_flush
20515	ldp	x29, x30, [sp], 16
20516	b	zftl_flash_de_init
20517	.size	rk_ftl_de_init, .-rk_ftl_de_init
20518	.section	.text.zftl_deinit,"ax",@progbits
20519	.align	2
20520	.global	zftl_deinit
20521	.type	zftl_deinit, %function
20522zftl_deinit:
20523	b	rk_ftl_de_init
20524	.size	zftl_deinit, .-zftl_deinit
20525	.section	.text.pm_init,"ax",@progbits
20526	.align	2
20527	.global	pm_init
20528	.type	pm_init, %function
20529pm_init:
20530	stp	x29, x30, [sp, -112]!
20531	mov	w1, 1
20532	add	x29, sp, 0
20533	stp	x23, x24, [sp, 48]
20534	mov	w24, w0
20535	adrp	x0, .LANCHOR149
20536	stp	x19, x20, [sp, 16]
20537	stp	x21, x22, [sp, 32]
20538	adrp	x19, .LANCHOR136
20539	str	wzr, [x0, #:lo12:.LANCHOR149]
20540	adrp	x0, .LANCHOR134
20541	stp	x25, x26, [sp, 64]
20542	add	x20, x19, :lo12:.LANCHOR136
20543	str	wzr, [x0, #:lo12:.LANCHOR134]
20544	adrp	x0, .LANCHOR207
20545	stp	x27, x28, [sp, 80]
20546	adrp	x22, .LANCHOR68
20547	strb	w1, [x0, #:lo12:.LANCHOR207]
20548	mov	w0, 64
20549	bl	ftl_malloc
20550	add	x23, x20, 128
20551	adrp	x1, .LANCHOR206
20552	add	x22, x22, :lo12:.LANCHOR68
20553	mov	x21, x1
20554	mov	w25, -1
20555	str	x0, [x1, #:lo12:.LANCHOR206]
20556.L3255:
20557	strh	w25, [x20]
20558	strh	wzr, [x20, 2]
20559	cbz	w24, .L3254
20560	ldrb	w0, [x22]
20561	lsl	w0, w0, 9
20562	bl	ftl_malloc
20563	str	x0, [x20, 8]
20564.L3254:
20565	add	x20, x20, 16
20566	cmp	x20, x23
20567	bne	.L3255
20568	add	x0, x19, :lo12:.LANCHOR136
20569	adrp	x20, .LANCHOR69
20570	ldr	x22, [x21, #:lo12:.LANCHOR206]
20571	mov	w4, 4
20572	ldr	x27, [x0, 8]
20573	mov	x3, x22
20574	ldr	x0, [x20, #:lo12:.LANCHOR69]
20575	mov	x2, x27
20576	ldrh	w1, [x0, 692]
20577	ldrb	w0, [x0, 694]
20578	bl	flash_get_last_written_page
20579	sxth	w26, w0
20580	ldr	x0, [x20, #:lo12:.LANCHOR69]
20581	mov	w24, w26
20582	ldrh	w2, [x0, 696]
20583	cmp	w2, w26
20584	bgt	.L3256
20585	ldrh	w1, [x0, 692]
20586	mov	w3, w26
20587	adrp	x0, .LC189
20588	add	x0, x0, :lo12:.LC189
20589	adrp	x25, .LANCHOR68
20590	add	x25, x25, :lo12:.LANCHOR68
20591	adrp	x28, .LC190
20592	bl	printf
20593	ldr	x0, [x20, #:lo12:.LANCHOR69]
20594	ldrsh	w21, [x0, 696]
20595	adrp	x0, .LANCHOR117
20596	add	x0, x0, :lo12:.LANCHOR117
20597	str	x0, [x29, 104]
20598.L3257:
20599	cmp	w21, w26
20600	ble	.L3260
20601	adrp	x0, .LANCHOR197
20602	mov	w1, 1
20603	add	w24, w24, 1
20604	strb	w1, [x0, #:lo12:.LANCHOR197]
20605	ldr	x0, [x20, #:lo12:.LANCHOR69]
20606	strh	w24, [x0, 696]
20607	bl	pm_free_sblk
20608.L3256:
20609	add	x19, x19, :lo12:.LANCHOR136
20610	adrp	x0, .LANCHOR221
20611	mov	w1, 255
20612	ldrh	w2, [x0, #:lo12:.LANCHOR221]
20613	ldr	x0, [x19, 8]
20614	bl	ftl_memset
20615	ldr	x1, [x19, 8]
20616	mov	w0, -1
20617	bl	pm_write_page
20618	adrp	x0, .LANCHOR197
20619	ldrb	w0, [x0, #:lo12:.LANCHOR197]
20620	cbz	w0, .L3261
20621	ldr	x1, [x19, 8]
20622	mov	w0, -1
20623	bl	pm_write_page
20624	ldr	x1, [x19, 8]
20625	mov	w0, -1
20626	bl	pm_write_page
20627	ldr	x1, [x19, 8]
20628	mov	w0, -1
20629	bl	pm_write_page
20630.L3261:
20631	bl	pm_free_sblk
20632	bl	pm_gc
20633	mov	w0, 0
20634	ldp	x19, x20, [sp, 16]
20635	ldp	x21, x22, [sp, 32]
20636	ldp	x23, x24, [sp, 48]
20637	ldp	x25, x26, [sp, 64]
20638	ldp	x27, x28, [sp, 80]
20639	ldp	x29, x30, [sp], 112
20640	ret
20641.L3260:
20642	ldr	x0, [x20, #:lo12:.LANCHOR69]
20643	mov	x3, x22
20644	ldr	x1, [x29, 104]
20645	mov	x2, x27
20646	ldrb	w4, [x25]
20647	ldrh	w23, [x0, 692]
20648	ldrh	w1, [x1]
20649	ldrb	w0, [x0, 694]
20650	madd	w23, w23, w1, w21
20651	mov	w1, w23
20652	bl	flash_read_page_en
20653	mov	w4, w0
20654	ldr	x0, [x20, #:lo12:.LANCHOR69]
20655	str	w4, [x29, 100]
20656	mov	w2, w23
20657	ldr	w1, [x0, 48]
20658	ldrh	w3, [x0, 694]
20659	add	w1, w1, 1
20660	str	w1, [x0, 48]
20661	add	x0, x28, :lo12:.LC190
20662	ldr	w1, [x22]
20663	bl	printf
20664	ldr	w4, [x29, 100]
20665	cmp	w4, 512
20666	ccmn	w4, #1, 4, ne
20667	beq	.L3258
20668	ldr	x8, [x20, #:lo12:.LANCHOR69]
20669	ldr	w6, [x22]
20670	ldrh	w0, [x8, 698]
20671	cmp	w6, w0
20672	bcs	.L3258
20673	ldr	w7, [x22, 8]
20674	cbz	w7, .L3259
20675	ldrb	w1, [x25]
20676	mov	x0, x27
20677	lsl	w1, w1, 9
20678	bl	js_hash
20679	cmp	w7, w0
20680	beq	.L3259
20681	adrp	x0, .LC191
20682	mov	w1, w7
20683	add	x0, x0, :lo12:.LC191
20684	bl	printf
20685.L3258:
20686	add	w21, w21, 1
20687	sxth	w21, w21
20688	b	.L3257
20689.L3259:
20690	add	x6, x8, x6, uxtw 2
20691	str	w23, [x6, 704]
20692	b	.L3258
20693	.size	pm_init, .-pm_init
20694	.section	.text.pm_log2phys,"ax",@progbits
20695	.align	2
20696	.global	pm_log2phys
20697	.type	pm_log2phys, %function
20698pm_log2phys:
20699	stp	x29, x30, [sp, -96]!
20700	add	x29, sp, 0
20701	stp	x25, x26, [sp, 64]
20702	mov	w25, w0
20703	adrp	x0, .LANCHOR219
20704	stp	x23, x24, [sp, 48]
20705	stp	x19, x20, [sp, 16]
20706	mov	w24, w2
20707	stp	x21, x22, [sp, 32]
20708	mov	x23, x1
20709	ldr	w2, [x0, #:lo12:.LANCHOR219]
20710	str	x27, [sp, 80]
20711	cmp	w25, w2
20712	bcc	.L3277
20713	mov	w1, w25
20714	adrp	x0, .LC192
20715	add	x0, x0, :lo12:.LC192
20716	bl	printf
20717	mov	w0, -1
20718	cbnz	w24, .L3276
20719	str	w0, [x23]
20720.L3276:
20721	ldp	x19, x20, [sp, 16]
20722	ldp	x21, x22, [sp, 32]
20723	ldp	x23, x24, [sp, 48]
20724	ldp	x25, x26, [sp, 64]
20725	ldr	x27, [sp, 80]
20726	ldp	x29, x30, [sp], 96
20727	ret
20728.L3277:
20729	adrp	x0, .LANCHOR68
20730	adrp	x21, .LANCHOR136
20731	mov	x19, 0
20732	ldrb	w20, [x0, #:lo12:.LANCHOR68]
20733	add	x0, x21, :lo12:.LANCHOR136
20734	add	x0, x0, 8
20735	lsl	w22, w20, 7
20736	udiv	w22, w25, w22
20737	and	w26, w22, 65535
20738.L3283:
20739	ldr	x1, [x0]
20740	cbz	x1, .L3279
20741	ldrh	w1, [x0, -8]
20742	cmp	w1, w26
20743	bne	.L3279
20744.L3280:
20745	ubfiz	w20, w20, 7, 9
20746	msub	w25, w26, w20, w25
20747	and	x25, x25, 65535
20748	cbnz	w24, .L3281
20749	add	x0, x21, :lo12:.LANCHOR136
20750	adrp	x1, .LANCHOR31
20751	add	x0, x0, x19, lsl 4
20752	mov	w2, 24
20753	ldr	x0, [x0, 8]
20754	ldr	w0, [x0, x25, lsl 2]
20755	str	w0, [x23]
20756	ldrb	w3, [x1, #:lo12:.LANCHOR31]
20757	mov	w1, 1
20758	sub	w2, w2, w3
20759	lsl	w1, w1, w3
20760	sub	w1, w1, #1
20761	lsr	w0, w0, w2
20762	and	w0, w0, w1
20763	adrp	x1, .LANCHOR118
20764	ldrb	w1, [x1, #:lo12:.LANCHOR118]
20765	cmp	w0, w1
20766	bcc	.L3282
20767	mov	w0, -1
20768	str	w0, [x23]
20769.L3282:
20770	add	x21, x21, :lo12:.LANCHOR136
20771	add	x19, x21, x19, lsl 4
20772	ldrh	w0, [x19, 2]
20773	mvn	x1, x0
20774	tst	x1, 32767
20775	beq	.L3286
20776	add	w0, w0, 1
20777	strh	w0, [x19, 2]
20778.L3286:
20779	mov	w0, 0
20780	b	.L3276
20781.L3281:
20782	add	x0, x21, :lo12:.LANCHOR136
20783	ldr	w2, [x23]
20784	add	x0, x0, x19, lsl 4
20785	ldr	x1, [x0, 8]
20786	str	w2, [x1, x25, lsl 2]
20787	ldrh	w1, [x0, 2]
20788	orr	w1, w1, -32768
20789	strh	w1, [x0, 2]
20790	adrp	x0, .LANCHOR137
20791	strb	w22, [x0, #:lo12:.LANCHOR137]
20792	b	.L3282
20793.L3279:
20794	add	w19, w19, 1
20795	add	x0, x0, 16
20796	and	x19, x19, 65535
20797	cmp	w19, 8
20798	bne	.L3283
20799	bl	pm_select_ram_region
20800	and	x19, x0, 65535
20801	sbfiz	x1, x19, 4, 32
20802	add	x2, x21, :lo12:.LANCHOR136
20803	add	x3, x2, x1
20804	mov	w27, w0
20805	ldrh	w2, [x2, x1]
20806	mov	w1, 65535
20807	cmp	w2, w1
20808	beq	.L3284
20809	ldrsh	w1, [x3, 2]
20810	tbz	w1, #31, .L3284
20811	bl	pm_flush_id
20812.L3284:
20813	adrp	x0, .LANCHOR223
20814	mov	w1, w27
20815	strb	w19, [x0, #:lo12:.LANCHOR223]
20816	mov	w0, w26
20817	bl	load_l2p_region
20818	b	.L3280
20819	.size	pm_log2phys, .-pm_log2phys
20820	.section	.text.gc_recovery,"ax",@progbits
20821	.align	2
20822	.global	gc_recovery
20823	.type	gc_recovery, %function
20824gc_recovery:
20825	sub	sp, sp, #240
20826	adrp	x0, .LANCHOR12
20827	adrp	x1, .LANCHOR90
20828	mov	w2, 65535
20829	stp	x29, x30, [sp, 32]
20830	add	x29, sp, 32
20831	stp	x23, x24, [sp, 80]
20832	ldr	x23, [x0, #:lo12:.LANCHOR12]
20833	strb	wzr, [x1, #:lo12:.LANCHOR90]
20834	adrp	x1, .LANCHOR157
20835	stp	x25, x26, [sp, 96]
20836	mov	x26, x0
20837	strb	wzr, [x1, #:lo12:.LANCHOR157]
20838	add	x1, x23, 80
20839	stp	x19, x20, [sp, 48]
20840	str	x1, [x29, 168]
20841	stp	x21, x22, [sp, 64]
20842	ldrh	w1, [x23, 80]
20843	stp	x27, x28, [sp, 112]
20844	cmp	w1, w2
20845	beq	.L3293
20846	mov	w0, -1
20847	strh	w0, [x23, 130]
20848	mov	w0, 1
20849	bl	buf_alloc
20850	mov	x27, x0
20851	ldrb	w0, [x23, 89]
20852	add	x1, x23, 80
20853	adrp	x3, .LANCHOR117
20854	str	x3, [x29, 152]
20855	sub	w0, w0, #1
20856	add	x0, x1, x0, sxtw 1
20857	ldrh	w1, [x3, #:lo12:.LANCHOR117]
20858	ldrh	w0, [x0, 16]
20859	mul	w1, w0, w1
20860	adrp	x0, .LANCHOR84
20861	str	w1, [x29, 200]
20862	ldrb	w2, [x0, #:lo12:.LANCHOR84]
20863	str	x0, [x29, 176]
20864	cmp	w2, 2
20865	beq	.L3294
20866	adrp	x0, .LANCHOR35
20867	ldrb	w0, [x0, #:lo12:.LANCHOR35]
20868	cbnz	w0, .L3294
20869	adrp	x0, .LANCHOR36
20870	ldrb	w0, [x0, #:lo12:.LANCHOR36]
20871	cbz	w0, .L3295
20872.L3294:
20873	adrp	x0, .LANCHOR91
20874	ldrh	w0, [x0, #:lo12:.LANCHOR91]
20875	sub	w0, w0, #1
20876	add	w0, w0, w1
20877	orr	w2, w0, w2, lsl 24
20878	str	w2, [x27, 40]
20879.L3296:
20880	mov	w1, 1
20881	mov	x0, x27
20882	bl	sblk_read_page
20883	ldr	w0, [x27, 52]
20884	cmp	w0, 512
20885	ccmn	w0, #1, 4, ne
20886	beq	.L3297
20887	ldr	x0, [x27, 24]
20888	ldr	w1, [x0]
20889	mov	w0, 15555
20890	movk	w0, 0xf55f, lsl 16
20891	cmp	w1, w0
20892	beq	.L3298
20893.L3297:
20894	mov	x0, x27
20895	bl	zbuf_free
20896	ldr	x1, [x27, 24]
20897	ldr	x0, [x27, 8]
20898	ldr	w2, [x1, 12]
20899	str	w2, [sp, 16]
20900	ldr	w2, [x1, 8]
20901	str	w2, [sp, 8]
20902	ldr	w2, [x1, 4]
20903	str	w2, [sp]
20904	ldp	w3, w4, [x0]
20905	ldp	w5, w6, [x0, 8]
20906	adrp	x0, .LC193
20907	ldr	w7, [x1]
20908	add	x0, x0, :lo12:.LC193
20909	ldr	w1, [x27, 40]
20910	ldr	w2, [x27, 52]
20911	bl	printf
20912.L3387:
20913	adrp	x0, .LANCHOR11
20914	ldrh	w1, [x23, 80]
20915	mov	w25, 0
20916	ldr	x0, [x0, #:lo12:.LANCHOR11]
20917	strh	wzr, [x0, x1, lsl 1]
20918	ldr	x0, [x26, #:lo12:.LANCHOR12]
20919	ldrh	w1, [x23, 80]
20920	strh	w1, [x0, 130]
20921.L3299:
20922	ldrh	w0, [x23, 80]
20923	adrp	x2, .LANCHOR11
20924	ldr	x2, [x2, #:lo12:.LANCHOR11]
20925	ubfiz	x1, x0, 1, 16
20926	ldrh	w1, [x2, x1]
20927	cbnz	w1, .L3343
20928	bl	ftl_dump_write_open_sblk
20929.L3343:
20930	ldrh	w1, [x23, 80]
20931	mov	w2, w25
20932	adrp	x0, .LC195
20933	add	x0, x0, :lo12:.LC195
20934	bl	printf
20935	mov	w0, -1
20936	strh	w0, [x23, 80]
20937	bl	pm_flush
20938	bl	ftl_ext_info_flush
20939	ldr	x0, [x26, #:lo12:.LANCHOR12]
20940	mov	w1, 65535
20941	ldrh	w0, [x0, 130]
20942	cmp	w0, w1
20943	beq	.L3344
20944	adrp	x1, .LANCHOR8
20945	ldrh	w1, [x1, #:lo12:.LANCHOR8]
20946	cmp	w1, w0
20947	bhi	.L3345
20948	adrp	x1, .LANCHOR225
20949	adrp	x0, .LC0
20950	mov	w2, 517
20951	add	x1, x1, :lo12:.LANCHOR225
20952	add	x0, x0, :lo12:.LC0
20953	bl	printf
20954.L3345:
20955	ldr	x0, [x26, #:lo12:.LANCHOR12]
20956	ldrh	w0, [x0, 130]
20957	bl	ftl_free_sblk
20958.L3344:
20959	adrp	x0, .LANCHOR69
20960	ldr	x1, [x0, #:lo12:.LANCHOR69]
20961	mov	w0, -1
20962	strh	w0, [x1, 126]
20963	ldr	x1, [x26, #:lo12:.LANCHOR12]
20964	strh	w0, [x1, 130]
20965	mov	w0, 0
20966	bl	ftl_info_flush
20967.L3292:
20968	ldp	x19, x20, [sp, 48]
20969	ldp	x21, x22, [sp, 64]
20970	ldp	x23, x24, [sp, 80]
20971	ldp	x25, x26, [sp, 96]
20972	ldp	x27, x28, [sp, 112]
20973	ldp	x29, x30, [sp, 32]
20974	add	sp, sp, 240
20975	ret
20976.L3295:
20977	cmp	w2, 3
20978	bne	.L3296
20979	adrp	x0, .LANCHOR100
20980	ldrh	w0, [x0, #:lo12:.LANCHOR100]
20981	sub	w0, w0, #1
20982	add	w0, w0, w1
20983	orr	w0, w0, 50331648
20984	str	w0, [x27, 40]
20985	b	.L3296
20986.L3298:
20987	adrp	x21, .LANCHOR224
20988	adrp	x19, .LANCHOR91
20989	adrp	x20, .LANCHOR85
20990	adrp	x24, .LANCHOR160
20991	ldrb	w0, [x21, #:lo12:.LANCHOR224]
20992	cmp	w0, 2
20993	bne	.L3300
20994	ldr	x0, [x29, 176]
20995	ldrb	w0, [x0, #:lo12:.LANCHOR84]
20996	cmp	w0, 3
20997	bne	.L3300
20998	ldrh	w2, [x19, #:lo12:.LANCHOR91]
20999	adrp	x22, .LANCHOR221
21000	ldrb	w1, [x20, #:lo12:.LANCHOR85]
21001	ldr	x3, [x24, #:lo12:.LANCHOR160]
21002	ubfiz	w2, w2, 2, 14
21003	ldrh	w0, [x22, #:lo12:.LANCHOR221]
21004	mul	w2, w2, w1
21005	ldr	x1, [x27, 8]
21006	sub	w2, w2, w0
21007	and	x0, x0, 65532
21008	and	w2, w2, 65535
21009	add	x0, x3, x0
21010	bl	ftl_memcpy
21011	adrp	x0, .LANCHOR35
21012	ldrb	w0, [x0, #:lo12:.LANCHOR35]
21013	cbnz	w0, .L3301
21014	adrp	x0, .LANCHOR36
21015	ldrb	w0, [x0, #:lo12:.LANCHOR36]
21016	cbz	w0, .L3302
21017.L3301:
21018	ldr	w0, [x27, 40]
21019	sub	w0, w0, #1
21020.L3381:
21021	str	w0, [x27, 40]
21022	mov	w1, 1
21023	mov	x0, x27
21024	bl	sblk_read_page
21025	ldr	w0, [x27, 52]
21026	cmp	w0, 512
21027	ccmn	w0, #1, 4, ne
21028	beq	.L3304
21029	ldr	x0, [x27, 24]
21030	ldr	w1, [x0]
21031	mov	w0, 15555
21032	movk	w0, 0xf55f, lsl 16
21033	cmp	w1, w0
21034	beq	.L3305
21035.L3304:
21036	mov	x0, x27
21037	bl	zbuf_free
21038	b	.L3387
21039.L3302:
21040	adrp	x1, .LANCHOR100
21041	ldr	w0, [x29, 200]
21042	ldrh	w1, [x1, #:lo12:.LANCHOR100]
21043	sub	w0, w0, #1
21044	add	w0, w0, w1
21045	orr	w0, w0, 33554432
21046	b	.L3381
21047.L3305:
21048	ldrh	w2, [x22, #:lo12:.LANCHOR221]
21049.L3382:
21050	ldr	x1, [x27, 8]
21051	adrp	x22, .LANCHOR161
21052	ldr	x0, [x24, #:lo12:.LANCHOR160]
21053	bl	ftl_memcpy
21054	ldrb	w1, [x20, #:lo12:.LANCHOR85]
21055	ldrh	w0, [x19, #:lo12:.LANCHOR91]
21056	mul	w0, w0, w1
21057	adrp	x1, .LANCHOR68
21058	ldrb	w1, [x1, #:lo12:.LANCHOR68]
21059	lsl	w2, w0, 2
21060	cmp	w1, w0, lsr 6
21061	bge	.L3307
21062	ldr	x0, [x22, #:lo12:.LANCHOR161]
21063	mov	w1, 0
21064	bl	ftl_memset
21065	ldrb	w21, [x21, #:lo12:.LANCHOR224]
21066	cmp	w21, 1
21067	bne	.L3348
21068	ldrb	w1, [x20, #:lo12:.LANCHOR85]
21069	ldrh	w0, [x19, #:lo12:.LANCHOR91]
21070	mul	w0, w0, w1
21071	adrp	x1, .LANCHOR221
21072	ldrh	w1, [x1, #:lo12:.LANCHOR221]
21073	sub	w25, w1, w0, lsl 2
21074	ldr	x1, [x27, 8]
21075	mov	w2, w25
21076	add	x1, x1, x0, sxtw 2
21077	ldr	x0, [x22, #:lo12:.LANCHOR161]
21078	bl	ftl_memcpy
21079.L3308:
21080	adrp	x0, .LANCHOR100
21081	ldrh	w0, [x0, #:lo12:.LANCHOR100]
21082	str	w0, [x29, 184]
21083	ldr	x0, [x29, 176]
21084	ldrb	w0, [x0, #:lo12:.LANCHOR84]
21085	str	w0, [x29, 188]
21086	cmp	w0, 2
21087	bne	.L3309
21088	adrp	x0, .LANCHOR86
21089	ldrb	w0, [x0, #:lo12:.LANCHOR86]
21090	cbz	w0, .L3310
21091.L3309:
21092	adrp	x0, .LANCHOR35
21093	ldrb	w0, [x0, #:lo12:.LANCHOR35]
21094	cbz	w0, .L3311
21095.L3310:
21096	ldp	w0, w1, [x29, 184]
21097	mul	w0, w0, w1
21098	str	w0, [x29, 184]
21099	mov	w0, 1
21100	str	w0, [x29, 188]
21101.L3311:
21102	adrp	x22, .LANCHOR35
21103	mov	w28, 0
21104	add	x0, x22, :lo12:.LANCHOR35
21105	mov	w10, 0
21106	str	x0, [x29, 112]
21107.L3312:
21108	sub	w0, w28, #1
21109	str	w0, [x29, 144]
21110	ldr	w0, [x29, 184]
21111	cmp	w0, w28
21112	bls	.L3325
21113	add	w0, w28, w28, lsl 1
21114	mov	x20, 0
21115	sub	w0, w0, #1
21116	str	w0, [x29, 164]
21117	adrp	x0, .LANCHOR36
21118	add	x0, x0, :lo12:.LANCHOR36
21119	str	x0, [x29, 120]
21120	b	.L3326
21121.L3300:
21122	ldrh	w2, [x19, #:lo12:.LANCHOR91]
21123	ldrb	w0, [x20, #:lo12:.LANCHOR85]
21124	mul	w2, w2, w0
21125	lsl	w2, w2, 2
21126	b	.L3382
21127.L3307:
21128	ldr	x1, [x27, 8]
21129	mov	w21, 0
21130	add	x1, x1, x0, sxtw 2
21131	ldr	x0, [x22, #:lo12:.LANCHOR161]
21132	bl	ftl_memcpy
21133.L3383:
21134	mov	w25, 0
21135	b	.L3308
21136.L3348:
21137	mov	w21, 1
21138	b	.L3383
21139.L3321:
21140	ldp	x1, x0, [x29, 128]
21141	ldr	x2, [x29, 176]
21142	ldrh	w0, [x0, 96]
21143	ldrh	w1, [x1]
21144	ldrb	w2, [x2, #:lo12:.LANCHOR84]
21145	cmp	w2, 2
21146	mul	w0, w0, w1
21147	str	w0, [x29, 200]
21148	add	w1, w22, w0
21149	beq	.L3313
21150	ldr	x3, [x29, 112]
21151	ldrb	w3, [x3]
21152	cbz	w3, .L3314
21153.L3313:
21154	ldr	w0, [x29, 144]
21155	add	w1, w1, w0
21156	orr	w1, w1, w2, lsl 24
21157.L3384:
21158	str	w1, [x27, 40]
21159.L3315:
21160	mov	w1, 1
21161	str	x8, [x29, 96]
21162	str	w10, [x29, 104]
21163	mov	x0, x27
21164	bl	sblk_read_page
21165	adrp	x1, .LANCHOR161
21166	ldr	w10, [x29, 104]
21167	ldr	x0, [x27, 24]
21168	ldr	x8, [x29, 96]
21169	cbz	w21, .L3318
21170	ldr	x2, [x1, #:lo12:.LANCHOR161]
21171	ldr	w3, [x2, x8]
21172	cbnz	w3, .L3318
21173	ldr	w3, [x0, 8]
21174	str	w3, [x2, x8]
21175.L3318:
21176	ldr	x2, [x24, #:lo12:.LANCHOR160]
21177	ldr	w6, [x0, 4]
21178	ldr	w3, [x2, x8]
21179	cmp	w3, w6
21180	bne	.L3319
21181	ldr	x2, [x1, #:lo12:.LANCHOR161]
21182	ldr	w4, [x2, x8]
21183	ldr	w2, [x0, 8]
21184	cmp	w4, w2
21185	beq	.L3320
21186.L3319:
21187	ldr	x1, [x1, #:lo12:.LANCHOR161]
21188	ldr	w2, [x0, 12]
21189	str	w2, [sp]
21190	str	w10, [x29, 96]
21191	ldr	w4, [x1, x8]
21192	ldr	w5, [x0]
21193	ldr	w7, [x0, 8]
21194	adrp	x0, .LC194
21195	ldr	w1, [x27, 40]
21196	add	x0, x0, :lo12:.LC194
21197	ldr	w2, [x27, 52]
21198	str	x8, [x29, 104]
21199	bl	printf
21200	ldr	x0, [x24, #:lo12:.LANCHOR160]
21201	ldr	x8, [x29, 104]
21202	ldr	w10, [x29, 96]
21203	ldr	w0, [x0, x8]
21204	cmn	w0, #1
21205	beq	.L3320
21206	mov	x0, x27
21207	bl	zbuf_free
21208	adrp	x0, .LANCHOR11
21209	ldrh	w1, [x23, 80]
21210	ldr	x0, [x0, #:lo12:.LANCHOR11]
21211	strh	wzr, [x0, x1, lsl 1]
21212	ldr	x0, [x26, #:lo12:.LANCHOR12]
21213	ldrh	w1, [x23, 80]
21214	strh	w1, [x0, 130]
21215	b	.L3299
21216.L3314:
21217	cmp	w2, 3
21218	bne	.L3316
21219	ldr	x2, [x29, 120]
21220	ldrb	w2, [x2]
21221	cbz	w2, .L3317
21222	ldr	w0, [x29, 164]
21223	add	w1, w1, w0
21224	orr	w1, w1, 50331648
21225	b	.L3384
21226.L3317:
21227	add	w0, w28, w0
21228	orr	w0, w0, w22, lsl 24
21229.L3385:
21230	str	w0, [x27, 40]
21231	b	.L3315
21232.L3316:
21233	add	w0, w28, w0
21234	b	.L3385
21235.L3320:
21236	add	w10, w10, 1
21237	add	w22, w22, 1
21238	add	x8, x8, 4
21239.L3323:
21240	ldr	w0, [x29, 188]
21241	cmp	w0, w22
21242	bcs	.L3321
21243	add	x20, x20, 1
21244.L3326:
21245	ldr	x0, [x29, 168]
21246	ldrb	w0, [x0, 9]
21247	cmp	w0, w20
21248	ble	.L3322
21249	add	x0, x23, x20, lsl 1
21250	str	x0, [x29, 136]
21251	ldr	x0, [x29, 152]
21252	sbfiz	x8, x10, 2, 32
21253	mov	w22, 1
21254	add	x0, x0, :lo12:.LANCHOR117
21255	str	x0, [x29, 128]
21256	b	.L3323
21257.L3322:
21258	adrp	x0, .LANCHOR86
21259	ldrb	w0, [x0, #:lo12:.LANCHOR86]
21260	cmp	w0, 0
21261	cinc	w28, w28, ne
21262	add	w28, w28, 1
21263	b	.L3312
21264.L3325:
21265	mov	x0, x27
21266	bl	zbuf_free
21267	ldr	x0, [x29, 168]
21268	adrp	x20, .LANCHOR11
21269	ldrh	w3, [x19, #:lo12:.LANCHOR91]
21270	mov	w25, 0
21271	ldrh	w2, [x23, 80]
21272	mov	w27, 0
21273	ldr	x1, [x20, #:lo12:.LANCHOR11]
21274	mov	w28, 0
21275	ldrb	w0, [x0, 9]
21276	str	x20, [x29, 144]
21277	mul	w0, w0, w3
21278	strh	w0, [x1, x2, lsl 1]
21279	adrp	x0, .LANCHOR80
21280	add	x0, x0, :lo12:.LANCHOR80
21281	str	x0, [x29, 104]
21282.L3327:
21283	sub	w0, w27, #1
21284	str	w0, [x29, 128]
21285	ldr	w0, [x29, 184]
21286	cmp	w0, w27
21287	bls	.L3341
21288	add	w22, w27, w27, lsl 1
21289	mov	x21, 0
21290	sub	w0, w22, #1
21291	str	w0, [x29, 120]
21292	b	.L3342
21293.L3337:
21294	ldr	x1, [x24, #:lo12:.LANCHOR160]
21295	sbfiz	x0, x28, 2, 32
21296	ldr	w20, [x1, x0]
21297	cmn	w20, #1
21298	beq	.L3328
21299	adrp	x1, .LANCHOR161
21300	ldr	x1, [x1, #:lo12:.LANCHOR161]
21301	ldr	w0, [x1, x0]
21302	str	w0, [x29, 164]
21303	mov	w0, w20
21304	bl	lpa_hash_get_ppa
21305	str	w0, [x29, 204]
21306	cmn	w0, #1
21307	bne	.L3329
21308	mov	w2, 0
21309	add	x1, x29, 204
21310	mov	w0, w20
21311	bl	pm_log2phys
21312.L3329:
21313	ldr	x0, [x29, 136]
21314	ldr	x1, [x29, 152]
21315	ldr	x2, [x29, 176]
21316	ldrh	w0, [x0, 96]
21317	ldrh	w1, [x1, #:lo12:.LANCHOR117]
21318	ldrb	w2, [x2, #:lo12:.LANCHOR84]
21319	cmp	w2, 2
21320	mul	w0, w0, w1
21321	add	w1, w22, w0
21322	beq	.L3330
21323	adrp	x6, .LANCHOR35
21324	ldrb	w6, [x6, #:lo12:.LANCHOR35]
21325	cbz	w6, .L3331
21326.L3330:
21327	ldr	w0, [x29, 128]
21328	add	w1, w0, w1
21329	orr	w1, w1, w2, lsl 24
21330	str	w1, [x29, 200]
21331.L3332:
21332	ldp	x0, x1, [x29, 104]
21333	mov	w19, 24
21334	mov	w2, 1
21335	ldrb	w1, [x1]
21336	ldrh	w0, [x0]
21337	sub	w19, w19, w1
21338	ldr	w1, [x29, 164]
21339	sub	w19, w19, w0
21340	lsr	w0, w1, w0
21341	lsl	w19, w2, w19
21342	sub	w19, w19, #1
21343	and	w19, w19, w0
21344	adrp	x0, .LANCHOR81
21345	ldrb	w0, [x0, #:lo12:.LANCHOR81]
21346	udiv	w19, w19, w0
21347	ldr	w0, [x29, 204]
21348	cmp	w1, w0
21349	and	x19, x19, 65535
21350	bne	.L3335
21351	add	x1, x29, 200
21352	mov	w0, w20
21353	bl	pm_log2phys
21354	add	w25, w25, 1
21355	mov	w0, w19
21356	bl	ftl_vpn_decrement
21357.L3336:
21358	adrp	x0, .LANCHOR9
21359	add	w28, w28, 1
21360	ldr	x0, [x0, #:lo12:.LANCHOR9]
21361	add	x0, x0, x19, lsl 2
21362	ldrb	w0, [x0, 2]
21363	tst	w0, 224
21364	bne	.L3328
21365	ldr	x0, [x29, 144]
21366	lsl	x19, x19, 1
21367	ldr	x0, [x0, #:lo12:.LANCHOR11]
21368	ldrh	w1, [x0, x19]
21369	cbz	w1, .L3328
21370	strh	wzr, [x0, x19]
21371.L3328:
21372	add	w22, w22, 1
21373.L3339:
21374	ldr	w0, [x29, 188]
21375	cmp	w0, w22
21376	bcs	.L3337
21377	add	x21, x21, 1
21378.L3342:
21379	ldr	x0, [x29, 168]
21380	ldrb	w0, [x0, 9]
21381	cmp	w0, w21
21382	ble	.L3338
21383	add	x0, x23, x21, lsl 1
21384	mov	w22, 1
21385	str	x0, [x29, 136]
21386	adrp	x0, .LANCHOR31
21387	add	x0, x0, :lo12:.LANCHOR31
21388	str	x0, [x29, 112]
21389	b	.L3339
21390.L3331:
21391	cmp	w2, 3
21392	bne	.L3333
21393	adrp	x2, .LANCHOR36
21394	ldrb	w6, [x2, #:lo12:.LANCHOR36]
21395	lsl	w2, w22, 24
21396	cbz	w6, .L3334
21397	ldr	w0, [x29, 120]
21398	add	w1, w0, w1
21399	orr	w0, w1, w2
21400.L3386:
21401	str	w0, [x29, 200]
21402	b	.L3332
21403.L3334:
21404	add	w0, w27, w0
21405	orr	w0, w0, w2
21406	b	.L3386
21407.L3333:
21408	add	w0, w27, w0
21409	b	.L3386
21410.L3335:
21411	ldr	w1, [x29, 200]
21412	cmp	w0, w1
21413	cinc	w25, w25, eq
21414	b	.L3336
21415.L3338:
21416	adrp	x0, .LANCHOR86
21417	ldrb	w0, [x0, #:lo12:.LANCHOR86]
21418	cmp	w0, 0
21419	cinc	w27, w27, ne
21420	add	w27, w27, 1
21421	b	.L3327
21422.L3341:
21423	ldr	x0, [x29, 144]
21424	ldrh	w1, [x23, 80]
21425	ldr	x0, [x0, #:lo12:.LANCHOR11]
21426	strh	w25, [x0, x1, lsl 1]
21427	ldrh	w0, [x23, 80]
21428	bl	zftl_insert_data_list
21429	b	.L3299
21430.L3293:
21431	ldrh	w0, [x23, 130]
21432	cmp	w0, w1
21433	beq	.L3292
21434	adrp	x19, .LANCHOR69
21435	ldr	x1, [x19, #:lo12:.LANCHOR69]
21436	ldrh	w1, [x1, 126]
21437	cmp	w1, w0
21438	bne	.L3347
21439	bl	pm_flush
21440	ldr	x0, [x26, #:lo12:.LANCHOR12]
21441	ldrh	w0, [x0, 130]
21442	bl	ftl_free_sblk
21443	ldr	x0, [x19, #:lo12:.LANCHOR69]
21444	mov	w1, -1
21445	strh	w1, [x0, 126]
21446	mov	w0, 0
21447	bl	ftl_info_flush
21448.L3347:
21449	ldr	x0, [x26, #:lo12:.LANCHOR12]
21450	mov	w1, -1
21451	strh	w1, [x0, 130]
21452	b	.L3292
21453	.size	gc_recovery, .-gc_recovery
21454	.section	.text.zftl_init,"ax",@progbits
21455	.align	2
21456	.global	zftl_init
21457	.type	zftl_init, %function
21458zftl_init:
21459	stp	x29, x30, [sp, -112]!
21460	adrp	x1, .LANCHOR65
21461	mov	w0, -1
21462	add	x29, sp, 0
21463	strb	w0, [x1, #:lo12:.LANCHOR65]
21464	adrp	x1, .LANCHOR66
21465	stp	x21, x22, [sp, 32]
21466	adrp	x22, .LANCHOR100
21467	strb	wzr, [x1, #:lo12:.LANCHOR66]
21468	adrp	x1, .LANCHOR71
21469	stp	x19, x20, [sp, 16]
21470	adrp	x21, .LANCHOR85
21471	strb	w0, [x1, #:lo12:.LANCHOR71]
21472	adrp	x1, .LANCHOR72
21473	stp	x23, x24, [sp, 48]
21474	adrp	x20, .LANCHOR221
21475	strb	wzr, [x1, #:lo12:.LANCHOR72]
21476	adrp	x1, .LANCHOR184
21477	stp	x25, x26, [sp, 64]
21478	adrp	x23, .LANCHOR8
21479	strb	w0, [x1, #:lo12:.LANCHOR184]
21480	adrp	x0, .LANCHOR183
21481	mov	w1, -1
21482	stp	x27, x28, [sp, 80]
21483	strb	wzr, [x0, #:lo12:.LANCHOR183]
21484	adrp	x0, .LANCHOR226
21485	str	w1, [x0, #:lo12:.LANCHOR226]
21486	adrp	x1, .LC196
21487	adrp	x0, .LC98
21488	add	x1, x1, :lo12:.LC196
21489	add	x0, x0, :lo12:.LC98
21490	bl	printf
21491	adrp	x1, .LANCHOR32
21492	add	x1, x1, :lo12:.LANCHOR32
21493	adrp	x0, .LANCHOR84
21494	adrp	x2, .LANCHOR68
21495	adrp	x3, .LANCHOR118
21496	adrp	x4, .LANCHOR81
21497	ldrb	w7, [x1, 12]
21498	strb	w7, [x0, #:lo12:.LANCHOR84]
21499	ldrb	w0, [x1, 9]
21500	strb	w0, [x2, #:lo12:.LANCHOR68]
21501	adrp	x2, .LANCHOR91
21502	ldrh	w5, [x1, 10]
21503	strh	w5, [x2, #:lo12:.LANCHOR91]
21504	adrp	x2, .LANCHOR23
21505	ldrh	w8, [x1, 14]
21506	ubfiz	w6, w0, 9, 7
21507	ldrb	w2, [x2, #:lo12:.LANCHOR23]
21508	sdiv	w11, w5, w7
21509	strb	w2, [x3, #:lo12:.LANCHOR118]
21510	ldrb	w3, [x1, 13]
21511	adrp	x1, .LANCHOR2
21512	strb	w3, [x4, #:lo12:.LANCHOR81]
21513	ldrh	w4, [x1, #:lo12:.LANCHOR2]
21514	adrp	x1, .LANCHOR117
21515	strh	w11, [x22, #:lo12:.LANCHOR100]
21516	mul	w2, w2, w3
21517	strh	w4, [x1, #:lo12:.LANCHOR117]
21518	strh	w8, [x23, #:lo12:.LANCHOR8]
21519	mov	w3, 1
21520	and	w2, w2, 255
21521	strh	w6, [x20, #:lo12:.LANCHOR221]
21522	strb	w2, [x21, #:lo12:.LANCHOR85]
21523	mov	w1, 0
21524.L3389:
21525	cmp	w4, w3
21526	bcs	.L3390
21527	mul	w10, w0, w5
21528	adrp	x3, .LANCHOR80
21529	sub	w1, w1, #1
21530	mov	w4, 0
21531	strh	w1, [x3, #:lo12:.LANCHOR80]
21532	mov	w1, 1
21533	mul	w3, w8, w10
21534	lsr	w12, w3, 21
21535.L3391:
21536	cmp	w12, w1
21537	bcs	.L3392
21538	mov	w1, 57344
21539	sub	w4, w4, #1
21540	movk	w1, 0x1c, lsl 16
21541	mul	w3, w3, w2
21542	adrp	x28, .LANCHOR219
21543	sub	w12, w6, #1
21544	mul	w1, w2, w1
21545	adrp	x24, .LANCHOR203
21546	mul	w11, w11, w2
21547	adrp	x27, .LANCHOR228
21548	mul	w10, w10, w2
21549	adrp	x26, .LANCHOR153
21550	lsl	w1, w1, w4
21551	adrp	x4, .LANCHOR73
21552	sub	w10, w10, #1
21553	adrp	x25, .LANCHOR104
21554	str	w1, [x4, #:lo12:.LANCHOR73]
21555	adrp	x4, .LANCHOR227
21556	lsr	w8, w8, 4
21557	strh	w8, [x25, #:lo12:.LANCHOR104]
21558	str	w3, [x4, #:lo12:.LANCHOR227]
21559	add	w3, w1, 24576
21560	str	w3, [x27, #:lo12:.LANCHOR228]
21561	cmp	w8, 79
21562	udiv	w0, w3, w0
21563	udiv	w3, w3, w10
21564	str	w0, [x28, #:lo12:.LANCHOR219]
21565	add	w0, w12, w0, lsl 2
21566	add	w3, w3, 8
21567	udiv	w0, w0, w6
21568	strh	w0, [x24, #:lo12:.LANCHOR203]
21569	ubfiz	w0, w0, 4, 16
21570	sdiv	w0, w0, w11
21571	strh	w0, [x26, #:lo12:.LANCHOR153]
21572	adrp	x0, .LANCHOR107
21573	str	x0, [x29, 104]
21574	strh	w3, [x0, #:lo12:.LANCHOR107]
21575	bhi	.L3393
21576	mov	w0, 80
21577	strh	w0, [x25, #:lo12:.LANCHOR104]
21578.L3393:
21579	adrp	x12, .LANCHOR132
21580	mov	w0, 2000
21581	adrp	x11, .LANCHOR131
21582	adrp	x3, .LANCHOR150
21583	strh	w0, [x12, #:lo12:.LANCHOR132]
21584	mov	w0, 50
21585	adrp	x8, .LANCHOR151
21586	strh	w0, [x11, #:lo12:.LANCHOR131]
21587	mov	w0, 256
21588	strh	w0, [x3, #:lo12:.LANCHOR150]
21589	mov	w0, 48
21590	strh	w0, [x8, #:lo12:.LANCHOR151]
21591	adrp	x0, .LANCHOR10
21592	mov	w10, 32
21593	cmp	w7, 2
21594	mov	x13, x11
21595	strh	w10, [x0, #:lo12:.LANCHOR10]
21596	mov	x7, x12
21597	mov	x14, x8
21598	beq	.L3394
21599	adrp	x15, .LANCHOR89
21600	ldrb	w15, [x15, #:lo12:.LANCHOR89]
21601	cbz	w15, .L3395
21602.L3394:
21603	mov	w8, 150
21604	strh	w8, [x13, #:lo12:.LANCHOR131]
21605	mov	w8, 64
21606	strh	w8, [x14, #:lo12:.LANCHOR151]
21607	mov	w8, 12
21608	strh	w8, [x0, #:lo12:.LANCHOR10]
21609	adrp	x8, .LANCHOR0
21610	ldrb	w8, [x8, #:lo12:.LANCHOR0]
21611	cbnz	w8, .L3396
21612	mov	w8, 4
21613	strh	w8, [x0, #:lo12:.LANCHOR10]
21614	mov	w0, 600
21615	strh	w0, [x7, #:lo12:.LANCHOR132]
21616	mov	w0, 128
21617	strh	w0, [x3, #:lo12:.LANCHOR150]
21618.L3396:
21619	adrp	x0, .LANCHOR36
21620	ldrb	w0, [x0, #:lo12:.LANCHOR36]
21621	cbz	w0, .L3398
21622	mov	w0, 200
21623	strh	w0, [x13, #:lo12:.LANCHOR131]
21624	mov	w0, 2000
21625	strh	w0, [x7, #:lo12:.LANCHOR132]
21626.L3398:
21627	adrp	x0, .LANCHOR128
21628	mul	w2, w5, w2
21629	mov	w3, 1
21630	str	wzr, [x0, #:lo12:.LANCHOR128]
21631	adrp	x0, .LANCHOR224
21632	cmp	w6, w2, lsl 2
21633	strb	w3, [x0, #:lo12:.LANCHOR224]
21634	bge	.L3400
21635	mov	w2, 2
21636	strb	w2, [x0, #:lo12:.LANCHOR224]
21637.L3400:
21638	adrp	x19, .LANCHOR19
21639	ldr	w0, [x19, #:lo12:.LANCHOR19]
21640	tbz	x0, 12, .L3401
21641	str	x4, [x29, 96]
21642	adrp	x0, .LC197
21643	add	x0, x0, :lo12:.LC197
21644	bl	printf
21645	ldr	x4, [x29, 96]
21646.L3401:
21647	ldr	w0, [x19, #:lo12:.LANCHOR19]
21648	tbz	x0, 12, .L3402
21649	ldr	w1, [x4, #:lo12:.LANCHOR227]
21650	adrp	x0, .LC198
21651	add	x0, x0, :lo12:.LC198
21652	bl	printf
21653.L3402:
21654	ldr	w0, [x19, #:lo12:.LANCHOR19]
21655	tbz	x0, 12, .L3403
21656	ldr	w1, [x28, #:lo12:.LANCHOR219]
21657	adrp	x0, .LC199
21658	add	x0, x0, :lo12:.LC199
21659	bl	printf
21660.L3403:
21661	ldr	w0, [x19, #:lo12:.LANCHOR19]
21662	tbz	x0, 12, .L3404
21663	ldr	w1, [x27, #:lo12:.LANCHOR228]
21664	adrp	x0, .LC200
21665	add	x0, x0, :lo12:.LC200
21666	bl	printf
21667.L3404:
21668	ldr	w0, [x19, #:lo12:.LANCHOR19]
21669	tbz	x0, 12, .L3405
21670	ldrh	w1, [x24, #:lo12:.LANCHOR203]
21671	adrp	x0, .LC201
21672	add	x0, x0, :lo12:.LC201
21673	bl	printf
21674.L3405:
21675	ldr	w0, [x19, #:lo12:.LANCHOR19]
21676	tbz	x0, 12, .L3406
21677	ldrh	w1, [x20, #:lo12:.LANCHOR221]
21678	adrp	x0, .LC202
21679	add	x0, x0, :lo12:.LC202
21680	bl	printf
21681.L3406:
21682	ldr	w0, [x19, #:lo12:.LANCHOR19]
21683	tbz	x0, 12, .L3407
21684	ldrh	w1, [x26, #:lo12:.LANCHOR153]
21685	adrp	x0, .LC203
21686	add	x0, x0, :lo12:.LC203
21687	bl	printf
21688.L3407:
21689	ldr	w0, [x19, #:lo12:.LANCHOR19]
21690	tbz	x0, 12, .L3408
21691	ldrh	w1, [x25, #:lo12:.LANCHOR104]
21692	adrp	x0, .LC204
21693	add	x0, x0, :lo12:.LC204
21694	bl	printf
21695.L3408:
21696	ldr	w0, [x19, #:lo12:.LANCHOR19]
21697	tbz	x0, 12, .L3409
21698	ldr	x0, [x29, 104]
21699	ldrh	w1, [x0, #:lo12:.LANCHOR107]
21700	adrp	x0, .LC205
21701	add	x0, x0, :lo12:.LC205
21702	bl	printf
21703.L3409:
21704	bl	zbuf_init
21705	adrp	x25, .LANCHOR199
21706	mov	w0, 16384
21707	bl	ftl_malloc
21708	adrp	x1, .LANCHOR194
21709	str	x0, [x1, #:lo12:.LANCHOR194]
21710	mov	w0, 16384
21711	bl	ftl_malloc
21712	str	x0, [x25, #:lo12:.LANCHOR199]
21713	mov	w0, 16384
21714	bl	ftl_malloc
21715	adrp	x1, .LANCHOR189
21716	str	x0, [x1, #:lo12:.LANCHOR189]
21717	mov	w0, 6
21718	ldrh	w1, [x23, #:lo12:.LANCHOR8]
21719	mul	w0, w1, w0
21720	bl	ftl_malloc
21721	adrp	x1, .LANCHOR4
21722	str	x0, [x1, #:lo12:.LANCHOR4]
21723	ldrb	w1, [x21, #:lo12:.LANCHOR85]
21724	ldrh	w0, [x22, #:lo12:.LANCHOR100]
21725	mul	w0, w0, w1
21726	lsl	w0, w0, 2
21727	bl	ftl_malloc
21728	adrp	x1, .LANCHOR124
21729	ldr	x2, [x25, #:lo12:.LANCHOR199]
21730	adrp	x25, .LANCHOR12
21731	str	x0, [x1, #:lo12:.LANCHOR124]
21732	adrp	x0, .LANCHOR123
21733	ldrh	w1, [x22, #:lo12:.LANCHOR100]
21734	str	x2, [x0, #:lo12:.LANCHOR123]
21735	ldrb	w0, [x21, #:lo12:.LANCHOR85]
21736	mul	w1, w1, w0
21737	lsl	w0, w1, 1
21738	adrp	x1, .LANCHOR11
21739	add	x3, x2, x0, sxtw 2
21740	str	x3, [x1, #:lo12:.LANCHOR11]
21741	ldrh	w1, [x23, #:lo12:.LANCHOR8]
21742	add	w1, w0, w1, lsr 1
21743	ldr	w0, [x19, #:lo12:.LANCHOR19]
21744	add	x1, x2, x1, sxtw 2
21745	str	x1, [x25, #:lo12:.LANCHOR12]
21746	tbz	x0, 12, .L3410
21747	adrp	x0, .LC206
21748	add	x0, x0, :lo12:.LC206
21749	bl	printf
21750.L3410:
21751	ldrh	w0, [x22, #:lo12:.LANCHOR100]
21752	ldrb	w21, [x21, #:lo12:.LANCHOR85]
21753	ldrh	w1, [x23, #:lo12:.LANCHOR8]
21754	ldrh	w22, [x24, #:lo12:.LANCHOR203]
21755	mul	w21, w0, w21
21756	ldr	w0, [x19, #:lo12:.LANCHOR19]
21757	add	w21, w1, w21, lsl 2
21758	lsl	w1, w1, 2
21759	lsl	w21, w21, 1
21760	add	w22, w1, w22, lsl 2
21761	add	w21, w21, 632
21762	add	w22, w22, 704
21763	tbz	x0, 12, .L3411
21764	ldrh	w3, [x20, #:lo12:.LANCHOR221]
21765	adrp	x0, .LC207
21766	mov	w2, w22
21767	mov	w1, w21
21768	add	x0, x0, :lo12:.LC207
21769	bl	printf
21770.L3411:
21771	ldrh	w0, [x20, #:lo12:.LANCHOR221]
21772	cmp	w21, w0
21773	bhi	.L3412
21774	cmp	w22, w0
21775	bls	.L3413
21776.L3412:
21777.L3459:
21778	b	.L3459
21779.L3390:
21780	add	w1, w1, 1
21781	lsl	w3, w3, 1
21782	and	w1, w1, 65535
21783	b	.L3389
21784.L3392:
21785	add	w4, w4, 1
21786	lsl	w1, w1, 1
21787	and	w4, w4, 65535
21788	b	.L3391
21789.L3395:
21790	adrp	x0, .LANCHOR35
21791	ldrb	w0, [x0, #:lo12:.LANCHOR35]
21792	cbz	w0, .L3398
21793	mov	w0, 1200
21794	strh	w10, [x11, #:lo12:.LANCHOR131]
21795	strh	w0, [x12, #:lo12:.LANCHOR132]
21796	strh	w10, [x8, #:lo12:.LANCHOR151]
21797	b	.L3398
21798.L3413:
21799	bl	sblk_init
21800	bl	ftl_info_blk_init
21801	cmn	w0, #1
21802	beq	.L3388
21803	bl	ftl_ext_info_init
21804	adrp	x19, .LANCHOR69
21805	bl	gc_init
21806	mov	w0, 1
21807	bl	pm_init
21808	bl	lpa_rebuild_hash
21809	ldr	x0, [x25, #:lo12:.LANCHOR12]
21810	mov	x1, 0
21811	add	x0, x0, 16
21812	bl	ftl_open_sblk_recovery
21813	ldr	x0, [x25, #:lo12:.LANCHOR12]
21814	add	x1, x0, 16
21815	add	x0, x0, 48
21816	bl	ftl_open_sblk_recovery
21817	ldr	x1, [x19, #:lo12:.LANCHOR69]
21818	ldr	w0, [x1, 8]
21819	add	w0, w0, 16
21820	str	w0, [x1, 8]
21821	ldr	x0, [x25, #:lo12:.LANCHOR12]
21822	add	x0, x0, 16
21823	bl	ftl_info_data_recovery
21824	ldr	x0, [x25, #:lo12:.LANCHOR12]
21825	add	x0, x0, 48
21826	bl	ftl_info_data_recovery
21827	ldr	x0, [x25, #:lo12:.LANCHOR12]
21828	add	x0, x0, 80
21829	bl	ftl_info_data_recovery
21830	bl	gc_recovery
21831	bl	pm_flush
21832	mov	w0, 1
21833	bl	ftl_total_vpn_update
21834	adrp	x0, .LANCHOR197
21835	ldrb	w0, [x0, #:lo12:.LANCHOR197]
21836	cbz	w0, .L3415
21837	ldr	x1, [x19, #:lo12:.LANCHOR69]
21838	ldr	w0, [x1, 68]
21839	add	w0, w0, 1
21840	str	w0, [x1, 68]
21841.L3415:
21842	bl	ftl_ext_info_flush
21843	mov	w0, 0
21844	bl	ftl_info_flush
21845	mov	w0, 0
21846.L3388:
21847	ldp	x19, x20, [sp, 16]
21848	ldp	x21, x22, [sp, 32]
21849	ldp	x23, x24, [sp, 48]
21850	ldp	x25, x26, [sp, 64]
21851	ldp	x27, x28, [sp, 80]
21852	ldp	x29, x30, [sp], 112
21853	ret
21854	.size	zftl_init, .-zftl_init
21855	.section	.text.rk_ftl_init,"ax",@progbits
21856	.align	2
21857	.global	rk_ftl_init
21858	.type	rk_ftl_init, %function
21859rk_ftl_init:
21860	stp	x29, x30, [sp, -32]!
21861	add	x29, sp, 0
21862	str	x19, [sp, 16]
21863	bl	nand_flash_init
21864	cbnz	w0, .L3463
21865	bl	zftl_init
21866.L3463:
21867	mov	w19, w0
21868	bl	idb_init
21869	mov	w1, w19
21870	adrp	x0, .LC208
21871	add	x0, x0, :lo12:.LC208
21872	bl	printf
21873	mov	w0, w19
21874	ldr	x19, [sp, 16]
21875	ldp	x29, x30, [sp], 32
21876	ret
21877	.size	rk_ftl_init, .-rk_ftl_init
21878	.section	.text.gc_update_l2p_map_new,"ax",@progbits
21879	.align	2
21880	.global	gc_update_l2p_map_new
21881	.type	gc_update_l2p_map_new, %function
21882gc_update_l2p_map_new:
21883	stp	x29, x30, [sp, -176]!
21884	adrp	x0, .LANCHOR12
21885	adrp	x1, .LANCHOR91
21886	add	x29, sp, 0
21887	stp	x21, x22, [sp, 32]
21888	ldr	x21, [x0, #:lo12:.LANCHOR12]
21889	stp	x25, x26, [sp, 64]
21890	ldrh	w26, [x1, #:lo12:.LANCHOR91]
21891	add	x1, x21, 80
21892	stp	x23, x24, [sp, 48]
21893	adrp	x24, .LANCHOR19
21894	stp	x19, x20, [sp, 16]
21895	stp	x27, x28, [sp, 80]
21896	stp	x0, x1, [x29, 128]
21897	ldrb	w1, [x1, 9]
21898	mul	w26, w26, w1
21899	ldr	w1, [x24, #:lo12:.LANCHOR19]
21900	tbz	x1, 8, .L3466
21901	ldrh	w1, [x21, 80]
21902	adrp	x0, .LC209
21903	add	x0, x0, :lo12:.LC209
21904	bl	printf
21905.L3466:
21906	adrp	x23, .LANCHOR11
21907	adrp	x0, .LANCHOR224
21908	ldrh	w2, [x21, 80]
21909	mov	x22, 0
21910	ldr	x1, [x23, #:lo12:.LANCHOR11]
21911	mov	w25, 0
21912	ldrb	w0, [x0, #:lo12:.LANCHOR224]
21913	sub	w0, w26, w0
21914	strh	w0, [x1, x2, lsl 1]
21915	adrp	x0, .LANCHOR68
21916	add	x0, x0, :lo12:.LANCHOR68
21917	str	x0, [x29, 104]
21918.L3467:
21919	mov	w28, w22
21920	cmp	w26, w22
21921	bhi	.L3477
21922	ldr	w0, [x24, #:lo12:.LANCHOR19]
21923	tbz	x0, 8, .L3478
21924	ldr	x0, [x29, 128]
21925	mov	w3, w25
21926	ldr	x1, [x23, #:lo12:.LANCHOR11]
21927	ldrh	w2, [x21, 80]
21928	ldr	x0, [x0, #:lo12:.LANCHOR12]
21929	ldrh	w2, [x1, x2, lsl 1]
21930	ldrh	w1, [x0, 80]
21931	adrp	x0, .LC212
21932	add	x0, x0, :lo12:.LC212
21933	bl	printf
21934.L3478:
21935	ldrh	w1, [x21, 80]
21936	ldr	x0, [x23, #:lo12:.LANCHOR11]
21937	ldrh	w0, [x0, x1, lsl 1]
21938	cmp	w25, w0
21939	beq	.L3479
21940	adrp	x1, .LANCHOR229
21941	adrp	x0, .LC0
21942	mov	w2, 898
21943	add	x1, x1, :lo12:.LANCHOR229
21944	add	x0, x0, :lo12:.LC0
21945	bl	printf
21946.L3479:
21947	ldrh	w1, [x21, 80]
21948	ldr	x0, [x23, #:lo12:.LANCHOR11]
21949	strh	w25, [x0, x1, lsl 1]
21950	ldrh	w0, [x21, 80]
21951	bl	zftl_insert_data_list
21952	ldp	x19, x20, [sp, 16]
21953	ldp	x21, x22, [sp, 32]
21954	ldp	x23, x24, [sp, 48]
21955	ldp	x25, x26, [sp, 64]
21956	ldp	x27, x28, [sp, 80]
21957	ldp	x29, x30, [sp], 176
21958	ret
21959.L3477:
21960	adrp	x27, .LANCHOR160
21961	lsl	x19, x22, 2
21962	ldr	x0, [x27, #:lo12:.LANCHOR160]
21963	ldr	w2, [x0, x19]
21964	cmn	w2, #1
21965	beq	.L3468
21966	adrp	x0, .LANCHOR68
21967	ldrb	w20, [x0, #:lo12:.LANCHOR68]
21968	lsl	w20, w20, 7
21969	udiv	w20, w2, w20
21970	and	w0, w20, 65535
21971	str	w0, [x29, 156]
21972	ldr	w0, [x24, #:lo12:.LANCHOR19]
21973	tbz	x0, 8, .L3469
21974	ldr	w1, [x29, 156]
21975	adrp	x0, .LC210
21976	mov	w3, w22
21977	add	x0, x0, :lo12:.LC210
21978	bl	printf
21979.L3469:
21980	sub	w28, w26, w28
21981	add	x28, x28, x22
21982	lsl	x0, x28, 2
21983	str	x0, [x29, 144]
21984	adrp	x0, .LC211
21985	add	x0, x0, :lo12:.LC211
21986	str	x0, [x29, 120]
21987	adrp	x0, .LANCHOR80
21988	add	x0, x0, :lo12:.LANCHOR80
21989	str	x0, [x29, 112]
21990.L3470:
21991	ldr	x0, [x29, 144]
21992	cmp	x0, x19
21993	bne	.L3476
21994.L3468:
21995	add	x22, x22, 1
21996	b	.L3467
21997.L3476:
21998	ldr	x0, [x27, #:lo12:.LANCHOR160]
21999	ldr	w20, [x0, x19]
22000	cmn	w20, #1
22001	beq	.L3471
22002	ldr	x0, [x29, 104]
22003	ldr	w1, [x29, 156]
22004	ldrb	w0, [x0]
22005	lsl	w0, w0, 7
22006	udiv	w0, w20, w0
22007	cmp	w1, w0, uxth
22008	bne	.L3471
22009	adrp	x0, .LANCHOR161
22010	ldr	x0, [x0, #:lo12:.LANCHOR161]
22011	ldr	w28, [x0, x19]
22012	mov	w0, w20
22013	bl	lpa_hash_get_ppa
22014	str	w0, [x29, 172]
22015	cmn	w0, #1
22016	bne	.L3472
22017	mov	w2, 0
22018	add	x1, x29, 172
22019	mov	w0, w20
22020	bl	pm_log2phys
22021.L3472:
22022	ldr	w3, [x29, 172]
22023	cmp	w28, w3
22024	bne	.L3473
22025	adrp	x0, .LANCHOR162
22026	mov	w2, 1
22027	add	x1, x29, 168
22028	add	w25, w25, 1
22029	ldr	x0, [x0, #:lo12:.LANCHOR162]
22030	ldr	w0, [x0, x19]
22031	str	w0, [x29, 168]
22032	mov	w0, w20
22033	bl	pm_log2phys
22034	ldr	x0, [x29, 112]
22035	ldrh	w2, [x0]
22036	adrp	x0, .LANCHOR31
22037	ldrb	w1, [x0, #:lo12:.LANCHOR31]
22038	mov	w0, 24
22039	lsr	w28, w28, w2
22040	sub	w0, w0, w1
22041	sub	w1, w0, w2
22042	mov	w0, 1
22043	lsl	w0, w0, w1
22044	sub	w0, w0, #1
22045	and	w28, w0, w28
22046	adrp	x0, .LANCHOR81
22047	ldrb	w0, [x0, #:lo12:.LANCHOR81]
22048	udiv	w0, w28, w0
22049.L3499:
22050	bl	ftl_vpn_decrement
22051	ldr	x0, [x27, #:lo12:.LANCHOR160]
22052	mov	w1, -1
22053	str	w1, [x0, x19]
22054.L3471:
22055	add	x19, x19, 4
22056	b	.L3470
22057.L3473:
22058	ldr	w0, [x24, #:lo12:.LANCHOR19]
22059	tbz	x0, 8, .L3475
22060	ldr	x0, [x29, 120]
22061	mov	w2, w28
22062	mov	w1, w20
22063	bl	printf
22064.L3475:
22065	ldr	x0, [x29, 136]
22066	ldrh	w0, [x0]
22067	b	.L3499
22068	.size	gc_update_l2p_map_new, .-gc_update_l2p_map_new
22069	.section	.text.gc_scan_src_blk_one_page,"ax",@progbits
22070	.align	2
22071	.global	gc_scan_src_blk_one_page
22072	.type	gc_scan_src_blk_one_page, %function
22073gc_scan_src_blk_one_page:
22074	stp	x29, x30, [sp, -96]!
22075	mov	w3, 0
22076	mov	w4, 0
22077	mov	w5, 65535
22078	add	x29, sp, 0
22079	stp	x19, x20, [sp, 16]
22080	adrp	x20, .LANCHOR76
22081	add	x1, x20, :lo12:.LANCHOR76
22082	stp	x21, x22, [sp, 32]
22083	stp	x23, x24, [sp, 48]
22084	adrp	x21, .LANCHOR85
22085	stp	x25, x26, [sp, 64]
22086	ldrb	w6, [x21, #:lo12:.LANCHOR85]
22087	ldrb	w0, [x1, 4]
22088	add	x2, x1, x0, sxtw 1
22089	ldrh	w22, [x2, 40]
22090	ldrh	w2, [x1, 2]
22091.L3501:
22092	cmp	w22, w5
22093	beq	.L3503
22094	cbz	w4, .L3504
22095	add	x1, x20, :lo12:.LANCHOR76
22096	strh	w2, [x1, 2]
22097.L3504:
22098	cbz	w3, .L3505
22099	add	x1, x20, :lo12:.LANCHOR76
22100	strb	w0, [x1, 4]
22101.L3505:
22102	mov	w0, 1
22103	adrp	x23, .LANCHOR117
22104	bl	buf_alloc
22105	adrp	x24, .LANCHOR35
22106	mov	x25, x0
22107	add	x23, x23, :lo12:.LANCHOR117
22108	add	x24, x24, :lo12:.LANCHOR35
22109	mov	w26, 1
22110.L3506:
22111	add	x19, x20, :lo12:.LANCHOR76
22112	ldrb	w1, [x19, 6]
22113	cmp	w26, w1
22114	ble	.L3516
22115	mov	x0, x25
22116	bl	zbuf_free
22117	ldrb	w0, [x19, 4]
22118	ldrb	w1, [x21, #:lo12:.LANCHOR85]
22119	add	w0, w0, 1
22120	and	w0, w0, 255
22121	strb	w0, [x19, 4]
22122	cmp	w1, w0
22123	bne	.L3500
22124	ldrh	w0, [x19, 2]
22125	strb	wzr, [x19, 4]
22126	add	w0, w0, 1
22127	strh	w0, [x19, 2]
22128.L3500:
22129	ldp	x19, x20, [sp, 16]
22130	ldp	x21, x22, [sp, 32]
22131	ldp	x23, x24, [sp, 48]
22132	ldp	x25, x26, [sp, 64]
22133	ldp	x29, x30, [sp], 96
22134	ret
22135.L3503:
22136	add	w0, w0, 1
22137	and	w0, w0, 255
22138	cmp	w0, w6
22139	bne	.L3502
22140	add	w2, w2, 1
22141	mov	w0, 0
22142	and	w2, w2, 65535
22143	mov	w4, 1
22144.L3502:
22145	add	x3, x1, x0, sxtw 1
22146	ldrh	w22, [x3, 40]
22147	mov	w3, 1
22148	b	.L3501
22149.L3516:
22150	ldrh	w0, [x23]
22151	cmp	w1, 2
22152	mul	w0, w0, w22
22153	bne	.L3507
22154	ldrh	w1, [x19, 2]
22155	lsl	w1, w1, 1
22156.L3526:
22157	sub	w1, w1, #1
22158	add	w0, w26, w0
22159	add	w0, w1, w0
22160	adrp	x1, .LANCHOR84
22161	ldrb	w1, [x1, #:lo12:.LANCHOR84]
22162	orr	w0, w0, w1, lsl 24
22163.L3525:
22164	str	w0, [x25, 40]
22165	mov	w1, 1
22166	mov	x0, x25
22167	bl	sblk_read_page
22168	ldr	w0, [x25, 52]
22169	cmp	w0, 512
22170	ccmn	w0, #1, 4, ne
22171	beq	.L3513
22172	ldr	x0, [x25, 24]
22173	ldr	w19, [x0, 4]
22174	mov	w0, w19
22175	bl	lpa_hash_get_ppa
22176	str	w0, [x29, 92]
22177	cmn	w0, #1
22178	bne	.L3514
22179	adrp	x0, .LANCHOR219
22180	ldr	w0, [x0, #:lo12:.LANCHOR219]
22181	cmp	w19, w0
22182	bcs	.L3514
22183	mov	w2, 0
22184	add	x1, x29, 92
22185	mov	w0, w19
22186	bl	pm_log2phys
22187.L3514:
22188	ldr	w2, [x25, 40]
22189	ldr	w0, [x29, 92]
22190	cmp	w2, w0
22191	bne	.L3513
22192	add	x1, x20, :lo12:.LANCHOR76
22193	adrp	x4, .LANCHOR82
22194	ldr	x4, [x4, #:lo12:.LANCHOR82]
22195	ldrh	w0, [x1, 24]
22196	ubfiz	x3, x0, 2, 16
22197	add	w0, w0, 1
22198	str	w2, [x4, x3]
22199	strh	w0, [x1, 24]
22200.L3513:
22201	add	x1, x20, :lo12:.LANCHOR76
22202	add	w26, w26, 1
22203	ldrh	w0, [x1, 26]
22204	add	w0, w0, 1
22205	strh	w0, [x1, 26]
22206	b	.L3506
22207.L3507:
22208	cmp	w1, 3
22209	bne	.L3509
22210	ldrb	w1, [x24]
22211	cbnz	w1, .L3510
22212	adrp	x1, .LANCHOR36
22213	ldrb	w1, [x1, #:lo12:.LANCHOR36]
22214	cbz	w1, .L3511
22215.L3510:
22216	add	x1, x20, :lo12:.LANCHOR76
22217	ldrh	w1, [x1, 2]
22218	add	w1, w1, w1, lsl 1
22219	b	.L3526
22220.L3511:
22221	ldrh	w1, [x19, 2]
22222	add	w0, w1, w0
22223	orr	w0, w0, w26, lsl 24
22224	b	.L3525
22225.L3509:
22226	ldrh	w1, [x19, 2]
22227	add	w0, w1, w0
22228	b	.L3525
22229	.size	gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page
22230	.section	.text.gc_scan_src_blk,"ax",@progbits
22231	.align	2
22232	.global	gc_scan_src_blk
22233	.type	gc_scan_src_blk, %function
22234gc_scan_src_blk:
22235	stp	x29, x30, [sp, -112]!
22236	mov	w0, 65535
22237	add	x29, sp, 0
22238	stp	x21, x22, [sp, 32]
22239	adrp	x21, .LANCHOR76
22240	stp	x19, x20, [sp, 16]
22241	ldrh	w1, [x21, #:lo12:.LANCHOR76]
22242	stp	x23, x24, [sp, 48]
22243	stp	x25, x26, [sp, 64]
22244	cmp	w1, w0
22245	stp	x27, x28, [sp, 80]
22246	bne	.L3528
22247	adrp	x1, .LANCHOR230
22248	adrp	x0, .LC0
22249	mov	w2, 1505
22250	add	x1, x1, :lo12:.LANCHOR230
22251	add	x0, x0, :lo12:.LC0
22252	bl	printf
22253.L3528:
22254	ldrh	w1, [x21, #:lo12:.LANCHOR76]
22255	mov	w0, 65535
22256	cmp	w1, w0
22257	beq	.L3558
22258	adrp	x0, .LANCHOR19
22259	ldr	w0, [x0, #:lo12:.LANCHOR19]
22260	tbz	x0, 8, .L3530
22261	adrp	x2, .LANCHOR11
22262	ubfiz	x0, x1, 1, 16
22263	ldr	x2, [x2, #:lo12:.LANCHOR11]
22264	ldrh	w2, [x2, x0]
22265	adrp	x0, .LC213
22266	add	x0, x0, :lo12:.LC213
22267	bl	printf
22268.L3530:
22269	ldrh	w0, [x21, #:lo12:.LANCHOR76]
22270	add	x14, x21, :lo12:.LANCHOR76
22271	add	x1, x14, 40
22272	bl	ftl_get_blk_list_in_sblk
22273	and	w1, w0, 255
22274	strb	w1, [x14, 5]
22275	cbnz	w1, .L3531
22276	mov	w0, -1
22277	strh	w0, [x21, #:lo12:.LANCHOR76]
22278.L3558:
22279	mov	w0, 0
22280	b	.L3527
22281.L3531:
22282	adrp	x4, .LANCHOR9
22283	ldrh	w3, [x21, #:lo12:.LANCHOR76]
22284	mov	x19, x4
22285	ldr	x1, [x4, #:lo12:.LANCHOR9]
22286	mov	x2, x3
22287	add	x1, x1, x3, lsl 2
22288	ldrb	w1, [x1, 2]
22289	and	w1, w1, 224
22290	cmp	w1, 32
22291	beq	.L3532
22292	cmp	w1, 224
22293	beq	.L3532
22294	cbz	w1, .L3533
22295	adrp	x1, .LANCHOR12
22296	ldr	x1, [x1, #:lo12:.LANCHOR12]
22297	ldrh	w3, [x1, 16]
22298	cmp	w3, w2
22299	beq	.L3532
22300	ldrh	w3, [x1, 48]
22301	cmp	w3, w2
22302	beq	.L3532
22303	ldrh	w1, [x1, 80]
22304	cmp	w1, w2
22305	bne	.L3578
22306.L3532:
22307	add	x0, x21, :lo12:.LANCHOR76
22308	mov	w1, -1
22309	strh	w1, [x21, #:lo12:.LANCHOR76]
22310	strh	wzr, [x0, 24]
22311	b	.L3558
22312.L3533:
22313	adrp	x0, .LANCHOR11
22314	mov	x19, x0
22315	ldr	x1, [x0, #:lo12:.LANCHOR11]
22316	ldrh	w1, [x1, x3, lsl 1]
22317	cbz	w1, .L3535
22318	adrp	x1, .LANCHOR230
22319	adrp	x0, .LC0
22320	mov	w2, 1530
22321	add	x1, x1, :lo12:.LANCHOR230
22322	add	x0, x0, :lo12:.LC0
22323	bl	printf
22324.L3535:
22325	ldrh	w1, [x21, #:lo12:.LANCHOR76]
22326	ldr	x0, [x19, #:lo12:.LANCHOR11]
22327	strh	wzr, [x0, x1, lsl 1]
22328	b	.L3532
22329.L3578:
22330	and	w0, w0, 255
22331	sub	w0, w0, #1
22332	add	x0, x14, x0, sxtw 1
22333	ldrh	w24, [x0, 40]
22334	mov	w0, 65535
22335	cmp	w24, w0
22336	bne	.L3536
22337	adrp	x1, .LANCHOR230
22338	adrp	x0, .LC0
22339	mov	w2, 1540
22340	add	x1, x1, :lo12:.LANCHOR230
22341	add	x0, x0, :lo12:.LC0
22342	bl	printf
22343.L3536:
22344	ldrh	w1, [x21, #:lo12:.LANCHOR76]
22345	adrp	x23, .LANCHOR117
22346	ldr	x2, [x19, #:lo12:.LANCHOR9]
22347	adrp	x22, .LANCHOR100
22348	ldrh	w20, [x23, #:lo12:.LANCHOR117]
22349	ldrh	w0, [x22, #:lo12:.LANCHOR100]
22350	add	x1, x2, x1, lsl 2
22351	sub	w0, w0, #1
22352	and	w0, w0, 65535
22353	mul	w20, w20, w24
22354	ldrb	w1, [x1, 2]
22355	and	w1, w1, 224
22356	cmp	w1, 160
22357	bne	.L3559
22358	adrp	x1, .LANCHOR84
22359	ldrb	w1, [x1, #:lo12:.LANCHOR84]
22360	and	w27, w1, 65535
22361	cmp	w1, 2
22362	orr	w20, w20, w1, lsl 24
22363	bne	.L3538
22364	adrp	x0, .LANCHOR91
22365	ldrh	w0, [x0, #:lo12:.LANCHOR91]
22366	sub	w0, w0, #1
22367	and	w0, w0, 65535
22368.L3538:
22369	adrp	x1, .LANCHOR35
22370	ldrb	w1, [x1, #:lo12:.LANCHOR35]
22371	cbnz	w1, .L3539
22372	adrp	x1, .LANCHOR36
22373	ldrb	w1, [x1, #:lo12:.LANCHOR36]
22374	cbz	w1, .L3537
22375.L3539:
22376	adrp	x0, .LANCHOR91
22377	ldrh	w0, [x0, #:lo12:.LANCHOR91]
22378	sub	w0, w0, #1
22379	and	w0, w0, 65535
22380.L3537:
22381	add	x25, x21, :lo12:.LANCHOR76
22382	orr	w20, w0, w20
22383	mov	w0, 1
22384	strb	w27, [x25, 6]
22385	strh	wzr, [x25, 2]
22386	strb	wzr, [x25, 4]
22387	strh	wzr, [x25, 26]
22388	strh	wzr, [x25, 28]
22389	bl	buf_alloc
22390	mov	x19, x0
22391	str	w20, [x0, 40]
22392	mov	w1, 1
22393	bl	sblk_read_page
22394	strh	wzr, [x25, 24]
22395	ldr	w0, [x19, 52]
22396	cmp	w0, 512
22397	ccmn	w0, #1, 4, ne
22398	bne	.L3540
22399.L3583:
22400	mov	x0, x19
22401	bl	zbuf_free
22402.L3581:
22403	mov	w0, -1
22404.L3527:
22405	ldp	x19, x20, [sp, 16]
22406	ldp	x21, x22, [sp, 32]
22407	ldp	x23, x24, [sp, 48]
22408	ldp	x25, x26, [sp, 64]
22409	ldp	x27, x28, [sp, 80]
22410	ldp	x29, x30, [sp], 112
22411	ret
22412.L3559:
22413	mov	w27, 1
22414	b	.L3537
22415.L3540:
22416	ldr	x7, [x19, 24]
22417	mov	w0, 15555
22418	movk	w0, 0xf55f, lsl 16
22419	ldr	w1, [x7]
22420	cmp	w1, w0
22421	beq	.L3541
22422	mov	w2, 1578
22423.L3584:
22424	adrp	x1, .LANCHOR230
22425	adrp	x0, .LC0
22426	add	x1, x1, :lo12:.LANCHOR230
22427	add	x0, x0, :lo12:.LC0
22428	bl	printf
22429	b	.L3583
22430.L3541:
22431	adrp	x0, .LANCHOR85
22432	ldrh	w26, [x22, #:lo12:.LANCHOR100]
22433	ldrb	w25, [x0, #:lo12:.LANCHOR85]
22434	adrp	x0, .LANCHOR224
22435	ldrb	w0, [x0, #:lo12:.LANCHOR224]
22436	mul	w26, w25, w26
22437	cmp	w0, 2
22438	mul	w26, w27, w26
22439	and	w26, w26, 65535
22440	bne	.L3542
22441	cmp	w27, 3
22442	bne	.L3542
22443	adrp	x1, .LANCHOR91
22444	adrp	x28, .LANCHOR221
22445	adrp	x27, .LANCHOR82
22446	ldrh	w1, [x1, #:lo12:.LANCHOR91]
22447	ldrh	w0, [x28, #:lo12:.LANCHOR221]
22448	ldr	x3, [x27, #:lo12:.LANCHOR82]
22449	ubfiz	w1, w1, 2, 14
22450	mul	w25, w25, w1
22451	ldr	x1, [x19, 8]
22452	sub	w25, w25, w0
22453	and	x0, x0, 65532
22454	and	w25, w25, 65535
22455	add	x0, x3, x0
22456	mov	w2, w25
22457	bl	ftl_memcpy
22458	ldr	x0, [x19, 24]
22459	ldr	w6, [x0, 4]
22460	cbz	w6, .L3543
22461	ldr	x0, [x19, 8]
22462	mov	w1, w25
22463	bl	js_hash
22464	cmp	w6, w0
22465	beq	.L3543
22466	mov	x0, x19
22467	bl	zbuf_free
22468	ldr	x0, [x19, 24]
22469	mov	w3, w25
22470.L3582:
22471	ldr	w1, [x0, 4]
22472	adrp	x0, .LC214
22473	ldr	w2, [x19, 40]
22474	add	x0, x0, :lo12:.LC214
22475	bl	printf
22476	b	.L3581
22477.L3543:
22478	adrp	x0, .LANCHOR35
22479	ldrb	w0, [x0, #:lo12:.LANCHOR35]
22480	cbnz	w0, .L3544
22481	adrp	x0, .LANCHOR36
22482	ldrb	w0, [x0, #:lo12:.LANCHOR36]
22483	cbz	w0, .L3545
22484.L3544:
22485	sub	w0, w20, #1
22486	str	w0, [x19, 40]
22487.L3546:
22488	mov	w1, 1
22489	mov	x0, x19
22490	bl	sblk_read_page
22491	ldr	w0, [x19, 52]
22492	cmp	w0, 512
22493	ccmn	w0, #1, 4, ne
22494	beq	.L3583
22495	ldr	x0, [x19, 24]
22496	ldr	w1, [x0]
22497	mov	w0, 15555
22498	movk	w0, 0xf55f, lsl 16
22499	cmp	w1, w0
22500	beq	.L3548
22501	mov	w2, 1619
22502	b	.L3584
22503.L3545:
22504	ldrh	w1, [x23, #:lo12:.LANCHOR117]
22505	ldrh	w0, [x22, #:lo12:.LANCHOR100]
22506	sub	w0, w0, #1
22507	and	w0, w0, 65535
22508	mul	w24, w1, w24
22509	orr	w0, w0, 33554432
22510	orr	w24, w0, w24
22511	str	w24, [x19, 40]
22512	b	.L3546
22513.L3548:
22514	ldrh	w2, [x28, #:lo12:.LANCHOR221]
22515	ldr	x0, [x27, #:lo12:.LANCHOR82]
22516	ldr	x1, [x19, 8]
22517.L3580:
22518	adrp	x20, .LANCHOR82
22519	bl	ftl_memcpy
22520	adrp	x22, .LANCHOR80
22521	adrp	x23, .LANCHOR31
22522	ldr	x24, [x20, #:lo12:.LANCHOR82]
22523	add	x22, x22, :lo12:.LANCHOR80
22524	add	x23, x23, :lo12:.LANCHOR31
22525	mov	x25, 0
22526.L3551:
22527	cmp	w26, w25
22528	bgt	.L3556
22529	mov	x0, x19
22530	bl	zbuf_free
22531	adrp	x0, .LANCHOR11
22532	ldrh	w1, [x21, #:lo12:.LANCHOR76]
22533	add	x3, x21, :lo12:.LANCHOR76
22534	mov	x19, x0
22535	ldr	x4, [x0, #:lo12:.LANCHOR11]
22536	ubfiz	x2, x1, 1, 16
22537	ldrh	w3, [x3, 24]
22538	ldrh	w2, [x4, x2]
22539	cmp	w2, w3
22540	beq	.L3557
22541	adrp	x0, .LC215
22542	add	x0, x0, :lo12:.LC215
22543	bl	printf
22544.L3557:
22545	add	x0, x21, :lo12:.LANCHOR76
22546	ldrh	w2, [x21, #:lo12:.LANCHOR76]
22547	ldr	x1, [x19, #:lo12:.LANCHOR11]
22548	ldrh	w3, [x0, 24]
22549	strh	w3, [x1, x2, lsl 1]
22550	strh	wzr, [x0, 28]
22551	ldrh	w0, [x0, 24]
22552	b	.L3527
22553.L3542:
22554	ldr	x6, [x19, 8]
22555	lsl	w20, w26, 2
22556	mov	w1, w20
22557	mov	x0, x6
22558	bl	js_hash
22559	ldr	w1, [x7, 4]
22560	cmp	w1, w0
22561	beq	.L3550
22562	mov	x0, x19
22563	bl	zbuf_free
22564	mov	w3, w20
22565	ldr	x0, [x19, 24]
22566	b	.L3582
22567.L3550:
22568	adrp	x0, .LANCHOR82
22569	mov	w2, w20
22570	mov	x1, x6
22571	ldr	x0, [x0, #:lo12:.LANCHOR82]
22572	b	.L3580
22573.L3556:
22574	ldr	w0, [x24, x25, lsl 2]
22575	cmn	w0, #1
22576	beq	.L3553
22577	bl	lpa_hash_get_ppa
22578	str	w0, [x29, 108]
22579	cmn	w0, #1
22580	bne	.L3554
22581	ldr	w0, [x24, x25, lsl 2]
22582	mov	w2, 0
22583	add	x1, x29, 108
22584	bl	pm_log2phys
22585.L3554:
22586	ldrb	w0, [x23]
22587	mov	w1, 24
22588	ldrh	w2, [x22]
22589	sub	w0, w1, w0
22590	ldr	w3, [x29, 108]
22591	sub	w1, w0, w2
22592	mov	w0, 1
22593	lsl	w0, w0, w1
22594	adrp	x1, .LANCHOR81
22595	sub	w0, w0, #1
22596	lsr	w2, w3, w2
22597	ldrb	w1, [x1, #:lo12:.LANCHOR81]
22598	and	w0, w0, w2
22599	ldrh	w2, [x21, #:lo12:.LANCHOR76]
22600	udiv	w0, w0, w1
22601	add	x1, x21, :lo12:.LANCHOR76
22602	cmp	w0, w2
22603	bne	.L3553
22604	ldrh	w0, [x1, 24]
22605	ldr	x4, [x20, #:lo12:.LANCHOR82]
22606	ubfiz	x2, x0, 2, 16
22607	add	w0, w0, 1
22608	str	w3, [x4, x2]
22609	strh	w0, [x1, 24]
22610.L3553:
22611	add	x25, x25, 1
22612	b	.L3551
22613	.size	gc_scan_src_blk, .-gc_scan_src_blk
22614	.section	.text.gc_scan_static_data,"ax",@progbits
22615	.align	2
22616	.global	gc_scan_static_data
22617	.type	gc_scan_static_data, %function
22618gc_scan_static_data:
22619	stp	x29, x30, [sp, -80]!
22620	add	x29, sp, 0
22621	stp	x19, x20, [sp, 16]
22622	adrp	x19, .LANCHOR12
22623	stp	x21, x22, [sp, 32]
22624	ldr	x0, [x19, #:lo12:.LANCHOR12]
22625	ldr	w1, [x0, 544]
22626	str	x23, [sp, 48]
22627	cmn	w1, #1
22628	beq	.L3586
22629	adrp	x21, .LANCHOR231
22630	adrp	x22, .LC0
22631	add	x21, x21, :lo12:.LANCHOR231
22632	add	x22, x22, :lo12:.LC0
22633	mov	w20, 0
22634.L3594:
22635	ldr	x0, [x19, #:lo12:.LANCHOR12]
22636	mov	w2, 0
22637	add	x1, x29, 76
22638	ldr	w0, [x0, 544]
22639	bl	pm_log2phys
22640	ldr	w0, [x29, 76]
22641	cmn	w0, #1
22642	beq	.L3587
22643	mov	w0, 1
22644	bl	buf_alloc
22645	ldr	w1, [x29, 76]
22646	mov	x23, x0
22647	str	w1, [x0, 40]
22648	mov	w1, 1
22649	bl	sblk_read_page
22650	ldr	w0, [x23, 52]
22651	cmp	w0, 256
22652	bne	.L3588
22653	adrp	x0, .LANCHOR80
22654	ldr	w2, [x29, 76]
22655	ldrh	w3, [x0, #:lo12:.LANCHOR80]
22656	adrp	x0, .LANCHOR31
22657	ldrb	w1, [x0, #:lo12:.LANCHOR31]
22658	mov	w0, 24
22659	lsr	w2, w2, w3
22660	sub	w0, w0, w1
22661	mov	w1, 1
22662	sub	w0, w0, w3
22663	lsl	w0, w1, w0
22664	sub	w0, w0, #1
22665	and	w0, w0, w2
22666	adrp	x2, .LANCHOR81
22667	ldrb	w3, [x2, #:lo12:.LANCHOR81]
22668	mov	w2, 0
22669	udiv	w0, w0, w3
22670	bl	gc_add_sblk
22671.L3588:
22672	ldr	x0, [x19, #:lo12:.LANCHOR12]
22673	ldr	x1, [x23, 24]
22674	ldr	w0, [x0, 544]
22675	ldr	w1, [x1, 4]
22676	cmp	w1, w0
22677	beq	.L3589
22678	mov	w2, 2163
22679	mov	x1, x21
22680	mov	x0, x22
22681	bl	printf
22682.L3589:
22683	mov	x0, x23
22684	bl	zbuf_free
22685.L3587:
22686	ldr	x0, [x19, #:lo12:.LANCHOR12]
22687	adrp	x2, .LANCHOR219
22688	ldr	w2, [x2, #:lo12:.LANCHOR219]
22689	ldr	w1, [x0, 544]
22690	add	w1, w1, 1
22691	str	w1, [x0, 544]
22692	cmp	w1, w2
22693	bcc	.L3590
22694	mov	w1, -1
22695	str	w1, [x0, 544]
22696	ldr	w1, [x0, 548]
22697	add	w1, w1, 1
22698	str	w1, [x0, 548]
22699	bl	ftl_flush
22700	bl	pm_flush
22701	bl	ftl_ext_info_flush
22702	mov	w0, 0
22703	bl	ftl_info_flush
22704.L3585:
22705	ldp	x19, x20, [sp, 16]
22706	ldp	x21, x22, [sp, 32]
22707	ldr	x23, [sp, 48]
22708	ldp	x29, x30, [sp], 80
22709	ret
22710.L3590:
22711	ldr	w0, [x29, 76]
22712	cmn	w0, #1
22713	bne	.L3585
22714	adrp	x1, .LANCHOR221
22715	add	w0, w20, 1
22716	and	w0, w0, 65535
22717	ldrh	w1, [x1, #:lo12:.LANCHOR221]
22718	cmp	w20, w1, lsr 2
22719	bcs	.L3585
22720	mov	w20, w0
22721	b	.L3594
22722.L3586:
22723	ldr	w1, [x0, 536]
22724	adrp	x3, .LANCHOR69
22725	ldr	w2, [x0, 12]
22726	add	w1, w1, 12959744
22727	add	w1, w1, 256
22728	cmp	w2, w1
22729	bhi	.L3596
22730	ldr	x4, [x3, #:lo12:.LANCHOR69]
22731	mov	w5, 5000
22732	ldr	w1, [x0, 540]
22733	add	w1, w1, w5
22734	ldr	w4, [x4, 44]
22735	cmp	w4, w1
22736	bls	.L3585
22737.L3596:
22738	ldr	x1, [x3, #:lo12:.LANCHOR69]
22739	ldr	w1, [x1, 44]
22740	str	w1, [x0, 540]
22741	str	w2, [x0, 536]
22742	str	wzr, [x0, 544]
22743	b	.L3585
22744	.size	gc_scan_static_data, .-gc_scan_static_data
22745	.section	.text.ftl_sblk_dump,"ax",@progbits
22746	.align	2
22747	.global	ftl_sblk_dump
22748	.type	ftl_sblk_dump, %function
22749ftl_sblk_dump:
22750	sub	sp, sp, #288
22751	and	x0, x0, 65535
22752	stp	x29, x30, [sp, 48]
22753	add	x29, sp, 48
22754	stp	x23, x24, [sp, 96]
22755	adrp	x24, .LANCHOR9
22756	lsl	x23, x0, 2
22757	stp	x19, x20, [sp, 64]
22758	str	x0, [x29, 144]
22759	mov	x20, x0
22760	ldr	x0, [x24, #:lo12:.LANCHOR9]
22761	str	x1, [x29, 160]
22762	add	x1, x0, x23
22763	stp	x21, x22, [sp, 80]
22764	stp	x25, x26, [sp, 112]
22765	ldr	w5, [x0, x23]
22766	ldrb	w2, [x1, 2]
22767	mov	w1, w20
22768	ldrh	w4, [x0, x23]
22769	adrp	x0, .LC216
22770	stp	x27, x28, [sp, 128]
22771	ubfx	x5, x5, 11, 8
22772	ubfx	x3, x2, 3, 2
22773	and	w4, w4, 2047
22774	ubfx	x2, x2, 5, 3
22775	add	x0, x0, :lo12:.LC216
22776	bl	printf
22777	mov	w0, 65535
22778	cmp	w20, w0
22779	beq	.L3625
22780	adrp	x0, .LANCHOR8
22781	ldrh	w0, [x0, #:lo12:.LANCHOR8]
22782	cmp	w0, w20
22783	bls	.L3625
22784	ldr	x0, [x24, #:lo12:.LANCHOR9]
22785	add	x0, x0, x23
22786	ldrb	w0, [x0, 2]
22787	and	w0, w0, 224
22788	cmp	w0, 160
22789	bne	.L3626
22790	adrp	x0, .LANCHOR84
22791	ldrb	w25, [x0, #:lo12:.LANCHOR84]
22792.L3604:
22793	add	x28, x29, 240
22794	adrp	x21, .LANCHOR100
22795	mov	w0, w20
22796	mov	w19, 0
22797	strh	w20, [x28, -32]!
22798	add	x1, x28, 16
22799	bl	ftl_get_blk_list_in_sblk
22800	ldrh	w2, [x21, #:lo12:.LANCHOR100]
22801	and	w1, w0, 255
22802	strb	w1, [x29, 217]
22803	and	w4, w0, 255
22804	strb	wzr, [x29, 213]
22805	mov	w3, w25
22806	strh	wzr, [x29, 210]
22807	adrp	x0, .LC217
22808	mul	w1, w1, w2
22809	strh	wzr, [x29, 218]
22810	strh	w1, [x29, 214]
22811	add	x0, x0, :lo12:.LC217
22812	ldr	x1, [x24, #:lo12:.LANCHOR9]
22813	add	x1, x1, x23
22814	ldrb	w2, [x1, 2]
22815	mov	w1, w20
22816	ubfx	x2, x2, 5, 3
22817	bl	printf
22818	mov	w0, 1
22819	bl	buf_alloc
22820	str	x21, [x29, 136]
22821	mov	x26, x0
22822	stp	wzr, wzr, [x29, 168]
22823	adrp	x0, .LANCHOR117
22824	str	wzr, [x29, 176]
22825	add	x0, x0, :lo12:.LANCHOR117
22826	str	x0, [x29, 112]
22827.L3605:
22828	ldr	x0, [x29, 136]
22829	ldrh	w0, [x0, #:lo12:.LANCHOR100]
22830	cmp	w0, w19
22831	bls	.L3622
22832	lsl	w0, w19, 1
22833	mov	w22, 0
22834	sub	w1, w0, #1
22835	add	w0, w0, w19
22836	sub	w0, w0, #1
22837	stp	w1, w0, [x29, 152]
22838	adrp	x0, .LC161
22839	add	x0, x0, :lo12:.LC161
22840	str	x0, [x29, 120]
22841	b	.L3623
22842.L3626:
22843	mov	w25, 1
22844	b	.L3604
22845.L3619:
22846	ldr	x0, [x29, 128]
22847	ldrh	w11, [x28, x0]
22848	mov	w0, 65535
22849	cmp	w11, w0
22850	beq	.L3606
22851	ldr	x0, [x29, 112]
22852	cmp	w25, 3
22853	ldrh	w8, [x0]
22854	mul	w1, w8, w11
22855	add	w0, w21, w1
22856	bne	.L3607
22857	adrp	x2, .LANCHOR35
22858	ldrb	w2, [x2, #:lo12:.LANCHOR35]
22859	cbz	w2, .L3608
22860	adrp	x1, .LANCHOR84
22861	ldrb	w8, [x1, #:lo12:.LANCHOR84]
22862	ldr	w1, [x29, 156]
22863.L3635:
22864	add	w0, w0, w1
22865	orr	w27, w0, w8, lsl 24
22866	b	.L3609
22867.L3608:
22868	adrp	x2, .LANCHOR36
22869	lsl	w8, w21, 24
22870	ldrb	w2, [x2, #:lo12:.LANCHOR36]
22871	cbz	w2, .L3610
22872	ldr	w1, [x29, 156]
22873	add	w0, w0, w1
22874	orr	w27, w0, w8
22875.L3609:
22876	str	w27, [x26, 40]
22877	mov	w1, 1
22878	str	w11, [x29, 100]
22879	mov	x0, x26
22880	bl	sblk_read_page
22881	ldr	x1, [x26, 24]
22882	mov	w3, w27
22883	ldr	x0, [x26, 8]
22884	ldr	w12, [x26, 52]
22885	ldr	w11, [x29, 100]
22886	ldr	w2, [x1, 12]
22887	mov	w4, w12
22888	str	w2, [sp, 32]
22889	str	w12, [x29, 104]
22890	ldr	w2, [x1, 8]
22891	str	w2, [sp, 24]
22892	ldr	w2, [x1, 4]
22893	str	w2, [sp, 16]
22894	mov	w2, w19
22895	ldr	w1, [x1]
22896	str	w1, [sp, 8]
22897	ldr	w1, [x0, 12]
22898	str	w1, [sp]
22899	mov	w1, w11
22900	ldp	w5, w6, [x0]
22901	ldr	w7, [x0, 8]
22902	ldr	x0, [x29, 120]
22903	bl	printf
22904	ldr	w12, [x29, 104]
22905	mov	w1, 32
22906	ldr	w0, [x29, 168]
22907	cmp	w12, 512
22908	ccmn	w12, #1, 4, ne
22909	csinc	w0, w0, wzr, ne
22910	str	w0, [x29, 168]
22911	ldr	x0, [x24, #:lo12:.LANCHOR9]
22912	add	x0, x0, x23
22913	ldrb	w0, [x0, 2]
22914	and	w0, w0, 224
22915	cmp	w0, 224
22916	ccmp	w0, w1, 4, ne
22917	beq	.L3606
22918	ldr	x0, [x26, 24]
22919	ldr	w0, [x0, 4]
22920	bl	lpa_hash_get_ppa
22921	str	w0, [x29, 204]
22922	cmn	w0, #1
22923	bne	.L3613
22924	ldr	x0, [x26, 24]
22925	mov	w2, 0
22926	add	x1, x29, 204
22927	ldr	w0, [x0, 4]
22928	bl	pm_log2phys
22929.L3613:
22930	ldr	w0, [x29, 204]
22931	cmp	w27, w0
22932	bne	.L3614
22933	ldr	w0, [x29, 172]
22934	mov	w1, w27
22935	add	w0, w0, 1
22936	str	w0, [x29, 172]
22937	ldr	x0, [x26, 24]
22938	ldr	w3, [x29, 172]
22939	ldr	w2, [x0, 4]
22940	adrp	x0, .LC218
22941	add	x0, x0, :lo12:.LC218
22942	bl	printf
22943.L3614:
22944	ldr	x0, [x29, 160]
22945	cbz	x0, .L3616
22946	ldr	x0, [x29, 176]
22947	ubfiz	x3, x0, 2, 32
22948	ldr	x0, [x29, 160]
22949	ldr	w2, [x0, x3]
22950	ldr	x0, [x26, 24]
22951	ldr	w0, [x0, 4]
22952	cmp	w0, w2
22953	beq	.L3617
22954	adrp	x0, .LANCHOR19
22955	ldr	w0, [x0, #:lo12:.LANCHOR19]
22956	tbz	x0, 12, .L3617
22957	ldr	w1, [x29, 176]
22958	adrp	x0, .LC219
22959	str	x3, [x29, 104]
22960	add	x0, x0, :lo12:.LC219
22961	bl	printf
22962	ldr	x3, [x29, 104]
22963.L3617:
22964	ldr	x1, [x26, 24]
22965	ldr	x0, [x29, 160]
22966	ldr	w1, [x1, 4]
22967	ldr	w0, [x0, x3]
22968	cmp	w1, w0
22969	beq	.L3616
22970	cmn	w0, #1
22971	beq	.L3616
22972	adrp	x1, .LANCHOR232
22973	adrp	x0, .LC0
22974	mov	w2, 1580
22975	add	x1, x1, :lo12:.LANCHOR232
22976	add	x0, x0, :lo12:.LC0
22977	bl	printf
22978.L3616:
22979	ldr	w0, [x29, 176]
22980	add	w0, w0, 1
22981	str	w0, [x29, 176]
22982.L3606:
22983	add	w21, w21, 1
22984	and	w21, w21, 65535
22985.L3621:
22986	cmp	w25, w21
22987	bcs	.L3619
22988	add	w22, w22, 1
22989	and	w22, w22, 65535
22990.L3623:
22991	ldrb	w0, [x29, 217]
22992	cmp	w0, w22
22993	bls	.L3620
22994	sxtw	x0, w22
22995	mov	w21, 1
22996	add	x0, x0, 8
22997	lsl	x0, x0, 1
22998	str	x0, [x29, 128]
22999	b	.L3621
23000.L3610:
23001	add	w1, w19, w1
23002	orr	w27, w8, w1
23003	b	.L3609
23004.L3607:
23005	cmp	w25, 2
23006	bne	.L3611
23007	adrp	x1, .LANCHOR84
23008	ldrb	w8, [x1, #:lo12:.LANCHOR84]
23009	ldr	w1, [x29, 152]
23010	b	.L3635
23011.L3611:
23012	add	w27, w19, w1
23013	b	.L3609
23014.L3620:
23015	add	w19, w19, 1
23016	and	w19, w19, 65535
23017	b	.L3605
23018.L3622:
23019	mov	x0, x26
23020	bl	zbuf_free
23021	adrp	x0, .LANCHOR11
23022	ldr	x1, [x29, 144]
23023	ldr	w3, [x29, 172]
23024	ldr	x0, [x0, #:lo12:.LANCHOR11]
23025	ldrh	w2, [x0, x1, lsl 1]
23026	mov	w1, w20
23027	adrp	x0, .LC220
23028	add	x0, x0, :lo12:.LC220
23029	bl	printf
23030	ldr	w0, [x29, 168]
23031.L3602:
23032	ldp	x19, x20, [sp, 64]
23033	ldp	x21, x22, [sp, 80]
23034	ldp	x23, x24, [sp, 96]
23035	ldp	x25, x26, [sp, 112]
23036	ldp	x27, x28, [sp, 128]
23037	ldp	x29, x30, [sp, 48]
23038	add	sp, sp, 288
23039	ret
23040.L3625:
23041	mov	w0, 0
23042	b	.L3602
23043	.size	ftl_sblk_dump, .-ftl_sblk_dump
23044	.section	.text.zftl_read,"ax",@progbits
23045	.align	2
23046	.global	zftl_read
23047	.type	zftl_read, %function
23048zftl_read:
23049	sub	sp, sp, #192
23050	stp	x29, x30, [sp, 16]
23051	add	x29, sp, 16
23052	stp	x19, x20, [sp, 32]
23053	mov	w19, w0
23054	adrp	x0, .LANCHOR19
23055	stp	x21, x22, [sp, 48]
23056	stp	x23, x24, [sp, 64]
23057	mov	w20, w1
23058	ldr	w0, [x0, #:lo12:.LANCHOR19]
23059	mov	w23, w2
23060	stp	x25, x26, [sp, 80]
23061	mov	x22, x3
23062	stp	x27, x28, [sp, 96]
23063	tbz	x0, 12, .L3637
23064	mov	w3, w2
23065	adrp	x0, .LC221
23066	mov	w2, w1
23067	add	x0, x0, :lo12:.LC221
23068	mov	w1, w19
23069	bl	printf
23070.L3637:
23071	cbnz	w19, .L3638
23072	adrp	x0, .LANCHOR73
23073	mov	w19, 24576
23074	ldr	w0, [x0, #:lo12:.LANCHOR73]
23075.L3639:
23076	cmp	w0, w20
23077	ccmp	w0, w23, 0, hi
23078	bcc	.L3672
23079	add	w1, w20, w23
23080	cmp	w0, w1
23081	bcc	.L3672
23082	adrp	x1, .LANCHOR69
23083	adrp	x24, .LANCHOR68
23084	add	w19, w19, w20
23085	str	x1, [x29, 112]
23086	ldr	x2, [x1, #:lo12:.LANCHOR69]
23087	ldr	w0, [x2, 24]
23088	add	w0, w0, w23
23089	str	w0, [x2, 24]
23090	ldrb	w0, [x24, #:lo12:.LANCHOR68]
23091	udiv	w2, w19, w0
23092	stp	wzr, w2, [x29, 152]
23093	add	w2, w23, w19
23094	str	w2, [x29, 148]
23095	sub	w2, w2, #1
23096	udiv	w0, w2, w0
23097	ldr	w2, [x29, 156]
23098	mov	x21, x2
23099	sub	w26, w0, w2
23100	str	w0, [x29, 144]
23101	add	w26, w26, 1
23102	adrp	x0, .LANCHOR72
23103	add	x28, x0, :lo12:.LANCHOR72
23104.L3641:
23105	cbnz	w26, .L3669
23106	ldr	w0, [x29, 152]
23107.L3636:
23108	ldp	x19, x20, [sp, 32]
23109	ldp	x21, x22, [sp, 48]
23110	ldp	x23, x24, [sp, 64]
23111	ldp	x25, x26, [sp, 80]
23112	ldp	x27, x28, [sp, 96]
23113	ldp	x29, x30, [sp, 16]
23114	add	sp, sp, 192
23115	ret
23116.L3638:
23117	cmp	w19, 3
23118	bhi	.L3672
23119	lsl	w19, w19, 13
23120	mov	w0, 8192
23121	b	.L3639
23122.L3669:
23123	ldr	w0, [x29, 156]
23124	ldrb	w1, [x24, #:lo12:.LANCHOR68]
23125	cmp	w21, w0
23126	ldr	w0, [x29, 144]
23127	and	w25, w1, 65535
23128	ccmp	w21, w0, 4, ne
23129	bne	.L3673
23130	ldr	w0, [x29, 156]
23131	cmp	w21, w0
23132	bne	.L3643
23133	udiv	w3, w19, w1
23134	and	w0, w23, 65535
23135	msub	w1, w3, w1, w19
23136	and	w27, w1, 65535
23137	sub	w25, w25, w27
23138	and	w25, w25, 65535
23139	cmp	w23, w25
23140	csel	w25, w0, w25, cc
23141.L3642:
23142	adrp	x20, .LANCHOR55
23143	add	x1, x20, :lo12:.LANCHOR55
23144	add	x1, x1, 2
23145	mov	w0, 0
23146.L3646:
23147	ldr	w2, [x1, 34]
23148	cmp	w21, w2
23149	bne	.L3644
23150	ldrb	w2, [x1]
23151	tbz	x2, 3, .L3644
23152	add	x1, x20, :lo12:.LANCHOR55
23153	ubfiz	x0, x0, 6, 32
23154	add	x0, x1, x0
23155	lsl	w2, w25, 9
23156	ubfiz	x25, x25, 9, 16
23157	ubfiz	x27, x27, 9, 16
23158	ldr	x1, [x0, 8]
23159	mov	x0, x22
23160	add	x22, x22, x25
23161	add	x1, x1, x27
23162	bl	ftl_memcpy
23163.L3645:
23164	add	w21, w21, 1
23165	sub	w26, w26, #1
23166.L3652:
23167	adrp	x0, .LANCHOR57
23168	ldrb	w0, [x0, #:lo12:.LANCHOR57]
23169	cmp	w0, 2
23170	bls	.L3653
23171	cbnz	w26, .L3641
23172.L3653:
23173	adrp	x0, .LANCHOR72
23174	ldrb	w1, [x0, #:lo12:.LANCHOR72]
23175	cbz	w1, .L3641
23176	adrp	x25, .LANCHOR71
23177	add	x0, x20, :lo12:.LANCHOR55
23178	ldrb	w2, [x25, #:lo12:.LANCHOR71]
23179	add	x0, x0, x2, lsl 6
23180	bl	sblk_read_page
23181	adrp	x0, .LANCHOR233
23182	add	x0, x0, :lo12:.LANCHOR233
23183	str	x0, [x29, 128]
23184	adrp	x0, .LC0
23185	add	x0, x0, :lo12:.LC0
23186	str	x0, [x29, 120]
23187.L3655:
23188	ldrb	w0, [x28]
23189	cbnz	w0, .L3668
23190	mov	w0, -1
23191	strb	wzr, [x28]
23192	strb	w0, [x25, #:lo12:.LANCHOR71]
23193	b	.L3641
23194.L3643:
23195	ldr	w0, [x29, 148]
23196	msub	w25, w1, w21, w0
23197	and	w25, w25, 255
23198.L3673:
23199	mov	w27, 0
23200	b	.L3642
23201.L3644:
23202	add	w0, w0, 1
23203	add	x1, x1, 64
23204	cmp	w0, 16
23205	bne	.L3646
23206	mov	w0, w21
23207	bl	lpa_hash_get_ppa
23208	str	w0, [x29, 172]
23209	cmn	w0, #1
23210	bne	.L3647
23211	mov	w2, 0
23212	add	x1, x29, 172
23213	mov	w0, w21
23214	bl	pm_log2phys
23215.L3647:
23216	ldr	w0, [x29, 172]
23217	cmn	w0, #1
23218	bne	.L3648
23219	add	x27, x24, :lo12:.LANCHOR68
23220	mov	w25, 0
23221.L3649:
23222	ldrb	w0, [x27]
23223	cmp	w25, w0
23224	bcs	.L3645
23225	madd	w0, w21, w0, w25
23226	cmp	w19, w0
23227	bhi	.L3650
23228	ldr	w1, [x29, 148]
23229	cmp	w1, w0
23230	bls	.L3650
23231	mov	x0, x22
23232	add	x22, x22, 512
23233	mov	w2, 512
23234	mov	w1, 0
23235	bl	ftl_memset
23236.L3650:
23237	add	w25, w25, 1
23238	b	.L3649
23239.L3648:
23240	mov	w0, 0
23241	bl	buf_alloc
23242	cbz	x0, .L3652
23243	ldr	x2, [x29, 112]
23244	ldr	x4, [x2, #:lo12:.LANCHOR69]
23245	ldr	w2, [x4, 40]
23246	add	w2, w2, 1
23247	str	w2, [x4, 40]
23248	ldr	w2, [x29, 172]
23249	strb	w25, [x0, 56]
23250	ubfiz	x25, x25, 9, 16
23251	str	x22, [x0, 16]
23252	add	x22, x22, x25
23253	strb	w27, [x0, 57]
23254	stp	w21, w2, [x0, 36]
23255	str	w2, [x0, 44]
23256	bl	zftl_add_read_buf
23257	b	.L3645
23258.L3668:
23259	ldrb	w0, [x25, #:lo12:.LANCHOR71]
23260	cmp	w0, 255
23261	bne	.L3656
23262	ldp	x0, x1, [x29, 120]
23263	mov	w2, 1280
23264	bl	printf
23265.L3656:
23266	ldrb	w27, [x25, #:lo12:.LANCHOR71]
23267	add	x0, x20, :lo12:.LANCHOR55
23268	ubfiz	x1, x27, 6, 8
23269	lsl	x2, x27, 6
23270	add	x1, x0, x1
23271	str	x1, [x29, 136]
23272	add	x1, x0, x2
23273	ldrb	w0, [x0, x2]
23274	strb	w0, [x25, #:lo12:.LANCHOR71]
23275	ldr	w10, [x1, 52]
23276	cmn	w10, #1
23277	bne	.L3657
23278	adrp	x0, .LANCHOR12
23279	str	w10, [x29, 152]
23280	ldr	x1, [x0, #:lo12:.LANCHOR12]
23281	ldr	w0, [x1, 552]
23282	add	w0, w0, 1
23283	str	w0, [x1, 552]
23284.L3658:
23285	add	x0, x20, :lo12:.LANCHOR55
23286	add	x0, x0, x27, lsl 6
23287	ldr	x3, [x0, 24]
23288	ldr	w0, [x0, 36]
23289	ldr	w1, [x3, 4]
23290	cmp	w1, w0
23291	bne	.L3659
23292	cmn	w10, #1
23293	bne	.L3660
23294.L3659:
23295	add	x0, x20, :lo12:.LANCHOR55
23296	ldrb	w4, [x24, #:lo12:.LANCHOR68]
23297	add	x0, x0, x27, lsl 6
23298	mov	w5, 1
23299	ldrb	w1, [x0, 56]
23300	ldp	x2, x7, [x0, 8]
23301	cmp	w1, w4
23302	ldr	w1, [x0, 40]
23303	adrp	x0, .LANCHOR31
23304	csel	x2, x7, x2, cs
23305	ldrb	w6, [x0, #:lo12:.LANCHOR31]
23306	mov	w0, 24
23307	sub	w0, w0, w6
23308	lsl	w5, w5, w6
23309	sub	w5, w5, #1
23310	lsl	w6, w5, w0
23311	lsr	w0, w1, w0
23312	bic	w1, w1, w6
23313	and	w0, w0, w5
23314	bl	flash_read_page_en
23315	mov	w10, w0
23316.L3660:
23317	add	x1, x20, :lo12:.LANCHOR55
23318	add	x1, x1, x27, lsl 6
23319	ldr	x0, [x1, 24]
23320	ldr	w3, [x1, 36]
23321	ldr	w1, [x0, 4]
23322	cmp	w1, w3
23323	bne	.L3662
23324	cmn	w10, #1
23325	bne	.L3663
23326.L3662:
23327	adrp	x1, .LANCHOR12
23328	add	x11, x20, :lo12:.LANCHOR55
23329	add	x11, x11, x27, lsl 6
23330	str	w10, [x29, 108]
23331	ldr	x2, [x1, #:lo12:.LANCHOR12]
23332	str	x11, [x29, 96]
23333	ldr	w1, [x2, 552]
23334	add	w1, w1, 1
23335	str	w1, [x2, 552]
23336	ldrb	w1, [x11, 1]
23337	ldr	w2, [x0, 12]
23338	str	w2, [sp]
23339	mov	w2, w10
23340	ldp	w5, w6, [x0]
23341	ldr	w7, [x0, 8]
23342	adrp	x0, .LC223
23343	ldr	w4, [x11, 40]
23344	add	x0, x0, :lo12:.LC223
23345	bl	printf
23346	adrp	x0, .LANCHOR80
23347	ldr	x11, [x29, 96]
23348	ldrh	w2, [x0, #:lo12:.LANCHOR80]
23349	adrp	x0, .LANCHOR31
23350	ldrb	w1, [x0, #:lo12:.LANCHOR31]
23351	mov	w0, 24
23352	sub	w0, w0, w1
23353	sub	w1, w0, w2
23354	mov	w0, 1
23355	lsl	w0, w0, w1
23356	ldr	w1, [x11, 40]
23357	sub	w0, w0, #1
23358	lsr	w1, w1, w2
23359	and	w0, w0, w1
23360	adrp	x1, .LANCHOR81
23361	ldrb	w2, [x1, #:lo12:.LANCHOR81]
23362	mov	x1, 0
23363	udiv	w0, w0, w2
23364	bl	ftl_sblk_dump
23365	ldr	w10, [x29, 108]
23366.L3663:
23367	add	x0, x20, :lo12:.LANCHOR55
23368	add	x0, x0, x27, lsl 6
23369	ldr	x1, [x0, 24]
23370	ldr	w0, [x0, 36]
23371	ldr	w1, [x1, 4]
23372	cmp	w1, w0
23373	bne	.L3664
23374	cmn	w10, #1
23375	bne	.L3665
23376.L3664:
23377	ldp	x0, x1, [x29, 120]
23378	mov	w2, 1316
23379	bl	printf
23380.L3665:
23381	add	x0, x20, :lo12:.LANCHOR55
23382	add	x8, x0, x27, lsl 6
23383	ldrb	w0, [x24, #:lo12:.LANCHOR68]
23384	ldrb	w2, [x8, 56]
23385	cmp	w0, w2
23386	bls	.L3666
23387	ldrb	w0, [x8, 57]
23388	lsl	w2, w2, 9
23389	ldr	x1, [x8, 8]
23390	ubfiz	x0, x0, 9, 8
23391	add	x1, x1, x0
23392	ldr	x0, [x8, 16]
23393	bl	ftl_memcpy
23394.L3667:
23395	ldr	x1, [x29, 136]
23396	adrp	x0, .LANCHOR62
23397	add	x0, x0, :lo12:.LANCHOR62
23398	bl	buf_remove_buf
23399	ldr	x0, [x29, 136]
23400	bl	zbuf_free
23401	ldrb	w0, [x28]
23402	sub	w0, w0, #1
23403	strb	w0, [x28]
23404	b	.L3655
23405.L3657:
23406	cmp	w10, 256
23407	bne	.L3658
23408	adrp	x2, .LANCHOR31
23409	adrp	x0, .LANCHOR80
23410	mov	w4, 24
23411	mov	w5, 1
23412	ldrb	w2, [x2, #:lo12:.LANCHOR31]
23413	ldrh	w0, [x0, #:lo12:.LANCHOR80]
23414	sub	w4, w4, w2
23415	str	w5, [x29, 96]
23416	ldp	w2, w3, [x1, 36]
23417	sub	w4, w4, w0
23418	lsl	w4, w5, w4
23419	sub	w4, w4, #1
23420	lsr	w0, w3, w0
23421	and	w4, w4, w0
23422	adrp	x0, .LANCHOR81
23423	ldrb	w0, [x0, #:lo12:.LANCHOR81]
23424	udiv	w4, w4, w0
23425	adrp	x0, .LC222
23426	add	x0, x0, :lo12:.LC222
23427	stp	w10, w4, [x29, 104]
23428	and	w1, w4, 65535
23429	bl	printf
23430	ldr	w5, [x29, 96]
23431	mov	w2, 0
23432	ldr	w4, [x29, 108]
23433	mov	w1, w5
23434	mov	w0, w4
23435	bl	gc_add_sblk
23436	ldr	w10, [x29, 104]
23437	b	.L3658
23438.L3666:
23439	ldrb	w0, [x8, 2]
23440	and	w0, w0, -9
23441	strb	w0, [x8, 2]
23442	b	.L3667
23443.L3672:
23444	mov	w0, -1
23445	b	.L3636
23446	.size	zftl_read, .-zftl_read
23447	.section	.text.zftl_sys_read,"ax",@progbits
23448	.align	2
23449	.global	zftl_sys_read
23450	.type	zftl_sys_read, %function
23451zftl_sys_read:
23452	mov	x3, x2
23453	mov	w2, w1
23454	mov	w1, w0
23455	mov	w0, 2
23456	b	zftl_read
23457	.size	zftl_sys_read, .-zftl_sys_read
23458	.section	.text.StorageSysDataLoad,"ax",@progbits
23459	.align	2
23460	.global	StorageSysDataLoad
23461	.type	StorageSysDataLoad, %function
23462StorageSysDataLoad:
23463	stp	x29, x30, [sp, -32]!
23464	mov	w2, 512
23465	add	x29, sp, 0
23466	stp	x19, x20, [sp, 16]
23467	mov	x19, x1
23468	mov	w20, w0
23469	mov	w1, 0
23470	mov	x0, x19
23471	bl	ftl_memset
23472	mov	x3, x19
23473	mov	w1, w20
23474	ldp	x19, x20, [sp, 16]
23475	mov	w2, 1
23476	ldp	x29, x30, [sp], 32
23477	mov	w0, 2
23478	b	zftl_read
23479	.size	StorageSysDataLoad, .-StorageSysDataLoad
23480	.section	.text.FlashBootVendorRead,"ax",@progbits
23481	.align	2
23482	.global	FlashBootVendorRead
23483	.type	FlashBootVendorRead, %function
23484FlashBootVendorRead:
23485	mov	x3, x2
23486	mov	w2, w1
23487	add	w1, w0, 512
23488	mov	w0, 2
23489	b	zftl_read
23490	.size	FlashBootVendorRead, .-FlashBootVendorRead
23491	.section	.text.ftl_read,"ax",@progbits
23492	.align	2
23493	.global	ftl_read
23494	.type	ftl_read, %function
23495ftl_read:
23496	and	w0, w0, 255
23497	b	zftl_read
23498	.size	ftl_read, .-ftl_read
23499	.section	.text.ftl_vendor_read,"ax",@progbits
23500	.align	2
23501	.global	ftl_vendor_read
23502	.type	ftl_vendor_read, %function
23503ftl_vendor_read:
23504	mov	x3, x2
23505	mov	w2, w1
23506	add	w1, w0, 512
23507	mov	w0, 2
23508	b	zftl_read
23509	.size	ftl_vendor_read, .-ftl_vendor_read
23510	.section	.text.zftl_vendor_read,"ax",@progbits
23511	.align	2
23512	.global	zftl_vendor_read
23513	.type	zftl_vendor_read, %function
23514zftl_vendor_read:
23515	b	ftl_vendor_read
23516	.size	zftl_vendor_read, .-zftl_vendor_read
23517	.section	.text.ftl_update_l2p_map,"ax",@progbits
23518	.align	2
23519	.global	ftl_update_l2p_map
23520	.type	ftl_update_l2p_map, %function
23521ftl_update_l2p_map:
23522	stp	x29, x30, [sp, -128]!
23523	add	x29, sp, 0
23524	stp	x21, x22, [sp, 32]
23525	mov	x22, x0
23526	stp	x19, x20, [sp, 16]
23527	adrp	x0, .LANCHOR100
23528	stp	x23, x24, [sp, 48]
23529	stp	x25, x26, [sp, 64]
23530	stp	x27, x28, [sp, 80]
23531	ldrh	w23, [x0, #:lo12:.LANCHOR100]
23532	ldrb	w0, [x22, 9]
23533	ldrh	w19, [x22, 12]
23534	mul	w23, w23, w0
23535	adrp	x0, .LANCHOR123
23536	str	x0, [x29, 104]
23537	ldr	x1, [x0, #:lo12:.LANCHOR123]
23538	add	x19, x1, x19, lsl 2
23539	add	x1, x19, x23, sxtw 2
23540	ldr	w1, [x1, -4]
23541	cmn	w1, #1
23542	beq	.L3696
23543	adrp	x1, .LANCHOR234
23544	adrp	x0, .LC0
23545	mov	w2, 2003
23546	add	x1, x1, :lo12:.LANCHOR234
23547	add	x0, x0, :lo12:.LC0
23548	bl	printf
23549.L3696:
23550	adrp	x27, .LANCHOR68
23551	mov	x24, 0
23552	add	x0, x27, :lo12:.LANCHOR68
23553	mov	w21, 0
23554	str	x0, [x29, 96]
23555.L3697:
23556	cmp	w24, w23
23557	blt	.L3703
23558	adrp	x0, .LANCHOR19
23559	adrp	x19, .LANCHOR11
23560	ldr	w0, [x0, #:lo12:.LANCHOR19]
23561	tbz	x0, 12, .L3704
23562	ldrh	w1, [x22]
23563	ldr	x2, [x19, #:lo12:.LANCHOR11]
23564	ubfiz	x0, x1, 1, 16
23565	ldrh	w3, [x2, x0]
23566	adrp	x0, .LC227
23567	mov	w2, w21
23568	add	x0, x0, :lo12:.LC227
23569	bl	printf
23570.L3704:
23571	ldrh	w1, [x22]
23572	ldr	x0, [x19, #:lo12:.LANCHOR11]
23573	ldp	x23, x24, [sp, 48]
23574	ldp	x19, x20, [sp, 16]
23575	strh	w21, [x0, x1, lsl 1]
23576	ldp	x25, x26, [sp, 64]
23577	ldp	x21, x22, [sp, 32]
23578	ldp	x27, x28, [sp, 80]
23579	ldp	x29, x30, [sp], 128
23580	ret
23581.L3703:
23582	ldr	w2, [x19, x24, lsl 2]
23583	cmn	w2, #1
23584	beq	.L3698
23585	ldrb	w20, [x27, #:lo12:.LANCHOR68]
23586	adrp	x0, .LANCHOR19
23587	ldr	w0, [x0, #:lo12:.LANCHOR19]
23588	lsl	w20, w20, 7
23589	udiv	w20, w2, w20
23590	and	w20, w20, 65535
23591	tbz	x0, 12, .L3699
23592	adrp	x0, .LC224
23593	mov	w3, w24
23594	mov	w1, w20
23595	add	x0, x0, :lo12:.LC224
23596	bl	printf
23597.L3699:
23598	adrp	x25, .LANCHOR117
23599	adrp	x26, .LC225
23600	mov	x28, x24
23601	add	x25, x25, :lo12:.LANCHOR117
23602	add	x26, x26, :lo12:.LC225
23603.L3702:
23604	ldr	w1, [x19, x28, lsl 2]
23605	cmn	w1, #1
23606	beq	.L3700
23607	ldr	x0, [x29, 96]
23608	ldrb	w2, [x0]
23609	lsl	w2, w2, 7
23610	udiv	w1, w1, w2
23611	cmp	w20, w1, uxth
23612	bne	.L3700
23613	ldrb	w0, [x22, 9]
23614	sdiv	w1, w28, w0
23615	msub	w0, w1, w0, w28
23616	add	x0, x22, x0, sxtw 1
23617	ldrh	w2, [x0, 16]
23618	ldrh	w0, [x25]
23619	madd	w2, w2, w0, w1
23620	mov	x0, x26
23621	str	w2, [x29, 124]
23622	ldr	w1, [x19, x28, lsl 2]
23623	bl	pm_ppa_update_check
23624	cbz	w0, .L3701
23625	ldr	x0, [x29, 104]
23626	mov	w3, w23
23627	mov	w2, 4
23628	ldr	x1, [x0, #:lo12:.LANCHOR123]
23629	adrp	x0, .LC226
23630	add	x0, x0, :lo12:.LC226
23631	bl	rknand_print_hex
23632.L3701:
23633	ldr	w0, [x19, x28, lsl 2]
23634	add	w21, w21, 1
23635	mov	w2, 1
23636	add	x1, x29, 124
23637	and	w21, w21, 65535
23638	bl	pm_log2phys
23639	mov	w0, -1
23640	str	w0, [x19, x28, lsl 2]
23641.L3700:
23642	add	x28, x28, 1
23643	cmp	w23, w28
23644	bgt	.L3702
23645.L3698:
23646	add	x24, x24, 1
23647	b	.L3697
23648	.size	ftl_update_l2p_map, .-ftl_update_l2p_map
23649	.section	.text.ftl_alloc_new_data_sblk,"ax",@progbits
23650	.align	2
23651	.global	ftl_alloc_new_data_sblk
23652	.type	ftl_alloc_new_data_sblk, %function
23653ftl_alloc_new_data_sblk:
23654	stp	x29, x30, [sp, -48]!
23655	add	x29, sp, 0
23656	stp	x19, x20, [sp, 16]
23657	mov	x20, x0
23658	str	x21, [sp, 32]
23659	ldrh	w21, [x0]
23660	bl	ftl_update_l2p_map
23661	bl	pm_flush
23662	ldrh	w0, [x20]
23663	mov	w1, 65535
23664	cmp	w0, w1
23665	beq	.L3726
23666	bl	zftl_insert_data_list
23667.L3726:
23668	adrp	x19, .LANCHOR12
23669	ldr	x0, [x19, #:lo12:.LANCHOR12]
23670	add	x0, x0, 16
23671	cmp	x20, x0
23672	mov	x0, x20
23673	cset	w1, ne
23674	add	w1, w1, 2
23675	bl	ftl_open_sblk_init
23676	ldr	x0, [x19, #:lo12:.LANCHOR12]
23677	ldr	w0, [x0, 560]
23678	cmp	w0, w21
23679	bne	.L3728
23680	mov	w20, 65535
23681	cmp	w21, w20
23682	beq	.L3728
23683	mov	w1, w21
23684	adrp	x0, .LC228
23685	add	x0, x0, :lo12:.LC228
23686	bl	printf
23687	ldr	x0, [x19, #:lo12:.LANCHOR12]
23688	ldr	w0, [x0, 564]
23689	bl	gc_mark_bad_ppa
23690	ldr	x0, [x19, #:lo12:.LANCHOR12]
23691	mov	w1, -1
23692	str	w20, [x0, 560]
23693	str	w1, [x0, 564]
23694.L3728:
23695	bl	ftl_ext_info_flush
23696	mov	w0, 0
23697	bl	ftl_info_flush
23698	bl	lpa_rebuild_hash
23699	ldr	x21, [sp, 32]
23700	mov	w0, 0
23701	ldp	x19, x20, [sp, 16]
23702	ldp	x29, x30, [sp], 48
23703	ret
23704	.size	ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk
23705	.section	.text.ftl_write_commit,"ax",@progbits
23706	.align	2
23707	.global	ftl_write_commit
23708	.type	ftl_write_commit, %function
23709ftl_write_commit:
23710	stp	x29, x30, [sp, -160]!
23711	adrp	x0, .LANCHOR55
23712	add	x29, sp, 0
23713	stp	x23, x24, [sp, 48]
23714	add	x24, x0, :lo12:.LANCHOR55
23715	add	x0, x24, 1026
23716	stp	x19, x20, [sp, 16]
23717	stp	x21, x22, [sp, 32]
23718	stp	x25, x26, [sp, 64]
23719	stp	x27, x28, [sp, 80]
23720	str	x0, [x29, 104]
23721.L3732:
23722	adrp	x2, .LANCHOR66
23723	ldrb	w1, [x2, #:lo12:.LANCHOR66]
23724	cbz	w1, .L3734
23725	adrp	x3, .LANCHOR65
23726	adrp	x0, .LANCHOR55
23727	add	x0, x0, :lo12:.LANCHOR55
23728	sub	w1, w1, #1
23729	ldrb	w4, [x3, #:lo12:.LANCHOR65]
23730	strb	w1, [x2, #:lo12:.LANCHOR66]
23731	ubfiz	x5, x4, 6, 8
23732	add	x5, x0, x5
23733	stp	x4, x5, [x29, 120]
23734	lsl	x4, x4, 6
23735	add	x5, x0, x4
23736	ldrb	w0, [x0, x4]
23737	strb	w0, [x3, #:lo12:.LANCHOR65]
23738	adrp	x0, .LANCHOR219
23739	ldr	w2, [x5, 36]
23740	mov	x19, x0
23741	ldr	w1, [x0, #:lo12:.LANCHOR219]
23742	cmp	w2, w1
23743	bcc	.L3736
23744	adrp	x1, .LANCHOR235
23745	adrp	x0, .LC0
23746	mov	w2, 602
23747	add	x1, x1, :lo12:.LANCHOR235
23748	add	x0, x0, :lo12:.LC0
23749	bl	printf
23750.L3736:
23751	ldr	x0, [x29, 120]
23752	ldr	w1, [x19, #:lo12:.LANCHOR219]
23753	add	x0, x24, x0, lsl 6
23754	ldr	w22, [x0, 36]
23755	cmp	w22, w1
23756	bcc	.L3737
23757	ldr	x0, [x29, 128]
23758	bl	zbuf_free
23759	mov	w0, -1
23760.L3731:
23761	ldp	x19, x20, [sp, 16]
23762	ldp	x21, x22, [sp, 32]
23763	ldp	x23, x24, [sp, 48]
23764	ldp	x25, x26, [sp, 64]
23765	ldp	x27, x28, [sp, 80]
23766	ldp	x29, x30, [sp], 160
23767	ret
23768.L3737:
23769	ldrb	w21, [x0, 57]
23770	ldrb	w20, [x0, 56]
23771	ldr	x26, [x0, 8]
23772	ldr	x23, [x0, 24]
23773	adrp	x0, .LANCHOR183
23774	str	x0, [x29, 112]
23775	ldrb	w1, [x0, #:lo12:.LANCHOR183]
23776	cbz	w1, .L3739
23777	adrp	x0, .LANCHOR184
23778	ldrb	w19, [x0, #:lo12:.LANCHOR184]
23779	add	x19, x24, x19, lsl 6
23780.L3740:
23781	ldrb	w0, [x19]
23782	cmp	w0, 255
23783	bne	.L3741
23784	ldr	w0, [x19, 36]
23785	cmp	w22, w0
23786	bne	.L3739
23787	ldr	x0, [x19, 8]
23788	ubfiz	x21, x21, 9, 8
23789	lsl	w2, w20, 9
23790	add	x1, x26, x21
23791	add	x0, x0, x21
23792	bl	ftl_memcpy
23793	adrp	x0, .LANCHOR68
23794	ldr	x2, [x19, 8]
23795	ldr	x1, [x19, 24]
23796	ldrb	w0, [x0, #:lo12:.LANCHOR68]
23797	add	x1, x1, 16
23798	sub	w0, w0, #2
23799	lsl	w0, w0, 7
23800	add	x2, x2, x0, sxtw 2
23801	mov	w0, 2
23802	bl	ftl_debug_info_fill
23803	ldr	x0, [x29, 128]
23804	bl	zbuf_free
23805	b	.L3732
23806.L3741:
23807	ubfiz	x19, x0, 6, 8
23808	add	x19, x24, x19
23809	b	.L3740
23810.L3739:
23811	mov	w0, w22
23812	bl	lpa_hash_get_ppa
23813	str	w0, [x29, 156]
23814	cmn	w0, #1
23815	bne	.L3743
23816	mov	w2, 0
23817	add	x1, x29, 156
23818	mov	w0, w22
23819	bl	pm_log2phys
23820.L3743:
23821	adrp	x27, .LANCHOR12
23822	ldr	w2, [x29, 156]
23823	add	x0, x24, 2
23824	mov	w3, 0
23825	ldr	x19, [x27, #:lo12:.LANCHOR12]
23826	mov	x25, 0
23827	add	x19, x19, 16
23828.L3745:
23829	ldr	w1, [x0, 34]
23830	cmp	w22, w1
23831	bne	.L3744
23832	ldrb	w1, [x0]
23833	tbz	x1, 3, .L3744
23834	ldr	w2, [x0, 38]
23835	and	w1, w1, -9
23836	ldr	x25, [x0, 6]
23837	mov	w3, 1
23838	strb	w1, [x0]
23839.L3744:
23840	ldr	x1, [x29, 104]
23841	add	x0, x0, 64
23842	cmp	x0, x1
23843	bne	.L3745
23844	cbz	w3, .L3746
23845	str	w2, [x29, 156]
23846.L3746:
23847	adrp	x28, .LANCHOR68
23848	str	x28, [x29, 136]
23849	ldrb	w0, [x28, #:lo12:.LANCHOR68]
23850	cmp	w20, w0
23851	bcs	.L3772
23852	add	w20, w21, w20
23853	cbz	x25, .L3748
23854	cbz	w21, .L3749
23855	lsl	w2, w21, 9
23856	mov	x1, x25
23857	mov	x0, x26
23858	bl	ftl_memcpy
23859	ldr	x19, [x27, #:lo12:.LANCHOR12]
23860	add	x19, x19, 48
23861.L3749:
23862	ldr	x0, [x29, 136]
23863	ldrb	w2, [x0, #:lo12:.LANCHOR68]
23864	cmp	w20, w2
23865	bcc	.L3750
23866	ldr	x19, [x27, #:lo12:.LANCHOR12]
23867	add	x19, x19, 16
23868.L3772:
23869	mov	w25, 0
23870	b	.L3747
23871.L3750:
23872	ubfiz	x0, x20, 9, 9
23873	sub	w2, w2, w20
23874	add	x1, x25, x0
23875	lsl	w2, w2, 9
23876	add	x0, x26, x0
23877	bl	ftl_memcpy
23878	b	.L3772
23879.L3748:
23880	ldr	w0, [x29, 156]
23881	cmn	w0, #1
23882	beq	.L3751
23883	mov	w0, 1
23884	bl	buf_alloc
23885	ldr	w1, [x29, 156]
23886	mov	x28, x0
23887	stp	w22, w1, [x0, 36]
23888	mov	w1, 1
23889	bl	sblk_read_page
23890	ldr	x3, [x28, 24]
23891	ldr	w0, [x3, 4]
23892	ldr	w25, [x3, 12]
23893	cmp	w22, w0
23894	add	w25, w25, 1
23895	bne	.L3752
23896	ldr	w0, [x28, 52]
23897	cmn	w0, #1
23898	bne	.L3753
23899.L3752:
23900	adrp	x0, .LANCHOR31
23901	mov	w6, 1
23902	ldr	w1, [x28, 40]
23903	ldrb	w2, [x0, #:lo12:.LANCHOR31]
23904	mov	w0, 24
23905	sub	w0, w0, w2
23906	lsl	w6, w6, w2
23907	ldr	x2, [x29, 136]
23908	sub	w6, w6, #1
23909	lsl	w7, w6, w0
23910	ldrb	w4, [x2, #:lo12:.LANCHOR68]
23911	lsr	w0, w1, w0
23912	ldr	x2, [x28, 8]
23913	bic	w1, w1, w7
23914	and	w0, w0, w6
23915	bl	flash_read_page_en
23916	str	w0, [x28, 52]
23917.L3753:
23918	ldr	x0, [x28, 24]
23919	ldr	w0, [x0, 4]
23920	cmp	w22, w0
23921	bne	.L3754
23922	ldr	w0, [x28, 52]
23923	cmn	w0, #1
23924	bne	.L3755
23925.L3754:
23926	ldr	x1, [x27, #:lo12:.LANCHOR12]
23927	mov	w3, w22
23928	ldr	w4, [x28, 52]
23929	ldr	w2, [x29, 156]
23930	ldr	w0, [x1, 552]
23931	add	w0, w0, 1
23932	str	w0, [x1, 552]
23933	adrp	x0, .LC229
23934	add	x0, x0, :lo12:.LC229
23935	ldrb	w1, [x28, 1]
23936	bl	printf
23937	ldr	x1, [x28, 24]
23938	mov	w3, 4
23939	adrp	x0, .LC188
23940	mov	w2, w3
23941	add	x0, x0, :lo12:.LC188
23942	bl	rknand_print_hex
23943.L3755:
23944	ldr	x0, [x28, 24]
23945	ldr	w0, [x0, 4]
23946	cmp	w22, w0
23947	bne	.L3756
23948	ldr	w0, [x28, 52]
23949	cmn	w0, #1
23950	bne	.L3757
23951.L3756:
23952	adrp	x1, .LANCHOR235
23953	adrp	x0, .LC0
23954	mov	w2, 694
23955	add	x1, x1, :lo12:.LANCHOR235
23956	add	x0, x0, :lo12:.LC0
23957	bl	printf
23958.L3757:
23959	cbz	w21, .L3758
23960	ldr	w0, [x29, 156]
23961	lsl	w2, w21, 9
23962	cmn	w0, #1
23963	beq	.L3759
23964	ldr	x1, [x28, 8]
23965	mov	x0, x26
23966	bl	ftl_memcpy
23967.L3760:
23968	ldr	x19, [x27, #:lo12:.LANCHOR12]
23969	add	x19, x19, 48
23970.L3758:
23971	ldr	x0, [x29, 136]
23972	ldrb	w2, [x0, #:lo12:.LANCHOR68]
23973	cmp	w20, w2
23974	bcc	.L3761
23975	bls	.L3762
23976	ldr	x19, [x27, #:lo12:.LANCHOR12]
23977	add	x19, x19, 16
23978.L3762:
23979	cbz	x28, .L3747
23980	ldrb	w0, [x28, 2]
23981	mov	x1, x28
23982	and	w0, w0, -9
23983	strb	w0, [x28, 2]
23984	adrp	x0, .LANCHOR62
23985	add	x0, x0, :lo12:.LANCHOR62
23986	bl	buf_remove_buf
23987	mov	x0, x28
23988	bl	zbuf_free
23989.L3747:
23990	ldrh	w0, [x19, 6]
23991	cbnz	w0, .L3764
23992	bl	ftl_flush
23993	mov	x0, x19
23994	bl	ftl_alloc_new_data_sblk
23995.L3764:
23996	mov	x0, x19
23997	bl	ftl_get_new_free_page
23998	mov	w10, w0
23999	ldr	x0, [x29, 120]
24000	mov	x1, x23
24001	adrp	x20, .LANCHOR184
24002	lsl	x8, x0, 6
24003	add	x7, x24, x8
24004	ldr	w0, [x7, 32]
24005	stp	w0, w22, [x23]
24006	str	w25, [x23, 12]
24007	ldr	w0, [x29, 156]
24008	str	w0, [x23, 8]
24009	ldr	x0, [x29, 136]
24010	str	wzr, [x1, 16]!
24011	ldrb	w2, [x0, #:lo12:.LANCHOR68]
24012	mov	w0, 2
24013	sub	w2, w2, #2
24014	lsl	w2, w2, 7
24015	add	x2, x26, x2, sxtw 2
24016	bl	ftl_debug_info_fill
24017	ldr	w0, [x29, 156]
24018	mov	w1, 10
24019	stp	w10, w0, [x7, 40]
24020	mov	w0, -1
24021	strb	w0, [x24, x8]
24022	ldrb	w0, [x7, 2]
24023	orr	w0, w0, w1
24024	ldrh	w1, [x19, 12]
24025	strb	w0, [x7, 2]
24026	ldrh	w0, [x19, 10]
24027	add	w0, w0, w1
24028	ldr	x1, [x29, 128]
24029	sub	w0, w0, #1
24030	strh	w0, [x7, 48]
24031	add	x0, x20, :lo12:.LANCHOR184
24032	bl	buf_add_tail
24033	ldr	x0, [x29, 112]
24034	ldrb	w2, [x0, #:lo12:.LANCHOR183]
24035	add	w2, w2, 1
24036	and	w2, w2, 255
24037	strb	w2, [x0, #:lo12:.LANCHOR183]
24038	adrp	x0, .LANCHOR236
24039	cmp	w2, 2
24040	str	wzr, [x0, #:lo12:.LANCHOR236]
24041	ldrh	w0, [x19, 6]
24042	bhi	.L3765
24043	cmp	w0, 1
24044	bne	.L3735
24045.L3765:
24046	ldrb	w1, [x19, 5]
24047	cmp	w1, 0
24048	mov	w1, 0
24049	cset	w4, ne
24050	cmp	w0, 1
24051	ldrb	w0, [x20, #:lo12:.LANCHOR184]
24052	csinc	w4, w2, w4, eq
24053	mov	w3, w0
24054.L3769:
24055	cmp	w1, w4
24056	bne	.L3770
24057	strb	w3, [x20, #:lo12:.LANCHOR184]
24058	and	w1, w1, 255
24059	ldr	x3, [x29, 112]
24060	sub	w2, w2, w1
24061	ubfiz	x0, x0, 6, 8
24062	add	x0, x24, x0
24063	strb	w2, [x3, #:lo12:.LANCHOR183]
24064	bl	sblk_prog_page
24065	ldrh	w0, [x19, 6]
24066	cmp	w0, 1
24067	bne	.L3735
24068	bl	sblk_wait_write_queue_completed
24069	bl	ftl_write_completed
24070	mov	x0, x19
24071	bl	ftl_write_last_log_page
24072	mov	x0, x19
24073	bl	ftl_alloc_new_data_sblk
24074.L3735:
24075	adrp	x0, .LANCHOR66
24076	ldrb	w0, [x0, #:lo12:.LANCHOR66]
24077	cbnz	w0, .L3732
24078.L3734:
24079	bl	ftl_write_completed
24080	mov	w0, 0
24081	b	.L3731
24082.L3761:
24083	ldr	w0, [x29, 156]
24084	sub	w2, w2, w20
24085	lsl	w2, w2, 9
24086	cmn	w0, #1
24087	ubfiz	x0, x20, 7, 9
24088	beq	.L3763
24089	ldr	x1, [x28, 8]
24090	lsl	x0, x0, 2
24091	add	x1, x1, x0
24092	add	x0, x26, x0
24093	bl	ftl_memcpy
24094	b	.L3762
24095.L3763:
24096	mov	w1, 0
24097	add	x0, x26, x0, lsl 2
24098	bl	ftl_memset
24099	b	.L3762
24100.L3770:
24101	ubfiz	x3, x3, 6, 8
24102	add	w1, w1, 1
24103	ldrb	w3, [x24, x3]
24104	b	.L3769
24105.L3771:
24106	lsl	w2, w21, 9
24107	mov	x28, 0
24108	mov	w25, 0
24109.L3759:
24110	mov	w1, 0
24111	mov	x0, x26
24112	bl	ftl_memset
24113	b	.L3760
24114.L3751:
24115	cbnz	w21, .L3771
24116	mov	w25, 0
24117	mov	x28, 0
24118	b	.L3758
24119	.size	ftl_write_commit, .-ftl_write_commit
24120	.section	.text.zftl_write,"ax",@progbits
24121	.align	2
24122	.global	zftl_write
24123	.type	zftl_write, %function
24124zftl_write:
24125	stp	x29, x30, [sp, -112]!
24126	add	x29, sp, 0
24127	stp	x19, x20, [sp, 16]
24128	mov	w19, w0
24129	adrp	x0, .LANCHOR19
24130	stp	x21, x22, [sp, 32]
24131	stp	x25, x26, [sp, 64]
24132	mov	w20, w1
24133	ldr	w0, [x0, #:lo12:.LANCHOR19]
24134	mov	w21, w2
24135	stp	x23, x24, [sp, 48]
24136	mov	x25, x3
24137	stp	x27, x28, [sp, 80]
24138	tbz	x0, 12, .L3798
24139	ldr	w4, [x25]
24140	mov	w3, w2
24141	adrp	x0, .LC230
24142	mov	w2, w1
24143	add	x0, x0, :lo12:.LC230
24144	mov	w1, w19
24145	bl	printf
24146.L3798:
24147	cbnz	w19, .L3799
24148	adrp	x0, .LANCHOR73
24149	mov	w19, 24576
24150	ldr	w0, [x0, #:lo12:.LANCHOR73]
24151.L3800:
24152	cmp	w0, w20
24153	ccmp	w0, w21, 0, hi
24154	bcc	.L3814
24155	add	w1, w20, w21
24156	cmp	w0, w1
24157	bcc	.L3814
24158	adrp	x26, .LANCHOR68
24159	add	w19, w19, w20
24160	sub	w22, w21, #1
24161	adrp	x27, .LANCHOR66
24162	ldrb	w0, [x26, #:lo12:.LANCHOR68]
24163	add	w22, w22, w19
24164	adrp	x28, .LANCHOR57
24165	add	x27, x27, :lo12:.LANCHOR66
24166	add	x28, x28, :lo12:.LANCHOR57
24167	udiv	w24, w19, w0
24168	udiv	w22, w22, w0
24169	add	x0, x26, :lo12:.LANCHOR68
24170	str	x0, [x29, 104]
24171	mov	w20, w24
24172	sub	w23, w22, w24
24173	add	w23, w23, 1
24174.L3802:
24175	cbnz	w23, .L3811
24176	bl	ftl_write_commit
24177	bl	ftl_flush
24178	mov	w0, 0
24179.L3797:
24180	ldp	x19, x20, [sp, 16]
24181	ldp	x21, x22, [sp, 32]
24182	ldp	x23, x24, [sp, 48]
24183	ldp	x25, x26, [sp, 64]
24184	ldp	x27, x28, [sp, 80]
24185	ldp	x29, x30, [sp], 112
24186	ret
24187.L3799:
24188	cmp	w19, 3
24189	bhi	.L3814
24190	lsl	w19, w19, 13
24191	mov	w0, 8192
24192	b	.L3800
24193.L3811:
24194	ldrb	w0, [x27]
24195	cbz	w0, .L3803
24196	ldrb	w0, [x28]
24197	cmp	w0, 2
24198	bhi	.L3803
24199	bl	ftl_write_commit
24200.L3803:
24201	mov	w0, 0
24202	bl	buf_alloc
24203	mov	x26, x0
24204	cbnz	x0, .L3804
24205	bl	ftl_write_commit
24206	b	.L3802
24207.L3804:
24208	strb	wzr, [x0, 57]
24209	cmp	w20, w24
24210	ldr	x0, [x29, 104]
24211	ccmp	w20, w22, 4, ne
24212	ldrb	w0, [x0]
24213	strb	w0, [x26, 56]
24214	bne	.L3807
24215	cmp	w20, w24
24216	bne	.L3808
24217	udiv	w1, w19, w0
24218	msub	w1, w1, w0, w19
24219	and	w1, w1, 255
24220	strb	w1, [x26, 57]
24221	sub	w0, w0, w1
24222	and	w0, w0, 255
24223	cmp	w21, w0
24224	csel	w0, w21, w0, cc
24225.L3822:
24226	strb	w0, [x26, 56]
24227.L3807:
24228	ldr	x4, [x26, 8]
24229	mov	x1, x25
24230	ldrb	w0, [x26, 57]
24231	sub	w23, w23, #1
24232	ldrb	w2, [x26, 56]
24233	ubfiz	x0, x0, 9, 8
24234	lsl	w2, w2, 9
24235	add	x0, x4, x0
24236	bl	ftl_memcpy
24237	adrp	x0, .LANCHOR69
24238	ldr	x1, [x0, #:lo12:.LANCHOR69]
24239	ldr	w0, [x1, 8]
24240	str	w20, [x26, 36]
24241	add	w20, w20, 1
24242	add	w2, w0, 1
24243	str	w2, [x1, 8]
24244	str	w0, [x26, 32]
24245	mov	x0, x26
24246	bl	ftl_write_buf
24247	ldrb	w0, [x26, 56]
24248	ubfiz	x0, x0, 9, 8
24249	add	x25, x25, x0
24250	b	.L3802
24251.L3808:
24252	add	w1, w19, w21
24253	msub	w0, w0, w20, w1
24254	b	.L3822
24255.L3814:
24256	mov	w0, -1
24257	b	.L3797
24258	.size	zftl_write, .-zftl_write
24259	.section	.text.zftl_sys_write,"ax",@progbits
24260	.align	2
24261	.global	zftl_sys_write
24262	.type	zftl_sys_write, %function
24263zftl_sys_write:
24264	mov	x3, x2
24265	mov	w2, w1
24266	mov	w1, w0
24267	mov	w0, 2
24268	b	zftl_write
24269	.size	zftl_sys_write, .-zftl_sys_write
24270	.section	.text.StorageSysDataStore,"ax",@progbits
24271	.align	2
24272	.global	StorageSysDataStore
24273	.type	StorageSysDataStore, %function
24274StorageSysDataStore:
24275	mov	x3, x1
24276	mov	w2, 1
24277	mov	w1, w0
24278	mov	w0, 2
24279	b	zftl_write
24280	.size	StorageSysDataStore, .-StorageSysDataStore
24281	.section	.text.FlashBootVendorWrite,"ax",@progbits
24282	.align	2
24283	.global	FlashBootVendorWrite
24284	.type	FlashBootVendorWrite, %function
24285FlashBootVendorWrite:
24286	mov	x3, x2
24287	mov	w2, w1
24288	add	w1, w0, 512
24289	mov	w0, 2
24290	b	zftl_write
24291	.size	FlashBootVendorWrite, .-FlashBootVendorWrite
24292	.section	.text.ftl_write,"ax",@progbits
24293	.align	2
24294	.global	ftl_write
24295	.type	ftl_write, %function
24296ftl_write:
24297	stp	x29, x30, [sp, -48]!
24298	add	x29, sp, 0
24299	stp	x19, x20, [sp, 16]
24300	mov	w19, w2
24301	stp	x21, x22, [sp, 32]
24302	mov	x20, x3
24303	mov	w22, w1
24304	ands	w21, w0, 255
24305	bne	.L3827
24306	mov	w3, w2
24307	mov	w0, 0
24308	mov	x2, x20
24309	bl	idb_write_data
24310.L3827:
24311	mov	x3, x20
24312	mov	w2, w19
24313	mov	w1, w22
24314	mov	w0, w21
24315	ldp	x19, x20, [sp, 16]
24316	ldp	x21, x22, [sp, 32]
24317	ldp	x29, x30, [sp], 48
24318	b	zftl_write
24319	.size	ftl_write, .-ftl_write
24320	.section	.text.ftl_vendor_write,"ax",@progbits
24321	.align	2
24322	.global	ftl_vendor_write
24323	.type	ftl_vendor_write, %function
24324ftl_vendor_write:
24325	mov	x3, x2
24326	mov	w2, w1
24327	add	w1, w0, 512
24328	mov	w0, 2
24329	b	zftl_write
24330	.size	ftl_vendor_write, .-ftl_vendor_write
24331	.section	.text.zftl_vendor_write,"ax",@progbits
24332	.align	2
24333	.global	zftl_vendor_write
24334	.type	zftl_vendor_write, %function
24335zftl_vendor_write:
24336	b	ftl_vendor_write
24337	.size	zftl_vendor_write, .-zftl_vendor_write
24338	.section	.text.gc_do_copy_back,"ax",@progbits
24339	.align	2
24340	.global	gc_do_copy_back
24341	.type	gc_do_copy_back, %function
24342gc_do_copy_back:
24343	stp	x29, x30, [sp, -224]!
24344	adrp	x0, .LANCHOR90
24345	add	x29, sp, 0
24346	ldrb	w0, [x0, #:lo12:.LANCHOR90]
24347	stp	x19, x20, [sp, 16]
24348	stp	x21, x22, [sp, 32]
24349	stp	x23, x24, [sp, 48]
24350	stp	x25, x26, [sp, 64]
24351	stp	x27, x28, [sp, 80]
24352	cbnz	w0, .L3832
24353	bl	buf_alloc
24354	mov	x19, x0
24355	cbz	x0, .L3831
24356	adrp	x21, .LANCHOR76
24357	add	x3, x21, :lo12:.LANCHOR76
24358	ldrh	w2, [x3, 26]
24359	mov	w0, w2
24360	bl	gc_get_src_ppa_from_index
24361	add	w2, w2, 1
24362	mov	w22, w0
24363	str	w22, [x19, 40]
24364	strh	w2, [x3, 26]
24365	mov	w1, 1
24366	mov	x0, x19
24367	bl	sblk_read_page
24368	ldr	w0, [x19, 52]
24369	cmp	w0, 512
24370	ccmn	w0, #1, 4, ne
24371	bne	.L3834
24372	adrp	x1, .LANCHOR237
24373	adrp	x0, .LC0
24374	mov	w2, 1032
24375	add	x1, x1, :lo12:.LANCHOR237
24376	add	x0, x0, :lo12:.LC0
24377	bl	printf
24378.L3834:
24379	ldr	x0, [x19, 24]
24380	ldr	w20, [x0, 4]
24381	mov	w0, w20
24382	bl	lpa_hash_get_ppa
24383	str	w0, [x29, 176]
24384	cmn	w0, #1
24385	bne	.L3835
24386	mov	w2, 0
24387	add	x1, x29, 176
24388	mov	w0, w20
24389	bl	pm_log2phys
24390.L3835:
24391	ldr	w23, [x29, 176]
24392	cmp	w22, w23
24393	bne	.L3836
24394	adrp	x0, .LANCHOR55
24395	add	x0, x0, :lo12:.LANCHOR55
24396	add	x1, x0, 2
24397	add	x0, x0, 1026
24398.L3839:
24399	ldr	w2, [x1, 34]
24400	cmp	w20, w2
24401	bne	.L3837
24402	ldrb	w2, [x1]
24403	tbz	x2, 1, .L3837
24404	mov	x0, x19
24405	bl	zbuf_free
24406	adrp	x0, .LANCHOR19
24407	ldr	w0, [x0, #:lo12:.LANCHOR19]
24408	tbz	x0, 8, .L3831
24409	add	x21, x21, :lo12:.LANCHOR76
24410	adrp	x0, .LC231
24411	mov	w2, w22
24412	mov	w1, w20
24413	add	x0, x0, :lo12:.LC231
24414	ldrh	w3, [x21, 26]
24415	bl	printf
24416.L3831:
24417	ldp	x19, x20, [sp, 16]
24418	ldp	x21, x22, [sp, 32]
24419	ldp	x23, x24, [sp, 48]
24420	ldp	x25, x26, [sp, 64]
24421	ldp	x27, x28, [sp, 80]
24422	ldp	x29, x30, [sp], 224
24423	ret
24424.L3837:
24425	add	x1, x1, 64
24426	cmp	x1, x0
24427	bne	.L3839
24428	adrp	x0, .LANCHOR68
24429	strb	wzr, [x19, 57]
24430	str	w20, [x19, 36]
24431	ldrb	w0, [x0, #:lo12:.LANCHOR68]
24432	strb	w0, [x19, 56]
24433	ldr	x0, [x19, 24]
24434	ldr	w1, [x0]
24435	str	w1, [x19, 32]
24436	str	wzr, [x0, 16]
24437	adrp	x0, .LANCHOR19
24438	ldr	w0, [x0, #:lo12:.LANCHOR19]
24439	tbz	x0, 8, .L3840
24440	mov	w0, w20
24441	bl	lpa_hash_get_ppa
24442	add	x1, x21, :lo12:.LANCHOR76
24443	mov	w3, w0
24444	mov	w4, w22
24445	adrp	x0, .LC232
24446	mov	w2, w23
24447	add	x0, x0, :lo12:.LC232
24448	ldrh	w5, [x1, 26]
24449	mov	w1, w20
24450	bl	printf
24451.L3840:
24452	mov	x0, x19
24453	bl	ftl_gc_write_buf
24454	bl	ftl_write_commit
24455	add	x21, x21, :lo12:.LANCHOR76
24456	adrp	x0, .LANCHOR69
24457	ldr	x1, [x0, #:lo12:.LANCHOR69]
24458	ldr	w0, [x1, 60]
24459	add	w0, w0, 1
24460	str	w0, [x1, 60]
24461	ldrh	w0, [x21, 28]
24462	add	w0, w0, 1
24463	strh	w0, [x21, 28]
24464	b	.L3831
24465.L3836:
24466	adrp	x0, .LANCHOR19
24467	ldr	w0, [x0, #:lo12:.LANCHOR19]
24468	tbz	x0, 8, .L3841
24469	add	x21, x21, :lo12:.LANCHOR76
24470	mov	w0, w20
24471	bl	lpa_hash_get_ppa
24472	mov	w3, w0
24473	mov	w4, w22
24474	adrp	x0, .LC232
24475	ldrh	w5, [x21, 26]
24476	mov	w2, w23
24477	mov	w1, w20
24478	add	x0, x0, :lo12:.LC232
24479	bl	printf
24480.L3841:
24481	mov	x0, x19
24482	bl	zbuf_free
24483	b	.L3831
24484.L3832:
24485	adrp	x2, .LANCHOR12
24486	adrp	x1, .LANCHOR85
24487	stp	x1, x2, [x29, 136]
24488	ldr	x26, [x2, #:lo12:.LANCHOR12]
24489	ldrb	w3, [x1, #:lo12:.LANCHOR85]
24490	add	x26, x26, 80
24491	ldrb	w0, [x26, 9]
24492	and	w20, w0, 65535
24493	cmp	w3, w20
24494	bhi	.L3896
24495	cmp	w20, 2
24496	mov	w21, 2
24497	csel	w21, w20, w21, ls
24498	and	w21, w21, 65535
24499.L3842:
24500	adrp	x1, .LANCHOR84
24501	str	x1, [x29, 120]
24502	ldrb	w19, [x1, #:lo12:.LANCHOR84]
24503	cmp	w19, 3
24504	bne	.L3843
24505	adrp	x1, .LANCHOR35
24506	ldrb	w1, [x1, #:lo12:.LANCHOR35]
24507	cbz	w1, .L3844
24508	adrp	x1, .LANCHOR76
24509	add	x1, x1, :lo12:.LANCHOR76
24510	ldrh	w22, [x1, 2106]
24511	adrp	x1, .LANCHOR130
24512	ldrb	w1, [x1, #:lo12:.LANCHOR130]
24513	sdiv	w2, w22, w0
24514	and	w25, w2, 65535
24515	cbz	w1, .L3845
24516	adrp	x1, .LANCHOR238
24517	add	x1, x1, :lo12:.LANCHOR238
24518	ldrh	w1, [x1, w2, sxtw 1]
24519	cmp	w1, 0
24520	cset	w19, ne
24521.L3963:
24522	add	w19, w19, 1
24523.L3846:
24524	msub	w20, w20, w25, w22
24525	and	w20, w20, 65535
24526.L3847:
24527	adrp	x1, .LANCHOR91
24528	mul	w11, w19, w21
24529	adrp	x10, .LANCHOR238
24530	sxtw	x13, w25
24531	ldrh	w5, [x1, #:lo12:.LANCHOR91]
24532	adrp	x1, .LANCHOR224
24533	add	x10, x10, :lo12:.LANCHOR238
24534	mov	w2, 0
24535	mul	w0, w5, w0
24536	ldrb	w5, [x1, #:lo12:.LANCHOR224]
24537	sub	w5, w0, w5
24538	adrp	x0, .LANCHOR130
24539	ldrb	w12, [x0, #:lo12:.LANCHOR130]
24540	adrp	x0, .LANCHOR161
24541	ldr	x8, [x0, #:lo12:.LANCHOR161]
24542	adrp	x0, .LANCHOR76
24543	add	x6, x0, :lo12:.LANCHOR76
24544	ldrh	w14, [x6, 24]
24545.L3851:
24546	cmp	w2, w11
24547	bge	.L3904
24548	add	w4, w22, w2
24549	cmp	w4, w5
24550	blt	.L3852
24551	cbz	w12, .L3904
24552	ldrh	w0, [x10, x13, lsl 1]
24553	cmp	w0, w25
24554	bcc	.L3853
24555.L3904:
24556	mov	w23, 1
24557	b	.L3849
24558.L3896:
24559	mov	w21, 1
24560	b	.L3842
24561.L3845:
24562	adrp	x1, .LANCHOR216
24563	ldrb	w1, [x1, #:lo12:.LANCHOR216]
24564	cbz	w1, .L3898
24565	sub	w1, w25, #62
24566	and	w1, w1, 65535
24567	cmp	w1, 2159
24568	bhi	.L3899
24569	udiv	w19, w25, w19
24570	add	w19, w19, w19, lsl 1
24571	sub	w19, w25, w19
24572	and	w19, w19, 65535
24573	cmp	w19, 0
24574	cset	w19, eq
24575	b	.L3963
24576.L3898:
24577	mov	w19, 1
24578	b	.L3846
24579.L3899:
24580	mov	w19, 2
24581	b	.L3846
24582.L3844:
24583	adrp	x1, .LANCHOR89
24584	ldrb	w1, [x1, #:lo12:.LANCHOR89]
24585	cbz	w1, .L3848
24586	adrp	x1, .LANCHOR76
24587	add	x1, x1, :lo12:.LANCHOR76
24588	add	w20, w0, w0, lsl 1
24589	ldrh	w22, [x1, 2106]
24590	adrp	x1, .LANCHOR36
24591	ldrb	w1, [x1, #:lo12:.LANCHOR36]
24592	sdiv	w20, w22, w20
24593	and	w25, w20, 65535
24594	mul	w20, w0, w20
24595	sub	w20, w20, w20, lsl 2
24596	add	w20, w20, w22
24597	sdiv	w20, w20, w19
24598	and	w20, w20, 65535
24599	cbz	w1, .L3847
24600	add	w3, w25, w25, lsl 1
24601	and	w25, w3, 65535
24602	b	.L3847
24603.L3848:
24604	adrp	x1, .LANCHOR76
24605	add	x1, x1, :lo12:.LANCHOR76
24606	adrp	x2, .LANCHOR239
24607	add	x2, x2, :lo12:.LANCHOR239
24608	ldrh	w4, [x1, 2106]
24609	sdiv	w1, w4, w0
24610	ldrh	w23, [x2, w1, sxtw 1]
24611	msub	w20, w20, w1, w4
24612	and	w20, w20, 65535
24613	lsr	w25, w23, 3
24614	and	w23, w23, 7
24615	cmp	w23, 1
24616	madd	w22, w25, w0, w20
24617	add	w22, w22, w22, lsl 1
24618	and	w22, w22, 65535
24619	beq	.L3847
24620.L3849:
24621	mul	w0, w19, w21
24622	stp	wzr, w0, [x29, 152]
24623	ubfiz	w0, w21, 1, 15
24624	str	w0, [x29, 132]
24625	msub	w0, w0, w19, w22
24626	and	w0, w0, 65535
24627	str	w0, [x29, 128]
24628	ldrh	w0, [x29, 128]
24629	str	x0, [x29, 112]
24630	adrp	x0, .LANCHOR55
24631	add	x0, x0, :lo12:.LANCHOR55
24632	str	x0, [x29, 104]
24633.L3854:
24634	ldp	w0, w1, [x29, 152]
24635	ldrh	w24, [x29, 152]
24636	and	w0, w0, 65535
24637	str	w0, [x29, 168]
24638	cmp	w0, w1
24639	blt	.L3878
24640	ldr	x0, [x29, 120]
24641	ldrb	w0, [x0, #:lo12:.LANCHOR84]
24642	cmp	w0, 3
24643	add	x0, x29, 176
24644	bne	.L3879
24645	adrp	x1, .LANCHOR35
24646	ldrb	w1, [x1, #:lo12:.LANCHOR35]
24647	cbz	w1, .L3880
24648	ldr	w2, [x29, 156]
24649	mov	w1, 0
24650	sub	w2, w2, #1
24651.L3881:
24652	cmp	w1, w2
24653	blt	.L3882
24654.L3967:
24655	ldr	x0, [x0, w2, sxtw 3]
24656	mov	w1, -1
24657	strb	w1, [x0]
24658	mul	w1, w21, w19
24659	ldr	x0, [x29, 176]
24660	bl	sblk_prog_page
24661	b	.L3883
24662.L3843:
24663	adrp	x1, .LANCHOR86
24664	ldrb	w1, [x1, #:lo12:.LANCHOR86]
24665	cbnz	w1, .L3850
24666	adrp	x1, .LANCHOR76
24667	add	x1, x1, :lo12:.LANCHOR76
24668	mov	w19, 1
24669	ldrh	w22, [x1, 2106]
24670	sdiv	w25, w22, w0
24671	msub	w20, w20, w25, w22
24672	and	w20, w20, 65535
24673	b	.L3847
24674.L3850:
24675	adrp	x1, .LANCHOR76
24676	add	x1, x1, :lo12:.LANCHOR76
24677	mov	w19, 2
24678	ldrh	w22, [x1, 2106]
24679	sdiv	w25, w22, w0
24680	msub	w20, w20, w25, w22
24681	and	w20, w20, 65535
24682	b	.L3847
24683.L3853:
24684	tbz	x2, 0, .L3904
24685.L3852:
24686	sbfiz	x4, x4, 2, 32
24687	ldr	w0, [x8, x4]
24688	cmn	w0, #1
24689	bne	.L3855
24690	ldrh	w7, [x6, 26]
24691	cmp	w7, w14
24692	bcs	.L3831
24693	cbz	w12, .L3856
24694	ldrh	w0, [x10, x13, lsl 1]
24695	cmp	w0, w25
24696	bcs	.L3856
24697	tbz	x2, 0, .L3856
24698	ubfiz	x0, x0, 2, 16
24699	ldr	w0, [x8, x0]
24700.L3964:
24701	str	w0, [x8, x4]
24702.L3855:
24703	add	w2, w2, 1
24704	and	w2, w2, 65535
24705	b	.L3851
24706.L3856:
24707	mov	w0, w7
24708	bl	gc_get_src_ppa_from_index
24709	add	w7, w7, 1
24710	strh	w7, [x6, 26]
24711	b	.L3964
24712.L3878:
24713	ldr	w0, [x29, 168]
24714	add	w0, w22, w0
24715	str	w0, [x29, 172]
24716	sxtw	x0, w0
24717	str	x0, [x29, 160]
24718	adrp	x0, .LANCHOR88
24719	ldr	x1, [x29, 160]
24720	ldr	x0, [x0, #:lo12:.LANCHOR88]
24721	ldrb	w0, [x0, x1]
24722	cmp	w0, 255
24723	bne	.L3858
24724	mov	w0, 0
24725	bl	buf_alloc
24726	mov	x27, x0
24727	cbnz	x0, .L3859
24728	bl	sblk_wait_write_queue_completed
24729	bl	ftl_write_completed
24730	bl	gc_write_completed
24731	bl	gc_free_temp_buf
24732	mov	w0, 0
24733	bl	buf_alloc
24734	mov	x27, x0
24735	cbz	x0, .L3831
24736.L3859:
24737	adrp	x0, .LANCHOR88
24738	ldr	x2, [x29, 160]
24739	ldrb	w1, [x27, 1]
24740	ldr	x0, [x0, #:lo12:.LANCHOR88]
24741	strb	w1, [x0, x2]
24742	adrp	x0, .LANCHOR76
24743	add	x1, x0, :lo12:.LANCHOR76
24744	strb	w23, [x27, 61]
24745	ldrb	w0, [x1, 7]
24746	add	w0, w0, 1
24747	strb	w0, [x1, 7]
24748	add	w0, w24, w22
24749	strh	w0, [x27, 48]
24750	adrp	x0, .LANCHOR91
24751	ldr	w1, [x29, 172]
24752	ldrh	w6, [x0, #:lo12:.LANCHOR91]
24753	adrp	x0, .LANCHOR224
24754	ldrb	w5, [x0, #:lo12:.LANCHOR224]
24755	ldrb	w0, [x26, 9]
24756	mul	w0, w0, w6
24757	sub	w0, w0, w5
24758	cmp	w1, w0
24759	blt	.L3860
24760	adrp	x1, .LANCHOR130
24761	ldrb	w1, [x1, #:lo12:.LANCHOR130]
24762	cbz	w1, .L3861
24763	adrp	x1, .LANCHOR238
24764	add	x1, x1, :lo12:.LANCHOR238
24765	ldrh	w1, [x1, w25, sxtw 1]
24766	cmp	w1, w25
24767	bcs	.L3861
24768	tbnz	x24, 0, .L3860
24769.L3861:
24770	adrp	x1, .LANCHOR160
24771	ldr	w3, [x29, 172]
24772	mov	w2, -1
24773	cmp	w5, 2
24774	ldr	x1, [x1, #:lo12:.LANCHOR160]
24775	str	w2, [x1, w3, sxtw 2]
24776	bne	.L3862
24777	cmp	w3, w0
24778	adrp	x28, .LANCHOR221
24779	bne	.L3863
24780	ldrh	w2, [x28, #:lo12:.LANCHOR221]
24781	ldr	x0, [x27, 8]
24782	bl	ftl_memcpy
24783	adrp	x0, .LANCHOR68
24784	mov	w1, 0
24785	ldrb	w2, [x0, #:lo12:.LANCHOR68]
24786	ldr	x0, [x27, 24]
24787	lsl	w2, w2, 1
24788	bl	ftl_memset
24789	ldr	x6, [x27, 24]
24790	mov	w0, 15555
24791	movk	w0, 0xf55f, lsl 16
24792	ldrh	w1, [x28, #:lo12:.LANCHOR221]
24793	str	w0, [x6]
24794	ldr	x0, [x27, 8]
24795	bl	js_hash
24796	str	w0, [x6, 4]
24797	ldr	x0, [x29, 144]
24798	ldr	x0, [x0, #:lo12:.LANCHOR12]
24799	ldr	w0, [x0, 132]
24800	stp	w0, wzr, [x6, 8]
24801.L3864:
24802	ldr	x0, [x27, 24]
24803	str	wzr, [x0, 16]
24804.L3858:
24805	adrp	x0, .LANCHOR88
24806	ldrsw	x2, [x29, 168]
24807	add	x4, x29, 176
24808	ldr	x1, [x0, #:lo12:.LANCHOR88]
24809	ldr	x0, [x29, 160]
24810	ldrb	w5, [x1, x0]
24811	adrp	x0, .LANCHOR55
24812	add	x6, x0, :lo12:.LANCHOR55
24813	mov	x7, x5
24814	ubfiz	x0, x5, 6, 8
24815	add	x0, x6, x0
24816	add	x6, x6, x5, lsl 6
24817	str	x0, [x4, x2, lsl 3]
24818	mov	w0, 2
24819	strh	w0, [x6, 50]
24820	ldr	x0, [x29, 120]
24821	strb	w23, [x6, 61]
24822	ldrb	w0, [x0, #:lo12:.LANCHOR84]
24823	cmp	w0, 3
24824	bne	.L3869
24825	adrp	x8, .LANCHOR35
24826	ldrb	w8, [x8, #:lo12:.LANCHOR35]
24827	cbz	w8, .L3870
24828	adrp	x0, .LANCHOR130
24829	and	w8, w24, 1
24830	add	w10, w8, w25
24831	ldrb	w0, [x0, #:lo12:.LANCHOR130]
24832	cbz	w0, .L3871
24833	adrp	x6, .LANCHOR238
24834	add	x6, x6, :lo12:.LANCHOR238
24835	ldrh	w6, [x6, w25, sxtw 1]
24836	cmp	w6, w25
24837	bcs	.L3871
24838	cmp	w8, 0
24839	csel	w10, w10, w6, eq
24840.L3871:
24841	adrp	x0, .LANCHOR55
24842	add	x6, x0, :lo12:.LANCHOR55
24843	add	x5, x6, x5, lsl 6
24844	udiv	w6, w24, w19
24845	add	w6, w6, w20
24846	add	x6, x26, x6, sxtw 1
24847	ldrh	w0, [x6, 16]
24848	adrp	x6, .LANCHOR117
24849	ldrh	w6, [x6, #:lo12:.LANCHOR117]
24850	madd	w0, w0, w6, w10
24851	orr	w0, w0, 50331648
24852	str	w0, [x5, 40]
24853.L3876:
24854	adrp	x0, .LANCHOR55
24855	sbfiz	x7, x7, 6, 32
24856	add	x0, x0, :lo12:.LANCHOR55
24857	add	x0, x0, x7
24858	ldrh	w5, [x0, 48]
24859	ldr	w6, [x0, 40]
24860	adrp	x0, .LANCHOR162
24861	ldr	x0, [x0, #:lo12:.LANCHOR162]
24862	str	w6, [x0, x5, lsl 2]
24863	b	.L3895
24864.L3863:
24865	ldr	x2, [x29, 136]
24866	ldrh	w0, [x28, #:lo12:.LANCHOR221]
24867	ldrb	w28, [x2, #:lo12:.LANCHOR85]
24868	mul	w28, w28, w6
24869	lsl	w28, w28, 2
24870	sub	w28, w28, w0
24871	and	x0, x0, 65532
24872	add	x1, x1, x0
24873	ldr	x0, [x27, 8]
24874	mov	w2, w28
24875	bl	ftl_memcpy
24876	adrp	x0, .LANCHOR68
24877	mov	w1, 0
24878	ldrb	w2, [x0, #:lo12:.LANCHOR68]
24879	ldr	x0, [x27, 24]
24880	lsl	w2, w2, 1
24881	bl	ftl_memset
24882	ldr	x6, [x27, 24]
24883	mov	w0, 15555
24884	movk	w0, 0xf55f, lsl 16
24885	mov	w1, w28
24886	str	w0, [x6]
24887	ldr	x0, [x27, 8]
24888	bl	js_hash
24889	str	w0, [x6, 4]
24890	ldr	x0, [x29, 144]
24891	ldr	x0, [x0, #:lo12:.LANCHOR12]
24892	ldr	w0, [x0, 132]
24893	str	w0, [x6, 8]
24894	mov	w0, 1
24895	str	w0, [x6, 12]
24896	b	.L3864
24897.L3862:
24898	ldr	x0, [x29, 136]
24899	ldrb	w2, [x0, #:lo12:.LANCHOR85]
24900	ldr	x0, [x27, 8]
24901	mul	w2, w2, w6
24902	lsl	w2, w2, 2
24903	bl	ftl_memcpy
24904	ldr	x1, [x29, 136]
24905	adrp	x0, .LANCHOR91
24906	ldrh	w0, [x0, #:lo12:.LANCHOR91]
24907	ldrb	w1, [x1, #:lo12:.LANCHOR85]
24908	mul	w0, w0, w1
24909	adrp	x1, .LANCHOR68
24910	ldrb	w1, [x1, #:lo12:.LANCHOR68]
24911	lsl	w2, w0, 2
24912	cmp	w1, w0, lsr 6
24913	bge	.L3865
24914	adrp	x1, .LANCHOR221
24915	ldrh	w1, [x1, #:lo12:.LANCHOR221]
24916	sub	w2, w1, w2
24917.L3865:
24918	adrp	x1, .LANCHOR161
24919	ldr	x5, [x27, 8]
24920	ldr	x1, [x1, #:lo12:.LANCHOR161]
24921	add	x0, x5, x0, sxtw 2
24922	bl	ftl_memcpy
24923	adrp	x0, .LANCHOR68
24924	mov	w1, 0
24925	ldrb	w2, [x0, #:lo12:.LANCHOR68]
24926	ldr	x0, [x27, 24]
24927	lsl	w2, w2, 1
24928	bl	ftl_memset
24929	ldr	x6, [x27, 24]
24930	mov	w0, 15555
24931	movk	w0, 0xf55f, lsl 16
24932	str	w0, [x6]
24933	adrp	x0, .LANCHOR91
24934	ldrh	w1, [x0, #:lo12:.LANCHOR91]
24935	ldr	x0, [x29, 136]
24936	ldrb	w0, [x0, #:lo12:.LANCHOR85]
24937	mul	w1, w1, w0
24938	ldr	x0, [x27, 8]
24939	lsl	w1, w1, 2
24940	bl	js_hash
24941	str	w0, [x6, 4]
24942	ldr	x0, [x29, 144]
24943	ldr	x0, [x0, #:lo12:.LANCHOR12]
24944	ldr	w0, [x0, 132]
24945	str	w0, [x6, 8]
24946	b	.L3864
24947.L3860:
24948	ldr	x0, [x29, 160]
24949	mov	w1, 1
24950	lsl	x28, x0, 2
24951	adrp	x0, .LANCHOR161
24952	ldr	x0, [x0, #:lo12:.LANCHOR161]
24953	ldr	w0, [x0, x28]
24954	str	w0, [x27, 40]
24955	mov	x0, x27
24956	bl	sblk_read_page
24957	ldr	w0, [x27, 52]
24958	cmp	w0, 512
24959	ccmn	w0, #1, 4, ne
24960	bne	.L3867
24961	adrp	x0, .LANCHOR80
24962	ldrh	w2, [x0, #:lo12:.LANCHOR80]
24963	adrp	x0, .LANCHOR31
24964	ldrb	w1, [x0, #:lo12:.LANCHOR31]
24965	mov	w0, 24
24966	sub	w0, w0, w1
24967	sub	w1, w0, w2
24968	mov	w0, 1
24969	lsl	w0, w0, w1
24970	ldr	w1, [x27, 40]
24971	sub	w0, w0, #1
24972	lsr	w1, w1, w2
24973	and	w0, w0, w1
24974	adrp	x1, .LANCHOR81
24975	ldrb	w2, [x1, #:lo12:.LANCHOR81]
24976	mov	x1, 0
24977	udiv	w0, w0, w2
24978	bl	ftl_sblk_dump
24979	ldr	w0, [x27, 52]
24980	cmp	w0, 512
24981	ccmn	w0, #1, 4, ne
24982	bne	.L3867
24983	ldr	x0, [x27, 24]
24984	mov	w1, -1
24985	str	w1, [x0, 4]
24986	ldr	w0, [x27, 52]
24987	cmp	w0, 512
24988	ccmp	w0, w1, 4, ne
24989	bne	.L3867
24990	adrp	x1, .LANCHOR237
24991	adrp	x0, .LC0
24992	mov	w2, 1223
24993	add	x1, x1, :lo12:.LANCHOR237
24994	add	x0, x0, :lo12:.LC0
24995	bl	printf
24996.L3867:
24997	ldr	x0, [x27, 24]
24998	adrp	x1, .LANCHOR219
24999	ldr	w1, [x1, #:lo12:.LANCHOR219]
25000	ldr	w2, [x0, 4]
25001	cmp	w2, w1
25002	bcc	.L3868
25003	mov	w1, -1
25004	str	w1, [x0, 4]
25005.L3868:
25006	adrp	x1, .LANCHOR160
25007	ldr	w2, [x0, 4]
25008	ldr	x1, [x1, #:lo12:.LANCHOR160]
25009	str	w2, [x1, x28]
25010	ldr	w1, [x27, 40]
25011	str	w1, [x0, 8]
25012	b	.L3864
25013.L3870:
25014	udiv	w0, w24, w0
25015	adrp	x7, .LANCHOR36
25016	ldrb	w7, [x7, #:lo12:.LANCHOR36]
25017	cbz	w7, .L3873
25018	add	w7, w0, w20
25019	adrp	x8, .LANCHOR117
25020	add	x7, x26, x7, sxtw 1
25021	add	w0, w0, w0, lsl 1
25022	ldrh	w8, [x8, #:lo12:.LANCHOR117]
25023	sub	w0, w24, w0
25024	ldrh	w7, [x7, 16]
25025	madd	w7, w7, w8, w25
25026	add	w0, w7, w0, uxth
25027.L3968:
25028	str	w0, [x6, 40]
25029	ldr	x0, [x29, 104]
25030	add	x5, x0, x5, lsl 6
25031	adrp	x0, .LANCHOR162
25032	ldr	x6, [x0, #:lo12:.LANCHOR162]
25033	mov	w0, 3
25034	ldrh	w7, [x5, 48]
25035	udiv	w0, w24, w0
25036	ldr	w5, [x5, 40]
25037	add	w0, w0, w0, lsl 1
25038	sub	w0, w24, w0
25039	and	w0, w0, 65535
25040	add	w0, w0, 1
25041	orr	w0, w5, w0, lsl 24
25042	str	w0, [x6, x7, lsl 2]
25043.L3895:
25044	adrp	x0, .LANCHOR130
25045	ldrb	w0, [x0, #:lo12:.LANCHOR130]
25046	cbz	w0, .L3877
25047	adrp	x0, .LANCHOR238
25048	add	x0, x0, :lo12:.LANCHOR238
25049	ldrh	w0, [x0, w25, sxtw 1]
25050	cmp	w0, w25
25051	bcs	.L3877
25052	tbz	x24, 0, .L3877
25053	ldr	x3, [x29, 160]
25054	mov	w0, -1
25055	strb	w0, [x1, x3]
25056	ldrh	w1, [x29, 128]
25057	ldr	x0, [x4, x2, lsl 3]
25058	ldr	x2, [x29, 112]
25059	strh	w1, [x0, 48]
25060	ldrb	w1, [x0, 1]
25061	adrp	x0, .LANCHOR88
25062	ldr	x0, [x0, #:lo12:.LANCHOR88]
25063	strb	w1, [x0, x2]
25064	adrp	x0, .LANCHOR161
25065	ldr	w2, [x29, 172]
25066	mov	w1, -1
25067	ldr	x0, [x0, #:lo12:.LANCHOR161]
25068	str	w1, [x0, w2, sxtw 2]
25069.L3877:
25070	ldr	w0, [x29, 152]
25071	add	w0, w0, 1
25072	str	w0, [x29, 152]
25073	b	.L3854
25074.L3873:
25075	add	w0, w0, w20
25076	adrp	x7, .LANCHOR117
25077	add	x0, x26, x0, sxtw 1
25078	ldrh	w7, [x7, #:lo12:.LANCHOR117]
25079	ldrh	w0, [x0, 16]
25080	madd	w0, w0, w7, w25
25081	b	.L3968
25082.L3869:
25083	cmp	w0, 2
25084	bne	.L3876
25085	adrp	x0, .LANCHOR86
25086	adrp	x5, .LANCHOR117
25087	ldrb	w0, [x0, #:lo12:.LANCHOR86]
25088	cbnz	w0, .L3875
25089	ldr	w0, [x29, 168]
25090	ldrh	w5, [x5, #:lo12:.LANCHOR117]
25091	add	w27, w20, w0
25092	add	x27, x26, x27, sxtw 1
25093	ldrh	w0, [x27, 16]
25094	madd	w0, w0, w5, w25
25095.L3965:
25096	orr	w0, w0, 33554432
25097	str	w0, [x6, 40]
25098	b	.L3876
25099.L3875:
25100	add	w0, w20, w24, lsr 1
25101	ldrh	w5, [x5, #:lo12:.LANCHOR117]
25102	add	x0, x26, x0, sxtw 1
25103	ldrh	w0, [x0, 16]
25104	madd	w0, w0, w5, w25
25105	and	w5, w24, 1
25106	add	w0, w0, w5
25107	b	.L3965
25108.L3882:
25109	ldr	x4, [x0, w1, sxtw 3]
25110	add	w1, w1, 1
25111	ldr	x5, [x0, w1, sxtw 3]
25112	and	w1, w1, 65535
25113	ldrb	w5, [x5, 1]
25114	strb	w5, [x4]
25115	b	.L3881
25116.L3880:
25117	adrp	x1, .LANCHOR89
25118	ldrb	w2, [x1, #:lo12:.LANCHOR89]
25119	ldr	x1, [x29, 176]
25120	cbz	w2, .L3884
25121.L3887:
25122	strb	wzr, [x1, 60]
25123	b	.L3886
25124.L3884:
25125	cmp	w23, 1
25126	bne	.L3885
25127	mov	w2, 9
25128.L3966:
25129	strb	w2, [x1, 60]
25130.L3886:
25131	mov	w2, w21
25132	add	x1, x0, 24
25133	bl	sblk_xlc_prog_pages
25134.L3883:
25135	adrp	x0, .LANCHOR89
25136	ldrb	w0, [x0, #:lo12:.LANCHOR89]
25137	cbz	w0, .L3892
25138	add	w21, w21, w21, lsl 1
25139	and	w21, w21, 65535
25140.L3893:
25141	adrp	x0, .LANCHOR69
25142	ldr	x1, [x0, #:lo12:.LANCHOR69]
25143	ldr	w0, [x1, 52]
25144	add	w0, w0, w21
25145	str	w0, [x1, 52]
25146	adrp	x0, .LANCHOR76
25147	add	x25, x0, :lo12:.LANCHOR76
25148	ldrh	w0, [x25, 2106]
25149	add	w21, w21, w0
25150	adrp	x0, .LANCHOR91
25151	and	w21, w21, 65535
25152	strh	w21, [x25, 2106]
25153	ldrh	w0, [x0, #:lo12:.LANCHOR91]
25154	ldrb	w1, [x26, 9]
25155	mul	w0, w0, w1
25156	cmp	w21, w0
25157	blt	.L3894
25158	ldr	x0, [x29, 144]
25159	ldr	x0, [x0, #:lo12:.LANCHOR12]
25160	strh	wzr, [x0, 86]
25161.L3894:
25162	bl	gc_write_completed
25163	b	.L3831
25164.L3885:
25165	cmp	w23, 2
25166	bne	.L3887
25167	mov	w2, 13
25168	b	.L3966
25169.L3879:
25170	adrp	x1, .LANCHOR86
25171	ldrb	w1, [x1, #:lo12:.LANCHOR86]
25172	cbz	w1, .L3905
25173	adrp	x1, .LANCHOR87
25174	ldrb	w1, [x1, #:lo12:.LANCHOR87]
25175	cbnz	w1, .L3889
25176.L3888:
25177	ldr	w2, [x29, 156]
25178	sub	w2, w2, #1
25179.L3890:
25180	cmp	w1, w2
25181	bge	.L3967
25182	ldr	x4, [x0, w1, sxtw 3]
25183	add	w1, w1, 1
25184	ldr	x5, [x0, w1, sxtw 3]
25185	and	w1, w1, 65535
25186	ldrb	w5, [x5, 1]
25187	strb	w5, [x4]
25188	b	.L3890
25189.L3905:
25190	mov	w1, 0
25191	b	.L3888
25192.L3889:
25193	mov	w1, w21
25194	bl	sblk_3d_mlc_prog_pages
25195	b	.L3883
25196.L3892:
25197	adrp	x0, .LANCHOR86
25198	ldrb	w0, [x0, #:lo12:.LANCHOR86]
25199	cbnz	w0, .L3906
25200	adrp	x0, .LANCHOR35
25201	ldrb	w0, [x0, #:lo12:.LANCHOR35]
25202	cbz	w0, .L3893
25203	adrp	x0, .LANCHOR130
25204	ldrh	w1, [x29, 156]
25205	ldrb	w0, [x0, #:lo12:.LANCHOR130]
25206	cbz	w0, .L3907
25207	adrp	x0, .LANCHOR238
25208	add	x0, x0, :lo12:.LANCHOR238
25209	ldrh	w0, [x0, w25, sxtw 1]
25210	cmp	w0, w25
25211	csel	w21, w21, w1, cc
25212	b	.L3893
25213.L3906:
25214	ldr	w21, [x29, 132]
25215	b	.L3893
25216.L3907:
25217	mov	w21, w1
25218	b	.L3893
25219	.size	gc_do_copy_back, .-gc_do_copy_back
25220	.section	.text.zftl_do_gc,"ax",@progbits
25221	.align	2
25222	.global	zftl_do_gc
25223	.type	zftl_do_gc, %function
25224zftl_do_gc:
25225	sub	sp, sp, #144
25226	adrp	x1, .LANCHOR113
25227	stp	x29, x30, [sp, 16]
25228	add	x29, sp, 16
25229	ldrh	w1, [x1, #:lo12:.LANCHOR113]
25230	stp	x21, x22, [sp, 48]
25231	adrp	x22, .LANCHOR109
25232	stp	x19, x20, [sp, 32]
25233	adrp	x20, .LANCHOR157
25234	stp	x23, x24, [sp, 64]
25235	adrp	x23, .LANCHOR12
25236	stp	x25, x26, [sp, 80]
25237	ldrh	w21, [x22, #:lo12:.LANCHOR109]
25238	ldrb	w2, [x20, #:lo12:.LANCHOR157]
25239	stp	x27, x28, [sp, 96]
25240	add	w21, w1, w21
25241	ldr	x26, [x23, #:lo12:.LANCHOR12]
25242	cmp	w2, 6
25243	bhi	.L4086
25244	mov	w25, w0
25245	and	w21, w21, 65535
25246	adrp	x0, .L3972
25247	add	x0, x0, :lo12:.L3972
25248	ldrh	w0, [x0,w2,uxtw #1]
25249	adr	x2, .Lrtx3972
25250	add	x0, x2, w0, sxth #2
25251	br	x0
25252.Lrtx3972:
25253	.section	.rodata.zftl_do_gc,"a",@progbits
25254	.align	0
25255	.align	2
25256.L3972:
25257	.2byte	(.L3971 - .Lrtx3972) / 4
25258	.2byte	(.L3973 - .Lrtx3972) / 4
25259	.2byte	(.L3974 - .Lrtx3972) / 4
25260	.2byte	(.L3975 - .Lrtx3972) / 4
25261	.2byte	(.L3976 - .Lrtx3972) / 4
25262	.2byte	(.L3977 - .Lrtx3972) / 4
25263	.2byte	(.L3978 - .Lrtx3972) / 4
25264	.section	.text.zftl_do_gc
25265.L3977:
25266	adrp	x19, .LANCHOR76
25267	add	x24, x19, :lo12:.LANCHOR76
25268	mov	w22, 0
25269.L3979:
25270	bl	gc_check_data_one_wl
25271	cbz	w0, .L4082
25272	ldr	x0, [x23, #:lo12:.LANCHOR12]
25273	add	x19, x19, :lo12:.LANCHOR76
25274	strh	wzr, [x19, 56]
25275	ldrh	w0, [x0, 80]
25276	bl	ftl_free_sblk
25277	adrp	x2, .LANCHOR69
25278	ldr	x1, [x23, #:lo12:.LANCHOR12]
25279	mov	w0, -1
25280	ldr	x2, [x2, #:lo12:.LANCHOR69]
25281	strh	w0, [x1, 80]
25282	strh	w0, [x2, 126]
25283	strh	w0, [x1, 130]
25284	ldr	x0, [x19, 8]
25285	bl	zbuf_free
25286	strb	wzr, [x20, #:lo12:.LANCHOR157]
25287	str	xzr, [x19, 8]
25288	b	.L4172
25289.L3971:
25290	adrp	x0, .LANCHOR111
25291	adrp	x27, .LANCHOR103
25292	ldrh	w3, [x26, 80]
25293	ldrh	w22, [x0, #:lo12:.LANCHOR111]
25294	adrp	x0, .LANCHOR105
25295	ldrh	w24, [x27, #:lo12:.LANCHOR103]
25296	ldrh	w2, [x0, #:lo12:.LANCHOR105]
25297	add	w22, w1, w22
25298	stp	x0, x27, [x29, 112]
25299	and	w22, w22, 65535
25300	add	w24, w24, w2
25301	mov	w2, 65535
25302	and	w24, w24, 65535
25303	cmp	w3, w2
25304	beq	.L3980
25305	cbnz	w25, .L3981
25306	adrp	x0, .LANCHOR92
25307	ldrh	w0, [x0, #:lo12:.LANCHOR92]
25308	cmp	w21, w0, lsl 1
25309	blt	.L3981
25310.L4086:
25311	mov	w19, 16
25312	b	.L3969
25313.L3981:
25314	adrp	x5, .LANCHOR102
25315	adrp	x0, .LANCHOR98
25316	add	x0, x0, :lo12:.LANCHOR98
25317	adrp	x25, .LANCHOR90
25318	ldrh	w1, [x5, #:lo12:.LANCHOR102]
25319	add	w1, w1, 1
25320	and	w1, w1, 65535
25321	strh	w1, [x5, #:lo12:.LANCHOR102]
25322	bl	_list_get_gc_head_node
25323	and	w3, w0, 65535
25324	mov	w1, 65535
25325	cmp	w3, w1
25326	beq	.L3982
25327	adrp	x4, .LANCHOR11
25328	ubfiz	x3, x3, 1, 16
25329	adrp	x1, .LANCHOR158
25330	mov	x19, x1
25331	ldr	x4, [x4, #:lo12:.LANCHOR11]
25332	ldr	w2, [x1, #:lo12:.LANCHOR158]
25333	add	w2, w2, 1
25334	str	w2, [x1, #:lo12:.LANCHOR158]
25335	ldrh	w3, [x4, x3]
25336	adrp	x4, .LANCHOR100
25337	ldrh	w4, [x4, #:lo12:.LANCHOR100]
25338	cmp	w4, w3
25339	bcs	.L3983
25340	adrp	x1, .LANCHOR8
25341	ldrh	w1, [x1, #:lo12:.LANCHOR8]
25342	cmp	w2, w1, lsr 4
25343	bls	.L3982
25344	adrp	x1, .LANCHOR106
25345	ldrh	w1, [x1, #:lo12:.LANCHOR106]
25346	cmp	w1, w3
25347	bls	.L3982
25348.L3983:
25349	ldrb	w2, [x25, #:lo12:.LANCHOR90]
25350	mov	w1, 0
25351	bl	gc_add_sblk
25352	cbz	w0, .L3984
25353	mov	w0, 1
25354	str	wzr, [x19, #:lo12:.LANCHOR158]
25355	strb	w0, [x20, #:lo12:.LANCHOR157]
25356	b	.L4086
25357.L3982:
25358	strh	wzr, [x5, #:lo12:.LANCHOR102]
25359.L3984:
25360	cmp	w22, 15
25361	bls	.L4088
25362	adrp	x0, .LANCHOR97
25363	ldrh	w1, [x0, #:lo12:.LANCHOR97]
25364	adrp	x0, .LANCHOR107
25365	ldrh	w0, [x0, #:lo12:.LANCHOR107]
25366	cmp	w1, w0
25367	bhi	.L4088
25368	cmp	w24, 0
25369	cset	w19, eq
25370	add	w19, w19, 1
25371.L3985:
25372	adrp	x0, .LANCHOR19
25373	ldr	w0, [x0, #:lo12:.LANCHOR19]
25374	tbz	x0, 8, .L3986
25375	ldr	x0, [x23, #:lo12:.LANCHOR12]
25376	mov	w4, w22
25377	ldrb	w2, [x25, #:lo12:.LANCHOR90]
25378	mov	w3, w21
25379	mov	w1, 2807
25380	ldrh	w7, [x0, 122]
25381	ldrh	w6, [x0, 120]
25382	ldrh	w5, [x0, 124]
25383	ldrh	w0, [x26, 80]
25384	str	w0, [sp]
25385	adrp	x0, .LC233
25386	add	x0, x0, :lo12:.LC233
25387	bl	printf
25388.L3986:
25389	ldrb	w0, [x25, #:lo12:.LANCHOR90]
25390	mov	w2, 1
25391	mov	w1, w19
25392	bl	gc_search_src_blk
25393	cmp	w0, 0
25394	ble	.L3987
25395.L3988:
25396	mov	w0, 1
25397.L4174:
25398	strb	w0, [x20, #:lo12:.LANCHOR157]
25399	b	.L4086
25400.L4088:
25401	mov	w19, 2
25402	b	.L3985
25403.L3987:
25404	ldrb	w0, [x25, #:lo12:.LANCHOR90]
25405	mov	w2, 1
25406	mov	w1, 3
25407	bl	gc_search_src_blk
25408	cmp	w0, 0
25409	bgt	.L3988
25410	b	.L4086
25411.L3980:
25412	cmp	w25, 1
25413	bne	.L3990
25414	adrp	x0, .LANCHOR69
25415	ldr	x0, [x0, #:lo12:.LANCHOR69]
25416	ldrh	w0, [x0, 150]
25417	cbz	w0, .L3991
25418	cmp	w1, 8
25419	bls	.L3991
25420	bl	gc_ink_check_sblk
25421.L3991:
25422	bl	gc_scan_static_data
25423	adrp	x26, .LANCHOR90
25424	ldr	x0, [x23, #:lo12:.LANCHOR12]
25425	ldrh	w0, [x0, 122]
25426	cbz	w0, .L3992
25427.L3993:
25428	mov	w0, 1
25429	strb	w0, [x26, #:lo12:.LANCHOR90]
25430	b	.L4174
25431.L3992:
25432	bl	gc_static_wearleveling
25433	mov	w19, w0
25434	cbnz	w0, .L3993
25435	adrp	x27, .LANCHOR159
25436	cbz	w22, .L3994
25437	cmp	w21, w24
25438	adrp	x1, .LANCHOR104
25439	bcs	.L3995
25440	ldrh	w0, [x1, #:lo12:.LANCHOR104]
25441	cmp	w0, w21
25442	bhi	.L3996
25443.L3995:
25444	ldrh	w1, [x1, #:lo12:.LANCHOR104]
25445	add	w0, w21, w24
25446	cmp	w0, w1
25447	blt	.L3996
25448	adrp	x0, .LANCHOR97
25449	ldrh	w1, [x0, #:lo12:.LANCHOR97]
25450	adrp	x0, .LANCHOR107
25451	ldrh	w0, [x0, #:lo12:.LANCHOR107]
25452	cmp	w1, w0
25453	bcc	.L3994
25454.L3996:
25455	mov	w0, 1
25456	mov	w1, 16
25457	strb	w0, [x26, #:lo12:.LANCHOR90]
25458	adrp	x0, .LANCHOR101
25459	add	x0, x0, :lo12:.LANCHOR101
25460	bl	_list_get_gc_head_node
25461	and	w1, w0, 65535
25462	mov	w2, 65535
25463	adrp	x28, .LANCHOR158
25464	cmp	w1, w2
25465	beq	.L3997
25466	adrp	x2, .LANCHOR11
25467	ubfiz	x1, x1, 1, 16
25468	ldr	x2, [x2, #:lo12:.LANCHOR11]
25469	ldrh	w2, [x2, x1]
25470	ldrh	w1, [x27, #:lo12:.LANCHOR159]
25471	cmp	w2, w1
25472	bcs	.L3997
25473	cmp	w21, 2
25474	bls	.L3997
25475	strb	wzr, [x26, #:lo12:.LANCHOR90]
25476	mov	w2, 0
25477	str	wzr, [x28, #:lo12:.LANCHOR158]
25478	mov	w1, 1
25479	bl	gc_add_sblk
25480	cbnz	w0, .L3988
25481.L3997:
25482	mov	w1, 0
25483	adrp	x0, .LANCHOR96
25484	add	x0, x0, :lo12:.LANCHOR96
25485	bl	_list_get_gc_head_node
25486	and	w1, w0, 65535
25487	mov	w2, 65535
25488	cmp	w1, w2
25489	beq	.L3998
25490	adrp	x2, .LANCHOR11
25491	ubfiz	x1, x1, 1, 16
25492	ldr	x2, [x2, #:lo12:.LANCHOR11]
25493	ldrh	w2, [x2, x1]
25494	ldrh	w1, [x27, #:lo12:.LANCHOR159]
25495	cmp	w2, w1
25496	bcs	.L3998
25497	cmp	w21, 2
25498	bls	.L3998
25499	strb	wzr, [x26, #:lo12:.LANCHOR90]
25500	mov	w2, 0
25501	str	wzr, [x28, #:lo12:.LANCHOR158]
25502	mov	w1, 1
25503	bl	gc_add_sblk
25504	cbnz	w0, .L3988
25505.L3998:
25506	ldrh	w0, [x27, #:lo12:.LANCHOR159]
25507	adrp	x1, .LANCHOR100
25508	add	w0, w0, 1
25509	ldrh	w5, [x1, #:lo12:.LANCHOR100]
25510	and	w0, w0, 65535
25511	strh	w0, [x27, #:lo12:.LANCHOR159]
25512	cmp	w0, w5, lsr 5
25513	bls	.L3999
25514	mov	w0, 4
25515	strh	w0, [x27, #:lo12:.LANCHOR159]
25516.L3999:
25517	adrp	x1, .LANCHOR93
25518	ldr	w0, [x28, #:lo12:.LANCHOR158]
25519	strh	wzr, [x1, #:lo12:.LANCHOR93]
25520	adrp	x1, .LANCHOR94
25521	add	w0, w0, 1
25522	str	w0, [x28, #:lo12:.LANCHOR158]
25523	strh	wzr, [x1, #:lo12:.LANCHOR94]
25524	adrp	x1, .LANCHOR95
25525	strh	wzr, [x1, #:lo12:.LANCHOR95]
25526	adrp	x1, .LANCHOR8
25527	ldrh	w1, [x1, #:lo12:.LANCHOR8]
25528	cmp	w0, w1, lsr 5
25529	adrp	x0, .LANCHOR97
25530	bls	.L4000
25531	ldrh	w1, [x0, #:lo12:.LANCHOR97]
25532	cmp	w1, w22
25533	bls	.L4000
25534	mov	w1, 0
25535	adrp	x0, .LANCHOR98
25536	add	x0, x0, :lo12:.LANCHOR98
25537	bl	_list_get_gc_head_node
25538	and	w0, w0, 65535
25539	mov	w1, 65535
25540	cmp	w0, w1
25541	bne	.L4001
25542.L4162:
25543	mov	w19, 16
25544	b	.L4002
25545.L4001:
25546	adrp	x1, .LANCHOR11
25547	ubfiz	x0, x0, 1, 16
25548	ldr	x1, [x1, #:lo12:.LANCHOR11]
25549	ldrh	w1, [x1, x0]
25550	adrp	x0, .LANCHOR85
25551	ldrb	w0, [x0, #:lo12:.LANCHOR85]
25552	mul	w0, w0, w5
25553	cmp	w1, w0
25554	bgt	.L4162
25555	str	wzr, [x28, #:lo12:.LANCHOR158]
25556	mov	w2, 4
25557.L4168:
25558	mov	w1, 2
25559.L4161:
25560	ldrb	w0, [x26, #:lo12:.LANCHOR90]
25561	bl	gc_search_src_blk
25562	and	w0, w0, 65535
25563	cbz	w0, .L4162
25564	b	.L3988
25565.L4000:
25566	ldrh	w1, [x0, #:lo12:.LANCHOR97]
25567	adrp	x0, .LANCHOR107
25568	ldrh	w0, [x0, #:lo12:.LANCHOR107]
25569	cmp	w1, w0
25570	bcc	.L4005
25571	mov	w2, 1
25572	b	.L4168
25573.L4005:
25574	ldr	x0, [x29, 120]
25575	ldrh	w0, [x0, #:lo12:.LANCHOR103]
25576	cbnz	w0, .L4006
25577	ldr	x0, [x29, 112]
25578	ldrh	w0, [x0, #:lo12:.LANCHOR105]
25579	cmp	w0, 8
25580	bls	.L4007
25581.L4006:
25582	mov	w2, 4
25583	mov	w1, 1
25584	b	.L4161
25585.L4007:
25586	adrp	x0, .LANCHOR76+2110
25587	ldrh	w0, [x0, #:lo12:.LANCHOR76+2110]
25588	cbnz	w0, .L4162
25589.L4002:
25590	ldr	x0, [x23, #:lo12:.LANCHOR12]
25591	adrp	x28, .LANCHOR90
25592	mov	w1, 1
25593	mov	x23, x28
25594	strb	w1, [x28, #:lo12:.LANCHOR90]
25595	ldrh	w0, [x0, 124]
25596	cbz	w0, .L4008
25597	strb	wzr, [x28, #:lo12:.LANCHOR90]
25598	strb	w1, [x20, #:lo12:.LANCHOR157]
25599.L3969:
25600	mov	w0, w19
25601	ldp	x19, x20, [sp, 32]
25602	ldp	x21, x22, [sp, 48]
25603	ldp	x23, x24, [sp, 64]
25604	ldp	x25, x26, [sp, 80]
25605	ldp	x27, x28, [sp, 96]
25606	ldp	x29, x30, [sp, 16]
25607	add	sp, sp, 144
25608	ret
25609.L3994:
25610	adrp	x0, .LANCHOR100
25611	ldrh	w1, [x0, #:lo12:.LANCHOR100]
25612	ldrh	w0, [x27, #:lo12:.LANCHOR159]
25613	cmp	w0, w1, lsr 5
25614	bcc	.L4162
25615	mov	w0, 4
25616	strh	w0, [x27, #:lo12:.LANCHOR159]
25617	b	.L4162
25618.L3990:
25619	adrp	x0, .LANCHOR92
25620	ldrh	w0, [x0, #:lo12:.LANCHOR92]
25621	cmp	w0, w21
25622	bcs	.L4162
25623	ldrh	w0, [x26, 124]
25624	cbz	w0, .L4086
25625	b	.L4162
25626.L4008:
25627	adrp	x0, .LANCHOR92
25628	mov	x26, x0
25629	ldrh	w2, [x0, #:lo12:.LANCHOR92]
25630	cmp	w21, w2
25631	bcs	.L4009
25632	cbz	w22, .L4010
25633	cmp	w22, 16
25634	bls	.L4011
25635	adrp	x0, .LANCHOR97
25636	ldrh	w2, [x0, #:lo12:.LANCHOR97]
25637	adrp	x0, .LANCHOR107
25638	ldrh	w0, [x0, #:lo12:.LANCHOR107]
25639	cmp	w2, w0
25640	bhi	.L4011
25641	mov	w2, 4
25642	mov	w0, w1
25643	bl	gc_search_src_blk
25644	tst	w0, 65535
25645	bne	.L4012
25646.L4169:
25647	mov	w2, 4
25648	mov	w1, 3
25649	ldrb	w0, [x28, #:lo12:.LANCHOR90]
25650	b	.L4164
25651.L4012:
25652	mov	w1, 0
25653	adrp	x0, .LANCHOR98
25654	add	x0, x0, :lo12:.LANCHOR98
25655	bl	_list_get_gc_head_node
25656	and	w3, w0, 65535
25657	mov	w1, 65535
25658	cmp	w3, w1
25659	beq	.L4015
25660	adrp	x4, .LANCHOR11
25661	ubfiz	x3, x3, 1, 16
25662	adrp	x1, .LANCHOR158
25663	mov	x21, x1
25664	ldr	x4, [x4, #:lo12:.LANCHOR11]
25665	ldr	w2, [x1, #:lo12:.LANCHOR158]
25666	add	w2, w2, 1
25667	str	w2, [x1, #:lo12:.LANCHOR158]
25668	ldrh	w3, [x4, x3]
25669	adrp	x4, .LANCHOR100
25670	ldrh	w4, [x4, #:lo12:.LANCHOR100]
25671	cmp	w4, w3
25672	bcs	.L4016
25673	adrp	x1, .LANCHOR8
25674	ldrh	w1, [x1, #:lo12:.LANCHOR8]
25675	cmp	w2, w1, lsr 4
25676	bls	.L4015
25677	adrp	x1, .LANCHOR106
25678	ldrh	w1, [x1, #:lo12:.LANCHOR106]
25679	cmp	w1, w3
25680	bls	.L4015
25681.L4016:
25682	ldrb	w2, [x23, #:lo12:.LANCHOR90]
25683	mov	w1, 0
25684	bl	gc_add_sblk
25685	str	wzr, [x21, #:lo12:.LANCHOR158]
25686	adrp	x0, .LANCHOR128
25687	mov	w1, 1
25688	str	w1, [x0, #:lo12:.LANCHOR128]
25689.L4015:
25690	mov	w0, 1
25691	strb	w0, [x20, #:lo12:.LANCHOR157]
25692	b	.L3969
25693.L4011:
25694	mov	w2, 1
25695	mov	w1, 2
25696	mov	w0, w2
25697	bl	gc_search_src_blk
25698	tst	w0, 65535
25699	bne	.L4015
25700	ldrb	w0, [x23, #:lo12:.LANCHOR90]
25701	mov	w2, 4
25702	mov	w1, 3
25703.L4164:
25704	bl	gc_search_src_blk
25705	and	w0, w0, 65535
25706.L4013:
25707	cbnz	w0, .L4015
25708	b	.L3969
25709.L4010:
25710	strb	wzr, [x28, #:lo12:.LANCHOR90]
25711	cmp	w21, 16
25712	bls	.L4018
25713	mov	w2, 4
25714	mov	w1, 3
25715	mov	w0, 0
25716	b	.L4164
25717.L4018:
25718	mov	w2, w1
25719	mov	w0, 0
25720	bl	gc_search_src_blk
25721	tst	w0, 65535
25722	bne	.L4015
25723	b	.L4169
25724.L4009:
25725	cmp	w25, 1
25726	bne	.L3969
25727	cmp	w21, w2, lsl 1
25728	bge	.L4019
25729	cmp	w24, w22, lsr 1
25730	bcs	.L4020
25731	adrp	x1, .LANCHOR97
25732	ldrh	w2, [x1, #:lo12:.LANCHOR97]
25733	adrp	x1, .LANCHOR107
25734	ldrh	w1, [x1, #:lo12:.LANCHOR107]
25735	cmp	w2, w1
25736	bcs	.L4020
25737	adrp	x1, .LANCHOR104
25738	ldrh	w1, [x1, #:lo12:.LANCHOR104]
25739	lsr	w1, w1, 2
25740	strh	w1, [x0, #:lo12:.LANCHOR92]
25741	b	.L3969
25742.L4020:
25743	mov	w1, 8
25744	adrp	x25, .LANCHOR101
25745	add	x0, x25, :lo12:.LANCHOR101
25746	bl	_list_get_gc_head_node
25747	and	w1, w0, 65535
25748	mov	w2, 65535
25749	cmp	w1, w2
25750	beq	.L4021
25751	adrp	x2, .LANCHOR11
25752	ubfiz	x1, x1, 1, 16
25753	ldr	x2, [x2, #:lo12:.LANCHOR11]
25754	ldrh	w1, [x2, x1]
25755	cmp	w1, 3
25756	bhi	.L4021
25757	cbz	w21, .L4021
25758	strb	wzr, [x23, #:lo12:.LANCHOR90]
25759	mov	w2, 0
25760	mov	w1, 1
25761	bl	gc_add_sblk
25762	cbnz	w0, .L4015
25763.L4021:
25764	mov	w1, 0
25765	adrp	x0, .LANCHOR98
25766	add	x0, x0, :lo12:.LANCHOR98
25767	bl	_list_get_gc_head_node
25768	and	w28, w0, 65535
25769	mov	w1, 65535
25770	mov	w3, w28
25771	cmp	w28, w1
25772	bne	.L4022
25773.L4027:
25774	cmp	w22, 1
25775	bhi	.L4023
25776.L4024:
25777	cmp	w21, w24
25778	adrp	x21, .LANCHOR104
25779	bcs	.L4031
25780	mov	w1, 4
25781	strb	wzr, [x23, #:lo12:.LANCHOR90]
25782	add	x0, x25, :lo12:.LANCHOR101
25783	bl	_list_get_gc_head_node
25784	and	w0, w0, 65535
25785	mov	w1, 65535
25786	cmp	w0, w1
25787	beq	.L4031
25788	adrp	x1, .LANCHOR11
25789	ubfiz	x0, x0, 1, 16
25790	adrp	x2, .LANCHOR85
25791	ldr	x1, [x1, #:lo12:.LANCHOR11]
25792	ldrb	w2, [x2, #:lo12:.LANCHOR85]
25793	ldrh	w1, [x1, x0]
25794	adrp	x0, .LANCHOR100
25795	ldrh	w0, [x0, #:lo12:.LANCHOR100]
25796	mul	w0, w0, w2
25797	cmp	w1, w0, lsr 1
25798	ble	.L4033
25799.L4031:
25800	ldrh	w0, [x21, #:lo12:.LANCHOR104]
25801	lsr	w0, w0, 2
25802	strh	w0, [x26, #:lo12:.LANCHOR92]
25803	b	.L3969
25804.L4022:
25805	adrp	x2, .LANCHOR158
25806	adrp	x4, .LANCHOR8
25807	uxtw	x28, w28
25808	ldr	w1, [x2, #:lo12:.LANCHOR158]
25809	ldrh	w4, [x4, #:lo12:.LANCHOR8]
25810	add	w1, w1, 1
25811	str	w1, [x2, #:lo12:.LANCHOR158]
25812	cmp	w1, w4, lsr 4
25813	adrp	x4, .LANCHOR11
25814	bls	.L4025
25815	ldr	x1, [x4, #:lo12:.LANCHOR11]
25816	str	wzr, [x2, #:lo12:.LANCHOR158]
25817	ldrh	w2, [x1, x28, lsl 1]
25818	adrp	x1, .LANCHOR106
25819	ldrh	w1, [x1, #:lo12:.LANCHOR106]
25820	cmp	w2, w1
25821	bcs	.L4025
25822	mov	w5, 1
25823	str	x4, [x29, 96]
25824	strb	w5, [x23, #:lo12:.LANCHOR90]
25825	mov	w2, 1
25826	stp	w3, w5, [x29, 104]
25827	mov	w1, 0
25828	bl	gc_add_sblk
25829	ldp	w3, w5, [x29, 104]
25830	ldr	x4, [x29, 96]
25831	cbz	w0, .L4025
25832	strb	w5, [x20, #:lo12:.LANCHOR157]
25833	b	.L3969
25834.L4025:
25835	ldr	x0, [x4, #:lo12:.LANCHOR11]
25836	ldrh	w1, [x0, x28, lsl 1]
25837	adrp	x0, .LANCHOR100
25838	ldrh	w0, [x0, #:lo12:.LANCHOR100]
25839	cmp	w1, w0, lsr 1
25840	bhi	.L4026
25841	mov	w2, 0
25842	mov	w1, 1
25843	mov	w0, w3
25844	bl	gc_add_sblk
25845	b	.L4015
25846.L4026:
25847	ldp	x2, x0, [x29, 112]
25848	ldrh	w2, [x2, #:lo12:.LANCHOR105]
25849	ldrh	w0, [x0, #:lo12:.LANCHOR103]
25850	add	w0, w0, w2
25851	adrp	x2, .LANCHOR104
25852	ldrh	w2, [x2, #:lo12:.LANCHOR104]
25853	cmp	w0, w2, lsl 1
25854	ble	.L4027
25855	adrp	x0, .LANCHOR106
25856	ldrh	w0, [x0, #:lo12:.LANCHOR106]
25857	cmp	w0, w1
25858	bcc	.L4024
25859	b	.L4027
25860.L4023:
25861	mov	w1, 1
25862	strb	w1, [x23, #:lo12:.LANCHOR90]
25863	cmp	w22, 16
25864	bls	.L4028
25865	adrp	x0, .LANCHOR97
25866	ldrh	w2, [x0, #:lo12:.LANCHOR97]
25867	adrp	x0, .LANCHOR107
25868	ldrh	w0, [x0, #:lo12:.LANCHOR107]
25869	cmp	w2, w0
25870	bhi	.L4028
25871	mov	w0, w1
25872	mov	w2, 4
25873.L4171:
25874	bl	gc_search_src_blk
25875	ands	w0, w0, 65535
25876	bne	.L4029
25877	ldrb	w0, [x23, #:lo12:.LANCHOR90]
25878	mov	w2, 4
25879	mov	w1, 3
25880	bl	gc_search_src_blk
25881	and	w0, w0, 65535
25882.L4029:
25883	adrp	x1, .LANCHOR104
25884	cmp	w21, w24, lsr 1
25885	ldrh	w1, [x1, #:lo12:.LANCHOR104]
25886	bls	.L4165
25887	lsr	w1, w1, 2
25888.L4166:
25889	strh	w1, [x26, #:lo12:.LANCHOR92]
25890	b	.L4013
25891.L4028:
25892	mov	w2, 1
25893	mov	w1, 2
25894	mov	w0, w2
25895	b	.L4171
25896.L4033:
25897	mov	w1, 3
25898	mov	w2, 4
25899	mov	w0, 0
25900	bl	gc_search_src_blk
25901	ldrh	w1, [x21, #:lo12:.LANCHOR104]
25902	and	w0, w0, 65535
25903.L4165:
25904	lsr	w1, w1, 1
25905	b	.L4166
25906.L4019:
25907	adrp	x1, .LANCHOR104
25908	ldrh	w1, [x1, #:lo12:.LANCHOR104]
25909	lsr	w1, w1, 2
25910	strh	w1, [x0, #:lo12:.LANCHOR92]
25911	adrp	x0, .LANCHOR76+2110
25912	ldrh	w0, [x0, #:lo12:.LANCHOR76+2110]
25913	cmp	w0, 0
25914	csel	w19, w19, wzr, ne
25915	b	.L3969
25916.L3973:
25917	adrp	x7, .LANCHOR76
25918	mov	w0, 65535
25919	ldrh	w1, [x7, #:lo12:.LANCHOR76]
25920	cmp	w1, w0
25921	bne	.L4034
25922	bl	gc_get_src_blk
25923	strh	w0, [x7, #:lo12:.LANCHOR76]
25924.L4034:
25925	ldrh	w0, [x7, #:lo12:.LANCHOR76]
25926	mov	w1, 65535
25927	cmp	w0, w1
25928	beq	.L4035
25929	adrp	x1, .LANCHOR8
25930	ldrh	w1, [x1, #:lo12:.LANCHOR8]
25931	cmp	w1, w0
25932	bhi	.L4035
25933	mov	w0, -1
25934	strh	w0, [x7, #:lo12:.LANCHOR76]
25935.L4035:
25936	ldrh	w3, [x7, #:lo12:.LANCHOR76]
25937	mov	w0, 65535
25938	add	x1, x7, :lo12:.LANCHOR76
25939	cmp	w3, w0
25940	beq	.L4173
25941	adrp	x0, .LANCHOR9
25942	ldrh	w5, [x1, 56]
25943	uxtw	x4, w3
25944	ldr	x2, [x0, #:lo12:.LANCHOR9]
25945	add	x2, x2, x4, lsl 2
25946	cbz	w5, .L4037
25947	add	x1, x1, 58
25948	mov	w0, 0
25949.L4039:
25950	ldrh	w6, [x1], 2
25951	cmp	w6, w3
25952	bne	.L4038
25953.L4043:
25954	adrp	x0, .LANCHOR76
25955	mov	w1, -1
25956	strh	w1, [x0, #:lo12:.LANCHOR76]
25957	b	.L4086
25958.L4038:
25959	add	w0, w0, 1
25960	and	w0, w0, 65535
25961	cmp	w5, w0
25962	bne	.L4039
25963.L4037:
25964	ldrb	w0, [x2, 2]
25965	and	w1, w0, 224
25966	cmp	w1, 224
25967	beq	.L4040
25968	tst	w0, 192
25969	bne	.L4041
25970.L4040:
25971	adrp	x0, .LANCHOR11
25972	ldr	x0, [x0, #:lo12:.LANCHOR11]
25973	ldrh	w0, [x0, x4, lsl 1]
25974	cbz	w0, .L4043
25975	mov	w2, 3306
25976	adrp	x1, .LANCHOR240
25977	adrp	x0, .LC0
25978	add	x1, x1, :lo12:.LANCHOR240
25979	add	x0, x0, :lo12:.LC0
25980	bl	printf
25981	b	.L4043
25982.L4041:
25983	mov	w0, 2
25984	b	.L4174
25985.L3974:
25986	bl	gc_scan_src_blk
25987	cmn	w0, #1
25988	bne	.L4044
25989	mov	w0, 3
25990	b	.L4174
25991.L4044:
25992	adrp	x19, .LANCHOR76
25993	mov	w2, 65535
25994	add	x0, x19, :lo12:.LANCHOR76
25995	ldrh	w1, [x19, #:lo12:.LANCHOR76]
25996	cmp	w1, w2
25997	beq	.L3988
25998	ldrh	w2, [x0, 24]
25999	cbz	w2, .L4045
26000	mov	w1, 4
26001	strh	wzr, [x0, 26]
26002	strb	w1, [x20, #:lo12:.LANCHOR157]
26003	b	.L4086
26004.L4045:
26005	mov	w0, 1
26006	strb	w0, [x20, #:lo12:.LANCHOR157]
26007	adrp	x0, .LANCHOR11
26008	ubfiz	x1, x1, 1, 16
26009	mov	x20, x0
26010	ldr	x2, [x0, #:lo12:.LANCHOR11]
26011	ldrh	w1, [x2, x1]
26012	cbz	w1, .L4046
26013	adrp	x1, .LANCHOR240
26014	adrp	x0, .LC0
26015	mov	w2, 3336
26016	add	x1, x1, :lo12:.LANCHOR240
26017	add	x0, x0, :lo12:.LC0
26018	bl	printf
26019.L4046:
26020	ldrh	w0, [x19, #:lo12:.LANCHOR76]
26021	add	x21, x19, :lo12:.LANCHOR76
26022	bl	ftl_free_sblk
26023	ldr	x0, [x20, #:lo12:.LANCHOR11]
26024	ldrh	w1, [x19, #:lo12:.LANCHOR76]
26025	strh	wzr, [x0, x1, lsl 1]
26026	ldrh	w0, [x21, 30]
26027	add	w0, w0, 1
26028	and	w0, w0, 65535
26029	cmp	w0, 8
26030	bhi	.L4047
26031	strh	w0, [x21, 30]
26032	b	.L4043
26033.L4047:
26034	strh	wzr, [x21, 30]
26035	bl	ftl_flush
26036	bl	pm_flush
26037	bl	ftl_ext_info_flush
26038	mov	w0, 0
26039	bl	ftl_info_flush
26040	b	.L4043
26041.L3975:
26042	adrp	x19, .LANCHOR76
26043	adrp	x23, .LANCHOR100
26044	add	x22, x19, :lo12:.LANCHOR76
26045	add	x23, x23, :lo12:.LANCHOR100
26046.L4135:
26047	bl	gc_scan_src_blk_one_page
26048	ldrh	w1, [x22, 2]
26049	ldrh	w0, [x23]
26050	cmp	w1, w0
26051	bcs	.L4049
26052	cmp	w21, 7
26053	bls	.L4135
26054	b	.L4086
26055.L4049:
26056	ldrh	w3, [x22, 24]
26057	ldrh	w1, [x22]
26058	cbz	w3, .L4050
26059	mov	w0, 4
26060	strb	w0, [x20, #:lo12:.LANCHOR157]
26061	adrp	x20, .LANCHOR11
26062	ubfiz	x0, x1, 1, 16
26063	strh	wzr, [x22, 26]
26064	ldr	x2, [x20, #:lo12:.LANCHOR11]
26065	ldrh	w2, [x2, x0]
26066	cmp	w3, w2
26067	beq	.L4051
26068	adrp	x0, .LANCHOR19
26069	ldr	w0, [x0, #:lo12:.LANCHOR19]
26070	tbz	x0, 10, .L4051
26071	adrp	x0, .LC234
26072	add	x0, x0, :lo12:.LC234
26073	bl	printf
26074.L4051:
26075	ldrh	w2, [x19, #:lo12:.LANCHOR76]
26076	add	x0, x19, :lo12:.LANCHOR76
26077	ldr	x1, [x20, #:lo12:.LANCHOR11]
26078	ldrh	w0, [x0, 24]
26079	ldrh	w1, [x1, x2, lsl 1]
26080	cmp	w1, w0
26081	beq	.L4052
26082	adrp	x1, .LANCHOR240
26083	adrp	x0, .LC0
26084	mov	w2, 3379
26085	add	x1, x1, :lo12:.LANCHOR240
26086	add	x0, x0, :lo12:.LC0
26087	bl	printf
26088.L4052:
26089	add	x0, x19, :lo12:.LANCHOR76
26090	ldrh	w1, [x19, #:lo12:.LANCHOR76]
26091	ldrh	w2, [x0, 24]
26092	ldr	x0, [x20, #:lo12:.LANCHOR11]
26093	strh	w2, [x0, x1, lsl 1]
26094	b	.L4086
26095.L4050:
26096	adrp	x0, .LANCHOR9
26097	ldr	x21, [x0, #:lo12:.LANCHOR9]
26098	mov	w0, 1
26099	strb	w0, [x20, #:lo12:.LANCHOR157]
26100	adrp	x0, .LANCHOR19
26101	ldr	w0, [x0, #:lo12:.LANCHOR19]
26102	add	x21, x21, x1, uxth 2
26103	tbz	x0, 8, .L4053
26104	ldrb	w2, [x21, 2]
26105	adrp	x0, .LC235
26106	add	x0, x0, :lo12:.LC235
26107	ubfx	x2, x2, 5, 3
26108	bl	printf
26109.L4053:
26110	ldrb	w0, [x21, 2]
26111	and	w1, w0, 224
26112	cmp	w1, 224
26113	beq	.L4054
26114	tst	w0, 192
26115	bne	.L4055
26116.L4054:
26117	adrp	x1, .LANCHOR240
26118	adrp	x0, .LC0
26119	mov	w2, 3389
26120	add	x1, x1, :lo12:.LANCHOR240
26121	add	x0, x0, :lo12:.LC0
26122	bl	printf
26123.L4055:
26124	ldrh	w0, [x19, #:lo12:.LANCHOR76]
26125	add	x20, x19, :lo12:.LANCHOR76
26126	bl	ftl_free_sblk
26127	mov	w0, -1
26128	strh	w0, [x19, #:lo12:.LANCHOR76]
26129	ldrh	w0, [x20, 30]
26130	add	w0, w0, 1
26131	and	w0, w0, 65535
26132	cmp	w0, 8
26133	bhi	.L4056
26134	strh	w0, [x20, 30]
26135	b	.L4086
26136.L4056:
26137	strh	wzr, [x20, 30]
26138.L4172:
26139	bl	flt_sys_flush
26140	b	.L4086
26141.L3976:
26142	ldrh	w1, [x26, 80]
26143	mov	w0, 65535
26144	cmp	w1, w0
26145	bne	.L4057
26146	adrp	x0, .LANCHOR90
26147	ldrb	w19, [x0, #:lo12:.LANCHOR90]
26148	cmp	w19, 1
26149	bne	.L4057
26150	bl	ftl_flush
26151	adrp	x0, .LANCHOR76
26152	add	x1, x0, :lo12:.LANCHOR76
26153	mov	x20, x0
26154	ldrh	w1, [x1, 2192]
26155	cbz	w1, .L4058
26156	mov	w0, w19
26157	mov	w1, 5
26158.L4167:
26159	bl	zftl_gc_get_free_sblk
26160	and	w19, w0, 65535
26161	mov	w0, 65535
26162	cmp	w19, w0
26163	beq	.L4060
26164	adrp	x0, .LANCHOR9
26165	ldr	x21, [x0, #:lo12:.LANCHOR9]
26166	add	x21, x21, x19, uxth 2
26167	ldrb	w0, [x21, 2]
26168	tst	w0, 224
26169	beq	.L4061
26170	adrp	x1, .LANCHOR240
26171	adrp	x0, .LC0
26172	mov	w2, 3423
26173	add	x1, x1, :lo12:.LANCHOR240
26174	add	x0, x0, :lo12:.LC0
26175	bl	printf
26176.L4061:
26177	ldrb	w0, [x21, 2]
26178	mov	w1, 5
26179	bfi	w0, w1, 5, 3
26180	orr	w0, w0, 16
26181	strb	w0, [x21, 2]
26182.L4085:
26183	mov	w1, 1
26184	mov	w0, w19
26185	bl	ftl_erase_sblk
26186	adrp	x22, .LANCHOR91
26187	mov	w0, 5
26188	strb	w0, [x26, 84]
26189	add	x1, x26, 96
26190	mov	w0, w19
26191	bl	ftl_get_blk_list_in_sblk
26192	and	w0, w0, 255
26193	adrp	x1, .LANCHOR100
26194	adrp	x21, .LANCHOR85
26195	strb	w0, [x26, 89]
26196	ldrh	w1, [x1, #:lo12:.LANCHOR100]
26197	ldrh	w2, [x22, #:lo12:.LANCHOR91]
26198	strh	w19, [x26, 80]
26199	strh	wzr, [x26, 82]
26200	mul	w0, w0, w1
26201	strb	wzr, [x26, 85]
26202	strh	w0, [x26, 86]
26203	mov	w1, 255
26204	ldrb	w0, [x21, #:lo12:.LANCHOR85]
26205	strh	wzr, [x26, 90]
26206	mul	w2, w2, w0
26207	adrp	x0, .LANCHOR160
26208	ldr	x0, [x0, #:lo12:.LANCHOR160]
26209	lsl	w2, w2, 2
26210	bl	ftl_memset
26211	ldrb	w0, [x21, #:lo12:.LANCHOR85]
26212	mov	w1, 255
26213	ldrh	w2, [x22, #:lo12:.LANCHOR91]
26214	mul	w2, w2, w0
26215	adrp	x0, .LANCHOR161
26216	ldr	x0, [x0, #:lo12:.LANCHOR161]
26217	lsl	w2, w2, 2
26218	bl	ftl_memset
26219	ldrb	w0, [x21, #:lo12:.LANCHOR85]
26220	mov	w1, 255
26221	ldrh	w2, [x22, #:lo12:.LANCHOR91]
26222	mul	w2, w2, w0
26223	adrp	x0, .LANCHOR88
26224	ldr	x0, [x0, #:lo12:.LANCHOR88]
26225	bl	ftl_memset
26226	ldr	x0, [x23, #:lo12:.LANCHOR12]
26227	mov	w1, -1
26228	str	w19, [x0, 132]
26229	strh	w1, [x0, 128]
26230	strh	w1, [x0, 130]
26231	bl	pm_flush
26232	bl	ftl_ext_info_flush
26233	adrp	x0, .LANCHOR69
26234	mov	w1, -1
26235	ldr	x0, [x0, #:lo12:.LANCHOR69]
26236	strh	w19, [x0, 126]
26237	add	x0, x20, :lo12:.LANCHOR76
26238	str	w1, [x0, 2196]
26239	strh	wzr, [x0, 2106]
26240	strh	wzr, [x0, 56]
26241	strh	wzr, [x0, 2108]
26242	strh	wzr, [x0, 2194]
26243	mov	w0, 0
26244	bl	ftl_info_flush
26245	b	.L4086
26246.L4058:
26247	mov	w1, 5
26248	mov	w0, 0
26249	b	.L4167
26250.L4057:
26251	cmp	w25, 1
26252	mov	w24, 4
26253	csinc	w24, w24, wzr, eq
26254	cmp	w21, 15
26255	mov	w0, w24
26256	add	w24, w24, 4
26257	adrp	x25, .LANCHOR90
26258	adrp	x21, .LANCHOR76
26259	csel	w24, w24, w0, ls
26260	add	x25, x25, :lo12:.LANCHOR90
26261	add	x19, x21, :lo12:.LANCHOR76
26262	add	x27, x26, 80
26263.L4064:
26264	sub	w24, w24, #1
26265	and	w24, w24, 255
26266	cmp	w24, 255
26267	beq	.L4086
26268	bl	gc_do_copy_back
26269	ldrb	w0, [x25]
26270	cbnz	w0, .L4065
26271	adrp	x0, .LANCHOR57
26272	ldrb	w0, [x0, #:lo12:.LANCHOR57]
26273	cmp	w0, 3
26274	bhi	.L4066
26275	bl	ftl_write_commit
26276.L4066:
26277	ldrh	w1, [x19, 26]
26278	ldrh	w0, [x19, 24]
26279	cmp	w1, w0
26280	bcc	.L4064
26281	mov	w0, 1
26282	strb	w0, [x20, #:lo12:.LANCHOR157]
26283	bl	ftl_write_commit
26284	bl	ftl_flush
26285	adrp	x0, .LANCHOR11
26286	ldrh	w2, [x19]
26287	mov	x19, x0
26288	ldr	x1, [x0, #:lo12:.LANCHOR11]
26289	ldrh	w1, [x1, x2, lsl 1]
26290	cbz	w1, .L4068
26291	adrp	x1, .LANCHOR240
26292	adrp	x0, .LC0
26293	mov	w2, 3507
26294	add	x1, x1, :lo12:.LANCHOR240
26295	add	x0, x0, :lo12:.LC0
26296	bl	printf
26297.L4068:
26298	ldrh	w0, [x21, #:lo12:.LANCHOR76]
26299	ldr	x2, [x19, #:lo12:.LANCHOR11]
26300	ubfiz	x1, x0, 1, 16
26301	ldrh	w1, [x2, x1]
26302	cbnz	w1, .L4069
26303	bl	ftl_free_sblk
26304	b	.L4043
26305.L4069:
26306	mov	w2, 1
26307	mov	w1, 0
26308	bl	gc_add_sblk
26309	b	.L4043
26310.L4065:
26311	ldrh	w0, [x19, 2194]
26312	cbz	w0, .L4070
26313	strh	wzr, [x19, 2194]
26314	bl	sblk_wait_write_queue_completed
26315	bl	gc_write_completed
26316	ldr	w0, [x19, 2196]
26317	adrp	x19, .LANCHOR69
26318	cmn	w0, #1
26319	beq	.L4071
26320	adrp	x1, .LANCHOR130
26321	ldrb	w1, [x1, #:lo12:.LANCHOR130]
26322	cbnz	w1, .L4072
26323	adrp	x1, .LANCHOR86
26324	ldrb	w1, [x1, #:lo12:.LANCHOR86]
26325	cbz	w1, .L4073
26326.L4072:
26327	ldr	x1, [x19, #:lo12:.LANCHOR69]
26328	ldr	w2, [x1, 156]
26329	mov	w1, 20041
26330	movk	w1, 0x444b, lsl 16
26331	cmp	w2, w1
26332	bne	.L4073
26333	adrp	x1, .LANCHOR80
26334	ldrh	w3, [x1, #:lo12:.LANCHOR80]
26335	adrp	x1, .LANCHOR31
26336	ldrb	w2, [x1, #:lo12:.LANCHOR31]
26337	mov	w1, 24
26338	lsr	w0, w0, w3
26339	sub	w1, w1, w2
26340	sub	w2, w1, w3
26341	mov	w1, 1
26342	lsl	w1, w1, w2
26343	sub	w1, w1, #1
26344	and	w0, w1, w0
26345	adrp	x1, .LANCHOR81
26346	ldrb	w1, [x1, #:lo12:.LANCHOR81]
26347	udiv	w0, w0, w1
26348	adrp	x1, .LANCHOR9
26349	ldr	x2, [x1, #:lo12:.LANCHOR9]
26350	lsl	x0, x0, 2
26351	add	x4, x2, x0
26352	ldrb	w1, [x4, 2]
26353	tbz	x1, 3, .L4071
26354	adrp	x5, .LANCHOR104
26355	ldrh	w3, [x22, #:lo12:.LANCHOR109]
26356	ldrh	w5, [x5, #:lo12:.LANCHOR104]
26357	add	w3, w3, 8
26358	cmp	w3, w5
26359	bge	.L4071
26360	and	w1, w1, -25
26361	strb	w1, [x4, 2]
26362	adrp	x1, .LANCHOR10
26363	ldr	w3, [x2, x0]
26364	ldrh	w1, [x1, #:lo12:.LANCHOR10]
26365	ldrh	w4, [x2, x0]
26366	ubfx	x3, x3, 11, 8
26367	and	w5, w4, 2047
26368	mul	w1, w1, w3
26369	lsr	w3, w3, 3
26370	add	w1, w1, w1, lsl 1
26371	add	w1, w5, w1, lsr 2
26372	bfi	w4, w1, 0, 11
26373	strh	w4, [x2, x0]
26374	ldr	w1, [x2, x0]
26375	bfi	w1, w3, 11, 8
26376	str	w1, [x2, x0]
26377.L4071:
26378	ldr	x0, [x23, #:lo12:.LANCHOR12]
26379	add	x22, x21, :lo12:.LANCHOR76
26380	strh	wzr, [x22, 56]
26381	ldrh	w0, [x0, 80]
26382	str	wzr, [x22, 2196]
26383	bl	ftl_free_sblk
26384	ldr	x1, [x23, #:lo12:.LANCHOR12]
26385	mov	w0, -1
26386	ldr	x2, [x19, #:lo12:.LANCHOR69]
26387	strh	w0, [x1, 80]
26388	strh	w0, [x2, 126]
26389	strh	w0, [x1, 130]
26390	ldr	x0, [x22, 8]
26391	cbz	x0, .L4074
26392	bl	zbuf_free
26393.L4074:
26394	add	x21, x21, :lo12:.LANCHOR76
26395	str	xzr, [x21, 8]
26396	bl	flt_sys_flush
26397	mov	w2, 3567
26398	strb	wzr, [x20, #:lo12:.LANCHOR157]
26399	adrp	x1, .LANCHOR240
26400	adrp	x0, .LC0
26401	add	x1, x1, :lo12:.LANCHOR240
26402	add	x0, x0, :lo12:.LC0
26403	bl	printf
26404	b	.L4086
26405.L4073:
26406	bl	ftl_mask_bad_block
26407	b	.L4071
26408.L4070:
26409	ldrh	w0, [x27, 6]
26410	ldrh	w1, [x19, 26]
26411	cmp	w0, 1
26412	ldrh	w0, [x19, 24]
26413	bls	.L4075
26414	cmp	w1, w0
26415	bcc	.L4064
26416	mov	w0, 1
26417	strb	w0, [x20, #:lo12:.LANCHOR157]
26418	ldrh	w0, [x19, 56]
26419	add	w1, w0, 1
26420	strh	w1, [x19, 56]
26421	add	x0, x19, x0, sxtw 1
26422	ldrh	w1, [x19]
26423	strh	w1, [x0, 58]
26424	mov	w0, -1
26425	strh	w0, [x19]
26426	b	.L4086
26427.L4075:
26428	mov	w2, 5
26429	strb	w2, [x20, #:lo12:.LANCHOR157]
26430	cmp	w1, w0
26431	bcc	.L4076
26432	ldrh	w0, [x19, 56]
26433	add	w1, w0, 1
26434	strh	w1, [x19, 56]
26435	add	x0, x19, x0, sxtw 1
26436	ldrh	w1, [x19]
26437	strh	w1, [x0, 58]
26438	mov	w0, -1
26439	strh	w0, [x19]
26440.L4076:
26441	bl	ftl_flush
26442	bl	sblk_wait_write_queue_completed
26443	bl	gc_write_completed
26444	ldr	x0, [x23, #:lo12:.LANCHOR12]
26445	ldrh	w1, [x26, 80]
26446	strh	w1, [x0, 128]
26447	bl	pm_flush
26448	bl	ftl_ext_info_flush
26449	adrp	x1, .LANCHOR100
26450	add	x0, x21, :lo12:.LANCHOR76
26451	adrp	x2, .LANCHOR35
26452	ldrh	w1, [x1, #:lo12:.LANCHOR100]
26453	strh	w1, [x0, 18]
26454	adrp	x1, .LANCHOR84
26455	ldrb	w2, [x2, #:lo12:.LANCHOR35]
26456	strh	wzr, [x0, 16]
26457	ldrb	w1, [x1, #:lo12:.LANCHOR84]
26458	strh	w1, [x0, 20]
26459	cbz	w2, .L4077
26460	adrp	x2, .LANCHOR91
26461	ldrh	w2, [x2, #:lo12:.LANCHOR91]
26462	strh	w2, [x0, 18]
26463	mov	w2, 1
26464	strh	w2, [x0, 20]
26465.L4077:
26466	cmp	w1, 2
26467	bne	.L4079
26468	add	x0, x21, :lo12:.LANCHOR76
26469	ldrh	w1, [x0, 18]
26470	ubfiz	w1, w1, 1, 15
26471	strh	w1, [x0, 18]
26472	adrp	x1, .LANCHOR86
26473	ldrb	w1, [x1, #:lo12:.LANCHOR86]
26474	cbnz	w1, .L4079
26475	mov	w1, 1
26476	strh	w1, [x0, 20]
26477.L4079:
26478	add	x21, x21, :lo12:.LANCHOR76
26479	strh	wzr, [x21, 22]
26480	b	.L4086
26481.L4082:
26482	ldrh	w1, [x24, 16]
26483	ldrh	w0, [x24, 18]
26484	cmp	w1, w0
26485	bcc	.L4083
26486	mov	w0, 6
26487	strb	w0, [x20, #:lo12:.LANCHOR157]
26488	ldr	x0, [x24, 8]
26489	bl	zbuf_free
26490	str	xzr, [x24, 8]
26491	b	.L4086
26492.L4083:
26493	cmp	w21, 15
26494	bls	.L3979
26495	cmp	w25, 1
26496	bne	.L4086
26497	add	w22, w22, 1
26498	and	w22, w22, 255
26499	cmp	w22, 4
26500	bls	.L3979
26501	b	.L4086
26502.L3978:
26503	bl	gc_update_l2p_map_new
26504	mov	w19, -1
26505	bl	gc_free_src_blk
26506	bl	ftl_flush
26507	bl	pm_flush
26508	strh	w19, [x26, 80]
26509	bl	ftl_ext_info_flush
26510	adrp	x0, .LANCHOR69
26511	ldr	x0, [x0, #:lo12:.LANCHOR69]
26512	strh	w19, [x0, 126]
26513	mov	w0, 0
26514	bl	ftl_info_flush
26515.L4173:
26516	strb	wzr, [x20, #:lo12:.LANCHOR157]
26517	b	.L4086
26518.L4060:
26519	mov	w2, 3430
26520	adrp	x1, .LANCHOR240
26521	adrp	x0, .LC0
26522	add	x1, x1, :lo12:.LANCHOR240
26523	add	x0, x0, :lo12:.LC0
26524	bl	printf
26525	b	.L4085
26526	.size	zftl_do_gc, .-zftl_do_gc
26527	.section	.text.zftl_discard,"ax",@progbits
26528	.align	2
26529	.global	zftl_discard
26530	.type	zftl_discard, %function
26531zftl_discard:
26532	stp	x29, x30, [sp, -128]!
26533	add	x29, sp, 0
26534	stp	x19, x20, [sp, 16]
26535	mov	w19, w1
26536	adrp	x1, .LANCHOR73
26537	stp	x21, x22, [sp, 32]
26538	stp	x23, x24, [sp, 48]
26539	ldr	w1, [x1, #:lo12:.LANCHOR73]
26540	stp	x25, x26, [sp, 64]
26541	stp	x27, x28, [sp, 80]
26542	cmp	w0, w1
26543	ccmp	w19, w1, 2, cc
26544	bhi	.L4197
26545	add	w2, w0, w19
26546	cmp	w1, w2
26547	bcc	.L4197
26548	adrp	x24, .LANCHOR241
26549	add	w22, w0, 24576
26550	adrp	x0, .LANCHOR19
26551	str	x0, [x29, 104]
26552	ldr	w1, [x24, #:lo12:.LANCHOR241]
26553	ldr	w2, [x0, #:lo12:.LANCHOR19]
26554	add	w1, w19, w1
26555	str	w1, [x24, #:lo12:.LANCHOR241]
26556	tbz	x2, 12, .L4177
26557	adrp	x0, .LC236
26558	mov	w4, 0
26559	mov	w3, w19
26560	mov	w2, w22
26561	add	x0, x0, :lo12:.LC236
26562	bl	printf
26563.L4177:
26564	adrp	x23, .LANCHOR69
26565	adrp	x26, .LANCHOR68
26566	ldr	x0, [x23, #:lo12:.LANCHOR69]
26567	ldr	w27, [x0, 8]
26568	add	w1, w27, 1
26569	str	w1, [x0, 8]
26570	bl	ftl_write_commit
26571	bl	ftl_flush
26572	ldrb	w21, [x26, #:lo12:.LANCHOR68]
26573	udiv	w20, w22, w21
26574	msub	w25, w20, w21, w22
26575	cbz	w25, .L4178
26576	sub	w21, w21, w25
26577	mov	w0, w20
26578	cmp	w21, w19
26579	csel	w21, w21, w19, ls
26580	bl	lpa_hash_get_ppa
26581	str	w0, [x29, 120]
26582	cmn	w0, #1
26583	bne	.L4179
26584	mov	w2, 0
26585	add	x1, x29, 120
26586	mov	w0, w20
26587	bl	pm_log2phys
26588.L4179:
26589	ldr	w0, [x29, 120]
26590	and	w28, w21, 65535
26591	cmn	w0, #1
26592	beq	.L4181
26593	mov	w0, 0
26594	bl	buf_alloc
26595	mov	x3, x0
26596	cbz	x0, .L4181
26597	strb	w25, [x0, 57]
26598	ubfiz	x25, x25, 9, 25
26599	strb	w21, [x0, 56]
26600	mov	w1, 0
26601	ldr	x0, [x0, 8]
26602	lsl	w2, w28, 9
26603	stp	w27, w20, [x3, 32]
26604	str	x3, [x29, 96]
26605	add	x0, x0, x25
26606	bl	ftl_memset
26607	ldr	x3, [x29, 96]
26608	mov	x0, x3
26609	bl	ftl_write_buf
26610	bl	ftl_write_commit
26611	ldr	x1, [x23, #:lo12:.LANCHOR69]
26612	ldr	w0, [x1, 76]
26613	add	w0, w0, 1
26614	str	w0, [x1, 76]
26615.L4181:
26616	add	w20, w20, 1
26617	sub	w19, w19, w28
26618.L4178:
26619	cbz	w19, .L4183
26620	bl	ftl_flush
26621.L4183:
26622	adrp	x25, .LANCHOR80
26623	add	x21, x26, :lo12:.LANCHOR68
26624	add	x25, x25, :lo12:.LANCHOR80
26625	mov	w0, -1
26626	str	w0, [x29, 124]
26627.L4184:
26628	ldrb	w0, [x21]
26629	cmp	w19, w0
26630	bcs	.L4189
26631	cbz	w19, .L4191
26632	mov	w0, w20
26633	bl	lpa_hash_get_ppa
26634	str	w0, [x29, 120]
26635	cmn	w0, #1
26636	bne	.L4192
26637	mov	w2, 0
26638	add	x1, x29, 120
26639	mov	w0, w20
26640	bl	pm_log2phys
26641.L4192:
26642	ldr	w0, [x29, 120]
26643	cmn	w0, #1
26644	beq	.L4191
26645	mov	w0, 0
26646	bl	buf_alloc
26647	mov	x21, x0
26648	cbz	x0, .L4191
26649	strb	wzr, [x0, 57]
26650	strb	w19, [x0, 56]
26651	stp	w27, w20, [x21, 32]
26652	ldrb	w0, [x26, #:lo12:.LANCHOR68]
26653	cmp	w19, w0
26654	bcc	.L4194
26655	adrp	x1, .LANCHOR242
26656	adrp	x0, .LC0
26657	mov	w2, 1492
26658	add	x1, x1, :lo12:.LANCHOR242
26659	add	x0, x0, :lo12:.LC0
26660	bl	printf
26661.L4194:
26662	ldr	x0, [x21, 8]
26663	lsl	w2, w19, 9
26664	mov	w1, 0
26665	bl	ftl_memset
26666	mov	x0, x21
26667	bl	ftl_write_buf
26668	bl	ftl_write_commit
26669	ldr	x1, [x23, #:lo12:.LANCHOR69]
26670	ldr	w0, [x1, 76]
26671	add	w0, w0, 1
26672	str	w0, [x1, 76]
26673.L4191:
26674	ldr	w1, [x24, #:lo12:.LANCHOR241]
26675	cmp	w1, 8192
26676	bls	.L4198
26677	ldr	x0, [x29, 104]
26678	ldr	w0, [x0, #:lo12:.LANCHOR19]
26679	tbz	x0, 12, .L4195
26680	adrp	x0, .LC236
26681	mov	w4, 0
26682	mov	w3, w19
26683	mov	w2, w22
26684	add	x0, x0, :lo12:.LC236
26685	bl	printf
26686.L4195:
26687	str	wzr, [x24, #:lo12:.LANCHOR241]
26688	bl	flt_sys_flush
26689	adrp	x0, .LANCHOR128
26690	mov	w1, 1
26691	str	w1, [x0, #:lo12:.LANCHOR128]
26692.L4198:
26693	mov	w0, 0
26694	b	.L4175
26695.L4189:
26696	mov	w0, w20
26697	bl	lpa_hash_get_ppa
26698	str	w0, [x29, 120]
26699	cmn	w0, #1
26700	beq	.L4185
26701	mov	w0, 0
26702	bl	buf_alloc
26703	mov	x28, x0
26704	cbz	x0, .L4187
26705	ldrb	w2, [x21]
26706	mov	w1, 0
26707	strb	w2, [x0, 56]
26708	strb	wzr, [x0, 57]
26709	ldr	x0, [x0, 8]
26710	lsl	w2, w2, 9
26711	stp	w27, w20, [x28, 32]
26712	bl	ftl_memset
26713	mov	x0, x28
26714	bl	ftl_write_buf
26715	bl	ftl_write_commit
26716.L4224:
26717	ldr	x1, [x23, #:lo12:.LANCHOR69]
26718	ldr	w0, [x1, 76]
26719	add	w0, w0, 1
26720	str	w0, [x1, 76]
26721.L4187:
26722	ldrb	w0, [x21]
26723	add	w20, w20, 1
26724	sub	w19, w19, w0
26725	b	.L4184
26726.L4185:
26727	mov	w2, 0
26728	add	x1, x29, 120
26729	mov	w0, w20
26730	bl	pm_log2phys
26731	ldr	w0, [x29, 120]
26732	cmn	w0, #1
26733	beq	.L4187
26734	add	x1, x29, 124
26735	mov	w2, 1
26736	mov	w0, w20
26737	bl	pm_log2phys
26738	adrp	x0, .LANCHOR31
26739	ldrh	w2, [x25]
26740	ldrb	w1, [x0, #:lo12:.LANCHOR31]
26741	mov	w0, 24
26742	sub	w0, w0, w1
26743	sub	w1, w0, w2
26744	mov	w0, 1
26745	lsl	w0, w0, w1
26746	ldr	w1, [x29, 120]
26747	sub	w0, w0, #1
26748	lsr	w1, w1, w2
26749	and	w0, w0, w1
26750	adrp	x1, .LANCHOR81
26751	ldrb	w1, [x1, #:lo12:.LANCHOR81]
26752	udiv	w0, w0, w1
26753	bl	ftl_vpn_decrement
26754	b	.L4224
26755.L4197:
26756	mov	w0, -1
26757.L4175:
26758	ldp	x19, x20, [sp, 16]
26759	ldp	x21, x22, [sp, 32]
26760	ldp	x23, x24, [sp, 48]
26761	ldp	x25, x26, [sp, 64]
26762	ldp	x27, x28, [sp, 80]
26763	ldp	x29, x30, [sp], 128
26764	ret
26765	.size	zftl_discard, .-zftl_discard
26766	.section	.text.ftl_discard,"ax",@progbits
26767	.align	2
26768	.global	ftl_discard
26769	.type	ftl_discard, %function
26770ftl_discard:
26771	mov	w0, w1
26772	mov	w1, w2
26773	b	zftl_discard
26774	.size	ftl_discard, .-ftl_discard
26775	.section	.text.dump_pm_blk,"ax",@progbits
26776	.align	2
26777	.global	dump_pm_blk
26778	.type	dump_pm_blk, %function
26779dump_pm_blk:
26780	stp	x29, x30, [sp, -48]!
26781	mov	w2, 4
26782	adrp	x0, .LC237
26783	add	x0, x0, :lo12:.LC237
26784	add	x29, sp, 0
26785	stp	x19, x20, [sp, 16]
26786	adrp	x20, .LANCHOR69
26787	stp	x21, x22, [sp, 32]
26788	adrp	x21, .LANCHOR153
26789	ldr	x1, [x20, #:lo12:.LANCHOR69]
26790	mov	w19, 0
26791	mov	w22, 65535
26792	add	x1, x1, 704
26793	ldrh	w3, [x1, -6]
26794	bl	rknand_print_hex
26795	ldrh	w3, [x21, #:lo12:.LANCHOR153]
26796	add	x21, x21, :lo12:.LANCHOR153
26797	ldr	x1, [x20, #:lo12:.LANCHOR69]
26798	mov	w2, 2
26799	adrp	x0, .LC238
26800	add	x0, x0, :lo12:.LC238
26801	add	x1, x1, 416
26802	bl	rknand_print_hex
26803.L4227:
26804	ldrh	w0, [x21]
26805	cmp	w0, w19
26806	bhi	.L4229
26807	ldp	x19, x20, [sp, 16]
26808	ldp	x21, x22, [sp, 32]
26809	ldp	x29, x30, [sp], 48
26810	ret
26811.L4229:
26812	ldr	x0, [x20, #:lo12:.LANCHOR69]
26813	add	x0, x0, x19, sxtw 1
26814	ldrh	w0, [x0, 416]
26815	cmp	w0, w22
26816	beq	.L4228
26817	mov	x1, 0
26818	bl	ftl_sblk_dump
26819.L4228:
26820	add	w19, w19, 1
26821	and	w19, w19, 65535
26822	b	.L4227
26823	.size	dump_pm_blk, .-dump_pm_blk
26824	.global	g_pm_spare
26825	.global	pm_first_write
26826	.global	pm_force_gc
26827	.global	pm_gc_enable
26828	.global	pm_last_load_ram_id
26829	.global	pm_last_update_ram_id
26830	.global	pm_ram_info
26831	.global	sblk_gc_write_completed_queue_head
26832	.global	sblk_read_completed_queue_head
26833	.global	sblk_write_completed_queue_head
26834	.global	sblk_queue_head
26835	.global	slc_cache_sblk
26836	.global	xlc_data_sblk
26837	.global	slc_data_sblk
26838	.global	free_mix_sblk
26839	.global	free_xlc_sblk
26840	.global	free_slc_sblk
26841	.global	gp_data_xlc_data_head
26842	.global	gp_data_slc_data_head
26843	.global	gp_data_slc_cache_head
26844	.global	gp_free_mix_head
26845	.global	gp_free_xlc_head
26846	.global	gp_free_slc_head
26847	.global	gp_sblk_list_tbl
26848	.global	zftl_print_list_count
26849	.global	ftl_ext_info_first_write
26850	.global	ftl_sys_info_first_write
26851	.global	ftl_low_format_cur_blk
26852	.global	ftl_power_lost_flag
26853	.global	ftl_vpn_update_count
26854	.global	ftl_sblk_update_list_offset
26855	.global	ftl_sblk_update_list
26856	.global	ftl_sblk_vpn_update_id
26857	.global	ftl_sblk_lpa_tbl
26858	.global	ftl_sblk_vpn
26859	.global	gp_ftl_ext_info
26860	.global	gp_ftl_info
26861	.global	gp_blk_info
26862	.global	ftl_tmp_buffer
26863	.global	ftl_ext_info_data_buffer
26864	.global	ftl_info_data_buffer
26865	.global	ftl_tmp_spare
26866	.global	ftl_info_spare
26867	.global	g_ftl_info_blk
26868	.global	tlc_b05a_prog_tbl
26869	.global	tlc_prog_order
26870	.global	gc_des_ppa_tbl
26871	.global	gc_valid_page_ppa
26872	.global	gc_page_buf_id
26873	.global	gc_pre_ppa_tbl
26874	.global	gc_lpa_tbl
26875	.global	g_gc_info
26876	.global	gc_xlc_search_index
26877	.global	gc_xlc_data_index
26878	.global	gc_slc_cache_index
26879	.global	gc_slc_data_index
26880	.global	gc_free_slc_sblk_th
26881	.global	gc_slc_mode_vpn_th
26882	.global	gc_slc_mode_slc_vpn_th
26883	.global	gc_slc_mode_tlc_vpn_th
26884	.global	gc_tlc_mode_tlc_vpn_th
26885	.global	gc_tlc_mode_slc_vpn_th
26886	.global	gc_state
26887	.global	gc_mode
26888	.global	p_read_ahead_ext_buf
26889	.global	discard_sector_count
26890	.global	read_ahead_lpa
26891	.global	_ftl_gc_tag_page_num
26892	.global	read_buf_count
26893	.global	read_buf_head
26894	.global	write_commit_count
26895	.global	write_commit_head
26896	.global	write_buf_count
26897	.global	write_buf_head
26898	.global	ftl_flush_jiffies
26899	.global	lpa_hash
26900	.global	lpa_hash_index
26901	.global	_c_slc_to_xlc_ec_ratio
26902	.global	_c_mix_max_xlc_ec_count
26903	.global	_c_mix_max_slc_ec_count
26904	.global	_c_swl_xlc_gc_th
26905	.global	_c_swl_slc_gc_th
26906	.global	_gc_after_discard_en
26907	.global	_last_write_time
26908	.global	_last_read_time
26909	.global	_min_slc_super_block
26910	.global	_max_xlc_super_block
26911	.global	_c_max_pm_sblk
26912	.global	_c_ftl_pm_page_num
26913	.global	_c_totle_log_page
26914	.global	_c_totle_data_density
26915	.global	_c_user_data_density
26916	.global	_c_totle_phy_density
26917	.global	_c_ftl_block_addr_log2
26918	.global	_c_ftl_block_align_addr
26919	.global	_c_ftl_byte_pre_page
26920	.global	_c_ftl_nand_blks_per_die
26921	.global	_c_ftl_page_pre_slc_blk
26922	.global	_c_ftl_page_pre_blk
26923	.global	_c_ftl_blk_pre_plane
26924	.global	_c_ftl_nand_planes_num
26925	.global	_c_ftl_planes_per_die
26926	.global	_c_ftl_sec_per_page
26927	.global	_c_ftl_nand_die_num
26928	.global	_c_ftl_nand_type
26929	.global	zftl_debug
26930	.global	g_flash_blk_info
26931	.global	gp_flash_info
26932	.global	p_free_buf_head
26933	.global	free_buf_count
26934	.global	g_buf
26935	.global	nandc_ecc_sts
26936	.global	g_nandc_v6_master_info
26937	.global	nandc_randomizer_en
26938	.global	nandc_hw_seed
26939	.global	fill_spare_size
26940	.global	g_nandc_ecc_bits
26941	.global	g_nandc_tran_timeout
26942	.global	g_nandc_ver
26943	.global	gp_nandc
26944	.global	hy_f26_ref_value
26945	.global	sd15_tlc_rr
26946	.global	sd15_slc_rr
26947	.global	g_nand_para_info
26948	.global	gp_nand_para_info
26949	.global	g_nand_opt_para
26950	.global	g_msb_page_tbl
26951	.global	g_lsb_page_tbl
26952	.global	g_die_addr
26953	.global	g_die_cs_idx
26954	.global	IDByte
26955	.global	flash_read_retry
26956	.global	_c_ftl_cs_bits
26957	.global	g_maxRetryCount
26958	.global	g_maxRegNum
26959	.global	g_retryMode
26960	.global	g_flash_toggle_mode_en
26961	.global	g_flash_ymtc_3d_tlc_flag
26962	.global	g_flash_micron_3d_tlc_b16a
26963	.global	g_flash_micron_3d_tlc_b05a
26964	.global	g_flash_micron_3d_tlc_flag
26965	.global	g_flash_3d_mlc_flag
26966	.global	g_flash_3d_tlc_flag
26967	.global	g_flash_multi_page_prog_en
26968	.global	g_flash_multi_page_read_en
26969	.global	g_flash_interface_mode
26970	.global	g_idb_ecc_bits
26971	.global	g_idb_slc_mode_enable
26972	.global	g_one_pass_program
26973	.global	g_slc_mode_addr2
26974	.global	g_slc_mode_enable
26975	.global	g_flash_cur_mode
26976	.global	g_flash_six_addr
26977	.global	g_flash_slc_mode
26978	.global	g_slc_page_num
26979	.global	g_totle_phy_block
26980	.global	g_block_align_addr
26981	.global	g_flash_reversd_blks
26982	.global	g_nand_max_die
26983	.global	g_flash_tmp_spare_buffer
26984	.global	g_flash_tmp_page_buffer
26985	.global	g_flash_sys_spare_buffer
26986	.global	g_flash_spare_buffer
26987	.global	g_flash_page_buffer
26988	.section	.bss.IDByte,"aw",@nobits
26989	.align	2
26990	.set	.LANCHOR47,. + 0
26991	.type	IDByte, %object
26992	.size	IDByte, 32
26993IDByte:
26994	.zero	32
26995	.section	.bss._c_ftl_blk_pre_plane,"aw",@nobits
26996	.align	1
26997	.set	.LANCHOR8,. + 0
26998	.type	_c_ftl_blk_pre_plane, %object
26999	.size	_c_ftl_blk_pre_plane, 2
27000_c_ftl_blk_pre_plane:
27001	.zero	2
27002	.section	.bss._c_ftl_block_addr_log2,"aw",@nobits
27003	.align	1
27004	.set	.LANCHOR80,. + 0
27005	.type	_c_ftl_block_addr_log2, %object
27006	.size	_c_ftl_block_addr_log2, 2
27007_c_ftl_block_addr_log2:
27008	.zero	2
27009	.section	.bss._c_ftl_block_align_addr,"aw",@nobits
27010	.align	1
27011	.set	.LANCHOR117,. + 0
27012	.type	_c_ftl_block_align_addr, %object
27013	.size	_c_ftl_block_align_addr, 2
27014_c_ftl_block_align_addr:
27015	.zero	2
27016	.section	.bss._c_ftl_byte_pre_page,"aw",@nobits
27017	.align	1
27018	.set	.LANCHOR221,. + 0
27019	.type	_c_ftl_byte_pre_page, %object
27020	.size	_c_ftl_byte_pre_page, 2
27021_c_ftl_byte_pre_page:
27022	.zero	2
27023	.section	.bss._c_ftl_cs_bits,"aw",@nobits
27024	.set	.LANCHOR31,. + 0
27025	.type	_c_ftl_cs_bits, %object
27026	.size	_c_ftl_cs_bits, 1
27027_c_ftl_cs_bits:
27028	.zero	1
27029	.section	.bss._c_ftl_nand_blks_per_die,"aw",@nobits
27030	.align	1
27031	.type	_c_ftl_nand_blks_per_die, %object
27032	.size	_c_ftl_nand_blks_per_die, 2
27033_c_ftl_nand_blks_per_die:
27034	.zero	2
27035	.section	.bss._c_ftl_nand_die_num,"aw",@nobits
27036	.set	.LANCHOR118,. + 0
27037	.type	_c_ftl_nand_die_num, %object
27038	.size	_c_ftl_nand_die_num, 1
27039_c_ftl_nand_die_num:
27040	.zero	1
27041	.section	.bss._c_ftl_nand_planes_num,"aw",@nobits
27042	.set	.LANCHOR85,. + 0
27043	.type	_c_ftl_nand_planes_num, %object
27044	.size	_c_ftl_nand_planes_num, 1
27045_c_ftl_nand_planes_num:
27046	.zero	1
27047	.section	.bss._c_ftl_nand_type,"aw",@nobits
27048	.set	.LANCHOR84,. + 0
27049	.type	_c_ftl_nand_type, %object
27050	.size	_c_ftl_nand_type, 1
27051_c_ftl_nand_type:
27052	.zero	1
27053	.section	.bss._c_ftl_page_pre_blk,"aw",@nobits
27054	.align	1
27055	.set	.LANCHOR91,. + 0
27056	.type	_c_ftl_page_pre_blk, %object
27057	.size	_c_ftl_page_pre_blk, 2
27058_c_ftl_page_pre_blk:
27059	.zero	2
27060	.section	.bss._c_ftl_page_pre_slc_blk,"aw",@nobits
27061	.align	1
27062	.set	.LANCHOR100,. + 0
27063	.type	_c_ftl_page_pre_slc_blk, %object
27064	.size	_c_ftl_page_pre_slc_blk, 2
27065_c_ftl_page_pre_slc_blk:
27066	.zero	2
27067	.section	.bss._c_ftl_planes_per_die,"aw",@nobits
27068	.set	.LANCHOR81,. + 0
27069	.type	_c_ftl_planes_per_die, %object
27070	.size	_c_ftl_planes_per_die, 1
27071_c_ftl_planes_per_die:
27072	.zero	1
27073	.section	.bss._c_ftl_pm_page_num,"aw",@nobits
27074	.align	1
27075	.set	.LANCHOR203,. + 0
27076	.type	_c_ftl_pm_page_num, %object
27077	.size	_c_ftl_pm_page_num, 2
27078_c_ftl_pm_page_num:
27079	.zero	2
27080	.section	.bss._c_ftl_sec_per_page,"aw",@nobits
27081	.set	.LANCHOR68,. + 0
27082	.type	_c_ftl_sec_per_page, %object
27083	.size	_c_ftl_sec_per_page, 1
27084_c_ftl_sec_per_page:
27085	.zero	1
27086	.section	.bss._c_max_pm_sblk,"aw",@nobits
27087	.align	1
27088	.set	.LANCHOR153,. + 0
27089	.type	_c_max_pm_sblk, %object
27090	.size	_c_max_pm_sblk, 2
27091_c_max_pm_sblk:
27092	.zero	2
27093	.section	.bss._c_mix_max_slc_ec_count,"aw",@nobits
27094	.align	1
27095	.set	.LANCHOR132,. + 0
27096	.type	_c_mix_max_slc_ec_count, %object
27097	.size	_c_mix_max_slc_ec_count, 2
27098_c_mix_max_slc_ec_count:
27099	.zero	2
27100	.section	.bss._c_mix_max_xlc_ec_count,"aw",@nobits
27101	.align	1
27102	.set	.LANCHOR131,. + 0
27103	.type	_c_mix_max_xlc_ec_count, %object
27104	.size	_c_mix_max_xlc_ec_count, 2
27105_c_mix_max_xlc_ec_count:
27106	.zero	2
27107	.section	.bss._c_slc_to_xlc_ec_ratio,"aw",@nobits
27108	.align	1
27109	.set	.LANCHOR10,. + 0
27110	.type	_c_slc_to_xlc_ec_ratio, %object
27111	.size	_c_slc_to_xlc_ec_ratio, 2
27112_c_slc_to_xlc_ec_ratio:
27113	.zero	2
27114	.section	.bss._c_swl_slc_gc_th,"aw",@nobits
27115	.align	1
27116	.set	.LANCHOR150,. + 0
27117	.type	_c_swl_slc_gc_th, %object
27118	.size	_c_swl_slc_gc_th, 2
27119_c_swl_slc_gc_th:
27120	.zero	2
27121	.section	.bss._c_swl_xlc_gc_th,"aw",@nobits
27122	.align	1
27123	.set	.LANCHOR151,. + 0
27124	.type	_c_swl_xlc_gc_th, %object
27125	.size	_c_swl_xlc_gc_th, 2
27126_c_swl_xlc_gc_th:
27127	.zero	2
27128	.section	.bss._c_totle_data_density,"aw",@nobits
27129	.align	2
27130	.set	.LANCHOR228,. + 0
27131	.type	_c_totle_data_density, %object
27132	.size	_c_totle_data_density, 4
27133_c_totle_data_density:
27134	.zero	4
27135	.section	.bss._c_totle_log_page,"aw",@nobits
27136	.align	2
27137	.set	.LANCHOR219,. + 0
27138	.type	_c_totle_log_page, %object
27139	.size	_c_totle_log_page, 4
27140_c_totle_log_page:
27141	.zero	4
27142	.section	.bss._c_totle_phy_density,"aw",@nobits
27143	.align	2
27144	.set	.LANCHOR227,. + 0
27145	.type	_c_totle_phy_density, %object
27146	.size	_c_totle_phy_density, 4
27147_c_totle_phy_density:
27148	.zero	4
27149	.section	.bss._c_user_data_density,"aw",@nobits
27150	.align	2
27151	.set	.LANCHOR73,. + 0
27152	.type	_c_user_data_density, %object
27153	.size	_c_user_data_density, 4
27154_c_user_data_density:
27155	.zero	4
27156	.section	.bss._ftl_gc_tag_page_num,"aw",@nobits
27157	.set	.LANCHOR224,. + 0
27158	.type	_ftl_gc_tag_page_num, %object
27159	.size	_ftl_gc_tag_page_num, 1
27160_ftl_gc_tag_page_num:
27161	.zero	1
27162	.section	.bss._gc_after_discard_en,"aw",@nobits
27163	.align	2
27164	.set	.LANCHOR128,. + 0
27165	.type	_gc_after_discard_en, %object
27166	.size	_gc_after_discard_en, 4
27167_gc_after_discard_en:
27168	.zero	4
27169	.section	.bss._last_read_time,"aw",@nobits
27170	.align	2
27171	.type	_last_read_time, %object
27172	.size	_last_read_time, 4
27173_last_read_time:
27174	.zero	4
27175	.section	.bss._last_write_time,"aw",@nobits
27176	.align	2
27177	.type	_last_write_time, %object
27178	.size	_last_write_time, 4
27179_last_write_time:
27180	.zero	4
27181	.section	.bss._max_xlc_super_block,"aw",@nobits
27182	.align	1
27183	.set	.LANCHOR107,. + 0
27184	.type	_max_xlc_super_block, %object
27185	.size	_max_xlc_super_block, 2
27186_max_xlc_super_block:
27187	.zero	2
27188	.section	.bss._min_slc_super_block,"aw",@nobits
27189	.align	1
27190	.set	.LANCHOR104,. + 0
27191	.type	_min_slc_super_block, %object
27192	.size	_min_slc_super_block, 2
27193_min_slc_super_block:
27194	.zero	2
27195	.section	.bss.discard_sector_count,"aw",@nobits
27196	.align	2
27197	.set	.LANCHOR241,. + 0
27198	.type	discard_sector_count, %object
27199	.size	discard_sector_count, 4
27200discard_sector_count:
27201	.zero	4
27202	.section	.bss.fill_spare_size,"aw",@nobits
27203	.align	1
27204	.set	.LANCHOR53,. + 0
27205	.type	fill_spare_size, %object
27206	.size	fill_spare_size, 2
27207fill_spare_size:
27208	.zero	2
27209	.section	.bss.flash_ddr_tuning_sdr_read_count,"aw",@nobits
27210	.align	2
27211	.set	.LANCHOR170,. + 0
27212	.type	flash_ddr_tuning_sdr_read_count, %object
27213	.size	flash_ddr_tuning_sdr_read_count, 4
27214flash_ddr_tuning_sdr_read_count:
27215	.zero	4
27216	.section	.bss.flash_read_retry,"aw",@nobits
27217	.align	3
27218	.set	.LANCHOR172,. + 0
27219	.type	flash_read_retry, %object
27220	.size	flash_read_retry, 8
27221flash_read_retry:
27222	.zero	8
27223	.section	.bss.free_buf_count,"aw",@nobits
27224	.set	.LANCHOR57,. + 0
27225	.type	free_buf_count, %object
27226	.size	free_buf_count, 1
27227free_buf_count:
27228	.zero	1
27229	.section	.bss.free_mix_sblk,"aw",@nobits
27230	.align	1
27231	.set	.LANCHOR113,. + 0
27232	.type	free_mix_sblk, %object
27233	.size	free_mix_sblk, 2
27234free_mix_sblk:
27235	.zero	2
27236	.section	.bss.free_slc_sblk,"aw",@nobits
27237	.align	1
27238	.set	.LANCHOR109,. + 0
27239	.type	free_slc_sblk, %object
27240	.size	free_slc_sblk, 2
27241free_slc_sblk:
27242	.zero	2
27243	.section	.bss.free_xlc_sblk,"aw",@nobits
27244	.align	1
27245	.set	.LANCHOR111,. + 0
27246	.type	free_xlc_sblk, %object
27247	.size	free_xlc_sblk, 2
27248free_xlc_sblk:
27249	.zero	2
27250	.section	.bss.ftl_ext_info_data_buffer,"aw",@nobits
27251	.align	3
27252	.set	.LANCHOR199,. + 0
27253	.type	ftl_ext_info_data_buffer, %object
27254	.size	ftl_ext_info_data_buffer, 8
27255ftl_ext_info_data_buffer:
27256	.zero	8
27257	.section	.bss.ftl_ext_info_first_write,"aw",@nobits
27258	.set	.LANCHOR198,. + 0
27259	.type	ftl_ext_info_first_write, %object
27260	.size	ftl_ext_info_first_write, 1
27261ftl_ext_info_first_write:
27262	.zero	1
27263	.section	.bss.ftl_flush_jiffies,"aw",@nobits
27264	.align	2
27265	.set	.LANCHOR236,. + 0
27266	.type	ftl_flush_jiffies, %object
27267	.size	ftl_flush_jiffies, 4
27268ftl_flush_jiffies:
27269	.zero	4
27270	.section	.bss.ftl_info_data_buffer,"aw",@nobits
27271	.align	3
27272	.set	.LANCHOR194,. + 0
27273	.type	ftl_info_data_buffer, %object
27274	.size	ftl_info_data_buffer, 8
27275ftl_info_data_buffer:
27276	.zero	8
27277	.section	.bss.ftl_info_spare,"aw",@nobits
27278	.align	6
27279	.set	.LANCHOR192,. + 0
27280	.type	ftl_info_spare, %object
27281	.size	ftl_info_spare, 256
27282ftl_info_spare:
27283	.zero	256
27284	.section	.bss.ftl_low_format_cur_blk,"aw",@nobits
27285	.align	1
27286	.set	.LANCHOR74,. + 0
27287	.type	ftl_low_format_cur_blk, %object
27288	.size	ftl_low_format_cur_blk, 2
27289ftl_low_format_cur_blk:
27290	.zero	2
27291	.section	.bss.ftl_power_lost_flag,"aw",@nobits
27292	.set	.LANCHOR197,. + 0
27293	.type	ftl_power_lost_flag, %object
27294	.size	ftl_power_lost_flag, 1
27295ftl_power_lost_flag:
27296	.zero	1
27297	.section	.bss.ftl_sblk_lpa_tbl,"aw",@nobits
27298	.align	3
27299	.set	.LANCHOR123,. + 0
27300	.type	ftl_sblk_lpa_tbl, %object
27301	.size	ftl_sblk_lpa_tbl, 8
27302ftl_sblk_lpa_tbl:
27303	.zero	8
27304	.section	.bss.ftl_sblk_update_list,"aw",@nobits
27305	.align	3
27306	.set	.LANCHOR79,. + 0
27307	.type	ftl_sblk_update_list, %object
27308	.size	ftl_sblk_update_list, 16
27309ftl_sblk_update_list:
27310	.zero	16
27311	.section	.bss.ftl_sblk_update_list_offset,"aw",@nobits
27312	.align	1
27313	.set	.LANCHOR129,. + 0
27314	.type	ftl_sblk_update_list_offset, %object
27315	.size	ftl_sblk_update_list_offset, 2
27316ftl_sblk_update_list_offset:
27317	.zero	2
27318	.section	.bss.ftl_sblk_vpn,"aw",@nobits
27319	.align	3
27320	.set	.LANCHOR11,. + 0
27321	.type	ftl_sblk_vpn, %object
27322	.size	ftl_sblk_vpn, 8
27323ftl_sblk_vpn:
27324	.zero	8
27325	.section	.bss.ftl_sblk_vpn_update_id,"aw",@nobits
27326	.align	1
27327	.set	.LANCHOR78,. + 0
27328	.type	ftl_sblk_vpn_update_id, %object
27329	.size	ftl_sblk_vpn_update_id, 2
27330ftl_sblk_vpn_update_id:
27331	.zero	2
27332	.section	.bss.ftl_sys_info_first_write,"aw",@nobits
27333	.set	.LANCHOR196,. + 0
27334	.type	ftl_sys_info_first_write, %object
27335	.size	ftl_sys_info_first_write, 1
27336ftl_sys_info_first_write:
27337	.zero	1
27338	.section	.bss.ftl_tmp_buffer,"aw",@nobits
27339	.align	3
27340	.set	.LANCHOR189,. + 0
27341	.type	ftl_tmp_buffer, %object
27342	.size	ftl_tmp_buffer, 8
27343ftl_tmp_buffer:
27344	.zero	8
27345	.section	.bss.ftl_tmp_spare,"aw",@nobits
27346	.align	6
27347	.set	.LANCHOR190,. + 0
27348	.type	ftl_tmp_spare, %object
27349	.size	ftl_tmp_spare, 256
27350ftl_tmp_spare:
27351	.zero	256
27352	.section	.bss.ftl_vpn_update_count,"aw",@nobits
27353	.align	1
27354	.set	.LANCHOR127,. + 0
27355	.type	ftl_vpn_update_count, %object
27356	.size	ftl_vpn_update_count, 2
27357ftl_vpn_update_count:
27358	.zero	2
27359	.section	.bss.g_block_align_addr,"aw",@nobits
27360	.align	1
27361	.set	.LANCHOR2,. + 0
27362	.type	g_block_align_addr, %object
27363	.size	g_block_align_addr, 2
27364g_block_align_addr:
27365	.zero	2
27366	.section	.bss.g_buf,"aw",@nobits
27367	.align	3
27368	.set	.LANCHOR55,. + 0
27369	.type	g_buf, %object
27370	.size	g_buf, 1024
27371g_buf:
27372	.zero	1024
27373	.section	.bss.g_die_addr,"aw",@nobits
27374	.align	2
27375	.set	.LANCHOR146,. + 0
27376	.type	g_die_addr, %object
27377	.size	g_die_addr, 32
27378g_die_addr:
27379	.zero	32
27380	.section	.bss.g_die_cs_idx,"aw",@nobits
27381	.align	2
27382	.set	.LANCHOR29,. + 0
27383	.type	g_die_cs_idx, %object
27384	.size	g_die_cs_idx, 8
27385g_die_cs_idx:
27386	.zero	8
27387	.section	.bss.g_flash_3d_mlc_flag,"aw",@nobits
27388	.set	.LANCHOR86,. + 0
27389	.type	g_flash_3d_mlc_flag, %object
27390	.size	g_flash_3d_mlc_flag, 1
27391g_flash_3d_mlc_flag:
27392	.zero	1
27393	.section	.bss.g_flash_3d_tlc_flag,"aw",@nobits
27394	.set	.LANCHOR89,. + 0
27395	.type	g_flash_3d_tlc_flag, %object
27396	.size	g_flash_3d_tlc_flag, 1
27397g_flash_3d_tlc_flag:
27398	.zero	1
27399	.section	.bss.g_flash_blk_info,"aw",@nobits
27400	.align	3
27401	.set	.LANCHOR210,. + 0
27402	.type	g_flash_blk_info, %object
27403	.size	g_flash_blk_info, 4
27404g_flash_blk_info:
27405	.zero	4
27406	.section	.bss.g_flash_cur_mode,"aw",@nobits
27407	.align	3
27408	.set	.LANCHOR33,. + 0
27409	.type	g_flash_cur_mode, %object
27410	.size	g_flash_cur_mode, 4
27411g_flash_cur_mode:
27412	.zero	4
27413	.section	.bss.g_flash_interface_mode,"aw",@nobits
27414	.set	.LANCHOR48,. + 0
27415	.type	g_flash_interface_mode, %object
27416	.size	g_flash_interface_mode, 1
27417g_flash_interface_mode:
27418	.zero	1
27419	.section	.bss.g_flash_micron_3d_tlc_b05a,"aw",@nobits
27420	.set	.LANCHOR130,. + 0
27421	.type	g_flash_micron_3d_tlc_b05a, %object
27422	.size	g_flash_micron_3d_tlc_b05a, 1
27423g_flash_micron_3d_tlc_b05a:
27424	.zero	1
27425	.section	.bss.g_flash_micron_3d_tlc_b16a,"aw",@nobits
27426	.set	.LANCHOR216,. + 0
27427	.type	g_flash_micron_3d_tlc_b16a, %object
27428	.size	g_flash_micron_3d_tlc_b16a, 1
27429g_flash_micron_3d_tlc_b16a:
27430	.zero	1
27431	.section	.bss.g_flash_micron_3d_tlc_flag,"aw",@nobits
27432	.set	.LANCHOR35,. + 0
27433	.type	g_flash_micron_3d_tlc_flag, %object
27434	.size	g_flash_micron_3d_tlc_flag, 1
27435g_flash_micron_3d_tlc_flag:
27436	.zero	1
27437	.section	.bss.g_flash_multi_page_prog_en,"aw",@nobits
27438	.set	.LANCHOR44,. + 0
27439	.type	g_flash_multi_page_prog_en, %object
27440	.size	g_flash_multi_page_prog_en, 1
27441g_flash_multi_page_prog_en:
27442	.zero	1
27443	.section	.bss.g_flash_multi_page_read_en,"aw",@nobits
27444	.set	.LANCHOR185,. + 0
27445	.type	g_flash_multi_page_read_en, %object
27446	.size	g_flash_multi_page_read_en, 1
27447g_flash_multi_page_read_en:
27448	.zero	1
27449	.section	.bss.g_flash_page_buffer,"aw",@nobits
27450	.align	3
27451	.set	.LANCHOR174,. + 0
27452	.type	g_flash_page_buffer, %object
27453	.size	g_flash_page_buffer, 8
27454g_flash_page_buffer:
27455	.zero	8
27456	.section	.bss.g_flash_reversd_blks,"aw",@nobits
27457	.set	.LANCHOR215,. + 0
27458	.type	g_flash_reversd_blks, %object
27459	.size	g_flash_reversd_blks, 1
27460g_flash_reversd_blks:
27461	.zero	1
27462	.section	.bss.g_flash_six_addr,"aw",@nobits
27463	.set	.LANCHOR30,. + 0
27464	.type	g_flash_six_addr, %object
27465	.size	g_flash_six_addr, 1
27466g_flash_six_addr:
27467	.zero	1
27468	.section	.bss.g_flash_slc_mode,"aw",@nobits
27469	.set	.LANCHOR0,. + 0
27470	.type	g_flash_slc_mode, %object
27471	.size	g_flash_slc_mode, 1
27472g_flash_slc_mode:
27473	.zero	1
27474	.section	.bss.g_flash_spare_buffer,"aw",@nobits
27475	.align	3
27476	.set	.LANCHOR173,. + 0
27477	.type	g_flash_spare_buffer, %object
27478	.size	g_flash_spare_buffer, 8
27479g_flash_spare_buffer:
27480	.zero	8
27481	.section	.bss.g_flash_sys_spare_buffer,"aw",@nobits
27482	.align	3
27483	.set	.LANCHOR209,. + 0
27484	.type	g_flash_sys_spare_buffer, %object
27485	.size	g_flash_sys_spare_buffer, 8
27486g_flash_sys_spare_buffer:
27487	.zero	8
27488	.section	.bss.g_flash_tmp_page_buffer,"aw",@nobits
27489	.align	3
27490	.set	.LANCHOR164,. + 0
27491	.type	g_flash_tmp_page_buffer, %object
27492	.size	g_flash_tmp_page_buffer, 8
27493g_flash_tmp_page_buffer:
27494	.zero	8
27495	.section	.bss.g_flash_tmp_spare_buffer,"aw",@nobits
27496	.align	3
27497	.set	.LANCHOR166,. + 0
27498	.type	g_flash_tmp_spare_buffer, %object
27499	.size	g_flash_tmp_spare_buffer, 8
27500g_flash_tmp_spare_buffer:
27501	.zero	8
27502	.section	.bss.g_flash_toggle_mode_en,"aw",@nobits
27503	.set	.LANCHOR26,. + 0
27504	.type	g_flash_toggle_mode_en, %object
27505	.size	g_flash_toggle_mode_en, 1
27506g_flash_toggle_mode_en:
27507	.zero	1
27508	.section	.bss.g_flash_ymtc_3d_tlc_flag,"aw",@nobits
27509	.set	.LANCHOR36,. + 0
27510	.type	g_flash_ymtc_3d_tlc_flag, %object
27511	.size	g_flash_ymtc_3d_tlc_flag, 1
27512g_flash_ymtc_3d_tlc_flag:
27513	.zero	1
27514	.section	.bss.g_ftl_info_blk,"aw",@nobits
27515	.align	6
27516	.set	.LANCHOR193,. + 0
27517	.type	g_ftl_info_blk, %object
27518	.size	g_ftl_info_blk, 4
27519g_ftl_info_blk:
27520	.zero	4
27521	.section	.bss.g_gc_info,"aw",@nobits
27522	.align	3
27523	.set	.LANCHOR76,. + 0
27524	.type	g_gc_info, %object
27525	.size	g_gc_info, 2216
27526g_gc_info:
27527	.zero	2216
27528	.section	.bss.g_idb_ecc_bits,"aw",@nobits
27529	.set	.LANCHOR22,. + 0
27530	.type	g_idb_ecc_bits, %object
27531	.size	g_idb_ecc_bits, 1
27532g_idb_ecc_bits:
27533	.zero	1
27534	.section	.bss.g_idb_slc_mode_enable,"aw",@nobits
27535	.set	.LANCHOR24,. + 0
27536	.type	g_idb_slc_mode_enable, %object
27537	.size	g_idb_slc_mode_enable, 1
27538g_idb_slc_mode_enable:
27539	.zero	1
27540	.section	.bss.g_lsb_page_tbl,"aw",@nobits
27541	.align	2
27542	.set	.LANCHOR3,. + 0
27543	.type	g_lsb_page_tbl, %object
27544	.size	g_lsb_page_tbl, 1024
27545g_lsb_page_tbl:
27546	.zero	1024
27547	.section	.bss.g_maxRegNum,"aw",@nobits
27548	.set	.LANCHOR18,. + 0
27549	.type	g_maxRegNum, %object
27550	.size	g_maxRegNum, 1
27551g_maxRegNum:
27552	.zero	1
27553	.section	.bss.g_maxRetryCount,"aw",@nobits
27554	.set	.LANCHOR167,. + 0
27555	.type	g_maxRetryCount, %object
27556	.size	g_maxRetryCount, 1
27557g_maxRetryCount:
27558	.zero	1
27559	.section	.bss.g_msb_page_tbl,"aw",@nobits
27560	.align	2
27561	.set	.LANCHOR143,. + 0
27562	.type	g_msb_page_tbl, %object
27563	.size	g_msb_page_tbl, 2048
27564g_msb_page_tbl:
27565	.zero	2048
27566	.section	.bss.g_nand_max_die,"aw",@nobits
27567	.set	.LANCHOR23,. + 0
27568	.type	g_nand_max_die, %object
27569	.size	g_nand_max_die, 1
27570g_nand_max_die:
27571	.zero	1
27572	.section	.bss.g_nand_opt_para,"aw",@nobits
27573	.align	3
27574	.set	.LANCHOR25,. + 0
27575	.type	g_nand_opt_para, %object
27576	.size	g_nand_opt_para, 32
27577g_nand_opt_para:
27578	.zero	32
27579	.section	.bss.g_nandc_ecc_bits,"aw",@nobits
27580	.set	.LANCHOR49,. + 0
27581	.type	g_nandc_ecc_bits, %object
27582	.size	g_nandc_ecc_bits, 1
27583g_nandc_ecc_bits:
27584	.zero	1
27585	.section	.bss.g_nandc_tran_timeout,"aw",@nobits
27586	.set	.LANCHOR165,. + 0
27587	.type	g_nandc_tran_timeout, %object
27588	.size	g_nandc_tran_timeout, 1
27589g_nandc_tran_timeout:
27590	.zero	1
27591	.section	.bss.g_nandc_v6_master_info,"aw",@nobits
27592	.align	3
27593	.set	.LANCHOR52,. + 0
27594	.type	g_nandc_v6_master_info, %object
27595	.size	g_nandc_v6_master_info, 40
27596g_nandc_v6_master_info:
27597	.zero	40
27598	.section	.bss.g_nandc_ver,"aw",@nobits
27599	.set	.LANCHOR27,. + 0
27600	.type	g_nandc_ver, %object
27601	.size	g_nandc_ver, 1
27602g_nandc_ver:
27603	.zero	1
27604	.section	.bss.g_one_pass_program,"aw",@nobits
27605	.set	.LANCHOR87,. + 0
27606	.type	g_one_pass_program, %object
27607	.size	g_one_pass_program, 1
27608g_one_pass_program:
27609	.zero	1
27610	.section	.bss.g_pm_spare,"aw",@nobits
27611	.align	3
27612	.set	.LANCHOR206,. + 0
27613	.type	g_pm_spare, %object
27614	.size	g_pm_spare, 8
27615g_pm_spare:
27616	.zero	8
27617	.section	.bss.g_retryMode,"aw",@nobits
27618	.set	.LANCHOR16,. + 0
27619	.type	g_retryMode, %object
27620	.size	g_retryMode, 1
27621g_retryMode:
27622	.zero	1
27623	.section	.bss.g_slc_mode_addr2,"aw",@nobits
27624	.set	.LANCHOR1,. + 0
27625	.type	g_slc_mode_addr2, %object
27626	.size	g_slc_mode_addr2, 1
27627g_slc_mode_addr2:
27628	.zero	1
27629	.section	.bss.g_slc_mode_enable,"aw",@nobits
27630	.type	g_slc_mode_enable, %object
27631	.size	g_slc_mode_enable, 1
27632g_slc_mode_enable:
27633	.zero	1
27634	.section	.bss.g_slc_page_num,"aw",@nobits
27635	.align	1
27636	.set	.LANCHOR145,. + 0
27637	.type	g_slc_page_num, %object
27638	.size	g_slc_page_num, 2
27639g_slc_page_num:
27640	.zero	2
27641	.section	.bss.g_totle_phy_block,"aw",@nobits
27642	.align	1
27643	.set	.LANCHOR147,. + 0
27644	.type	g_totle_phy_block, %object
27645	.size	g_totle_phy_block, 2
27646g_totle_phy_block:
27647	.zero	2
27648	.section	.bss.gc_des_ppa_tbl,"aw",@nobits
27649	.align	3
27650	.set	.LANCHOR162,. + 0
27651	.type	gc_des_ppa_tbl, %object
27652	.size	gc_des_ppa_tbl, 8
27653gc_des_ppa_tbl:
27654	.zero	8
27655	.section	.bss.gc_free_slc_sblk_th,"aw",@nobits
27656	.align	1
27657	.set	.LANCHOR92,. + 0
27658	.type	gc_free_slc_sblk_th, %object
27659	.size	gc_free_slc_sblk_th, 2
27660gc_free_slc_sblk_th:
27661	.zero	2
27662	.section	.bss.gc_lpa_tbl,"aw",@nobits
27663	.align	3
27664	.set	.LANCHOR160,. + 0
27665	.type	gc_lpa_tbl, %object
27666	.size	gc_lpa_tbl, 8
27667gc_lpa_tbl:
27668	.zero	8
27669	.section	.bss.gc_mode,"aw",@nobits
27670	.set	.LANCHOR90,. + 0
27671	.type	gc_mode, %object
27672	.size	gc_mode, 1
27673gc_mode:
27674	.zero	1
27675	.section	.bss.gc_page_buf_id,"aw",@nobits
27676	.align	3
27677	.set	.LANCHOR88,. + 0
27678	.type	gc_page_buf_id, %object
27679	.size	gc_page_buf_id, 8
27680gc_page_buf_id:
27681	.zero	8
27682	.section	.bss.gc_pre_ppa_tbl,"aw",@nobits
27683	.align	3
27684	.set	.LANCHOR161,. + 0
27685	.type	gc_pre_ppa_tbl, %object
27686	.size	gc_pre_ppa_tbl, 8
27687gc_pre_ppa_tbl:
27688	.zero	8
27689	.section	.bss.gc_search_count,"aw",@nobits
27690	.align	2
27691	.set	.LANCHOR158,. + 0
27692	.type	gc_search_count, %object
27693	.size	gc_search_count, 4
27694gc_search_count:
27695	.zero	4
27696	.section	.bss.gc_slc_cache_index,"aw",@nobits
27697	.align	1
27698	.set	.LANCHOR94,. + 0
27699	.type	gc_slc_cache_index, %object
27700	.size	gc_slc_cache_index, 2
27701gc_slc_cache_index:
27702	.zero	2
27703	.section	.bss.gc_slc_data_index,"aw",@nobits
27704	.align	1
27705	.set	.LANCHOR93,. + 0
27706	.type	gc_slc_data_index, %object
27707	.size	gc_slc_data_index, 2
27708gc_slc_data_index:
27709	.zero	2
27710	.section	.bss.gc_slc_mode_slc_vpn_th,"aw",@nobits
27711	.align	1
27712	.set	.LANCHOR159,. + 0
27713	.type	gc_slc_mode_slc_vpn_th, %object
27714	.size	gc_slc_mode_slc_vpn_th, 2
27715gc_slc_mode_slc_vpn_th:
27716	.zero	2
27717	.section	.bss.gc_slc_mode_tlc_vpn_th,"aw",@nobits
27718	.align	1
27719	.set	.LANCHOR99,. + 0
27720	.type	gc_slc_mode_tlc_vpn_th, %object
27721	.size	gc_slc_mode_tlc_vpn_th, 2
27722gc_slc_mode_tlc_vpn_th:
27723	.zero	2
27724	.section	.bss.gc_slc_mode_vpn_th,"aw",@nobits
27725	.align	1
27726	.set	.LANCHOR75,. + 0
27727	.type	gc_slc_mode_vpn_th, %object
27728	.size	gc_slc_mode_vpn_th, 2
27729gc_slc_mode_vpn_th:
27730	.zero	2
27731	.section	.bss.gc_state,"aw",@nobits
27732	.set	.LANCHOR157,. + 0
27733	.type	gc_state, %object
27734	.size	gc_state, 1
27735gc_state:
27736	.zero	1
27737	.section	.bss.gc_tlc_mode_slc_vpn_th,"aw",@nobits
27738	.align	1
27739	.set	.LANCHOR108,. + 0
27740	.type	gc_tlc_mode_slc_vpn_th, %object
27741	.size	gc_tlc_mode_slc_vpn_th, 2
27742gc_tlc_mode_slc_vpn_th:
27743	.zero	2
27744	.section	.bss.gc_tlc_mode_tlc_vpn_th,"aw",@nobits
27745	.align	1
27746	.set	.LANCHOR106,. + 0
27747	.type	gc_tlc_mode_tlc_vpn_th, %object
27748	.size	gc_tlc_mode_tlc_vpn_th, 2
27749gc_tlc_mode_tlc_vpn_th:
27750	.zero	2
27751	.section	.bss.gc_valid_page_ppa,"aw",@nobits
27752	.align	3
27753	.set	.LANCHOR82,. + 0
27754	.type	gc_valid_page_ppa, %object
27755	.size	gc_valid_page_ppa, 8
27756gc_valid_page_ppa:
27757	.zero	8
27758	.section	.bss.gc_xlc_data_index,"aw",@nobits
27759	.align	1
27760	.set	.LANCHOR95,. + 0
27761	.type	gc_xlc_data_index, %object
27762	.size	gc_xlc_data_index, 2
27763gc_xlc_data_index:
27764	.zero	2
27765	.section	.bss.gc_xlc_search_index,"aw",@nobits
27766	.align	1
27767	.set	.LANCHOR102,. + 0
27768	.type	gc_xlc_search_index, %object
27769	.size	gc_xlc_search_index, 2
27770gc_xlc_search_index:
27771	.zero	2
27772	.section	.bss.gp_blk_info,"aw",@nobits
27773	.align	3
27774	.set	.LANCHOR9,. + 0
27775	.type	gp_blk_info, %object
27776	.size	gp_blk_info, 8
27777gp_blk_info:
27778	.zero	8
27779	.section	.bss.gp_data_slc_cache_head,"aw",@nobits
27780	.align	3
27781	.set	.LANCHOR96,. + 0
27782	.type	gp_data_slc_cache_head, %object
27783	.size	gp_data_slc_cache_head, 8
27784gp_data_slc_cache_head:
27785	.zero	8
27786	.section	.bss.gp_data_slc_data_head,"aw",@nobits
27787	.align	3
27788	.set	.LANCHOR101,. + 0
27789	.type	gp_data_slc_data_head, %object
27790	.size	gp_data_slc_data_head, 8
27791gp_data_slc_data_head:
27792	.zero	8
27793	.section	.bss.gp_data_xlc_data_head,"aw",@nobits
27794	.align	3
27795	.set	.LANCHOR98,. + 0
27796	.type	gp_data_xlc_data_head, %object
27797	.size	gp_data_xlc_data_head, 8
27798gp_data_xlc_data_head:
27799	.zero	8
27800	.section	.bss.gp_flash_check_buf,"aw",@nobits
27801	.align	3
27802	.set	.LANCHOR142,. + 0
27803	.type	gp_flash_check_buf, %object
27804	.size	gp_flash_check_buf, 8
27805gp_flash_check_buf:
27806	.zero	8
27807	.section	.bss.gp_flash_info,"aw",@nobits
27808	.align	3
27809	.set	.LANCHOR6,. + 0
27810	.type	gp_flash_info, %object
27811	.size	gp_flash_info, 8
27812gp_flash_info:
27813	.zero	8
27814	.section	.bss.gp_free_mix_head,"aw",@nobits
27815	.align	3
27816	.set	.LANCHOR114,. + 0
27817	.type	gp_free_mix_head, %object
27818	.size	gp_free_mix_head, 8
27819gp_free_mix_head:
27820	.zero	8
27821	.section	.bss.gp_free_slc_head,"aw",@nobits
27822	.align	3
27823	.set	.LANCHOR110,. + 0
27824	.type	gp_free_slc_head, %object
27825	.size	gp_free_slc_head, 8
27826gp_free_slc_head:
27827	.zero	8
27828	.section	.bss.gp_free_xlc_head,"aw",@nobits
27829	.align	3
27830	.set	.LANCHOR112,. + 0
27831	.type	gp_free_xlc_head, %object
27832	.size	gp_free_xlc_head, 8
27833gp_free_xlc_head:
27834	.zero	8
27835	.section	.bss.gp_ftl_ext_info,"aw",@nobits
27836	.align	3
27837	.set	.LANCHOR12,. + 0
27838	.type	gp_ftl_ext_info, %object
27839	.size	gp_ftl_ext_info, 8
27840gp_ftl_ext_info:
27841	.zero	8
27842	.section	.bss.gp_ftl_info,"aw",@nobits
27843	.align	3
27844	.set	.LANCHOR69,. + 0
27845	.type	gp_ftl_info, %object
27846	.size	gp_ftl_info, 8
27847gp_ftl_info:
27848	.zero	8
27849	.section	.bss.gp_nand_para_info,"aw",@nobits
27850	.align	3
27851	.set	.LANCHOR21,. + 0
27852	.type	gp_nand_para_info, %object
27853	.size	gp_nand_para_info, 8
27854gp_nand_para_info:
27855	.zero	8
27856	.section	.bss.gp_nandc,"aw",@nobits
27857	.align	3
27858	.set	.LANCHOR7,. + 0
27859	.type	gp_nandc, %object
27860	.size	gp_nandc, 8
27861gp_nandc:
27862	.zero	8
27863	.section	.bss.gp_sblk_list_tbl,"aw",@nobits
27864	.align	3
27865	.set	.LANCHOR4,. + 0
27866	.type	gp_sblk_list_tbl, %object
27867	.size	gp_sblk_list_tbl, 8
27868gp_sblk_list_tbl:
27869	.zero	8
27870	.section	.bss.idb_buf,"aw",@nobits
27871	.align	3
27872	.set	.LANCHOR139,. + 0
27873	.type	idb_buf, %object
27874	.size	idb_buf, 8
27875idb_buf:
27876	.zero	8
27877	.section	.bss.idb_last_lba,"aw",@nobits
27878	.align	2
27879	.set	.LANCHOR175,. + 0
27880	.type	idb_last_lba, %object
27881	.size	idb_last_lba, 4
27882idb_last_lba:
27883	.zero	4
27884	.section	.bss.idb_need_write_back,"aw",@nobits
27885	.align	2
27886	.set	.LANCHOR140,. + 0
27887	.type	idb_need_write_back, %object
27888	.size	idb_need_write_back, 4
27889idb_need_write_back:
27890	.zero	4
27891	.section	.bss.idb_write_enable,"aw",@nobits
27892	.set	.LANCHOR141,. + 0
27893	.type	idb_write_enable, %object
27894	.size	idb_write_enable, 1
27895idb_write_enable:
27896	.zero	1
27897	.section	.bss.lpa_hash,"aw",@nobits
27898	.align	3
27899	.set	.LANCHOR122,. + 0
27900	.type	lpa_hash, %object
27901	.size	lpa_hash, 512
27902lpa_hash:
27903	.zero	512
27904	.section	.bss.lpa_hash_index,"aw",@nobits
27905	.align	3
27906	.set	.LANCHOR124,. + 0
27907	.type	lpa_hash_index, %object
27908	.size	lpa_hash_index, 8
27909lpa_hash_index:
27910	.zero	8
27911	.section	.bss.nandc_ecc_sts,"aw",@nobits
27912	.align	3
27913	.type	nandc_ecc_sts, %object
27914	.size	nandc_ecc_sts, 16
27915nandc_ecc_sts:
27916	.zero	16
27917	.section	.bss.nandc_hw_seed,"aw",@nobits
27918	.set	.LANCHOR50,. + 0
27919	.type	nandc_hw_seed, %object
27920	.size	nandc_hw_seed, 1
27921nandc_hw_seed:
27922	.zero	1
27923	.section	.bss.nandc_randomizer_en,"aw",@nobits
27924	.set	.LANCHOR51,. + 0
27925	.type	nandc_randomizer_en, %object
27926	.size	nandc_randomizer_en, 1
27927nandc_randomizer_en:
27928	.zero	1
27929	.section	.bss.p_free_buf_head,"aw",@nobits
27930	.set	.LANCHOR56,. + 0
27931	.type	p_free_buf_head, %object
27932	.size	p_free_buf_head, 1
27933p_free_buf_head:
27934	.zero	1
27935	.section	.bss.p_read_ahead_ext_buf,"aw",@nobits
27936	.align	3
27937	.type	p_read_ahead_ext_buf, %object
27938	.size	p_read_ahead_ext_buf, 8
27939p_read_ahead_ext_buf:
27940	.zero	8
27941	.section	.bss.pm_first_write,"aw",@nobits
27942	.set	.LANCHOR207,. + 0
27943	.type	pm_first_write, %object
27944	.size	pm_first_write, 1
27945pm_first_write:
27946	.zero	1
27947	.section	.bss.pm_force_gc,"aw",@nobits
27948	.align	2
27949	.set	.LANCHOR149,. + 0
27950	.type	pm_force_gc, %object
27951	.size	pm_force_gc, 4
27952pm_force_gc:
27953	.zero	4
27954	.section	.bss.pm_gc_enable,"aw",@nobits
27955	.align	2
27956	.set	.LANCHOR134,. + 0
27957	.type	pm_gc_enable, %object
27958	.size	pm_gc_enable, 4
27959pm_gc_enable:
27960	.zero	4
27961	.section	.bss.pm_last_load_ram_id,"aw",@nobits
27962	.set	.LANCHOR223,. + 0
27963	.type	pm_last_load_ram_id, %object
27964	.size	pm_last_load_ram_id, 1
27965pm_last_load_ram_id:
27966	.zero	1
27967	.section	.bss.pm_last_update_ram_id,"aw",@nobits
27968	.set	.LANCHOR137,. + 0
27969	.type	pm_last_update_ram_id, %object
27970	.size	pm_last_update_ram_id, 1
27971pm_last_update_ram_id:
27972	.zero	1
27973	.section	.bss.pm_ram_info,"aw",@nobits
27974	.align	3
27975	.set	.LANCHOR136,. + 0
27976	.type	pm_ram_info, %object
27977	.size	pm_ram_info, 128
27978pm_ram_info:
27979	.zero	128
27980	.section	.bss.read_ahead_lpa,"aw",@nobits
27981	.align	2
27982	.set	.LANCHOR226,. + 0
27983	.type	read_ahead_lpa, %object
27984	.size	read_ahead_lpa, 4
27985read_ahead_lpa:
27986	.zero	4
27987	.section	.bss.read_buf_count,"aw",@nobits
27988	.set	.LANCHOR72,. + 0
27989	.type	read_buf_count, %object
27990	.size	read_buf_count, 1
27991read_buf_count:
27992	.zero	1
27993	.section	.bss.read_buf_head,"aw",@nobits
27994	.set	.LANCHOR71,. + 0
27995	.type	read_buf_head, %object
27996	.size	read_buf_head, 1
27997read_buf_head:
27998	.zero	1
27999	.section	.bss.sblk_gc_write_completed_queue_head,"aw",@nobits
28000	.set	.LANCHOR63,. + 0
28001	.type	sblk_gc_write_completed_queue_head, %object
28002	.size	sblk_gc_write_completed_queue_head, 1
28003sblk_gc_write_completed_queue_head:
28004	.zero	1
28005	.section	.bss.sblk_queue_head,"aw",@nobits
28006	.set	.LANCHOR59,. + 0
28007	.type	sblk_queue_head, %object
28008	.size	sblk_queue_head, 1
28009sblk_queue_head:
28010	.zero	1
28011	.section	.bss.sblk_read_completed_queue_head,"aw",@nobits
28012	.set	.LANCHOR62,. + 0
28013	.type	sblk_read_completed_queue_head, %object
28014	.size	sblk_read_completed_queue_head, 1
28015sblk_read_completed_queue_head:
28016	.zero	1
28017	.section	.bss.sblk_write_completed_queue_head,"aw",@nobits
28018	.set	.LANCHOR64,. + 0
28019	.type	sblk_write_completed_queue_head, %object
28020	.size	sblk_write_completed_queue_head, 1
28021sblk_write_completed_queue_head:
28022	.zero	1
28023	.section	.bss.slc_cache_sblk,"aw",@nobits
28024	.align	1
28025	.set	.LANCHOR105,. + 0
28026	.type	slc_cache_sblk, %object
28027	.size	slc_cache_sblk, 2
28028slc_cache_sblk:
28029	.zero	2
28030	.section	.bss.slc_data_sblk,"aw",@nobits
28031	.align	1
28032	.set	.LANCHOR103,. + 0
28033	.type	slc_data_sblk, %object
28034	.size	slc_data_sblk, 2
28035slc_data_sblk:
28036	.zero	2
28037	.section	.bss.write_buf_count,"aw",@nobits
28038	.set	.LANCHOR66,. + 0
28039	.type	write_buf_count, %object
28040	.size	write_buf_count, 1
28041write_buf_count:
28042	.zero	1
28043	.section	.bss.write_buf_head,"aw",@nobits
28044	.set	.LANCHOR65,. + 0
28045	.type	write_buf_head, %object
28046	.size	write_buf_head, 1
28047write_buf_head:
28048	.zero	1
28049	.section	.bss.write_commit_count,"aw",@nobits
28050	.set	.LANCHOR183,. + 0
28051	.type	write_commit_count, %object
28052	.size	write_commit_count, 1
28053write_commit_count:
28054	.zero	1
28055	.section	.bss.write_commit_head,"aw",@nobits
28056	.set	.LANCHOR184,. + 0
28057	.type	write_commit_head, %object
28058	.size	write_commit_head, 1
28059write_commit_head:
28060	.zero	1
28061	.section	.bss.xlc_data_sblk,"aw",@nobits
28062	.align	1
28063	.set	.LANCHOR97,. + 0
28064	.type	xlc_data_sblk, %object
28065	.size	xlc_data_sblk, 2
28066xlc_data_sblk:
28067	.zero	2
28068	.section	.bss.zftl_print_list_count,"aw",@nobits
28069	.align	1
28070	.set	.LANCHOR115,. + 0
28071	.type	zftl_print_list_count, %object
28072	.size	zftl_print_list_count, 2
28073zftl_print_list_count:
28074	.zero	2
28075	.section	.data.g_nand_para_info,"aw",@progbits
28076	.align	3
28077	.set	.LANCHOR32,. + 0
28078	.type	g_nand_para_info, %object
28079	.size	g_nand_para_info, 32
28080g_nand_para_info:
28081	.byte	6
28082	.byte	-104
28083	.byte	58
28084	.byte	-104
28085	.byte	-77
28086	.byte	118
28087	.byte	114
28088	.byte	1
28089	.byte	1
28090	.byte	32
28091	.hword	768
28092	.byte	3
28093	.byte	2
28094	.hword	758
28095	.hword	5593
28096	.byte	0
28097	.byte	37
28098	.byte	60
28099	.byte	32
28100	.byte	2
28101	.byte	1
28102	.byte	4
28103	.byte	0
28104	.hword	256
28105	.byte	1
28106	.byte	-94
28107	.byte	0
28108	.byte	0
28109	.section	.data.hy_f26_ref_value,"aw",@progbits
28110	.align	3
28111	.set	.LANCHOR163,. + 0
28112	.type	hy_f26_ref_value, %object
28113	.size	hy_f26_ref_value, 28
28114hy_f26_ref_value:
28115	.byte	0
28116	.byte	0
28117	.byte	0
28118	.byte	0
28119	.byte	0
28120	.byte	6
28121	.byte	10
28122	.byte	6
28123	.byte	0
28124	.byte	-3
28125	.byte	-7
28126	.byte	-8
28127	.byte	0
28128	.byte	-6
28129	.byte	-13
28130	.byte	-15
28131	.byte	0
28132	.byte	-11
28133	.byte	-20
28134	.byte	-23
28135	.byte	0
28136	.byte	0
28137	.byte	-26
28138	.byte	-30
28139	.byte	0
28140	.byte	0
28141	.byte	-32
28142	.byte	-37
28143	.section	.data.nand_opt_para,"aw",@progbits
28144	.align	3
28145	.set	.LANCHOR214,. + 0
28146	.type	nand_opt_para, %object
28147	.size	nand_opt_para, 128
28148nand_opt_para:
28149	.byte	1
28150	.byte	0
28151	.byte	49
28152	.byte	63
28153	.byte	0
28154	.byte	49
28155	.byte	-128
28156	.byte	21
28157	.byte	0
28158	.byte	50
28159	.byte	17
28160	.byte	-128
28161	.byte	112
28162	.byte	120
28163	.byte	120
28164	.byte	3
28165	.byte	1
28166	.byte	0
28167	.zero	14
28168	.byte	2
28169	.byte	0
28170	.byte	49
28171	.byte	63
28172	.byte	0
28173	.byte	49
28174	.byte	-128
28175	.byte	21
28176	.byte	0
28177	.byte	0
28178	.byte	17
28179	.byte	-127
28180	.byte	112
28181	.byte	-15
28182	.byte	-14
28183	.byte	0
28184	.byte	0
28185	.byte	0
28186	.zero	14
28187	.byte	3
28188	.byte	0
28189	.byte	49
28190	.byte	63
28191	.byte	0
28192	.byte	49
28193	.byte	-128
28194	.byte	21
28195	.byte	96
28196	.byte	96
28197	.byte	17
28198	.byte	-127
28199	.byte	112
28200	.byte	-15
28201	.byte	-14
28202	.byte	0
28203	.byte	0
28204	.byte	0
28205	.zero	14
28206	.byte	4
28207	.byte	0
28208	.byte	49
28209	.byte	63
28210	.byte	0
28211	.byte	49
28212	.byte	-128
28213	.byte	21
28214	.byte	96
28215	.byte	96
28216	.byte	17
28217	.byte	-127
28218	.byte	112
28219	.byte	112
28220	.byte	112
28221	.byte	0
28222	.byte	0
28223	.byte	0
28224	.zero	14
28225	.section	.data.sd15_slc_rr,"aw",@progbits
28226	.align	3
28227	.set	.LANCHOR40,. + 0
28228	.type	sd15_slc_rr, %object
28229	.size	sd15_slc_rr, 25
28230sd15_slc_rr:
28231	.byte	0
28232	.byte	8
28233	.byte	-8
28234	.byte	16
28235	.byte	-16
28236	.byte	24
28237	.byte	-24
28238	.byte	32
28239	.byte	-32
28240	.byte	32
28241	.byte	-40
28242	.byte	48
28243	.byte	-48
28244	.byte	56
28245	.byte	-56
28246	.byte	64
28247	.byte	-64
28248	.byte	72
28249	.byte	-72
28250	.byte	80
28251	.byte	-80
28252	.byte	88
28253	.byte	96
28254	.byte	104
28255	.byte	112
28256	.section	.data.sd15_tlc_rr,"aw",@progbits
28257	.align	3
28258	.set	.LANCHOR39,. + 0
28259	.type	sd15_tlc_rr, %object
28260	.size	sd15_tlc_rr, 329
28261sd15_tlc_rr:
28262	.byte	0
28263	.byte	0
28264	.byte	0
28265	.byte	0
28266	.byte	0
28267	.byte	0
28268	.byte	0
28269	.byte	-8
28270	.byte	0
28271	.byte	16
28272	.byte	8
28273	.byte	8
28274	.byte	0
28275	.byte	-8
28276	.byte	-8
28277	.byte	-8
28278	.byte	-16
28279	.byte	-8
28280	.byte	-8
28281	.byte	-8
28282	.byte	-8
28283	.byte	-24
28284	.byte	0
28285	.byte	0
28286	.byte	0
28287	.byte	-8
28288	.byte	-16
28289	.byte	-32
28290	.byte	0
28291	.byte	8
28292	.byte	-8
28293	.byte	8
28294	.byte	8
28295	.byte	0
28296	.byte	0
28297	.byte	-16
28298	.byte	-8
28299	.byte	-8
28300	.byte	-8
28301	.byte	0
28302	.byte	-16
28303	.byte	-24
28304	.byte	-16
28305	.byte	8
28306	.byte	8
28307	.byte	-8
28308	.byte	-16
28309	.byte	-16
28310	.byte	0
28311	.byte	8
28312	.byte	8
28313	.byte	8
28314	.byte	8
28315	.byte	-8
28316	.byte	-8
28317	.byte	-24
28318	.byte	0
28319	.byte	-16
28320	.byte	0
28321	.byte	-8
28322	.byte	-16
28323	.byte	-8
28324	.byte	-8
28325	.byte	0
28326	.byte	8
28327	.byte	0
28328	.byte	0
28329	.byte	-8
28330	.byte	0
28331	.byte	-24
28332	.byte	-8
28333	.byte	0
28334	.byte	0
28335	.byte	-8
28336	.byte	-24
28337	.byte	-8
28338	.byte	8
28339	.byte	-8
28340	.byte	0
28341	.byte	-8
28342	.byte	8
28343	.byte	-16
28344	.byte	-8
28345	.byte	-8
28346	.byte	-8
28347	.byte	8
28348	.byte	8
28349	.byte	0
28350	.byte	0
28351	.byte	-8
28352	.byte	-8
28353	.byte	8
28354	.byte	-8
28355	.byte	-8
28356	.byte	0
28357	.byte	0
28358	.byte	-8
28359	.byte	-16
28360	.byte	-16
28361	.byte	-8
28362	.byte	0
28363	.byte	0
28364	.byte	-8
28365	.byte	0
28366	.byte	-16
28367	.byte	8
28368	.byte	0
28369	.byte	8
28370	.byte	0
28371	.byte	-16
28372	.byte	-8
28373	.byte	-16
28374	.byte	16
28375	.byte	0
28376	.byte	16
28377	.byte	0
28378	.byte	-8
28379	.byte	8
28380	.byte	0
28381	.byte	-24
28382	.byte	0
28383	.byte	-16
28384	.byte	-8
28385	.byte	-16
28386	.byte	-16
28387	.byte	-16
28388	.byte	-16
28389	.byte	0
28390	.byte	8
28391	.byte	-8
28392	.byte	-24
28393	.byte	0
28394	.byte	8
28395	.byte	8
28396	.byte	16
28397	.byte	16
28398	.byte	0
28399	.byte	8
28400	.byte	-8
28401	.byte	8
28402	.byte	16
28403	.byte	-8
28404	.byte	24
28405	.byte	0
28406	.byte	8
28407	.byte	-4
28408	.byte	0
28409	.byte	16
28410	.byte	8
28411	.byte	24
28412	.byte	8
28413	.byte	0
28414	.byte	-4
28415	.byte	-8
28416	.byte	24
28417	.byte	16
28418	.byte	16
28419	.byte	0
28420	.byte	0
28421	.byte	0
28422	.byte	-16
28423	.byte	0
28424	.byte	0
28425	.byte	4
28426	.byte	0
28427	.byte	-4
28428	.byte	-4
28429	.byte	-4
28430	.byte	8
28431	.byte	8
28432	.byte	16
28433	.byte	0
28434	.byte	16
28435	.byte	-4
28436	.byte	16
28437	.byte	0
28438	.byte	16
28439	.byte	8
28440	.byte	0
28441	.byte	16
28442	.byte	-4
28443	.byte	16
28444	.byte	-8
28445	.byte	0
28446	.byte	0
28447	.byte	-8
28448	.byte	16
28449	.byte	-4
28450	.byte	16
28451	.byte	-16
28452	.byte	-8
28453	.byte	-8
28454	.byte	-8
28455	.byte	8
28456	.byte	-4
28457	.byte	8
28458	.byte	-24
28459	.byte	4
28460	.byte	-16
28461	.byte	0
28462	.byte	8
28463	.byte	0
28464	.byte	0
28465	.byte	-24
28466	.byte	8
28467	.byte	-16
28468	.byte	8
28469	.byte	0
28470	.byte	8
28471	.byte	-24
28472	.byte	-32
28473	.byte	16
28474	.byte	-24
28475	.byte	8
28476	.byte	-8
28477	.byte	8
28478	.byte	-24
28479	.byte	-32
28480	.byte	8
28481	.byte	0
28482	.byte	16
28483	.byte	0
28484	.byte	16
28485	.byte	0
28486	.byte	-32
28487	.byte	4
28488	.byte	0
28489	.byte	-8
28490	.byte	-16
28491	.byte	-8
28492	.byte	0
28493	.byte	-32
28494	.byte	4
28495	.byte	0
28496	.byte	8
28497	.byte	-24
28498	.byte	8
28499	.byte	0
28500	.byte	-32
28501	.byte	4
28502	.byte	0
28503	.byte	0
28504	.byte	-32
28505	.byte	-4
28506	.byte	0
28507	.byte	-24
28508	.byte	4
28509	.byte	0
28510	.byte	16
28511	.byte	-24
28512	.byte	16
28513	.byte	0
28514	.byte	-24
28515	.byte	-4
28516	.byte	0
28517	.byte	8
28518	.byte	-32
28519	.byte	8
28520	.byte	0
28521	.byte	0
28522	.byte	-4
28523	.byte	0
28524	.byte	0
28525	.byte	0
28526	.byte	0
28527	.byte	0
28528	.byte	0
28529	.byte	-4
28530	.byte	0
28531	.byte	0
28532	.byte	0
28533	.byte	-4
28534	.byte	0
28535	.byte	0
28536	.byte	-4
28537	.byte	0
28538	.byte	-8
28539	.byte	0
28540	.byte	-8
28541	.byte	0
28542	.byte	0
28543	.byte	-4
28544	.byte	0
28545	.byte	-16
28546	.byte	0
28547	.byte	-16
28548	.byte	0
28549	.byte	0
28550	.byte	-16
28551	.byte	0
28552	.byte	-16
28553	.byte	0
28554	.byte	-16
28555	.byte	0
28556	.byte	0
28557	.byte	-8
28558	.byte	0
28559	.byte	-16
28560	.byte	0
28561	.byte	-16
28562	.byte	0
28563	.byte	0
28564	.byte	-16
28565	.byte	0
28566	.byte	-24
28567	.byte	0
28568	.byte	-24
28569	.byte	0
28570	.byte	0
28571	.byte	-24
28572	.byte	0
28573	.byte	-24
28574	.byte	0
28575	.byte	-24
28576	.byte	0
28577	.byte	0
28578	.byte	-24
28579	.byte	0
28580	.byte	-16
28581	.byte	0
28582	.byte	-16
28583	.byte	0
28584	.byte	0
28585	.byte	-24
28586	.byte	0
28587	.byte	-32
28588	.byte	0
28589	.byte	-32
28590	.byte	0
28591	.section	.data.tlc_b05a_prog_tbl,"aw",@progbits
28592	.align	3
28593	.set	.LANCHOR238,. + 0
28594	.type	tlc_b05a_prog_tbl, %object
28595	.size	tlc_b05a_prog_tbl, 1536
28596tlc_b05a_prog_tbl:
28597	.hword	0
28598	.hword	0
28599	.hword	0
28600	.hword	0
28601	.hword	0
28602	.hword	0
28603	.hword	0
28604	.hword	0
28605	.hword	9
28606	.hword	0
28607	.hword	11
28608	.hword	0
28609	.hword	13
28610	.hword	0
28611	.hword	15
28612	.hword	0
28613	.hword	17
28614	.hword	0
28615	.hword	19
28616	.hword	0
28617	.hword	21
28618	.hword	0
28619	.hword	23
28620	.hword	0
28621	.hword	25
28622	.hword	0
28623	.hword	27
28624	.hword	0
28625	.hword	29
28626	.hword	0
28627	.hword	31
28628	.hword	0
28629	.hword	33
28630	.hword	0
28631	.hword	35
28632	.hword	0
28633	.hword	37
28634	.hword	0
28635	.hword	39
28636	.hword	0
28637	.hword	41
28638	.hword	0
28639	.hword	43
28640	.hword	0
28641	.hword	45
28642	.hword	0
28643	.hword	47
28644	.hword	0
28645	.hword	49
28646	.hword	0
28647	.hword	51
28648	.hword	0
28649	.hword	53
28650	.hword	0
28651	.hword	55
28652	.hword	0
28653	.hword	25
28654	.hword	58
28655	.hword	0
28656	.hword	27
28657	.hword	61
28658	.hword	0
28659	.hword	29
28660	.hword	64
28661	.hword	0
28662	.hword	31
28663	.hword	67
28664	.hword	0
28665	.hword	33
28666	.hword	70
28667	.hword	0
28668	.hword	35
28669	.hword	73
28670	.hword	0
28671	.hword	37
28672	.hword	76
28673	.hword	0
28674	.hword	39
28675	.hword	79
28676	.hword	0
28677	.hword	41
28678	.hword	82
28679	.hword	0
28680	.hword	43
28681	.hword	85
28682	.hword	0
28683	.hword	45
28684	.hword	88
28685	.hword	0
28686	.hword	47
28687	.hword	91
28688	.hword	0
28689	.hword	49
28690	.hword	94
28691	.hword	0
28692	.hword	51
28693	.hword	97
28694	.hword	0
28695	.hword	53
28696	.hword	100
28697	.hword	0
28698	.hword	55
28699	.hword	103
28700	.hword	0
28701	.hword	58
28702	.hword	106
28703	.hword	0
28704	.hword	61
28705	.hword	109
28706	.hword	0
28707	.hword	64
28708	.hword	112
28709	.hword	0
28710	.hword	67
28711	.hword	115
28712	.hword	0
28713	.hword	70
28714	.hword	118
28715	.hword	0
28716	.hword	73
28717	.hword	121
28718	.hword	0
28719	.hword	76
28720	.hword	124
28721	.hword	0
28722	.hword	79
28723	.hword	127
28724	.hword	0
28725	.hword	82
28726	.hword	130
28727	.hword	0
28728	.hword	85
28729	.hword	133
28730	.hword	0
28731	.hword	88
28732	.hword	136
28733	.hword	0
28734	.hword	91
28735	.hword	139
28736	.hword	0
28737	.hword	94
28738	.hword	142
28739	.hword	0
28740	.hword	97
28741	.hword	145
28742	.hword	0
28743	.hword	100
28744	.hword	148
28745	.hword	0
28746	.hword	103
28747	.hword	151
28748	.hword	0
28749	.hword	106
28750	.hword	154
28751	.hword	0
28752	.hword	109
28753	.hword	157
28754	.hword	0
28755	.hword	112
28756	.hword	160
28757	.hword	0
28758	.hword	115
28759	.hword	163
28760	.hword	0
28761	.hword	118
28762	.hword	166
28763	.hword	0
28764	.hword	121
28765	.hword	169
28766	.hword	0
28767	.hword	124
28768	.hword	172
28769	.hword	0
28770	.hword	127
28771	.hword	175
28772	.hword	0
28773	.hword	130
28774	.hword	178
28775	.hword	0
28776	.hword	133
28777	.hword	181
28778	.hword	0
28779	.hword	136
28780	.hword	184
28781	.hword	0
28782	.hword	139
28783	.hword	187
28784	.hword	0
28785	.hword	142
28786	.hword	190
28787	.hword	0
28788	.hword	145
28789	.hword	193
28790	.hword	0
28791	.hword	148
28792	.hword	196
28793	.hword	0
28794	.hword	151
28795	.hword	199
28796	.hword	0
28797	.hword	154
28798	.hword	202
28799	.hword	0
28800	.hword	157
28801	.hword	205
28802	.hword	0
28803	.hword	160
28804	.hword	208
28805	.hword	0
28806	.hword	163
28807	.hword	211
28808	.hword	0
28809	.hword	166
28810	.hword	214
28811	.hword	0
28812	.hword	169
28813	.hword	217
28814	.hword	0
28815	.hword	172
28816	.hword	220
28817	.hword	0
28818	.hword	175
28819	.hword	223
28820	.hword	0
28821	.hword	178
28822	.hword	226
28823	.hword	0
28824	.hword	181
28825	.hword	229
28826	.hword	0
28827	.hword	184
28828	.hword	232
28829	.hword	0
28830	.hword	187
28831	.hword	235
28832	.hword	0
28833	.hword	190
28834	.hword	238
28835	.hword	0
28836	.hword	193
28837	.hword	241
28838	.hword	0
28839	.hword	196
28840	.hword	244
28841	.hword	0
28842	.hword	199
28843	.hword	247
28844	.hword	0
28845	.hword	202
28846	.hword	250
28847	.hword	0
28848	.hword	205
28849	.hword	253
28850	.hword	0
28851	.hword	208
28852	.hword	256
28853	.hword	0
28854	.hword	211
28855	.hword	259
28856	.hword	0
28857	.hword	214
28858	.hword	262
28859	.hword	0
28860	.hword	217
28861	.hword	265
28862	.hword	0
28863	.hword	220
28864	.hword	268
28865	.hword	0
28866	.hword	223
28867	.hword	271
28868	.hword	0
28869	.hword	226
28870	.hword	274
28871	.hword	0
28872	.hword	229
28873	.hword	277
28874	.hword	0
28875	.hword	232
28876	.hword	280
28877	.hword	0
28878	.hword	235
28879	.hword	283
28880	.hword	0
28881	.hword	238
28882	.hword	286
28883	.hword	0
28884	.hword	241
28885	.hword	289
28886	.hword	0
28887	.hword	244
28888	.hword	292
28889	.hword	0
28890	.hword	247
28891	.hword	295
28892	.hword	0
28893	.hword	250
28894	.hword	298
28895	.hword	0
28896	.hword	253
28897	.hword	301
28898	.hword	0
28899	.hword	256
28900	.hword	304
28901	.hword	0
28902	.hword	259
28903	.hword	307
28904	.hword	0
28905	.hword	262
28906	.hword	310
28907	.hword	0
28908	.hword	265
28909	.hword	313
28910	.hword	0
28911	.hword	268
28912	.hword	316
28913	.hword	0
28914	.hword	271
28915	.hword	319
28916	.hword	0
28917	.hword	274
28918	.hword	322
28919	.hword	0
28920	.hword	277
28921	.hword	325
28922	.hword	0
28923	.hword	280
28924	.hword	328
28925	.hword	0
28926	.hword	283
28927	.hword	331
28928	.hword	0
28929	.hword	286
28930	.hword	334
28931	.hword	0
28932	.hword	289
28933	.hword	337
28934	.hword	0
28935	.hword	292
28936	.hword	340
28937	.hword	0
28938	.hword	295
28939	.hword	343
28940	.hword	0
28941	.hword	298
28942	.hword	346
28943	.hword	0
28944	.hword	301
28945	.hword	349
28946	.hword	0
28947	.hword	304
28948	.hword	352
28949	.hword	0
28950	.hword	307
28951	.hword	355
28952	.hword	0
28953	.hword	310
28954	.hword	358
28955	.hword	0
28956	.hword	313
28957	.hword	361
28958	.hword	0
28959	.hword	316
28960	.hword	364
28961	.hword	0
28962	.hword	319
28963	.hword	367
28964	.hword	0
28965	.hword	322
28966	.hword	370
28967	.hword	0
28968	.hword	325
28969	.hword	373
28970	.hword	0
28971	.hword	328
28972	.hword	376
28973	.hword	0
28974	.hword	331
28975	.hword	379
28976	.hword	0
28977	.hword	334
28978	.hword	382
28979	.hword	0
28980	.hword	337
28981	.hword	385
28982	.hword	0
28983	.hword	340
28984	.hword	388
28985	.hword	0
28986	.hword	343
28987	.hword	391
28988	.hword	0
28989	.hword	346
28990	.hword	394
28991	.hword	0
28992	.hword	349
28993	.hword	397
28994	.hword	0
28995	.hword	352
28996	.hword	400
28997	.hword	0
28998	.hword	355
28999	.hword	403
29000	.hword	0
29001	.hword	358
29002	.hword	406
29003	.hword	0
29004	.hword	361
29005	.hword	409
29006	.hword	0
29007	.hword	364
29008	.hword	412
29009	.hword	0
29010	.hword	367
29011	.hword	415
29012	.hword	0
29013	.hword	370
29014	.hword	418
29015	.hword	0
29016	.hword	373
29017	.hword	421
29018	.hword	0
29019	.hword	376
29020	.hword	424
29021	.hword	0
29022	.hword	379
29023	.hword	427
29024	.hword	0
29025	.hword	382
29026	.hword	430
29027	.hword	0
29028	.hword	385
29029	.hword	433
29030	.hword	0
29031	.hword	388
29032	.hword	436
29033	.hword	0
29034	.hword	391
29035	.hword	439
29036	.hword	0
29037	.hword	394
29038	.hword	442
29039	.hword	0
29040	.hword	397
29041	.hword	445
29042	.hword	0
29043	.hword	400
29044	.hword	448
29045	.hword	0
29046	.hword	403
29047	.hword	451
29048	.hword	0
29049	.hword	406
29050	.hword	454
29051	.hword	0
29052	.hword	409
29053	.hword	457
29054	.hword	0
29055	.hword	412
29056	.hword	460
29057	.hword	0
29058	.hword	415
29059	.hword	463
29060	.hword	0
29061	.hword	418
29062	.hword	466
29063	.hword	0
29064	.hword	421
29065	.hword	469
29066	.hword	0
29067	.hword	424
29068	.hword	472
29069	.hword	0
29070	.hword	427
29071	.hword	475
29072	.hword	0
29073	.hword	430
29074	.hword	478
29075	.hword	0
29076	.hword	433
29077	.hword	481
29078	.hword	0
29079	.hword	436
29080	.hword	484
29081	.hword	0
29082	.hword	439
29083	.hword	487
29084	.hword	0
29085	.hword	442
29086	.hword	490
29087	.hword	0
29088	.hword	445
29089	.hword	493
29090	.hword	0
29091	.hword	448
29092	.hword	496
29093	.hword	0
29094	.hword	451
29095	.hword	499
29096	.hword	0
29097	.hword	454
29098	.hword	502
29099	.hword	0
29100	.hword	457
29101	.hword	505
29102	.hword	0
29103	.hword	460
29104	.hword	508
29105	.hword	0
29106	.hword	463
29107	.hword	511
29108	.hword	0
29109	.hword	466
29110	.hword	514
29111	.hword	0
29112	.hword	469
29113	.hword	517
29114	.hword	0
29115	.hword	472
29116	.hword	520
29117	.hword	0
29118	.hword	475
29119	.hword	523
29120	.hword	0
29121	.hword	478
29122	.hword	526
29123	.hword	0
29124	.hword	481
29125	.hword	529
29126	.hword	0
29127	.hword	484
29128	.hword	532
29129	.hword	0
29130	.hword	487
29131	.hword	535
29132	.hword	0
29133	.hword	490
29134	.hword	538
29135	.hword	0
29136	.hword	493
29137	.hword	541
29138	.hword	0
29139	.hword	496
29140	.hword	544
29141	.hword	0
29142	.hword	499
29143	.hword	547
29144	.hword	0
29145	.hword	502
29146	.hword	550
29147	.hword	0
29148	.hword	505
29149	.hword	553
29150	.hword	0
29151	.hword	508
29152	.hword	556
29153	.hword	0
29154	.hword	511
29155	.hword	559
29156	.hword	0
29157	.hword	514
29158	.hword	562
29159	.hword	0
29160	.hword	517
29161	.hword	565
29162	.hword	0
29163	.hword	520
29164	.hword	568
29165	.hword	0
29166	.hword	523
29167	.hword	571
29168	.hword	0
29169	.hword	526
29170	.hword	574
29171	.hword	0
29172	.hword	529
29173	.hword	577
29174	.hword	0
29175	.hword	532
29176	.hword	580
29177	.hword	0
29178	.hword	535
29179	.hword	583
29180	.hword	0
29181	.hword	538
29182	.hword	586
29183	.hword	0
29184	.hword	541
29185	.hword	589
29186	.hword	0
29187	.hword	544
29188	.hword	592
29189	.hword	0
29190	.hword	547
29191	.hword	595
29192	.hword	0
29193	.hword	550
29194	.hword	598
29195	.hword	0
29196	.hword	553
29197	.hword	601
29198	.hword	0
29199	.hword	556
29200	.hword	604
29201	.hword	0
29202	.hword	559
29203	.hword	607
29204	.hword	0
29205	.hword	562
29206	.hword	610
29207	.hword	0
29208	.hword	565
29209	.hword	613
29210	.hword	0
29211	.hword	568
29212	.hword	616
29213	.hword	0
29214	.hword	571
29215	.hword	619
29216	.hword	0
29217	.hword	574
29218	.hword	622
29219	.hword	0
29220	.hword	577
29221	.hword	625
29222	.hword	0
29223	.hword	580
29224	.hword	628
29225	.hword	0
29226	.hword	583
29227	.hword	631
29228	.hword	0
29229	.hword	586
29230	.hword	634
29231	.hword	0
29232	.hword	589
29233	.hword	637
29234	.hword	0
29235	.hword	592
29236	.hword	640
29237	.hword	0
29238	.hword	595
29239	.hword	643
29240	.hword	0
29241	.hword	598
29242	.hword	646
29243	.hword	0
29244	.hword	601
29245	.hword	649
29246	.hword	0
29247	.hword	604
29248	.hword	652
29249	.hword	0
29250	.hword	607
29251	.hword	655
29252	.hword	0
29253	.hword	610
29254	.hword	658
29255	.hword	0
29256	.hword	613
29257	.hword	661
29258	.hword	0
29259	.hword	616
29260	.hword	664
29261	.hword	0
29262	.hword	619
29263	.hword	667
29264	.hword	0
29265	.hword	622
29266	.hword	670
29267	.hword	0
29268	.hword	625
29269	.hword	673
29270	.hword	0
29271	.hword	628
29272	.hword	676
29273	.hword	0
29274	.hword	631
29275	.hword	679
29276	.hword	0
29277	.hword	634
29278	.hword	682
29279	.hword	0
29280	.hword	637
29281	.hword	685
29282	.hword	0
29283	.hword	640
29284	.hword	688
29285	.hword	0
29286	.hword	643
29287	.hword	691
29288	.hword	0
29289	.hword	646
29290	.hword	694
29291	.hword	0
29292	.hword	649
29293	.hword	697
29294	.hword	0
29295	.hword	652
29296	.hword	700
29297	.hword	0
29298	.hword	655
29299	.hword	703
29300	.hword	0
29301	.hword	658
29302	.hword	706
29303	.hword	0
29304	.hword	661
29305	.hword	709
29306	.hword	0
29307	.hword	664
29308	.hword	712
29309	.hword	0
29310	.hword	667
29311	.hword	715
29312	.hword	0
29313	.hword	670
29314	.hword	718
29315	.hword	0
29316	.hword	673
29317	.hword	721
29318	.hword	0
29319	.hword	676
29320	.hword	724
29321	.hword	0
29322	.hword	679
29323	.hword	727
29324	.hword	0
29325	.hword	682
29326	.hword	730
29327	.hword	0
29328	.hword	685
29329	.hword	733
29330	.hword	0
29331	.hword	688
29332	.hword	736
29333	.hword	0
29334	.hword	691
29335	.hword	739
29336	.hword	0
29337	.hword	694
29338	.hword	742
29339	.hword	0
29340	.hword	697
29341	.hword	745
29342	.hword	0
29343	.hword	700
29344	.hword	748
29345	.hword	0
29346	.hword	703
29347	.hword	751
29348	.hword	0
29349	.hword	706
29350	.hword	0
29351	.hword	709
29352	.hword	0
29353	.hword	712
29354	.hword	0
29355	.hword	715
29356	.hword	0
29357	.hword	718
29358	.hword	0
29359	.hword	721
29360	.hword	0
29361	.hword	724
29362	.hword	0
29363	.hword	727
29364	.hword	0
29365	.section	.data.tlc_prog_order,"aw",@progbits
29366	.align	3
29367	.set	.LANCHOR239,. + 0
29368	.type	tlc_prog_order, %object
29369	.size	tlc_prog_order, 768
29370tlc_prog_order:
29371	.hword	1
29372	.hword	9
29373	.hword	2
29374	.hword	17
29375	.hword	10
29376	.hword	3
29377	.hword	25
29378	.hword	18
29379	.hword	11
29380	.hword	33
29381	.hword	26
29382	.hword	19
29383	.hword	41
29384	.hword	34
29385	.hword	27
29386	.hword	49
29387	.hword	42
29388	.hword	35
29389	.hword	57
29390	.hword	50
29391	.hword	43
29392	.hword	65
29393	.hword	58
29394	.hword	51
29395	.hword	73
29396	.hword	66
29397	.hword	59
29398	.hword	81
29399	.hword	74
29400	.hword	67
29401	.hword	89
29402	.hword	82
29403	.hword	75
29404	.hword	97
29405	.hword	90
29406	.hword	83
29407	.hword	105
29408	.hword	98
29409	.hword	91
29410	.hword	113
29411	.hword	106
29412	.hword	99
29413	.hword	121
29414	.hword	114
29415	.hword	107
29416	.hword	129
29417	.hword	122
29418	.hword	115
29419	.hword	137
29420	.hword	130
29421	.hword	123
29422	.hword	145
29423	.hword	138
29424	.hword	131
29425	.hword	153
29426	.hword	146
29427	.hword	139
29428	.hword	161
29429	.hword	154
29430	.hword	147
29431	.hword	169
29432	.hword	162
29433	.hword	155
29434	.hword	177
29435	.hword	170
29436	.hword	163
29437	.hword	185
29438	.hword	178
29439	.hword	171
29440	.hword	193
29441	.hword	186
29442	.hword	179
29443	.hword	201
29444	.hword	194
29445	.hword	187
29446	.hword	209
29447	.hword	202
29448	.hword	195
29449	.hword	217
29450	.hword	210
29451	.hword	203
29452	.hword	225
29453	.hword	218
29454	.hword	211
29455	.hword	233
29456	.hword	226
29457	.hword	219
29458	.hword	241
29459	.hword	234
29460	.hword	227
29461	.hword	249
29462	.hword	242
29463	.hword	235
29464	.hword	257
29465	.hword	250
29466	.hword	243
29467	.hword	265
29468	.hword	258
29469	.hword	251
29470	.hword	273
29471	.hword	266
29472	.hword	259
29473	.hword	281
29474	.hword	274
29475	.hword	267
29476	.hword	289
29477	.hword	282
29478	.hword	275
29479	.hword	297
29480	.hword	290
29481	.hword	283
29482	.hword	305
29483	.hword	298
29484	.hword	291
29485	.hword	313
29486	.hword	306
29487	.hword	299
29488	.hword	321
29489	.hword	314
29490	.hword	307
29491	.hword	329
29492	.hword	322
29493	.hword	315
29494	.hword	337
29495	.hword	330
29496	.hword	323
29497	.hword	345
29498	.hword	338
29499	.hword	331
29500	.hword	353
29501	.hword	346
29502	.hword	339
29503	.hword	361
29504	.hword	354
29505	.hword	347
29506	.hword	369
29507	.hword	362
29508	.hword	355
29509	.hword	377
29510	.hword	370
29511	.hword	363
29512	.hword	385
29513	.hword	378
29514	.hword	371
29515	.hword	393
29516	.hword	386
29517	.hword	379
29518	.hword	401
29519	.hword	394
29520	.hword	387
29521	.hword	409
29522	.hword	402
29523	.hword	395
29524	.hword	417
29525	.hword	410
29526	.hword	403
29527	.hword	425
29528	.hword	418
29529	.hword	411
29530	.hword	433
29531	.hword	426
29532	.hword	419
29533	.hword	441
29534	.hword	434
29535	.hword	427
29536	.hword	449
29537	.hword	442
29538	.hword	435
29539	.hword	457
29540	.hword	450
29541	.hword	443
29542	.hword	465
29543	.hword	458
29544	.hword	451
29545	.hword	473
29546	.hword	466
29547	.hword	459
29548	.hword	481
29549	.hword	474
29550	.hword	467
29551	.hword	489
29552	.hword	482
29553	.hword	475
29554	.hword	497
29555	.hword	490
29556	.hword	483
29557	.hword	505
29558	.hword	498
29559	.hword	491
29560	.hword	513
29561	.hword	506
29562	.hword	499
29563	.hword	521
29564	.hword	514
29565	.hword	507
29566	.hword	529
29567	.hword	522
29568	.hword	515
29569	.hword	537
29570	.hword	530
29571	.hword	523
29572	.hword	545
29573	.hword	538
29574	.hword	531
29575	.hword	553
29576	.hword	546
29577	.hword	539
29578	.hword	561
29579	.hword	554
29580	.hword	547
29581	.hword	569
29582	.hword	562
29583	.hword	555
29584	.hword	577
29585	.hword	570
29586	.hword	563
29587	.hword	585
29588	.hword	578
29589	.hword	571
29590	.hword	593
29591	.hword	586
29592	.hword	579
29593	.hword	601
29594	.hword	594
29595	.hword	587
29596	.hword	609
29597	.hword	602
29598	.hword	595
29599	.hword	617
29600	.hword	610
29601	.hword	603
29602	.hword	625
29603	.hword	618
29604	.hword	611
29605	.hword	633
29606	.hword	626
29607	.hword	619
29608	.hword	641
29609	.hword	634
29610	.hword	627
29611	.hword	649
29612	.hword	642
29613	.hword	635
29614	.hword	657
29615	.hword	650
29616	.hword	643
29617	.hword	665
29618	.hword	658
29619	.hword	651
29620	.hword	673
29621	.hword	666
29622	.hword	659
29623	.hword	681
29624	.hword	674
29625	.hword	667
29626	.hword	689
29627	.hword	682
29628	.hword	675
29629	.hword	697
29630	.hword	690
29631	.hword	683
29632	.hword	705
29633	.hword	698
29634	.hword	691
29635	.hword	713
29636	.hword	706
29637	.hword	699
29638	.hword	721
29639	.hword	714
29640	.hword	707
29641	.hword	729
29642	.hword	722
29643	.hword	715
29644	.hword	737
29645	.hword	730
29646	.hword	723
29647	.hword	745
29648	.hword	738
29649	.hword	731
29650	.hword	753
29651	.hword	746
29652	.hword	739
29653	.hword	761
29654	.hword	754
29655	.hword	747
29656	.hword	769
29657	.hword	762
29658	.hword	755
29659	.hword	777
29660	.hword	770
29661	.hword	763
29662	.hword	785
29663	.hword	778
29664	.hword	771
29665	.hword	793
29666	.hword	786
29667	.hword	779
29668	.hword	801
29669	.hword	794
29670	.hword	787
29671	.hword	809
29672	.hword	802
29673	.hword	795
29674	.hword	817
29675	.hword	810
29676	.hword	803
29677	.hword	825
29678	.hword	818
29679	.hword	811
29680	.hword	833
29681	.hword	826
29682	.hword	819
29683	.hword	841
29684	.hword	834
29685	.hword	827
29686	.hword	849
29687	.hword	842
29688	.hword	835
29689	.hword	857
29690	.hword	850
29691	.hword	843
29692	.hword	865
29693	.hword	858
29694	.hword	851
29695	.hword	873
29696	.hword	866
29697	.hword	859
29698	.hword	881
29699	.hword	874
29700	.hword	867
29701	.hword	889
29702	.hword	882
29703	.hword	875
29704	.hword	897
29705	.hword	890
29706	.hword	883
29707	.hword	905
29708	.hword	898
29709	.hword	891
29710	.hword	913
29711	.hword	906
29712	.hword	899
29713	.hword	921
29714	.hword	914
29715	.hword	907
29716	.hword	929
29717	.hword	922
29718	.hword	915
29719	.hword	937
29720	.hword	930
29721	.hword	923
29722	.hword	945
29723	.hword	938
29724	.hword	931
29725	.hword	953
29726	.hword	946
29727	.hword	939
29728	.hword	961
29729	.hword	954
29730	.hword	947
29731	.hword	969
29732	.hword	962
29733	.hword	955
29734	.hword	977
29735	.hword	970
29736	.hword	963
29737	.hword	985
29738	.hword	978
29739	.hword	971
29740	.hword	993
29741	.hword	986
29742	.hword	979
29743	.hword	1001
29744	.hword	994
29745	.hword	987
29746	.hword	1009
29747	.hword	1002
29748	.hword	995
29749	.hword	1017
29750	.hword	1010
29751	.hword	1003
29752	.hword	1018
29753	.hword	1011
29754	.hword	1019
29755	.section	.data.zftl_debug,"aw",@progbits
29756	.align	2
29757	.set	.LANCHOR19,. + 0
29758	.type	zftl_debug, %object
29759	.size	zftl_debug, 4
29760zftl_debug:
29761	.word	17476
29762	.section	.data.zftl_nand_flash_para_tbl,"aw",@progbits
29763	.align	3
29764	.set	.LANCHOR213,. + 0
29765	.type	zftl_nand_flash_para_tbl, %object
29766	.size	zftl_nand_flash_para_tbl, 1568
29767zftl_nand_flash_para_tbl:
29768	.byte	6
29769	.byte	-104
29770	.byte	58
29771	.byte	-104
29772	.byte	-77
29773	.byte	118
29774	.byte	114
29775	.byte	1
29776	.byte	1
29777	.byte	32
29778	.hword	768
29779	.byte	3
29780	.byte	2
29781	.hword	758
29782	.hword	5593
29783	.byte	0
29784	.byte	37
29785	.byte	60
29786	.byte	32
29787	.byte	3
29788	.byte	1
29789	.byte	4
29790	.byte	0
29791	.hword	256
29792	.byte	1
29793	.byte	-94
29794	.byte	0
29795	.byte	0
29796	.byte	6
29797	.byte	-104
29798	.byte	60
29799	.byte	-104
29800	.byte	-77
29801	.byte	118
29802	.byte	114
29803	.byte	1
29804	.byte	1
29805	.byte	32
29806	.hword	768
29807	.byte	3
29808	.byte	2
29809	.hword	1478
29810	.hword	5593
29811	.byte	0
29812	.byte	37
29813	.byte	60
29814	.byte	32
29815	.byte	3
29816	.byte	1
29817	.byte	4
29818	.byte	0
29819	.hword	256
29820	.byte	1
29821	.byte	-94
29822	.byte	0
29823	.byte	0
29824	.byte	6
29825	.byte	-104
29826	.byte	58
29827	.byte	-104
29828	.byte	-93
29829	.byte	118
29830	.byte	81
29831	.byte	1
29832	.byte	1
29833	.byte	32
29834	.hword	384
29835	.byte	3
29836	.byte	2
29837	.hword	1446
29838	.hword	1497
29839	.byte	0
29840	.byte	36
29841	.byte	60
29842	.byte	32
29843	.byte	3
29844	.byte	1
29845	.byte	4
29846	.byte	0
29847	.hword	256
29848	.byte	1
29849	.byte	-94
29850	.byte	0
29851	.byte	0
29852	.byte	6
29853	.byte	-104
29854	.byte	-34
29855	.byte	-108
29856	.byte	-109
29857	.byte	118
29858	.byte	81
29859	.byte	1
29860	.byte	1
29861	.byte	32
29862	.hword	256
29863	.byte	2
29864	.byte	2
29865	.hword	1074
29866	.hword	17881
29867	.byte	2
29868	.byte	35
29869	.byte	40
29870	.byte	32
29871	.byte	3
29872	.byte	1
29873	.byte	4
29874	.byte	0
29875	.hword	256
29876	.byte	1
29877	.byte	-94
29878	.byte	0
29879	.byte	0
29880	.byte	6
29881	.byte	-104
29882	.byte	-34
29883	.byte	-124
29884	.byte	-109
29885	.byte	114
29886	.byte	87
29887	.byte	1
29888	.byte	1
29889	.byte	32
29890	.hword	256
29891	.byte	2
29892	.byte	1
29893	.hword	2092
29894	.hword	17857
29895	.byte	2
29896	.byte	33
29897	.byte	40
29898	.byte	32
29899	.byte	3
29900	.byte	1
29901	.byte	1
29902	.byte	0
29903	.hword	256
29904	.byte	1
29905	.byte	-94
29906	.byte	0
29907	.byte	0
29908	.byte	6
29909	.byte	-104
29910	.byte	58
29911	.byte	-108
29912	.byte	-109
29913	.byte	118
29914	.byte	81
29915	.byte	1
29916	.byte	1
29917	.byte	32
29918	.hword	256
29919	.byte	2
29920	.byte	2
29921	.hword	2106
29922	.hword	17881
29923	.byte	2
29924	.byte	35
29925	.byte	40
29926	.byte	32
29927	.byte	3
29928	.byte	1
29929	.byte	4
29930	.byte	0
29931	.hword	256
29932	.byte	1
29933	.byte	-94
29934	.byte	0
29935	.byte	0
29936	.byte	6
29937	.byte	-104
29938	.byte	-41
29939	.byte	-124
29940	.byte	-109
29941	.byte	114
29942	.byte	81
29943	.byte	1
29944	.byte	1
29945	.byte	32
29946	.hword	256
29947	.byte	2
29948	.byte	1
29949	.hword	1056
29950	.hword	17857
29951	.byte	2
29952	.byte	35
29953	.byte	40
29954	.byte	32
29955	.byte	3
29956	.byte	1
29957	.byte	4
29958	.byte	0
29959	.hword	256
29960	.byte	1
29961	.byte	-94
29962	.byte	0
29963	.byte	0
29964	.byte	6
29965	.byte	-104
29966	.byte	-41
29967	.byte	-124
29968	.byte	-109
29969	.byte	114
29970	.byte	80
29971	.byte	1
29972	.byte	1
29973	.byte	32
29974	.hword	256
29975	.byte	2
29976	.byte	1
29977	.hword	1060
29978	.hword	17857
29979	.byte	2
29980	.byte	34
29981	.byte	40
29982	.byte	32
29983	.byte	3
29984	.byte	1
29985	.byte	4
29986	.byte	0
29987	.hword	256
29988	.byte	1
29989	.byte	-94
29990	.byte	0
29991	.byte	0
29992	.byte	6
29993	.byte	-104
29994	.byte	-34
29995	.byte	-108
29996	.byte	-109
29997	.byte	118
29998	.byte	80
29999	.byte	1
30000	.byte	1
30001	.byte	32
30002	.hword	256
30003	.byte	2
30004	.byte	2
30005	.hword	1066
30006	.hword	17881
30007	.byte	2
30008	.byte	34
30009	.byte	40
30010	.byte	32
30011	.byte	3
30012	.byte	1
30013	.byte	1
30014	.byte	0
30015	.hword	256
30016	.byte	1
30017	.byte	-94
30018	.byte	0
30019	.byte	0
30020	.byte	6
30021	.byte	-104
30022	.byte	-41
30023	.byte	-124
30024	.byte	-109
30025	.byte	114
30026	.byte	87
30027	.byte	1
30028	.byte	1
30029	.byte	32
30030	.hword	256
30031	.byte	2
30032	.byte	1
30033	.hword	1060
30034	.hword	17857
30035	.byte	2
30036	.byte	33
30037	.byte	40
30038	.byte	32
30039	.byte	3
30040	.byte	1
30041	.byte	1
30042	.byte	0
30043	.hword	256
30044	.byte	1
30045	.byte	-94
30046	.byte	0
30047	.byte	0
30048	.byte	6
30049	.byte	-104
30050	.byte	-34
30051	.byte	-108
30052	.byte	-109
30053	.byte	118
30054	.byte	87
30055	.byte	1
30056	.byte	1
30057	.byte	32
30058	.hword	256
30059	.byte	2
30060	.byte	2
30061	.hword	1058
30062	.hword	17881
30063	.byte	2
30064	.byte	33
30065	.byte	40
30066	.byte	32
30067	.byte	3
30068	.byte	1
30069	.byte	1
30070	.byte	0
30071	.hword	256
30072	.byte	1
30073	.byte	-94
30074	.byte	0
30075	.byte	0
30076	.byte	6
30077	.byte	-104
30078	.byte	-34
30079	.byte	-108
30080	.byte	-109
30081	.byte	118
30082	.byte	-47
30083	.byte	1
30084	.byte	1
30085	.byte	32
30086	.hword	256
30087	.byte	2
30088	.byte	2
30089	.hword	1074
30090	.hword	17881
30091	.byte	2
30092	.byte	35
30093	.byte	40
30094	.byte	32
30095	.byte	3
30096	.byte	1
30097	.byte	4
30098	.byte	0
30099	.hword	256
30100	.byte	1
30101	.byte	-94
30102	.byte	0
30103	.byte	0
30104	.byte	6
30105	.byte	69
30106	.byte	58
30107	.byte	-108
30108	.byte	-109
30109	.byte	118
30110	.byte	81
30111	.byte	8
30112	.byte	1
30113	.byte	32
30114	.hword	256
30115	.byte	2
30116	.byte	2
30117	.hword	2106
30118	.hword	17881
30119	.byte	2
30120	.byte	68
30121	.byte	40
30122	.byte	32
30123	.byte	3
30124	.byte	1
30125	.byte	4
30126	.byte	0
30127	.hword	256
30128	.byte	1
30129	.byte	-94
30130	.byte	0
30131	.byte	0
30132	.byte	6
30133	.byte	69
30134	.byte	-34
30135	.byte	-108
30136	.byte	-109
30137	.byte	118
30138	.byte	81
30139	.byte	8
30140	.byte	1
30141	.byte	32
30142	.hword	256
30143	.byte	2
30144	.byte	2
30145	.hword	1074
30146	.hword	17881
30147	.byte	2
30148	.byte	68
30149	.byte	40
30150	.byte	32
30151	.byte	3
30152	.byte	1
30153	.byte	4
30154	.byte	0
30155	.hword	256
30156	.byte	1
30157	.byte	-94
30158	.byte	0
30159	.byte	0
30160	.byte	6
30161	.byte	69
30162	.byte	-34
30163	.byte	-108
30164	.byte	-109
30165	.byte	118
30166	.byte	87
30167	.byte	8
30168	.byte	1
30169	.byte	32
30170	.hword	256
30171	.byte	2
30172	.byte	2
30173	.hword	1058
30174	.hword	17881
30175	.byte	2
30176	.byte	66
30177	.byte	40
30178	.byte	32
30179	.byte	3
30180	.byte	1
30181	.byte	4
30182	.byte	0
30183	.hword	256
30184	.byte	1
30185	.byte	-94
30186	.byte	0
30187	.byte	0
30188	.byte	6
30189	.byte	69
30190	.byte	-34
30191	.byte	-108
30192	.byte	-109
30193	.byte	118
30194	.byte	80
30195	.byte	8
30196	.byte	1
30197	.byte	32
30198	.hword	256
30199	.byte	2
30200	.byte	2
30201	.hword	1066
30202	.hword	17881
30203	.byte	2
30204	.byte	67
30205	.byte	40
30206	.byte	32
30207	.byte	3
30208	.byte	1
30209	.byte	1
30210	.byte	0
30211	.hword	256
30212	.byte	1
30213	.byte	-94
30214	.byte	0
30215	.byte	0
30216	.byte	6
30217	.byte	69
30218	.byte	-41
30219	.byte	-124
30220	.byte	-109
30221	.byte	114
30222	.byte	87
30223	.byte	8
30224	.byte	1
30225	.byte	32
30226	.hword	256
30227	.byte	2
30228	.byte	1
30229	.hword	1060
30230	.hword	17857
30231	.byte	2
30232	.byte	66
30233	.byte	40
30234	.byte	32
30235	.byte	2
30236	.byte	1
30237	.byte	1
30238	.byte	0
30239	.hword	256
30240	.byte	1
30241	.byte	-94
30242	.byte	0
30243	.byte	0
30244	.byte	5
30245	.byte	44
30246	.byte	100
30247	.byte	68
30248	.byte	50
30249	.byte	-91
30250	.byte	0
30251	.byte	4
30252	.byte	1
30253	.byte	32
30254	.hword	512
30255	.byte	2
30256	.byte	1
30257	.hword	1048
30258	.hword	9671
30259	.byte	5
30260	.byte	19
30261	.byte	70
30262	.byte	32
30263	.byte	1
30264	.byte	0
30265	.byte	4
30266	.byte	0
30267	.hword	512
30268	.byte	1
30269	.byte	-38
30270	.byte	-33
30271	.byte	0
30272	.byte	5
30273	.byte	44
30274	.byte	100
30275	.byte	100
30276	.byte	86
30277	.byte	-91
30278	.byte	0
30279	.byte	4
30280	.byte	1
30281	.byte	24
30282	.hword	512
30283	.byte	2
30284	.byte	2
30285	.hword	700
30286	.hword	479
30287	.byte	4
30288	.byte	18
30289	.byte	60
30290	.byte	32
30291	.byte	1
30292	.byte	0
30293	.byte	1
30294	.byte	0
30295	.hword	512
30296	.byte	3
30297	.byte	0
30298	.byte	0
30299	.byte	0
30300	.byte	5
30301	.byte	44
30302	.byte	68
30303	.byte	68
30304	.byte	75
30305	.byte	-87
30306	.byte	0
30307	.byte	4
30308	.byte	1
30309	.byte	16
30310	.hword	256
30311	.byte	2
30312	.byte	2
30313	.hword	1064
30314	.hword	479
30315	.byte	3
30316	.byte	17
30317	.byte	40
30318	.byte	32
30319	.byte	1
30320	.byte	0
30321	.byte	1
30322	.byte	0
30323	.hword	256
30324	.byte	3
30325	.byte	0
30326	.byte	0
30327	.byte	0
30328	.byte	5
30329	.byte	44
30330	.byte	-124
30331	.byte	100
30332	.byte	84
30333	.byte	-87
30334	.byte	0
30335	.byte	4
30336	.byte	1
30337	.byte	32
30338	.hword	512
30339	.byte	2
30340	.byte	2
30341	.hword	1024
30342	.hword	479
30343	.byte	4
30344	.byte	18
30345	.byte	60
30346	.byte	32
30347	.byte	1
30348	.byte	0
30349	.byte	1
30350	.byte	0
30351	.hword	512
30352	.byte	0
30353	.byte	0
30354	.byte	0
30355	.byte	1
30356	.byte	5
30357	.byte	44
30358	.byte	100
30359	.byte	100
30360	.byte	84
30361	.byte	-92
30362	.byte	0
30363	.byte	4
30364	.byte	1
30365	.byte	32
30366	.hword	512
30367	.byte	2
30368	.byte	1
30369	.hword	1024
30370	.hword	455
30371	.byte	4
30372	.byte	18
30373	.byte	60
30374	.byte	32
30375	.byte	1
30376	.byte	0
30377	.byte	1
30378	.byte	0
30379	.hword	512
30380	.byte	0
30381	.byte	0
30382	.byte	0
30383	.byte	0
30384	.byte	5
30385	.byte	44
30386	.byte	100
30387	.byte	68
30388	.byte	75
30389	.byte	-87
30390	.byte	0
30391	.byte	4
30392	.byte	1
30393	.byte	16
30394	.hword	256
30395	.byte	2
30396	.byte	4
30397	.hword	1024
30398	.hword	449
30399	.byte	3
30400	.byte	17
30401	.byte	40
30402	.byte	32
30403	.byte	1
30404	.byte	0
30405	.byte	1
30406	.byte	0
30407	.hword	256
30408	.byte	3
30409	.byte	0
30410	.byte	0
30411	.byte	0
30412	.byte	5
30413	.byte	44
30414	.byte	-124
30415	.byte	100
30416	.byte	60
30417	.byte	-91
30418	.byte	0
30419	.byte	4
30420	.byte	1
30421	.byte	32
30422	.hword	512
30423	.byte	2
30424	.byte	2
30425	.hword	1024
30426	.hword	479
30427	.byte	3
30428	.byte	17
30429	.byte	40
30430	.byte	32
30431	.byte	1
30432	.byte	0
30433	.byte	1
30434	.byte	0
30435	.hword	512
30436	.byte	3
30437	.byte	0
30438	.byte	0
30439	.byte	0
30440	.byte	5
30441	.byte	44
30442	.byte	-124
30443	.byte	68
30444	.byte	52
30445	.byte	-92
30446	.byte	0
30447	.byte	4
30448	.byte	1
30449	.byte	32
30450	.hword	512
30451	.byte	2
30452	.byte	1
30453	.hword	2184
30454	.hword	9671
30455	.byte	5
30456	.byte	19
30457	.byte	70
30458	.byte	32
30459	.byte	1
30460	.byte	0
30461	.byte	4
30462	.byte	0
30463	.hword	512
30464	.byte	1
30465	.byte	-38
30466	.byte	-33
30467	.byte	0
30468	.byte	5
30469	.byte	44
30470	.byte	100
30471	.byte	100
30472	.byte	60
30473	.byte	-91
30474	.byte	0
30475	.byte	4
30476	.byte	1
30477	.byte	32
30478	.hword	512
30479	.byte	2
30480	.byte	1
30481	.hword	1044
30482	.hword	471
30483	.byte	3
30484	.byte	17
30485	.byte	40
30486	.byte	32
30487	.byte	1
30488	.byte	0
30489	.byte	1
30490	.byte	0
30491	.hword	512
30492	.byte	3
30493	.byte	0
30494	.byte	0
30495	.byte	0
30496	.byte	5
30497	.byte	44
30498	.byte	-124
30499	.byte	68
30500	.byte	50
30501	.byte	-86
30502	.byte	0
30503	.byte	4
30504	.byte	1
30505	.byte	32
30506	.hword	512
30507	.byte	2
30508	.byte	1
30509	.hword	2184
30510	.hword	9671
30511	.byte	5
30512	.byte	19
30513	.byte	70
30514	.byte	32
30515	.byte	1
30516	.byte	0
30517	.byte	4
30518	.byte	0
30519	.hword	512
30520	.byte	1
30521	.byte	-38
30522	.byte	-33
30523	.byte	0
30524	.byte	5
30525	.byte	44
30526	.byte	-124
30527	.byte	-60
30528	.byte	52
30529	.byte	-86
30530	.byte	0
30531	.byte	4
30532	.byte	1
30533	.byte	32
30534	.hword	512
30535	.byte	2
30536	.byte	1
30537	.hword	2184
30538	.hword	9671
30539	.byte	5
30540	.byte	19
30541	.byte	70
30542	.byte	32
30543	.byte	1
30544	.byte	0
30545	.byte	4
30546	.byte	0
30547	.hword	512
30548	.byte	1
30549	.byte	-38
30550	.byte	-33
30551	.byte	0
30552	.byte	5
30553	.byte	44
30554	.byte	-124
30555	.byte	68
30556	.byte	52
30557	.byte	-86
30558	.byte	0
30559	.byte	4
30560	.byte	1
30561	.byte	32
30562	.hword	512
30563	.byte	2
30564	.byte	1
30565	.hword	2184
30566	.hword	9671
30567	.byte	5
30568	.byte	19
30569	.byte	70
30570	.byte	32
30571	.byte	1
30572	.byte	0
30573	.byte	4
30574	.byte	0
30575	.hword	512
30576	.byte	1
30577	.byte	-38
30578	.byte	-33
30579	.byte	0
30580	.byte	6
30581	.byte	-101
30582	.byte	73
30583	.byte	1
30584	.byte	0
30585	.byte	-101
30586	.byte	73
30587	.byte	9
30588	.byte	1
30589	.byte	32
30590	.hword	256
30591	.byte	2
30592	.byte	1
30593	.hword	2144
30594	.hword	-23097
30595	.byte	8
30596	.byte	21
30597	.byte	70
30598	.byte	32
30599	.byte	1
30600	.byte	0
30601	.byte	8
30602	.byte	0
30603	.hword	256
30604	.byte	3
30605	.byte	0
30606	.byte	0
30607	.byte	0
30608	.byte	5
30609	.byte	44
30610	.byte	-124
30611	.byte	100
30612	.byte	60
30613	.byte	-87
30614	.byte	4
30615	.byte	4
30616	.byte	1
30617	.byte	32
30618	.hword	512
30619	.byte	2
30620	.byte	2
30621	.hword	1024
30622	.hword	479
30623	.byte	3
30624	.byte	17
30625	.byte	40
30626	.byte	32
30627	.byte	1
30628	.byte	0
30629	.byte	1
30630	.byte	0
30631	.hword	512
30632	.byte	0
30633	.byte	0
30634	.byte	0
30635	.byte	1
30636	.byte	5
30637	.byte	44
30638	.byte	-124
30639	.byte	88
30640	.byte	50
30641	.byte	-95
30642	.byte	0
30643	.byte	4
30644	.byte	1
30645	.byte	32
30646	.hword	768
30647	.byte	3
30648	.byte	1
30649	.hword	1440
30650	.hword	3527
30651	.byte	0
30652	.byte	19
30653	.byte	70
30654	.byte	32
30655	.byte	1
30656	.byte	0
30657	.byte	1
30658	.byte	0
30659	.hword	1024
30660	.byte	3
30661	.byte	0
30662	.byte	0
30663	.byte	2
30664	.byte	6
30665	.byte	44
30666	.byte	-92
30667	.byte	8
30668	.byte	50
30669	.byte	-95
30670	.byte	0
30671	.byte	4
30672	.byte	1
30673	.byte	32
30674	.hword	2304
30675	.byte	3
30676	.byte	1
30677	.hword	1008
30678	.hword	3521
30679	.byte	0
30680	.byte	19
30681	.byte	70
30682	.byte	32
30683	.byte	1
30684	.byte	0
30685	.byte	1
30686	.byte	0
30687	.hword	4096
30688	.byte	3
30689	.byte	0
30690	.byte	0
30691	.byte	4
30692	.byte	6
30693	.byte	44
30694	.byte	-92
30695	.byte	100
30696	.byte	50
30697	.byte	-86
30698	.byte	4
30699	.byte	4
30700	.byte	1
30701	.byte	32
30702	.hword	1024
30703	.byte	2
30704	.byte	1
30705	.hword	2192
30706	.hword	9671
30707	.byte	10
30708	.byte	19
30709	.byte	70
30710	.byte	32
30711	.byte	1
30712	.byte	0
30713	.byte	1
30714	.byte	0
30715	.hword	1024
30716	.byte	1
30717	.byte	-38
30718	.byte	-33
30719	.byte	0
30720	.byte	6
30721	.byte	-101
30722	.byte	-61
30723	.byte	72
30724	.byte	37
30725	.byte	16
30726	.byte	0
30727	.byte	9
30728	.byte	1
30729	.byte	32
30730	.hword	1152
30731	.byte	3
30732	.byte	2
30733	.hword	1006
30734	.hword	-27169
30735	.byte	13
30736	.byte	81
30737	.byte	70
30738	.byte	32
30739	.byte	1
30740	.byte	0
30741	.byte	4
30742	.byte	0
30743	.hword	2048
30744	.byte	1
30745	.byte	-38
30746	.byte	-33
30747	.byte	24
30748	.byte	6
30749	.byte	-83
30750	.byte	-34
30751	.byte	20
30752	.byte	-85
30753	.byte	66
30754	.byte	74
30755	.byte	2
30756	.byte	1
30757	.byte	32
30758	.hword	256
30759	.byte	2
30760	.byte	2
30761	.hword	1056
30762	.hword	455
30763	.byte	2
30764	.byte	6
30765	.byte	40
30766	.byte	32
30767	.byte	3
30768	.byte	1
30769	.byte	3
30770	.byte	0
30771	.hword	256
30772	.byte	2
30773	.byte	-65
30774	.byte	-66
30775	.byte	0
30776	.byte	6
30777	.byte	-83
30778	.byte	-34
30779	.byte	-108
30780	.byte	-21
30781	.byte	116
30782	.byte	68
30783	.byte	2
30784	.byte	1
30785	.byte	32
30786	.hword	256
30787	.byte	2
30788	.byte	2
30789	.hword	1066
30790	.hword	473
30791	.byte	1
30792	.byte	7
30793	.byte	40
30794	.byte	32
30795	.byte	4
30796	.byte	1
30797	.byte	3
30798	.byte	0
30799	.hword	256
30800	.byte	0
30801	.byte	0
30802	.byte	0
30803	.byte	0
30804	.byte	6
30805	.byte	-83
30806	.byte	-34
30807	.byte	20
30808	.byte	-89
30809	.byte	66
30810	.byte	74
30811	.byte	2
30812	.byte	1
30813	.byte	32
30814	.hword	256
30815	.byte	2
30816	.byte	2
30817	.hword	1060
30818	.hword	473
30819	.byte	2
30820	.byte	5
30821	.byte	40
30822	.byte	32
30823	.byte	4
30824	.byte	1
30825	.byte	3
30826	.byte	0
30827	.hword	256
30828	.byte	2
30829	.byte	-65
30830	.byte	-66
30831	.byte	0
30832	.byte	6
30833	.byte	-83
30834	.byte	-41
30835	.byte	-108
30836	.byte	-111
30837	.byte	96
30838	.byte	68
30839	.byte	2
30840	.byte	1
30841	.byte	16
30842	.hword	256
30843	.byte	2
30844	.byte	2
30845	.hword	1046
30846	.hword	473
30847	.byte	1
30848	.byte	3
30849	.byte	40
30850	.byte	32
30851	.byte	4
30852	.byte	1
30853	.byte	3
30854	.byte	0
30855	.hword	256
30856	.byte	0
30857	.byte	0
30858	.byte	0
30859	.byte	0
30860	.byte	6
30861	.byte	-83
30862	.byte	58
30863	.byte	20
30864	.byte	-85
30865	.byte	66
30866	.byte	74
30867	.byte	2
30868	.byte	1
30869	.byte	32
30870	.hword	256
30871	.byte	2
30872	.byte	2
30873	.hword	2092
30874	.hword	473
30875	.byte	2
30876	.byte	5
30877	.byte	40
30878	.byte	32
30879	.byte	3
30880	.byte	1
30881	.byte	3
30882	.byte	0
30883	.hword	256
30884	.byte	0
30885	.byte	0
30886	.byte	0
30887	.byte	0
30888	.byte	6
30889	.byte	-83
30890	.byte	-41
30891	.byte	20
30892	.byte	-98
30893	.byte	52
30894	.byte	74
30895	.byte	2
30896	.byte	1
30897	.byte	16
30898	.hword	256
30899	.byte	2
30900	.byte	2
30901	.hword	1056
30902	.hword	473
30903	.byte	2
30904	.byte	5
30905	.byte	40
30906	.byte	32
30907	.byte	4
30908	.byte	1
30909	.byte	3
30910	.byte	0
30911	.hword	256
30912	.byte	0
30913	.byte	0
30914	.byte	0
30915	.byte	0
30916	.byte	6
30917	.byte	-83
30918	.byte	58
30919	.byte	20
30920	.byte	3
30921	.byte	8
30922	.byte	80
30923	.byte	2
30924	.byte	1
30925	.byte	32
30926	.hword	388
30927	.byte	2
30928	.byte	2
30929	.hword	1362
30930	.hword	473
30931	.byte	9
30932	.byte	8
30933	.byte	40
30934	.byte	32
30935	.byte	3
30936	.byte	1
30937	.byte	3
30938	.byte	0
30939	.hword	512
30940	.byte	0
30941	.byte	-65
30942	.byte	-66
30943	.byte	1
30944	.byte	5
30945	.byte	-119
30946	.byte	100
30947	.byte	100
30948	.byte	60
30949	.byte	-95
30950	.byte	0
30951	.byte	7
30952	.byte	1
30953	.byte	32
30954	.hword	512
30955	.byte	2
30956	.byte	1
30957	.hword	1024
30958	.hword	455
30959	.byte	4
30960	.byte	17
30961	.byte	40
30962	.byte	32
30963	.byte	1
30964	.byte	0
30965	.byte	1
30966	.byte	0
30967	.hword	512
30968	.byte	3
30969	.byte	0
30970	.byte	0
30971	.byte	0
30972	.byte	5
30973	.byte	-119
30974	.byte	-124
30975	.byte	100
30976	.byte	60
30977	.byte	-91
30978	.byte	0
30979	.byte	7
30980	.byte	1
30981	.byte	32
30982	.hword	512
30983	.byte	2
30984	.byte	2
30985	.hword	1024
30986	.hword	455
30987	.byte	4
30988	.byte	17
30989	.byte	40
30990	.byte	32
30991	.byte	1
30992	.byte	0
30993	.byte	1
30994	.byte	0
30995	.hword	512
30996	.byte	3
30997	.byte	0
30998	.byte	0
30999	.byte	0
31000	.byte	6
31001	.byte	-119
31002	.byte	100
31003	.byte	68
31004	.byte	75
31005	.byte	-87
31006	.byte	0
31007	.byte	7
31008	.byte	1
31009	.byte	16
31010	.hword	256
31011	.byte	2
31012	.byte	4
31013	.hword	1024
31014	.hword	449
31015	.byte	3
31016	.byte	17
31017	.byte	40
31018	.byte	32
31019	.byte	1
31020	.byte	0
31021	.byte	1
31022	.byte	0
31023	.hword	256
31024	.byte	0
31025	.byte	0
31026	.byte	0
31027	.byte	0
31028	.byte	6
31029	.byte	-119
31030	.byte	-120
31031	.byte	36
31032	.byte	75
31033	.byte	-87
31034	.byte	-124
31035	.byte	7
31036	.byte	1
31037	.byte	16
31038	.hword	256
31039	.byte	2
31040	.byte	4
31041	.hword	1024
31042	.hword	449
31043	.byte	3
31044	.byte	17
31045	.byte	40
31046	.byte	32
31047	.byte	1
31048	.byte	0
31049	.byte	1
31050	.byte	0
31051	.hword	256
31052	.byte	0
31053	.byte	0
31054	.byte	0
31055	.byte	0
31056	.byte	6
31057	.byte	-119
31058	.byte	-120
31059	.byte	4
31060	.byte	75
31061	.byte	-87
31062	.byte	0
31063	.byte	7
31064	.byte	1
31065	.byte	16
31066	.hword	256
31067	.byte	2
31068	.byte	4
31069	.hword	1024
31070	.hword	449
31071	.byte	1
31072	.byte	0
31073	.byte	24
31074	.byte	32
31075	.byte	1
31076	.byte	0
31077	.byte	1
31078	.byte	0
31079	.hword	256
31080	.byte	0
31081	.byte	0
31082	.byte	0
31083	.byte	0
31084	.byte	6
31085	.byte	-119
31086	.byte	-92
31087	.byte	8
31088	.byte	50
31089	.byte	-95
31090	.byte	0
31091	.byte	7
31092	.byte	1
31093	.byte	32
31094	.hword	2304
31095	.byte	3
31096	.byte	1
31097	.hword	1008
31098	.hword	3521
31099	.byte	0
31100	.byte	19
31101	.byte	70
31102	.byte	32
31103	.byte	1
31104	.byte	0
31105	.byte	1
31106	.byte	0
31107	.hword	4096
31108	.byte	3
31109	.byte	0
31110	.byte	0
31111	.byte	4
31112	.byte	6
31113	.byte	-20
31114	.byte	-34
31115	.byte	-108
31116	.byte	-61
31117	.byte	-92
31118	.byte	-54
31119	.byte	0
31120	.byte	1
31121	.byte	32
31122	.hword	792
31123	.byte	2
31124	.byte	1
31125	.hword	688
31126	.hword	1217
31127	.byte	11
31128	.byte	50
31129	.byte	40
31130	.byte	32
31131	.byte	3
31132	.byte	1
31133	.byte	1
31134	.byte	0
31135	.hword	1024
31136	.byte	1
31137	.byte	-38
31138	.byte	-33
31139	.byte	0
31140	.section	.rodata.__func__.7123,"a",@progbits
31141	.align	3
31142	.set	.LANCHOR171,. + 0
31143	.type	__func__.7123, %object
31144	.size	__func__.7123, 19
31145__func__.7123:
31146	.string	"flash_read_page_en"
31147	.section	.rodata.__func__.7184,"a",@progbits
31148	.align	3
31149	.set	.LANCHOR188,. + 0
31150	.type	__func__.7184, %object
31151	.size	__func__.7184, 19
31152__func__.7184:
31153	.string	"flash_prog_page_en"
31154	.section	.rodata.__func__.7200,"a",@progbits
31155	.align	3
31156	.set	.LANCHOR43,. + 0
31157	.type	__func__.7200, %object
31158	.size	__func__.7200, 26
31159__func__.7200:
31160	.string	"flash_erase_duplane_block"
31161	.section	.rodata.__func__.7211,"a",@progbits
31162	.align	3
31163	.set	.LANCHOR45,. + 0
31164	.type	__func__.7211, %object
31165	.size	__func__.7211, 21
31166__func__.7211:
31167	.string	"flash_erase_block_en"
31168	.section	.rodata.__func__.7225,"a",@progbits
31169	.align	3
31170	.set	.LANCHOR28,. + 0
31171	.type	__func__.7225, %object
31172	.size	__func__.7225, 28
31173__func__.7225:
31174	.string	"flash_wait_device_ready_raw"
31175	.section	.rodata.__func__.7249,"a",@progbits
31176	.align	3
31177	.set	.LANCHOR176,. + 0
31178	.type	__func__.7249, %object
31179	.size	__func__.7249, 26
31180__func__.7249:
31181	.string	"flash_start_tlc_page_prog"
31182	.section	.rodata.__func__.7260,"a",@progbits
31183	.align	3
31184	.set	.LANCHOR177,. + 0
31185	.type	__func__.7260, %object
31186	.size	__func__.7260, 29
31187__func__.7260:
31188	.string	"flash_start_3d_mlc_page_prog"
31189	.section	.rodata.__func__.7278,"a",@progbits
31190	.align	3
31191	.set	.LANCHOR178,. + 0
31192	.type	__func__.7278, %object
31193	.size	__func__.7278, 22
31194__func__.7278:
31195	.string	"flash_start_page_prog"
31196	.section	.rodata.__func__.7289,"a",@progbits
31197	.align	3
31198	.set	.LANCHOR34,. + 0
31199	.type	__func__.7289, %object
31200	.size	__func__.7289, 22
31201__func__.7289:
31202	.string	"flash_start_page_read"
31203	.section	.rodata.__func__.7302,"a",@progbits
31204	.align	3
31205	.set	.LANCHOR179,. + 0
31206	.type	__func__.7302, %object
31207	.size	__func__.7302, 31
31208__func__.7302:
31209	.string	"flash_complete_plane_page_read"
31210	.section	.rodata.__func__.7314,"a",@progbits
31211	.align	3
31212	.set	.LANCHOR46,. + 0
31213	.type	__func__.7314, %object
31214	.size	__func__.7314, 23
31215__func__.7314:
31216	.string	"flash_start_plane_read"
31217	.section	.rodata.__func__.7327,"a",@progbits
31218	.align	3
31219	.set	.LANCHOR180,. + 0
31220	.type	__func__.7327, %object
31221	.size	__func__.7327, 25
31222__func__.7327:
31223	.string	"flash_complete_page_read"
31224	.section	.rodata.__func__.7742,"a",@progbits
31225	.align	3
31226	.set	.LANCHOR144,. + 0
31227	.type	__func__.7742, %object
31228	.size	__func__.7742, 20
31229__func__.7742:
31230	.string	"flash_die_info_init"
31231	.section	.rodata.__func__.7753,"a",@progbits
31232	.align	3
31233	.set	.LANCHOR20,. + 0
31234	.type	__func__.7753, %object
31235	.size	__func__.7753, 22
31236__func__.7753:
31237	.string	"nand_flash_print_info"
31238	.section	.rodata.__func__.7802,"a",@progbits
31239	.align	3
31240	.set	.LANCHOR212,. + 0
31241	.type	__func__.7802, %object
31242	.size	__func__.7802, 16
31243__func__.7802:
31244	.string	"nand_flash_init"
31245	.section	.rodata.__func__.7825,"a",@progbits
31246	.align	3
31247	.set	.LANCHOR156,. + 0
31248	.type	__func__.7825, %object
31249	.size	__func__.7825, 11
31250__func__.7825:
31251	.string	"nandc_init"
31252	.section	.rodata.__func__.7990,"a",@progbits
31253	.align	3
31254	.set	.LANCHOR58,. + 0
31255	.type	__func__.7990, %object
31256	.size	__func__.7990, 13
31257__func__.7990:
31258	.string	"buf_add_tail"
31259	.section	.rodata.__func__.8003,"a",@progbits
31260	.align	3
31261	.set	.LANCHOR60,. + 0
31262	.type	__func__.8003, %object
31263	.size	__func__.8003, 10
31264__func__.8003:
31265	.string	"buf_alloc"
31266	.section	.rodata.__func__.8017,"a",@progbits
31267	.align	3
31268	.set	.LANCHOR61,. + 0
31269	.type	__func__.8017, %object
31270	.size	__func__.8017, 16
31271__func__.8017:
31272	.string	"buf_remove_free"
31273	.section	.rodata.__func__.8038,"a",@progbits
31274	.align	3
31275	.set	.LANCHOR211,. + 0
31276	.type	__func__.8038, %object
31277	.size	__func__.8038, 20
31278__func__.8038:
31279	.string	"flash_info_blk_init"
31280	.section	.rodata.__func__.8053,"a",@progbits
31281	.align	3
31282	.set	.LANCHOR155,. + 0
31283	.type	__func__.8053, %object
31284	.size	__func__.8053, 21
31285__func__.8053:
31286	.string	"flash_info_data_init"
31287	.section	.rodata.__func__.8075,"a",@progbits
31288	.align	3
31289	.set	.LANCHOR208,. + 0
31290	.type	__func__.8075, %object
31291	.size	__func__.8075, 17
31292__func__.8075:
31293	.string	"flash_info_flush"
31294	.section	.rodata.__func__.8151,"a",@progbits
31295	.align	3
31296	.set	.LANCHOR148,. + 0
31297	.type	__func__.8151, %object
31298	.size	__func__.8151, 17
31299__func__.8151:
31300	.string	"lpa_rebuild_hash"
31301	.section	.rodata.__func__.8198,"a",@progbits
31302	.align	3
31303	.set	.LANCHOR235,. + 0
31304	.type	__func__.8198, %object
31305	.size	__func__.8198, 17
31306__func__.8198:
31307	.string	"ftl_write_commit"
31308	.section	.rodata.__func__.8216,"a",@progbits
31309	.align	3
31310	.set	.LANCHOR67,. + 0
31311	.type	__func__.8216, %object
31312	.size	__func__.8216, 14
31313__func__.8216:
31314	.string	"ftl_write_buf"
31315	.section	.rodata.__func__.8258,"a",@progbits
31316	.align	3
31317	.set	.LANCHOR70,. + 0
31318	.type	__func__.8258, %object
31319	.size	__func__.8258, 18
31320__func__.8258:
31321	.string	"zftl_add_read_buf"
31322	.section	.rodata.__func__.8291,"a",@progbits
31323	.align	3
31324	.set	.LANCHOR233,. + 0
31325	.type	__func__.8291, %object
31326	.size	__func__.8291, 10
31327__func__.8291:
31328	.string	"zftl_read"
31329	.section	.rodata.__func__.8323,"a",@progbits
31330	.align	3
31331	.set	.LANCHOR242,. + 0
31332	.type	__func__.8323, %object
31333	.size	__func__.8323, 13
31334__func__.8323:
31335	.string	"_ftl_discard"
31336	.section	.rodata.__func__.8469,"a",@progbits
31337	.align	3
31338	.set	.LANCHOR225,. + 0
31339	.type	__func__.8469, %object
31340	.size	__func__.8469, 12
31341__func__.8469:
31342	.string	"gc_recovery"
31343	.section	.rodata.__func__.8479,"a",@progbits
31344	.align	3
31345	.set	.LANCHOR77,. + 0
31346	.type	__func__.8479, %object
31347	.size	__func__.8479, 12
31348__func__.8479:
31349	.string	"gc_add_sblk"
31350	.section	.rodata.__func__.8526,"a",@progbits
31351	.align	3
31352	.set	.LANCHOR187,. + 0
31353	.type	__func__.8526, %object
31354	.size	__func__.8526, 21
31355__func__.8526:
31356	.string	"gc_check_data_one_wl"
31357	.section	.rodata.__func__.8558,"a",@progbits
31358	.align	3
31359	.set	.LANCHOR229,. + 0
31360	.type	__func__.8558, %object
31361	.size	__func__.8558, 22
31362__func__.8558:
31363	.string	"gc_update_l2p_map_new"
31364	.section	.rodata.__func__.8571,"a",@progbits
31365	.align	3
31366	.set	.LANCHOR83,. + 0
31367	.type	__func__.8571, %object
31368	.size	__func__.8571, 19
31369__func__.8571:
31370	.string	"gc_write_completed"
31371	.section	.rodata.__func__.8601,"a",@progbits
31372	.align	3
31373	.set	.LANCHOR237,. + 0
31374	.type	__func__.8601, %object
31375	.size	__func__.8601, 16
31376__func__.8601:
31377	.string	"gc_do_copy_back"
31378	.section	.rodata.__func__.8628,"a",@progbits
31379	.align	3
31380	.set	.LANCHOR133,. + 0
31381	.type	__func__.8628, %object
31382	.size	__func__.8628, 16
31383__func__.8628:
31384	.string	"gc_free_src_blk"
31385	.section	.rodata.__func__.8672,"a",@progbits
31386	.align	3
31387	.set	.LANCHOR230,. + 0
31388	.type	__func__.8672, %object
31389	.size	__func__.8672, 16
31390__func__.8672:
31391	.string	"gc_scan_src_blk"
31392	.section	.rodata.__func__.8733,"a",@progbits
31393	.align	3
31394	.set	.LANCHOR231,. + 0
31395	.type	__func__.8733, %object
31396	.size	__func__.8733, 20
31397__func__.8733:
31398	.string	"gc_scan_static_data"
31399	.section	.rodata.__func__.8827,"a",@progbits
31400	.align	3
31401	.set	.LANCHOR240,. + 0
31402	.type	__func__.8827, %object
31403	.size	__func__.8827, 11
31404__func__.8827:
31405	.string	"zftl_do_gc"
31406	.section	.rodata.__func__.8922,"a",@progbits
31407	.align	3
31408	.set	.LANCHOR5,. + 0
31409	.type	__func__.8922, %object
31410	.size	__func__.8922, 18
31411__func__.8922:
31412	.string	"_list_remove_node"
31413	.section	.rodata.__func__.8947,"a",@progbits
31414	.align	3
31415	.set	.LANCHOR13,. + 0
31416	.type	__func__.8947, %object
31417	.size	__func__.8947, 23
31418__func__.8947:
31419	.string	"_list_update_data_list"
31420	.section	.rodata.__func__.9022,"a",@progbits
31421	.align	3
31422	.set	.LANCHOR152,. + 0
31423	.type	__func__.9022, %object
31424	.size	__func__.9022, 20
31425__func__.9022:
31426	.string	"zftl_sblk_list_init"
31427	.section	.rodata.__func__.9056,"a",@progbits
31428	.align	3
31429	.set	.LANCHOR195,. + 0
31430	.type	__func__.9056, %object
31431	.size	__func__.9056, 15
31432__func__.9056:
31433	.string	"ftl_info_flush"
31434	.section	.rodata.__func__.9091,"a",@progbits
31435	.align	3
31436	.set	.LANCHOR116,. + 0
31437	.type	__func__.9091, %object
31438	.size	__func__.9091, 15
31439__func__.9091:
31440	.string	"ftl_alloc_sblk"
31441	.section	.rodata.__func__.9132,"a",@progbits
31442	.align	3
31443	.set	.LANCHOR119,. + 0
31444	.type	__func__.9132, %object
31445	.size	__func__.9132, 18
31446__func__.9132:
31447	.string	"ftl_alloc_sys_blk"
31448	.section	.rodata.__func__.9142,"a",@progbits
31449	.align	3
31450	.set	.LANCHOR120,. + 0
31451	.type	__func__.9142, %object
31452	.size	__func__.9142, 17
31453__func__.9142:
31454	.string	"ftl_free_sys_blk"
31455	.section	.rodata.__func__.9177,"a",@progbits
31456	.align	3
31457	.set	.LANCHOR232,. + 0
31458	.type	__func__.9177, %object
31459	.size	__func__.9177, 14
31460__func__.9177:
31461	.string	"ftl_sblk_dump"
31462	.section	.rodata.__func__.9201,"a",@progbits
31463	.align	3
31464	.set	.LANCHOR217,. + 0
31465	.type	__func__.9201, %object
31466	.size	__func__.9201, 16
31467__func__.9201:
31468	.string	"ftl_sysblk_dump"
31469	.section	.rodata.__func__.9226,"a",@progbits
31470	.align	3
31471	.set	.LANCHOR218,. + 0
31472	.type	__func__.9226, %object
31473	.size	__func__.9226, 23
31474__func__.9226:
31475	.string	"ftl_open_sblk_recovery"
31476	.section	.rodata.__func__.9259,"a",@progbits
31477	.align	3
31478	.set	.LANCHOR121,. + 0
31479	.type	__func__.9259, %object
31480	.size	__func__.9259, 23
31481__func__.9259:
31482	.string	"ftl_get_ppa_from_index"
31483	.section	.rodata.__func__.9280,"a",@progbits
31484	.align	3
31485	.set	.LANCHOR234,. + 0
31486	.type	__func__.9280, %object
31487	.size	__func__.9280, 19
31488__func__.9280:
31489	.string	"ftl_update_l2p_map"
31490	.section	.rodata.__func__.9299,"a",@progbits
31491	.align	3
31492	.set	.LANCHOR125,. + 0
31493	.type	__func__.9299, %object
31494	.size	__func__.9299, 22
31495__func__.9299:
31496	.string	"ftl_get_new_free_page"
31497	.section	.rodata.__func__.9310,"a",@progbits
31498	.align	3
31499	.set	.LANCHOR126,. + 0
31500	.type	__func__.9310, %object
31501	.size	__func__.9310, 22
31502__func__.9310:
31503	.string	"ftl_ext_alloc_new_blk"
31504	.section	.rodata.__func__.9336,"a",@progbits
31505	.align	3
31506	.set	.LANCHOR200,. + 0
31507	.type	__func__.9336, %object
31508	.size	__func__.9336, 19
31509__func__.9336:
31510	.string	"ftl_ext_info_flush"
31511	.section	.rodata.__func__.9348,"a",@progbits
31512	.align	3
31513	.set	.LANCHOR201,. + 0
31514	.type	__func__.9348, %object
31515	.size	__func__.9348, 18
31516__func__.9348:
31517	.string	"ftl_ext_info_init"
31518	.section	.rodata.__func__.9387,"a",@progbits
31519	.align	3
31520	.set	.LANCHOR202,. + 0
31521	.type	__func__.9387, %object
31522	.size	__func__.9387, 25
31523__func__.9387:
31524	.string	"ftl_low_format_data_init"
31525	.section	.rodata.__func__.9402,"a",@progbits
31526	.align	3
31527	.set	.LANCHOR204,. + 0
31528	.type	__func__.9402, %object
31529	.size	__func__.9402, 15
31530__func__.9402:
31531	.string	"ftl_low_format"
31532	.section	.rodata.__func__.9450,"a",@progbits
31533	.align	3
31534	.set	.LANCHOR191,. + 0
31535	.type	__func__.9450, %object
31536	.size	__func__.9450, 14
31537__func__.9450:
31538	.string	"ftl_prog_page"
31539	.section	.rodata.__func__.9569,"a",@progbits
31540	.align	3
31541	.set	.LANCHOR181,. + 0
31542	.type	__func__.9569, %object
31543	.size	__func__.9569, 31
31544__func__.9569:
31545	.string	"queue_wait_first_req_completed"
31546	.section	.rodata.__func__.9623,"a",@progbits
31547	.align	3
31548	.set	.LANCHOR182,. + 0
31549	.type	__func__.9623, %object
31550	.size	__func__.9623, 15
31551__func__.9623:
31552	.string	"sblk_prog_page"
31553	.section	.rodata.__func__.9650,"a",@progbits
31554	.align	3
31555	.set	.LANCHOR186,. + 0
31556	.type	__func__.9650, %object
31557	.size	__func__.9650, 15
31558__func__.9650:
31559	.string	"sblk_read_page"
31560	.section	.rodata.__func__.9720,"a",@progbits
31561	.align	3
31562	.set	.LANCHOR220,. + 0
31563	.type	__func__.9720, %object
31564	.size	__func__.9720, 16
31565__func__.9720:
31566	.string	"load_l2p_region"
31567	.section	.rodata.__func__.9736,"a",@progbits
31568	.align	3
31569	.set	.LANCHOR154,. + 0
31570	.type	__func__.9736, %object
31571	.size	__func__.9736, 13
31572__func__.9736:
31573	.string	"pm_free_sblk"
31574	.section	.rodata.__func__.9760,"a",@progbits
31575	.align	3
31576	.set	.LANCHOR222,. + 0
31577	.type	__func__.9760, %object
31578	.size	__func__.9760, 6
31579__func__.9760:
31580	.string	"pm_gc"
31581	.section	.rodata.__func__.9776,"a",@progbits
31582	.align	3
31583	.set	.LANCHOR135,. + 0
31584	.type	__func__.9776, %object
31585	.size	__func__.9776, 17
31586__func__.9776:
31587	.string	"pm_alloc_new_blk"
31588	.section	.rodata.__func__.9786,"a",@progbits
31589	.align	3
31590	.set	.LANCHOR205,. + 0
31591	.type	__func__.9786, %object
31592	.size	__func__.9786, 14
31593__func__.9786:
31594	.string	"pm_write_page"
31595	.section	.rodata.__func__.9804,"a",@progbits
31596	.align	3
31597	.set	.LANCHOR138,. + 0
31598	.type	__func__.9804, %object
31599	.size	__func__.9804, 21
31600__func__.9804:
31601	.string	"pm_select_ram_region"
31602	.section	.rodata._list_remove_node.str1.1,"aMS",@progbits,1
31603.LC0:
31604	.string	"\n!!!!! error @ func:%s - line:%d\n"
31605	.section	.rodata.dump_buf_info.str1.1,"aMS",@progbits,1
31606.LC41:
31607	.string	"sblk_queue_head = %d\n"
31608.LC42:
31609	.string	"sblk_read_completed_queue_head = %d\n"
31610.LC43:
31611	.string	"sblk_gc_write_completed_queue_head = %d\n"
31612.LC44:
31613	.string	"sblk_write_completed_queue_head = %d\n"
31614.LC45:
31615	.string	"p_free_buf_head = %d\n"
31616.LC46:
31617	.string	"free_buf_count = %d\n"
31618.LC47:
31619	.string	"buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_state=%d, op_status = %d lpa=%x, ppa=%x\n"
31620	.section	.rodata.dump_pm_blk.str1.1,"aMS",@progbits,1
31621.LC237:
31622	.string	"pm l2p:"
31623.LC238:
31624	.string	"pm blk:"
31625	.section	.rodata.dump_sblk_queue.str1.1,"aMS",@progbits,1
31626.LC73:
31627	.string	"dump_sblk_queue: %d\n"
31628.LC74:
31629	.string	"buf id= %d state = %d ppa = %x\n"
31630	.section	.rodata.flash_complete_page_read.str1.1,"aMS",@progbits,1
31631.LC133:
31632	.string	"flash_complete_page_read %x %x error_ecc %d %d\n"
31633	.section	.rodata.flash_ddr_tuning_read.str1.1,"aMS",@progbits,1
31634.LC119:
31635	.string	"%d flash_ddr_tuning_read %x ecc=%d\n"
31636.LC120:
31637	.string	"sync para %d\n"
31638.LC121:
31639	.string	"DDR mode Read error %x %x\n"
31640.LC122:
31641	.string	"SDR mode Read %x %x ecc:%x\n"
31642	.section	.rodata.flash_dual_page_prog.str1.1,"aMS",@progbits,1
31643.LC127:
31644	.string	"flash_prog_page %x %x %x\n"
31645	.section	.rodata.flash_erase_all.str1.1,"aMS",@progbits,1
31646.LC35:
31647	.string	"erase done: %x\n"
31648	.section	.rodata.flash_erase_block_en.str1.1,"aMS",@progbits,1
31649.LC33:
31650	.string	"flash_erase_block %x %x %x\n"
31651.LC34:
31652	.string	"flash_erase_block %d block = %x status = %x\n"
31653	.section	.rodata.flash_erase_duplane_block.str1.1,"aMS",@progbits,1
31654.LC31:
31655	.string	"flash_erase_duplane_block %x %x %x\n"
31656.LC32:
31657	.string	"flash_erase_duplane_block pageadd = %x status = %x\n"
31658	.section	.rodata.flash_get_last_written_page.str1.1,"aMS",@progbits,1
31659.LC125:
31660	.string	"flash_get_last_written_page: %x %x %x\n"
31661	.section	.rodata.flash_info_blk_init.str1.1,"aMS",@progbits,1
31662.LC169:
31663	.string	"...%d @ %s %d %p\n"
31664.LC170:
31665	.string	"no sys info %x\n"
31666	.section	.rodata.flash_info_data_init.str1.1,"aMS",@progbits,1
31667.LC91:
31668	.string	"...%d @ %s\n"
31669	.section	.rodata.flash_info_flush.str1.1,"aMS",@progbits,1
31670.LC166:
31671	.string	"finfo:"
31672.LC167:
31673	.string	"flash_info_flush id = %x, page = %x\n"
31674.LC168:
31675	.string	"sys_info_flush error:%x\n"
31676	.section	.rodata.flash_mask_bad_block.str1.1,"aMS",@progbits,1
31677.LC48:
31678	.string	"flash_mask_bad_block %d %d\n"
31679	.section	.rodata.flash_prog_page.str1.1,"aMS",@progbits,1
31680.LC126:
31681	.string	"flash_prog_page page_addr = %x status = %x\n"
31682	.section	.rodata.flash_prog_page_en.str1.1,"aMS",@progbits,1
31683.LC141:
31684	.string	"flash_prog_page_en:%x %x %x\n"
31685.LC142:
31686	.string	"w d:"
31687.LC143:
31688	.string	"w s:"
31689.LC144:
31690	.string	"spare"
31691.LC145:
31692	.string	"data"
31693.LC146:
31694	.string	"write error: %x\n"
31695	.section	.rodata.flash_read_id.str1.1,"aMS",@progbits,1
31696.LC38:
31697	.string	"No.%d FLASH ID:%x %x %x %x %x %x\n"
31698	.section	.rodata.flash_read_otp_data.str1.1,"aMS",@progbits,1
31699.LC39:
31700	.string	"otp:%x %x %x %x\n"
31701	.section	.rodata.flash_read_page_en.str1.1,"aMS",@progbits,1
31702.LC123:
31703	.string	"flash_read_page_en %x %x %x %x\n"
31704.LC124:
31705	.string	"flash_read_page_en %x %x error_ecc %d %d\n"
31706	.section	.rodata.flash_set_interface_mode.str1.1,"aMS",@progbits,1
31707.LC36:
31708	.string	"nand sdr mode %x\n"
31709.LC37:
31710	.string	"nand ddr mode %x\n"
31711	.section	.rodata.ftl_alloc_new_data_sblk.str1.1,"aMS",@progbits,1
31712.LC228:
31713	.string	"error gc_add_sblk: %x\n"
31714	.section	.rodata.ftl_dump_write_open_sblk.str1.1,"aMS",@progbits,1
31715.LC160:
31716	.string	"ftl_sblk_dump_write = %x %d %d %d %d\n"
31717.LC161:
31718	.string	"blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
31719.LC162:
31720	.string	"ftl_sblk_dump_write2 = %x %d %d %d\n"
31721.LC163:
31722	.string	"ftl_sblk_dump_write = %x %x\n"
31723.LC164:
31724	.string	"ftl_sblk_dump_write done = %x\n"
31725	.section	.rodata.ftl_ext_info_init.str1.1,"aMS",@progbits,1
31726.LC153:
31727	.string	"%s %d %d %x %x\n"
31728.LC154:
31729	.string	"ext info hash %x error\n"
31730.LC155:
31731	.string	"%s %x %x %x\n"
31732	.section	.rodata.ftl_free_sblk.str1.1,"aMS",@progbits,1
31733.LC70:
31734	.string	"swl_slc_free_mini_ec_blk sblk %x\n"
31735	.section	.rodata.ftl_info_blk_init.str1.1,"aMS",@progbits,1
31736.LC149:
31737	.string	"%d %x @%d %x\n"
31738.LC150:
31739	.string	"ftl_info_blk_init %d %d %x\n"
31740.LC151:
31741	.string	"ftl info hash %x error\n"
31742.LC152:
31743	.string	"ink flag: %x\n"
31744	.section	.rodata.ftl_info_flush.str1.1,"aMS",@progbits,1
31745.LC148:
31746	.string	"g_ftl_info_blk blk = %x, page = %x version = %d\n"
31747	.section	.rodata.ftl_low_format.str1.1,"aMS",@progbits,1
31748.LC156:
31749	.string	"ftl_low_format %d\n"
31750.LC157:
31751	.string	"low format %d %d %d %d\n"
31752	.section	.rodata.ftl_mask_bad_block.str1.1,"aMS",@progbits,1
31753.LC68:
31754	.string	"mask bad block:cs %x %x block: %x %x\n"
31755	.section	.rodata.ftl_open_sblk_recovery.str1.1,"aMS",@progbits,1
31756.LC172:
31757	.string	"saved_active_page  = %x\n"
31758.LC173:
31759	.string	"saved_active_plane = %x\n"
31760.LC174:
31761	.string	"sblk = %x\n"
31762.LC175:
31763	.string	"phy_blk = %x %x\n"
31764.LC176:
31765	.string	"num_planes = %x\n"
31766.LC177:
31767	.string	"recovery blk=%x, page=%x, ppa = %x, status = %x, hash:%x\n"
31768.LC178:
31769	.string	"data:"
31770.LC179:
31771	.string	"sblk = %x, vpn0 = %d, vpn1 = %d\n"
31772.LC180:
31773	.string	"dump_write_lpa = %x %x %x %x\n"
31774.LC181:
31775	.string	"dump write new ppa = %x, last ppa = %x lpa = %x\n"
31776.LC182:
31777	.string	"dump write = %x %x %x\n"
31778.LC183:
31779	.string	"dump write hash update = %x %x %x\n"
31780	.section	.rodata.ftl_re_low_format.str1.1,"aMS",@progbits,1
31781.LC158:
31782	.string	"re low format %d\n"
31783	.section	.rodata.ftl_sblk_dump.str1.1,"aMS",@progbits,1
31784.LC216:
31785	.string	"ftl_sblk_dump = %x %d %d %d %d\n"
31786.LC217:
31787	.string	"ftl_sblk_dump = %x %x %x %x\n"
31788.LC218:
31789	.string	"page_addr = %x, lpa=%x vpn = %d\n"
31790.LC219:
31791	.string	"index= %x, lpa=%x\n"
31792.LC220:
31793	.string	"block = %x, vpn=%x check vpn = %x\n"
31794	.section	.rodata.ftl_sysblk_dump.str1.1,"aMS",@progbits,1
31795.LC171:
31796	.string	"l2p:"
31797	.section	.rodata.ftl_test_block.str1.1,"aMS",@progbits,1
31798.LC147:
31799	.string	"low format %d\n"
31800	.section	.rodata.ftl_update_l2p_map.str1.1,"aMS",@progbits,1
31801.LC224:
31802	.string	"ftl_update_l2p_map: %x %x %x\n"
31803.LC225:
31804	.string	"ftl_update_l2p_map"
31805.LC226:
31806	.string	"lpa_tbl:"
31807.LC227:
31808	.string	"sblk %x vpn: %d %d\n"
31809	.section	.rodata.ftl_vpn_decrement.str1.1,"aMS",@progbits,1
31810.LC65:
31811	.string	"ftl_vpn_decrement %x = %d, %d\n"
31812	.section	.rodata.ftl_write_commit.str1.1,"aMS",@progbits,1
31813.LC229:
31814	.string	"%d read error: ppa:%x, lpa:%x, status:%x\n"
31815	.section	.rodata.ftl_write_completed.str1.1,"aMS",@progbits,1
31816.LC66:
31817	.string	"ftl prog error =%x, lpa = %x, ppa= %x\n"
31818.LC67:
31819	.string	"ftl re prog: lpa = %x, ppa= %x\n"
31820	.section	.rodata.gc_add_sblk.str1.1,"aMS",@progbits,1
31821.LC49:
31822	.string	"gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\n"
31823.LC50:
31824	.string	"gc_add_sblk = %d, %d, %d\n"
31825.LC51:
31826	.string	"gc_add_sblk = %d, %d, %d,last update:%d, %d\n"
31827.LC52:
31828	.string	"gc_add_sblk = %d, %d, %d, %d, %d, %d\n"
31829	.section	.rodata.gc_check_data_one_wl.str1.1,"aMS",@progbits,1
31830.LC140:
31831	.string	"err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
31832	.section	.rodata.gc_do_copy_back.str1.1,"aMS",@progbits,1
31833.LC231:
31834	.string	"gc page in buf: lpa %x ppa = %x pageindex= %x\n"
31835.LC232:
31836	.string	"gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n"
31837	.section	.rodata.gc_free_bad_sblk.str1.1,"aMS",@progbits,1
31838.LC69:
31839	.string	"gc_free_bad_sblk 0x%x\n"
31840	.section	.rodata.gc_free_src_blk.str1.1,"aMS",@progbits,1
31841.LC71:
31842	.string	"gc_free_src_blk = %x, vpn = %d\n"
31843.LC72:
31844	.string	"gc_free_src_blk %x, %d\n"
31845	.section	.rodata.gc_free_temp_buf.str1.1,"aMS",@progbits,1
31846.LC55:
31847	.string	"%d gc_free_temp_buf buf id= %x\n"
31848	.section	.rodata.gc_ink_check_sblk.str1.1,"aMS",@progbits,1
31849.LC165:
31850	.string	"%x: ink_scaned_blk_num %x\n"
31851	.section	.rodata.gc_mark_bad_ppa.str1.1,"aMS",@progbits,1
31852.LC53:
31853	.string	"gc_mark_bad_ppa %d %x %x\n"
31854	.section	.rodata.gc_recovery.str1.1,"aMS",@progbits,1
31855.LC193:
31856	.string	"ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
31857.LC194:
31858	.string	"ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
31859.LC195:
31860	.string	"gc_recovery: %x vpn = %x\n"
31861	.section	.rodata.gc_scan_src_blk.str1.1,"aMS",@progbits,1
31862.LC213:
31863	.string	"gc_scan_src_blk = %x, vpn = %d\n"
31864.LC214:
31865	.string	"js hash error:%x %x %x\n"
31866.LC215:
31867	.string	"gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n"
31868	.section	.rodata.gc_search_src_blk.str1.1,"aMS",@progbits,1
31869.LC57:
31870	.string	"zftl_get_gc_node cache = %x index = %d vpn = %x\n"
31871.LC58:
31872	.string	"gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n"
31873	.section	.rodata.gc_static_wearleveling.str1.1,"aMS",@progbits,1
31874.LC79:
31875	.string	"gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
31876.LC80:
31877	.string	"gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
31878.LC81:
31879	.string	"gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
31880.LC82:
31881	.string	"gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
31882.LC83:
31883	.string	"gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
31884.LC84:
31885	.string	"gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n"
31886.LC85:
31887	.string	"gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n"
31888.LC86:
31889	.string	"swl add tlc gc = %x, %d, %d, %d, %d, %d\n"
31890.LC87:
31891	.string	"swl add slc gc  = %x, %d, %d, %d, %d, %d\n"
31892	.section	.rodata.gc_update_l2p_map_new.str1.1,"aMS",@progbits,1
31893.LC209:
31894	.string	"gc_update_l2p_map_new sblk %x\n"
31895.LC210:
31896	.string	"gc_update_l2p_map_new: %x %x %x\n"
31897.LC211:
31898	.string	"lpa: %x %x %x\n"
31899.LC212:
31900	.string	"gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n"
31901	.section	.rodata.gc_write_completed.str1.1,"aMS",@progbits,1
31902.LC54:
31903	.string	"status: %x, ppa: %x\n"
31904	.section	.rodata.hynix_get_read_retry_default.str1.1,"aMS",@progbits,1
31905.LC99:
31906	.string	"otp error! %d"
31907.LC100:
31908	.string	"rr"
31909	.section	.rodata.hynix_read_retrial.str1.1,"aMS",@progbits,1
31910.LC118:
31911	.string	"hynix RR %d row=%x, count %d, status=%d\n"
31912	.section	.rodata.idb_write_data.str1.1,"aMS",@progbits,1
31913.LC129:
31914	.string	"1 write_idblock fix data %x %x %x\n"
31915.LC130:
31916	.string	"write_idblock check fail! %x\n"
31917.LC131:
31918	.string	"write_idblock fail! %x\n"
31919	.section	.rodata.load_l2p_region.str1.1,"aMS",@progbits,1
31920.LC184:
31921	.string	"region_id = %d, pm_max_region = %d\n"
31922.LC185:
31923	.string	"load_l2p_region no ppa = %x , %x, all setting 0xff....\n"
31924.LC186:
31925	.string	"load_l2p_region = %x,%x,%x, %x\n"
31926.LC187:
31927	.string	"pm_ppa:"
31928.LC188:
31929	.string	"spare:"
31930	.section	.rodata.lpa_rebuild_hash.str1.1,"aMS",@progbits,1
31931.LC78:
31932	.string	"%s %d %d\n"
31933	.section	.rodata.micron_read_retrial.str1.1,"aMS",@progbits,1
31934.LC109:
31935	.string	"MT %d row=%x,last status %d,status = %d\n"
31936.LC110:
31937	.string	"MT RR %d row=%x,count %d,status=%d\n"
31938	.section	.rodata.nand_flash_print_info.str1.1,"aMS",@progbits,1
31939.LC1:
31940	.string	"...%s enter...\n"
31941.LC2:
31942	.string	"No.0 FLASH ID: %x %x %x %x %x %x\n"
31943.LC3:
31944	.string	"DiePerChip: %x\n"
31945.LC4:
31946	.string	"SectPerPage: %x\n"
31947.LC5:
31948	.string	"PagePerBlk: %x\n"
31949.LC6:
31950	.string	"Cell: %x\n"
31951.LC7:
31952	.string	"PlanePerDie: %x\n"
31953.LC8:
31954	.string	"BlkPerPlane: %x\n"
31955.LC9:
31956	.string	"die gap: %x\n"
31957.LC10:
31958	.string	"lsbMode: %x\n"
31959.LC11:
31960	.string	"ReadRetryMode: %x\n"
31961.LC12:
31962	.string	"ecc: %x\n"
31963.LC13:
31964	.string	"idb ecc: %x\n"
31965.LC14:
31966	.string	"OptMode: %x\n"
31967.LC15:
31968	.string	"g_nand_max_die: %x\n"
31969.LC16:
31970	.string	"Cache read enable: %x\n"
31971.LC17:
31972	.string	"Cache random read enable: %x\n"
31973.LC18:
31974	.string	"Cache prog enable: %x\n"
31975.LC19:
31976	.string	"multi read enable: %x\n"
31977.LC20:
31978	.string	"multi prog enable: %x\n"
31979.LC21:
31980	.string	"interleave enable: %x\n"
31981.LC22:
31982	.string	"read retry enable: %x\n"
31983.LC23:
31984	.string	"randomizer enable: %x\n"
31985.LC24:
31986	.string	"SDR enable: %x\n"
31987.LC25:
31988	.string	"ONFI enable: %x\n"
31989.LC26:
31990	.string	"TOGGLE enable: %x\n"
31991.LC27:
31992	.string	"g_flash_slc_mode: %x %x\n"
31993.LC28:
31994	.string	"MultiPlaneProgCmd: %x %x\n"
31995.LC29:
31996	.string	"MultiPlaneReadCmd: %x %x\n"
31997.LC30:
31998	.string	"g_flash_toggle_mode_en: %x\n"
31999	.section	.rodata.nandc_init.str1.1,"aMS",@progbits,1
32000.LC92:
32001	.string	"...%s enter... %p\n"
32002.LC93:
32003	.string	"0:%x %x %x %x %x\n"
32004.LC94:
32005	.string	"g_nandc_ver...%d\n"
32006	.section	.rodata.nandc_xfer.str1.1,"aMS",@progbits,1
32007.LC106:
32008	.string	"dqs data abort %x\n"
32009.LC107:
32010	.string	"dqs data timeout %x\n"
32011.LC108:
32012	.string	"xfer error %x\n"
32013	.section	.rodata.nandc_xfer_done.str1.1,"aMS",@progbits,1
32014.LC101:
32015	.string	"flash_abort_clear = %d\n"
32016.LC102:
32017	.string	"%d mtrans_cnt = %d page_num = %d\n"
32018.LC103:
32019	.string	"%d flReg.d32=%x %x\n"
32020.LC104:
32021	.string	"nandc:"
32022.LC105:
32023	.string	"nandc_xfer_done read error %x\n"
32024	.section	.rodata.pm_alloc_new_blk.str1.1,"aMS",@progbits,1
32025.LC75:
32026	.string	"blk %x is bad block\n"
32027.LC76:
32028	.string	"pm_alloc_new_blk: %x %x %x %x\n"
32029	.section	.rodata.pm_free_sblk.str1.1,"aMS",@progbits,1
32030.LC89:
32031	.string	"GC PM block %x %x %x %d\n"
32032.LC90:
32033	.string	"ftl_free_no_use_map_blk %x %x %x %d\n"
32034	.section	.rodata.pm_init.str1.1,"aMS",@progbits,1
32035.LC189:
32036	.string	"pm_init posr %x %x %x\n"
32037.LC190:
32038	.string	"pm_init recovery %x %x %x\n"
32039.LC191:
32040	.string	"pm_init hash %x error\n"
32041	.section	.rodata.pm_log2phys.str1.1,"aMS",@progbits,1
32042.LC192:
32043	.string	"pm_log2phys  lpn = %d, max lpn = %d\n"
32044	.section	.rodata.pm_ppa_update_check.str1.1,"aMS",@progbits,1
32045.LC77:
32046	.string	"%s w error lpn = %x, max ppa = %d\n"
32047	.section	.rodata.pm_write_page.str1.1,"aMS",@progbits,1
32048.LC159:
32049	.string	"pm_write_page write error: %x\n"
32050	.section	.rodata.print_gc_debug_info.str1.1,"aMS",@progbits,1
32051.LC56:
32052	.string	"gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n"
32053	.section	.rodata.print_list_info.str1.1,"aMS",@progbits,1
32054.LC63:
32055	.string	"list count:%p %d\n"
32056.LC64:
32057	.string	"%d: node:%x %x %x %x, %d %d %d %d %d\n"
32058	.section	.rodata.queue_wait_first_req_completed.str1.1,"aMS",@progbits,1
32059.LC134:
32060	.string	"read: %x %x %x %x\n"
32061.LC135:
32062	.string	"0set buf %d,status = %x, ppa = %x lun state = %d\n"
32063.LC136:
32064	.string	"prog end %x %x error_ecc %d %d\n"
32065.LC137:
32066	.string	"1set buf %d,status = %x, ppa = %x lun state = %d\n"
32067.LC138:
32068	.string	"dp prog end %x %x error_ecc %d %d\n"
32069	.section	.rodata.random_seed,"a",@progbits
32070	.align	3
32071	.set	.LANCHOR54,. + 0
32072	.type	random_seed, %object
32073	.size	random_seed, 256
32074random_seed:
32075	.hword	22378
32076	.hword	1512
32077	.hword	25245
32078	.hword	17827
32079	.hword	25756
32080	.hword	19440
32081	.hword	9026
32082	.hword	10030
32083	.hword	29528
32084	.hword	20467
32085	.hword	29676
32086	.hword	24432
32087	.hword	31328
32088	.hword	6872
32089	.hword	13426
32090	.hword	13842
32091	.hword	8783
32092	.hword	1108
32093	.hword	782
32094	.hword	28837
32095	.hword	30729
32096	.hword	9505
32097	.hword	18676
32098	.hword	23085
32099	.hword	18730
32100	.hword	1085
32101	.hword	32609
32102	.hword	14697
32103	.hword	20858
32104	.hword	15170
32105	.hword	30365
32106	.hword	1607
32107	.hword	32298
32108	.hword	4995
32109	.hword	18905
32110	.hword	1976
32111	.hword	9592
32112	.hword	20204
32113	.hword	17443
32114	.hword	13615
32115	.hword	23330
32116	.hword	29369
32117	.hword	13947
32118	.hword	9398
32119	.hword	32398
32120	.hword	8984
32121	.hword	27600
32122	.hword	21785
32123	.hword	6019
32124	.hword	6311
32125	.hword	31598
32126	.hword	30210
32127	.hword	19327
32128	.hword	13896
32129	.hword	11347
32130	.hword	27545
32131	.hword	3107
32132	.hword	26575
32133	.hword	32270
32134	.hword	19852
32135	.hword	20601
32136	.hword	8349
32137	.hword	9290
32138	.hword	29819
32139	.hword	13579
32140	.hword	3661
32141	.hword	28676
32142	.hword	27331
32143	.hword	32574
32144	.hword	8693
32145	.hword	31253
32146	.hword	9081
32147	.hword	5399
32148	.hword	6842
32149	.hword	20087
32150	.hword	5537
32151	.hword	1274
32152	.hword	11617
32153	.hword	9530
32154	.hword	4866
32155	.hword	8035
32156	.hword	23219
32157	.hword	1178
32158	.hword	23272
32159	.hword	7383
32160	.hword	18944
32161	.hword	12488
32162	.hword	12871
32163	.hword	29340
32164	.hword	20532
32165	.hword	11022
32166	.hword	22514
32167	.hword	228
32168	.hword	22363
32169	.hword	24978
32170	.hword	14584
32171	.hword	12138
32172	.hword	3092
32173	.hword	17916
32174	.hword	16863
32175	.hword	14554
32176	.hword	31457
32177	.hword	29474
32178	.hword	25311
32179	.hword	24121
32180	.hword	3684
32181	.hword	28037
32182	.hword	22865
32183	.hword	22839
32184	.hword	25217
32185	.hword	13217
32186	.hword	27186
32187	.hword	14938
32188	.hword	11180
32189	.hword	29754
32190	.hword	24180
32191	.hword	15150
32192	.hword	32455
32193	.hword	20434
32194	.hword	23848
32195	.hword	29983
32196	.hword	16120
32197	.hword	14769
32198	.hword	20041
32199	.hword	29803
32200	.hword	28406
32201	.hword	17598
32202	.hword	28087
32203	.section	.rodata.rk_ftl_init.str1.1,"aMS",@progbits,1
32204.LC208:
32205	.string	"zftl_init %x\n"
32206	.section	.rodata.rknand_print_hex.str1.1,"aMS",@progbits,1
32207.LC95:
32208	.string	"%s %p + 0x%x:"
32209.LC96:
32210	.string	"%x "
32211.LC97:
32212	.string	""
32213.LC98:
32214	.string	"%s\n"
32215	.section	.rodata.samsung_14nm_mlc_rr,"a",@progbits
32216	.align	3
32217	.set	.LANCHOR169,. + 0
32218	.type	samsung_14nm_mlc_rr, %object
32219	.size	samsung_14nm_mlc_rr, 104
32220samsung_14nm_mlc_rr:
32221	.byte	0
32222	.byte	0
32223	.byte	0
32224	.byte	0
32225	.byte	-4
32226	.byte	3
32227	.byte	-4
32228	.byte	-6
32229	.byte	6
32230	.byte	0
32231	.byte	6
32232	.byte	-10
32233	.byte	-10
32234	.byte	4
32235	.byte	-10
32236	.byte	16
32237	.byte	12
32238	.byte	-4
32239	.byte	12
32240	.byte	8
32241	.byte	-16
32242	.byte	10
32243	.byte	-16
32244	.byte	24
32245	.byte	18
32246	.byte	-14
32247	.byte	18
32248	.byte	-4
32249	.byte	-22
32250	.byte	-16
32251	.byte	-22
32252	.byte	-8
32253	.byte	24
32254	.byte	-9
32255	.byte	24
32256	.byte	8
32257	.byte	-28
32258	.byte	-4
32259	.byte	-28
32260	.byte	16
32261	.byte	30
32262	.byte	10
32263	.byte	30
32264	.byte	10
32265	.byte	-34
32266	.byte	6
32267	.byte	-34
32268	.byte	0
32269	.byte	36
32270	.byte	-8
32271	.byte	36
32272	.byte	-8
32273	.byte	-40
32274	.byte	-2
32275	.byte	-40
32276	.byte	-20
32277	.byte	-46
32278	.byte	-4
32279	.byte	-46
32280	.byte	-30
32281	.byte	3
32282	.byte	0
32283	.byte	3
32284	.byte	-3
32285	.byte	-2
32286	.byte	-4
32287	.byte	-2
32288	.byte	-6
32289	.byte	-4
32290	.byte	-4
32291	.byte	-4
32292	.byte	-10
32293	.byte	-6
32294	.byte	-8
32295	.byte	-6
32296	.byte	-14
32297	.byte	-9
32298	.byte	-8
32299	.byte	-9
32300	.byte	-18
32301	.byte	-52
32302	.byte	22
32303	.byte	-52
32304	.byte	10
32305	.byte	42
32306	.byte	4
32307	.byte	42
32308	.byte	4
32309	.byte	48
32310	.byte	-9
32311	.byte	48
32312	.byte	4
32313	.byte	-58
32314	.byte	12
32315	.byte	-58
32316	.byte	0
32317	.byte	-64
32318	.byte	-24
32319	.byte	-64
32320	.byte	-6
32321	.byte	9
32322	.byte	18
32323	.byte	9
32324	.byte	8
32325	.section	.rodata.samsung_14nm_slc_rr,"a",@progbits
32326	.align	3
32327	.set	.LANCHOR168,. + 0
32328	.type	samsung_14nm_slc_rr, %object
32329	.size	samsung_14nm_slc_rr, 26
32330samsung_14nm_slc_rr:
32331	.byte	0
32332	.byte	10
32333	.byte	-10
32334	.byte	20
32335	.byte	-20
32336	.byte	30
32337	.byte	-30
32338	.byte	40
32339	.byte	-40
32340	.byte	50
32341	.byte	-50
32342	.byte	60
32343	.byte	-60
32344	.byte	-70
32345	.byte	-80
32346	.byte	-90
32347	.byte	-100
32348	.byte	-110
32349	.byte	-120
32350	.byte	-9
32351	.byte	70
32352	.byte	80
32353	.byte	90
32354	.byte	-125
32355	.byte	-115
32356	.byte	100
32357	.section	.rodata.samsung_read_retrial.str1.1,"aMS",@progbits,1
32358.LC115:
32359	.string	"samsung SRR %d row=%x, status=%d\n"
32360.LC116:
32361	.string	"samsung TRR %d row=%x, status=%d\n"
32362.LC117:
32363	.string	"samsung RR %d row=%x,count %d,status=%d\n"
32364	.section	.rodata.sandisk_prog_test_bad_block.str1.1,"aMS",@progbits,1
32365.LC40:
32366	.string	"bad block test:%x %x\n"
32367	.section	.rodata.sblk_mlc_dump_prog.str1.1,"aMS",@progbits,1
32368.LC132:
32369	.string	"sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n"
32370	.section	.rodata.sblk_prog_page.str1.1,"aMS",@progbits,1
32371.LC139:
32372	.string	"sblk_prog_page ppa = %x, count = %d\n"
32373	.section	.rodata.toshiba_15ref_value,"a",@progbits
32374	.align	3
32375	.set	.LANCHOR14,. + 0
32376	.type	toshiba_15ref_value, %object
32377	.size	toshiba_15ref_value, 95
32378toshiba_15ref_value:
32379	.byte	4
32380	.byte	5
32381	.byte	6
32382	.byte	7
32383	.byte	13
32384	.byte	0
32385	.byte	0
32386	.byte	0
32387	.byte	0
32388	.byte	0
32389	.byte	0
32390	.byte	0
32391	.byte	0
32392	.byte	0
32393	.byte	0
32394	.byte	2
32395	.byte	4
32396	.byte	2
32397	.byte	0
32398	.byte	0
32399	.byte	8
32400	.byte	8
32401	.byte	0
32402	.byte	0
32403	.byte	0
32404	.byte	124
32405	.byte	0
32406	.byte	124
32407	.byte	124
32408	.byte	0
32409	.byte	122
32410	.byte	0
32411	.byte	122
32412	.byte	122
32413	.byte	0
32414	.byte	11
32415	.byte	126
32416	.byte	118
32417	.byte	116
32418	.byte	0
32419	.byte	120
32420	.byte	2
32421	.byte	120
32422	.byte	122
32423	.byte	0
32424	.byte	126
32425	.byte	4
32426	.byte	126
32427	.byte	122
32428	.byte	0
32429	.byte	16
32430	.byte	118
32431	.byte	114
32432	.byte	112
32433	.byte	0
32434	.byte	118
32435	.byte	4
32436	.byte	118
32437	.byte	120
32438	.byte	0
32439	.byte	4
32440	.byte	4
32441	.byte	4
32442	.byte	118
32443	.byte	0
32444	.byte	2
32445	.byte	0
32446	.byte	126
32447	.byte	124
32448	.byte	0
32449	.byte	6
32450	.byte	10
32451	.byte	6
32452	.byte	2
32453	.byte	0
32454	.byte	116
32455	.byte	124
32456	.byte	116
32457	.byte	118
32458	.byte	0
32459	.byte	4
32460	.byte	4
32461	.byte	124
32462	.byte	126
32463	.byte	0
32464	.byte	0
32465	.byte	124
32466	.byte	120
32467	.byte	120
32468	.byte	0
32469	.byte	124
32470	.byte	118
32471	.byte	116
32472	.byte	114
32473	.byte	0
32474	.section	.rodata.toshiba_3D_slc_value,"a",@progbits
32475	.align	3
32476	.set	.LANCHOR38,. + 0
32477	.type	toshiba_3D_slc_value, %object
32478	.size	toshiba_3D_slc_value, 11
32479toshiba_3D_slc_value:
32480	.byte	-117
32481	.byte	0
32482	.byte	-8
32483	.byte	8
32484	.byte	-16
32485	.byte	-24
32486	.byte	24
32487	.byte	-40
32488	.byte	40
32489	.byte	-56
32490	.byte	56
32491	.section	.rodata.toshiba_3D_tlc_value,"a",@progbits
32492	.align	3
32493	.set	.LANCHOR37,. + 0
32494	.type	toshiba_3D_tlc_value, %object
32495	.size	toshiba_3D_tlc_value, 399
32496toshiba_3D_tlc_value:
32497	.byte	-119
32498	.byte	-119
32499	.byte	-119
32500	.byte	-119
32501	.byte	-118
32502	.byte	-118
32503	.byte	-118
32504	.byte	0
32505	.byte	0
32506	.byte	0
32507	.byte	0
32508	.byte	0
32509	.byte	0
32510	.byte	0
32511	.byte	5
32512	.byte	-2
32513	.byte	-1
32514	.byte	0
32515	.byte	-3
32516	.byte	-2
32517	.byte	6
32518	.byte	-9
32519	.byte	-12
32520	.byte	-9
32521	.byte	-7
32522	.byte	-13
32523	.byte	-12
32524	.byte	-7
32525	.byte	-6
32526	.byte	-15
32527	.byte	-15
32528	.byte	-2
32529	.byte	-12
32530	.byte	-16
32531	.byte	-6
32532	.byte	-2
32533	.byte	-19
32534	.byte	-19
32535	.byte	-6
32536	.byte	-4
32537	.byte	-12
32538	.byte	-14
32539	.byte	-2
32540	.byte	-11
32541	.byte	-23
32542	.byte	-34
32543	.byte	-4
32544	.byte	-20
32545	.byte	-22
32546	.byte	-2
32547	.byte	-7
32548	.byte	-31
32549	.byte	-30
32550	.byte	-12
32551	.byte	-20
32552	.byte	-18
32553	.byte	2
32554	.byte	-15
32555	.byte	-19
32556	.byte	-36
32557	.byte	-12
32558	.byte	-28
32559	.byte	-34
32560	.byte	-6
32561	.byte	-15
32562	.byte	-11
32563	.byte	2
32564	.byte	-12
32565	.byte	-8
32566	.byte	-2
32567	.byte	2
32568	.byte	-3
32569	.byte	-7
32570	.byte	-10
32571	.byte	-4
32572	.byte	-8
32573	.byte	-6
32574	.byte	-6
32575	.byte	-11
32576	.byte	-27
32577	.byte	-38
32578	.byte	-16
32579	.byte	-12
32580	.byte	-2
32581	.byte	2
32582	.byte	-7
32583	.byte	-31
32584	.byte	-22
32585	.byte	-4
32586	.byte	-16
32587	.byte	-22
32588	.byte	-7
32589	.byte	-31
32590	.byte	-23
32591	.byte	-22
32592	.byte	-28
32593	.byte	-28
32594	.byte	-26
32595	.byte	2
32596	.byte	-7
32597	.byte	-11
32598	.byte	-14
32599	.byte	-8
32600	.byte	-12
32601	.byte	-10
32602	.byte	-10
32603	.byte	-27
32604	.byte	-25
32605	.byte	-22
32606	.byte	-20
32607	.byte	-28
32608	.byte	-22
32609	.byte	-7
32610	.byte	-23
32611	.byte	-29
32612	.byte	-34
32613	.byte	-24
32614	.byte	-32
32615	.byte	-22
32616	.byte	-10
32617	.byte	-11
32618	.byte	-29
32619	.byte	-18
32620	.byte	-12
32621	.byte	-24
32622	.byte	-22
32623	.byte	6
32624	.byte	1
32625	.byte	-3
32626	.byte	-6
32627	.byte	0
32628	.byte	-4
32629	.byte	-2
32630	.byte	10
32631	.byte	-3
32632	.byte	-7
32633	.byte	-6
32634	.byte	4
32635	.byte	-4
32636	.byte	-2
32637	.byte	-10
32638	.byte	-23
32639	.byte	-39
32640	.byte	-22
32641	.byte	-19
32642	.byte	-24
32643	.byte	-18
32644	.byte	-14
32645	.byte	-23
32646	.byte	-29
32647	.byte	-30
32648	.byte	-15
32649	.byte	-30
32650	.byte	-30
32651	.byte	-7
32652	.byte	-27
32653	.byte	-35
32654	.byte	-26
32655	.byte	-15
32656	.byte	-24
32657	.byte	-26
32658	.byte	6
32659	.byte	-11
32660	.byte	5
32661	.byte	-2
32662	.byte	-16
32663	.byte	-16
32664	.byte	-2
32665	.byte	-2
32666	.byte	-15
32667	.byte	-15
32668	.byte	-20
32669	.byte	-8
32670	.byte	-16
32671	.byte	-18
32672	.byte	6
32673	.byte	5
32674	.byte	-15
32675	.byte	-2
32676	.byte	-24
32677	.byte	-28
32678	.byte	-22
32679	.byte	10
32680	.byte	-15
32681	.byte	-3
32682	.byte	-30
32683	.byte	-8
32684	.byte	-24
32685	.byte	-30
32686	.byte	-10
32687	.byte	-27
32688	.byte	-19
32689	.byte	-30
32690	.byte	-12
32691	.byte	-16
32692	.byte	-10
32693	.byte	14
32694	.byte	-19
32695	.byte	-3
32696	.byte	-30
32697	.byte	4
32698	.byte	4
32699	.byte	6
32700	.byte	2
32701	.byte	1
32702	.byte	-3
32703	.byte	-10
32704	.byte	-8
32705	.byte	-4
32706	.byte	-6
32707	.byte	-2
32708	.byte	-15
32709	.byte	-11
32710	.byte	-26
32711	.byte	-8
32712	.byte	-20
32713	.byte	-30
32714	.byte	6
32715	.byte	-19
32716	.byte	-3
32717	.byte	-46
32718	.byte	0
32719	.byte	0
32720	.byte	2
32721	.byte	6
32722	.byte	9
32723	.byte	5
32724	.byte	2
32725	.byte	4
32726	.byte	8
32727	.byte	6
32728	.byte	8
32729	.byte	9
32730	.byte	9
32731	.byte	6
32732	.byte	8
32733	.byte	8
32734	.byte	6
32735	.byte	10
32736	.byte	13
32737	.byte	9
32738	.byte	6
32739	.byte	8
32740	.byte	12
32741	.byte	10
32742	.byte	2
32743	.byte	5
32744	.byte	1
32745	.byte	-2
32746	.byte	0
32747	.byte	0
32748	.byte	6
32749	.byte	12
32750	.byte	1
32751	.byte	13
32752	.byte	2
32753	.byte	12
32754	.byte	12
32755	.byte	14
32756	.byte	-12
32757	.byte	-14
32758	.byte	-20
32759	.byte	-18
32760	.byte	-16
32761	.byte	-16
32762	.byte	-14
32763	.byte	-12
32764	.byte	-10
32765	.byte	-21
32766	.byte	-14
32767	.byte	-12
32768	.byte	-12
32769	.byte	-10
32770	.byte	-12
32771	.byte	-18
32772	.byte	-22
32773	.byte	-24
32774	.byte	-18
32775	.byte	-18
32776	.byte	-18
32777	.byte	-12
32778	.byte	-14
32779	.byte	-23
32780	.byte	-20
32781	.byte	-20
32782	.byte	-20
32783	.byte	-20
32784	.byte	-12
32785	.byte	-24
32786	.byte	-24
32787	.byte	-30
32788	.byte	-24
32789	.byte	-28
32790	.byte	-28
32791	.byte	-12
32792	.byte	-26
32793	.byte	-25
32794	.byte	-34
32795	.byte	-24
32796	.byte	-24
32797	.byte	-24
32798	.byte	-12
32799	.byte	-13
32800	.byte	-26
32801	.byte	-20
32802	.byte	-14
32803	.byte	-18
32804	.byte	-18
32805	.byte	-12
32806	.byte	-15
32807	.byte	-27
32808	.byte	-22
32809	.byte	-20
32810	.byte	-24
32811	.byte	-22
32812	.byte	-12
32813	.byte	-21
32814	.byte	-28
32815	.byte	-28
32816	.byte	-24
32817	.byte	-26
32818	.byte	-24
32819	.byte	20
32820	.byte	16
32821	.byte	6
32822	.byte	10
32823	.byte	16
32824	.byte	12
32825	.byte	12
32826	.byte	16
32827	.byte	16
32828	.byte	8
32829	.byte	8
32830	.byte	12
32831	.byte	12
32832	.byte	12
32833	.byte	18
32834	.byte	18
32835	.byte	10
32836	.byte	8
32837	.byte	14
32838	.byte	14
32839	.byte	14
32840	.byte	16
32841	.byte	14
32842	.byte	6
32843	.byte	6
32844	.byte	12
32845	.byte	14
32846	.byte	8
32847	.byte	20
32848	.byte	18
32849	.byte	8
32850	.byte	6
32851	.byte	14
32852	.byte	14
32853	.byte	10
32854	.byte	20
32855	.byte	20
32856	.byte	6
32857	.byte	10
32858	.byte	10
32859	.byte	12
32860	.byte	12
32861	.byte	10
32862	.byte	13
32863	.byte	5
32864	.byte	2
32865	.byte	14
32866	.byte	8
32867	.byte	6
32868	.byte	6
32869	.byte	13
32870	.byte	9
32871	.byte	4
32872	.byte	14
32873	.byte	10
32874	.byte	10
32875	.byte	10
32876	.byte	13
32877	.byte	9
32878	.byte	6
32879	.byte	8
32880	.byte	12
32881	.byte	10
32882	.byte	2
32883	.byte	5
32884	.byte	1
32885	.byte	-2
32886	.byte	0
32887	.byte	0
32888	.byte	6
32889	.byte	12
32890	.byte	1
32891	.byte	13
32892	.byte	2
32893	.byte	12
32894	.byte	12
32895	.byte	14
32896	.section	.rodata.toshiba_3d_read_retrial.str1.1,"aMS",@progbits,1
32897.LC111:
32898	.string	"toshiba SRR %d row=%x, status=%d\n"
32899.LC112:
32900	.string	"toshiba TRR %d row=%x, status=%d\n"
32901.LC113:
32902	.string	"toshiba RR %d row=%x,count %d,status=%d\n"
32903	.section	.rodata.toshiba_A19ref_value,"a",@progbits
32904	.align	3
32905	.set	.LANCHOR15,. + 0
32906	.type	toshiba_A19ref_value, %object
32907	.size	toshiba_A19ref_value, 45
32908toshiba_A19ref_value:
32909	.byte	4
32910	.byte	5
32911	.byte	6
32912	.byte	7
32913	.byte	13
32914	.byte	0
32915	.byte	0
32916	.byte	0
32917	.byte	0
32918	.byte	0
32919	.byte	4
32920	.byte	4
32921	.byte	124
32922	.byte	126
32923	.byte	0
32924	.byte	0
32925	.byte	124
32926	.byte	120
32927	.byte	120
32928	.byte	0
32929	.byte	124
32930	.byte	118
32931	.byte	116
32932	.byte	114
32933	.byte	0
32934	.byte	8
32935	.byte	8
32936	.byte	0
32937	.byte	0
32938	.byte	0
32939	.byte	11
32940	.byte	126
32941	.byte	118
32942	.byte	116
32943	.byte	0
32944	.byte	16
32945	.byte	118
32946	.byte	114
32947	.byte	112
32948	.byte	0
32949	.byte	2
32950	.byte	0
32951	.byte	126
32952	.byte	124
32953	.byte	0
32954	.section	.rodata.toshiba_ref_value,"a",@progbits
32955	.align	3
32956	.set	.LANCHOR17,. + 0
32957	.type	toshiba_ref_value, %object
32958	.size	toshiba_ref_value, 8
32959toshiba_ref_value:
32960	.byte	0
32961	.byte	4
32962	.byte	124
32963	.byte	120
32964	.byte	116
32965	.byte	8
32966	.byte	12
32967	.byte	112
32968	.section	.rodata.ymtc_3D_slc_value,"a",@progbits
32969	.align	3
32970	.set	.LANCHOR42,. + 0
32971	.type	ymtc_3D_slc_value, %object
32972	.size	ymtc_3D_slc_value, 10
32973ymtc_3D_slc_value:
32974	.byte	0
32975	.byte	-8
32976	.byte	8
32977	.byte	-16
32978	.byte	-20
32979	.byte	24
32980	.byte	-26
32981	.byte	40
32982	.byte	-12
32983	.byte	56
32984	.section	.rodata.ymtc_3D_tlc_value,"a",@progbits
32985	.align	3
32986	.set	.LANCHOR41,. + 0
32987	.type	ymtc_3D_tlc_value, %object
32988	.size	ymtc_3D_tlc_value, 357
32989ymtc_3D_tlc_value:
32990	.byte	0
32991	.byte	0
32992	.byte	0
32993	.byte	0
32994	.byte	0
32995	.byte	0
32996	.byte	0
32997	.byte	-10
32998	.byte	-10
32999	.byte	-6
33000	.byte	-6
33001	.byte	-2
33002	.byte	2
33003	.byte	2
33004	.byte	-6
33005	.byte	-6
33006	.byte	-4
33007	.byte	-4
33008	.byte	-4
33009	.byte	-6
33010	.byte	-8
33011	.byte	6
33012	.byte	0
33013	.byte	0
33014	.byte	0
33015	.byte	0
33016	.byte	0
33017	.byte	0
33018	.byte	-2
33019	.byte	-2
33020	.byte	-2
33021	.byte	-4
33022	.byte	-4
33023	.byte	-6
33024	.byte	-6
33025	.byte	-6
33026	.byte	-6
33027	.byte	-6
33028	.byte	-6
33029	.byte	-6
33030	.byte	-6
33031	.byte	-11
33032	.byte	-2
33033	.byte	2
33034	.byte	4
33035	.byte	4
33036	.byte	6
33037	.byte	6
33038	.byte	6
33039	.byte	-6
33040	.byte	-6
33041	.byte	-6
33042	.byte	-6
33043	.byte	-6
33044	.byte	-8
33045	.byte	-14
33046	.byte	-6
33047	.byte	-15
33048	.byte	-11
33049	.byte	2
33050	.byte	-12
33051	.byte	-8
33052	.byte	-2
33053	.byte	2
33054	.byte	-3
33055	.byte	-7
33056	.byte	-10
33057	.byte	-4
33058	.byte	-8
33059	.byte	-6
33060	.byte	-18
33061	.byte	-18
33062	.byte	-14
33063	.byte	-14
33064	.byte	-10
33065	.byte	-5
33066	.byte	-5
33067	.byte	-14
33068	.byte	-14
33069	.byte	-12
33070	.byte	-12
33071	.byte	-12
33072	.byte	-13
33073	.byte	-15
33074	.byte	-2
33075	.byte	-8
33076	.byte	-8
33077	.byte	-8
33078	.byte	-8
33079	.byte	-7
33080	.byte	-7
33081	.byte	-10
33082	.byte	-10
33083	.byte	-10
33084	.byte	-12
33085	.byte	-12
33086	.byte	-13
33087	.byte	-13
33088	.byte	-14
33089	.byte	-14
33090	.byte	-14
33091	.byte	-14
33092	.byte	-14
33093	.byte	-13
33094	.byte	-18
33095	.byte	-10
33096	.byte	-6
33097	.byte	-4
33098	.byte	-4
33099	.byte	-2
33100	.byte	-1
33101	.byte	-1
33102	.byte	-14
33103	.byte	-14
33104	.byte	-14
33105	.byte	-14
33106	.byte	-14
33107	.byte	-15
33108	.byte	-21
33109	.byte	-12
33110	.byte	-11
33111	.byte	-7
33112	.byte	-7
33113	.byte	-3
33114	.byte	1
33115	.byte	1
33116	.byte	-8
33117	.byte	-7
33118	.byte	-5
33119	.byte	-5
33120	.byte	-5
33121	.byte	-7
33122	.byte	-9
33123	.byte	4
33124	.byte	-1
33125	.byte	-1
33126	.byte	-1
33127	.byte	-1
33128	.byte	-1
33129	.byte	-1
33130	.byte	-4
33131	.byte	-3
33132	.byte	-3
33133	.byte	-5
33134	.byte	-5
33135	.byte	-7
33136	.byte	-7
33137	.byte	-8
33138	.byte	-7
33139	.byte	-7
33140	.byte	-7
33141	.byte	-7
33142	.byte	-7
33143	.byte	-12
33144	.byte	-4
33145	.byte	1
33146	.byte	3
33147	.byte	3
33148	.byte	5
33149	.byte	5
33150	.byte	5
33151	.byte	-8
33152	.byte	-7
33153	.byte	-7
33154	.byte	-7
33155	.byte	-7
33156	.byte	-9
33157	.byte	-15
33158	.byte	2
33159	.byte	-7
33160	.byte	-11
33161	.byte	-14
33162	.byte	-8
33163	.byte	-12
33164	.byte	-10
33165	.byte	6
33166	.byte	1
33167	.byte	-3
33168	.byte	-6
33169	.byte	0
33170	.byte	-4
33171	.byte	-2
33172	.byte	10
33173	.byte	-3
33174	.byte	-7
33175	.byte	-6
33176	.byte	4
33177	.byte	-4
33178	.byte	-2
33179	.byte	-10
33180	.byte	-23
33181	.byte	-39
33182	.byte	-22
33183	.byte	-19
33184	.byte	-24
33185	.byte	-18
33186	.byte	-7
33187	.byte	-27
33188	.byte	-35
33189	.byte	-26
33190	.byte	-15
33191	.byte	-24
33192	.byte	-26
33193	.byte	6
33194	.byte	-11
33195	.byte	5
33196	.byte	-2
33197	.byte	-16
33198	.byte	-16
33199	.byte	-2
33200	.byte	-2
33201	.byte	-15
33202	.byte	-15
33203	.byte	-20
33204	.byte	-8
33205	.byte	-16
33206	.byte	-18
33207	.byte	2
33208	.byte	1
33209	.byte	-3
33210	.byte	-10
33211	.byte	-8
33212	.byte	-4
33213	.byte	-6
33214	.byte	-2
33215	.byte	-15
33216	.byte	-11
33217	.byte	-26
33218	.byte	-8
33219	.byte	-20
33220	.byte	-30
33221	.byte	6
33222	.byte	-19
33223	.byte	-3
33224	.byte	-46
33225	.byte	0
33226	.byte	0
33227	.byte	2
33228	.byte	6
33229	.byte	9
33230	.byte	5
33231	.byte	2
33232	.byte	4
33233	.byte	8
33234	.byte	6
33235	.byte	8
33236	.byte	9
33237	.byte	9
33238	.byte	6
33239	.byte	8
33240	.byte	8
33241	.byte	6
33242	.byte	10
33243	.byte	13
33244	.byte	9
33245	.byte	6
33246	.byte	8
33247	.byte	12
33248	.byte	10
33249	.byte	2
33250	.byte	5
33251	.byte	1
33252	.byte	-2
33253	.byte	0
33254	.byte	0
33255	.byte	6
33256	.byte	12
33257	.byte	1
33258	.byte	13
33259	.byte	2
33260	.byte	12
33261	.byte	12
33262	.byte	14
33263	.byte	-12
33264	.byte	-14
33265	.byte	-20
33266	.byte	-18
33267	.byte	-16
33268	.byte	-16
33269	.byte	-14
33270	.byte	-12
33271	.byte	-10
33272	.byte	-21
33273	.byte	-14
33274	.byte	-12
33275	.byte	-12
33276	.byte	-10
33277	.byte	-12
33278	.byte	-18
33279	.byte	-22
33280	.byte	-24
33281	.byte	-18
33282	.byte	-18
33283	.byte	-18
33284	.byte	-12
33285	.byte	-14
33286	.byte	-23
33287	.byte	-20
33288	.byte	-20
33289	.byte	-20
33290	.byte	-20
33291	.byte	16
33292	.byte	16
33293	.byte	8
33294	.byte	8
33295	.byte	12
33296	.byte	12
33297	.byte	12
33298	.byte	18
33299	.byte	18
33300	.byte	10
33301	.byte	8
33302	.byte	14
33303	.byte	14
33304	.byte	14
33305	.byte	16
33306	.byte	14
33307	.byte	6
33308	.byte	6
33309	.byte	12
33310	.byte	14
33311	.byte	8
33312	.byte	10
33313	.byte	13
33314	.byte	5
33315	.byte	2
33316	.byte	14
33317	.byte	8
33318	.byte	6
33319	.byte	6
33320	.byte	13
33321	.byte	9
33322	.byte	4
33323	.byte	14
33324	.byte	10
33325	.byte	10
33326	.byte	10
33327	.byte	13
33328	.byte	9
33329	.byte	6
33330	.byte	8
33331	.byte	12
33332	.byte	10
33333	.byte	2
33334	.byte	5
33335	.byte	1
33336	.byte	-2
33337	.byte	0
33338	.byte	0
33339	.byte	6
33340	.byte	12
33341	.byte	1
33342	.byte	13
33343	.byte	2
33344	.byte	12
33345	.byte	12
33346	.byte	14
33347	.section	.rodata.ymtc_3d_read_retrial.str1.1,"aMS",@progbits,1
33348.LC114:
33349	.string	"YMTC RR %d row=%x,count %d,status=%d\n"
33350	.section	.rodata.ymtc_flash_tlc_page_prog.str1.1,"aMS",@progbits,1
33351.LC128:
33352	.string	"ymtc_flash_tlc_page_prog page_addr = %x status = %x\n"
33353	.section	.rodata.zftl_discard.str1.1,"aMS",@progbits,1
33354.LC236:
33355	.string	"ftl_discard:(%x, %x, %x, %x)\n"
33356	.section	.rodata.zftl_do_gc.str1.1,"aMS",@progbits,1
33357.LC233:
33358	.string	"gc %d: %d %d %d %d %d %d %d\n"
33359.LC234:
33360	.string	"GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n"
33361.LC235:
33362	.string	"gc free %x, %d\n"
33363	.section	.rodata.zftl_gc_get_free_sblk.str1.1,"aMS",@progbits,1
33364.LC59:
33365	.string	"swl_tlc_free_mini_ec_blk alloc sblk %x\n"
33366.LC60:
33367	.string	"zftl_get_free_sblk %x %d, %p %d %d\n"
33368.LC61:
33369	.string	"zftl_gc_get_free_sblk %x %x %x, %d %d %d\n"
33370	.section	.rodata.zftl_get_free_sblk.str1.1,"aMS",@progbits,1
33371.LC62:
33372	.string	"swl_slc_free_mini_ec_blk alloc sblk %x\n"
33373	.section	.rodata.zftl_init.str1.1,"aMS",@progbits,1
33374.LC196:
33375	.string	"FTL version: 6.0.24 20210615"
33376.LC197:
33377	.string	"_c_user_data_density := %d\n"
33378.LC198:
33379	.string	"_c_totle_phy_density := %d\n"
33380.LC199:
33381	.string	"_c_totle_log_page := %d\n"
33382.LC200:
33383	.string	"_c_totle_data_density := %d\n"
33384.LC201:
33385	.string	"_c_ftl_pm_page_num := %d\n"
33386.LC202:
33387	.string	"_c_ftl_byte_pre_page := %d\n"
33388.LC203:
33389	.string	"_c_max_pm_sblk := %d\n"
33390.LC204:
33391	.string	"_min_slc_super_block := %d\n"
33392.LC205:
33393	.string	"_max_xlc_super_block := %d\n"
33394.LC206:
33395	.string	"gp_ftl_ext_info %p %p %p\n"
33396.LC207:
33397	.string	"flash info size: %d %d %d\n"
33398	.section	.rodata.zftl_read.str1.1,"aMS",@progbits,1
33399.LC221:
33400	.string	"ftl_read %x %x %x\n"
33401.LC222:
33402	.string	"ftl_read refresh =%x, lpa = %x, ppa= %x\n"
33403.LC223:
33404	.string	"id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n"
33405	.section	.rodata.zftl_sblk_list_init.str1.1,"aMS",@progbits,1
33406.LC88:
33407	.string	"free blk vpn error: %x %x\n"
33408	.section	.rodata.zftl_write.str1.1,"aMS",@progbits,1
33409.LC230:
33410	.string	"ftlwrite %x %x %x %x\n"
33411