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