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