xref: /rk3399_rockchip-uboot/drivers/rkflash/rk_sftl_arm_v8.S (revision 8fd483da849f3e4d28c23fc8d96e8461cb1dcd60)
1/*
2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier:    GPL-2.0
5 * date: 2018-09-30
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	add	x29, sp, 0
115	ldrh	w2, [x0]
116	adrp	x0, .LANCHOR9
117	ldrh	w4, [x5, 2]
118	strh	w2, [x0, #:lo12:.LANCHOR9]
119	adrp	x0, .LANCHOR10
120	strh	w4, [x0, #:lo12:.LANCHOR10]
121	ldrh	w0, [x5, 4]
122	strh	w0, [x1, #:lo12:.LANCHOR11]
123	ldrh	w1, [x5, 14]
124	cmp	w1, 4
125	bne	.L10
126	ldrh	w1, [x5, 6]
127	adrp	x3, .LANCHOR6
128	lsr	w1, w1, 1
129	strh	w1, [x3, #:lo12:.LANCHOR6]
130	adrp	x1, .LANCHOR12
131	mov	w3, 8
132	strh	w3, [x1, #:lo12:.LANCHOR12]
133.L10:
134	adrp	x3, .LANCHOR13
135	add	x3, x3, :lo12:.LANCHOR13
136	mov	x1, 0
137.L11:
138	strb	w1, [x1, x3]
139	add	x1, x1, 1
140	cmp	x1, 32
141	bne	.L11
142	adrp	x1, .LANCHOR14
143	mov	w3, 5
144	cmp	w2, 1
145	strh	w3, [x1, #:lo12:.LANCHOR14]
146	adrp	x3, .LANCHOR15
147	strh	wzr, [x3, #:lo12:.LANCHOR15]
148	bne	.L12
149	strh	w2, [x1, #:lo12:.LANCHOR14]
150.L12:
151	adrp	x1, .LANCHOR16
152	mov	w2, 640
153	mul	w4, w4, w0
154	strh	w2, [x1, #:lo12:.LANCHOR16]
155	adrp	x1, .LANCHOR3
156	and	w4, w4, 65535
157	strh	w4, [x1, #:lo12:.LANCHOR3]
158	adrp	x1, .LANCHOR6
159	ldrh	w3, [x1, #:lo12:.LANCHOR6]
160	adrp	x1, .LANCHOR17
161	mul	w0, w0, w3
162	and	w0, w0, 65535
163	strh	w0, [x1, #:lo12:.LANCHOR17]
164	bl	Ftl_log2
165	ldrh	w7, [x5, 12]
166	adrp	x1, .LANCHOR18
167	adrp	x8, .LANCHOR19
168	strh	w0, [x1, #:lo12:.LANCHOR18]
169	adrp	x0, .LANCHOR20
170	mul	w1, w4, w7
171	strh	w7, [x8, #:lo12:.LANCHOR19]
172	strh	w7, [x0, #:lo12:.LANCHOR20]
173	adrp	x0, .LANCHOR21
174	strh	w1, [x0, #:lo12:.LANCHOR21]
175	adrp	x0, .LANCHOR12
176	ldrh	w6, [x0, #:lo12:.LANCHOR12]
177	mov	w0, w6
178	bl	Ftl_log2
179	and	w1, w0, 65535
180	adrp	x2, .LANCHOR22
181	adrp	x10, .LANCHOR23
182	ldrh	w5, [x5, 20]
183	strh	w0, [x2, #:lo12:.LANCHOR22]
184	ubfiz	w0, w6, 9, 7
185	strh	w0, [x10, #:lo12:.LANCHOR23]
186	adrp	x10, .LANCHOR24
187	ubfx	w0, w0, 8, 8
188	strh	w0, [x10, #:lo12:.LANCHOR24]
189	adrp	x0, .LANCHOR25
190	strh	w5, [x0, #:lo12:.LANCHOR25]
191	mul	w0, w4, w3
192	adrp	x5, .LANCHOR8
193	str	w0, [x5, #:lo12:.LANCHOR8]
194	adrp	x5, .LANCHOR26
195	mul	w0, w0, w6
196	mul	w6, w6, w7
197	mul	w0, w0, w7
198	mov	x7, x2
199	asr	w0, w0, 11
200	str	w0, [x5, #:lo12:.LANCHOR26]
201	mov	w0, 5120
202	adrp	x5, .LANCHOR27
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	x2, .LANCHOR28
210	mov	w0, 640
211	lsl	w3, w3, 6
212	asr	w0, w0, w1
213	add	w0, w0, 2
214	add	w1, w1, 9
215	strh	w0, [x2, #:lo12:.LANCHOR28]
216	adrp	x0, .LANCHOR29
217	cmp	w4, 1
218	asr	w3, w3, w1
219	adrp	x1, .LANCHOR30
220	strh	w3, [x0, #:lo12:.LANCHOR29]
221	and	w3, w3, 65535
222	adrp	x6, .LANCHOR2
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.FtlBbtCalcTotleCnt,"ax",@progbits
382	.align	2
383	.global	FtlBbtCalcTotleCnt
384	.type	FtlBbtCalcTotleCnt, %function
385FtlBbtCalcTotleCnt:
386	adrp	x0, .LANCHOR17
387	mov	w4, 0
388	mov	w5, 0
389	ldrh	w6, [x0, #:lo12:.LANCHOR17]
390	adrp	x0, .LANCHOR10
391	ldrh	w0, [x0, #:lo12:.LANCHOR10]
392	mul	w6, w6, w0
393	cmp	w4, w6
394	blt	.L43
395	mov	w0, w5
396	ret
397.L43:
398	stp	x29, x30, [sp, -16]!
399	add	x29, sp, 0
400.L36:
401	mov	w0, w4
402	bl	FtlBbmIsBadBlock
403	cbz	w0, .L35
404	add	w5, w5, 1
405	and	w5, w5, 65535
406.L35:
407	add	w4, w4, 1
408	and	w4, w4, 65535
409	cmp	w4, w6
410	blt	.L36
411	mov	w0, w5
412	ldp	x29, x30, [sp], 16
413	ret
414	.size	FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
415	.section	.text.V2P_block,"ax",@progbits
416	.align	2
417	.global	V2P_block
418	.type	V2P_block, %function
419V2P_block:
420	adrp	x2, .LANCHOR11
421	and	w0, w0, 65535
422	adrp	x4, .LANCHOR17
423	and	w1, w1, 65535
424	ldrh	w2, [x2, #:lo12:.LANCHOR11]
425	ldrh	w4, [x4, #:lo12:.LANCHOR17]
426	udiv	w3, w0, w2
427	msub	w0, w3, w2, w0
428	madd	w2, w2, w1, w0
429	madd	w0, w3, w4, w2
430	ret
431	.size	V2P_block, .-V2P_block
432	.section	.text.P2V_plane,"ax",@progbits
433	.align	2
434	.global	P2V_plane
435	.type	P2V_plane, %function
436P2V_plane:
437	and	w3, w0, 65535
438	adrp	x0, .LANCHOR11
439	ldrh	w1, [x0, #:lo12:.LANCHOR11]
440	adrp	x0, .LANCHOR17
441	ldrh	w2, [x0, #:lo12:.LANCHOR17]
442	udiv	w0, w3, w1
443	udiv	w2, w3, w2
444	msub	w0, w0, w1, w3
445	madd	w0, w1, w2, w0
446	ret
447	.size	P2V_plane, .-P2V_plane
448	.section	.text.P2V_block_in_plane,"ax",@progbits
449	.align	2
450	.global	P2V_block_in_plane
451	.type	P2V_block_in_plane, %function
452P2V_block_in_plane:
453	and	w2, w0, 65535
454	adrp	x0, .LANCHOR17
455	ldrh	w1, [x0, #:lo12:.LANCHOR17]
456	udiv	w0, w2, w1
457	msub	w0, w0, w1, w2
458	adrp	x1, .LANCHOR11
459	ldrh	w1, [x1, #:lo12:.LANCHOR11]
460	and	w0, w0, 65535
461	udiv	w0, w0, w1
462	ret
463	.size	P2V_block_in_plane, .-P2V_block_in_plane
464	.section	.text.ftl_cmp_data_ver,"ax",@progbits
465	.align	2
466	.global	ftl_cmp_data_ver
467	.type	ftl_cmp_data_ver, %function
468ftl_cmp_data_ver:
469	cmp	w0, w1
470	mov	w2, -2147483648
471	bls	.L48
472	sub	w1, w0, w1
473	cmp	w1, w2
474	cset	w0, ls
475	ret
476.L48:
477	sub	w1, w1, w0
478	cmp	w1, w2
479	cset	w0, hi
480	ret
481	.size	ftl_cmp_data_ver, .-ftl_cmp_data_ver
482	.section	.text.FtlFreeSysBlkQueueEmpty,"ax",@progbits
483	.align	2
484	.global	FtlFreeSysBlkQueueEmpty
485	.type	FtlFreeSysBlkQueueEmpty, %function
486FtlFreeSysBlkQueueEmpty:
487	adrp	x0, .LANCHOR38+6
488	ldrh	w0, [x0, #:lo12:.LANCHOR38+6]
489	cmp	w0, 0
490	cset	w0, eq
491	ret
492	.size	FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
493	.section	.text.FtlFreeSysBlkQueueFull,"ax",@progbits
494	.align	2
495	.global	FtlFreeSysBlkQueueFull
496	.type	FtlFreeSysBlkQueueFull, %function
497FtlFreeSysBlkQueueFull:
498	adrp	x0, .LANCHOR38+6
499	ldrh	w0, [x0, #:lo12:.LANCHOR38+6]
500	cmp	w0, 1024
501	cset	w0, eq
502	ret
503	.size	FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
504	.section	.text.FtlFreeSysBLkSort,"ax",@progbits
505	.align	2
506	.global	FtlFreeSysBLkSort
507	.type	FtlFreeSysBLkSort, %function
508FtlFreeSysBLkSort:
509	adrp	x0, .LANCHOR38
510	add	x1, x0, :lo12:.LANCHOR38
511	ldrh	w2, [x1, 6]
512	cbz	w2, .L52
513	adrp	x2, .LANCHOR39+28
514	ldrh	w3, [x1, 2]
515	mov	w6, 0
516	mov	w4, 0
517	ldrh	w5, [x2, #:lo12:.LANCHOR39+28]
518	ldrh	w2, [x1, 4]
519	and	w5, w5, 31
520.L54:
521	cmp	w5, w4
522	bgt	.L55
523	cbz	w6, .L52
524	add	x0, x0, :lo12:.LANCHOR38
525	strh	w3, [x0, 2]
526	strh	w2, [x0, 4]
527.L52:
528	ret
529.L55:
530	add	x6, x1, x3, sxtw 1
531	add	w4, w4, 1
532	add	w3, w3, 1
533	and	w4, w4, 65535
534	and	w3, w3, 1023
535	ldrh	w7, [x6, 8]
536	add	x6, x1, x2, sxtw 1
537	strh	w7, [x6, 8]
538	mov	w6, 1
539	add	w2, w2, w6
540	and	w2, w2, 1023
541	b	.L54
542	.size	FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
543	.section	.text.IsInFreeQueue,"ax",@progbits
544	.align	2
545	.global	IsInFreeQueue
546	.type	IsInFreeQueue, %function
547IsInFreeQueue:
548	adrp	x1, .LANCHOR38
549	add	x1, x1, :lo12:.LANCHOR38
550	and	w0, w0, 65535
551	ldrh	w4, [x1, 6]
552	cmp	w4, 1024
553	beq	.L65
554	ldrh	w5, [x1, 2]
555	mov	w3, 0
556.L63:
557	cmp	w3, w4
558	bcc	.L64
559.L65:
560	mov	w0, 0
561	ret
562.L64:
563	add	w2, w3, w5
564	ubfiz	x2, x2, 1, 10
565	add	x2, x1, x2
566	ldrh	w2, [x2, 8]
567	cmp	w2, w0
568	beq	.L66
569	add	w3, w3, 1
570	b	.L63
571.L66:
572	mov	w0, 1
573	ret
574	.size	IsInFreeQueue, .-IsInFreeQueue
575	.section	.text.insert_data_list,"ax",@progbits
576	.align	2
577	.global	insert_data_list
578	.type	insert_data_list, %function
579insert_data_list:
580	adrp	x1, .LANCHOR5
581	and	w0, w0, 65535
582	ldrh	w14, [x1, #:lo12:.LANCHOR5]
583	cmp	w14, w0
584	bls	.L83
585	adrp	x1, .LANCHOR40
586	mov	w3, 6
587	ldr	x6, [x1, #:lo12:.LANCHOR40]
588	umull	x13, w0, w3
589	mov	w1, -1
590	add	x5, x6, x13
591	strh	w1, [x5, 2]
592	strh	w1, [x6, x13]
593	adrp	x1, .LANCHOR41
594	mov	x15, x1
595	ldr	x12, [x1, #:lo12:.LANCHOR41]
596	cbnz	x12, .L70
597	str	x5, [x1, #:lo12:.LANCHOR41]
598.L83:
599	mov	w0, 0
600	ret
601.L70:
602	stp	x29, x30, [sp, -32]!
603	adrp	x1, .LANCHOR42
604	ubfiz	x2, x0, 1, 16
605	mov	x4, -6148914691236517206
606	add	x29, sp, 0
607	ldr	x16, [x1, #:lo12:.LANCHOR42]
608	movk	x4, 0xaaab, lsl 0
609	ldrh	w1, [x5, 4]
610	mov	w8, -1
611	mov	w11, w8
612	stp	x19, x20, [sp, 16]
613	cmp	w1, 0
614	mov	w20, 65535
615	ldrh	w7, [x16, x2]
616	mul	w7, w7, w1
617	sub	x1, x12, x6
618	asr	x1, x1, 1
619	csel	w7, w7, w8, ne
620	mov	w8, w3
621	mul	x1, x1, x4
622	adrp	x4, .LANCHOR43
623	ldr	x17, [x4, #:lo12:.LANCHOR43]
624	and	w1, w1, 65535
625	mov	x4, x12
626	add	x10, x17, x2
627	mov	w2, 0
628.L78:
629	add	w2, w2, 1
630	and	w2, w2, 65535
631	cmp	w14, w2
632	bcc	.L69
633	cmp	w1, w0
634	beq	.L69
635	ubfiz	x30, x1, 1, 16
636	ldrh	w19, [x4, 4]
637	cmp	w19, 0
638	ldrh	w3, [x16, x30]
639	mul	w3, w3, w19
640	csel	w3, w3, w11, ne
641	cmp	w7, w3
642	bne	.L74
643	ldrh	w19, [x17, x30]
644	ldrh	w3, [x10]
645	cmp	w19, w3
646	bcc	.L76
647.L75:
648	strh	w1, [x6, x13]
649	cmp	x4, x12
650	ldrh	w1, [x4, 2]
651	strh	w1, [x5, 2]
652	bne	.L79
653	strh	w0, [x4, 2]
654	str	x5, [x15, #:lo12:.LANCHOR41]
655	b	.L69
656.L74:
657	bcc	.L75
658.L76:
659	ldrh	w3, [x4]
660	cmp	w3, w20
661	bne	.L77
662	strh	w1, [x5, 2]
663	strh	w0, [x4]
664	adrp	x0, .LANCHOR44
665	str	x5, [x0, #:lo12:.LANCHOR44]
666.L69:
667	mov	w0, 0
668	ldp	x19, x20, [sp, 16]
669	ldp	x29, x30, [sp], 32
670	ret
671.L77:
672	umaddl	x4, w3, w8, x6
673	mov	w1, w3
674	b	.L78
675.L79:
676	ldrh	w1, [x4, 2]
677	mov	w2, 6
678	umull	x1, w1, w2
679	strh	w0, [x6, x1]
680	strh	w0, [x4, 2]
681	b	.L69
682	.size	insert_data_list, .-insert_data_list
683	.section	.text.INSERT_DATA_LIST,"ax",@progbits
684	.align	2
685	.global	INSERT_DATA_LIST
686	.type	INSERT_DATA_LIST, %function
687INSERT_DATA_LIST:
688	stp	x29, x30, [sp, -16]!
689	add	x29, sp, 0
690	bl	insert_data_list
691	adrp	x1, .LANCHOR45
692	ldrh	w0, [x1, #:lo12:.LANCHOR45]
693	add	w0, w0, 1
694	and	w0, w0, 65535
695	strh	w0, [x1, #:lo12:.LANCHOR45]
696	adrp	x1, .LANCHOR5
697	ldrh	w1, [x1, #:lo12:.LANCHOR5]
698	cmp	w1, w0
699	bcs	.L85
700	ldp	x29, x30, [sp], 16
701	mov	w2, 214
702	adrp	x1, .LANCHOR46
703	adrp	x0, .LC1
704	add	x1, x1, :lo12:.LANCHOR46
705	add	x0, x0, :lo12:.LC1
706	b	printf
707.L85:
708	ldp	x29, x30, [sp], 16
709	ret
710	.size	INSERT_DATA_LIST, .-INSERT_DATA_LIST
711	.section	.text.insert_free_list,"ax",@progbits
712	.align	2
713	.global	insert_free_list
714	.type	insert_free_list, %function
715insert_free_list:
716	and	w0, w0, 65535
717	mov	w7, 65535
718	cmp	w0, w7
719	beq	.L89
720	adrp	x1, .LANCHOR40
721	mov	w6, 6
722	ldr	x3, [x1, #:lo12:.LANCHOR40]
723	umull	x8, w0, w6
724	mov	w1, -1
725	add	x4, x3, x8
726	strh	w1, [x4, 2]
727	strh	w1, [x3, x8]
728	adrp	x1, .LANCHOR47
729	mov	x12, x1
730	ldr	x5, [x1, #:lo12:.LANCHOR47]
731	cbnz	x5, .L90
732	str	x4, [x1, #:lo12:.LANCHOR47]
733.L89:
734	mov	w0, 0
735	ret
736.L90:
737	adrp	x1, .LANCHOR43
738	mov	x2, -6148914691236517206
739	movk	x2, 0xaaab, lsl 0
740	ldr	x11, [x1, #:lo12:.LANCHOR43]
741	ubfiz	x1, x0, 1, 16
742	ldrh	w13, [x11, x1]
743	sub	x1, x5, x3
744	asr	x1, x1, 1
745	mul	x1, x1, x2
746	mov	x2, x5
747	and	w1, w1, 65535
748.L93:
749	ubfiz	x10, x1, 1, 16
750	ldrh	w10, [x11, x10]
751	cmp	w10, w13
752	bcs	.L91
753	ldrh	w10, [x2]
754	cmp	w10, w7
755	bne	.L92
756	strh	w1, [x4, 2]
757	strh	w0, [x2]
758	b	.L89
759.L92:
760	umaddl	x2, w10, w6, x3
761	mov	w1, w10
762	b	.L93
763.L91:
764	ldrh	w6, [x2, 2]
765	cmp	x2, x5
766	strh	w6, [x4, 2]
767	strh	w1, [x3, x8]
768	bne	.L94
769	strh	w0, [x2, 2]
770	str	x4, [x12, #:lo12:.LANCHOR47]
771	b	.L89
772.L94:
773	ldrh	w1, [x2, 2]
774	mov	w4, 6
775	umull	x1, w1, w4
776	strh	w0, [x3, x1]
777	strh	w0, [x2, 2]
778	b	.L89
779	.size	insert_free_list, .-insert_free_list
780	.section	.text.INSERT_FREE_LIST,"ax",@progbits
781	.align	2
782	.global	INSERT_FREE_LIST
783	.type	INSERT_FREE_LIST, %function
784INSERT_FREE_LIST:
785	stp	x29, x30, [sp, -16]!
786	add	x29, sp, 0
787	bl	insert_free_list
788	adrp	x1, .LANCHOR48
789	ldrh	w0, [x1, #:lo12:.LANCHOR48]
790	add	w0, w0, 1
791	and	w0, w0, 65535
792	strh	w0, [x1, #:lo12:.LANCHOR48]
793	adrp	x1, .LANCHOR5
794	ldrh	w1, [x1, #:lo12:.LANCHOR5]
795	cmp	w1, w0
796	bcs	.L95
797	ldp	x29, x30, [sp], 16
798	mov	w2, 207
799	adrp	x1, .LANCHOR49
800	adrp	x0, .LC1
801	add	x1, x1, :lo12:.LANCHOR49
802	add	x0, x0, :lo12:.LC1
803	b	printf
804.L95:
805	ldp	x29, x30, [sp], 16
806	ret
807	.size	INSERT_FREE_LIST, .-INSERT_FREE_LIST
808	.section	.text.List_remove_node,"ax",@progbits
809	.align	2
810	.global	List_remove_node
811	.type	List_remove_node, %function
812List_remove_node:
813	stp	x29, x30, [sp, -64]!
814	and	w1, w1, 65535
815	add	x29, sp, 0
816	stp	x19, x20, [sp, 16]
817	adrp	x20, .LANCHOR40
818	stp	x21, x22, [sp, 32]
819	mov	x22, x0
820	mov	w0, 6
821	str	x23, [sp, 48]
822	ldr	x23, [x20, #:lo12:.LANCHOR40]
823	umull	x21, w1, w0
824	mov	w0, 65535
825	add	x19, x23, x21
826	ldrh	w1, [x19, 2]
827	cmp	w1, w0
828	bne	.L99
829	ldr	x0, [x22]
830	cmp	x19, x0
831	beq	.L99
832	adrp	x1, .LANCHOR50
833	adrp	x0, .LC1
834	mov	w2, 372
835	add	x1, x1, :lo12:.LANCHOR50
836	add	x0, x0, :lo12:.LC1
837	bl	printf
838.L99:
839	ldr	x0, [x22]
840	mov	w1, 65535
841	cmp	x19, x0
842	ldrh	w0, [x23, x21]
843	bne	.L100
844	cmp	w0, w1
845	bne	.L101
846	str	xzr, [x22]
847.L102:
848	mov	w0, -1
849	strh	w0, [x23, x21]
850	strh	w0, [x19, 2]
851	mov	w0, 0
852	ldp	x19, x20, [sp, 16]
853	ldp	x21, x22, [sp, 32]
854	ldr	x23, [sp, 48]
855	ldp	x29, x30, [sp], 64
856	ret
857.L101:
858	ldr	x1, [x20, #:lo12:.LANCHOR40]
859	mov	w2, 6
860	umaddl	x0, w0, w2, x1
861	mov	w1, -1
862	str	x0, [x22]
863	strh	w1, [x0, 2]
864	b	.L102
865.L100:
866	cmp	w0, w1
867	ldrh	w1, [x19, 2]
868	bne	.L103
869	cmp	w1, w0
870	beq	.L102
871	mov	w0, 6
872	mov	w2, -1
873	umull	x1, w1, w0
874	ldr	x0, [x20, #:lo12:.LANCHOR40]
875	strh	w2, [x0, x1]
876	b	.L102
877.L103:
878	ldr	x2, [x20, #:lo12:.LANCHOR40]
879	mov	w3, 6
880	umaddl	x4, w0, w3, x2
881	strh	w1, [x4, 2]
882	ldrh	w1, [x19, 2]
883	umull	x1, w1, w3
884	strh	w0, [x2, x1]
885	b	.L102
886	.size	List_remove_node, .-List_remove_node
887	.section	.text.List_pop_index_node,"ax",@progbits
888	.align	2
889	.global	List_pop_index_node
890	.type	List_pop_index_node, %function
891List_pop_index_node:
892	ldr	x2, [x0]
893	cbz	x2, .L111
894	stp	x29, x30, [sp, -32]!
895	adrp	x3, .LANCHOR40
896	and	w1, w1, 65535
897	mov	w4, 65535
898	add	x29, sp, 0
899	str	x19, [sp, 16]
900	mov	w5, 6
901	ldr	x19, [x3, #:lo12:.LANCHOR40]
902.L107:
903	cbnz	w1, .L108
904.L110:
905	sub	x19, x2, x19
906	mov	x2, -6148914691236517206
907	asr	x19, x19, 1
908	movk	x2, 0xaaab, lsl 0
909	mul	x19, x19, x2
910	and	w19, w19, 65535
911	mov	w1, w19
912	bl	List_remove_node
913	mov	w0, w19
914	ldr	x19, [sp, 16]
915	ldp	x29, x30, [sp], 32
916	ret
917.L108:
918	ldrh	w3, [x2]
919	cmp	w3, w4
920	beq	.L110
921	sub	w1, w1, #1
922	umaddl	x2, w3, w5, x19
923	and	w1, w1, 65535
924	b	.L107
925.L111:
926	mov	w0, 65535
927	ret
928	.size	List_pop_index_node, .-List_pop_index_node
929	.section	.text.List_pop_head_node,"ax",@progbits
930	.align	2
931	.global	List_pop_head_node
932	.type	List_pop_head_node, %function
933List_pop_head_node:
934	mov	w1, 0
935	b	List_pop_index_node
936	.size	List_pop_head_node, .-List_pop_head_node
937	.section	.text.List_get_gc_head_node,"ax",@progbits
938	.align	2
939	.global	List_get_gc_head_node
940	.type	List_get_gc_head_node, %function
941List_get_gc_head_node:
942	and	w2, w0, 65535
943	adrp	x0, .LANCHOR41
944	ldr	x1, [x0, #:lo12:.LANCHOR41]
945	cbz	x1, .L122
946	adrp	x0, .LANCHOR40
947	mov	w4, 6
948	ldr	x3, [x0, #:lo12:.LANCHOR40]
949	mov	w0, 65535
950.L119:
951	cbz	w2, .L120
952	ldrh	w1, [x1]
953	cmp	w1, w0
954	bne	.L121
955	ret
956.L121:
957	sub	w2, w2, #1
958	umaddl	x1, w1, w4, x3
959	and	w2, w2, 65535
960	b	.L119
961.L122:
962	mov	w0, 65535
963	ret
964.L120:
965	sub	x0, x1, x3
966	mov	x1, -6148914691236517206
967	asr	x0, x0, 1
968	movk	x1, 0xaaab, lsl 0
969	mul	x0, x0, x1
970	and	w0, w0, 65535
971	ret
972	.size	List_get_gc_head_node, .-List_get_gc_head_node
973	.section	.text.List_update_data_list,"ax",@progbits
974	.align	2
975	.global	List_update_data_list
976	.type	List_update_data_list, %function
977List_update_data_list:
978	stp	x29, x30, [sp, -80]!
979	add	x29, sp, 0
980	stp	x19, x20, [sp, 16]
981	and	w19, w0, 65535
982	adrp	x0, .LANCHOR51
983	stp	x21, x22, [sp, 32]
984	stp	x23, x24, [sp, 48]
985	ldrh	w0, [x0, #:lo12:.LANCHOR51]
986	stp	x25, x26, [sp, 64]
987	cmp	w0, w19
988	beq	.L125
989	adrp	x0, .LANCHOR52
990	ldrh	w0, [x0, #:lo12:.LANCHOR52]
991	cmp	w0, w19
992	beq	.L125
993	adrp	x0, .LANCHOR53
994	ldrh	w0, [x0, #:lo12:.LANCHOR53]
995	cmp	w0, w19
996	beq	.L125
997	adrp	x0, .LANCHOR40
998	mov	w21, 6
999	adrp	x24, .LANCHOR41
1000	mov	x26, x0
1001	umull	x21, w19, w21
1002	ldr	x23, [x0, #:lo12:.LANCHOR40]
1003	ldr	x1, [x24, #:lo12:.LANCHOR41]
1004	add	x22, x23, x21
1005	cmp	x22, x1
1006	beq	.L125
1007	adrp	x1, .LANCHOR42
1008	ubfiz	x0, x19, 1, 16
1009	mov	x25, x1
1010	ldr	x2, [x1, #:lo12:.LANCHOR42]
1011	mov	w1, 65535
1012	ldrh	w20, [x2, x0]
1013	ldrh	w0, [x22, 4]
1014	cmp	w0, 0
1015	mul	w20, w20, w0
1016	ldrh	w0, [x22, 2]
1017	csinv	w20, w20, wzr, ne
1018	cmp	w0, w1
1019	bne	.L128
1020	ldrh	w1, [x23, x21]
1021	cmp	w1, w0
1022	bne	.L128
1023	adrp	x1, .LANCHOR54
1024	adrp	x0, .LC1
1025	mov	w2, 463
1026	add	x1, x1, :lo12:.LANCHOR54
1027	add	x0, x0, :lo12:.LC1
1028	bl	printf
1029.L128:
1030	ldrh	w0, [x22, 2]
1031	mov	w1, 65535
1032	cmp	w0, w1
1033	bne	.L129
1034	ldrh	w1, [x23, x21]
1035	cmp	w1, w0
1036	beq	.L125
1037.L129:
1038	mov	w1, 6
1039	mov	x2, -6148914691236517206
1040	movk	x2, 0xaaab, lsl 0
1041	umull	x0, w0, w1
1042	asr	x1, x0, 1
1043	mul	x1, x1, x2
1044	ldr	x2, [x25, #:lo12:.LANCHOR42]
1045	ldrh	w1, [x2, x1, lsl 1]
1046	ldr	x2, [x26, #:lo12:.LANCHOR40]
1047	add	x0, x2, x0
1048	ldrh	w2, [x0, 4]
1049	cmp	w2, 0
1050	mul	w0, w1, w2
1051	csinv	w0, w0, wzr, ne
1052	cmp	w20, w0
1053	bcs	.L125
1054	adrp	x20, .LANCHOR45
1055	mov	w1, w19
1056	add	x0, x24, :lo12:.LANCHOR41
1057	bl	List_remove_node
1058	ldrh	w0, [x20, #:lo12:.LANCHOR45]
1059	cbnz	w0, .L131
1060	adrp	x1, .LANCHOR54
1061	adrp	x0, .LC1
1062	mov	w2, 474
1063	add	x1, x1, :lo12:.LANCHOR54
1064	add	x0, x0, :lo12:.LC1
1065	bl	printf
1066.L131:
1067	ldrh	w0, [x20, #:lo12:.LANCHOR45]
1068	sub	w0, w0, #1
1069	strh	w0, [x20, #:lo12:.LANCHOR45]
1070	mov	w0, w19
1071	bl	INSERT_DATA_LIST
1072.L125:
1073	mov	w0, 0
1074	ldp	x19, x20, [sp, 16]
1075	ldp	x21, x22, [sp, 32]
1076	ldp	x23, x24, [sp, 48]
1077	ldp	x25, x26, [sp, 64]
1078	ldp	x29, x30, [sp], 80
1079	ret
1080	.size	List_update_data_list, .-List_update_data_list
1081	.section	.text.select_l2p_ram_region,"ax",@progbits
1082	.align	2
1083	.global	select_l2p_ram_region
1084	.type	select_l2p_ram_region, %function
1085select_l2p_ram_region:
1086	stp	x29, x30, [sp, -32]!
1087	adrp	x0, .LANCHOR33
1088	mov	x1, 0
1089	mov	w3, 65535
1090	add	x29, sp, 0
1091	ldrh	w2, [x0, #:lo12:.LANCHOR33]
1092	adrp	x0, .LANCHOR55
1093	str	x19, [sp, 16]
1094	ldr	x0, [x0, #:lo12:.LANCHOR55]
1095.L136:
1096	and	w19, w1, 65535
1097	cmp	w19, w2
1098	bcc	.L138
1099	add	x3, x0, 4
1100	mov	w19, w2
1101	mov	w5, -2147483648
1102	mov	w1, 0
1103.L139:
1104	cmp	w1, w2
1105	bne	.L141
1106	cmp	w19, w2
1107	bcc	.L137
1108	adrp	x1, .LANCHOR56
1109	mov	w19, w2
1110	mov	w3, -1
1111	ldrh	w4, [x1, #:lo12:.LANCHOR56]
1112	mov	w1, 0
1113.L142:
1114	cmp	w1, w2
1115	bne	.L144
1116	cmp	w19, w1
1117	bcc	.L137
1118	mov	w2, 787
1119	adrp	x1, .LANCHOR57
1120	adrp	x0, .LC1
1121	add	x1, x1, :lo12:.LANCHOR57
1122	add	x0, x0, :lo12:.LC1
1123	bl	printf
1124	b	.L137
1125.L138:
1126	add	x1, x1, 1
1127	add	x4, x0, x1, lsl 4
1128	ldrh	w4, [x4, -16]
1129	cmp	w4, w3
1130	bne	.L136
1131.L137:
1132	mov	w0, w19
1133	ldr	x19, [sp, 16]
1134	ldp	x29, x30, [sp], 32
1135	ret
1136.L141:
1137	ldr	w4, [x3]
1138	tbnz	w4, #31, .L140
1139	cmp	w5, w4
1140	bls	.L140
1141	mov	w5, w4
1142	mov	w19, w1
1143.L140:
1144	add	w1, w1, 1
1145	add	x3, x3, 16
1146	and	w1, w1, 65535
1147	b	.L139
1148.L144:
1149	ldr	w6, [x0, 4]
1150	cmp	w3, w6
1151	bls	.L143
1152	ldrh	w5, [x0]
1153	cmp	w5, w4
1154	csel	w3, w3, w6, eq
1155	csel	w19, w19, w1, eq
1156.L143:
1157	add	w1, w1, 1
1158	add	x0, x0, 16
1159	and	w1, w1, 65535
1160	b	.L142
1161	.size	select_l2p_ram_region, .-select_l2p_ram_region
1162	.section	.text.FtlUpdateVaildLpn,"ax",@progbits
1163	.align	2
1164	.global	FtlUpdateVaildLpn
1165	.type	FtlUpdateVaildLpn, %function
1166FtlUpdateVaildLpn:
1167	adrp	x2, .LANCHOR58
1168	mov	x3, x2
1169	ldrh	w1, [x2, #:lo12:.LANCHOR58]
1170	cmp	w1, 4
1171	bhi	.L147
1172	cbnz	w0, .L147
1173	add	w1, w1, 1
1174	strh	w1, [x2, #:lo12:.LANCHOR58]
1175	ret
1176.L147:
1177	adrp	x1, .LANCHOR5
1178	adrp	x0, .LANCHOR59
1179	strh	wzr, [x3, #:lo12:.LANCHOR58]
1180	mov	w2, 0
1181	ldrh	w5, [x1, #:lo12:.LANCHOR5]
1182	adrp	x1, .LANCHOR42
1183	str	wzr, [x0, #:lo12:.LANCHOR59]
1184	mov	w3, 0
1185	ldr	x6, [x1, #:lo12:.LANCHOR42]
1186	mov	w7, 65535
1187	mov	x1, 0
1188.L148:
1189	cmp	w5, w1, uxth
1190	bhi	.L150
1191	cbz	w3, .L146
1192	str	w2, [x0, #:lo12:.LANCHOR59]
1193.L146:
1194	ret
1195.L150:
1196	ldrh	w4, [x6, x1, lsl 1]
1197	cmp	w4, w7
1198	beq	.L149
1199	add	w2, w2, w4
1200	mov	w3, 1
1201.L149:
1202	add	x1, x1, 1
1203	b	.L148
1204	.size	FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
1205	.section	.text.ftl_set_blk_mode,"ax",@progbits
1206	.align	2
1207	.global	ftl_set_blk_mode
1208	.type	ftl_set_blk_mode, %function
1209ftl_set_blk_mode:
1210	and	w0, w0, 65535
1211	cbz	w1, .L157
1212	b	ftl_set_blk_mode.part.6
1213.L157:
1214	adrp	x1, .LANCHOR1
1215	ubfx	x2, x0, 5, 11
1216	lsl	x2, x2, 2
1217	ldr	x3, [x1, #:lo12:.LANCHOR1]
1218	mov	w1, 1
1219	lsl	w0, w1, w0
1220	ldr	w1, [x3, x2]
1221	bic	w0, w1, w0
1222	str	w0, [x3, x2]
1223	ret
1224	.size	ftl_set_blk_mode, .-ftl_set_blk_mode
1225	.section	.text.ftl_get_blk_mode,"ax",@progbits
1226	.align	2
1227	.global	ftl_get_blk_mode
1228	.type	ftl_get_blk_mode, %function
1229ftl_get_blk_mode:
1230	and	w1, w0, 65535
1231	adrp	x0, .LANCHOR1
1232	ldr	x0, [x0, #:lo12:.LANCHOR1]
1233	ubfx	x2, x1, 5, 11
1234	ldr	w0, [x0, x2, lsl 2]
1235	lsr	w0, w0, w1
1236	and	w0, w0, 1
1237	ret
1238	.size	ftl_get_blk_mode, .-ftl_get_blk_mode
1239	.section	.text.ftl_sb_update_avl_pages,"ax",@progbits
1240	.align	2
1241	.global	ftl_sb_update_avl_pages
1242	.type	ftl_sb_update_avl_pages, %function
1243ftl_sb_update_avl_pages:
1244	and	w2, w2, 65535
1245	and	w6, w1, 65535
1246	ubfiz	x4, x2, 1, 16
1247	adrp	x1, .LANCHOR3
1248	add	x4, x4, 16
1249	strh	wzr, [x0, 4]
1250	add	x4, x0, x4
1251	ldrh	w3, [x1, #:lo12:.LANCHOR3]
1252	mov	w1, 65535
1253.L160:
1254	cmp	w2, w3
1255	bcc	.L162
1256	adrp	x1, .LANCHOR19
1257	ubfiz	x3, x3, 1, 16
1258	add	x3, x3, 16
1259	add	x2, x0, 16
1260	ldrh	w1, [x1, #:lo12:.LANCHOR19]
1261	add	x3, x0, x3
1262	mov	w5, 65535
1263	sub	w1, w1, #1
1264	and	w1, w1, 65535
1265	sub	w1, w1, w6
1266.L163:
1267	cmp	x2, x3
1268	bne	.L165
1269	ret
1270.L162:
1271	ldrh	w5, [x4]
1272	cmp	w5, w1
1273	beq	.L161
1274	ldrh	w5, [x0, 4]
1275	add	w5, w5, 1
1276	strh	w5, [x0, 4]
1277.L161:
1278	add	w2, w2, 1
1279	add	x4, x4, 2
1280	and	w2, w2, 65535
1281	b	.L160
1282.L165:
1283	ldrh	w4, [x2]
1284	cmp	w4, w5
1285	beq	.L164
1286	ldrh	w4, [x0, 4]
1287	add	w4, w1, w4
1288	strh	w4, [x0, 4]
1289.L164:
1290	add	x2, x2, 2
1291	b	.L163
1292	.size	ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
1293	.section	.text.FtlSlcSuperblockCheck,"ax",@progbits
1294	.align	2
1295	.global	FtlSlcSuperblockCheck
1296	.type	FtlSlcSuperblockCheck, %function
1297FtlSlcSuperblockCheck:
1298	ldrh	w1, [x0, 4]
1299	cbz	w1, .L166
1300	ldrh	w2, [x0]
1301	mov	w1, 65535
1302	cmp	w2, w1
1303	beq	.L166
1304	ldrb	w2, [x0, 6]
1305	add	x2, x2, 8
1306	ldrh	w3, [x0, x2, lsl 1]
1307	adrp	x2, .LANCHOR3
1308	ldrh	w4, [x2, #:lo12:.LANCHOR3]
1309	mov	w2, w1
1310.L169:
1311	cmp	w3, w2
1312	beq	.L171
1313.L166:
1314	ret
1315.L171:
1316	ldrb	w1, [x0, 6]
1317	add	w1, w1, 1
1318	and	w1, w1, 255
1319	strb	w1, [x0, 6]
1320	cmp	w1, w4
1321	bne	.L170
1322	ldrh	w1, [x0, 2]
1323	strb	wzr, [x0, 6]
1324	add	w1, w1, 1
1325	strh	w1, [x0, 2]
1326.L170:
1327	ldrb	w1, [x0, 6]
1328	add	x1, x1, 8
1329	ldrh	w3, [x0, x1, lsl 1]
1330	b	.L169
1331	.size	FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
1332	.section	.text.make_superblock,"ax",@progbits
1333	.align	2
1334	.global	make_superblock
1335	.type	make_superblock, %function
1336make_superblock:
1337	stp	x29, x30, [sp, -32]!
1338	add	x29, sp, 0
1339	ldrh	w1, [x0]
1340	str	x19, [sp, 16]
1341	mov	x19, x0
1342	adrp	x0, .LANCHOR5
1343	ldrh	w0, [x0, #:lo12:.LANCHOR5]
1344	cmp	w1, w0
1345	bcc	.L173
1346	adrp	x1, .LANCHOR60
1347	adrp	x0, .LC1
1348	mov	w2, 2110
1349	add	x1, x1, :lo12:.LANCHOR60
1350	add	x0, x0, :lo12:.LC1
1351	bl	printf
1352.L173:
1353	adrp	x0, .LANCHOR3
1354	adrp	x7, .LANCHOR13
1355	add	x6, x19, 16
1356	add	x7, x7, :lo12:.LANCHOR13
1357	ldrh	w8, [x0, #:lo12:.LANCHOR3]
1358	mov	x5, 0
1359	strh	wzr, [x19, 4]
1360	mov	w10, -1
1361	strb	wzr, [x19, 7]
1362.L174:
1363	cmp	w8, w5, uxth
1364	bhi	.L176
1365	adrp	x1, .LANCHOR19
1366	ldrb	w0, [x19, 7]
1367	strb	wzr, [x19, 9]
1368	ldrh	w1, [x1, #:lo12:.LANCHOR19]
1369	mul	w0, w0, w1
1370	strh	w0, [x19, 4]
1371	mov	w0, 0
1372	ldr	x19, [sp, 16]
1373	ldp	x29, x30, [sp], 32
1374	ret
1375.L176:
1376	ldrh	w1, [x19]
1377	ldrb	w0, [x7, x5]
1378	bl	V2P_block
1379	mov	w4, w0
1380	strh	w10, [x6]
1381	bl	FtlBbmIsBadBlock
1382	cbnz	w0, .L175
1383	strh	w4, [x6]
1384	ldrb	w0, [x19, 7]
1385	add	w0, w0, 1
1386	strb	w0, [x19, 7]
1387.L175:
1388	add	x5, x5, 1
1389	add	x6, x6, 2
1390	b	.L174
1391	.size	make_superblock, .-make_superblock
1392	.section	.text.update_multiplier_value,"ax",@progbits
1393	.align	2
1394	.global	update_multiplier_value
1395	.type	update_multiplier_value, %function
1396update_multiplier_value:
1397	and	w6, w0, 65535
1398	adrp	x0, .LANCHOR3
1399	mov	x7, 0
1400	adrp	x8, .LANCHOR13
1401	ldrh	w10, [x0, #:lo12:.LANCHOR3]
1402	adrp	x0, .LANCHOR19
1403	mov	w5, 0
1404	add	x8, x8, :lo12:.LANCHOR13
1405	ldrh	w11, [x0, #:lo12:.LANCHOR19]
1406	cmp	w10, w7, uxth
1407	bhi	.L190
1408	cbz	w5, .L188
1409	mov	w0, 32768
1410	sdiv	w5, w0, w5
1411.L189:
1412	adrp	x0, .LANCHOR40
1413	mov	w1, 6
1414	ldr	x0, [x0, #:lo12:.LANCHOR40]
1415	umaddl	x6, w6, w1, x0
1416	mov	w0, 0
1417	strh	w5, [x6, 4]
1418	ret
1419.L183:
1420	mov	w5, 0
1421	b	.L182
1422.L188:
1423	mov	w5, 0
1424	b	.L189
1425.L190:
1426	stp	x29, x30, [sp, -16]!
1427	add	x29, sp, 0
1428.L181:
1429	ldrb	w0, [x8, x7]
1430	mov	w1, w6
1431	bl	V2P_block
1432	bl	FtlBbmIsBadBlock
1433	cbnz	w0, .L180
1434	add	w5, w5, w11
1435	and	w5, w5, 65535
1436.L180:
1437	add	x7, x7, 1
1438	cmp	w10, w7, uxth
1439	bhi	.L181
1440	cbz	w5, .L183
1441	mov	w0, 32768
1442	sdiv	w5, w0, w5
1443.L182:
1444	adrp	x0, .LANCHOR40
1445	mov	w1, 6
1446	ldr	x0, [x0, #:lo12:.LANCHOR40]
1447	umaddl	x6, w6, w1, x0
1448	mov	w0, 0
1449	strh	w5, [x6, 4]
1450	ldp	x29, x30, [sp], 16
1451	ret
1452	.size	update_multiplier_value, .-update_multiplier_value
1453	.section	.text.GetFreeBlockMinEraseCount,"ax",@progbits
1454	.align	2
1455	.global	GetFreeBlockMinEraseCount
1456	.type	GetFreeBlockMinEraseCount, %function
1457GetFreeBlockMinEraseCount:
1458	adrp	x0, .LANCHOR47
1459	ldr	x0, [x0, #:lo12:.LANCHOR47]
1460	cbz	x0, .L193
1461	adrp	x1, .LANCHOR40
1462	ldr	x1, [x1, #:lo12:.LANCHOR40]
1463	sub	x0, x0, x1
1464	mov	x1, -6148914691236517206
1465	asr	x0, x0, 1
1466	movk	x1, 0xaaab, lsl 0
1467	mul	x0, x0, x1
1468	adrp	x1, .LANCHOR43
1469	ldr	x1, [x1, #:lo12:.LANCHOR43]
1470	and	x0, x0, 65535
1471	ldrh	w0, [x1, x0, lsl 1]
1472	ret
1473.L193:
1474	mov	w0, 0
1475	ret
1476	.size	GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
1477	.section	.text.GetFreeBlockMaxEraseCount,"ax",@progbits
1478	.align	2
1479	.global	GetFreeBlockMaxEraseCount
1480	.type	GetFreeBlockMaxEraseCount, %function
1481GetFreeBlockMaxEraseCount:
1482	adrp	x1, .LANCHOR47
1483	and	w0, w0, 65535
1484	ldr	x1, [x1, #:lo12:.LANCHOR47]
1485	cbz	x1, .L201
1486	adrp	x2, .LANCHOR48
1487	mov	w3, 7
1488	mov	w5, 6
1489	mov	w6, 65535
1490	ldrh	w2, [x2, #:lo12:.LANCHOR48]
1491	mul	w2, w2, w3
1492	asr	w2, w2, 3
1493	cmp	w0, w2
1494	csel	w0, w2, w0, gt
1495	adrp	x2, .LANCHOR40
1496	ldr	x3, [x2, #:lo12:.LANCHOR40]
1497	mov	x2, -6148914691236517206
1498	movk	x2, 0xaaab, lsl 0
1499	sub	x1, x1, x3
1500	asr	x1, x1, 1
1501	mul	x1, x1, x2
1502	mov	w2, 0
1503	and	w1, w1, 65535
1504.L197:
1505	cmp	w0, w2
1506	beq	.L200
1507	umull	x4, w1, w5
1508	ldrh	w4, [x3, x4]
1509	cmp	w4, w6
1510	bne	.L198
1511.L200:
1512	adrp	x0, .LANCHOR43
1513	ubfiz	x1, x1, 1, 16
1514	ldr	x0, [x0, #:lo12:.LANCHOR43]
1515	ldrh	w0, [x0, x1]
1516	ret
1517.L198:
1518	add	w2, w2, 1
1519	mov	w1, w4
1520	and	w2, w2, 65535
1521	b	.L197
1522.L201:
1523	mov	w0, 0
1524	ret
1525	.size	GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
1526	.section	.text.FtlPrintInfo2buf,"ax",@progbits
1527	.align	2
1528	.global	FtlPrintInfo2buf
1529	.type	FtlPrintInfo2buf, %function
1530FtlPrintInfo2buf:
1531	stp	x29, x30, [sp, -96]!
1532	mov	x1, 64
1533	adrp	x2, .LC2
1534	add	x2, x2, :lo12:.LC2
1535	add	x29, sp, 0
1536	stp	x19, x20, [sp, 16]
1537	adrp	x19, .LANCHOR37
1538	stp	x21, x22, [sp, 32]
1539	mov	x21, x0
1540	stp	x23, x24, [sp, 48]
1541	adrp	x23, .LANCHOR48
1542	stp	x25, x26, [sp, 64]
1543	adrp	x22, .LANCHOR39
1544	str	x27, [sp, 80]
1545	bl	snprintf
1546	add	x20, x21, x0, sxtw
1547	adrp	x0, .LANCHOR26
1548	mov	x1, 64
1549	adrp	x2, .LC3
1550	ldr	w3, [x0, #:lo12:.LANCHOR26]
1551	add	x2, x2, :lo12:.LC3
1552	mov	x0, x20
1553	add	x22, x22, :lo12:.LANCHOR39
1554	adrp	x24, .LANCHOR51
1555	adrp	x25, .LANCHOR81
1556	add	x25, x25, :lo12:.LANCHOR81
1557	bl	snprintf
1558	add	x20, x20, x0, sxtw
1559	mov	x1, 64
1560	mov	x0, x20
1561	adrp	x2, .LC4
1562	add	x2, x2, :lo12:.LC4
1563	bl	snprintf
1564	add	x20, x20, x0, sxtw
1565	adrp	x0, .LANCHOR61
1566	mov	x1, 64
1567	adrp	x2, .LC5
1568	add	x2, x2, :lo12:.LC5
1569	ldr	w3, [x0, #:lo12:.LANCHOR61]
1570	mov	x0, x20
1571	bl	snprintf
1572	add	x20, x20, x0, sxtw
1573	adrp	x0, .LANCHOR59
1574	mov	x1, 64
1575	adrp	x2, .LC6
1576	add	x2, x2, :lo12:.LC6
1577	ldr	w3, [x0, #:lo12:.LANCHOR59]
1578	mov	x0, x20
1579	bl	snprintf
1580	add	x20, x20, x0, sxtw
1581	adrp	x0, .LANCHOR62
1582	mov	x1, 64
1583	adrp	x2, .LC7
1584	add	x2, x2, :lo12:.LC7
1585	ldr	w3, [x0, #:lo12:.LANCHOR62]
1586	mov	x0, x20
1587	bl	snprintf
1588	add	x20, x20, x0, sxtw
1589	adrp	x0, .LANCHOR63
1590	mov	x1, 64
1591	adrp	x2, .LC8
1592	add	x2, x2, :lo12:.LC8
1593	ldr	w3, [x0, #:lo12:.LANCHOR63]
1594	mov	x0, x20
1595	bl	snprintf
1596	add	x20, x20, x0, sxtw
1597	adrp	x0, .LANCHOR64
1598	mov	x1, 64
1599	adrp	x2, .LC9
1600	add	x2, x2, :lo12:.LC9
1601	ldr	w3, [x0, #:lo12:.LANCHOR64]
1602	mov	x0, x20
1603	bl	snprintf
1604	add	x20, x20, x0, sxtw
1605	adrp	x0, .LANCHOR65
1606	mov	x1, 64
1607	adrp	x2, .LC10
1608	add	x2, x2, :lo12:.LC10
1609	ldr	w3, [x0, #:lo12:.LANCHOR65]
1610	mov	x0, x20
1611	bl	snprintf
1612	add	x20, x20, x0, sxtw
1613	adrp	x0, .LANCHOR66
1614	mov	x1, 64
1615	adrp	x2, .LC11
1616	add	x2, x2, :lo12:.LC11
1617	ldr	w3, [x0, #:lo12:.LANCHOR66]
1618	mov	x0, x20
1619	bl	snprintf
1620	add	x20, x20, x0, sxtw
1621	adrp	x0, .LANCHOR67
1622	mov	x1, 64
1623	adrp	x2, .LC12
1624	add	x2, x2, :lo12:.LC12
1625	ldr	w3, [x0, #:lo12:.LANCHOR67]
1626	mov	x0, x20
1627	bl	snprintf
1628	add	x20, x20, x0, sxtw
1629	adrp	x0, .LANCHOR68
1630	mov	x1, 64
1631	adrp	x2, .LC13
1632	add	x2, x2, :lo12:.LC13
1633	ldr	w3, [x0, #:lo12:.LANCHOR68]
1634	mov	x0, x20
1635	lsr	w3, w3, 11
1636	bl	snprintf
1637	add	x20, x20, x0, sxtw
1638	adrp	x0, .LANCHOR69
1639	mov	x1, 64
1640	adrp	x2, .LC14
1641	ldr	w3, [x0, #:lo12:.LANCHOR69]
1642	add	x2, x2, :lo12:.LC14
1643	mov	x0, x20
1644	lsr	w3, w3, 11
1645	bl	snprintf
1646	add	x20, x20, x0, sxtw
1647	adrp	x0, .LANCHOR70
1648	mov	x1, 64
1649	adrp	x2, .LC15
1650	ldr	w3, [x0, #:lo12:.LANCHOR70]
1651	add	x2, x2, :lo12:.LC15
1652	mov	x0, x20
1653	bl	snprintf
1654	add	x20, x20, x0, sxtw
1655	adrp	x0, .LANCHOR71
1656	mov	x1, 64
1657	adrp	x2, .LC16
1658	add	x2, x2, :lo12:.LC16
1659	ldr	w3, [x0, #:lo12:.LANCHOR71]
1660	mov	x0, x20
1661	bl	snprintf
1662	add	x20, x20, x0, sxtw
1663	add	x0, x19, :lo12:.LANCHOR37
1664	mov	x1, 64
1665	adrp	x2, .LC17
1666	add	x2, x2, :lo12:.LC17
1667	ldrh	w3, [x0, 6]
1668	mov	x0, x20
1669	bl	snprintf
1670	add	x20, x20, x0, sxtw
1671	ldrh	w3, [x23, #:lo12:.LANCHOR48]
1672	mov	x1, 64
1673	mov	x0, x20
1674	adrp	x2, .LC18
1675	add	x2, x2, :lo12:.LC18
1676	bl	snprintf
1677	add	x20, x20, x0, sxtw
1678	adrp	x0, .LANCHOR72
1679	mov	x1, 64
1680	adrp	x2, .LC19
1681	add	x2, x2, :lo12:.LC19
1682	ldr	w3, [x0, #:lo12:.LANCHOR72]
1683	mov	x0, x20
1684	bl	snprintf
1685	add	x20, x20, x0, sxtw
1686	adrp	x0, .LANCHOR73
1687	mov	x1, 64
1688	adrp	x2, .LC20
1689	add	x2, x2, :lo12:.LC20
1690	ldr	w3, [x0, #:lo12:.LANCHOR73]
1691	mov	x0, x20
1692	bl	snprintf
1693	add	x20, x20, x0, sxtw
1694	adrp	x0, .LANCHOR74
1695	mov	x1, 64
1696	adrp	x2, .LC21
1697	add	x2, x2, :lo12:.LC21
1698	ldr	w3, [x0, #:lo12:.LANCHOR74]
1699	mov	x0, x20
1700	bl	snprintf
1701	add	x20, x20, x0, sxtw
1702	adrp	x0, .LANCHOR75
1703	mov	x1, 64
1704	adrp	x2, .LC22
1705	add	x2, x2, :lo12:.LC22
1706	ldr	w3, [x0, #:lo12:.LANCHOR75]
1707	mov	x0, x20
1708	bl	snprintf
1709	add	x20, x20, x0, sxtw
1710	adrp	x0, .LANCHOR76
1711	mov	x1, 64
1712	adrp	x2, .LC23
1713	add	x2, x2, :lo12:.LC23
1714	ldr	w3, [x0, #:lo12:.LANCHOR76]
1715	mov	x0, x20
1716	bl	snprintf
1717	add	x20, x20, x0, sxtw
1718	adrp	x0, .LANCHOR77
1719	mov	x1, 64
1720	adrp	x2, .LC24
1721	add	x2, x2, :lo12:.LC24
1722	ldr	w3, [x0, #:lo12:.LANCHOR77]
1723	mov	x0, x20
1724	bl	snprintf
1725	add	x20, x20, x0, sxtw
1726	ldrh	w3, [x22, 30]
1727	mov	x1, 64
1728	mov	x0, x20
1729	adrp	x2, .LC25
1730	add	x2, x2, :lo12:.LC25
1731	bl	snprintf
1732	add	x20, x20, x0, sxtw
1733	ldrh	w3, [x22, 28]
1734	mov	x1, 64
1735	mov	x0, x20
1736	adrp	x2, .LC26
1737	add	x2, x2, :lo12:.LC26
1738	adrp	x22, .LANCHOR42
1739	bl	snprintf
1740	add	x20, x20, x0, sxtw
1741	adrp	x0, .LANCHOR34
1742	mov	x1, 64
1743	adrp	x2, .LC27
1744	add	x2, x2, :lo12:.LC27
1745	ldr	w3, [x0, #:lo12:.LANCHOR34]
1746	mov	x0, x20
1747	bl	snprintf
1748	add	x20, x20, x0, sxtw
1749	adrp	x0, .LANCHOR31
1750	mov	x1, 64
1751	adrp	x2, .LC28
1752	add	x2, x2, :lo12:.LC28
1753	ldr	w3, [x0, #:lo12:.LANCHOR31]
1754	mov	x0, x20
1755	bl	snprintf
1756	add	x20, x20, x0, sxtw
1757	adrp	x0, .LANCHOR2
1758	mov	x1, 64
1759	adrp	x2, .LC29
1760	add	x2, x2, :lo12:.LC29
1761	ldr	w3, [x0, #:lo12:.LANCHOR2]
1762	mov	x0, x20
1763	bl	snprintf
1764	add	x20, x20, x0, sxtw
1765	adrp	x0, .LANCHOR38+6
1766	mov	x1, 64
1767	adrp	x2, .LC30
1768	add	x2, x2, :lo12:.LC30
1769	ldrh	w3, [x0, #:lo12:.LANCHOR38+6]
1770	mov	x0, x20
1771	bl	snprintf
1772	add	x20, x20, x0, sxtw
1773	adrp	x0, .LANCHOR5
1774	mov	x1, 64
1775	adrp	x2, .LC31
1776	add	x2, x2, :lo12:.LC31
1777	ldrh	w3, [x0, #:lo12:.LANCHOR5]
1778	mov	x0, x20
1779	bl	snprintf
1780	add	x20, x20, x0, sxtw
1781	adrp	x0, .LANCHOR78
1782	mov	x1, 64
1783	adrp	x2, .LC32
1784	add	x2, x2, :lo12:.LC32
1785	ldrh	w3, [x0, #:lo12:.LANCHOR78]
1786	mov	x0, x20
1787	bl	snprintf
1788	add	x20, x20, x0, sxtw
1789	adrp	x0, .LANCHOR7
1790	mov	x1, 64
1791	adrp	x2, .LC33
1792	add	x2, x2, :lo12:.LC33
1793	ldr	w3, [x0, #:lo12:.LANCHOR7]
1794	mov	x0, x20
1795	bl	snprintf
1796	add	x20, x20, x0, sxtw
1797	adrp	x0, .LANCHOR79
1798	mov	x1, 64
1799	adrp	x2, .LC34
1800	add	x2, x2, :lo12:.LC34
1801	ldrh	w3, [x0, #:lo12:.LANCHOR79]
1802	mov	x0, x20
1803	bl	snprintf
1804	add	x20, x20, x0, sxtw
1805	ldrh	w3, [x19, #:lo12:.LANCHOR37]
1806	add	x19, x24, :lo12:.LANCHOR51
1807	mov	x1, 64
1808	mov	x0, x20
1809	adrp	x2, .LC35
1810	add	x2, x2, :lo12:.LC35
1811	bl	snprintf
1812	add	x20, x20, x0, sxtw
1813	ldrh	w3, [x19, 2]
1814	mov	x1, 64
1815	mov	x0, x20
1816	adrp	x2, .LC36
1817	add	x2, x2, :lo12:.LC36
1818	bl	snprintf
1819	add	x20, x20, x0, sxtw
1820	ldrb	w3, [x19, 6]
1821	mov	x1, 64
1822	mov	x0, x20
1823	adrp	x2, .LC37
1824	add	x2, x2, :lo12:.LC37
1825	bl	snprintf
1826	add	x20, x20, x0, sxtw
1827	ldrh	w3, [x24, #:lo12:.LANCHOR51]
1828	mov	x1, 64
1829	mov	x0, x20
1830	adrp	x2, .LC38
1831	add	x2, x2, :lo12:.LC38
1832	bl	snprintf
1833	add	x20, x20, x0, sxtw
1834	ldrb	w3, [x19, 8]
1835	mov	x1, 64
1836	mov	x0, x20
1837	adrp	x2, .LC39
1838	add	x2, x2, :lo12:.LC39
1839	bl	snprintf
1840	add	x20, x20, x0, sxtw
1841	ldrh	w3, [x19, 4]
1842	mov	x1, 64
1843	mov	x0, x20
1844	adrp	x2, .LC40
1845	add	x2, x2, :lo12:.LC40
1846	bl	snprintf
1847	add	x20, x20, x0, sxtw
1848	ldrh	w1, [x24, #:lo12:.LANCHOR51]
1849	adrp	x24, .LANCHOR52
1850	ldr	x0, [x22, #:lo12:.LANCHOR42]
1851	add	x19, x24, :lo12:.LANCHOR52
1852	adrp	x2, .LC41
1853	add	x2, x2, :lo12:.LC41
1854	ldrh	w3, [x0, x1, lsl 1]
1855	mov	x1, 64
1856	mov	x0, x20
1857	bl	snprintf
1858	add	x20, x20, x0, sxtw
1859	ldrh	w3, [x19, 2]
1860	mov	x1, 64
1861	mov	x0, x20
1862	adrp	x2, .LC42
1863	add	x2, x2, :lo12:.LC42
1864	bl	snprintf
1865	add	x20, x20, x0, sxtw
1866	ldrb	w3, [x19, 6]
1867	mov	x1, 64
1868	mov	x0, x20
1869	adrp	x2, .LC43
1870	add	x2, x2, :lo12:.LC43
1871	bl	snprintf
1872	add	x20, x20, x0, sxtw
1873	ldrh	w3, [x24, #:lo12:.LANCHOR52]
1874	mov	x1, 64
1875	mov	x0, x20
1876	adrp	x2, .LC44
1877	add	x2, x2, :lo12:.LC44
1878	bl	snprintf
1879	add	x20, x20, x0, sxtw
1880	ldrb	w3, [x19, 8]
1881	mov	x1, 64
1882	mov	x0, x20
1883	adrp	x2, .LC45
1884	add	x2, x2, :lo12:.LC45
1885	bl	snprintf
1886	add	x20, x20, x0, sxtw
1887	ldrh	w3, [x19, 4]
1888	mov	x1, 64
1889	mov	x0, x20
1890	adrp	x2, .LC46
1891	add	x2, x2, :lo12:.LC46
1892	bl	snprintf
1893	add	x20, x20, x0, sxtw
1894	ldrh	w1, [x24, #:lo12:.LANCHOR52]
1895	adrp	x24, .LANCHOR53
1896	ldr	x0, [x22, #:lo12:.LANCHOR42]
1897	add	x19, x24, :lo12:.LANCHOR53
1898	adrp	x2, .LC47
1899	add	x2, x2, :lo12:.LC47
1900	ldrh	w3, [x0, x1, lsl 1]
1901	mov	x1, 64
1902	mov	x0, x20
1903	bl	snprintf
1904	add	x20, x20, x0, sxtw
1905	ldrh	w3, [x19, 2]
1906	mov	x1, 64
1907	mov	x0, x20
1908	adrp	x2, .LC48
1909	add	x2, x2, :lo12:.LC48
1910	bl	snprintf
1911	add	x20, x20, x0, sxtw
1912	ldrb	w3, [x19, 6]
1913	mov	x1, 64
1914	mov	x0, x20
1915	adrp	x2, .LC49
1916	add	x2, x2, :lo12:.LC49
1917	bl	snprintf
1918	add	x20, x20, x0, sxtw
1919	ldrh	w3, [x24, #:lo12:.LANCHOR53]
1920	mov	x1, 64
1921	mov	x0, x20
1922	adrp	x2, .LC50
1923	add	x2, x2, :lo12:.LC50
1924	adrp	x24, .LANCHOR80
1925	bl	snprintf
1926	add	x20, x20, x0, sxtw
1927	ldrb	w3, [x19, 8]
1928	mov	x1, 64
1929	mov	x0, x20
1930	adrp	x2, .LC51
1931	add	x2, x2, :lo12:.LC51
1932	bl	snprintf
1933	add	x20, x20, x0, sxtw
1934	ldrh	w3, [x19, 4]
1935	add	x19, x24, :lo12:.LANCHOR80
1936	mov	x1, 64
1937	mov	x0, x20
1938	adrp	x2, .LC52
1939	add	x2, x2, :lo12:.LC52
1940	bl	snprintf
1941	add	x20, x20, x0, sxtw
1942	ldrh	w3, [x19, 2]
1943	mov	x1, 64
1944	mov	x0, x20
1945	adrp	x2, .LC53
1946	add	x2, x2, :lo12:.LC53
1947	bl	snprintf
1948	add	x20, x20, x0, sxtw
1949	ldrb	w3, [x19, 6]
1950	mov	x1, 64
1951	mov	x0, x20
1952	adrp	x2, .LC54
1953	add	x2, x2, :lo12:.LC54
1954	bl	snprintf
1955	add	x20, x20, x0, sxtw
1956	ldrh	w3, [x24, #:lo12:.LANCHOR80]
1957	mov	x1, 64
1958	mov	x0, x20
1959	adrp	x2, .LC55
1960	add	x2, x2, :lo12:.LC55
1961	bl	snprintf
1962	add	x20, x20, x0, sxtw
1963	ldrb	w3, [x19, 8]
1964	mov	x1, 64
1965	mov	x0, x20
1966	adrp	x2, .LC56
1967	add	x2, x2, :lo12:.LC56
1968	bl	snprintf
1969	add	x20, x20, x0, sxtw
1970	ldrh	w3, [x19, 4]
1971	mov	x1, 64
1972	mov	x0, x20
1973	adrp	x2, .LC57
1974	add	x2, x2, :lo12:.LC57
1975	bl	snprintf
1976	add	x20, x20, x0, sxtw
1977	ldp	w5, w3, [x25, 76]
1978	mov	x1, 64
1979	ldr	w4, [x25, 84]
1980	adrp	x2, .LC58
1981	mov	x0, x20
1982	add	x2, x2, :lo12:.LC58
1983	bl	snprintf
1984	add	x19, x20, x0, sxtw
1985	ldr	w3, [x25, 72]
1986	mov	x1, 64
1987	mov	x0, x19
1988	adrp	x2, .LC59
1989	add	x2, x2, :lo12:.LC59
1990	bl	snprintf
1991	add	x19, x19, x0, sxtw
1992	ldr	w3, [x25, 96]
1993	mov	x1, 64
1994	mov	x0, x19
1995	adrp	x2, .LC60
1996	add	x2, x2, :lo12:.LC60
1997	bl	snprintf
1998	add	x19, x19, x0, sxtw
1999	adrp	x0, .LANCHOR82
2000	mov	x1, 64
2001	adrp	x2, .LC61
2002	add	x2, x2, :lo12:.LC61
2003	ldrh	w3, [x0, #:lo12:.LANCHOR82]
2004	mov	x0, x19
2005	bl	snprintf
2006	add	x19, x19, x0, sxtw
2007	adrp	x0, .LANCHOR83
2008	mov	x1, 64
2009	adrp	x2, .LC62
2010	add	x2, x2, :lo12:.LC62
2011	ldrh	w3, [x0, #:lo12:.LANCHOR83]
2012	mov	x0, x19
2013	bl	snprintf
2014	add	x19, x19, x0, sxtw
2015	adrp	x0, .LANCHOR84
2016	mov	x1, 64
2017	adrp	x2, .LC63
2018	add	x2, x2, :lo12:.LC63
2019	ldr	w3, [x0, #:lo12:.LANCHOR84]
2020	mov	x0, x19
2021	bl	snprintf
2022	add	x19, x19, x0, sxtw
2023	adrp	x0, .LANCHOR85
2024	adrp	x2, .LC64
2025	add	x2, x2, :lo12:.LC64
2026	mov	x1, 64
2027	ldrh	w3, [x0, #:lo12:.LANCHOR85]
2028	mov	x0, x19
2029	bl	snprintf
2030	add	x19, x19, x0, sxtw
2031	bl	GetFreeBlockMinEraseCount
2032	and	w3, w0, 65535
2033	mov	x1, 64
2034	mov	x0, x19
2035	adrp	x2, .LC65
2036	add	x2, x2, :lo12:.LC65
2037	bl	snprintf
2038	add	x19, x19, x0, sxtw
2039	ldrh	w0, [x23, #:lo12:.LANCHOR48]
2040	bl	GetFreeBlockMaxEraseCount
2041	and	w3, w0, 65535
2042	adrp	x2, .LC66
2043	mov	x0, x19
2044	add	x2, x2, :lo12:.LC66
2045	mov	x1, 64
2046	bl	snprintf
2047	add	x19, x19, x0, sxtw
2048	adrp	x0, .LANCHOR86
2049	ldr	w0, [x0, #:lo12:.LANCHOR86]
2050	cmp	w0, 1
2051	beq	.L203
2052.L208:
2053	sub	w0, w19, w21
2054	ldr	x27, [sp, 80]
2055	ldp	x19, x20, [sp, 16]
2056	ldp	x21, x22, [sp, 32]
2057	ldp	x23, x24, [sp, 48]
2058	ldp	x25, x26, [sp, 64]
2059	ldp	x29, x30, [sp], 96
2060	ret
2061.L203:
2062	ldrh	w0, [x24, #:lo12:.LANCHOR80]
2063	mov	w1, 65535
2064	cmp	w0, w1
2065	beq	.L205
2066	ldr	x1, [x22, #:lo12:.LANCHOR42]
2067	ubfiz	x0, x0, 1, 16
2068	adrp	x2, .LC67
2069	add	x2, x2, :lo12:.LC67
2070	ldrh	w3, [x1, x0]
2071	mov	x0, x19
2072	mov	x1, 64
2073	bl	snprintf
2074	add	x19, x19, x0, sxtw
2075.L205:
2076	mov	w0, 0
2077	adrp	x24, .LC68
2078	bl	List_get_gc_head_node
2079	add	x24, x24, :lo12:.LC68
2080	and	w4, w0, 65535
2081	mov	w23, 0
2082	mov	w27, 65535
2083	adrp	x20, .LANCHOR40
2084	mov	w26, 6
2085.L207:
2086	cmp	w4, w27
2087	beq	.L206
2088	adrp	x0, .LANCHOR43
2089	umull	x25, w4, w26
2090	ldr	x2, [x22, #:lo12:.LANCHOR42]
2091	ubfiz	x1, x4, 1, 16
2092	ldr	x3, [x0, #:lo12:.LANCHOR43]
2093	ldr	x0, [x20, #:lo12:.LANCHOR40]
2094	add	x0, x0, x25
2095	ldrh	w5, [x2, x1]
2096	ldrh	w7, [x3, x1]
2097	mov	x2, x24
2098	mov	w3, w23
2099	mov	x1, 64
2100	ldrh	w6, [x0, 4]
2101	mov	x0, x19
2102	add	w23, w23, 1
2103	bl	snprintf
2104	add	x19, x19, x0, sxtw
2105	ldr	x0, [x20, #:lo12:.LANCHOR40]
2106	cmp	w23, 16
2107	ldrh	w4, [x0, x25]
2108	bne	.L207
2109.L206:
2110	adrp	x0, .LANCHOR47
2111	adrp	x23, .LC69
2112	add	x23, x23, :lo12:.LC69
2113	mov	w22, 0
2114	ldr	x4, [x0, #:lo12:.LANCHOR47]
2115	mov	w25, 65535
2116	ldr	x0, [x20, #:lo12:.LANCHOR40]
2117	mov	w26, 6
2118	adrp	x27, .LANCHOR43
2119	sub	x4, x4, x0
2120	mov	x0, -6148914691236517206
2121	asr	x4, x4, 1
2122	movk	x0, 0xaaab, lsl 0
2123	mul	x4, x4, x0
2124	and	w4, w4, 65535
2125.L209:
2126	cmp	w4, w25
2127	beq	.L208
2128	umull	x24, w4, w26
2129	ldr	x0, [x20, #:lo12:.LANCHOR40]
2130	ldr	x2, [x27, #:lo12:.LANCHOR43]
2131	ubfiz	x1, x4, 1, 16
2132	add	x0, x0, x24
2133	mov	w3, w22
2134	add	w22, w22, 1
2135	ldrh	w6, [x2, x1]
2136	mov	x2, x23
2137	ldrh	w5, [x0, 4]
2138	mov	x1, 64
2139	mov	x0, x19
2140	bl	snprintf
2141	add	x19, x19, x0, sxtw
2142	cmp	w22, 4
2143	beq	.L208
2144	ldr	x0, [x20, #:lo12:.LANCHOR40]
2145	ldrh	w4, [x0, x24]
2146	b	.L209
2147	.size	FtlPrintInfo2buf, .-FtlPrintInfo2buf
2148	.section	.text.rknand_proc_ftlread,"ax",@progbits
2149	.align	2
2150	.global	rknand_proc_ftlread
2151	.type	rknand_proc_ftlread, %function
2152rknand_proc_ftlread:
2153	cmp	w0, 2047
2154	ble	.L217
2155	stp	x29, x30, [sp, -32]!
2156	adrp	x3, .LC70
2157	adrp	x2, .LC71
2158	add	x3, x3, :lo12:.LC70
2159	add	x29, sp, 0
2160	add	x2, x2, :lo12:.LC71
2161	stp	x19, x20, [sp, 16]
2162	mov	x20, x1
2163	mov	x1, 64
2164	mov	x0, x20
2165	bl	snprintf
2166	add	x19, x20, x0, sxtw
2167	mov	x0, x19
2168	bl	FtlPrintInfo2buf
2169	add	x0, x19, x0, sxtw
2170	sub	w0, w0, w20
2171	ldp	x19, x20, [sp, 16]
2172	ldp	x29, x30, [sp], 32
2173	ret
2174.L217:
2175	mov	w0, 0
2176	ret
2177	.size	rknand_proc_ftlread, .-rknand_proc_ftlread
2178	.section	.text.GetSwlReplaceBlock,"ax",@progbits
2179	.align	2
2180	.global	GetSwlReplaceBlock
2181	.type	GetSwlReplaceBlock, %function
2182GetSwlReplaceBlock:
2183	stp	x29, x30, [sp, -32]!
2184	adrp	x2, .LANCHOR74
2185	adrp	x8, .LANCHOR77
2186	add	x29, sp, 0
2187	str	x19, [sp, 16]
2188	ldr	w3, [x2, #:lo12:.LANCHOR74]
2189	ldr	w7, [x8, #:lo12:.LANCHOR77]
2190	cmp	w3, w7
2191	bcs	.L223
2192	adrp	x1, .LANCHOR5
2193	adrp	x0, .LANCHOR72
2194	mov	w5, 0
2195	mov	w4, 0
2196	ldrh	w3, [x1, #:lo12:.LANCHOR5]
2197	adrp	x1, .LANCHOR43
2198	str	wzr, [x0, #:lo12:.LANCHOR72]
2199	ldr	x6, [x1, #:lo12:.LANCHOR43]
2200	mov	x1, 0
2201.L224:
2202	cmp	w3, w1
2203	bhi	.L225
2204	cbz	w5, .L226
2205	str	w4, [x0, #:lo12:.LANCHOR72]
2206.L226:
2207	ldr	w1, [x0, #:lo12:.LANCHOR72]
2208	udiv	w3, w1, w3
2209	str	w3, [x2, #:lo12:.LANCHOR74]
2210	adrp	x3, .LANCHOR73
2211	ldr	w3, [x3, #:lo12:.LANCHOR73]
2212	sub	w1, w1, w3
2213	adrp	x3, .LANCHOR14
2214	ldrh	w3, [x3, #:lo12:.LANCHOR14]
2215	udiv	w1, w1, w3
2216	str	w1, [x0, #:lo12:.LANCHOR72]
2217.L227:
2218	ldr	w10, [x2, #:lo12:.LANCHOR74]
2219	add	w0, w7, 256
2220	cmp	w0, w10
2221	bls	.L232
2222	adrp	x1, .LANCHOR76
2223	add	w0, w7, 768
2224	ldr	w1, [x1, #:lo12:.LANCHOR76]
2225	cmp	w0, w1
2226	bls	.L232
2227.L234:
2228	mov	w19, 65535
2229.L233:
2230	mov	w0, w19
2231	ldr	x19, [sp, 16]
2232	ldp	x29, x30, [sp], 32
2233	ret
2234.L225:
2235	ldrh	w5, [x6, x1, lsl 1]
2236	add	x1, x1, 1
2237	add	w4, w4, w5
2238	mov	w5, 1
2239	b	.L224
2240.L223:
2241	adrp	x1, .LANCHOR76
2242	ldr	w0, [x1, #:lo12:.LANCHOR76]
2243	cmp	w3, w0
2244	bls	.L227
2245	add	w0, w0, 1
2246	str	w0, [x1, #:lo12:.LANCHOR76]
2247	adrp	x0, .LANCHOR43
2248	adrp	x1, .LANCHOR5
2249	add	x1, x1, :lo12:.LANCHOR5
2250	ldr	x4, [x0, #:lo12:.LANCHOR43]
2251	mov	w0, 0
2252.L229:
2253	ldrh	w3, [x1]
2254	cmp	w0, w3
2255	bcs	.L227
2256	ubfiz	x5, x0, 1, 32
2257	add	w0, w0, 1
2258	ldrh	w3, [x4, x5]
2259	add	w3, w3, 1
2260	strh	w3, [x4, x5]
2261	b	.L229
2262.L232:
2263	adrp	x0, .LANCHOR48
2264	ldrh	w0, [x0, #:lo12:.LANCHOR48]
2265	add	w0, w0, w0, lsl 1
2266	lsr	w0, w0, 2
2267	bl	GetFreeBlockMaxEraseCount
2268	and	w6, w0, 65535
2269	add	w0, w7, 64
2270	cmp	w6, w0
2271	bcc	.L234
2272	adrp	x0, .LANCHOR41
2273	ldr	x0, [x0, #:lo12:.LANCHOR41]
2274	cbz	x0, .L234
2275	adrp	x1, .LANCHOR5
2276	mov	w3, 65535
2277	mov	x14, -6148914691236517206
2278	mov	w2, w3
2279	ldrh	w13, [x1, #:lo12:.LANCHOR5]
2280	adrp	x1, .LANCHOR40
2281	mov	w12, w3
2282	movk	x14, 0xaaab, lsl 0
2283	ldr	x11, [x1, #:lo12:.LANCHOR40]
2284	adrp	x1, .LANCHOR43
2285	mov	w15, 6
2286	ldr	x4, [x1, #:lo12:.LANCHOR43]
2287	mov	w1, 0
2288.L235:
2289	ldrh	w5, [x0]
2290	cmp	w5, w12
2291	bne	.L238
2292	mov	w19, w2
2293.L237:
2294	mov	w0, 65535
2295	cmp	w19, w0
2296	beq	.L234
2297	ubfiz	x2, x19, 1, 32
2298	ldrh	w5, [x4, x2]
2299	cmp	w7, w5
2300	bcs	.L239
2301	bl	GetFreeBlockMinEraseCount
2302	cmp	w7, w0, uxth
2303	bcs	.L239
2304	str	w3, [x8, #:lo12:.LANCHOR77]
2305.L239:
2306	cmp	w10, w5
2307	bls	.L234
2308	add	w0, w5, 128
2309	cmp	w6, w0
2310	ble	.L234
2311	add	w0, w5, 256
2312	adrp	x1, .LANCHOR76
2313	cmp	w10, w0
2314	bhi	.L240
2315	ldr	w3, [x1, #:lo12:.LANCHOR76]
2316	add	w0, w5, 768
2317	cmp	w0, w3
2318	bcs	.L234
2319.L240:
2320	adrp	x0, .LANCHOR42
2321	ldr	w3, [x1, #:lo12:.LANCHOR76]
2322	mov	w1, w19
2323	ldr	x0, [x0, #:lo12:.LANCHOR42]
2324	ldrh	w4, [x0, x2]
2325	mov	w2, w10
2326	adrp	x0, .LC72
2327	add	x0, x0, :lo12:.LC72
2328	bl	printf
2329	adrp	x0, .LANCHOR87
2330	mov	w1, 1
2331	str	w1, [x0, #:lo12:.LANCHOR87]
2332	b	.L233
2333.L238:
2334	add	w1, w1, 1
2335	and	w1, w1, 65535
2336	cmp	w1, w13
2337	bhi	.L234
2338	ldrh	w16, [x0, 4]
2339	cbz	w16, .L236
2340	sub	x0, x0, x11
2341	asr	x0, x0, 1
2342	mul	x0, x0, x14
2343	and	w19, w0, 65535
2344	and	x0, x0, 65535
2345	ldrh	w0, [x4, x0, lsl 1]
2346	cmp	w7, w0
2347	bcs	.L237
2348	cmp	w3, w0
2349	bls	.L236
2350	mov	w3, w0
2351	mov	w2, w19
2352.L236:
2353	umaddl	x0, w5, w15, x11
2354	b	.L235
2355	.size	GetSwlReplaceBlock, .-GetSwlReplaceBlock
2356	.section	.text.free_data_superblock,"ax",@progbits
2357	.align	2
2358	.global	free_data_superblock
2359	.type	free_data_superblock, %function
2360free_data_superblock:
2361	and	w0, w0, 65535
2362	mov	w1, 65535
2363	cmp	w0, w1
2364	beq	.L254
2365	stp	x29, x30, [sp, -16]!
2366	adrp	x2, .LANCHOR42
2367	ubfiz	x1, x0, 1, 16
2368	add	x29, sp, 0
2369	ldr	x2, [x2, #:lo12:.LANCHOR42]
2370	strh	wzr, [x2, x1]
2371	bl	INSERT_FREE_LIST
2372	mov	w0, 0
2373	ldp	x29, x30, [sp], 16
2374	ret
2375.L254:
2376	mov	w0, 0
2377	ret
2378	.size	free_data_superblock, .-free_data_superblock
2379	.section	.text.get_new_active_ppa,"ax",@progbits
2380	.align	2
2381	.global	get_new_active_ppa
2382	.type	get_new_active_ppa, %function
2383get_new_active_ppa:
2384	stp	x29, x30, [sp, -48]!
2385	add	x29, sp, 0
2386	stp	x19, x20, [sp, 16]
2387	mov	x19, x0
2388	ldrh	w1, [x0]
2389	mov	w0, 65535
2390	str	x21, [sp, 32]
2391	cmp	w1, w0
2392	bne	.L258
2393	adrp	x1, .LANCHOR88
2394	adrp	x0, .LC1
2395	mov	w2, 2740
2396	add	x1, x1, :lo12:.LANCHOR88
2397	add	x0, x0, :lo12:.LC1
2398	bl	printf
2399.L258:
2400	adrp	x20, .LANCHOR19
2401	ldrh	w1, [x19, 2]
2402	ldrh	w0, [x20, #:lo12:.LANCHOR19]
2403	cmp	w1, w0
2404	bne	.L259
2405	adrp	x1, .LANCHOR88
2406	adrp	x0, .LC1
2407	mov	w2, 2741
2408	add	x1, x1, :lo12:.LANCHOR88
2409	add	x0, x0, :lo12:.LC1
2410	bl	printf
2411.L259:
2412	ldrh	w0, [x19, 4]
2413	cbnz	w0, .L260
2414	adrp	x1, .LANCHOR88
2415	adrp	x0, .LC1
2416	mov	w2, 2742
2417	add	x1, x1, :lo12:.LANCHOR88
2418	add	x0, x0, :lo12:.LC1
2419	bl	printf
2420.L260:
2421	ldrb	w0, [x19, 6]
2422	adrp	x1, .LANCHOR3
2423	strb	wzr, [x19, 10]
2424	add	x0, x0, 8
2425	ldrh	w2, [x1, #:lo12:.LANCHOR3]
2426	mov	w1, 65535
2427	ldrh	w0, [x19, x0, lsl 1]
2428.L261:
2429	cmp	w0, w1
2430	beq	.L263
2431	ldrh	w21, [x19, 2]
2432	mov	w3, 65535
2433	ldrh	w1, [x19, 4]
2434	orr	w21, w21, w0, lsl 10
2435	ldrb	w0, [x19, 6]
2436	sub	w1, w1, #1
2437	and	w1, w1, 65535
2438	strh	w1, [x19, 4]
2439.L265:
2440	add	w0, w0, 1
2441	and	w0, w0, 255
2442	cmp	w2, w0
2443	bne	.L264
2444	ldrh	w0, [x19, 2]
2445	add	w0, w0, 1
2446	strh	w0, [x19, 2]
2447	mov	w0, 0
2448.L264:
2449	add	x4, x19, x0, sxtw 1
2450	ldrh	w4, [x4, 16]
2451	cmp	w4, w3
2452	beq	.L265
2453	strb	w0, [x19, 6]
2454	ldrh	w2, [x19, 2]
2455	ldrh	w0, [x20, #:lo12:.LANCHOR19]
2456	cmp	w2, w0
2457	bne	.L257
2458	cbz	w1, .L257
2459	adrp	x1, .LANCHOR88
2460	adrp	x0, .LC1
2461	mov	w2, 2763
2462	add	x1, x1, :lo12:.LANCHOR88
2463	add	x0, x0, :lo12:.LC1
2464	bl	printf
2465.L257:
2466	mov	w0, w21
2467	ldr	x21, [sp, 32]
2468	ldp	x19, x20, [sp, 16]
2469	ldp	x29, x30, [sp], 48
2470	ret
2471.L263:
2472	ldrb	w0, [x19, 6]
2473	add	w0, w0, 1
2474	and	w0, w0, 255
2475	strb	w0, [x19, 6]
2476	cmp	w0, w2
2477	bne	.L262
2478	ldrh	w0, [x19, 2]
2479	strb	wzr, [x19, 6]
2480	add	w0, w0, 1
2481	strh	w0, [x19, 2]
2482.L262:
2483	ldrb	w0, [x19, 6]
2484	add	x0, x0, 8
2485	ldrh	w0, [x19, x0, lsl 1]
2486	b	.L261
2487	.size	get_new_active_ppa, .-get_new_active_ppa
2488	.section	.text.FtlGcBufInit,"ax",@progbits
2489	.align	2
2490	.global	FtlGcBufInit
2491	.type	FtlGcBufInit, %function
2492FtlGcBufInit:
2493	adrp	x1, .LANCHOR90
2494	adrp	x0, .LANCHOR89
2495	adrp	x7, .LANCHOR91
2496	adrp	x6, .LANCHOR92
2497	ldr	x5, [x1, #:lo12:.LANCHOR90]
2498	adrp	x1, .LANCHOR23
2499	str	wzr, [x0, #:lo12:.LANCHOR89]
2500	adrp	x0, .LANCHOR3
2501	ldrh	w10, [x1, #:lo12:.LANCHOR23]
2502	adrp	x1, .LANCHOR24
2503	ldrh	w0, [x0, #:lo12:.LANCHOR3]
2504	mov	w8, 24
2505	ldrh	w11, [x1, #:lo12:.LANCHOR24]
2506	adrp	x1, .LANCHOR93
2507	ldr	x14, [x7, #:lo12:.LANCHOR91]
2508	mov	x3, x5
2509	ldr	x4, [x1, #:lo12:.LANCHOR93]
2510	mov	w2, 0
2511	ldr	x15, [x6, #:lo12:.LANCHOR92]
2512	nop // between mem op and mult-accumulate
2513	umaddl	x8, w0, w8, x5
2514	add	x4, x4, 8
2515	mov	w1, 0
2516	mov	w16, 1
2517.L273:
2518	add	w13, w2, w10
2519	add	w12, w1, w11
2520	cmp	x3, x8
2521	bne	.L274
2522	adrp	x1, .LANCHOR94
2523	ldr	x7, [x7, #:lo12:.LANCHOR91]
2524	ldr	x6, [x6, #:lo12:.LANCHOR92]
2525	mov	w8, 24
2526	ldr	w4, [x1, #:lo12:.LANCHOR94]
2527.L275:
2528	cmp	w0, w4
2529	bcc	.L276
2530	ret
2531.L274:
2532	asr	w2, w2, 2
2533	asr	w1, w1, 2
2534	add	x2, x14, x2, sxtw 2
2535	add	x1, x15, x1, sxtw 2
2536	str	w16, [x3, 16]
2537	stp	x2, x1, [x3]
2538	add	x3, x3, 24
2539	stp	x2, x1, [x4]
2540	add	x4, x4, 32
2541	mov	w1, w12
2542	mov	w2, w13
2543	b	.L273
2544.L276:
2545	umull	x3, w0, w8
2546	mul	w1, w10, w0
2547	add	x2, x5, x3
2548	asr	w1, w1, 2
2549	add	x1, x7, x1, sxtw 2
2550	str	wzr, [x2, 16]
2551	str	x1, [x5, x3]
2552	mul	w1, w11, w0
2553	add	w0, w0, 1
2554	and	w0, w0, 65535
2555	asr	w1, w1, 2
2556	add	x1, x6, x1, sxtw 2
2557	str	x1, [x2, 8]
2558	b	.L275
2559	.size	FtlGcBufInit, .-FtlGcBufInit
2560	.section	.text.FtlGcBufFree,"ax",@progbits
2561	.align	2
2562	.global	FtlGcBufFree
2563	.type	FtlGcBufFree, %function
2564FtlGcBufFree:
2565	adrp	x2, .LANCHOR94
2566	mov	w3, 0
2567	mov	w8, 24
2568	ldr	w7, [x2, #:lo12:.LANCHOR94]
2569	adrp	x2, .LANCHOR90
2570	ldr	x5, [x2, #:lo12:.LANCHOR90]
2571.L278:
2572	cmp	w3, w1
2573	bcs	.L277
2574	ubfiz	x4, x3, 5, 16
2575	mov	w2, 0
2576	add	x4, x0, x4
2577	b	.L283
2578.L279:
2579	add	w2, w2, 1
2580	and	w2, w2, 65535
2581.L283:
2582	cmp	w2, w7
2583	bcs	.L280
2584	umull	x6, w2, w8
2585	add	x10, x5, x6
2586	ldr	x11, [x5, x6]
2587	ldr	x6, [x4, 8]
2588	cmp	x11, x6
2589	bne	.L279
2590	str	wzr, [x10, 16]
2591.L280:
2592	add	w3, w3, 1
2593	and	w3, w3, 65535
2594	b	.L278
2595.L277:
2596	ret
2597	.size	FtlGcBufFree, .-FtlGcBufFree
2598	.section	.text.FtlGcBufAlloc,"ax",@progbits
2599	.align	2
2600	.global	FtlGcBufAlloc
2601	.type	FtlGcBufAlloc, %function
2602FtlGcBufAlloc:
2603	adrp	x2, .LANCHOR94
2604	mov	w3, 0
2605	mov	w7, 24
2606	mov	w8, 1
2607	ldr	w5, [x2, #:lo12:.LANCHOR94]
2608	adrp	x2, .LANCHOR90
2609	ldr	x6, [x2, #:lo12:.LANCHOR90]
2610.L285:
2611	cmp	w3, w1
2612	bcs	.L284
2613	mov	w2, 0
2614	b	.L290
2615.L286:
2616	add	w2, w2, 1
2617	and	w2, w2, 65535
2618.L290:
2619	cmp	w2, w5
2620	bcs	.L287
2621	umaddl	x4, w2, w7, x6
2622	ldr	w10, [x4, 16]
2623	cbnz	w10, .L286
2624	ubfiz	x2, x3, 5, 16
2625	ldr	x10, [x4]
2626	add	x2, x0, x2
2627	str	w8, [x4, 16]
2628	ldr	x4, [x4, 8]
2629	stp	x10, x4, [x2, 8]
2630.L287:
2631	add	w3, w3, 1
2632	and	w3, w3, 65535
2633	b	.L285
2634.L284:
2635	ret
2636	.size	FtlGcBufAlloc, .-FtlGcBufAlloc
2637	.section	.text.IsBlkInGcList,"ax",@progbits
2638	.align	2
2639	.global	IsBlkInGcList
2640	.type	IsBlkInGcList, %function
2641IsBlkInGcList:
2642	adrp	x1, .LANCHOR95
2643	and	w0, w0, 65535
2644	ldrh	w2, [x1, #:lo12:.LANCHOR95]
2645	adrp	x1, .LANCHOR96
2646	ldr	x3, [x1, #:lo12:.LANCHOR96]
2647	mov	x1, 0
2648.L292:
2649	cmp	w2, w1, uxth
2650	bhi	.L294
2651	mov	w0, 0
2652	ret
2653.L294:
2654	add	x1, x1, 1
2655	add	x4, x3, x1, lsl 1
2656	ldrh	w4, [x4, -2]
2657	cmp	w4, w0
2658	bne	.L292
2659	mov	w0, 1
2660	ret
2661	.size	IsBlkInGcList, .-IsBlkInGcList
2662	.section	.text.FtlGcUpdatePage,"ax",@progbits
2663	.align	2
2664	.global	FtlGcUpdatePage
2665	.type	FtlGcUpdatePage, %function
2666FtlGcUpdatePage:
2667	mov	w6, w0
2668	mov	w10, w1
2669	mov	w8, w2
2670	stp	x29, x30, [sp, -16]!
2671	lsr	w0, w0, 10
2672	add	x29, sp, 0
2673	bl	P2V_block_in_plane
2674	and	w7, w0, 65535
2675	adrp	x4, .LANCHOR95
2676	adrp	x2, .LANCHOR96
2677	mov	x3, 0
2678	ldrh	w1, [x4, #:lo12:.LANCHOR95]
2679	ldr	x5, [x2, #:lo12:.LANCHOR96]
2680.L297:
2681	and	w2, w3, 65535
2682	cmp	w2, w1
2683	bcc	.L299
2684	bne	.L298
2685	and	x3, x3, 65535
2686	strh	w0, [x5, x3, lsl 1]
2687	ldrh	w0, [x4, #:lo12:.LANCHOR95]
2688	add	w0, w0, 1
2689	strh	w0, [x4, #:lo12:.LANCHOR95]
2690	b	.L298
2691.L299:
2692	add	x3, x3, 1
2693	add	x2, x5, x3, lsl 1
2694	ldrh	w2, [x2, -2]
2695	cmp	w2, w7
2696	bne	.L297
2697.L298:
2698	adrp	x4, .LANCHOR97
2699	adrp	x1, .LANCHOR98
2700	mov	w3, 12
2701	ldrh	w0, [x4, #:lo12:.LANCHOR97]
2702	ldr	x5, [x1, #:lo12:.LANCHOR98]
2703	umull	x3, w0, w3
2704	add	w0, w0, 1
2705	add	x7, x5, x3
2706	stp	w10, w8, [x7, 4]
2707	str	w6, [x5, x3]
2708	strh	w0, [x4, #:lo12:.LANCHOR97]
2709	ldp	x29, x30, [sp], 16
2710	ret
2711	.size	FtlGcUpdatePage, .-FtlGcUpdatePage
2712	.section	.text.FtlGcRefreshBlock,"ax",@progbits
2713	.align	2
2714	.global	FtlGcRefreshBlock
2715	.type	FtlGcRefreshBlock, %function
2716FtlGcRefreshBlock:
2717	stp	x29, x30, [sp, -32]!
2718	add	x29, sp, 0
2719	str	x19, [sp, 16]
2720	and	w19, w0, 65535
2721	mov	w1, w19
2722	adrp	x0, .LC73
2723	add	x0, x0, :lo12:.LC73
2724	bl	printf
2725	adrp	x3, .LANCHOR99
2726	ldrh	w4, [x3, #:lo12:.LANCHOR99]
2727	cmp	w19, w4
2728	beq	.L302
2729	adrp	x0, .LANCHOR100
2730	ldrh	w2, [x0, #:lo12:.LANCHOR100]
2731	cmp	w19, w2
2732	beq	.L302
2733	mov	w1, 65535
2734	cmp	w4, w1
2735	bne	.L303
2736	strh	w19, [x3, #:lo12:.LANCHOR99]
2737.L302:
2738	mov	w0, 0
2739	ldr	x19, [sp, 16]
2740	ldp	x29, x30, [sp], 32
2741	ret
2742.L303:
2743	cmp	w2, w1
2744	bne	.L302
2745	strh	w19, [x0, #:lo12:.LANCHOR100]
2746	b	.L302
2747	.size	FtlGcRefreshBlock, .-FtlGcRefreshBlock
2748	.section	.text.FtlGcMarkBadPhyBlk,"ax",@progbits
2749	.align	2
2750	.global	FtlGcMarkBadPhyBlk
2751	.type	FtlGcMarkBadPhyBlk, %function
2752FtlGcMarkBadPhyBlk:
2753	stp	x29, x30, [sp, -48]!
2754	add	x29, sp, 0
2755	stp	x19, x20, [sp, 16]
2756	and	w20, w0, 65535
2757	adrp	x19, .LANCHOR101
2758	str	x21, [sp, 32]
2759	mov	w0, w20
2760	bl	P2V_block_in_plane
2761	ldrh	w1, [x19, #:lo12:.LANCHOR101]
2762	mov	w2, w20
2763	mov	w21, w0
2764	adrp	x0, .LC74
2765	add	x0, x0, :lo12:.LC74
2766	bl	printf
2767	mov	w0, w21
2768	bl	FtlGcRefreshBlock
2769	ldrh	w0, [x19, #:lo12:.LANCHOR101]
2770	adrp	x2, .LANCHOR102
2771	add	x2, x2, :lo12:.LANCHOR102
2772	mov	x1, 0
2773.L306:
2774	cmp	w0, w1, uxth
2775	bhi	.L308
2776	cmp	w0, 15
2777	bhi	.L307
2778	add	w1, w0, 1
2779	strh	w1, [x19, #:lo12:.LANCHOR101]
2780	adrp	x1, .LANCHOR102
2781	add	x1, x1, :lo12:.LANCHOR102
2782	strh	w20, [x1, w0, sxtw 1]
2783	b	.L307
2784.L308:
2785	add	x1, x1, 1
2786	add	x3, x2, x1, lsl 1
2787	ldrh	w3, [x3, -2]
2788	cmp	w3, w20
2789	bne	.L306
2790.L307:
2791	mov	w0, 0
2792	ldr	x21, [sp, 32]
2793	ldp	x19, x20, [sp, 16]
2794	ldp	x29, x30, [sp], 48
2795	ret
2796	.size	FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
2797	.section	.text.FtlGcReFreshBadBlk,"ax",@progbits
2798	.align	2
2799	.global	FtlGcReFreshBadBlk
2800	.type	FtlGcReFreshBadBlk, %function
2801FtlGcReFreshBadBlk:
2802	adrp	x0, .LANCHOR101
2803	ldrh	w0, [x0, #:lo12:.LANCHOR101]
2804	cbz	w0, .L317
2805	adrp	x1, .LANCHOR99
2806	ldrh	w2, [x1, #:lo12:.LANCHOR99]
2807	mov	w1, 65535
2808	cmp	w2, w1
2809	bne	.L317
2810	stp	x29, x30, [sp, -32]!
2811	add	x29, sp, 0
2812	str	x19, [sp, 16]
2813	adrp	x19, .LANCHOR103
2814	ldrh	w1, [x19, #:lo12:.LANCHOR103]
2815	cmp	w1, w0
2816	bcc	.L312
2817	strh	wzr, [x19, #:lo12:.LANCHOR103]
2818.L312:
2819	ldrh	w1, [x19, #:lo12:.LANCHOR103]
2820	adrp	x0, .LANCHOR102
2821	add	x0, x0, :lo12:.LANCHOR102
2822	ldrh	w0, [x0, x1, lsl 1]
2823	bl	P2V_block_in_plane
2824	bl	FtlGcRefreshBlock
2825	ldrh	w0, [x19, #:lo12:.LANCHOR103]
2826	add	w0, w0, 1
2827	strh	w0, [x19, #:lo12:.LANCHOR103]
2828	mov	w0, 0
2829	ldr	x19, [sp, 16]
2830	ldp	x29, x30, [sp], 32
2831	ret
2832.L317:
2833	mov	w0, 0
2834	ret
2835	.size	FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
2836	.section	.text.ftl_malloc,"ax",@progbits
2837	.align	2
2838	.global	ftl_malloc
2839	.type	ftl_malloc, %function
2840ftl_malloc:
2841	mov	w1, 0
2842	sxtw	x0, w0
2843	b	kmalloc
2844	.size	ftl_malloc, .-ftl_malloc
2845	.section	.text.ftl_free,"ax",@progbits
2846	.align	2
2847	.global	ftl_free
2848	.type	ftl_free, %function
2849ftl_free:
2850	b	free
2851	.size	ftl_free, .-ftl_free
2852	.section	.text.rknand_print_hex,"ax",@progbits
2853	.align	2
2854	.global	rknand_print_hex
2855	.type	rknand_print_hex, %function
2856rknand_print_hex:
2857	stp	x29, x30, [sp, -96]!
2858	add	x29, sp, 0
2859	stp	x21, x22, [sp, 32]
2860	mov	x22, x1
2861	stp	x23, x24, [sp, 48]
2862	adrp	x24, .LC75
2863	stp	x25, x26, [sp, 64]
2864	mov	w23, w2
2865	stp	x27, x28, [sp, 80]
2866	adrp	x25, .LC77
2867	mov	x28, x0
2868	mov	w27, w3
2869	add	x24, x24, :lo12:.LC75
2870	add	x25, x25, :lo12:.LC77
2871	stp	x19, x20, [sp, 16]
2872	mov	w21, 0
2873	mov	x19, 0
2874	mov	w20, 0
2875	adrp	x26, .LC76
2876.L323:
2877	cmp	w27, w19
2878	bhi	.L329
2879	ldp	x19, x20, [sp, 16]
2880	adrp	x0, .LC78
2881	ldp	x21, x22, [sp, 32]
2882	add	x0, x0, :lo12:.LC78
2883	ldp	x23, x24, [sp, 48]
2884	ldp	x25, x26, [sp, 64]
2885	ldp	x27, x28, [sp, 80]
2886	ldp	x29, x30, [sp], 96
2887	b	printf
2888.L329:
2889	cbnz	w20, .L324
2890	mov	w2, w21
2891	mov	x1, x28
2892	mov	x0, x24
2893	bl	printf
2894.L324:
2895	cmp	w23, 4
2896	bne	.L325
2897	ldr	w1, [x22, x19, lsl 2]
2898.L332:
2899	add	x0, x26, :lo12:.LC76
2900.L331:
2901	bl	printf
2902	add	w20, w20, 1
2903	cmp	w20, 15
2904	bls	.L328
2905	mov	w20, 0
2906	adrp	x0, .LC78
2907	add	x0, x0, :lo12:.LC78
2908	bl	printf
2909.L328:
2910	add	x19, x19, 1
2911	add	w21, w21, w23
2912	b	.L323
2913.L325:
2914	cmp	w23, 2
2915	bne	.L327
2916	ldrh	w1, [x22, x19, lsl 1]
2917	b	.L332
2918.L327:
2919	ldrb	w1, [x22, x19]
2920	mov	x0, x25
2921	b	.L331
2922	.size	rknand_print_hex, .-rknand_print_hex
2923	.section	.text.FlashEraseBlocks,"ax",@progbits
2924	.align	2
2925	.global	FlashEraseBlocks
2926	.type	FlashEraseBlocks, %function
2927FlashEraseBlocks:
2928	stp	x29, x30, [sp, -112]!
2929	add	x29, sp, 0
2930	stp	x19, x20, [sp, 16]
2931	mov	x20, x0
2932	adrp	x0, .LANCHOR0
2933	add	x1, x0, :lo12:.LANCHOR0
2934	stp	x23, x24, [sp, 48]
2935	add	x19, x20, 4
2936	stp	x21, x22, [sp, 32]
2937	ubfiz	x21, x2, 5, 32
2938	ldrh	w24, [x1, 12]
2939	add	x23, x21, 4
2940	stp	x25, x26, [sp, 64]
2941	add	x23, x20, x23
2942	adrp	x25, .LANCHOR105
2943	str	x27, [sp, 80]
2944	lsl	w26, w24, 3
2945	mov	x22, x0
2946	add	x27, x25, :lo12:.LANCHOR105
2947.L334:
2948	cmp	x19, x23
2949	beq	.L348
2950	ldr	w0, [x19]
2951	add	x2, x29, 104
2952	add	x1, x29, 108
2953	bl	l2p_addr_tran.isra.0
2954	ldr	w0, [x29, 104]
2955	cbnz	w0, .L335
2956	ldr	w1, [x29, 108]
2957	cmp	w26, w1
2958	bls	.L335
2959	mov	x19, x20
2960	add	x21, x20, x21
2961	adrp	x22, .LC79
2962	adrp	x20, .LANCHOR104
2963	add	x22, x22, :lo12:.LC79
2964	add	x20, x20, :lo12:.LANCHOR104
2965	mov	w23, -1
2966.L336:
2967	cmp	x19, x21
2968	bne	.L337
2969.L348:
2970	ldp	x19, x20, [sp, 16]
2971	mov	w0, 0
2972	ldp	x21, x22, [sp, 32]
2973	ldp	x23, x24, [sp, 48]
2974	ldp	x25, x26, [sp, 64]
2975	ldr	x27, [sp, 80]
2976	ldp	x29, x30, [sp], 112
2977	ret
2978.L337:
2979	ldr	w2, [x29, 108]
2980	mov	x1, x20
2981	str	w23, [x19]
2982	mov	x0, x22
2983	add	x19, x19, 32
2984	bl	printf
2985	ldr	x1, [x19, -24]
2986	mov	w3, 16
2987	mov	w2, 4
2988	adrp	x0, .LC80
2989	add	x0, x0, :lo12:.LC80
2990	bl	rknand_print_hex
2991	ldr	x1, [x19, -16]
2992	mov	w3, 4
2993	adrp	x0, .LC81
2994	mov	w2, w3
2995	add	x0, x0, :lo12:.LC81
2996	bl	rknand_print_hex
2997	b	.L336
2998.L335:
2999	add	x1, x25, :lo12:.LANCHOR105
3000	ldr	x2, [x1, 8]
3001	ldr	w1, [x29, 108]
3002	blr	x2
3003	cbnz	w0, .L338
3004	str	wzr, [x19, -4]
3005.L339:
3006	add	x0, x22, :lo12:.LANCHOR0
3007	ldrh	w0, [x0, 14]
3008	cmp	w0, 4
3009	bne	.L341
3010	ldrb	w0, [x29, 104]
3011	ldr	x2, [x27, 8]
3012	ldr	w1, [x29, 108]
3013	add	w1, w24, w1
3014	blr	x2
3015	cbz	w0, .L341
3016	mov	w0, -1
3017	str	w0, [x19, -4]
3018.L341:
3019	add	x19, x19, 32
3020	b	.L334
3021.L338:
3022	mov	w0, -1
3023	str	w0, [x19, -4]
3024	b	.L339
3025	.size	FlashEraseBlocks, .-FlashEraseBlocks
3026	.section	.text.FtlFreeSysBlkQueueIn,"ax",@progbits
3027	.align	2
3028	.global	FtlFreeSysBlkQueueIn
3029	.type	FtlFreeSysBlkQueueIn, %function
3030FtlFreeSysBlkQueueIn:
3031	stp	x29, x30, [sp, -48]!
3032	add	x29, sp, 0
3033	stp	x19, x20, [sp, 16]
3034	and	w20, w0, 65535
3035	str	x21, [sp, 32]
3036	sub	w2, w20, #1
3037	mov	w0, 65533
3038	cmp	w0, w2, uxth
3039	bcc	.L350
3040	adrp	x0, .LANCHOR38
3041	add	x2, x0, :lo12:.LANCHOR38
3042	mov	x19, x0
3043	ldrh	w2, [x2, 6]
3044	cmp	w2, 1024
3045	beq	.L350
3046	and	w1, w1, 65535
3047	cbz	w1, .L352
3048	mov	w0, w20
3049	bl	P2V_block_in_plane
3050	and	w21, w0, 65535
3051	adrp	x0, .LANCHOR106
3052	lsl	w1, w20, 10
3053	mov	w2, 1
3054	ldr	x0, [x0, #:lo12:.LANCHOR106]
3055	str	w1, [x0, 4]
3056	mov	w1, w2
3057	bl	FlashEraseBlocks
3058	adrp	x1, .LANCHOR43
3059	ubfiz	x0, x21, 1, 16
3060	ldr	x2, [x1, #:lo12:.LANCHOR43]
3061	ldrh	w1, [x2, x0]
3062	add	w1, w1, 1
3063	strh	w1, [x2, x0]
3064	adrp	x1, .LANCHOR75
3065	ldr	w0, [x1, #:lo12:.LANCHOR75]
3066	add	w0, w0, 1
3067	str	w0, [x1, #:lo12:.LANCHOR75]
3068.L352:
3069	add	x0, x19, :lo12:.LANCHOR38
3070	ldrh	w1, [x0, 6]
3071	add	w1, w1, 1
3072	strh	w1, [x0, 6]
3073	ldrh	w1, [x0, 4]
3074	add	x2, x0, x1, sxtw 1
3075	add	w1, w1, 1
3076	and	w1, w1, 1023
3077	strh	w1, [x0, 4]
3078	strh	w20, [x2, 8]
3079.L350:
3080	ldp	x19, x20, [sp, 16]
3081	ldr	x21, [sp, 32]
3082	ldp	x29, x30, [sp], 48
3083	ret
3084	.size	FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
3085	.section	.text.FtlFreeSysBlkQueueOut,"ax",@progbits
3086	.align	2
3087	.global	FtlFreeSysBlkQueueOut
3088	.type	FtlFreeSysBlkQueueOut, %function
3089FtlFreeSysBlkQueueOut:
3090	adrp	x0, .LANCHOR38
3091	add	x1, x0, :lo12:.LANCHOR38
3092	stp	x29, x30, [sp, -32]!
3093	add	x29, sp, 0
3094	ldrh	w2, [x1, 6]
3095	stp	x19, x20, [sp, 16]
3096	mov	x19, x0
3097	cbz	w2, .L364
3098	ldrh	w0, [x1, 2]
3099	sub	w2, w2, #1
3100	strh	w2, [x1, 6]
3101	mov	w2, 1
3102	add	x3, x1, x0, sxtw 1
3103	add	w0, w0, 1
3104	and	w0, w0, 1023
3105	strh	w0, [x1, 2]
3106	adrp	x0, .LANCHOR106
3107	ldrh	w20, [x3, 8]
3108	ldr	x0, [x0, #:lo12:.LANCHOR106]
3109	lsl	w1, w20, 10
3110	str	w1, [x0, 4]
3111	mov	w1, w2
3112	bl	FlashEraseBlocks
3113	adrp	x1, .LANCHOR75
3114	ldr	w0, [x1, #:lo12:.LANCHOR75]
3115	add	w0, w0, 1
3116	str	w0, [x1, #:lo12:.LANCHOR75]
3117.L361:
3118	sub	w0, w20, #1
3119	mov	w1, 65533
3120	cmp	w1, w0, uxth
3121	bcs	.L362
3122	add	x0, x19, :lo12:.LANCHOR38
3123	mov	w1, w20
3124	ldrh	w2, [x0, 6]
3125	adrp	x0, .LC82
3126	add	x0, x0, :lo12:.LC82
3127	bl	printf
3128.L363:
3129	b	.L363
3130.L364:
3131	mov	w20, 65535
3132	b	.L361
3133.L362:
3134	mov	w0, w20
3135	ldp	x19, x20, [sp, 16]
3136	ldp	x29, x30, [sp], 32
3137	ret
3138	.size	FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
3139	.section	.text.ftl_map_blk_alloc_new_blk,"ax",@progbits
3140	.align	2
3141	.global	ftl_map_blk_alloc_new_blk
3142	.type	ftl_map_blk_alloc_new_blk, %function
3143ftl_map_blk_alloc_new_blk:
3144	stp	x29, x30, [sp, -48]!
3145	add	x29, sp, 0
3146	stp	x19, x20, [sp, 16]
3147	mov	x19, x0
3148	ldrh	w1, [x0, 10]
3149	mov	w20, 0
3150	ldr	x0, [x0, 16]
3151	str	x21, [sp, 32]
3152.L367:
3153	cmp	w20, w1
3154	beq	.L371
3155	mov	x21, x0
3156	ldrh	w2, [x0], 2
3157	cbnz	w2, .L368
3158	bl	FtlFreeSysBlkQueueOut
3159	and	w1, w0, 65535
3160	strh	w0, [x21]
3161	sub	w2, w1, #1
3162	mov	w0, 65533
3163	cmp	w0, w2, uxth
3164	bcs	.L369
3165	adrp	x0, .LANCHOR38+6
3166	ldrh	w2, [x0, #:lo12:.LANCHOR38+6]
3167	adrp	x0, .LC83
3168	add	x0, x0, :lo12:.LC83
3169	bl	printf
3170.L370:
3171	b	.L370
3172.L369:
3173	ldr	w0, [x19, 48]
3174	strh	wzr, [x19, 2]
3175	add	w0, w0, 1
3176	str	w0, [x19, 48]
3177	ldrh	w0, [x19, 8]
3178	strh	w20, [x19]
3179	add	w0, w0, 1
3180	strh	w0, [x19, 8]
3181.L371:
3182	ldrh	w0, [x19, 10]
3183	cmp	w0, w20
3184	bhi	.L373
3185	adrp	x1, .LANCHOR107
3186	adrp	x0, .LC1
3187	mov	w2, 578
3188	add	x1, x1, :lo12:.LANCHOR107
3189	add	x0, x0, :lo12:.LC1
3190	bl	printf
3191.L373:
3192	mov	w0, 0
3193	ldr	x21, [sp, 32]
3194	ldp	x19, x20, [sp, 16]
3195	ldp	x29, x30, [sp], 48
3196	ret
3197.L368:
3198	add	w20, w20, 1
3199	and	w20, w20, 65535
3200	b	.L367
3201	.size	ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
3202	.section	.text.ftl_memset,"ax",@progbits
3203	.align	2
3204	.global	ftl_memset
3205	.type	ftl_memset, %function
3206ftl_memset:
3207	uxtw	x2, w2
3208	b	memset
3209	.size	ftl_memset, .-ftl_memset
3210	.section	.text.FtlMemInit,"ax",@progbits
3211	.align	2
3212	.global	FtlMemInit
3213	.type	FtlMemInit, %function
3214FtlMemInit:
3215	stp	x29, x30, [sp, -208]!
3216	adrp	x0, .LANCHOR70
3217	mov	w1, 65535
3218	add	x29, sp, 0
3219	str	wzr, [x0, #:lo12:.LANCHOR70]
3220	adrp	x0, .LANCHOR71
3221	stp	x19, x20, [sp, 16]
3222	adrp	x19, .LANCHOR21
3223	str	wzr, [x0, #:lo12:.LANCHOR71]
3224	adrp	x0, .LANCHOR67
3225	stp	x21, x22, [sp, 32]
3226	adrp	x22, .LANCHOR3
3227	str	wzr, [x0, #:lo12:.LANCHOR67]
3228	adrp	x0, .LANCHOR64
3229	stp	x23, x24, [sp, 48]
3230	adrp	x21, .LANCHOR23
3231	str	wzr, [x0, #:lo12:.LANCHOR64]
3232	adrp	x0, .LANCHOR63
3233	stp	x25, x26, [sp, 64]
3234	adrp	x24, .LANCHOR118
3235	str	wzr, [x0, #:lo12:.LANCHOR63]
3236	adrp	x0, .LANCHOR65
3237	stp	x27, x28, [sp, 80]
3238	adrp	x23, .LANCHOR124
3239	str	wzr, [x0, #:lo12:.LANCHOR65]
3240	adrp	x0, .LANCHOR66
3241	adrp	x25, .LANCHOR42
3242	adrp	x27, .LANCHOR129
3243	str	wzr, [x0, #:lo12:.LANCHOR66]
3244	adrp	x0, .LANCHOR62
3245	adrp	x26, .LANCHOR130
3246	str	wzr, [x0, #:lo12:.LANCHOR62]
3247	adrp	x0, .LANCHOR72
3248	str	wzr, [x0, #:lo12:.LANCHOR72]
3249	adrp	x0, .LANCHOR73
3250	str	wzr, [x0, #:lo12:.LANCHOR73]
3251	adrp	x0, .LANCHOR75
3252	str	wzr, [x0, #:lo12:.LANCHOR75]
3253	adrp	x0, .LANCHOR76
3254	str	wzr, [x0, #:lo12:.LANCHOR76]
3255	adrp	x0, .LANCHOR77
3256	str	wzr, [x0, #:lo12:.LANCHOR77]
3257	adrp	x0, .LANCHOR108
3258	str	wzr, [x0, #:lo12:.LANCHOR108]
3259	adrp	x0, .LANCHOR87
3260	str	wzr, [x0, #:lo12:.LANCHOR87]
3261	adrp	x0, .LANCHOR109
3262	str	w1, [x0, #:lo12:.LANCHOR109]
3263	adrp	x0, .LANCHOR110
3264	adrp	x1, .LANCHOR99
3265	str	wzr, [x0, #:lo12:.LANCHOR110]
3266	adrp	x0, .LANCHOR84
3267	str	wzr, [x0, #:lo12:.LANCHOR84]
3268	adrp	x0, .LANCHOR111
3269	str	wzr, [x0, #:lo12:.LANCHOR111]
3270	mov	w0, -1
3271	strh	w0, [x1, #:lo12:.LANCHOR99]
3272	adrp	x1, .LANCHOR100
3273	strh	w0, [x1, #:lo12:.LANCHOR100]
3274	adrp	x0, .LANCHOR82
3275	mov	w1, 32
3276	strh	w1, [x0, #:lo12:.LANCHOR82]
3277	adrp	x0, .LANCHOR83
3278	mov	w1, 128
3279	strh	w1, [x0, #:lo12:.LANCHOR83]
3280	adrp	x0, .LANCHOR85
3281	strh	wzr, [x0, #:lo12:.LANCHOR85]
3282	adrp	x0, .LANCHOR101
3283	strh	wzr, [x0, #:lo12:.LANCHOR101]
3284	adrp	x0, .LANCHOR103
3285	strh	wzr, [x0, #:lo12:.LANCHOR103]
3286	ldrh	w0, [x19, #:lo12:.LANCHOR21]
3287	lsl	w0, w0, 1
3288	bl	ftl_malloc
3289	adrp	x1, .LANCHOR96
3290	str	x0, [x1, #:lo12:.LANCHOR96]
3291	mov	w0, 12
3292	ldrh	w1, [x19, #:lo12:.LANCHOR21]
3293	mul	w0, w1, w0
3294	bl	ftl_malloc
3295	ldrh	w19, [x22, #:lo12:.LANCHOR3]
3296	adrp	x5, .LANCHOR98
3297	str	x5, [x29, 104]
3298	lsl	w20, w19, 5
3299	lsl	w19, w19, 7
3300	str	x0, [x5, #:lo12:.LANCHOR98]
3301	mov	w0, w19
3302	bl	ftl_malloc
3303	adrp	x15, .LANCHOR112
3304	str	x15, [x29, 112]
3305	str	x0, [x15, #:lo12:.LANCHOR112]
3306	mov	w0, w20
3307	bl	ftl_malloc
3308	adrp	x11, .LANCHOR113
3309	str	x11, [x29, 120]
3310	str	x0, [x11, #:lo12:.LANCHOR113]
3311	mov	w0, w19
3312	bl	ftl_malloc
3313	adrp	x14, .LANCHOR114
3314	str	x14, [x29, 128]
3315	str	x0, [x14, #:lo12:.LANCHOR114]
3316	mov	w0, w20
3317	bl	ftl_malloc
3318	adrp	x13, .LANCHOR106
3319	str	x13, [x29, 136]
3320	str	x0, [x13, #:lo12:.LANCHOR106]
3321	mov	w0, w20
3322	bl	ftl_malloc
3323	adrp	x20, .LANCHOR94
3324	adrp	x12, .LANCHOR93
3325	ldrh	w19, [x21, #:lo12:.LANCHOR23]
3326	str	x12, [x29, 144]
3327	str	x0, [x12, #:lo12:.LANCHOR93]
3328	ldrh	w0, [x22, #:lo12:.LANCHOR3]
3329	lsl	w0, w0, 1
3330	add	w0, w0, 1
3331	str	w0, [x20, #:lo12:.LANCHOR94]
3332	mov	w0, w19
3333	bl	ftl_malloc
3334	adrp	x10, .LANCHOR115
3335	str	x10, [x29, 152]
3336	str	x0, [x10, #:lo12:.LANCHOR115]
3337	mov	w0, w19
3338	bl	ftl_malloc
3339	adrp	x8, .LANCHOR116
3340	str	x8, [x29, 160]
3341	str	x0, [x8, #:lo12:.LANCHOR116]
3342	mov	w0, w19
3343	bl	ftl_malloc
3344	adrp	x7, .LANCHOR117
3345	str	x7, [x29, 168]
3346	str	x0, [x7, #:lo12:.LANCHOR117]
3347	ldr	w0, [x20, #:lo12:.LANCHOR94]
3348	mul	w0, w19, w0
3349	bl	ftl_malloc
3350	adrp	x6, .LANCHOR91
3351	str	x6, [x29, 176]
3352	str	x0, [x6, #:lo12:.LANCHOR91]
3353	mov	w0, w19
3354	bl	ftl_malloc
3355	str	x0, [x24, #:lo12:.LANCHOR118]
3356	mov	w0, w19
3357	bl	ftl_malloc
3358	adrp	x4, .LANCHOR119
3359	ldr	w2, [x20, #:lo12:.LANCHOR94]
3360	str	x4, [x29, 184]
3361	str	x0, [x4, #:lo12:.LANCHOR119]
3362	mov	w0, 24
3363	mul	w0, w2, w0
3364	bl	ftl_malloc
3365	adrp	x3, .LANCHOR90
3366	str	x3, [x29, 192]
3367	str	x0, [x3, #:lo12:.LANCHOR90]
3368	mov	w0, w19
3369	bl	ftl_malloc
3370	adrp	x2, .LANCHOR120
3371	str	x0, [x2, #:lo12:.LANCHOR120]
3372	mov	w0, w19
3373	bl	ftl_malloc
3374	adrp	x19, .LANCHOR24
3375	adrp	x2, .LANCHOR121
3376	str	x0, [x2, #:lo12:.LANCHOR121]
3377	adrp	x0, .LANCHOR12
3378	ldrh	w0, [x0, #:lo12:.LANCHOR12]
3379	lsl	w0, w0, 2
3380	bl	ftl_malloc
3381	adrp	x2, .LANCHOR122
3382	ldrh	w28, [x19, #:lo12:.LANCHOR24]
3383	str	x0, [x2, #:lo12:.LANCHOR122]
3384	ldrh	w0, [x22, #:lo12:.LANCHOR3]
3385	adrp	x22, .LANCHOR92
3386	mul	w28, w28, w0
3387	mov	w0, w28
3388	bl	ftl_malloc
3389	adrp	x1, .LANCHOR123
3390	str	x0, [x1, #:lo12:.LANCHOR123]
3391	lsl	w0, w28, 2
3392	bl	ftl_malloc
3393	str	x0, [x23, #:lo12:.LANCHOR124]
3394	ldrh	w1, [x19, #:lo12:.LANCHOR24]
3395	adrp	x28, .LANCHOR125
3396	ldr	w0, [x20, #:lo12:.LANCHOR94]
3397	adrp	x20, .LANCHOR6
3398	mul	w0, w1, w0
3399	bl	ftl_malloc
3400	str	x0, [x22, #:lo12:.LANCHOR92]
3401	ldrh	w0, [x20, #:lo12:.LANCHOR6]
3402	ubfiz	w0, w0, 1, 15
3403	strh	w0, [x28, #:lo12:.LANCHOR125]
3404	and	w0, w0, 65534
3405	bl	ftl_malloc
3406	adrp	x1, .LANCHOR126
3407	str	x0, [x1, #:lo12:.LANCHOR126]
3408	ldrh	w0, [x28, #:lo12:.LANCHOR125]
3409	add	x0, x0, 547
3410	lsr	x0, x0, 9
3411	strh	w0, [x28, #:lo12:.LANCHOR125]
3412	lsl	w0, w0, 9
3413	bl	ftl_malloc
3414	adrp	x1, .LANCHOR127
3415	ldrh	w28, [x20, #:lo12:.LANCHOR6]
3416	str	x0, [x1, #:lo12:.LANCHOR127]
3417	adrp	x1, .LANCHOR43
3418	lsl	w28, w28, 1
3419	add	x0, x0, 32
3420	str	x0, [x1, #:lo12:.LANCHOR43]
3421	mov	w0, w28
3422	bl	ftl_malloc
3423	adrp	x1, .LANCHOR128
3424	str	x0, [x1, #:lo12:.LANCHOR128]
3425	mov	w0, w28
3426	adrp	x28, .LANCHOR30
3427	bl	ftl_malloc
3428	str	x0, [x25, #:lo12:.LANCHOR42]
3429	ldr	w1, [x28, #:lo12:.LANCHOR30]
3430	lsl	w19, w1, 1
3431	mov	w0, w19
3432	bl	ftl_malloc
3433	str	x0, [x27, #:lo12:.LANCHOR129]
3434	mov	w0, w19
3435	bl	ftl_malloc
3436	str	x0, [x26, #:lo12:.LANCHOR130]
3437	ldrh	w0, [x20, #:lo12:.LANCHOR6]
3438	adrp	x19, .LANCHOR27
3439	lsr	w0, w0, 3
3440	add	w0, w0, 4
3441	bl	ftl_malloc
3442	adrp	x1, .LANCHOR1
3443	str	x0, [x1, #:lo12:.LANCHOR1]
3444	ldrh	w0, [x19, #:lo12:.LANCHOR27]
3445	lsl	w0, w0, 1
3446	bl	ftl_malloc
3447	adrp	x2, .LANCHOR36
3448	str	x0, [x2, #:lo12:.LANCHOR36]
3449	ldrh	w0, [x19, #:lo12:.LANCHOR27]
3450	lsl	w0, w0, 1
3451	bl	ftl_malloc
3452	adrp	x2, .LANCHOR131
3453	str	x0, [x2, #:lo12:.LANCHOR131]
3454	ldrh	w0, [x19, #:lo12:.LANCHOR27]
3455	adrp	x19, .LANCHOR43
3456	lsl	w0, w0, 2
3457	bl	ftl_malloc
3458	adrp	x1, .LANCHOR132
3459	str	x0, [x1, #:lo12:.LANCHOR132]
3460	adrp	x1, .LANCHOR28
3461	str	x1, [x29, 200]
3462	ldrh	w0, [x1, #:lo12:.LANCHOR28]
3463	lsl	w0, w0, 2
3464	bl	ftl_malloc
3465	ldr	x1, [x29, 200]
3466	adrp	x2, .LANCHOR133
3467	str	x0, [x2, #:lo12:.LANCHOR133]
3468	ldrh	w2, [x1, #:lo12:.LANCHOR28]
3469	mov	w1, 0
3470	lsl	w2, w2, 2
3471	bl	ftl_memset
3472	adrp	x0, .LANCHOR32
3473	ldrh	w0, [x0, #:lo12:.LANCHOR32]
3474	lsl	w0, w0, 2
3475	bl	ftl_malloc
3476	adrp	x1, .LANCHOR134
3477	str	x0, [x1, #:lo12:.LANCHOR134]
3478	ldr	w0, [x28, #:lo12:.LANCHOR30]
3479	adrp	x28, .LANCHOR33
3480	lsl	w0, w0, 2
3481	bl	ftl_malloc
3482	adrp	x1, .LANCHOR135
3483	str	x0, [x1, #:lo12:.LANCHOR135]
3484	ldrh	w0, [x28, #:lo12:.LANCHOR33]
3485	lsl	w0, w0, 4
3486	bl	ftl_malloc
3487	adrp	x1, .LANCHOR55
3488	str	x0, [x1, #:lo12:.LANCHOR55]
3489	ldrh	w1, [x28, #:lo12:.LANCHOR33]
3490	ldrh	w0, [x21, #:lo12:.LANCHOR23]
3491	adrp	x21, .LANCHOR10
3492	mul	w0, w1, w0
3493	bl	ftl_malloc
3494	adrp	x1, .LANCHOR136
3495	str	x0, [x1, #:lo12:.LANCHOR136]
3496	mov	w0, 6
3497	ldrh	w1, [x20, #:lo12:.LANCHOR6]
3498	adrp	x20, .LANCHOR137
3499	mul	w0, w1, w0
3500	bl	ftl_malloc
3501	adrp	x1, .LANCHOR40
3502	str	x0, [x1, #:lo12:.LANCHOR40]
3503	adrp	x0, .LANCHOR17
3504	ldrh	w1, [x21, #:lo12:.LANCHOR10]
3505	ldrh	w0, [x0, #:lo12:.LANCHOR17]
3506	add	w0, w0, 31
3507	asr	w0, w0, 5
3508	strh	w0, [x20, #:lo12:.LANCHOR137]
3509	mul	w0, w1, w0
3510	lsl	w0, w0, 2
3511	bl	ftl_malloc
3512	ldp	x5, x15, [x29, 104]
3513	adrp	x1, .LANCHOR37
3514	ldrh	w20, [x20, #:lo12:.LANCHOR137]
3515	add	x2, x1, :lo12:.LANCHOR37
3516	ldp	x11, x14, [x29, 120]
3517	mov	w30, w20
3518	ldp	x13, x12, [x29, 136]
3519	mov	x16, x5
3520	ldp	x10, x8, [x29, 152]
3521	mov	x5, x24
3522	ldp	x7, x6, [x29, 168]
3523	str	x0, [x2, 32]
3524	ldp	x4, x3, [x29, 184]
3525	adrp	x17, .LANCHOR96
3526	ldrh	w28, [x21, #:lo12:.LANCHOR10]
3527	add	x21, x2, 40
3528	adrp	x24, .LANCHOR123
3529	mov	x0, 1
3530	str	x19, [x29, 200]
3531.L377:
3532	cmp	w0, w28
3533	bcc	.L378
3534	mov	w2, 8
3535	sub	w2, w2, w0
3536	add	x2, x2, 1
3537	add	x1, x1, :lo12:.LANCHOR37
3538	mov	x19, 0
3539.L379:
3540	add	x19, x19, 1
3541	cmp	x19, x2
3542	bne	.L380
3543	ldr	x0, [x27, #:lo12:.LANCHOR129]
3544	cbnz	x0, .L381
3545.L383:
3546	adrp	x1, .LANCHOR138
3547	adrp	x0, .LC84
3548	add	x1, x1, :lo12:.LANCHOR138
3549	add	x0, x0, :lo12:.LC84
3550	bl	printf
3551	mov	w0, -1
3552.L376:
3553	ldp	x19, x20, [sp, 16]
3554	ldp	x21, x22, [sp, 32]
3555	ldp	x23, x24, [sp, 48]
3556	ldp	x25, x26, [sp, 64]
3557	ldp	x27, x28, [sp, 80]
3558	ldp	x29, x30, [sp], 208
3559	ret
3560.L378:
3561	ldr	x19, [x2, 32]
3562	add	w0, w0, 1
3563	add	x19, x19, x30, uxtw 2
3564	add	w30, w30, w20
3565	str	x19, [x21], 8
3566	b	.L377
3567.L380:
3568	add	x20, x0, x19
3569	add	x20, x1, x20, lsl 3
3570	str	xzr, [x20, 24]
3571	b	.L379
3572.L381:
3573	ldr	x0, [x26, #:lo12:.LANCHOR130]
3574	cbz	x0, .L383
3575	adrp	x0, .LANCHOR134
3576	ldr	x0, [x0, #:lo12:.LANCHOR134]
3577	cbz	x0, .L383
3578	adrp	x0, .LANCHOR135
3579	ldr	x0, [x0, #:lo12:.LANCHOR135]
3580	cbz	x0, .L383
3581	adrp	x0, .LANCHOR55
3582	ldr	x0, [x0, #:lo12:.LANCHOR55]
3583	cbz	x0, .L383
3584	adrp	x0, .LANCHOR136
3585	ldr	x0, [x0, #:lo12:.LANCHOR136]
3586	cbz	x0, .L383
3587	adrp	x0, .LANCHOR40
3588	ldr	x0, [x0, #:lo12:.LANCHOR40]
3589	cbz	x0, .L383
3590	adrp	x0, .LANCHOR37+32
3591	ldr	x0, [x0, #:lo12:.LANCHOR37+32]
3592	cbz	x0, .L383
3593	ldr	x0, [x25, #:lo12:.LANCHOR42]
3594	cbz	x0, .L383
3595	ldr	x0, [x17, #:lo12:.LANCHOR96]
3596	cbz	x0, .L383
3597	ldr	x0, [x16, #:lo12:.LANCHOR98]
3598	cbz	x0, .L383
3599	ldr	x0, [x15, #:lo12:.LANCHOR112]
3600	cbz	x0, .L383
3601	ldr	x0, [x14, #:lo12:.LANCHOR114]
3602	cbz	x0, .L383
3603	ldr	x0, [x13, #:lo12:.LANCHOR106]
3604	cbz	x0, .L383
3605	ldr	x0, [x12, #:lo12:.LANCHOR93]
3606	cbz	x0, .L383
3607	ldr	x0, [x11, #:lo12:.LANCHOR113]
3608	cbz	x0, .L383
3609	ldr	x0, [x10, #:lo12:.LANCHOR115]
3610	cbz	x0, .L383
3611	ldr	x0, [x8, #:lo12:.LANCHOR116]
3612	cbz	x0, .L383
3613	ldr	x0, [x7, #:lo12:.LANCHOR117]
3614	cbz	x0, .L383
3615	ldr	x0, [x6, #:lo12:.LANCHOR91]
3616	cbz	x0, .L383
3617	ldr	x0, [x5, #:lo12:.LANCHOR118]
3618	cbz	x0, .L383
3619	ldr	x0, [x4, #:lo12:.LANCHOR119]
3620	cbz	x0, .L383
3621	ldr	x0, [x3, #:lo12:.LANCHOR90]
3622	cbz	x0, .L383
3623	ldr	x0, [x24, #:lo12:.LANCHOR123]
3624	cbz	x0, .L383
3625	ldr	x0, [x23, #:lo12:.LANCHOR124]
3626	cbz	x0, .L383
3627	ldr	x0, [x22, #:lo12:.LANCHOR92]
3628	cbz	x0, .L383
3629	ldr	x0, [x29, 200]
3630	ldr	x0, [x0, #:lo12:.LANCHOR43]
3631	cbz	x0, .L383
3632	adrp	x0, .LANCHOR126
3633	ldr	x0, [x0, #:lo12:.LANCHOR126]
3634	cbz	x0, .L383
3635	adrp	x0, .LANCHOR36
3636	ldr	x0, [x0, #:lo12:.LANCHOR36]
3637	cbz	x0, .L383
3638	adrp	x0, .LANCHOR131
3639	ldr	x0, [x0, #:lo12:.LANCHOR131]
3640	cbz	x0, .L383
3641	adrp	x0, .LANCHOR132
3642	ldr	x0, [x0, #:lo12:.LANCHOR132]
3643	cbz	x0, .L383
3644	adrp	x0, .LANCHOR133
3645	ldr	x0, [x0, #:lo12:.LANCHOR133]
3646	cbz	x0, .L383
3647	mov	w0, 0
3648	b	.L376
3649	.size	FtlMemInit, .-FtlMemInit
3650	.section	.text.FtlBbt2Bitmap,"ax",@progbits
3651	.align	2
3652	.global	FtlBbt2Bitmap
3653	.type	FtlBbt2Bitmap, %function
3654FtlBbt2Bitmap:
3655	stp	x29, x30, [sp, -64]!
3656	add	x29, sp, 0
3657	stp	x21, x22, [sp, 32]
3658	mov	x22, x0
3659	adrp	x0, .LANCHOR137
3660	stp	x23, x24, [sp, 48]
3661	adrp	x21, .LANCHOR17
3662	adrp	x23, .LANCHOR139
3663	ldrh	w2, [x0, #:lo12:.LANCHOR137]
3664	add	x21, x21, :lo12:.LANCHOR17
3665	add	x23, x23, :lo12:.LANCHOR139
3666	stp	x19, x20, [sp, 16]
3667	mov	w24, 65535
3668	mov	x19, 0
3669	mov	x20, x1
3670	lsl	w2, w2, 2
3671	mov	w1, 0
3672	mov	x0, x20
3673	bl	ftl_memset
3674.L481:
3675	ldrh	w0, [x22, x19]
3676	cmp	w0, w24
3677	beq	.L478
3678	ldrh	w1, [x21]
3679	cmp	w1, w0
3680	bhi	.L480
3681	adrp	x0, .LC1
3682	mov	w2, 74
3683	mov	x1, x23
3684	add	x0, x0, :lo12:.LC1
3685	bl	printf
3686.L480:
3687	ldrh	w2, [x22, x19]
3688	mov	w1, 1
3689	add	x19, x19, 2
3690	cmp	x19, 1024
3691	ubfx	x0, x2, 5, 11
3692	lsl	w2, w1, w2
3693	lsl	x0, x0, 2
3694	ldr	w1, [x20, x0]
3695	orr	w1, w1, w2
3696	str	w1, [x20, x0]
3697	bne	.L481
3698.L478:
3699	ldp	x19, x20, [sp, 16]
3700	ldp	x21, x22, [sp, 32]
3701	ldp	x23, x24, [sp, 48]
3702	ldp	x29, x30, [sp], 64
3703	ret
3704	.size	FtlBbt2Bitmap, .-FtlBbt2Bitmap
3705	.section	.text.FtlBbtMemInit,"ax",@progbits
3706	.align	2
3707	.global	FtlBbtMemInit
3708	.type	FtlBbtMemInit, %function
3709FtlBbtMemInit:
3710	adrp	x1, .LANCHOR37
3711	add	x0, x1, :lo12:.LANCHOR37
3712	mov	w2, -1
3713	add	x0, x0, 12
3714	strh	w2, [x1, #:lo12:.LANCHOR37]
3715	mov	w2, 16
3716	strh	wzr, [x0, -6]
3717	mov	w1, 255
3718	b	ftl_memset
3719	.size	FtlBbtMemInit, .-FtlBbtMemInit
3720	.section	.text.FtlFreeSysBlkQueueInit,"ax",@progbits
3721	.align	2
3722	.global	FtlFreeSysBlkQueueInit
3723	.type	FtlFreeSysBlkQueueInit, %function
3724FtlFreeSysBlkQueueInit:
3725	stp	x29, x30, [sp, -16]!
3726	adrp	x1, .LANCHOR38
3727	add	x3, x1, :lo12:.LANCHOR38
3728	mov	w2, 2048
3729	add	x29, sp, 0
3730	strh	w0, [x1, #:lo12:.LANCHOR38]
3731	mov	w1, 0
3732	strh	wzr, [x3, 2]
3733	add	x0, x3, 8
3734	strh	wzr, [x3, 4]
3735	strh	wzr, [x3, 6]
3736	bl	ftl_memset
3737	mov	w0, 0
3738	ldp	x29, x30, [sp], 16
3739	ret
3740	.size	FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
3741	.section	.text.ftl_free_no_use_map_blk,"ax",@progbits
3742	.align	2
3743	.global	ftl_free_no_use_map_blk
3744	.type	ftl_free_no_use_map_blk, %function
3745ftl_free_no_use_map_blk:
3746	stp	x29, x30, [sp, -80]!
3747	mov	w1, 0
3748	add	x29, sp, 0
3749	stp	x19, x20, [sp, 16]
3750	mov	x19, x0
3751	ldrh	w2, [x0, 10]
3752	stp	x21, x22, [sp, 32]
3753	ldp	x21, x20, [x0, 32]
3754	stp	x23, x24, [sp, 48]
3755	ldr	x22, [x0, 16]
3756	lsl	w2, w2, 1
3757	mov	x0, x21
3758	str	x25, [sp, 64]
3759	bl	ftl_memset
3760	mov	w0, 0
3761.L489:
3762	ldrh	w1, [x19, 6]
3763	cmp	w1, w0
3764	bhi	.L493
3765	adrp	x0, .LANCHOR20
3766	mov	w23, 0
3767	mov	w20, 0
3768	ldrh	w1, [x0, #:lo12:.LANCHOR20]
3769	ldrh	w0, [x19]
3770	strh	w1, [x21, x0, lsl 1]
3771	ldrh	w24, [x21]
3772.L494:
3773	ldrh	w0, [x19, 10]
3774	cmp	w0, w20
3775	bhi	.L498
3776	mov	w0, w23
3777	ldr	x25, [sp, 64]
3778	ldp	x19, x20, [sp, 16]
3779	ldp	x21, x22, [sp, 32]
3780	ldp	x23, x24, [sp, 48]
3781	ldp	x29, x30, [sp], 80
3782	ret
3783.L493:
3784	ubfiz	x1, x0, 2, 16
3785	ldr	w2, [x20, x1]
3786	mov	w1, 0
3787	ubfx	x2, x2, 10, 16
3788.L490:
3789	ldrh	w3, [x19, 10]
3790	cmp	w3, w1
3791	bhi	.L492
3792	add	w0, w0, 1
3793	and	w0, w0, 65535
3794	b	.L489
3795.L492:
3796	ubfiz	x3, x1, 1, 16
3797	ldrh	w4, [x22, x3]
3798	cmp	w4, w2
3799	bne	.L491
3800	cbz	w2, .L491
3801	ldrh	w4, [x21, x3]
3802	add	w4, w4, 1
3803	strh	w4, [x21, x3]
3804.L491:
3805	add	w1, w1, 1
3806	and	w1, w1, 65535
3807	b	.L490
3808.L498:
3809	ubfiz	x0, x20, 1, 16
3810	ldrh	w1, [x21, x0]
3811	cmp	w24, w1
3812	bls	.L495
3813	add	x25, x22, x0
3814	ldrh	w0, [x22, x0]
3815	cbnz	w0, .L496
3816.L497:
3817	add	w20, w20, 1
3818	and	w20, w20, 65535
3819	b	.L494
3820.L495:
3821	cbnz	w1, .L497
3822	add	x25, x22, x0
3823	ldrh	w0, [x22, x0]
3824	cbz	w0, .L497
3825.L499:
3826	mov	w1, 1
3827	bl	FtlFreeSysBlkQueueIn
3828	strh	wzr, [x25]
3829	ldrh	w0, [x19, 8]
3830	sub	w0, w0, #1
3831	strh	w0, [x19, 8]
3832	b	.L497
3833.L500:
3834	mov	w24, 0
3835	b	.L499
3836.L496:
3837	mov	w23, w20
3838	cbz	w1, .L500
3839	mov	w24, w1
3840	b	.L497
3841	.size	ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
3842	.section	.text.FtlL2PDataInit,"ax",@progbits
3843	.align	2
3844	.global	FtlL2PDataInit
3845	.type	FtlL2PDataInit, %function
3846FtlL2PDataInit:
3847	stp	x29, x30, [sp, -64]!
3848	mov	w1, 0
3849	add	x29, sp, 0
3850	stp	x19, x20, [sp, 16]
3851	adrp	x19, .LANCHOR130
3852	adrp	x20, .LANCHOR30
3853	stp	x21, x22, [sp, 32]
3854	ldr	x0, [x19, #:lo12:.LANCHOR130]
3855	adrp	x22, .LANCHOR23
3856	ldr	w2, [x20, #:lo12:.LANCHOR30]
3857	adrp	x21, .LANCHOR33
3858	str	x23, [sp, 48]
3859	adrp	x23, .LANCHOR136
3860	lsl	w2, w2, 1
3861	bl	ftl_memset
3862	ldrh	w0, [x21, #:lo12:.LANCHOR33]
3863	mov	w1, 255
3864	ldrh	w2, [x22, #:lo12:.LANCHOR23]
3865	mul	w2, w2, w0
3866	ldr	x0, [x23, #:lo12:.LANCHOR136]
3867	bl	ftl_memset
3868	adrp	x0, .LANCHOR55
3869	ldrh	w3, [x21, #:lo12:.LANCHOR33]
3870	ldr	x6, [x23, #:lo12:.LANCHOR136]
3871	mov	x1, 0
3872	ldr	x0, [x0, #:lo12:.LANCHOR55]
3873	mov	w2, -1
3874	ldrh	w5, [x22, #:lo12:.LANCHOR23]
3875	add	x3, x0, x3, lsl 4
3876.L510:
3877	add	x4, x1, x5
3878	cmp	x0, x3
3879	bne	.L511
3880	adrp	x1, .LANCHOR140
3881	add	x0, x1, :lo12:.LANCHOR140
3882	ldp	x21, x22, [sp, 32]
3883	strh	w2, [x1, #:lo12:.LANCHOR140]
3884	ldr	w1, [x20, #:lo12:.LANCHOR30]
3885	strh	w1, [x0, 10]
3886	mov	w1, -3902
3887	strh	w1, [x0, 4]
3888	adrp	x1, .LANCHOR141
3889	ldr	x23, [sp, 48]
3890	strh	w2, [x0, 2]
3891	ldrh	w1, [x1, #:lo12:.LANCHOR141]
3892	strh	w1, [x0, 8]
3893	adrp	x1, .LANCHOR32
3894	ldrh	w1, [x1, #:lo12:.LANCHOR32]
3895	strh	w1, [x0, 6]
3896	adrp	x1, .LANCHOR129
3897	ldr	x1, [x1, #:lo12:.LANCHOR129]
3898	str	x1, [x0, 16]
3899	adrp	x1, .LANCHOR135
3900	ldr	x1, [x1, #:lo12:.LANCHOR135]
3901	str	x1, [x0, 24]
3902	ldr	x1, [x19, #:lo12:.LANCHOR130]
3903	ldp	x19, x20, [sp, 16]
3904	str	x1, [x0, 32]
3905	adrp	x1, .LANCHOR134
3906	ldr	x1, [x1, #:lo12:.LANCHOR134]
3907	str	x1, [x0, 40]
3908	ldp	x29, x30, [sp], 64
3909	ret
3910.L511:
3911	and	x1, x1, -4
3912	strh	w2, [x0]
3913	add	x1, x6, x1
3914	str	wzr, [x0, 4]
3915	str	x1, [x0, 8]
3916	add	x0, x0, 16
3917	mov	x1, x4
3918	b	.L510
3919	.size	FtlL2PDataInit, .-FtlL2PDataInit
3920	.section	.text.FtlVariablesInit,"ax",@progbits
3921	.align	2
3922	.global	FtlVariablesInit
3923	.type	FtlVariablesInit, %function
3924FtlVariablesInit:
3925	stp	x29, x30, [sp, -32]!
3926	adrp	x0, .LANCHOR142
3927	mov	w1, -1
3928	add	x29, sp, 0
3929	strh	w1, [x0, #:lo12:.LANCHOR142]
3930	adrp	x0, .LANCHOR143
3931	mov	w1, -1
3932	str	x19, [sp, 16]
3933	str	wzr, [x0, #:lo12:.LANCHOR143]
3934	adrp	x0, .LANCHOR144
3935	adrp	x19, .LANCHOR6
3936	str	wzr, [x0, #:lo12:.LANCHOR144]
3937	adrp	x0, .LANCHOR145
3938	str	w1, [x0, #:lo12:.LANCHOR145]
3939	adrp	x0, .LANCHOR35
3940	mov	w1, 0
3941	strh	wzr, [x0, #:lo12:.LANCHOR35]
3942	adrp	x0, .LANCHOR27
3943	ldrh	w2, [x0, #:lo12:.LANCHOR27]
3944	adrp	x0, .LANCHOR36
3945	ldr	x0, [x0, #:lo12:.LANCHOR36]
3946	lsl	w2, w2, 1
3947	bl	ftl_memset
3948	adrp	x0, .LANCHOR43
3949	ldrh	w2, [x19, #:lo12:.LANCHOR6]
3950	mov	w1, 0
3951	ldr	x0, [x0, #:lo12:.LANCHOR43]
3952	lsl	w2, w2, 1
3953	bl	ftl_memset
3954	adrp	x0, .LANCHOR126
3955	ldrh	w2, [x19, #:lo12:.LANCHOR6]
3956	mov	w1, 0
3957	ldr	x0, [x0, #:lo12:.LANCHOR126]
3958	lsl	w2, w2, 1
3959	bl	ftl_memset
3960	mov	w2, 48
3961	mov	w1, 0
3962	adrp	x0, .LANCHOR39
3963	add	x0, x0, :lo12:.LANCHOR39
3964	bl	ftl_memset
3965	mov	w2, 512
3966	mov	w1, 0
3967	adrp	x0, .LANCHOR81
3968	add	x0, x0, :lo12:.LANCHOR81
3969	bl	ftl_memset
3970	bl	FtlGcBufInit
3971	bl	FtlL2PDataInit
3972	ldr	x19, [sp, 16]
3973	mov	w0, 0
3974	ldp	x29, x30, [sp], 32
3975	ret
3976	.size	FtlVariablesInit, .-FtlVariablesInit
3977	.section	.text.SupperBlkListInit,"ax",@progbits
3978	.align	2
3979	.global	SupperBlkListInit
3980	.type	SupperBlkListInit, %function
3981SupperBlkListInit:
3982	stp	x29, x30, [sp, -96]!
3983	adrp	x0, .LANCHOR6
3984	mov	w1, 0
3985	add	x29, sp, 0
3986	ldrh	w2, [x0, #:lo12:.LANCHOR6]
3987	mov	w0, 6
3988	stp	x23, x24, [sp, 48]
3989	adrp	x24, .LANCHOR40
3990	stp	x19, x20, [sp, 16]
3991	adrp	x23, .LANCHOR45
3992	stp	x21, x22, [sp, 32]
3993	adrp	x22, .LANCHOR48
3994	mul	w2, w2, w0
3995	ldr	x0, [x24, #:lo12:.LANCHOR40]
3996	stp	x25, x26, [sp, 64]
3997	adrp	x25, .LANCHOR5
3998	str	x27, [sp, 80]
3999	adrp	x26, .LANCHOR13
4000	add	x25, x25, :lo12:.LANCHOR5
4001	add	x26, x26, :lo12:.LANCHOR13
4002	bl	ftl_memset
4003	mov	w21, 0
4004	adrp	x0, .LANCHOR47
4005	mov	w20, 0
4006	mov	w19, 0
4007	strh	wzr, [x23, #:lo12:.LANCHOR45]
4008	str	xzr, [x0, #:lo12:.LANCHOR47]
4009	adrp	x0, .LANCHOR41
4010	strh	wzr, [x22, #:lo12:.LANCHOR48]
4011	adrp	x27, .LANCHOR3
4012	str	xzr, [x0, #:lo12:.LANCHOR41]
4013	adrp	x0, .LANCHOR44
4014	str	xzr, [x0, #:lo12:.LANCHOR44]
4015.L516:
4016	ldrh	w0, [x25]
4017	cmp	w19, w0
4018	bcs	.L523
4019	adrp	x0, .LANCHOR19
4020	ldrh	w8, [x27, #:lo12:.LANCHOR3]
4021	mov	x6, 0
4022	mov	w5, 0
4023	ldrh	w7, [x0, #:lo12:.LANCHOR19]
4024	b	.L524
4025.L518:
4026	ldrb	w0, [x26, x6]
4027	mov	w1, w19
4028	bl	V2P_block
4029	bl	FtlBbmIsBadBlock
4030	cbnz	w0, .L517
4031	add	w5, w5, w7
4032	and	w5, w5, 65535
4033.L517:
4034	add	x6, x6, 1
4035.L524:
4036	cmp	w8, w6, uxth
4037	bhi	.L518
4038	cbz	w5, .L519
4039	mov	w0, 32768
4040	sdiv	w5, w0, w5
4041.L520:
4042	ldr	x1, [x24, #:lo12:.LANCHOR40]
4043	mov	w0, 6
4044	umaddl	x0, w19, w0, x1
4045	strh	w5, [x0, 4]
4046	adrp	x0, .LANCHOR51
4047	ldrh	w0, [x0, #:lo12:.LANCHOR51]
4048	cmp	w0, w19
4049	beq	.L521
4050	adrp	x0, .LANCHOR52
4051	ldrh	w0, [x0, #:lo12:.LANCHOR52]
4052	cmp	w0, w19
4053	beq	.L521
4054	adrp	x0, .LANCHOR53
4055	ldrh	w0, [x0, #:lo12:.LANCHOR53]
4056	cmp	w0, w19
4057	beq	.L521
4058	adrp	x1, .LANCHOR42
4059	ubfiz	x0, x19, 1, 16
4060	ldr	x1, [x1, #:lo12:.LANCHOR42]
4061	ldrh	w0, [x1, x0]
4062	cbnz	w0, .L522
4063	add	w21, w21, 1
4064	mov	w0, w19
4065	and	w21, w21, 65535
4066	bl	INSERT_FREE_LIST
4067.L521:
4068	add	w19, w19, 1
4069	and	w19, w19, 65535
4070	b	.L516
4071.L519:
4072	adrp	x1, .LANCHOR42
4073	ubfiz	x0, x19, 1, 16
4074	mov	w2, -1
4075	ldr	x1, [x1, #:lo12:.LANCHOR42]
4076	strh	w2, [x1, x0]
4077	b	.L520
4078.L522:
4079	add	w20, w20, 1
4080	mov	w0, w19
4081	and	w20, w20, 65535
4082	bl	INSERT_DATA_LIST
4083	b	.L521
4084.L523:
4085	strh	w20, [x23, #:lo12:.LANCHOR45]
4086	add	w20, w20, w21
4087	strh	w21, [x22, #:lo12:.LANCHOR48]
4088	cmp	w20, w0
4089	ble	.L525
4090	adrp	x1, .LANCHOR146
4091	adrp	x0, .LC1
4092	mov	w2, 2170
4093	add	x1, x1, :lo12:.LANCHOR146
4094	add	x0, x0, :lo12:.LC1
4095	bl	printf
4096.L525:
4097	mov	w0, 0
4098	ldr	x27, [sp, 80]
4099	ldp	x19, x20, [sp, 16]
4100	ldp	x21, x22, [sp, 32]
4101	ldp	x23, x24, [sp, 48]
4102	ldp	x25, x26, [sp, 64]
4103	ldp	x29, x30, [sp], 96
4104	ret
4105	.size	SupperBlkListInit, .-SupperBlkListInit
4106	.section	.text.FtlGcPageVarInit,"ax",@progbits
4107	.align	2
4108	.global	FtlGcPageVarInit
4109	.type	FtlGcPageVarInit, %function
4110FtlGcPageVarInit:
4111	stp	x29, x30, [sp, -32]!
4112	adrp	x0, .LANCHOR95
4113	mov	w1, 255
4114	add	x29, sp, 0
4115	strh	wzr, [x0, #:lo12:.LANCHOR95]
4116	adrp	x0, .LANCHOR97
4117	str	x19, [sp, 16]
4118	adrp	x19, .LANCHOR21
4119	strh	wzr, [x0, #:lo12:.LANCHOR97]
4120	adrp	x0, .LANCHOR96
4121	ldrh	w2, [x19, #:lo12:.LANCHOR21]
4122	ldr	x0, [x0, #:lo12:.LANCHOR96]
4123	lsl	w2, w2, 1
4124	bl	ftl_memset
4125	ldrh	w2, [x19, #:lo12:.LANCHOR21]
4126	mov	w0, 12
4127	mov	w1, 255
4128	mul	w2, w2, w0
4129	adrp	x0, .LANCHOR98
4130	ldr	x0, [x0, #:lo12:.LANCHOR98]
4131	bl	ftl_memset
4132	ldr	x19, [sp, 16]
4133	ldp	x29, x30, [sp], 32
4134	b	FtlGcBufInit
4135	.size	FtlGcPageVarInit, .-FtlGcPageVarInit
4136	.section	.text.FlashGetBadBlockList,"ax",@progbits
4137	.align	2
4138	.global	FlashGetBadBlockList
4139	.type	FlashGetBadBlockList, %function
4140FlashGetBadBlockList:
4141	stp	x29, x30, [sp, -32]!
4142	mov	w2, 256
4143	add	x29, sp, 0
4144	stp	x19, x20, [sp, 16]
4145	mov	x19, x0
4146	mov	w20, w1
4147	mov	w1, 255
4148	bl	ftl_memset
4149	adrp	x0, .LANCHOR105
4150	mov	w1, w20
4151	ldr	x2, [x0, #:lo12:.LANCHOR105]
4152	mov	x0, x19
4153	blr	x2
4154	and	w0, w0, 65535
4155	cmp	w0, 50
4156	bls	.L530
4157	mov	w2, 256
4158	mov	w1, 255
4159	mov	x0, x19
4160	bl	ftl_memset
4161	mov	w0, 0
4162.L530:
4163	adrp	x1, .LANCHOR0+14
4164	ldrh	w1, [x1, #:lo12:.LANCHOR0+14]
4165	cmp	w1, 4
4166	bne	.L534
4167	mov	x1, 0
4168.L532:
4169	cmp	w0, w1, uxth
4170	bhi	.L533
4171.L534:
4172	ldp	x19, x20, [sp, 16]
4173	ldp	x29, x30, [sp], 32
4174	ret
4175.L533:
4176	ldrh	w2, [x19, x1, lsl 1]
4177	lsr	w2, w2, 1
4178	strh	w2, [x19, x1, lsl 1]
4179	add	x1, x1, 1
4180	b	.L532
4181	.size	FlashGetBadBlockList, .-FlashGetBadBlockList
4182	.section	.text.ftl_memcpy,"ax",@progbits
4183	.align	2
4184	.global	ftl_memcpy
4185	.type	ftl_memcpy, %function
4186ftl_memcpy:
4187	uxtw	x2, w2
4188	b	memcpy
4189	.size	ftl_memcpy, .-ftl_memcpy
4190	.section	.text.FlashReadPages,"ax",@progbits
4191	.align	2
4192	.global	FlashReadPages
4193	.type	FlashReadPages, %function
4194FlashReadPages:
4195	stp	x29, x30, [sp, -112]!
4196	ubfiz	x1, x1, 5, 32
4197	add	x29, sp, 0
4198	stp	x21, x22, [sp, 32]
4199	adrp	x21, .LANCHOR0
4200	add	x2, x21, :lo12:.LANCHOR0
4201	str	x27, [sp, 80]
4202	stp	x23, x24, [sp, 48]
4203	adrp	x24, .LANCHOR147
4204	stp	x19, x20, [sp, 16]
4205	add	x23, x0, x1
4206	ldrh	w27, [x2, 12]
4207	mov	x19, x0
4208	stp	x25, x26, [sp, 64]
4209	add	x24, x24, :lo12:.LANCHOR147
4210	adrp	x25, .LC1
4211	add	x25, x25, :lo12:.LC1
4212.L538:
4213	cmp	x23, x19
4214	bne	.L548
4215	ldp	x19, x20, [sp, 16]
4216	mov	w0, 0
4217	ldp	x21, x22, [sp, 32]
4218	ldp	x23, x24, [sp, 48]
4219	ldp	x25, x26, [sp, 64]
4220	ldr	x27, [sp, 80]
4221	ldp	x29, x30, [sp], 112
4222	ret
4223.L548:
4224	ldr	x0, [x19, 8]
4225	cbz	x0, .L539
4226	ldr	x0, [x19, 16]
4227	cbnz	x0, .L540
4228.L539:
4229	mov	w2, 90
4230	mov	x1, x24
4231	mov	x0, x25
4232	bl	printf
4233.L540:
4234	ldr	w0, [x19, 4]
4235	add	x2, x29, 104
4236	add	x1, x29, 108
4237	adrp	x26, .LANCHOR120
4238	bl	l2p_addr_tran.isra.0
4239	ldr	x20, [x19, 8]
4240	tst	x20, 63
4241	beq	.L541
4242	ldr	x20, [x26, #:lo12:.LANCHOR120]
4243.L541:
4244	adrp	x22, .LANCHOR105
4245	add	x22, x22, :lo12:.LANCHOR105
4246	ldrb	w0, [x29, 104]
4247	mov	x2, x20
4248	ldr	w1, [x29, 108]
4249	ldr	x3, [x19, 16]
4250	ldr	x4, [x22, 24]
4251	blr	x4
4252	str	w0, [x19]
4253	add	x0, x21, :lo12:.LANCHOR0
4254	ldrh	w0, [x0, 14]
4255	cmp	w0, 4
4256	bne	.L543
4257	ldrb	w0, [x29, 104]
4258	add	x2, x20, 2048
4259	ldr	x4, [x22, 24]
4260	ldr	w1, [x29, 108]
4261	ldr	x3, [x19, 16]
4262	add	w1, w27, w1
4263	add	x3, x3, 8
4264	blr	x4
4265	cmn	w0, #1
4266	beq	.L544
4267	ldr	x1, [x19, 16]
4268	ldr	w2, [x1, 12]
4269	cmn	w2, #1
4270	bne	.L545
4271	ldr	w2, [x1, 8]
4272	cmn	w2, #1
4273	bne	.L545
4274	ldr	w1, [x1]
4275	cmn	w1, #1
4276	beq	.L545
4277.L544:
4278	mov	w1, -1
4279	str	w1, [x19]
4280.L545:
4281	ldr	w1, [x19]
4282	cmn	w1, #1
4283	beq	.L543
4284	cmp	w0, 256
4285	bne	.L543
4286	str	w0, [x19]
4287.L543:
4288	ldr	x0, [x26, #:lo12:.LANCHOR120]
4289	cmp	x20, x0
4290	bne	.L547
4291	ldr	x0, [x19, 8]
4292	cmp	x20, x0
4293	beq	.L547
4294	adrp	x1, .LANCHOR12
4295	ldrh	w2, [x1, #:lo12:.LANCHOR12]
4296	mov	x1, x20
4297	lsl	w2, w2, 9
4298	bl	ftl_memcpy
4299.L547:
4300	add	x19, x19, 32
4301	b	.L538
4302	.size	FlashReadPages, .-FlashReadPages
4303	.section	.text.FtlLoadFactoryBbt,"ax",@progbits
4304	.align	2
4305	.global	FtlLoadFactoryBbt
4306	.type	FtlLoadFactoryBbt, %function
4307FtlLoadFactoryBbt:
4308	stp	x29, x30, [sp, -112]!
4309	adrp	x2, .LANCHOR115
4310	adrp	x0, .LANCHOR148
4311	add	x1, x0, :lo12:.LANCHOR148
4312	add	x29, sp, 0
4313	ldr	x2, [x2, #:lo12:.LANCHOR115]
4314	stp	x21, x22, [sp, 32]
4315	mov	x22, x0
4316	stp	x25, x26, [sp, 64]
4317	adrp	x26, .LANCHOR17
4318	stp	x27, x28, [sp, 80]
4319	add	x28, x26, :lo12:.LANCHOR17
4320	stp	x19, x20, [sp, 16]
4321	adrp	x20, .LANCHOR37
4322	stp	x23, x24, [sp, 48]
4323	add	x20, x20, :lo12:.LANCHOR37
4324	str	x2, [x1, 8]
4325	adrp	x2, .LANCHOR123
4326	adrp	x23, .LANCHOR10
4327	add	x20, x20, 12
4328	ldr	x25, [x2, #:lo12:.LANCHOR123]
4329	add	x23, x23, :lo12:.LANCHOR10
4330	mov	w21, 0
4331	mov	w27, -1
4332	str	x25, [x1, 16]
4333.L566:
4334	ldrh	w0, [x23]
4335	cmp	w21, w0
4336	bcc	.L571
4337	ldp	x19, x20, [sp, 16]
4338	mov	w0, 0
4339	ldp	x21, x22, [sp, 32]
4340	ldp	x23, x24, [sp, 48]
4341	ldp	x25, x26, [sp, 64]
4342	ldp	x27, x28, [sp, 80]
4343	ldp	x29, x30, [sp], 112
4344	ret
4345.L571:
4346	ldrh	w19, [x26, #:lo12:.LANCHOR17]
4347	add	x24, x22, :lo12:.LANCHOR148
4348	strh	w27, [x20]
4349	mov	w3, 61664
4350	sub	w19, w19, #1
4351	and	w19, w19, 65535
4352.L567:
4353	ldrh	w0, [x28]
4354	sub	w1, w0, #15
4355	cmp	w1, w19
4356	bgt	.L569
4357	madd	w0, w0, w21, w19
4358	mov	w2, 1
4359	str	w3, [x29, 108]
4360	mov	w1, w2
4361	lsl	w0, w0, 10
4362	str	w0, [x24, 4]
4363	mov	x0, x24
4364	bl	FlashReadPages
4365	ldr	w0, [x24]
4366	ldr	w3, [x29, 108]
4367	cmn	w0, #1
4368	beq	.L568
4369	ldrh	w0, [x25]
4370	cmp	w0, w3
4371	bne	.L568
4372	strh	w19, [x20]
4373.L569:
4374	add	w21, w21, 1
4375	add	x20, x20, 2
4376	b	.L566
4377.L568:
4378	sub	w19, w19, #1
4379	and	w19, w19, 65535
4380	b	.L567
4381	.size	FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
4382	.section	.text.FtlGetLastWrittenPage,"ax",@progbits
4383	.align	2
4384	.global	FtlGetLastWrittenPage
4385	.type	FtlGetLastWrittenPage, %function
4386FtlGetLastWrittenPage:
4387	stp	x29, x30, [sp, -160]!
4388	cmp	w1, 1
4389	add	x29, sp, 0
4390	stp	x23, x24, [sp, 48]
4391	mov	w23, w1
4392	stp	x19, x20, [sp, 16]
4393	stp	x21, x22, [sp, 32]
4394	bne	.L577
4395	adrp	x1, .LANCHOR20
4396	ldrh	w19, [x1, #:lo12:.LANCHOR20]
4397.L578:
4398	adrp	x1, .LANCHOR121
4399	sub	w19, w19, #1
4400	sxth	w19, w19
4401	lsl	w21, w0, 10
4402	ldr	x1, [x1, #:lo12:.LANCHOR121]
4403	orr	w0, w19, w21
4404	str	x1, [x29, 72]
4405	add	x1, x29, 96
4406	str	w0, [x29, 68]
4407	mov	w2, w23
4408	str	x1, [x29, 80]
4409	add	x0, x29, 64
4410	mov	w1, 1
4411	bl	FlashReadPages
4412	ldr	w0, [x29, 96]
4413	cmn	w0, #1
4414	bne	.L579
4415	mov	w22, 0
4416	mov	w24, 2
4417.L580:
4418	cmp	w22, w19
4419	ble	.L583
4420.L579:
4421	mov	w0, w19
4422	ldp	x19, x20, [sp, 16]
4423	ldp	x21, x22, [sp, 32]
4424	ldp	x23, x24, [sp, 48]
4425	ldp	x29, x30, [sp], 160
4426	ret
4427.L577:
4428	adrp	x1, .LANCHOR19
4429	ldrh	w19, [x1, #:lo12:.LANCHOR19]
4430	b	.L578
4431.L583:
4432	add	w20, w22, w19
4433	mov	w2, w23
4434	mov	w1, 1
4435	sdiv	w20, w20, w24
4436	sxth	w0, w20
4437	orr	w0, w0, w21
4438	str	w0, [x29, 68]
4439	add	x0, x29, 64
4440	bl	FlashReadPages
4441	ldr	w0, [x29, 96]
4442	cmn	w0, #1
4443	bne	.L581
4444	ldr	w0, [x29, 100]
4445	cmn	w0, #1
4446	bne	.L581
4447	ldr	w0, [x29, 64]
4448	cmn	w0, #1
4449	beq	.L581
4450	sub	w19, w20, #1
4451	sxth	w19, w19
4452	b	.L580
4453.L581:
4454	add	w20, w20, 1
4455	sxth	w22, w20
4456	b	.L580
4457	.size	FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
4458	.section	.text.FtlScanSysBlk,"ax",@progbits
4459	.align	2
4460	.global	FtlScanSysBlk
4461	.type	FtlScanSysBlk, %function
4462FtlScanSysBlk:
4463	stp	x29, x30, [sp, -176]!
4464	mov	w1, 0
4465	add	x29, sp, 0
4466	stp	x25, x26, [sp, 64]
4467	adrp	x25, .LANCHOR135
4468	stp	x21, x22, [sp, 32]
4469	adrp	x21, .LANCHOR30
4470	ldr	x0, [x25, #:lo12:.LANCHOR135]
4471	adrp	x22, .LANCHOR132
4472	ldr	w2, [x21, #:lo12:.LANCHOR30]
4473	stp	x19, x20, [sp, 16]
4474	adrp	x20, .LANCHOR141
4475	stp	x23, x24, [sp, 48]
4476	adrp	x23, .LANCHOR35
4477	stp	x27, x28, [sp, 80]
4478	adrp	x27, .LANCHOR129
4479	lsl	w2, w2, 2
4480	strh	wzr, [x20, #:lo12:.LANCHOR141]
4481	strh	wzr, [x23, #:lo12:.LANCHOR35]
4482	bl	ftl_memset
4483	ldr	x0, [x27, #:lo12:.LANCHOR129]
4484	mov	w1, 0
4485	ldr	w2, [x21, #:lo12:.LANCHOR30]
4486	adrp	x19, .LANCHOR27
4487	adrp	x28, .LANCHOR36
4488	adrp	x24, .LANCHOR79
4489	lsl	w2, w2, 1
4490	bl	ftl_memset
4491	ldr	x0, [x22, #:lo12:.LANCHOR132]
4492	mov	w1, 0
4493	ldrh	w2, [x19, #:lo12:.LANCHOR27]
4494	lsl	w2, w2, 2
4495	bl	ftl_memset
4496	ldr	x0, [x28, #:lo12:.LANCHOR36]
4497	mov	w1, 0
4498	ldrh	w2, [x19, #:lo12:.LANCHOR27]
4499	lsl	w2, w2, 1
4500	bl	ftl_memset
4501	mov	w2, 12
4502	mov	w1, 255
4503	add	x0, x24, :lo12:.LANCHOR79
4504	bl	ftl_memset
4505	adrp	x0, .LANCHOR5
4506	stp	x22, x25, [x29, 144]
4507	str	x27, [x29, 160]
4508	ldrh	w0, [x0, #:lo12:.LANCHOR5]
4509	str	w0, [x29, 172]
4510	adrp	x0, .LANCHOR6
4511	add	x0, x0, :lo12:.LANCHOR6
4512	str	x0, [x29, 120]
4513	adrp	x0, .LANCHOR70
4514	add	x0, x0, :lo12:.LANCHOR70
4515	str	x0, [x29, 112]
4516.L589:
4517	ldr	x0, [x29, 120]
4518	ldr	w1, [x29, 172]
4519	ldrh	w0, [x0]
4520	cmp	w0, w1
4521	bls	.L629
4522	adrp	x0, .LANCHOR3
4523	adrp	x25, .LANCHOR112
4524	adrp	x6, .LANCHOR13
4525	mov	x5, 0
4526	ldrh	w12, [x0, #:lo12:.LANCHOR3]
4527	adrp	x0, .LANCHOR91
4528	ldr	x7, [x25, #:lo12:.LANCHOR112]
4529	mov	w22, 0
4530	ldr	x11, [x0, #:lo12:.LANCHOR91]
4531	adrp	x0, .LANCHOR92
4532	add	x6, x6, :lo12:.LANCHOR13
4533	ldr	x10, [x0, #:lo12:.LANCHOR92]
4534	adrp	x0, .LANCHOR24
4535	ldrh	w8, [x0, #:lo12:.LANCHOR24]
4536	b	.L630
4537.L591:
4538	ldrh	w1, [x29, 172]
4539	ldrb	w0, [x6, x5]
4540	bl	V2P_block
4541	and	w4, w0, 65535
4542	bl	FtlBbmIsBadBlock
4543	cbnz	w0, .L590
4544	ubfiz	x0, x22, 5, 16
4545	mul	w1, w22, w8
4546	add	x0, x7, x0
4547	add	w22, w22, 1
4548	and	w22, w22, 65535
4549	lsl	w4, w4, 10
4550	asr	w1, w1, 2
4551	add	x1, x10, x1, sxtw 2
4552	str	w4, [x0, 4]
4553	stp	x11, x1, [x0, 8]
4554.L590:
4555	add	x5, x5, 1
4556.L630:
4557	cmp	w12, w5, uxth
4558	bhi	.L591
4559	cbnz	w22, .L592
4560.L628:
4561	ldr	w0, [x29, 172]
4562	add	w26, w0, 1
4563	and	w0, w26, 65535
4564	str	w0, [x29, 172]
4565	b	.L589
4566.L592:
4567	mov	w1, w22
4568	mov	w2, 1
4569	mov	x0, x7
4570	bl	FlashReadPages
4571	ubfiz	x0, x22, 5, 16
4572	mov	x22, 0
4573	str	x0, [x29, 128]
4574	adrp	x0, .LANCHOR149
4575	add	x0, x0, :lo12:.LANCHOR149
4576	str	x0, [x29, 136]
4577.L627:
4578	ldr	x0, [x25, #:lo12:.LANCHOR112]
4579	add	x1, x0, x22
4580	ldr	w0, [x0, x22]
4581	ldr	w3, [x1, 4]
4582	cmn	w0, #1
4583	ldr	x27, [x1, 16]
4584	ubfx	x26, x3, 10, 16
4585	bne	.L595
4586	mov	w5, 16
4587	mov	w7, 65535
4588.L597:
4589	ldr	x0, [x25, #:lo12:.LANCHOR112]
4590	add	x6, x25, :lo12:.LANCHOR112
4591	mov	w2, 1
4592	str	w7, [x29, 100]
4593	add	x0, x0, x22
4594	str	x6, [x29, 104]
4595	str	w5, [x29, 168]
4596	ldr	w1, [x0, 4]
4597	add	w1, w1, 1
4598	str	w1, [x0, 4]
4599	mov	w1, w2
4600	bl	FlashReadPages
4601	ldrh	w0, [x27]
4602	ldr	w7, [x29, 100]
4603	ldr	w5, [x29, 168]
4604	cmp	w0, w7
4605	ldr	x6, [x29, 104]
4606	bne	.L594
4607	ldr	x0, [x6]
4608	mov	w1, -1
4609	str	w1, [x0, x22]
4610	ldr	x0, [x6]
4611	ldr	w0, [x0, x22]
4612	cmp	w0, w1
4613	bne	.L595
4614.L596:
4615	mov	w1, 1
4616	b	.L666
4617.L594:
4618	ldr	x0, [x25, #:lo12:.LANCHOR112]
4619	ldr	w0, [x0, x22]
4620	cmn	w0, #1
4621	bne	.L595
4622	sub	w5, w5, #1
4623	ands	w5, w5, 65535
4624	bne	.L597
4625	b	.L596
4626.L595:
4627	adrp	x0, .LANCHOR70
4628	ldr	w1, [x0, #:lo12:.LANCHOR70]
4629	ldr	w0, [x27, 4]
4630	cmn	w1, #1
4631	beq	.L598
4632	cmp	w1, w0
4633	bhi	.L599
4634.L598:
4635	cmn	w0, #1
4636	beq	.L599
4637	ldr	x2, [x29, 112]
4638	add	w1, w0, 1
4639	str	w1, [x2]
4640.L599:
4641	ldrh	w1, [x27]
4642	mov	w2, 61604
4643	cmp	w1, w2
4644	beq	.L601
4645	bhi	.L602
4646	mov	w0, 61574
4647	cmp	w1, w0
4648	beq	.L603
4649.L600:
4650	ldr	x0, [x29, 128]
4651	add	x22, x22, 32
4652	cmp	x0, x22
4653	bne	.L627
4654	b	.L628
4655.L602:
4656	mov	w0, 61634
4657	cmp	w1, w0
4658	beq	.L604
4659	mov	w0, 65535
4660	cmp	w1, w0
4661	bne	.L600
4662	mov	w1, 0
4663.L666:
4664	mov	w0, w26
4665	bl	FtlFreeSysBlkQueueIn
4666	b	.L600
4667.L604:
4668	ldrh	w1, [x20, #:lo12:.LANCHOR141]
4669	ldr	w0, [x21, #:lo12:.LANCHOR30]
4670	cmp	w1, w0
4671	bls	.L606
4672	ldr	x1, [x29, 136]
4673	adrp	x0, .LC1
4674	mov	w2, 1222
4675	add	x0, x0, :lo12:.LC1
4676	bl	printf
4677.L606:
4678	ldr	w6, [x21, #:lo12:.LANCHOR30]
4679	ldr	x3, [x29, 152]
4680	ldrh	w1, [x20, #:lo12:.LANCHOR141]
4681	and	w2, w6, 65535
4682	sub	w0, w2, #1
4683	sub	w2, w2, w1
4684	sxth	x0, w0
4685	sub	w2, w2, #1
4686	ldr	x5, [x3, #:lo12:.LANCHOR135]
4687	sxth	w2, w2
4688.L607:
4689	cmp	w0, w2
4690	bgt	.L613
4691	tbz	w0, #31, .L647
4692	b	.L600
4693.L613:
4694	sxtw	x8, w0
4695	ldr	w11, [x27, 4]
4696	lsl	x7, x8, 2
4697	add	x10, x5, x7
4698	ldr	w7, [x5, x7]
4699	cmp	w11, w7
4700	bls	.L608
4701	ldr	w2, [x5]
4702	cbnz	w2, .L609
4703	cmp	w6, w1
4704	beq	.L609
4705	add	w1, w1, 1
4706	strh	w1, [x20, #:lo12:.LANCHOR141]
4707.L609:
4708	ldr	x1, [x29, 160]
4709	ldr	x6, [x1, #:lo12:.LANCHOR129]
4710	mov	w1, 0
4711.L610:
4712	cmp	w1, w0
4713	bne	.L611
4714	ldr	w1, [x27, 4]
4715	str	w1, [x10]
4716	strh	w26, [x6, x8, lsl 1]
4717	tbnz	w0, #31, .L600
4718	ldrh	w1, [x20, #:lo12:.LANCHOR141]
4719	ldr	w2, [x21, #:lo12:.LANCHOR30]
4720	sub	w2, w2, w1
4721	sub	w2, w2, #1
4722	cmp	w0, w2, sxth
4723	bgt	.L600
4724.L647:
4725	add	w1, w1, 1
4726	strh	w1, [x20, #:lo12:.LANCHOR141]
4727	ldr	w1, [x27, 4]
4728	str	w1, [x5, x0, lsl 2]
4729	ldr	x1, [x29, 160]
4730	ldr	x1, [x1, #:lo12:.LANCHOR129]
4731.L665:
4732	strh	w26, [x1, x0, lsl 1]
4733	b	.L600
4734.L611:
4735	sxtw	x2, w1
4736	add	w1, w1, 1
4737	lsl	x7, x2, 2
4738	lsl	x2, x2, 1
4739	add	x11, x5, x7
4740	sxth	w1, w1
4741	ldr	w11, [x11, 4]
4742	str	w11, [x5, x7]
4743	add	x7, x6, x2
4744	ldrh	w7, [x7, 2]
4745	strh	w7, [x6, x2]
4746	b	.L610
4747.L608:
4748	sub	w0, w0, #1
4749	sxth	x0, w0
4750	b	.L607
4751.L603:
4752	ldrh	w1, [x23, #:lo12:.LANCHOR35]
4753	ldrh	w0, [x19, #:lo12:.LANCHOR27]
4754	cmp	w1, w0
4755	bls	.L616
4756	ldr	x1, [x29, 136]
4757	adrp	x0, .LC1
4758	mov	w2, 1263
4759	add	x0, x0, :lo12:.LC1
4760	bl	printf
4761.L616:
4762	ldrh	w6, [x19, #:lo12:.LANCHOR27]
4763	ldrh	w2, [x23, #:lo12:.LANCHOR35]
4764	sub	w1, w6, #1
4765	sxth	x0, w1
4766	sub	w5, w1, w2
4767	ldr	x1, [x29, 144]
4768	ldr	x1, [x1, #:lo12:.LANCHOR132]
4769.L617:
4770	cmp	w0, w5
4771	ble	.L622
4772	sxtw	x7, w0
4773	ldr	w11, [x27, 4]
4774	lsl	x8, x7, 2
4775	add	x10, x1, x8
4776	ldr	w8, [x1, x8]
4777	cmp	w11, w8
4778	bls	.L618
4779	ldr	w5, [x1]
4780	cbnz	w5, .L619
4781	cmp	w6, w2
4782	beq	.L619
4783	add	w2, w2, 1
4784	strh	w2, [x23, #:lo12:.LANCHOR35]
4785.L619:
4786	ldr	x6, [x28, #:lo12:.LANCHOR36]
4787	mov	w2, 0
4788.L620:
4789	cmp	w2, w0
4790	bne	.L621
4791	ldr	w2, [x27, 4]
4792	str	w2, [x10]
4793	strh	w26, [x6, x7, lsl 1]
4794.L622:
4795	tbnz	w0, #31, .L600
4796	ldrh	w2, [x19, #:lo12:.LANCHOR27]
4797	ldrh	w5, [x23, #:lo12:.LANCHOR35]
4798	sub	w2, w2, #1
4799	sub	w2, w2, w5
4800	cmp	w0, w2, sxth
4801	bgt	.L600
4802	add	w5, w5, 1
4803	ldr	w2, [x27, 4]
4804	strh	w5, [x23, #:lo12:.LANCHOR35]
4805	str	w2, [x1, x0, lsl 2]
4806	ldr	x1, [x28, #:lo12:.LANCHOR36]
4807	b	.L665
4808.L621:
4809	sxtw	x5, w2
4810	add	w2, w2, 1
4811	lsl	x8, x5, 2
4812	lsl	x5, x5, 1
4813	add	x11, x1, x8
4814	sxth	w2, w2
4815	ldr	w11, [x11, 4]
4816	str	w11, [x1, x8]
4817	add	x8, x6, x5
4818	ldrh	w8, [x8, 2]
4819	strh	w8, [x6, x5]
4820	b	.L620
4821.L618:
4822	sub	w0, w0, #1
4823	sxth	x0, w0
4824	b	.L617
4825.L601:
4826	ldrh	w5, [x24, #:lo12:.LANCHOR79]
4827	mov	w1, 65535
4828	add	x2, x24, :lo12:.LANCHOR79
4829	cmp	w5, w1
4830	bne	.L624
4831	strh	w26, [x24, #:lo12:.LANCHOR79]
4832	str	w0, [x2, 8]
4833	b	.L600
4834.L624:
4835	ldrh	w0, [x2, 4]
4836	cmp	w0, w1
4837	beq	.L625
4838	mov	w1, 1
4839	bl	FtlFreeSysBlkQueueIn
4840.L625:
4841	add	x0, x24, :lo12:.LANCHOR79
4842	ldr	w1, [x27, 4]
4843	ldr	w2, [x0, 8]
4844	cmp	w2, w1
4845	bcs	.L626
4846	ldrh	w2, [x24, #:lo12:.LANCHOR79]
4847	strh	w2, [x0, 4]
4848	strh	w26, [x24, #:lo12:.LANCHOR79]
4849	str	w1, [x0, 8]
4850	b	.L600
4851.L626:
4852	strh	w26, [x0, 4]
4853	b	.L600
4854.L629:
4855	ldr	x0, [x29, 160]
4856	ldr	x2, [x0, #:lo12:.LANCHOR129]
4857	ldrh	w0, [x2]
4858	cbz	w0, .L631
4859.L634:
4860	ldr	x1, [x28, #:lo12:.LANCHOR36]
4861	ldrh	w0, [x1]
4862	cbz	w0, .L632
4863.L633:
4864	ldrh	w1, [x20, #:lo12:.LANCHOR141]
4865	ldr	w0, [x21, #:lo12:.LANCHOR30]
4866	cmp	w1, w0
4867	bls	.L663
4868	adrp	x1, .LANCHOR149
4869	adrp	x0, .LC1
4870	mov	w2, 1388
4871	add	x1, x1, :lo12:.LANCHOR149
4872	add	x0, x0, :lo12:.LC1
4873	bl	printf
4874.L663:
4875	ldp	x19, x20, [sp, 16]
4876	mov	w0, 0
4877	ldp	x21, x22, [sp, 32]
4878	ldp	x23, x24, [sp, 48]
4879	ldp	x25, x26, [sp, 64]
4880	ldp	x27, x28, [sp, 80]
4881	ldp	x29, x30, [sp], 176
4882	ret
4883.L631:
4884	ldrh	w0, [x20, #:lo12:.LANCHOR141]
4885	cbz	w0, .L634
4886	ldr	w1, [x21, #:lo12:.LANCHOR30]
4887	mov	w0, 0
4888.L635:
4889	cmp	w0, w1
4890	bcs	.L634
4891	ldrh	w3, [x2, w0, sxtw 1]
4892	cbz	w3, .L636
4893	ldr	x1, [x29, 152]
4894	add	x7, x21, :lo12:.LANCHOR30
4895	ldr	x4, [x1, #:lo12:.LANCHOR135]
4896	mov	w1, w0
4897.L637:
4898	ldr	w3, [x7]
4899	cmp	w1, w3
4900	bcs	.L634
4901	sxtw	x6, w1
4902	sub	w3, w1, w0
4903	lsl	x5, x6, 1
4904	sxtw	x3, w3
4905	add	w1, w1, 1
4906	ldr	w6, [x4, x6, lsl 2]
4907	sxth	w1, w1
4908	ldrh	w8, [x2, x5]
4909	strh	w8, [x2, x3, lsl 1]
4910	str	w6, [x4, x3, lsl 2]
4911	strh	wzr, [x2, x5]
4912	b	.L637
4913.L636:
4914	add	w0, w0, 1
4915	sxth	w0, w0
4916	b	.L635
4917.L632:
4918	ldrh	w0, [x23, #:lo12:.LANCHOR35]
4919	cbz	w0, .L633
4920	ldrh	w2, [x19, #:lo12:.LANCHOR27]
4921	mov	w0, 0
4922.L642:
4923	mov	w6, w0
4924	cmp	w0, w2
4925	bge	.L633
4926	ldrh	w3, [x1, w0, sxtw 1]
4927	cbz	w3, .L643
4928	ldr	x2, [x29, 144]
4929	add	x19, x19, :lo12:.LANCHOR27
4930	ldr	x3, [x2, #:lo12:.LANCHOR132]
4931.L644:
4932	ldrh	w2, [x19]
4933	cmp	w0, w2
4934	bge	.L633
4935	sxtw	x5, w0
4936	sub	w2, w0, w6
4937	lsl	x4, x5, 1
4938	sxtw	x2, w2
4939	add	w0, w0, 1
4940	ldr	w5, [x3, x5, lsl 2]
4941	sxth	w0, w0
4942	ldrh	w7, [x1, x4]
4943	strh	w7, [x1, x2, lsl 1]
4944	str	w5, [x3, x2, lsl 2]
4945	strh	wzr, [x1, x4]
4946	b	.L644
4947.L643:
4948	add	w0, w0, 1
4949	sxth	w0, w0
4950	b	.L642
4951	.size	FtlScanSysBlk, .-FtlScanSysBlk
4952	.section	.text.FtlLoadBbt,"ax",@progbits
4953	.align	2
4954	.global	FtlLoadBbt
4955	.type	FtlLoadBbt, %function
4956FtlLoadBbt:
4957	stp	x29, x30, [sp, -80]!
4958	add	x29, sp, 0
4959	stp	x23, x24, [sp, 48]
4960	adrp	x23, .LANCHOR115
4961	stp	x19, x20, [sp, 16]
4962	adrp	x24, .LANCHOR17
4963	stp	x21, x22, [sp, 32]
4964	adrp	x22, .LANCHOR148
4965	add	x20, x22, :lo12:.LANCHOR148
4966	ldr	x0, [x23, #:lo12:.LANCHOR115]
4967	str	x25, [sp, 64]
4968	mov	w25, 61649
4969	str	x0, [x20, 8]
4970	adrp	x0, .LANCHOR123
4971	ldr	x21, [x0, #:lo12:.LANCHOR123]
4972	str	x21, [x20, 16]
4973	bl	FtlBbtMemInit
4974	ldrh	w19, [x24, #:lo12:.LANCHOR17]
4975	add	x24, x24, :lo12:.LANCHOR17
4976	sub	w19, w19, #1
4977	and	w19, w19, 65535
4978.L668:
4979	ldrh	w0, [x24]
4980	sub	w0, w0, #15
4981	cmp	w0, w19
4982	bgt	.L671
4983	lsl	w0, w19, 10
4984	mov	w2, 1
4985	str	w0, [x20, 4]
4986	mov	w1, w2
4987	mov	x0, x20
4988	bl	FlashReadPages
4989	ldr	w0, [x20]
4990	cmn	w0, #1
4991	bne	.L669
4992	ldr	w0, [x20, 4]
4993	mov	w2, 1
4994	mov	w1, w2
4995	add	w0, w0, 1
4996	str	w0, [x20, 4]
4997	mov	x0, x20
4998	bl	FlashReadPages
4999.L669:
5000	ldr	w0, [x20]
5001	cmn	w0, #1
5002	beq	.L670
5003	ldrh	w0, [x21]
5004	cmp	w0, w25
5005	bne	.L670
5006	adrp	x1, .LANCHOR37
5007	add	x0, x1, :lo12:.LANCHOR37
5008	strh	w19, [x1, #:lo12:.LANCHOR37]
5009	ldr	w1, [x21, 4]
5010	str	w1, [x0, 8]
5011	ldrh	w1, [x21, 8]
5012	strh	w1, [x0, 4]
5013.L671:
5014	adrp	x19, .LANCHOR37
5015	mov	w0, 65535
5016	add	x20, x19, :lo12:.LANCHOR37
5017	ldrh	w1, [x19, #:lo12:.LANCHOR37]
5018	cmp	w1, w0
5019	beq	.L685
5020	ldrh	w1, [x20, 4]
5021	cmp	w1, w0
5022	beq	.L675
5023	add	x0, x22, :lo12:.LANCHOR148
5024	lsl	w1, w1, 10
5025	mov	w2, 1
5026	str	w1, [x0, 4]
5027	mov	w1, w2
5028	bl	FlashReadPages
5029	ldr	w0, [x22, #:lo12:.LANCHOR148]
5030	cmn	w0, #1
5031	beq	.L675
5032	ldrh	w1, [x21]
5033	mov	w0, 61649
5034	cmp	w1, w0
5035	bne	.L675
5036	ldr	w1, [x20, 8]
5037	ldr	w0, [x21, 4]
5038	cmp	w0, w1
5039	bls	.L675
5040	ldrh	w1, [x20, 4]
5041	str	w0, [x20, 8]
5042	ldrh	w0, [x21, 8]
5043	strh	w1, [x19, #:lo12:.LANCHOR37]
5044	strh	w0, [x20, 4]
5045.L675:
5046	ldrh	w0, [x19, #:lo12:.LANCHOR37]
5047	add	x24, x19, :lo12:.LANCHOR37
5048	mov	w1, 1
5049	mov	w25, 61649
5050	bl	FtlGetLastWrittenPage
5051	sxth	w20, w0
5052	add	w0, w0, 1
5053	strh	w0, [x24, 2]
5054	add	x24, x22, :lo12:.LANCHOR148
5055.L677:
5056	tbz	w20, #31, .L680
5057	adrp	x1, .LANCHOR150
5058	adrp	x0, .LC1
5059	mov	w2, 253
5060	add	x1, x1, :lo12:.LANCHOR150
5061	add	x0, x0, :lo12:.LC1
5062	bl	printf
5063.L679:
5064	add	x0, x19, :lo12:.LANCHOR37
5065	ldrh	w1, [x21, 10]
5066	strh	w1, [x0, 6]
5067	mov	w1, 65535
5068	ldrh	w0, [x21, 12]
5069	cmp	w0, w1
5070	beq	.L682
5071	adrp	x1, .LANCHOR2
5072	ldr	w2, [x1, #:lo12:.LANCHOR2]
5073	cmp	w0, w2
5074	beq	.L682
5075	adrp	x1, .LANCHOR6
5076	ldrh	w1, [x1, #:lo12:.LANCHOR6]
5077	lsr	w1, w1, 2
5078	cmp	w2, w1
5079	bcs	.L682
5080	cmp	w0, w1
5081	bcs	.L682
5082	bl	FtlSysBlkNumInit
5083.L682:
5084	add	x19, x19, :lo12:.LANCHOR37
5085	adrp	x21, .LANCHOR10
5086	adrp	x23, .LANCHOR137
5087	add	x19, x19, 32
5088	add	x21, x21, :lo12:.LANCHOR10
5089	add	x23, x23, :lo12:.LANCHOR137
5090	add	x22, x22, :lo12:.LANCHOR148
5091	mov	w20, 0
5092.L683:
5093	ldrh	w0, [x21]
5094	cmp	w20, w0
5095	bcc	.L684
5096	mov	w0, 0
5097.L667:
5098	ldp	x19, x20, [sp, 16]
5099	ldp	x21, x22, [sp, 32]
5100	ldp	x23, x24, [sp, 48]
5101	ldr	x25, [sp, 64]
5102	ldp	x29, x30, [sp], 80
5103	ret
5104.L670:
5105	sub	w19, w19, #1
5106	and	w19, w19, 65535
5107	b	.L668
5108.L680:
5109	ldrh	w0, [x19, #:lo12:.LANCHOR37]
5110	mov	w2, 1
5111	mov	w1, w2
5112	orr	w0, w20, w0, lsl 10
5113	str	w0, [x24, 4]
5114	ldr	x0, [x23, #:lo12:.LANCHOR115]
5115	str	x0, [x24, 8]
5116	mov	x0, x24
5117	bl	FlashReadPages
5118	ldr	w0, [x24]
5119	cmn	w0, #1
5120	beq	.L678
5121	ldrh	w0, [x21]
5122	cmp	w0, w25
5123	beq	.L679
5124.L678:
5125	sub	w20, w20, #1
5126	sxth	w20, w20
5127	b	.L677
5128.L684:
5129	ldrh	w2, [x23]
5130	ldr	x0, [x22, 8]
5131	mul	w1, w2, w20
5132	lsl	w2, w2, 2
5133	add	w20, w20, 1
5134	add	x1, x0, x1, lsl 2
5135	ldr	x0, [x19], 8
5136	bl	ftl_memcpy
5137	b	.L683
5138.L685:
5139	mov	w0, -1
5140	b	.L667
5141	.size	FtlLoadBbt, .-FtlLoadBbt
5142	.section	.text.FtlLoadSysInfo,"ax",@progbits
5143	.align	2
5144	.global	FtlLoadSysInfo
5145	.type	FtlLoadSysInfo, %function
5146FtlLoadSysInfo:
5147	stp	x29, x30, [sp, -96]!
5148	mov	w1, 0
5149	add	x29, sp, 0
5150	stp	x19, x20, [sp, 16]
5151	adrp	x19, .LANCHOR148
5152	stp	x23, x24, [sp, 48]
5153	adrp	x23, .LANCHOR115
5154	stp	x21, x22, [sp, 32]
5155	add	x21, x19, :lo12:.LANCHOR148
5156	stp	x25, x26, [sp, 64]
5157	adrp	x26, .LANCHOR123
5158	stp	x27, x28, [sp, 80]
5159	adrp	x25, .LANCHOR42
5160	ldr	x0, [x23, #:lo12:.LANCHOR115]
5161	adrp	x24, .LANCHOR5
5162	str	x0, [x21, 8]
5163	adrp	x20, .LANCHOR79
5164	ldr	x0, [x26, #:lo12:.LANCHOR123]
5165	str	x0, [x21, 16]
5166	ldr	x0, [x25, #:lo12:.LANCHOR42]
5167	ldrh	w2, [x24, #:lo12:.LANCHOR5]
5168	lsl	w2, w2, 1
5169	bl	ftl_memset
5170	ldrh	w0, [x20, #:lo12:.LANCHOR79]
5171	mov	w1, 65535
5172	cmp	w0, w1
5173	bne	.L698
5174.L706:
5175	mov	w0, -1
5176.L697:
5177	ldp	x19, x20, [sp, 16]
5178	ldp	x21, x22, [sp, 32]
5179	ldp	x23, x24, [sp, 48]
5180	ldp	x25, x26, [sp, 64]
5181	ldp	x27, x28, [sp, 80]
5182	ldp	x29, x30, [sp], 96
5183	ret
5184.L698:
5185	add	x27, x20, :lo12:.LANCHOR79
5186	mov	w1, 1
5187	bl	FtlGetLastWrittenPage
5188	sxth	w22, w0
5189	add	w0, w0, 1
5190	mov	w28, 61604
5191	strh	w0, [x27, 2]
5192	mov	w27, 19539
5193	movk	w27, 0x4654, lsl 16
5194.L700:
5195	tbz	w22, #31, .L703
5196	adrp	x1, .LANCHOR151
5197	adrp	x0, .LC1
5198	mov	w2, 1448
5199	add	x1, x1, :lo12:.LANCHOR151
5200	add	x0, x0, :lo12:.LC1
5201	bl	printf
5202.L702:
5203	adrp	x1, .LANCHOR23
5204	ldrh	w0, [x24, #:lo12:.LANCHOR5]
5205	ldrh	w1, [x1, #:lo12:.LANCHOR23]
5206	add	x0, x0, 24
5207	cmp	x1, x0, lsl 1
5208	bcs	.L705
5209	adrp	x1, .LANCHOR151
5210	adrp	x0, .LC1
5211	mov	w2, 1450
5212	add	x1, x1, :lo12:.LANCHOR151
5213	add	x0, x0, :lo12:.LC1
5214	bl	printf
5215.L705:
5216	add	x22, x19, :lo12:.LANCHOR148
5217	adrp	x19, .LANCHOR39
5218	add	x21, x19, :lo12:.LANCHOR39
5219	mov	w2, 48
5220	mov	x0, x21
5221	ldr	x1, [x22, 8]
5222	bl	ftl_memcpy
5223	ldr	x0, [x25, #:lo12:.LANCHOR42]
5224	ldrh	w2, [x24, #:lo12:.LANCHOR5]
5225	ldr	x1, [x22, 8]
5226	lsl	w2, w2, 1
5227	add	x1, x1, 48
5228	bl	ftl_memcpy
5229	ldrh	w1, [x24, #:lo12:.LANCHOR5]
5230	ldr	x0, [x22, 8]
5231	lsr	w2, w1, 3
5232	ubfiz	x1, x1, 1, 16
5233	add	x1, x1, 48
5234	add	w2, w2, 4
5235	and	x1, x1, -4
5236	add	x1, x0, x1
5237	adrp	x0, .LANCHOR1
5238	ldr	x0, [x0, #:lo12:.LANCHOR1]
5239	bl	ftl_memcpy
5240	ldr	w1, [x19, #:lo12:.LANCHOR39]
5241	mov	w0, 19539
5242	movk	w0, 0x4654, lsl 16
5243	cmp	w1, w0
5244	bne	.L706
5245	add	x20, x20, :lo12:.LANCHOR79
5246	adrp	x0, .LANCHOR10
5247	ldrh	w1, [x21, 8]
5248	ldrb	w2, [x21, 10]
5249	ldrh	w0, [x0, #:lo12:.LANCHOR10]
5250	strh	w1, [x20, 6]
5251	cmp	w2, w0
5252	bne	.L706
5253	adrp	x0, .LANCHOR152
5254	adrp	x2, .LANCHOR61
5255	adrp	x3, .LANCHOR3
5256	str	w1, [x0, #:lo12:.LANCHOR152]
5257	adrp	x0, .LANCHOR19
5258	ldrh	w3, [x3, #:lo12:.LANCHOR3]
5259	ldrh	w0, [x0, #:lo12:.LANCHOR19]
5260	mul	w0, w0, w1
5261	str	w0, [x2, #:lo12:.LANCHOR61]
5262	adrp	x2, .LANCHOR12
5263	ldrh	w2, [x2, #:lo12:.LANCHOR12]
5264	mul	w0, w2, w0
5265	adrp	x2, .LANCHOR34
5266	str	w0, [x2, #:lo12:.LANCHOR34]
5267	adrp	x0, .LANCHOR7
5268	ldr	w2, [x0, #:lo12:.LANCHOR7]
5269	adrp	x0, .LANCHOR37+6
5270	ldrh	w0, [x0, #:lo12:.LANCHOR37+6]
5271	cmp	w1, w2
5272	sub	w0, w2, w0
5273	sub	w0, w0, w1
5274	udiv	w0, w0, w3
5275	adrp	x3, .LANCHOR78
5276	strh	w0, [x3, #:lo12:.LANCHOR78]
5277	bls	.L707
5278	adrp	x1, .LANCHOR151
5279	adrp	x0, .LC1
5280	mov	w2, 1472
5281	add	x1, x1, :lo12:.LANCHOR151
5282	add	x0, x0, :lo12:.LC1
5283	bl	printf
5284.L707:
5285	add	x1, x19, :lo12:.LANCHOR39
5286	adrp	x0, .LANCHOR51
5287	add	x3, x0, :lo12:.LANCHOR51
5288	adrp	x20, .LANCHOR80
5289	ldrh	w2, [x1, 16]
5290	ldrh	w6, [x1, 14]
5291	strh	w6, [x0, #:lo12:.LANCHOR51]
5292	lsr	w4, w2, 6
5293	and	w2, w2, 63
5294	strb	w2, [x3, 6]
5295	ldrb	w2, [x1, 11]
5296	strb	w2, [x3, 8]
5297	add	x2, x20, :lo12:.LANCHOR80
5298	strh	w4, [x3, 2]
5299	mov	w3, -1
5300	strh	w3, [x20, #:lo12:.LANCHOR80]
5301	strh	wzr, [x2, 2]
5302	strb	wzr, [x2, 6]
5303	strb	wzr, [x2, 8]
5304	adrp	x2, .LANCHOR52
5305	ldrh	w3, [x1, 18]
5306	add	x4, x2, :lo12:.LANCHOR52
5307	strh	w3, [x2, #:lo12:.LANCHOR52]
5308	mov	x21, x2
5309	ldrh	w3, [x1, 20]
5310	lsr	w5, w3, 6
5311	and	w3, w3, 63
5312	strb	w3, [x4, 6]
5313	ldrb	w3, [x1, 12]
5314	strh	w5, [x4, 2]
5315	strb	w3, [x4, 8]
5316	adrp	x4, .LANCHOR53
5317	ldrh	w3, [x1, 22]
5318	add	x5, x4, :lo12:.LANCHOR53
5319	strh	w3, [x4, #:lo12:.LANCHOR53]
5320	mov	x22, x4
5321	ldrh	w3, [x1, 24]
5322	lsr	w7, w3, 6
5323	and	w3, w3, 63
5324	strb	w3, [x5, 6]
5325	ldrb	w3, [x1, 13]
5326	strb	w3, [x5, 8]
5327	adrp	x3, .LANCHOR67
5328	strh	w7, [x5, 2]
5329	ldr	w5, [x1, 32]
5330	str	wzr, [x3, #:lo12:.LANCHOR67]
5331	adrp	x3, .LANCHOR64
5332	str	wzr, [x3, #:lo12:.LANCHOR64]
5333	adrp	x3, .LANCHOR62
5334	str	wzr, [x3, #:lo12:.LANCHOR62]
5335	adrp	x3, .LANCHOR66
5336	str	wzr, [x3, #:lo12:.LANCHOR66]
5337	adrp	x3, .LANCHOR72
5338	str	w5, [x3, #:lo12:.LANCHOR72]
5339	adrp	x3, .LANCHOR73
5340	str	wzr, [x3, #:lo12:.LANCHOR73]
5341	adrp	x3, .LANCHOR76
5342	str	wzr, [x3, #:lo12:.LANCHOR76]
5343	adrp	x3, .LANCHOR65
5344	str	wzr, [x3, #:lo12:.LANCHOR65]
5345	ldr	w3, [x1, 40]
5346	adrp	x1, .LANCHOR70
5347	ldr	w5, [x1, #:lo12:.LANCHOR70]
5348	cmp	w3, w5
5349	bls	.L708
5350	str	w3, [x1, #:lo12:.LANCHOR70]
5351.L708:
5352	add	x19, x19, :lo12:.LANCHOR39
5353	adrp	x1, .LANCHOR71
5354	ldr	w3, [x1, #:lo12:.LANCHOR71]
5355	ldr	w2, [x19, 36]
5356	cmp	w2, w3
5357	bls	.L709
5358	str	w2, [x1, #:lo12:.LANCHOR71]
5359.L709:
5360	mov	w1, 65535
5361	cmp	w6, w1
5362	beq	.L710
5363	add	x0, x0, :lo12:.LANCHOR51
5364	bl	make_superblock
5365.L710:
5366	ldrh	w2, [x21, #:lo12:.LANCHOR52]
5367	mov	w1, 65535
5368	add	x0, x21, :lo12:.LANCHOR52
5369	cmp	w2, w1
5370	beq	.L711
5371	bl	make_superblock
5372.L711:
5373	ldrh	w2, [x22, #:lo12:.LANCHOR53]
5374	mov	w1, 65535
5375	add	x0, x22, :lo12:.LANCHOR53
5376	cmp	w2, w1
5377	beq	.L712
5378	bl	make_superblock
5379.L712:
5380	ldrh	w2, [x20, #:lo12:.LANCHOR80]
5381	mov	w1, 65535
5382	add	x0, x20, :lo12:.LANCHOR80
5383	cmp	w2, w1
5384	beq	.L713
5385	bl	make_superblock
5386.L713:
5387	mov	w0, 0
5388	b	.L697
5389.L703:
5390	ldrh	w0, [x20, #:lo12:.LANCHOR79]
5391	mov	w2, 1
5392	mov	w1, w2
5393	orr	w0, w22, w0, lsl 10
5394	str	w0, [x21, 4]
5395	ldr	x0, [x23, #:lo12:.LANCHOR115]
5396	str	x0, [x21, 8]
5397	mov	x0, x21
5398	bl	FlashReadPages
5399	ldr	w0, [x21]
5400	cmn	w0, #1
5401	beq	.L701
5402	ldr	x0, [x23, #:lo12:.LANCHOR115]
5403	ldr	w0, [x0]
5404	cmp	w0, w27
5405	bne	.L701
5406	ldr	x0, [x26, #:lo12:.LANCHOR123]
5407	ldrh	w0, [x0]
5408	cmp	w0, w28
5409	beq	.L702
5410.L701:
5411	sub	w22, w22, #1
5412	sxth	w22, w22
5413	b	.L700
5414	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
5415	.section	.text.FlashProgPages,"ax",@progbits
5416	.align	2
5417	.global	FlashProgPages
5418	.type	FlashProgPages, %function
5419FlashProgPages:
5420	stp	x29, x30, [sp, -160]!
5421	ubfiz	x1, x1, 5, 32
5422	add	x29, sp, 0
5423	stp	x21, x22, [sp, 32]
5424	adrp	x21, .LANCHOR0
5425	stp	x23, x24, [sp, 48]
5426	adrp	x22, .LANCHOR153
5427	stp	w3, w2, [x29, 104]
5428	add	x2, x21, :lo12:.LANCHOR0
5429	stp	x19, x20, [sp, 16]
5430	adrp	x24, .LANCHOR105
5431	stp	x27, x28, [sp, 80]
5432	mov	x19, x0
5433	ldrh	w23, [x2, 12]
5434	add	x20, x0, x1
5435	stp	x25, x26, [sp, 64]
5436	add	x22, x22, :lo12:.LANCHOR153
5437	mov	x25, x0
5438	add	x28, x24, :lo12:.LANCHOR105
5439	lsl	w27, w23, 3
5440.L720:
5441	cmp	x25, x20
5442	bne	.L732
5443	ldr	w0, [x29, 104]
5444	cbz	w0, .L745
5445	adrp	x21, .LANCHOR120
5446	adrp	x22, .LANCHOR122
5447	mov	x23, x21
5448	mov	x24, x22
5449.L734:
5450	cmp	x19, x20
5451	beq	.L745
5452	ldr	x1, [x21, #:lo12:.LANCHOR120]
5453	ldr	x0, [x22, #:lo12:.LANCHOR122]
5454	str	wzr, [x1]
5455	str	wzr, [x0]
5456	stp	x1, x0, [x29, 136]
5457	mov	w1, 1
5458	ldr	w2, [x19, 4]
5459	add	x0, x29, 128
5460	str	w2, [x29, 132]
5461	ldr	w2, [x29, 108]
5462	bl	FlashReadPages
5463	ldr	w26, [x29, 128]
5464	cmn	w26, #1
5465	bne	.L735
5466	ldr	w1, [x19, 4]
5467	adrp	x0, .LC85
5468	add	x0, x0, :lo12:.LC85
5469	bl	printf
5470	str	w26, [x19]
5471.L735:
5472	ldr	x0, [x19, 16]
5473	cbz	x0, .L736
5474	ldr	w2, [x0]
5475	ldr	x0, [x24, #:lo12:.LANCHOR122]
5476	ldr	w3, [x0]
5477	cmp	w2, w3
5478	beq	.L736
5479	ldr	w1, [x19, 4]
5480	adrp	x0, .LC86
5481	add	x0, x0, :lo12:.LC86
5482	bl	printf
5483	mov	w0, -1
5484	str	w0, [x19]
5485.L736:
5486	ldr	x0, [x19, 8]
5487	cbz	x0, .L737
5488	ldr	w2, [x0]
5489	ldr	x0, [x23, #:lo12:.LANCHOR120]
5490	ldr	w3, [x0]
5491	cmp	w2, w3
5492	beq	.L737
5493	ldr	w1, [x19, 4]
5494	adrp	x0, .LC87
5495	add	x0, x0, :lo12:.LC87
5496	bl	printf
5497	mov	w0, -1
5498	str	w0, [x19]
5499.L737:
5500	add	x19, x19, 32
5501	b	.L734
5502.L732:
5503	ldr	x0, [x25, 8]
5504	cbz	x0, .L721
5505	ldr	x0, [x25, 16]
5506	cbnz	x0, .L722
5507.L721:
5508	adrp	x0, .LC1
5509	mov	w2, 130
5510	mov	x1, x22
5511	add	x0, x0, :lo12:.LC1
5512	bl	printf
5513.L722:
5514	ldr	w0, [x25, 4]
5515	add	x2, x29, 120
5516	add	x1, x29, 124
5517	bl	l2p_addr_tran.isra.0
5518	ldr	w0, [x29, 120]
5519	cbnz	w0, .L723
5520	ldr	w0, [x29, 124]
5521	cmp	w27, w0
5522	bls	.L723
5523	adrp	x21, .LANCHOR153
5524	adrp	x22, .LC79
5525	mov	w23, -1
5526	add	x21, x21, :lo12:.LANCHOR153
5527	add	x22, x22, :lo12:.LC79
5528	b	.L756
5529.L725:
5530	ldr	w2, [x19, 4]
5531	mov	x1, x21
5532	str	w23, [x19]
5533	mov	x0, x22
5534	add	x19, x19, 32
5535	bl	printf
5536	ldr	x1, [x19, -24]
5537	mov	w3, 16
5538	mov	w2, 4
5539	adrp	x0, .LC80
5540	add	x0, x0, :lo12:.LC80
5541	bl	rknand_print_hex
5542	ldr	x1, [x19, -16]
5543	mov	w3, 4
5544	adrp	x0, .LC81
5545	mov	w2, w3
5546	add	x0, x0, :lo12:.LC81
5547	bl	rknand_print_hex
5548.L756:
5549	cmp	x19, x20
5550	bne	.L725
5551.L745:
5552	ldp	x19, x20, [sp, 16]
5553	mov	w0, 0
5554	ldp	x21, x22, [sp, 32]
5555	ldp	x23, x24, [sp, 48]
5556	ldp	x25, x26, [sp, 64]
5557	ldp	x27, x28, [sp, 80]
5558	ldp	x29, x30, [sp], 160
5559	ret
5560.L723:
5561	ldr	x1, [x25, 8]
5562	tst	x1, 63
5563	beq	.L739
5564	adrp	x0, .LANCHOR120
5565	ldr	x26, [x0, #:lo12:.LANCHOR120]
5566	cmp	x1, x26
5567	beq	.L726
5568	adrp	x0, .LANCHOR12
5569	ldrh	w2, [x0, #:lo12:.LANCHOR12]
5570	mov	x0, x26
5571	lsl	w2, w2, 9
5572	bl	ftl_memcpy
5573.L726:
5574	add	x0, x24, :lo12:.LANCHOR105
5575	ldr	w1, [x29, 124]
5576	ldr	x3, [x25, 16]
5577	mov	x2, x26
5578	ldr	x6, [x0, 16]
5579	ldrb	w0, [x29, 120]
5580	blr	x6
5581	cbnz	w0, .L727
5582	str	wzr, [x25]
5583.L728:
5584	add	x0, x21, :lo12:.LANCHOR0
5585	ldrh	w0, [x0, 14]
5586	cmp	w0, 4
5587	bne	.L730
5588	ldrb	w0, [x29, 120]
5589	add	x2, x26, 2048
5590	ldr	x6, [x28, 16]
5591	ldr	w1, [x29, 124]
5592	ldr	x3, [x25, 16]
5593	add	w1, w23, w1
5594	add	x3, x3, 8
5595	blr	x6
5596	cbz	w0, .L730
5597	mov	w0, -1
5598	str	w0, [x25]
5599.L730:
5600	add	x25, x25, 32
5601	b	.L720
5602.L739:
5603	mov	x26, x1
5604	b	.L726
5605.L727:
5606	mov	w0, -1
5607	str	w0, [x25]
5608	b	.L728
5609	.size	FlashProgPages, .-FlashProgPages
5610	.section	.text.FtlLowFormatEraseBlock,"ax",@progbits
5611	.align	2
5612	.global	FtlLowFormatEraseBlock
5613	.type	FtlLowFormatEraseBlock, %function
5614FtlLowFormatEraseBlock:
5615	stp	x29, x30, [sp, -128]!
5616	adrp	x7, .LANCHOR13
5617	add	x7, x7, :lo12:.LANCHOR13
5618	mov	x5, 0
5619	add	x29, sp, 0
5620	stp	x23, x24, [sp, 48]
5621	and	w23, w0, 65535
5622	adrp	x0, .LANCHOR111
5623	stp	x19, x20, [sp, 16]
5624	stp	x21, x22, [sp, 32]
5625	adrp	x20, .LANCHOR3
5626	stp	x25, x26, [sp, 64]
5627	and	w22, w1, 255
5628	str	w23, [x0, #:lo12:.LANCHOR111]
5629	adrp	x21, .LANCHOR106
5630	adrp	x0, .LANCHOR119
5631	adrp	x1, .LANCHOR124
5632	adrp	x25, .LANCHOR24
5633	ldrh	w8, [x20, #:lo12:.LANCHOR3]
5634	ldr	x6, [x21, #:lo12:.LANCHOR106]
5635	mov	w24, 0
5636	ldr	x10, [x0, #:lo12:.LANCHOR119]
5637	mov	w19, 0
5638	ldr	x11, [x1, #:lo12:.LANCHOR124]
5639	ldrh	w12, [x25, #:lo12:.LANCHOR24]
5640	stp	x27, x28, [sp, 80]
5641	str	x0, [x29, 112]
5642.L759:
5643	cmp	w8, w5, uxth
5644	bhi	.L763
5645	cbz	w24, .L758
5646	mov	w2, w24
5647	ubfiz	x24, x24, 5, 16
5648	mov	x26, 0
5649	mov	w1, 0
5650	mov	x0, x6
5651	bl	FlashEraseBlocks
5652.L767:
5653	ldr	x0, [x21, #:lo12:.LANCHOR106]
5654	add	x1, x0, x26
5655	ldr	w0, [x0, x26]
5656	cmn	w0, #1
5657	bne	.L766
5658	ldr	w0, [x1, 4]
5659	add	w19, w19, 1
5660	and	w19, w19, 65535
5661	lsr	w0, w0, 10
5662	bl	FtlBbmMapBadBlock
5663.L766:
5664	add	x26, x26, 32
5665	cmp	x26, x24
5666	bne	.L767
5667	cbz	w22, .L780
5668	adrp	x0, .LANCHOR20
5669	mov	w26, 1
5670	ldrh	w28, [x0, #:lo12:.LANCHOR20]
5671.L768:
5672	add	x0, x20, :lo12:.LANCHOR3
5673	adrp	x27, .LANCHOR13
5674	str	x0, [x29, 120]
5675	mov	w24, 0
5676	add	x0, x27, :lo12:.LANCHOR13
5677	str	x0, [x29, 104]
5678.L776:
5679	ldr	x0, [x29, 120]
5680	mov	x5, 0
5681	ldr	x6, [x21, #:lo12:.LANCHOR106]
5682	mov	w20, 0
5683	ldrh	w11, [x25, #:lo12:.LANCHOR24]
5684	ldrh	w7, [x0]
5685	adrp	x0, .LANCHOR118
5686	ldr	x8, [x0, #:lo12:.LANCHOR118]
5687	ldr	x0, [x29, 112]
5688	ldr	x10, [x0, #:lo12:.LANCHOR119]
5689.L769:
5690	cmp	w7, w5, uxth
5691	bhi	.L772
5692	cbz	w20, .L758
5693	mov	w1, w20
5694	mov	w3, 1
5695	mov	w2, w26
5696	mov	x0, x6
5697	bl	FlashProgPages
5698	mov	x27, 0
5699	ubfiz	x1, x20, 5, 16
5700.L775:
5701	ldr	x0, [x21, #:lo12:.LANCHOR106]
5702	add	x3, x0, x27
5703	ldr	w0, [x0, x27]
5704	cbz	w0, .L774
5705	ldr	w0, [x3, 4]
5706	add	w19, w19, 1
5707	str	x1, [x29, 96]
5708	and	w19, w19, 65535
5709	lsr	w0, w0, 10
5710	bl	FtlBbmMapBadBlock
5711	ldr	x1, [x29, 96]
5712.L774:
5713	add	x27, x27, 32
5714	cmp	x1, x27
5715	bne	.L775
5716	add	w24, w24, 1
5717	cmp	w28, w24, uxth
5718	bhi	.L776
5719	mov	x24, 0
5720.L778:
5721	cbz	w22, .L777
5722	ldr	x0, [x21, #:lo12:.LANCHOR106]
5723	add	x1, x0, x24
5724	ldr	w0, [x0, x24]
5725	cbnz	w0, .L777
5726	ldr	w0, [x1, 4]
5727	mov	w1, 1
5728	lsr	w0, w0, 10
5729	bl	FtlFreeSysBlkQueueIn
5730.L777:
5731	add	x24, x24, 32
5732	cmp	x24, x27
5733	bne	.L778
5734	cmp	w23, 63
5735	ccmp	w22, 0, 0, hi
5736	beq	.L758
5737	ldr	x0, [x21, #:lo12:.LANCHOR106]
5738	mov	w2, w20
5739	mov	w1, w26
5740	bl	FlashEraseBlocks
5741.L758:
5742	mov	w0, w19
5743	ldp	x19, x20, [sp, 16]
5744	ldp	x21, x22, [sp, 32]
5745	ldp	x23, x24, [sp, 48]
5746	ldp	x25, x26, [sp, 64]
5747	ldp	x27, x28, [sp, 80]
5748	ldp	x29, x30, [sp], 128
5749	ret
5750.L763:
5751	lsl	x0, x5, 5
5752	mov	w1, w23
5753	str	wzr, [x6, x0]
5754	ldrb	w0, [x7, x5]
5755	bl	V2P_block
5756	and	w13, w0, 65535
5757	mov	w14, w13
5758	cbz	w22, .L760
5759	bl	IsBlkInVendorPart
5760	cbnz	w0, .L761
5761.L760:
5762	mov	w0, w14
5763	bl	FtlBbmIsBadBlock
5764	cbnz	w0, .L762
5765	ubfiz	x0, x24, 5, 16
5766	mul	w1, w24, w12
5767	add	x0, x6, x0
5768	add	w24, w24, 1
5769	and	w24, w24, 65535
5770	lsl	w13, w13, 10
5771	asr	w1, w1, 2
5772	add	x1, x11, x1, sxtw 2
5773	str	w13, [x0, 4]
5774	stp	x10, x1, [x0, 8]
5775.L761:
5776	add	x5, x5, 1
5777	b	.L759
5778.L762:
5779	add	w19, w19, 1
5780	and	w19, w19, 65535
5781	b	.L761
5782.L780:
5783	mov	w26, 0
5784	mov	w28, 2
5785	b	.L768
5786.L772:
5787	lsl	x0, x5, 5
5788	mov	w1, w23
5789	str	wzr, [x6, x0]
5790	ldr	x0, [x29, 104]
5791	ldrb	w0, [x0, x5]
5792	bl	V2P_block
5793	and	w12, w0, 65535
5794	mov	w13, w12
5795	cbz	w22, .L770
5796	bl	IsBlkInVendorPart
5797	cbnz	w0, .L771
5798.L770:
5799	mov	w0, w13
5800	bl	FtlBbmIsBadBlock
5801	cbnz	w0, .L771
5802	ubfiz	x0, x20, 5, 16
5803	mul	w1, w20, w11
5804	add	x0, x6, x0
5805	add	w20, w20, 1
5806	and	w20, w20, 65535
5807	add	w12, w24, w12, lsl 10
5808	asr	w1, w1, 2
5809	add	x1, x10, x1, sxtw 2
5810	str	w12, [x0, 4]
5811	stp	x8, x1, [x0, 8]
5812.L771:
5813	add	x5, x5, 1
5814	b	.L769
5815	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
5816	.section	.text.Ftl_write_map_blk_to_last_page,"ax",@progbits
5817	.align	2
5818	.global	Ftl_write_map_blk_to_last_page
5819	.type	Ftl_write_map_blk_to_last_page, %function
5820Ftl_write_map_blk_to_last_page:
5821	stp	x29, x30, [sp, -64]!
5822	mov	w1, 65535
5823	add	x29, sp, 0
5824	stp	x19, x20, [sp, 16]
5825	mov	x19, x0
5826	ldr	x20, [x0, 16]
5827	stp	x21, x22, [sp, 32]
5828	ldrh	w0, [x0]
5829	str	x23, [sp, 48]
5830	cmp	w0, w1
5831	bne	.L802
5832	ldrh	w0, [x19, 8]
5833	cbz	w0, .L803
5834	adrp	x1, .LANCHOR154
5835	adrp	x0, .LC1
5836	mov	w2, 641
5837	add	x1, x1, :lo12:.LANCHOR154
5838	add	x0, x0, :lo12:.LC1
5839	bl	printf
5840.L803:
5841	ldrh	w0, [x19, 8]
5842	add	w0, w0, 1
5843	strh	w0, [x19, 8]
5844	bl	FtlFreeSysBlkQueueOut
5845	strh	w0, [x20]
5846	ldr	w0, [x19, 48]
5847	strh	wzr, [x19, 2]
5848	add	w0, w0, 1
5849	strh	wzr, [x19]
5850	str	w0, [x19, 48]
5851.L804:
5852	mov	w0, 0
5853	ldr	x23, [sp, 48]
5854	ldp	x19, x20, [sp, 16]
5855	ldp	x21, x22, [sp, 32]
5856	ldp	x29, x30, [sp], 64
5857	ret
5858.L802:
5859	ubfiz	x0, x0, 1, 16
5860	adrp	x1, .LANCHOR123
5861	adrp	x23, .LANCHOR115
5862	ldr	x22, [x19, 40]
5863	ldr	x1, [x1, #:lo12:.LANCHOR123]
5864	ldrh	w21, [x20, x0]
5865	adrp	x20, .LANCHOR148
5866	ldrh	w0, [x19, 2]
5867	add	x2, x20, :lo12:.LANCHOR148
5868	orr	w0, w0, w21, lsl 10
5869	str	w0, [x2, 4]
5870	ldr	x0, [x23, #:lo12:.LANCHOR115]
5871	str	x1, [x2, 16]
5872	str	x0, [x2, 8]
5873	ldr	w2, [x19, 48]
5874	str	w2, [x1, 4]
5875	mov	w2, -1291
5876	strh	w2, [x1, 8]
5877	ldrh	w2, [x19, 4]
5878	strh	w2, [x1]
5879	strh	w21, [x1, 2]
5880	adrp	x1, .LANCHOR20
5881	ldrh	w2, [x1, #:lo12:.LANCHOR20]
5882	mov	w1, 255
5883	lsl	w2, w2, 3
5884	bl	ftl_memset
5885	ldrh	w4, [x19, 6]
5886	mov	x1, 0
5887	ldr	x3, [x23, #:lo12:.LANCHOR115]
5888	mov	w2, 0
5889.L805:
5890	cmp	w4, w1, uxth
5891	bhi	.L807
5892	mov	w2, 1
5893	mov	w3, 0
5894	mov	w1, w2
5895	add	x0, x20, :lo12:.LANCHOR148
5896	bl	FlashProgPages
5897	ldrh	w0, [x19, 2]
5898	add	w0, w0, 1
5899	strh	w0, [x19, 2]
5900	mov	x0, x19
5901	bl	ftl_map_blk_gc
5902	b	.L804
5903.L807:
5904	ldr	w0, [x22, x1, lsl 2]
5905	cmp	w21, w0, lsr 10
5906	bne	.L806
5907	add	w2, w2, 1
5908	and	w2, w2, 65535
5909	ubfiz	x0, x2, 1, 16
5910	str	w1, [x3, x0, lsl 2]
5911	add	x0, x0, 1
5912	ldr	w5, [x22, x1, lsl 2]
5913	str	w5, [x3, x0, lsl 2]
5914.L806:
5915	add	x1, x1, 1
5916	b	.L805
5917	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
5918	.section	.text.FtlMapWritePage,"ax",@progbits
5919	.align	2
5920	.global	FtlMapWritePage
5921	.type	FtlMapWritePage, %function
5922FtlMapWritePage:
5923	stp	x29, x30, [sp, -112]!
5924	add	x29, sp, 0
5925	stp	x23, x24, [sp, 48]
5926	adrp	x23, .LANCHOR66
5927	stp	x25, x26, [sp, 64]
5928	adrp	x24, .LANCHOR155
5929	stp	x27, x28, [sp, 80]
5930	adrp	x26, .LANCHOR20
5931	stp	x19, x20, [sp, 16]
5932	mov	w25, w1
5933	mov	x19, x0
5934	mov	x27, x2
5935	add	x23, x23, :lo12:.LANCHOR66
5936	add	x24, x24, :lo12:.LANCHOR155
5937	add	x28, x26, :lo12:.LANCHOR20
5938	stp	x21, x22, [sp, 32]
5939	mov	w22, 0
5940.L813:
5941	ldr	w0, [x23]
5942	ldrh	w1, [x19, 2]
5943	add	w0, w0, 1
5944	str	w0, [x23]
5945	ldrh	w0, [x26, #:lo12:.LANCHOR20]
5946	sub	w0, w0, #1
5947	cmp	w1, w0
5948	bge	.L814
5949	ldrh	w1, [x19]
5950	mov	w0, 65535
5951	cmp	w1, w0
5952	bne	.L815
5953.L814:
5954	mov	x0, x19
5955	bl	Ftl_write_map_blk_to_last_page
5956.L815:
5957	ldrh	w1, [x19]
5958	ldr	x0, [x19, 16]
5959	ldrh	w0, [x0, x1, lsl 1]
5960	cbnz	w0, .L816
5961	adrp	x0, .LC1
5962	mov	w2, 699
5963	mov	x1, x24
5964	add	x0, x0, :lo12:.LC1
5965	bl	printf
5966.L816:
5967	ldrh	w1, [x19]
5968	ldrh	w0, [x19, 10]
5969	cmp	w1, w0
5970	bcc	.L817
5971	adrp	x0, .LC1
5972	mov	w2, 700
5973	mov	x1, x24
5974	add	x0, x0, :lo12:.LC1
5975	bl	printf
5976.L817:
5977	ldrh	w1, [x19]
5978	adrp	x21, .LANCHOR148
5979	ldr	x0, [x19, 16]
5980	add	x20, x21, :lo12:.LANCHOR148
5981	mov	w2, 16
5982	ldrh	w3, [x0, x1, lsl 1]
5983	mov	w1, 0
5984	ldrh	w0, [x19, 2]
5985	str	w3, [x29, 108]
5986	str	x27, [x20, 8]
5987	orr	w0, w0, w3, lsl 10
5988	str	w0, [x20, 4]
5989	adrp	x0, .LANCHOR123
5990	ldr	x0, [x0, #:lo12:.LANCHOR123]
5991	str	x0, [x20, 16]
5992	bl	ftl_memset
5993	ldr	x0, [x20, 16]
5994	ldr	w1, [x19, 48]
5995	ldr	w3, [x29, 108]
5996	str	w1, [x0, 4]
5997	ldrh	w1, [x19, 4]
5998	strh	w1, [x0]
5999	strh	w3, [x0, 2]
6000	mov	w3, 1
6001	strh	w25, [x0, 8]
6002	mov	w1, w3
6003	mov	w2, w3
6004	mov	x0, x20
6005	bl	FlashProgPages
6006	ldrh	w0, [x19, 2]
6007	ldr	w1, [x21, #:lo12:.LANCHOR148]
6008	add	w0, w0, 1
6009	and	w0, w0, 65535
6010	strh	w0, [x19, 2]
6011	cmn	w1, #1
6012	bne	.L818
6013	ldr	w1, [x20, 4]
6014	adrp	x0, .LC88
6015	add	x0, x0, :lo12:.LC88
6016	add	w22, w22, 1
6017	and	w22, w22, 65535
6018	bl	printf
6019	ldrh	w0, [x19, 2]
6020	cmp	w0, 2
6021	bhi	.L819
6022	ldrh	w0, [x28]
6023	sub	w0, w0, #1
6024	strh	w0, [x19, 2]
6025.L819:
6026	cmp	w22, 3
6027	bls	.L820
6028	add	x21, x21, :lo12:.LANCHOR148
6029	adrp	x0, .LC89
6030	mov	w2, w22
6031	add	x0, x0, :lo12:.LC89
6032	ldr	w1, [x21, 4]
6033	bl	printf
6034.L821:
6035	b	.L821
6036.L820:
6037	ldr	w0, [x19, 52]
6038	cbz	w0, .L813
6039.L835:
6040	b	.L835
6041.L818:
6042	cmp	w0, 1
6043	beq	.L824
6044	cmp	w1, 256
6045	beq	.L824
6046	ldr	w0, [x19, 56]
6047	cbz	w0, .L825
6048.L824:
6049	str	wzr, [x19, 56]
6050	b	.L813
6051.L825:
6052	ldr	x0, [x19, 40]
6053	ldr	w1, [x20, 4]
6054	ldp	x21, x22, [sp, 32]
6055	ldp	x23, x24, [sp, 48]
6056	ldp	x27, x28, [sp, 80]
6057	str	w1, [x0, w25, uxtw 2]
6058	ldp	x19, x20, [sp, 16]
6059	mov	w0, 0
6060	ldp	x25, x26, [sp, 64]
6061	ldp	x29, x30, [sp], 112
6062	ret
6063	.size	FtlMapWritePage, .-FtlMapWritePage
6064	.section	.text.load_l2p_region,"ax",@progbits
6065	.align	2
6066	.global	load_l2p_region
6067	.type	load_l2p_region, %function
6068load_l2p_region:
6069	stp	x29, x30, [sp, -96]!
6070	add	x29, sp, 0
6071	stp	x23, x24, [sp, 48]
6072	adrp	x24, .LANCHOR32
6073	stp	x19, x20, [sp, 16]
6074	and	w20, w0, 65535
6075	stp	x21, x22, [sp, 32]
6076	and	x19, x1, 65535
6077	ldrh	w0, [x24, #:lo12:.LANCHOR32]
6078	stp	x25, x26, [sp, 64]
6079	str	x27, [sp, 80]
6080	cmp	w0, w20
6081	bcs	.L838
6082	adrp	x1, .LANCHOR156
6083	adrp	x0, .LC1
6084	mov	w2, 485
6085	add	x1, x1, :lo12:.LANCHOR156
6086	add	x0, x0, :lo12:.LC1
6087	bl	printf
6088.L838:
6089	adrp	x27, .LANCHOR134
6090	ubfiz	x0, x20, 2, 16
6091	adrp	x22, .LANCHOR55
6092	ldr	x1, [x27, #:lo12:.LANCHOR134]
6093	ldr	w23, [x1, x0]
6094	cbnz	w23, .L839
6095	ldr	x0, [x22, #:lo12:.LANCHOR55]
6096	lsl	x19, x19, 4
6097	adrp	x1, .LANCHOR23
6098	add	x0, x0, x19
6099	ldrh	w2, [x1, #:lo12:.LANCHOR23]
6100	mov	w1, 255
6101	ldr	x0, [x0, 8]
6102	bl	ftl_memset
6103	ldr	x0, [x22, #:lo12:.LANCHOR55]
6104	add	x1, x0, x19
6105	strh	w20, [x0, x19]
6106	str	wzr, [x1, 4]
6107.L840:
6108	mov	w0, 0
6109	ldr	x27, [sp, 80]
6110	ldp	x19, x20, [sp, 16]
6111	ldp	x21, x22, [sp, 32]
6112	ldp	x23, x24, [sp, 48]
6113	ldp	x25, x26, [sp, 64]
6114	ldp	x29, x30, [sp], 96
6115	ret
6116.L839:
6117	ldr	x0, [x22, #:lo12:.LANCHOR55]
6118	lsl	x19, x19, 4
6119	adrp	x26, .LANCHOR148
6120	add	x21, x26, :lo12:.LANCHOR148
6121	add	x0, x0, x19
6122	mov	w2, 1
6123	mov	w1, w2
6124	str	w23, [x21, 4]
6125	ldr	x0, [x0, 8]
6126	str	x0, [x21, 8]
6127	adrp	x0, .LANCHOR123
6128	ldr	x0, [x0, #:lo12:.LANCHOR123]
6129	str	x0, [x21, 16]
6130	mov	x0, x21
6131	bl	FlashReadPages
6132	ldr	x25, [x21, 16]
6133	ldrh	w0, [x25, 8]
6134	cmp	w0, w20
6135	beq	.L841
6136	mov	w2, w23
6137	mov	w1, w20
6138	adrp	x0, .LC90
6139	add	x0, x0, :lo12:.LC90
6140	bl	printf
6141	ldr	x1, [x21, 16]
6142	mov	w3, 4
6143	adrp	x0, .LC91
6144	mov	w2, w3
6145	add	x0, x0, :lo12:.LC91
6146	bl	rknand_print_hex
6147	ldrh	w3, [x24, #:lo12:.LANCHOR32]
6148	adrp	x0, .LC92
6149	ldr	x1, [x27, #:lo12:.LANCHOR134]
6150	mov	w2, 4
6151	add	x0, x0, :lo12:.LC92
6152	bl	rknand_print_hex
6153.L842:
6154	ldrh	w0, [x25, 8]
6155	cmp	w0, w20
6156	beq	.L843
6157	adrp	x1, .LANCHOR156
6158	adrp	x0, .LC1
6159	mov	w2, 508
6160	add	x1, x1, :lo12:.LANCHOR156
6161	add	x0, x0, :lo12:.LC1
6162	bl	printf
6163.L843:
6164	ldr	x0, [x22, #:lo12:.LANCHOR55]
6165	add	x1, x0, x19
6166	str	wzr, [x1, 4]
6167	strh	w20, [x0, x19]
6168	b	.L840
6169.L841:
6170	ldr	w0, [x26, #:lo12:.LANCHOR148]
6171	cmp	w0, 256
6172	bne	.L842
6173	mov	w2, w23
6174	mov	w1, w20
6175	adrp	x0, .LC93
6176	add	x0, x0, :lo12:.LC93
6177	bl	printf
6178	ldr	x0, [x22, #:lo12:.LANCHOR55]
6179	mov	w1, w20
6180	add	x0, x0, x19
6181	ldr	x2, [x0, 8]
6182	adrp	x0, .LANCHOR140
6183	add	x0, x0, :lo12:.LANCHOR140
6184	bl	FtlMapWritePage
6185	b	.L842
6186	.size	load_l2p_region, .-load_l2p_region
6187	.section	.text.ftl_map_blk_gc,"ax",@progbits
6188	.align	2
6189	.global	ftl_map_blk_gc
6190	.type	ftl_map_blk_gc, %function
6191ftl_map_blk_gc:
6192	stp	x29, x30, [sp, -96]!
6193	add	x29, sp, 0
6194	stp	x19, x20, [sp, 16]
6195	mov	x19, x0
6196	stp	x23, x24, [sp, 48]
6197	adrp	x24, .LANCHOR20
6198	stp	x25, x26, [sp, 64]
6199	stp	x21, x22, [sp, 32]
6200	stp	x27, x28, [sp, 80]
6201	ldr	x20, [x0, 16]
6202	ldr	x25, [x0, 40]
6203	bl	ftl_free_no_use_map_blk
6204	ldrh	w1, [x19, 10]
6205	ldrh	w2, [x19, 8]
6206	sub	w1, w1, #5
6207	cmp	w2, w1
6208	blt	.L846
6209	ubfiz	x0, x0, 1, 16
6210	ldrh	w22, [x20, x0]
6211	cbz	w22, .L846
6212	ldr	w1, [x19, 52]
6213	cbnz	w1, .L846
6214	mov	w1, 1
6215	str	w1, [x19, 52]
6216	strh	wzr, [x20, x0]
6217	ldrh	w0, [x19, 8]
6218	ldrh	w1, [x19, 2]
6219	sub	w0, w0, #1
6220	strh	w0, [x19, 8]
6221	ldrh	w0, [x24, #:lo12:.LANCHOR20]
6222	cmp	w1, w0
6223	bcc	.L847
6224	mov	x0, x19
6225	bl	ftl_map_blk_alloc_new_blk
6226.L847:
6227	adrp	x26, .LANCHOR148
6228	adrp	x23, .LANCHOR157
6229	add	x27, x26, :lo12:.LANCHOR148
6230	add	x23, x23, :lo12:.LANCHOR157
6231	mov	w20, 0
6232.L848:
6233	ldrh	w0, [x19, 6]
6234	cmp	w0, w20
6235	bhi	.L855
6236	mov	w1, 1
6237	mov	w0, w22
6238	bl	FtlFreeSysBlkQueueIn
6239	str	wzr, [x19, 52]
6240.L846:
6241	ldrh	w1, [x19, 2]
6242	ldrh	w0, [x24, #:lo12:.LANCHOR20]
6243	cmp	w1, w0
6244	bcc	.L856
6245	mov	x0, x19
6246	bl	ftl_map_blk_alloc_new_blk
6247.L856:
6248	mov	w0, 0
6249	ldp	x19, x20, [sp, 16]
6250	ldp	x21, x22, [sp, 32]
6251	ldp	x23, x24, [sp, 48]
6252	ldp	x25, x26, [sp, 64]
6253	ldp	x27, x28, [sp, 80]
6254	ldp	x29, x30, [sp], 96
6255	ret
6256.L855:
6257	ubfiz	x0, x20, 2, 16
6258	add	x28, x25, x0
6259	ldr	w1, [x25, x0]
6260	cmp	w22, w1, lsr 10
6261	bne	.L849
6262	adrp	x2, .LANCHOR116
6263	add	x0, x26, :lo12:.LANCHOR148
6264	ldr	x2, [x2, #:lo12:.LANCHOR116]
6265	str	x2, [x0, 8]
6266	adrp	x2, .LANCHOR123
6267	str	w1, [x0, 4]
6268	ldr	x21, [x2, #:lo12:.LANCHOR123]
6269	mov	w2, 1
6270	str	x21, [x0, 16]
6271	mov	w1, w2
6272	bl	FlashReadPages
6273	ldrh	w0, [x21, 8]
6274	cmp	w0, w20
6275	beq	.L850
6276	adrp	x0, .LC1
6277	mov	w2, 611
6278	mov	x1, x23
6279	add	x0, x0, :lo12:.LC1
6280	bl	printf
6281.L850:
6282	ldr	w0, [x27]
6283	cmn	w0, #1
6284	bne	.L851
6285.L853:
6286	str	wzr, [x28]
6287.L852:
6288	b	.L852
6289.L851:
6290	ldrh	w0, [x21, 8]
6291	cmp	w0, w20
6292	bne	.L853
6293	ldrh	w1, [x21]
6294	ldrh	w0, [x19, 4]
6295	cmp	w1, w0
6296	bne	.L853
6297	ldr	x2, [x27, 8]
6298	mov	w1, w20
6299	mov	x0, x19
6300	bl	FtlMapWritePage
6301.L849:
6302	add	w20, w20, 1
6303	and	w20, w20, 65535
6304	b	.L848
6305	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
6306	.section	.text.FtlMapTblRecovery,"ax",@progbits
6307	.align	2
6308	.global	FtlMapTblRecovery
6309	.type	FtlMapTblRecovery, %function
6310FtlMapTblRecovery:
6311	stp	x29, x30, [sp, -144]!
6312	mov	w1, 0
6313	add	x29, sp, 0
6314	stp	x19, x20, [sp, 16]
6315	mov	x19, x0
6316	stp	x23, x24, [sp, 48]
6317	adrp	x20, .LANCHOR148
6318	ldrh	w23, [x0, 6]
6319	adrp	x24, .LANCHOR20
6320	stp	x21, x22, [sp, 32]
6321	ldr	x21, [x0, 40]
6322	ldr	x22, [x0, 16]
6323	lsl	w2, w23, 2
6324	ldr	x0, [x0, 24]
6325	str	x0, [x29, 128]
6326	ldrh	w0, [x19, 8]
6327	stp	x25, x26, [sp, 64]
6328	stp	x27, x28, [sp, 80]
6329	mov	w27, 0
6330	str	w0, [x29, 140]
6331	mov	x0, x21
6332	bl	ftl_memset
6333	str	x20, [x29, 120]
6334	adrp	x7, .LANCHOR115
6335	add	x3, x20, :lo12:.LANCHOR148
6336	mov	x26, x7
6337	mov	x20, x3
6338	ldr	x0, [x7, #:lo12:.LANCHOR115]
6339	str	x0, [x3, 8]
6340	adrp	x0, .LANCHOR123
6341	stp	wzr, wzr, [x19, 48]
6342	ldr	x25, [x0, #:lo12:.LANCHOR123]
6343	mov	w0, -1
6344	str	x25, [x3, 16]
6345	strh	w0, [x19]
6346	strh	w0, [x19, 2]
6347	mov	w0, 1
6348	str	w0, [x19, 56]
6349	ldr	w0, [x29, 140]
6350	sub	w0, w0, #1
6351	str	w0, [x29, 136]
6352	add	x0, x24, :lo12:.LANCHOR20
6353	str	x0, [x29, 112]
6354.L863:
6355	ldr	w0, [x29, 140]
6356	cmp	w27, w0
6357	bge	.L880
6358	ldr	w0, [x29, 136]
6359	sxtw	x28, w27
6360	cmp	w27, w0
6361	bne	.L864
6362	lsl	x0, x28, 1
6363	mov	w1, 1
6364	add	x24, x22, x0
6365	ldrh	w0, [x22, x0]
6366	mov	w22, 0
6367	bl	FtlGetLastWrittenPage
6368	sxth	w26, w0
6369	add	w0, w0, 1
6370	strh	w0, [x19, 2]
6371	ldr	x0, [x29, 128]
6372	strh	w27, [x19]
6373	ldr	w0, [x0, x28, lsl 2]
6374	str	w0, [x19, 48]
6375	ldr	x0, [x29, 120]
6376	add	x20, x0, :lo12:.LANCHOR148
6377.L865:
6378	cmp	w22, w26
6379	ble	.L867
6380.L880:
6381	mov	x0, x19
6382	bl	ftl_free_no_use_map_blk
6383	adrp	x0, .LANCHOR20
6384	ldrh	w1, [x19, 2]
6385	ldrh	w0, [x0, #:lo12:.LANCHOR20]
6386	cmp	w1, w0
6387	bne	.L869
6388	mov	x0, x19
6389	bl	ftl_map_blk_alloc_new_blk
6390.L869:
6391	mov	x0, x19
6392	bl	ftl_map_blk_gc
6393	mov	x0, x19
6394	bl	ftl_map_blk_gc
6395	mov	w0, 0
6396	ldp	x19, x20, [sp, 16]
6397	ldp	x21, x22, [sp, 32]
6398	ldp	x23, x24, [sp, 48]
6399	ldp	x25, x26, [sp, 64]
6400	ldp	x27, x28, [sp, 80]
6401	ldp	x29, x30, [sp], 144
6402	ret
6403.L867:
6404	ldrh	w0, [x24]
6405	mov	w2, 1
6406	mov	w1, w2
6407	orr	w0, w22, w0, lsl 10
6408	str	w0, [x20, 4]
6409	mov	x0, x20
6410	bl	FlashReadPages
6411	ldr	w0, [x20]
6412	cmn	w0, #1
6413	beq	.L866
6414	ldrh	w0, [x25, 8]
6415	cmp	w23, w0
6416	bls	.L866
6417	ldrh	w2, [x25]
6418	ldrh	w1, [x19, 4]
6419	cmp	w2, w1
6420	bne	.L866
6421	ubfiz	x0, x0, 2, 16
6422	ldr	w1, [x20, 4]
6423	str	w1, [x21, x0]
6424.L866:
6425	add	w22, w22, 1
6426	sxth	w22, w22
6427	b	.L865
6428.L864:
6429	ldr	x0, [x26, #:lo12:.LANCHOR115]
6430	mov	w2, 1
6431	str	x0, [x20, 8]
6432	lsl	x0, x28, 1
6433	ldrh	w1, [x24, #:lo12:.LANCHOR20]
6434	add	x28, x22, x0
6435	ldrh	w0, [x22, x0]
6436	sub	w1, w1, #1
6437	orr	w0, w1, w0, lsl 10
6438	mov	w1, w2
6439	str	w0, [x20, 4]
6440	mov	x0, x20
6441	bl	FlashReadPages
6442	ldr	w0, [x20]
6443	cmn	w0, #1
6444	beq	.L882
6445	ldrh	w1, [x25]
6446	ldrh	w0, [x19, 4]
6447	cmp	w1, w0
6448	bne	.L882
6449	ldrh	w1, [x25, 8]
6450	mov	w0, 64245
6451	cmp	w1, w0
6452	beq	.L871
6453.L882:
6454	mov	w5, 0
6455.L872:
6456	ldr	x0, [x29, 112]
6457	ldrh	w0, [x0]
6458	cmp	w5, w0
6459	bge	.L878
6460	ldrh	w0, [x28]
6461	mov	w2, 1
6462	str	w5, [x29, 108]
6463	mov	w1, w2
6464	orr	w0, w5, w0, lsl 10
6465	str	w0, [x20, 4]
6466	mov	x0, x20
6467	bl	FlashReadPages
6468	ldr	w0, [x20]
6469	ldr	w5, [x29, 108]
6470	cmn	w0, #1
6471	beq	.L876
6472	ldrh	w0, [x25, 8]
6473	cmp	w23, w0
6474	bls	.L876
6475	ldrh	w2, [x25]
6476	ldrh	w1, [x19, 4]
6477	cmp	w2, w1
6478	bne	.L876
6479	ubfiz	x0, x0, 2, 16
6480	ldr	w1, [x20, 4]
6481	str	w1, [x21, x0]
6482.L876:
6483	add	w5, w5, 1
6484	sxth	w5, w5
6485	b	.L872
6486.L871:
6487	ldrh	w5, [x24, #:lo12:.LANCHOR20]
6488	mov	w0, 0
6489	ldr	x10, [x26, #:lo12:.LANCHOR115]
6490	sub	w5, w5, #1
6491.L873:
6492	cmp	w0, w5
6493	blt	.L875
6494.L878:
6495	add	w4, w27, 1
6496	sxth	w27, w4
6497	b	.L863
6498.L875:
6499	lsl	w2, w0, 1
6500	sxtw	x2, w2
6501	lsl	x1, x2, 2
6502	ldrh	w1, [x10, x1]
6503	cmp	w23, w1
6504	bls	.L874
6505	add	x2, x2, 1
6506	ubfiz	x1, x1, 2, 16
6507	ldr	w2, [x10, x2, lsl 2]
6508	str	w2, [x21, x1]
6509.L874:
6510	add	w0, w0, 1
6511	sxth	w0, w0
6512	b	.L873
6513	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
6514	.section	.text.FtlLoadVonderInfo,"ax",@progbits
6515	.align	2
6516	.global	FtlLoadVonderInfo
6517	.type	FtlLoadVonderInfo, %function
6518FtlLoadVonderInfo:
6519	stp	x29, x30, [sp, -16]!
6520	adrp	x1, .LANCHOR27
6521	adrp	x0, .LANCHOR158
6522	add	x0, x0, :lo12:.LANCHOR158
6523	add	x29, sp, 0
6524	ldrh	w1, [x1, #:lo12:.LANCHOR27]
6525	strh	w1, [x0, 10]
6526	mov	w1, -3962
6527	strh	w1, [x0, 4]
6528	adrp	x1, .LANCHOR35
6529	ldrh	w1, [x1, #:lo12:.LANCHOR35]
6530	strh	w1, [x0, 8]
6531	adrp	x1, .LANCHOR28
6532	ldrh	w1, [x1, #:lo12:.LANCHOR28]
6533	strh	w1, [x0, 6]
6534	adrp	x1, .LANCHOR36
6535	ldr	x1, [x1, #:lo12:.LANCHOR36]
6536	str	x1, [x0, 16]
6537	adrp	x1, .LANCHOR132
6538	ldr	x1, [x1, #:lo12:.LANCHOR132]
6539	str	x1, [x0, 24]
6540	adrp	x1, .LANCHOR131
6541	ldr	x1, [x1, #:lo12:.LANCHOR131]
6542	str	x1, [x0, 32]
6543	adrp	x1, .LANCHOR133
6544	ldr	x1, [x1, #:lo12:.LANCHOR133]
6545	str	x1, [x0, 40]
6546	bl	FtlMapTblRecovery
6547	mov	w0, 0
6548	ldp	x29, x30, [sp], 16
6549	ret
6550	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
6551	.section	.text.FtlLoadMapInfo,"ax",@progbits
6552	.align	2
6553	.global	FtlLoadMapInfo
6554	.type	FtlLoadMapInfo, %function
6555FtlLoadMapInfo:
6556	stp	x29, x30, [sp, -16]!
6557	add	x29, sp, 0
6558	bl	FtlL2PDataInit
6559	adrp	x0, .LANCHOR140
6560	add	x0, x0, :lo12:.LANCHOR140
6561	bl	FtlMapTblRecovery
6562	mov	w0, 0
6563	ldp	x29, x30, [sp], 16
6564	ret
6565	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
6566	.section	.text.flush_l2p_region,"ax",@progbits
6567	.align	2
6568	.global	flush_l2p_region
6569	.type	flush_l2p_region, %function
6570flush_l2p_region:
6571	stp	x29, x30, [sp, -32]!
6572	add	x29, sp, 0
6573	stp	x19, x20, [sp, 16]
6574	adrp	x20, .LANCHOR55
6575	ubfiz	x19, x0, 4, 16
6576	ldr	x0, [x20, #:lo12:.LANCHOR55]
6577	add	x1, x0, x19
6578	ldr	x2, [x1, 8]
6579	ldrh	w1, [x0, x19]
6580	adrp	x0, .LANCHOR140
6581	add	x0, x0, :lo12:.LANCHOR140
6582	bl	FtlMapWritePage
6583	ldr	x0, [x20, #:lo12:.LANCHOR55]
6584	add	x0, x0, x19
6585	ldp	x19, x20, [sp, 16]
6586	ldr	w1, [x0, 4]
6587	and	w1, w1, 2147483647
6588	str	w1, [x0, 4]
6589	mov	w0, 0
6590	ldp	x29, x30, [sp], 32
6591	ret
6592	.size	flush_l2p_region, .-flush_l2p_region
6593	.section	.text.log2phys,"ax",@progbits
6594	.align	2
6595	.global	log2phys
6596	.type	log2phys, %function
6597log2phys:
6598	stp	x29, x30, [sp, -80]!
6599	add	x29, sp, 0
6600	stp	x25, x26, [sp, 64]
6601	mov	w25, w0
6602	adrp	x0, .LANCHOR22
6603	stp	x23, x24, [sp, 48]
6604	stp	x19, x20, [sp, 16]
6605	mov	x20, x1
6606	ldrh	w24, [x0, #:lo12:.LANCHOR22]
6607	adrp	x0, .LANCHOR61
6608	stp	x21, x22, [sp, 32]
6609	mov	x19, x0
6610	ldr	w1, [x0, #:lo12:.LANCHOR61]
6611	mov	w21, w2
6612	cmp	w25, w1
6613	bcc	.L897
6614	adrp	x1, .LANCHOR159
6615	adrp	x0, .LC1
6616	mov	w2, 811
6617	add	x1, x1, :lo12:.LANCHOR159
6618	add	x0, x0, :lo12:.LC1
6619	bl	printf
6620.L897:
6621	ldr	w0, [x19, #:lo12:.LANCHOR61]
6622	cmp	w25, w0
6623	bcs	.L898
6624	adrp	x23, .LANCHOR55
6625	add	w24, w24, 7
6626	adrp	x0, .LANCHOR33
6627	ldr	x2, [x23, #:lo12:.LANCHOR55]
6628	lsr	w22, w25, w24
6629	and	w22, w22, 65535
6630	ldrh	w1, [x0, #:lo12:.LANCHOR33]
6631	mov	x0, 0
6632.L899:
6633	and	x19, x0, 65535
6634	cmp	w19, w1
6635	bcc	.L904
6636	bl	select_l2p_ram_region
6637	and	x19, x0, 65535
6638	ldr	x2, [x23, #:lo12:.LANCHOR55]
6639	ubfiz	x1, x19, 4, 16
6640	mov	w26, w0
6641	add	x3, x2, x1
6642	ldrh	w2, [x2, x1]
6643	mov	w1, 65535
6644	cmp	w2, w1
6645	beq	.L905
6646	ldr	w1, [x3, 4]
6647	tbz	w1, #31, .L905
6648	bl	flush_l2p_region
6649.L905:
6650	mov	w1, w26
6651	mov	w0, w22
6652	bl	load_l2p_region
6653	b	.L901
6654.L898:
6655	mov	w0, -1
6656	cbnz	w21, .L896
6657	str	w0, [x20]
6658.L896:
6659	ldp	x19, x20, [sp, 16]
6660	ldp	x21, x22, [sp, 32]
6661	ldp	x23, x24, [sp, 48]
6662	ldp	x25, x26, [sp, 64]
6663	ldp	x29, x30, [sp], 80
6664	ret
6665.L904:
6666	add	x0, x0, 1
6667	add	x3, x2, x0, lsl 4
6668	ldrh	w3, [x3, -16]
6669	cmp	w3, w22
6670	bne	.L899
6671.L901:
6672	mov	x0, 1
6673	ldr	x1, [x23, #:lo12:.LANCHOR55]
6674	lsl	x0, x0, x24
6675	sub	w0, w0, #1
6676	and	w0, w0, w25
6677	and	x0, x0, 65535
6678	add	x1, x1, x19, lsl 4
6679	cbnz	w21, .L902
6680	ldr	x1, [x1, 8]
6681	ldr	w0, [x1, x0, lsl 2]
6682	str	w0, [x20]
6683.L903:
6684	ldr	x0, [x23, #:lo12:.LANCHOR55]
6685	add	x19, x0, x19, lsl 4
6686	ldr	w0, [x19, 4]
6687	cmn	w0, #1
6688	beq	.L907
6689	add	w0, w0, 1
6690	str	w0, [x19, 4]
6691.L907:
6692	mov	w0, 0
6693	b	.L896
6694.L902:
6695	ldr	x2, [x1, 8]
6696	ldr	w3, [x20]
6697	str	w3, [x2, x0, lsl 2]
6698	ldr	w0, [x1, 4]
6699	orr	w0, w0, -2147483648
6700	str	w0, [x1, 4]
6701	adrp	x0, .LANCHOR56
6702	strh	w22, [x0, #:lo12:.LANCHOR56]
6703	b	.L903
6704	.size	log2phys, .-log2phys
6705	.section	.text.FtlReUsePrevPpa,"ax",@progbits
6706	.align	2
6707	.global	FtlReUsePrevPpa
6708	.type	FtlReUsePrevPpa, %function
6709FtlReUsePrevPpa:
6710	stp	x29, x30, [sp, -80]!
6711	add	x29, sp, 0
6712	stp	x21, x22, [sp, 32]
6713	adrp	x22, .LANCHOR42
6714	stp	x19, x20, [sp, 16]
6715	mov	w21, w0
6716	str	w1, [x29, 76]
6717	lsr	w0, w1, 10
6718	str	x23, [sp, 48]
6719	bl	P2V_block_in_plane
6720	ldr	x2, [x22, #:lo12:.LANCHOR42]
6721	and	w3, w0, 65535
6722	ubfiz	x20, x3, 1, 16
6723	ldrh	w1, [x2, x20]
6724	cbnz	w1, .L911
6725	adrp	x0, .LANCHOR47
6726	ldr	x19, [x0, #:lo12:.LANCHOR47]
6727	cbz	x19, .L912
6728	adrp	x2, .LANCHOR40
6729	mov	x5, -6148914691236517206
6730	movk	x5, 0xaaab, lsl 0
6731	adrp	x23, .LANCHOR48
6732	ldr	x2, [x2, #:lo12:.LANCHOR40]
6733	mov	w6, 65535
6734	ldrh	w4, [x23, #:lo12:.LANCHOR48]
6735	sub	x19, x19, x2
6736	asr	x19, x19, 1
6737	mul	x19, x19, x5
6738	mov	w5, 6
6739	and	w19, w19, 65535
6740.L913:
6741	cmp	w1, w4
6742	beq	.L912
6743	cmp	w19, w3
6744	bne	.L914
6745	mov	w1, w19
6746	add	x0, x0, :lo12:.LANCHOR47
6747	bl	List_remove_node
6748	ldrh	w0, [x23, #:lo12:.LANCHOR48]
6749	cbnz	w0, .L915
6750	adrp	x1, .LANCHOR160
6751	adrp	x0, .LC1
6752	mov	w2, 1699
6753	add	x1, x1, :lo12:.LANCHOR160
6754	add	x0, x0, :lo12:.LC1
6755	bl	printf
6756.L915:
6757	ldrh	w0, [x23, #:lo12:.LANCHOR48]
6758	sub	w0, w0, #1
6759	strh	w0, [x23, #:lo12:.LANCHOR48]
6760	mov	w0, w19
6761	bl	INSERT_DATA_LIST
6762	ldr	x1, [x22, #:lo12:.LANCHOR42]
6763	ldrh	w0, [x1, x20]
6764	add	w0, w0, 1
6765	strh	w0, [x1, x20]
6766.L912:
6767	add	x1, x29, 76
6768	mov	w2, 1
6769	mov	w0, w21
6770	bl	log2phys
6771	ldp	x19, x20, [sp, 16]
6772	ldp	x21, x22, [sp, 32]
6773	ldr	x23, [sp, 48]
6774	ldp	x29, x30, [sp], 80
6775	ret
6776.L914:
6777	umull	x19, w19, w5
6778	ldrh	w19, [x2, x19]
6779	cmp	w19, w6
6780	beq	.L912
6781	add	w1, w1, 1
6782	and	w1, w1, 65535
6783	b	.L913
6784.L911:
6785	add	w1, w1, 1
6786	strh	w1, [x2, x20]
6787	b	.L912
6788	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
6789	.section	.text.ftl_check_vpc,"ax",@progbits
6790	.align	2
6791	.global	ftl_check_vpc
6792	.type	ftl_check_vpc, %function
6793ftl_check_vpc:
6794	stp	x29, x30, [sp, -112]!
6795	adrp	x0, .LC94
6796	add	x0, x0, :lo12:.LC94
6797	add	x29, sp, 0
6798	stp	x23, x24, [sp, 48]
6799	adrp	x23, .LANCHOR61
6800	add	x23, x23, :lo12:.LANCHOR61
6801	stp	x21, x22, [sp, 32]
6802	mov	w22, 0
6803	stp	x19, x20, [sp, 16]
6804	stp	x25, x26, [sp, 64]
6805	adrp	x21, .LANCHOR161
6806	stp	x27, x28, [sp, 80]
6807	add	x1, x21, :lo12:.LANCHOR161
6808	adrp	x20, check_vpc_table
6809	bl	printf
6810	add	x19, x20, :lo12:check_vpc_table
6811	mov	w2, 8192
6812	mov	w1, 0
6813	mov	x0, x19
6814	bl	ftl_memset
6815.L922:
6816	ldr	w0, [x23]
6817	cmp	w22, w0
6818	bcc	.L924
6819	adrp	x22, .LANCHOR5
6820	adrp	x24, .LC95
6821	add	x22, x22, :lo12:.LANCHOR5
6822	add	x26, x20, :lo12:check_vpc_table
6823	add	x24, x24, :lo12:.LC95
6824	mov	w23, 0
6825	mov	w19, 0
6826	adrp	x25, .LANCHOR42
6827.L925:
6828	ldrh	w0, [x22]
6829	cmp	w0, w19
6830	bhi	.L927
6831	adrp	x0, .LANCHOR47
6832	ldr	x19, [x0, #:lo12:.LANCHOR47]
6833	cbz	x19, .L928
6834	adrp	x0, .LANCHOR48
6835	adrp	x25, .LC96
6836	add	x20, x20, :lo12:check_vpc_table
6837	add	x25, x25, :lo12:.LC96
6838	ldrh	w26, [x0, #:lo12:.LANCHOR48]
6839	adrp	x0, .LANCHOR40
6840	mov	x24, x0
6841	mov	w22, 0
6842	ldr	x1, [x0, #:lo12:.LANCHOR40]
6843	adrp	x27, .LANCHOR42
6844	mov	w28, 6
6845	sub	x19, x19, x1
6846	mov	x1, -6148914691236517206
6847	asr	x19, x19, 1
6848	movk	x1, 0xaaab, lsl 0
6849	mul	x19, x19, x1
6850	and	w19, w19, 65535
6851.L929:
6852	cmp	w22, w26
6853	bne	.L931
6854.L928:
6855	cbz	w23, .L921
6856	adrp	x0, .LC1
6857	mov	w2, 2343
6858	add	x1, x21, :lo12:.LANCHOR161
6859	add	x0, x0, :lo12:.LC1
6860	bl	printf
6861.L921:
6862	ldp	x19, x20, [sp, 16]
6863	ldp	x21, x22, [sp, 32]
6864	ldp	x23, x24, [sp, 48]
6865	ldp	x25, x26, [sp, 64]
6866	ldp	x27, x28, [sp, 80]
6867	ldp	x29, x30, [sp], 112
6868	ret
6869.L924:
6870	mov	w2, 0
6871	add	x1, x29, 108
6872	mov	w0, w22
6873	bl	log2phys
6874	ldr	w0, [x29, 108]
6875	cmn	w0, #1
6876	beq	.L923
6877	lsr	w0, w0, 10
6878	bl	P2V_block_in_plane
6879	and	x0, x0, 65535
6880	ldrh	w1, [x19, x0, lsl 1]
6881	add	w1, w1, 1
6882	strh	w1, [x19, x0, lsl 1]
6883.L923:
6884	add	w22, w22, 1
6885	b	.L922
6886.L927:
6887	ldr	x0, [x25, #:lo12:.LANCHOR42]
6888	ubfiz	x28, x19, 1, 16
6889	sxtw	x27, w19
6890	ldrh	w2, [x0, x28]
6891	ldrh	w3, [x26, x27, lsl 1]
6892	cmp	w2, w3
6893	beq	.L926
6894	mov	w1, w19
6895	mov	x0, x24
6896	bl	printf
6897	ldr	x0, [x25, #:lo12:.LANCHOR42]
6898	mov	w1, 65535
6899	ldrh	w0, [x0, x28]
6900	cmp	w0, w1
6901	beq	.L926
6902	ldrh	w1, [x26, x27, lsl 1]
6903	cmp	w1, w0
6904	csinc	w23, w23, wzr, ls
6905.L926:
6906	add	w19, w19, 1
6907	and	w19, w19, 65535
6908	b	.L925
6909.L931:
6910	ldr	x1, [x27, #:lo12:.LANCHOR42]
6911	ubfiz	x0, x19, 1, 16
6912	ldrh	w2, [x1, x0]
6913	cbz	w2, .L930
6914	ldrh	w3, [x20, w19, sxtw 1]
6915	mov	w23, 1
6916	mov	w1, w19
6917	mov	x0, x25
6918	bl	printf
6919.L930:
6920	ldr	x0, [x24, #:lo12:.LANCHOR40]
6921	umull	x19, w19, w28
6922	ldrh	w19, [x0, x19]
6923	mov	w0, 65535
6924	cmp	w19, w0
6925	beq	.L928
6926	add	w22, w22, 1
6927	and	w22, w22, 65535
6928	b	.L929
6929	.size	ftl_check_vpc, .-ftl_check_vpc
6930	.section	.text.ftl_scan_all_data,"ax",@progbits
6931	.align	2
6932	.global	ftl_scan_all_data
6933	.type	ftl_scan_all_data, %function
6934ftl_scan_all_data:
6935	sub	sp, sp, #96
6936	adrp	x0, .LC97
6937	mov	w1, 0
6938	add	x0, x0, :lo12:.LC97
6939	stp	x29, x30, [sp, 16]
6940	add	x29, sp, 16
6941	stp	x19, x20, [sp, 32]
6942	adrp	x20, .LANCHOR148
6943	stp	x21, x22, [sp, 48]
6944	mov	w19, 0
6945	adrp	x21, .LANCHOR61
6946	add	x22, x20, :lo12:.LANCHOR148
6947	add	x21, x21, :lo12:.LANCHOR61
6948	str	x23, [sp, 64]
6949	bl	printf
6950.L947:
6951	ldr	w0, [x21]
6952	cmp	w19, w0
6953	bcc	.L953
6954	ldp	x19, x20, [sp, 32]
6955	ldp	x21, x22, [sp, 48]
6956	ldp	x29, x30, [sp, 16]
6957	ldr	x23, [sp, 64]
6958	add	sp, sp, 96
6959	ret
6960.L953:
6961	mov	w2, 0
6962	add	x1, x29, 76
6963	mov	w0, w19
6964	bl	log2phys
6965	tst	x19, 2047
6966	bne	.L948
6967	ldr	w2, [x29, 76]
6968	adrp	x0, .LC98
6969	mov	w1, w19
6970	add	x0, x0, :lo12:.LC98
6971	bl	printf
6972.L948:
6973	ldr	w1, [x29, 76]
6974	cmn	w1, #1
6975	beq	.L950
6976	add	x0, x20, :lo12:.LANCHOR148
6977	str	wzr, [x20, #:lo12:.LANCHOR148]
6978	mov	w2, 0
6979	str	w1, [x0, 4]
6980	adrp	x1, .LANCHOR115
6981	str	w19, [x0, 24]
6982	ldr	x1, [x1, #:lo12:.LANCHOR115]
6983	str	x1, [x0, 8]
6984	adrp	x1, .LANCHOR123
6985	ldr	x23, [x1, #:lo12:.LANCHOR123]
6986	mov	w1, 1
6987	str	x23, [x0, 16]
6988	bl	FlashReadPages
6989	ldr	w0, [x20, #:lo12:.LANCHOR148]
6990	cmp	w0, 256
6991	ccmn	w0, #1, 4, ne
6992	beq	.L951
6993	ldr	w0, [x23, 8]
6994	cmp	w19, w0
6995	beq	.L950
6996.L951:
6997	ldp	x1, x0, [x22, 8]
6998	ldr	w2, [x1, 4]
6999	str	w2, [sp]
7000	ldr	w2, [x22, 4]
7001	ldp	w3, w4, [x0]
7002	ldp	w5, w6, [x0, 8]
7003	adrp	x0, .LC99
7004	ldr	w7, [x1]
7005	add	x0, x0, :lo12:.LC99
7006	mov	w1, w19
7007	bl	printf
7008.L950:
7009	add	w19, w19, 1
7010	b	.L947
7011	.size	ftl_scan_all_data, .-ftl_scan_all_data
7012	.section	.text.FtlGcScanTempBlk,"ax",@progbits
7013	.align	2
7014	.global	FtlGcScanTempBlk
7015	.type	FtlGcScanTempBlk, %function
7016FtlGcScanTempBlk:
7017	stp	x29, x30, [sp, -176]!
7018	add	x29, sp, 0
7019	stp	x21, x22, [sp, 32]
7020	adrp	x21, .LANCHOR162
7021	stp	x27, x28, [sp, 80]
7022	mov	w27, w1
7023	stp	x19, x20, [sp, 16]
7024	mov	x19, x0
7025	ldrh	w28, [x21, #:lo12:.LANCHOR162]
7026	mov	w0, 65535
7027	stp	x23, x24, [sp, 48]
7028	stp	x25, x26, [sp, 64]
7029	cmp	w28, w0
7030	beq	.L978
7031	cbnz	w28, .L956
7032.L957:
7033	bl	FtlGcPageVarInit
7034	b	.L958
7035.L978:
7036	mov	w28, 0
7037.L956:
7038	adrp	x0, .LANCHOR19
7039	ldrh	w0, [x0, #:lo12:.LANCHOR19]
7040	cmp	w0, w27
7041	beq	.L957
7042.L958:
7043	mov	w24, 0
7044.L959:
7045	ldrh	w0, [x19]
7046	mov	w22, 65535
7047	strb	wzr, [x19, 8]
7048	cmp	w0, w22
7049	beq	.L960
7050	adrp	x25, .LANCHOR23
7051	add	x0, x25, :lo12:.LANCHOR23
7052	str	x0, [x29, 104]
7053.L975:
7054	adrp	x1, .LANCHOR91
7055	adrp	x23, .LANCHOR112
7056	add	x5, x19, 16
7057	mov	w20, 0
7058	ldr	x6, [x1, #:lo12:.LANCHOR91]
7059	ldr	x1, [x29, 104]
7060	ldr	x0, [x23, #:lo12:.LANCHOR112]
7061	ldrh	w7, [x1]
7062	adrp	x1, .LANCHOR92
7063	ldr	x8, [x1, #:lo12:.LANCHOR92]
7064	adrp	x1, .LANCHOR24
7065	ldrh	w10, [x1, #:lo12:.LANCHOR24]
7066	adrp	x1, .LANCHOR3
7067	ldrh	w1, [x1, #:lo12:.LANCHOR3]
7068	add	x1, x1, 8
7069	add	x1, x19, x1, lsl 1
7070.L961:
7071	cmp	x1, x5
7072	bne	.L963
7073	mov	w1, w20
7074	mov	w2, 0
7075	adrp	x26, .LANCHOR12
7076	bl	FlashReadPages
7077	add	x26, x26, :lo12:.LANCHOR12
7078	ubfiz	x0, x20, 5, 16
7079	mov	x20, 0
7080	str	x0, [x29, 112]
7081.L964:
7082	ldr	x0, [x29, 112]
7083	cmp	x20, x0
7084	bne	.L973
7085	add	w3, w28, 1
7086	add	w24, w24, 1
7087	and	w28, w3, 65535
7088	cmp	w27, w24
7089	adrp	x1, .LANCHOR19
7090	bls	.L974
7091.L976:
7092	ldrh	w0, [x1, #:lo12:.LANCHOR19]
7093	cmp	w0, w28
7094	bhi	.L975
7095.L960:
7096	strh	w28, [x19, 2]
7097	mov	w0, -1
7098	strb	wzr, [x19, 6]
7099	mov	w2, 0
7100	strh	w0, [x21, #:lo12:.LANCHOR162]
7101	mov	w1, w28
7102	mov	x0, x19
7103	bl	ftl_sb_update_avl_pages
7104	b	.L977
7105.L963:
7106	ldrh	w4, [x5]
7107	cmp	w4, w22
7108	beq	.L962
7109	ubfiz	x2, x20, 5, 16
7110	orr	w4, w28, w4, lsl 10
7111	add	x2, x0, x2
7112	str	w4, [x2, 4]
7113	mul	w4, w20, w7
7114	asr	w4, w4, 2
7115	add	x4, x6, x4, sxtw 2
7116	str	x4, [x2, 8]
7117	mul	w4, w20, w10
7118	add	w20, w20, 1
7119	and	w20, w20, 65535
7120	asr	w4, w4, 2
7121	add	x4, x8, x4, sxtw 2
7122	str	x4, [x2, 16]
7123.L962:
7124	add	x5, x5, 2
7125	b	.L961
7126.L973:
7127	ldr	x1, [x23, #:lo12:.LANCHOR112]
7128	add	x0, x1, x20
7129	ldr	w1, [x1, x20]
7130	ldr	w2, [x0, 4]
7131	str	w2, [x29, 124]
7132	cbnz	w1, .L965
7133	ldr	x25, [x0, 16]
7134	ldrh	w0, [x25]
7135	cmp	w0, w22
7136	bne	.L966
7137.L965:
7138	adrp	x0, .LANCHOR42
7139	ldrh	w1, [x19]
7140	mov	w28, 0
7141	ldr	x0, [x0, #:lo12:.LANCHOR42]
7142	strh	wzr, [x0, x1, lsl 1]
7143	ldrh	w0, [x19]
7144	bl	INSERT_FREE_LIST
7145	mov	w0, -1
7146	strh	w0, [x19]
7147	bl	FtlGcPageVarInit
7148	b	.L959
7149.L966:
7150	ldr	w0, [x25, 8]
7151	add	x1, x29, 140
7152	mov	w2, 0
7153	bl	log2phys
7154	ldr	w0, [x25, 12]
7155	ldr	w1, [x29, 140]
7156	cmp	w0, w1
7157	beq	.L968
7158.L971:
7159	ldp	w2, w0, [x25, 8]
7160	add	x20, x20, 32
7161	ldr	w1, [x29, 124]
7162	bl	FtlGcUpdatePage
7163	b	.L964
7164.L968:
7165	str	w0, [x29, 148]
7166	adrp	x0, .LANCHOR119
7167	mov	w2, 0
7168	mov	w1, 1
7169	ldr	x0, [x0, #:lo12:.LANCHOR119]
7170	str	x0, [x29, 152]
7171	adrp	x0, .LANCHOR124
7172	ldr	x0, [x0, #:lo12:.LANCHOR124]
7173	str	x0, [x29, 160]
7174	add	x0, x29, 144
7175	bl	FlashReadPages
7176	ldrh	w1, [x26]
7177	mov	x0, 0
7178	ldr	x2, [x23, #:lo12:.LANCHOR112]
7179	ldr	x6, [x29, 152]
7180	add	x2, x2, x20
7181	ubfiz	x1, x1, 9, 16
7182.L969:
7183	cmp	x0, x1
7184	beq	.L971
7185	ldr	x7, [x2, 8]
7186	ldr	w8, [x7, x0]
7187	add	x0, x0, 4
7188	add	x7, x6, x0
7189	ldr	w7, [x7, -4]
7190	cmp	w8, w7
7191	beq	.L969
7192	ldrh	w1, [x19]
7193	adrp	x0, .LC100
7194	ldr	w2, [x29, 148]
7195	add	x0, x0, :lo12:.LC100
7196	bl	printf
7197	b	.L965
7198.L974:
7199	ldrh	w0, [x21, #:lo12:.LANCHOR162]
7200	cmp	w0, w22
7201	beq	.L976
7202	add	w0, w0, w24
7203	strh	w0, [x21, #:lo12:.LANCHOR162]
7204	ldrh	w0, [x1, #:lo12:.LANCHOR19]
7205	cmp	w0, w28
7206	bls	.L976
7207.L977:
7208	ldp	x19, x20, [sp, 16]
7209	mov	w0, -1
7210	ldp	x21, x22, [sp, 32]
7211	ldp	x23, x24, [sp, 48]
7212	ldp	x25, x26, [sp, 64]
7213	ldp	x27, x28, [sp, 80]
7214	ldp	x29, x30, [sp], 176
7215	ret
7216	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
7217	.section	.text.FtlReadRefresh,"ax",@progbits
7218	.align	2
7219	.global	FtlReadRefresh
7220	.type	FtlReadRefresh, %function
7221FtlReadRefresh:
7222	adrp	x1, .LANCHOR81
7223	add	x0, x1, :lo12:.LANCHOR81
7224	ldr	w2, [x0, 80]
7225	cbz	w2, .L986
7226	adrp	x1, .LANCHOR61
7227	ldr	w3, [x0, 84]
7228	ldr	w2, [x1, #:lo12:.LANCHOR61]
7229	cmp	w3, w2
7230	bcs	.L987
7231	stp	x29, x30, [sp, -160]!
7232	add	x29, sp, 0
7233	stp	x19, x20, [sp, 16]
7234	mov	x19, x0
7235	add	x20, x1, :lo12:.LANCHOR61
7236	str	x21, [sp, 32]
7237	mov	w21, 2048
7238.L992:
7239	ldr	w0, [x19, 84]
7240	ldr	w1, [x20]
7241	cmp	w0, w1
7242	bcs	.L989
7243	add	x1, x29, 60
7244	mov	w2, 0
7245	bl	log2phys
7246	ldr	w0, [x19, 84]
7247	ldr	w1, [x29, 60]
7248	add	w0, w0, 1
7249	str	w0, [x19, 84]
7250	cmn	w1, #1
7251	beq	.L990
7252	str	w0, [x29, 88]
7253	adrp	x0, .LANCHOR121
7254	str	w1, [x29, 68]
7255	mov	w2, 0
7256	ldr	x0, [x0, #:lo12:.LANCHOR121]
7257	mov	w1, 1
7258	str	x0, [x29, 72]
7259	add	x0, x29, 96
7260	str	x0, [x29, 80]
7261	add	x0, x29, 160
7262	str	wzr, [x0, -96]!
7263	bl	FlashReadPages
7264	ldr	w0, [x29, 64]
7265	cmp	w0, 256
7266	bne	.L989
7267	ldr	w0, [x29, 60]
7268	lsr	w0, w0, 10
7269	bl	P2V_block_in_plane
7270	bl	FtlGcRefreshBlock
7271.L989:
7272	ldp	x19, x20, [sp, 16]
7273	mov	w0, -1
7274	ldr	x21, [sp, 32]
7275	ldp	x29, x30, [sp], 160
7276	ret
7277.L990:
7278	subs	w21, w21, #1
7279	bne	.L992
7280	b	.L989
7281.L987:
7282	adrp	x1, .LANCHOR62
7283	str	wzr, [x0, 84]
7284	ldr	w1, [x1, #:lo12:.LANCHOR62]
7285	stp	w1, wzr, [x0, 76]
7286.L996:
7287	mov	w0, 0
7288	ret
7289.L986:
7290	ldr	w4, [x0, 76]
7291	adrp	x0, .LANCHOR62
7292	ldr	w2, [x0, #:lo12:.LANCHOR62]
7293	add	w0, w2, 1048576
7294	cmp	w4, w0
7295	bhi	.L995
7296	adrp	x0, .LANCHOR76
7297	ldr	w0, [x0, #:lo12:.LANCHOR76]
7298	lsr	w3, w0, 10
7299	mov	w0, 33554432
7300	asr	w0, w0, w3
7301	add	w0, w0, w4
7302	cmp	w2, w0
7303	bhi	.L995
7304	adrp	x0, .LANCHOR39+28
7305	ldrb	w0, [x0, #:lo12:.LANCHOR39+28]
7306	cbnz	w0, .L996
7307.L995:
7308	add	x0, x1, :lo12:.LANCHOR81
7309	mov	w1, 1
7310	str	wzr, [x0, 84]
7311	stp	w2, w1, [x0, 76]
7312	b	.L996
7313	.size	FtlReadRefresh, .-FtlReadRefresh
7314	.section	.text.FtlMapBlkWriteDump_data,"ax",@progbits
7315	.align	2
7316	.global	FtlMapBlkWriteDump_data
7317	.type	FtlMapBlkWriteDump_data, %function
7318FtlMapBlkWriteDump_data:
7319	ldr	w1, [x0, 56]
7320	cbz	w1, .L1002
7321	stp	x29, x30, [sp, -48]!
7322	adrp	x1, .LANCHOR148
7323	adrp	x2, .LANCHOR123
7324	add	x29, sp, 0
7325	stp	x19, x20, [sp, 16]
7326	mov	x19, x0
7327	ldrh	w20, [x0, 6]
7328	adrp	x0, .LANCHOR116
7329	ldr	x2, [x2, #:lo12:.LANCHOR123]
7330	ldr	x3, [x0, #:lo12:.LANCHOR116]
7331	add	x0, x1, :lo12:.LANCHOR148
7332	sub	w20, w20, #1
7333	ldr	x4, [x19, 40]
7334	and	w20, w20, 65535
7335	str	x21, [sp, 32]
7336	stp	x3, x2, [x0, 8]
7337	ubfiz	x2, x20, 2, 16
7338	str	wzr, [x19, 56]
7339	mov	x21, x1
7340	ldr	w2, [x4, x2]
7341	str	w2, [x0, 4]
7342	cbz	w2, .L1004
7343	mov	w2, 1
7344	mov	w1, w2
7345	bl	FlashReadPages
7346.L1005:
7347	add	x1, x21, :lo12:.LANCHOR148
7348	mov	x0, x19
7349	ldr	x21, [sp, 32]
7350	ldr	x2, [x1, 8]
7351	mov	w1, w20
7352	ldp	x19, x20, [sp, 16]
7353	ldp	x29, x30, [sp], 48
7354	b	FtlMapWritePage
7355.L1004:
7356	adrp	x0, .LANCHOR23
7357	mov	w1, 255
7358	ldrh	w2, [x0, #:lo12:.LANCHOR23]
7359	mov	x0, x3
7360	bl	ftl_memset
7361	b	.L1005
7362.L1002:
7363	ret
7364	.size	FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
7365	.section	.text.FlashTestBlk,"ax",@progbits
7366	.align	2
7367	.global	FlashTestBlk
7368	.type	FlashTestBlk, %function
7369FlashTestBlk:
7370	stp	x29, x30, [sp, -128]!
7371	add	x29, sp, 0
7372	stp	x19, x20, [sp, 16]
7373	and	w19, w0, 65535
7374	cmp	w19, 11
7375	bls	.L1011
7376	adrp	x20, .LANCHOR121
7377	mov	w2, 32
7378	mov	w1, 165
7379	lsl	w19, w19, 10
7380	ldr	x0, [x20, #:lo12:.LANCHOR121]
7381	str	x0, [x29, 40]
7382	add	x0, x29, 64
7383	str	x0, [x29, 48]
7384	bl	ftl_memset
7385	ldr	x0, [x20, #:lo12:.LANCHOR121]
7386	mov	w2, 8
7387	mov	w1, 90
7388	bl	ftl_memset
7389	str	w19, [x29, 36]
7390	mov	w2, 1
7391	add	x0, x29, 32
7392	mov	w1, w2
7393	bl	FlashEraseBlocks
7394	mov	w3, 1
7395	add	x0, x29, 32
7396	mov	w2, w3
7397	mov	w1, w3
7398	bl	FlashProgPages
7399	ldr	w0, [x29, 32]
7400	mov	w2, 1
7401	mov	w1, 0
7402	cmp	w0, 0
7403	add	x0, x29, 32
7404	csetm	w19, ne
7405	bl	FlashEraseBlocks
7406.L1009:
7407	mov	w0, w19
7408	ldp	x19, x20, [sp, 16]
7409	ldp	x29, x30, [sp], 128
7410	ret
7411.L1011:
7412	mov	w19, 0
7413	b	.L1009
7414	.size	FlashTestBlk, .-FlashTestBlk
7415	.section	.text.FtlBbmTblFlush,"ax",@progbits
7416	.align	2
7417	.global	FtlBbmTblFlush
7418	.type	FtlBbmTblFlush, %function
7419FtlBbmTblFlush:
7420	stp	x29, x30, [sp, -96]!
7421	add	x29, sp, 0
7422	stp	x23, x24, [sp, 48]
7423	adrp	x23, .LANCHOR123
7424	stp	x19, x20, [sp, 16]
7425	adrp	x20, .LANCHOR148
7426	stp	x21, x22, [sp, 32]
7427	add	x19, x20, :lo12:.LANCHOR148
7428	adrp	x22, .LANCHOR115
7429	ldr	x1, [x23, #:lo12:.LANCHOR123]
7430	stp	x25, x26, [sp, 64]
7431	adrp	x21, .LANCHOR37
7432	str	x27, [sp, 80]
7433	add	x25, x21, :lo12:.LANCHOR37
7434	ldr	x0, [x22, #:lo12:.LANCHOR115]
7435	adrp	x26, .LANCHOR10
7436	stp	x0, x1, [x19, 8]
7437	adrp	x1, .LANCHOR23
7438	adrp	x27, .LANCHOR137
7439	add	x25, x25, 32
7440	ldrh	w2, [x1, #:lo12:.LANCHOR23]
7441	mov	w24, 0
7442	add	x26, x26, :lo12:.LANCHOR10
7443	add	x27, x27, :lo12:.LANCHOR137
7444	mov	w1, 0
7445	bl	ftl_memset
7446.L1014:
7447	ldrh	w0, [x26]
7448	cmp	w24, w0
7449	blt	.L1015
7450	add	x20, x20, :lo12:.LANCHOR148
7451	add	x19, x21, :lo12:.LANCHOR37
7452	mov	w2, 16
7453	mov	w1, 255
7454	adrp	x24, .LC101
7455	adrp	x26, .LANCHOR20
7456	ldr	x27, [x20, 16]
7457	add	x24, x24, :lo12:.LC101
7458	add	x26, x26, :lo12:.LANCHOR20
7459	mov	w25, 0
7460	mov	x0, x27
7461	bl	ftl_memset
7462	mov	w0, -3887
7463	strh	w0, [x27]
7464	ldr	w0, [x19, 8]
7465	str	w0, [x27, 4]
7466	ldrh	w0, [x21, #:lo12:.LANCHOR37]
7467	mov	w21, 0
7468	strh	w0, [x27, 2]
7469	ldrh	w0, [x19, 4]
7470	strh	w0, [x27, 8]
7471	ldrh	w0, [x19, 6]
7472	strh	w0, [x27, 10]
7473	adrp	x0, .LANCHOR2
7474	ldr	w0, [x0, #:lo12:.LANCHOR2]
7475	strh	w0, [x27, 12]
7476.L1016:
7477	ldrh	w1, [x19]
7478	ldrh	w4, [x27, 10]
7479	ldrh	w2, [x19, 2]
7480	ldrh	w3, [x19, 4]
7481	ldr	x0, [x22, #:lo12:.LANCHOR115]
7482	str	x0, [x20, 8]
7483	ldr	x0, [x23, #:lo12:.LANCHOR123]
7484	str	x0, [x20, 16]
7485	orr	w0, w2, w1, lsl 10
7486	str	wzr, [x20]
7487	str	w0, [x20, 4]
7488	mov	x0, x24
7489	bl	printf
7490	ldrh	w0, [x26]
7491	ldrh	w1, [x19, 2]
7492	sub	w0, w0, #1
7493	cmp	w1, w0
7494	blt	.L1017
7495	ldr	w0, [x19, 8]
7496	mov	w2, 1
7497	ldrh	w1, [x19, 4]
7498	add	w0, w0, 1
7499	str	w0, [x19, 8]
7500	str	w0, [x27, 4]
7501	ldrh	w0, [x19]
7502	strh	w0, [x27, 8]
7503	strh	w0, [x19, 4]
7504	adrp	x0, .LANCHOR106
7505	strh	w1, [x19]
7506	lsl	w1, w1, 10
7507	ldr	x0, [x0, #:lo12:.LANCHOR106]
7508	str	w1, [x20, 4]
7509	strh	wzr, [x19, 2]
7510	str	w1, [x0, 4]
7511	mov	w1, w2
7512	bl	FlashEraseBlocks
7513.L1017:
7514	mov	w3, 1
7515	mov	x0, x20
7516	mov	w2, w3
7517	mov	w1, w3
7518	bl	FlashProgPages
7519	ldrh	w0, [x19, 2]
7520	add	w0, w0, 1
7521	strh	w0, [x19, 2]
7522	ldr	w0, [x20]
7523	cmn	w0, #1
7524	bne	.L1018
7525	ldr	w1, [x20, 4]
7526	add	w21, w21, 1
7527	adrp	x0, .LC102
7528	and	w21, w21, 65535
7529	add	x0, x0, :lo12:.LC102
7530	bl	printf
7531	cmp	w21, 3
7532	bls	.L1016
7533	ldr	w1, [x20, 4]
7534	adrp	x0, .LC103
7535	mov	w2, w21
7536	add	x0, x0, :lo12:.LC103
7537	bl	printf
7538.L1020:
7539	b	.L1020
7540.L1015:
7541	ldrh	w2, [x27]
7542	ldr	x1, [x25], 8
7543	ldr	x0, [x19, 8]
7544	mul	w3, w24, w2
7545	lsl	w2, w2, 2
7546	add	w24, w24, 1
7547	add	x0, x0, x3, sxtw 2
7548	bl	ftl_memcpy
7549	b	.L1014
7550.L1021:
7551	mov	w25, 1
7552	b	.L1016
7553.L1018:
7554	cbz	w25, .L1021
7555	mov	w0, 0
7556	ldr	x27, [sp, 80]
7557	ldp	x19, x20, [sp, 16]
7558	ldp	x21, x22, [sp, 32]
7559	ldp	x23, x24, [sp, 48]
7560	ldp	x25, x26, [sp, 64]
7561	ldp	x29, x30, [sp], 96
7562	ret
7563	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
7564	.section	.text.allocate_data_superblock,"ax",@progbits
7565	.align	2
7566	.global	allocate_data_superblock
7567	.type	allocate_data_superblock, %function
7568allocate_data_superblock:
7569	stp	x29, x30, [sp, -112]!
7570	add	x29, sp, 0
7571	stp	x27, x28, [sp, 80]
7572	adrp	x28, .LANCHOR48
7573	stp	x23, x24, [sp, 48]
7574	add	x24, x28, :lo12:.LANCHOR48
7575	stp	x19, x20, [sp, 16]
7576	adrp	x27, .LANCHOR45
7577	mov	x19, x0
7578	stp	x21, x22, [sp, 32]
7579	add	x0, x27, :lo12:.LANCHOR45
7580	stp	x25, x26, [sp, 64]
7581	str	x0, [x29, 104]
7582.L1024:
7583	ldr	x1, [x29, 104]
7584	adrp	x23, .LANCHOR5
7585	ldrh	w0, [x28, #:lo12:.LANCHOR48]
7586	ldrh	w1, [x1]
7587	add	w0, w0, w1
7588	ldrh	w1, [x23, #:lo12:.LANCHOR5]
7589	cmp	w0, w1
7590	ble	.L1025
7591	adrp	x1, .LANCHOR163
7592	adrp	x0, .LC1
7593	mov	w2, 2615
7594	add	x1, x1, :lo12:.LANCHOR163
7595	add	x0, x0, :lo12:.LC1
7596	bl	printf
7597.L1025:
7598	adrp	x0, .LANCHOR53
7599	add	x0, x0, :lo12:.LANCHOR53
7600	cmp	x19, x0
7601	bne	.L1051
7602	adrp	x1, .LANCHOR87
7603	ldrh	w0, [x24]
7604	ldr	w1, [x1, #:lo12:.LANCHOR87]
7605	mul	w1, w0, w1
7606	lsr	w0, w0, 1
7607	add	w0, w0, 1
7608	add	w1, w0, w1, lsr 2
7609	ands	w1, w1, 65535
7610	beq	.L1026
7611	sub	w1, w1, #1
7612	and	w1, w1, 65535
7613.L1026:
7614	adrp	x0, .LANCHOR47
7615	add	x0, x0, :lo12:.LANCHOR47
7616	bl	List_pop_index_node
7617	and	w22, w0, 65535
7618	ldrh	w0, [x24]
7619	cbnz	w0, .L1027
7620	adrp	x1, .LANCHOR163
7621	adrp	x0, .LC1
7622	mov	w2, 2624
7623	add	x1, x1, :lo12:.LANCHOR163
7624	add	x0, x0, :lo12:.LC1
7625	bl	printf
7626.L1027:
7627	ldrh	w0, [x24]
7628	sub	w0, w0, #1
7629	strh	w0, [x24]
7630	ldrh	w0, [x23, #:lo12:.LANCHOR5]
7631	cmp	w0, w22
7632	bls	.L1024
7633	adrp	x25, .LANCHOR42
7634	ubfiz	x20, x22, 1, 16
7635	ldr	x0, [x25, #:lo12:.LANCHOR42]
7636	ldrh	w21, [x0, x20]
7637	cbnz	w21, .L1024
7638	strh	w22, [x19]
7639	mov	x0, x19
7640	bl	make_superblock
7641	ldrb	w0, [x19, 7]
7642	cbnz	w0, .L1029
7643	ldr	x0, [x25, #:lo12:.LANCHOR42]
7644	mov	w1, -1
7645	strh	w1, [x0, x20]
7646	mov	w0, w22
7647	bl	INSERT_DATA_LIST
7648	ldrh	w1, [x27, #:lo12:.LANCHOR45]
7649	ldrh	w0, [x24]
7650	add	w0, w0, w1
7651	ldrh	w1, [x23, #:lo12:.LANCHOR5]
7652	cmp	w0, w1
7653	ble	.L1024
7654	mov	w2, 2638
7655	adrp	x1, .LANCHOR163
7656	adrp	x0, .LC1
7657	add	x1, x1, :lo12:.LANCHOR163
7658	add	x0, x0, :lo12:.LC1
7659	bl	printf
7660	b	.L1024
7661.L1051:
7662	mov	w1, 0
7663	b	.L1026
7664.L1029:
7665	ldrh	w1, [x27, #:lo12:.LANCHOR45]
7666	ldrh	w0, [x24]
7667	add	w0, w0, w1
7668	ldrh	w1, [x23, #:lo12:.LANCHOR5]
7669	cmp	w0, w1
7670	ble	.L1031
7671	adrp	x1, .LANCHOR163
7672	adrp	x0, .LC1
7673	mov	w2, 2641
7674	add	x1, x1, :lo12:.LANCHOR163
7675	add	x0, x0, :lo12:.LC1
7676	bl	printf
7677.L1031:
7678	adrp	x0, .LANCHOR3
7679	adrp	x25, .LANCHOR106
7680	add	x26, x19, 16
7681	mov	w6, 65535
7682	ldrh	w0, [x0, #:lo12:.LANCHOR3]
7683	mov	x4, x26
7684	ldr	x3, [x25, #:lo12:.LANCHOR106]
7685	ubfiz	x0, x0, 5, 16
7686	add	x1, x3, 8
7687	add	x0, x0, 8
7688	add	x0, x3, x0
7689.L1032:
7690	cmp	x0, x1
7691	bne	.L1034
7692	cbnz	w21, .L1035
7693	adrp	x1, .LANCHOR163
7694	adrp	x0, .LC1
7695	mov	w2, 2652
7696	add	x1, x1, :lo12:.LANCHOR163
7697	add	x0, x0, :lo12:.LC1
7698	bl	printf
7699.L1035:
7700	adrp	x0, .LANCHOR80
7701	ldrh	w0, [x0, #:lo12:.LANCHOR80]
7702	cmp	w0, w22
7703	bne	.L1036
7704	adrp	x1, .LANCHOR163
7705	adrp	x0, .LC1
7706	mov	w2, 2654
7707	add	x1, x1, :lo12:.LANCHOR163
7708	add	x0, x0, :lo12:.LC1
7709	bl	printf
7710.L1036:
7711	ldrb	w0, [x19, 8]
7712	adrp	x6, .LANCHOR43
7713	adrp	x7, .LANCHOR14
7714	adrp	x5, .LANCHOR72
7715	adrp	x4, .LANCHOR73
7716	ldr	x1, [x6, #:lo12:.LANCHOR43]
7717	cbnz	w0, .L1037
7718	ldrh	w0, [x1, x20]
7719	cbz	w0, .L1038
7720	ldrh	w2, [x7, #:lo12:.LANCHOR14]
7721	add	w0, w0, w2
7722.L1062:
7723	strh	w0, [x1, x20]
7724	mov	w1, 0
7725	ldr	w0, [x5, #:lo12:.LANCHOR72]
7726	add	w0, w0, 1
7727	str	w0, [x5, #:lo12:.LANCHOR72]
7728	mov	w0, w22
7729	bl	ftl_set_blk_mode
7730.L1040:
7731	ldr	x0, [x6, #:lo12:.LANCHOR43]
7732	ldrh	w1, [x0, x20]
7733	adrp	x0, .LANCHOR76
7734	ldr	w2, [x0, #:lo12:.LANCHOR76]
7735	cmp	w1, w2
7736	bls	.L1041
7737	str	w1, [x0, #:lo12:.LANCHOR76]
7738.L1041:
7739	ldr	w2, [x5, #:lo12:.LANCHOR72]
7740	ldr	w1, [x4, #:lo12:.LANCHOR73]
7741	ldrh	w0, [x7, #:lo12:.LANCHOR14]
7742	madd	w0, w0, w2, w1
7743	ldrh	w1, [x23, #:lo12:.LANCHOR5]
7744	udiv	w0, w0, w1
7745	adrp	x1, .LANCHOR74
7746	str	w0, [x1, #:lo12:.LANCHOR74]
7747	adrp	x0, .LANCHOR127
7748	ldr	x1, [x0, #:lo12:.LANCHOR127]
7749	ldr	w0, [x1, 16]
7750	add	w0, w0, 1
7751	str	w0, [x1, 16]
7752	ldr	x0, [x25, #:lo12:.LANCHOR106]
7753	ubfiz	x1, x21, 5, 16
7754	add	x1, x1, 4
7755	add	x2, x0, 4
7756	add	x1, x0, x1
7757.L1042:
7758	cmp	x1, x2
7759	bne	.L1043
7760	ldrb	w1, [x19, 8]
7761	mov	w2, w21
7762	mov	x23, 0
7763	bl	FlashEraseBlocks
7764	mov	w1, 0
7765.L1044:
7766	cmp	w21, w23, uxth
7767	bhi	.L1046
7768	cbz	w1, .L1047
7769	mov	w0, w22
7770	bl	update_multiplier_value
7771	bl	FtlBbmTblFlush
7772.L1047:
7773	ldrb	w0, [x19, 7]
7774	cbnz	w0, .L1048
7775	adrp	x0, .LANCHOR42
7776	mov	w1, -1
7777	ldr	x0, [x0, #:lo12:.LANCHOR42]
7778	strh	w1, [x0, x20]
7779	b	.L1024
7780.L1034:
7781	ldrh	w2, [x4]
7782	stp	xzr, xzr, [x1]
7783	cmp	w2, w6
7784	beq	.L1033
7785	ubfiz	x5, x21, 5, 16
7786	add	w21, w21, 1
7787	add	x5, x3, x5
7788	and	w21, w21, 65535
7789	lsl	w2, w2, 10
7790	str	w2, [x5, 4]
7791.L1033:
7792	add	x1, x1, 32
7793	add	x4, x4, 2
7794	b	.L1032
7795.L1038:
7796	mov	w0, 2
7797	b	.L1062
7798.L1037:
7799	ldrh	w0, [x1, x20]
7800	add	w0, w0, 1
7801	strh	w0, [x1, x20]
7802	ldr	w0, [x4, #:lo12:.LANCHOR73]
7803	add	w0, w0, 1
7804	str	w0, [x4, #:lo12:.LANCHOR73]
7805	mov	w0, w22
7806	bl	ftl_set_blk_mode.part.6
7807	b	.L1040
7808.L1043:
7809	ldr	w3, [x2]
7810	and	w3, w3, -1024
7811	str	w3, [x2], 32
7812	b	.L1042
7813.L1046:
7814	ldr	x2, [x25, #:lo12:.LANCHOR106]
7815	lsl	x0, x23, 5
7816	add	x3, x2, x0
7817	ldr	w2, [x2, x0]
7818	cmn	w2, #1
7819	bne	.L1045
7820	add	w1, w1, 1
7821	ldr	w0, [x3, 4]
7822	stp	w2, w1, [x29, 96]
7823	lsr	w0, w0, 10
7824	bl	FtlBbmMapBadBlock
7825	ldp	w2, w1, [x29, 96]
7826	strh	w2, [x26]
7827	ldrb	w0, [x19, 7]
7828	sub	w0, w0, #1
7829	strb	w0, [x19, 7]
7830.L1045:
7831	add	x23, x23, 1
7832	add	x26, x26, 2
7833	b	.L1044
7834.L1048:
7835	adrp	x1, .LANCHOR19
7836	adrp	x2, .LANCHOR70
7837	strh	wzr, [x19, 2]
7838	ldrh	w1, [x1, #:lo12:.LANCHOR19]
7839	strh	w22, [x19]
7840	strb	wzr, [x19, 6]
7841	mul	w0, w0, w1
7842	ldr	w1, [x2, #:lo12:.LANCHOR70]
7843	str	w1, [x19, 12]
7844	add	w1, w1, 1
7845	str	w1, [x2, #:lo12:.LANCHOR70]
7846	adrp	x1, .LANCHOR42
7847	and	w0, w0, 65535
7848	strh	w0, [x19, 4]
7849	ldr	x1, [x1, #:lo12:.LANCHOR42]
7850	strh	w0, [x1, x20]
7851	ldrh	w0, [x19, 4]
7852	cbz	w0, .L1049
7853	ldrb	w0, [x19, 7]
7854	cbnz	w0, .L1050
7855.L1049:
7856	adrp	x1, .LANCHOR163
7857	adrp	x0, .LC1
7858	mov	w2, 2707
7859	add	x1, x1, :lo12:.LANCHOR163
7860	add	x0, x0, :lo12:.LC1
7861	bl	printf
7862.L1050:
7863	ldp	x19, x20, [sp, 16]
7864	mov	w0, 0
7865	ldp	x21, x22, [sp, 32]
7866	ldp	x23, x24, [sp, 48]
7867	ldp	x25, x26, [sp, 64]
7868	ldp	x27, x28, [sp, 80]
7869	ldp	x29, x30, [sp], 112
7870	ret
7871	.size	allocate_data_superblock, .-allocate_data_superblock
7872	.section	.text.FtlGcFreeBadSuperBlk,"ax",@progbits
7873	.align	2
7874	.global	FtlGcFreeBadSuperBlk
7875	.type	FtlGcFreeBadSuperBlk, %function
7876FtlGcFreeBadSuperBlk:
7877	stp	x29, x30, [sp, -96]!
7878	add	x29, sp, 0
7879	stp	x21, x22, [sp, 32]
7880	adrp	x21, .LANCHOR101
7881	stp	x25, x26, [sp, 64]
7882	and	w25, w0, 65535
7883	ldrh	w0, [x21, #:lo12:.LANCHOR101]
7884	stp	x19, x20, [sp, 16]
7885	stp	x23, x24, [sp, 48]
7886	str	x27, [sp, 80]
7887	cbz	w0, .L1064
7888	adrp	x23, .LANCHOR102
7889	add	x24, x23, :lo12:.LANCHOR102
7890	mov	w19, 0
7891.L1065:
7892	adrp	x0, .LANCHOR3
7893	ldrh	w0, [x0, #:lo12:.LANCHOR3]
7894	cmp	w0, w19
7895	bhi	.L1071
7896	bl	FtlGcReFreshBadBlk
7897.L1064:
7898	mov	w0, 0
7899	ldr	x27, [sp, 80]
7900	ldp	x19, x20, [sp, 16]
7901	ldp	x21, x22, [sp, 32]
7902	ldp	x23, x24, [sp, 48]
7903	ldp	x25, x26, [sp, 64]
7904	ldp	x29, x30, [sp], 96
7905	ret
7906.L1071:
7907	adrp	x0, .LANCHOR13
7908	add	x0, x0, :lo12:.LANCHOR13
7909	mov	w1, w25
7910	add	x22, x21, :lo12:.LANCHOR101
7911	mov	w20, 0
7912	ldrb	w0, [x0, w19, sxtw]
7913	bl	V2P_block
7914	and	w26, w0, 65535
7915.L1066:
7916	ldrh	w0, [x22]
7917	cmp	w0, w20
7918	bhi	.L1070
7919	add	w19, w19, 1
7920	and	w19, w19, 65535
7921	b	.L1065
7922.L1070:
7923	add	x0, x23, :lo12:.LANCHOR102
7924	add	w27, w20, 1
7925	ldrh	w0, [x0, w20, sxtw 1]
7926	cmp	w0, w26
7927	bne	.L1067
7928	mov	w1, w26
7929	adrp	x0, .LC104
7930	add	x0, x0, :lo12:.LC104
7931	bl	printf
7932	mov	w0, w26
7933	bl	FtlBbmMapBadBlock
7934	bl	FtlBbmTblFlush
7935	ldrh	w1, [x22]
7936	sxtw	x3, w27
7937	and	x4, x20, 65535
7938	mov	x0, 0
7939.L1068:
7940	add	w2, w20, w0
7941	cmp	w1, w2, uxth
7942	bhi	.L1069
7943	sub	w1, w1, #1
7944	strh	w1, [x22]
7945.L1067:
7946	and	w20, w27, 65535
7947	b	.L1066
7948.L1069:
7949	add	x2, x3, x0
7950	ldrh	w5, [x24, x2, lsl 1]
7951	add	x2, x4, x0
7952	add	x0, x0, 1
7953	strh	w5, [x24, x2, lsl 1]
7954	b	.L1068
7955	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
7956	.section	.text.update_vpc_list,"ax",@progbits
7957	.align	2
7958	.global	update_vpc_list
7959	.type	update_vpc_list, %function
7960update_vpc_list:
7961	stp	x29, x30, [sp, -32]!
7962	adrp	x1, .LANCHOR42
7963	add	x29, sp, 0
7964	stp	x19, x20, [sp, 16]
7965	and	w19, w0, 65535
7966	ldr	x1, [x1, #:lo12:.LANCHOR42]
7967	ubfiz	x0, x19, 1, 16
7968	ldrh	w0, [x1, x0]
7969	cbnz	w0, .L1077
7970	adrp	x0, .LANCHOR80
7971	ldrh	w1, [x0, #:lo12:.LANCHOR80]
7972	cmp	w1, w19
7973	bne	.L1078
7974	mov	w1, -1
7975	strh	w1, [x0, #:lo12:.LANCHOR80]
7976.L1079:
7977	adrp	x20, .LANCHOR45
7978	mov	w1, w19
7979	adrp	x0, .LANCHOR41
7980	add	x0, x0, :lo12:.LANCHOR41
7981	bl	List_remove_node
7982	ldrh	w0, [x20, #:lo12:.LANCHOR45]
7983	cbnz	w0, .L1081
7984	adrp	x1, .LANCHOR164
7985	adrp	x0, .LC1
7986	mov	w2, 2777
7987	add	x1, x1, :lo12:.LANCHOR164
7988	add	x0, x0, :lo12:.LC1
7989	bl	printf
7990.L1081:
7991	ldrh	w0, [x20, #:lo12:.LANCHOR45]
7992	sub	w0, w0, #1
7993	strh	w0, [x20, #:lo12:.LANCHOR45]
7994	mov	w0, w19
7995	bl	free_data_superblock
7996	mov	w0, w19
7997	bl	FtlGcFreeBadSuperBlk
7998	adrp	x0, .LANCHOR48
7999	ldrh	w1, [x20, #:lo12:.LANCHOR45]
8000	ldrh	w0, [x0, #:lo12:.LANCHOR48]
8001	add	w0, w0, w1
8002	adrp	x1, .LANCHOR5
8003	ldrh	w1, [x1, #:lo12:.LANCHOR5]
8004	cmp	w0, w1
8005	ble	.L1085
8006	adrp	x1, .LANCHOR164
8007	adrp	x0, .LC1
8008	mov	w2, 2780
8009	add	x1, x1, :lo12:.LANCHOR164
8010	add	x0, x0, :lo12:.LC1
8011	bl	printf
8012.L1085:
8013	mov	w0, 1
8014	b	.L1076
8015.L1078:
8016	adrp	x0, .LANCHOR51
8017	ldrh	w0, [x0, #:lo12:.LANCHOR51]
8018	cmp	w0, w19
8019	beq	.L1084
8020	adrp	x0, .LANCHOR52
8021	ldrh	w0, [x0, #:lo12:.LANCHOR52]
8022	cmp	w0, w19
8023	beq	.L1084
8024	adrp	x0, .LANCHOR53
8025	ldrh	w0, [x0, #:lo12:.LANCHOR53]
8026	cmp	w0, w19
8027	bne	.L1079
8028.L1084:
8029	mov	w0, 0
8030.L1076:
8031	ldp	x19, x20, [sp, 16]
8032	ldp	x29, x30, [sp], 32
8033	ret
8034.L1077:
8035	mov	w0, w19
8036	bl	List_update_data_list
8037	b	.L1084
8038	.size	update_vpc_list, .-update_vpc_list
8039	.section	.text.decrement_vpc_count,"ax",@progbits
8040	.align	2
8041	.global	decrement_vpc_count
8042	.type	decrement_vpc_count, %function
8043decrement_vpc_count:
8044	stp	x29, x30, [sp, -48]!
8045	add	x29, sp, 0
8046	stp	x19, x20, [sp, 16]
8047	and	w19, w0, 65535
8048	str	x21, [sp, 32]
8049	mov	w0, 65535
8050	cmp	w19, w0
8051	beq	.L1088
8052	adrp	x21, .LANCHOR42
8053	ubfiz	x20, x19, 1, 16
8054	ldr	x1, [x21, #:lo12:.LANCHOR42]
8055	ldrh	w0, [x1, x20]
8056	cbnz	w0, .L1089
8057	mov	w2, 0
8058	mov	w1, w19
8059	adrp	x0, .LC105
8060	add	x0, x0, :lo12:.LC105
8061	bl	printf
8062	ldr	x0, [x21, #:lo12:.LANCHOR42]
8063	ldrh	w0, [x0, x20]
8064	cbz	w0, .L1090
8065.L1095:
8066	mov	w20, 0
8067.L1087:
8068	mov	w0, w20
8069	ldr	x21, [sp, 32]
8070	ldp	x19, x20, [sp, 16]
8071	ldp	x29, x30, [sp], 48
8072	ret
8073.L1090:
8074	mov	w2, 2795
8075	adrp	x1, .LANCHOR165
8076	adrp	x0, .LC1
8077	add	x1, x1, :lo12:.LANCHOR165
8078	add	x0, x0, :lo12:.LC1
8079	bl	printf
8080	b	.L1095
8081.L1089:
8082	sub	w0, w0, #1
8083	strh	w0, [x1, x20]
8084.L1088:
8085	adrp	x21, .LANCHOR142
8086	mov	w1, 65535
8087	ldrh	w0, [x21, #:lo12:.LANCHOR142]
8088	cmp	w0, w1
8089	bne	.L1092
8090	strh	w19, [x21, #:lo12:.LANCHOR142]
8091	b	.L1095
8092.L1092:
8093	cmp	w19, w0
8094	beq	.L1095
8095	bl	update_vpc_list
8096	cmp	w0, 0
8097	adrp	x1, .LANCHOR40
8098	adrp	x0, .LANCHOR41
8099	strh	w19, [x21, #:lo12:.LANCHOR142]
8100	cset	w20, ne
8101	ldr	x1, [x1, #:lo12:.LANCHOR40]
8102	ldr	x0, [x0, #:lo12:.LANCHOR41]
8103	sub	x0, x0, x1
8104	mov	x1, -6148914691236517206
8105	asr	x0, x0, 1
8106	movk	x1, 0xaaab, lsl 0
8107	mul	x0, x0, x1
8108	adrp	x1, .LANCHOR42
8109	ldr	x1, [x1, #:lo12:.LANCHOR42]
8110	and	x2, x0, 65535
8111	ldrh	w1, [x1, x2, lsl 1]
8112	cbnz	w1, .L1087
8113	cmp	w19, w0, uxth
8114	beq	.L1087
8115	mov	w2, 2811
8116	adrp	x1, .LANCHOR165
8117	adrp	x0, .LC1
8118	add	x1, x1, :lo12:.LANCHOR165
8119	add	x0, x0, :lo12:.LC1
8120	bl	printf
8121	b	.L1087
8122	.size	decrement_vpc_count, .-decrement_vpc_count
8123	.section	.text.FtlRecoverySuperblock,"ax",@progbits
8124	.align	2
8125	.global	FtlRecoverySuperblock
8126	.type	FtlRecoverySuperblock, %function
8127FtlRecoverySuperblock:
8128	stp	x29, x30, [sp, -192]!
8129	mov	w1, 65535
8130	add	x29, sp, 0
8131	stp	x19, x20, [sp, 16]
8132	mov	x19, x0
8133	stp	x21, x22, [sp, 32]
8134	ldrh	w0, [x0]
8135	stp	x23, x24, [sp, 48]
8136	stp	x25, x26, [sp, 64]
8137	cmp	w0, w1
8138	stp	x27, x28, [sp, 80]
8139	beq	.L1219
8140	ldrb	w0, [x19, 6]
8141	str	w0, [x29, 164]
8142	adrp	x0, .LANCHOR19
8143	ldrh	w26, [x19, 2]
8144	str	x0, [x29, 128]
8145	ldrh	w2, [x0, #:lo12:.LANCHOR19]
8146	cmp	w2, w26
8147	bne	.L1099
8148	strh	wzr, [x19, 4]
8149.L1225:
8150	strb	wzr, [x19, 6]
8151.L1219:
8152	ldp	x19, x20, [sp, 16]
8153	mov	w0, 0
8154	ldp	x21, x22, [sp, 32]
8155	ldp	x23, x24, [sp, 48]
8156	ldp	x25, x26, [sp, 64]
8157	ldp	x27, x28, [sp, 80]
8158	ldp	x29, x30, [sp], 192
8159	ret
8160.L1099:
8161	ldrh	w0, [x19, 16]
8162	mov	w20, 0
8163.L1100:
8164	cmp	w0, w1
8165	beq	.L1101
8166	mov	w1, 1
8167	bl	FtlGetLastWrittenPage
8168	mov	w23, w0
8169	cmn	w0, #1
8170	beq	.L1102
8171	adrp	x1, .LANCHOR91
8172	adrp	x2, .LANCHOR3
8173	adrp	x20, .LANCHOR112
8174	add	x4, x19, 16
8175	ldr	x5, [x1, #:lo12:.LANCHOR91]
8176	adrp	x1, .LANCHOR23
8177	ldr	x0, [x20, #:lo12:.LANCHOR112]
8178	mov	w22, 0
8179	ldrh	w6, [x1, #:lo12:.LANCHOR23]
8180	adrp	x1, .LANCHOR92
8181	mov	w10, 65535
8182	str	x2, [x29, 152]
8183	ldr	x7, [x1, #:lo12:.LANCHOR92]
8184	adrp	x1, .LANCHOR24
8185	ldrh	w8, [x1, #:lo12:.LANCHOR24]
8186	add	x1, x19, 16
8187	str	x1, [x29, 168]
8188	ldrh	w1, [x2, #:lo12:.LANCHOR3]
8189	add	x1, x1, 8
8190	add	x1, x19, x1, lsl 1
8191.L1103:
8192	cmp	x4, x1
8193	bne	.L1107
8194	mov	w2, 0
8195	mov	w1, w22
8196	bl	FlashReadPages
8197	adrp	x0, .LANCHOR71
8198	ldr	x4, [x20, #:lo12:.LANCHOR112]
8199	and	w10, w23, 65535
8200	add	x7, x0, :lo12:.LANCHOR71
8201	ldr	w21, [x0, #:lo12:.LANCHOR71]
8202	mov	x11, x4
8203	mov	w6, 65535
8204	mov	w3, 0
8205	sub	w21, w21, #1
8206	str	x0, [x29, 144]
8207.L1108:
8208	cmp	w22, w3
8209	bne	.L1113
8210	add	w22, w23, 1
8211	ldr	w0, [x4, 4]
8212	and	w22, w22, 65535
8213.L1221:
8214	lsr	w0, w0, 10
8215	bl	P2V_plane
8216	and	w27, w0, 65535
8217	ldr	x0, [x29, 128]
8218	ldrh	w0, [x0, #:lo12:.LANCHOR19]
8219	cmp	w0, w22
8220	bne	.L1115
8221	strh	w22, [x19, 2]
8222	strb	wzr, [x19, 6]
8223	strh	wzr, [x19, 4]
8224.L1115:
8225	ldr	w0, [x29, 164]
8226	cmp	w22, w26
8227	cset	w1, eq
8228	cmp	w27, w0
8229	cset	w0, eq
8230	tst	w1, w0
8231	beq	.L1116
8232.L1226:
8233	mov	w2, w27
8234	mov	w1, w22
8235	mov	x0, x19
8236	bl	ftl_sb_update_avl_pages
8237	b	.L1219
8238.L1101:
8239	add	w20, w20, 1
8240	and	w20, w20, 65535
8241	add	x0, x19, x20, sxtw 1
8242	ldrh	w0, [x0, 16]
8243	b	.L1100
8244.L1102:
8245	cbz	w26, .L1104
8246	adrp	x1, .LANCHOR166
8247	adrp	x0, .LC1
8248	mov	w2, 1766
8249	add	x1, x1, :lo12:.LANCHOR166
8250	add	x0, x0, :lo12:.LC1
8251	bl	printf
8252.L1104:
8253	ldr	w0, [x29, 164]
8254	cmp	w0, 0
8255	ccmp	w20, w0, 4, ne
8256	beq	.L1105
8257	adrp	x1, .LANCHOR166
8258	adrp	x0, .LC1
8259	mov	w2, 1767
8260	add	x1, x1, :lo12:.LANCHOR166
8261	add	x0, x0, :lo12:.LC1
8262	bl	printf
8263.L1105:
8264	strh	wzr, [x19, 2]
8265	b	.L1225
8266.L1107:
8267	ldrh	w3, [x4]
8268	cmp	w3, w10
8269	beq	.L1106
8270	ubfiz	x2, x22, 5, 16
8271	orr	w3, w23, w3, lsl 10
8272	add	x2, x0, x2
8273	str	w3, [x2, 4]
8274	mul	w3, w22, w6
8275	asr	w3, w3, 2
8276	add	x3, x5, x3, sxtw 2
8277	str	x3, [x2, 8]
8278	mul	w3, w22, w8
8279	add	w22, w22, 1
8280	and	w22, w22, 65535
8281	asr	w3, w3, 2
8282	add	x3, x7, x3, sxtw 2
8283	str	x3, [x2, 16]
8284.L1106:
8285	add	x4, x4, 2
8286	b	.L1103
8287.L1113:
8288	ldr	w0, [x11]
8289	cbnz	w0, .L1109
8290	ldr	x8, [x11, 16]
8291	ldr	w5, [x8, 4]
8292	cmn	w5, #1
8293	beq	.L1110
8294	ldr	w1, [x7]
8295	mov	w0, w5
8296	bl	ftl_cmp_data_ver
8297	cbz	w0, .L1110
8298	add	w5, w5, 1
8299	str	w5, [x7]
8300.L1110:
8301	ldr	w0, [x8]
8302	cmn	w0, #1
8303	bne	.L1112
8304	ubfiz	x3, x3, 5, 16
8305	and	w22, w23, 65535
8306	add	x3, x4, x3
8307	ldr	w0, [x3, 4]
8308	b	.L1221
8309.L1109:
8310	mov	w6, w10
8311.L1112:
8312	add	w3, w3, 1
8313	add	x11, x11, 32
8314	and	w3, w3, 65535
8315	b	.L1108
8316.L1116:
8317	mov	w0, 65535
8318	cmp	w6, w0
8319	bne	.L1117
8320	ldrb	w0, [x19, 8]
8321	cbnz	w0, .L1118
8322.L1117:
8323	adrp	x25, .LANCHOR145
8324	and	w28, w23, 65535
8325	ldr	w0, [x25, #:lo12:.LANCHOR145]
8326	cmn	w0, #1
8327	bne	.L1119
8328	str	w21, [x25, #:lo12:.LANCHOR145]
8329.L1119:
8330	add	w0, w26, 7
8331	cmp	w0, w23, uxth
8332	bge	.L1168
8333	sub	w24, w28, #7
8334	and	w24, w24, 65535
8335.L1120:
8336	ldr	x0, [x29, 152]
8337	mov	w3, 65535
8338	mov	w5, 1
8339	add	x4, x0, :lo12:.LANCHOR3
8340.L1121:
8341	cmp	w24, w28
8342	bhi	.L1131
8343	ldrh	w1, [x4]
8344	mov	w23, 0
8345	ldr	x0, [x20, #:lo12:.LANCHOR112]
8346	add	x1, x1, 8
8347	ldr	x2, [x29, 168]
8348	add	x1, x19, x1, lsl 1
8349	b	.L1132
8350.L1168:
8351	mov	w24, w26
8352	b	.L1120
8353.L1123:
8354	ldrh	w6, [x2]
8355	cmp	w6, w3
8356	beq	.L1122
8357	ubfiz	x7, x23, 5, 16
8358	add	w23, w23, 1
8359	add	x7, x0, x7
8360	and	w23, w23, 65535
8361	orr	w6, w24, w6, lsl 10
8362	str	w6, [x7, 4]
8363.L1122:
8364	add	x2, x2, 2
8365.L1132:
8366	cmp	x2, x1
8367	bne	.L1123
8368	mov	w1, w23
8369	mov	w2, 0
8370	str	w5, [x29, 112]
8371	ubfiz	x23, x23, 5, 16
8372	str	w3, [x29, 120]
8373	add	x23, x23, 16
8374	str	x4, [x29, 136]
8375	bl	FlashReadPages
8376	ldr	x2, [x20, #:lo12:.LANCHOR112]
8377	ldr	w1, [x25, #:lo12:.LANCHOR145]
8378	ldr	w5, [x29, 112]
8379	add	x0, x2, 16
8380	ldr	w3, [x29, 120]
8381	add	x23, x2, x23
8382	ldr	x4, [x29, 136]
8383	mov	w2, 0
8384.L1124:
8385	cmp	x23, x0
8386	bne	.L1129
8387	cbz	w2, .L1130
8388	str	w1, [x25, #:lo12:.LANCHOR145]
8389.L1130:
8390	add	w24, w24, 1
8391	and	w24, w24, 65535
8392	b	.L1121
8393.L1129:
8394	ldr	w6, [x0, -16]
8395	cbz	w6, .L1125
8396	cbz	w2, .L1118
8397	str	w1, [x25, #:lo12:.LANCHOR145]
8398.L1118:
8399	adrp	x0, .LANCHOR167
8400	mov	w23, w26
8401	mov	w1, 1
8402	adrp	x28, .LANCHOR145
8403	strh	w1, [x0, #:lo12:.LANCHOR167]
8404	add	x0, x28, :lo12:.LANCHOR145
8405	str	x0, [x29, 104]
8406.L1133:
8407	ldr	x1, [x29, 152]
8408	mov	w24, 0
8409	ldr	x0, [x20, #:lo12:.LANCHOR112]
8410	mov	w5, 65535
8411	ldr	x2, [x29, 168]
8412	ldrh	w1, [x1, #:lo12:.LANCHOR3]
8413	add	x1, x1, 8
8414	add	x1, x19, x1, lsl 1
8415.L1134:
8416	cmp	x1, x2
8417	bne	.L1136
8418	mov	w2, 0
8419	mov	w1, w24
8420	bl	FlashReadPages
8421	mov	x25, 0
8422	ubfiz	x0, x24, 5, 16
8423	str	x0, [x29, 112]
8424	adrp	x0, .LANCHOR168
8425	add	x0, x0, :lo12:.LANCHOR168
8426	str	x0, [x29, 120]
8427.L1137:
8428	ldr	x0, [x29, 112]
8429	cmp	x25, x0
8430	bne	.L1162
8431	ldr	x0, [x29, 128]
8432	add	w23, w23, 1
8433	and	w23, w23, 65535
8434	ldrh	w0, [x0, #:lo12:.LANCHOR19]
8435	cmp	w0, w23
8436	bne	.L1133
8437	ldr	x0, [x29, 152]
8438	mov	w2, 65535
8439	strh	w23, [x19, 2]
8440	strh	wzr, [x19, 4]
8441	ldrh	w1, [x0, #:lo12:.LANCHOR3]
8442	mov	w0, 0
8443.L1163:
8444	cmp	w0, w1
8445	beq	.L1219
8446	ldr	x4, [x29, 168]
8447	ldrh	w3, [x4], 2
8448	str	x4, [x29, 168]
8449	cmp	w3, w2
8450	beq	.L1164
8451	strb	w0, [x19, 6]
8452	b	.L1219
8453.L1125:
8454	ldr	x6, [x0]
8455	ldrh	w7, [x6]
8456	cmp	w7, w3
8457	beq	.L1128
8458	ldr	w6, [x6, 4]
8459	cmn	w6, #1
8460	csel	w1, w1, w6, eq
8461	csel	w2, w2, w5, eq
8462.L1128:
8463	add	x0, x0, 32
8464	b	.L1124
8465.L1131:
8466	mov	w0, -1
8467	str	w0, [x25, #:lo12:.LANCHOR145]
8468	b	.L1118
8469.L1136:
8470	ldrh	w3, [x2]
8471	cmp	w3, w5
8472	beq	.L1135
8473	ubfiz	x4, x24, 5, 16
8474	add	w24, w24, 1
8475	add	x4, x0, x4
8476	and	w24, w24, 65535
8477	orr	w3, w23, w3, lsl 10
8478	str	w3, [x4, 4]
8479.L1135:
8480	add	x2, x2, 2
8481	b	.L1134
8482.L1162:
8483	ldr	x4, [x20, #:lo12:.LANCHOR112]
8484	add	x4, x4, x25
8485	ldr	w5, [x4, 4]
8486	str	w5, [x29, 188]
8487	lsr	w0, w5, 10
8488	bl	P2V_plane
8489	and	w0, w0, 65535
8490	cmp	w23, w26
8491	bcc	.L1138
8492	ldr	w1, [x29, 164]
8493	ccmp	w1, w0, 0, eq
8494	bhi	.L1138
8495	cmp	w23, w22
8496	ccmp	w27, w0, 0, eq
8497	beq	.L1139
8498	ldr	w0, [x4]
8499	cmn	w0, #1
8500	beq	.L1140
8501	ldr	x3, [x4, 16]
8502	mov	w0, 61589
8503	ldrh	w1, [x3]
8504	cmp	w1, w0
8505	beq	.L1141
8506	ldrh	w0, [x19]
8507.L1223:
8508	bl	decrement_vpc_count
8509	b	.L1138
8510.L1141:
8511	ldr	w21, [x3, 4]
8512	cmn	w21, #1
8513	beq	.L1142
8514	ldr	x0, [x29, 144]
8515	ldr	w1, [x0, #:lo12:.LANCHOR71]
8516	mov	w0, w21
8517	bl	ftl_cmp_data_ver
8518	cbz	w0, .L1142
8519	ldr	x1, [x29, 144]
8520	add	w0, w21, 1
8521	str	w0, [x1, #:lo12:.LANCHOR71]
8522.L1142:
8523	ldp	w24, w0, [x3, 8]
8524	add	x1, x29, 184
8525	str	w0, [x29, 180]
8526	mov	w2, 0
8527	mov	w0, w24
8528	bl	log2phys
8529	ldr	w1, [x28, #:lo12:.LANCHOR145]
8530	cmn	w1, #1
8531	beq	.L1143
8532	mov	w0, w21
8533	bl	ftl_cmp_data_ver
8534	cbz	w0, .L1143
8535	ldr	w1, [x29, 180]
8536	cmn	w1, #1
8537	beq	.L1144
8538	ldr	x0, [x20, #:lo12:.LANCHOR112]
8539	mov	w2, 0
8540	add	x0, x0, x25
8541	ldr	x3, [x0, 16]
8542	str	w1, [x0, 4]
8543	mov	w1, 1
8544	str	x3, [x29, 136]
8545	bl	FlashReadPages
8546	ldr	x0, [x20, #:lo12:.LANCHOR112]
8547	ldr	x3, [x29, 136]
8548	add	x4, x0, x25
8549	ldr	w0, [x0, x25]
8550	cmn	w0, #1
8551	bne	.L1145
8552.L1146:
8553	mov	w0, -1
8554	str	w0, [x29, 180]
8555.L1153:
8556	ldr	w3, [x29, 180]
8557	cmn	w3, #1
8558	beq	.L1138
8559.L1167:
8560	lsr	w0, w3, 10
8561	bl	P2V_block_in_plane
8562	and	w24, w0, 65535
8563	adrp	x0, .LANCHOR5
8564	mov	w3, w24
8565	ldrh	w0, [x0, #:lo12:.LANCHOR5]
8566	cmp	w0, w24
8567	bhi	.L1158
8568	mov	w2, 2019
8569	adrp	x1, .LANCHOR166
8570	adrp	x0, .LC1
8571	add	x1, x1, :lo12:.LANCHOR166
8572	add	x0, x0, :lo12:.LC1
8573	str	w24, [x29, 136]
8574	bl	printf
8575	ldr	w3, [x29, 136]
8576.L1158:
8577	adrp	x1, .LANCHOR42
8578	ubfiz	x0, x24, 1, 16
8579	ldr	x1, [x1, #:lo12:.LANCHOR42]
8580	ldrh	w0, [x1, x0]
8581	cbz	w0, .L1159
8582	mov	w0, w3
8583	b	.L1223
8584.L1144:
8585	ldp	w1, w0, [x29, 184]
8586	cmp	w1, w0
8587	bne	.L1138
8588	mov	w2, 1
8589	add	x1, x29, 180
8590	mov	w0, w24
8591	bl	log2phys
8592.L1138:
8593	add	x25, x25, 32
8594	b	.L1137
8595.L1145:
8596	ldr	w0, [x3, 8]
8597	cmp	w24, w0
8598	bne	.L1146
8599	ldr	w0, [x3, 4]
8600	str	w0, [x29, 136]
8601	str	x3, [x29, 96]
8602	uxtw	x1, w0
8603	ldr	w0, [x28, #:lo12:.LANCHOR145]
8604	bl	ftl_cmp_data_ver
8605	cbz	w0, .L1146
8606	ldp	w0, w1, [x29, 184]
8607	ldr	x3, [x29, 96]
8608	cmp	w0, w1
8609	ldr	w1, [x29, 180]
8610	bne	.L1148
8611.L1222:
8612	mov	w0, w24
8613	bl	FtlReUsePrevPpa
8614	b	.L1146
8615.L1148:
8616	cmp	w0, w1
8617	beq	.L1146
8618	cmn	w0, #1
8619	beq	.L1149
8620	ldr	x3, [x4, 16]
8621	mov	w2, 0
8622	str	w0, [x4, 4]
8623	mov	w1, 1
8624	str	x3, [x29, 96]
8625	mov	x0, x4
8626	bl	FlashReadPages
8627	ldr	x3, [x29, 96]
8628.L1150:
8629	ldr	x0, [x20, #:lo12:.LANCHOR112]
8630	ldr	w0, [x0, x25]
8631	cmn	w0, #1
8632	beq	.L1151
8633	ldr	x0, [x29, 104]
8634	ldr	w3, [x3, 4]
8635	mov	w1, w3
8636	ldr	w0, [x0]
8637	bl	ftl_cmp_data_ver
8638	cbz	w0, .L1151
8639	ldr	w0, [x29, 136]
8640	mov	w1, w3
8641	bl	ftl_cmp_data_ver
8642	cbz	w0, .L1146
8643.L1151:
8644	ldr	w1, [x29, 180]
8645	b	.L1222
8646.L1149:
8647	str	w0, [x4]
8648	b	.L1150
8649.L1143:
8650	ldp	w1, w0, [x29, 184]
8651	cmp	w1, w0
8652	beq	.L1153
8653	mov	w2, 1
8654	add	x1, x29, 188
8655	mov	w0, w24
8656	bl	log2phys
8657	ldr	w3, [x29, 184]
8658	cmn	w3, #1
8659	beq	.L1153
8660	ldr	w0, [x29, 180]
8661	cmp	w3, w0
8662	beq	.L1167
8663	lsr	w0, w3, 10
8664	bl	P2V_block_in_plane
8665	adrp	x1, .LANCHOR51
8666	and	w0, w0, 65535
8667	ldrh	w1, [x1, #:lo12:.LANCHOR51]
8668	cmp	w1, w0
8669	beq	.L1157
8670	adrp	x1, .LANCHOR52
8671	ldrh	w1, [x1, #:lo12:.LANCHOR52]
8672	cmp	w1, w0
8673	beq	.L1157
8674	adrp	x1, .LANCHOR53
8675	ldrh	w1, [x1, #:lo12:.LANCHOR53]
8676	cmp	w1, w0
8677	bne	.L1153
8678.L1157:
8679	ldr	x0, [x20, #:lo12:.LANCHOR112]
8680	mov	w2, 0
8681	mov	w1, 1
8682	ldr	x4, [x0, 16]
8683	str	w3, [x0, 4]
8684	str	x4, [x29, 136]
8685	bl	FlashReadPages
8686	ldr	x0, [x20, #:lo12:.LANCHOR112]
8687	ldr	w0, [x0]
8688	cmn	w0, #1
8689	beq	.L1153
8690	ldr	x4, [x29, 136]
8691	mov	w0, w21
8692	ldr	w1, [x4, 4]
8693	bl	ftl_cmp_data_ver
8694	cbnz	w0, .L1153
8695	mov	w2, 1
8696	add	x1, x29, 184
8697	mov	w0, w24
8698	bl	log2phys
8699	b	.L1153
8700.L1159:
8701	mov	w1, w24
8702	adrp	x0, .LC106
8703	add	x0, x0, :lo12:.LC106
8704	bl	printf
8705	b	.L1138
8706.L1140:
8707	ldr	x0, [x29, 120]
8708	ldr	w0, [x0]
8709	cmp	w0, 31
8710	bhi	.L1160
8711	adrp	x1, .LANCHOR169
8712	add	x1, x1, :lo12:.LANCHOR169
8713	str	w5, [x1, w0, uxtw 2]
8714	add	w0, w0, 1
8715	ldr	x1, [x29, 120]
8716	str	w0, [x1]
8717.L1160:
8718	ldrh	w0, [x19]
8719	bl	decrement_vpc_count
8720	ldr	w0, [x28, #:lo12:.LANCHOR145]
8721	cmn	w0, #1
8722	bne	.L1161
8723.L1224:
8724	str	w21, [x28, #:lo12:.LANCHOR145]
8725	b	.L1138
8726.L1161:
8727	cmp	w21, w0
8728	bcs	.L1138
8729	b	.L1224
8730.L1164:
8731	add	w0, w0, 1
8732	and	w0, w0, 65535
8733	b	.L1163
8734.L1139:
8735	strb	w27, [x19, 6]
8736	strh	w22, [x19, 2]
8737	b	.L1226
8738	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
8739	.section	.text.FtlWriteDump_data,"ax",@progbits
8740	.align	2
8741	.global	FtlWriteDump_data
8742	.type	FtlWriteDump_data, %function
8743FtlWriteDump_data:
8744	stp	x29, x30, [sp, -128]!
8745	add	x29, sp, 0
8746	stp	x19, x20, [sp, 16]
8747	adrp	x19, .LANCHOR51
8748	add	x0, x19, :lo12:.LANCHOR51
8749	stp	x21, x22, [sp, 32]
8750	stp	x23, x24, [sp, 48]
8751	ldrh	w2, [x0, 4]
8752	str	x25, [sp, 64]
8753	cbz	w2, .L1228
8754	ldrb	w1, [x0, 8]
8755	cbnz	w1, .L1228
8756	adrp	x3, .LANCHOR19
8757	ldrb	w1, [x0, 7]
8758	ldrh	w3, [x3, #:lo12:.LANCHOR19]
8759	mul	w1, w1, w3
8760	cmp	w2, w1
8761	beq	.L1228
8762	ldrb	w0, [x0, 10]
8763	cbnz	w0, .L1227
8764	adrp	x0, .LANCHOR61
8765	mov	w2, 0
8766	add	x1, x29, 92
8767	ldr	w21, [x0, #:lo12:.LANCHOR61]
8768	adrp	x0, .LANCHOR3
8769	sub	w21, w21, #1
8770	ldrh	w25, [x0, #:lo12:.LANCHOR3]
8771	mov	w0, w21
8772	bl	log2phys
8773	adrp	x2, .LANCHOR123
8774	adrp	x0, .LANCHOR115
8775	ldr	w1, [x29, 92]
8776	ldr	x20, [x2, #:lo12:.LANCHOR123]
8777	ldr	x0, [x0, #:lo12:.LANCHOR115]
8778	cmn	w1, #1
8779	str	w1, [x29, 100]
8780	stp	x0, x20, [x29, 104]
8781	str	w21, [x29, 120]
8782	str	wzr, [x20, 4]
8783	beq	.L1230
8784	mov	w2, 0
8785	mov	w1, 1
8786	add	x0, x29, 96
8787	bl	FlashReadPages
8788.L1231:
8789	adrp	x23, .LANCHOR71
8790	lsl	w25, w25, 2
8791	add	x22, x19, :lo12:.LANCHOR51
8792	add	x23, x23, :lo12:.LANCHOR71
8793	mov	w0, -3947
8794	mov	w24, 0
8795	strh	w0, [x20]
8796.L1232:
8797	cmp	w25, w24
8798	bne	.L1236
8799.L1233:
8800	add	x19, x19, :lo12:.LANCHOR51
8801	mov	w0, 1
8802	strb	w0, [x19, 10]
8803.L1227:
8804	ldp	x19, x20, [sp, 16]
8805	ldp	x21, x22, [sp, 32]
8806	ldp	x23, x24, [sp, 48]
8807	ldr	x25, [sp, 64]
8808	ldp	x29, x30, [sp], 128
8809	ret
8810.L1230:
8811	adrp	x1, .LANCHOR23
8812	ldrh	w2, [x1, #:lo12:.LANCHOR23]
8813	mov	w1, 255
8814	bl	ftl_memset
8815	b	.L1231
8816.L1236:
8817	ldrh	w0, [x22, 4]
8818	cbz	w0, .L1233
8819	ldr	w0, [x29, 100]
8820	add	w24, w24, 1
8821	stp	w21, w0, [x20, 8]
8822	ldrh	w0, [x22]
8823	strh	w0, [x20, 2]
8824	mov	x0, x22
8825	bl	get_new_active_ppa
8826	str	w0, [x29, 100]
8827	ldr	w0, [x23]
8828	mov	w3, 0
8829	str	w0, [x20, 4]
8830	mov	w2, 0
8831	add	w0, w0, 1
8832	mov	w1, 1
8833	cmn	w0, #1
8834	csel	w0, w0, wzr, ne
8835	str	w0, [x23]
8836	add	x0, x29, 96
8837	bl	FlashProgPages
8838	ldrh	w0, [x22]
8839	bl	decrement_vpc_count
8840	b	.L1232
8841.L1228:
8842	add	x19, x19, :lo12:.LANCHOR51
8843	strb	wzr, [x19, 10]
8844	b	.L1227
8845	.size	FtlWriteDump_data, .-FtlWriteDump_data
8846	.section	.text.l2p_flush,"ax",@progbits
8847	.align	2
8848	.global	l2p_flush
8849	.type	l2p_flush, %function
8850l2p_flush:
8851	stp	x29, x30, [sp, -48]!
8852	add	x29, sp, 0
8853	stp	x19, x20, [sp, 16]
8854	adrp	x20, .LANCHOR33
8855	add	x20, x20, :lo12:.LANCHOR33
8856	str	x21, [sp, 32]
8857	mov	w19, 0
8858	adrp	x21, .LANCHOR55
8859	bl	FtlWriteDump_data
8860.L1246:
8861	ldrh	w0, [x20]
8862	cmp	w0, w19
8863	bhi	.L1248
8864	mov	w0, 0
8865	ldr	x21, [sp, 32]
8866	ldp	x19, x20, [sp, 16]
8867	ldp	x29, x30, [sp], 48
8868	ret
8869.L1248:
8870	ldr	x1, [x21, #:lo12:.LANCHOR55]
8871	ubfiz	x0, x19, 4, 16
8872	add	x0, x1, x0
8873	ldr	w0, [x0, 4]
8874	tbz	w0, #31, .L1247
8875	mov	w0, w19
8876	bl	flush_l2p_region
8877.L1247:
8878	add	w19, w19, 1
8879	and	w19, w19, 65535
8880	b	.L1246
8881	.size	l2p_flush, .-l2p_flush
8882	.section	.text.FtlSuperblockPowerLostFix,"ax",@progbits
8883	.align	2
8884	.global	FtlSuperblockPowerLostFix
8885	.type	FtlSuperblockPowerLostFix, %function
8886FtlSuperblockPowerLostFix:
8887	stp	x29, x30, [sp, -80]!
8888	adrp	x1, .LANCHOR123
8889	add	x29, sp, 0
8890	stp	x19, x20, [sp, 16]
8891	mov	x19, x0
8892	mov	w0, -1
8893	stp	x21, x22, [sp, 32]
8894	str	w0, [x29, 72]
8895	adrp	x0, .LANCHOR115
8896	ldr	x21, [x1, #:lo12:.LANCHOR123]
8897	mov	w1, -3
8898	ldr	x0, [x0, #:lo12:.LANCHOR115]
8899	adrp	x22, .LANCHOR71
8900	str	x21, [x29, 64]
8901	add	x22, x22, :lo12:.LANCHOR71
8902	str	x0, [x29, 56]
8903	ldrh	w20, [x19, 4]
8904	str	w1, [x21, 8]
8905	mov	w1, -2
8906	str	w1, [x21, 12]
8907	and	w20, w20, 1
8908	ldrh	w1, [x19]
8909	add	w20, w20, 6
8910	strh	w1, [x21, 2]
8911	strh	wzr, [x21]
8912	mov	w1, 61589
8913	str	w1, [x0]
8914	mov	w1, 22136
8915	movk	w1, 0x1234, lsl 16
8916	str	w1, [x0, 4]
8917.L1256:
8918	ldrh	w0, [x19, 4]
8919	cbnz	w0, .L1252
8920.L1253:
8921	ldrh	w0, [x19]
8922	adrp	x1, .LANCHOR42
8923	ldrh	w3, [x19, 4]
8924	ldr	x2, [x1, #:lo12:.LANCHOR42]
8925	lsl	x0, x0, 1
8926	ldrh	w1, [x2, x0]
8927	sub	w1, w1, w3
8928	strh	w1, [x2, x0]
8929	adrp	x0, .LANCHOR19
8930	strb	wzr, [x19, 6]
8931	strh	wzr, [x19, 4]
8932	ldrh	w0, [x0, #:lo12:.LANCHOR19]
8933	strh	w0, [x19, 2]
8934	ldp	x21, x22, [sp, 32]
8935	ldp	x19, x20, [sp, 16]
8936	ldp	x29, x30, [sp], 80
8937	ret
8938.L1252:
8939	mov	x0, x19
8940	bl	get_new_active_ppa
8941	str	w0, [x29, 52]
8942	cmn	w0, #1
8943	beq	.L1253
8944	ldr	w0, [x22]
8945	mov	w3, 0
8946	str	w0, [x21, 4]
8947	mov	w2, 0
8948	add	w0, w0, 1
8949	mov	w1, 1
8950	cmn	w0, #1
8951	csel	w0, w0, wzr, ne
8952	str	w0, [x22]
8953	add	x0, x29, 48
8954	bl	FlashProgPages
8955	ldrh	w0, [x19]
8956	bl	decrement_vpc_count
8957	subs	w20, w20, #1
8958	bne	.L1256
8959	b	.L1253
8960	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
8961	.section	.text.FtlVendorPartWrite,"ax",@progbits
8962	.align	2
8963	.global	FtlVendorPartWrite
8964	.type	FtlVendorPartWrite, %function
8965FtlVendorPartWrite:
8966	stp	x29, x30, [sp, -208]!
8967	add	x29, sp, 0
8968	stp	x19, x20, [sp, 16]
8969	mov	w20, w1
8970	stp	x27, x28, [sp, 80]
8971	add	w1, w0, w1
8972	mov	w28, w0
8973	adrp	x0, .LANCHOR16
8974	stp	x21, x22, [sp, 32]
8975	ldrh	w0, [x0, #:lo12:.LANCHOR16]
8976	stp	x23, x24, [sp, 48]
8977	stp	x25, x26, [sp, 64]
8978	cmp	w1, w0
8979	bhi	.L1272
8980	adrp	x0, .LANCHOR22
8981	adrp	x25, .LANCHOR12
8982	adrp	x26, .LANCHOR23
8983	mov	x24, x2
8984	ldrh	w21, [x0, #:lo12:.LANCHOR22]
8985	add	x25, x25, :lo12:.LANCHOR12
8986	add	x26, x26, :lo12:.LANCHOR23
8987	mov	w23, 0
8988	lsr	w21, w28, w21
8989.L1266:
8990	cbnz	w20, .L1271
8991.L1264:
8992	mov	w0, w23
8993	ldp	x19, x20, [sp, 16]
8994	ldp	x21, x22, [sp, 32]
8995	ldp	x23, x24, [sp, 48]
8996	ldp	x25, x26, [sp, 64]
8997	ldp	x27, x28, [sp, 80]
8998	ldp	x29, x30, [sp], 208
8999	ret
9000.L1271:
9001	ldrh	w1, [x25]
9002	adrp	x0, .LANCHOR133
9003	adrp	x27, .LANCHOR117
9004	ldr	x0, [x0, #:lo12:.LANCHOR133]
9005	udiv	w22, w28, w1
9006	ldr	w2, [x0, w21, uxtw 2]
9007	and	w0, w20, 65535
9008	msub	w22, w22, w1, w28
9009	sub	w19, w1, w22
9010	and	w19, w19, 65535
9011	cmp	w20, w19
9012	csel	w19, w0, w19, cc
9013	cbz	w2, .L1268
9014	cmp	w19, w1
9015	beq	.L1268
9016	ldr	x0, [x27, #:lo12:.LANCHOR117]
9017	str	x0, [x29, 120]
9018	add	x0, x29, 144
9019	str	w2, [x29, 116]
9020	mov	w2, 1
9021	str	x0, [x29, 128]
9022	mov	w1, w2
9023	add	x0, x29, 112
9024	bl	FlashReadPages
9025.L1269:
9026	lsl	w4, w19, 9
9027	ldr	x0, [x27, #:lo12:.LANCHOR117]
9028	lsl	w22, w22, 7
9029	mov	w2, w4
9030	mov	x1, x24
9031	str	w4, [x29, 108]
9032	add	x0, x0, x22, sxtw 2
9033	bl	ftl_memcpy
9034	ldr	x2, [x27, #:lo12:.LANCHOR117]
9035	mov	w1, w21
9036	adrp	x0, .LANCHOR158
9037	add	x0, x0, :lo12:.LANCHOR158
9038	sub	w20, w20, w19
9039	add	w28, w28, w19
9040	add	w21, w21, 1
9041	bl	FtlMapWritePage
9042	cmn	w0, #1
9043	ldr	w4, [x29, 108]
9044	csinv	w23, w23, wzr, ne
9045	add	x24, x24, x4, sxtw
9046	b	.L1266
9047.L1268:
9048	ldrh	w2, [x26]
9049	mov	w1, 0
9050	ldr	x0, [x27, #:lo12:.LANCHOR117]
9051	bl	ftl_memset
9052	b	.L1269
9053.L1272:
9054	mov	w23, -1
9055	b	.L1264
9056	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
9057	.section	.text.Ftl_save_ext_data,"ax",@progbits
9058	.align	2
9059	.global	Ftl_save_ext_data
9060	.type	Ftl_save_ext_data, %function
9061Ftl_save_ext_data:
9062	adrp	x0, .LANCHOR81
9063	add	x2, x0, :lo12:.LANCHOR81
9064	ldr	w1, [x0, #:lo12:.LANCHOR81]
9065	mov	w0, 19539
9066	movk	w0, 0x4654, lsl 16
9067	cmp	w1, w0
9068	bne	.L1277
9069	mov	w0, 72
9070	mov	w1, 1
9071	movk	w0, 0x5000, lsl 16
9072	str	w0, [x2, 4]
9073	adrp	x0, .LANCHOR68
9074	ldr	w0, [x0, #:lo12:.LANCHOR68]
9075	str	w0, [x2, 88]
9076	adrp	x0, .LANCHOR69
9077	ldr	w0, [x0, #:lo12:.LANCHOR69]
9078	str	w0, [x2, 92]
9079	adrp	x0, .LANCHOR67
9080	ldr	w0, [x0, #:lo12:.LANCHOR67]
9081	str	w0, [x2, 8]
9082	adrp	x0, .LANCHOR64
9083	ldr	w0, [x0, #:lo12:.LANCHOR64]
9084	str	w0, [x2, 12]
9085	adrp	x0, .LANCHOR62
9086	ldr	w0, [x0, #:lo12:.LANCHOR62]
9087	str	w0, [x2, 16]
9088	adrp	x0, .LANCHOR66
9089	ldr	w0, [x0, #:lo12:.LANCHOR66]
9090	str	w0, [x2, 20]
9091	adrp	x0, .LANCHOR73
9092	ldr	w0, [x0, #:lo12:.LANCHOR73]
9093	str	w0, [x2, 28]
9094	adrp	x0, .LANCHOR75
9095	ldr	w0, [x0, #:lo12:.LANCHOR75]
9096	str	w0, [x2, 32]
9097	adrp	x0, .LANCHOR63
9098	ldr	w0, [x0, #:lo12:.LANCHOR63]
9099	str	w0, [x2, 36]
9100	adrp	x0, .LANCHOR65
9101	ldr	w0, [x0, #:lo12:.LANCHOR65]
9102	str	w0, [x2, 40]
9103	adrp	x0, .LANCHOR76
9104	ldr	w0, [x0, #:lo12:.LANCHOR76]
9105	str	w0, [x2, 44]
9106	adrp	x0, .LANCHOR77
9107	ldr	w0, [x0, #:lo12:.LANCHOR77]
9108	str	w0, [x2, 48]
9109	mov	w0, 0
9110	b	FtlVendorPartWrite
9111.L1277:
9112	ret
9113	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
9114	.section	.text.FtlEctTblFlush,"ax",@progbits
9115	.align	2
9116	.global	FtlEctTblFlush
9117	.type	FtlEctTblFlush, %function
9118FtlEctTblFlush:
9119	adrp	x2, .LANCHOR170
9120	ldrh	w1, [x2, #:lo12:.LANCHOR170]
9121	cmp	w1, 31
9122	bhi	.L1283
9123	add	w1, w1, 1
9124	strh	w1, [x2, #:lo12:.LANCHOR170]
9125	mov	w1, 1
9126.L1280:
9127	adrp	x2, .LANCHOR127
9128	cbnz	w0, .L1281
9129	ldr	x0, [x2, #:lo12:.LANCHOR127]
9130	ldr	w3, [x0, 20]
9131	ldr	w0, [x0, 16]
9132	add	w1, w1, w3
9133	cmp	w0, w1
9134	bcc	.L1285
9135.L1281:
9136	stp	x29, x30, [sp, -16]!
9137	add	x29, sp, 0
9138	ldr	x2, [x2, #:lo12:.LANCHOR127]
9139	ldr	w0, [x2, 16]
9140	str	w0, [x2, 20]
9141	mov	w0, 17221
9142	str	wzr, [x2, 4]
9143	movk	w0, 0x4254, lsl 16
9144	str	w0, [x2]
9145	adrp	x0, .LANCHOR125
9146	ldrh	w1, [x0, #:lo12:.LANCHOR125]
9147	lsl	w0, w1, 9
9148	str	w0, [x2, 12]
9149	ldr	w0, [x2, 8]
9150	add	w0, w0, 1
9151	str	w0, [x2, 8]
9152	mov	w0, 64
9153	bl	FtlVendorPartWrite
9154	bl	Ftl_save_ext_data
9155	mov	w0, 0
9156	ldp	x29, x30, [sp], 16
9157	ret
9158.L1283:
9159	mov	w1, 32
9160	b	.L1280
9161.L1285:
9162	mov	w0, 0
9163	ret
9164	.size	FtlEctTblFlush, .-FtlEctTblFlush
9165	.section	.text.sftl_vendor_write,"ax",@progbits
9166	.align	2
9167	.global	sftl_vendor_write
9168	.type	sftl_vendor_write, %function
9169sftl_vendor_write:
9170	add	w0, w0, 256
9171	b	FtlVendorPartWrite
9172	.size	sftl_vendor_write, .-sftl_vendor_write
9173	.section	.text.FtlVendorPartRead,"ax",@progbits
9174	.align	2
9175	.global	FtlVendorPartRead
9176	.type	FtlVendorPartRead, %function
9177FtlVendorPartRead:
9178	stp	x29, x30, [sp, -208]!
9179	add	x29, sp, 0
9180	stp	x21, x22, [sp, 32]
9181	mov	w22, w0
9182	mov	w21, w1
9183	add	w1, w0, w1
9184	adrp	x0, .LANCHOR16
9185	stp	x19, x20, [sp, 16]
9186	stp	x23, x24, [sp, 48]
9187	ldrh	w0, [x0, #:lo12:.LANCHOR16]
9188	stp	x25, x26, [sp, 64]
9189	stp	x27, x28, [sp, 80]
9190	cmp	w1, w0
9191	bhi	.L1297
9192	adrp	x0, .LANCHOR22
9193	mov	x25, x2
9194	mov	w24, 0
9195	adrp	x27, .LANCHOR133
9196	ldrh	w20, [x0, #:lo12:.LANCHOR22]
9197	adrp	x0, .LANCHOR12
9198	add	x0, x0, :lo12:.LANCHOR12
9199	str	x0, [x29, 104]
9200	lsr	w20, w22, w20
9201.L1290:
9202	cbnz	w21, .L1296
9203.L1288:
9204	mov	w0, w24
9205	ldp	x19, x20, [sp, 16]
9206	ldp	x21, x22, [sp, 32]
9207	ldp	x23, x24, [sp, 48]
9208	ldp	x25, x26, [sp, 64]
9209	ldp	x27, x28, [sp, 80]
9210	ldp	x29, x30, [sp], 208
9211	ret
9212.L1296:
9213	ldr	x0, [x27, #:lo12:.LANCHOR133]
9214	ldr	w4, [x0, w20, uxtw 2]
9215	ldr	x0, [x29, 104]
9216	ldrh	w19, [x0]
9217	and	w0, w21, 65535
9218	udiv	w23, w22, w19
9219	msub	w23, w23, w19, w22
9220	sub	w19, w19, w23
9221	and	w19, w19, 65535
9222	cmp	w21, w19
9223	csel	w19, w0, w19, cc
9224	lsl	w26, w19, 9
9225	cbz	w4, .L1292
9226	adrp	x28, .LANCHOR117
9227	mov	w2, 1
9228	str	w4, [x29, 96]
9229	mov	w1, w2
9230	ldr	x0, [x28, #:lo12:.LANCHOR117]
9231	str	x0, [x29, 120]
9232	add	x0, x29, 144
9233	str	w4, [x29, 116]
9234	str	x0, [x29, 128]
9235	add	x0, x29, 112
9236	bl	FlashReadPages
9237	ldr	w0, [x29, 112]
9238	mov	x5, x28
9239	ldr	w4, [x29, 96]
9240	cmn	w0, #1
9241	adrp	x0, .LANCHOR148
9242	csinv	w24, w24, wzr, ne
9243	ldr	w0, [x0, #:lo12:.LANCHOR148]
9244	cmp	w0, 256
9245	bne	.L1294
9246	mov	w2, w4
9247	mov	w1, w20
9248	adrp	x0, .LC107
9249	str	x28, [x29, 96]
9250	add	x0, x0, :lo12:.LC107
9251	bl	printf
9252	ldr	x2, [x28, #:lo12:.LANCHOR117]
9253	mov	w1, w20
9254	adrp	x0, .LANCHOR158
9255	add	x0, x0, :lo12:.LANCHOR158
9256	bl	FtlMapWritePage
9257	ldr	x5, [x29, 96]
9258.L1294:
9259	ldr	x1, [x5, #:lo12:.LANCHOR117]
9260	lsl	w23, w23, 7
9261	mov	w2, w26
9262	mov	x0, x25
9263	add	x1, x1, x23, sxtw 2
9264	bl	ftl_memcpy
9265.L1295:
9266	add	w20, w20, 1
9267	sub	w21, w21, w19
9268	add	w22, w22, w19
9269	add	x25, x25, x26, sxtw
9270	b	.L1290
9271.L1292:
9272	mov	w2, w26
9273	mov	w1, 0
9274	mov	x0, x25
9275	bl	ftl_memset
9276	b	.L1295
9277.L1297:
9278	mov	w24, -1
9279	b	.L1288
9280	.size	FtlVendorPartRead, .-FtlVendorPartRead
9281	.section	.text.FtlLoadEctTbl,"ax",@progbits
9282	.align	2
9283	.global	FtlLoadEctTbl
9284	.type	FtlLoadEctTbl, %function
9285FtlLoadEctTbl:
9286	stp	x29, x30, [sp, -32]!
9287	mov	w0, 64
9288	add	x29, sp, 0
9289	stp	x19, x20, [sp, 16]
9290	adrp	x19, .LANCHOR127
9291	adrp	x20, .LANCHOR125
9292	ldr	x2, [x19, #:lo12:.LANCHOR127]
9293	ldrh	w1, [x20, #:lo12:.LANCHOR125]
9294	bl	FtlVendorPartRead
9295	ldr	x0, [x19, #:lo12:.LANCHOR127]
9296	ldr	w1, [x0]
9297	mov	w0, 17221
9298	movk	w0, 0x4254, lsl 16
9299	cmp	w1, w0
9300	beq	.L1300
9301	adrp	x1, .LC108
9302	adrp	x0, .LC71
9303	add	x1, x1, :lo12:.LC108
9304	add	x0, x0, :lo12:.LC71
9305	bl	printf
9306	ldr	x0, [x19, #:lo12:.LANCHOR127]
9307	mov	w1, 0
9308	ldrh	w2, [x20, #:lo12:.LANCHOR125]
9309	lsl	w2, w2, 9
9310	bl	ftl_memset
9311.L1300:
9312	mov	w0, 0
9313	ldp	x19, x20, [sp, 16]
9314	ldp	x29, x30, [sp], 32
9315	ret
9316	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
9317	.section	.text.Ftl_load_ext_data,"ax",@progbits
9318	.align	2
9319	.global	Ftl_load_ext_data
9320	.type	Ftl_load_ext_data, %function
9321Ftl_load_ext_data:
9322	stp	x29, x30, [sp, -48]!
9323	mov	w1, 1
9324	mov	w0, 0
9325	add	x29, sp, 0
9326	stp	x19, x20, [sp, 16]
9327	adrp	x19, .LANCHOR81
9328	str	x21, [sp, 32]
9329	add	x21, x19, :lo12:.LANCHOR81
9330	mov	x2, x21
9331	bl	FtlVendorPartRead
9332	ldr	w0, [x19, #:lo12:.LANCHOR81]
9333	mov	w20, 19539
9334	movk	w20, 0x4654, lsl 16
9335	cmp	w0, w20
9336	beq	.L1303
9337	mov	w2, 512
9338	mov	w1, 0
9339	mov	x0, x21
9340	bl	ftl_memset
9341	str	w20, [x19, #:lo12:.LANCHOR81]
9342.L1303:
9343	ldr	w1, [x19, #:lo12:.LANCHOR81]
9344	add	x0, x19, :lo12:.LANCHOR81
9345	cmp	w1, w20
9346	adrp	x1, .LANCHOR73
9347	bne	.L1304
9348	adrp	x2, .LANCHOR68
9349	ldr	w3, [x0, 88]
9350	str	w3, [x2, #:lo12:.LANCHOR68]
9351	adrp	x2, .LANCHOR69
9352	ldr	w3, [x0, 92]
9353	str	w3, [x2, #:lo12:.LANCHOR69]
9354	adrp	x2, .LANCHOR67
9355	ldr	w3, [x0, 8]
9356	str	w3, [x2, #:lo12:.LANCHOR67]
9357	adrp	x2, .LANCHOR64
9358	ldr	w3, [x0, 12]
9359	str	w3, [x2, #:lo12:.LANCHOR64]
9360	adrp	x2, .LANCHOR62
9361	ldr	w3, [x0, 16]
9362	str	w3, [x2, #:lo12:.LANCHOR62]
9363	adrp	x2, .LANCHOR66
9364	ldr	w3, [x0, 20]
9365	str	w3, [x2, #:lo12:.LANCHOR66]
9366	ldp	w2, w3, [x0, 28]
9367	str	w2, [x1, #:lo12:.LANCHOR73]
9368	adrp	x2, .LANCHOR75
9369	str	w3, [x2, #:lo12:.LANCHOR75]
9370	adrp	x2, .LANCHOR63
9371	ldr	w3, [x0, 36]
9372	str	w3, [x2, #:lo12:.LANCHOR63]
9373	adrp	x2, .LANCHOR65
9374	ldr	w3, [x0, 40]
9375	str	w3, [x2, #:lo12:.LANCHOR65]
9376	adrp	x2, .LANCHOR76
9377	ldr	w3, [x0, 44]
9378	str	w3, [x2, #:lo12:.LANCHOR76]
9379	ldr	w2, [x0, 48]
9380	adrp	x0, .LANCHOR77
9381	str	w2, [x0, #:lo12:.LANCHOR77]
9382.L1304:
9383	adrp	x0, .LANCHOR14
9384	adrp	x2, .LANCHOR72
9385	ldr	w1, [x1, #:lo12:.LANCHOR73]
9386	ldrh	w0, [x0, #:lo12:.LANCHOR14]
9387	ldr	w2, [x2, #:lo12:.LANCHOR72]
9388	ldp	x19, x20, [sp, 16]
9389	ldr	x21, [sp, 32]
9390	madd	w0, w0, w2, w1
9391	adrp	x1, .LANCHOR5
9392	ldp	x29, x30, [sp], 48
9393	ldrh	w1, [x1, #:lo12:.LANCHOR5]
9394	udiv	w0, w0, w1
9395	adrp	x1, .LANCHOR74
9396	str	w0, [x1, #:lo12:.LANCHOR74]
9397	ret
9398	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
9399	.section	.text.sftl_vendor_read,"ax",@progbits
9400	.align	2
9401	.global	sftl_vendor_read
9402	.type	sftl_vendor_read, %function
9403sftl_vendor_read:
9404	add	w0, w0, 256
9405	b	FtlVendorPartRead
9406	.size	sftl_vendor_read, .-sftl_vendor_read
9407	.section	.text.FtlVpcTblFlush,"ax",@progbits
9408	.align	2
9409	.global	FtlVpcTblFlush
9410	.type	FtlVpcTblFlush, %function
9411FtlVpcTblFlush:
9412	stp	x29, x30, [sp, -112]!
9413	adrp	x1, .LANCHOR79
9414	mov	w2, 19539
9415	add	x29, sp, 0
9416	stp	x25, x26, [sp, 64]
9417	adrp	x25, .LANCHOR123
9418	stp	x21, x22, [sp, 32]
9419	adrp	x22, .LANCHOR148
9420	stp	x23, x24, [sp, 48]
9421	adrp	x24, .LANCHOR115
9422	stp	x27, x28, [sp, 80]
9423	add	x28, x22, :lo12:.LANCHOR148
9424	ldr	x27, [x25, #:lo12:.LANCHOR123]
9425	movk	w2, 0x4654, lsl 16
9426	stp	x19, x20, [sp, 16]
9427	add	x20, x1, :lo12:.LANCHOR79
9428	ldr	x0, [x24, #:lo12:.LANCHOR115]
9429	adrp	x23, .LANCHOR70
9430	ldrh	w1, [x1, #:lo12:.LANCHOR79]
9431	mov	w21, 0
9432	stp	x0, x27, [x28, 8]
9433	mov	w26, 65535
9434	strh	w1, [x27, 2]
9435	mov	w1, -3932
9436	strh	w1, [x27]
9437	ldr	w1, [x20, 8]
9438	stp	w1, wzr, [x27, 4]
9439	adrp	x1, .LANCHOR39
9440	add	x19, x1, :lo12:.LANCHOR39
9441	str	wzr, [x27, 12]
9442	str	w2, [x1, #:lo12:.LANCHOR39]
9443	mov	w1, 72
9444	movk	w1, 0x5000, lsl 16
9445	str	w1, [x19, 4]
9446	ldrh	w1, [x20, 6]
9447	adrp	x2, .LANCHOR51
9448	strh	w1, [x19, 8]
9449	adrp	x1, .LANCHOR10
9450	ldrh	w1, [x1, #:lo12:.LANCHOR10]
9451	strb	w1, [x19, 10]
9452	add	x1, x2, :lo12:.LANCHOR51
9453	ldrh	w2, [x2, #:lo12:.LANCHOR51]
9454	strh	w2, [x19, 14]
9455	ldrh	w2, [x1, 2]
9456	ldrb	w3, [x1, 6]
9457	ldrb	w1, [x1, 8]
9458	strb	w1, [x19, 11]
9459	orr	w2, w3, w2, lsl 6
9460	strh	w2, [x19, 16]
9461	adrp	x2, .LANCHOR52
9462	add	x1, x2, :lo12:.LANCHOR52
9463	ldrh	w2, [x2, #:lo12:.LANCHOR52]
9464	ldrb	w3, [x1, 6]
9465	strh	w2, [x19, 18]
9466	ldrh	w2, [x1, 2]
9467	ldrb	w1, [x1, 8]
9468	strb	w1, [x19, 12]
9469	orr	w2, w3, w2, lsl 6
9470	strh	w2, [x19, 20]
9471	adrp	x2, .LANCHOR53
9472	add	x1, x2, :lo12:.LANCHOR53
9473	ldrh	w2, [x2, #:lo12:.LANCHOR53]
9474	ldrb	w3, [x1, 6]
9475	strh	w2, [x19, 22]
9476	ldrh	w2, [x1, 2]
9477	ldrb	w1, [x1, 8]
9478	strb	w1, [x19, 13]
9479	adrp	x1, .LANCHOR72
9480	orr	w2, w3, w2, lsl 6
9481	strh	w2, [x19, 24]
9482	ldr	w1, [x1, #:lo12:.LANCHOR72]
9483	str	w1, [x19, 32]
9484	ldr	w1, [x23, #:lo12:.LANCHOR70]
9485	str	w1, [x19, 40]
9486	adrp	x1, .LANCHOR71
9487	ldr	w1, [x1, #:lo12:.LANCHOR71]
9488	str	w1, [x19, 36]
9489	adrp	x1, .LANCHOR23
9490	ldrh	w2, [x1, #:lo12:.LANCHOR23]
9491	mov	w1, 255
9492	bl	ftl_memset
9493	ldr	x0, [x28, 8]
9494	mov	x1, x19
9495	mov	w2, 48
9496	adrp	x19, .LANCHOR5
9497	bl	ftl_memcpy
9498	adrp	x1, .LANCHOR42
9499	ldrh	w2, [x19, #:lo12:.LANCHOR5]
9500	ldr	x0, [x28, 8]
9501	ldr	x1, [x1, #:lo12:.LANCHOR42]
9502	lsl	w2, w2, 1
9503	add	x0, x0, 48
9504	bl	ftl_memcpy
9505	ldrh	w1, [x19, #:lo12:.LANCHOR5]
9506	mov	x19, x20
9507	ldr	x0, [x28, 8]
9508	adrp	x20, .LANCHOR20
9509	add	x20, x20, :lo12:.LANCHOR20
9510	lsr	w2, w1, 3
9511	ubfiz	x3, x1, 1, 16
9512	adrp	x1, .LANCHOR1
9513	add	x3, x3, 48
9514	and	x3, x3, -4
9515	add	w2, w2, 4
9516	ldr	x1, [x1, #:lo12:.LANCHOR1]
9517	add	x0, x0, x3
9518	bl	ftl_memcpy
9519	mov	w0, 0
9520	bl	FtlUpdateVaildLpn
9521	str	x20, [x29, 104]
9522.L1308:
9523	ldrh	w2, [x19, 2]
9524	ldrh	w1, [x19]
9525	ldr	x0, [x24, #:lo12:.LANCHOR115]
9526	str	x0, [x28, 8]
9527	ldr	x0, [x25, #:lo12:.LANCHOR123]
9528	str	x0, [x28, 16]
9529	orr	w0, w2, w1, lsl 10
9530	str	w0, [x28, 4]
9531	ldrh	w0, [x20]
9532	sub	w0, w0, #1
9533	cmp	w2, w0
9534	blt	.L1309
9535	ldrh	w26, [x19, 4]
9536	strh	wzr, [x19, 2]
9537	strh	w1, [x19, 4]
9538	bl	FtlFreeSysBlkQueueOut
9539	ldr	w1, [x23, #:lo12:.LANCHOR70]
9540	str	w1, [x19, 8]
9541	add	w2, w1, 1
9542	str	w2, [x23, #:lo12:.LANCHOR70]
9543	ubfiz	w2, w0, 10, 16
9544	str	w2, [x28, 4]
9545	strh	w0, [x19]
9546	strh	w0, [x27, 2]
9547	str	w1, [x27, 4]
9548.L1309:
9549	mov	w3, 1
9550	mov	x0, x28
9551	mov	w1, w3
9552	mov	w2, w3
9553	bl	FlashProgPages
9554	ldrh	w0, [x19, 2]
9555	ldr	w1, [x28]
9556	add	w0, w0, 1
9557	and	w0, w0, 65535
9558	strh	w0, [x19, 2]
9559	cmn	w1, #1
9560	bne	.L1310
9561	cmp	w0, 1
9562	bne	.L1311
9563	adrp	x1, .LANCHOR171
9564	adrp	x0, .LC1
9565	mov	w2, 1135
9566	add	x1, x1, :lo12:.LANCHOR171
9567	add	x0, x0, :lo12:.LC1
9568	bl	printf
9569.L1311:
9570	ldrh	w0, [x19, 2]
9571	cmp	w0, 1
9572	bne	.L1312
9573	ldr	x0, [x29, 104]
9574	ldrh	w0, [x0]
9575	sub	w0, w0, #1
9576	strh	w0, [x19, 2]
9577.L1312:
9578	add	w21, w21, 1
9579	and	w21, w21, 65535
9580	cmp	w21, 3
9581	bls	.L1308
9582	add	x22, x22, :lo12:.LANCHOR148
9583	adrp	x0, .LC109
9584	mov	w2, w21
9585	add	x0, x0, :lo12:.LC109
9586	ldr	w1, [x22, 4]
9587	bl	printf
9588.L1314:
9589	b	.L1314
9590.L1310:
9591	cmp	w0, 1
9592	beq	.L1308
9593	cmp	w1, 256
9594	beq	.L1308
9595	mov	w0, 65535
9596	cmp	w26, w0
9597	beq	.L1315
9598	mov	w1, 1
9599	mov	w0, w26
9600	bl	FtlFreeSysBlkQueueIn
9601.L1315:
9602	ldp	x19, x20, [sp, 16]
9603	mov	w0, 0
9604	ldp	x21, x22, [sp, 32]
9605	ldp	x23, x24, [sp, 48]
9606	ldp	x25, x26, [sp, 64]
9607	ldp	x27, x28, [sp, 80]
9608	ldp	x29, x30, [sp], 112
9609	ret
9610	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
9611	.section	.text.FtlSysFlush,"ax",@progbits
9612	.align	2
9613	.global	FtlSysFlush
9614	.type	FtlSysFlush, %function
9615FtlSysFlush:
9616	stp	x29, x30, [sp, -16]!
9617	add	x29, sp, 0
9618	bl	l2p_flush
9619	mov	w0, 1
9620	bl	FtlEctTblFlush
9621	bl	FtlVpcTblFlush
9622	mov	w0, 0
9623	ldp	x29, x30, [sp], 16
9624	ret
9625	.size	FtlSysFlush, .-FtlSysFlush
9626	.section	.text.sftl_deinit,"ax",@progbits
9627	.align	2
9628	.global	sftl_deinit
9629	.type	sftl_deinit, %function
9630sftl_deinit:
9631	adrp	x0, .LANCHOR86
9632	ldr	w0, [x0, #:lo12:.LANCHOR86]
9633	cmp	w0, 1
9634	bne	.L1328
9635	stp	x29, x30, [sp, -16]!
9636	add	x29, sp, 0
9637	bl	FtlSysFlush
9638	mov	w0, 0
9639	ldp	x29, x30, [sp], 16
9640	ret
9641.L1328:
9642	mov	w0, 0
9643	ret
9644	.size	sftl_deinit, .-sftl_deinit
9645	.section	.text.FtlDiscard,"ax",@progbits
9646	.align	2
9647	.global	FtlDiscard
9648	.type	FtlDiscard, %function
9649FtlDiscard:
9650	stp	x29, x30, [sp, -80]!
9651	add	w2, w0, w1
9652	add	x29, sp, 0
9653	stp	x19, x20, [sp, 16]
9654	mov	w19, w1
9655	adrp	x1, .LANCHOR34
9656	stp	x21, x22, [sp, 32]
9657	str	x23, [sp, 48]
9658	ldr	w1, [x1, #:lo12:.LANCHOR34]
9659	cmp	w2, w1
9660	bhi	.L1339
9661	cmp	w19, 31
9662	bhi	.L1333
9663.L1347:
9664	mov	w0, 0
9665.L1331:
9666	ldp	x19, x20, [sp, 16]
9667	ldp	x21, x22, [sp, 32]
9668	ldr	x23, [sp, 48]
9669	ldp	x29, x30, [sp], 80
9670	ret
9671.L1333:
9672	adrp	x21, .LANCHOR12
9673	ldrh	w1, [x21, #:lo12:.LANCHOR12]
9674	udiv	w20, w0, w1
9675	msub	w0, w1, w20, w0
9676	ands	w0, w0, 65535
9677	beq	.L1334
9678	sub	w1, w1, w0
9679	add	w20, w20, 1
9680	cmp	w1, w19
9681	csel	w1, w1, w19, ls
9682	sub	w19, w19, w1, uxth
9683.L1334:
9684	adrp	x22, .LANCHOR172
9685	adrp	x23, .LANCHOR63
9686	add	x22, x22, :lo12:.LANCHOR172
9687	add	x23, x23, :lo12:.LANCHOR63
9688	mov	w0, -1
9689	str	w0, [x29, 76]
9690.L1335:
9691	ldrh	w0, [x21, #:lo12:.LANCHOR12]
9692	cmp	w19, w0
9693	bcs	.L1337
9694	adrp	x0, .LANCHOR172
9695	ldr	w1, [x0, #:lo12:.LANCHOR172]
9696	cmp	w1, 32
9697	bls	.L1347
9698	str	wzr, [x0, #:lo12:.LANCHOR172]
9699	bl	l2p_flush
9700	bl	FtlVpcTblFlush
9701	b	.L1347
9702.L1337:
9703	mov	w2, 0
9704	add	x1, x29, 72
9705	mov	w0, w20
9706	bl	log2phys
9707	ldr	w0, [x29, 72]
9708	cmn	w0, #1
9709	beq	.L1336
9710	ldr	w0, [x22]
9711	mov	w2, 1
9712	add	x1, x29, 76
9713	add	w0, w0, 1
9714	str	w0, [x22]
9715	ldr	w0, [x23]
9716	add	w0, w0, 1
9717	str	w0, [x23]
9718	mov	w0, w20
9719	bl	log2phys
9720	ldr	w0, [x29, 72]
9721	lsr	w0, w0, 10
9722	bl	P2V_block_in_plane
9723	bl	decrement_vpc_count
9724.L1336:
9725	ldrh	w0, [x21, #:lo12:.LANCHOR12]
9726	add	w20, w20, 1
9727	sub	w19, w19, w0
9728	b	.L1335
9729.L1339:
9730	mov	w0, -1
9731	b	.L1331
9732	.size	FtlDiscard, .-FtlDiscard
9733	.section	.text.FtlVpcCheckAndModify,"ax",@progbits
9734	.align	2
9735	.global	FtlVpcCheckAndModify
9736	.type	FtlVpcCheckAndModify, %function
9737FtlVpcCheckAndModify:
9738	stp	x29, x30, [sp, -96]!
9739	adrp	x1, .LANCHOR173
9740	adrp	x0, .LC94
9741	add	x1, x1, :lo12:.LANCHOR173
9742	add	x29, sp, 0
9743	stp	x19, x20, [sp, 16]
9744	add	x0, x0, :lo12:.LC94
9745	stp	x23, x24, [sp, 48]
9746	adrp	x24, .LANCHOR128
9747	stp	x21, x22, [sp, 32]
9748	adrp	x20, .LANCHOR61
9749	str	x25, [sp, 64]
9750	bl	printf
9751	adrp	x0, .LANCHOR6
9752	mov	w19, 0
9753	add	x20, x20, :lo12:.LANCHOR61
9754	mov	w1, 0
9755	ldrh	w2, [x0, #:lo12:.LANCHOR6]
9756	ldr	x0, [x24, #:lo12:.LANCHOR128]
9757	lsl	w2, w2, 1
9758	bl	ftl_memset
9759.L1349:
9760	ldr	w0, [x20]
9761	cmp	w19, w0
9762	bcc	.L1351
9763	adrp	x21, .LANCHOR5
9764	adrp	x22, .LC110
9765	add	x21, x21, :lo12:.LANCHOR5
9766	add	x22, x22, :lo12:.LC110
9767	mov	w19, 0
9768	adrp	x25, .LANCHOR42
9769	mov	w23, 65535
9770.L1352:
9771	ldrh	w0, [x21]
9772	cmp	w0, w19
9773	bhi	.L1357
9774	bl	l2p_flush
9775	bl	FtlVpcTblFlush
9776	ldr	x25, [sp, 64]
9777	ldp	x19, x20, [sp, 16]
9778	ldp	x21, x22, [sp, 32]
9779	ldp	x23, x24, [sp, 48]
9780	ldp	x29, x30, [sp], 96
9781	ret
9782.L1351:
9783	mov	w2, 0
9784	add	x1, x29, 92
9785	mov	w0, w19
9786	bl	log2phys
9787	ldr	w0, [x29, 92]
9788	cmn	w0, #1
9789	beq	.L1350
9790	lsr	w0, w0, 10
9791	bl	P2V_block_in_plane
9792	ldr	x2, [x24, #:lo12:.LANCHOR128]
9793	ubfiz	x0, x0, 1, 16
9794	ldrh	w1, [x2, x0]
9795	add	w1, w1, 1
9796	strh	w1, [x2, x0]
9797.L1350:
9798	add	w19, w19, 1
9799	b	.L1349
9800.L1357:
9801	ldr	x0, [x25, #:lo12:.LANCHOR42]
9802	ubfiz	x20, x19, 1, 16
9803	ldrh	w2, [x0, x20]
9804	ldr	x0, [x24, #:lo12:.LANCHOR128]
9805	ldrh	w3, [x0, x20]
9806	cmp	w2, w3
9807	beq	.L1354
9808	cmp	w2, w23
9809	beq	.L1354
9810	mov	w1, w19
9811	mov	x0, x22
9812	bl	printf
9813	adrp	x0, .LANCHOR51
9814	ldrh	w0, [x0, #:lo12:.LANCHOR51]
9815	cmp	w0, w19
9816	beq	.L1354
9817	adrp	x0, .LANCHOR53
9818	ldrh	w0, [x0, #:lo12:.LANCHOR53]
9819	cmp	w0, w19
9820	beq	.L1354
9821	adrp	x0, .LANCHOR52
9822	ldrh	w0, [x0, #:lo12:.LANCHOR52]
9823	cmp	w0, w19
9824	beq	.L1354
9825	ldr	x0, [x25, #:lo12:.LANCHOR42]
9826	ldrh	w1, [x0, x20]
9827	cbnz	w1, .L1356
9828	ldr	x1, [x24, #:lo12:.LANCHOR128]
9829	ldrh	w1, [x1, x20]
9830	strh	w1, [x0, x20]
9831.L1354:
9832	add	w19, w19, 1
9833	and	w19, w19, 65535
9834	b	.L1352
9835.L1356:
9836	ldr	x1, [x24, #:lo12:.LANCHOR128]
9837	ldrh	w1, [x1, x20]
9838	strh	w1, [x0, x20]
9839	mov	w0, w19
9840	bl	update_vpc_list
9841	b	.L1354
9842	.size	FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
9843	.section	.text.allocate_new_data_superblock,"ax",@progbits
9844	.align	2
9845	.global	allocate_new_data_superblock
9846	.type	allocate_new_data_superblock, %function
9847allocate_new_data_superblock:
9848	stp	x29, x30, [sp, -48]!
9849	add	x29, sp, 0
9850	stp	x19, x20, [sp, 16]
9851	ldrh	w19, [x0]
9852	str	x21, [sp, 32]
9853	mov	x21, x0
9854	adrp	x0, .LANCHOR5
9855	ldrh	w0, [x0, #:lo12:.LANCHOR5]
9856	cmp	w0, w19
9857	bcs	.L1363
9858	adrp	x1, .LANCHOR174
9859	adrp	x0, .LC1
9860	mov	w2, 2714
9861	add	x1, x1, :lo12:.LANCHOR174
9862	add	x0, x0, :lo12:.LC1
9863	bl	printf
9864.L1363:
9865	mov	w0, 65535
9866	cmp	w19, w0
9867	beq	.L1364
9868	adrp	x1, .LANCHOR42
9869	ubfiz	x0, x19, 1, 16
9870	ldr	x1, [x1, #:lo12:.LANCHOR42]
9871	ldrh	w0, [x1, x0]
9872	cbz	w0, .L1365
9873	mov	w0, w19
9874	bl	INSERT_DATA_LIST
9875.L1364:
9876	adrp	x1, .LANCHOR142
9877	mov	w0, 1
9878	strb	w0, [x21, 8]
9879	mov	w2, 65535
9880	ldrh	w0, [x1, #:lo12:.LANCHOR142]
9881	mov	x20, x1
9882	cmp	w0, w2
9883	beq	.L1366
9884	cmp	w19, w0
9885	bne	.L1367
9886	adrp	x2, .LANCHOR42
9887	ubfiz	x1, x0, 1, 16
9888	ldr	x2, [x2, #:lo12:.LANCHOR42]
9889	ldrh	w1, [x2, x1]
9890	cbz	w1, .L1368
9891.L1367:
9892	bl	update_vpc_list
9893.L1368:
9894	mov	w0, -1
9895	strh	w0, [x20, #:lo12:.LANCHOR142]
9896.L1366:
9897	mov	x0, x21
9898	bl	allocate_data_superblock
9899	bl	l2p_flush
9900	mov	w0, 0
9901	bl	FtlEctTblFlush
9902	bl	FtlVpcTblFlush
9903	ldr	x21, [sp, 32]
9904	mov	w0, 0
9905	ldp	x19, x20, [sp, 16]
9906	ldp	x29, x30, [sp], 48
9907	ret
9908.L1365:
9909	mov	w0, w19
9910	bl	INSERT_FREE_LIST
9911	b	.L1364
9912	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
9913	.section	.text.FtlProgPages,"ax",@progbits
9914	.align	2
9915	.global	FtlProgPages
9916	.type	FtlProgPages, %function
9917FtlProgPages:
9918	stp	x29, x30, [sp, -96]!
9919	mov	w2, 0
9920	add	x29, sp, 0
9921	stp	x19, x20, [sp, 16]
9922	mov	x19, x3
9923	stp	x23, x24, [sp, 48]
9924	add	x20, x0, 4
9925	stp	x21, x22, [sp, 32]
9926	mov	w21, w1
9927	str	x25, [sp, 64]
9928	ubfiz	x21, x21, 5, 32
9929	add	x21, x21, 4
9930	adrp	x24, .LANCHOR19
9931	ldrb	w3, [x3, 9]
9932	adrp	x23, .LANCHOR81
9933	add	x21, x0, x21
9934	add	x24, x24, :lo12:.LANCHOR19
9935	add	x23, x23, :lo12:.LANCHOR81
9936	bl	FlashProgPages
9937.L1374:
9938	cmp	x20, x21
9939	beq	.L1381
9940	sub	x22, x20, #4
9941	adrp	x25, .LANCHOR42
9942	b	.L1382
9943.L1377:
9944	ldr	w0, [x20]
9945	lsr	w0, w0, 10
9946	bl	P2V_block_in_plane
9947	ldrh	w1, [x19]
9948	cmp	w1, w0, uxth
9949	bne	.L1375
9950	ldr	x2, [x25, #:lo12:.LANCHOR42]
9951	ubfiz	x1, x1, 1, 16
9952	ldrh	w3, [x19, 4]
9953	ldrh	w0, [x2, x1]
9954	sub	w0, w0, w3
9955	strh	w0, [x2, x1]
9956	strb	wzr, [x19, 6]
9957	ldrh	w0, [x24]
9958	strh	w0, [x19, 2]
9959	strh	wzr, [x19, 4]
9960.L1375:
9961	ldrh	w0, [x19, 4]
9962	cbnz	w0, .L1376
9963	mov	x0, x19
9964	bl	allocate_new_data_superblock
9965.L1376:
9966	ldr	w0, [x23, 96]
9967	add	w0, w0, 1
9968	str	w0, [x23, 96]
9969	ldr	w0, [x20]
9970	lsr	w0, w0, 10
9971	bl	FtlGcMarkBadPhyBlk
9972	mov	x0, x19
9973	bl	get_new_active_ppa
9974	str	w0, [x20]
9975	mov	w2, 0
9976	str	w0, [x29, 92]
9977	mov	w1, 1
9978	ldrb	w3, [x19, 9]
9979	mov	x0, x22
9980	bl	FlashProgPages
9981.L1382:
9982	ldr	w0, [x20, -4]
9983	cmn	w0, #1
9984	beq	.L1377
9985	adrp	x0, .LANCHOR3
9986	ldrb	w1, [x19, 6]
9987	ldrh	w0, [x0, #:lo12:.LANCHOR3]
9988	cmp	w1, w0
9989	bcc	.L1378
9990	adrp	x1, .LANCHOR175
9991	adrp	x0, .LC1
9992	mov	w2, 955
9993	add	x1, x1, :lo12:.LANCHOR175
9994	add	x0, x0, :lo12:.LC1
9995	bl	printf
9996.L1378:
9997	add	x1, x29, 96
9998	ldr	w0, [x22, 4]
9999	mov	w2, 1
10000	str	w0, [x1, -4]!
10001	ldr	w0, [x22, 24]
10002	bl	log2phys
10003	ldr	x0, [x22, 16]
10004	ldr	w3, [x0, 12]
10005	lsr	w0, w3, 10
10006	bl	P2V_block_in_plane
10007	and	w1, w0, 65535
10008	mov	w22, w1
10009	cmn	w3, #1
10010	beq	.L1379
10011	adrp	x2, .LANCHOR42
10012	ubfiz	x0, x1, 1, 16
10013	ldr	x2, [x2, #:lo12:.LANCHOR42]
10014	ldrh	w0, [x2, x0]
10015	cbnz	w0, .L1380
10016	adrp	x0, .LC111
10017	mov	w2, 0
10018	add	x0, x0, :lo12:.LC111
10019	bl	printf
10020.L1380:
10021	mov	w0, w22
10022	bl	decrement_vpc_count
10023.L1379:
10024	add	x20, x20, 32
10025	b	.L1374
10026.L1381:
10027	adrp	x0, .LANCHOR3
10028	ldrb	w1, [x19, 6]
10029	ldrh	w0, [x0, #:lo12:.LANCHOR3]
10030	cmp	w1, w0
10031	bcc	.L1373
10032	adrp	x1, .LANCHOR175
10033	adrp	x0, .LC1
10034	mov	w2, 970
10035	add	x1, x1, :lo12:.LANCHOR175
10036	add	x0, x0, :lo12:.LC1
10037	bl	printf
10038.L1373:
10039	ldp	x19, x20, [sp, 16]
10040	ldp	x21, x22, [sp, 32]
10041	ldp	x23, x24, [sp, 48]
10042	ldr	x25, [sp, 64]
10043	ldp	x29, x30, [sp], 96
10044	ret
10045	.size	FtlProgPages, .-FtlProgPages
10046	.section	.text.FtlGcFreeTempBlock,"ax",@progbits
10047	.align	2
10048	.global	FtlGcFreeTempBlock
10049	.type	FtlGcFreeTempBlock, %function
10050FtlGcFreeTempBlock:
10051	stp	x29, x30, [sp, -112]!
10052	mov	w2, 65535
10053	add	x29, sp, 0
10054	stp	x19, x20, [sp, 16]
10055	adrp	x19, .LANCHOR53
10056	stp	x21, x22, [sp, 32]
10057	adrp	x21, .LANCHOR19
10058	ldrh	w20, [x19, #:lo12:.LANCHOR53]
10059	stp	x23, x24, [sp, 48]
10060	stp	x25, x26, [sp, 64]
10061	cmp	w20, w2
10062	str	x27, [sp, 80]
10063	ldrh	w1, [x21, #:lo12:.LANCHOR19]
10064	bne	.L1389
10065.L1399:
10066	adrp	x0, .LANCHOR144
10067	ldrh	w2, [x19, #:lo12:.LANCHOR53]
10068	mov	w1, 65535
10069	str	wzr, [x0, #:lo12:.LANCHOR144]
10070	cmp	w2, w1
10071	add	x0, x19, :lo12:.LANCHOR53
10072	bne	.L1412
10073.L1415:
10074	mov	w0, 0
10075.L1388:
10076	ldp	x19, x20, [sp, 16]
10077	ldp	x21, x22, [sp, 32]
10078	ldp	x23, x24, [sp, 48]
10079	ldp	x25, x26, [sp, 64]
10080	ldr	x27, [sp, 80]
10081	ldp	x29, x30, [sp], 112
10082	ret
10083.L1389:
10084	cbz	w0, .L1392
10085	adrp	x0, .LANCHOR162
10086	ldrh	w3, [x0, #:lo12:.LANCHOR162]
10087	cmp	w3, w2
10088	beq	.L1393
10089.L1394:
10090	mov	w1, 2
10091.L1392:
10092	add	x0, x19, :lo12:.LANCHOR53
10093	bl	FtlGcScanTempBlk
10094	str	w0, [x29, 108]
10095	cmn	w0, #1
10096	beq	.L1395
10097	adrp	x0, .LANCHOR43
10098	ubfiz	x20, x20, 1, 16
10099	ldr	x1, [x0, #:lo12:.LANCHOR43]
10100	ldrh	w0, [x1, x20]
10101	cmp	w0, 4
10102	bls	.L1396
10103	sub	w0, w0, #5
10104	strh	w0, [x1, x20]
10105	mov	w0, 1
10106	bl	FtlEctTblFlush
10107.L1396:
10108	adrp	x0, .LANCHOR144
10109	mov	x19, x0
10110	ldr	w1, [x0, #:lo12:.LANCHOR144]
10111	cbnz	w1, .L1397
10112	adrp	x0, .LANCHOR81
10113	add	x0, x0, :lo12:.LANCHOR81
10114	ldr	w1, [x0, 96]
10115	add	w1, w1, 1
10116	str	w1, [x0, 96]
10117	ldr	w0, [x29, 108]
10118	lsr	w0, w0, 10
10119	bl	FtlBbmMapBadBlock
10120	bl	FtlBbmTblFlush
10121.L1397:
10122	str	wzr, [x19, #:lo12:.LANCHOR144]
10123.L1408:
10124	mov	w0, 1
10125	b	.L1388
10126.L1393:
10127	strh	wzr, [x0, #:lo12:.LANCHOR162]
10128	adrp	x0, .LANCHOR48
10129	ldrh	w0, [x0, #:lo12:.LANCHOR48]
10130	cmp	w0, 17
10131	bhi	.L1394
10132	b	.L1392
10133.L1395:
10134	adrp	x0, .LANCHOR162
10135	ldrh	w1, [x0, #:lo12:.LANCHOR162]
10136	mov	w0, 65535
10137	cmp	w1, w0
10138	bne	.L1408
10139	b	.L1399
10140.L1412:
10141	ldrb	w0, [x0, 7]
10142	adrp	x20, .LANCHOR97
10143	ldrh	w2, [x21, #:lo12:.LANCHOR19]
10144	ldrh	w1, [x20, #:lo12:.LANCHOR97]
10145	mul	w0, w0, w2
10146	cmp	w1, w0
10147	beq	.L1400
10148	adrp	x1, .LANCHOR176
10149	adrp	x0, .LC1
10150	mov	w2, 162
10151	add	x1, x1, :lo12:.LANCHOR176
10152	add	x0, x0, :lo12:.LC1
10153	bl	printf
10154.L1400:
10155	add	x0, x19, :lo12:.LANCHOR53
10156	adrp	x23, .LANCHOR42
10157	ldrh	w3, [x21, #:lo12:.LANCHOR19]
10158	adrp	x25, .LANCHOR61
10159	ldrh	w2, [x19, #:lo12:.LANCHOR53]
10160	adrp	x26, .LANCHOR176
10161	ldrb	w0, [x0, 7]
10162	add	x25, x25, :lo12:.LANCHOR61
10163	ldr	x1, [x23, #:lo12:.LANCHOR42]
10164	add	x26, x26, :lo12:.LANCHOR176
10165	mov	w21, 0
10166	mul	w0, w0, w3
10167	strh	w0, [x1, x2, lsl 1]
10168	adrp	x1, .LANCHOR67
10169	ldrh	w0, [x20, #:lo12:.LANCHOR97]
10170	ldr	w2, [x1, #:lo12:.LANCHOR67]
10171	add	w0, w0, w2
10172	str	w0, [x1, #:lo12:.LANCHOR67]
10173.L1401:
10174	ldrh	w0, [x20, #:lo12:.LANCHOR97]
10175	cmp	w0, w21
10176	bhi	.L1405
10177	mov	w0, -1
10178	bl	decrement_vpc_count
10179	ldrh	w0, [x19, #:lo12:.LANCHOR53]
10180	ldr	x2, [x23, #:lo12:.LANCHOR42]
10181	ubfiz	x1, x0, 1, 16
10182	ldrh	w1, [x2, x1]
10183	cbz	w1, .L1406
10184	bl	INSERT_DATA_LIST
10185.L1407:
10186	adrp	x0, .LANCHOR95
10187	mov	w21, -1
10188	strh	wzr, [x20, #:lo12:.LANCHOR97]
10189	strh	w21, [x19, #:lo12:.LANCHOR53]
10190	strh	wzr, [x0, #:lo12:.LANCHOR95]
10191	bl	l2p_flush
10192	bl	FtlVpcTblFlush
10193	adrp	x0, .LANCHOR80
10194	strh	w21, [x0, #:lo12:.LANCHOR80]
10195	adrp	x0, .LANCHOR48
10196	ldrh	w1, [x0, #:lo12:.LANCHOR48]
10197	adrp	x0, .LANCHOR78
10198	ldrh	w0, [x0, #:lo12:.LANCHOR78]
10199	add	w0, w0, w0, lsl 1
10200	cmp	w1, w0, lsr 2
10201	ble	.L1415
10202	adrp	x0, .LANCHOR82
10203	mov	w1, 20
10204	strh	w1, [x0, #:lo12:.LANCHOR82]
10205	b	.L1415
10206.L1405:
10207	adrp	x0, .LANCHOR98
10208	mov	w24, 12
10209	ldr	x27, [x0, #:lo12:.LANCHOR98]
10210	umull	x24, w21, w24
10211	ldr	w0, [x25]
10212	add	x22, x27, x24
10213	ldr	w1, [x22, 8]
10214	cmp	w1, w0
10215	bcc	.L1402
10216	adrp	x0, .LC1
10217	mov	w2, 168
10218	mov	x1, x26
10219	add	x0, x0, :lo12:.LC1
10220	bl	printf
10221.L1402:
10222	ldr	w0, [x22, 8]
10223	add	x1, x29, 108
10224	mov	w2, 0
10225	bl	log2phys
10226	ldr	w0, [x27, x24]
10227	ldr	w1, [x29, 108]
10228	cmp	w0, w1
10229	bne	.L1403
10230	lsr	w0, w0, 10
10231	bl	P2V_block_in_plane
10232	mov	w24, w0
10233	ldr	w0, [x22, 8]
10234	mov	w2, 1
10235	add	x1, x22, 4
10236	bl	log2phys
10237	mov	w0, w24
10238.L1414:
10239	bl	decrement_vpc_count
10240.L1404:
10241	add	w21, w21, 1
10242	and	w21, w21, 65535
10243	b	.L1401
10244.L1403:
10245	ldr	w0, [x22, 4]
10246	cmp	w1, w0
10247	beq	.L1404
10248	ldrh	w0, [x19, #:lo12:.LANCHOR53]
10249	b	.L1414
10250.L1406:
10251	bl	INSERT_FREE_LIST
10252	b	.L1407
10253	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
10254	.section	.text.FtlGcPageRecovery,"ax",@progbits
10255	.align	2
10256	.global	FtlGcPageRecovery
10257	.type	FtlGcPageRecovery, %function
10258FtlGcPageRecovery:
10259	stp	x29, x30, [sp, -32]!
10260	add	x29, sp, 0
10261	stp	x19, x20, [sp, 16]
10262	adrp	x20, .LANCHOR19
10263	adrp	x19, .LANCHOR53
10264	add	x19, x19, :lo12:.LANCHOR53
10265	ldrh	w1, [x20, #:lo12:.LANCHOR19]
10266	mov	x0, x19
10267	bl	FtlGcScanTempBlk
10268	ldrh	w1, [x19, 2]
10269	ldrh	w0, [x20, #:lo12:.LANCHOR19]
10270	cmp	w1, w0
10271	bcc	.L1416
10272	adrp	x0, .LANCHOR140
10273	add	x0, x0, :lo12:.LANCHOR140
10274	bl	FtlMapBlkWriteDump_data
10275	mov	w0, 0
10276	bl	FtlGcFreeTempBlock
10277	adrp	x0, .LANCHOR144
10278	str	wzr, [x0, #:lo12:.LANCHOR144]
10279.L1416:
10280	ldp	x19, x20, [sp, 16]
10281	ldp	x29, x30, [sp], 32
10282	ret
10283	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
10284	.section	.text.FtlPowerLostRecovery,"ax",@progbits
10285	.align	2
10286	.global	FtlPowerLostRecovery
10287	.type	FtlPowerLostRecovery, %function
10288FtlPowerLostRecovery:
10289	stp	x29, x30, [sp, -32]!
10290	adrp	x0, .LANCHOR168
10291	add	x29, sp, 0
10292	str	x19, [sp, 16]
10293	adrp	x19, .LANCHOR51
10294	add	x19, x19, :lo12:.LANCHOR51
10295	str	wzr, [x0, #:lo12:.LANCHOR168]
10296	mov	x0, x19
10297	bl	FtlRecoverySuperblock
10298	mov	x0, x19
10299	adrp	x19, .LANCHOR52
10300	bl	FtlSlcSuperblockCheck
10301	add	x19, x19, :lo12:.LANCHOR52
10302	mov	x0, x19
10303	bl	FtlRecoverySuperblock
10304	mov	x0, x19
10305	bl	FtlSlcSuperblockCheck
10306	bl	FtlGcPageRecovery
10307	mov	w0, -1
10308	bl	decrement_vpc_count
10309	mov	w0, 0
10310	ldr	x19, [sp, 16]
10311	ldp	x29, x30, [sp], 32
10312	ret
10313	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
10314	.section	.text.Ftl_gc_temp_data_write_back,"ax",@progbits
10315	.align	2
10316	.global	Ftl_gc_temp_data_write_back
10317	.type	Ftl_gc_temp_data_write_back, %function
10318Ftl_gc_temp_data_write_back:
10319	stp	x29, x30, [sp, -32]!
10320	mov	w3, 0
10321	mov	w2, 0
10322	add	x29, sp, 0
10323	stp	x19, x20, [sp, 16]
10324	adrp	x19, .LANCHOR89
10325	adrp	x20, .LANCHOR113
10326	ldr	w1, [x19, #:lo12:.LANCHOR89]
10327	add	x19, x19, :lo12:.LANCHOR89
10328	ldr	x0, [x20, #:lo12:.LANCHOR113]
10329	bl	FlashProgPages
10330	mov	w11, 0
10331.L1422:
10332	ldr	w1, [x19]
10333	cmp	w11, w1
10334	bcc	.L1425
10335	ldr	x0, [x20, #:lo12:.LANCHOR113]
10336	bl	FtlGcBufFree
10337	str	wzr, [x19]
10338	adrp	x0, .LANCHOR53+4
10339	ldrh	w0, [x0, #:lo12:.LANCHOR53+4]
10340	cbnz	w0, .L1426
10341	mov	w0, 1
10342	bl	FtlGcFreeTempBlock
10343	b	.L1428
10344.L1425:
10345	ldr	x2, [x20, #:lo12:.LANCHOR113]
10346	ubfiz	x0, x11, 5, 16
10347	add	x1, x2, x0
10348	ldr	w2, [x2, x0]
10349	cmn	w2, #1
10350	bne	.L1423
10351	adrp	x0, .LANCHOR53
10352	adrp	x3, .LANCHOR42
10353	ldrh	w4, [x0, #:lo12:.LANCHOR53]
10354	ldr	x3, [x3, #:lo12:.LANCHOR42]
10355	strh	wzr, [x3, x4, lsl 1]
10356	strh	w2, [x0, #:lo12:.LANCHOR53]
10357	adrp	x0, .LANCHOR81
10358	add	x0, x0, :lo12:.LANCHOR81
10359	ldr	w2, [x0, 96]
10360	add	w2, w2, 1
10361	str	w2, [x0, 96]
10362	ldr	w0, [x1, 4]
10363	lsr	w0, w0, 10
10364	bl	FtlBbmMapBadBlock
10365	bl	FtlBbmTblFlush
10366	bl	FtlGcPageVarInit
10367.L1428:
10368	mov	w0, 1
10369.L1421:
10370	ldp	x19, x20, [sp, 16]
10371	ldp	x29, x30, [sp], 32
10372	ret
10373.L1423:
10374	ldr	x0, [x1, 16]
10375	ldr	w1, [x1, 4]
10376	ldp	w2, w0, [x0, 8]
10377	bl	FtlGcUpdatePage
10378	add	w11, w11, 1
10379	and	w11, w11, 65535
10380	b	.L1422
10381.L1426:
10382	mov	w0, 0
10383	b	.L1421
10384	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
10385	.section	.text.Ftl_get_new_temp_ppa,"ax",@progbits
10386	.align	2
10387	.global	Ftl_get_new_temp_ppa
10388	.type	Ftl_get_new_temp_ppa, %function
10389Ftl_get_new_temp_ppa:
10390	stp	x29, x30, [sp, -32]!
10391	adrp	x0, .LANCHOR53
10392	mov	w2, 65535
10393	add	x29, sp, 0
10394	str	x19, [sp, 16]
10395	mov	x19, x0
10396	ldrh	w3, [x0, #:lo12:.LANCHOR53]
10397	cmp	w3, w2
10398	beq	.L1430
10399	add	x1, x0, :lo12:.LANCHOR53
10400	ldrh	w0, [x1, 4]
10401	cbnz	w0, .L1431
10402.L1430:
10403	mov	w0, 0
10404	bl	FtlGcFreeTempBlock
10405	add	x0, x19, :lo12:.LANCHOR53
10406	strb	wzr, [x0, 8]
10407	bl	allocate_data_superblock
10408	adrp	x0, .LANCHOR95
10409	strh	wzr, [x0, #:lo12:.LANCHOR95]
10410	adrp	x0, .LANCHOR97
10411	strh	wzr, [x0, #:lo12:.LANCHOR97]
10412	bl	l2p_flush
10413	mov	w0, 0
10414	bl	FtlEctTblFlush
10415	bl	FtlVpcTblFlush
10416.L1431:
10417	add	x0, x19, :lo12:.LANCHOR53
10418	ldr	x19, [sp, 16]
10419	ldp	x29, x30, [sp], 32
10420	b	get_new_active_ppa
10421	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
10422	.section	.text.FtlSysBlkInit,"ax",@progbits
10423	.align	2
10424	.global	FtlSysBlkInit
10425	.type	FtlSysBlkInit, %function
10426FtlSysBlkInit:
10427	stp	x29, x30, [sp, -64]!
10428	adrp	x0, .LANCHOR4
10429	add	x29, sp, 0
10430	ldrh	w0, [x0, #:lo12:.LANCHOR4]
10431	stp	x19, x20, [sp, 16]
10432	adrp	x20, .LANCHOR167
10433	stp	x21, x22, [sp, 32]
10434	stp	x23, x24, [sp, 48]
10435	strh	wzr, [x20, #:lo12:.LANCHOR167]
10436	bl	FtlFreeSysBlkQueueInit
10437	bl	FtlScanSysBlk
10438	adrp	x0, .LANCHOR79
10439	ldrh	w1, [x0, #:lo12:.LANCHOR79]
10440	mov	w0, 65535
10441	cmp	w1, w0
10442	bne	.L1434
10443.L1436:
10444	mov	w23, -1
10445.L1433:
10446	mov	w0, w23
10447	ldp	x19, x20, [sp, 16]
10448	ldp	x21, x22, [sp, 32]
10449	ldp	x23, x24, [sp, 48]
10450	ldp	x29, x30, [sp], 64
10451	ret
10452.L1434:
10453	bl	FtlLoadSysInfo
10454	mov	w23, w0
10455	cbnz	w0, .L1436
10456	bl	FtlLoadMapInfo
10457	bl	FtlLoadVonderInfo
10458	bl	Ftl_load_ext_data
10459	bl	FtlLoadEctTbl
10460	bl	FtlFreeSysBLkSort
10461	bl	SupperBlkListInit
10462	bl	FtlPowerLostRecovery
10463	mov	w0, 1
10464	bl	FtlUpdateVaildLpn
10465	adrp	x0, .LANCHOR33
10466	mov	w1, 0
10467	ldrh	w3, [x0, #:lo12:.LANCHOR33]
10468	adrp	x0, .LANCHOR55
10469	ldr	x0, [x0, #:lo12:.LANCHOR55]
10470	add	x0, x0, 4
10471.L1437:
10472	cmp	w1, w3
10473	bge	.L1442
10474	ldr	w2, [x0], 16
10475	tbz	w2, #31, .L1438
10476.L1442:
10477	adrp	x0, .LANCHOR39
10478	add	x4, x0, :lo12:.LANCHOR39
10479	cmp	w1, w3
10480	mov	x19, x0
10481	adrp	x22, .LANCHOR51
10482	ldrh	w2, [x4, 28]
10483	add	w2, w2, 1
10484	strh	w2, [x4, 28]
10485	bge	.L1447
10486.L1439:
10487	add	x21, x22, :lo12:.LANCHOR51
10488	adrp	x24, .LANCHOR52
10489	mov	x0, x21
10490	add	x20, x24, :lo12:.LANCHOR52
10491	bl	FtlSuperblockPowerLostFix
10492	mov	x0, x20
10493	bl	FtlSuperblockPowerLostFix
10494	adrp	x0, .LANCHOR42
10495	ldrh	w3, [x21, 4]
10496	ldr	x1, [x0, #:lo12:.LANCHOR42]
10497	ldrh	w0, [x22, #:lo12:.LANCHOR51]
10498	lsl	x0, x0, 1
10499	ldrh	w2, [x1, x0]
10500	sub	w2, w2, w3
10501	adrp	x3, .LANCHOR19
10502	strh	w2, [x1, x0]
10503	strb	wzr, [x21, 6]
10504	ldrh	w0, [x3, #:lo12:.LANCHOR19]
10505	strh	w0, [x21, 2]
10506	ldrh	w0, [x24, #:lo12:.LANCHOR52]
10507	strh	wzr, [x21, 4]
10508	ldrh	w4, [x20, 4]
10509	lsl	x0, x0, 1
10510	ldrh	w2, [x1, x0]
10511	sub	w2, w2, w4
10512	strh	w2, [x1, x0]
10513	strb	wzr, [x20, 6]
10514	ldrh	w0, [x3, #:lo12:.LANCHOR19]
10515	strh	w0, [x20, 2]
10516	add	x0, x19, :lo12:.LANCHOR39
10517	strh	wzr, [x20, 4]
10518	ldrh	w1, [x0, 30]
10519	add	w1, w1, 1
10520	strh	w1, [x0, 30]
10521	bl	l2p_flush
10522	bl	FtlVpcTblFlush
10523	bl	FtlVpcTblFlush
10524	b	.L1443
10525.L1438:
10526	add	w1, w1, 1
10527	b	.L1437
10528.L1447:
10529	ldrh	w0, [x20, #:lo12:.LANCHOR167]
10530	cbnz	w0, .L1439
10531.L1443:
10532	bl	FtlVpcCheckAndModify
10533	add	x20, x22, :lo12:.LANCHOR51
10534	ldrh	w0, [x22, #:lo12:.LANCHOR51]
10535	mov	w1, 65535
10536	cmp	w0, w1
10537	beq	.L1433
10538	ldrh	w1, [x20, 4]
10539	cbnz	w1, .L1433
10540	adrp	x21, .LANCHOR52
10541	add	x19, x21, :lo12:.LANCHOR52
10542	ldrh	w1, [x19, 4]
10543	cbnz	w1, .L1433
10544	bl	FtlGcRefreshBlock
10545	ldrh	w0, [x21, #:lo12:.LANCHOR52]
10546	bl	FtlGcRefreshBlock
10547	bl	FtlVpcTblFlush
10548	mov	x0, x20
10549	bl	allocate_new_data_superblock
10550	mov	x0, x19
10551	bl	allocate_new_data_superblock
10552	b	.L1433
10553	.size	FtlSysBlkInit, .-FtlSysBlkInit
10554	.section	.text.rk_ftl_garbage_collect,"ax",@progbits
10555	.align	2
10556	.global	rk_ftl_garbage_collect
10557	.type	rk_ftl_garbage_collect, %function
10558rk_ftl_garbage_collect:
10559	stp	x29, x30, [sp, -176]!
10560	adrp	x1, .LANCHOR108
10561	add	x29, sp, 0
10562	ldr	w2, [x1, #:lo12:.LANCHOR108]
10563	stp	x19, x20, [sp, 16]
10564	stp	x21, x22, [sp, 32]
10565	stp	x23, x24, [sp, 48]
10566	stp	x25, x26, [sp, 64]
10567	stp	x27, x28, [sp, 80]
10568	str	x1, [x29, 144]
10569	cbnz	w2, .L1522
10570	adrp	x1, .LANCHOR45
10571	ldrh	w1, [x1, #:lo12:.LANCHOR45]
10572	cmp	w1, 47
10573	bls	.L1522
10574	str	w0, [x29, 152]
10575	adrp	x0, .LANCHOR162
10576	ldrh	w1, [x0, #:lo12:.LANCHOR162]
10577	mov	w0, 65535
10578	cmp	w1, w0
10579	bne	.L1451
10580.L1454:
10581	adrp	x0, .LANCHOR100
10582	mov	w3, 65535
10583	ldrh	w2, [x0, #:lo12:.LANCHOR100]
10584	cmp	w2, w3
10585	bne	.L1452
10586.L1453:
10587	bl	FtlReadRefresh
10588	adrp	x19, .LANCHOR80
10589	adrp	x2, .LANCHOR84
10590	ldr	w1, [x29, 152]
10591	mov	w21, 65535
10592	ldr	w0, [x2, #:lo12:.LANCHOR84]
10593	add	w0, w0, 1
10594	add	w0, w0, w1, lsl 7
10595	ldrh	w1, [x19, #:lo12:.LANCHOR80]
10596	str	w0, [x2, #:lo12:.LANCHOR84]
10597	cmp	w1, w21
10598	bne	.L1455
10599	adrp	x3, .LANCHOR53
10600	ldrh	w21, [x3, #:lo12:.LANCHOR53]
10601	cmp	w21, w1
10602	bne	.L1525
10603	adrp	x1, .LANCHOR99
10604	ldrh	w20, [x1, #:lo12:.LANCHOR99]
10605	cmp	w20, w21
10606	bne	.L1455
10607	adrp	x22, .LANCHOR48
10608	mov	w3, 1024
10609	ldrh	w1, [x22, #:lo12:.LANCHOR48]
10610	cmp	w1, 24
10611	mov	w1, 5120
10612	csel	w1, w1, w3, cc
10613	cmp	w0, w1
10614	bls	.L1528
10615	adrp	x0, .LANCHOR177
10616	str	wzr, [x2, #:lo12:.LANCHOR84]
10617	strh	wzr, [x0, #:lo12:.LANCHOR177]
10618	bl	GetSwlReplaceBlock
10619	and	w21, w0, 65535
10620	cmp	w21, w20
10621	bne	.L1529
10622	adrp	x5, .LANCHOR83
10623	ldrh	w1, [x22, #:lo12:.LANCHOR48]
10624	ldrh	w0, [x5, #:lo12:.LANCHOR83]
10625	cmp	w1, w0
10626	bcs	.L1458
10627	mov	w0, 64
10628	bl	List_get_gc_head_node
10629	and	w0, w0, 65535
10630	cmp	w0, w21
10631	beq	.L1460
10632	adrp	x1, .LANCHOR42
10633	ubfiz	x0, x0, 1, 16
10634	ldr	x1, [x1, #:lo12:.LANCHOR42]
10635	ldrh	w0, [x1, x0]
10636	cmp	w0, 7
10637	bhi	.L1461
10638	mov	w0, 0
10639	bl	List_get_gc_head_node
10640	and	w20, w0, 65535
10641	mov	w0, 128
10642	strh	w0, [x5, #:lo12:.LANCHOR83]
10643	cmp	w20, w21
10644	bne	.L1457
10645.L1460:
10646	bl	FtlGcReFreshBadBlk
10647.L1455:
10648	ldr	w1, [x29, 152]
10649	mov	w0, 65535
10650	cmp	w1, 0
10651	ccmp	w21, w0, 0, eq
10652	bne	.L1463
10653	adrp	x0, .LANCHOR48
10654	ldrh	w0, [x0, #:lo12:.LANCHOR48]
10655	cmp	w0, 24
10656	bhi	.L1530
10657	adrp	x1, .LANCHOR19
10658	cmp	w0, 16
10659	ldrh	w20, [x1, #:lo12:.LANCHOR19]
10660	bls	.L1465
10661	lsr	w20, w20, 5
10662.L1464:
10663	adrp	x2, .LANCHOR82
10664	mov	x3, x2
10665	ldrh	w1, [x2, #:lo12:.LANCHOR82]
10666	cmp	w1, w0
10667	bcs	.L1468
10668	adrp	x0, .LANCHOR53
10669	mov	w1, 65535
10670	ldrh	w0, [x0, #:lo12:.LANCHOR53]
10671	cmp	w0, w1
10672	bne	.L1469
10673	adrp	x1, .LANCHOR99
10674	ldrh	w1, [x1, #:lo12:.LANCHOR99]
10675	cmp	w1, w0
10676	bne	.L1469
10677	adrp	x0, .LANCHOR177
10678	ldrh	w0, [x0, #:lo12:.LANCHOR177]
10679	cbnz	w0, .L1470
10680	adrp	x1, .LANCHOR61
10681	adrp	x4, .LANCHOR59
10682	ldr	w1, [x1, #:lo12:.LANCHOR61]
10683	ldr	w4, [x4, #:lo12:.LANCHOR59]
10684	add	w1, w1, w1, lsl 1
10685	cmp	w4, w1, lsr 2
10686	bcs	.L1471
10687.L1470:
10688	adrp	x1, .LANCHOR78
10689	ldrh	w1, [x1, #:lo12:.LANCHOR78]
10690	add	w1, w1, w1, lsl 1
10691	asr	w1, w1, 2
10692	strh	w1, [x3, #:lo12:.LANCHOR82]
10693.L1472:
10694	adrp	x1, .LANCHOR87
10695	str	wzr, [x1, #:lo12:.LANCHOR87]
10696.L1449:
10697	ldp	x19, x20, [sp, 16]
10698	ldp	x21, x22, [sp, 32]
10699	ldp	x23, x24, [sp, 48]
10700	ldp	x25, x26, [sp, 64]
10701	ldp	x27, x28, [sp, 80]
10702	ldp	x29, x30, [sp], 176
10703	ret
10704.L1451:
10705	adrp	x1, .LANCHOR53
10706	ldrh	w1, [x1, #:lo12:.LANCHOR53]
10707	cmp	w1, w0
10708	beq	.L1454
10709	mov	w0, 1
10710	bl	FtlGcFreeTempBlock
10711	cbz	w0, .L1454
10712	mov	w0, 1
10713	b	.L1449
10714.L1452:
10715	adrp	x1, .LANCHOR99
10716	ldrh	w4, [x1, #:lo12:.LANCHOR99]
10717	cmp	w4, w3
10718	bne	.L1453
10719	strh	w2, [x1, #:lo12:.LANCHOR99]
10720	mov	w1, -1
10721	strh	w1, [x0, #:lo12:.LANCHOR100]
10722	b	.L1453
10723.L1461:
10724	mov	w0, 64
10725.L1557:
10726	strh	w0, [x5, #:lo12:.LANCHOR83]
10727	b	.L1460
10728.L1458:
10729	mov	w0, 80
10730	b	.L1557
10731.L1529:
10732	mov	w20, w21
10733.L1457:
10734	adrp	x1, .LANCHOR43
10735	ubfiz	x0, x20, 1, 32
10736	adrp	x3, .LANCHOR82
10737	mov	w21, w20
10738	ldr	x2, [x1, #:lo12:.LANCHOR43]
10739	adrp	x1, .LANCHOR42
10740	ldrh	w5, [x3, #:lo12:.LANCHOR82]
10741	ldr	x1, [x1, #:lo12:.LANCHOR42]
10742	ldrh	w4, [x2, x0]
10743	ldrh	w2, [x22, #:lo12:.LANCHOR48]
10744	ldrh	w3, [x1, x0]
10745	mov	w1, w20
10746	adrp	x0, .LC112
10747	add	x0, x0, :lo12:.LC112
10748	bl	printf
10749	b	.L1460
10750.L1525:
10751	mov	w21, w1
10752	b	.L1455
10753.L1528:
10754	mov	w21, w20
10755	b	.L1455
10756.L1465:
10757	cmp	w0, 12
10758	bls	.L1466
10759	lsr	w20, w20, 4
10760	b	.L1464
10761.L1466:
10762	cmp	w0, 8
10763	bls	.L1464
10764	lsr	w20, w20, 2
10765	b	.L1464
10766.L1530:
10767	mov	w20, 1
10768	b	.L1464
10769.L1471:
10770	mov	w1, 18
10771	strh	w1, [x2, #:lo12:.LANCHOR82]
10772	b	.L1472
10773.L1469:
10774	adrp	x0, .LANCHOR78
10775	ldrh	w0, [x0, #:lo12:.LANCHOR78]
10776	add	w0, w0, w0, lsl 1
10777	asr	w0, w0, 2
10778	strh	w0, [x3, #:lo12:.LANCHOR82]
10779.L1468:
10780	adrp	x0, .LANCHOR101
10781	ldrh	w0, [x0, #:lo12:.LANCHOR101]
10782	cbz	w0, .L1531
10783	add	w20, w20, 32
10784	and	w20, w20, 65535
10785.L1531:
10786	mov	w21, 65535
10787.L1474:
10788	ldrh	w0, [x19, #:lo12:.LANCHOR80]
10789	mov	w1, 65535
10790	cmp	w0, w1
10791	bne	.L1483
10792	cmp	w21, w0
10793	beq	.L1484
10794	strh	w21, [x19, #:lo12:.LANCHOR80]
10795.L1485:
10796	add	x0, x19, :lo12:.LANCHOR80
10797	mov	w1, 65535
10798	strb	wzr, [x0, 8]
10799	ldrh	w0, [x19, #:lo12:.LANCHOR80]
10800	cmp	w0, w1
10801	beq	.L1483
10802	bl	IsBlkInGcList
10803	cbz	w0, .L1488
10804	mov	w0, -1
10805	strh	w0, [x19, #:lo12:.LANCHOR80]
10806.L1488:
10807	ldrh	w1, [x19, #:lo12:.LANCHOR80]
10808	mov	w0, 65535
10809	add	x22, x19, :lo12:.LANCHOR80
10810	cmp	w1, w0
10811	beq	.L1483
10812	mov	x0, x22
10813	bl	make_superblock
10814	adrp	x0, .LANCHOR178
10815	ldrh	w1, [x19, #:lo12:.LANCHOR80]
10816	strh	wzr, [x22, 2]
10817	strh	wzr, [x0, #:lo12:.LANCHOR178]
10818	adrp	x0, .LANCHOR42
10819	strb	wzr, [x22, 6]
10820	ldr	x0, [x0, #:lo12:.LANCHOR42]
10821	ldrh	w1, [x0, x1, lsl 1]
10822	adrp	x0, .LANCHOR179
10823	strh	w1, [x0, #:lo12:.LANCHOR179]
10824.L1483:
10825	adrp	x1, .LANCHOR51
10826	ldrh	w0, [x19, #:lo12:.LANCHOR80]
10827	str	x1, [x29, 120]
10828	ldrh	w2, [x1, #:lo12:.LANCHOR51]
10829	cmp	w2, w0
10830	beq	.L1489
10831	adrp	x1, .LANCHOR52
10832	ldrh	w1, [x1, #:lo12:.LANCHOR52]
10833	cmp	w1, w0
10834	bne	.L1490
10835.L1489:
10836	mov	w0, -1
10837	strh	w0, [x19, #:lo12:.LANCHOR80]
10838.L1490:
10839	adrp	x25, .LANCHOR85
10840	add	x26, x25, :lo12:.LANCHOR85
10841.L1519:
10842	ldrh	w1, [x19, #:lo12:.LANCHOR80]
10843	mov	w0, 65535
10844	cmp	w1, w0
10845	bne	.L1491
10846	adrp	x0, .LANCHOR87
10847	adrp	x22, .LANCHOR19
10848	add	x22, x22, :lo12:.LANCHOR19
10849	str	wzr, [x0, #:lo12:.LANCHOR87]
10850.L1492:
10851	ldrh	w5, [x25, #:lo12:.LANCHOR85]
10852	add	x7, x25, :lo12:.LANCHOR85
10853	mov	w0, w5
10854	bl	List_get_gc_head_node
10855	and	w6, w0, 65535
10856	strh	w6, [x19, #:lo12:.LANCHOR80]
10857	mov	w0, 65535
10858	cmp	w6, w0
10859	bne	.L1493
10860	strh	wzr, [x7]
10861	mov	w0, 8
10862	b	.L1449
10863.L1463:
10864	adrp	x1, .LANCHOR53
10865	ldrh	w1, [x1, #:lo12:.LANCHOR53]
10866	cmp	w1, w0
10867	bne	.L1534
10868	adrp	x0, .LANCHOR99
10869	ldrh	w0, [x0, #:lo12:.LANCHOR99]
10870	cmp	w0, w1
10871	bne	.L1534
10872	cmp	w21, w0
10873	bne	.L1534
10874	ldrh	w0, [x19, #:lo12:.LANCHOR80]
10875	cmp	w0, w21
10876	beq	.L1475
10877.L1534:
10878	mov	w20, 1
10879	b	.L1474
10880.L1475:
10881	adrp	x0, .LANCHOR87
10882	adrp	x22, .LANCHOR48
10883	adrp	x20, .LANCHOR82
10884	adrp	x23, .LANCHOR177
10885	str	wzr, [x0, #:lo12:.LANCHOR87]
10886	ldrh	w1, [x22, #:lo12:.LANCHOR48]
10887	ldrh	w0, [x20, #:lo12:.LANCHOR82]
10888	cmp	w1, w0
10889	bls	.L1476
10890	ldrh	w0, [x23, #:lo12:.LANCHOR177]
10891	cbnz	w0, .L1477
10892	adrp	x0, .LANCHOR61
10893	adrp	x1, .LANCHOR59
10894	ldr	w0, [x0, #:lo12:.LANCHOR61]
10895	ldr	w1, [x1, #:lo12:.LANCHOR59]
10896	add	w0, w0, w0, lsl 1
10897	cmp	w1, w0, lsr 2
10898	bcs	.L1478
10899.L1477:
10900	adrp	x0, .LANCHOR78
10901	ldrh	w0, [x0, #:lo12:.LANCHOR78]
10902	add	w0, w0, w0, lsl 1
10903	asr	w0, w0, 2
10904.L1558:
10905	strh	w0, [x20, #:lo12:.LANCHOR82]
10906	bl	FtlReadRefresh
10907	mov	w0, 0
10908	bl	List_get_gc_head_node
10909	adrp	x1, .LANCHOR42
10910	ubfiz	x0, x0, 1, 16
10911	ldr	x1, [x1, #:lo12:.LANCHOR42]
10912	ldrh	w0, [x1, x0]
10913	cmp	w0, 4
10914	bls	.L1476
10915.L1559:
10916	ldrh	w0, [x23, #:lo12:.LANCHOR177]
10917	b	.L1449
10918.L1478:
10919	mov	w0, 18
10920	b	.L1558
10921.L1476:
10922	ldrh	w0, [x23, #:lo12:.LANCHOR177]
10923	cbnz	w0, .L1534
10924	adrp	x0, .LANCHOR78
10925	ldrh	w5, [x0, #:lo12:.LANCHOR78]
10926	add	w0, w5, w5, lsl 1
10927	asr	w0, w0, 2
10928	strh	w0, [x20, #:lo12:.LANCHOR82]
10929	mov	w0, 0
10930	bl	List_get_gc_head_node
10931	adrp	x1, .LANCHOR42
10932	ubfiz	x0, x0, 1, 16
10933	adrp	x2, .LANCHOR3
10934	ldr	x1, [x1, #:lo12:.LANCHOR42]
10935	ldrh	w2, [x2, #:lo12:.LANCHOR3]
10936	ldrh	w1, [x1, x0]
10937	adrp	x0, .LANCHOR20
10938	ldrh	w0, [x0, #:lo12:.LANCHOR20]
10939	mul	w0, w0, w2
10940	cmp	w1, w0, asr 1
10941	ble	.L1481
10942	ldrh	w0, [x22, #:lo12:.LANCHOR48]
10943	sub	w5, w5, #1
10944	cmp	w0, w5
10945	blt	.L1481
10946	bl	FtlReadRefresh
10947	b	.L1559
10948.L1481:
10949	cbnz	w1, .L1534
10950	mov	w0, -1
10951	bl	decrement_vpc_count
10952	ldrh	w0, [x22, #:lo12:.LANCHOR48]
10953	add	w0, w0, 1
10954	b	.L1449
10955.L1484:
10956	adrp	x0, .LANCHOR99
10957	ldrh	w1, [x0, #:lo12:.LANCHOR99]
10958	cmp	w1, w21
10959	beq	.L1485
10960	adrp	x2, .LANCHOR42
10961	ubfiz	x1, x1, 1, 16
10962	ldr	x2, [x2, #:lo12:.LANCHOR42]
10963	ldrh	w1, [x2, x1]
10964	cbnz	w1, .L1486
10965	mov	w1, -1
10966	strh	w1, [x0, #:lo12:.LANCHOR99]
10967.L1486:
10968	ldrh	w1, [x0, #:lo12:.LANCHOR99]
10969	strh	w1, [x19, #:lo12:.LANCHOR80]
10970	mov	w1, -1
10971	strh	w1, [x0, #:lo12:.LANCHOR99]
10972	b	.L1485
10973.L1493:
10974	mov	w0, w6
10975	bl	IsBlkInGcList
10976	add	w5, w5, 1
10977	cbz	w0, .L1494
10978	strh	w5, [x25, #:lo12:.LANCHOR85]
10979	b	.L1492
10980.L1494:
10981	adrp	x23, .LANCHOR42
10982	adrp	x4, .LANCHOR3
10983	ldrh	w0, [x22]
10984	ubfiz	x1, x6, 1, 16
10985	ldr	x2, [x23, #:lo12:.LANCHOR42]
10986	and	w5, w5, 65535
10987	ldrh	w4, [x4, #:lo12:.LANCHOR3]
10988	strh	w5, [x25, #:lo12:.LANCHOR85]
10989	ldrh	w3, [x2, x1]
10990	mul	w0, w0, w4
10991	cmp	w3, w0, asr 1
10992	bgt	.L1496
10993	cmp	w5, 48
10994	bls	.L1497
10995	cmp	w3, 8
10996	bls	.L1497
10997	adrp	x3, .LANCHOR95
10998	ldrh	w3, [x3, #:lo12:.LANCHOR95]
10999	cmp	w3, 35
11000	bhi	.L1497
11001.L1496:
11002	strh	wzr, [x26]
11003.L1497:
11004	ldrh	w1, [x2, x1]
11005	cmp	w0, w1
11006	bgt	.L1498
11007	mov	w0, 65535
11008	cmp	w21, w0
11009	bne	.L1498
11010	ldrh	w0, [x26]
11011	cmp	w0, 3
11012	bhi	.L1498
11013	mov	w0, -1
11014	strh	wzr, [x26]
11015	strh	w0, [x19, #:lo12:.LANCHOR80]
11016.L1560:
11017	adrp	x0, .LANCHOR177
11018	ldrh	w0, [x0, #:lo12:.LANCHOR177]
11019	b	.L1449
11020.L1498:
11021	cbnz	w1, .L1499
11022	mov	w0, -1
11023	bl	decrement_vpc_count
11024	ldrh	w0, [x26]
11025	add	w0, w0, 1
11026	strh	w0, [x26]
11027	b	.L1492
11028.L1499:
11029	add	x0, x19, :lo12:.LANCHOR80
11030	strb	wzr, [x0, 8]
11031	ldr	x0, [x29, 120]
11032	ldrh	w0, [x0, #:lo12:.LANCHOR51]
11033	cmp	w0, w6
11034	bne	.L1500
11035	adrp	x1, .LANCHOR180
11036	adrp	x0, .LC1
11037	mov	w2, 700
11038	add	x1, x1, :lo12:.LANCHOR180
11039	add	x0, x0, :lo12:.LC1
11040	bl	printf
11041.L1500:
11042	adrp	x0, .LANCHOR52
11043	ldrh	w1, [x19, #:lo12:.LANCHOR80]
11044	ldrh	w0, [x0, #:lo12:.LANCHOR52]
11045	cmp	w1, w0
11046	bne	.L1501
11047	adrp	x1, .LANCHOR180
11048	adrp	x0, .LC1
11049	mov	w2, 701
11050	add	x1, x1, :lo12:.LANCHOR180
11051	add	x0, x0, :lo12:.LC1
11052	bl	printf
11053.L1501:
11054	adrp	x0, .LANCHOR53
11055	ldrh	w1, [x19, #:lo12:.LANCHOR80]
11056	ldrh	w0, [x0, #:lo12:.LANCHOR53]
11057	cmp	w1, w0
11058	bne	.L1502
11059	adrp	x1, .LANCHOR180
11060	adrp	x0, .LC1
11061	mov	w2, 702
11062	add	x1, x1, :lo12:.LANCHOR180
11063	add	x0, x0, :lo12:.LC1
11064	bl	printf
11065.L1502:
11066	add	x22, x19, :lo12:.LANCHOR80
11067	mov	x0, x22
11068	bl	make_superblock
11069	adrp	x0, .LANCHOR178
11070	ldrh	w1, [x19, #:lo12:.LANCHOR80]
11071	strh	wzr, [x0, #:lo12:.LANCHOR178]
11072	ldr	x0, [x23, #:lo12:.LANCHOR42]
11073	ldrh	w1, [x0, x1, lsl 1]
11074	adrp	x0, .LANCHOR179
11075	strh	wzr, [x22, 2]
11076	strh	w1, [x0, #:lo12:.LANCHOR179]
11077	strb	wzr, [x22, 6]
11078.L1491:
11079	ldr	x1, [x29, 144]
11080	mov	w0, 1
11081	str	w0, [x1, #:lo12:.LANCHOR108]
11082	adrp	x0, .LANCHOR19
11083	str	x0, [x29, 112]
11084	ldrh	w1, [x0, #:lo12:.LANCHOR19]
11085	ldr	w0, [x29, 152]
11086	str	w1, [x29, 156]
11087	cbz	w0, .L1503
11088	adrp	x0, .LANCHOR3
11089	ldrh	w2, [x19, #:lo12:.LANCHOR80]
11090	ldrh	w0, [x0, #:lo12:.LANCHOR3]
11091	mul	w0, w0, w1
11092	adrp	x1, .LANCHOR42
11093	ldr	x1, [x1, #:lo12:.LANCHOR42]
11094	ldrh	w1, [x1, x2, lsl 1]
11095	sub	w0, w0, w1
11096	mov	w1, 4
11097	sdiv	w0, w0, w1
11098	add	w20, w20, w0
11099	and	w20, w20, 65535
11100.L1503:
11101	add	x0, x19, :lo12:.LANCHOR80
11102	ldr	w2, [x29, 156]
11103	ldrh	w0, [x0, 2]
11104	add	w1, w0, w20
11105	cmp	w1, w2
11106	ble	.L1504
11107	sub	w20, w2, w0
11108	and	w20, w20, 65535
11109.L1504:
11110	adrp	x0, .LANCHOR178
11111	mov	w28, 0
11112	add	x0, x0, :lo12:.LANCHOR178
11113	str	x0, [x29, 136]
11114.L1505:
11115	cmp	w20, w28, uxth
11116	bls	.L1513
11117	add	x1, x19, :lo12:.LANCHOR80
11118	adrp	x0, .LANCHOR3
11119	adrp	x23, .LANCHOR93
11120	add	x1, x1, 16
11121	ldrh	w7, [x0, #:lo12:.LANCHOR3]
11122	mov	w22, 0
11123	ldrh	w4, [x1, -14]
11124	mov	w2, 0
11125	ldr	x0, [x23, #:lo12:.LANCHOR93]
11126	mov	w6, 65535
11127	add	w4, w4, w28
11128	b	.L1514
11129.L1507:
11130	ldrh	w3, [x1]
11131	cmp	w3, w6
11132	beq	.L1506
11133	ubfiz	x5, x22, 5, 16
11134	add	w22, w22, 1
11135	add	x5, x0, x5
11136	and	w22, w22, 65535
11137	orr	w3, w4, w3, lsl 10
11138	str	w3, [x5, 4]
11139.L1506:
11140	add	w2, w2, 1
11141	add	x1, x1, 2
11142	and	w2, w2, 65535
11143.L1514:
11144	cmp	w2, w7
11145	bne	.L1507
11146	add	x1, x19, :lo12:.LANCHOR80
11147	adrp	x24, .LANCHOR89
11148	add	x24, x24, :lo12:.LANCHOR89
11149	ldrb	w2, [x1, 8]
11150	mov	w1, w22
11151	bl	FlashReadPages
11152	ubfiz	x0, x22, 5, 16
11153	mov	x22, 0
11154	str	x0, [x29, 128]
11155.L1508:
11156	ldr	x0, [x29, 128]
11157	cmp	x0, x22
11158	bne	.L1512
11159	add	w28, w28, 1
11160	b	.L1505
11161.L1512:
11162	ldr	x0, [x23, #:lo12:.LANCHOR93]
11163	add	x1, x0, x22
11164	ldr	w0, [x0, x22]
11165	cmn	w0, #1
11166	beq	.L1509
11167	ldr	x27, [x1, 16]
11168	mov	w0, 61589
11169	ldrh	w1, [x27]
11170	cmp	w1, w0
11171	bne	.L1509
11172	ldr	w4, [x27, 8]
11173	cmn	w4, #1
11174	bne	.L1510
11175	str	w4, [x29, 104]
11176	mov	w2, 736
11177	adrp	x1, .LANCHOR180
11178	adrp	x0, .LC1
11179	add	x1, x1, :lo12:.LANCHOR180
11180	add	x0, x0, :lo12:.LC1
11181	bl	printf
11182	ldr	w4, [x29, 104]
11183.L1510:
11184	mov	w2, 0
11185	add	x1, x29, 172
11186	mov	w0, w4
11187	bl	log2phys
11188	ldr	x0, [x23, #:lo12:.LANCHOR93]
11189	ldr	w1, [x29, 172]
11190	add	x0, x0, x22
11191	ldr	w2, [x0, 4]
11192	cmp	w2, w1
11193	bne	.L1509
11194	ldr	x1, [x29, 136]
11195	adrp	x4, .LANCHOR113
11196	ldr	x2, [x29, 136]
11197	ldr	w0, [x0, 24]
11198	ldrh	w1, [x1]
11199	add	w1, w1, 1
11200	strh	w1, [x2]
11201	ldr	x2, [x4, #:lo12:.LANCHOR113]
11202	ldr	w1, [x24]
11203	add	x1, x2, x1, lsl 5
11204	stp	x4, x1, [x29, 96]
11205	str	w0, [x1, 24]
11206	bl	Ftl_get_new_temp_ppa
11207	ldp	x4, x1, [x29, 96]
11208	ldr	x2, [x4, #:lo12:.LANCHOR113]
11209	str	w0, [x1, 4]
11210	ldr	w1, [x24]
11211	ubfiz	x0, x1, 5, 32
11212	add	w1, w1, 1
11213	add	x2, x2, x0
11214	ldr	x0, [x23, #:lo12:.LANCHOR93]
11215	add	x0, x0, x22
11216	ldr	x4, [x0, 8]
11217	str	x4, [x2, 8]
11218	ldr	x4, [x0, 16]
11219	str	x4, [x2, 16]
11220	ldr	w2, [x29, 172]
11221	str	w2, [x27, 12]
11222	adrp	x2, .LANCHOR53
11223	add	x11, x2, :lo12:.LANCHOR53
11224	ldrh	w2, [x2, #:lo12:.LANCHOR53]
11225	strh	w2, [x27, 2]
11226	adrp	x2, .LANCHOR71
11227	str	w1, [x24]
11228	mov	w1, 1
11229	ldr	w2, [x2, #:lo12:.LANCHOR71]
11230	str	w2, [x27, 4]
11231	bl	FtlGcBufAlloc
11232	ldrb	w1, [x11, 7]
11233	ldr	w0, [x24]
11234	cmp	w1, w0
11235	beq	.L1511
11236	ldrh	w0, [x11, 4]
11237	cbnz	w0, .L1509
11238.L1511:
11239	bl	Ftl_gc_temp_data_write_back
11240	cbz	w0, .L1509
11241.L1561:
11242	ldr	x0, [x29, 144]
11243	str	wzr, [x0, #:lo12:.LANCHOR108]
11244	b	.L1560
11245.L1509:
11246	add	x22, x22, 32
11247	b	.L1508
11248.L1513:
11249	add	x1, x19, :lo12:.LANCHOR80
11250	ldrh	w0, [x1, 2]
11251	add	w20, w20, w0
11252	ldr	w0, [x29, 156]
11253	and	w20, w20, 65535
11254	strh	w20, [x1, 2]
11255	cmp	w0, w20
11256	bhi	.L1515
11257	adrp	x0, .LANCHOR89
11258	ldr	w0, [x0, #:lo12:.LANCHOR89]
11259	cbz	w0, .L1516
11260	bl	Ftl_gc_temp_data_write_back
11261	cbnz	w0, .L1561
11262.L1516:
11263	adrp	x0, .LANCHOR178
11264	ldrh	w0, [x0, #:lo12:.LANCHOR178]
11265	cbnz	w0, .L1517
11266	ldrh	w0, [x19, #:lo12:.LANCHOR80]
11267	adrp	x1, .LANCHOR42
11268	ldr	x1, [x1, #:lo12:.LANCHOR42]
11269	lsl	x0, x0, 1
11270	ldrh	w2, [x1, x0]
11271	cbz	w2, .L1517
11272	strh	wzr, [x1, x0]
11273	ldrh	w0, [x19, #:lo12:.LANCHOR80]
11274	bl	update_vpc_list
11275	bl	l2p_flush
11276	bl	FtlVpcTblFlush
11277.L1517:
11278	mov	w0, -1
11279	strh	w0, [x19, #:lo12:.LANCHOR80]
11280.L1515:
11281	ldr	x0, [x29, 144]
11282	str	wzr, [x0, #:lo12:.LANCHOR108]
11283	adrp	x0, .LANCHOR48
11284	ldrh	w0, [x0, #:lo12:.LANCHOR48]
11285	cmp	w0, 2
11286	bhi	.L1518
11287	ldr	x0, [x29, 112]
11288	ldrh	w20, [x0, #:lo12:.LANCHOR19]
11289	b	.L1519
11290.L1518:
11291	adrp	x1, .LANCHOR177
11292	ldrh	w1, [x1, #:lo12:.LANCHOR177]
11293	cmp	w1, 0
11294	csinc	w0, w1, w0, ne
11295	b	.L1449
11296.L1522:
11297	mov	w0, 0
11298	b	.L1449
11299	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
11300	.section	.text.sftl_init,"ax",@progbits
11301	.align	2
11302	.global	sftl_init
11303	.type	sftl_init, %function
11304sftl_init:
11305	stp	x29, x30, [sp, -32]!
11306	adrp	x1, .LC70
11307	add	x1, x1, :lo12:.LC70
11308	mov	w0, -1
11309	add	x29, sp, 0
11310	str	x19, [sp, 16]
11311	adrp	x19, .LANCHOR86
11312	str	w0, [x19, #:lo12:.LANCHOR86]
11313	adrp	x0, .LC71
11314	add	x0, x0, :lo12:.LC71
11315	bl	printf
11316	adrp	x0, .LANCHOR0
11317	add	x0, x0, :lo12:.LANCHOR0
11318	bl	FtlConstantsInit
11319	bl	FtlMemInit
11320	bl	FtlVariablesInit
11321	adrp	x0, .LANCHOR4
11322	ldrh	w0, [x0, #:lo12:.LANCHOR4]
11323	bl	FtlFreeSysBlkQueueInit
11324	bl	FtlLoadBbt
11325	cbnz	w0, .L1566
11326	bl	FtlSysBlkInit
11327	cbnz	w0, .L1566
11328	mov	w0, 1
11329	str	w0, [x19, #:lo12:.LANCHOR86]
11330	adrp	x0, .LANCHOR48
11331	ldrh	w0, [x0, #:lo12:.LANCHOR48]
11332	cmp	w0, 15
11333	bhi	.L1566
11334	mov	w19, 8129
11335.L1565:
11336	mov	w1, 1
11337	mov	w0, 0
11338	bl	rk_ftl_garbage_collect
11339	subs	w19, w19, #1
11340	bne	.L1565
11341.L1566:
11342	mov	w0, 0
11343	ldr	x19, [sp, 16]
11344	ldp	x29, x30, [sp], 32
11345	ret
11346	.size	sftl_init, .-sftl_init
11347	.section	.text.sftl_gc,"ax",@progbits
11348	.align	2
11349	.global	sftl_gc
11350	.type	sftl_gc, %function
11351sftl_gc:
11352	mov	w1, 1
11353	mov	w0, w1
11354	b	rk_ftl_garbage_collect
11355	.size	sftl_gc, .-sftl_gc
11356	.section	.text.FtlRead,"ax",@progbits
11357	.align	2
11358	.global	FtlRead
11359	.type	FtlRead, %function
11360FtlRead:
11361	stp	x29, x30, [sp, -176]!
11362	and	w0, w0, 255
11363	cmp	w0, 16
11364	add	x29, sp, 0
11365	stp	x19, x20, [sp, 16]
11366	mov	w19, w1
11367	stp	x23, x24, [sp, 48]
11368	mov	x23, x3
11369	stp	x25, x26, [sp, 64]
11370	mov	w26, w2
11371	stp	x21, x22, [sp, 32]
11372	stp	x27, x28, [sp, 80]
11373	bne	.L1571
11374	mov	x2, x3
11375	mov	w1, w26
11376	add	w0, w19, 256
11377	bl	FtlVendorPartRead
11378	mov	w21, w0
11379.L1570:
11380	mov	w0, w21
11381	ldp	x19, x20, [sp, 16]
11382	ldp	x21, x22, [sp, 32]
11383	ldp	x23, x24, [sp, 48]
11384	ldp	x25, x26, [sp, 64]
11385	ldp	x27, x28, [sp, 80]
11386	ldp	x29, x30, [sp], 176
11387	ret
11388.L1571:
11389	add	w0, w1, w2
11390	str	w0, [x29, 136]
11391	adrp	x0, .LANCHOR34
11392	add	w1, w1, w2
11393	ldr	w0, [x0, #:lo12:.LANCHOR34]
11394	cmp	w1, w0
11395	bhi	.L1592
11396	adrp	x0, .LANCHOR86
11397	ldr	w21, [x0, #:lo12:.LANCHOR86]
11398	cmn	w21, #1
11399	beq	.L1570
11400	adrp	x22, .LANCHOR12
11401	adrp	x25, .LANCHOR81
11402	add	x25, x25, :lo12:.LANCHOR81
11403	mov	w27, 0
11404	ldrh	w0, [x22, #:lo12:.LANCHOR12]
11405	mov	w21, 0
11406	adrp	x28, .LANCHOR112
11407	stp	wzr, wzr, [x29, 140]
11408	udiv	w1, w19, w0
11409	stp	wzr, w1, [x29, 148]
11410	add	w1, w19, w2
11411	sub	w24, w1, #1
11412	adrp	x1, .LANCHOR69
11413	ldr	w20, [x29, 152]
11414	udiv	w24, w24, w0
11415	ldr	w0, [x29, 152]
11416	sub	w0, w24, w0
11417	add	w0, w0, 1
11418	str	w0, [x29, 156]
11419	ldr	w0, [x1, #:lo12:.LANCHOR69]
11420	add	w0, w0, w2
11421	str	w0, [x1, #:lo12:.LANCHOR69]
11422	adrp	x1, .LANCHOR62
11423	ldr	w2, [x29, 156]
11424	ldr	w0, [x1, #:lo12:.LANCHOR62]
11425	add	w0, w0, w2
11426	str	w0, [x1, #:lo12:.LANCHOR62]
11427.L1573:
11428	ldr	w0, [x29, 156]
11429	cbnz	w0, .L1590
11430	adrp	x0, .LANCHOR101
11431	ldrh	w0, [x0, #:lo12:.LANCHOR101]
11432	cbnz	w0, .L1591
11433	adrp	x0, .LANCHOR48
11434	ldrh	w0, [x0, #:lo12:.LANCHOR48]
11435	cmp	w0, 31
11436	bhi	.L1570
11437.L1591:
11438	mov	w1, 1
11439	mov	w0, 0
11440	bl	rk_ftl_garbage_collect
11441	b	.L1570
11442.L1590:
11443	add	x1, x29, 172
11444	mov	w2, 0
11445	mov	w0, w20
11446	bl	log2phys
11447	ldr	w1, [x29, 172]
11448	cmn	w1, #1
11449	bne	.L1574
11450	add	x5, x22, :lo12:.LANCHOR12
11451	mov	w4, 0
11452.L1575:
11453	ldrh	w0, [x5]
11454	cmp	w4, w0
11455	bcc	.L1577
11456.L1578:
11457	ldr	w0, [x29, 156]
11458	add	w20, w20, 1
11459	subs	w0, w0, #1
11460	str	w0, [x29, 156]
11461	beq	.L1582
11462	adrp	x0, .LANCHOR3
11463	ldrh	w0, [x0, #:lo12:.LANCHOR3]
11464	cmp	w27, w0, lsl 2
11465	bne	.L1573
11466.L1582:
11467	cbz	w27, .L1573
11468	ldr	x0, [x28, #:lo12:.LANCHOR112]
11469	mov	w1, w27
11470	mov	w2, 0
11471	bl	FlashReadPages
11472	ldr	w0, [x29, 140]
11473	lsl	w0, w0, 9
11474	str	w0, [x29, 116]
11475	ldr	w0, [x29, 148]
11476	lsl	w0, w0, 9
11477	str	x0, [x29, 128]
11478	ldr	w0, [x29, 144]
11479	lsl	w0, w0, 9
11480	str	w0, [x29, 120]
11481	ubfiz	x0, x27, 5, 32
11482	mov	x27, 0
11483	str	x0, [x29, 104]
11484	add	x0, x22, :lo12:.LANCHOR12
11485	str	x0, [x29, 96]
11486.L1589:
11487	ldr	x0, [x28, #:lo12:.LANCHOR112]
11488	ldr	w2, [x29, 152]
11489	add	x0, x0, x27
11490	ldr	w1, [x0, 24]
11491	cmp	w2, w1
11492	bne	.L1584
11493	ldr	x1, [x0, 8]
11494	adrp	x0, .LANCHOR118
11495	ldr	x0, [x0, #:lo12:.LANCHOR118]
11496	cmp	x1, x0
11497	bne	.L1585
11498	ldr	x0, [x29, 128]
11499	ldr	w2, [x29, 120]
11500	add	x1, x1, x0
11501	mov	x0, x23
11502.L1603:
11503	bl	ftl_memcpy
11504.L1585:
11505	ldr	x0, [x28, #:lo12:.LANCHOR112]
11506	add	x0, x0, x27
11507	ldr	x1, [x0, 16]
11508	ldr	w2, [x0, 24]
11509	ldr	w1, [x1, 8]
11510	cmp	w2, w1
11511	beq	.L1586
11512	ldr	w1, [x25, 72]
11513	add	w1, w1, 1
11514	str	w1, [x25, 72]
11515.L1586:
11516	ldr	w1, [x0]
11517	cmn	w1, #1
11518	bne	.L1587
11519	ldr	w0, [x25, 72]
11520	mov	w21, w1
11521	add	w0, w0, 1
11522	str	w0, [x25, 72]
11523.L1588:
11524	ldr	x0, [x29, 104]
11525	add	x27, x27, 32
11526	cmp	x0, x27
11527	bne	.L1589
11528	mov	w27, 0
11529	b	.L1573
11530.L1577:
11531	madd	w0, w20, w0, w4
11532	cmp	w19, w0
11533	bhi	.L1576
11534	ldr	w1, [x29, 136]
11535	cmp	w1, w0
11536	bls	.L1576
11537	sub	w0, w0, w19
11538	str	x5, [x29, 120]
11539	lsl	w0, w0, 9
11540	str	w4, [x29, 128]
11541	mov	w2, 512
11542	mov	w1, 0
11543	add	x0, x23, x0
11544	bl	ftl_memset
11545	ldr	w4, [x29, 128]
11546	ldr	x5, [x29, 120]
11547.L1576:
11548	add	w4, w4, 1
11549	b	.L1575
11550.L1574:
11551	ldr	x2, [x28, #:lo12:.LANCHOR112]
11552	ubfiz	x0, x27, 5, 32
11553	add	x0, x2, x0
11554	str	w1, [x0, 4]
11555	ldr	w1, [x29, 152]
11556	cmp	w20, w1
11557	bne	.L1579
11558	adrp	x1, .LANCHOR118
11559	ldr	x1, [x1, #:lo12:.LANCHOR118]
11560	str	x1, [x0, 8]
11561	ldrh	w1, [x22, #:lo12:.LANCHOR12]
11562	udiv	w2, w19, w1
11563	msub	w2, w2, w1, w19
11564	str	w2, [x29, 148]
11565	sub	w2, w1, w2
11566	cmp	w26, w2
11567	csel	w2, w26, w2, ls
11568	str	w2, [x29, 144]
11569	cmp	w1, w2
11570	bne	.L1580
11571	str	x23, [x0, 8]
11572.L1580:
11573	adrp	x1, .LANCHOR24
11574	adrp	x2, .LANCHOR124
11575	str	w20, [x0, 24]
11576	ldrh	w1, [x1, #:lo12:.LANCHOR24]
11577	ldr	x2, [x2, #:lo12:.LANCHOR124]
11578	mul	w1, w1, w27
11579	add	w27, w27, 1
11580	and	x1, x1, 4294967292
11581	add	x1, x2, x1
11582	str	x1, [x0, 16]
11583	b	.L1578
11584.L1579:
11585	cmp	w20, w24
11586	bne	.L1581
11587	ldrh	w2, [x22, #:lo12:.LANCHOR12]
11588	adrp	x1, .LANCHOR119
11589	ldr	w3, [x29, 136]
11590	ldr	x1, [x1, #:lo12:.LANCHOR119]
11591	str	x1, [x0, 8]
11592	mul	w1, w20, w2
11593	sub	w3, w3, w1
11594	str	w3, [x29, 140]
11595	cmp	w2, w3
11596	bne	.L1580
11597.L1602:
11598	sub	w1, w1, w19
11599	lsl	w1, w1, 9
11600	add	x1, x23, x1
11601	str	x1, [x0, 8]
11602	b	.L1580
11603.L1581:
11604	ldrh	w1, [x22, #:lo12:.LANCHOR12]
11605	mul	w1, w1, w20
11606	b	.L1602
11607.L1584:
11608	cmp	w24, w1
11609	bne	.L1585
11610	ldr	x1, [x0, 8]
11611	adrp	x0, .LANCHOR119
11612	ldr	x0, [x0, #:lo12:.LANCHOR119]
11613	cmp	x1, x0
11614	bne	.L1585
11615	ldr	x0, [x29, 96]
11616	ldr	w2, [x29, 116]
11617	ldrh	w0, [x0]
11618	mul	w0, w0, w24
11619	sub	w0, w0, w19
11620	lsl	w0, w0, 9
11621	add	x0, x23, x0
11622	b	.L1603
11623.L1587:
11624	cmp	w1, 256
11625	bne	.L1588
11626	ldr	w0, [x0, 4]
11627	lsr	w0, w0, 10
11628	bl	P2V_block_in_plane
11629	bl	FtlGcRefreshBlock
11630	b	.L1588
11631.L1592:
11632	mov	w21, -1
11633	b	.L1570
11634	.size	FtlRead, .-FtlRead
11635	.section	.text.sftl_read,"ax",@progbits
11636	.align	2
11637	.global	sftl_read
11638	.type	sftl_read, %function
11639sftl_read:
11640	mov	x3, x2
11641	mov	w2, w1
11642	mov	w1, w0
11643	mov	w0, 0
11644	b	FtlRead
11645	.size	sftl_read, .-sftl_read
11646	.section	.text.FtlWrite,"ax",@progbits
11647	.align	2
11648	.global	FtlWrite
11649	.type	FtlWrite, %function
11650FtlWrite:
11651	stp	x29, x30, [sp, -240]!
11652	and	w0, w0, 255
11653	cmp	w0, 16
11654	add	x29, sp, 0
11655	stp	x21, x22, [sp, 32]
11656	mov	w21, w1
11657	stp	x25, x26, [sp, 64]
11658	mov	x26, x3
11659	stp	x19, x20, [sp, 16]
11660	stp	x23, x24, [sp, 48]
11661	stp	x27, x28, [sp, 80]
11662	str	w2, [x29, 180]
11663	bne	.L1606
11664	add	w0, w1, 256
11665	ldr	w1, [x29, 180]
11666	mov	x2, x3
11667	bl	FtlVendorPartWrite
11668.L1605:
11669	ldp	x19, x20, [sp, 16]
11670	ldp	x21, x22, [sp, 32]
11671	ldp	x23, x24, [sp, 48]
11672	ldp	x25, x26, [sp, 64]
11673	ldp	x27, x28, [sp, 80]
11674	ldp	x29, x30, [sp], 240
11675	ret
11676.L1606:
11677	ldr	w0, [x29, 180]
11678	add	w0, w1, w0
11679	str	w0, [x29, 168]
11680	adrp	x0, .LANCHOR34
11681	ldr	w1, [x29, 168]
11682	ldr	w0, [x0, #:lo12:.LANCHOR34]
11683	cmp	w1, w0
11684	bhi	.L1642
11685	adrp	x0, .LANCHOR86
11686	ldr	w0, [x0, #:lo12:.LANCHOR86]
11687	cmn	w0, #1
11688	beq	.L1605
11689	adrp	x0, .LANCHOR181
11690	mov	w1, 2048
11691	adrp	x22, .LANCHOR12
11692	ldr	w2, [x29, 180]
11693	str	w1, [x0, #:lo12:.LANCHOR181]
11694	ldr	w1, [x29, 168]
11695	ldrh	w0, [x22, #:lo12:.LANCHOR12]
11696	sub	w1, w1, #1
11697	udiv	w25, w21, w0
11698	udiv	w0, w1, w0
11699	adrp	x1, .LANCHOR68
11700	str	w0, [x29, 156]
11701	sub	w0, w0, w25
11702	add	w24, w0, 1
11703	str	w0, [x29, 152]
11704	ldr	w0, [x1, #:lo12:.LANCHOR68]
11705	add	w0, w0, w2
11706	str	w0, [x1, #:lo12:.LANCHOR68]
11707	adrp	x1, .LANCHOR64
11708	ldr	w0, [x1, #:lo12:.LANCHOR64]
11709	add	w0, w0, w24
11710	str	w0, [x1, #:lo12:.LANCHOR64]
11711	adrp	x0, .LANCHOR182
11712	str	x0, [x29, 160]
11713	ldr	w1, [x0, #:lo12:.LANCHOR182]
11714	adrp	x0, .LANCHOR51
11715	add	x19, x0, :lo12:.LANCHOR51
11716	cbz	w1, .L1608
11717	ldrh	w0, [x19, 4]
11718	cbnz	w0, .L1608
11719	adrp	x19, .LANCHOR52
11720	add	x19, x19, :lo12:.LANCHOR52
11721.L1608:
11722	mov	w20, w25
11723	adrp	x0, .LANCHOR52
11724	add	x0, x0, :lo12:.LANCHOR52
11725	str	x0, [x29, 96]
11726.L1609:
11727	cbnz	w24, .L1637
11728	ldr	w1, [x29, 152]
11729	mov	w0, 0
11730	bl	rk_ftl_garbage_collect
11731	adrp	x0, .LANCHOR48
11732	mov	x22, x0
11733	ldrh	w1, [x0, #:lo12:.LANCHOR48]
11734	cmp	w1, 5
11735	bls	.L1638
11736.L1640:
11737	mov	w0, 0
11738	b	.L1605
11739.L1637:
11740	adrp	x0, .LANCHOR3
11741	ldrb	w2, [x19, 6]
11742	str	x0, [x29, 120]
11743	ldrh	w1, [x0, #:lo12:.LANCHOR3]
11744	cmp	w2, w1
11745	bcc	.L1610
11746	adrp	x1, .LANCHOR183
11747	adrp	x0, .LC1
11748	mov	w2, 1011
11749	add	x1, x1, :lo12:.LANCHOR183
11750	add	x0, x0, :lo12:.LC1
11751	bl	printf
11752.L1610:
11753	ldrh	w0, [x19, 4]
11754	cbnz	w0, .L1611
11755	adrp	x0, .LANCHOR51
11756	add	x0, x0, :lo12:.LANCHOR51
11757	cmp	x19, x0
11758	bne	.L1612
11759	adrp	x0, .LANCHOR52
11760	add	x0, x0, :lo12:.LANCHOR52
11761	ldrh	w1, [x0, 4]
11762	cbnz	w1, .L1613
11763	bl	allocate_new_data_superblock
11764	ldr	x0, [x29, 160]
11765	str	wzr, [x0, #:lo12:.LANCHOR182]
11766.L1613:
11767	adrp	x0, .LANCHOR51
11768	add	x19, x0, :lo12:.LANCHOR51
11769	mov	x0, x19
11770	bl	allocate_new_data_superblock
11771	ldr	x0, [x29, 160]
11772	ldr	w0, [x0, #:lo12:.LANCHOR182]
11773	cmp	w0, 0
11774	ldr	x0, [x29, 96]
11775	csel	x19, x0, x19, ne
11776.L1614:
11777	ldrh	w0, [x19, 4]
11778	cbnz	w0, .L1611
11779	mov	x0, x19
11780	bl	allocate_new_data_superblock
11781.L1611:
11782	ldrh	w0, [x19, 4]
11783	ldrb	w1, [x19, 7]
11784	cmp	w0, w24
11785	csel	w0, w0, w24, ls
11786	lsl	w1, w1, 2
11787	cmp	w0, w1
11788	csel	w0, w0, w1, ls
11789	str	w0, [x29, 148]
11790	ldr	x0, [x29, 120]
11791	ldrb	w1, [x19, 6]
11792	ldrh	w0, [x0, #:lo12:.LANCHOR3]
11793	cmp	w1, w0
11794	bcc	.L1615
11795	adrp	x1, .LANCHOR183
11796	adrp	x0, .LC1
11797	mov	w2, 1044
11798	add	x1, x1, :lo12:.LANCHOR183
11799	add	x0, x0, :lo12:.LC1
11800	bl	printf
11801.L1615:
11802	adrp	x0, .LANCHOR24
11803	add	x0, x0, :lo12:.LANCHOR24
11804	str	xzr, [x29, 184]
11805	str	x0, [x29, 112]
11806	adrp	x0, .LANCHOR23
11807	add	x0, x0, :lo12:.LANCHOR23
11808	str	x0, [x29, 104]
11809.L1616:
11810	ldr	w1, [x29, 148]
11811	adrp	x27, .LANCHOR114
11812	ldr	w23, [x29, 184]
11813	cmp	w23, w1
11814	bcc	.L1635
11815	mov	x23, x1
11816.L1617:
11817	ldr	x0, [x27, #:lo12:.LANCHOR114]
11818	mov	x3, x19
11819	mov	w2, 0
11820	mov	w1, w23
11821	bl	FtlProgPages
11822	cmp	w24, w23
11823	bcs	.L1636
11824	adrp	x1, .LANCHOR183
11825	adrp	x0, .LC1
11826	mov	w2, 1121
11827	add	x1, x1, :lo12:.LANCHOR183
11828	add	x0, x0, :lo12:.LC1
11829	bl	printf
11830.L1636:
11831	sub	w24, w24, w23
11832	b	.L1609
11833.L1612:
11834	ldr	x1, [x29, 160]
11835	str	wzr, [x1, #:lo12:.LANCHOR182]
11836	ldrh	w1, [x0, 4]
11837	cbnz	w1, .L1647
11838	mov	x0, x19
11839	bl	allocate_new_data_superblock
11840	b	.L1614
11841.L1647:
11842	mov	x19, x0
11843	b	.L1611
11844.L1635:
11845	ldrh	w0, [x19, 4]
11846	cbz	w0, .L1617
11847	add	x1, x29, 204
11848	mov	w2, 0
11849	mov	w0, w20
11850	bl	log2phys
11851	mov	x0, x19
11852	bl	get_new_active_ppa
11853	ldr	x1, [x29, 184]
11854	lsl	x28, x1, 5
11855	ldr	x1, [x27, #:lo12:.LANCHOR114]
11856	add	x1, x1, x28
11857	str	w0, [x1, 4]
11858	ldr	x0, [x29, 112]
11859	str	w20, [x1, 24]
11860	ldrh	w2, [x0]
11861	mul	w23, w23, w2
11862	and	x0, x23, 4294967292
11863	str	x0, [x29, 136]
11864	adrp	x0, .LANCHOR124
11865	ldr	x3, [x29, 136]
11866	ldr	x0, [x0, #:lo12:.LANCHOR124]
11867	str	x0, [x29, 128]
11868	add	x23, x0, x3
11869	str	x23, [x1, 16]
11870	mov	x0, x23
11871	mov	w1, 0
11872	bl	ftl_memset
11873	ldr	w0, [x29, 156]
11874	cmp	w20, w25
11875	ccmp	w20, w0, 4, ne
11876	bne	.L1618
11877	cmp	w20, w25
11878	bne	.L1619
11879	ldrh	w2, [x22, #:lo12:.LANCHOR12]
11880	udiv	w0, w21, w2
11881	msub	w0, w0, w2, w21
11882	str	w0, [x29, 172]
11883	sub	w2, w2, w0
11884	ldr	w0, [x29, 180]
11885	cmp	w2, w0
11886	csel	w0, w2, w0, ls
11887	str	w0, [x29, 176]
11888.L1620:
11889	ldrh	w0, [x22, #:lo12:.LANCHOR12]
11890	ldr	w1, [x29, 176]
11891	cmp	w1, w0
11892	ldr	x0, [x27, #:lo12:.LANCHOR114]
11893	bne	.L1621
11894	add	x3, x0, x28
11895	cmp	w20, w25
11896	bne	.L1622
11897	str	x26, [x3, 8]
11898.L1623:
11899	ldr	x0, [x29, 120]
11900	ldrb	w1, [x19, 6]
11901	ldrh	w0, [x0, #:lo12:.LANCHOR3]
11902	cmp	w1, w0
11903	bcc	.L1632
11904	adrp	x1, .LANCHOR183
11905	adrp	x0, .LC1
11906	mov	w2, 1112
11907	add	x1, x1, :lo12:.LANCHOR183
11908	add	x0, x0, :lo12:.LC1
11909	bl	printf
11910.L1632:
11911	ldp	x1, x2, [x29, 128]
11912	mov	w0, -3947
11913	strh	w0, [x1, x2]
11914	adrp	x1, .LANCHOR71
11915	ldr	w0, [x1, #:lo12:.LANCHOR71]
11916	stp	w0, w20, [x23, 4]
11917	add	w20, w20, 1
11918	add	w0, w0, 1
11919	cmn	w0, #1
11920	csel	w0, w0, wzr, ne
11921	str	w0, [x1, #:lo12:.LANCHOR71]
11922	ldr	w0, [x29, 204]
11923	str	w0, [x23, 12]
11924	ldrh	w0, [x19]
11925	strh	w0, [x23, 2]
11926	ldr	x0, [x29, 184]
11927	add	x0, x0, 1
11928	str	x0, [x29, 184]
11929	b	.L1616
11930.L1619:
11931	ldr	w0, [x29, 168]
11932	ldrh	w2, [x22, #:lo12:.LANCHOR12]
11933	msub	w2, w20, w2, w0
11934	and	w0, w2, 65535
11935	stp	wzr, w0, [x29, 172]
11936	b	.L1620
11937.L1622:
11938	ldr	w0, [x29, 176]
11939.L1654:
11940	mul	w0, w0, w20
11941	sub	w0, w0, w21
11942	lsl	w0, w0, 9
11943	add	x0, x26, x0
11944	str	x0, [x3, 8]
11945	b	.L1623
11946.L1621:
11947	add	x0, x0, x28
11948	cmp	w20, w25
11949	bne	.L1624
11950	adrp	x1, .LANCHOR118
11951	ldr	x1, [x1, #:lo12:.LANCHOR118]
11952.L1653:
11953	str	x1, [x0, 8]
11954	ldr	w0, [x29, 204]
11955	cmn	w0, #1
11956	beq	.L1626
11957	str	w0, [x29, 212]
11958	mov	w2, 0
11959	ldr	x0, [x27, #:lo12:.LANCHOR114]
11960	str	w20, [x29, 232]
11961	add	x0, x0, x28
11962	ldp	x1, x0, [x0, 8]
11963	stp	x1, x0, [x29, 216]
11964	mov	w1, 1
11965	add	x0, x29, 208
11966	bl	FlashReadPages
11967	ldr	w0, [x29, 208]
11968	cmn	w0, #1
11969	bne	.L1627
11970	adrp	x0, .LANCHOR81
11971	add	x0, x0, :lo12:.LANCHOR81
11972	ldr	w1, [x0, 72]
11973	add	w1, w1, 1
11974	str	w1, [x0, 72]
11975.L1630:
11976	ldr	w0, [x29, 176]
11977	cmp	w20, w25
11978	lsl	w2, w0, 9
11979	bne	.L1631
11980	ldr	x0, [x27, #:lo12:.LANCHOR114]
11981	mov	x1, x26
11982	add	x3, x0, x28
11983	ldr	w0, [x29, 172]
11984	ldr	x3, [x3, 8]
11985	lsl	w0, w0, 9
11986	add	x0, x3, x0
11987.L1655:
11988	bl	ftl_memcpy
11989	b	.L1623
11990.L1624:
11991	adrp	x1, .LANCHOR119
11992	ldr	x1, [x1, #:lo12:.LANCHOR119]
11993	b	.L1653
11994.L1627:
11995	ldr	w1, [x23, 8]
11996	cmp	w20, w1
11997	beq	.L1629
11998	adrp	x0, .LANCHOR81
11999	add	x0, x0, :lo12:.LANCHOR81
12000	ldr	w2, [x0, 72]
12001	add	w2, w2, 1
12002	str	w2, [x0, 72]
12003	adrp	x0, .LC113
12004	mov	w2, w20
12005	add	x0, x0, :lo12:.LC113
12006	bl	printf
12007.L1629:
12008	ldr	w0, [x23, 8]
12009	cmp	w20, w0
12010	beq	.L1630
12011	mov	w2, 1097
12012	adrp	x1, .LANCHOR183
12013	adrp	x0, .LC1
12014	add	x1, x1, :lo12:.LANCHOR183
12015	add	x0, x0, :lo12:.LC1
12016	bl	printf
12017	b	.L1630
12018.L1626:
12019	ldr	x0, [x27, #:lo12:.LANCHOR114]
12020	ldr	x1, [x29, 104]
12021	add	x0, x0, x28
12022	ldrh	w2, [x1]
12023	mov	w1, 0
12024	ldr	x0, [x0, 8]
12025	bl	ftl_memset
12026	b	.L1630
12027.L1631:
12028	ldrh	w1, [x22, #:lo12:.LANCHOR12]
12029	ldr	x0, [x27, #:lo12:.LANCHOR114]
12030	add	x3, x0, x28
12031	mul	w1, w1, w20
12032	sub	w1, w1, w21
12033	ldr	x0, [x3, 8]
12034	lsl	w1, w1, 9
12035	add	x1, x26, x1
12036	b	.L1655
12037.L1618:
12038	ldr	x0, [x27, #:lo12:.LANCHOR114]
12039	add	x3, x0, x28
12040	ldrh	w0, [x22, #:lo12:.LANCHOR12]
12041	b	.L1654
12042.L1638:
12043	adrp	x23, .LANCHOR99
12044	adrp	x20, .LANCHOR83
12045	adrp	x21, .LANCHOR82
12046	add	x23, x23, :lo12:.LANCHOR99
12047	add	x20, x20, :lo12:.LANCHOR83
12048	add	x21, x21, :lo12:.LANCHOR82
12049	mov	w19, 256
12050.L1641:
12051	adrp	x0, .LANCHOR80
12052	mov	w1, 65535
12053	ldrh	w0, [x0, #:lo12:.LANCHOR80]
12054	cmp	w0, w1
12055	bne	.L1639
12056	ldrh	w1, [x23]
12057	cmp	w1, w0
12058	bne	.L1639
12059	mov	w0, 0
12060	bl	List_get_gc_head_node
12061	bl	FtlGcRefreshBlock
12062.L1639:
12063	mov	w0, 128
12064	mov	w1, 1
12065	strh	w0, [x20]
12066	strh	w0, [x21]
12067	mov	w0, w1
12068	bl	rk_ftl_garbage_collect
12069	mov	w1, 1
12070	mov	w0, 0
12071	bl	rk_ftl_garbage_collect
12072	ldrh	w0, [x22, #:lo12:.LANCHOR48]
12073	cmp	w0, 2
12074	bhi	.L1640
12075	subs	w19, w19, #1
12076	bne	.L1641
12077	b	.L1640
12078.L1642:
12079	mov	w0, -1
12080	b	.L1605
12081	.size	FtlWrite, .-FtlWrite
12082	.section	.text.sftl_write,"ax",@progbits
12083	.align	2
12084	.global	sftl_write
12085	.type	sftl_write, %function
12086sftl_write:
12087	stp	x29, x30, [sp, -272]!
12088	add	x29, sp, 0
12089	stp	x19, x20, [sp, 16]
12090	add	w19, w0, w1
12091	stp	x21, x22, [sp, 32]
12092	sub	w20, w19, #1
12093	stp	x25, x26, [sp, 64]
12094	mov	w22, w0
12095	stp	x23, x24, [sp, 48]
12096	mov	w25, w1
12097	stp	x27, x28, [sp, 80]
12098	cmp	w20, 63
12099	str	x2, [x29, 184]
12100	bls	.L1657
12101	cmp	w0, 576
12102	bls	.L1658
12103.L1657:
12104	adrp	x0, .LANCHOR184
12105	str	x0, [x29, 152]
12106	ldr	w1, [x0, #:lo12:.LANCHOR184]
12107	cbz	w1, .L1659
12108	adrp	x0, .LANCHOR185
12109	str	x0, [x29, 144]
12110	mov	w1, 35899
12111	ldr	x24, [x0, #:lo12:.LANCHOR185]
12112	movk	w1, 0xfcdc, lsl 16
12113	ldr	w2, [x24]
12114	cmp	w2, w1
12115	beq	.L1660
12116.L1677:
12117	ldr	x0, [x29, 152]
12118	str	wzr, [x0, #:lo12:.LANCHOR184]
12119	ldr	x0, [x29, 144]
12120	ldr	x0, [x0, #:lo12:.LANCHOR185]
12121	bl	free
12122	adrp	x0, .LANCHOR186
12123	ldr	x0, [x0, #:lo12:.LANCHOR186]
12124	bl	free
12125.L1659:
12126	ldr	x3, [x29, 184]
12127	mov	w2, w25
12128	mov	w1, w22
12129	mov	w0, 0
12130	bl	FtlWrite
12131	ldp	x19, x20, [sp, 16]
12132	ldp	x21, x22, [sp, 32]
12133	ldp	x23, x24, [sp, 48]
12134	ldp	x25, x26, [sp, 64]
12135	ldp	x27, x28, [sp, 80]
12136	ldp	x29, x30, [sp], 272
12137	ret
12138.L1660:
12139	adrp	x1, .LANCHOR0
12140	add	x0, x1, :lo12:.LANCHOR0
12141	mov	w2, 65535
12142	mov	w4, 4097
12143	str	x1, [x29, 168]
12144	ldrh	w19, [x0, 14]
12145	ldrh	w20, [x0, 10]
12146	mov	x0, 262140
12147	add	x3, x24, x0
12148	mov	w0, 0
12149.L1664:
12150	ldr	w1, [x3]
12151	cbnz	w1, .L1661
12152	ldr	w1, [x24, w0, uxtw 2]
12153	add	w0, w0, 1
12154	str	w1, [x3], -4
12155	cmp	w0, w4
12156	sub	w2, w2, #1
12157	csel	w0, w0, wzr, cc
12158	cmp	w2, 4096
12159	bne	.L1664
12160	mov	w23, 512
12161	b	.L1663
12162.L1661:
12163	add	w23, w2, 127
12164	adrp	x0, .LC114
12165	lsr	w23, w23, 7
12166	add	x0, x0, :lo12:.LC114
12167	mov	w3, w23
12168	bl	printf
12169.L1663:
12170	and	w19, w19, 255
12171	adrp	x26, .LANCHOR105
12172	mul	w20, w20, w19
12173	mov	w19, 0
12174	and	w20, w20, 65535
12175	sub	w21, w20, #1
12176	add	w21, w21, w23
12177	udiv	w21, w21, w20
12178	mul	w0, w20, w21
12179	stp	w21, wzr, [x29, 196]
12180	str	w0, [x29, 204]
12181	lsl	w0, w23, 7
12182	str	w0, [x29, 192]
12183	add	x0, x26, :lo12:.LANCHOR105
12184	str	x0, [x29, 136]
12185	b	.L1676
12186.L1667:
12187	add	w0, w5, w4
12188	ldr	x3, [x29, 136]
12189	ubfiz	x2, x4, 9, 16
12190	stp	w5, w7, [x29, 112]
12191	str	w4, [x29, 120]
12192	add	x2, x24, x2
12193	udiv	w0, w0, w27
12194	str	w6, [x29, 128]
12195	ldr	x8, [x3, 16]
12196	add	x3, x29, 208
12197	and	w0, w0, 65535
12198	mul	w1, w0, w27
12199	stp	w1, w7, [x29, 208]
12200	udiv	w1, w6, w27
12201	add	w1, w1, w0
12202	mov	w0, 0
12203	blr	x8
12204	ldr	w4, [x29, 120]
12205	ldr	w0, [x29, 160]
12206	ldp	w5, w7, [x29, 112]
12207	add	w4, w0, w4
12208	ldr	w6, [x29, 128]
12209	and	w4, w4, 65535
12210	b	.L1666
12211.L1669:
12212	add	w27, w8, w27
12213	mov	w0, 0
12214	and	w27, w27, 65535
12215	b	.L1668
12216.L1674:
12217	mov	x27, x2
12218	ldr	w4, [x0, x1, lsl 2]
12219	lsl	x5, x1, 2
12220	add	x2, x2, 4
12221	add	x1, x1, 1
12222	ldr	w3, [x27]
12223	cmp	w4, w3
12224	beq	.L1670
12225	mov	x2, 512
12226	mov	w1, 0
12227	str	x5, [x29, 160]
12228	bl	memset
12229	ldr	x0, [x29, 176]
12230	mov	w4, w28
12231	ldr	x5, [x29, 160]
12232	mov	w1, w19
12233	ldr	w3, [x27]
12234	add	x27, x26, :lo12:.LANCHOR105
12235	ldr	x0, [x0, #:lo12:.LANCHOR186]
12236	ldr	w2, [x0, x5]
12237	adrp	x0, .LC115
12238	add	x0, x0, :lo12:.LC115
12239	bl	printf
12240	ldr	x2, [x27, 8]
12241	mov	w1, w19
12242	mov	w0, 0
12243	blr	x2
12244	cmp	w21, 1
12245	bls	.L1683
12246	ldr	x2, [x27, 8]
12247	add	w1, w20, w19
12248	mov	w0, 0
12249	blr	x2
12250.L1683:
12251	ldr	w1, [x29, 204]
12252	ldr	w0, [x29, 196]
12253	add	w19, w19, w1
12254	ldr	w1, [x29, 196]
12255	add	w0, w21, w0
12256	cmp	w1, 15
12257	bhi	.L1677
12258	str	w0, [x29, 196]
12259.L1676:
12260	adrp	x5, .LANCHOR186
12261	mov	x2, 512
12262	mov	w1, 0
12263	str	x5, [x29, 176]
12264	ldr	x0, [x5, #:lo12:.LANCHOR186]
12265	bl	memset
12266	ldr	x0, [x29, 168]
12267	add	x4, x26, :lo12:.LANCHOR105
12268	str	x4, [x29, 120]
12269	add	x0, x0, :lo12:.LANCHOR0
12270	ldr	x6, [x4, 8]
12271	ldrh	w3, [x0, 14]
12272	ldrh	w2, [x0, 10]
12273	mov	w0, 0
12274	and	w27, w3, 255
12275	str	w3, [x29, 128]
12276	str	w27, [x29, 160]
12277	udiv	w1, w19, w3
12278	mul	w2, w27, w2
12279	and	w28, w2, 65535
12280	blr	x6
12281	ldr	w0, [x29, 204]
12282	ldr	w3, [x29, 128]
12283	cmp	w0, w28
12284	ldr	x4, [x29, 120]
12285	bls	.L1665
12286	add	w1, w28, w19
12287	ldr	x4, [x4, 8]
12288	mov	w0, 0
12289	udiv	w1, w1, w3
12290	blr	x4
12291.L1665:
12292	udiv	w5, w19, w28
12293	mov	w4, 0
12294	mov	w7, 61424
12295	msub	w5, w5, w28, w19
12296	sub	w6, w19, w5
12297.L1666:
12298	ldr	w0, [x29, 204]
12299	cmp	w0, w4
12300	bhi	.L1667
12301	ldr	x0, [x29, 176]
12302	add	x10, x26, :lo12:.LANCHOR105
12303	mov	w27, 0
12304	ldr	x6, [x0, #:lo12:.LANCHOR186]
12305	ldr	x0, [x29, 168]
12306	add	x0, x0, :lo12:.LANCHOR0
12307	ldrh	w4, [x0, 14]
12308	ldrh	w5, [x0, 10]
12309	and	w28, w4, 255
12310	mov	w4, w28
12311	mul	w5, w28, w5
12312	and	w0, w5, 65535
12313	udiv	w5, w19, w0
12314	msub	w5, w5, w0, w19
12315	and	w1, w5, 65535
12316	sub	w7, w19, w5
12317	sdiv	w0, w1, w28
12318	msub	w0, w0, w28, w1
12319	and	w0, w0, 65535
12320.L1668:
12321	cmp	w27, w23
12322	bcs	.L1672
12323	add	w1, w5, w27
12324	sub	w8, w4, w0
12325	add	w0, w0, w7
12326	ldr	x11, [x10, 24]
12327	and	w8, w8, 65535
12328	ubfiz	x2, x27, 9, 16
12329	udiv	w1, w1, w28
12330	add	x2, x6, x2
12331	stp	w4, w8, [x29, 108]
12332	add	x3, x29, 208
12333	stp	w5, w7, [x29, 116]
12334	str	x10, [x29, 128]
12335	and	w1, w1, 65535
12336	str	x6, [x29, 160]
12337	madd	w1, w1, w28, w0
12338	mov	w0, 0
12339	udiv	w1, w1, w28
12340	blr	x11
12341	cmn	w0, #1
12342	ldp	w4, w8, [x29, 108]
12343	ldp	w5, w7, [x29, 116]
12344	ldr	x10, [x29, 128]
12345	ldr	x6, [x29, 160]
12346	bne	.L1669
12347.L1672:
12348	ldr	x0, [x29, 176]
12349	mov	x2, x24
12350	mov	x1, 0
12351	ldr	x0, [x0, #:lo12:.LANCHOR186]
12352.L1670:
12353	ldr	w3, [x29, 192]
12354	mov	w28, w1
12355	cmp	w1, w3
12356	bcc	.L1674
12357	ldr	w0, [x29, 200]
12358	add	w0, w0, 1
12359	str	w0, [x29, 200]
12360	cmp	w0, 5
12361	bls	.L1683
12362	b	.L1677
12363.L1658:
12364	cmp	w0, 64
12365	adrp	x21, .LANCHOR185
12366	bne	.L1678
12367	mov	w0, 262144
12368	bl	ftl_malloc
12369	str	x0, [x21, #:lo12:.LANCHOR185]
12370	mov	w0, 262144
12371	bl	ftl_malloc
12372	mov	x1, x0
12373	adrp	x0, .LANCHOR186
12374	str	x1, [x0, #:lo12:.LANCHOR186]
12375	ldr	x0, [x21, #:lo12:.LANCHOR185]
12376	cbz	x0, .L1679
12377	cbz	x1, .L1679
12378	adrp	x1, .LANCHOR184
12379	mov	w2, 1
12380	str	w2, [x1, #:lo12:.LANCHOR184]
12381	mov	w2, 262144
12382	mov	w1, 0
12383	bl	ftl_memset
12384.L1678:
12385	ldr	x0, [x21, #:lo12:.LANCHOR185]
12386	cmp	w22, 63
12387	bhi	.L1680
12388	mov	w1, 64
12389	ldr	x3, [x29, 184]
12390	sub	w1, w1, w22
12391	sub	w2, w25, w1
12392	ubfiz	x1, x1, 9, 25
12393	add	x1, x3, x1
12394.L1681:
12395	cmp	w20, 576
12396	bls	.L1682
12397	sub	w2, w2, w19
12398	sub	w2, w2, #447
12399.L1682:
12400	lsl	w2, w2, 9
12401	bl	ftl_memcpy
12402	b	.L1659
12403.L1679:
12404	adrp	x1, .LANCHOR187
12405	adrp	x0, .LC116
12406	add	x1, x1, :lo12:.LANCHOR187
12407	add	x0, x0, :lo12:.LC116
12408	bl	printf
12409	b	.L1678
12410.L1680:
12411	lsl	w1, w22, 7
12412	mov	w2, w25
12413	sub	w1, w1, #8192
12414	add	x0, x0, x1, lsl 2
12415	ldr	x1, [x29, 184]
12416	b	.L1681
12417	.size	sftl_write, .-sftl_write
12418	.section	.text.FtlMakeBbt,"ax",@progbits
12419	.align	2
12420	.global	FtlMakeBbt
12421	.type	FtlMakeBbt, %function
12422FtlMakeBbt:
12423	stp	x29, x30, [sp, -128]!
12424	add	x29, sp, 0
12425	stp	x21, x22, [sp, 32]
12426	mov	w22, 0
12427	stp	x19, x20, [sp, 16]
12428	adrp	x20, .LANCHOR37
12429	stp	x23, x24, [sp, 48]
12430	add	x21, x20, :lo12:.LANCHOR37
12431	stp	x25, x26, [sp, 64]
12432	add	x24, x21, 32
12433	stp	x27, x28, [sp, 80]
12434	bl	FtlBbtMemInit
12435	bl	FtlLoadFactoryBbt
12436	adrp	x28, .LANCHOR148
12437	add	x21, x21, 12
12438	add	x25, x28, :lo12:.LANCHOR148
12439	adrp	x0, .LANCHOR10
12440	add	x0, x0, :lo12:.LANCHOR10
12441	str	x0, [x29, 120]
12442.L1701:
12443	ldr	x0, [x29, 120]
12444	ldrh	w0, [x0]
12445	cmp	w22, w0
12446	bcc	.L1707
12447	adrp	x21, .LANCHOR25
12448	add	x21, x21, :lo12:.LANCHOR25
12449	mov	w19, 0
12450.L1708:
12451	ldrh	w0, [x21]
12452	cmp	w0, w19
12453	bhi	.L1709
12454	add	x21, x20, :lo12:.LANCHOR37
12455	mov	w22, 65535
12456	ldrh	w19, [x21, 12]
12457	sub	w19, w19, #1
12458	and	w19, w19, 65535
12459.L1710:
12460	ldrh	w0, [x21, 12]
12461	sub	w0, w0, #47
12462	cmp	w0, w19
12463	bgt	.L1714
12464	mov	w0, w19
12465	bl	FtlBbmIsBadBlock
12466	cmp	w0, 1
12467	beq	.L1711
12468	mov	w0, w19
12469	bl	FlashTestBlk
12470	cbz	w0, .L1712
12471	mov	w0, w19
12472	bl	FtlBbmMapBadBlock
12473.L1711:
12474	sub	w19, w19, #1
12475	and	w19, w19, 65535
12476	b	.L1710
12477.L1707:
12478	adrp	x2, .LANCHOR123
12479	adrp	x0, .LANCHOR115
12480	add	x19, x28, :lo12:.LANCHOR148
12481	ldrh	w1, [x21]
12482	ldr	x0, [x0, #:lo12:.LANCHOR115]
12483	mov	w3, 65535
12484	ldr	x26, [x2, #:lo12:.LANCHOR123]
12485	cmp	w1, w3
12486	stp	x0, x26, [x19, 8]
12487	adrp	x23, .LANCHOR17
12488	str	x2, [x29, 112]
12489	beq	.L1702
12490	ldrh	w4, [x23, #:lo12:.LANCHOR17]
12491	mov	w2, 1
12492	madd	w27, w4, w22, w1
12493	mov	w1, w2
12494	lsl	w0, w27, 10
12495	str	w0, [x19, 4]
12496	mov	x0, x19
12497	bl	FlashReadPages
12498	ldr	x1, [x19, 8]
12499	ldr	x0, [x24]
12500	ldrh	w2, [x23, #:lo12:.LANCHOR17]
12501	add	w2, w2, 7
12502	lsr	w2, w2, 3
12503	bl	ftl_memcpy
12504.L1703:
12505	mov	w0, w27
12506	add	w22, w22, 1
12507	bl	FtlBbmMapBadBlock
12508	add	x24, x24, 8
12509	add	x21, x21, 2
12510	b	.L1701
12511.L1702:
12512	mov	w1, w22
12513	bl	FlashGetBadBlockList
12514	ldr	x0, [x19, 8]
12515	ldr	x1, [x24]
12516	bl	FtlBbt2Bitmap
12517	ldrh	w19, [x23, #:lo12:.LANCHOR17]
12518	add	x23, x23, :lo12:.LANCHOR17
12519	adrp	x0, .LANCHOR137
12520	sub	w19, w19, #1
12521	add	x0, x0, :lo12:.LANCHOR137
12522	and	w19, w19, 65535
12523	str	x0, [x29, 104]
12524.L1704:
12525	ldrh	w0, [x23]
12526	madd	w0, w22, w0, w19
12527	bl	FtlBbmIsBadBlock
12528	cmp	w0, 1
12529	beq	.L1705
12530	ldr	x0, [x29, 112]
12531	mov	w2, 16
12532	strh	w19, [x21]
12533	mov	w1, 0
12534	ldr	x0, [x0, #:lo12:.LANCHOR123]
12535	bl	ftl_memset
12536	adrp	x0, .LANCHOR115
12537	mov	w2, 4096
12538	mov	w1, 0
12539	ldr	x0, [x0, #:lo12:.LANCHOR115]
12540	bl	ftl_memset
12541	mov	w0, -3872
12542	strh	w0, [x26]
12543	ldrh	w4, [x23]
12544	ldrh	w0, [x21]
12545	strh	w0, [x26, 2]
12546	ldr	x1, [x24]
12547	str	wzr, [x26, 4]
12548	madd	w27, w4, w22, w0
12549	lsl	w0, w27, 10
12550	str	w0, [x25, 4]
12551	ldr	x0, [x29, 104]
12552	ldrh	w2, [x0]
12553	ldr	x0, [x25, 8]
12554	lsl	w2, w2, 2
12555	bl	ftl_memcpy
12556	mov	w2, 1
12557	mov	x0, x25
12558	mov	w1, w2
12559	bl	FlashEraseBlocks
12560	mov	w3, 1
12561	mov	x0, x25
12562	mov	w2, w3
12563	mov	w1, w3
12564	bl	FlashProgPages
12565	ldr	w0, [x25]
12566	cmn	w0, #1
12567	bne	.L1703
12568	mov	w0, w27
12569	bl	FtlBbmMapBadBlock
12570	b	.L1704
12571.L1705:
12572	sub	w19, w19, #1
12573	and	w19, w19, 65535
12574	b	.L1704
12575.L1709:
12576	mov	w0, w19
12577	add	w19, w19, 1
12578	bl	FtlBbmMapBadBlock
12579	and	w19, w19, 65535
12580	b	.L1708
12581.L1712:
12582	ldrh	w0, [x21]
12583	cmp	w0, w22
12584	bne	.L1713
12585	strh	w19, [x21]
12586	b	.L1711
12587.L1713:
12588	strh	w19, [x21, 4]
12589.L1714:
12590	adrp	x0, .LANCHOR106
12591	add	x19, x20, :lo12:.LANCHOR37
12592	ldrh	w1, [x20, #:lo12:.LANCHOR37]
12593	mov	w2, 2
12594	ldr	x0, [x0, #:lo12:.LANCHOR106]
12595	str	wzr, [x19, 8]
12596	lsl	w1, w1, 10
12597	strh	wzr, [x19, 2]
12598	str	w1, [x0, 4]
12599	ldrh	w1, [x19, 4]
12600	lsl	w1, w1, 10
12601	str	w1, [x0, 36]
12602	mov	w1, 1
12603	bl	FlashEraseBlocks
12604	ldrh	w0, [x20, #:lo12:.LANCHOR37]
12605	bl	FtlBbmMapBadBlock
12606	ldrh	w0, [x19, 4]
12607	bl	FtlBbmMapBadBlock
12608	bl	FtlBbmTblFlush
12609	strh	wzr, [x19, 2]
12610	ldr	w0, [x19, 8]
12611	ldrh	w1, [x19, 4]
12612	add	w0, w0, 1
12613	str	w0, [x19, 8]
12614	ldrh	w0, [x20, #:lo12:.LANCHOR37]
12615	strh	w0, [x19, 4]
12616	strh	w1, [x20, #:lo12:.LANCHOR37]
12617	bl	FtlBbmTblFlush
12618	mov	w0, 0
12619	ldp	x19, x20, [sp, 16]
12620	ldp	x21, x22, [sp, 32]
12621	ldp	x23, x24, [sp, 48]
12622	ldp	x25, x26, [sp, 64]
12623	ldp	x27, x28, [sp, 80]
12624	ldp	x29, x30, [sp], 128
12625	ret
12626	.size	FtlMakeBbt, .-FtlMakeBbt
12627	.section	.text.ftl_low_format,"ax",@progbits
12628	.align	2
12629	.global	ftl_low_format
12630	.type	ftl_low_format, %function
12631ftl_low_format:
12632	stp	x29, x30, [sp, -80]!
12633	adrp	x0, .LANCHOR71
12634	add	x29, sp, 0
12635	stp	x23, x24, [sp, 48]
12636	adrp	x24, .LANCHOR4
12637	str	wzr, [x0, #:lo12:.LANCHOR71]
12638	ldrh	w0, [x24, #:lo12:.LANCHOR4]
12639	stp	x19, x20, [sp, 16]
12640	adrp	x20, .LANCHOR70
12641	stp	x21, x22, [sp, 32]
12642	stp	x25, x26, [sp, 64]
12643	str	wzr, [x20, #:lo12:.LANCHOR70]
12644	bl	FtlFreeSysBlkQueueInit
12645	bl	FtlLoadBbt
12646	cbz	w0, .L1721
12647	bl	FtlMakeBbt
12648.L1721:
12649	adrp	x23, .LANCHOR12
12650	adrp	x0, .LANCHOR118
12651	mov	w6, 23752
12652	ldrh	w1, [x23, #:lo12:.LANCHOR12]
12653	movk	w6, 0xa0f, lsl 16
12654	ldr	x4, [x0, #:lo12:.LANCHOR118]
12655	adrp	x0, .LANCHOR119
12656	lsl	w1, w1, 7
12657	ldr	x5, [x0, #:lo12:.LANCHOR119]
12658	mov	w0, 0
12659.L1722:
12660	cmp	w0, w1
12661	blt	.L1723
12662	adrp	x21, .LANCHOR5
12663	adrp	x22, .LANCHOR6
12664	add	x26, x22, :lo12:.LANCHOR6
12665	mov	w19, 0
12666	ldrh	w25, [x21, #:lo12:.LANCHOR5]
12667.L1724:
12668	ldrh	w0, [x26]
12669	cmp	w0, w25
12670	bhi	.L1725
12671	adrp	x25, .LANCHOR3
12672	sub	w1, w19, #2
12673	ldrh	w0, [x25, #:lo12:.LANCHOR3]
12674	cmp	w1, w0, lsl 1
12675	bgt	.L1726
12676.L1730:
12677	add	x26, x21, :lo12:.LANCHOR5
12678	mov	w19, 0
12679	mov	w24, 0
12680.L1727:
12681	ldrh	w0, [x26]
12682	cmp	w0, w24
12683	bhi	.L1731
12684	adrp	x0, .LANCHOR111
12685	ldrh	w1, [x22, #:lo12:.LANCHOR6]
12686	ldrh	w4, [x25, #:lo12:.LANCHOR3]
12687	adrp	x2, .LANCHOR78
12688	str	w1, [x0, #:lo12:.LANCHOR111]
12689	adrp	x0, .LANCHOR7
12690	adrp	x3, .LANCHOR61
12691	ldr	w1, [x0, #:lo12:.LANCHOR7]
12692	udiv	w5, w1, w4
12693	ubfx	x0, x5, 5, 16
12694	str	w5, [x3, #:lo12:.LANCHOR61]
12695	add	w6, w0, 36
12696	strh	w6, [x2, #:lo12:.LANCHOR78]
12697	mov	w6, 24
12698	mul	w6, w4, w6
12699	cmp	w19, w6
12700	ble	.L1732
12701	sub	w1, w1, w19
12702	udiv	w1, w1, w4
12703	str	w1, [x3, #:lo12:.LANCHOR61]
12704	lsr	w1, w1, 5
12705	add	w1, w1, 24
12706	strh	w1, [x2, #:lo12:.LANCHOR78]
12707.L1732:
12708	adrp	x1, .LANCHOR15
12709	ldrh	w1, [x1, #:lo12:.LANCHOR15]
12710	cbz	w1, .L1734
12711	ldrh	w6, [x2, #:lo12:.LANCHOR78]
12712	add	w6, w6, w1, lsr 1
12713	strh	w6, [x2, #:lo12:.LANCHOR78]
12714	mul	w6, w1, w4
12715	cmp	w19, w6
12716	bge	.L1734
12717	add	w1, w1, 32
12718	str	w5, [x3, #:lo12:.LANCHOR61]
12719	add	w1, w0, w1
12720	strh	w1, [x2, #:lo12:.LANCHOR78]
12721.L1734:
12722	ldrh	w1, [x2, #:lo12:.LANCHOR78]
12723	adrp	x25, .LANCHOR152
12724	ldr	w0, [x3, #:lo12:.LANCHOR61]
12725	adrp	x24, .LANCHOR42
12726	sub	w0, w0, w1
12727	adrp	x1, .LANCHOR19
12728	ldrh	w1, [x1, #:lo12:.LANCHOR19]
12729	mul	w0, w0, w4
12730	str	w0, [x25, #:lo12:.LANCHOR152]
12731	mul	w0, w1, w0
12732	ldrh	w1, [x23, #:lo12:.LANCHOR12]
12733	str	w0, [x3, #:lo12:.LANCHOR61]
12734	mov	w23, -1
12735	mul	w0, w1, w0
12736	adrp	x1, .LANCHOR34
12737	str	w0, [x1, #:lo12:.LANCHOR34]
12738	bl	FtlBbmTblFlush
12739	ldr	x0, [x24, #:lo12:.LANCHOR42]
12740	mov	w1, 0
12741	ldrh	w2, [x22, #:lo12:.LANCHOR6]
12742	lsl	w2, w2, 1
12743	bl	ftl_memset
12744	adrp	x0, .LANCHOR59
12745	adrp	x1, .LANCHOR80
12746	ldrh	w2, [x21, #:lo12:.LANCHOR5]
12747	str	wzr, [x0, #:lo12:.LANCHOR59]
12748	add	x0, x1, :lo12:.LANCHOR80
12749	strh	w23, [x1, #:lo12:.LANCHOR80]
12750	mov	w1, 255
12751	lsr	w2, w2, 3
12752	strh	wzr, [x0, 2]
12753	strb	wzr, [x0, 6]
12754	strb	wzr, [x0, 8]
12755	adrp	x0, .LANCHOR51
12756	add	x19, x0, :lo12:.LANCHOR51
12757	strh	wzr, [x0, #:lo12:.LANCHOR51]
12758	mov	w0, 1
12759	strb	w0, [x19, 8]
12760	adrp	x0, .LANCHOR1
12761	strh	wzr, [x19, 2]
12762	ldr	x0, [x0, #:lo12:.LANCHOR1]
12763	strb	wzr, [x19, 6]
12764	bl	ftl_memset
12765.L1736:
12766	mov	x0, x19
12767	bl	make_superblock
12768	ldrb	w1, [x19, 7]
12769	ldrh	w0, [x19]
12770	cbnz	w1, .L1737
12771	ldr	x1, [x24, #:lo12:.LANCHOR42]
12772	ubfiz	x0, x0, 1, 16
12773	strh	w23, [x1, x0]
12774	ldrh	w0, [x19]
12775	add	w0, w0, 1
12776	strh	w0, [x19]
12777	b	.L1736
12778.L1723:
12779	ubfiz	x3, x0, 2, 16
12780	mvn	w2, w0
12781	orr	w2, w0, w2, lsl 16
12782	add	w0, w0, 1
12783	and	w0, w0, 65535
12784	str	w2, [x4, x3]
12785	str	w6, [x5, x3]
12786	b	.L1722
12787.L1725:
12788	mov	w0, w25
12789	mov	w1, 1
12790	add	w25, w25, 1
12791	bl	FtlLowFormatEraseBlock
12792	add	w19, w19, w0
12793	and	w25, w25, 65535
12794	and	w19, w19, 65535
12795	b	.L1724
12796.L1726:
12797	udiv	w0, w19, w0
12798	adrp	x1, .LANCHOR31
12799	ldr	w19, [x1, #:lo12:.LANCHOR31]
12800	add	w0, w0, w19
12801	bl	FtlSysBlkNumInit
12802	ldrh	w0, [x24, #:lo12:.LANCHOR4]
12803	add	x24, x22, :lo12:.LANCHOR6
12804	bl	FtlFreeSysBlkQueueInit
12805	ldrh	w19, [x21, #:lo12:.LANCHOR5]
12806.L1728:
12807	ldrh	w0, [x24]
12808	cmp	w0, w19
12809	bls	.L1730
12810	mov	w0, w19
12811	add	w19, w19, 1
12812	mov	w1, 1
12813	and	w19, w19, 65535
12814	bl	FtlLowFormatEraseBlock
12815	b	.L1728
12816.L1731:
12817	mov	w0, w24
12818	mov	w1, 0
12819	add	w24, w24, 1
12820	bl	FtlLowFormatEraseBlock
12821	add	w19, w19, w0
12822	and	w24, w24, 65535
12823	and	w19, w19, 65535
12824	b	.L1727
12825.L1737:
12826	ldr	w1, [x20, #:lo12:.LANCHOR70]
12827	ubfiz	x0, x0, 1, 16
12828	str	w1, [x19, 12]
12829	mov	w23, -1
12830	add	w1, w1, 1
12831	str	w1, [x20, #:lo12:.LANCHOR70]
12832	ldr	x1, [x24, #:lo12:.LANCHOR42]
12833	ldrh	w2, [x19, 4]
12834	strh	w2, [x1, x0]
12835	adrp	x2, .LANCHOR52
12836	add	x0, x2, :lo12:.LANCHOR52
12837	ldrh	w1, [x19]
12838	mov	x19, x0
12839	add	w1, w1, 1
12840	strh	wzr, [x0, 2]
12841	strh	w1, [x2, #:lo12:.LANCHOR52]
12842	mov	w1, 1
12843	strb	wzr, [x0, 6]
12844	strb	w1, [x0, 8]
12845.L1738:
12846	mov	x0, x19
12847	bl	make_superblock
12848	ldrb	w1, [x19, 7]
12849	ldrh	w0, [x19]
12850	cbnz	w1, .L1739
12851	ldr	x1, [x24, #:lo12:.LANCHOR42]
12852	ubfiz	x0, x0, 1, 16
12853	strh	w23, [x1, x0]
12854	ldrh	w0, [x19]
12855	add	w0, w0, 1
12856	strh	w0, [x19]
12857	b	.L1738
12858.L1739:
12859	ldr	w1, [x20, #:lo12:.LANCHOR70]
12860	ubfiz	x0, x0, 1, 16
12861	str	w1, [x19, 12]
12862	add	w1, w1, 1
12863	str	w1, [x20, #:lo12:.LANCHOR70]
12864	ldr	x1, [x24, #:lo12:.LANCHOR42]
12865	ldrh	w2, [x19, 4]
12866	mov	w19, -1
12867	strh	w2, [x1, x0]
12868	adrp	x0, .LANCHOR53
12869	strh	w19, [x0, #:lo12:.LANCHOR53]
12870	bl	FtlFreeSysBlkQueueOut
12871	adrp	x2, .LANCHOR79
12872	add	x1, x2, :lo12:.LANCHOR79
12873	strh	w0, [x2, #:lo12:.LANCHOR79]
12874	ldr	w0, [x25, #:lo12:.LANCHOR152]
12875	strh	w0, [x1, 6]
12876	ldr	w0, [x20, #:lo12:.LANCHOR70]
12877	str	w0, [x1, 8]
12878	add	w0, w0, 1
12879	strh	wzr, [x1, 2]
12880	strh	w19, [x1, 4]
12881	str	w0, [x20, #:lo12:.LANCHOR70]
12882	bl	FtlVpcTblFlush
12883	bl	FtlSysBlkInit
12884	cbnz	w0, .L1740
12885	adrp	x0, .LANCHOR86
12886	mov	w1, 1
12887	str	w1, [x0, #:lo12:.LANCHOR86]
12888.L1740:
12889	mov	w0, 0
12890	ldp	x19, x20, [sp, 16]
12891	ldp	x21, x22, [sp, 32]
12892	ldp	x23, x24, [sp, 48]
12893	ldp	x25, x26, [sp, 64]
12894	ldp	x29, x30, [sp], 80
12895	ret
12896	.size	ftl_low_format, .-ftl_low_format
12897	.section	.text.ftl_memcmp,"ax",@progbits
12898	.align	2
12899	.global	ftl_memcmp
12900	.type	ftl_memcmp, %function
12901ftl_memcmp:
12902	uxtw	x2, w2
12903	b	memcmp
12904	.size	ftl_memcmp, .-ftl_memcmp
12905	.global	g_nand_ops
12906	.global	g_nand_phy_info
12907	.global	gc_ink_free_return_value
12908	.global	check_vpc_table
12909	.global	FtlUpdateVaildLpnCount
12910	.global	g_ect_tbl_power_up_flush
12911	.global	power_up_flag
12912	.global	gFtlInitStatus
12913	.global	DeviceCapacity
12914	.global	g_power_lost_recovery_flag
12915	.global	c_mlc_erase_count_value
12916	.global	g_recovery_ppa_tbl
12917	.global	g_recovery_page_min_ver
12918	.global	g_recovery_page_num
12919	.global	sftl_nand_check_spare_buf
12920	.global	sftl_temp_buf
12921	.global	sftl_nand_check_buf
12922	.global	g_cur_erase_blk
12923	.global	g_gc_skip_write_count
12924	.global	g_gc_head_data_block_count
12925	.global	g_gc_head_data_block
12926	.global	g_ftl_nand_free_count
12927	.global	g_in_swl_replace
12928	.global	g_in_gc_progress
12929	.global	g_max_erase_count
12930	.global	g_totle_sys_slc_erase_count
12931	.global	g_totle_slc_erase_count
12932	.global	g_min_erase_count
12933	.global	g_totle_avg_erase_count
12934	.global	g_totle_mlc_erase_count
12935	.global	g_totle_l2p_write_count
12936	.global	g_totle_cache_write_count
12937	.global	g_tmp_data_superblock_id
12938	.global	g_totle_read_page_count
12939	.global	g_totle_discard_page_count
12940	.global	g_totle_read_sector
12941	.global	g_totle_write_sector
12942	.global	g_totle_write_page_count
12943	.global	g_totle_gc_page_count
12944	.global	g_gc_blk_index
12945	.global	g_gc_merge_free_blk_threshold
12946	.global	g_gc_free_blk_threshold
12947	.global	g_gc_bad_block_temp_tbl
12948	.global	g_gc_bad_block_gc_index
12949	.global	g_gc_bad_block_temp_num
12950	.global	g_gc_next_blk_1
12951	.global	g_gc_next_blk
12952	.global	g_gc_cur_blk_max_valid_pages
12953	.global	g_gc_cur_blk_valid_pages
12954	.global	g_gc_page_offset
12955	.global	g_gc_blk_num
12956	.global	p_gc_blk_tbl
12957	.global	p_gc_page_info
12958	.global	g_sys_ext_data
12959	.global	g_sys_save_data
12960	.global	gp_last_act_superblock
12961	.global	g_gc_superblock
12962	.global	g_gc_temp_superblock
12963	.global	g_buffer_superblock
12964	.global	g_active_superblock
12965	.global	g_num_data_superblocks
12966	.global	g_num_free_superblocks
12967	.global	p_data_block_list_tail
12968	.global	p_data_block_list_head
12969	.global	p_free_data_block_list_head
12970	.global	p_data_block_list_table
12971	.global	g_l2p_last_update_region_id
12972	.global	p_l2p_map_buf
12973	.global	p_l2p_ram_map
12974	.global	g_totle_vendor_block
12975	.global	p_vendor_region_ppn_table
12976	.global	p_vendor_block_ver_table
12977	.global	p_vendor_block_valid_page_count
12978	.global	p_vendor_block_table
12979	.global	g_totle_map_block
12980	.global	p_map_region_ppn_table
12981	.global	p_map_block_ver_table
12982	.global	p_map_block_valid_page_count
12983	.global	p_map_block_table
12984	.global	p_blk_mode_table
12985	.global	p_valid_page_count_check_table
12986	.global	p_valid_page_count_table
12987	.global	g_totle_swl_count
12988	.global	p_swl_mul_table
12989	.global	p_erase_count_table
12990	.global	g_ect_tbl_info_size
12991	.global	gp_ect_tbl_info
12992	.global	g_gc_num_req
12993	.global	c_gc_page_buf_num
12994	.global	gp_gc_page_buf_info
12995	.global	p_gc_data_buf
12996	.global	p_gc_spare_buf
12997	.global	p_io_spare_buf
12998	.global	p_io_data_buf_1
12999	.global	p_io_data_buf_0
13000	.global	p_sys_spare_buf
13001	.global	p_vendor_data_buf
13002	.global	p_sys_data_buf_1
13003	.global	p_sys_data_buf
13004	.global	p_plane_order_table
13005	.global	req_gc_dst
13006	.global	req_gc
13007	.global	req_erase
13008	.global	req_prgm
13009	.global	req_read
13010	.global	req_sys
13011	.global	gVendorBlkInfo
13012	.global	gL2pMapInfo
13013	.global	gSysFreeQueue
13014	.global	gSysInfo
13015	.global	gBbtInfo
13016	.global	g_MaxLbn
13017	.global	g_VaildLpn
13018	.global	g_MaxLpn
13019	.global	g_MaxLbaSector
13020	.global	g_GlobalDataVersion
13021	.global	g_GlobalSysVersion
13022	.global	ftl_gc_temp_power_lost_recovery_flag
13023	.global	c_ftl_nand_max_data_blks
13024	.global	c_ftl_nand_data_op_blks_per_plane
13025	.global	c_ftl_nand_data_blks_per_plane
13026	.global	c_ftl_nand_max_sys_blks
13027	.global	c_ftl_nand_init_sys_blks_per_plane
13028	.global	c_ftl_nand_sys_blks_per_plane
13029	.global	c_ftl_vendor_part_size
13030	.global	c_ftl_nand_max_vendor_blks
13031	.global	c_ftl_nand_max_map_blks
13032	.global	c_ftl_nand_map_blks_per_plane
13033	.global	c_ftl_nand_vendor_region_num
13034	.global	c_ftl_nand_l2pmap_ram_region_num
13035	.global	c_ftl_nand_map_region_num
13036	.global	c_ftl_nand_totle_phy_blks
13037	.global	c_ftl_nand_reserved_blks
13038	.global	c_ftl_nand_byte_pre_oob
13039	.global	c_ftl_nand_byte_pre_page
13040	.global	c_ftl_nand_sec_pre_page_shift
13041	.global	c_ftl_nand_sec_pre_page
13042	.global	c_ftl_nand_page_pre_super_blk
13043	.global	c_ftl_nand_page_pre_slc_blk
13044	.global	c_ftl_nand_page_pre_blk
13045	.global	c_ftl_nand_bbm_buf_size
13046	.global	c_ftl_nand_ext_blk_pre_plane
13047	.global	c_ftl_nand_blk_pre_plane
13048	.global	c_ftl_nand_planes_num
13049	.global	c_ftl_nand_blks_per_die_shift
13050	.global	c_ftl_nand_blks_per_die
13051	.global	c_ftl_nand_planes_per_die
13052	.global	c_ftl_nand_die_num
13053	.global	c_ftl_nand_type
13054	.section	.bss.DeviceCapacity,"aw",@nobits
13055	.align	2
13056	.set	.LANCHOR26,. + 0
13057	.type	DeviceCapacity, %object
13058	.size	DeviceCapacity, 4
13059DeviceCapacity:
13060	.zero	4
13061	.section	.bss.FtlUpdateVaildLpnCount,"aw",@nobits
13062	.align	1
13063	.set	.LANCHOR58,. + 0
13064	.type	FtlUpdateVaildLpnCount, %object
13065	.size	FtlUpdateVaildLpnCount, 2
13066FtlUpdateVaildLpnCount:
13067	.zero	2
13068	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",@nobits
13069	.align	1
13070	.set	.LANCHOR137,. + 0
13071	.type	c_ftl_nand_bbm_buf_size, %object
13072	.size	c_ftl_nand_bbm_buf_size, 2
13073c_ftl_nand_bbm_buf_size:
13074	.zero	2
13075	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",@nobits
13076	.align	1
13077	.set	.LANCHOR6,. + 0
13078	.type	c_ftl_nand_blk_pre_plane, %object
13079	.size	c_ftl_nand_blk_pre_plane, 2
13080c_ftl_nand_blk_pre_plane:
13081	.zero	2
13082	.section	.bss.c_ftl_nand_blks_per_die,"aw",@nobits
13083	.align	1
13084	.set	.LANCHOR17,. + 0
13085	.type	c_ftl_nand_blks_per_die, %object
13086	.size	c_ftl_nand_blks_per_die, 2
13087c_ftl_nand_blks_per_die:
13088	.zero	2
13089	.section	.bss.c_ftl_nand_blks_per_die_shift,"aw",@nobits
13090	.align	1
13091	.set	.LANCHOR18,. + 0
13092	.type	c_ftl_nand_blks_per_die_shift, %object
13093	.size	c_ftl_nand_blks_per_die_shift, 2
13094c_ftl_nand_blks_per_die_shift:
13095	.zero	2
13096	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",@nobits
13097	.align	1
13098	.set	.LANCHOR24,. + 0
13099	.type	c_ftl_nand_byte_pre_oob, %object
13100	.size	c_ftl_nand_byte_pre_oob, 2
13101c_ftl_nand_byte_pre_oob:
13102	.zero	2
13103	.section	.bss.c_ftl_nand_byte_pre_page,"aw",@nobits
13104	.align	1
13105	.set	.LANCHOR23,. + 0
13106	.type	c_ftl_nand_byte_pre_page, %object
13107	.size	c_ftl_nand_byte_pre_page, 2
13108c_ftl_nand_byte_pre_page:
13109	.zero	2
13110	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits
13111	.align	1
13112	.set	.LANCHOR5,. + 0
13113	.type	c_ftl_nand_data_blks_per_plane, %object
13114	.size	c_ftl_nand_data_blks_per_plane, 2
13115c_ftl_nand_data_blks_per_plane:
13116	.zero	2
13117	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits
13118	.align	1
13119	.set	.LANCHOR78,. + 0
13120	.type	c_ftl_nand_data_op_blks_per_plane, %object
13121	.size	c_ftl_nand_data_op_blks_per_plane, 2
13122c_ftl_nand_data_op_blks_per_plane:
13123	.zero	2
13124	.section	.bss.c_ftl_nand_die_num,"aw",@nobits
13125	.align	1
13126	.set	.LANCHOR10,. + 0
13127	.type	c_ftl_nand_die_num, %object
13128	.size	c_ftl_nand_die_num, 2
13129c_ftl_nand_die_num:
13130	.zero	2
13131	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits
13132	.align	1
13133	.set	.LANCHOR15,. + 0
13134	.type	c_ftl_nand_ext_blk_pre_plane, %object
13135	.size	c_ftl_nand_ext_blk_pre_plane, 2
13136c_ftl_nand_ext_blk_pre_plane:
13137	.zero	2
13138	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits
13139	.align	2
13140	.set	.LANCHOR31,. + 0
13141	.type	c_ftl_nand_init_sys_blks_per_plane, %object
13142	.size	c_ftl_nand_init_sys_blks_per_plane, 4
13143c_ftl_nand_init_sys_blks_per_plane:
13144	.zero	4
13145	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits
13146	.align	1
13147	.set	.LANCHOR33,. + 0
13148	.type	c_ftl_nand_l2pmap_ram_region_num, %object
13149	.size	c_ftl_nand_l2pmap_ram_region_num, 2
13150c_ftl_nand_l2pmap_ram_region_num:
13151	.zero	2
13152	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits
13153	.align	1
13154	.set	.LANCHOR29,. + 0
13155	.type	c_ftl_nand_map_blks_per_plane, %object
13156	.size	c_ftl_nand_map_blks_per_plane, 2
13157c_ftl_nand_map_blks_per_plane:
13158	.zero	2
13159	.section	.bss.c_ftl_nand_map_region_num,"aw",@nobits
13160	.align	1
13161	.set	.LANCHOR32,. + 0
13162	.type	c_ftl_nand_map_region_num, %object
13163	.size	c_ftl_nand_map_region_num, 2
13164c_ftl_nand_map_region_num:
13165	.zero	2
13166	.section	.bss.c_ftl_nand_max_data_blks,"aw",@nobits
13167	.align	2
13168	.set	.LANCHOR7,. + 0
13169	.type	c_ftl_nand_max_data_blks, %object
13170	.size	c_ftl_nand_max_data_blks, 4
13171c_ftl_nand_max_data_blks:
13172	.zero	4
13173	.section	.bss.c_ftl_nand_max_map_blks,"aw",@nobits
13174	.align	2
13175	.set	.LANCHOR30,. + 0
13176	.type	c_ftl_nand_max_map_blks, %object
13177	.size	c_ftl_nand_max_map_blks, 4
13178c_ftl_nand_max_map_blks:
13179	.zero	4
13180	.section	.bss.c_ftl_nand_max_sys_blks,"aw",@nobits
13181	.align	2
13182	.set	.LANCHOR4,. + 0
13183	.type	c_ftl_nand_max_sys_blks, %object
13184	.size	c_ftl_nand_max_sys_blks, 4
13185c_ftl_nand_max_sys_blks:
13186	.zero	4
13187	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",@nobits
13188	.align	1
13189	.set	.LANCHOR27,. + 0
13190	.type	c_ftl_nand_max_vendor_blks, %object
13191	.size	c_ftl_nand_max_vendor_blks, 2
13192c_ftl_nand_max_vendor_blks:
13193	.zero	2
13194	.section	.bss.c_ftl_nand_page_pre_blk,"aw",@nobits
13195	.align	1
13196	.set	.LANCHOR19,. + 0
13197	.type	c_ftl_nand_page_pre_blk, %object
13198	.size	c_ftl_nand_page_pre_blk, 2
13199c_ftl_nand_page_pre_blk:
13200	.zero	2
13201	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits
13202	.align	1
13203	.set	.LANCHOR20,. + 0
13204	.type	c_ftl_nand_page_pre_slc_blk, %object
13205	.size	c_ftl_nand_page_pre_slc_blk, 2
13206c_ftl_nand_page_pre_slc_blk:
13207	.zero	2
13208	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits
13209	.align	1
13210	.set	.LANCHOR21,. + 0
13211	.type	c_ftl_nand_page_pre_super_blk, %object
13212	.size	c_ftl_nand_page_pre_super_blk, 2
13213c_ftl_nand_page_pre_super_blk:
13214	.zero	2
13215	.section	.bss.c_ftl_nand_planes_num,"aw",@nobits
13216	.align	1
13217	.set	.LANCHOR3,. + 0
13218	.type	c_ftl_nand_planes_num, %object
13219	.size	c_ftl_nand_planes_num, 2
13220c_ftl_nand_planes_num:
13221	.zero	2
13222	.section	.bss.c_ftl_nand_planes_per_die,"aw",@nobits
13223	.align	1
13224	.set	.LANCHOR11,. + 0
13225	.type	c_ftl_nand_planes_per_die, %object
13226	.size	c_ftl_nand_planes_per_die, 2
13227c_ftl_nand_planes_per_die:
13228	.zero	2
13229	.section	.bss.c_ftl_nand_reserved_blks,"aw",@nobits
13230	.align	1
13231	.set	.LANCHOR25,. + 0
13232	.type	c_ftl_nand_reserved_blks, %object
13233	.size	c_ftl_nand_reserved_blks, 2
13234c_ftl_nand_reserved_blks:
13235	.zero	2
13236	.section	.bss.c_ftl_nand_sec_pre_page,"aw",@nobits
13237	.align	1
13238	.set	.LANCHOR12,. + 0
13239	.type	c_ftl_nand_sec_pre_page, %object
13240	.size	c_ftl_nand_sec_pre_page, 2
13241c_ftl_nand_sec_pre_page:
13242	.zero	2
13243	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits
13244	.align	1
13245	.set	.LANCHOR22,. + 0
13246	.type	c_ftl_nand_sec_pre_page_shift, %object
13247	.size	c_ftl_nand_sec_pre_page_shift, 2
13248c_ftl_nand_sec_pre_page_shift:
13249	.zero	2
13250	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits
13251	.align	2
13252	.set	.LANCHOR2,. + 0
13253	.type	c_ftl_nand_sys_blks_per_plane, %object
13254	.size	c_ftl_nand_sys_blks_per_plane, 4
13255c_ftl_nand_sys_blks_per_plane:
13256	.zero	4
13257	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",@nobits
13258	.align	2
13259	.set	.LANCHOR8,. + 0
13260	.type	c_ftl_nand_totle_phy_blks, %object
13261	.size	c_ftl_nand_totle_phy_blks, 4
13262c_ftl_nand_totle_phy_blks:
13263	.zero	4
13264	.section	.bss.c_ftl_nand_type,"aw",@nobits
13265	.align	1
13266	.set	.LANCHOR9,. + 0
13267	.type	c_ftl_nand_type, %object
13268	.size	c_ftl_nand_type, 2
13269c_ftl_nand_type:
13270	.zero	2
13271	.section	.bss.c_ftl_nand_vendor_region_num,"aw",@nobits
13272	.align	1
13273	.set	.LANCHOR28,. + 0
13274	.type	c_ftl_nand_vendor_region_num, %object
13275	.size	c_ftl_nand_vendor_region_num, 2
13276c_ftl_nand_vendor_region_num:
13277	.zero	2
13278	.section	.bss.c_ftl_vendor_part_size,"aw",@nobits
13279	.align	1
13280	.set	.LANCHOR16,. + 0
13281	.type	c_ftl_vendor_part_size, %object
13282	.size	c_ftl_vendor_part_size, 2
13283c_ftl_vendor_part_size:
13284	.zero	2
13285	.section	.bss.c_gc_page_buf_num,"aw",@nobits
13286	.align	2
13287	.set	.LANCHOR94,. + 0
13288	.type	c_gc_page_buf_num, %object
13289	.size	c_gc_page_buf_num, 4
13290c_gc_page_buf_num:
13291	.zero	4
13292	.section	.bss.c_mlc_erase_count_value,"aw",@nobits
13293	.align	1
13294	.set	.LANCHOR14,. + 0
13295	.type	c_mlc_erase_count_value, %object
13296	.size	c_mlc_erase_count_value, 2
13297c_mlc_erase_count_value:
13298	.zero	2
13299	.section	.bss.check_vpc_table,"aw",@nobits
13300	.align	3
13301	.type	check_vpc_table, %object
13302	.size	check_vpc_table, 16384
13303check_vpc_table:
13304	.zero	16384
13305	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits
13306	.align	2
13307	.set	.LANCHOR144,. + 0
13308	.type	ftl_gc_temp_power_lost_recovery_flag, %object
13309	.size	ftl_gc_temp_power_lost_recovery_flag, 4
13310ftl_gc_temp_power_lost_recovery_flag:
13311	.zero	4
13312	.section	.bss.gBbtInfo,"aw",@nobits
13313	.align	3
13314	.set	.LANCHOR37,. + 0
13315	.type	gBbtInfo, %object
13316	.size	gBbtInfo, 96
13317gBbtInfo:
13318	.zero	96
13319	.section	.bss.gL2pMapInfo,"aw",@nobits
13320	.align	3
13321	.set	.LANCHOR140,. + 0
13322	.type	gL2pMapInfo, %object
13323	.size	gL2pMapInfo, 64
13324gL2pMapInfo:
13325	.zero	64
13326	.section	.bss.gSysFreeQueue,"aw",@nobits
13327	.align	3
13328	.set	.LANCHOR38,. + 0
13329	.type	gSysFreeQueue, %object
13330	.size	gSysFreeQueue, 2056
13331gSysFreeQueue:
13332	.zero	2056
13333	.section	.bss.gSysInfo,"aw",@nobits
13334	.align	3
13335	.set	.LANCHOR79,. + 0
13336	.type	gSysInfo, %object
13337	.size	gSysInfo, 12
13338gSysInfo:
13339	.zero	12
13340	.section	.bss.gVendorBlkInfo,"aw",@nobits
13341	.align	3
13342	.set	.LANCHOR158,. + 0
13343	.type	gVendorBlkInfo, %object
13344	.size	gVendorBlkInfo, 64
13345gVendorBlkInfo:
13346	.zero	64
13347	.section	.bss.g_GlobalDataVersion,"aw",@nobits
13348	.align	2
13349	.set	.LANCHOR71,. + 0
13350	.type	g_GlobalDataVersion, %object
13351	.size	g_GlobalDataVersion, 4
13352g_GlobalDataVersion:
13353	.zero	4
13354	.section	.bss.g_GlobalSysVersion,"aw",@nobits
13355	.align	2
13356	.set	.LANCHOR70,. + 0
13357	.type	g_GlobalSysVersion, %object
13358	.size	g_GlobalSysVersion, 4
13359g_GlobalSysVersion:
13360	.zero	4
13361	.section	.bss.g_MaxLbaSector,"aw",@nobits
13362	.align	2
13363	.set	.LANCHOR34,. + 0
13364	.type	g_MaxLbaSector, %object
13365	.size	g_MaxLbaSector, 4
13366g_MaxLbaSector:
13367	.zero	4
13368	.section	.bss.g_MaxLbn,"aw",@nobits
13369	.align	2
13370	.set	.LANCHOR152,. + 0
13371	.type	g_MaxLbn, %object
13372	.size	g_MaxLbn, 4
13373g_MaxLbn:
13374	.zero	4
13375	.section	.bss.g_MaxLpn,"aw",@nobits
13376	.align	2
13377	.set	.LANCHOR61,. + 0
13378	.type	g_MaxLpn, %object
13379	.size	g_MaxLpn, 4
13380g_MaxLpn:
13381	.zero	4
13382	.section	.bss.g_VaildLpn,"aw",@nobits
13383	.align	2
13384	.set	.LANCHOR59,. + 0
13385	.type	g_VaildLpn, %object
13386	.size	g_VaildLpn, 4
13387g_VaildLpn:
13388	.zero	4
13389	.section	.bss.g_active_superblock,"aw",@nobits
13390	.align	3
13391	.set	.LANCHOR51,. + 0
13392	.type	g_active_superblock, %object
13393	.size	g_active_superblock, 48
13394g_active_superblock:
13395	.zero	48
13396	.section	.bss.g_buffer_superblock,"aw",@nobits
13397	.align	3
13398	.set	.LANCHOR52,. + 0
13399	.type	g_buffer_superblock, %object
13400	.size	g_buffer_superblock, 48
13401g_buffer_superblock:
13402	.zero	48
13403	.section	.bss.g_cur_erase_blk,"aw",@nobits
13404	.align	2
13405	.set	.LANCHOR111,. + 0
13406	.type	g_cur_erase_blk, %object
13407	.size	g_cur_erase_blk, 4
13408g_cur_erase_blk:
13409	.zero	4
13410	.section	.bss.g_ect_tbl_info_size,"aw",@nobits
13411	.align	1
13412	.set	.LANCHOR125,. + 0
13413	.type	g_ect_tbl_info_size, %object
13414	.size	g_ect_tbl_info_size, 2
13415g_ect_tbl_info_size:
13416	.zero	2
13417	.section	.bss.g_ect_tbl_power_up_flush,"aw",@nobits
13418	.align	1
13419	.set	.LANCHOR170,. + 0
13420	.type	g_ect_tbl_power_up_flush, %object
13421	.size	g_ect_tbl_power_up_flush, 2
13422g_ect_tbl_power_up_flush:
13423	.zero	2
13424	.section	.bss.g_ftl_nand_free_count,"aw",@nobits
13425	.align	2
13426	.set	.LANCHOR181,. + 0
13427	.type	g_ftl_nand_free_count, %object
13428	.size	g_ftl_nand_free_count, 4
13429g_ftl_nand_free_count:
13430	.zero	4
13431	.section	.bss.g_gc_bad_block_gc_index,"aw",@nobits
13432	.align	1
13433	.set	.LANCHOR103,. + 0
13434	.type	g_gc_bad_block_gc_index, %object
13435	.size	g_gc_bad_block_gc_index, 2
13436g_gc_bad_block_gc_index:
13437	.zero	2
13438	.section	.bss.g_gc_bad_block_temp_num,"aw",@nobits
13439	.align	1
13440	.set	.LANCHOR101,. + 0
13441	.type	g_gc_bad_block_temp_num, %object
13442	.size	g_gc_bad_block_temp_num, 2
13443g_gc_bad_block_temp_num:
13444	.zero	2
13445	.section	.bss.g_gc_bad_block_temp_tbl,"aw",@nobits
13446	.align	3
13447	.set	.LANCHOR102,. + 0
13448	.type	g_gc_bad_block_temp_tbl, %object
13449	.size	g_gc_bad_block_temp_tbl, 34
13450g_gc_bad_block_temp_tbl:
13451	.zero	34
13452	.section	.bss.g_gc_blk_index,"aw",@nobits
13453	.align	1
13454	.set	.LANCHOR85,. + 0
13455	.type	g_gc_blk_index, %object
13456	.size	g_gc_blk_index, 2
13457g_gc_blk_index:
13458	.zero	2
13459	.section	.bss.g_gc_blk_num,"aw",@nobits
13460	.align	1
13461	.set	.LANCHOR95,. + 0
13462	.type	g_gc_blk_num, %object
13463	.size	g_gc_blk_num, 2
13464g_gc_blk_num:
13465	.zero	2
13466	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits
13467	.align	1
13468	.set	.LANCHOR179,. + 0
13469	.type	g_gc_cur_blk_max_valid_pages, %object
13470	.size	g_gc_cur_blk_max_valid_pages, 2
13471g_gc_cur_blk_max_valid_pages:
13472	.zero	2
13473	.section	.bss.g_gc_cur_blk_valid_pages,"aw",@nobits
13474	.align	1
13475	.set	.LANCHOR178,. + 0
13476	.type	g_gc_cur_blk_valid_pages, %object
13477	.size	g_gc_cur_blk_valid_pages, 2
13478g_gc_cur_blk_valid_pages:
13479	.zero	2
13480	.section	.bss.g_gc_free_blk_threshold,"aw",@nobits
13481	.align	1
13482	.set	.LANCHOR82,. + 0
13483	.type	g_gc_free_blk_threshold, %object
13484	.size	g_gc_free_blk_threshold, 2
13485g_gc_free_blk_threshold:
13486	.zero	2
13487	.section	.bss.g_gc_head_data_block,"aw",@nobits
13488	.align	2
13489	.set	.LANCHOR109,. + 0
13490	.type	g_gc_head_data_block, %object
13491	.size	g_gc_head_data_block, 4
13492g_gc_head_data_block:
13493	.zero	4
13494	.section	.bss.g_gc_head_data_block_count,"aw",@nobits
13495	.align	2
13496	.set	.LANCHOR110,. + 0
13497	.type	g_gc_head_data_block_count, %object
13498	.size	g_gc_head_data_block_count, 4
13499g_gc_head_data_block_count:
13500	.zero	4
13501	.section	.bss.g_gc_merge_free_blk_threshold,"aw",@nobits
13502	.align	1
13503	.set	.LANCHOR83,. + 0
13504	.type	g_gc_merge_free_blk_threshold, %object
13505	.size	g_gc_merge_free_blk_threshold, 2
13506g_gc_merge_free_blk_threshold:
13507	.zero	2
13508	.section	.bss.g_gc_next_blk,"aw",@nobits
13509	.align	1
13510	.set	.LANCHOR99,. + 0
13511	.type	g_gc_next_blk, %object
13512	.size	g_gc_next_blk, 2
13513g_gc_next_blk:
13514	.zero	2
13515	.section	.bss.g_gc_next_blk_1,"aw",@nobits
13516	.align	1
13517	.set	.LANCHOR100,. + 0
13518	.type	g_gc_next_blk_1, %object
13519	.size	g_gc_next_blk_1, 2
13520g_gc_next_blk_1:
13521	.zero	2
13522	.section	.bss.g_gc_num_req,"aw",@nobits
13523	.align	2
13524	.set	.LANCHOR89,. + 0
13525	.type	g_gc_num_req, %object
13526	.size	g_gc_num_req, 4
13527g_gc_num_req:
13528	.zero	4
13529	.section	.bss.g_gc_page_offset,"aw",@nobits
13530	.align	1
13531	.set	.LANCHOR97,. + 0
13532	.type	g_gc_page_offset, %object
13533	.size	g_gc_page_offset, 2
13534g_gc_page_offset:
13535	.zero	2
13536	.section	.bss.g_gc_skip_write_count,"aw",@nobits
13537	.align	2
13538	.set	.LANCHOR84,. + 0
13539	.type	g_gc_skip_write_count, %object
13540	.size	g_gc_skip_write_count, 4
13541g_gc_skip_write_count:
13542	.zero	4
13543	.section	.bss.g_gc_superblock,"aw",@nobits
13544	.align	3
13545	.set	.LANCHOR80,. + 0
13546	.type	g_gc_superblock, %object
13547	.size	g_gc_superblock, 48
13548g_gc_superblock:
13549	.zero	48
13550	.section	.bss.g_gc_temp_superblock,"aw",@nobits
13551	.align	3
13552	.set	.LANCHOR53,. + 0
13553	.type	g_gc_temp_superblock, %object
13554	.size	g_gc_temp_superblock, 48
13555g_gc_temp_superblock:
13556	.zero	48
13557	.section	.bss.g_in_gc_progress,"aw",@nobits
13558	.align	2
13559	.set	.LANCHOR108,. + 0
13560	.type	g_in_gc_progress, %object
13561	.size	g_in_gc_progress, 4
13562g_in_gc_progress:
13563	.zero	4
13564	.section	.bss.g_in_swl_replace,"aw",@nobits
13565	.align	2
13566	.set	.LANCHOR87,. + 0
13567	.type	g_in_swl_replace, %object
13568	.size	g_in_swl_replace, 4
13569g_in_swl_replace:
13570	.zero	4
13571	.section	.bss.g_l2p_last_update_region_id,"aw",@nobits
13572	.align	1
13573	.set	.LANCHOR56,. + 0
13574	.type	g_l2p_last_update_region_id, %object
13575	.size	g_l2p_last_update_region_id, 2
13576g_l2p_last_update_region_id:
13577	.zero	2
13578	.section	.bss.g_max_erase_count,"aw",@nobits
13579	.align	2
13580	.set	.LANCHOR76,. + 0
13581	.type	g_max_erase_count, %object
13582	.size	g_max_erase_count, 4
13583g_max_erase_count:
13584	.zero	4
13585	.section	.bss.g_min_erase_count,"aw",@nobits
13586	.align	2
13587	.set	.LANCHOR77,. + 0
13588	.type	g_min_erase_count, %object
13589	.size	g_min_erase_count, 4
13590g_min_erase_count:
13591	.zero	4
13592	.section	.bss.g_nand_ops,"aw",@nobits
13593	.align	3
13594	.set	.LANCHOR105,. + 0
13595	.type	g_nand_ops, %object
13596	.size	g_nand_ops, 32
13597g_nand_ops:
13598	.zero	32
13599	.section	.bss.g_nand_phy_info,"aw",@nobits
13600	.align	3
13601	.set	.LANCHOR0,. + 0
13602	.type	g_nand_phy_info, %object
13603	.size	g_nand_phy_info, 24
13604g_nand_phy_info:
13605	.zero	24
13606	.section	.bss.g_num_data_superblocks,"aw",@nobits
13607	.align	1
13608	.set	.LANCHOR45,. + 0
13609	.type	g_num_data_superblocks, %object
13610	.size	g_num_data_superblocks, 2
13611g_num_data_superblocks:
13612	.zero	2
13613	.section	.bss.g_num_free_superblocks,"aw",@nobits
13614	.align	1
13615	.set	.LANCHOR48,. + 0
13616	.type	g_num_free_superblocks, %object
13617	.size	g_num_free_superblocks, 2
13618g_num_free_superblocks:
13619	.zero	2
13620	.section	.bss.g_power_lost_recovery_flag,"aw",@nobits
13621	.align	1
13622	.set	.LANCHOR167,. + 0
13623	.type	g_power_lost_recovery_flag, %object
13624	.size	g_power_lost_recovery_flag, 2
13625g_power_lost_recovery_flag:
13626	.zero	2
13627	.section	.bss.g_recovery_page_min_ver,"aw",@nobits
13628	.align	2
13629	.set	.LANCHOR145,. + 0
13630	.type	g_recovery_page_min_ver, %object
13631	.size	g_recovery_page_min_ver, 4
13632g_recovery_page_min_ver:
13633	.zero	4
13634	.section	.bss.g_recovery_page_num,"aw",@nobits
13635	.align	2
13636	.set	.LANCHOR168,. + 0
13637	.type	g_recovery_page_num, %object
13638	.size	g_recovery_page_num, 4
13639g_recovery_page_num:
13640	.zero	4
13641	.section	.bss.g_recovery_ppa_tbl,"aw",@nobits
13642	.align	3
13643	.set	.LANCHOR169,. + 0
13644	.type	g_recovery_ppa_tbl, %object
13645	.size	g_recovery_ppa_tbl, 128
13646g_recovery_ppa_tbl:
13647	.zero	128
13648	.section	.bss.g_sys_ext_data,"aw",@nobits
13649	.align	3
13650	.set	.LANCHOR81,. + 0
13651	.type	g_sys_ext_data, %object
13652	.size	g_sys_ext_data, 512
13653g_sys_ext_data:
13654	.zero	512
13655	.section	.bss.g_sys_save_data,"aw",@nobits
13656	.align	3
13657	.set	.LANCHOR39,. + 0
13658	.type	g_sys_save_data, %object
13659	.size	g_sys_save_data, 48
13660g_sys_save_data:
13661	.zero	48
13662	.section	.bss.g_tmp_data_superblock_id,"aw",@nobits
13663	.align	1
13664	.set	.LANCHOR142,. + 0
13665	.type	g_tmp_data_superblock_id, %object
13666	.size	g_tmp_data_superblock_id, 2
13667g_tmp_data_superblock_id:
13668	.zero	2
13669	.section	.bss.g_totle_avg_erase_count,"aw",@nobits
13670	.align	2
13671	.set	.LANCHOR74,. + 0
13672	.type	g_totle_avg_erase_count, %object
13673	.size	g_totle_avg_erase_count, 4
13674g_totle_avg_erase_count:
13675	.zero	4
13676	.section	.bss.g_totle_cache_write_count,"aw",@nobits
13677	.align	2
13678	.set	.LANCHOR65,. + 0
13679	.type	g_totle_cache_write_count, %object
13680	.size	g_totle_cache_write_count, 4
13681g_totle_cache_write_count:
13682	.zero	4
13683	.section	.bss.g_totle_discard_page_count,"aw",@nobits
13684	.align	2
13685	.set	.LANCHOR63,. + 0
13686	.type	g_totle_discard_page_count, %object
13687	.size	g_totle_discard_page_count, 4
13688g_totle_discard_page_count:
13689	.zero	4
13690	.section	.bss.g_totle_gc_page_count,"aw",@nobits
13691	.align	2
13692	.set	.LANCHOR67,. + 0
13693	.type	g_totle_gc_page_count, %object
13694	.size	g_totle_gc_page_count, 4
13695g_totle_gc_page_count:
13696	.zero	4
13697	.section	.bss.g_totle_l2p_write_count,"aw",@nobits
13698	.align	2
13699	.set	.LANCHOR66,. + 0
13700	.type	g_totle_l2p_write_count, %object
13701	.size	g_totle_l2p_write_count, 4
13702g_totle_l2p_write_count:
13703	.zero	4
13704	.section	.bss.g_totle_map_block,"aw",@nobits
13705	.align	1
13706	.set	.LANCHOR141,. + 0
13707	.type	g_totle_map_block, %object
13708	.size	g_totle_map_block, 2
13709g_totle_map_block:
13710	.zero	2
13711	.section	.bss.g_totle_mlc_erase_count,"aw",@nobits
13712	.align	2
13713	.set	.LANCHOR72,. + 0
13714	.type	g_totle_mlc_erase_count, %object
13715	.size	g_totle_mlc_erase_count, 4
13716g_totle_mlc_erase_count:
13717	.zero	4
13718	.section	.bss.g_totle_read_page_count,"aw",@nobits
13719	.align	2
13720	.set	.LANCHOR62,. + 0
13721	.type	g_totle_read_page_count, %object
13722	.size	g_totle_read_page_count, 4
13723g_totle_read_page_count:
13724	.zero	4
13725	.section	.bss.g_totle_read_sector,"aw",@nobits
13726	.align	2
13727	.set	.LANCHOR69,. + 0
13728	.type	g_totle_read_sector, %object
13729	.size	g_totle_read_sector, 4
13730g_totle_read_sector:
13731	.zero	4
13732	.section	.bss.g_totle_slc_erase_count,"aw",@nobits
13733	.align	2
13734	.set	.LANCHOR73,. + 0
13735	.type	g_totle_slc_erase_count, %object
13736	.size	g_totle_slc_erase_count, 4
13737g_totle_slc_erase_count:
13738	.zero	4
13739	.section	.bss.g_totle_swl_count,"aw",@nobits
13740	.align	2
13741	.set	.LANCHOR143,. + 0
13742	.type	g_totle_swl_count, %object
13743	.size	g_totle_swl_count, 4
13744g_totle_swl_count:
13745	.zero	4
13746	.section	.bss.g_totle_sys_slc_erase_count,"aw",@nobits
13747	.align	2
13748	.set	.LANCHOR75,. + 0
13749	.type	g_totle_sys_slc_erase_count, %object
13750	.size	g_totle_sys_slc_erase_count, 4
13751g_totle_sys_slc_erase_count:
13752	.zero	4
13753	.section	.bss.g_totle_vendor_block,"aw",@nobits
13754	.align	1
13755	.set	.LANCHOR35,. + 0
13756	.type	g_totle_vendor_block, %object
13757	.size	g_totle_vendor_block, 2
13758g_totle_vendor_block:
13759	.zero	2
13760	.section	.bss.g_totle_write_page_count,"aw",@nobits
13761	.align	2
13762	.set	.LANCHOR64,. + 0
13763	.type	g_totle_write_page_count, %object
13764	.size	g_totle_write_page_count, 4
13765g_totle_write_page_count:
13766	.zero	4
13767	.section	.bss.g_totle_write_sector,"aw",@nobits
13768	.align	2
13769	.set	.LANCHOR68,. + 0
13770	.type	g_totle_write_sector, %object
13771	.size	g_totle_write_sector, 4
13772g_totle_write_sector:
13773	.zero	4
13774	.section	.bss.gc_discard_updated,"aw",@nobits
13775	.align	2
13776	.set	.LANCHOR172,. + 0
13777	.type	gc_discard_updated, %object
13778	.size	gc_discard_updated, 4
13779gc_discard_updated:
13780	.zero	4
13781	.section	.bss.gc_ink_free_return_value,"aw",@nobits
13782	.align	1
13783	.set	.LANCHOR177,. + 0
13784	.type	gc_ink_free_return_value, %object
13785	.size	gc_ink_free_return_value, 2
13786gc_ink_free_return_value:
13787	.zero	2
13788	.section	.bss.gp_ect_tbl_info,"aw",@nobits
13789	.align	3
13790	.set	.LANCHOR127,. + 0
13791	.type	gp_ect_tbl_info, %object
13792	.size	gp_ect_tbl_info, 8
13793gp_ect_tbl_info:
13794	.zero	8
13795	.section	.bss.gp_flash_check_buf,"aw",@nobits
13796	.align	3
13797	.set	.LANCHOR186,. + 0
13798	.type	gp_flash_check_buf, %object
13799	.size	gp_flash_check_buf, 8
13800gp_flash_check_buf:
13801	.zero	8
13802	.section	.bss.gp_gc_page_buf_info,"aw",@nobits
13803	.align	3
13804	.set	.LANCHOR90,. + 0
13805	.type	gp_gc_page_buf_info, %object
13806	.size	gp_gc_page_buf_info, 8
13807gp_gc_page_buf_info:
13808	.zero	8
13809	.section	.bss.gp_last_act_superblock,"aw",@nobits
13810	.align	3
13811	.type	gp_last_act_superblock, %object
13812	.size	gp_last_act_superblock, 8
13813gp_last_act_superblock:
13814	.zero	8
13815	.section	.bss.idb_buf,"aw",@nobits
13816	.align	3
13817	.set	.LANCHOR185,. + 0
13818	.type	idb_buf, %object
13819	.size	idb_buf, 8
13820idb_buf:
13821	.zero	8
13822	.section	.bss.idb_need_write_back,"aw",@nobits
13823	.align	2
13824	.set	.LANCHOR184,. + 0
13825	.type	idb_need_write_back, %object
13826	.size	idb_need_write_back, 4
13827idb_need_write_back:
13828	.zero	4
13829	.section	.bss.p_blk_mode_table,"aw",@nobits
13830	.align	3
13831	.set	.LANCHOR1,. + 0
13832	.type	p_blk_mode_table, %object
13833	.size	p_blk_mode_table, 8
13834p_blk_mode_table:
13835	.zero	8
13836	.section	.bss.p_data_block_list_head,"aw",@nobits
13837	.align	3
13838	.set	.LANCHOR41,. + 0
13839	.type	p_data_block_list_head, %object
13840	.size	p_data_block_list_head, 8
13841p_data_block_list_head:
13842	.zero	8
13843	.section	.bss.p_data_block_list_table,"aw",@nobits
13844	.align	3
13845	.set	.LANCHOR40,. + 0
13846	.type	p_data_block_list_table, %object
13847	.size	p_data_block_list_table, 8
13848p_data_block_list_table:
13849	.zero	8
13850	.section	.bss.p_data_block_list_tail,"aw",@nobits
13851	.align	3
13852	.set	.LANCHOR44,. + 0
13853	.type	p_data_block_list_tail, %object
13854	.size	p_data_block_list_tail, 8
13855p_data_block_list_tail:
13856	.zero	8
13857	.section	.bss.p_erase_count_table,"aw",@nobits
13858	.align	3
13859	.set	.LANCHOR43,. + 0
13860	.type	p_erase_count_table, %object
13861	.size	p_erase_count_table, 8
13862p_erase_count_table:
13863	.zero	8
13864	.section	.bss.p_free_data_block_list_head,"aw",@nobits
13865	.align	3
13866	.set	.LANCHOR47,. + 0
13867	.type	p_free_data_block_list_head, %object
13868	.size	p_free_data_block_list_head, 8
13869p_free_data_block_list_head:
13870	.zero	8
13871	.section	.bss.p_gc_blk_tbl,"aw",@nobits
13872	.align	3
13873	.set	.LANCHOR96,. + 0
13874	.type	p_gc_blk_tbl, %object
13875	.size	p_gc_blk_tbl, 8
13876p_gc_blk_tbl:
13877	.zero	8
13878	.section	.bss.p_gc_data_buf,"aw",@nobits
13879	.align	3
13880	.set	.LANCHOR91,. + 0
13881	.type	p_gc_data_buf, %object
13882	.size	p_gc_data_buf, 8
13883p_gc_data_buf:
13884	.zero	8
13885	.section	.bss.p_gc_page_info,"aw",@nobits
13886	.align	3
13887	.set	.LANCHOR98,. + 0
13888	.type	p_gc_page_info, %object
13889	.size	p_gc_page_info, 8
13890p_gc_page_info:
13891	.zero	8
13892	.section	.bss.p_gc_spare_buf,"aw",@nobits
13893	.align	3
13894	.set	.LANCHOR92,. + 0
13895	.type	p_gc_spare_buf, %object
13896	.size	p_gc_spare_buf, 8
13897p_gc_spare_buf:
13898	.zero	8
13899	.section	.bss.p_io_data_buf_0,"aw",@nobits
13900	.align	3
13901	.set	.LANCHOR118,. + 0
13902	.type	p_io_data_buf_0, %object
13903	.size	p_io_data_buf_0, 8
13904p_io_data_buf_0:
13905	.zero	8
13906	.section	.bss.p_io_data_buf_1,"aw",@nobits
13907	.align	3
13908	.set	.LANCHOR119,. + 0
13909	.type	p_io_data_buf_1, %object
13910	.size	p_io_data_buf_1, 8
13911p_io_data_buf_1:
13912	.zero	8
13913	.section	.bss.p_io_spare_buf,"aw",@nobits
13914	.align	3
13915	.set	.LANCHOR124,. + 0
13916	.type	p_io_spare_buf, %object
13917	.size	p_io_spare_buf, 8
13918p_io_spare_buf:
13919	.zero	8
13920	.section	.bss.p_l2p_map_buf,"aw",@nobits
13921	.align	3
13922	.set	.LANCHOR136,. + 0
13923	.type	p_l2p_map_buf, %object
13924	.size	p_l2p_map_buf, 8
13925p_l2p_map_buf:
13926	.zero	8
13927	.section	.bss.p_l2p_ram_map,"aw",@nobits
13928	.align	3
13929	.set	.LANCHOR55,. + 0
13930	.type	p_l2p_ram_map, %object
13931	.size	p_l2p_ram_map, 8
13932p_l2p_ram_map:
13933	.zero	8
13934	.section	.bss.p_map_block_table,"aw",@nobits
13935	.align	3
13936	.set	.LANCHOR129,. + 0
13937	.type	p_map_block_table, %object
13938	.size	p_map_block_table, 8
13939p_map_block_table:
13940	.zero	8
13941	.section	.bss.p_map_block_valid_page_count,"aw",@nobits
13942	.align	3
13943	.set	.LANCHOR130,. + 0
13944	.type	p_map_block_valid_page_count, %object
13945	.size	p_map_block_valid_page_count, 8
13946p_map_block_valid_page_count:
13947	.zero	8
13948	.section	.bss.p_map_block_ver_table,"aw",@nobits
13949	.align	3
13950	.set	.LANCHOR135,. + 0
13951	.type	p_map_block_ver_table, %object
13952	.size	p_map_block_ver_table, 8
13953p_map_block_ver_table:
13954	.zero	8
13955	.section	.bss.p_map_region_ppn_table,"aw",@nobits
13956	.align	3
13957	.set	.LANCHOR134,. + 0
13958	.type	p_map_region_ppn_table, %object
13959	.size	p_map_region_ppn_table, 8
13960p_map_region_ppn_table:
13961	.zero	8
13962	.section	.bss.p_plane_order_table,"aw",@nobits
13963	.align	3
13964	.set	.LANCHOR13,. + 0
13965	.type	p_plane_order_table, %object
13966	.size	p_plane_order_table, 32
13967p_plane_order_table:
13968	.zero	32
13969	.section	.bss.p_swl_mul_table,"aw",@nobits
13970	.align	3
13971	.set	.LANCHOR126,. + 0
13972	.type	p_swl_mul_table, %object
13973	.size	p_swl_mul_table, 8
13974p_swl_mul_table:
13975	.zero	8
13976	.section	.bss.p_sys_data_buf,"aw",@nobits
13977	.align	3
13978	.set	.LANCHOR115,. + 0
13979	.type	p_sys_data_buf, %object
13980	.size	p_sys_data_buf, 8
13981p_sys_data_buf:
13982	.zero	8
13983	.section	.bss.p_sys_data_buf_1,"aw",@nobits
13984	.align	3
13985	.set	.LANCHOR116,. + 0
13986	.type	p_sys_data_buf_1, %object
13987	.size	p_sys_data_buf_1, 8
13988p_sys_data_buf_1:
13989	.zero	8
13990	.section	.bss.p_sys_spare_buf,"aw",@nobits
13991	.align	3
13992	.set	.LANCHOR123,. + 0
13993	.type	p_sys_spare_buf, %object
13994	.size	p_sys_spare_buf, 8
13995p_sys_spare_buf:
13996	.zero	8
13997	.section	.bss.p_valid_page_count_check_table,"aw",@nobits
13998	.align	3
13999	.set	.LANCHOR128,. + 0
14000	.type	p_valid_page_count_check_table, %object
14001	.size	p_valid_page_count_check_table, 8
14002p_valid_page_count_check_table:
14003	.zero	8
14004	.section	.bss.p_valid_page_count_table,"aw",@nobits
14005	.align	3
14006	.set	.LANCHOR42,. + 0
14007	.type	p_valid_page_count_table, %object
14008	.size	p_valid_page_count_table, 8
14009p_valid_page_count_table:
14010	.zero	8
14011	.section	.bss.p_vendor_block_table,"aw",@nobits
14012	.align	3
14013	.set	.LANCHOR36,. + 0
14014	.type	p_vendor_block_table, %object
14015	.size	p_vendor_block_table, 8
14016p_vendor_block_table:
14017	.zero	8
14018	.section	.bss.p_vendor_block_valid_page_count,"aw",@nobits
14019	.align	3
14020	.set	.LANCHOR131,. + 0
14021	.type	p_vendor_block_valid_page_count, %object
14022	.size	p_vendor_block_valid_page_count, 8
14023p_vendor_block_valid_page_count:
14024	.zero	8
14025	.section	.bss.p_vendor_block_ver_table,"aw",@nobits
14026	.align	3
14027	.set	.LANCHOR132,. + 0
14028	.type	p_vendor_block_ver_table, %object
14029	.size	p_vendor_block_ver_table, 8
14030p_vendor_block_ver_table:
14031	.zero	8
14032	.section	.bss.p_vendor_data_buf,"aw",@nobits
14033	.align	3
14034	.set	.LANCHOR117,. + 0
14035	.type	p_vendor_data_buf, %object
14036	.size	p_vendor_data_buf, 8
14037p_vendor_data_buf:
14038	.zero	8
14039	.section	.bss.p_vendor_region_ppn_table,"aw",@nobits
14040	.align	3
14041	.set	.LANCHOR133,. + 0
14042	.type	p_vendor_region_ppn_table, %object
14043	.size	p_vendor_region_ppn_table, 8
14044p_vendor_region_ppn_table:
14045	.zero	8
14046	.section	.bss.req_erase,"aw",@nobits
14047	.align	3
14048	.set	.LANCHOR106,. + 0
14049	.type	req_erase, %object
14050	.size	req_erase, 8
14051req_erase:
14052	.zero	8
14053	.section	.bss.req_gc,"aw",@nobits
14054	.align	3
14055	.set	.LANCHOR93,. + 0
14056	.type	req_gc, %object
14057	.size	req_gc, 8
14058req_gc:
14059	.zero	8
14060	.section	.bss.req_gc_dst,"aw",@nobits
14061	.align	3
14062	.set	.LANCHOR113,. + 0
14063	.type	req_gc_dst, %object
14064	.size	req_gc_dst, 8
14065req_gc_dst:
14066	.zero	8
14067	.section	.bss.req_prgm,"aw",@nobits
14068	.align	3
14069	.set	.LANCHOR114,. + 0
14070	.type	req_prgm, %object
14071	.size	req_prgm, 8
14072req_prgm:
14073	.zero	8
14074	.section	.bss.req_read,"aw",@nobits
14075	.align	3
14076	.set	.LANCHOR112,. + 0
14077	.type	req_read, %object
14078	.size	req_read, 8
14079req_read:
14080	.zero	8
14081	.section	.bss.req_sys,"aw",@nobits
14082	.align	3
14083	.set	.LANCHOR148,. + 0
14084	.type	req_sys, %object
14085	.size	req_sys, 32
14086req_sys:
14087	.zero	32
14088	.section	.bss.sftl_nand_check_buf,"aw",@nobits
14089	.align	3
14090	.set	.LANCHOR120,. + 0
14091	.type	sftl_nand_check_buf, %object
14092	.size	sftl_nand_check_buf, 8
14093sftl_nand_check_buf:
14094	.zero	8
14095	.section	.bss.sftl_nand_check_spare_buf,"aw",@nobits
14096	.align	3
14097	.set	.LANCHOR122,. + 0
14098	.type	sftl_nand_check_spare_buf, %object
14099	.size	sftl_nand_check_spare_buf, 8
14100sftl_nand_check_spare_buf:
14101	.zero	8
14102	.section	.bss.sftl_temp_buf,"aw",@nobits
14103	.align	3
14104	.set	.LANCHOR121,. + 0
14105	.type	sftl_temp_buf, %object
14106	.size	sftl_temp_buf, 8
14107sftl_temp_buf:
14108	.zero	8
14109	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits
14110	.align	1
14111	.set	.LANCHOR162,. + 0
14112	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
14113	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
14114ftl_gc_temp_block_bops_scan_page_addr:
14115	.hword	-1
14116	.section	.data.gFtlInitStatus,"aw",@progbits
14117	.align	2
14118	.set	.LANCHOR86,. + 0
14119	.type	gFtlInitStatus, %object
14120	.size	gFtlInitStatus, 4
14121gFtlInitStatus:
14122	.word	-1
14123	.section	.data.power_up_flag,"aw",@progbits
14124	.align	2
14125	.set	.LANCHOR182,. + 0
14126	.type	power_up_flag, %object
14127	.size	power_up_flag, 4
14128power_up_flag:
14129	.word	1
14130	.section	.rodata.FlashEraseBlocks.str1.1,"aMS",@progbits,1
14131.LC79:
14132	.string	"%s: addr: %x is in id block!!!!!!!!!!\n"
14133.LC80:
14134	.string	"not free: w: d:"
14135.LC81:
14136	.string	"not free: w: s:"
14137	.section	.rodata.FlashProgPages.str1.1,"aMS",@progbits,1
14138.LC85:
14139	.string	"prog read error: = %x\n"
14140.LC86:
14141	.string	"prog read s error: = %x %x %x\n"
14142.LC87:
14143	.string	"prog read d error: = %x %x %x\n"
14144	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1
14145.LC0:
14146	.string	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n"
14147	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1
14148.LC101:
14149	.string	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n"
14150.LC102:
14151	.string	"FtlBbmTblFlush error:%x\n"
14152.LC103:
14153	.string	"FtlBbmTblFlush error = %x error count = %d\n"
14154	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1
14155.LC82:
14156	.string	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\n"
14157	.section	.rodata.FtlGcFreeBadSuperBlk.str1.1,"aMS",@progbits,1
14158.LC104:
14159	.string	"FtlGcFreeBadSuperBlk 0x%x\n"
14160	.section	.rodata.FtlGcMarkBadPhyBlk.str1.1,"aMS",@progbits,1
14161.LC74:
14162	.string	"FtlGcMarkBadPhyBlk %d 0x%x\n"
14163	.section	.rodata.FtlGcRefreshBlock.str1.1,"aMS",@progbits,1
14164.LC73:
14165	.string	"FtlGcRefreshBlock  0x%x\n"
14166	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1
14167.LC100:
14168	.string	"FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
14169	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1
14170.LC108:
14171	.string	"no ect"
14172	.section	.rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1
14173.LC88:
14174	.string	"FtlMapWritePage error = %x \n"
14175.LC89:
14176	.string	"FtlMapWritePage error = %x error count = %d\n"
14177	.section	.rodata.FtlMemInit.str1.1,"aMS",@progbits,1
14178.LC84:
14179	.string	"%s error allocating memory. return -1\n"
14180	.section	.rodata.FtlPrintInfo2buf.str1.1,"aMS",@progbits,1
14181.LC2:
14182	.string	"FLASH INFO:\n"
14183.LC3:
14184	.string	"Device Capacity: %d MB\n"
14185.LC4:
14186	.string	"FTL INFO:\n"
14187.LC5:
14188	.string	"g_MaxLpn = 0x%x\n"
14189.LC6:
14190	.string	"g_VaildLpn = 0x%x\n"
14191.LC7:
14192	.string	"read_page_count = 0x%x\n"
14193.LC8:
14194	.string	"discard_page_count = 0x%x\n"
14195.LC9:
14196	.string	"write_page_count = 0x%x\n"
14197.LC10:
14198	.string	"cache_write_count = 0x%x\n"
14199.LC11:
14200	.string	"l2p_write_count = 0x%x\n"
14201.LC12:
14202	.string	"gc_page_count = 0x%x\n"
14203.LC13:
14204	.string	"totle_write = %d MB\n"
14205.LC14:
14206	.string	"totle_read = %d MB\n"
14207.LC15:
14208	.string	"GSV = 0x%x\n"
14209.LC16:
14210	.string	"GDV = 0x%x\n"
14211.LC17:
14212	.string	"bad blk num = %d\n"
14213.LC18:
14214	.string	"free_superblocks = 0x%x\n"
14215.LC19:
14216	.string	"mlc_EC = 0x%x\n"
14217.LC20:
14218	.string	"slc_EC = 0x%x\n"
14219.LC21:
14220	.string	"avg_EC = 0x%x\n"
14221.LC22:
14222	.string	"sys_EC = 0x%x\n"
14223.LC23:
14224	.string	"max_EC = 0x%x\n"
14225.LC24:
14226	.string	"min_EC = 0x%x\n"
14227.LC25:
14228	.string	"PLT = 0x%x\n"
14229.LC26:
14230	.string	"POT = 0x%x\n"
14231.LC27:
14232	.string	"MaxSector = 0x%x\n"
14233.LC28:
14234	.string	"init_sys_blks_pp = 0x%x\n"
14235.LC29:
14236	.string	"sys_blks_pp = 0x%x\n"
14237.LC30:
14238	.string	"free sysblock = 0x%x\n"
14239.LC31:
14240	.string	"data_blks_pp = 0x%x\n"
14241.LC32:
14242	.string	"data_op_blks_pp = 0x%x\n"
14243.LC33:
14244	.string	"max_data_blks = 0x%x\n"
14245.LC34:
14246	.string	"Sys.id = 0x%x\n"
14247.LC35:
14248	.string	"Bbt.id = 0x%x\n"
14249.LC36:
14250	.string	"ACT.page = 0x%x\n"
14251.LC37:
14252	.string	"ACT.plane = 0x%x\n"
14253.LC38:
14254	.string	"ACT.id = 0x%x\n"
14255.LC39:
14256	.string	"ACT.mode = 0x%x\n"
14257.LC40:
14258	.string	"ACT.a_pages = 0x%x\n"
14259.LC41:
14260	.string	"ACT VPC = 0x%x\n"
14261.LC42:
14262	.string	"BUF.page = 0x%x\n"
14263.LC43:
14264	.string	"BUF.plane = 0x%x\n"
14265.LC44:
14266	.string	"BUF.id = 0x%x\n"
14267.LC45:
14268	.string	"BUF.mode = 0x%x\n"
14269.LC46:
14270	.string	"BUF.a_pages = 0x%x\n"
14271.LC47:
14272	.string	"BUF VPC = 0x%x\n"
14273.LC48:
14274	.string	"TMP.page = 0x%x\n"
14275.LC49:
14276	.string	"TMP.plane = 0x%x\n"
14277.LC50:
14278	.string	"TMP.id = 0x%x\n"
14279.LC51:
14280	.string	"TMP.mode = 0x%x\n"
14281.LC52:
14282	.string	"TMP.a_pages = 0x%x\n"
14283.LC53:
14284	.string	"GC.page = 0x%x\n"
14285.LC54:
14286	.string	"GC.plane = 0x%x\n"
14287.LC55:
14288	.string	"GC.id = 0x%x\n"
14289.LC56:
14290	.string	"GC.mode = 0x%x\n"
14291.LC57:
14292	.string	"GC.a_pages = 0x%x\n"
14293.LC58:
14294	.string	"WR_CHK = %x %x %x\n"
14295.LC59:
14296	.string	"Read Err Cnt = 0x%x\n"
14297.LC60:
14298	.string	"Prog Err Cnt = 0x%x\n"
14299.LC61:
14300	.string	"gc_free_blk_th= 0x%x\n"
14301.LC62:
14302	.string	"gc_merge_free_blk_th= 0x%x\n"
14303.LC63:
14304	.string	"gc_skip_write_count= 0x%x\n"
14305.LC64:
14306	.string	"gc_blk_index= 0x%x\n"
14307.LC65:
14308	.string	"free min EC= 0x%x\n"
14309.LC66:
14310	.string	"free max EC= 0x%x\n"
14311.LC67:
14312	.string	"GC__SB VPC = 0x%x\n"
14313.LC68:
14314	.string	"%d. [0x%x]=0x%x 0x%x  0x%x\n"
14315.LC69:
14316	.string	"free %d. [0x%x] 0x%x  0x%x\n"
14317	.section	.rodata.FtlProgPages.str1.1,"aMS",@progbits,1
14318.LC111:
14319	.string	"Ftlwrite decrement_vpc_count %x = %d\n"
14320	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1
14321.LC106:
14322	.string	"spuer block %x vpn is 0\n "
14323	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",@progbits,1
14324.LC107:
14325	.string	"FtlVendorPartRead refresh = %x phyAddr = %x\n"
14326	.section	.rodata.FtlVpcCheckAndModify.str1.1,"aMS",@progbits,1
14327.LC110:
14328	.string	"FtlCheckVpc %x = %x  %x\n"
14329	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1
14330.LC109:
14331	.string	"FtlVpcTblFlush error = %x error count = %d\n"
14332	.section	.rodata.FtlWrite.str1.1,"aMS",@progbits,1
14333.LC113:
14334	.string	"FtlWrite: lpa error:%x %x\n"
14335	.section	.rodata.GetSwlReplaceBlock.str1.1,"aMS",@progbits,1
14336.LC72:
14337	.string	"swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
14338	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1
14339.LC1:
14340	.string	"\n!!!!! error @ func:%s - line:%d\n"
14341	.section	.rodata.__func__.6119,"a",@progbits
14342	.align	3
14343	.set	.LANCHOR138,. + 0
14344	.type	__func__.6119, %object
14345	.size	__func__.6119, 11
14346__func__.6119:
14347	.string	"FtlMemInit"
14348	.section	.rodata.__func__.6243,"a",@progbits
14349	.align	3
14350	.set	.LANCHOR175,. + 0
14351	.type	__func__.6243, %object
14352	.size	__func__.6243, 13
14353__func__.6243:
14354	.string	"FtlProgPages"
14355	.section	.rodata.__func__.6271,"a",@progbits
14356	.align	3
14357	.set	.LANCHOR183,. + 0
14358	.type	__func__.6271, %object
14359	.size	__func__.6271, 9
14360__func__.6271:
14361	.string	"FtlWrite"
14362	.section	.rodata.__func__.6377,"a",@progbits
14363	.align	3
14364	.set	.LANCHOR187,. + 0
14365	.type	__func__.6377, %object
14366	.size	__func__.6377, 14
14367__func__.6377:
14368	.string	"FtlWriteToIDB"
14369	.section	.rodata.__func__.6418,"a",@progbits
14370	.align	3
14371	.set	.LANCHOR139,. + 0
14372	.type	__func__.6418, %object
14373	.size	__func__.6418, 14
14374__func__.6418:
14375	.string	"FtlBbt2Bitmap"
14376	.section	.rodata.__func__.6461,"a",@progbits
14377	.align	3
14378	.set	.LANCHOR150,. + 0
14379	.type	__func__.6461, %object
14380	.size	__func__.6461, 11
14381__func__.6461:
14382	.string	"FtlLoadBbt"
14383	.section	.rodata.__func__.6576,"a",@progbits
14384	.align	3
14385	.set	.LANCHOR49,. + 0
14386	.type	__func__.6576, %object
14387	.size	__func__.6576, 17
14388__func__.6576:
14389	.string	"INSERT_FREE_LIST"
14390	.section	.rodata.__func__.6581,"a",@progbits
14391	.align	3
14392	.set	.LANCHOR46,. + 0
14393	.type	__func__.6581, %object
14394	.size	__func__.6581, 17
14395__func__.6581:
14396	.string	"INSERT_DATA_LIST"
14397	.section	.rodata.__func__.6612,"a",@progbits
14398	.align	3
14399	.set	.LANCHOR50,. + 0
14400	.type	__func__.6612, %object
14401	.size	__func__.6612, 17
14402__func__.6612:
14403	.string	"List_remove_node"
14404	.section	.rodata.__func__.6644,"a",@progbits
14405	.align	3
14406	.set	.LANCHOR54,. + 0
14407	.type	__func__.6644, %object
14408	.size	__func__.6644, 22
14409__func__.6644:
14410	.string	"List_update_data_list"
14411	.section	.rodata.__func__.6653,"a",@progbits
14412	.align	3
14413	.set	.LANCHOR156,. + 0
14414	.type	__func__.6653, %object
14415	.size	__func__.6653, 16
14416__func__.6653:
14417	.string	"load_l2p_region"
14418	.section	.rodata.__func__.6686,"a",@progbits
14419	.align	3
14420	.set	.LANCHOR107,. + 0
14421	.type	__func__.6686, %object
14422	.size	__func__.6686, 26
14423__func__.6686:
14424	.string	"ftl_map_blk_alloc_new_blk"
14425	.section	.rodata.__func__.6697,"a",@progbits
14426	.align	3
14427	.set	.LANCHOR157,. + 0
14428	.type	__func__.6697, %object
14429	.size	__func__.6697, 15
14430__func__.6697:
14431	.string	"ftl_map_blk_gc"
14432	.section	.rodata.__func__.6712,"a",@progbits
14433	.align	3
14434	.set	.LANCHOR154,. + 0
14435	.type	__func__.6712, %object
14436	.size	__func__.6712, 31
14437__func__.6712:
14438	.string	"Ftl_write_map_blk_to_last_page"
14439	.section	.rodata.__func__.6726,"a",@progbits
14440	.align	3
14441	.set	.LANCHOR155,. + 0
14442	.type	__func__.6726, %object
14443	.size	__func__.6726, 16
14444__func__.6726:
14445	.string	"FtlMapWritePage"
14446	.section	.rodata.__func__.6751,"a",@progbits
14447	.align	3
14448	.set	.LANCHOR57,. + 0
14449	.type	__func__.6751, %object
14450	.size	__func__.6751, 22
14451__func__.6751:
14452	.string	"select_l2p_ram_region"
14453	.section	.rodata.__func__.6768,"a",@progbits
14454	.align	3
14455	.set	.LANCHOR159,. + 0
14456	.type	__func__.6768, %object
14457	.size	__func__.6768, 9
14458__func__.6768:
14459	.string	"log2phys"
14460	.section	.rodata.__func__.6841,"a",@progbits
14461	.align	3
14462	.set	.LANCHOR171,. + 0
14463	.type	__func__.6841, %object
14464	.size	__func__.6841, 15
14465__func__.6841:
14466	.string	"FtlVpcTblFlush"
14467	.section	.rodata.__func__.6863,"a",@progbits
14468	.align	3
14469	.set	.LANCHOR149,. + 0
14470	.type	__func__.6863, %object
14471	.size	__func__.6863, 14
14472__func__.6863:
14473	.string	"FtlScanSysBlk"
14474	.section	.rodata.__func__.6920,"a",@progbits
14475	.align	3
14476	.set	.LANCHOR151,. + 0
14477	.type	__func__.6920, %object
14478	.size	__func__.6920, 15
14479__func__.6920:
14480	.string	"FtlLoadSysInfo"
14481	.section	.rodata.__func__.6983,"a",@progbits
14482	.align	3
14483	.set	.LANCHOR160,. + 0
14484	.type	__func__.6983, %object
14485	.size	__func__.6983, 16
14486__func__.6983:
14487	.string	"FtlReUsePrevPpa"
14488	.section	.rodata.__func__.7017,"a",@progbits
14489	.align	3
14490	.set	.LANCHOR166,. + 0
14491	.type	__func__.7017, %object
14492	.size	__func__.7017, 22
14493__func__.7017:
14494	.string	"FtlRecoverySuperblock"
14495	.section	.rodata.__func__.7074,"a",@progbits
14496	.align	3
14497	.set	.LANCHOR60,. + 0
14498	.type	__func__.7074, %object
14499	.size	__func__.7074, 16
14500__func__.7074:
14501	.string	"make_superblock"
14502	.section	.rodata.__func__.7095,"a",@progbits
14503	.align	3
14504	.set	.LANCHOR146,. + 0
14505	.type	__func__.7095, %object
14506	.size	__func__.7095, 18
14507__func__.7095:
14508	.string	"SupperBlkListInit"
14509	.section	.rodata.__func__.7120,"a",@progbits
14510	.align	3
14511	.set	.LANCHOR173,. + 0
14512	.type	__func__.7120, %object
14513	.size	__func__.7120, 21
14514__func__.7120:
14515	.string	"FtlVpcCheckAndModify"
14516	.section	.rodata.__func__.7136,"a",@progbits
14517	.align	3
14518	.set	.LANCHOR161,. + 0
14519	.type	__func__.7136, %object
14520	.size	__func__.7136, 14
14521__func__.7136:
14522	.string	"ftl_check_vpc"
14523	.section	.rodata.__func__.7221,"a",@progbits
14524	.align	3
14525	.set	.LANCHOR163,. + 0
14526	.type	__func__.7221, %object
14527	.size	__func__.7221, 25
14528__func__.7221:
14529	.string	"allocate_data_superblock"
14530	.section	.rodata.__func__.7242,"a",@progbits
14531	.align	3
14532	.set	.LANCHOR174,. + 0
14533	.type	__func__.7242, %object
14534	.size	__func__.7242, 29
14535__func__.7242:
14536	.string	"allocate_new_data_superblock"
14537	.section	.rodata.__func__.7249,"a",@progbits
14538	.align	3
14539	.set	.LANCHOR88,. + 0
14540	.type	__func__.7249, %object
14541	.size	__func__.7249, 19
14542__func__.7249:
14543	.string	"get_new_active_ppa"
14544	.section	.rodata.__func__.7262,"a",@progbits
14545	.align	3
14546	.set	.LANCHOR164,. + 0
14547	.type	__func__.7262, %object
14548	.size	__func__.7262, 16
14549__func__.7262:
14550	.string	"update_vpc_list"
14551	.section	.rodata.__func__.7269,"a",@progbits
14552	.align	3
14553	.set	.LANCHOR165,. + 0
14554	.type	__func__.7269, %object
14555	.size	__func__.7269, 20
14556__func__.7269:
14557	.string	"decrement_vpc_count"
14558	.section	.rodata.__func__.7339,"a",@progbits
14559	.align	3
14560	.set	.LANCHOR176,. + 0
14561	.type	__func__.7339, %object
14562	.size	__func__.7339, 19
14563__func__.7339:
14564	.string	"FtlGcFreeTempBlock"
14565	.section	.rodata.__func__.7450,"a",@progbits
14566	.align	3
14567	.set	.LANCHOR180,. + 0
14568	.type	__func__.7450, %object
14569	.size	__func__.7450, 23
14570__func__.7450:
14571	.string	"rk_ftl_garbage_collect"
14572	.section	.rodata.__func__.7712,"a",@progbits
14573	.align	3
14574	.set	.LANCHOR147,. + 0
14575	.type	__func__.7712, %object
14576	.size	__func__.7712, 15
14577__func__.7712:
14578	.string	"FlashReadPages"
14579	.section	.rodata.__func__.7730,"a",@progbits
14580	.align	3
14581	.set	.LANCHOR153,. + 0
14582	.type	__func__.7730, %object
14583	.size	__func__.7730, 15
14584__func__.7730:
14585	.string	"FlashProgPages"
14586	.section	.rodata.__func__.7753,"a",@progbits
14587	.align	3
14588	.set	.LANCHOR104,. + 0
14589	.type	__func__.7753, %object
14590	.size	__func__.7753, 17
14591__func__.7753:
14592	.string	"FlashEraseBlocks"
14593	.section	.rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1
14594.LC105:
14595	.string	"decrement_vpc_count %x = %d\n"
14596	.section	.rodata.ftl_check_vpc.str1.1,"aMS",@progbits,1
14597.LC94:
14598	.string	"...%s enter...\n"
14599.LC95:
14600	.string	"FtlCheckVpc2 %x = %x  %x\n"
14601.LC96:
14602	.string	"free blk vpc error %x = %x  %x\n"
14603	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1
14604.LC83:
14605	.string	"FtlFreeSysBlkQueueOut = %x, free count = %d\n"
14606	.section	.rodata.ftl_scan_all_data.str1.1,"aMS",@progbits,1
14607.LC97:
14608	.string	"ftl_scan_all_data = %x\n"
14609.LC98:
14610	.string	"scan lpa = %x ppa= %x\n"
14611.LC99:
14612	.string	"lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
14613	.section	.rodata.load_l2p_region.str1.1,"aMS",@progbits,1
14614.LC90:
14615	.string	"region_id = %x phyAddr = %x\n"
14616.LC91:
14617	.string	"spare:"
14618.LC92:
14619	.string	"map_ppn:"
14620.LC93:
14621	.string	"load_l2p_region refresh = %x phyAddr = %x\n"
14622	.section	.rodata.rk_ftl_garbage_collect.str1.1,"aMS",@progbits,1
14623.LC112:
14624	.string	"SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
14625	.section	.rodata.rknand_print_hex.str1.1,"aMS",@progbits,1
14626.LC75:
14627	.string	"%s 0x%x:"
14628.LC76:
14629	.string	"%x "
14630.LC77:
14631	.string	"%02x "
14632.LC78:
14633	.string	"\n"
14634	.section	.rodata.rknand_proc_ftlread.str1.1,"aMS",@progbits,1
14635.LC70:
14636	.string	"SFTL version: 5.0.48 20180930"
14637.LC71:
14638	.string	"%s\n"
14639	.section	.rodata.sftl_write.str1.1,"aMS",@progbits,1
14640.LC114:
14641	.string	"write_idblock fix data %x %x %x\n"
14642.LC115:
14643	.string	"write_idblock fail! %x %x %x %x\n"
14644.LC116:
14645	.string	"%s idb buffer alloc fail\n"
14646	.hidden	free
14647