xref: /rk3399_rockchip-uboot/drivers/rkflash/rk_sftl_arm_v8.S (revision f05ce84792cbd2e5573a414010d421eb8fbb7689)
1/*
2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier:    GPL-2.0
5 * date: 2018-11-29
6 */
7	.arch armv8-a+nosimd
8	.file	"rk_sftl.c"
9	.section	.text.l2p_addr_tran.isra.0,"ax",@progbits
10	.align	2
11	.type	l2p_addr_tran.isra.0, %function
12l2p_addr_tran.isra.0:
13	adrp	x4, .LANCHOR0
14	add	x4, x4, :lo12:.LANCHOR0
15	ldrh	w3, [x4, 8]
16	ldrh	w6, [x4, 10]
17	ldrh	w4, [x4, 14]
18	cmp	w4, 4
19	bne	.L2
20	lsr	w3, w3, 1
21	ubfiz	w6, w6, 1, 15
22.L2:
23	lsr	w5, w0, 10
24	and	w0, w0, 1023
25	and	w4, w5, 65535
26	and	w5, w5, 65535
27	udiv	w4, w4, w3
28	msub	w3, w3, w4, w5
29	madd	w3, w3, w6, w0
30	mov	w0, 0
31	str	w3, [x1]
32	str	w4, [x2]
33	ret
34	.size	l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0
35	.section	.text.ftl_set_blk_mode.part.6,"ax",@progbits
36	.align	2
37	.type	ftl_set_blk_mode.part.6, %function
38ftl_set_blk_mode.part.6:
39	and	w0, w0, 65535
40	adrp	x2, .LANCHOR1
41	ubfx	x1, x0, 5, 11
42	ldr	x3, [x2, #:lo12:.LANCHOR1]
43	lsl	x1, x1, 2
44	mov	w2, 1
45	lsl	w2, w2, w0
46	ldr	w0, [x3, x1]
47	orr	w0, w0, w2
48	str	w0, [x3, x1]
49	ret
50	.size	ftl_set_blk_mode.part.6, .-ftl_set_blk_mode.part.6
51	.section	.text.Ftl_log2,"ax",@progbits
52	.align	2
53	.global	Ftl_log2
54	.type	Ftl_log2, %function
55Ftl_log2:
56	mov	w2, 1
57	mov	w1, 0
58.L5:
59	cmp	w2, w0
60	bls	.L6
61	sub	w0, w1, #1
62	ret
63.L6:
64	add	w1, w1, 1
65	lsl	w2, w2, 1
66	and	w1, w1, 65535
67	b	.L5
68	.size	Ftl_log2, .-Ftl_log2
69	.section	.text.FtlPrintInfo,"ax",@progbits
70	.align	2
71	.global	FtlPrintInfo
72	.type	FtlPrintInfo, %function
73FtlPrintInfo:
74	ret
75	.size	FtlPrintInfo, .-FtlPrintInfo
76	.section	.text.FtlSysBlkNumInit,"ax",@progbits
77	.align	2
78	.global	FtlSysBlkNumInit
79	.type	FtlSysBlkNumInit, %function
80FtlSysBlkNumInit:
81	and	w0, w0, 65535
82	mov	w1, 24
83	cmp	w0, 24
84	adrp	x2, .LANCHOR4
85	csel	w0, w0, w1, cs
86	adrp	x1, .LANCHOR2
87	and	w0, w0, 65535
88	str	w0, [x1, #:lo12:.LANCHOR2]
89	adrp	x1, .LANCHOR3
90	ldrh	w1, [x1, #:lo12:.LANCHOR3]
91	mul	w1, w1, w0
92	str	w1, [x2, #:lo12:.LANCHOR4]
93	adrp	x2, .LANCHOR6
94	ldrh	w2, [x2, #:lo12:.LANCHOR6]
95	sub	w0, w2, w0
96	adrp	x2, .LANCHOR5
97	strh	w0, [x2, #:lo12:.LANCHOR5]
98	adrp	x0, .LANCHOR8
99	ldr	w0, [x0, #:lo12:.LANCHOR8]
100	sub	w1, w0, w1
101	adrp	x0, .LANCHOR7
102	str	w1, [x0, #:lo12:.LANCHOR7]
103	mov	w0, 0
104	ret
105	.size	FtlSysBlkNumInit, .-FtlSysBlkNumInit
106	.section	.text.FtlConstantsInit,"ax",@progbits
107	.align	2
108	.global	FtlConstantsInit
109	.type	FtlConstantsInit, %function
110FtlConstantsInit:
111	stp	x29, x30, [sp, -16]!
112	mov	x5, x0
113	adrp	x1, .LANCHOR11
114	adrp	x6, .LANCHOR12
115	add	x29, sp, 0
116	ldrh	w3, [x0]
117	adrp	x0, .LANCHOR9
118	ldrh	w4, [x5, 2]
119	strh	w3, [x0, #:lo12:.LANCHOR9]
120	adrp	x0, .LANCHOR10
121	ldrh	w7, [x5, 14]
122	strh	w4, [x0, #:lo12:.LANCHOR10]
123	ldrh	w0, [x5, 4]
124	cmp	w7, 4
125	strh	w0, [x1, #:lo12:.LANCHOR11]
126	adrp	x1, .LANCHOR6
127	ldrh	w2, [x5, 6]
128	strh	w2, [x1, #:lo12:.LANCHOR6]
129	strh	w7, [x6, #:lo12:.LANCHOR12]
130	bne	.L10
131	lsr	w2, w2, 1
132	strh	w2, [x1, #:lo12:.LANCHOR6]
133	mov	w2, 8
134	strh	w2, [x6, #:lo12:.LANCHOR12]
135.L10:
136	adrp	x7, .LANCHOR13
137	add	x7, x7, :lo12:.LANCHOR13
138	mov	x2, 0
139.L11:
140	strb	w2, [x2, x7]
141	add	x2, x2, 1
142	cmp	x2, 32
143	bne	.L11
144	adrp	x2, .LANCHOR14
145	mov	w7, 5
146	cmp	w3, 1
147	strh	w7, [x2, #:lo12:.LANCHOR14]
148	adrp	x7, .LANCHOR15
149	strh	wzr, [x7, #:lo12:.LANCHOR15]
150	bne	.L12
151	strh	w3, [x2, #:lo12:.LANCHOR14]
152.L12:
153	adrp	x2, .LANCHOR16
154	mov	w3, 640
155	mul	w4, w4, w0
156	strh	w3, [x2, #:lo12:.LANCHOR16]
157	adrp	x2, .LANCHOR3
158	ldrh	w3, [x1, #:lo12:.LANCHOR6]
159	and	w4, w4, 65535
160	adrp	x1, .LANCHOR17
161	strh	w4, [x2, #:lo12:.LANCHOR3]
162	mul	w0, w0, w3
163	and	w0, w0, 65535
164	strh	w0, [x1, #:lo12:.LANCHOR17]
165	bl	Ftl_log2
166	ldrh	w7, [x5, 12]
167	adrp	x1, .LANCHOR18
168	ldrh	w6, [x6, #:lo12:.LANCHOR12]
169	adrp	x8, .LANCHOR19
170	strh	w0, [x1, #:lo12:.LANCHOR18]
171	adrp	x0, .LANCHOR20
172	mul	w1, w4, w7
173	strh	w7, [x8, #:lo12:.LANCHOR19]
174	strh	w7, [x0, #:lo12:.LANCHOR20]
175	adrp	x0, .LANCHOR21
176	strh	w1, [x0, #:lo12:.LANCHOR21]
177	mov	w0, w6
178	bl	Ftl_log2
179	and	w10, w0, 65535
180	adrp	x2, .LANCHOR22
181	ubfiz	w1, w6, 9, 7
182	strh	w0, [x2, #:lo12:.LANCHOR22]
183	adrp	x0, .LANCHOR23
184	strh	w1, [x0, #:lo12:.LANCHOR23]
185	adrp	x0, .LANCHOR24
186	ubfx	w1, w1, 8, 8
187	strh	w1, [x0, #:lo12:.LANCHOR24]
188	adrp	x0, .LANCHOR25
189	ldrh	w1, [x5, 20]
190	adrp	x5, .LANCHOR27
191	strh	w1, [x0, #:lo12:.LANCHOR25]
192	mul	w0, w4, w3
193	adrp	x1, .LANCHOR8
194	str	w0, [x1, #:lo12:.LANCHOR8]
195	adrp	x1, .LANCHOR26
196	mul	w0, w0, w6
197	mul	w6, w6, w7
198	mul	w0, w0, w7
199	mov	x7, x2
200	asr	w0, w0, 11
201	str	w0, [x1, #:lo12:.LANCHOR26]
202	mov	w0, 5120
203	sdiv	w0, w0, w6
204	and	w0, w0, 65535
205	cmp	w0, 4
206	bls	.L13
207.L19:
208	strh	w0, [x5, #:lo12:.LANCHOR27]
209	adrp	x1, .LANCHOR28
210	mov	w0, 640
211	lsl	w3, w3, 6
212	asr	w0, w0, w10
213	add	w0, w0, 2
214	strh	w0, [x1, #:lo12:.LANCHOR28]
215	add	w0, w10, 9
216	adrp	x1, .LANCHOR30
217	cmp	w4, 1
218	asr	w3, w3, w0
219	adrp	x0, .LANCHOR29
220	adrp	x6, .LANCHOR2
221	strh	w3, [x0, #:lo12:.LANCHOR29]
222	and	w3, w3, 65535
223	mul	w0, w3, w4
224	add	w3, w3, 8
225	str	w0, [x1, #:lo12:.LANCHOR30]
226	ldrh	w0, [x5, #:lo12:.LANCHOR27]
227	udiv	w0, w0, w4
228	mov	x4, x1
229	add	w3, w0, w3
230	beq	.L15
231.L20:
232	str	w3, [x6, #:lo12:.LANCHOR2]
233	ldrh	w0, [x6, #:lo12:.LANCHOR2]
234	bl	FtlSysBlkNumInit
235	ldr	w1, [x6, #:lo12:.LANCHOR2]
236	adrp	x0, .LANCHOR31
237	ldp	x29, x30, [sp], 16
238	str	w1, [x0, #:lo12:.LANCHOR31]
239	adrp	x0, .LANCHOR7
240	ldrh	w1, [x8, #:lo12:.LANCHOR19]
241	ldr	w0, [x0, #:lo12:.LANCHOR7]
242	lsl	w0, w0, 2
243	mul	w0, w0, w1
244	ldrh	w1, [x7, #:lo12:.LANCHOR22]
245	add	w1, w1, 9
246	lsr	w0, w0, w1
247	adrp	x1, .LANCHOR32
248	add	w0, w0, 2
249	strh	w0, [x1, #:lo12:.LANCHOR32]
250	adrp	x0, .LANCHOR33
251	mov	w1, 32
252	strh	w1, [x0, #:lo12:.LANCHOR33]
253	adrp	x0, .LANCHOR34
254	str	wzr, [x0, #:lo12:.LANCHOR34]
255	ldrh	w0, [x5, #:lo12:.LANCHOR27]
256	add	w0, w0, 3
257	strh	w0, [x5, #:lo12:.LANCHOR27]
258	ldr	w0, [x4, #:lo12:.LANCHOR30]
259	add	w0, w0, 3
260	str	w0, [x4, #:lo12:.LANCHOR30]
261	mov	w0, 0
262	ret
263.L13:
264	mov	w0, 4
265	b	.L19
266.L15:
267	add	w3, w3, 4
268	b	.L20
269	.size	FtlConstantsInit, .-FtlConstantsInit
270	.section	.text.IsBlkInVendorPart,"ax",@progbits
271	.align	2
272	.global	IsBlkInVendorPart
273	.type	IsBlkInVendorPart, %function
274IsBlkInVendorPart:
275	adrp	x1, .LANCHOR35
276	and	w0, w0, 65535
277	ldrh	w1, [x1, #:lo12:.LANCHOR35]
278	cbz	w1, .L25
279	adrp	x1, .LANCHOR27
280	ldrh	w2, [x1, #:lo12:.LANCHOR27]
281	adrp	x1, .LANCHOR36
282	ldr	x3, [x1, #:lo12:.LANCHOR36]
283	mov	x1, 0
284.L23:
285	cmp	w2, w1, uxth
286	bhi	.L24
287.L25:
288	mov	w0, 0
289	ret
290.L24:
291	add	x1, x1, 1
292	add	x4, x3, x1, lsl 1
293	ldrh	w4, [x4, -2]
294	cmp	w4, w0
295	bne	.L23
296	mov	w0, 1
297	ret
298	.size	IsBlkInVendorPart, .-IsBlkInVendorPart
299	.section	.text.FtlCacheWriteBack,"ax",@progbits
300	.align	2
301	.global	FtlCacheWriteBack
302	.type	FtlCacheWriteBack, %function
303FtlCacheWriteBack:
304	mov	w0, 0
305	ret
306	.size	FtlCacheWriteBack, .-FtlCacheWriteBack
307	.section	.text.sftl_get_density,"ax",@progbits
308	.align	2
309	.global	sftl_get_density
310	.type	sftl_get_density, %function
311sftl_get_density:
312	adrp	x0, .LANCHOR34
313	ldr	w0, [x0, #:lo12:.LANCHOR34]
314	ret
315	.size	sftl_get_density, .-sftl_get_density
316	.section	.text.FtlBbmMapBadBlock,"ax",@progbits
317	.align	2
318	.global	FtlBbmMapBadBlock
319	.type	FtlBbmMapBadBlock, %function
320FtlBbmMapBadBlock:
321	stp	x29, x30, [sp, -32]!
322	and	w1, w0, 65535
323	adrp	x0, .LANCHOR17
324	mov	w4, 1
325	add	x29, sp, 0
326	ldrh	w0, [x0, #:lo12:.LANCHOR17]
327	str	x19, [sp, 16]
328	adrp	x19, .LANCHOR37
329	add	x19, x19, :lo12:.LANCHOR37
330	udiv	w3, w1, w0
331	and	w2, w3, 65535
332	msub	w3, w3, w0, w1
333	add	x0, x19, x2, uxth 3
334	and	w3, w3, 65535
335	ldr	x0, [x0, 32]
336	ubfx	x5, x3, 5, 11
337	lsl	x5, x5, 2
338	lsl	w4, w4, w3
339	ldr	w6, [x0, x5]
340	orr	w4, w4, w6
341	str	w4, [x0, x5]
342	adrp	x0, .LC0
343	add	x0, x0, :lo12:.LC0
344	bl	printf
345	ldrh	w0, [x19, 6]
346	add	w0, w0, 1
347	strh	w0, [x19, 6]
348	mov	w0, 0
349	ldr	x19, [sp, 16]
350	ldp	x29, x30, [sp], 32
351	ret
352	.size	FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
353	.section	.text.FtlBbmIsBadBlock,"ax",@progbits
354	.align	2
355	.global	FtlBbmIsBadBlock
356	.type	FtlBbmIsBadBlock, %function
357FtlBbmIsBadBlock:
358	adrp	x1, .LANCHOR17
359	and	w0, w0, 65535
360	ldrh	w1, [x1, #:lo12:.LANCHOR17]
361	udiv	w2, w0, w1
362	msub	w0, w2, w1, w0
363	adrp	x1, .LANCHOR37
364	add	x1, x1, :lo12:.LANCHOR37
365	add	x2, x1, x2, uxth 3
366	and	w0, w0, 65535
367	ubfx	x3, x0, 5, 11
368	ldr	x1, [x2, 32]
369	ldr	w1, [x1, x3, lsl 2]
370	lsr	w0, w1, w0
371	and	w0, w0, 1
372	ret
373	.size	FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
374	.section	.text.FtlBbtInfoPrint,"ax",@progbits
375	.align	2
376	.global	FtlBbtInfoPrint
377	.type	FtlBbtInfoPrint, %function
378FtlBbtInfoPrint:
379	ret
380	.size	FtlBbtInfoPrint, .-FtlBbtInfoPrint
381	.section	.text.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	.L549
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.L549:
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	bl	l2p_addr_tran.isra.0
4238	ldr	w0, [x29, 104]
4239	cmp	w0, 3
4240	bls	.L541
4241	mov	w0, -1
4242	str	w0, [x19]
4243.L542:
4244	add	x19, x19, 32
4245	b	.L538
4246.L541:
4247	ldr	x20, [x19, 8]
4248	adrp	x26, .LANCHOR120
4249	tst	x20, 63
4250	beq	.L543
4251	ldr	x20, [x26, #:lo12:.LANCHOR120]
4252.L543:
4253	adrp	x22, .LANCHOR105
4254	add	x22, x22, :lo12:.LANCHOR105
4255	ldr	w1, [x29, 108]
4256	mov	x2, x20
4257	ldr	x3, [x19, 16]
4258	ldr	x4, [x22, 24]
4259	blr	x4
4260	str	w0, [x19]
4261	add	x0, x21, :lo12:.LANCHOR0
4262	ldrh	w0, [x0, 14]
4263	cmp	w0, 4
4264	bne	.L545
4265	ldrb	w0, [x29, 104]
4266	add	x2, x20, 2048
4267	ldr	x4, [x22, 24]
4268	ldr	w1, [x29, 108]
4269	ldr	x3, [x19, 16]
4270	add	w1, w27, w1
4271	add	x3, x3, 8
4272	blr	x4
4273	cmn	w0, #1
4274	beq	.L546
4275	ldr	x1, [x19, 16]
4276	ldr	w2, [x1, 12]
4277	cmn	w2, #1
4278	bne	.L547
4279	ldr	w2, [x1, 8]
4280	cmn	w2, #1
4281	bne	.L547
4282	ldr	w1, [x1]
4283	cmn	w1, #1
4284	beq	.L547
4285.L546:
4286	mov	w1, -1
4287	str	w1, [x19]
4288.L547:
4289	ldr	w1, [x19]
4290	cmn	w1, #1
4291	beq	.L545
4292	cmp	w0, 256
4293	bne	.L545
4294	str	w0, [x19]
4295.L545:
4296	ldr	x0, [x26, #:lo12:.LANCHOR120]
4297	cmp	x20, x0
4298	bne	.L542
4299	ldr	x0, [x19, 8]
4300	cmp	x20, x0
4301	beq	.L542
4302	adrp	x1, .LANCHOR12
4303	ldrh	w2, [x1, #:lo12:.LANCHOR12]
4304	mov	x1, x20
4305	lsl	w2, w2, 9
4306	bl	ftl_memcpy
4307	b	.L542
4308	.size	FlashReadPages, .-FlashReadPages
4309	.section	.text.FtlLoadFactoryBbt,"ax",@progbits
4310	.align	2
4311	.global	FtlLoadFactoryBbt
4312	.type	FtlLoadFactoryBbt, %function
4313FtlLoadFactoryBbt:
4314	stp	x29, x30, [sp, -112]!
4315	adrp	x2, .LANCHOR115
4316	adrp	x0, .LANCHOR148
4317	add	x1, x0, :lo12:.LANCHOR148
4318	add	x29, sp, 0
4319	ldr	x2, [x2, #:lo12:.LANCHOR115]
4320	stp	x21, x22, [sp, 32]
4321	mov	x22, x0
4322	stp	x25, x26, [sp, 64]
4323	adrp	x26, .LANCHOR17
4324	stp	x27, x28, [sp, 80]
4325	add	x28, x26, :lo12:.LANCHOR17
4326	stp	x19, x20, [sp, 16]
4327	adrp	x20, .LANCHOR37
4328	stp	x23, x24, [sp, 48]
4329	add	x20, x20, :lo12:.LANCHOR37
4330	str	x2, [x1, 8]
4331	adrp	x2, .LANCHOR123
4332	adrp	x23, .LANCHOR10
4333	add	x20, x20, 12
4334	ldr	x25, [x2, #:lo12:.LANCHOR123]
4335	add	x23, x23, :lo12:.LANCHOR10
4336	mov	w21, 0
4337	mov	w27, -1
4338	str	x25, [x1, 16]
4339.L567:
4340	ldrh	w0, [x23]
4341	cmp	w21, w0
4342	bcc	.L572
4343	ldp	x19, x20, [sp, 16]
4344	mov	w0, 0
4345	ldp	x21, x22, [sp, 32]
4346	ldp	x23, x24, [sp, 48]
4347	ldp	x25, x26, [sp, 64]
4348	ldp	x27, x28, [sp, 80]
4349	ldp	x29, x30, [sp], 112
4350	ret
4351.L572:
4352	ldrh	w19, [x26, #:lo12:.LANCHOR17]
4353	add	x24, x22, :lo12:.LANCHOR148
4354	strh	w27, [x20]
4355	mov	w3, 61664
4356	sub	w19, w19, #1
4357	and	w19, w19, 65535
4358.L568:
4359	ldrh	w0, [x28]
4360	sub	w1, w0, #15
4361	cmp	w1, w19
4362	bgt	.L570
4363	madd	w0, w0, w21, w19
4364	mov	w2, 1
4365	str	w3, [x29, 108]
4366	mov	w1, w2
4367	lsl	w0, w0, 10
4368	str	w0, [x24, 4]
4369	mov	x0, x24
4370	bl	FlashReadPages
4371	ldr	w0, [x24]
4372	ldr	w3, [x29, 108]
4373	cmn	w0, #1
4374	beq	.L569
4375	ldrh	w0, [x25]
4376	cmp	w0, w3
4377	bne	.L569
4378	strh	w19, [x20]
4379.L570:
4380	add	w21, w21, 1
4381	add	x20, x20, 2
4382	b	.L567
4383.L569:
4384	sub	w19, w19, #1
4385	and	w19, w19, 65535
4386	b	.L568
4387	.size	FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
4388	.section	.text.FtlGetLastWrittenPage,"ax",@progbits
4389	.align	2
4390	.global	FtlGetLastWrittenPage
4391	.type	FtlGetLastWrittenPage, %function
4392FtlGetLastWrittenPage:
4393	stp	x29, x30, [sp, -160]!
4394	cmp	w1, 1
4395	add	x29, sp, 0
4396	stp	x23, x24, [sp, 48]
4397	mov	w23, w1
4398	stp	x19, x20, [sp, 16]
4399	stp	x21, x22, [sp, 32]
4400	bne	.L578
4401	adrp	x1, .LANCHOR20
4402	ldrh	w19, [x1, #:lo12:.LANCHOR20]
4403.L579:
4404	adrp	x1, .LANCHOR121
4405	sub	w19, w19, #1
4406	sxth	w19, w19
4407	lsl	w21, w0, 10
4408	ldr	x1, [x1, #:lo12:.LANCHOR121]
4409	orr	w0, w19, w21
4410	str	x1, [x29, 72]
4411	add	x1, x29, 96
4412	str	w0, [x29, 68]
4413	mov	w2, w23
4414	str	x1, [x29, 80]
4415	add	x0, x29, 64
4416	mov	w1, 1
4417	bl	FlashReadPages
4418	ldr	w0, [x29, 96]
4419	cmn	w0, #1
4420	bne	.L580
4421	mov	w22, 0
4422	mov	w24, 2
4423.L581:
4424	cmp	w22, w19
4425	ble	.L584
4426.L580:
4427	mov	w0, w19
4428	ldp	x19, x20, [sp, 16]
4429	ldp	x21, x22, [sp, 32]
4430	ldp	x23, x24, [sp, 48]
4431	ldp	x29, x30, [sp], 160
4432	ret
4433.L578:
4434	adrp	x1, .LANCHOR19
4435	ldrh	w19, [x1, #:lo12:.LANCHOR19]
4436	b	.L579
4437.L584:
4438	add	w20, w22, w19
4439	mov	w2, w23
4440	mov	w1, 1
4441	sdiv	w20, w20, w24
4442	sxth	w0, w20
4443	orr	w0, w0, w21
4444	str	w0, [x29, 68]
4445	add	x0, x29, 64
4446	bl	FlashReadPages
4447	ldr	w0, [x29, 96]
4448	cmn	w0, #1
4449	bne	.L582
4450	ldr	w0, [x29, 100]
4451	cmn	w0, #1
4452	bne	.L582
4453	ldr	w0, [x29, 64]
4454	cmn	w0, #1
4455	beq	.L582
4456	sub	w19, w20, #1
4457	sxth	w19, w19
4458	b	.L581
4459.L582:
4460	add	w20, w20, 1
4461	sxth	w22, w20
4462	b	.L581
4463	.size	FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
4464	.section	.text.FtlScanSysBlk,"ax",@progbits
4465	.align	2
4466	.global	FtlScanSysBlk
4467	.type	FtlScanSysBlk, %function
4468FtlScanSysBlk:
4469	stp	x29, x30, [sp, -176]!
4470	mov	w1, 0
4471	add	x29, sp, 0
4472	stp	x25, x26, [sp, 64]
4473	adrp	x25, .LANCHOR135
4474	stp	x21, x22, [sp, 32]
4475	adrp	x21, .LANCHOR30
4476	ldr	x0, [x25, #:lo12:.LANCHOR135]
4477	adrp	x22, .LANCHOR132
4478	ldr	w2, [x21, #:lo12:.LANCHOR30]
4479	stp	x19, x20, [sp, 16]
4480	adrp	x20, .LANCHOR141
4481	stp	x23, x24, [sp, 48]
4482	adrp	x23, .LANCHOR35
4483	stp	x27, x28, [sp, 80]
4484	adrp	x27, .LANCHOR129
4485	lsl	w2, w2, 2
4486	strh	wzr, [x20, #:lo12:.LANCHOR141]
4487	strh	wzr, [x23, #:lo12:.LANCHOR35]
4488	bl	ftl_memset
4489	ldr	x0, [x27, #:lo12:.LANCHOR129]
4490	mov	w1, 0
4491	ldr	w2, [x21, #:lo12:.LANCHOR30]
4492	adrp	x19, .LANCHOR27
4493	adrp	x28, .LANCHOR36
4494	adrp	x24, .LANCHOR79
4495	lsl	w2, w2, 1
4496	bl	ftl_memset
4497	ldr	x0, [x22, #:lo12:.LANCHOR132]
4498	mov	w1, 0
4499	ldrh	w2, [x19, #:lo12:.LANCHOR27]
4500	lsl	w2, w2, 2
4501	bl	ftl_memset
4502	ldr	x0, [x28, #:lo12:.LANCHOR36]
4503	mov	w1, 0
4504	ldrh	w2, [x19, #:lo12:.LANCHOR27]
4505	lsl	w2, w2, 1
4506	bl	ftl_memset
4507	mov	w2, 12
4508	mov	w1, 255
4509	add	x0, x24, :lo12:.LANCHOR79
4510	bl	ftl_memset
4511	adrp	x0, .LANCHOR5
4512	stp	x22, x25, [x29, 144]
4513	str	x27, [x29, 160]
4514	ldrh	w0, [x0, #:lo12:.LANCHOR5]
4515	str	w0, [x29, 172]
4516	adrp	x0, .LANCHOR6
4517	add	x0, x0, :lo12:.LANCHOR6
4518	str	x0, [x29, 120]
4519	adrp	x0, .LANCHOR70
4520	add	x0, x0, :lo12:.LANCHOR70
4521	str	x0, [x29, 112]
4522.L590:
4523	ldr	x0, [x29, 120]
4524	ldr	w1, [x29, 172]
4525	ldrh	w0, [x0]
4526	cmp	w0, w1
4527	bls	.L630
4528	adrp	x0, .LANCHOR3
4529	adrp	x25, .LANCHOR112
4530	adrp	x6, .LANCHOR13
4531	mov	x5, 0
4532	ldrh	w12, [x0, #:lo12:.LANCHOR3]
4533	adrp	x0, .LANCHOR91
4534	ldr	x7, [x25, #:lo12:.LANCHOR112]
4535	mov	w22, 0
4536	ldr	x11, [x0, #:lo12:.LANCHOR91]
4537	adrp	x0, .LANCHOR92
4538	add	x6, x6, :lo12:.LANCHOR13
4539	ldr	x10, [x0, #:lo12:.LANCHOR92]
4540	adrp	x0, .LANCHOR24
4541	ldrh	w8, [x0, #:lo12:.LANCHOR24]
4542	b	.L631
4543.L592:
4544	ldrh	w1, [x29, 172]
4545	ldrb	w0, [x6, x5]
4546	bl	V2P_block
4547	and	w4, w0, 65535
4548	bl	FtlBbmIsBadBlock
4549	cbnz	w0, .L591
4550	ubfiz	x0, x22, 5, 16
4551	mul	w1, w22, w8
4552	add	x0, x7, x0
4553	add	w22, w22, 1
4554	and	w22, w22, 65535
4555	lsl	w4, w4, 10
4556	asr	w1, w1, 2
4557	add	x1, x10, x1, sxtw 2
4558	str	w4, [x0, 4]
4559	stp	x11, x1, [x0, 8]
4560.L591:
4561	add	x5, x5, 1
4562.L631:
4563	cmp	w12, w5, uxth
4564	bhi	.L592
4565	cbnz	w22, .L593
4566.L629:
4567	ldr	w0, [x29, 172]
4568	add	w26, w0, 1
4569	and	w0, w26, 65535
4570	str	w0, [x29, 172]
4571	b	.L590
4572.L593:
4573	mov	w1, w22
4574	mov	w2, 1
4575	mov	x0, x7
4576	bl	FlashReadPages
4577	ubfiz	x0, x22, 5, 16
4578	mov	x22, 0
4579	str	x0, [x29, 128]
4580	adrp	x0, .LANCHOR149
4581	add	x0, x0, :lo12:.LANCHOR149
4582	str	x0, [x29, 136]
4583.L628:
4584	ldr	x0, [x25, #:lo12:.LANCHOR112]
4585	add	x1, x0, x22
4586	ldr	w0, [x0, x22]
4587	ldr	w3, [x1, 4]
4588	cmn	w0, #1
4589	ldr	x27, [x1, 16]
4590	ubfx	x26, x3, 10, 16
4591	bne	.L596
4592	mov	w5, 16
4593	mov	w7, 65535
4594.L598:
4595	ldr	x0, [x25, #:lo12:.LANCHOR112]
4596	add	x6, x25, :lo12:.LANCHOR112
4597	mov	w2, 1
4598	str	w7, [x29, 100]
4599	add	x0, x0, x22
4600	str	x6, [x29, 104]
4601	str	w5, [x29, 168]
4602	ldr	w1, [x0, 4]
4603	add	w1, w1, 1
4604	str	w1, [x0, 4]
4605	mov	w1, w2
4606	bl	FlashReadPages
4607	ldrh	w0, [x27]
4608	ldr	w7, [x29, 100]
4609	ldr	w5, [x29, 168]
4610	cmp	w0, w7
4611	ldr	x6, [x29, 104]
4612	bne	.L595
4613	ldr	x0, [x6]
4614	mov	w1, -1
4615	str	w1, [x0, x22]
4616	ldr	x0, [x6]
4617	ldr	w0, [x0, x22]
4618	cmp	w0, w1
4619	bne	.L596
4620.L597:
4621	mov	w1, 1
4622	b	.L667
4623.L595:
4624	ldr	x0, [x25, #:lo12:.LANCHOR112]
4625	ldr	w0, [x0, x22]
4626	cmn	w0, #1
4627	bne	.L596
4628	sub	w5, w5, #1
4629	ands	w5, w5, 65535
4630	bne	.L598
4631	b	.L597
4632.L596:
4633	adrp	x0, .LANCHOR70
4634	ldr	w1, [x0, #:lo12:.LANCHOR70]
4635	ldr	w0, [x27, 4]
4636	cmn	w1, #1
4637	beq	.L599
4638	cmp	w1, w0
4639	bhi	.L600
4640.L599:
4641	cmn	w0, #1
4642	beq	.L600
4643	ldr	x2, [x29, 112]
4644	add	w1, w0, 1
4645	str	w1, [x2]
4646.L600:
4647	ldrh	w1, [x27]
4648	mov	w2, 61604
4649	cmp	w1, w2
4650	beq	.L602
4651	bhi	.L603
4652	mov	w0, 61574
4653	cmp	w1, w0
4654	beq	.L604
4655.L601:
4656	ldr	x0, [x29, 128]
4657	add	x22, x22, 32
4658	cmp	x0, x22
4659	bne	.L628
4660	b	.L629
4661.L603:
4662	mov	w0, 61634
4663	cmp	w1, w0
4664	beq	.L605
4665	mov	w0, 65535
4666	cmp	w1, w0
4667	bne	.L601
4668	mov	w1, 0
4669.L667:
4670	mov	w0, w26
4671	bl	FtlFreeSysBlkQueueIn
4672	b	.L601
4673.L605:
4674	ldrh	w1, [x20, #:lo12:.LANCHOR141]
4675	ldr	w0, [x21, #:lo12:.LANCHOR30]
4676	cmp	w1, w0
4677	bls	.L607
4678	ldr	x1, [x29, 136]
4679	adrp	x0, .LC1
4680	mov	w2, 1222
4681	add	x0, x0, :lo12:.LC1
4682	bl	printf
4683.L607:
4684	ldr	w6, [x21, #:lo12:.LANCHOR30]
4685	ldr	x3, [x29, 152]
4686	ldrh	w1, [x20, #:lo12:.LANCHOR141]
4687	and	w2, w6, 65535
4688	sub	w0, w2, #1
4689	sub	w2, w2, w1
4690	sxth	x0, w0
4691	sub	w2, w2, #1
4692	ldr	x5, [x3, #:lo12:.LANCHOR135]
4693	sxth	w2, w2
4694.L608:
4695	cmp	w0, w2
4696	bgt	.L614
4697	tbz	w0, #31, .L648
4698	b	.L601
4699.L614:
4700	sxtw	x8, w0
4701	ldr	w11, [x27, 4]
4702	lsl	x7, x8, 2
4703	add	x10, x5, x7
4704	ldr	w7, [x5, x7]
4705	cmp	w11, w7
4706	bls	.L609
4707	ldr	w2, [x5]
4708	cbnz	w2, .L610
4709	cmp	w6, w1
4710	beq	.L610
4711	add	w1, w1, 1
4712	strh	w1, [x20, #:lo12:.LANCHOR141]
4713.L610:
4714	ldr	x1, [x29, 160]
4715	ldr	x6, [x1, #:lo12:.LANCHOR129]
4716	mov	w1, 0
4717.L611:
4718	cmp	w1, w0
4719	bne	.L612
4720	ldr	w1, [x27, 4]
4721	str	w1, [x10]
4722	strh	w26, [x6, x8, lsl 1]
4723	tbnz	w0, #31, .L601
4724	ldrh	w1, [x20, #:lo12:.LANCHOR141]
4725	ldr	w2, [x21, #:lo12:.LANCHOR30]
4726	sub	w2, w2, w1
4727	sub	w2, w2, #1
4728	cmp	w0, w2, sxth
4729	bgt	.L601
4730.L648:
4731	add	w1, w1, 1
4732	strh	w1, [x20, #:lo12:.LANCHOR141]
4733	ldr	w1, [x27, 4]
4734	str	w1, [x5, x0, lsl 2]
4735	ldr	x1, [x29, 160]
4736	ldr	x1, [x1, #:lo12:.LANCHOR129]
4737.L666:
4738	strh	w26, [x1, x0, lsl 1]
4739	b	.L601
4740.L612:
4741	sxtw	x2, w1
4742	add	w1, w1, 1
4743	lsl	x7, x2, 2
4744	lsl	x2, x2, 1
4745	add	x11, x5, x7
4746	sxth	w1, w1
4747	ldr	w11, [x11, 4]
4748	str	w11, [x5, x7]
4749	add	x7, x6, x2
4750	ldrh	w7, [x7, 2]
4751	strh	w7, [x6, x2]
4752	b	.L611
4753.L609:
4754	sub	w0, w0, #1
4755	sxth	x0, w0
4756	b	.L608
4757.L604:
4758	ldrh	w1, [x23, #:lo12:.LANCHOR35]
4759	ldrh	w0, [x19, #:lo12:.LANCHOR27]
4760	cmp	w1, w0
4761	bls	.L617
4762	ldr	x1, [x29, 136]
4763	adrp	x0, .LC1
4764	mov	w2, 1263
4765	add	x0, x0, :lo12:.LC1
4766	bl	printf
4767.L617:
4768	ldrh	w6, [x19, #:lo12:.LANCHOR27]
4769	ldrh	w2, [x23, #:lo12:.LANCHOR35]
4770	sub	w1, w6, #1
4771	sxth	x0, w1
4772	sub	w5, w1, w2
4773	ldr	x1, [x29, 144]
4774	ldr	x1, [x1, #:lo12:.LANCHOR132]
4775.L618:
4776	cmp	w0, w5
4777	ble	.L623
4778	sxtw	x7, w0
4779	ldr	w11, [x27, 4]
4780	lsl	x8, x7, 2
4781	add	x10, x1, x8
4782	ldr	w8, [x1, x8]
4783	cmp	w11, w8
4784	bls	.L619
4785	ldr	w5, [x1]
4786	cbnz	w5, .L620
4787	cmp	w6, w2
4788	beq	.L620
4789	add	w2, w2, 1
4790	strh	w2, [x23, #:lo12:.LANCHOR35]
4791.L620:
4792	ldr	x6, [x28, #:lo12:.LANCHOR36]
4793	mov	w2, 0
4794.L621:
4795	cmp	w2, w0
4796	bne	.L622
4797	ldr	w2, [x27, 4]
4798	str	w2, [x10]
4799	strh	w26, [x6, x7, lsl 1]
4800.L623:
4801	tbnz	w0, #31, .L601
4802	ldrh	w2, [x19, #:lo12:.LANCHOR27]
4803	ldrh	w5, [x23, #:lo12:.LANCHOR35]
4804	sub	w2, w2, #1
4805	sub	w2, w2, w5
4806	cmp	w0, w2, sxth
4807	bgt	.L601
4808	add	w5, w5, 1
4809	ldr	w2, [x27, 4]
4810	strh	w5, [x23, #:lo12:.LANCHOR35]
4811	str	w2, [x1, x0, lsl 2]
4812	ldr	x1, [x28, #:lo12:.LANCHOR36]
4813	b	.L666
4814.L622:
4815	sxtw	x5, w2
4816	add	w2, w2, 1
4817	lsl	x8, x5, 2
4818	lsl	x5, x5, 1
4819	add	x11, x1, x8
4820	sxth	w2, w2
4821	ldr	w11, [x11, 4]
4822	str	w11, [x1, x8]
4823	add	x8, x6, x5
4824	ldrh	w8, [x8, 2]
4825	strh	w8, [x6, x5]
4826	b	.L621
4827.L619:
4828	sub	w0, w0, #1
4829	sxth	x0, w0
4830	b	.L618
4831.L602:
4832	ldrh	w5, [x24, #:lo12:.LANCHOR79]
4833	mov	w1, 65535
4834	add	x2, x24, :lo12:.LANCHOR79
4835	cmp	w5, w1
4836	bne	.L625
4837	strh	w26, [x24, #:lo12:.LANCHOR79]
4838	str	w0, [x2, 8]
4839	b	.L601
4840.L625:
4841	ldrh	w0, [x2, 4]
4842	cmp	w0, w1
4843	beq	.L626
4844	mov	w1, 1
4845	bl	FtlFreeSysBlkQueueIn
4846.L626:
4847	add	x0, x24, :lo12:.LANCHOR79
4848	ldr	w1, [x27, 4]
4849	ldr	w2, [x0, 8]
4850	cmp	w2, w1
4851	bcs	.L627
4852	ldrh	w2, [x24, #:lo12:.LANCHOR79]
4853	strh	w2, [x0, 4]
4854	strh	w26, [x24, #:lo12:.LANCHOR79]
4855	str	w1, [x0, 8]
4856	b	.L601
4857.L627:
4858	strh	w26, [x0, 4]
4859	b	.L601
4860.L630:
4861	ldr	x0, [x29, 160]
4862	ldr	x2, [x0, #:lo12:.LANCHOR129]
4863	ldrh	w0, [x2]
4864	cbz	w0, .L632
4865.L635:
4866	ldr	x1, [x28, #:lo12:.LANCHOR36]
4867	ldrh	w0, [x1]
4868	cbz	w0, .L633
4869.L634:
4870	ldrh	w1, [x20, #:lo12:.LANCHOR141]
4871	ldr	w0, [x21, #:lo12:.LANCHOR30]
4872	cmp	w1, w0
4873	bls	.L664
4874	adrp	x1, .LANCHOR149
4875	adrp	x0, .LC1
4876	mov	w2, 1388
4877	add	x1, x1, :lo12:.LANCHOR149
4878	add	x0, x0, :lo12:.LC1
4879	bl	printf
4880.L664:
4881	ldp	x19, x20, [sp, 16]
4882	mov	w0, 0
4883	ldp	x21, x22, [sp, 32]
4884	ldp	x23, x24, [sp, 48]
4885	ldp	x25, x26, [sp, 64]
4886	ldp	x27, x28, [sp, 80]
4887	ldp	x29, x30, [sp], 176
4888	ret
4889.L632:
4890	ldrh	w0, [x20, #:lo12:.LANCHOR141]
4891	cbz	w0, .L635
4892	ldr	w1, [x21, #:lo12:.LANCHOR30]
4893	mov	w0, 0
4894.L636:
4895	cmp	w0, w1
4896	bcs	.L635
4897	ldrh	w3, [x2, w0, sxtw 1]
4898	cbz	w3, .L637
4899	ldr	x1, [x29, 152]
4900	add	x7, x21, :lo12:.LANCHOR30
4901	ldr	x4, [x1, #:lo12:.LANCHOR135]
4902	mov	w1, w0
4903.L638:
4904	ldr	w3, [x7]
4905	cmp	w1, w3
4906	bcs	.L635
4907	sxtw	x6, w1
4908	sub	w3, w1, w0
4909	lsl	x5, x6, 1
4910	sxtw	x3, w3
4911	add	w1, w1, 1
4912	ldr	w6, [x4, x6, lsl 2]
4913	sxth	w1, w1
4914	ldrh	w8, [x2, x5]
4915	strh	w8, [x2, x3, lsl 1]
4916	str	w6, [x4, x3, lsl 2]
4917	strh	wzr, [x2, x5]
4918	b	.L638
4919.L637:
4920	add	w0, w0, 1
4921	sxth	w0, w0
4922	b	.L636
4923.L633:
4924	ldrh	w0, [x23, #:lo12:.LANCHOR35]
4925	cbz	w0, .L634
4926	ldrh	w2, [x19, #:lo12:.LANCHOR27]
4927	mov	w0, 0
4928.L643:
4929	mov	w6, w0
4930	cmp	w0, w2
4931	bge	.L634
4932	ldrh	w3, [x1, w0, sxtw 1]
4933	cbz	w3, .L644
4934	ldr	x2, [x29, 144]
4935	add	x19, x19, :lo12:.LANCHOR27
4936	ldr	x3, [x2, #:lo12:.LANCHOR132]
4937.L645:
4938	ldrh	w2, [x19]
4939	cmp	w0, w2
4940	bge	.L634
4941	sxtw	x5, w0
4942	sub	w2, w0, w6
4943	lsl	x4, x5, 1
4944	sxtw	x2, w2
4945	add	w0, w0, 1
4946	ldr	w5, [x3, x5, lsl 2]
4947	sxth	w0, w0
4948	ldrh	w7, [x1, x4]
4949	strh	w7, [x1, x2, lsl 1]
4950	str	w5, [x3, x2, lsl 2]
4951	strh	wzr, [x1, x4]
4952	b	.L645
4953.L644:
4954	add	w0, w0, 1
4955	sxth	w0, w0
4956	b	.L643
4957	.size	FtlScanSysBlk, .-FtlScanSysBlk
4958	.section	.text.FtlLoadBbt,"ax",@progbits
4959	.align	2
4960	.global	FtlLoadBbt
4961	.type	FtlLoadBbt, %function
4962FtlLoadBbt:
4963	stp	x29, x30, [sp, -80]!
4964	add	x29, sp, 0
4965	stp	x23, x24, [sp, 48]
4966	adrp	x23, .LANCHOR115
4967	stp	x19, x20, [sp, 16]
4968	adrp	x24, .LANCHOR17
4969	stp	x21, x22, [sp, 32]
4970	adrp	x22, .LANCHOR148
4971	add	x20, x22, :lo12:.LANCHOR148
4972	ldr	x0, [x23, #:lo12:.LANCHOR115]
4973	str	x25, [sp, 64]
4974	mov	w25, 61649
4975	str	x0, [x20, 8]
4976	adrp	x0, .LANCHOR123
4977	ldr	x21, [x0, #:lo12:.LANCHOR123]
4978	str	x21, [x20, 16]
4979	bl	FtlBbtMemInit
4980	ldrh	w19, [x24, #:lo12:.LANCHOR17]
4981	add	x24, x24, :lo12:.LANCHOR17
4982	sub	w19, w19, #1
4983	and	w19, w19, 65535
4984.L669:
4985	ldrh	w0, [x24]
4986	sub	w0, w0, #15
4987	cmp	w0, w19
4988	bgt	.L672
4989	lsl	w0, w19, 10
4990	mov	w2, 1
4991	str	w0, [x20, 4]
4992	mov	w1, w2
4993	mov	x0, x20
4994	bl	FlashReadPages
4995	ldr	w0, [x20]
4996	cmn	w0, #1
4997	bne	.L670
4998	ldr	w0, [x20, 4]
4999	mov	w2, 1
5000	mov	w1, w2
5001	add	w0, w0, 1
5002	str	w0, [x20, 4]
5003	mov	x0, x20
5004	bl	FlashReadPages
5005.L670:
5006	ldr	w0, [x20]
5007	cmn	w0, #1
5008	beq	.L671
5009	ldrh	w0, [x21]
5010	cmp	w0, w25
5011	bne	.L671
5012	adrp	x1, .LANCHOR37
5013	add	x0, x1, :lo12:.LANCHOR37
5014	strh	w19, [x1, #:lo12:.LANCHOR37]
5015	ldr	w1, [x21, 4]
5016	str	w1, [x0, 8]
5017	ldrh	w1, [x21, 8]
5018	strh	w1, [x0, 4]
5019.L672:
5020	adrp	x19, .LANCHOR37
5021	mov	w0, 65535
5022	add	x20, x19, :lo12:.LANCHOR37
5023	ldrh	w1, [x19, #:lo12:.LANCHOR37]
5024	cmp	w1, w0
5025	beq	.L686
5026	ldrh	w1, [x20, 4]
5027	cmp	w1, w0
5028	beq	.L676
5029	add	x0, x22, :lo12:.LANCHOR148
5030	lsl	w1, w1, 10
5031	mov	w2, 1
5032	str	w1, [x0, 4]
5033	mov	w1, w2
5034	bl	FlashReadPages
5035	ldr	w0, [x22, #:lo12:.LANCHOR148]
5036	cmn	w0, #1
5037	beq	.L676
5038	ldrh	w1, [x21]
5039	mov	w0, 61649
5040	cmp	w1, w0
5041	bne	.L676
5042	ldr	w1, [x20, 8]
5043	ldr	w0, [x21, 4]
5044	cmp	w0, w1
5045	bls	.L676
5046	ldrh	w1, [x20, 4]
5047	str	w0, [x20, 8]
5048	ldrh	w0, [x21, 8]
5049	strh	w1, [x19, #:lo12:.LANCHOR37]
5050	strh	w0, [x20, 4]
5051.L676:
5052	ldrh	w0, [x19, #:lo12:.LANCHOR37]
5053	add	x24, x19, :lo12:.LANCHOR37
5054	mov	w1, 1
5055	mov	w25, 61649
5056	bl	FtlGetLastWrittenPage
5057	sxth	w20, w0
5058	add	w0, w0, 1
5059	strh	w0, [x24, 2]
5060	add	x24, x22, :lo12:.LANCHOR148
5061.L678:
5062	tbz	w20, #31, .L681
5063	adrp	x1, .LANCHOR150
5064	adrp	x0, .LC1
5065	mov	w2, 253
5066	add	x1, x1, :lo12:.LANCHOR150
5067	add	x0, x0, :lo12:.LC1
5068	bl	printf
5069.L680:
5070	add	x0, x19, :lo12:.LANCHOR37
5071	ldrh	w1, [x21, 10]
5072	strh	w1, [x0, 6]
5073	mov	w1, 65535
5074	ldrh	w0, [x21, 12]
5075	cmp	w0, w1
5076	beq	.L683
5077	adrp	x1, .LANCHOR2
5078	ldr	w2, [x1, #:lo12:.LANCHOR2]
5079	cmp	w0, w2
5080	beq	.L683
5081	adrp	x1, .LANCHOR6
5082	ldrh	w1, [x1, #:lo12:.LANCHOR6]
5083	lsr	w1, w1, 2
5084	cmp	w2, w1
5085	bcs	.L683
5086	cmp	w0, w1
5087	bcs	.L683
5088	bl	FtlSysBlkNumInit
5089.L683:
5090	add	x19, x19, :lo12:.LANCHOR37
5091	adrp	x21, .LANCHOR10
5092	adrp	x23, .LANCHOR137
5093	add	x19, x19, 32
5094	add	x21, x21, :lo12:.LANCHOR10
5095	add	x23, x23, :lo12:.LANCHOR137
5096	add	x22, x22, :lo12:.LANCHOR148
5097	mov	w20, 0
5098.L684:
5099	ldrh	w0, [x21]
5100	cmp	w20, w0
5101	bcc	.L685
5102	mov	w0, 0
5103.L668:
5104	ldp	x19, x20, [sp, 16]
5105	ldp	x21, x22, [sp, 32]
5106	ldp	x23, x24, [sp, 48]
5107	ldr	x25, [sp, 64]
5108	ldp	x29, x30, [sp], 80
5109	ret
5110.L671:
5111	sub	w19, w19, #1
5112	and	w19, w19, 65535
5113	b	.L669
5114.L681:
5115	ldrh	w0, [x19, #:lo12:.LANCHOR37]
5116	mov	w2, 1
5117	mov	w1, w2
5118	orr	w0, w20, w0, lsl 10
5119	str	w0, [x24, 4]
5120	ldr	x0, [x23, #:lo12:.LANCHOR115]
5121	str	x0, [x24, 8]
5122	mov	x0, x24
5123	bl	FlashReadPages
5124	ldr	w0, [x24]
5125	cmn	w0, #1
5126	beq	.L679
5127	ldrh	w0, [x21]
5128	cmp	w0, w25
5129	beq	.L680
5130.L679:
5131	sub	w20, w20, #1
5132	sxth	w20, w20
5133	b	.L678
5134.L685:
5135	ldrh	w2, [x23]
5136	ldr	x0, [x22, 8]
5137	mul	w1, w2, w20
5138	lsl	w2, w2, 2
5139	add	w20, w20, 1
5140	add	x1, x0, x1, lsl 2
5141	ldr	x0, [x19], 8
5142	bl	ftl_memcpy
5143	b	.L684
5144.L686:
5145	mov	w0, -1
5146	b	.L668
5147	.size	FtlLoadBbt, .-FtlLoadBbt
5148	.section	.text.FtlLoadSysInfo,"ax",@progbits
5149	.align	2
5150	.global	FtlLoadSysInfo
5151	.type	FtlLoadSysInfo, %function
5152FtlLoadSysInfo:
5153	stp	x29, x30, [sp, -96]!
5154	mov	w1, 0
5155	add	x29, sp, 0
5156	stp	x19, x20, [sp, 16]
5157	adrp	x19, .LANCHOR148
5158	stp	x23, x24, [sp, 48]
5159	adrp	x23, .LANCHOR115
5160	stp	x21, x22, [sp, 32]
5161	add	x21, x19, :lo12:.LANCHOR148
5162	stp	x25, x26, [sp, 64]
5163	adrp	x26, .LANCHOR123
5164	stp	x27, x28, [sp, 80]
5165	adrp	x25, .LANCHOR42
5166	ldr	x0, [x23, #:lo12:.LANCHOR115]
5167	adrp	x24, .LANCHOR5
5168	str	x0, [x21, 8]
5169	adrp	x20, .LANCHOR79
5170	ldr	x0, [x26, #:lo12:.LANCHOR123]
5171	str	x0, [x21, 16]
5172	ldr	x0, [x25, #:lo12:.LANCHOR42]
5173	ldrh	w2, [x24, #:lo12:.LANCHOR5]
5174	lsl	w2, w2, 1
5175	bl	ftl_memset
5176	ldrh	w0, [x20, #:lo12:.LANCHOR79]
5177	mov	w1, 65535
5178	cmp	w0, w1
5179	bne	.L699
5180.L707:
5181	mov	w0, -1
5182.L698:
5183	ldp	x19, x20, [sp, 16]
5184	ldp	x21, x22, [sp, 32]
5185	ldp	x23, x24, [sp, 48]
5186	ldp	x25, x26, [sp, 64]
5187	ldp	x27, x28, [sp, 80]
5188	ldp	x29, x30, [sp], 96
5189	ret
5190.L699:
5191	add	x27, x20, :lo12:.LANCHOR79
5192	mov	w1, 1
5193	bl	FtlGetLastWrittenPage
5194	sxth	w22, w0
5195	add	w0, w0, 1
5196	mov	w28, 61604
5197	strh	w0, [x27, 2]
5198	mov	w27, 19539
5199	movk	w27, 0x4654, lsl 16
5200.L701:
5201	tbz	w22, #31, .L704
5202	adrp	x1, .LANCHOR151
5203	adrp	x0, .LC1
5204	mov	w2, 1448
5205	add	x1, x1, :lo12:.LANCHOR151
5206	add	x0, x0, :lo12:.LC1
5207	bl	printf
5208.L703:
5209	adrp	x1, .LANCHOR23
5210	ldrh	w0, [x24, #:lo12:.LANCHOR5]
5211	ldrh	w1, [x1, #:lo12:.LANCHOR23]
5212	add	x0, x0, 24
5213	cmp	x1, x0, lsl 1
5214	bcs	.L706
5215	adrp	x1, .LANCHOR151
5216	adrp	x0, .LC1
5217	mov	w2, 1450
5218	add	x1, x1, :lo12:.LANCHOR151
5219	add	x0, x0, :lo12:.LC1
5220	bl	printf
5221.L706:
5222	add	x22, x19, :lo12:.LANCHOR148
5223	adrp	x19, .LANCHOR39
5224	add	x21, x19, :lo12:.LANCHOR39
5225	mov	w2, 48
5226	mov	x0, x21
5227	ldr	x1, [x22, 8]
5228	bl	ftl_memcpy
5229	ldr	x0, [x25, #:lo12:.LANCHOR42]
5230	ldrh	w2, [x24, #:lo12:.LANCHOR5]
5231	ldr	x1, [x22, 8]
5232	lsl	w2, w2, 1
5233	add	x1, x1, 48
5234	bl	ftl_memcpy
5235	ldrh	w1, [x24, #:lo12:.LANCHOR5]
5236	ldr	x0, [x22, 8]
5237	lsr	w2, w1, 3
5238	ubfiz	x1, x1, 1, 16
5239	add	x1, x1, 48
5240	add	w2, w2, 4
5241	and	x1, x1, -4
5242	add	x1, x0, x1
5243	adrp	x0, .LANCHOR1
5244	ldr	x0, [x0, #:lo12:.LANCHOR1]
5245	bl	ftl_memcpy
5246	ldr	w1, [x19, #:lo12:.LANCHOR39]
5247	mov	w0, 19539
5248	movk	w0, 0x4654, lsl 16
5249	cmp	w1, w0
5250	bne	.L707
5251	add	x20, x20, :lo12:.LANCHOR79
5252	adrp	x0, .LANCHOR10
5253	ldrh	w1, [x21, 8]
5254	ldrb	w2, [x21, 10]
5255	ldrh	w0, [x0, #:lo12:.LANCHOR10]
5256	strh	w1, [x20, 6]
5257	cmp	w2, w0
5258	bne	.L707
5259	adrp	x0, .LANCHOR152
5260	adrp	x2, .LANCHOR61
5261	adrp	x3, .LANCHOR3
5262	str	w1, [x0, #:lo12:.LANCHOR152]
5263	adrp	x0, .LANCHOR19
5264	ldrh	w3, [x3, #:lo12:.LANCHOR3]
5265	ldrh	w0, [x0, #:lo12:.LANCHOR19]
5266	mul	w0, w0, w1
5267	str	w0, [x2, #:lo12:.LANCHOR61]
5268	adrp	x2, .LANCHOR12
5269	ldrh	w2, [x2, #:lo12:.LANCHOR12]
5270	mul	w0, w2, w0
5271	adrp	x2, .LANCHOR34
5272	str	w0, [x2, #:lo12:.LANCHOR34]
5273	adrp	x0, .LANCHOR7
5274	ldr	w2, [x0, #:lo12:.LANCHOR7]
5275	adrp	x0, .LANCHOR37+6
5276	ldrh	w0, [x0, #:lo12:.LANCHOR37+6]
5277	cmp	w1, w2
5278	sub	w0, w2, w0
5279	sub	w0, w0, w1
5280	udiv	w0, w0, w3
5281	adrp	x3, .LANCHOR78
5282	strh	w0, [x3, #:lo12:.LANCHOR78]
5283	bls	.L708
5284	adrp	x1, .LANCHOR151
5285	adrp	x0, .LC1
5286	mov	w2, 1472
5287	add	x1, x1, :lo12:.LANCHOR151
5288	add	x0, x0, :lo12:.LC1
5289	bl	printf
5290.L708:
5291	add	x1, x19, :lo12:.LANCHOR39
5292	adrp	x0, .LANCHOR51
5293	add	x3, x0, :lo12:.LANCHOR51
5294	adrp	x20, .LANCHOR80
5295	ldrh	w2, [x1, 16]
5296	ldrh	w6, [x1, 14]
5297	strh	w6, [x0, #:lo12:.LANCHOR51]
5298	lsr	w4, w2, 6
5299	and	w2, w2, 63
5300	strb	w2, [x3, 6]
5301	ldrb	w2, [x1, 11]
5302	strb	w2, [x3, 8]
5303	add	x2, x20, :lo12:.LANCHOR80
5304	strh	w4, [x3, 2]
5305	mov	w3, -1
5306	strh	w3, [x20, #:lo12:.LANCHOR80]
5307	strh	wzr, [x2, 2]
5308	strb	wzr, [x2, 6]
5309	strb	wzr, [x2, 8]
5310	adrp	x2, .LANCHOR52
5311	ldrh	w3, [x1, 18]
5312	add	x4, x2, :lo12:.LANCHOR52
5313	strh	w3, [x2, #:lo12:.LANCHOR52]
5314	mov	x21, x2
5315	ldrh	w3, [x1, 20]
5316	lsr	w5, w3, 6
5317	and	w3, w3, 63
5318	strb	w3, [x4, 6]
5319	ldrb	w3, [x1, 12]
5320	strh	w5, [x4, 2]
5321	strb	w3, [x4, 8]
5322	adrp	x4, .LANCHOR53
5323	ldrh	w3, [x1, 22]
5324	add	x5, x4, :lo12:.LANCHOR53
5325	strh	w3, [x4, #:lo12:.LANCHOR53]
5326	mov	x22, x4
5327	ldrh	w3, [x1, 24]
5328	lsr	w7, w3, 6
5329	and	w3, w3, 63
5330	strb	w3, [x5, 6]
5331	ldrb	w3, [x1, 13]
5332	strb	w3, [x5, 8]
5333	adrp	x3, .LANCHOR67
5334	strh	w7, [x5, 2]
5335	ldr	w5, [x1, 32]
5336	str	wzr, [x3, #:lo12:.LANCHOR67]
5337	adrp	x3, .LANCHOR64
5338	str	wzr, [x3, #:lo12:.LANCHOR64]
5339	adrp	x3, .LANCHOR62
5340	str	wzr, [x3, #:lo12:.LANCHOR62]
5341	adrp	x3, .LANCHOR66
5342	str	wzr, [x3, #:lo12:.LANCHOR66]
5343	adrp	x3, .LANCHOR72
5344	str	w5, [x3, #:lo12:.LANCHOR72]
5345	adrp	x3, .LANCHOR73
5346	str	wzr, [x3, #:lo12:.LANCHOR73]
5347	adrp	x3, .LANCHOR76
5348	str	wzr, [x3, #:lo12:.LANCHOR76]
5349	adrp	x3, .LANCHOR65
5350	str	wzr, [x3, #:lo12:.LANCHOR65]
5351	ldr	w3, [x1, 40]
5352	adrp	x1, .LANCHOR70
5353	ldr	w5, [x1, #:lo12:.LANCHOR70]
5354	cmp	w3, w5
5355	bls	.L709
5356	str	w3, [x1, #:lo12:.LANCHOR70]
5357.L709:
5358	add	x19, x19, :lo12:.LANCHOR39
5359	adrp	x1, .LANCHOR71
5360	ldr	w3, [x1, #:lo12:.LANCHOR71]
5361	ldr	w2, [x19, 36]
5362	cmp	w2, w3
5363	bls	.L710
5364	str	w2, [x1, #:lo12:.LANCHOR71]
5365.L710:
5366	mov	w1, 65535
5367	cmp	w6, w1
5368	beq	.L711
5369	add	x0, x0, :lo12:.LANCHOR51
5370	bl	make_superblock
5371.L711:
5372	ldrh	w2, [x21, #:lo12:.LANCHOR52]
5373	mov	w1, 65535
5374	add	x0, x21, :lo12:.LANCHOR52
5375	cmp	w2, w1
5376	beq	.L712
5377	bl	make_superblock
5378.L712:
5379	ldrh	w2, [x22, #:lo12:.LANCHOR53]
5380	mov	w1, 65535
5381	add	x0, x22, :lo12:.LANCHOR53
5382	cmp	w2, w1
5383	beq	.L713
5384	bl	make_superblock
5385.L713:
5386	ldrh	w2, [x20, #:lo12:.LANCHOR80]
5387	mov	w1, 65535
5388	add	x0, x20, :lo12:.LANCHOR80
5389	cmp	w2, w1
5390	beq	.L714
5391	bl	make_superblock
5392.L714:
5393	mov	w0, 0
5394	b	.L698
5395.L704:
5396	ldrh	w0, [x20, #:lo12:.LANCHOR79]
5397	mov	w2, 1
5398	mov	w1, w2
5399	orr	w0, w22, w0, lsl 10
5400	str	w0, [x21, 4]
5401	ldr	x0, [x23, #:lo12:.LANCHOR115]
5402	str	x0, [x21, 8]
5403	mov	x0, x21
5404	bl	FlashReadPages
5405	ldr	w0, [x21]
5406	cmn	w0, #1
5407	beq	.L702
5408	ldr	x0, [x23, #:lo12:.LANCHOR115]
5409	ldr	w0, [x0]
5410	cmp	w0, w27
5411	bne	.L702
5412	ldr	x0, [x26, #:lo12:.LANCHOR123]
5413	ldrh	w0, [x0]
5414	cmp	w0, w28
5415	beq	.L703
5416.L702:
5417	sub	w22, w22, #1
5418	sxth	w22, w22
5419	b	.L701
5420	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
5421	.section	.text.FlashProgPages,"ax",@progbits
5422	.align	2
5423	.global	FlashProgPages
5424	.type	FlashProgPages, %function
5425FlashProgPages:
5426	stp	x29, x30, [sp, -160]!
5427	ubfiz	x1, x1, 5, 32
5428	add	x29, sp, 0
5429	stp	x21, x22, [sp, 32]
5430	adrp	x21, .LANCHOR0
5431	stp	x23, x24, [sp, 48]
5432	adrp	x22, .LANCHOR153
5433	stp	w3, w2, [x29, 104]
5434	add	x2, x21, :lo12:.LANCHOR0
5435	stp	x19, x20, [sp, 16]
5436	adrp	x24, .LANCHOR105
5437	stp	x27, x28, [sp, 80]
5438	mov	x19, x0
5439	ldrh	w23, [x2, 12]
5440	add	x20, x0, x1
5441	stp	x25, x26, [sp, 64]
5442	add	x22, x22, :lo12:.LANCHOR153
5443	mov	x25, x0
5444	add	x28, x24, :lo12:.LANCHOR105
5445	lsl	w27, w23, 3
5446.L721:
5447	cmp	x25, x20
5448	bne	.L734
5449	ldr	w0, [x29, 104]
5450	cbz	w0, .L747
5451	adrp	x21, .LANCHOR120
5452	adrp	x22, .LANCHOR122
5453	mov	x23, x21
5454	mov	x24, x22
5455.L736:
5456	cmp	x19, x20
5457	beq	.L747
5458	ldr	x1, [x21, #:lo12:.LANCHOR120]
5459	ldr	x0, [x22, #:lo12:.LANCHOR122]
5460	str	wzr, [x1]
5461	str	wzr, [x0]
5462	stp	x1, x0, [x29, 136]
5463	mov	w1, 1
5464	ldr	w2, [x19, 4]
5465	add	x0, x29, 128
5466	str	w2, [x29, 132]
5467	ldr	w2, [x29, 108]
5468	bl	FlashReadPages
5469	ldr	w26, [x29, 128]
5470	cmn	w26, #1
5471	bne	.L737
5472	ldr	w1, [x19, 4]
5473	adrp	x0, .LC85
5474	add	x0, x0, :lo12:.LC85
5475	bl	printf
5476	str	w26, [x19]
5477.L737:
5478	ldr	x0, [x19, 16]
5479	cbz	x0, .L738
5480	ldr	w2, [x0]
5481	ldr	x0, [x24, #:lo12:.LANCHOR122]
5482	ldr	w3, [x0]
5483	cmp	w2, w3
5484	beq	.L738
5485	ldr	w1, [x19, 4]
5486	adrp	x0, .LC86
5487	add	x0, x0, :lo12:.LC86
5488	bl	printf
5489	mov	w0, -1
5490	str	w0, [x19]
5491.L738:
5492	ldr	x0, [x19, 8]
5493	cbz	x0, .L739
5494	ldr	w2, [x0]
5495	ldr	x0, [x23, #:lo12:.LANCHOR120]
5496	ldr	w3, [x0]
5497	cmp	w2, w3
5498	beq	.L739
5499	ldr	w1, [x19, 4]
5500	adrp	x0, .LC87
5501	add	x0, x0, :lo12:.LC87
5502	bl	printf
5503	mov	w0, -1
5504	str	w0, [x19]
5505.L739:
5506	add	x19, x19, 32
5507	b	.L736
5508.L734:
5509	ldr	x0, [x25, 8]
5510	cbz	x0, .L722
5511	ldr	x0, [x25, 16]
5512	cbnz	x0, .L723
5513.L722:
5514	adrp	x0, .LC1
5515	mov	w2, 134
5516	mov	x1, x22
5517	add	x0, x0, :lo12:.LC1
5518	bl	printf
5519.L723:
5520	ldr	w0, [x25, 4]
5521	add	x2, x29, 120
5522	add	x1, x29, 124
5523	bl	l2p_addr_tran.isra.0
5524	ldr	w0, [x29, 120]
5525	cmp	w0, 3
5526	bls	.L724
5527.L760:
5528	mov	w0, -1
5529	str	w0, [x25]
5530	b	.L725
5531.L724:
5532	cbnz	w0, .L726
5533	ldr	w0, [x29, 124]
5534	cmp	w27, w0
5535	bls	.L726
5536	adrp	x21, .LANCHOR153
5537	adrp	x22, .LC79
5538	mov	w23, -1
5539	add	x21, x21, :lo12:.LANCHOR153
5540	add	x22, x22, :lo12:.LC79
5541	b	.L758
5542.L728:
5543	ldr	w2, [x19, 4]
5544	mov	x1, x21
5545	str	w23, [x19]
5546	mov	x0, x22
5547	add	x19, x19, 32
5548	bl	printf
5549	ldr	x1, [x19, -24]
5550	mov	w3, 16
5551	mov	w2, 4
5552	adrp	x0, .LC80
5553	add	x0, x0, :lo12:.LC80
5554	bl	rknand_print_hex
5555	ldr	x1, [x19, -16]
5556	mov	w3, 4
5557	adrp	x0, .LC81
5558	mov	w2, w3
5559	add	x0, x0, :lo12:.LC81
5560	bl	rknand_print_hex
5561.L758:
5562	cmp	x19, x20
5563	bne	.L728
5564.L747:
5565	ldp	x19, x20, [sp, 16]
5566	mov	w0, 0
5567	ldp	x21, x22, [sp, 32]
5568	ldp	x23, x24, [sp, 48]
5569	ldp	x25, x26, [sp, 64]
5570	ldp	x27, x28, [sp, 80]
5571	ldp	x29, x30, [sp], 160
5572	ret
5573.L726:
5574	ldr	x1, [x25, 8]
5575	tst	x1, 63
5576	beq	.L741
5577	adrp	x0, .LANCHOR120
5578	ldr	x26, [x0, #:lo12:.LANCHOR120]
5579	cmp	x1, x26
5580	beq	.L729
5581	adrp	x0, .LANCHOR12
5582	ldrh	w2, [x0, #:lo12:.LANCHOR12]
5583	mov	x0, x26
5584	lsl	w2, w2, 9
5585	bl	ftl_memcpy
5586.L729:
5587	add	x0, x24, :lo12:.LANCHOR105
5588	ldr	w1, [x29, 124]
5589	ldr	x3, [x25, 16]
5590	mov	x2, x26
5591	ldr	x6, [x0, 16]
5592	ldrb	w0, [x29, 120]
5593	blr	x6
5594	cbnz	w0, .L730
5595	str	wzr, [x25]
5596.L731:
5597	add	x0, x21, :lo12:.LANCHOR0
5598	ldrh	w0, [x0, 14]
5599	cmp	w0, 4
5600	bne	.L725
5601	ldrb	w0, [x29, 120]
5602	add	x2, x26, 2048
5603	ldr	x6, [x28, 16]
5604	ldr	w1, [x29, 124]
5605	ldr	x3, [x25, 16]
5606	add	w1, w23, w1
5607	add	x3, x3, 8
5608	blr	x6
5609	cbnz	w0, .L760
5610.L725:
5611	add	x25, x25, 32
5612	b	.L721
5613.L741:
5614	mov	x26, x1
5615	b	.L729
5616.L730:
5617	mov	w0, -1
5618	str	w0, [x25]
5619	b	.L731
5620	.size	FlashProgPages, .-FlashProgPages
5621	.section	.text.FtlLowFormatEraseBlock,"ax",@progbits
5622	.align	2
5623	.global	FtlLowFormatEraseBlock
5624	.type	FtlLowFormatEraseBlock, %function
5625FtlLowFormatEraseBlock:
5626	stp	x29, x30, [sp, -128]!
5627	adrp	x7, .LANCHOR13
5628	add	x7, x7, :lo12:.LANCHOR13
5629	mov	x5, 0
5630	add	x29, sp, 0
5631	stp	x23, x24, [sp, 48]
5632	and	w23, w0, 65535
5633	adrp	x0, .LANCHOR111
5634	stp	x19, x20, [sp, 16]
5635	stp	x21, x22, [sp, 32]
5636	adrp	x20, .LANCHOR3
5637	stp	x25, x26, [sp, 64]
5638	and	w22, w1, 255
5639	str	w23, [x0, #:lo12:.LANCHOR111]
5640	adrp	x21, .LANCHOR106
5641	adrp	x0, .LANCHOR119
5642	adrp	x1, .LANCHOR124
5643	adrp	x25, .LANCHOR24
5644	ldrh	w8, [x20, #:lo12:.LANCHOR3]
5645	ldr	x6, [x21, #:lo12:.LANCHOR106]
5646	mov	w24, 0
5647	ldr	x10, [x0, #:lo12:.LANCHOR119]
5648	mov	w19, 0
5649	ldr	x11, [x1, #:lo12:.LANCHOR124]
5650	ldrh	w12, [x25, #:lo12:.LANCHOR24]
5651	stp	x27, x28, [sp, 80]
5652	str	x0, [x29, 112]
5653.L762:
5654	cmp	w8, w5, uxth
5655	bhi	.L766
5656	cbz	w24, .L761
5657	mov	w2, w24
5658	ubfiz	x24, x24, 5, 16
5659	mov	x26, 0
5660	mov	w1, 0
5661	mov	x0, x6
5662	bl	FlashEraseBlocks
5663.L770:
5664	ldr	x0, [x21, #:lo12:.LANCHOR106]
5665	add	x1, x0, x26
5666	ldr	w0, [x0, x26]
5667	cmn	w0, #1
5668	bne	.L769
5669	ldr	w0, [x1, 4]
5670	add	w19, w19, 1
5671	and	w19, w19, 65535
5672	lsr	w0, w0, 10
5673	bl	FtlBbmMapBadBlock
5674.L769:
5675	add	x26, x26, 32
5676	cmp	x26, x24
5677	bne	.L770
5678	cbz	w22, .L783
5679	adrp	x0, .LANCHOR20
5680	mov	w26, 1
5681	ldrh	w28, [x0, #:lo12:.LANCHOR20]
5682.L771:
5683	add	x0, x20, :lo12:.LANCHOR3
5684	adrp	x27, .LANCHOR13
5685	str	x0, [x29, 120]
5686	mov	w24, 0
5687	add	x0, x27, :lo12:.LANCHOR13
5688	str	x0, [x29, 104]
5689.L779:
5690	ldr	x0, [x29, 120]
5691	mov	x5, 0
5692	ldr	x6, [x21, #:lo12:.LANCHOR106]
5693	mov	w20, 0
5694	ldrh	w11, [x25, #:lo12:.LANCHOR24]
5695	ldrh	w7, [x0]
5696	adrp	x0, .LANCHOR118
5697	ldr	x8, [x0, #:lo12:.LANCHOR118]
5698	ldr	x0, [x29, 112]
5699	ldr	x10, [x0, #:lo12:.LANCHOR119]
5700.L772:
5701	cmp	w7, w5, uxth
5702	bhi	.L775
5703	cbz	w20, .L761
5704	mov	w1, w20
5705	mov	w3, 1
5706	mov	w2, w26
5707	mov	x0, x6
5708	bl	FlashProgPages
5709	mov	x27, 0
5710	ubfiz	x1, x20, 5, 16
5711.L778:
5712	ldr	x0, [x21, #:lo12:.LANCHOR106]
5713	add	x3, x0, x27
5714	ldr	w0, [x0, x27]
5715	cbz	w0, .L777
5716	ldr	w0, [x3, 4]
5717	add	w19, w19, 1
5718	str	x1, [x29, 96]
5719	and	w19, w19, 65535
5720	lsr	w0, w0, 10
5721	bl	FtlBbmMapBadBlock
5722	ldr	x1, [x29, 96]
5723.L777:
5724	add	x27, x27, 32
5725	cmp	x1, x27
5726	bne	.L778
5727	add	w24, w24, 1
5728	cmp	w28, w24, uxth
5729	bhi	.L779
5730	mov	x24, 0
5731.L781:
5732	cbz	w22, .L780
5733	ldr	x0, [x21, #:lo12:.LANCHOR106]
5734	add	x1, x0, x24
5735	ldr	w0, [x0, x24]
5736	cbnz	w0, .L780
5737	ldr	w0, [x1, 4]
5738	mov	w1, 1
5739	lsr	w0, w0, 10
5740	bl	FtlFreeSysBlkQueueIn
5741.L780:
5742	add	x24, x24, 32
5743	cmp	x24, x27
5744	bne	.L781
5745	cmp	w23, 63
5746	ccmp	w22, 0, 0, hi
5747	beq	.L761
5748	ldr	x0, [x21, #:lo12:.LANCHOR106]
5749	mov	w2, w20
5750	mov	w1, w26
5751	bl	FlashEraseBlocks
5752.L761:
5753	mov	w0, w19
5754	ldp	x19, x20, [sp, 16]
5755	ldp	x21, x22, [sp, 32]
5756	ldp	x23, x24, [sp, 48]
5757	ldp	x25, x26, [sp, 64]
5758	ldp	x27, x28, [sp, 80]
5759	ldp	x29, x30, [sp], 128
5760	ret
5761.L766:
5762	lsl	x0, x5, 5
5763	mov	w1, w23
5764	str	wzr, [x6, x0]
5765	ldrb	w0, [x7, x5]
5766	bl	V2P_block
5767	and	w13, w0, 65535
5768	mov	w14, w13
5769	cbz	w22, .L763
5770	bl	IsBlkInVendorPart
5771	cbnz	w0, .L764
5772.L763:
5773	mov	w0, w14
5774	bl	FtlBbmIsBadBlock
5775	cbnz	w0, .L765
5776	ubfiz	x0, x24, 5, 16
5777	mul	w1, w24, w12
5778	add	x0, x6, x0
5779	add	w24, w24, 1
5780	and	w24, w24, 65535
5781	lsl	w13, w13, 10
5782	asr	w1, w1, 2
5783	add	x1, x11, x1, sxtw 2
5784	str	w13, [x0, 4]
5785	stp	x10, x1, [x0, 8]
5786.L764:
5787	add	x5, x5, 1
5788	b	.L762
5789.L765:
5790	add	w19, w19, 1
5791	and	w19, w19, 65535
5792	b	.L764
5793.L783:
5794	mov	w26, 0
5795	mov	w28, 2
5796	b	.L771
5797.L775:
5798	lsl	x0, x5, 5
5799	mov	w1, w23
5800	str	wzr, [x6, x0]
5801	ldr	x0, [x29, 104]
5802	ldrb	w0, [x0, x5]
5803	bl	V2P_block
5804	and	w12, w0, 65535
5805	mov	w13, w12
5806	cbz	w22, .L773
5807	bl	IsBlkInVendorPart
5808	cbnz	w0, .L774
5809.L773:
5810	mov	w0, w13
5811	bl	FtlBbmIsBadBlock
5812	cbnz	w0, .L774
5813	ubfiz	x0, x20, 5, 16
5814	mul	w1, w20, w11
5815	add	x0, x6, x0
5816	add	w20, w20, 1
5817	and	w20, w20, 65535
5818	add	w12, w24, w12, lsl 10
5819	asr	w1, w1, 2
5820	add	x1, x10, x1, sxtw 2
5821	str	w12, [x0, 4]
5822	stp	x8, x1, [x0, 8]
5823.L774:
5824	add	x5, x5, 1
5825	b	.L772
5826	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
5827	.section	.text.Ftl_write_map_blk_to_last_page,"ax",@progbits
5828	.align	2
5829	.global	Ftl_write_map_blk_to_last_page
5830	.type	Ftl_write_map_blk_to_last_page, %function
5831Ftl_write_map_blk_to_last_page:
5832	stp	x29, x30, [sp, -64]!
5833	mov	w1, 65535
5834	add	x29, sp, 0
5835	stp	x19, x20, [sp, 16]
5836	mov	x19, x0
5837	ldr	x20, [x0, 16]
5838	stp	x21, x22, [sp, 32]
5839	ldrh	w0, [x0]
5840	str	x23, [sp, 48]
5841	cmp	w0, w1
5842	bne	.L805
5843	ldrh	w0, [x19, 8]
5844	cbz	w0, .L806
5845	adrp	x1, .LANCHOR154
5846	adrp	x0, .LC1
5847	mov	w2, 641
5848	add	x1, x1, :lo12:.LANCHOR154
5849	add	x0, x0, :lo12:.LC1
5850	bl	printf
5851.L806:
5852	ldrh	w0, [x19, 8]
5853	add	w0, w0, 1
5854	strh	w0, [x19, 8]
5855	bl	FtlFreeSysBlkQueueOut
5856	strh	w0, [x20]
5857	ldr	w0, [x19, 48]
5858	strh	wzr, [x19, 2]
5859	add	w0, w0, 1
5860	strh	wzr, [x19]
5861	str	w0, [x19, 48]
5862.L807:
5863	mov	w0, 0
5864	ldr	x23, [sp, 48]
5865	ldp	x19, x20, [sp, 16]
5866	ldp	x21, x22, [sp, 32]
5867	ldp	x29, x30, [sp], 64
5868	ret
5869.L805:
5870	ubfiz	x0, x0, 1, 16
5871	adrp	x1, .LANCHOR123
5872	adrp	x23, .LANCHOR115
5873	ldr	x22, [x19, 40]
5874	ldr	x1, [x1, #:lo12:.LANCHOR123]
5875	ldrh	w21, [x20, x0]
5876	adrp	x20, .LANCHOR148
5877	ldrh	w0, [x19, 2]
5878	add	x2, x20, :lo12:.LANCHOR148
5879	orr	w0, w0, w21, lsl 10
5880	str	w0, [x2, 4]
5881	ldr	x0, [x23, #:lo12:.LANCHOR115]
5882	str	x1, [x2, 16]
5883	str	x0, [x2, 8]
5884	ldr	w2, [x19, 48]
5885	str	w2, [x1, 4]
5886	mov	w2, -1291
5887	strh	w2, [x1, 8]
5888	ldrh	w2, [x19, 4]
5889	strh	w2, [x1]
5890	strh	w21, [x1, 2]
5891	adrp	x1, .LANCHOR20
5892	ldrh	w2, [x1, #:lo12:.LANCHOR20]
5893	mov	w1, 255
5894	lsl	w2, w2, 3
5895	bl	ftl_memset
5896	ldrh	w4, [x19, 6]
5897	mov	x1, 0
5898	ldr	x3, [x23, #:lo12:.LANCHOR115]
5899	mov	w2, 0
5900.L808:
5901	cmp	w4, w1, uxth
5902	bhi	.L810
5903	mov	w2, 1
5904	mov	w3, 0
5905	mov	w1, w2
5906	add	x0, x20, :lo12:.LANCHOR148
5907	bl	FlashProgPages
5908	ldrh	w0, [x19, 2]
5909	add	w0, w0, 1
5910	strh	w0, [x19, 2]
5911	mov	x0, x19
5912	bl	ftl_map_blk_gc
5913	b	.L807
5914.L810:
5915	ldr	w0, [x22, x1, lsl 2]
5916	cmp	w21, w0, lsr 10
5917	bne	.L809
5918	add	w2, w2, 1
5919	and	w2, w2, 65535
5920	ubfiz	x0, x2, 1, 16
5921	str	w1, [x3, x0, lsl 2]
5922	add	x0, x0, 1
5923	ldr	w5, [x22, x1, lsl 2]
5924	str	w5, [x3, x0, lsl 2]
5925.L809:
5926	add	x1, x1, 1
5927	b	.L808
5928	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
5929	.section	.text.FtlMapWritePage,"ax",@progbits
5930	.align	2
5931	.global	FtlMapWritePage
5932	.type	FtlMapWritePage, %function
5933FtlMapWritePage:
5934	stp	x29, x30, [sp, -112]!
5935	add	x29, sp, 0
5936	stp	x23, x24, [sp, 48]
5937	adrp	x23, .LANCHOR66
5938	stp	x25, x26, [sp, 64]
5939	adrp	x24, .LANCHOR155
5940	stp	x27, x28, [sp, 80]
5941	adrp	x26, .LANCHOR20
5942	stp	x19, x20, [sp, 16]
5943	mov	w25, w1
5944	mov	x19, x0
5945	mov	x27, x2
5946	add	x23, x23, :lo12:.LANCHOR66
5947	add	x24, x24, :lo12:.LANCHOR155
5948	add	x28, x26, :lo12:.LANCHOR20
5949	stp	x21, x22, [sp, 32]
5950	mov	w22, 0
5951.L816:
5952	ldr	w0, [x23]
5953	ldrh	w1, [x19, 2]
5954	add	w0, w0, 1
5955	str	w0, [x23]
5956	ldrh	w0, [x26, #:lo12:.LANCHOR20]
5957	sub	w0, w0, #1
5958	cmp	w1, w0
5959	bge	.L817
5960	ldrh	w1, [x19]
5961	mov	w0, 65535
5962	cmp	w1, w0
5963	bne	.L818
5964.L817:
5965	mov	x0, x19
5966	bl	Ftl_write_map_blk_to_last_page
5967.L818:
5968	ldrh	w1, [x19]
5969	ldr	x0, [x19, 16]
5970	ldrh	w0, [x0, x1, lsl 1]
5971	cbnz	w0, .L819
5972	adrp	x0, .LC1
5973	mov	w2, 699
5974	mov	x1, x24
5975	add	x0, x0, :lo12:.LC1
5976	bl	printf
5977.L819:
5978	ldrh	w1, [x19]
5979	ldrh	w0, [x19, 10]
5980	cmp	w1, w0
5981	bcc	.L820
5982	adrp	x0, .LC1
5983	mov	w2, 700
5984	mov	x1, x24
5985	add	x0, x0, :lo12:.LC1
5986	bl	printf
5987.L820:
5988	ldrh	w1, [x19]
5989	adrp	x21, .LANCHOR148
5990	ldr	x0, [x19, 16]
5991	add	x20, x21, :lo12:.LANCHOR148
5992	mov	w2, 16
5993	ldrh	w3, [x0, x1, lsl 1]
5994	mov	w1, 0
5995	ldrh	w0, [x19, 2]
5996	str	w3, [x29, 108]
5997	str	x27, [x20, 8]
5998	orr	w0, w0, w3, lsl 10
5999	str	w0, [x20, 4]
6000	adrp	x0, .LANCHOR123
6001	ldr	x0, [x0, #:lo12:.LANCHOR123]
6002	str	x0, [x20, 16]
6003	bl	ftl_memset
6004	ldr	x0, [x20, 16]
6005	ldr	w1, [x19, 48]
6006	ldr	w3, [x29, 108]
6007	str	w1, [x0, 4]
6008	ldrh	w1, [x19, 4]
6009	strh	w1, [x0]
6010	strh	w3, [x0, 2]
6011	mov	w3, 1
6012	strh	w25, [x0, 8]
6013	mov	w1, w3
6014	mov	w2, w3
6015	mov	x0, x20
6016	bl	FlashProgPages
6017	ldrh	w0, [x19, 2]
6018	ldr	w1, [x21, #:lo12:.LANCHOR148]
6019	add	w0, w0, 1
6020	and	w0, w0, 65535
6021	strh	w0, [x19, 2]
6022	cmn	w1, #1
6023	bne	.L821
6024	ldr	w1, [x20, 4]
6025	adrp	x0, .LC88
6026	add	x0, x0, :lo12:.LC88
6027	add	w22, w22, 1
6028	and	w22, w22, 65535
6029	bl	printf
6030	ldrh	w0, [x19, 2]
6031	cmp	w0, 2
6032	bhi	.L822
6033	ldrh	w0, [x28]
6034	sub	w0, w0, #1
6035	strh	w0, [x19, 2]
6036.L822:
6037	cmp	w22, 3
6038	bls	.L823
6039	add	x21, x21, :lo12:.LANCHOR148
6040	adrp	x0, .LC89
6041	mov	w2, w22
6042	add	x0, x0, :lo12:.LC89
6043	ldr	w1, [x21, 4]
6044	bl	printf
6045.L824:
6046	b	.L824
6047.L823:
6048	ldr	w0, [x19, 52]
6049	cbz	w0, .L816
6050.L838:
6051	b	.L838
6052.L821:
6053	cmp	w0, 1
6054	beq	.L827
6055	cmp	w1, 256
6056	beq	.L827
6057	ldr	w0, [x19, 56]
6058	cbz	w0, .L828
6059.L827:
6060	str	wzr, [x19, 56]
6061	b	.L816
6062.L828:
6063	ldr	x0, [x19, 40]
6064	ldr	w1, [x20, 4]
6065	ldp	x21, x22, [sp, 32]
6066	ldp	x23, x24, [sp, 48]
6067	ldp	x27, x28, [sp, 80]
6068	str	w1, [x0, w25, uxtw 2]
6069	ldp	x19, x20, [sp, 16]
6070	mov	w0, 0
6071	ldp	x25, x26, [sp, 64]
6072	ldp	x29, x30, [sp], 112
6073	ret
6074	.size	FtlMapWritePage, .-FtlMapWritePage
6075	.section	.text.load_l2p_region,"ax",@progbits
6076	.align	2
6077	.global	load_l2p_region
6078	.type	load_l2p_region, %function
6079load_l2p_region:
6080	stp	x29, x30, [sp, -96]!
6081	add	x29, sp, 0
6082	stp	x23, x24, [sp, 48]
6083	adrp	x24, .LANCHOR32
6084	stp	x19, x20, [sp, 16]
6085	and	w20, w0, 65535
6086	stp	x21, x22, [sp, 32]
6087	and	x19, x1, 65535
6088	ldrh	w0, [x24, #:lo12:.LANCHOR32]
6089	stp	x25, x26, [sp, 64]
6090	str	x27, [sp, 80]
6091	cmp	w0, w20
6092	bcs	.L841
6093	adrp	x1, .LANCHOR156
6094	adrp	x0, .LC1
6095	mov	w2, 485
6096	add	x1, x1, :lo12:.LANCHOR156
6097	add	x0, x0, :lo12:.LC1
6098	bl	printf
6099.L841:
6100	adrp	x27, .LANCHOR134
6101	ubfiz	x0, x20, 2, 16
6102	adrp	x22, .LANCHOR55
6103	ldr	x1, [x27, #:lo12:.LANCHOR134]
6104	ldr	w23, [x1, x0]
6105	cbnz	w23, .L842
6106	ldr	x0, [x22, #:lo12:.LANCHOR55]
6107	lsl	x19, x19, 4
6108	adrp	x1, .LANCHOR23
6109	add	x0, x0, x19
6110	ldrh	w2, [x1, #:lo12:.LANCHOR23]
6111	mov	w1, 255
6112	ldr	x0, [x0, 8]
6113	bl	ftl_memset
6114	ldr	x0, [x22, #:lo12:.LANCHOR55]
6115	add	x1, x0, x19
6116	strh	w20, [x0, x19]
6117	str	wzr, [x1, 4]
6118.L843:
6119	mov	w0, 0
6120	ldr	x27, [sp, 80]
6121	ldp	x19, x20, [sp, 16]
6122	ldp	x21, x22, [sp, 32]
6123	ldp	x23, x24, [sp, 48]
6124	ldp	x25, x26, [sp, 64]
6125	ldp	x29, x30, [sp], 96
6126	ret
6127.L842:
6128	ldr	x0, [x22, #:lo12:.LANCHOR55]
6129	lsl	x19, x19, 4
6130	adrp	x26, .LANCHOR148
6131	add	x21, x26, :lo12:.LANCHOR148
6132	add	x0, x0, x19
6133	mov	w2, 1
6134	mov	w1, w2
6135	str	w23, [x21, 4]
6136	ldr	x0, [x0, 8]
6137	str	x0, [x21, 8]
6138	adrp	x0, .LANCHOR123
6139	ldr	x0, [x0, #:lo12:.LANCHOR123]
6140	str	x0, [x21, 16]
6141	mov	x0, x21
6142	bl	FlashReadPages
6143	ldr	x25, [x21, 16]
6144	ldrh	w0, [x25, 8]
6145	cmp	w0, w20
6146	beq	.L844
6147	mov	w2, w23
6148	mov	w1, w20
6149	adrp	x0, .LC90
6150	add	x0, x0, :lo12:.LC90
6151	bl	printf
6152	ldr	x1, [x21, 16]
6153	mov	w3, 4
6154	adrp	x0, .LC91
6155	mov	w2, w3
6156	add	x0, x0, :lo12:.LC91
6157	bl	rknand_print_hex
6158	ldrh	w3, [x24, #:lo12:.LANCHOR32]
6159	adrp	x0, .LC92
6160	ldr	x1, [x27, #:lo12:.LANCHOR134]
6161	mov	w2, 4
6162	add	x0, x0, :lo12:.LC92
6163	bl	rknand_print_hex
6164.L845:
6165	ldrh	w0, [x25, 8]
6166	cmp	w0, w20
6167	beq	.L846
6168	adrp	x1, .LANCHOR156
6169	adrp	x0, .LC1
6170	mov	w2, 508
6171	add	x1, x1, :lo12:.LANCHOR156
6172	add	x0, x0, :lo12:.LC1
6173	bl	printf
6174.L846:
6175	ldr	x0, [x22, #:lo12:.LANCHOR55]
6176	add	x1, x0, x19
6177	str	wzr, [x1, 4]
6178	strh	w20, [x0, x19]
6179	b	.L843
6180.L844:
6181	ldr	w0, [x26, #:lo12:.LANCHOR148]
6182	cmp	w0, 256
6183	bne	.L845
6184	mov	w2, w23
6185	mov	w1, w20
6186	adrp	x0, .LC93
6187	add	x0, x0, :lo12:.LC93
6188	bl	printf
6189	ldr	x0, [x22, #:lo12:.LANCHOR55]
6190	mov	w1, w20
6191	add	x0, x0, x19
6192	ldr	x2, [x0, 8]
6193	adrp	x0, .LANCHOR140
6194	add	x0, x0, :lo12:.LANCHOR140
6195	bl	FtlMapWritePage
6196	b	.L845
6197	.size	load_l2p_region, .-load_l2p_region
6198	.section	.text.ftl_map_blk_gc,"ax",@progbits
6199	.align	2
6200	.global	ftl_map_blk_gc
6201	.type	ftl_map_blk_gc, %function
6202ftl_map_blk_gc:
6203	stp	x29, x30, [sp, -96]!
6204	add	x29, sp, 0
6205	stp	x19, x20, [sp, 16]
6206	mov	x19, x0
6207	stp	x23, x24, [sp, 48]
6208	adrp	x24, .LANCHOR20
6209	stp	x25, x26, [sp, 64]
6210	stp	x21, x22, [sp, 32]
6211	stp	x27, x28, [sp, 80]
6212	ldr	x20, [x0, 16]
6213	ldr	x25, [x0, 40]
6214	bl	ftl_free_no_use_map_blk
6215	ldrh	w1, [x19, 10]
6216	ldrh	w2, [x19, 8]
6217	sub	w1, w1, #5
6218	cmp	w2, w1
6219	blt	.L849
6220	ubfiz	x0, x0, 1, 16
6221	ldrh	w22, [x20, x0]
6222	cbz	w22, .L849
6223	ldr	w1, [x19, 52]
6224	cbnz	w1, .L849
6225	mov	w1, 1
6226	str	w1, [x19, 52]
6227	strh	wzr, [x20, x0]
6228	ldrh	w0, [x19, 8]
6229	ldrh	w1, [x19, 2]
6230	sub	w0, w0, #1
6231	strh	w0, [x19, 8]
6232	ldrh	w0, [x24, #:lo12:.LANCHOR20]
6233	cmp	w1, w0
6234	bcc	.L850
6235	mov	x0, x19
6236	bl	ftl_map_blk_alloc_new_blk
6237.L850:
6238	adrp	x26, .LANCHOR148
6239	adrp	x23, .LANCHOR157
6240	add	x27, x26, :lo12:.LANCHOR148
6241	add	x23, x23, :lo12:.LANCHOR157
6242	mov	w20, 0
6243.L851:
6244	ldrh	w0, [x19, 6]
6245	cmp	w0, w20
6246	bhi	.L858
6247	mov	w1, 1
6248	mov	w0, w22
6249	bl	FtlFreeSysBlkQueueIn
6250	str	wzr, [x19, 52]
6251.L849:
6252	ldrh	w1, [x19, 2]
6253	ldrh	w0, [x24, #:lo12:.LANCHOR20]
6254	cmp	w1, w0
6255	bcc	.L859
6256	mov	x0, x19
6257	bl	ftl_map_blk_alloc_new_blk
6258.L859:
6259	mov	w0, 0
6260	ldp	x19, x20, [sp, 16]
6261	ldp	x21, x22, [sp, 32]
6262	ldp	x23, x24, [sp, 48]
6263	ldp	x25, x26, [sp, 64]
6264	ldp	x27, x28, [sp, 80]
6265	ldp	x29, x30, [sp], 96
6266	ret
6267.L858:
6268	ubfiz	x0, x20, 2, 16
6269	add	x28, x25, x0
6270	ldr	w1, [x25, x0]
6271	cmp	w22, w1, lsr 10
6272	bne	.L852
6273	adrp	x2, .LANCHOR116
6274	add	x0, x26, :lo12:.LANCHOR148
6275	ldr	x2, [x2, #:lo12:.LANCHOR116]
6276	str	x2, [x0, 8]
6277	adrp	x2, .LANCHOR123
6278	str	w1, [x0, 4]
6279	ldr	x21, [x2, #:lo12:.LANCHOR123]
6280	mov	w2, 1
6281	str	x21, [x0, 16]
6282	mov	w1, w2
6283	bl	FlashReadPages
6284	ldrh	w0, [x21, 8]
6285	cmp	w0, w20
6286	beq	.L853
6287	adrp	x0, .LC1
6288	mov	w2, 611
6289	mov	x1, x23
6290	add	x0, x0, :lo12:.LC1
6291	bl	printf
6292.L853:
6293	ldr	w0, [x27]
6294	cmn	w0, #1
6295	bne	.L854
6296.L856:
6297	str	wzr, [x28]
6298.L855:
6299	b	.L855
6300.L854:
6301	ldrh	w0, [x21, 8]
6302	cmp	w0, w20
6303	bne	.L856
6304	ldrh	w1, [x21]
6305	ldrh	w0, [x19, 4]
6306	cmp	w1, w0
6307	bne	.L856
6308	ldr	x2, [x27, 8]
6309	mov	w1, w20
6310	mov	x0, x19
6311	bl	FtlMapWritePage
6312.L852:
6313	add	w20, w20, 1
6314	and	w20, w20, 65535
6315	b	.L851
6316	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
6317	.section	.text.FtlMapTblRecovery,"ax",@progbits
6318	.align	2
6319	.global	FtlMapTblRecovery
6320	.type	FtlMapTblRecovery, %function
6321FtlMapTblRecovery:
6322	stp	x29, x30, [sp, -144]!
6323	mov	w1, 0
6324	add	x29, sp, 0
6325	stp	x19, x20, [sp, 16]
6326	mov	x19, x0
6327	stp	x23, x24, [sp, 48]
6328	adrp	x20, .LANCHOR148
6329	ldrh	w23, [x0, 6]
6330	adrp	x24, .LANCHOR20
6331	stp	x21, x22, [sp, 32]
6332	ldr	x21, [x0, 40]
6333	ldr	x22, [x0, 16]
6334	lsl	w2, w23, 2
6335	ldr	x0, [x0, 24]
6336	str	x0, [x29, 128]
6337	ldrh	w0, [x19, 8]
6338	stp	x25, x26, [sp, 64]
6339	stp	x27, x28, [sp, 80]
6340	mov	w27, 0
6341	str	w0, [x29, 140]
6342	mov	x0, x21
6343	bl	ftl_memset
6344	str	x20, [x29, 120]
6345	adrp	x7, .LANCHOR115
6346	add	x3, x20, :lo12:.LANCHOR148
6347	mov	x26, x7
6348	mov	x20, x3
6349	ldr	x0, [x7, #:lo12:.LANCHOR115]
6350	str	x0, [x3, 8]
6351	adrp	x0, .LANCHOR123
6352	stp	wzr, wzr, [x19, 48]
6353	ldr	x25, [x0, #:lo12:.LANCHOR123]
6354	mov	w0, -1
6355	str	x25, [x3, 16]
6356	strh	w0, [x19]
6357	strh	w0, [x19, 2]
6358	mov	w0, 1
6359	str	w0, [x19, 56]
6360	ldr	w0, [x29, 140]
6361	sub	w0, w0, #1
6362	str	w0, [x29, 136]
6363	add	x0, x24, :lo12:.LANCHOR20
6364	str	x0, [x29, 112]
6365.L866:
6366	ldr	w0, [x29, 140]
6367	cmp	w27, w0
6368	bge	.L883
6369	ldr	w0, [x29, 136]
6370	sxtw	x28, w27
6371	cmp	w27, w0
6372	bne	.L867
6373	lsl	x0, x28, 1
6374	mov	w1, 1
6375	add	x24, x22, x0
6376	ldrh	w0, [x22, x0]
6377	mov	w22, 0
6378	bl	FtlGetLastWrittenPage
6379	sxth	w26, w0
6380	add	w0, w0, 1
6381	strh	w0, [x19, 2]
6382	ldr	x0, [x29, 128]
6383	strh	w27, [x19]
6384	ldr	w0, [x0, x28, lsl 2]
6385	str	w0, [x19, 48]
6386	ldr	x0, [x29, 120]
6387	add	x20, x0, :lo12:.LANCHOR148
6388.L868:
6389	cmp	w22, w26
6390	ble	.L870
6391.L883:
6392	mov	x0, x19
6393	bl	ftl_free_no_use_map_blk
6394	adrp	x0, .LANCHOR20
6395	ldrh	w1, [x19, 2]
6396	ldrh	w0, [x0, #:lo12:.LANCHOR20]
6397	cmp	w1, w0
6398	bne	.L872
6399	mov	x0, x19
6400	bl	ftl_map_blk_alloc_new_blk
6401.L872:
6402	mov	x0, x19
6403	bl	ftl_map_blk_gc
6404	mov	x0, x19
6405	bl	ftl_map_blk_gc
6406	mov	w0, 0
6407	ldp	x19, x20, [sp, 16]
6408	ldp	x21, x22, [sp, 32]
6409	ldp	x23, x24, [sp, 48]
6410	ldp	x25, x26, [sp, 64]
6411	ldp	x27, x28, [sp, 80]
6412	ldp	x29, x30, [sp], 144
6413	ret
6414.L870:
6415	ldrh	w0, [x24]
6416	mov	w2, 1
6417	mov	w1, w2
6418	orr	w0, w22, w0, lsl 10
6419	str	w0, [x20, 4]
6420	mov	x0, x20
6421	bl	FlashReadPages
6422	ldr	w0, [x20]
6423	cmn	w0, #1
6424	beq	.L869
6425	ldrh	w0, [x25, 8]
6426	cmp	w23, w0
6427	bls	.L869
6428	ldrh	w2, [x25]
6429	ldrh	w1, [x19, 4]
6430	cmp	w2, w1
6431	bne	.L869
6432	ubfiz	x0, x0, 2, 16
6433	ldr	w1, [x20, 4]
6434	str	w1, [x21, x0]
6435.L869:
6436	add	w22, w22, 1
6437	sxth	w22, w22
6438	b	.L868
6439.L867:
6440	ldr	x0, [x26, #:lo12:.LANCHOR115]
6441	mov	w2, 1
6442	str	x0, [x20, 8]
6443	lsl	x0, x28, 1
6444	ldrh	w1, [x24, #:lo12:.LANCHOR20]
6445	add	x28, x22, x0
6446	ldrh	w0, [x22, x0]
6447	sub	w1, w1, #1
6448	orr	w0, w1, w0, lsl 10
6449	mov	w1, w2
6450	str	w0, [x20, 4]
6451	mov	x0, x20
6452	bl	FlashReadPages
6453	ldr	w0, [x20]
6454	cmn	w0, #1
6455	beq	.L885
6456	ldrh	w1, [x25]
6457	ldrh	w0, [x19, 4]
6458	cmp	w1, w0
6459	bne	.L885
6460	ldrh	w1, [x25, 8]
6461	mov	w0, 64245
6462	cmp	w1, w0
6463	beq	.L874
6464.L885:
6465	mov	w5, 0
6466.L875:
6467	ldr	x0, [x29, 112]
6468	ldrh	w0, [x0]
6469	cmp	w5, w0
6470	bge	.L881
6471	ldrh	w0, [x28]
6472	mov	w2, 1
6473	str	w5, [x29, 108]
6474	mov	w1, w2
6475	orr	w0, w5, w0, lsl 10
6476	str	w0, [x20, 4]
6477	mov	x0, x20
6478	bl	FlashReadPages
6479	ldr	w0, [x20]
6480	ldr	w5, [x29, 108]
6481	cmn	w0, #1
6482	beq	.L879
6483	ldrh	w0, [x25, 8]
6484	cmp	w23, w0
6485	bls	.L879
6486	ldrh	w2, [x25]
6487	ldrh	w1, [x19, 4]
6488	cmp	w2, w1
6489	bne	.L879
6490	ubfiz	x0, x0, 2, 16
6491	ldr	w1, [x20, 4]
6492	str	w1, [x21, x0]
6493.L879:
6494	add	w5, w5, 1
6495	sxth	w5, w5
6496	b	.L875
6497.L874:
6498	ldrh	w5, [x24, #:lo12:.LANCHOR20]
6499	mov	w0, 0
6500	ldr	x10, [x26, #:lo12:.LANCHOR115]
6501	sub	w5, w5, #1
6502.L876:
6503	cmp	w0, w5
6504	blt	.L878
6505.L881:
6506	add	w4, w27, 1
6507	sxth	w27, w4
6508	b	.L866
6509.L878:
6510	lsl	w2, w0, 1
6511	sxtw	x2, w2
6512	lsl	x1, x2, 2
6513	ldrh	w1, [x10, x1]
6514	cmp	w23, w1
6515	bls	.L877
6516	add	x2, x2, 1
6517	ubfiz	x1, x1, 2, 16
6518	ldr	w2, [x10, x2, lsl 2]
6519	str	w2, [x21, x1]
6520.L877:
6521	add	w0, w0, 1
6522	sxth	w0, w0
6523	b	.L876
6524	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
6525	.section	.text.FtlLoadVonderInfo,"ax",@progbits
6526	.align	2
6527	.global	FtlLoadVonderInfo
6528	.type	FtlLoadVonderInfo, %function
6529FtlLoadVonderInfo:
6530	stp	x29, x30, [sp, -16]!
6531	adrp	x1, .LANCHOR27
6532	adrp	x0, .LANCHOR158
6533	add	x0, x0, :lo12:.LANCHOR158
6534	add	x29, sp, 0
6535	ldrh	w1, [x1, #:lo12:.LANCHOR27]
6536	strh	w1, [x0, 10]
6537	mov	w1, -3962
6538	strh	w1, [x0, 4]
6539	adrp	x1, .LANCHOR35
6540	ldrh	w1, [x1, #:lo12:.LANCHOR35]
6541	strh	w1, [x0, 8]
6542	adrp	x1, .LANCHOR28
6543	ldrh	w1, [x1, #:lo12:.LANCHOR28]
6544	strh	w1, [x0, 6]
6545	adrp	x1, .LANCHOR36
6546	ldr	x1, [x1, #:lo12:.LANCHOR36]
6547	str	x1, [x0, 16]
6548	adrp	x1, .LANCHOR132
6549	ldr	x1, [x1, #:lo12:.LANCHOR132]
6550	str	x1, [x0, 24]
6551	adrp	x1, .LANCHOR131
6552	ldr	x1, [x1, #:lo12:.LANCHOR131]
6553	str	x1, [x0, 32]
6554	adrp	x1, .LANCHOR133
6555	ldr	x1, [x1, #:lo12:.LANCHOR133]
6556	str	x1, [x0, 40]
6557	bl	FtlMapTblRecovery
6558	mov	w0, 0
6559	ldp	x29, x30, [sp], 16
6560	ret
6561	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
6562	.section	.text.FtlLoadMapInfo,"ax",@progbits
6563	.align	2
6564	.global	FtlLoadMapInfo
6565	.type	FtlLoadMapInfo, %function
6566FtlLoadMapInfo:
6567	stp	x29, x30, [sp, -16]!
6568	add	x29, sp, 0
6569	bl	FtlL2PDataInit
6570	adrp	x0, .LANCHOR140
6571	add	x0, x0, :lo12:.LANCHOR140
6572	bl	FtlMapTblRecovery
6573	mov	w0, 0
6574	ldp	x29, x30, [sp], 16
6575	ret
6576	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
6577	.section	.text.flush_l2p_region,"ax",@progbits
6578	.align	2
6579	.global	flush_l2p_region
6580	.type	flush_l2p_region, %function
6581flush_l2p_region:
6582	stp	x29, x30, [sp, -32]!
6583	add	x29, sp, 0
6584	stp	x19, x20, [sp, 16]
6585	adrp	x20, .LANCHOR55
6586	ubfiz	x19, x0, 4, 16
6587	ldr	x0, [x20, #:lo12:.LANCHOR55]
6588	add	x1, x0, x19
6589	ldr	x2, [x1, 8]
6590	ldrh	w1, [x0, x19]
6591	adrp	x0, .LANCHOR140
6592	add	x0, x0, :lo12:.LANCHOR140
6593	bl	FtlMapWritePage
6594	ldr	x0, [x20, #:lo12:.LANCHOR55]
6595	add	x0, x0, x19
6596	ldp	x19, x20, [sp, 16]
6597	ldr	w1, [x0, 4]
6598	and	w1, w1, 2147483647
6599	str	w1, [x0, 4]
6600	mov	w0, 0
6601	ldp	x29, x30, [sp], 32
6602	ret
6603	.size	flush_l2p_region, .-flush_l2p_region
6604	.section	.text.log2phys,"ax",@progbits
6605	.align	2
6606	.global	log2phys
6607	.type	log2phys, %function
6608log2phys:
6609	stp	x29, x30, [sp, -80]!
6610	add	x29, sp, 0
6611	stp	x25, x26, [sp, 64]
6612	mov	w25, w0
6613	adrp	x0, .LANCHOR22
6614	stp	x23, x24, [sp, 48]
6615	stp	x19, x20, [sp, 16]
6616	mov	x20, x1
6617	ldrh	w24, [x0, #:lo12:.LANCHOR22]
6618	adrp	x0, .LANCHOR61
6619	stp	x21, x22, [sp, 32]
6620	mov	x19, x0
6621	ldr	w1, [x0, #:lo12:.LANCHOR61]
6622	mov	w21, w2
6623	cmp	w25, w1
6624	bcc	.L900
6625	adrp	x1, .LANCHOR159
6626	adrp	x0, .LC1
6627	mov	w2, 811
6628	add	x1, x1, :lo12:.LANCHOR159
6629	add	x0, x0, :lo12:.LC1
6630	bl	printf
6631.L900:
6632	ldr	w0, [x19, #:lo12:.LANCHOR61]
6633	cmp	w25, w0
6634	bcs	.L901
6635	adrp	x23, .LANCHOR55
6636	add	w24, w24, 7
6637	adrp	x0, .LANCHOR33
6638	ldr	x2, [x23, #:lo12:.LANCHOR55]
6639	lsr	w22, w25, w24
6640	and	w22, w22, 65535
6641	ldrh	w1, [x0, #:lo12:.LANCHOR33]
6642	mov	x0, 0
6643.L902:
6644	and	x19, x0, 65535
6645	cmp	w19, w1
6646	bcc	.L907
6647	bl	select_l2p_ram_region
6648	and	x19, x0, 65535
6649	ldr	x2, [x23, #:lo12:.LANCHOR55]
6650	ubfiz	x1, x19, 4, 16
6651	mov	w26, w0
6652	add	x3, x2, x1
6653	ldrh	w2, [x2, x1]
6654	mov	w1, 65535
6655	cmp	w2, w1
6656	beq	.L908
6657	ldr	w1, [x3, 4]
6658	tbz	w1, #31, .L908
6659	bl	flush_l2p_region
6660.L908:
6661	mov	w1, w26
6662	mov	w0, w22
6663	bl	load_l2p_region
6664	b	.L904
6665.L901:
6666	mov	w0, -1
6667	cbnz	w21, .L899
6668	str	w0, [x20]
6669.L899:
6670	ldp	x19, x20, [sp, 16]
6671	ldp	x21, x22, [sp, 32]
6672	ldp	x23, x24, [sp, 48]
6673	ldp	x25, x26, [sp, 64]
6674	ldp	x29, x30, [sp], 80
6675	ret
6676.L907:
6677	add	x0, x0, 1
6678	add	x3, x2, x0, lsl 4
6679	ldrh	w3, [x3, -16]
6680	cmp	w3, w22
6681	bne	.L902
6682.L904:
6683	mov	x0, 1
6684	ldr	x1, [x23, #:lo12:.LANCHOR55]
6685	lsl	x0, x0, x24
6686	sub	w0, w0, #1
6687	and	w0, w0, w25
6688	and	x0, x0, 65535
6689	add	x1, x1, x19, lsl 4
6690	cbnz	w21, .L905
6691	ldr	x1, [x1, 8]
6692	ldr	w0, [x1, x0, lsl 2]
6693	str	w0, [x20]
6694.L906:
6695	ldr	x0, [x23, #:lo12:.LANCHOR55]
6696	add	x19, x0, x19, lsl 4
6697	ldr	w0, [x19, 4]
6698	cmn	w0, #1
6699	beq	.L910
6700	add	w0, w0, 1
6701	str	w0, [x19, 4]
6702.L910:
6703	mov	w0, 0
6704	b	.L899
6705.L905:
6706	ldr	x2, [x1, 8]
6707	ldr	w3, [x20]
6708	str	w3, [x2, x0, lsl 2]
6709	ldr	w0, [x1, 4]
6710	orr	w0, w0, -2147483648
6711	str	w0, [x1, 4]
6712	adrp	x0, .LANCHOR56
6713	strh	w22, [x0, #:lo12:.LANCHOR56]
6714	b	.L906
6715	.size	log2phys, .-log2phys
6716	.section	.text.FtlReUsePrevPpa,"ax",@progbits
6717	.align	2
6718	.global	FtlReUsePrevPpa
6719	.type	FtlReUsePrevPpa, %function
6720FtlReUsePrevPpa:
6721	stp	x29, x30, [sp, -80]!
6722	add	x29, sp, 0
6723	stp	x21, x22, [sp, 32]
6724	adrp	x22, .LANCHOR42
6725	stp	x19, x20, [sp, 16]
6726	mov	w21, w0
6727	str	w1, [x29, 76]
6728	lsr	w0, w1, 10
6729	str	x23, [sp, 48]
6730	bl	P2V_block_in_plane
6731	ldr	x2, [x22, #:lo12:.LANCHOR42]
6732	and	w3, w0, 65535
6733	ubfiz	x20, x3, 1, 16
6734	ldrh	w1, [x2, x20]
6735	cbnz	w1, .L914
6736	adrp	x0, .LANCHOR47
6737	ldr	x19, [x0, #:lo12:.LANCHOR47]
6738	cbz	x19, .L915
6739	adrp	x2, .LANCHOR40
6740	mov	x5, -6148914691236517206
6741	movk	x5, 0xaaab, lsl 0
6742	adrp	x23, .LANCHOR48
6743	ldr	x2, [x2, #:lo12:.LANCHOR40]
6744	mov	w6, 65535
6745	ldrh	w4, [x23, #:lo12:.LANCHOR48]
6746	sub	x19, x19, x2
6747	asr	x19, x19, 1
6748	mul	x19, x19, x5
6749	mov	w5, 6
6750	and	w19, w19, 65535
6751.L916:
6752	cmp	w1, w4
6753	beq	.L915
6754	cmp	w19, w3
6755	bne	.L917
6756	mov	w1, w19
6757	add	x0, x0, :lo12:.LANCHOR47
6758	bl	List_remove_node
6759	ldrh	w0, [x23, #:lo12:.LANCHOR48]
6760	cbnz	w0, .L918
6761	adrp	x1, .LANCHOR160
6762	adrp	x0, .LC1
6763	mov	w2, 1699
6764	add	x1, x1, :lo12:.LANCHOR160
6765	add	x0, x0, :lo12:.LC1
6766	bl	printf
6767.L918:
6768	ldrh	w0, [x23, #:lo12:.LANCHOR48]
6769	sub	w0, w0, #1
6770	strh	w0, [x23, #:lo12:.LANCHOR48]
6771	mov	w0, w19
6772	bl	INSERT_DATA_LIST
6773	ldr	x1, [x22, #:lo12:.LANCHOR42]
6774	ldrh	w0, [x1, x20]
6775	add	w0, w0, 1
6776	strh	w0, [x1, x20]
6777.L915:
6778	add	x1, x29, 76
6779	mov	w2, 1
6780	mov	w0, w21
6781	bl	log2phys
6782	ldp	x19, x20, [sp, 16]
6783	ldp	x21, x22, [sp, 32]
6784	ldr	x23, [sp, 48]
6785	ldp	x29, x30, [sp], 80
6786	ret
6787.L917:
6788	umull	x19, w19, w5
6789	ldrh	w19, [x2, x19]
6790	cmp	w19, w6
6791	beq	.L915
6792	add	w1, w1, 1
6793	and	w1, w1, 65535
6794	b	.L916
6795.L914:
6796	add	w1, w1, 1
6797	strh	w1, [x2, x20]
6798	b	.L915
6799	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
6800	.section	.text.ftl_check_vpc,"ax",@progbits
6801	.align	2
6802	.global	ftl_check_vpc
6803	.type	ftl_check_vpc, %function
6804ftl_check_vpc:
6805	stp	x29, x30, [sp, -112]!
6806	adrp	x0, .LC94
6807	add	x0, x0, :lo12:.LC94
6808	add	x29, sp, 0
6809	stp	x23, x24, [sp, 48]
6810	adrp	x23, .LANCHOR61
6811	add	x23, x23, :lo12:.LANCHOR61
6812	stp	x21, x22, [sp, 32]
6813	mov	w22, 0
6814	stp	x19, x20, [sp, 16]
6815	stp	x25, x26, [sp, 64]
6816	adrp	x21, .LANCHOR161
6817	stp	x27, x28, [sp, 80]
6818	add	x1, x21, :lo12:.LANCHOR161
6819	adrp	x20, check_vpc_table
6820	bl	printf
6821	add	x19, x20, :lo12:check_vpc_table
6822	mov	w2, 8192
6823	mov	w1, 0
6824	mov	x0, x19
6825	bl	ftl_memset
6826.L925:
6827	ldr	w0, [x23]
6828	cmp	w22, w0
6829	bcc	.L927
6830	adrp	x22, .LANCHOR5
6831	adrp	x24, .LC95
6832	add	x22, x22, :lo12:.LANCHOR5
6833	add	x26, x20, :lo12:check_vpc_table
6834	add	x24, x24, :lo12:.LC95
6835	mov	w23, 0
6836	mov	w19, 0
6837	adrp	x25, .LANCHOR42
6838.L928:
6839	ldrh	w0, [x22]
6840	cmp	w0, w19
6841	bhi	.L930
6842	adrp	x0, .LANCHOR47
6843	ldr	x19, [x0, #:lo12:.LANCHOR47]
6844	cbz	x19, .L931
6845	adrp	x0, .LANCHOR48
6846	adrp	x25, .LC96
6847	add	x20, x20, :lo12:check_vpc_table
6848	add	x25, x25, :lo12:.LC96
6849	ldrh	w26, [x0, #:lo12:.LANCHOR48]
6850	adrp	x0, .LANCHOR40
6851	mov	x24, x0
6852	mov	w22, 0
6853	ldr	x1, [x0, #:lo12:.LANCHOR40]
6854	adrp	x27, .LANCHOR42
6855	mov	w28, 6
6856	sub	x19, x19, x1
6857	mov	x1, -6148914691236517206
6858	asr	x19, x19, 1
6859	movk	x1, 0xaaab, lsl 0
6860	mul	x19, x19, x1
6861	and	w19, w19, 65535
6862.L932:
6863	cmp	w22, w26
6864	bne	.L934
6865.L931:
6866	cbz	w23, .L924
6867	adrp	x0, .LC1
6868	mov	w2, 2343
6869	add	x1, x21, :lo12:.LANCHOR161
6870	add	x0, x0, :lo12:.LC1
6871	bl	printf
6872.L924:
6873	ldp	x19, x20, [sp, 16]
6874	ldp	x21, x22, [sp, 32]
6875	ldp	x23, x24, [sp, 48]
6876	ldp	x25, x26, [sp, 64]
6877	ldp	x27, x28, [sp, 80]
6878	ldp	x29, x30, [sp], 112
6879	ret
6880.L927:
6881	mov	w2, 0
6882	add	x1, x29, 108
6883	mov	w0, w22
6884	bl	log2phys
6885	ldr	w0, [x29, 108]
6886	cmn	w0, #1
6887	beq	.L926
6888	lsr	w0, w0, 10
6889	bl	P2V_block_in_plane
6890	and	x0, x0, 65535
6891	ldrh	w1, [x19, x0, lsl 1]
6892	add	w1, w1, 1
6893	strh	w1, [x19, x0, lsl 1]
6894.L926:
6895	add	w22, w22, 1
6896	b	.L925
6897.L930:
6898	ldr	x0, [x25, #:lo12:.LANCHOR42]
6899	ubfiz	x28, x19, 1, 16
6900	sxtw	x27, w19
6901	ldrh	w2, [x0, x28]
6902	ldrh	w3, [x26, x27, lsl 1]
6903	cmp	w2, w3
6904	beq	.L929
6905	mov	w1, w19
6906	mov	x0, x24
6907	bl	printf
6908	ldr	x0, [x25, #:lo12:.LANCHOR42]
6909	mov	w1, 65535
6910	ldrh	w0, [x0, x28]
6911	cmp	w0, w1
6912	beq	.L929
6913	ldrh	w1, [x26, x27, lsl 1]
6914	cmp	w1, w0
6915	csinc	w23, w23, wzr, ls
6916.L929:
6917	add	w19, w19, 1
6918	and	w19, w19, 65535
6919	b	.L928
6920.L934:
6921	ldr	x1, [x27, #:lo12:.LANCHOR42]
6922	ubfiz	x0, x19, 1, 16
6923	ldrh	w2, [x1, x0]
6924	cbz	w2, .L933
6925	ldrh	w3, [x20, w19, sxtw 1]
6926	mov	w23, 1
6927	mov	w1, w19
6928	mov	x0, x25
6929	bl	printf
6930.L933:
6931	ldr	x0, [x24, #:lo12:.LANCHOR40]
6932	umull	x19, w19, w28
6933	ldrh	w19, [x0, x19]
6934	mov	w0, 65535
6935	cmp	w19, w0
6936	beq	.L931
6937	add	w22, w22, 1
6938	and	w22, w22, 65535
6939	b	.L932
6940	.size	ftl_check_vpc, .-ftl_check_vpc
6941	.section	.text.ftl_scan_all_data,"ax",@progbits
6942	.align	2
6943	.global	ftl_scan_all_data
6944	.type	ftl_scan_all_data, %function
6945ftl_scan_all_data:
6946	sub	sp, sp, #96
6947	adrp	x0, .LC97
6948	mov	w1, 0
6949	add	x0, x0, :lo12:.LC97
6950	stp	x29, x30, [sp, 16]
6951	add	x29, sp, 16
6952	stp	x19, x20, [sp, 32]
6953	adrp	x20, .LANCHOR148
6954	stp	x21, x22, [sp, 48]
6955	mov	w19, 0
6956	adrp	x21, .LANCHOR61
6957	add	x22, x20, :lo12:.LANCHOR148
6958	add	x21, x21, :lo12:.LANCHOR61
6959	str	x23, [sp, 64]
6960	bl	printf
6961.L950:
6962	ldr	w0, [x21]
6963	cmp	w19, w0
6964	bcc	.L956
6965	ldp	x19, x20, [sp, 32]
6966	ldp	x21, x22, [sp, 48]
6967	ldp	x29, x30, [sp, 16]
6968	ldr	x23, [sp, 64]
6969	add	sp, sp, 96
6970	ret
6971.L956:
6972	mov	w2, 0
6973	add	x1, x29, 76
6974	mov	w0, w19
6975	bl	log2phys
6976	tst	x19, 2047
6977	bne	.L951
6978	ldr	w2, [x29, 76]
6979	adrp	x0, .LC98
6980	mov	w1, w19
6981	add	x0, x0, :lo12:.LC98
6982	bl	printf
6983.L951:
6984	ldr	w1, [x29, 76]
6985	cmn	w1, #1
6986	beq	.L953
6987	add	x0, x20, :lo12:.LANCHOR148
6988	str	wzr, [x20, #:lo12:.LANCHOR148]
6989	mov	w2, 0
6990	str	w1, [x0, 4]
6991	adrp	x1, .LANCHOR115
6992	str	w19, [x0, 24]
6993	ldr	x1, [x1, #:lo12:.LANCHOR115]
6994	str	x1, [x0, 8]
6995	adrp	x1, .LANCHOR123
6996	ldr	x23, [x1, #:lo12:.LANCHOR123]
6997	mov	w1, 1
6998	str	x23, [x0, 16]
6999	bl	FlashReadPages
7000	ldr	w0, [x20, #:lo12:.LANCHOR148]
7001	cmp	w0, 256
7002	ccmn	w0, #1, 4, ne
7003	beq	.L954
7004	ldr	w0, [x23, 8]
7005	cmp	w19, w0
7006	beq	.L953
7007.L954:
7008	ldp	x1, x0, [x22, 8]
7009	ldr	w2, [x1, 4]
7010	str	w2, [sp]
7011	ldr	w2, [x22, 4]
7012	ldp	w3, w4, [x0]
7013	ldp	w5, w6, [x0, 8]
7014	adrp	x0, .LC99
7015	ldr	w7, [x1]
7016	add	x0, x0, :lo12:.LC99
7017	mov	w1, w19
7018	bl	printf
7019.L953:
7020	add	w19, w19, 1
7021	b	.L950
7022	.size	ftl_scan_all_data, .-ftl_scan_all_data
7023	.section	.text.FtlGcScanTempBlk,"ax",@progbits
7024	.align	2
7025	.global	FtlGcScanTempBlk
7026	.type	FtlGcScanTempBlk, %function
7027FtlGcScanTempBlk:
7028	stp	x29, x30, [sp, -160]!
7029	add	x29, sp, 0
7030	stp	x21, x22, [sp, 32]
7031	adrp	x22, .LANCHOR162
7032	stp	x19, x20, [sp, 16]
7033	mov	x19, x0
7034	stp	x27, x28, [sp, 80]
7035	mov	w0, 65535
7036	ldrh	w20, [x22, #:lo12:.LANCHOR162]
7037	mov	w27, w1
7038	stp	x23, x24, [sp, 48]
7039	stp	x25, x26, [sp, 64]
7040	cmp	w20, w0
7041	beq	.L982
7042	cbnz	w20, .L959
7043.L960:
7044	bl	FtlGcPageVarInit
7045	b	.L961
7046.L982:
7047	mov	w20, 0
7048.L959:
7049	adrp	x0, .LANCHOR19
7050	ldrh	w0, [x0, #:lo12:.LANCHOR19]
7051	cmp	w0, w27
7052	beq	.L960
7053.L961:
7054	adrp	x26, .LANCHOR61
7055	add	x26, x26, :lo12:.LANCHOR61
7056	mov	w25, 0
7057.L962:
7058	ldrh	w0, [x19]
7059	mov	w23, 65535
7060	strb	wzr, [x19, 8]
7061	cmp	w0, w23
7062	beq	.L963
7063.L979:
7064	adrp	x1, .LANCHOR91
7065	adrp	x24, .LANCHOR112
7066	add	x4, x19, 16
7067	mov	w21, 0
7068	ldr	x5, [x1, #:lo12:.LANCHOR91]
7069	adrp	x1, .LANCHOR23
7070	ldr	x0, [x24, #:lo12:.LANCHOR112]
7071	ldrh	w6, [x1, #:lo12:.LANCHOR23]
7072	adrp	x1, .LANCHOR92
7073	ldr	x7, [x1, #:lo12:.LANCHOR92]
7074	adrp	x1, .LANCHOR24
7075	ldrh	w8, [x1, #:lo12:.LANCHOR24]
7076	adrp	x1, .LANCHOR3
7077	ldrh	w1, [x1, #:lo12:.LANCHOR3]
7078	add	x1, x1, 8
7079	add	x1, x19, x1, lsl 1
7080.L964:
7081	cmp	x1, x4
7082	bne	.L966
7083	mov	w2, 0
7084	mov	w1, w21
7085	bl	FlashReadPages
7086	mov	x28, 0
7087	ubfiz	x0, x21, 5, 16
7088	str	x0, [x29, 96]
7089.L967:
7090	ldr	x0, [x29, 96]
7091	cmp	x0, x28
7092	bne	.L977
7093	add	w20, w20, 1
7094	add	w25, w25, 1
7095	and	w20, w20, 65535
7096	cmp	w27, w25
7097	adrp	x1, .LANCHOR19
7098	bls	.L978
7099.L980:
7100	ldrh	w0, [x1, #:lo12:.LANCHOR19]
7101	cmp	w0, w20
7102	bhi	.L979
7103.L963:
7104	strh	w20, [x19, 2]
7105	mov	w0, -1
7106	strb	wzr, [x19, 6]
7107	mov	w2, 0
7108	strh	w0, [x22, #:lo12:.LANCHOR162]
7109	mov	w1, w20
7110	mov	x0, x19
7111	bl	ftl_sb_update_avl_pages
7112	b	.L981
7113.L966:
7114	ldrh	w3, [x4]
7115	cmp	w3, w23
7116	beq	.L965
7117	ubfiz	x2, x21, 5, 16
7118	orr	w3, w20, w3, lsl 10
7119	add	x2, x0, x2
7120	str	w3, [x2, 4]
7121	mul	w3, w21, w6
7122	asr	w3, w3, 2
7123	add	x3, x5, x3, sxtw 2
7124	str	x3, [x2, 8]
7125	mul	w3, w21, w8
7126	add	w21, w21, 1
7127	and	w21, w21, 65535
7128	asr	w3, w3, 2
7129	add	x3, x7, x3, sxtw 2
7130	str	x3, [x2, 16]
7131.L965:
7132	add	x4, x4, 2
7133	b	.L964
7134.L977:
7135	ldr	x1, [x24, #:lo12:.LANCHOR112]
7136	add	x0, x1, x28
7137	ldr	w1, [x1, x28]
7138	ldr	w2, [x0, 4]
7139	str	w2, [x29, 108]
7140	cbnz	w1, .L968
7141	ldr	x21, [x0, 16]
7142	ldrh	w0, [x21]
7143	cmp	w0, w23
7144	bne	.L969
7145.L968:
7146	adrp	x0, .LANCHOR42
7147	ldrh	w1, [x19]
7148	mov	w20, 0
7149	ldr	x0, [x0, #:lo12:.LANCHOR42]
7150	strh	wzr, [x0, x1, lsl 1]
7151	ldrh	w0, [x19]
7152	bl	INSERT_FREE_LIST
7153	mov	w0, -1
7154	strh	w0, [x19]
7155	bl	FtlGcPageVarInit
7156	b	.L962
7157.L969:
7158	ldr	w0, [x21, 8]
7159	ldr	w1, [x26]
7160	cmp	w0, w1
7161	bhi	.L968
7162	add	x1, x29, 124
7163	mov	w2, 0
7164	bl	log2phys
7165	ldr	w0, [x21, 12]
7166	ldr	w1, [x29, 124]
7167	cmp	w0, w1
7168	beq	.L972
7169.L973:
7170	ldp	w2, w0, [x21, 8]
7171	add	x28, x28, 32
7172	ldr	w1, [x29, 108]
7173	bl	FtlGcUpdatePage
7174	b	.L967
7175.L972:
7176	cmn	w0, #1
7177	beq	.L973
7178	str	w0, [x29, 132]
7179	adrp	x0, .LANCHOR119
7180	mov	w2, 0
7181	mov	w1, 1
7182	ldr	x0, [x0, #:lo12:.LANCHOR119]
7183	str	x0, [x29, 136]
7184	adrp	x0, .LANCHOR124
7185	ldr	x0, [x0, #:lo12:.LANCHOR124]
7186	str	x0, [x29, 144]
7187	add	x0, x29, 128
7188	bl	FlashReadPages
7189	adrp	x0, .LANCHOR12
7190	ldr	x2, [x24, #:lo12:.LANCHOR112]
7191	ldr	x5, [x29, 136]
7192	ldrh	w1, [x0, #:lo12:.LANCHOR12]
7193	add	x2, x2, x28
7194	mov	x0, 0
7195	ubfiz	x1, x1, 9, 16
7196.L974:
7197	cmp	x0, x1
7198	beq	.L973
7199	ldr	x6, [x2, 8]
7200	ldr	w7, [x6, x0]
7201	add	x0, x0, 4
7202	add	x6, x5, x0
7203	ldr	w6, [x6, -4]
7204	cmp	w7, w6
7205	beq	.L974
7206	ldrh	w1, [x19]
7207	adrp	x0, .LC100
7208	ldr	w2, [x29, 132]
7209	add	x0, x0, :lo12:.LC100
7210	bl	printf
7211	b	.L968
7212.L978:
7213	ldrh	w0, [x22, #:lo12:.LANCHOR162]
7214	cmp	w0, w23
7215	beq	.L980
7216	add	w0, w0, w25
7217	strh	w0, [x22, #:lo12:.LANCHOR162]
7218	ldrh	w0, [x1, #:lo12:.LANCHOR19]
7219	cmp	w0, w20
7220	bls	.L980
7221.L981:
7222	ldp	x19, x20, [sp, 16]
7223	mov	w0, -1
7224	ldp	x21, x22, [sp, 32]
7225	ldp	x23, x24, [sp, 48]
7226	ldp	x25, x26, [sp, 64]
7227	ldp	x27, x28, [sp, 80]
7228	ldp	x29, x30, [sp], 160
7229	ret
7230	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
7231	.section	.text.FtlReadRefresh,"ax",@progbits
7232	.align	2
7233	.global	FtlReadRefresh
7234	.type	FtlReadRefresh, %function
7235FtlReadRefresh:
7236	adrp	x1, .LANCHOR81
7237	add	x0, x1, :lo12:.LANCHOR81
7238	ldr	w2, [x0, 80]
7239	cbz	w2, .L993
7240	adrp	x1, .LANCHOR61
7241	ldr	w3, [x0, 84]
7242	ldr	w2, [x1, #:lo12:.LANCHOR61]
7243	cmp	w3, w2
7244	bcs	.L994
7245	stp	x29, x30, [sp, -160]!
7246	add	x29, sp, 0
7247	stp	x19, x20, [sp, 16]
7248	mov	x19, x0
7249	add	x20, x1, :lo12:.LANCHOR61
7250	str	x21, [sp, 32]
7251	mov	w21, 2048
7252.L999:
7253	ldr	w0, [x19, 84]
7254	ldr	w1, [x20]
7255	cmp	w0, w1
7256	bcs	.L996
7257	add	x1, x29, 60
7258	mov	w2, 0
7259	bl	log2phys
7260	ldr	w0, [x19, 84]
7261	ldr	w1, [x29, 60]
7262	add	w0, w0, 1
7263	str	w0, [x19, 84]
7264	cmn	w1, #1
7265	beq	.L997
7266	str	w0, [x29, 88]
7267	adrp	x0, .LANCHOR121
7268	str	w1, [x29, 68]
7269	mov	w2, 0
7270	ldr	x0, [x0, #:lo12:.LANCHOR121]
7271	mov	w1, 1
7272	str	x0, [x29, 72]
7273	add	x0, x29, 96
7274	str	x0, [x29, 80]
7275	add	x0, x29, 160
7276	str	wzr, [x0, -96]!
7277	bl	FlashReadPages
7278	ldr	w0, [x29, 64]
7279	cmp	w0, 256
7280	bne	.L996
7281	ldr	w0, [x29, 60]
7282	lsr	w0, w0, 10
7283	bl	P2V_block_in_plane
7284	bl	FtlGcRefreshBlock
7285.L996:
7286	ldp	x19, x20, [sp, 16]
7287	mov	w0, -1
7288	ldr	x21, [sp, 32]
7289	ldp	x29, x30, [sp], 160
7290	ret
7291.L997:
7292	subs	w21, w21, #1
7293	bne	.L999
7294	b	.L996
7295.L994:
7296	adrp	x1, .LANCHOR62
7297	str	wzr, [x0, 84]
7298	ldr	w1, [x1, #:lo12:.LANCHOR62]
7299	stp	w1, wzr, [x0, 76]
7300.L1003:
7301	mov	w0, 0
7302	ret
7303.L993:
7304	ldr	w4, [x0, 76]
7305	adrp	x0, .LANCHOR62
7306	ldr	w2, [x0, #:lo12:.LANCHOR62]
7307	add	w0, w2, 1048576
7308	cmp	w4, w0
7309	bhi	.L1002
7310	adrp	x0, .LANCHOR76
7311	ldr	w0, [x0, #:lo12:.LANCHOR76]
7312	lsr	w3, w0, 10
7313	mov	w0, 33554432
7314	asr	w0, w0, w3
7315	add	w0, w0, w4
7316	cmp	w2, w0
7317	bhi	.L1002
7318	adrp	x0, .LANCHOR39+28
7319	ldrb	w0, [x0, #:lo12:.LANCHOR39+28]
7320	cbnz	w0, .L1003
7321.L1002:
7322	add	x0, x1, :lo12:.LANCHOR81
7323	mov	w1, 1
7324	str	wzr, [x0, 84]
7325	stp	w2, w1, [x0, 76]
7326	b	.L1003
7327	.size	FtlReadRefresh, .-FtlReadRefresh
7328	.section	.text.FtlMapBlkWriteDump_data,"ax",@progbits
7329	.align	2
7330	.global	FtlMapBlkWriteDump_data
7331	.type	FtlMapBlkWriteDump_data, %function
7332FtlMapBlkWriteDump_data:
7333	ldr	w1, [x0, 56]
7334	cbz	w1, .L1009
7335	stp	x29, x30, [sp, -48]!
7336	adrp	x1, .LANCHOR148
7337	adrp	x2, .LANCHOR123
7338	add	x29, sp, 0
7339	stp	x19, x20, [sp, 16]
7340	mov	x19, x0
7341	ldrh	w20, [x0, 6]
7342	adrp	x0, .LANCHOR116
7343	ldr	x2, [x2, #:lo12:.LANCHOR123]
7344	ldr	x3, [x0, #:lo12:.LANCHOR116]
7345	add	x0, x1, :lo12:.LANCHOR148
7346	sub	w20, w20, #1
7347	ldr	x4, [x19, 40]
7348	and	w20, w20, 65535
7349	str	x21, [sp, 32]
7350	stp	x3, x2, [x0, 8]
7351	ubfiz	x2, x20, 2, 16
7352	str	wzr, [x19, 56]
7353	mov	x21, x1
7354	ldr	w2, [x4, x2]
7355	str	w2, [x0, 4]
7356	cbz	w2, .L1011
7357	mov	w2, 1
7358	mov	w1, w2
7359	bl	FlashReadPages
7360.L1012:
7361	add	x1, x21, :lo12:.LANCHOR148
7362	mov	x0, x19
7363	ldr	x21, [sp, 32]
7364	ldr	x2, [x1, 8]
7365	mov	w1, w20
7366	ldp	x19, x20, [sp, 16]
7367	ldp	x29, x30, [sp], 48
7368	b	FtlMapWritePage
7369.L1011:
7370	adrp	x0, .LANCHOR23
7371	mov	w1, 255
7372	ldrh	w2, [x0, #:lo12:.LANCHOR23]
7373	mov	x0, x3
7374	bl	ftl_memset
7375	b	.L1012
7376.L1009:
7377	ret
7378	.size	FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
7379	.section	.text.FlashTestBlk,"ax",@progbits
7380	.align	2
7381	.global	FlashTestBlk
7382	.type	FlashTestBlk, %function
7383FlashTestBlk:
7384	stp	x29, x30, [sp, -128]!
7385	add	x29, sp, 0
7386	stp	x19, x20, [sp, 16]
7387	and	w19, w0, 65535
7388	cmp	w19, 11
7389	bls	.L1018
7390	adrp	x20, .LANCHOR121
7391	mov	w2, 32
7392	mov	w1, 165
7393	lsl	w19, w19, 10
7394	ldr	x0, [x20, #:lo12:.LANCHOR121]
7395	str	x0, [x29, 40]
7396	add	x0, x29, 64
7397	str	x0, [x29, 48]
7398	bl	ftl_memset
7399	ldr	x0, [x20, #:lo12:.LANCHOR121]
7400	mov	w2, 8
7401	mov	w1, 90
7402	bl	ftl_memset
7403	str	w19, [x29, 36]
7404	mov	w2, 1
7405	add	x0, x29, 32
7406	mov	w1, w2
7407	bl	FlashEraseBlocks
7408	mov	w3, 1
7409	add	x0, x29, 32
7410	mov	w2, w3
7411	mov	w1, w3
7412	bl	FlashProgPages
7413	ldr	w0, [x29, 32]
7414	mov	w2, 1
7415	mov	w1, 0
7416	cmp	w0, 0
7417	add	x0, x29, 32
7418	csetm	w19, ne
7419	bl	FlashEraseBlocks
7420.L1016:
7421	mov	w0, w19
7422	ldp	x19, x20, [sp, 16]
7423	ldp	x29, x30, [sp], 128
7424	ret
7425.L1018:
7426	mov	w19, 0
7427	b	.L1016
7428	.size	FlashTestBlk, .-FlashTestBlk
7429	.section	.text.FtlBbmTblFlush,"ax",@progbits
7430	.align	2
7431	.global	FtlBbmTblFlush
7432	.type	FtlBbmTblFlush, %function
7433FtlBbmTblFlush:
7434	stp	x29, x30, [sp, -96]!
7435	add	x29, sp, 0
7436	stp	x23, x24, [sp, 48]
7437	adrp	x23, .LANCHOR123
7438	stp	x19, x20, [sp, 16]
7439	adrp	x20, .LANCHOR148
7440	stp	x21, x22, [sp, 32]
7441	add	x19, x20, :lo12:.LANCHOR148
7442	adrp	x22, .LANCHOR115
7443	ldr	x1, [x23, #:lo12:.LANCHOR123]
7444	stp	x25, x26, [sp, 64]
7445	adrp	x21, .LANCHOR37
7446	str	x27, [sp, 80]
7447	add	x25, x21, :lo12:.LANCHOR37
7448	ldr	x0, [x22, #:lo12:.LANCHOR115]
7449	adrp	x26, .LANCHOR10
7450	stp	x0, x1, [x19, 8]
7451	adrp	x1, .LANCHOR23
7452	adrp	x27, .LANCHOR137
7453	add	x25, x25, 32
7454	ldrh	w2, [x1, #:lo12:.LANCHOR23]
7455	mov	w24, 0
7456	add	x26, x26, :lo12:.LANCHOR10
7457	add	x27, x27, :lo12:.LANCHOR137
7458	mov	w1, 0
7459	bl	ftl_memset
7460.L1021:
7461	ldrh	w0, [x26]
7462	cmp	w24, w0
7463	blt	.L1022
7464	add	x20, x20, :lo12:.LANCHOR148
7465	add	x19, x21, :lo12:.LANCHOR37
7466	mov	w2, 16
7467	mov	w1, 255
7468	adrp	x24, .LC101
7469	adrp	x26, .LANCHOR20
7470	ldr	x27, [x20, 16]
7471	add	x24, x24, :lo12:.LC101
7472	add	x26, x26, :lo12:.LANCHOR20
7473	mov	w25, 0
7474	mov	x0, x27
7475	bl	ftl_memset
7476	mov	w0, -3887
7477	strh	w0, [x27]
7478	ldr	w0, [x19, 8]
7479	str	w0, [x27, 4]
7480	ldrh	w0, [x21, #:lo12:.LANCHOR37]
7481	mov	w21, 0
7482	strh	w0, [x27, 2]
7483	ldrh	w0, [x19, 4]
7484	strh	w0, [x27, 8]
7485	ldrh	w0, [x19, 6]
7486	strh	w0, [x27, 10]
7487	adrp	x0, .LANCHOR2
7488	ldr	w0, [x0, #:lo12:.LANCHOR2]
7489	strh	w0, [x27, 12]
7490.L1023:
7491	ldrh	w1, [x19]
7492	ldrh	w4, [x27, 10]
7493	ldrh	w2, [x19, 2]
7494	ldrh	w3, [x19, 4]
7495	ldr	x0, [x22, #:lo12:.LANCHOR115]
7496	str	x0, [x20, 8]
7497	ldr	x0, [x23, #:lo12:.LANCHOR123]
7498	str	x0, [x20, 16]
7499	orr	w0, w2, w1, lsl 10
7500	str	wzr, [x20]
7501	str	w0, [x20, 4]
7502	mov	x0, x24
7503	bl	printf
7504	ldrh	w0, [x26]
7505	ldrh	w1, [x19, 2]
7506	sub	w0, w0, #1
7507	cmp	w1, w0
7508	blt	.L1024
7509	ldr	w0, [x19, 8]
7510	mov	w2, 1
7511	ldrh	w1, [x19, 4]
7512	add	w0, w0, 1
7513	str	w0, [x19, 8]
7514	str	w0, [x27, 4]
7515	ldrh	w0, [x19]
7516	strh	w0, [x27, 8]
7517	strh	w0, [x19, 4]
7518	adrp	x0, .LANCHOR106
7519	strh	w1, [x19]
7520	lsl	w1, w1, 10
7521	ldr	x0, [x0, #:lo12:.LANCHOR106]
7522	str	w1, [x20, 4]
7523	strh	wzr, [x19, 2]
7524	str	w1, [x0, 4]
7525	mov	w1, w2
7526	bl	FlashEraseBlocks
7527.L1024:
7528	mov	w3, 1
7529	mov	x0, x20
7530	mov	w2, w3
7531	mov	w1, w3
7532	bl	FlashProgPages
7533	ldrh	w0, [x19, 2]
7534	add	w0, w0, 1
7535	strh	w0, [x19, 2]
7536	ldr	w0, [x20]
7537	cmn	w0, #1
7538	bne	.L1025
7539	ldr	w1, [x20, 4]
7540	add	w21, w21, 1
7541	adrp	x0, .LC102
7542	and	w21, w21, 65535
7543	add	x0, x0, :lo12:.LC102
7544	bl	printf
7545	cmp	w21, 3
7546	bls	.L1023
7547	ldr	w1, [x20, 4]
7548	adrp	x0, .LC103
7549	mov	w2, w21
7550	add	x0, x0, :lo12:.LC103
7551	bl	printf
7552.L1027:
7553	b	.L1027
7554.L1022:
7555	ldrh	w2, [x27]
7556	ldr	x1, [x25], 8
7557	ldr	x0, [x19, 8]
7558	mul	w3, w24, w2
7559	lsl	w2, w2, 2
7560	add	w24, w24, 1
7561	add	x0, x0, x3, sxtw 2
7562	bl	ftl_memcpy
7563	b	.L1021
7564.L1028:
7565	mov	w25, 1
7566	b	.L1023
7567.L1025:
7568	cbz	w25, .L1028
7569	mov	w0, 0
7570	ldr	x27, [sp, 80]
7571	ldp	x19, x20, [sp, 16]
7572	ldp	x21, x22, [sp, 32]
7573	ldp	x23, x24, [sp, 48]
7574	ldp	x25, x26, [sp, 64]
7575	ldp	x29, x30, [sp], 96
7576	ret
7577	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
7578	.section	.text.allocate_data_superblock,"ax",@progbits
7579	.align	2
7580	.global	allocate_data_superblock
7581	.type	allocate_data_superblock, %function
7582allocate_data_superblock:
7583	stp	x29, x30, [sp, -112]!
7584	add	x29, sp, 0
7585	stp	x27, x28, [sp, 80]
7586	adrp	x28, .LANCHOR48
7587	stp	x23, x24, [sp, 48]
7588	add	x24, x28, :lo12:.LANCHOR48
7589	stp	x19, x20, [sp, 16]
7590	adrp	x27, .LANCHOR45
7591	mov	x19, x0
7592	stp	x21, x22, [sp, 32]
7593	add	x0, x27, :lo12:.LANCHOR45
7594	stp	x25, x26, [sp, 64]
7595	str	x0, [x29, 104]
7596.L1031:
7597	ldr	x1, [x29, 104]
7598	adrp	x23, .LANCHOR5
7599	ldrh	w0, [x28, #:lo12:.LANCHOR48]
7600	ldrh	w1, [x1]
7601	add	w0, w0, w1
7602	ldrh	w1, [x23, #:lo12:.LANCHOR5]
7603	cmp	w0, w1
7604	ble	.L1032
7605	adrp	x1, .LANCHOR163
7606	adrp	x0, .LC1
7607	mov	w2, 2615
7608	add	x1, x1, :lo12:.LANCHOR163
7609	add	x0, x0, :lo12:.LC1
7610	bl	printf
7611.L1032:
7612	adrp	x0, .LANCHOR53
7613	add	x0, x0, :lo12:.LANCHOR53
7614	cmp	x19, x0
7615	bne	.L1058
7616	adrp	x1, .LANCHOR87
7617	ldrh	w0, [x24]
7618	ldr	w1, [x1, #:lo12:.LANCHOR87]
7619	mul	w1, w0, w1
7620	lsr	w0, w0, 1
7621	add	w0, w0, 1
7622	add	w1, w0, w1, lsr 2
7623	ands	w1, w1, 65535
7624	beq	.L1033
7625	sub	w1, w1, #1
7626	and	w1, w1, 65535
7627.L1033:
7628	adrp	x0, .LANCHOR47
7629	add	x0, x0, :lo12:.LANCHOR47
7630	bl	List_pop_index_node
7631	and	w22, w0, 65535
7632	ldrh	w0, [x24]
7633	cbnz	w0, .L1034
7634	adrp	x1, .LANCHOR163
7635	adrp	x0, .LC1
7636	mov	w2, 2624
7637	add	x1, x1, :lo12:.LANCHOR163
7638	add	x0, x0, :lo12:.LC1
7639	bl	printf
7640.L1034:
7641	ldrh	w0, [x24]
7642	sub	w0, w0, #1
7643	strh	w0, [x24]
7644	ldrh	w0, [x23, #:lo12:.LANCHOR5]
7645	cmp	w0, w22
7646	bls	.L1031
7647	adrp	x25, .LANCHOR42
7648	ubfiz	x20, x22, 1, 16
7649	ldr	x0, [x25, #:lo12:.LANCHOR42]
7650	ldrh	w21, [x0, x20]
7651	cbnz	w21, .L1031
7652	strh	w22, [x19]
7653	mov	x0, x19
7654	bl	make_superblock
7655	ldrb	w0, [x19, 7]
7656	cbnz	w0, .L1036
7657	ldr	x0, [x25, #:lo12:.LANCHOR42]
7658	mov	w1, -1
7659	strh	w1, [x0, x20]
7660	mov	w0, w22
7661	bl	INSERT_DATA_LIST
7662	ldrh	w1, [x27, #:lo12:.LANCHOR45]
7663	ldrh	w0, [x24]
7664	add	w0, w0, w1
7665	ldrh	w1, [x23, #:lo12:.LANCHOR5]
7666	cmp	w0, w1
7667	ble	.L1031
7668	mov	w2, 2638
7669	adrp	x1, .LANCHOR163
7670	adrp	x0, .LC1
7671	add	x1, x1, :lo12:.LANCHOR163
7672	add	x0, x0, :lo12:.LC1
7673	bl	printf
7674	b	.L1031
7675.L1058:
7676	mov	w1, 0
7677	b	.L1033
7678.L1036:
7679	ldrh	w1, [x27, #:lo12:.LANCHOR45]
7680	ldrh	w0, [x24]
7681	add	w0, w0, w1
7682	ldrh	w1, [x23, #:lo12:.LANCHOR5]
7683	cmp	w0, w1
7684	ble	.L1038
7685	adrp	x1, .LANCHOR163
7686	adrp	x0, .LC1
7687	mov	w2, 2641
7688	add	x1, x1, :lo12:.LANCHOR163
7689	add	x0, x0, :lo12:.LC1
7690	bl	printf
7691.L1038:
7692	adrp	x0, .LANCHOR3
7693	adrp	x25, .LANCHOR106
7694	add	x26, x19, 16
7695	mov	w6, 65535
7696	ldrh	w0, [x0, #:lo12:.LANCHOR3]
7697	mov	x4, x26
7698	ldr	x3, [x25, #:lo12:.LANCHOR106]
7699	ubfiz	x0, x0, 5, 16
7700	add	x1, x3, 8
7701	add	x0, x0, 8
7702	add	x0, x3, x0
7703.L1039:
7704	cmp	x0, x1
7705	bne	.L1041
7706	cbnz	w21, .L1042
7707	adrp	x1, .LANCHOR163
7708	adrp	x0, .LC1
7709	mov	w2, 2652
7710	add	x1, x1, :lo12:.LANCHOR163
7711	add	x0, x0, :lo12:.LC1
7712	bl	printf
7713.L1042:
7714	adrp	x0, .LANCHOR80
7715	ldrh	w0, [x0, #:lo12:.LANCHOR80]
7716	cmp	w0, w22
7717	bne	.L1043
7718	adrp	x1, .LANCHOR163
7719	adrp	x0, .LC1
7720	mov	w2, 2654
7721	add	x1, x1, :lo12:.LANCHOR163
7722	add	x0, x0, :lo12:.LC1
7723	bl	printf
7724.L1043:
7725	ldrb	w0, [x19, 8]
7726	adrp	x6, .LANCHOR43
7727	adrp	x7, .LANCHOR14
7728	adrp	x5, .LANCHOR72
7729	adrp	x4, .LANCHOR73
7730	ldr	x1, [x6, #:lo12:.LANCHOR43]
7731	cbnz	w0, .L1044
7732	ldrh	w0, [x1, x20]
7733	cbz	w0, .L1045
7734	ldrh	w2, [x7, #:lo12:.LANCHOR14]
7735	add	w0, w0, w2
7736.L1069:
7737	strh	w0, [x1, x20]
7738	mov	w1, 0
7739	ldr	w0, [x5, #:lo12:.LANCHOR72]
7740	add	w0, w0, 1
7741	str	w0, [x5, #:lo12:.LANCHOR72]
7742	mov	w0, w22
7743	bl	ftl_set_blk_mode
7744.L1047:
7745	ldr	x0, [x6, #:lo12:.LANCHOR43]
7746	ldrh	w1, [x0, x20]
7747	adrp	x0, .LANCHOR76
7748	ldr	w2, [x0, #:lo12:.LANCHOR76]
7749	cmp	w1, w2
7750	bls	.L1048
7751	str	w1, [x0, #:lo12:.LANCHOR76]
7752.L1048:
7753	ldr	w2, [x5, #:lo12:.LANCHOR72]
7754	ldr	w1, [x4, #:lo12:.LANCHOR73]
7755	ldrh	w0, [x7, #:lo12:.LANCHOR14]
7756	madd	w0, w0, w2, w1
7757	ldrh	w1, [x23, #:lo12:.LANCHOR5]
7758	udiv	w0, w0, w1
7759	adrp	x1, .LANCHOR74
7760	str	w0, [x1, #:lo12:.LANCHOR74]
7761	adrp	x0, .LANCHOR127
7762	ldr	x1, [x0, #:lo12:.LANCHOR127]
7763	ldr	w0, [x1, 16]
7764	add	w0, w0, 1
7765	str	w0, [x1, 16]
7766	ldr	x0, [x25, #:lo12:.LANCHOR106]
7767	ubfiz	x1, x21, 5, 16
7768	add	x1, x1, 4
7769	add	x2, x0, 4
7770	add	x1, x0, x1
7771.L1049:
7772	cmp	x1, x2
7773	bne	.L1050
7774	ldrb	w1, [x19, 8]
7775	mov	w2, w21
7776	mov	x23, 0
7777	bl	FlashEraseBlocks
7778	mov	w1, 0
7779.L1051:
7780	cmp	w21, w23, uxth
7781	bhi	.L1053
7782	cbz	w1, .L1054
7783	mov	w0, w22
7784	bl	update_multiplier_value
7785	bl	FtlBbmTblFlush
7786.L1054:
7787	ldrb	w0, [x19, 7]
7788	cbnz	w0, .L1055
7789	adrp	x0, .LANCHOR42
7790	mov	w1, -1
7791	ldr	x0, [x0, #:lo12:.LANCHOR42]
7792	strh	w1, [x0, x20]
7793	b	.L1031
7794.L1041:
7795	ldrh	w2, [x4]
7796	stp	xzr, xzr, [x1]
7797	cmp	w2, w6
7798	beq	.L1040
7799	ubfiz	x5, x21, 5, 16
7800	add	w21, w21, 1
7801	add	x5, x3, x5
7802	and	w21, w21, 65535
7803	lsl	w2, w2, 10
7804	str	w2, [x5, 4]
7805.L1040:
7806	add	x1, x1, 32
7807	add	x4, x4, 2
7808	b	.L1039
7809.L1045:
7810	mov	w0, 2
7811	b	.L1069
7812.L1044:
7813	ldrh	w0, [x1, x20]
7814	add	w0, w0, 1
7815	strh	w0, [x1, x20]
7816	ldr	w0, [x4, #:lo12:.LANCHOR73]
7817	add	w0, w0, 1
7818	str	w0, [x4, #:lo12:.LANCHOR73]
7819	mov	w0, w22
7820	bl	ftl_set_blk_mode.part.6
7821	b	.L1047
7822.L1050:
7823	ldr	w3, [x2]
7824	and	w3, w3, -1024
7825	str	w3, [x2], 32
7826	b	.L1049
7827.L1053:
7828	ldr	x2, [x25, #:lo12:.LANCHOR106]
7829	lsl	x0, x23, 5
7830	add	x3, x2, x0
7831	ldr	w2, [x2, x0]
7832	cmn	w2, #1
7833	bne	.L1052
7834	add	w1, w1, 1
7835	ldr	w0, [x3, 4]
7836	stp	w2, w1, [x29, 96]
7837	lsr	w0, w0, 10
7838	bl	FtlBbmMapBadBlock
7839	ldp	w2, w1, [x29, 96]
7840	strh	w2, [x26]
7841	ldrb	w0, [x19, 7]
7842	sub	w0, w0, #1
7843	strb	w0, [x19, 7]
7844.L1052:
7845	add	x23, x23, 1
7846	add	x26, x26, 2
7847	b	.L1051
7848.L1055:
7849	adrp	x1, .LANCHOR19
7850	adrp	x2, .LANCHOR70
7851	strh	wzr, [x19, 2]
7852	ldrh	w1, [x1, #:lo12:.LANCHOR19]
7853	strh	w22, [x19]
7854	strb	wzr, [x19, 6]
7855	mul	w0, w0, w1
7856	ldr	w1, [x2, #:lo12:.LANCHOR70]
7857	str	w1, [x19, 12]
7858	add	w1, w1, 1
7859	str	w1, [x2, #:lo12:.LANCHOR70]
7860	adrp	x1, .LANCHOR42
7861	and	w0, w0, 65535
7862	strh	w0, [x19, 4]
7863	ldr	x1, [x1, #:lo12:.LANCHOR42]
7864	strh	w0, [x1, x20]
7865	ldrh	w0, [x19, 4]
7866	cbz	w0, .L1056
7867	ldrb	w0, [x19, 7]
7868	cbnz	w0, .L1057
7869.L1056:
7870	adrp	x1, .LANCHOR163
7871	adrp	x0, .LC1
7872	mov	w2, 2707
7873	add	x1, x1, :lo12:.LANCHOR163
7874	add	x0, x0, :lo12:.LC1
7875	bl	printf
7876.L1057:
7877	ldp	x19, x20, [sp, 16]
7878	mov	w0, 0
7879	ldp	x21, x22, [sp, 32]
7880	ldp	x23, x24, [sp, 48]
7881	ldp	x25, x26, [sp, 64]
7882	ldp	x27, x28, [sp, 80]
7883	ldp	x29, x30, [sp], 112
7884	ret
7885	.size	allocate_data_superblock, .-allocate_data_superblock
7886	.section	.text.FtlGcFreeBadSuperBlk,"ax",@progbits
7887	.align	2
7888	.global	FtlGcFreeBadSuperBlk
7889	.type	FtlGcFreeBadSuperBlk, %function
7890FtlGcFreeBadSuperBlk:
7891	stp	x29, x30, [sp, -96]!
7892	add	x29, sp, 0
7893	stp	x21, x22, [sp, 32]
7894	adrp	x21, .LANCHOR101
7895	stp	x25, x26, [sp, 64]
7896	and	w25, w0, 65535
7897	ldrh	w0, [x21, #:lo12:.LANCHOR101]
7898	stp	x19, x20, [sp, 16]
7899	stp	x23, x24, [sp, 48]
7900	str	x27, [sp, 80]
7901	cbz	w0, .L1071
7902	adrp	x23, .LANCHOR102
7903	add	x24, x23, :lo12:.LANCHOR102
7904	mov	w19, 0
7905.L1072:
7906	adrp	x0, .LANCHOR3
7907	ldrh	w0, [x0, #:lo12:.LANCHOR3]
7908	cmp	w0, w19
7909	bhi	.L1078
7910	bl	FtlGcReFreshBadBlk
7911.L1071:
7912	mov	w0, 0
7913	ldr	x27, [sp, 80]
7914	ldp	x19, x20, [sp, 16]
7915	ldp	x21, x22, [sp, 32]
7916	ldp	x23, x24, [sp, 48]
7917	ldp	x25, x26, [sp, 64]
7918	ldp	x29, x30, [sp], 96
7919	ret
7920.L1078:
7921	adrp	x0, .LANCHOR13
7922	add	x0, x0, :lo12:.LANCHOR13
7923	mov	w1, w25
7924	add	x22, x21, :lo12:.LANCHOR101
7925	mov	w20, 0
7926	ldrb	w0, [x0, w19, sxtw]
7927	bl	V2P_block
7928	and	w26, w0, 65535
7929.L1073:
7930	ldrh	w0, [x22]
7931	cmp	w0, w20
7932	bhi	.L1077
7933	add	w19, w19, 1
7934	and	w19, w19, 65535
7935	b	.L1072
7936.L1077:
7937	add	x0, x23, :lo12:.LANCHOR102
7938	add	w27, w20, 1
7939	ldrh	w0, [x0, w20, sxtw 1]
7940	cmp	w0, w26
7941	bne	.L1074
7942	mov	w1, w26
7943	adrp	x0, .LC104
7944	add	x0, x0, :lo12:.LC104
7945	bl	printf
7946	mov	w0, w26
7947	bl	FtlBbmMapBadBlock
7948	bl	FtlBbmTblFlush
7949	ldrh	w1, [x22]
7950	sxtw	x3, w27
7951	and	x4, x20, 65535
7952	mov	x0, 0
7953.L1075:
7954	add	w2, w20, w0
7955	cmp	w1, w2, uxth
7956	bhi	.L1076
7957	sub	w1, w1, #1
7958	strh	w1, [x22]
7959.L1074:
7960	and	w20, w27, 65535
7961	b	.L1073
7962.L1076:
7963	add	x2, x3, x0
7964	ldrh	w5, [x24, x2, lsl 1]
7965	add	x2, x4, x0
7966	add	x0, x0, 1
7967	strh	w5, [x24, x2, lsl 1]
7968	b	.L1075
7969	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
7970	.section	.text.update_vpc_list,"ax",@progbits
7971	.align	2
7972	.global	update_vpc_list
7973	.type	update_vpc_list, %function
7974update_vpc_list:
7975	stp	x29, x30, [sp, -32]!
7976	adrp	x1, .LANCHOR42
7977	add	x29, sp, 0
7978	stp	x19, x20, [sp, 16]
7979	and	w19, w0, 65535
7980	ldr	x1, [x1, #:lo12:.LANCHOR42]
7981	ubfiz	x0, x19, 1, 16
7982	ldrh	w0, [x1, x0]
7983	cbnz	w0, .L1084
7984	adrp	x0, .LANCHOR80
7985	ldrh	w1, [x0, #:lo12:.LANCHOR80]
7986	cmp	w1, w19
7987	bne	.L1085
7988	mov	w1, -1
7989	strh	w1, [x0, #:lo12:.LANCHOR80]
7990.L1086:
7991	adrp	x20, .LANCHOR45
7992	mov	w1, w19
7993	adrp	x0, .LANCHOR41
7994	add	x0, x0, :lo12:.LANCHOR41
7995	bl	List_remove_node
7996	ldrh	w0, [x20, #:lo12:.LANCHOR45]
7997	cbnz	w0, .L1088
7998	adrp	x1, .LANCHOR164
7999	adrp	x0, .LC1
8000	mov	w2, 2777
8001	add	x1, x1, :lo12:.LANCHOR164
8002	add	x0, x0, :lo12:.LC1
8003	bl	printf
8004.L1088:
8005	ldrh	w0, [x20, #:lo12:.LANCHOR45]
8006	sub	w0, w0, #1
8007	strh	w0, [x20, #:lo12:.LANCHOR45]
8008	mov	w0, w19
8009	bl	free_data_superblock
8010	mov	w0, w19
8011	bl	FtlGcFreeBadSuperBlk
8012	adrp	x0, .LANCHOR48
8013	ldrh	w1, [x20, #:lo12:.LANCHOR45]
8014	ldrh	w0, [x0, #:lo12:.LANCHOR48]
8015	add	w0, w0, w1
8016	adrp	x1, .LANCHOR5
8017	ldrh	w1, [x1, #:lo12:.LANCHOR5]
8018	cmp	w0, w1
8019	ble	.L1092
8020	adrp	x1, .LANCHOR164
8021	adrp	x0, .LC1
8022	mov	w2, 2780
8023	add	x1, x1, :lo12:.LANCHOR164
8024	add	x0, x0, :lo12:.LC1
8025	bl	printf
8026.L1092:
8027	mov	w0, 1
8028	b	.L1083
8029.L1085:
8030	adrp	x0, .LANCHOR51
8031	ldrh	w0, [x0, #:lo12:.LANCHOR51]
8032	cmp	w0, w19
8033	beq	.L1091
8034	adrp	x0, .LANCHOR52
8035	ldrh	w0, [x0, #:lo12:.LANCHOR52]
8036	cmp	w0, w19
8037	beq	.L1091
8038	adrp	x0, .LANCHOR53
8039	ldrh	w0, [x0, #:lo12:.LANCHOR53]
8040	cmp	w0, w19
8041	bne	.L1086
8042.L1091:
8043	mov	w0, 0
8044.L1083:
8045	ldp	x19, x20, [sp, 16]
8046	ldp	x29, x30, [sp], 32
8047	ret
8048.L1084:
8049	mov	w0, w19
8050	bl	List_update_data_list
8051	b	.L1091
8052	.size	update_vpc_list, .-update_vpc_list
8053	.section	.text.decrement_vpc_count,"ax",@progbits
8054	.align	2
8055	.global	decrement_vpc_count
8056	.type	decrement_vpc_count, %function
8057decrement_vpc_count:
8058	stp	x29, x30, [sp, -48]!
8059	add	x29, sp, 0
8060	stp	x19, x20, [sp, 16]
8061	and	w19, w0, 65535
8062	str	x21, [sp, 32]
8063	mov	w0, 65535
8064	cmp	w19, w0
8065	beq	.L1095
8066	adrp	x21, .LANCHOR42
8067	ubfiz	x20, x19, 1, 16
8068	ldr	x1, [x21, #:lo12:.LANCHOR42]
8069	ldrh	w0, [x1, x20]
8070	cbnz	w0, .L1096
8071	mov	w2, 0
8072	mov	w1, w19
8073	adrp	x0, .LC105
8074	add	x0, x0, :lo12:.LC105
8075	bl	printf
8076	ldr	x0, [x21, #:lo12:.LANCHOR42]
8077	ldrh	w0, [x0, x20]
8078	cbz	w0, .L1097
8079.L1102:
8080	mov	w20, 0
8081.L1094:
8082	mov	w0, w20
8083	ldr	x21, [sp, 32]
8084	ldp	x19, x20, [sp, 16]
8085	ldp	x29, x30, [sp], 48
8086	ret
8087.L1097:
8088	mov	w2, 2795
8089	adrp	x1, .LANCHOR165
8090	adrp	x0, .LC1
8091	add	x1, x1, :lo12:.LANCHOR165
8092	add	x0, x0, :lo12:.LC1
8093	bl	printf
8094	b	.L1102
8095.L1096:
8096	sub	w0, w0, #1
8097	strh	w0, [x1, x20]
8098.L1095:
8099	adrp	x21, .LANCHOR142
8100	mov	w1, 65535
8101	ldrh	w0, [x21, #:lo12:.LANCHOR142]
8102	cmp	w0, w1
8103	bne	.L1099
8104	strh	w19, [x21, #:lo12:.LANCHOR142]
8105	b	.L1102
8106.L1099:
8107	cmp	w19, w0
8108	beq	.L1102
8109	bl	update_vpc_list
8110	cmp	w0, 0
8111	adrp	x1, .LANCHOR40
8112	adrp	x0, .LANCHOR41
8113	strh	w19, [x21, #:lo12:.LANCHOR142]
8114	cset	w20, ne
8115	ldr	x1, [x1, #:lo12:.LANCHOR40]
8116	ldr	x0, [x0, #:lo12:.LANCHOR41]
8117	sub	x0, x0, x1
8118	mov	x1, -6148914691236517206
8119	asr	x0, x0, 1
8120	movk	x1, 0xaaab, lsl 0
8121	mul	x0, x0, x1
8122	adrp	x1, .LANCHOR42
8123	ldr	x1, [x1, #:lo12:.LANCHOR42]
8124	and	x2, x0, 65535
8125	ldrh	w1, [x1, x2, lsl 1]
8126	cbnz	w1, .L1094
8127	cmp	w19, w0, uxth
8128	beq	.L1094
8129	mov	w2, 2811
8130	adrp	x1, .LANCHOR165
8131	adrp	x0, .LC1
8132	add	x1, x1, :lo12:.LANCHOR165
8133	add	x0, x0, :lo12:.LC1
8134	bl	printf
8135	b	.L1094
8136	.size	decrement_vpc_count, .-decrement_vpc_count
8137	.section	.text.FtlRecoverySuperblock,"ax",@progbits
8138	.align	2
8139	.global	FtlRecoverySuperblock
8140	.type	FtlRecoverySuperblock, %function
8141FtlRecoverySuperblock:
8142	stp	x29, x30, [sp, -192]!
8143	mov	w1, 65535
8144	add	x29, sp, 0
8145	stp	x19, x20, [sp, 16]
8146	mov	x19, x0
8147	stp	x21, x22, [sp, 32]
8148	ldrh	w0, [x0]
8149	stp	x23, x24, [sp, 48]
8150	stp	x25, x26, [sp, 64]
8151	cmp	w0, w1
8152	stp	x27, x28, [sp, 80]
8153	beq	.L1226
8154	ldrb	w0, [x19, 6]
8155	str	w0, [x29, 164]
8156	adrp	x0, .LANCHOR19
8157	ldrh	w26, [x19, 2]
8158	str	x0, [x29, 128]
8159	ldrh	w2, [x0, #:lo12:.LANCHOR19]
8160	cmp	w2, w26
8161	bne	.L1106
8162	strh	wzr, [x19, 4]
8163.L1232:
8164	strb	wzr, [x19, 6]
8165.L1226:
8166	ldp	x19, x20, [sp, 16]
8167	mov	w0, 0
8168	ldp	x21, x22, [sp, 32]
8169	ldp	x23, x24, [sp, 48]
8170	ldp	x25, x26, [sp, 64]
8171	ldp	x27, x28, [sp, 80]
8172	ldp	x29, x30, [sp], 192
8173	ret
8174.L1106:
8175	ldrh	w0, [x19, 16]
8176	mov	w20, 0
8177.L1107:
8178	cmp	w0, w1
8179	beq	.L1108
8180	mov	w1, 1
8181	bl	FtlGetLastWrittenPage
8182	mov	w23, w0
8183	cmn	w0, #1
8184	beq	.L1109
8185	adrp	x1, .LANCHOR91
8186	adrp	x2, .LANCHOR3
8187	adrp	x20, .LANCHOR112
8188	add	x4, x19, 16
8189	ldr	x5, [x1, #:lo12:.LANCHOR91]
8190	adrp	x1, .LANCHOR23
8191	ldr	x0, [x20, #:lo12:.LANCHOR112]
8192	mov	w22, 0
8193	ldrh	w6, [x1, #:lo12:.LANCHOR23]
8194	adrp	x1, .LANCHOR92
8195	mov	w10, 65535
8196	str	x2, [x29, 152]
8197	ldr	x7, [x1, #:lo12:.LANCHOR92]
8198	adrp	x1, .LANCHOR24
8199	ldrh	w8, [x1, #:lo12:.LANCHOR24]
8200	add	x1, x19, 16
8201	str	x1, [x29, 168]
8202	ldrh	w1, [x2, #:lo12:.LANCHOR3]
8203	add	x1, x1, 8
8204	add	x1, x19, x1, lsl 1
8205.L1110:
8206	cmp	x4, x1
8207	bne	.L1114
8208	mov	w2, 0
8209	mov	w1, w22
8210	bl	FlashReadPages
8211	adrp	x0, .LANCHOR71
8212	ldr	x4, [x20, #:lo12:.LANCHOR112]
8213	and	w10, w23, 65535
8214	add	x7, x0, :lo12:.LANCHOR71
8215	ldr	w21, [x0, #:lo12:.LANCHOR71]
8216	mov	x11, x4
8217	mov	w6, 65535
8218	mov	w3, 0
8219	sub	w21, w21, #1
8220	str	x0, [x29, 144]
8221.L1115:
8222	cmp	w22, w3
8223	bne	.L1120
8224	add	w22, w23, 1
8225	ldr	w0, [x4, 4]
8226	and	w22, w22, 65535
8227.L1228:
8228	lsr	w0, w0, 10
8229	bl	P2V_plane
8230	and	w27, w0, 65535
8231	ldr	x0, [x29, 128]
8232	ldrh	w0, [x0, #:lo12:.LANCHOR19]
8233	cmp	w0, w22
8234	bne	.L1122
8235	strh	w22, [x19, 2]
8236	strb	wzr, [x19, 6]
8237	strh	wzr, [x19, 4]
8238.L1122:
8239	ldr	w0, [x29, 164]
8240	cmp	w22, w26
8241	cset	w1, eq
8242	cmp	w27, w0
8243	cset	w0, eq
8244	tst	w1, w0
8245	beq	.L1123
8246.L1233:
8247	mov	w2, w27
8248	mov	w1, w22
8249	mov	x0, x19
8250	bl	ftl_sb_update_avl_pages
8251	b	.L1226
8252.L1108:
8253	add	w20, w20, 1
8254	and	w20, w20, 65535
8255	add	x0, x19, x20, sxtw 1
8256	ldrh	w0, [x0, 16]
8257	b	.L1107
8258.L1109:
8259	cbz	w26, .L1111
8260	adrp	x1, .LANCHOR166
8261	adrp	x0, .LC1
8262	mov	w2, 1766
8263	add	x1, x1, :lo12:.LANCHOR166
8264	add	x0, x0, :lo12:.LC1
8265	bl	printf
8266.L1111:
8267	ldr	w0, [x29, 164]
8268	cmp	w0, 0
8269	ccmp	w20, w0, 4, ne
8270	beq	.L1112
8271	adrp	x1, .LANCHOR166
8272	adrp	x0, .LC1
8273	mov	w2, 1767
8274	add	x1, x1, :lo12:.LANCHOR166
8275	add	x0, x0, :lo12:.LC1
8276	bl	printf
8277.L1112:
8278	strh	wzr, [x19, 2]
8279	b	.L1232
8280.L1114:
8281	ldrh	w3, [x4]
8282	cmp	w3, w10
8283	beq	.L1113
8284	ubfiz	x2, x22, 5, 16
8285	orr	w3, w23, w3, lsl 10
8286	add	x2, x0, x2
8287	str	w3, [x2, 4]
8288	mul	w3, w22, w6
8289	asr	w3, w3, 2
8290	add	x3, x5, x3, sxtw 2
8291	str	x3, [x2, 8]
8292	mul	w3, w22, w8
8293	add	w22, w22, 1
8294	and	w22, w22, 65535
8295	asr	w3, w3, 2
8296	add	x3, x7, x3, sxtw 2
8297	str	x3, [x2, 16]
8298.L1113:
8299	add	x4, x4, 2
8300	b	.L1110
8301.L1120:
8302	ldr	w0, [x11]
8303	cbnz	w0, .L1116
8304	ldr	x8, [x11, 16]
8305	ldr	w5, [x8, 4]
8306	cmn	w5, #1
8307	beq	.L1117
8308	ldr	w1, [x7]
8309	mov	w0, w5
8310	bl	ftl_cmp_data_ver
8311	cbz	w0, .L1117
8312	add	w5, w5, 1
8313	str	w5, [x7]
8314.L1117:
8315	ldr	w0, [x8]
8316	cmn	w0, #1
8317	bne	.L1119
8318	ubfiz	x3, x3, 5, 16
8319	and	w22, w23, 65535
8320	add	x3, x4, x3
8321	ldr	w0, [x3, 4]
8322	b	.L1228
8323.L1116:
8324	mov	w6, w10
8325.L1119:
8326	add	w3, w3, 1
8327	add	x11, x11, 32
8328	and	w3, w3, 65535
8329	b	.L1115
8330.L1123:
8331	mov	w0, 65535
8332	cmp	w6, w0
8333	bne	.L1124
8334	ldrb	w0, [x19, 8]
8335	cbnz	w0, .L1125
8336.L1124:
8337	adrp	x25, .LANCHOR145
8338	and	w28, w23, 65535
8339	ldr	w0, [x25, #:lo12:.LANCHOR145]
8340	cmn	w0, #1
8341	bne	.L1126
8342	str	w21, [x25, #:lo12:.LANCHOR145]
8343.L1126:
8344	add	w0, w26, 7
8345	cmp	w0, w23, uxth
8346	bge	.L1175
8347	sub	w24, w28, #7
8348	and	w24, w24, 65535
8349.L1127:
8350	ldr	x0, [x29, 152]
8351	mov	w3, 65535
8352	mov	w5, 1
8353	add	x4, x0, :lo12:.LANCHOR3
8354.L1128:
8355	cmp	w24, w28
8356	bhi	.L1138
8357	ldrh	w1, [x4]
8358	mov	w23, 0
8359	ldr	x0, [x20, #:lo12:.LANCHOR112]
8360	add	x1, x1, 8
8361	ldr	x2, [x29, 168]
8362	add	x1, x19, x1, lsl 1
8363	b	.L1139
8364.L1175:
8365	mov	w24, w26
8366	b	.L1127
8367.L1130:
8368	ldrh	w6, [x2]
8369	cmp	w6, w3
8370	beq	.L1129
8371	ubfiz	x7, x23, 5, 16
8372	add	w23, w23, 1
8373	add	x7, x0, x7
8374	and	w23, w23, 65535
8375	orr	w6, w24, w6, lsl 10
8376	str	w6, [x7, 4]
8377.L1129:
8378	add	x2, x2, 2
8379.L1139:
8380	cmp	x2, x1
8381	bne	.L1130
8382	mov	w1, w23
8383	mov	w2, 0
8384	str	w5, [x29, 112]
8385	ubfiz	x23, x23, 5, 16
8386	str	w3, [x29, 120]
8387	add	x23, x23, 16
8388	str	x4, [x29, 136]
8389	bl	FlashReadPages
8390	ldr	x2, [x20, #:lo12:.LANCHOR112]
8391	ldr	w1, [x25, #:lo12:.LANCHOR145]
8392	ldr	w5, [x29, 112]
8393	add	x0, x2, 16
8394	ldr	w3, [x29, 120]
8395	add	x23, x2, x23
8396	ldr	x4, [x29, 136]
8397	mov	w2, 0
8398.L1131:
8399	cmp	x23, x0
8400	bne	.L1136
8401	cbz	w2, .L1137
8402	str	w1, [x25, #:lo12:.LANCHOR145]
8403.L1137:
8404	add	w24, w24, 1
8405	and	w24, w24, 65535
8406	b	.L1128
8407.L1136:
8408	ldr	w6, [x0, -16]
8409	cbz	w6, .L1132
8410	cbz	w2, .L1125
8411	str	w1, [x25, #:lo12:.LANCHOR145]
8412.L1125:
8413	adrp	x0, .LANCHOR167
8414	mov	w23, w26
8415	mov	w1, 1
8416	adrp	x28, .LANCHOR145
8417	strh	w1, [x0, #:lo12:.LANCHOR167]
8418	add	x0, x28, :lo12:.LANCHOR145
8419	str	x0, [x29, 104]
8420.L1140:
8421	ldr	x1, [x29, 152]
8422	mov	w24, 0
8423	ldr	x0, [x20, #:lo12:.LANCHOR112]
8424	mov	w5, 65535
8425	ldr	x2, [x29, 168]
8426	ldrh	w1, [x1, #:lo12:.LANCHOR3]
8427	add	x1, x1, 8
8428	add	x1, x19, x1, lsl 1
8429.L1141:
8430	cmp	x1, x2
8431	bne	.L1143
8432	mov	w2, 0
8433	mov	w1, w24
8434	bl	FlashReadPages
8435	mov	x25, 0
8436	ubfiz	x0, x24, 5, 16
8437	str	x0, [x29, 112]
8438	adrp	x0, .LANCHOR168
8439	add	x0, x0, :lo12:.LANCHOR168
8440	str	x0, [x29, 120]
8441.L1144:
8442	ldr	x0, [x29, 112]
8443	cmp	x25, x0
8444	bne	.L1169
8445	ldr	x0, [x29, 128]
8446	add	w23, w23, 1
8447	and	w23, w23, 65535
8448	ldrh	w0, [x0, #:lo12:.LANCHOR19]
8449	cmp	w0, w23
8450	bne	.L1140
8451	ldr	x0, [x29, 152]
8452	mov	w2, 65535
8453	strh	w23, [x19, 2]
8454	strh	wzr, [x19, 4]
8455	ldrh	w1, [x0, #:lo12:.LANCHOR3]
8456	mov	w0, 0
8457.L1170:
8458	cmp	w0, w1
8459	beq	.L1226
8460	ldr	x4, [x29, 168]
8461	ldrh	w3, [x4], 2
8462	str	x4, [x29, 168]
8463	cmp	w3, w2
8464	beq	.L1171
8465	strb	w0, [x19, 6]
8466	b	.L1226
8467.L1132:
8468	ldr	x6, [x0]
8469	ldrh	w7, [x6]
8470	cmp	w7, w3
8471	beq	.L1135
8472	ldr	w6, [x6, 4]
8473	cmn	w6, #1
8474	csel	w1, w1, w6, eq
8475	csel	w2, w2, w5, eq
8476.L1135:
8477	add	x0, x0, 32
8478	b	.L1131
8479.L1138:
8480	mov	w0, -1
8481	str	w0, [x25, #:lo12:.LANCHOR145]
8482	b	.L1125
8483.L1143:
8484	ldrh	w3, [x2]
8485	cmp	w3, w5
8486	beq	.L1142
8487	ubfiz	x4, x24, 5, 16
8488	add	w24, w24, 1
8489	add	x4, x0, x4
8490	and	w24, w24, 65535
8491	orr	w3, w23, w3, lsl 10
8492	str	w3, [x4, 4]
8493.L1142:
8494	add	x2, x2, 2
8495	b	.L1141
8496.L1169:
8497	ldr	x4, [x20, #:lo12:.LANCHOR112]
8498	add	x4, x4, x25
8499	ldr	w5, [x4, 4]
8500	str	w5, [x29, 188]
8501	lsr	w0, w5, 10
8502	bl	P2V_plane
8503	and	w0, w0, 65535
8504	cmp	w23, w26
8505	bcc	.L1145
8506	ldr	w1, [x29, 164]
8507	ccmp	w1, w0, 0, eq
8508	bhi	.L1145
8509	cmp	w23, w22
8510	ccmp	w27, w0, 0, eq
8511	beq	.L1146
8512	ldr	w0, [x4]
8513	cmn	w0, #1
8514	beq	.L1147
8515	ldr	x3, [x4, 16]
8516	mov	w0, 61589
8517	ldrh	w1, [x3]
8518	cmp	w1, w0
8519	beq	.L1148
8520	ldrh	w0, [x19]
8521.L1230:
8522	bl	decrement_vpc_count
8523	b	.L1145
8524.L1148:
8525	ldr	w21, [x3, 4]
8526	cmn	w21, #1
8527	beq	.L1149
8528	ldr	x0, [x29, 144]
8529	ldr	w1, [x0, #:lo12:.LANCHOR71]
8530	mov	w0, w21
8531	bl	ftl_cmp_data_ver
8532	cbz	w0, .L1149
8533	ldr	x1, [x29, 144]
8534	add	w0, w21, 1
8535	str	w0, [x1, #:lo12:.LANCHOR71]
8536.L1149:
8537	ldp	w24, w0, [x3, 8]
8538	add	x1, x29, 184
8539	str	w0, [x29, 180]
8540	mov	w2, 0
8541	mov	w0, w24
8542	bl	log2phys
8543	ldr	w1, [x28, #:lo12:.LANCHOR145]
8544	cmn	w1, #1
8545	beq	.L1150
8546	mov	w0, w21
8547	bl	ftl_cmp_data_ver
8548	cbz	w0, .L1150
8549	ldr	w1, [x29, 180]
8550	cmn	w1, #1
8551	beq	.L1151
8552	ldr	x0, [x20, #:lo12:.LANCHOR112]
8553	mov	w2, 0
8554	add	x0, x0, x25
8555	ldr	x3, [x0, 16]
8556	str	w1, [x0, 4]
8557	mov	w1, 1
8558	str	x3, [x29, 136]
8559	bl	FlashReadPages
8560	ldr	x0, [x20, #:lo12:.LANCHOR112]
8561	ldr	x3, [x29, 136]
8562	add	x4, x0, x25
8563	ldr	w0, [x0, x25]
8564	cmn	w0, #1
8565	bne	.L1152
8566.L1153:
8567	mov	w0, -1
8568	str	w0, [x29, 180]
8569.L1160:
8570	ldr	w3, [x29, 180]
8571	cmn	w3, #1
8572	beq	.L1145
8573.L1174:
8574	lsr	w0, w3, 10
8575	bl	P2V_block_in_plane
8576	and	w24, w0, 65535
8577	adrp	x0, .LANCHOR5
8578	mov	w3, w24
8579	ldrh	w0, [x0, #:lo12:.LANCHOR5]
8580	cmp	w0, w24
8581	bhi	.L1165
8582	mov	w2, 2019
8583	adrp	x1, .LANCHOR166
8584	adrp	x0, .LC1
8585	add	x1, x1, :lo12:.LANCHOR166
8586	add	x0, x0, :lo12:.LC1
8587	str	w24, [x29, 136]
8588	bl	printf
8589	ldr	w3, [x29, 136]
8590.L1165:
8591	adrp	x1, .LANCHOR42
8592	ubfiz	x0, x24, 1, 16
8593	ldr	x1, [x1, #:lo12:.LANCHOR42]
8594	ldrh	w0, [x1, x0]
8595	cbz	w0, .L1166
8596	mov	w0, w3
8597	b	.L1230
8598.L1151:
8599	ldp	w1, w0, [x29, 184]
8600	cmp	w1, w0
8601	bne	.L1145
8602	mov	w2, 1
8603	add	x1, x29, 180
8604	mov	w0, w24
8605	bl	log2phys
8606.L1145:
8607	add	x25, x25, 32
8608	b	.L1144
8609.L1152:
8610	ldr	w0, [x3, 8]
8611	cmp	w24, w0
8612	bne	.L1153
8613	ldr	w0, [x3, 4]
8614	str	w0, [x29, 136]
8615	str	x3, [x29, 96]
8616	uxtw	x1, w0
8617	ldr	w0, [x28, #:lo12:.LANCHOR145]
8618	bl	ftl_cmp_data_ver
8619	cbz	w0, .L1153
8620	ldp	w0, w1, [x29, 184]
8621	ldr	x3, [x29, 96]
8622	cmp	w0, w1
8623	ldr	w1, [x29, 180]
8624	bne	.L1155
8625.L1229:
8626	mov	w0, w24
8627	bl	FtlReUsePrevPpa
8628	b	.L1153
8629.L1155:
8630	cmp	w0, w1
8631	beq	.L1153
8632	cmn	w0, #1
8633	beq	.L1156
8634	ldr	x3, [x4, 16]
8635	mov	w2, 0
8636	str	w0, [x4, 4]
8637	mov	w1, 1
8638	str	x3, [x29, 96]
8639	mov	x0, x4
8640	bl	FlashReadPages
8641	ldr	x3, [x29, 96]
8642.L1157:
8643	ldr	x0, [x20, #:lo12:.LANCHOR112]
8644	ldr	w0, [x0, x25]
8645	cmn	w0, #1
8646	beq	.L1158
8647	ldr	x0, [x29, 104]
8648	ldr	w3, [x3, 4]
8649	mov	w1, w3
8650	ldr	w0, [x0]
8651	bl	ftl_cmp_data_ver
8652	cbz	w0, .L1158
8653	ldr	w0, [x29, 136]
8654	mov	w1, w3
8655	bl	ftl_cmp_data_ver
8656	cbz	w0, .L1153
8657.L1158:
8658	ldr	w1, [x29, 180]
8659	b	.L1229
8660.L1156:
8661	str	w0, [x4]
8662	b	.L1157
8663.L1150:
8664	ldp	w1, w0, [x29, 184]
8665	cmp	w1, w0
8666	beq	.L1160
8667	mov	w2, 1
8668	add	x1, x29, 188
8669	mov	w0, w24
8670	bl	log2phys
8671	ldr	w3, [x29, 184]
8672	cmn	w3, #1
8673	beq	.L1160
8674	ldr	w0, [x29, 180]
8675	cmp	w3, w0
8676	beq	.L1174
8677	lsr	w0, w3, 10
8678	bl	P2V_block_in_plane
8679	adrp	x1, .LANCHOR51
8680	and	w0, w0, 65535
8681	ldrh	w1, [x1, #:lo12:.LANCHOR51]
8682	cmp	w1, w0
8683	beq	.L1164
8684	adrp	x1, .LANCHOR52
8685	ldrh	w1, [x1, #:lo12:.LANCHOR52]
8686	cmp	w1, w0
8687	beq	.L1164
8688	adrp	x1, .LANCHOR53
8689	ldrh	w1, [x1, #:lo12:.LANCHOR53]
8690	cmp	w1, w0
8691	bne	.L1160
8692.L1164:
8693	ldr	x0, [x20, #:lo12:.LANCHOR112]
8694	mov	w2, 0
8695	mov	w1, 1
8696	ldr	x4, [x0, 16]
8697	str	w3, [x0, 4]
8698	str	x4, [x29, 136]
8699	bl	FlashReadPages
8700	ldr	x0, [x20, #:lo12:.LANCHOR112]
8701	ldr	w0, [x0]
8702	cmn	w0, #1
8703	beq	.L1160
8704	ldr	x4, [x29, 136]
8705	mov	w0, w21
8706	ldr	w1, [x4, 4]
8707	bl	ftl_cmp_data_ver
8708	cbnz	w0, .L1160
8709	mov	w2, 1
8710	add	x1, x29, 184
8711	mov	w0, w24
8712	bl	log2phys
8713	b	.L1160
8714.L1166:
8715	mov	w1, w24
8716	adrp	x0, .LC106
8717	add	x0, x0, :lo12:.LC106
8718	bl	printf
8719	b	.L1145
8720.L1147:
8721	ldr	x0, [x29, 120]
8722	ldr	w0, [x0]
8723	cmp	w0, 31
8724	bhi	.L1167
8725	adrp	x1, .LANCHOR169
8726	add	x1, x1, :lo12:.LANCHOR169
8727	str	w5, [x1, w0, uxtw 2]
8728	add	w0, w0, 1
8729	ldr	x1, [x29, 120]
8730	str	w0, [x1]
8731.L1167:
8732	ldrh	w0, [x19]
8733	bl	decrement_vpc_count
8734	ldr	w0, [x28, #:lo12:.LANCHOR145]
8735	cmn	w0, #1
8736	bne	.L1168
8737.L1231:
8738	str	w21, [x28, #:lo12:.LANCHOR145]
8739	b	.L1145
8740.L1168:
8741	cmp	w21, w0
8742	bcs	.L1145
8743	b	.L1231
8744.L1171:
8745	add	w0, w0, 1
8746	and	w0, w0, 65535
8747	b	.L1170
8748.L1146:
8749	strb	w27, [x19, 6]
8750	strh	w22, [x19, 2]
8751	b	.L1233
8752	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
8753	.section	.text.FtlWriteDump_data,"ax",@progbits
8754	.align	2
8755	.global	FtlWriteDump_data
8756	.type	FtlWriteDump_data, %function
8757FtlWriteDump_data:
8758	stp	x29, x30, [sp, -128]!
8759	add	x29, sp, 0
8760	stp	x19, x20, [sp, 16]
8761	adrp	x19, .LANCHOR51
8762	add	x0, x19, :lo12:.LANCHOR51
8763	stp	x21, x22, [sp, 32]
8764	stp	x23, x24, [sp, 48]
8765	ldrh	w2, [x0, 4]
8766	str	x25, [sp, 64]
8767	cbz	w2, .L1235
8768	ldrb	w1, [x0, 8]
8769	cbnz	w1, .L1235
8770	adrp	x3, .LANCHOR19
8771	ldrb	w1, [x0, 7]
8772	ldrh	w3, [x3, #:lo12:.LANCHOR19]
8773	mul	w1, w1, w3
8774	cmp	w2, w1
8775	beq	.L1235
8776	ldrb	w0, [x0, 10]
8777	cbnz	w0, .L1234
8778	adrp	x0, .LANCHOR61
8779	mov	w2, 0
8780	add	x1, x29, 92
8781	ldr	w21, [x0, #:lo12:.LANCHOR61]
8782	adrp	x0, .LANCHOR3
8783	sub	w21, w21, #1
8784	ldrh	w25, [x0, #:lo12:.LANCHOR3]
8785	mov	w0, w21
8786	bl	log2phys
8787	adrp	x2, .LANCHOR123
8788	adrp	x0, .LANCHOR115
8789	ldr	w1, [x29, 92]
8790	ldr	x20, [x2, #:lo12:.LANCHOR123]
8791	ldr	x0, [x0, #:lo12:.LANCHOR115]
8792	cmn	w1, #1
8793	str	w1, [x29, 100]
8794	stp	x0, x20, [x29, 104]
8795	str	w21, [x29, 120]
8796	str	wzr, [x20, 4]
8797	beq	.L1237
8798	mov	w2, 0
8799	mov	w1, 1
8800	add	x0, x29, 96
8801	bl	FlashReadPages
8802.L1238:
8803	adrp	x23, .LANCHOR71
8804	lsl	w25, w25, 2
8805	add	x22, x19, :lo12:.LANCHOR51
8806	add	x23, x23, :lo12:.LANCHOR71
8807	mov	w0, -3947
8808	mov	w24, 0
8809	strh	w0, [x20]
8810.L1239:
8811	cmp	w25, w24
8812	bne	.L1243
8813.L1240:
8814	add	x19, x19, :lo12:.LANCHOR51
8815	mov	w0, 1
8816	strb	w0, [x19, 10]
8817.L1234:
8818	ldp	x19, x20, [sp, 16]
8819	ldp	x21, x22, [sp, 32]
8820	ldp	x23, x24, [sp, 48]
8821	ldr	x25, [sp, 64]
8822	ldp	x29, x30, [sp], 128
8823	ret
8824.L1237:
8825	adrp	x1, .LANCHOR23
8826	ldrh	w2, [x1, #:lo12:.LANCHOR23]
8827	mov	w1, 255
8828	bl	ftl_memset
8829	b	.L1238
8830.L1243:
8831	ldrh	w0, [x22, 4]
8832	cbz	w0, .L1240
8833	ldr	w0, [x29, 100]
8834	add	w24, w24, 1
8835	stp	w21, w0, [x20, 8]
8836	ldrh	w0, [x22]
8837	strh	w0, [x20, 2]
8838	mov	x0, x22
8839	bl	get_new_active_ppa
8840	str	w0, [x29, 100]
8841	ldr	w0, [x23]
8842	mov	w3, 0
8843	str	w0, [x20, 4]
8844	mov	w2, 0
8845	add	w0, w0, 1
8846	mov	w1, 1
8847	cmn	w0, #1
8848	csel	w0, w0, wzr, ne
8849	str	w0, [x23]
8850	add	x0, x29, 96
8851	bl	FlashProgPages
8852	ldrh	w0, [x22]
8853	bl	decrement_vpc_count
8854	b	.L1239
8855.L1235:
8856	add	x19, x19, :lo12:.LANCHOR51
8857	strb	wzr, [x19, 10]
8858	b	.L1234
8859	.size	FtlWriteDump_data, .-FtlWriteDump_data
8860	.section	.text.l2p_flush,"ax",@progbits
8861	.align	2
8862	.global	l2p_flush
8863	.type	l2p_flush, %function
8864l2p_flush:
8865	stp	x29, x30, [sp, -48]!
8866	add	x29, sp, 0
8867	stp	x19, x20, [sp, 16]
8868	adrp	x20, .LANCHOR33
8869	add	x20, x20, :lo12:.LANCHOR33
8870	str	x21, [sp, 32]
8871	mov	w19, 0
8872	adrp	x21, .LANCHOR55
8873	bl	FtlWriteDump_data
8874.L1253:
8875	ldrh	w0, [x20]
8876	cmp	w0, w19
8877	bhi	.L1255
8878	mov	w0, 0
8879	ldr	x21, [sp, 32]
8880	ldp	x19, x20, [sp, 16]
8881	ldp	x29, x30, [sp], 48
8882	ret
8883.L1255:
8884	ldr	x1, [x21, #:lo12:.LANCHOR55]
8885	ubfiz	x0, x19, 4, 16
8886	add	x0, x1, x0
8887	ldr	w0, [x0, 4]
8888	tbz	w0, #31, .L1254
8889	mov	w0, w19
8890	bl	flush_l2p_region
8891.L1254:
8892	add	w19, w19, 1
8893	and	w19, w19, 65535
8894	b	.L1253
8895	.size	l2p_flush, .-l2p_flush
8896	.section	.text.FtlSuperblockPowerLostFix,"ax",@progbits
8897	.align	2
8898	.global	FtlSuperblockPowerLostFix
8899	.type	FtlSuperblockPowerLostFix, %function
8900FtlSuperblockPowerLostFix:
8901	stp	x29, x30, [sp, -80]!
8902	adrp	x1, .LANCHOR123
8903	add	x29, sp, 0
8904	stp	x19, x20, [sp, 16]
8905	mov	x19, x0
8906	mov	w0, -1
8907	stp	x21, x22, [sp, 32]
8908	str	w0, [x29, 72]
8909	adrp	x0, .LANCHOR115
8910	ldr	x21, [x1, #:lo12:.LANCHOR123]
8911	mov	w1, -3
8912	ldr	x0, [x0, #:lo12:.LANCHOR115]
8913	adrp	x22, .LANCHOR71
8914	str	x21, [x29, 64]
8915	add	x22, x22, :lo12:.LANCHOR71
8916	str	x0, [x29, 56]
8917	ldrh	w20, [x19, 4]
8918	str	w1, [x21, 8]
8919	mov	w1, -2
8920	str	w1, [x21, 12]
8921	and	w20, w20, 1
8922	ldrh	w1, [x19]
8923	add	w20, w20, 6
8924	strh	w1, [x21, 2]
8925	strh	wzr, [x21]
8926	mov	w1, 61589
8927	str	w1, [x0]
8928	mov	w1, 22136
8929	movk	w1, 0x1234, lsl 16
8930	str	w1, [x0, 4]
8931.L1263:
8932	ldrh	w0, [x19, 4]
8933	cbnz	w0, .L1259
8934.L1260:
8935	ldrh	w0, [x19]
8936	adrp	x1, .LANCHOR42
8937	ldrh	w3, [x19, 4]
8938	ldr	x2, [x1, #:lo12:.LANCHOR42]
8939	lsl	x0, x0, 1
8940	ldrh	w1, [x2, x0]
8941	sub	w1, w1, w3
8942	strh	w1, [x2, x0]
8943	adrp	x0, .LANCHOR19
8944	strb	wzr, [x19, 6]
8945	strh	wzr, [x19, 4]
8946	ldrh	w0, [x0, #:lo12:.LANCHOR19]
8947	strh	w0, [x19, 2]
8948	ldp	x21, x22, [sp, 32]
8949	ldp	x19, x20, [sp, 16]
8950	ldp	x29, x30, [sp], 80
8951	ret
8952.L1259:
8953	mov	x0, x19
8954	bl	get_new_active_ppa
8955	str	w0, [x29, 52]
8956	cmn	w0, #1
8957	beq	.L1260
8958	ldr	w0, [x22]
8959	mov	w3, 0
8960	str	w0, [x21, 4]
8961	mov	w2, 0
8962	add	w0, w0, 1
8963	mov	w1, 1
8964	cmn	w0, #1
8965	csel	w0, w0, wzr, ne
8966	str	w0, [x22]
8967	add	x0, x29, 48
8968	bl	FlashProgPages
8969	ldrh	w0, [x19]
8970	bl	decrement_vpc_count
8971	subs	w20, w20, #1
8972	bne	.L1263
8973	b	.L1260
8974	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
8975	.section	.text.FtlVendorPartWrite,"ax",@progbits
8976	.align	2
8977	.global	FtlVendorPartWrite
8978	.type	FtlVendorPartWrite, %function
8979FtlVendorPartWrite:
8980	stp	x29, x30, [sp, -208]!
8981	add	x29, sp, 0
8982	stp	x19, x20, [sp, 16]
8983	mov	w20, w1
8984	stp	x27, x28, [sp, 80]
8985	add	w1, w0, w1
8986	mov	w28, w0
8987	adrp	x0, .LANCHOR16
8988	stp	x21, x22, [sp, 32]
8989	ldrh	w0, [x0, #:lo12:.LANCHOR16]
8990	stp	x23, x24, [sp, 48]
8991	stp	x25, x26, [sp, 64]
8992	cmp	w1, w0
8993	bhi	.L1279
8994	adrp	x0, .LANCHOR22
8995	adrp	x25, .LANCHOR12
8996	adrp	x26, .LANCHOR23
8997	mov	x24, x2
8998	ldrh	w21, [x0, #:lo12:.LANCHOR22]
8999	add	x25, x25, :lo12:.LANCHOR12
9000	add	x26, x26, :lo12:.LANCHOR23
9001	mov	w23, 0
9002	lsr	w21, w28, w21
9003.L1273:
9004	cbnz	w20, .L1278
9005.L1271:
9006	mov	w0, w23
9007	ldp	x19, x20, [sp, 16]
9008	ldp	x21, x22, [sp, 32]
9009	ldp	x23, x24, [sp, 48]
9010	ldp	x25, x26, [sp, 64]
9011	ldp	x27, x28, [sp, 80]
9012	ldp	x29, x30, [sp], 208
9013	ret
9014.L1278:
9015	ldrh	w1, [x25]
9016	adrp	x0, .LANCHOR133
9017	adrp	x27, .LANCHOR117
9018	ldr	x0, [x0, #:lo12:.LANCHOR133]
9019	udiv	w22, w28, w1
9020	ldr	w2, [x0, w21, uxtw 2]
9021	and	w0, w20, 65535
9022	msub	w22, w22, w1, w28
9023	sub	w19, w1, w22
9024	and	w19, w19, 65535
9025	cmp	w20, w19
9026	csel	w19, w0, w19, cc
9027	cbz	w2, .L1275
9028	cmp	w19, w1
9029	beq	.L1275
9030	ldr	x0, [x27, #:lo12:.LANCHOR117]
9031	str	x0, [x29, 120]
9032	add	x0, x29, 144
9033	str	w2, [x29, 116]
9034	mov	w2, 1
9035	str	x0, [x29, 128]
9036	mov	w1, w2
9037	add	x0, x29, 112
9038	bl	FlashReadPages
9039.L1276:
9040	lsl	w4, w19, 9
9041	ldr	x0, [x27, #:lo12:.LANCHOR117]
9042	lsl	w22, w22, 7
9043	mov	w2, w4
9044	mov	x1, x24
9045	str	w4, [x29, 108]
9046	add	x0, x0, x22, sxtw 2
9047	bl	ftl_memcpy
9048	ldr	x2, [x27, #:lo12:.LANCHOR117]
9049	mov	w1, w21
9050	adrp	x0, .LANCHOR158
9051	add	x0, x0, :lo12:.LANCHOR158
9052	sub	w20, w20, w19
9053	add	w28, w28, w19
9054	add	w21, w21, 1
9055	bl	FtlMapWritePage
9056	cmn	w0, #1
9057	ldr	w4, [x29, 108]
9058	csinv	w23, w23, wzr, ne
9059	add	x24, x24, x4, sxtw
9060	b	.L1273
9061.L1275:
9062	ldrh	w2, [x26]
9063	mov	w1, 0
9064	ldr	x0, [x27, #:lo12:.LANCHOR117]
9065	bl	ftl_memset
9066	b	.L1276
9067.L1279:
9068	mov	w23, -1
9069	b	.L1271
9070	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
9071	.section	.text.Ftl_save_ext_data,"ax",@progbits
9072	.align	2
9073	.global	Ftl_save_ext_data
9074	.type	Ftl_save_ext_data, %function
9075Ftl_save_ext_data:
9076	adrp	x0, .LANCHOR81
9077	add	x2, x0, :lo12:.LANCHOR81
9078	ldr	w1, [x0, #:lo12:.LANCHOR81]
9079	mov	w0, 19539
9080	movk	w0, 0x4654, lsl 16
9081	cmp	w1, w0
9082	bne	.L1284
9083	mov	w0, 72
9084	mov	w1, 1
9085	movk	w0, 0x5000, lsl 16
9086	str	w0, [x2, 4]
9087	adrp	x0, .LANCHOR68
9088	ldr	w0, [x0, #:lo12:.LANCHOR68]
9089	str	w0, [x2, 88]
9090	adrp	x0, .LANCHOR69
9091	ldr	w0, [x0, #:lo12:.LANCHOR69]
9092	str	w0, [x2, 92]
9093	adrp	x0, .LANCHOR67
9094	ldr	w0, [x0, #:lo12:.LANCHOR67]
9095	str	w0, [x2, 8]
9096	adrp	x0, .LANCHOR64
9097	ldr	w0, [x0, #:lo12:.LANCHOR64]
9098	str	w0, [x2, 12]
9099	adrp	x0, .LANCHOR62
9100	ldr	w0, [x0, #:lo12:.LANCHOR62]
9101	str	w0, [x2, 16]
9102	adrp	x0, .LANCHOR66
9103	ldr	w0, [x0, #:lo12:.LANCHOR66]
9104	str	w0, [x2, 20]
9105	adrp	x0, .LANCHOR73
9106	ldr	w0, [x0, #:lo12:.LANCHOR73]
9107	str	w0, [x2, 28]
9108	adrp	x0, .LANCHOR75
9109	ldr	w0, [x0, #:lo12:.LANCHOR75]
9110	str	w0, [x2, 32]
9111	adrp	x0, .LANCHOR63
9112	ldr	w0, [x0, #:lo12:.LANCHOR63]
9113	str	w0, [x2, 36]
9114	adrp	x0, .LANCHOR65
9115	ldr	w0, [x0, #:lo12:.LANCHOR65]
9116	str	w0, [x2, 40]
9117	adrp	x0, .LANCHOR76
9118	ldr	w0, [x0, #:lo12:.LANCHOR76]
9119	str	w0, [x2, 44]
9120	adrp	x0, .LANCHOR77
9121	ldr	w0, [x0, #:lo12:.LANCHOR77]
9122	str	w0, [x2, 48]
9123	mov	w0, 0
9124	b	FtlVendorPartWrite
9125.L1284:
9126	ret
9127	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
9128	.section	.text.FtlEctTblFlush,"ax",@progbits
9129	.align	2
9130	.global	FtlEctTblFlush
9131	.type	FtlEctTblFlush, %function
9132FtlEctTblFlush:
9133	adrp	x2, .LANCHOR170
9134	ldrh	w1, [x2, #:lo12:.LANCHOR170]
9135	cmp	w1, 31
9136	bhi	.L1290
9137	add	w1, w1, 1
9138	strh	w1, [x2, #:lo12:.LANCHOR170]
9139	mov	w1, 1
9140.L1287:
9141	adrp	x2, .LANCHOR127
9142	cbnz	w0, .L1288
9143	ldr	x0, [x2, #:lo12:.LANCHOR127]
9144	ldr	w3, [x0, 20]
9145	ldr	w0, [x0, 16]
9146	add	w1, w1, w3
9147	cmp	w0, w1
9148	bcc	.L1292
9149.L1288:
9150	stp	x29, x30, [sp, -16]!
9151	add	x29, sp, 0
9152	ldr	x2, [x2, #:lo12:.LANCHOR127]
9153	ldr	w0, [x2, 16]
9154	str	w0, [x2, 20]
9155	mov	w0, 17221
9156	str	wzr, [x2, 4]
9157	movk	w0, 0x4254, lsl 16
9158	str	w0, [x2]
9159	adrp	x0, .LANCHOR125
9160	ldrh	w1, [x0, #:lo12:.LANCHOR125]
9161	lsl	w0, w1, 9
9162	str	w0, [x2, 12]
9163	ldr	w0, [x2, 8]
9164	add	w0, w0, 1
9165	str	w0, [x2, 8]
9166	mov	w0, 64
9167	bl	FtlVendorPartWrite
9168	bl	Ftl_save_ext_data
9169	mov	w0, 0
9170	ldp	x29, x30, [sp], 16
9171	ret
9172.L1290:
9173	mov	w1, 32
9174	b	.L1287
9175.L1292:
9176	mov	w0, 0
9177	ret
9178	.size	FtlEctTblFlush, .-FtlEctTblFlush
9179	.section	.text.sftl_vendor_write,"ax",@progbits
9180	.align	2
9181	.global	sftl_vendor_write
9182	.type	sftl_vendor_write, %function
9183sftl_vendor_write:
9184	add	w0, w0, 256
9185	b	FtlVendorPartWrite
9186	.size	sftl_vendor_write, .-sftl_vendor_write
9187	.section	.text.FtlVendorPartRead,"ax",@progbits
9188	.align	2
9189	.global	FtlVendorPartRead
9190	.type	FtlVendorPartRead, %function
9191FtlVendorPartRead:
9192	stp	x29, x30, [sp, -208]!
9193	add	x29, sp, 0
9194	stp	x21, x22, [sp, 32]
9195	mov	w22, w0
9196	mov	w21, w1
9197	add	w1, w0, w1
9198	adrp	x0, .LANCHOR16
9199	stp	x19, x20, [sp, 16]
9200	stp	x23, x24, [sp, 48]
9201	ldrh	w0, [x0, #:lo12:.LANCHOR16]
9202	stp	x25, x26, [sp, 64]
9203	stp	x27, x28, [sp, 80]
9204	cmp	w1, w0
9205	bhi	.L1304
9206	adrp	x0, .LANCHOR22
9207	mov	x25, x2
9208	mov	w24, 0
9209	adrp	x27, .LANCHOR133
9210	ldrh	w20, [x0, #:lo12:.LANCHOR22]
9211	adrp	x0, .LANCHOR12
9212	add	x0, x0, :lo12:.LANCHOR12
9213	str	x0, [x29, 104]
9214	lsr	w20, w22, w20
9215.L1297:
9216	cbnz	w21, .L1303
9217.L1295:
9218	mov	w0, w24
9219	ldp	x19, x20, [sp, 16]
9220	ldp	x21, x22, [sp, 32]
9221	ldp	x23, x24, [sp, 48]
9222	ldp	x25, x26, [sp, 64]
9223	ldp	x27, x28, [sp, 80]
9224	ldp	x29, x30, [sp], 208
9225	ret
9226.L1303:
9227	ldr	x0, [x27, #:lo12:.LANCHOR133]
9228	ldr	w4, [x0, w20, uxtw 2]
9229	ldr	x0, [x29, 104]
9230	ldrh	w19, [x0]
9231	and	w0, w21, 65535
9232	udiv	w23, w22, w19
9233	msub	w23, w23, w19, w22
9234	sub	w19, w19, w23
9235	and	w19, w19, 65535
9236	cmp	w21, w19
9237	csel	w19, w0, w19, cc
9238	lsl	w26, w19, 9
9239	cbz	w4, .L1299
9240	adrp	x28, .LANCHOR117
9241	mov	w2, 1
9242	str	w4, [x29, 96]
9243	mov	w1, w2
9244	ldr	x0, [x28, #:lo12:.LANCHOR117]
9245	str	x0, [x29, 120]
9246	add	x0, x29, 144
9247	str	w4, [x29, 116]
9248	str	x0, [x29, 128]
9249	add	x0, x29, 112
9250	bl	FlashReadPages
9251	ldr	w0, [x29, 112]
9252	mov	x5, x28
9253	ldr	w4, [x29, 96]
9254	cmn	w0, #1
9255	adrp	x0, .LANCHOR148
9256	csinv	w24, w24, wzr, ne
9257	ldr	w0, [x0, #:lo12:.LANCHOR148]
9258	cmp	w0, 256
9259	bne	.L1301
9260	mov	w2, w4
9261	mov	w1, w20
9262	adrp	x0, .LC107
9263	str	x28, [x29, 96]
9264	add	x0, x0, :lo12:.LC107
9265	bl	printf
9266	ldr	x2, [x28, #:lo12:.LANCHOR117]
9267	mov	w1, w20
9268	adrp	x0, .LANCHOR158
9269	add	x0, x0, :lo12:.LANCHOR158
9270	bl	FtlMapWritePage
9271	ldr	x5, [x29, 96]
9272.L1301:
9273	ldr	x1, [x5, #:lo12:.LANCHOR117]
9274	lsl	w23, w23, 7
9275	mov	w2, w26
9276	mov	x0, x25
9277	add	x1, x1, x23, sxtw 2
9278	bl	ftl_memcpy
9279.L1302:
9280	add	w20, w20, 1
9281	sub	w21, w21, w19
9282	add	w22, w22, w19
9283	add	x25, x25, x26, sxtw
9284	b	.L1297
9285.L1299:
9286	mov	w2, w26
9287	mov	w1, 0
9288	mov	x0, x25
9289	bl	ftl_memset
9290	b	.L1302
9291.L1304:
9292	mov	w24, -1
9293	b	.L1295
9294	.size	FtlVendorPartRead, .-FtlVendorPartRead
9295	.section	.text.FtlLoadEctTbl,"ax",@progbits
9296	.align	2
9297	.global	FtlLoadEctTbl
9298	.type	FtlLoadEctTbl, %function
9299FtlLoadEctTbl:
9300	stp	x29, x30, [sp, -32]!
9301	mov	w0, 64
9302	add	x29, sp, 0
9303	stp	x19, x20, [sp, 16]
9304	adrp	x19, .LANCHOR127
9305	adrp	x20, .LANCHOR125
9306	ldr	x2, [x19, #:lo12:.LANCHOR127]
9307	ldrh	w1, [x20, #:lo12:.LANCHOR125]
9308	bl	FtlVendorPartRead
9309	ldr	x0, [x19, #:lo12:.LANCHOR127]
9310	ldr	w1, [x0]
9311	mov	w0, 17221
9312	movk	w0, 0x4254, lsl 16
9313	cmp	w1, w0
9314	beq	.L1307
9315	adrp	x1, .LC108
9316	adrp	x0, .LC71
9317	add	x1, x1, :lo12:.LC108
9318	add	x0, x0, :lo12:.LC71
9319	bl	printf
9320	ldr	x0, [x19, #:lo12:.LANCHOR127]
9321	mov	w1, 0
9322	ldrh	w2, [x20, #:lo12:.LANCHOR125]
9323	lsl	w2, w2, 9
9324	bl	ftl_memset
9325.L1307:
9326	mov	w0, 0
9327	ldp	x19, x20, [sp, 16]
9328	ldp	x29, x30, [sp], 32
9329	ret
9330	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
9331	.section	.text.Ftl_load_ext_data,"ax",@progbits
9332	.align	2
9333	.global	Ftl_load_ext_data
9334	.type	Ftl_load_ext_data, %function
9335Ftl_load_ext_data:
9336	stp	x29, x30, [sp, -48]!
9337	mov	w1, 1
9338	mov	w0, 0
9339	add	x29, sp, 0
9340	stp	x19, x20, [sp, 16]
9341	adrp	x19, .LANCHOR81
9342	str	x21, [sp, 32]
9343	add	x21, x19, :lo12:.LANCHOR81
9344	mov	x2, x21
9345	bl	FtlVendorPartRead
9346	ldr	w0, [x19, #:lo12:.LANCHOR81]
9347	mov	w20, 19539
9348	movk	w20, 0x4654, lsl 16
9349	cmp	w0, w20
9350	beq	.L1310
9351	mov	w2, 512
9352	mov	w1, 0
9353	mov	x0, x21
9354	bl	ftl_memset
9355	str	w20, [x19, #:lo12:.LANCHOR81]
9356.L1310:
9357	ldr	w1, [x19, #:lo12:.LANCHOR81]
9358	add	x0, x19, :lo12:.LANCHOR81
9359	cmp	w1, w20
9360	adrp	x1, .LANCHOR73
9361	bne	.L1311
9362	adrp	x2, .LANCHOR68
9363	ldr	w3, [x0, 88]
9364	str	w3, [x2, #:lo12:.LANCHOR68]
9365	adrp	x2, .LANCHOR69
9366	ldr	w3, [x0, 92]
9367	str	w3, [x2, #:lo12:.LANCHOR69]
9368	adrp	x2, .LANCHOR67
9369	ldr	w3, [x0, 8]
9370	str	w3, [x2, #:lo12:.LANCHOR67]
9371	adrp	x2, .LANCHOR64
9372	ldr	w3, [x0, 12]
9373	str	w3, [x2, #:lo12:.LANCHOR64]
9374	adrp	x2, .LANCHOR62
9375	ldr	w3, [x0, 16]
9376	str	w3, [x2, #:lo12:.LANCHOR62]
9377	adrp	x2, .LANCHOR66
9378	ldr	w3, [x0, 20]
9379	str	w3, [x2, #:lo12:.LANCHOR66]
9380	ldp	w2, w3, [x0, 28]
9381	str	w2, [x1, #:lo12:.LANCHOR73]
9382	adrp	x2, .LANCHOR75
9383	str	w3, [x2, #:lo12:.LANCHOR75]
9384	adrp	x2, .LANCHOR63
9385	ldr	w3, [x0, 36]
9386	str	w3, [x2, #:lo12:.LANCHOR63]
9387	adrp	x2, .LANCHOR65
9388	ldr	w3, [x0, 40]
9389	str	w3, [x2, #:lo12:.LANCHOR65]
9390	adrp	x2, .LANCHOR76
9391	ldr	w3, [x0, 44]
9392	str	w3, [x2, #:lo12:.LANCHOR76]
9393	ldr	w2, [x0, 48]
9394	adrp	x0, .LANCHOR77
9395	str	w2, [x0, #:lo12:.LANCHOR77]
9396.L1311:
9397	adrp	x0, .LANCHOR14
9398	adrp	x2, .LANCHOR72
9399	ldr	w1, [x1, #:lo12:.LANCHOR73]
9400	ldrh	w0, [x0, #:lo12:.LANCHOR14]
9401	ldr	w2, [x2, #:lo12:.LANCHOR72]
9402	ldp	x19, x20, [sp, 16]
9403	ldr	x21, [sp, 32]
9404	madd	w0, w0, w2, w1
9405	adrp	x1, .LANCHOR5
9406	ldp	x29, x30, [sp], 48
9407	ldrh	w1, [x1, #:lo12:.LANCHOR5]
9408	udiv	w0, w0, w1
9409	adrp	x1, .LANCHOR74
9410	str	w0, [x1, #:lo12:.LANCHOR74]
9411	ret
9412	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
9413	.section	.text.sftl_vendor_read,"ax",@progbits
9414	.align	2
9415	.global	sftl_vendor_read
9416	.type	sftl_vendor_read, %function
9417sftl_vendor_read:
9418	add	w0, w0, 256
9419	b	FtlVendorPartRead
9420	.size	sftl_vendor_read, .-sftl_vendor_read
9421	.section	.text.FtlVpcTblFlush,"ax",@progbits
9422	.align	2
9423	.global	FtlVpcTblFlush
9424	.type	FtlVpcTblFlush, %function
9425FtlVpcTblFlush:
9426	stp	x29, x30, [sp, -112]!
9427	adrp	x1, .LANCHOR79
9428	mov	w2, 19539
9429	add	x29, sp, 0
9430	stp	x25, x26, [sp, 64]
9431	adrp	x25, .LANCHOR123
9432	stp	x21, x22, [sp, 32]
9433	adrp	x22, .LANCHOR148
9434	stp	x23, x24, [sp, 48]
9435	adrp	x24, .LANCHOR115
9436	stp	x27, x28, [sp, 80]
9437	add	x28, x22, :lo12:.LANCHOR148
9438	ldr	x27, [x25, #:lo12:.LANCHOR123]
9439	movk	w2, 0x4654, lsl 16
9440	stp	x19, x20, [sp, 16]
9441	add	x20, x1, :lo12:.LANCHOR79
9442	ldr	x0, [x24, #:lo12:.LANCHOR115]
9443	adrp	x23, .LANCHOR70
9444	ldrh	w1, [x1, #:lo12:.LANCHOR79]
9445	mov	w21, 0
9446	stp	x0, x27, [x28, 8]
9447	mov	w26, 65535
9448	strh	w1, [x27, 2]
9449	mov	w1, -3932
9450	strh	w1, [x27]
9451	ldr	w1, [x20, 8]
9452	stp	w1, wzr, [x27, 4]
9453	adrp	x1, .LANCHOR39
9454	add	x19, x1, :lo12:.LANCHOR39
9455	str	wzr, [x27, 12]
9456	str	w2, [x1, #:lo12:.LANCHOR39]
9457	mov	w1, 72
9458	movk	w1, 0x5000, lsl 16
9459	str	w1, [x19, 4]
9460	ldrh	w1, [x20, 6]
9461	adrp	x2, .LANCHOR51
9462	strh	w1, [x19, 8]
9463	adrp	x1, .LANCHOR10
9464	ldrh	w1, [x1, #:lo12:.LANCHOR10]
9465	strb	w1, [x19, 10]
9466	add	x1, x2, :lo12:.LANCHOR51
9467	ldrh	w2, [x2, #:lo12:.LANCHOR51]
9468	strh	w2, [x19, 14]
9469	ldrh	w2, [x1, 2]
9470	ldrb	w3, [x1, 6]
9471	ldrb	w1, [x1, 8]
9472	strb	w1, [x19, 11]
9473	orr	w2, w3, w2, lsl 6
9474	strh	w2, [x19, 16]
9475	adrp	x2, .LANCHOR52
9476	add	x1, x2, :lo12:.LANCHOR52
9477	ldrh	w2, [x2, #:lo12:.LANCHOR52]
9478	ldrb	w3, [x1, 6]
9479	strh	w2, [x19, 18]
9480	ldrh	w2, [x1, 2]
9481	ldrb	w1, [x1, 8]
9482	strb	w1, [x19, 12]
9483	orr	w2, w3, w2, lsl 6
9484	strh	w2, [x19, 20]
9485	adrp	x2, .LANCHOR53
9486	add	x1, x2, :lo12:.LANCHOR53
9487	ldrh	w2, [x2, #:lo12:.LANCHOR53]
9488	ldrb	w3, [x1, 6]
9489	strh	w2, [x19, 22]
9490	ldrh	w2, [x1, 2]
9491	ldrb	w1, [x1, 8]
9492	strb	w1, [x19, 13]
9493	adrp	x1, .LANCHOR72
9494	orr	w2, w3, w2, lsl 6
9495	strh	w2, [x19, 24]
9496	ldr	w1, [x1, #:lo12:.LANCHOR72]
9497	str	w1, [x19, 32]
9498	ldr	w1, [x23, #:lo12:.LANCHOR70]
9499	str	w1, [x19, 40]
9500	adrp	x1, .LANCHOR71
9501	ldr	w1, [x1, #:lo12:.LANCHOR71]
9502	str	w1, [x19, 36]
9503	adrp	x1, .LANCHOR23
9504	ldrh	w2, [x1, #:lo12:.LANCHOR23]
9505	mov	w1, 255
9506	bl	ftl_memset
9507	ldr	x0, [x28, 8]
9508	mov	x1, x19
9509	mov	w2, 48
9510	adrp	x19, .LANCHOR5
9511	bl	ftl_memcpy
9512	adrp	x1, .LANCHOR42
9513	ldrh	w2, [x19, #:lo12:.LANCHOR5]
9514	ldr	x0, [x28, 8]
9515	ldr	x1, [x1, #:lo12:.LANCHOR42]
9516	lsl	w2, w2, 1
9517	add	x0, x0, 48
9518	bl	ftl_memcpy
9519	ldrh	w1, [x19, #:lo12:.LANCHOR5]
9520	mov	x19, x20
9521	ldr	x0, [x28, 8]
9522	adrp	x20, .LANCHOR20
9523	add	x20, x20, :lo12:.LANCHOR20
9524	lsr	w2, w1, 3
9525	ubfiz	x3, x1, 1, 16
9526	adrp	x1, .LANCHOR1
9527	add	x3, x3, 48
9528	and	x3, x3, -4
9529	add	w2, w2, 4
9530	ldr	x1, [x1, #:lo12:.LANCHOR1]
9531	add	x0, x0, x3
9532	bl	ftl_memcpy
9533	mov	w0, 0
9534	bl	FtlUpdateVaildLpn
9535	str	x20, [x29, 104]
9536.L1315:
9537	ldrh	w2, [x19, 2]
9538	ldrh	w1, [x19]
9539	ldr	x0, [x24, #:lo12:.LANCHOR115]
9540	str	x0, [x28, 8]
9541	ldr	x0, [x25, #:lo12:.LANCHOR123]
9542	str	x0, [x28, 16]
9543	orr	w0, w2, w1, lsl 10
9544	str	w0, [x28, 4]
9545	ldrh	w0, [x20]
9546	sub	w0, w0, #1
9547	cmp	w2, w0
9548	blt	.L1316
9549	ldrh	w26, [x19, 4]
9550	strh	wzr, [x19, 2]
9551	strh	w1, [x19, 4]
9552	bl	FtlFreeSysBlkQueueOut
9553	ldr	w1, [x23, #:lo12:.LANCHOR70]
9554	str	w1, [x19, 8]
9555	add	w2, w1, 1
9556	str	w2, [x23, #:lo12:.LANCHOR70]
9557	ubfiz	w2, w0, 10, 16
9558	str	w2, [x28, 4]
9559	strh	w0, [x19]
9560	strh	w0, [x27, 2]
9561	str	w1, [x27, 4]
9562.L1316:
9563	mov	w3, 1
9564	mov	x0, x28
9565	mov	w1, w3
9566	mov	w2, w3
9567	bl	FlashProgPages
9568	ldrh	w0, [x19, 2]
9569	ldr	w1, [x28]
9570	add	w0, w0, 1
9571	and	w0, w0, 65535
9572	strh	w0, [x19, 2]
9573	cmn	w1, #1
9574	bne	.L1317
9575	cmp	w0, 1
9576	bne	.L1318
9577	adrp	x1, .LANCHOR171
9578	adrp	x0, .LC1
9579	mov	w2, 1135
9580	add	x1, x1, :lo12:.LANCHOR171
9581	add	x0, x0, :lo12:.LC1
9582	bl	printf
9583.L1318:
9584	ldrh	w0, [x19, 2]
9585	cmp	w0, 1
9586	bne	.L1319
9587	ldr	x0, [x29, 104]
9588	ldrh	w0, [x0]
9589	sub	w0, w0, #1
9590	strh	w0, [x19, 2]
9591.L1319:
9592	add	w21, w21, 1
9593	and	w21, w21, 65535
9594	cmp	w21, 3
9595	bls	.L1315
9596	add	x22, x22, :lo12:.LANCHOR148
9597	adrp	x0, .LC109
9598	mov	w2, w21
9599	add	x0, x0, :lo12:.LC109
9600	ldr	w1, [x22, 4]
9601	bl	printf
9602.L1321:
9603	b	.L1321
9604.L1317:
9605	cmp	w0, 1
9606	beq	.L1315
9607	cmp	w1, 256
9608	beq	.L1315
9609	mov	w0, 65535
9610	cmp	w26, w0
9611	beq	.L1322
9612	mov	w1, 1
9613	mov	w0, w26
9614	bl	FtlFreeSysBlkQueueIn
9615.L1322:
9616	ldp	x19, x20, [sp, 16]
9617	mov	w0, 0
9618	ldp	x21, x22, [sp, 32]
9619	ldp	x23, x24, [sp, 48]
9620	ldp	x25, x26, [sp, 64]
9621	ldp	x27, x28, [sp, 80]
9622	ldp	x29, x30, [sp], 112
9623	ret
9624	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
9625	.section	.text.FtlSysFlush,"ax",@progbits
9626	.align	2
9627	.global	FtlSysFlush
9628	.type	FtlSysFlush, %function
9629FtlSysFlush:
9630	stp	x29, x30, [sp, -16]!
9631	add	x29, sp, 0
9632	bl	l2p_flush
9633	mov	w0, 1
9634	bl	FtlEctTblFlush
9635	bl	FtlVpcTblFlush
9636	mov	w0, 0
9637	ldp	x29, x30, [sp], 16
9638	ret
9639	.size	FtlSysFlush, .-FtlSysFlush
9640	.section	.text.sftl_deinit,"ax",@progbits
9641	.align	2
9642	.global	sftl_deinit
9643	.type	sftl_deinit, %function
9644sftl_deinit:
9645	adrp	x0, .LANCHOR86
9646	ldr	w0, [x0, #:lo12:.LANCHOR86]
9647	cmp	w0, 1
9648	bne	.L1335
9649	stp	x29, x30, [sp, -16]!
9650	add	x29, sp, 0
9651	bl	FtlSysFlush
9652	mov	w0, 0
9653	ldp	x29, x30, [sp], 16
9654	ret
9655.L1335:
9656	mov	w0, 0
9657	ret
9658	.size	sftl_deinit, .-sftl_deinit
9659	.section	.text.sftl_discard,"ax",@progbits
9660	.align	2
9661	.global	sftl_discard
9662	.type	sftl_discard, %function
9663sftl_discard:
9664	stp	x29, x30, [sp, -80]!
9665	add	w2, w0, w1
9666	add	x29, sp, 0
9667	stp	x19, x20, [sp, 16]
9668	mov	w19, w1
9669	adrp	x1, .LANCHOR34
9670	stp	x21, x22, [sp, 32]
9671	str	x23, [sp, 48]
9672	ldr	w1, [x1, #:lo12:.LANCHOR34]
9673	cmp	w2, w1
9674	bhi	.L1346
9675	cmp	w19, 31
9676	bhi	.L1340
9677.L1354:
9678	mov	w0, 0
9679.L1338:
9680	ldp	x19, x20, [sp, 16]
9681	ldp	x21, x22, [sp, 32]
9682	ldr	x23, [sp, 48]
9683	ldp	x29, x30, [sp], 80
9684	ret
9685.L1340:
9686	adrp	x21, .LANCHOR12
9687	ldrh	w1, [x21, #:lo12:.LANCHOR12]
9688	udiv	w20, w0, w1
9689	msub	w0, w1, w20, w0
9690	ands	w0, w0, 65535
9691	beq	.L1341
9692	sub	w1, w1, w0
9693	add	w20, w20, 1
9694	cmp	w1, w19
9695	csel	w1, w1, w19, ls
9696	sub	w19, w19, w1, uxth
9697.L1341:
9698	adrp	x22, .LANCHOR172
9699	adrp	x23, .LANCHOR63
9700	add	x22, x22, :lo12:.LANCHOR172
9701	add	x23, x23, :lo12:.LANCHOR63
9702	mov	w0, -1
9703	str	w0, [x29, 76]
9704.L1342:
9705	ldrh	w0, [x21, #:lo12:.LANCHOR12]
9706	cmp	w19, w0
9707	bcs	.L1344
9708	adrp	x0, .LANCHOR172
9709	ldr	w1, [x0, #:lo12:.LANCHOR172]
9710	cmp	w1, 32
9711	bls	.L1354
9712	str	wzr, [x0, #:lo12:.LANCHOR172]
9713	bl	l2p_flush
9714	bl	FtlVpcTblFlush
9715	b	.L1354
9716.L1344:
9717	mov	w2, 0
9718	add	x1, x29, 72
9719	mov	w0, w20
9720	bl	log2phys
9721	ldr	w0, [x29, 72]
9722	cmn	w0, #1
9723	beq	.L1343
9724	ldr	w0, [x22]
9725	mov	w2, 1
9726	add	x1, x29, 76
9727	add	w0, w0, 1
9728	str	w0, [x22]
9729	ldr	w0, [x23]
9730	add	w0, w0, 1
9731	str	w0, [x23]
9732	mov	w0, w20
9733	bl	log2phys
9734	ldr	w0, [x29, 72]
9735	lsr	w0, w0, 10
9736	bl	P2V_block_in_plane
9737	bl	decrement_vpc_count
9738.L1343:
9739	ldrh	w0, [x21, #:lo12:.LANCHOR12]
9740	add	w20, w20, 1
9741	sub	w19, w19, w0
9742	b	.L1342
9743.L1346:
9744	mov	w0, -1
9745	b	.L1338
9746	.size	sftl_discard, .-sftl_discard
9747	.section	.text.FtlVpcCheckAndModify,"ax",@progbits
9748	.align	2
9749	.global	FtlVpcCheckAndModify
9750	.type	FtlVpcCheckAndModify, %function
9751FtlVpcCheckAndModify:
9752	stp	x29, x30, [sp, -96]!
9753	adrp	x1, .LANCHOR173
9754	adrp	x0, .LC94
9755	add	x1, x1, :lo12:.LANCHOR173
9756	add	x29, sp, 0
9757	stp	x19, x20, [sp, 16]
9758	add	x0, x0, :lo12:.LC94
9759	stp	x23, x24, [sp, 48]
9760	adrp	x24, .LANCHOR128
9761	stp	x21, x22, [sp, 32]
9762	adrp	x20, .LANCHOR61
9763	str	x25, [sp, 64]
9764	bl	printf
9765	adrp	x0, .LANCHOR6
9766	mov	w19, 0
9767	add	x20, x20, :lo12:.LANCHOR61
9768	mov	w1, 0
9769	ldrh	w2, [x0, #:lo12:.LANCHOR6]
9770	ldr	x0, [x24, #:lo12:.LANCHOR128]
9771	lsl	w2, w2, 1
9772	bl	ftl_memset
9773.L1356:
9774	ldr	w0, [x20]
9775	cmp	w19, w0
9776	bcc	.L1358
9777	adrp	x21, .LANCHOR5
9778	adrp	x22, .LC110
9779	add	x21, x21, :lo12:.LANCHOR5
9780	add	x22, x22, :lo12:.LC110
9781	mov	w19, 0
9782	adrp	x25, .LANCHOR42
9783	mov	w23, 65535
9784.L1359:
9785	ldrh	w0, [x21]
9786	cmp	w0, w19
9787	bhi	.L1364
9788	bl	l2p_flush
9789	bl	FtlVpcTblFlush
9790	ldr	x25, [sp, 64]
9791	ldp	x19, x20, [sp, 16]
9792	ldp	x21, x22, [sp, 32]
9793	ldp	x23, x24, [sp, 48]
9794	ldp	x29, x30, [sp], 96
9795	ret
9796.L1358:
9797	mov	w2, 0
9798	add	x1, x29, 92
9799	mov	w0, w19
9800	bl	log2phys
9801	ldr	w0, [x29, 92]
9802	cmn	w0, #1
9803	beq	.L1357
9804	lsr	w0, w0, 10
9805	bl	P2V_block_in_plane
9806	ldr	x2, [x24, #:lo12:.LANCHOR128]
9807	ubfiz	x0, x0, 1, 16
9808	ldrh	w1, [x2, x0]
9809	add	w1, w1, 1
9810	strh	w1, [x2, x0]
9811.L1357:
9812	add	w19, w19, 1
9813	b	.L1356
9814.L1364:
9815	ldr	x0, [x25, #:lo12:.LANCHOR42]
9816	ubfiz	x20, x19, 1, 16
9817	ldrh	w2, [x0, x20]
9818	ldr	x0, [x24, #:lo12:.LANCHOR128]
9819	ldrh	w3, [x0, x20]
9820	cmp	w2, w3
9821	beq	.L1361
9822	cmp	w2, w23
9823	beq	.L1361
9824	mov	w1, w19
9825	mov	x0, x22
9826	bl	printf
9827	adrp	x0, .LANCHOR51
9828	ldrh	w0, [x0, #:lo12:.LANCHOR51]
9829	cmp	w0, w19
9830	beq	.L1361
9831	adrp	x0, .LANCHOR53
9832	ldrh	w0, [x0, #:lo12:.LANCHOR53]
9833	cmp	w0, w19
9834	beq	.L1361
9835	adrp	x0, .LANCHOR52
9836	ldrh	w0, [x0, #:lo12:.LANCHOR52]
9837	cmp	w0, w19
9838	beq	.L1361
9839	ldr	x0, [x25, #:lo12:.LANCHOR42]
9840	ldrh	w1, [x0, x20]
9841	cbnz	w1, .L1363
9842	ldr	x1, [x24, #:lo12:.LANCHOR128]
9843	ldrh	w1, [x1, x20]
9844	strh	w1, [x0, x20]
9845.L1361:
9846	add	w19, w19, 1
9847	and	w19, w19, 65535
9848	b	.L1359
9849.L1363:
9850	ldr	x1, [x24, #:lo12:.LANCHOR128]
9851	ldrh	w1, [x1, x20]
9852	strh	w1, [x0, x20]
9853	mov	w0, w19
9854	bl	update_vpc_list
9855	b	.L1361
9856	.size	FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
9857	.section	.text.allocate_new_data_superblock,"ax",@progbits
9858	.align	2
9859	.global	allocate_new_data_superblock
9860	.type	allocate_new_data_superblock, %function
9861allocate_new_data_superblock:
9862	stp	x29, x30, [sp, -48]!
9863	add	x29, sp, 0
9864	stp	x19, x20, [sp, 16]
9865	ldrh	w19, [x0]
9866	str	x21, [sp, 32]
9867	mov	x21, x0
9868	adrp	x0, .LANCHOR5
9869	ldrh	w0, [x0, #:lo12:.LANCHOR5]
9870	cmp	w0, w19
9871	bcs	.L1370
9872	adrp	x1, .LANCHOR174
9873	adrp	x0, .LC1
9874	mov	w2, 2714
9875	add	x1, x1, :lo12:.LANCHOR174
9876	add	x0, x0, :lo12:.LC1
9877	bl	printf
9878.L1370:
9879	mov	w0, 65535
9880	cmp	w19, w0
9881	beq	.L1371
9882	adrp	x1, .LANCHOR42
9883	ubfiz	x0, x19, 1, 16
9884	ldr	x1, [x1, #:lo12:.LANCHOR42]
9885	ldrh	w0, [x1, x0]
9886	cbz	w0, .L1372
9887	mov	w0, w19
9888	bl	INSERT_DATA_LIST
9889.L1371:
9890	adrp	x1, .LANCHOR142
9891	mov	w0, 1
9892	strb	w0, [x21, 8]
9893	mov	w2, 65535
9894	ldrh	w0, [x1, #:lo12:.LANCHOR142]
9895	mov	x20, x1
9896	cmp	w0, w2
9897	beq	.L1373
9898	cmp	w19, w0
9899	bne	.L1374
9900	adrp	x2, .LANCHOR42
9901	ubfiz	x1, x0, 1, 16
9902	ldr	x2, [x2, #:lo12:.LANCHOR42]
9903	ldrh	w1, [x2, x1]
9904	cbz	w1, .L1375
9905.L1374:
9906	bl	update_vpc_list
9907.L1375:
9908	mov	w0, -1
9909	strh	w0, [x20, #:lo12:.LANCHOR142]
9910.L1373:
9911	mov	x0, x21
9912	bl	allocate_data_superblock
9913	bl	l2p_flush
9914	mov	w0, 0
9915	bl	FtlEctTblFlush
9916	bl	FtlVpcTblFlush
9917	ldr	x21, [sp, 32]
9918	mov	w0, 0
9919	ldp	x19, x20, [sp, 16]
9920	ldp	x29, x30, [sp], 48
9921	ret
9922.L1372:
9923	mov	w0, w19
9924	bl	INSERT_FREE_LIST
9925	b	.L1371
9926	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
9927	.section	.text.FtlProgPages,"ax",@progbits
9928	.align	2
9929	.global	FtlProgPages
9930	.type	FtlProgPages, %function
9931FtlProgPages:
9932	stp	x29, x30, [sp, -96]!
9933	mov	w2, 0
9934	add	x29, sp, 0
9935	stp	x19, x20, [sp, 16]
9936	mov	x19, x3
9937	stp	x23, x24, [sp, 48]
9938	add	x20, x0, 4
9939	stp	x21, x22, [sp, 32]
9940	mov	w21, w1
9941	str	x25, [sp, 64]
9942	ubfiz	x21, x21, 5, 32
9943	add	x21, x21, 4
9944	adrp	x24, .LANCHOR19
9945	ldrb	w3, [x3, 9]
9946	adrp	x23, .LANCHOR81
9947	add	x21, x0, x21
9948	add	x24, x24, :lo12:.LANCHOR19
9949	add	x23, x23, :lo12:.LANCHOR81
9950	bl	FlashProgPages
9951.L1381:
9952	cmp	x20, x21
9953	beq	.L1388
9954	sub	x22, x20, #4
9955	adrp	x25, .LANCHOR42
9956	b	.L1389
9957.L1384:
9958	ldr	w0, [x20]
9959	lsr	w0, w0, 10
9960	bl	P2V_block_in_plane
9961	ldrh	w1, [x19]
9962	cmp	w1, w0, uxth
9963	bne	.L1382
9964	ldr	x2, [x25, #:lo12:.LANCHOR42]
9965	ubfiz	x1, x1, 1, 16
9966	ldrh	w3, [x19, 4]
9967	ldrh	w0, [x2, x1]
9968	sub	w0, w0, w3
9969	strh	w0, [x2, x1]
9970	strb	wzr, [x19, 6]
9971	ldrh	w0, [x24]
9972	strh	w0, [x19, 2]
9973	strh	wzr, [x19, 4]
9974.L1382:
9975	ldrh	w0, [x19, 4]
9976	cbnz	w0, .L1383
9977	mov	x0, x19
9978	bl	allocate_new_data_superblock
9979.L1383:
9980	ldr	w0, [x23, 96]
9981	add	w0, w0, 1
9982	str	w0, [x23, 96]
9983	ldr	w0, [x20]
9984	lsr	w0, w0, 10
9985	bl	FtlGcMarkBadPhyBlk
9986	mov	x0, x19
9987	bl	get_new_active_ppa
9988	str	w0, [x20]
9989	mov	w2, 0
9990	str	w0, [x29, 92]
9991	mov	w1, 1
9992	ldrb	w3, [x19, 9]
9993	mov	x0, x22
9994	bl	FlashProgPages
9995.L1389:
9996	ldr	w0, [x20, -4]
9997	cmn	w0, #1
9998	beq	.L1384
9999	adrp	x0, .LANCHOR3
10000	ldrb	w1, [x19, 6]
10001	ldrh	w0, [x0, #:lo12:.LANCHOR3]
10002	cmp	w1, w0
10003	bcc	.L1385
10004	adrp	x1, .LANCHOR175
10005	adrp	x0, .LC1
10006	mov	w2, 957
10007	add	x1, x1, :lo12:.LANCHOR175
10008	add	x0, x0, :lo12:.LC1
10009	bl	printf
10010.L1385:
10011	add	x1, x29, 96
10012	ldr	w0, [x22, 4]
10013	mov	w2, 1
10014	str	w0, [x1, -4]!
10015	ldr	w0, [x22, 24]
10016	bl	log2phys
10017	ldr	x0, [x22, 16]
10018	ldr	w3, [x0, 12]
10019	lsr	w0, w3, 10
10020	bl	P2V_block_in_plane
10021	and	w1, w0, 65535
10022	mov	w22, w1
10023	cmn	w3, #1
10024	beq	.L1386
10025	adrp	x2, .LANCHOR42
10026	ubfiz	x0, x1, 1, 16
10027	ldr	x2, [x2, #:lo12:.LANCHOR42]
10028	ldrh	w0, [x2, x0]
10029	cbnz	w0, .L1387
10030	adrp	x0, .LC111
10031	mov	w2, 0
10032	add	x0, x0, :lo12:.LC111
10033	bl	printf
10034.L1387:
10035	mov	w0, w22
10036	bl	decrement_vpc_count
10037.L1386:
10038	add	x20, x20, 32
10039	b	.L1381
10040.L1388:
10041	adrp	x0, .LANCHOR3
10042	ldrb	w1, [x19, 6]
10043	ldrh	w0, [x0, #:lo12:.LANCHOR3]
10044	cmp	w1, w0
10045	bcc	.L1380
10046	adrp	x1, .LANCHOR175
10047	adrp	x0, .LC1
10048	mov	w2, 972
10049	add	x1, x1, :lo12:.LANCHOR175
10050	add	x0, x0, :lo12:.LC1
10051	bl	printf
10052.L1380:
10053	ldp	x19, x20, [sp, 16]
10054	ldp	x21, x22, [sp, 32]
10055	ldp	x23, x24, [sp, 48]
10056	ldr	x25, [sp, 64]
10057	ldp	x29, x30, [sp], 96
10058	ret
10059	.size	FtlProgPages, .-FtlProgPages
10060	.section	.text.FtlGcFreeTempBlock,"ax",@progbits
10061	.align	2
10062	.global	FtlGcFreeTempBlock
10063	.type	FtlGcFreeTempBlock, %function
10064FtlGcFreeTempBlock:
10065	stp	x29, x30, [sp, -112]!
10066	mov	w2, 65535
10067	add	x29, sp, 0
10068	stp	x19, x20, [sp, 16]
10069	adrp	x19, .LANCHOR53
10070	stp	x21, x22, [sp, 32]
10071	adrp	x21, .LANCHOR19
10072	ldrh	w20, [x19, #:lo12:.LANCHOR53]
10073	stp	x23, x24, [sp, 48]
10074	stp	x25, x26, [sp, 64]
10075	cmp	w20, w2
10076	str	x27, [sp, 80]
10077	ldrh	w1, [x21, #:lo12:.LANCHOR19]
10078	bne	.L1396
10079.L1406:
10080	adrp	x0, .LANCHOR144
10081	ldrh	w2, [x19, #:lo12:.LANCHOR53]
10082	mov	w1, 65535
10083	str	wzr, [x0, #:lo12:.LANCHOR144]
10084	cmp	w2, w1
10085	add	x0, x19, :lo12:.LANCHOR53
10086	bne	.L1419
10087.L1422:
10088	mov	w0, 0
10089.L1395:
10090	ldp	x19, x20, [sp, 16]
10091	ldp	x21, x22, [sp, 32]
10092	ldp	x23, x24, [sp, 48]
10093	ldp	x25, x26, [sp, 64]
10094	ldr	x27, [sp, 80]
10095	ldp	x29, x30, [sp], 112
10096	ret
10097.L1396:
10098	cbz	w0, .L1399
10099	adrp	x0, .LANCHOR162
10100	ldrh	w3, [x0, #:lo12:.LANCHOR162]
10101	cmp	w3, w2
10102	beq	.L1400
10103.L1401:
10104	mov	w1, 2
10105.L1399:
10106	add	x0, x19, :lo12:.LANCHOR53
10107	bl	FtlGcScanTempBlk
10108	str	w0, [x29, 108]
10109	cmn	w0, #1
10110	beq	.L1402
10111	adrp	x0, .LANCHOR43
10112	ubfiz	x20, x20, 1, 16
10113	ldr	x1, [x0, #:lo12:.LANCHOR43]
10114	ldrh	w0, [x1, x20]
10115	cmp	w0, 4
10116	bls	.L1403
10117	sub	w0, w0, #5
10118	strh	w0, [x1, x20]
10119	mov	w0, 1
10120	bl	FtlEctTblFlush
10121.L1403:
10122	adrp	x0, .LANCHOR144
10123	mov	x19, x0
10124	ldr	w1, [x0, #:lo12:.LANCHOR144]
10125	cbnz	w1, .L1404
10126	adrp	x0, .LANCHOR81
10127	add	x0, x0, :lo12:.LANCHOR81
10128	ldr	w1, [x0, 96]
10129	add	w1, w1, 1
10130	str	w1, [x0, 96]
10131	ldr	w0, [x29, 108]
10132	lsr	w0, w0, 10
10133	bl	FtlBbmMapBadBlock
10134	bl	FtlBbmTblFlush
10135.L1404:
10136	str	wzr, [x19, #:lo12:.LANCHOR144]
10137.L1415:
10138	mov	w0, 1
10139	b	.L1395
10140.L1400:
10141	strh	wzr, [x0, #:lo12:.LANCHOR162]
10142	adrp	x0, .LANCHOR48
10143	ldrh	w0, [x0, #:lo12:.LANCHOR48]
10144	cmp	w0, 17
10145	bhi	.L1401
10146	b	.L1399
10147.L1402:
10148	adrp	x0, .LANCHOR162
10149	ldrh	w1, [x0, #:lo12:.LANCHOR162]
10150	mov	w0, 65535
10151	cmp	w1, w0
10152	bne	.L1415
10153	b	.L1406
10154.L1419:
10155	ldrb	w0, [x0, 7]
10156	adrp	x20, .LANCHOR97
10157	ldrh	w2, [x21, #:lo12:.LANCHOR19]
10158	ldrh	w1, [x20, #:lo12:.LANCHOR97]
10159	mul	w0, w0, w2
10160	cmp	w1, w0
10161	beq	.L1407
10162	adrp	x1, .LANCHOR176
10163	adrp	x0, .LC1
10164	mov	w2, 162
10165	add	x1, x1, :lo12:.LANCHOR176
10166	add	x0, x0, :lo12:.LC1
10167	bl	printf
10168.L1407:
10169	add	x0, x19, :lo12:.LANCHOR53
10170	adrp	x23, .LANCHOR42
10171	ldrh	w3, [x21, #:lo12:.LANCHOR19]
10172	adrp	x25, .LANCHOR61
10173	ldrh	w2, [x19, #:lo12:.LANCHOR53]
10174	adrp	x26, .LANCHOR176
10175	ldrb	w0, [x0, 7]
10176	add	x25, x25, :lo12:.LANCHOR61
10177	ldr	x1, [x23, #:lo12:.LANCHOR42]
10178	add	x26, x26, :lo12:.LANCHOR176
10179	mov	w21, 0
10180	mul	w0, w0, w3
10181	strh	w0, [x1, x2, lsl 1]
10182	adrp	x1, .LANCHOR67
10183	ldrh	w0, [x20, #:lo12:.LANCHOR97]
10184	ldr	w2, [x1, #:lo12:.LANCHOR67]
10185	add	w0, w0, w2
10186	str	w0, [x1, #:lo12:.LANCHOR67]
10187.L1408:
10188	ldrh	w0, [x20, #:lo12:.LANCHOR97]
10189	cmp	w0, w21
10190	bhi	.L1412
10191	mov	w0, -1
10192	bl	decrement_vpc_count
10193	ldrh	w0, [x19, #:lo12:.LANCHOR53]
10194	ldr	x2, [x23, #:lo12:.LANCHOR42]
10195	ubfiz	x1, x0, 1, 16
10196	ldrh	w1, [x2, x1]
10197	cbz	w1, .L1413
10198	bl	INSERT_DATA_LIST
10199.L1414:
10200	adrp	x0, .LANCHOR95
10201	mov	w21, -1
10202	strh	wzr, [x20, #:lo12:.LANCHOR97]
10203	strh	w21, [x19, #:lo12:.LANCHOR53]
10204	strh	wzr, [x0, #:lo12:.LANCHOR95]
10205	bl	l2p_flush
10206	bl	FtlVpcTblFlush
10207	adrp	x0, .LANCHOR80
10208	strh	w21, [x0, #:lo12:.LANCHOR80]
10209	adrp	x0, .LANCHOR48
10210	ldrh	w1, [x0, #:lo12:.LANCHOR48]
10211	adrp	x0, .LANCHOR78
10212	ldrh	w0, [x0, #:lo12:.LANCHOR78]
10213	add	w0, w0, w0, lsl 1
10214	cmp	w1, w0, lsr 2
10215	ble	.L1422
10216	adrp	x0, .LANCHOR82
10217	mov	w1, 20
10218	strh	w1, [x0, #:lo12:.LANCHOR82]
10219	b	.L1422
10220.L1412:
10221	adrp	x0, .LANCHOR98
10222	mov	w24, 12
10223	ldr	x27, [x0, #:lo12:.LANCHOR98]
10224	umull	x24, w21, w24
10225	ldr	w0, [x25]
10226	add	x22, x27, x24
10227	ldr	w1, [x22, 8]
10228	cmp	w1, w0
10229	bcc	.L1409
10230	adrp	x0, .LC1
10231	mov	w2, 168
10232	mov	x1, x26
10233	add	x0, x0, :lo12:.LC1
10234	bl	printf
10235.L1409:
10236	ldr	w0, [x22, 8]
10237	add	x1, x29, 108
10238	mov	w2, 0
10239	bl	log2phys
10240	ldr	w0, [x27, x24]
10241	ldr	w1, [x29, 108]
10242	cmp	w0, w1
10243	bne	.L1410
10244	lsr	w0, w0, 10
10245	bl	P2V_block_in_plane
10246	mov	w24, w0
10247	ldr	w0, [x22, 8]
10248	mov	w2, 1
10249	add	x1, x22, 4
10250	bl	log2phys
10251	mov	w0, w24
10252.L1421:
10253	bl	decrement_vpc_count
10254.L1411:
10255	add	w21, w21, 1
10256	and	w21, w21, 65535
10257	b	.L1408
10258.L1410:
10259	ldr	w0, [x22, 4]
10260	cmp	w1, w0
10261	beq	.L1411
10262	ldrh	w0, [x19, #:lo12:.LANCHOR53]
10263	b	.L1421
10264.L1413:
10265	bl	INSERT_FREE_LIST
10266	b	.L1414
10267	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
10268	.section	.text.FtlGcPageRecovery,"ax",@progbits
10269	.align	2
10270	.global	FtlGcPageRecovery
10271	.type	FtlGcPageRecovery, %function
10272FtlGcPageRecovery:
10273	stp	x29, x30, [sp, -32]!
10274	add	x29, sp, 0
10275	stp	x19, x20, [sp, 16]
10276	adrp	x20, .LANCHOR19
10277	adrp	x19, .LANCHOR53
10278	add	x19, x19, :lo12:.LANCHOR53
10279	ldrh	w1, [x20, #:lo12:.LANCHOR19]
10280	mov	x0, x19
10281	bl	FtlGcScanTempBlk
10282	ldrh	w1, [x19, 2]
10283	ldrh	w0, [x20, #:lo12:.LANCHOR19]
10284	cmp	w1, w0
10285	bcc	.L1423
10286	adrp	x0, .LANCHOR140
10287	add	x0, x0, :lo12:.LANCHOR140
10288	bl	FtlMapBlkWriteDump_data
10289	mov	w0, 0
10290	bl	FtlGcFreeTempBlock
10291	adrp	x0, .LANCHOR144
10292	str	wzr, [x0, #:lo12:.LANCHOR144]
10293.L1423:
10294	ldp	x19, x20, [sp, 16]
10295	ldp	x29, x30, [sp], 32
10296	ret
10297	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
10298	.section	.text.FtlPowerLostRecovery,"ax",@progbits
10299	.align	2
10300	.global	FtlPowerLostRecovery
10301	.type	FtlPowerLostRecovery, %function
10302FtlPowerLostRecovery:
10303	stp	x29, x30, [sp, -32]!
10304	adrp	x0, .LANCHOR168
10305	add	x29, sp, 0
10306	str	x19, [sp, 16]
10307	adrp	x19, .LANCHOR51
10308	add	x19, x19, :lo12:.LANCHOR51
10309	str	wzr, [x0, #:lo12:.LANCHOR168]
10310	mov	x0, x19
10311	bl	FtlRecoverySuperblock
10312	mov	x0, x19
10313	adrp	x19, .LANCHOR52
10314	bl	FtlSlcSuperblockCheck
10315	add	x19, x19, :lo12:.LANCHOR52
10316	mov	x0, x19
10317	bl	FtlRecoverySuperblock
10318	mov	x0, x19
10319	bl	FtlSlcSuperblockCheck
10320	bl	FtlGcPageRecovery
10321	mov	w0, -1
10322	bl	decrement_vpc_count
10323	mov	w0, 0
10324	ldr	x19, [sp, 16]
10325	ldp	x29, x30, [sp], 32
10326	ret
10327	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
10328	.section	.text.Ftl_gc_temp_data_write_back,"ax",@progbits
10329	.align	2
10330	.global	Ftl_gc_temp_data_write_back
10331	.type	Ftl_gc_temp_data_write_back, %function
10332Ftl_gc_temp_data_write_back:
10333	stp	x29, x30, [sp, -32]!
10334	mov	w3, 0
10335	mov	w2, 0
10336	add	x29, sp, 0
10337	stp	x19, x20, [sp, 16]
10338	adrp	x19, .LANCHOR89
10339	adrp	x20, .LANCHOR113
10340	ldr	w1, [x19, #:lo12:.LANCHOR89]
10341	add	x19, x19, :lo12:.LANCHOR89
10342	ldr	x0, [x20, #:lo12:.LANCHOR113]
10343	bl	FlashProgPages
10344	mov	w11, 0
10345.L1429:
10346	ldr	w1, [x19]
10347	cmp	w11, w1
10348	bcc	.L1432
10349	ldr	x0, [x20, #:lo12:.LANCHOR113]
10350	bl	FtlGcBufFree
10351	str	wzr, [x19]
10352	adrp	x0, .LANCHOR53+4
10353	ldrh	w0, [x0, #:lo12:.LANCHOR53+4]
10354	cbnz	w0, .L1433
10355	mov	w0, 1
10356	bl	FtlGcFreeTempBlock
10357	b	.L1435
10358.L1432:
10359	ldr	x2, [x20, #:lo12:.LANCHOR113]
10360	ubfiz	x0, x11, 5, 16
10361	add	x1, x2, x0
10362	ldr	w2, [x2, x0]
10363	cmn	w2, #1
10364	bne	.L1430
10365	adrp	x0, .LANCHOR53
10366	adrp	x3, .LANCHOR42
10367	ldrh	w4, [x0, #:lo12:.LANCHOR53]
10368	ldr	x3, [x3, #:lo12:.LANCHOR42]
10369	strh	wzr, [x3, x4, lsl 1]
10370	strh	w2, [x0, #:lo12:.LANCHOR53]
10371	adrp	x0, .LANCHOR81
10372	add	x0, x0, :lo12:.LANCHOR81
10373	ldr	w2, [x0, 96]
10374	add	w2, w2, 1
10375	str	w2, [x0, 96]
10376	ldr	w0, [x1, 4]
10377	lsr	w0, w0, 10
10378	bl	FtlBbmMapBadBlock
10379	bl	FtlBbmTblFlush
10380	bl	FtlGcPageVarInit
10381.L1435:
10382	mov	w0, 1
10383.L1428:
10384	ldp	x19, x20, [sp, 16]
10385	ldp	x29, x30, [sp], 32
10386	ret
10387.L1430:
10388	ldr	x0, [x1, 16]
10389	ldr	w1, [x1, 4]
10390	ldp	w2, w0, [x0, 8]
10391	bl	FtlGcUpdatePage
10392	add	w11, w11, 1
10393	and	w11, w11, 65535
10394	b	.L1429
10395.L1433:
10396	mov	w0, 0
10397	b	.L1428
10398	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
10399	.section	.text.Ftl_get_new_temp_ppa,"ax",@progbits
10400	.align	2
10401	.global	Ftl_get_new_temp_ppa
10402	.type	Ftl_get_new_temp_ppa, %function
10403Ftl_get_new_temp_ppa:
10404	stp	x29, x30, [sp, -32]!
10405	adrp	x0, .LANCHOR53
10406	mov	w2, 65535
10407	add	x29, sp, 0
10408	str	x19, [sp, 16]
10409	mov	x19, x0
10410	ldrh	w3, [x0, #:lo12:.LANCHOR53]
10411	cmp	w3, w2
10412	beq	.L1437
10413	add	x1, x0, :lo12:.LANCHOR53
10414	ldrh	w0, [x1, 4]
10415	cbnz	w0, .L1438
10416.L1437:
10417	mov	w0, 0
10418	bl	FtlGcFreeTempBlock
10419	add	x0, x19, :lo12:.LANCHOR53
10420	strb	wzr, [x0, 8]
10421	bl	allocate_data_superblock
10422	adrp	x0, .LANCHOR95
10423	strh	wzr, [x0, #:lo12:.LANCHOR95]
10424	adrp	x0, .LANCHOR97
10425	strh	wzr, [x0, #:lo12:.LANCHOR97]
10426	bl	l2p_flush
10427	mov	w0, 0
10428	bl	FtlEctTblFlush
10429	bl	FtlVpcTblFlush
10430.L1438:
10431	add	x0, x19, :lo12:.LANCHOR53
10432	ldr	x19, [sp, 16]
10433	ldp	x29, x30, [sp], 32
10434	b	get_new_active_ppa
10435	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
10436	.section	.text.FtlSysBlkInit,"ax",@progbits
10437	.align	2
10438	.global	FtlSysBlkInit
10439	.type	FtlSysBlkInit, %function
10440FtlSysBlkInit:
10441	stp	x29, x30, [sp, -64]!
10442	adrp	x0, .LANCHOR4
10443	add	x29, sp, 0
10444	ldrh	w0, [x0, #:lo12:.LANCHOR4]
10445	stp	x19, x20, [sp, 16]
10446	adrp	x20, .LANCHOR167
10447	stp	x21, x22, [sp, 32]
10448	stp	x23, x24, [sp, 48]
10449	strh	wzr, [x20, #:lo12:.LANCHOR167]
10450	bl	FtlFreeSysBlkQueueInit
10451	bl	FtlScanSysBlk
10452	adrp	x0, .LANCHOR79
10453	ldrh	w1, [x0, #:lo12:.LANCHOR79]
10454	mov	w0, 65535
10455	cmp	w1, w0
10456	bne	.L1441
10457.L1443:
10458	mov	w23, -1
10459.L1440:
10460	mov	w0, w23
10461	ldp	x19, x20, [sp, 16]
10462	ldp	x21, x22, [sp, 32]
10463	ldp	x23, x24, [sp, 48]
10464	ldp	x29, x30, [sp], 64
10465	ret
10466.L1441:
10467	bl	FtlLoadSysInfo
10468	mov	w23, w0
10469	cbnz	w0, .L1443
10470	bl	FtlLoadMapInfo
10471	bl	FtlLoadVonderInfo
10472	bl	Ftl_load_ext_data
10473	bl	FtlLoadEctTbl
10474	bl	FtlFreeSysBLkSort
10475	bl	SupperBlkListInit
10476	bl	FtlPowerLostRecovery
10477	mov	w0, 1
10478	bl	FtlUpdateVaildLpn
10479	adrp	x0, .LANCHOR33
10480	mov	w1, 0
10481	ldrh	w3, [x0, #:lo12:.LANCHOR33]
10482	adrp	x0, .LANCHOR55
10483	ldr	x0, [x0, #:lo12:.LANCHOR55]
10484	add	x0, x0, 4
10485.L1444:
10486	cmp	w1, w3
10487	bge	.L1449
10488	ldr	w2, [x0], 16
10489	tbz	w2, #31, .L1445
10490.L1449:
10491	adrp	x0, .LANCHOR39
10492	add	x4, x0, :lo12:.LANCHOR39
10493	cmp	w1, w3
10494	mov	x19, x0
10495	adrp	x22, .LANCHOR51
10496	ldrh	w2, [x4, 28]
10497	add	w2, w2, 1
10498	strh	w2, [x4, 28]
10499	bge	.L1454
10500.L1446:
10501	add	x21, x22, :lo12:.LANCHOR51
10502	adrp	x24, .LANCHOR52
10503	mov	x0, x21
10504	add	x20, x24, :lo12:.LANCHOR52
10505	bl	FtlSuperblockPowerLostFix
10506	mov	x0, x20
10507	bl	FtlSuperblockPowerLostFix
10508	adrp	x0, .LANCHOR42
10509	ldrh	w3, [x21, 4]
10510	ldr	x1, [x0, #:lo12:.LANCHOR42]
10511	ldrh	w0, [x22, #:lo12:.LANCHOR51]
10512	lsl	x0, x0, 1
10513	ldrh	w2, [x1, x0]
10514	sub	w2, w2, w3
10515	adrp	x3, .LANCHOR19
10516	strh	w2, [x1, x0]
10517	strb	wzr, [x21, 6]
10518	ldrh	w0, [x3, #:lo12:.LANCHOR19]
10519	strh	w0, [x21, 2]
10520	ldrh	w0, [x24, #:lo12:.LANCHOR52]
10521	strh	wzr, [x21, 4]
10522	ldrh	w4, [x20, 4]
10523	lsl	x0, x0, 1
10524	ldrh	w2, [x1, x0]
10525	sub	w2, w2, w4
10526	strh	w2, [x1, x0]
10527	strb	wzr, [x20, 6]
10528	ldrh	w0, [x3, #:lo12:.LANCHOR19]
10529	strh	w0, [x20, 2]
10530	add	x0, x19, :lo12:.LANCHOR39
10531	strh	wzr, [x20, 4]
10532	ldrh	w1, [x0, 30]
10533	add	w1, w1, 1
10534	strh	w1, [x0, 30]
10535	bl	l2p_flush
10536	bl	FtlVpcTblFlush
10537	bl	FtlVpcTblFlush
10538	b	.L1450
10539.L1445:
10540	add	w1, w1, 1
10541	b	.L1444
10542.L1454:
10543	ldrh	w0, [x20, #:lo12:.LANCHOR167]
10544	cbnz	w0, .L1446
10545.L1450:
10546	bl	FtlVpcCheckAndModify
10547	add	x20, x22, :lo12:.LANCHOR51
10548	ldrh	w0, [x22, #:lo12:.LANCHOR51]
10549	mov	w1, 65535
10550	cmp	w0, w1
10551	beq	.L1440
10552	ldrh	w1, [x20, 4]
10553	cbnz	w1, .L1440
10554	adrp	x21, .LANCHOR52
10555	add	x19, x21, :lo12:.LANCHOR52
10556	ldrh	w1, [x19, 4]
10557	cbnz	w1, .L1440
10558	bl	FtlGcRefreshBlock
10559	ldrh	w0, [x21, #:lo12:.LANCHOR52]
10560	bl	FtlGcRefreshBlock
10561	bl	FtlVpcTblFlush
10562	mov	x0, x20
10563	bl	allocate_new_data_superblock
10564	mov	x0, x19
10565	bl	allocate_new_data_superblock
10566	b	.L1440
10567	.size	FtlSysBlkInit, .-FtlSysBlkInit
10568	.section	.text.rk_ftl_garbage_collect,"ax",@progbits
10569	.align	2
10570	.global	rk_ftl_garbage_collect
10571	.type	rk_ftl_garbage_collect, %function
10572rk_ftl_garbage_collect:
10573	stp	x29, x30, [sp, -176]!
10574	adrp	x1, .LANCHOR108
10575	add	x29, sp, 0
10576	ldr	w2, [x1, #:lo12:.LANCHOR108]
10577	stp	x19, x20, [sp, 16]
10578	stp	x21, x22, [sp, 32]
10579	stp	x23, x24, [sp, 48]
10580	stp	x25, x26, [sp, 64]
10581	stp	x27, x28, [sp, 80]
10582	str	x1, [x29, 144]
10583	cbnz	w2, .L1529
10584	adrp	x1, .LANCHOR45
10585	ldrh	w1, [x1, #:lo12:.LANCHOR45]
10586	cmp	w1, 47
10587	bls	.L1529
10588	str	w0, [x29, 152]
10589	adrp	x0, .LANCHOR162
10590	ldrh	w1, [x0, #:lo12:.LANCHOR162]
10591	mov	w0, 65535
10592	cmp	w1, w0
10593	bne	.L1458
10594.L1461:
10595	adrp	x0, .LANCHOR100
10596	mov	w3, 65535
10597	ldrh	w2, [x0, #:lo12:.LANCHOR100]
10598	cmp	w2, w3
10599	bne	.L1459
10600.L1460:
10601	bl	FtlReadRefresh
10602	adrp	x19, .LANCHOR80
10603	adrp	x2, .LANCHOR84
10604	ldr	w1, [x29, 152]
10605	mov	w21, 65535
10606	ldr	w0, [x2, #:lo12:.LANCHOR84]
10607	add	w0, w0, 1
10608	add	w0, w0, w1, lsl 7
10609	ldrh	w1, [x19, #:lo12:.LANCHOR80]
10610	str	w0, [x2, #:lo12:.LANCHOR84]
10611	cmp	w1, w21
10612	bne	.L1462
10613	adrp	x3, .LANCHOR53
10614	ldrh	w21, [x3, #:lo12:.LANCHOR53]
10615	cmp	w21, w1
10616	bne	.L1532
10617	adrp	x1, .LANCHOR99
10618	ldrh	w20, [x1, #:lo12:.LANCHOR99]
10619	cmp	w20, w21
10620	bne	.L1462
10621	adrp	x22, .LANCHOR48
10622	mov	w3, 1024
10623	ldrh	w1, [x22, #:lo12:.LANCHOR48]
10624	cmp	w1, 24
10625	mov	w1, 5120
10626	csel	w1, w1, w3, cc
10627	cmp	w0, w1
10628	bls	.L1535
10629	adrp	x0, .LANCHOR177
10630	str	wzr, [x2, #:lo12:.LANCHOR84]
10631	strh	wzr, [x0, #:lo12:.LANCHOR177]
10632	bl	GetSwlReplaceBlock
10633	and	w21, w0, 65535
10634	cmp	w21, w20
10635	bne	.L1536
10636	adrp	x5, .LANCHOR83
10637	ldrh	w1, [x22, #:lo12:.LANCHOR48]
10638	ldrh	w0, [x5, #:lo12:.LANCHOR83]
10639	cmp	w1, w0
10640	bcs	.L1465
10641	mov	w0, 64
10642	bl	List_get_gc_head_node
10643	and	w0, w0, 65535
10644	cmp	w0, w21
10645	beq	.L1467
10646	adrp	x1, .LANCHOR42
10647	ubfiz	x0, x0, 1, 16
10648	ldr	x1, [x1, #:lo12:.LANCHOR42]
10649	ldrh	w0, [x1, x0]
10650	cmp	w0, 7
10651	bhi	.L1468
10652	mov	w0, 0
10653	bl	List_get_gc_head_node
10654	and	w20, w0, 65535
10655	mov	w0, 128
10656	strh	w0, [x5, #:lo12:.LANCHOR83]
10657	cmp	w20, w21
10658	bne	.L1464
10659.L1467:
10660	bl	FtlGcReFreshBadBlk
10661.L1462:
10662	ldr	w1, [x29, 152]
10663	mov	w0, 65535
10664	cmp	w1, 0
10665	ccmp	w21, w0, 0, eq
10666	bne	.L1470
10667	adrp	x0, .LANCHOR48
10668	ldrh	w0, [x0, #:lo12:.LANCHOR48]
10669	cmp	w0, 24
10670	bhi	.L1537
10671	adrp	x1, .LANCHOR19
10672	cmp	w0, 16
10673	ldrh	w20, [x1, #:lo12:.LANCHOR19]
10674	bls	.L1472
10675	lsr	w20, w20, 5
10676.L1471:
10677	adrp	x2, .LANCHOR82
10678	mov	x3, x2
10679	ldrh	w1, [x2, #:lo12:.LANCHOR82]
10680	cmp	w1, w0
10681	bcs	.L1475
10682	adrp	x0, .LANCHOR53
10683	mov	w1, 65535
10684	ldrh	w0, [x0, #:lo12:.LANCHOR53]
10685	cmp	w0, w1
10686	bne	.L1476
10687	adrp	x1, .LANCHOR99
10688	ldrh	w1, [x1, #:lo12:.LANCHOR99]
10689	cmp	w1, w0
10690	bne	.L1476
10691	adrp	x0, .LANCHOR177
10692	ldrh	w0, [x0, #:lo12:.LANCHOR177]
10693	cbnz	w0, .L1477
10694	adrp	x1, .LANCHOR61
10695	adrp	x4, .LANCHOR59
10696	ldr	w1, [x1, #:lo12:.LANCHOR61]
10697	ldr	w4, [x4, #:lo12:.LANCHOR59]
10698	add	w1, w1, w1, lsl 1
10699	cmp	w4, w1, lsr 2
10700	bcs	.L1478
10701.L1477:
10702	adrp	x1, .LANCHOR78
10703	ldrh	w1, [x1, #:lo12:.LANCHOR78]
10704	add	w1, w1, w1, lsl 1
10705	asr	w1, w1, 2
10706	strh	w1, [x3, #:lo12:.LANCHOR82]
10707.L1479:
10708	adrp	x1, .LANCHOR87
10709	str	wzr, [x1, #:lo12:.LANCHOR87]
10710.L1456:
10711	ldp	x19, x20, [sp, 16]
10712	ldp	x21, x22, [sp, 32]
10713	ldp	x23, x24, [sp, 48]
10714	ldp	x25, x26, [sp, 64]
10715	ldp	x27, x28, [sp, 80]
10716	ldp	x29, x30, [sp], 176
10717	ret
10718.L1458:
10719	adrp	x1, .LANCHOR53
10720	ldrh	w1, [x1, #:lo12:.LANCHOR53]
10721	cmp	w1, w0
10722	beq	.L1461
10723	mov	w0, 1
10724	bl	FtlGcFreeTempBlock
10725	cbz	w0, .L1461
10726	mov	w0, 1
10727	b	.L1456
10728.L1459:
10729	adrp	x1, .LANCHOR99
10730	ldrh	w4, [x1, #:lo12:.LANCHOR99]
10731	cmp	w4, w3
10732	bne	.L1460
10733	strh	w2, [x1, #:lo12:.LANCHOR99]
10734	mov	w1, -1
10735	strh	w1, [x0, #:lo12:.LANCHOR100]
10736	b	.L1460
10737.L1468:
10738	mov	w0, 64
10739.L1564:
10740	strh	w0, [x5, #:lo12:.LANCHOR83]
10741	b	.L1467
10742.L1465:
10743	mov	w0, 80
10744	b	.L1564
10745.L1536:
10746	mov	w20, w21
10747.L1464:
10748	adrp	x1, .LANCHOR43
10749	ubfiz	x0, x20, 1, 32
10750	adrp	x3, .LANCHOR82
10751	mov	w21, w20
10752	ldr	x2, [x1, #:lo12:.LANCHOR43]
10753	adrp	x1, .LANCHOR42
10754	ldrh	w5, [x3, #:lo12:.LANCHOR82]
10755	ldr	x1, [x1, #:lo12:.LANCHOR42]
10756	ldrh	w4, [x2, x0]
10757	ldrh	w2, [x22, #:lo12:.LANCHOR48]
10758	ldrh	w3, [x1, x0]
10759	mov	w1, w20
10760	adrp	x0, .LC112
10761	add	x0, x0, :lo12:.LC112
10762	bl	printf
10763	b	.L1467
10764.L1532:
10765	mov	w21, w1
10766	b	.L1462
10767.L1535:
10768	mov	w21, w20
10769	b	.L1462
10770.L1472:
10771	cmp	w0, 12
10772	bls	.L1473
10773	lsr	w20, w20, 4
10774	b	.L1471
10775.L1473:
10776	cmp	w0, 8
10777	bls	.L1471
10778	lsr	w20, w20, 2
10779	b	.L1471
10780.L1537:
10781	mov	w20, 1
10782	b	.L1471
10783.L1478:
10784	mov	w1, 18
10785	strh	w1, [x2, #:lo12:.LANCHOR82]
10786	b	.L1479
10787.L1476:
10788	adrp	x0, .LANCHOR78
10789	ldrh	w0, [x0, #:lo12:.LANCHOR78]
10790	add	w0, w0, w0, lsl 1
10791	asr	w0, w0, 2
10792	strh	w0, [x3, #:lo12:.LANCHOR82]
10793.L1475:
10794	adrp	x0, .LANCHOR101
10795	ldrh	w0, [x0, #:lo12:.LANCHOR101]
10796	cbz	w0, .L1538
10797	add	w20, w20, 32
10798	and	w20, w20, 65535
10799.L1538:
10800	mov	w21, 65535
10801.L1481:
10802	ldrh	w0, [x19, #:lo12:.LANCHOR80]
10803	mov	w1, 65535
10804	cmp	w0, w1
10805	bne	.L1490
10806	cmp	w21, w0
10807	beq	.L1491
10808	strh	w21, [x19, #:lo12:.LANCHOR80]
10809.L1492:
10810	add	x0, x19, :lo12:.LANCHOR80
10811	mov	w1, 65535
10812	strb	wzr, [x0, 8]
10813	ldrh	w0, [x19, #:lo12:.LANCHOR80]
10814	cmp	w0, w1
10815	beq	.L1490
10816	bl	IsBlkInGcList
10817	cbz	w0, .L1495
10818	mov	w0, -1
10819	strh	w0, [x19, #:lo12:.LANCHOR80]
10820.L1495:
10821	ldrh	w1, [x19, #:lo12:.LANCHOR80]
10822	mov	w0, 65535
10823	add	x22, x19, :lo12:.LANCHOR80
10824	cmp	w1, w0
10825	beq	.L1490
10826	mov	x0, x22
10827	bl	make_superblock
10828	adrp	x0, .LANCHOR178
10829	ldrh	w1, [x19, #:lo12:.LANCHOR80]
10830	strh	wzr, [x22, 2]
10831	strh	wzr, [x0, #:lo12:.LANCHOR178]
10832	adrp	x0, .LANCHOR42
10833	strb	wzr, [x22, 6]
10834	ldr	x0, [x0, #:lo12:.LANCHOR42]
10835	ldrh	w1, [x0, x1, lsl 1]
10836	adrp	x0, .LANCHOR179
10837	strh	w1, [x0, #:lo12:.LANCHOR179]
10838.L1490:
10839	adrp	x1, .LANCHOR51
10840	ldrh	w0, [x19, #:lo12:.LANCHOR80]
10841	str	x1, [x29, 120]
10842	ldrh	w2, [x1, #:lo12:.LANCHOR51]
10843	cmp	w2, w0
10844	beq	.L1496
10845	adrp	x1, .LANCHOR52
10846	ldrh	w1, [x1, #:lo12:.LANCHOR52]
10847	cmp	w1, w0
10848	bne	.L1497
10849.L1496:
10850	mov	w0, -1
10851	strh	w0, [x19, #:lo12:.LANCHOR80]
10852.L1497:
10853	adrp	x25, .LANCHOR85
10854	add	x26, x25, :lo12:.LANCHOR85
10855.L1526:
10856	ldrh	w1, [x19, #:lo12:.LANCHOR80]
10857	mov	w0, 65535
10858	cmp	w1, w0
10859	bne	.L1498
10860	adrp	x0, .LANCHOR87
10861	adrp	x22, .LANCHOR19
10862	add	x22, x22, :lo12:.LANCHOR19
10863	str	wzr, [x0, #:lo12:.LANCHOR87]
10864.L1499:
10865	ldrh	w5, [x25, #:lo12:.LANCHOR85]
10866	add	x7, x25, :lo12:.LANCHOR85
10867	mov	w0, w5
10868	bl	List_get_gc_head_node
10869	and	w6, w0, 65535
10870	strh	w6, [x19, #:lo12:.LANCHOR80]
10871	mov	w0, 65535
10872	cmp	w6, w0
10873	bne	.L1500
10874	strh	wzr, [x7]
10875	mov	w0, 8
10876	b	.L1456
10877.L1470:
10878	adrp	x1, .LANCHOR53
10879	ldrh	w1, [x1, #:lo12:.LANCHOR53]
10880	cmp	w1, w0
10881	bne	.L1541
10882	adrp	x0, .LANCHOR99
10883	ldrh	w0, [x0, #:lo12:.LANCHOR99]
10884	cmp	w0, w1
10885	bne	.L1541
10886	cmp	w21, w0
10887	bne	.L1541
10888	ldrh	w0, [x19, #:lo12:.LANCHOR80]
10889	cmp	w0, w21
10890	beq	.L1482
10891.L1541:
10892	mov	w20, 1
10893	b	.L1481
10894.L1482:
10895	adrp	x0, .LANCHOR87
10896	adrp	x22, .LANCHOR48
10897	adrp	x20, .LANCHOR82
10898	adrp	x23, .LANCHOR177
10899	str	wzr, [x0, #:lo12:.LANCHOR87]
10900	ldrh	w1, [x22, #:lo12:.LANCHOR48]
10901	ldrh	w0, [x20, #:lo12:.LANCHOR82]
10902	cmp	w1, w0
10903	bls	.L1483
10904	ldrh	w0, [x23, #:lo12:.LANCHOR177]
10905	cbnz	w0, .L1484
10906	adrp	x0, .LANCHOR61
10907	adrp	x1, .LANCHOR59
10908	ldr	w0, [x0, #:lo12:.LANCHOR61]
10909	ldr	w1, [x1, #:lo12:.LANCHOR59]
10910	add	w0, w0, w0, lsl 1
10911	cmp	w1, w0, lsr 2
10912	bcs	.L1485
10913.L1484:
10914	adrp	x0, .LANCHOR78
10915	ldrh	w0, [x0, #:lo12:.LANCHOR78]
10916	add	w0, w0, w0, lsl 1
10917	asr	w0, w0, 2
10918.L1565:
10919	strh	w0, [x20, #:lo12:.LANCHOR82]
10920	bl	FtlReadRefresh
10921	mov	w0, 0
10922	bl	List_get_gc_head_node
10923	adrp	x1, .LANCHOR42
10924	ubfiz	x0, x0, 1, 16
10925	ldr	x1, [x1, #:lo12:.LANCHOR42]
10926	ldrh	w0, [x1, x0]
10927	cmp	w0, 4
10928	bls	.L1483
10929.L1566:
10930	ldrh	w0, [x23, #:lo12:.LANCHOR177]
10931	b	.L1456
10932.L1485:
10933	mov	w0, 18
10934	b	.L1565
10935.L1483:
10936	ldrh	w0, [x23, #:lo12:.LANCHOR177]
10937	cbnz	w0, .L1541
10938	adrp	x0, .LANCHOR78
10939	ldrh	w5, [x0, #:lo12:.LANCHOR78]
10940	add	w0, w5, w5, lsl 1
10941	asr	w0, w0, 2
10942	strh	w0, [x20, #:lo12:.LANCHOR82]
10943	mov	w0, 0
10944	bl	List_get_gc_head_node
10945	adrp	x1, .LANCHOR42
10946	ubfiz	x0, x0, 1, 16
10947	adrp	x2, .LANCHOR3
10948	ldr	x1, [x1, #:lo12:.LANCHOR42]
10949	ldrh	w2, [x2, #:lo12:.LANCHOR3]
10950	ldrh	w1, [x1, x0]
10951	adrp	x0, .LANCHOR20
10952	ldrh	w0, [x0, #:lo12:.LANCHOR20]
10953	mul	w0, w0, w2
10954	cmp	w1, w0, asr 1
10955	ble	.L1488
10956	ldrh	w0, [x22, #:lo12:.LANCHOR48]
10957	sub	w5, w5, #1
10958	cmp	w0, w5
10959	blt	.L1488
10960	bl	FtlReadRefresh
10961	b	.L1566
10962.L1488:
10963	cbnz	w1, .L1541
10964	mov	w0, -1
10965	bl	decrement_vpc_count
10966	ldrh	w0, [x22, #:lo12:.LANCHOR48]
10967	add	w0, w0, 1
10968	b	.L1456
10969.L1491:
10970	adrp	x0, .LANCHOR99
10971	ldrh	w1, [x0, #:lo12:.LANCHOR99]
10972	cmp	w1, w21
10973	beq	.L1492
10974	adrp	x2, .LANCHOR42
10975	ubfiz	x1, x1, 1, 16
10976	ldr	x2, [x2, #:lo12:.LANCHOR42]
10977	ldrh	w1, [x2, x1]
10978	cbnz	w1, .L1493
10979	mov	w1, -1
10980	strh	w1, [x0, #:lo12:.LANCHOR99]
10981.L1493:
10982	ldrh	w1, [x0, #:lo12:.LANCHOR99]
10983	strh	w1, [x19, #:lo12:.LANCHOR80]
10984	mov	w1, -1
10985	strh	w1, [x0, #:lo12:.LANCHOR99]
10986	b	.L1492
10987.L1500:
10988	mov	w0, w6
10989	bl	IsBlkInGcList
10990	add	w5, w5, 1
10991	cbz	w0, .L1501
10992	strh	w5, [x25, #:lo12:.LANCHOR85]
10993	b	.L1499
10994.L1501:
10995	adrp	x23, .LANCHOR42
10996	adrp	x4, .LANCHOR3
10997	ldrh	w0, [x22]
10998	ubfiz	x1, x6, 1, 16
10999	ldr	x2, [x23, #:lo12:.LANCHOR42]
11000	and	w5, w5, 65535
11001	ldrh	w4, [x4, #:lo12:.LANCHOR3]
11002	strh	w5, [x25, #:lo12:.LANCHOR85]
11003	ldrh	w3, [x2, x1]
11004	mul	w0, w0, w4
11005	cmp	w3, w0, asr 1
11006	bgt	.L1503
11007	cmp	w5, 48
11008	bls	.L1504
11009	cmp	w3, 8
11010	bls	.L1504
11011	adrp	x3, .LANCHOR95
11012	ldrh	w3, [x3, #:lo12:.LANCHOR95]
11013	cmp	w3, 35
11014	bhi	.L1504
11015.L1503:
11016	strh	wzr, [x26]
11017.L1504:
11018	ldrh	w1, [x2, x1]
11019	cmp	w0, w1
11020	bgt	.L1505
11021	mov	w0, 65535
11022	cmp	w21, w0
11023	bne	.L1505
11024	ldrh	w0, [x26]
11025	cmp	w0, 3
11026	bhi	.L1505
11027	mov	w0, -1
11028	strh	wzr, [x26]
11029	strh	w0, [x19, #:lo12:.LANCHOR80]
11030.L1567:
11031	adrp	x0, .LANCHOR177
11032	ldrh	w0, [x0, #:lo12:.LANCHOR177]
11033	b	.L1456
11034.L1505:
11035	cbnz	w1, .L1506
11036	mov	w0, -1
11037	bl	decrement_vpc_count
11038	ldrh	w0, [x26]
11039	add	w0, w0, 1
11040	strh	w0, [x26]
11041	b	.L1499
11042.L1506:
11043	add	x0, x19, :lo12:.LANCHOR80
11044	strb	wzr, [x0, 8]
11045	ldr	x0, [x29, 120]
11046	ldrh	w0, [x0, #:lo12:.LANCHOR51]
11047	cmp	w0, w6
11048	bne	.L1507
11049	adrp	x1, .LANCHOR180
11050	adrp	x0, .LC1
11051	mov	w2, 700
11052	add	x1, x1, :lo12:.LANCHOR180
11053	add	x0, x0, :lo12:.LC1
11054	bl	printf
11055.L1507:
11056	adrp	x0, .LANCHOR52
11057	ldrh	w1, [x19, #:lo12:.LANCHOR80]
11058	ldrh	w0, [x0, #:lo12:.LANCHOR52]
11059	cmp	w1, w0
11060	bne	.L1508
11061	adrp	x1, .LANCHOR180
11062	adrp	x0, .LC1
11063	mov	w2, 701
11064	add	x1, x1, :lo12:.LANCHOR180
11065	add	x0, x0, :lo12:.LC1
11066	bl	printf
11067.L1508:
11068	adrp	x0, .LANCHOR53
11069	ldrh	w1, [x19, #:lo12:.LANCHOR80]
11070	ldrh	w0, [x0, #:lo12:.LANCHOR53]
11071	cmp	w1, w0
11072	bne	.L1509
11073	adrp	x1, .LANCHOR180
11074	adrp	x0, .LC1
11075	mov	w2, 702
11076	add	x1, x1, :lo12:.LANCHOR180
11077	add	x0, x0, :lo12:.LC1
11078	bl	printf
11079.L1509:
11080	add	x22, x19, :lo12:.LANCHOR80
11081	mov	x0, x22
11082	bl	make_superblock
11083	adrp	x0, .LANCHOR178
11084	ldrh	w1, [x19, #:lo12:.LANCHOR80]
11085	strh	wzr, [x0, #:lo12:.LANCHOR178]
11086	ldr	x0, [x23, #:lo12:.LANCHOR42]
11087	ldrh	w1, [x0, x1, lsl 1]
11088	adrp	x0, .LANCHOR179
11089	strh	wzr, [x22, 2]
11090	strh	w1, [x0, #:lo12:.LANCHOR179]
11091	strb	wzr, [x22, 6]
11092.L1498:
11093	ldr	x1, [x29, 144]
11094	mov	w0, 1
11095	str	w0, [x1, #:lo12:.LANCHOR108]
11096	adrp	x0, .LANCHOR19
11097	str	x0, [x29, 112]
11098	ldrh	w1, [x0, #:lo12:.LANCHOR19]
11099	ldr	w0, [x29, 152]
11100	str	w1, [x29, 156]
11101	cbz	w0, .L1510
11102	adrp	x0, .LANCHOR3
11103	ldrh	w2, [x19, #:lo12:.LANCHOR80]
11104	ldrh	w0, [x0, #:lo12:.LANCHOR3]
11105	mul	w0, w0, w1
11106	adrp	x1, .LANCHOR42
11107	ldr	x1, [x1, #:lo12:.LANCHOR42]
11108	ldrh	w1, [x1, x2, lsl 1]
11109	sub	w0, w0, w1
11110	mov	w1, 4
11111	sdiv	w0, w0, w1
11112	add	w20, w20, w0
11113	and	w20, w20, 65535
11114.L1510:
11115	add	x0, x19, :lo12:.LANCHOR80
11116	ldr	w2, [x29, 156]
11117	ldrh	w0, [x0, 2]
11118	add	w1, w0, w20
11119	cmp	w1, w2
11120	ble	.L1511
11121	sub	w20, w2, w0
11122	and	w20, w20, 65535
11123.L1511:
11124	adrp	x0, .LANCHOR178
11125	mov	w28, 0
11126	add	x0, x0, :lo12:.LANCHOR178
11127	str	x0, [x29, 136]
11128.L1512:
11129	cmp	w20, w28, uxth
11130	bls	.L1520
11131	add	x1, x19, :lo12:.LANCHOR80
11132	adrp	x0, .LANCHOR3
11133	adrp	x23, .LANCHOR93
11134	add	x1, x1, 16
11135	ldrh	w7, [x0, #:lo12:.LANCHOR3]
11136	mov	w22, 0
11137	ldrh	w4, [x1, -14]
11138	mov	w2, 0
11139	ldr	x0, [x23, #:lo12:.LANCHOR93]
11140	mov	w6, 65535
11141	add	w4, w4, w28
11142	b	.L1521
11143.L1514:
11144	ldrh	w3, [x1]
11145	cmp	w3, w6
11146	beq	.L1513
11147	ubfiz	x5, x22, 5, 16
11148	add	w22, w22, 1
11149	add	x5, x0, x5
11150	and	w22, w22, 65535
11151	orr	w3, w4, w3, lsl 10
11152	str	w3, [x5, 4]
11153.L1513:
11154	add	w2, w2, 1
11155	add	x1, x1, 2
11156	and	w2, w2, 65535
11157.L1521:
11158	cmp	w2, w7
11159	bne	.L1514
11160	add	x1, x19, :lo12:.LANCHOR80
11161	adrp	x24, .LANCHOR89
11162	add	x24, x24, :lo12:.LANCHOR89
11163	ldrb	w2, [x1, 8]
11164	mov	w1, w22
11165	bl	FlashReadPages
11166	ubfiz	x0, x22, 5, 16
11167	mov	x22, 0
11168	str	x0, [x29, 128]
11169.L1515:
11170	ldr	x0, [x29, 128]
11171	cmp	x0, x22
11172	bne	.L1519
11173	add	w28, w28, 1
11174	b	.L1512
11175.L1519:
11176	ldr	x0, [x23, #:lo12:.LANCHOR93]
11177	add	x1, x0, x22
11178	ldr	w0, [x0, x22]
11179	cmn	w0, #1
11180	beq	.L1516
11181	ldr	x27, [x1, 16]
11182	mov	w0, 61589
11183	ldrh	w1, [x27]
11184	cmp	w1, w0
11185	bne	.L1516
11186	ldr	w4, [x27, 8]
11187	cmn	w4, #1
11188	bne	.L1517
11189	str	w4, [x29, 104]
11190	mov	w2, 736
11191	adrp	x1, .LANCHOR180
11192	adrp	x0, .LC1
11193	add	x1, x1, :lo12:.LANCHOR180
11194	add	x0, x0, :lo12:.LC1
11195	bl	printf
11196	ldr	w4, [x29, 104]
11197.L1517:
11198	mov	w2, 0
11199	add	x1, x29, 172
11200	mov	w0, w4
11201	bl	log2phys
11202	ldr	x0, [x23, #:lo12:.LANCHOR93]
11203	ldr	w1, [x29, 172]
11204	add	x0, x0, x22
11205	ldr	w2, [x0, 4]
11206	cmp	w2, w1
11207	bne	.L1516
11208	ldr	x1, [x29, 136]
11209	adrp	x4, .LANCHOR113
11210	ldr	x2, [x29, 136]
11211	ldr	w0, [x0, 24]
11212	ldrh	w1, [x1]
11213	add	w1, w1, 1
11214	strh	w1, [x2]
11215	ldr	x2, [x4, #:lo12:.LANCHOR113]
11216	ldr	w1, [x24]
11217	add	x1, x2, x1, lsl 5
11218	stp	x4, x1, [x29, 96]
11219	str	w0, [x1, 24]
11220	bl	Ftl_get_new_temp_ppa
11221	ldp	x4, x1, [x29, 96]
11222	ldr	x2, [x4, #:lo12:.LANCHOR113]
11223	str	w0, [x1, 4]
11224	ldr	w1, [x24]
11225	ubfiz	x0, x1, 5, 32
11226	add	w1, w1, 1
11227	add	x2, x2, x0
11228	ldr	x0, [x23, #:lo12:.LANCHOR93]
11229	add	x0, x0, x22
11230	ldr	x4, [x0, 8]
11231	str	x4, [x2, 8]
11232	ldr	x4, [x0, 16]
11233	str	x4, [x2, 16]
11234	ldr	w2, [x29, 172]
11235	str	w2, [x27, 12]
11236	adrp	x2, .LANCHOR53
11237	add	x11, x2, :lo12:.LANCHOR53
11238	ldrh	w2, [x2, #:lo12:.LANCHOR53]
11239	strh	w2, [x27, 2]
11240	adrp	x2, .LANCHOR71
11241	str	w1, [x24]
11242	mov	w1, 1
11243	ldr	w2, [x2, #:lo12:.LANCHOR71]
11244	str	w2, [x27, 4]
11245	bl	FtlGcBufAlloc
11246	ldrb	w1, [x11, 7]
11247	ldr	w0, [x24]
11248	cmp	w1, w0
11249	beq	.L1518
11250	ldrh	w0, [x11, 4]
11251	cbnz	w0, .L1516
11252.L1518:
11253	bl	Ftl_gc_temp_data_write_back
11254	cbz	w0, .L1516
11255.L1568:
11256	ldr	x0, [x29, 144]
11257	str	wzr, [x0, #:lo12:.LANCHOR108]
11258	b	.L1567
11259.L1516:
11260	add	x22, x22, 32
11261	b	.L1515
11262.L1520:
11263	add	x1, x19, :lo12:.LANCHOR80
11264	ldrh	w0, [x1, 2]
11265	add	w20, w20, w0
11266	ldr	w0, [x29, 156]
11267	and	w20, w20, 65535
11268	strh	w20, [x1, 2]
11269	cmp	w0, w20
11270	bhi	.L1522
11271	adrp	x0, .LANCHOR89
11272	ldr	w0, [x0, #:lo12:.LANCHOR89]
11273	cbz	w0, .L1523
11274	bl	Ftl_gc_temp_data_write_back
11275	cbnz	w0, .L1568
11276.L1523:
11277	adrp	x0, .LANCHOR178
11278	ldrh	w0, [x0, #:lo12:.LANCHOR178]
11279	cbnz	w0, .L1524
11280	ldrh	w0, [x19, #:lo12:.LANCHOR80]
11281	adrp	x1, .LANCHOR42
11282	ldr	x1, [x1, #:lo12:.LANCHOR42]
11283	lsl	x0, x0, 1
11284	ldrh	w2, [x1, x0]
11285	cbz	w2, .L1524
11286	strh	wzr, [x1, x0]
11287	ldrh	w0, [x19, #:lo12:.LANCHOR80]
11288	bl	update_vpc_list
11289	bl	l2p_flush
11290	bl	FtlVpcTblFlush
11291.L1524:
11292	mov	w0, -1
11293	strh	w0, [x19, #:lo12:.LANCHOR80]
11294.L1522:
11295	ldr	x0, [x29, 144]
11296	str	wzr, [x0, #:lo12:.LANCHOR108]
11297	adrp	x0, .LANCHOR48
11298	ldrh	w0, [x0, #:lo12:.LANCHOR48]
11299	cmp	w0, 2
11300	bhi	.L1525
11301	ldr	x0, [x29, 112]
11302	ldrh	w20, [x0, #:lo12:.LANCHOR19]
11303	b	.L1526
11304.L1525:
11305	adrp	x1, .LANCHOR177
11306	ldrh	w1, [x1, #:lo12:.LANCHOR177]
11307	cmp	w1, 0
11308	csinc	w0, w1, w0, ne
11309	b	.L1456
11310.L1529:
11311	mov	w0, 0
11312	b	.L1456
11313	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
11314	.section	.text.sftl_init,"ax",@progbits
11315	.align	2
11316	.global	sftl_init
11317	.type	sftl_init, %function
11318sftl_init:
11319	stp	x29, x30, [sp, -32]!
11320	adrp	x1, .LC70
11321	add	x1, x1, :lo12:.LC70
11322	mov	w0, -1
11323	add	x29, sp, 0
11324	str	x19, [sp, 16]
11325	adrp	x19, .LANCHOR86
11326	str	w0, [x19, #:lo12:.LANCHOR86]
11327	adrp	x0, .LC71
11328	add	x0, x0, :lo12:.LC71
11329	bl	printf
11330	adrp	x0, .LANCHOR0
11331	add	x0, x0, :lo12:.LANCHOR0
11332	bl	FtlConstantsInit
11333	bl	FtlMemInit
11334	bl	FtlVariablesInit
11335	adrp	x0, .LANCHOR4
11336	ldrh	w0, [x0, #:lo12:.LANCHOR4]
11337	bl	FtlFreeSysBlkQueueInit
11338	bl	FtlLoadBbt
11339	cbnz	w0, .L1573
11340	bl	FtlSysBlkInit
11341	cbnz	w0, .L1573
11342	mov	w0, 1
11343	str	w0, [x19, #:lo12:.LANCHOR86]
11344	adrp	x0, .LANCHOR48
11345	ldrh	w0, [x0, #:lo12:.LANCHOR48]
11346	cmp	w0, 15
11347	bhi	.L1573
11348	mov	w19, 8129
11349.L1572:
11350	mov	w1, 1
11351	mov	w0, 0
11352	bl	rk_ftl_garbage_collect
11353	subs	w19, w19, #1
11354	bne	.L1572
11355.L1573:
11356	mov	w0, 0
11357	ldr	x19, [sp, 16]
11358	ldp	x29, x30, [sp], 32
11359	ret
11360	.size	sftl_init, .-sftl_init
11361	.section	.text.sftl_gc,"ax",@progbits
11362	.align	2
11363	.global	sftl_gc
11364	.type	sftl_gc, %function
11365sftl_gc:
11366	mov	w1, 1
11367	mov	w0, w1
11368	b	rk_ftl_garbage_collect
11369	.size	sftl_gc, .-sftl_gc
11370	.section	.text.FtlRead,"ax",@progbits
11371	.align	2
11372	.global	FtlRead
11373	.type	FtlRead, %function
11374FtlRead:
11375	stp	x29, x30, [sp, -176]!
11376	and	w0, w0, 255
11377	cmp	w0, 16
11378	add	x29, sp, 0
11379	stp	x19, x20, [sp, 16]
11380	mov	w19, w1
11381	stp	x23, x24, [sp, 48]
11382	mov	x23, x3
11383	stp	x25, x26, [sp, 64]
11384	mov	w26, w2
11385	stp	x21, x22, [sp, 32]
11386	stp	x27, x28, [sp, 80]
11387	bne	.L1578
11388	mov	x2, x3
11389	mov	w1, w26
11390	add	w0, w19, 256
11391	bl	FtlVendorPartRead
11392	mov	w21, w0
11393.L1577:
11394	mov	w0, w21
11395	ldp	x19, x20, [sp, 16]
11396	ldp	x21, x22, [sp, 32]
11397	ldp	x23, x24, [sp, 48]
11398	ldp	x25, x26, [sp, 64]
11399	ldp	x27, x28, [sp, 80]
11400	ldp	x29, x30, [sp], 176
11401	ret
11402.L1578:
11403	add	w0, w1, w2
11404	str	w0, [x29, 136]
11405	adrp	x0, .LANCHOR34
11406	add	w1, w1, w2
11407	ldr	w0, [x0, #:lo12:.LANCHOR34]
11408	cmp	w1, w0
11409	bhi	.L1599
11410	adrp	x0, .LANCHOR86
11411	ldr	w21, [x0, #:lo12:.LANCHOR86]
11412	cmn	w21, #1
11413	beq	.L1577
11414	adrp	x22, .LANCHOR12
11415	adrp	x25, .LANCHOR81
11416	add	x25, x25, :lo12:.LANCHOR81
11417	mov	w27, 0
11418	ldrh	w0, [x22, #:lo12:.LANCHOR12]
11419	mov	w21, 0
11420	adrp	x28, .LANCHOR112
11421	stp	wzr, wzr, [x29, 140]
11422	udiv	w1, w19, w0
11423	stp	wzr, w1, [x29, 148]
11424	add	w1, w19, w2
11425	sub	w24, w1, #1
11426	adrp	x1, .LANCHOR69
11427	ldr	w20, [x29, 152]
11428	udiv	w24, w24, w0
11429	ldr	w0, [x29, 152]
11430	sub	w0, w24, w0
11431	add	w0, w0, 1
11432	str	w0, [x29, 156]
11433	ldr	w0, [x1, #:lo12:.LANCHOR69]
11434	add	w0, w0, w2
11435	str	w0, [x1, #:lo12:.LANCHOR69]
11436	adrp	x1, .LANCHOR62
11437	ldr	w2, [x29, 156]
11438	ldr	w0, [x1, #:lo12:.LANCHOR62]
11439	add	w0, w0, w2
11440	str	w0, [x1, #:lo12:.LANCHOR62]
11441.L1580:
11442	ldr	w0, [x29, 156]
11443	cbnz	w0, .L1597
11444	adrp	x0, .LANCHOR101
11445	ldrh	w0, [x0, #:lo12:.LANCHOR101]
11446	cbnz	w0, .L1598
11447	adrp	x0, .LANCHOR48
11448	ldrh	w0, [x0, #:lo12:.LANCHOR48]
11449	cmp	w0, 31
11450	bhi	.L1577
11451.L1598:
11452	mov	w1, 1
11453	mov	w0, 0
11454	bl	rk_ftl_garbage_collect
11455	b	.L1577
11456.L1597:
11457	add	x1, x29, 172
11458	mov	w2, 0
11459	mov	w0, w20
11460	bl	log2phys
11461	ldr	w1, [x29, 172]
11462	cmn	w1, #1
11463	bne	.L1581
11464	add	x5, x22, :lo12:.LANCHOR12
11465	mov	w4, 0
11466.L1582:
11467	ldrh	w0, [x5]
11468	cmp	w4, w0
11469	bcc	.L1584
11470.L1585:
11471	ldr	w0, [x29, 156]
11472	add	w20, w20, 1
11473	subs	w0, w0, #1
11474	str	w0, [x29, 156]
11475	beq	.L1589
11476	adrp	x0, .LANCHOR3
11477	ldrh	w0, [x0, #:lo12:.LANCHOR3]
11478	cmp	w27, w0, lsl 2
11479	bne	.L1580
11480.L1589:
11481	cbz	w27, .L1580
11482	ldr	x0, [x28, #:lo12:.LANCHOR112]
11483	mov	w1, w27
11484	mov	w2, 0
11485	bl	FlashReadPages
11486	ldr	w0, [x29, 140]
11487	lsl	w0, w0, 9
11488	str	w0, [x29, 116]
11489	ldr	w0, [x29, 148]
11490	lsl	w0, w0, 9
11491	str	x0, [x29, 128]
11492	ldr	w0, [x29, 144]
11493	lsl	w0, w0, 9
11494	str	w0, [x29, 120]
11495	ubfiz	x0, x27, 5, 32
11496	mov	x27, 0
11497	str	x0, [x29, 104]
11498	add	x0, x22, :lo12:.LANCHOR12
11499	str	x0, [x29, 96]
11500.L1596:
11501	ldr	x0, [x28, #:lo12:.LANCHOR112]
11502	ldr	w2, [x29, 152]
11503	add	x0, x0, x27
11504	ldr	w1, [x0, 24]
11505	cmp	w2, w1
11506	bne	.L1591
11507	ldr	x1, [x0, 8]
11508	adrp	x0, .LANCHOR118
11509	ldr	x0, [x0, #:lo12:.LANCHOR118]
11510	cmp	x1, x0
11511	bne	.L1592
11512	ldr	x0, [x29, 128]
11513	ldr	w2, [x29, 120]
11514	add	x1, x1, x0
11515	mov	x0, x23
11516.L1610:
11517	bl	ftl_memcpy
11518.L1592:
11519	ldr	x0, [x28, #:lo12:.LANCHOR112]
11520	add	x0, x0, x27
11521	ldr	x1, [x0, 16]
11522	ldr	w2, [x0, 24]
11523	ldr	w1, [x1, 8]
11524	cmp	w2, w1
11525	beq	.L1593
11526	ldr	w1, [x25, 72]
11527	add	w1, w1, 1
11528	str	w1, [x25, 72]
11529.L1593:
11530	ldr	w1, [x0]
11531	cmn	w1, #1
11532	bne	.L1594
11533	ldr	w0, [x25, 72]
11534	mov	w21, w1
11535	add	w0, w0, 1
11536	str	w0, [x25, 72]
11537.L1595:
11538	ldr	x0, [x29, 104]
11539	add	x27, x27, 32
11540	cmp	x0, x27
11541	bne	.L1596
11542	mov	w27, 0
11543	b	.L1580
11544.L1584:
11545	madd	w0, w20, w0, w4
11546	cmp	w19, w0
11547	bhi	.L1583
11548	ldr	w1, [x29, 136]
11549	cmp	w1, w0
11550	bls	.L1583
11551	sub	w0, w0, w19
11552	str	x5, [x29, 120]
11553	lsl	w0, w0, 9
11554	str	w4, [x29, 128]
11555	mov	w2, 512
11556	mov	w1, 0
11557	add	x0, x23, x0
11558	bl	ftl_memset
11559	ldr	w4, [x29, 128]
11560	ldr	x5, [x29, 120]
11561.L1583:
11562	add	w4, w4, 1
11563	b	.L1582
11564.L1581:
11565	ldr	x2, [x28, #:lo12:.LANCHOR112]
11566	ubfiz	x0, x27, 5, 32
11567	add	x0, x2, x0
11568	str	w1, [x0, 4]
11569	ldr	w1, [x29, 152]
11570	cmp	w20, w1
11571	bne	.L1586
11572	adrp	x1, .LANCHOR118
11573	ldr	x1, [x1, #:lo12:.LANCHOR118]
11574	str	x1, [x0, 8]
11575	ldrh	w1, [x22, #:lo12:.LANCHOR12]
11576	udiv	w2, w19, w1
11577	msub	w2, w2, w1, w19
11578	str	w2, [x29, 148]
11579	sub	w2, w1, w2
11580	cmp	w26, w2
11581	csel	w2, w26, w2, ls
11582	str	w2, [x29, 144]
11583	cmp	w1, w2
11584	bne	.L1587
11585	str	x23, [x0, 8]
11586.L1587:
11587	adrp	x1, .LANCHOR24
11588	adrp	x2, .LANCHOR124
11589	str	w20, [x0, 24]
11590	ldrh	w1, [x1, #:lo12:.LANCHOR24]
11591	ldr	x2, [x2, #:lo12:.LANCHOR124]
11592	mul	w1, w1, w27
11593	add	w27, w27, 1
11594	and	x1, x1, 4294967292
11595	add	x1, x2, x1
11596	str	x1, [x0, 16]
11597	b	.L1585
11598.L1586:
11599	cmp	w20, w24
11600	bne	.L1588
11601	ldrh	w2, [x22, #:lo12:.LANCHOR12]
11602	adrp	x1, .LANCHOR119
11603	ldr	w3, [x29, 136]
11604	ldr	x1, [x1, #:lo12:.LANCHOR119]
11605	str	x1, [x0, 8]
11606	mul	w1, w20, w2
11607	sub	w3, w3, w1
11608	str	w3, [x29, 140]
11609	cmp	w2, w3
11610	bne	.L1587
11611.L1609:
11612	sub	w1, w1, w19
11613	lsl	w1, w1, 9
11614	add	x1, x23, x1
11615	str	x1, [x0, 8]
11616	b	.L1587
11617.L1588:
11618	ldrh	w1, [x22, #:lo12:.LANCHOR12]
11619	mul	w1, w1, w20
11620	b	.L1609
11621.L1591:
11622	cmp	w24, w1
11623	bne	.L1592
11624	ldr	x1, [x0, 8]
11625	adrp	x0, .LANCHOR119
11626	ldr	x0, [x0, #:lo12:.LANCHOR119]
11627	cmp	x1, x0
11628	bne	.L1592
11629	ldr	x0, [x29, 96]
11630	ldr	w2, [x29, 116]
11631	ldrh	w0, [x0]
11632	mul	w0, w0, w24
11633	sub	w0, w0, w19
11634	lsl	w0, w0, 9
11635	add	x0, x23, x0
11636	b	.L1610
11637.L1594:
11638	cmp	w1, 256
11639	bne	.L1595
11640	ldr	w0, [x0, 4]
11641	lsr	w0, w0, 10
11642	bl	P2V_block_in_plane
11643	bl	FtlGcRefreshBlock
11644	b	.L1595
11645.L1599:
11646	mov	w21, -1
11647	b	.L1577
11648	.size	FtlRead, .-FtlRead
11649	.section	.text.sftl_read,"ax",@progbits
11650	.align	2
11651	.global	sftl_read
11652	.type	sftl_read, %function
11653sftl_read:
11654	mov	x3, x2
11655	mov	w2, w1
11656	mov	w1, w0
11657	mov	w0, 0
11658	b	FtlRead
11659	.size	sftl_read, .-sftl_read
11660	.section	.text.FtlWrite,"ax",@progbits
11661	.align	2
11662	.global	FtlWrite
11663	.type	FtlWrite, %function
11664FtlWrite:
11665	stp	x29, x30, [sp, -240]!
11666	and	w0, w0, 255
11667	cmp	w0, 16
11668	add	x29, sp, 0
11669	stp	x21, x22, [sp, 32]
11670	mov	w21, w1
11671	stp	x25, x26, [sp, 64]
11672	mov	x26, x3
11673	stp	x19, x20, [sp, 16]
11674	stp	x23, x24, [sp, 48]
11675	stp	x27, x28, [sp, 80]
11676	str	w2, [x29, 180]
11677	bne	.L1613
11678	add	w0, w1, 256
11679	ldr	w1, [x29, 180]
11680	mov	x2, x3
11681	bl	FtlVendorPartWrite
11682.L1612:
11683	ldp	x19, x20, [sp, 16]
11684	ldp	x21, x22, [sp, 32]
11685	ldp	x23, x24, [sp, 48]
11686	ldp	x25, x26, [sp, 64]
11687	ldp	x27, x28, [sp, 80]
11688	ldp	x29, x30, [sp], 240
11689	ret
11690.L1613:
11691	ldr	w0, [x29, 180]
11692	add	w0, w1, w0
11693	str	w0, [x29, 168]
11694	adrp	x0, .LANCHOR34
11695	ldr	w1, [x29, 168]
11696	ldr	w0, [x0, #:lo12:.LANCHOR34]
11697	cmp	w1, w0
11698	bhi	.L1649
11699	adrp	x0, .LANCHOR86
11700	ldr	w0, [x0, #:lo12:.LANCHOR86]
11701	cmn	w0, #1
11702	beq	.L1612
11703	adrp	x0, .LANCHOR181
11704	mov	w1, 2048
11705	adrp	x22, .LANCHOR12
11706	ldr	w2, [x29, 180]
11707	str	w1, [x0, #:lo12:.LANCHOR181]
11708	ldr	w1, [x29, 168]
11709	ldrh	w0, [x22, #:lo12:.LANCHOR12]
11710	sub	w1, w1, #1
11711	udiv	w25, w21, w0
11712	udiv	w0, w1, w0
11713	adrp	x1, .LANCHOR68
11714	str	w0, [x29, 156]
11715	sub	w0, w0, w25
11716	add	w24, w0, 1
11717	str	w0, [x29, 152]
11718	ldr	w0, [x1, #:lo12:.LANCHOR68]
11719	add	w0, w0, w2
11720	str	w0, [x1, #:lo12:.LANCHOR68]
11721	adrp	x1, .LANCHOR64
11722	ldr	w0, [x1, #:lo12:.LANCHOR64]
11723	add	w0, w0, w24
11724	str	w0, [x1, #:lo12:.LANCHOR64]
11725	adrp	x0, .LANCHOR182
11726	str	x0, [x29, 160]
11727	ldr	w1, [x0, #:lo12:.LANCHOR182]
11728	adrp	x0, .LANCHOR51
11729	add	x19, x0, :lo12:.LANCHOR51
11730	cbz	w1, .L1615
11731	ldrh	w0, [x19, 4]
11732	cbnz	w0, .L1615
11733	adrp	x19, .LANCHOR52
11734	add	x19, x19, :lo12:.LANCHOR52
11735.L1615:
11736	mov	w20, w25
11737	adrp	x0, .LANCHOR52
11738	add	x0, x0, :lo12:.LANCHOR52
11739	str	x0, [x29, 96]
11740.L1616:
11741	cbnz	w24, .L1644
11742	ldr	w1, [x29, 152]
11743	mov	w0, 0
11744	bl	rk_ftl_garbage_collect
11745	adrp	x0, .LANCHOR48
11746	mov	x22, x0
11747	ldrh	w1, [x0, #:lo12:.LANCHOR48]
11748	cmp	w1, 5
11749	bls	.L1645
11750.L1647:
11751	mov	w0, 0
11752	b	.L1612
11753.L1644:
11754	adrp	x0, .LANCHOR3
11755	ldrb	w2, [x19, 6]
11756	str	x0, [x29, 120]
11757	ldrh	w1, [x0, #:lo12:.LANCHOR3]
11758	cmp	w2, w1
11759	bcc	.L1617
11760	adrp	x1, .LANCHOR183
11761	adrp	x0, .LC1
11762	mov	w2, 1013
11763	add	x1, x1, :lo12:.LANCHOR183
11764	add	x0, x0, :lo12:.LC1
11765	bl	printf
11766.L1617:
11767	ldrh	w0, [x19, 4]
11768	cbnz	w0, .L1618
11769	adrp	x0, .LANCHOR51
11770	add	x0, x0, :lo12:.LANCHOR51
11771	cmp	x19, x0
11772	bne	.L1619
11773	adrp	x0, .LANCHOR52
11774	add	x0, x0, :lo12:.LANCHOR52
11775	ldrh	w1, [x0, 4]
11776	cbnz	w1, .L1620
11777	bl	allocate_new_data_superblock
11778	ldr	x0, [x29, 160]
11779	str	wzr, [x0, #:lo12:.LANCHOR182]
11780.L1620:
11781	adrp	x0, .LANCHOR51
11782	add	x19, x0, :lo12:.LANCHOR51
11783	mov	x0, x19
11784	bl	allocate_new_data_superblock
11785	ldr	x0, [x29, 160]
11786	ldr	w0, [x0, #:lo12:.LANCHOR182]
11787	cmp	w0, 0
11788	ldr	x0, [x29, 96]
11789	csel	x19, x0, x19, ne
11790.L1621:
11791	ldrh	w0, [x19, 4]
11792	cbnz	w0, .L1618
11793	mov	x0, x19
11794	bl	allocate_new_data_superblock
11795.L1618:
11796	ldrh	w0, [x19, 4]
11797	ldrb	w1, [x19, 7]
11798	cmp	w0, w24
11799	csel	w0, w0, w24, ls
11800	lsl	w1, w1, 2
11801	cmp	w0, w1
11802	csel	w0, w0, w1, ls
11803	str	w0, [x29, 148]
11804	ldr	x0, [x29, 120]
11805	ldrb	w1, [x19, 6]
11806	ldrh	w0, [x0, #:lo12:.LANCHOR3]
11807	cmp	w1, w0
11808	bcc	.L1622
11809	adrp	x1, .LANCHOR183
11810	adrp	x0, .LC1
11811	mov	w2, 1046
11812	add	x1, x1, :lo12:.LANCHOR183
11813	add	x0, x0, :lo12:.LC1
11814	bl	printf
11815.L1622:
11816	adrp	x0, .LANCHOR24
11817	add	x0, x0, :lo12:.LANCHOR24
11818	str	xzr, [x29, 184]
11819	str	x0, [x29, 112]
11820	adrp	x0, .LANCHOR23
11821	add	x0, x0, :lo12:.LANCHOR23
11822	str	x0, [x29, 104]
11823.L1623:
11824	ldr	w1, [x29, 148]
11825	adrp	x27, .LANCHOR114
11826	ldr	w23, [x29, 184]
11827	cmp	w23, w1
11828	bcc	.L1642
11829	mov	x23, x1
11830.L1624:
11831	ldr	x0, [x27, #:lo12:.LANCHOR114]
11832	mov	x3, x19
11833	mov	w2, 0
11834	mov	w1, w23
11835	bl	FtlProgPages
11836	cmp	w24, w23
11837	bcs	.L1643
11838	adrp	x1, .LANCHOR183
11839	adrp	x0, .LC1
11840	mov	w2, 1123
11841	add	x1, x1, :lo12:.LANCHOR183
11842	add	x0, x0, :lo12:.LC1
11843	bl	printf
11844.L1643:
11845	sub	w24, w24, w23
11846	b	.L1616
11847.L1619:
11848	ldr	x1, [x29, 160]
11849	str	wzr, [x1, #:lo12:.LANCHOR182]
11850	ldrh	w1, [x0, 4]
11851	cbnz	w1, .L1654
11852	mov	x0, x19
11853	bl	allocate_new_data_superblock
11854	b	.L1621
11855.L1654:
11856	mov	x19, x0
11857	b	.L1618
11858.L1642:
11859	ldrh	w0, [x19, 4]
11860	cbz	w0, .L1624
11861	add	x1, x29, 204
11862	mov	w2, 0
11863	mov	w0, w20
11864	bl	log2phys
11865	mov	x0, x19
11866	bl	get_new_active_ppa
11867	ldr	x1, [x29, 184]
11868	lsl	x28, x1, 5
11869	ldr	x1, [x27, #:lo12:.LANCHOR114]
11870	add	x1, x1, x28
11871	str	w0, [x1, 4]
11872	ldr	x0, [x29, 112]
11873	str	w20, [x1, 24]
11874	ldrh	w2, [x0]
11875	mul	w23, w23, w2
11876	and	x0, x23, 4294967292
11877	str	x0, [x29, 136]
11878	adrp	x0, .LANCHOR124
11879	ldr	x3, [x29, 136]
11880	ldr	x0, [x0, #:lo12:.LANCHOR124]
11881	str	x0, [x29, 128]
11882	add	x23, x0, x3
11883	str	x23, [x1, 16]
11884	mov	x0, x23
11885	mov	w1, 0
11886	bl	ftl_memset
11887	ldr	w0, [x29, 156]
11888	cmp	w20, w25
11889	ccmp	w20, w0, 4, ne
11890	bne	.L1625
11891	cmp	w20, w25
11892	bne	.L1626
11893	ldrh	w2, [x22, #:lo12:.LANCHOR12]
11894	udiv	w0, w21, w2
11895	msub	w0, w0, w2, w21
11896	str	w0, [x29, 172]
11897	sub	w2, w2, w0
11898	ldr	w0, [x29, 180]
11899	cmp	w2, w0
11900	csel	w0, w2, w0, ls
11901	str	w0, [x29, 176]
11902.L1627:
11903	ldrh	w0, [x22, #:lo12:.LANCHOR12]
11904	ldr	w1, [x29, 176]
11905	cmp	w1, w0
11906	ldr	x0, [x27, #:lo12:.LANCHOR114]
11907	bne	.L1628
11908	add	x3, x0, x28
11909	cmp	w20, w25
11910	bne	.L1629
11911	str	x26, [x3, 8]
11912.L1630:
11913	ldr	x0, [x29, 120]
11914	ldrb	w1, [x19, 6]
11915	ldrh	w0, [x0, #:lo12:.LANCHOR3]
11916	cmp	w1, w0
11917	bcc	.L1639
11918	adrp	x1, .LANCHOR183
11919	adrp	x0, .LC1
11920	mov	w2, 1114
11921	add	x1, x1, :lo12:.LANCHOR183
11922	add	x0, x0, :lo12:.LC1
11923	bl	printf
11924.L1639:
11925	ldp	x1, x2, [x29, 128]
11926	mov	w0, -3947
11927	strh	w0, [x1, x2]
11928	adrp	x1, .LANCHOR71
11929	ldr	w0, [x1, #:lo12:.LANCHOR71]
11930	stp	w0, w20, [x23, 4]
11931	add	w20, w20, 1
11932	add	w0, w0, 1
11933	cmn	w0, #1
11934	csel	w0, w0, wzr, ne
11935	str	w0, [x1, #:lo12:.LANCHOR71]
11936	ldr	w0, [x29, 204]
11937	str	w0, [x23, 12]
11938	ldrh	w0, [x19]
11939	strh	w0, [x23, 2]
11940	ldr	x0, [x29, 184]
11941	add	x0, x0, 1
11942	str	x0, [x29, 184]
11943	b	.L1623
11944.L1626:
11945	ldr	w0, [x29, 168]
11946	ldrh	w2, [x22, #:lo12:.LANCHOR12]
11947	msub	w2, w20, w2, w0
11948	and	w0, w2, 65535
11949	stp	wzr, w0, [x29, 172]
11950	b	.L1627
11951.L1629:
11952	ldr	w0, [x29, 176]
11953.L1661:
11954	mul	w0, w0, w20
11955	sub	w0, w0, w21
11956	lsl	w0, w0, 9
11957	add	x0, x26, x0
11958	str	x0, [x3, 8]
11959	b	.L1630
11960.L1628:
11961	add	x0, x0, x28
11962	cmp	w20, w25
11963	bne	.L1631
11964	adrp	x1, .LANCHOR118
11965	ldr	x1, [x1, #:lo12:.LANCHOR118]
11966.L1660:
11967	str	x1, [x0, 8]
11968	ldr	w0, [x29, 204]
11969	cmn	w0, #1
11970	beq	.L1633
11971	str	w0, [x29, 212]
11972	mov	w2, 0
11973	ldr	x0, [x27, #:lo12:.LANCHOR114]
11974	str	w20, [x29, 232]
11975	add	x0, x0, x28
11976	ldp	x1, x0, [x0, 8]
11977	stp	x1, x0, [x29, 216]
11978	mov	w1, 1
11979	add	x0, x29, 208
11980	bl	FlashReadPages
11981	ldr	w0, [x29, 208]
11982	cmn	w0, #1
11983	bne	.L1634
11984	adrp	x0, .LANCHOR81
11985	add	x0, x0, :lo12:.LANCHOR81
11986	ldr	w1, [x0, 72]
11987	add	w1, w1, 1
11988	str	w1, [x0, 72]
11989.L1637:
11990	ldr	w0, [x29, 176]
11991	cmp	w20, w25
11992	lsl	w2, w0, 9
11993	bne	.L1638
11994	ldr	x0, [x27, #:lo12:.LANCHOR114]
11995	mov	x1, x26
11996	add	x3, x0, x28
11997	ldr	w0, [x29, 172]
11998	ldr	x3, [x3, 8]
11999	lsl	w0, w0, 9
12000	add	x0, x3, x0
12001.L1662:
12002	bl	ftl_memcpy
12003	b	.L1630
12004.L1631:
12005	adrp	x1, .LANCHOR119
12006	ldr	x1, [x1, #:lo12:.LANCHOR119]
12007	b	.L1660
12008.L1634:
12009	ldr	w1, [x23, 8]
12010	cmp	w20, w1
12011	beq	.L1636
12012	adrp	x0, .LANCHOR81
12013	add	x0, x0, :lo12:.LANCHOR81
12014	ldr	w2, [x0, 72]
12015	add	w2, w2, 1
12016	str	w2, [x0, 72]
12017	adrp	x0, .LC113
12018	mov	w2, w20
12019	add	x0, x0, :lo12:.LC113
12020	bl	printf
12021.L1636:
12022	ldr	w0, [x23, 8]
12023	cmp	w20, w0
12024	beq	.L1637
12025	mov	w2, 1099
12026	adrp	x1, .LANCHOR183
12027	adrp	x0, .LC1
12028	add	x1, x1, :lo12:.LANCHOR183
12029	add	x0, x0, :lo12:.LC1
12030	bl	printf
12031	b	.L1637
12032.L1633:
12033	ldr	x0, [x27, #:lo12:.LANCHOR114]
12034	ldr	x1, [x29, 104]
12035	add	x0, x0, x28
12036	ldrh	w2, [x1]
12037	mov	w1, 0
12038	ldr	x0, [x0, 8]
12039	bl	ftl_memset
12040	b	.L1637
12041.L1638:
12042	ldrh	w1, [x22, #:lo12:.LANCHOR12]
12043	ldr	x0, [x27, #:lo12:.LANCHOR114]
12044	add	x3, x0, x28
12045	mul	w1, w1, w20
12046	sub	w1, w1, w21
12047	ldr	x0, [x3, 8]
12048	lsl	w1, w1, 9
12049	add	x1, x26, x1
12050	b	.L1662
12051.L1625:
12052	ldr	x0, [x27, #:lo12:.LANCHOR114]
12053	add	x3, x0, x28
12054	ldrh	w0, [x22, #:lo12:.LANCHOR12]
12055	b	.L1661
12056.L1645:
12057	adrp	x23, .LANCHOR99
12058	adrp	x20, .LANCHOR83
12059	adrp	x21, .LANCHOR82
12060	add	x23, x23, :lo12:.LANCHOR99
12061	add	x20, x20, :lo12:.LANCHOR83
12062	add	x21, x21, :lo12:.LANCHOR82
12063	mov	w19, 256
12064.L1648:
12065	adrp	x0, .LANCHOR80
12066	mov	w1, 65535
12067	ldrh	w0, [x0, #:lo12:.LANCHOR80]
12068	cmp	w0, w1
12069	bne	.L1646
12070	ldrh	w1, [x23]
12071	cmp	w1, w0
12072	bne	.L1646
12073	mov	w0, 0
12074	bl	List_get_gc_head_node
12075	bl	FtlGcRefreshBlock
12076.L1646:
12077	mov	w0, 128
12078	mov	w1, 1
12079	strh	w0, [x20]
12080	strh	w0, [x21]
12081	mov	w0, w1
12082	bl	rk_ftl_garbage_collect
12083	mov	w1, 1
12084	mov	w0, 0
12085	bl	rk_ftl_garbage_collect
12086	ldrh	w0, [x22, #:lo12:.LANCHOR48]
12087	cmp	w0, 2
12088	bhi	.L1647
12089	subs	w19, w19, #1
12090	bne	.L1648
12091	b	.L1647
12092.L1649:
12093	mov	w0, -1
12094	b	.L1612
12095	.size	FtlWrite, .-FtlWrite
12096	.section	.text.FtlMakeBbt,"ax",@progbits
12097	.align	2
12098	.global	FtlMakeBbt
12099	.type	FtlMakeBbt, %function
12100FtlMakeBbt:
12101	stp	x29, x30, [sp, -128]!
12102	add	x29, sp, 0
12103	stp	x21, x22, [sp, 32]
12104	mov	w22, 0
12105	stp	x19, x20, [sp, 16]
12106	adrp	x20, .LANCHOR37
12107	stp	x23, x24, [sp, 48]
12108	add	x21, x20, :lo12:.LANCHOR37
12109	stp	x25, x26, [sp, 64]
12110	add	x24, x21, 32
12111	stp	x27, x28, [sp, 80]
12112	bl	FtlBbtMemInit
12113	bl	FtlLoadFactoryBbt
12114	adrp	x28, .LANCHOR148
12115	add	x21, x21, 12
12116	add	x25, x28, :lo12:.LANCHOR148
12117	adrp	x0, .LANCHOR10
12118	add	x0, x0, :lo12:.LANCHOR10
12119	str	x0, [x29, 120]
12120.L1664:
12121	ldr	x0, [x29, 120]
12122	ldrh	w0, [x0]
12123	cmp	w22, w0
12124	bcc	.L1670
12125	adrp	x21, .LANCHOR25
12126	add	x21, x21, :lo12:.LANCHOR25
12127	mov	w19, 0
12128.L1671:
12129	ldrh	w0, [x21]
12130	cmp	w0, w19
12131	bhi	.L1672
12132	add	x21, x20, :lo12:.LANCHOR37
12133	mov	w22, 65535
12134	ldrh	w19, [x21, 12]
12135	sub	w19, w19, #1
12136	and	w19, w19, 65535
12137.L1673:
12138	ldrh	w0, [x21, 12]
12139	sub	w0, w0, #47
12140	cmp	w0, w19
12141	bgt	.L1677
12142	mov	w0, w19
12143	bl	FtlBbmIsBadBlock
12144	cmp	w0, 1
12145	beq	.L1674
12146	mov	w0, w19
12147	bl	FlashTestBlk
12148	cbz	w0, .L1675
12149	mov	w0, w19
12150	bl	FtlBbmMapBadBlock
12151.L1674:
12152	sub	w19, w19, #1
12153	and	w19, w19, 65535
12154	b	.L1673
12155.L1670:
12156	adrp	x2, .LANCHOR123
12157	adrp	x0, .LANCHOR115
12158	add	x19, x28, :lo12:.LANCHOR148
12159	ldrh	w1, [x21]
12160	ldr	x0, [x0, #:lo12:.LANCHOR115]
12161	mov	w3, 65535
12162	ldr	x26, [x2, #:lo12:.LANCHOR123]
12163	cmp	w1, w3
12164	stp	x0, x26, [x19, 8]
12165	adrp	x23, .LANCHOR17
12166	str	x2, [x29, 112]
12167	beq	.L1665
12168	ldrh	w4, [x23, #:lo12:.LANCHOR17]
12169	mov	w2, 1
12170	madd	w27, w4, w22, w1
12171	mov	w1, w2
12172	lsl	w0, w27, 10
12173	str	w0, [x19, 4]
12174	mov	x0, x19
12175	bl	FlashReadPages
12176	ldr	x1, [x19, 8]
12177	ldr	x0, [x24]
12178	ldrh	w2, [x23, #:lo12:.LANCHOR17]
12179	add	w2, w2, 7
12180	lsr	w2, w2, 3
12181	bl	ftl_memcpy
12182.L1666:
12183	mov	w0, w27
12184	add	w22, w22, 1
12185	bl	FtlBbmMapBadBlock
12186	add	x24, x24, 8
12187	add	x21, x21, 2
12188	b	.L1664
12189.L1665:
12190	mov	w1, w22
12191	bl	FlashGetBadBlockList
12192	ldr	x0, [x19, 8]
12193	ldr	x1, [x24]
12194	bl	FtlBbt2Bitmap
12195	ldrh	w19, [x23, #:lo12:.LANCHOR17]
12196	add	x23, x23, :lo12:.LANCHOR17
12197	adrp	x0, .LANCHOR137
12198	sub	w19, w19, #1
12199	add	x0, x0, :lo12:.LANCHOR137
12200	and	w19, w19, 65535
12201	str	x0, [x29, 104]
12202.L1667:
12203	ldrh	w0, [x23]
12204	madd	w0, w22, w0, w19
12205	bl	FtlBbmIsBadBlock
12206	cmp	w0, 1
12207	beq	.L1668
12208	ldr	x0, [x29, 112]
12209	mov	w2, 16
12210	strh	w19, [x21]
12211	mov	w1, 0
12212	ldr	x0, [x0, #:lo12:.LANCHOR123]
12213	bl	ftl_memset
12214	adrp	x0, .LANCHOR115
12215	mov	w2, 4096
12216	mov	w1, 0
12217	ldr	x0, [x0, #:lo12:.LANCHOR115]
12218	bl	ftl_memset
12219	mov	w0, -3872
12220	strh	w0, [x26]
12221	ldrh	w4, [x23]
12222	ldrh	w0, [x21]
12223	strh	w0, [x26, 2]
12224	ldr	x1, [x24]
12225	str	wzr, [x26, 4]
12226	madd	w27, w4, w22, w0
12227	lsl	w0, w27, 10
12228	str	w0, [x25, 4]
12229	ldr	x0, [x29, 104]
12230	ldrh	w2, [x0]
12231	ldr	x0, [x25, 8]
12232	lsl	w2, w2, 2
12233	bl	ftl_memcpy
12234	mov	w2, 1
12235	mov	x0, x25
12236	mov	w1, w2
12237	bl	FlashEraseBlocks
12238	mov	w3, 1
12239	mov	x0, x25
12240	mov	w2, w3
12241	mov	w1, w3
12242	bl	FlashProgPages
12243	ldr	w0, [x25]
12244	cmn	w0, #1
12245	bne	.L1666
12246	mov	w0, w27
12247	bl	FtlBbmMapBadBlock
12248	b	.L1667
12249.L1668:
12250	sub	w19, w19, #1
12251	and	w19, w19, 65535
12252	b	.L1667
12253.L1672:
12254	mov	w0, w19
12255	add	w19, w19, 1
12256	bl	FtlBbmMapBadBlock
12257	and	w19, w19, 65535
12258	b	.L1671
12259.L1675:
12260	ldrh	w0, [x21]
12261	cmp	w0, w22
12262	bne	.L1676
12263	strh	w19, [x21]
12264	b	.L1674
12265.L1676:
12266	strh	w19, [x21, 4]
12267.L1677:
12268	adrp	x0, .LANCHOR106
12269	add	x19, x20, :lo12:.LANCHOR37
12270	ldrh	w1, [x20, #:lo12:.LANCHOR37]
12271	mov	w2, 2
12272	ldr	x0, [x0, #:lo12:.LANCHOR106]
12273	str	wzr, [x19, 8]
12274	lsl	w1, w1, 10
12275	strh	wzr, [x19, 2]
12276	str	w1, [x0, 4]
12277	ldrh	w1, [x19, 4]
12278	lsl	w1, w1, 10
12279	str	w1, [x0, 36]
12280	mov	w1, 1
12281	bl	FlashEraseBlocks
12282	ldrh	w0, [x20, #:lo12:.LANCHOR37]
12283	bl	FtlBbmMapBadBlock
12284	ldrh	w0, [x19, 4]
12285	bl	FtlBbmMapBadBlock
12286	bl	FtlBbmTblFlush
12287	strh	wzr, [x19, 2]
12288	ldr	w0, [x19, 8]
12289	ldrh	w1, [x19, 4]
12290	add	w0, w0, 1
12291	str	w0, [x19, 8]
12292	ldrh	w0, [x20, #:lo12:.LANCHOR37]
12293	strh	w0, [x19, 4]
12294	strh	w1, [x20, #:lo12:.LANCHOR37]
12295	bl	FtlBbmTblFlush
12296	mov	w0, 0
12297	ldp	x19, x20, [sp, 16]
12298	ldp	x21, x22, [sp, 32]
12299	ldp	x23, x24, [sp, 48]
12300	ldp	x25, x26, [sp, 64]
12301	ldp	x27, x28, [sp, 80]
12302	ldp	x29, x30, [sp], 128
12303	ret
12304	.size	FtlMakeBbt, .-FtlMakeBbt
12305	.section	.text.ftl_low_format,"ax",@progbits
12306	.align	2
12307	.global	ftl_low_format
12308	.type	ftl_low_format, %function
12309ftl_low_format:
12310	stp	x29, x30, [sp, -80]!
12311	adrp	x0, .LANCHOR71
12312	add	x29, sp, 0
12313	stp	x23, x24, [sp, 48]
12314	adrp	x24, .LANCHOR4
12315	str	wzr, [x0, #:lo12:.LANCHOR71]
12316	ldrh	w0, [x24, #:lo12:.LANCHOR4]
12317	stp	x19, x20, [sp, 16]
12318	adrp	x20, .LANCHOR70
12319	stp	x21, x22, [sp, 32]
12320	stp	x25, x26, [sp, 64]
12321	str	wzr, [x20, #:lo12:.LANCHOR70]
12322	bl	FtlFreeSysBlkQueueInit
12323	bl	FtlLoadBbt
12324	cbz	w0, .L1684
12325	bl	FtlMakeBbt
12326.L1684:
12327	adrp	x23, .LANCHOR12
12328	adrp	x0, .LANCHOR118
12329	mov	w6, 23752
12330	ldrh	w1, [x23, #:lo12:.LANCHOR12]
12331	movk	w6, 0xa0f, lsl 16
12332	ldr	x4, [x0, #:lo12:.LANCHOR118]
12333	adrp	x0, .LANCHOR119
12334	lsl	w1, w1, 7
12335	ldr	x5, [x0, #:lo12:.LANCHOR119]
12336	mov	w0, 0
12337.L1685:
12338	cmp	w0, w1
12339	blt	.L1686
12340	adrp	x21, .LANCHOR5
12341	adrp	x22, .LANCHOR6
12342	add	x26, x22, :lo12:.LANCHOR6
12343	mov	w19, 0
12344	ldrh	w25, [x21, #:lo12:.LANCHOR5]
12345.L1687:
12346	ldrh	w0, [x26]
12347	cmp	w0, w25
12348	bhi	.L1688
12349	adrp	x25, .LANCHOR3
12350	sub	w1, w19, #2
12351	ldrh	w0, [x25, #:lo12:.LANCHOR3]
12352	cmp	w1, w0, lsl 1
12353	bgt	.L1689
12354.L1693:
12355	add	x26, x21, :lo12:.LANCHOR5
12356	mov	w19, 0
12357	mov	w24, 0
12358.L1690:
12359	ldrh	w0, [x26]
12360	cmp	w0, w24
12361	bhi	.L1694
12362	adrp	x0, .LANCHOR111
12363	ldrh	w1, [x22, #:lo12:.LANCHOR6]
12364	ldrh	w4, [x25, #:lo12:.LANCHOR3]
12365	adrp	x2, .LANCHOR78
12366	str	w1, [x0, #:lo12:.LANCHOR111]
12367	adrp	x0, .LANCHOR7
12368	adrp	x3, .LANCHOR61
12369	ldr	w1, [x0, #:lo12:.LANCHOR7]
12370	udiv	w5, w1, w4
12371	ubfx	x0, x5, 5, 16
12372	str	w5, [x3, #:lo12:.LANCHOR61]
12373	add	w6, w0, 36
12374	strh	w6, [x2, #:lo12:.LANCHOR78]
12375	mov	w6, 24
12376	mul	w6, w4, w6
12377	cmp	w19, w6
12378	ble	.L1695
12379	sub	w1, w1, w19
12380	udiv	w1, w1, w4
12381	str	w1, [x3, #:lo12:.LANCHOR61]
12382	lsr	w1, w1, 5
12383	add	w1, w1, 24
12384	strh	w1, [x2, #:lo12:.LANCHOR78]
12385.L1695:
12386	adrp	x1, .LANCHOR15
12387	ldrh	w1, [x1, #:lo12:.LANCHOR15]
12388	cbz	w1, .L1697
12389	ldrh	w6, [x2, #:lo12:.LANCHOR78]
12390	add	w6, w6, w1, lsr 1
12391	strh	w6, [x2, #:lo12:.LANCHOR78]
12392	mul	w6, w1, w4
12393	cmp	w19, w6
12394	bge	.L1697
12395	add	w1, w1, 32
12396	str	w5, [x3, #:lo12:.LANCHOR61]
12397	add	w1, w0, w1
12398	strh	w1, [x2, #:lo12:.LANCHOR78]
12399.L1697:
12400	ldrh	w1, [x2, #:lo12:.LANCHOR78]
12401	adrp	x25, .LANCHOR152
12402	ldr	w0, [x3, #:lo12:.LANCHOR61]
12403	adrp	x24, .LANCHOR42
12404	sub	w0, w0, w1
12405	adrp	x1, .LANCHOR19
12406	ldrh	w1, [x1, #:lo12:.LANCHOR19]
12407	mul	w0, w0, w4
12408	str	w0, [x25, #:lo12:.LANCHOR152]
12409	mul	w0, w1, w0
12410	ldrh	w1, [x23, #:lo12:.LANCHOR12]
12411	str	w0, [x3, #:lo12:.LANCHOR61]
12412	mov	w23, -1
12413	mul	w0, w1, w0
12414	adrp	x1, .LANCHOR34
12415	str	w0, [x1, #:lo12:.LANCHOR34]
12416	bl	FtlBbmTblFlush
12417	ldr	x0, [x24, #:lo12:.LANCHOR42]
12418	mov	w1, 0
12419	ldrh	w2, [x22, #:lo12:.LANCHOR6]
12420	lsl	w2, w2, 1
12421	bl	ftl_memset
12422	adrp	x0, .LANCHOR59
12423	adrp	x1, .LANCHOR80
12424	ldrh	w2, [x21, #:lo12:.LANCHOR5]
12425	str	wzr, [x0, #:lo12:.LANCHOR59]
12426	add	x0, x1, :lo12:.LANCHOR80
12427	strh	w23, [x1, #:lo12:.LANCHOR80]
12428	mov	w1, 255
12429	lsr	w2, w2, 3
12430	strh	wzr, [x0, 2]
12431	strb	wzr, [x0, 6]
12432	strb	wzr, [x0, 8]
12433	adrp	x0, .LANCHOR51
12434	add	x19, x0, :lo12:.LANCHOR51
12435	strh	wzr, [x0, #:lo12:.LANCHOR51]
12436	mov	w0, 1
12437	strb	w0, [x19, 8]
12438	adrp	x0, .LANCHOR1
12439	strh	wzr, [x19, 2]
12440	ldr	x0, [x0, #:lo12:.LANCHOR1]
12441	strb	wzr, [x19, 6]
12442	bl	ftl_memset
12443.L1699:
12444	mov	x0, x19
12445	bl	make_superblock
12446	ldrb	w1, [x19, 7]
12447	ldrh	w0, [x19]
12448	cbnz	w1, .L1700
12449	ldr	x1, [x24, #:lo12:.LANCHOR42]
12450	ubfiz	x0, x0, 1, 16
12451	strh	w23, [x1, x0]
12452	ldrh	w0, [x19]
12453	add	w0, w0, 1
12454	strh	w0, [x19]
12455	b	.L1699
12456.L1686:
12457	ubfiz	x3, x0, 2, 16
12458	mvn	w2, w0
12459	orr	w2, w0, w2, lsl 16
12460	add	w0, w0, 1
12461	and	w0, w0, 65535
12462	str	w2, [x4, x3]
12463	str	w6, [x5, x3]
12464	b	.L1685
12465.L1688:
12466	mov	w0, w25
12467	mov	w1, 1
12468	add	w25, w25, 1
12469	bl	FtlLowFormatEraseBlock
12470	add	w19, w19, w0
12471	and	w25, w25, 65535
12472	and	w19, w19, 65535
12473	b	.L1687
12474.L1689:
12475	udiv	w0, w19, w0
12476	adrp	x1, .LANCHOR31
12477	ldr	w19, [x1, #:lo12:.LANCHOR31]
12478	add	w0, w0, w19
12479	bl	FtlSysBlkNumInit
12480	ldrh	w0, [x24, #:lo12:.LANCHOR4]
12481	add	x24, x22, :lo12:.LANCHOR6
12482	bl	FtlFreeSysBlkQueueInit
12483	ldrh	w19, [x21, #:lo12:.LANCHOR5]
12484.L1691:
12485	ldrh	w0, [x24]
12486	cmp	w0, w19
12487	bls	.L1693
12488	mov	w0, w19
12489	add	w19, w19, 1
12490	mov	w1, 1
12491	and	w19, w19, 65535
12492	bl	FtlLowFormatEraseBlock
12493	b	.L1691
12494.L1694:
12495	mov	w0, w24
12496	mov	w1, 0
12497	add	w24, w24, 1
12498	bl	FtlLowFormatEraseBlock
12499	add	w19, w19, w0
12500	and	w24, w24, 65535
12501	and	w19, w19, 65535
12502	b	.L1690
12503.L1700:
12504	ldr	w1, [x20, #:lo12:.LANCHOR70]
12505	ubfiz	x0, x0, 1, 16
12506	str	w1, [x19, 12]
12507	mov	w23, -1
12508	add	w1, w1, 1
12509	str	w1, [x20, #:lo12:.LANCHOR70]
12510	ldr	x1, [x24, #:lo12:.LANCHOR42]
12511	ldrh	w2, [x19, 4]
12512	strh	w2, [x1, x0]
12513	adrp	x2, .LANCHOR52
12514	add	x0, x2, :lo12:.LANCHOR52
12515	ldrh	w1, [x19]
12516	mov	x19, x0
12517	add	w1, w1, 1
12518	strh	wzr, [x0, 2]
12519	strh	w1, [x2, #:lo12:.LANCHOR52]
12520	mov	w1, 1
12521	strb	wzr, [x0, 6]
12522	strb	w1, [x0, 8]
12523.L1701:
12524	mov	x0, x19
12525	bl	make_superblock
12526	ldrb	w1, [x19, 7]
12527	ldrh	w0, [x19]
12528	cbnz	w1, .L1702
12529	ldr	x1, [x24, #:lo12:.LANCHOR42]
12530	ubfiz	x0, x0, 1, 16
12531	strh	w23, [x1, x0]
12532	ldrh	w0, [x19]
12533	add	w0, w0, 1
12534	strh	w0, [x19]
12535	b	.L1701
12536.L1702:
12537	ldr	w1, [x20, #:lo12:.LANCHOR70]
12538	ubfiz	x0, x0, 1, 16
12539	str	w1, [x19, 12]
12540	add	w1, w1, 1
12541	str	w1, [x20, #:lo12:.LANCHOR70]
12542	ldr	x1, [x24, #:lo12:.LANCHOR42]
12543	ldrh	w2, [x19, 4]
12544	mov	w19, -1
12545	strh	w2, [x1, x0]
12546	adrp	x0, .LANCHOR53
12547	strh	w19, [x0, #:lo12:.LANCHOR53]
12548	bl	FtlFreeSysBlkQueueOut
12549	adrp	x2, .LANCHOR79
12550	add	x1, x2, :lo12:.LANCHOR79
12551	strh	w0, [x2, #:lo12:.LANCHOR79]
12552	ldr	w0, [x25, #:lo12:.LANCHOR152]
12553	strh	w0, [x1, 6]
12554	ldr	w0, [x20, #:lo12:.LANCHOR70]
12555	str	w0, [x1, 8]
12556	add	w0, w0, 1
12557	strh	wzr, [x1, 2]
12558	strh	w19, [x1, 4]
12559	str	w0, [x20, #:lo12:.LANCHOR70]
12560	bl	FtlVpcTblFlush
12561	bl	FtlSysBlkInit
12562	cbnz	w0, .L1703
12563	adrp	x0, .LANCHOR86
12564	mov	w1, 1
12565	str	w1, [x0, #:lo12:.LANCHOR86]
12566.L1703:
12567	mov	w0, 0
12568	ldp	x19, x20, [sp, 16]
12569	ldp	x21, x22, [sp, 32]
12570	ldp	x23, x24, [sp, 48]
12571	ldp	x25, x26, [sp, 64]
12572	ldp	x29, x30, [sp], 80
12573	ret
12574	.size	ftl_low_format, .-ftl_low_format
12575	.section	.text.ftl_memcmp,"ax",@progbits
12576	.align	2
12577	.global	ftl_memcmp
12578	.type	ftl_memcmp, %function
12579ftl_memcmp:
12580	uxtw	x2, w2
12581	b	memcmp
12582	.size	ftl_memcmp, .-ftl_memcmp
12583	.section	.text.FtlWriteToIDB,"ax",@progbits
12584	.align	2
12585	.global	FtlWriteToIDB
12586	.type	FtlWriteToIDB, %function
12587FtlWriteToIDB:
12588	stp	x29, x30, [sp, -224]!
12589	add	x29, sp, 0
12590	stp	x23, x24, [sp, 48]
12591	add	w23, w1, w0
12592	stp	x25, x26, [sp, 64]
12593	sub	w25, w23, #1
12594	stp	x19, x20, [sp, 16]
12595	cmp	w25, 63
12596	stp	x21, x22, [sp, 32]
12597	adrp	x24, .LANCHOR184
12598	stp	x27, x28, [sp, 80]
12599	bls	.L1710
12600	mov	w19, w0
12601	cmp	w0, 575
12602	bls	.L1711
12603.L1710:
12604	ldr	w0, [x24, #:lo12:.LANCHOR184]
12605	cbnz	w0, .L1712
12606.L1779:
12607	mov	w19, 0
12608	b	.L1709
12609.L1712:
12610	adrp	x0, .LANCHOR185
12611	str	x0, [x29, 120]
12612	mov	w1, 35899
12613	ldr	x23, [x0, #:lo12:.LANCHOR185]
12614	movk	w1, 0xfcdc, lsl 16
12615	ldr	w2, [x23]
12616	cmp	w2, w1
12617	bne	.L1714
12618	adrp	x21, .LANCHOR0
12619	add	x0, x21, :lo12:.LANCHOR0
12620	mov	w19, 65535
12621	mov	w3, 4097
12622	ldrh	w1, [x0, 10]
12623	mov	x0, 262140
12624	add	x2, x23, x0
12625	mov	w0, 0
12626.L1718:
12627	ldr	w4, [x2]
12628	cbnz	w4, .L1715
12629	ldr	w4, [x23, w0, uxtw 2]
12630	add	w0, w0, 1
12631	str	w4, [x2], -4
12632	cmp	w0, w3
12633	sub	w19, w19, #1
12634	csel	w0, w0, wzr, cc
12635	cmp	w19, 4096
12636	bne	.L1718
12637	mov	w19, 512
12638	b	.L1717
12639.L1715:
12640	add	w19, w19, 127
12641	lsr	w19, w19, 7
12642.L1717:
12643	add	w0, w19, 4
12644	ubfiz	w1, w1, 2, 14
12645	mov	w22, 0
12646	udiv	w0, w0, w1
12647	add	w0, w0, 1
12648	stp	wzr, w0, [x29, 152]
12649	lsl	w0, w19, 7
12650	str	w0, [x29, 136]
12651	adrp	x0, .LANCHOR105
12652	add	x20, x0, :lo12:.LANCHOR105
12653.L1741:
12654	adrp	x26, .LANCHOR186
12655	mov	w1, 0
12656	mov	x2, 512
12657	ldr	x0, [x26, #:lo12:.LANCHOR186]
12658	bl	memset
12659	str	x26, [x29, 144]
12660	add	x0, x21, :lo12:.LANCHOR0
12661	ldrh	w27, [x0, 10]
12662	adrp	x0, .LANCHOR105
12663	add	x0, x0, :lo12:.LANCHOR105
12664	ldr	x1, [x0, 32]
12665	mul	w25, w27, w22
12666	cbz	x1, .L1749
12667	ldr	x0, [x0, 40]
12668	mov	w26, 6
12669	cmp	x0, 0
12670	mov	w0, 9
12671	csel	w26, w26, w0, eq
12672.L1719:
12673	ldr	x2, [x20, 8]
12674	mov	w1, w25
12675	mov	w0, 0
12676	blr	x2
12677	ldr	w0, [x29, 156]
12678	cmp	w0, 1
12679	beq	.L1720
12680	ldr	x2, [x20, 8]
12681	add	w1, w27, w25
12682	mov	w0, 0
12683	blr	x2
12684.L1720:
12685	cmp	w26, 9
12686	bne	.L1751
12687	ldr	x0, [x29, 144]
12688	mov	w2, 1024
12689	mov	w1, 0
12690	ldr	x28, [x0, #:lo12:.LANCHOR186]
12691	mov	x0, x28
12692	bl	ftl_memset
12693	mov	w0, 18766
12694	add	x5, x28, 12
12695	movk	w0, 0x464e, lsl 16
12696	str	w0, [x28]
12697	mov	w0, 12
12698	str	w0, [x28, 4]
12699	mov	w0, 4
12700	strb	w0, [x28, 17]
12701	add	x0, x21, :lo12:.LANCHOR0
12702	strb	wzr, [x28, 16]
12703	strb	wzr, [x28, 20]
12704	mov	x2, 0
12705	strh	wzr, [x28, 22]
12706	ldrh	w0, [x0, 10]
12707	strh	w0, [x28, 18]
12708	mov	w0, 16
12709	strb	w0, [x28, 21]
12710	mov	w0, 42982
12711	str	wzr, [x28, 12]
12712	movk	w0, 0x47c6, lsl 16
12713.L1722:
12714	lsr	w1, w0, 2
12715	ldrb	w3, [x5, x2]
12716	add	w1, w1, w0, lsl 5
12717	add	x2, x2, 1
12718	add	w1, w1, w3
12719	cmp	x2, 12
12720	eor	w0, w0, w1
12721	bne	.L1722
12722	str	w0, [x28, 8]
12723.L1721:
12724	ldr	w0, [x29, 156]
12725	mov	x6, x23
12726	mul	w0, w0, w27
12727	mov	x27, 0
12728	str	w0, [x29, 140]
12729	add	w0, w25, 1
12730	str	w0, [x29, 132]
12731.L1723:
12732	ldr	w0, [x29, 140]
12733	mov	w1, w27
12734	cmp	w27, w0
12735	bcs	.L1730
12736	cmp	w26, 9
12737	bne	.L1724
12738	ldr	w0, [x29, 132]
12739	add	w0, w0, w1
12740.L1778:
12741	str	w0, [x29, 160]
12742	mov	w0, 61424
12743	str	w0, [x29, 164]
12744	cmp	w1, 0
12745	ccmp	w26, 9, 0, eq
12746	bne	.L1726
12747	ldr	x1, [x20, 32]
12748	mov	w0, 70
12749	str	x6, [x29, 104]
12750	blr	x1
12751	ldr	x7, [x20, 16]
12752	add	x3, x29, 160
12753	mov	x2, x28
12754	mov	w1, w25
12755	mov	w0, 0
12756	blr	x7
12757	mov	w1, w0
12758	add	x0, x21, :lo12:.LANCHOR0
12759	ldr	x2, [x20, 32]
12760	str	w1, [x29, 112]
12761	ldrb	w0, [x0, 22]
12762	blr	x2
12763	ldr	w1, [x29, 112]
12764	ldr	x6, [x29, 104]
12765	cmn	w1, #1
12766	bne	.L1727
12767.L1730:
12768	ldr	x0, [x29, 144]
12769	ldr	x26, [x0, #:lo12:.LANCHOR186]
12770	add	x0, x21, :lo12:.LANCHOR0
12771	ldrb	w28, [x0, 14]
12772	ldrh	w0, [x0, 10]
12773	mul	w1, w0, w22
12774	str	w1, [x29, 140]
12775	ldr	x1, [x20, 32]
12776	cbnz	x1, .L1728
12777	mov	w25, 6
12778.L1729:
12779	ldr	w1, [x29, 156]
12780	mov	x27, 0
12781	mul	w0, w1, w0
12782	str	w0, [x29, 132]
12783.L1732:
12784	ldr	w0, [x29, 132]
12785	mov	w1, w27
12786	cmp	w0, w27
12787	bls	.L1736
12788	cmp	w27, 0
12789	ccmp	w25, 9, 0, eq
12790	bne	.L1733
12791	ldr	x1, [x20, 32]
12792	mov	w0, 70
12793	blr	x1
12794	ldr	x1, [x20, 40]
12795	mov	w0, 2
12796	blr	x1
12797	ldr	x6, [x20, 24]
12798	add	x3, x29, 160
12799	ldr	w1, [x29, 140]
12800	mov	x2, x26
12801	mov	w0, 0
12802	blr	x6
12803	ldr	x1, [x20, 40]
12804	mov	w0, w28
12805	blr	x1
12806	add	x0, x21, :lo12:.LANCHOR0
12807	ldr	x1, [x20, 32]
12808	ldrb	w0, [x0, 22]
12809	blr	x1
12810	ldr	w0, [x26]
12811	mov	w1, 18766
12812	movk	w1, 0x464e, lsl 16
12813	cmp	w0, w1
12814	beq	.L1734
12815.L1736:
12816	ldr	x0, [x29, 144]
12817	mov	x2, x23
12818	mov	x1, 0
12819	ldr	x0, [x0, #:lo12:.LANCHOR186]
12820.L1735:
12821	ldr	w3, [x29, 136]
12822	mov	w26, w1
12823	cmp	w1, w3
12824	bcc	.L1739
12825	ldr	w0, [x29, 152]
12826	add	w0, w0, 1
12827	str	w0, [x29, 152]
12828	cmp	w0, 5
12829	bls	.L1738
12830	b	.L1742
12831.L1749:
12832	mov	w26, 6
12833	b	.L1719
12834.L1751:
12835	mov	x28, 0
12836	b	.L1721
12837.L1724:
12838	add	w0, w1, w25
12839	lsl	w0, w0, 2
12840	b	.L1778
12841.L1726:
12842	ldr	x7, [x20, 16]
12843	add	x3, x29, 160
12844	mov	x2, x6
12845	add	w1, w1, w25
12846	mov	w0, 0
12847	str	x6, [x29, 112]
12848	blr	x7
12849	cmn	w0, #1
12850	beq	.L1730
12851	ldr	x6, [x29, 112]
12852	add	x6, x6, 2048
12853.L1727:
12854	add	x27, x27, 1
12855	b	.L1723
12856.L1728:
12857	ldr	x1, [x20, 40]
12858	mov	w25, 6
12859	cmp	x1, 0
12860	mov	w1, 9
12861	csel	w25, w25, w1, eq
12862	b	.L1729
12863.L1733:
12864	ldr	x6, [x20, 24]
12865	add	x3, x29, 160
12866	ldr	w0, [x29, 140]
12867	mov	x2, x26
12868	add	w1, w0, w1
12869	mov	w0, 0
12870	blr	x6
12871	cmn	w0, #1
12872	beq	.L1736
12873	ldr	w0, [x29, 164]
12874	mov	w1, 61424
12875	cmp	w0, w1
12876	bne	.L1736
12877	add	x26, x26, 2048
12878.L1734:
12879	add	x27, x27, 1
12880	b	.L1732
12881.L1739:
12882	mov	x25, x2
12883	ldr	w4, [x0, x1, lsl 2]
12884	lsl	x27, x1, 2
12885	add	x2, x2, 4
12886	add	x1, x1, 1
12887	ldr	w3, [x25]
12888	cmp	w4, w3
12889	beq	.L1735
12890	mov	x2, 512
12891	mov	w1, 0
12892	bl	memset
12893	ldr	x0, [x29, 144]
12894	mov	w1, w22
12895	ldr	w3, [x25]
12896	mov	w4, w26
12897	ldr	x0, [x0, #:lo12:.LANCHOR186]
12898	ldr	w2, [x0, x27]
12899	adrp	x0, .LC114
12900	add	x0, x0, :lo12:.LC114
12901	bl	printf
12902	add	x0, x21, :lo12:.LANCHOR0
12903	ldr	x2, [x20, 8]
12904	ldrh	w1, [x0, 10]
12905	mov	w0, 0
12906	mul	w1, w1, w22
12907	blr	x2
12908.L1738:
12909	ldr	w0, [x29, 156]
12910	add	w22, w22, w0
12911	cmp	w22, 15
12912	bls	.L1741
12913	ldr	w0, [x29, 152]
12914	cbnz	w0, .L1742
12915.L1714:
12916	mov	w19, -1
12917.L1742:
12918	ldr	x0, [x29, 120]
12919	str	wzr, [x24, #:lo12:.LANCHOR184]
12920	ldr	x0, [x0, #:lo12:.LANCHOR185]
12921	bl	free
12922	adrp	x0, .LANCHOR186
12923	ldr	x0, [x0, #:lo12:.LANCHOR186]
12924	bl	free
12925.L1709:
12926	mov	w0, w19
12927	ldp	x19, x20, [sp, 16]
12928	ldp	x21, x22, [sp, 32]
12929	ldp	x23, x24, [sp, 48]
12930	ldp	x25, x26, [sp, 64]
12931	ldp	x27, x28, [sp, 80]
12932	ldp	x29, x30, [sp], 224
12933	ret
12934.L1711:
12935	mov	w21, w1
12936	mov	x22, x2
12937	cmp	w0, 64
12938	bne	.L1743
12939	adrp	x20, .LANCHOR185
12940	mov	w0, 262144
12941	bl	ftl_malloc
12942	str	x0, [x20, #:lo12:.LANCHOR185]
12943	mov	w0, 262144
12944	bl	ftl_malloc
12945	mov	x1, x0
12946	adrp	x0, .LANCHOR186
12947	str	x1, [x0, #:lo12:.LANCHOR186]
12948	ldr	x0, [x20, #:lo12:.LANCHOR185]
12949	cbz	x0, .L1744
12950	cbz	x1, .L1744
12951	mov	w1, 1
12952	mov	w2, 262144
12953	str	w1, [x24, #:lo12:.LANCHOR184]
12954	mov	w1, 0
12955	bl	ftl_memset
12956.L1743:
12957	ldr	w0, [x24, #:lo12:.LANCHOR184]
12958	cbz	w0, .L1779
12959	adrp	x0, .LANCHOR185
12960	cmp	w19, 63
12961	ldr	x1, [x0, #:lo12:.LANCHOR185]
12962	bhi	.L1746
12963	mov	w0, 64
12964	sub	w19, w0, w19
12965	sub	w21, w21, w19
12966	ubfiz	x19, x19, 9, 25
12967	add	x22, x22, x19
12968	mov	x20, x1
12969.L1747:
12970	cmp	w25, 575
12971	bls	.L1748
12972	sub	w21, w21, w23
12973	sub	w21, w21, #446
12974.L1748:
12975	mov	w4, w21
12976	mov	x3, x20
12977	mov	w2, 262144
12978	adrp	x0, .LC116
12979	add	x0, x0, :lo12:.LC116
12980	bl	printf
12981	lsl	w2, w21, 9
12982	mov	x1, x22
12983	mov	x0, x20
12984	bl	ftl_memcpy
12985	b	.L1779
12986.L1744:
12987	adrp	x1, .LANCHOR187
12988	adrp	x0, .LC115
12989	add	x1, x1, :lo12:.LANCHOR187
12990	add	x0, x0, :lo12:.LC115
12991	bl	printf
12992	b	.L1743
12993.L1746:
12994	lsl	w20, w19, 7
12995	sub	w20, w20, #8192
12996	add	x20, x1, x20, lsl 2
12997	b	.L1747
12998	.size	FtlWriteToIDB, .-FtlWriteToIDB
12999	.section	.text.sftl_write,"ax",@progbits
13000	.align	2
13001	.global	sftl_write
13002	.type	sftl_write, %function
13003sftl_write:
13004	stp	x29, x30, [sp, -48]!
13005	add	x29, sp, 0
13006	stp	x19, x20, [sp, 16]
13007	mov	w20, w1
13008	mov	w19, w0
13009	str	x21, [sp, 32]
13010	mov	x21, x2
13011	bl	FtlWriteToIDB
13012	mov	x3, x21
13013	mov	w2, w20
13014	mov	w1, w19
13015	ldr	x21, [sp, 32]
13016	ldp	x19, x20, [sp, 16]
13017	mov	w0, 0
13018	ldp	x29, x30, [sp], 48
13019	b	FtlWrite
13020	.size	sftl_write, .-sftl_write
13021	.global	g_nand_ops
13022	.global	g_nand_phy_info
13023	.global	gc_ink_free_return_value
13024	.global	check_vpc_table
13025	.global	FtlUpdateVaildLpnCount
13026	.global	g_ect_tbl_power_up_flush
13027	.global	power_up_flag
13028	.global	gFtlInitStatus
13029	.global	DeviceCapacity
13030	.global	g_power_lost_recovery_flag
13031	.global	c_mlc_erase_count_value
13032	.global	g_recovery_ppa_tbl
13033	.global	g_recovery_page_min_ver
13034	.global	g_recovery_page_num
13035	.global	sftl_nand_check_spare_buf
13036	.global	sftl_temp_buf
13037	.global	sftl_nand_check_buf
13038	.global	g_cur_erase_blk
13039	.global	g_gc_skip_write_count
13040	.global	g_gc_head_data_block_count
13041	.global	g_gc_head_data_block
13042	.global	g_ftl_nand_free_count
13043	.global	g_in_swl_replace
13044	.global	g_in_gc_progress
13045	.global	g_max_erase_count
13046	.global	g_totle_sys_slc_erase_count
13047	.global	g_totle_slc_erase_count
13048	.global	g_min_erase_count
13049	.global	g_totle_avg_erase_count
13050	.global	g_totle_mlc_erase_count
13051	.global	g_totle_l2p_write_count
13052	.global	g_totle_cache_write_count
13053	.global	g_tmp_data_superblock_id
13054	.global	g_totle_read_page_count
13055	.global	g_totle_discard_page_count
13056	.global	g_totle_read_sector
13057	.global	g_totle_write_sector
13058	.global	g_totle_write_page_count
13059	.global	g_totle_gc_page_count
13060	.global	g_gc_blk_index
13061	.global	g_gc_merge_free_blk_threshold
13062	.global	g_gc_free_blk_threshold
13063	.global	g_gc_bad_block_temp_tbl
13064	.global	g_gc_bad_block_gc_index
13065	.global	g_gc_bad_block_temp_num
13066	.global	g_gc_next_blk_1
13067	.global	g_gc_next_blk
13068	.global	g_gc_cur_blk_max_valid_pages
13069	.global	g_gc_cur_blk_valid_pages
13070	.global	g_gc_page_offset
13071	.global	g_gc_blk_num
13072	.global	p_gc_blk_tbl
13073	.global	p_gc_page_info
13074	.global	g_sys_ext_data
13075	.global	g_sys_save_data
13076	.global	gp_last_act_superblock
13077	.global	g_gc_superblock
13078	.global	g_gc_temp_superblock
13079	.global	g_buffer_superblock
13080	.global	g_active_superblock
13081	.global	g_num_data_superblocks
13082	.global	g_num_free_superblocks
13083	.global	p_data_block_list_tail
13084	.global	p_data_block_list_head
13085	.global	p_free_data_block_list_head
13086	.global	p_data_block_list_table
13087	.global	g_l2p_last_update_region_id
13088	.global	p_l2p_map_buf
13089	.global	p_l2p_ram_map
13090	.global	g_totle_vendor_block
13091	.global	p_vendor_region_ppn_table
13092	.global	p_vendor_block_ver_table
13093	.global	p_vendor_block_valid_page_count
13094	.global	p_vendor_block_table
13095	.global	g_totle_map_block
13096	.global	p_map_region_ppn_table
13097	.global	p_map_block_ver_table
13098	.global	p_map_block_valid_page_count
13099	.global	p_map_block_table
13100	.global	p_blk_mode_table
13101	.global	p_valid_page_count_check_table
13102	.global	p_valid_page_count_table
13103	.global	g_totle_swl_count
13104	.global	p_swl_mul_table
13105	.global	p_erase_count_table
13106	.global	g_ect_tbl_info_size
13107	.global	gp_ect_tbl_info
13108	.global	g_gc_num_req
13109	.global	c_gc_page_buf_num
13110	.global	gp_gc_page_buf_info
13111	.global	p_gc_data_buf
13112	.global	p_gc_spare_buf
13113	.global	p_io_spare_buf
13114	.global	p_io_data_buf_1
13115	.global	p_io_data_buf_0
13116	.global	p_sys_spare_buf
13117	.global	p_vendor_data_buf
13118	.global	p_sys_data_buf_1
13119	.global	p_sys_data_buf
13120	.global	p_plane_order_table
13121	.global	req_gc_dst
13122	.global	req_gc
13123	.global	req_erase
13124	.global	req_prgm
13125	.global	req_read
13126	.global	req_sys
13127	.global	gVendorBlkInfo
13128	.global	gL2pMapInfo
13129	.global	gSysFreeQueue
13130	.global	gSysInfo
13131	.global	gBbtInfo
13132	.global	g_MaxLbn
13133	.global	g_VaildLpn
13134	.global	g_MaxLpn
13135	.global	g_MaxLbaSector
13136	.global	g_GlobalDataVersion
13137	.global	g_GlobalSysVersion
13138	.global	ftl_gc_temp_power_lost_recovery_flag
13139	.global	c_ftl_nand_max_data_blks
13140	.global	c_ftl_nand_data_op_blks_per_plane
13141	.global	c_ftl_nand_data_blks_per_plane
13142	.global	c_ftl_nand_max_sys_blks
13143	.global	c_ftl_nand_init_sys_blks_per_plane
13144	.global	c_ftl_nand_sys_blks_per_plane
13145	.global	c_ftl_vendor_part_size
13146	.global	c_ftl_nand_max_vendor_blks
13147	.global	c_ftl_nand_max_map_blks
13148	.global	c_ftl_nand_map_blks_per_plane
13149	.global	c_ftl_nand_vendor_region_num
13150	.global	c_ftl_nand_l2pmap_ram_region_num
13151	.global	c_ftl_nand_map_region_num
13152	.global	c_ftl_nand_totle_phy_blks
13153	.global	c_ftl_nand_reserved_blks
13154	.global	c_ftl_nand_byte_pre_oob
13155	.global	c_ftl_nand_byte_pre_page
13156	.global	c_ftl_nand_sec_pre_page_shift
13157	.global	c_ftl_nand_sec_pre_page
13158	.global	c_ftl_nand_page_pre_super_blk
13159	.global	c_ftl_nand_page_pre_slc_blk
13160	.global	c_ftl_nand_page_pre_blk
13161	.global	c_ftl_nand_bbm_buf_size
13162	.global	c_ftl_nand_ext_blk_pre_plane
13163	.global	c_ftl_nand_blk_pre_plane
13164	.global	c_ftl_nand_planes_num
13165	.global	c_ftl_nand_blks_per_die_shift
13166	.global	c_ftl_nand_blks_per_die
13167	.global	c_ftl_nand_planes_per_die
13168	.global	c_ftl_nand_die_num
13169	.global	c_ftl_nand_type
13170	.section	.bss.DeviceCapacity,"aw",@nobits
13171	.align	2
13172	.set	.LANCHOR26,. + 0
13173	.type	DeviceCapacity, %object
13174	.size	DeviceCapacity, 4
13175DeviceCapacity:
13176	.zero	4
13177	.section	.bss.FtlUpdateVaildLpnCount,"aw",@nobits
13178	.align	1
13179	.set	.LANCHOR58,. + 0
13180	.type	FtlUpdateVaildLpnCount, %object
13181	.size	FtlUpdateVaildLpnCount, 2
13182FtlUpdateVaildLpnCount:
13183	.zero	2
13184	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",@nobits
13185	.align	1
13186	.set	.LANCHOR137,. + 0
13187	.type	c_ftl_nand_bbm_buf_size, %object
13188	.size	c_ftl_nand_bbm_buf_size, 2
13189c_ftl_nand_bbm_buf_size:
13190	.zero	2
13191	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",@nobits
13192	.align	1
13193	.set	.LANCHOR6,. + 0
13194	.type	c_ftl_nand_blk_pre_plane, %object
13195	.size	c_ftl_nand_blk_pre_plane, 2
13196c_ftl_nand_blk_pre_plane:
13197	.zero	2
13198	.section	.bss.c_ftl_nand_blks_per_die,"aw",@nobits
13199	.align	1
13200	.set	.LANCHOR17,. + 0
13201	.type	c_ftl_nand_blks_per_die, %object
13202	.size	c_ftl_nand_blks_per_die, 2
13203c_ftl_nand_blks_per_die:
13204	.zero	2
13205	.section	.bss.c_ftl_nand_blks_per_die_shift,"aw",@nobits
13206	.align	1
13207	.set	.LANCHOR18,. + 0
13208	.type	c_ftl_nand_blks_per_die_shift, %object
13209	.size	c_ftl_nand_blks_per_die_shift, 2
13210c_ftl_nand_blks_per_die_shift:
13211	.zero	2
13212	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",@nobits
13213	.align	1
13214	.set	.LANCHOR24,. + 0
13215	.type	c_ftl_nand_byte_pre_oob, %object
13216	.size	c_ftl_nand_byte_pre_oob, 2
13217c_ftl_nand_byte_pre_oob:
13218	.zero	2
13219	.section	.bss.c_ftl_nand_byte_pre_page,"aw",@nobits
13220	.align	1
13221	.set	.LANCHOR23,. + 0
13222	.type	c_ftl_nand_byte_pre_page, %object
13223	.size	c_ftl_nand_byte_pre_page, 2
13224c_ftl_nand_byte_pre_page:
13225	.zero	2
13226	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits
13227	.align	1
13228	.set	.LANCHOR5,. + 0
13229	.type	c_ftl_nand_data_blks_per_plane, %object
13230	.size	c_ftl_nand_data_blks_per_plane, 2
13231c_ftl_nand_data_blks_per_plane:
13232	.zero	2
13233	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits
13234	.align	1
13235	.set	.LANCHOR78,. + 0
13236	.type	c_ftl_nand_data_op_blks_per_plane, %object
13237	.size	c_ftl_nand_data_op_blks_per_plane, 2
13238c_ftl_nand_data_op_blks_per_plane:
13239	.zero	2
13240	.section	.bss.c_ftl_nand_die_num,"aw",@nobits
13241	.align	1
13242	.set	.LANCHOR10,. + 0
13243	.type	c_ftl_nand_die_num, %object
13244	.size	c_ftl_nand_die_num, 2
13245c_ftl_nand_die_num:
13246	.zero	2
13247	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits
13248	.align	1
13249	.set	.LANCHOR15,. + 0
13250	.type	c_ftl_nand_ext_blk_pre_plane, %object
13251	.size	c_ftl_nand_ext_blk_pre_plane, 2
13252c_ftl_nand_ext_blk_pre_plane:
13253	.zero	2
13254	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits
13255	.align	2
13256	.set	.LANCHOR31,. + 0
13257	.type	c_ftl_nand_init_sys_blks_per_plane, %object
13258	.size	c_ftl_nand_init_sys_blks_per_plane, 4
13259c_ftl_nand_init_sys_blks_per_plane:
13260	.zero	4
13261	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits
13262	.align	1
13263	.set	.LANCHOR33,. + 0
13264	.type	c_ftl_nand_l2pmap_ram_region_num, %object
13265	.size	c_ftl_nand_l2pmap_ram_region_num, 2
13266c_ftl_nand_l2pmap_ram_region_num:
13267	.zero	2
13268	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits
13269	.align	1
13270	.set	.LANCHOR29,. + 0
13271	.type	c_ftl_nand_map_blks_per_plane, %object
13272	.size	c_ftl_nand_map_blks_per_plane, 2
13273c_ftl_nand_map_blks_per_plane:
13274	.zero	2
13275	.section	.bss.c_ftl_nand_map_region_num,"aw",@nobits
13276	.align	1
13277	.set	.LANCHOR32,. + 0
13278	.type	c_ftl_nand_map_region_num, %object
13279	.size	c_ftl_nand_map_region_num, 2
13280c_ftl_nand_map_region_num:
13281	.zero	2
13282	.section	.bss.c_ftl_nand_max_data_blks,"aw",@nobits
13283	.align	2
13284	.set	.LANCHOR7,. + 0
13285	.type	c_ftl_nand_max_data_blks, %object
13286	.size	c_ftl_nand_max_data_blks, 4
13287c_ftl_nand_max_data_blks:
13288	.zero	4
13289	.section	.bss.c_ftl_nand_max_map_blks,"aw",@nobits
13290	.align	2
13291	.set	.LANCHOR30,. + 0
13292	.type	c_ftl_nand_max_map_blks, %object
13293	.size	c_ftl_nand_max_map_blks, 4
13294c_ftl_nand_max_map_blks:
13295	.zero	4
13296	.section	.bss.c_ftl_nand_max_sys_blks,"aw",@nobits
13297	.align	2
13298	.set	.LANCHOR4,. + 0
13299	.type	c_ftl_nand_max_sys_blks, %object
13300	.size	c_ftl_nand_max_sys_blks, 4
13301c_ftl_nand_max_sys_blks:
13302	.zero	4
13303	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",@nobits
13304	.align	1
13305	.set	.LANCHOR27,. + 0
13306	.type	c_ftl_nand_max_vendor_blks, %object
13307	.size	c_ftl_nand_max_vendor_blks, 2
13308c_ftl_nand_max_vendor_blks:
13309	.zero	2
13310	.section	.bss.c_ftl_nand_page_pre_blk,"aw",@nobits
13311	.align	1
13312	.set	.LANCHOR19,. + 0
13313	.type	c_ftl_nand_page_pre_blk, %object
13314	.size	c_ftl_nand_page_pre_blk, 2
13315c_ftl_nand_page_pre_blk:
13316	.zero	2
13317	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits
13318	.align	1
13319	.set	.LANCHOR20,. + 0
13320	.type	c_ftl_nand_page_pre_slc_blk, %object
13321	.size	c_ftl_nand_page_pre_slc_blk, 2
13322c_ftl_nand_page_pre_slc_blk:
13323	.zero	2
13324	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits
13325	.align	1
13326	.set	.LANCHOR21,. + 0
13327	.type	c_ftl_nand_page_pre_super_blk, %object
13328	.size	c_ftl_nand_page_pre_super_blk, 2
13329c_ftl_nand_page_pre_super_blk:
13330	.zero	2
13331	.section	.bss.c_ftl_nand_planes_num,"aw",@nobits
13332	.align	1
13333	.set	.LANCHOR3,. + 0
13334	.type	c_ftl_nand_planes_num, %object
13335	.size	c_ftl_nand_planes_num, 2
13336c_ftl_nand_planes_num:
13337	.zero	2
13338	.section	.bss.c_ftl_nand_planes_per_die,"aw",@nobits
13339	.align	1
13340	.set	.LANCHOR11,. + 0
13341	.type	c_ftl_nand_planes_per_die, %object
13342	.size	c_ftl_nand_planes_per_die, 2
13343c_ftl_nand_planes_per_die:
13344	.zero	2
13345	.section	.bss.c_ftl_nand_reserved_blks,"aw",@nobits
13346	.align	1
13347	.set	.LANCHOR25,. + 0
13348	.type	c_ftl_nand_reserved_blks, %object
13349	.size	c_ftl_nand_reserved_blks, 2
13350c_ftl_nand_reserved_blks:
13351	.zero	2
13352	.section	.bss.c_ftl_nand_sec_pre_page,"aw",@nobits
13353	.align	1
13354	.set	.LANCHOR12,. + 0
13355	.type	c_ftl_nand_sec_pre_page, %object
13356	.size	c_ftl_nand_sec_pre_page, 2
13357c_ftl_nand_sec_pre_page:
13358	.zero	2
13359	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits
13360	.align	1
13361	.set	.LANCHOR22,. + 0
13362	.type	c_ftl_nand_sec_pre_page_shift, %object
13363	.size	c_ftl_nand_sec_pre_page_shift, 2
13364c_ftl_nand_sec_pre_page_shift:
13365	.zero	2
13366	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits
13367	.align	2
13368	.set	.LANCHOR2,. + 0
13369	.type	c_ftl_nand_sys_blks_per_plane, %object
13370	.size	c_ftl_nand_sys_blks_per_plane, 4
13371c_ftl_nand_sys_blks_per_plane:
13372	.zero	4
13373	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",@nobits
13374	.align	2
13375	.set	.LANCHOR8,. + 0
13376	.type	c_ftl_nand_totle_phy_blks, %object
13377	.size	c_ftl_nand_totle_phy_blks, 4
13378c_ftl_nand_totle_phy_blks:
13379	.zero	4
13380	.section	.bss.c_ftl_nand_type,"aw",@nobits
13381	.align	1
13382	.set	.LANCHOR9,. + 0
13383	.type	c_ftl_nand_type, %object
13384	.size	c_ftl_nand_type, 2
13385c_ftl_nand_type:
13386	.zero	2
13387	.section	.bss.c_ftl_nand_vendor_region_num,"aw",@nobits
13388	.align	1
13389	.set	.LANCHOR28,. + 0
13390	.type	c_ftl_nand_vendor_region_num, %object
13391	.size	c_ftl_nand_vendor_region_num, 2
13392c_ftl_nand_vendor_region_num:
13393	.zero	2
13394	.section	.bss.c_ftl_vendor_part_size,"aw",@nobits
13395	.align	1
13396	.set	.LANCHOR16,. + 0
13397	.type	c_ftl_vendor_part_size, %object
13398	.size	c_ftl_vendor_part_size, 2
13399c_ftl_vendor_part_size:
13400	.zero	2
13401	.section	.bss.c_gc_page_buf_num,"aw",@nobits
13402	.align	2
13403	.set	.LANCHOR94,. + 0
13404	.type	c_gc_page_buf_num, %object
13405	.size	c_gc_page_buf_num, 4
13406c_gc_page_buf_num:
13407	.zero	4
13408	.section	.bss.c_mlc_erase_count_value,"aw",@nobits
13409	.align	1
13410	.set	.LANCHOR14,. + 0
13411	.type	c_mlc_erase_count_value, %object
13412	.size	c_mlc_erase_count_value, 2
13413c_mlc_erase_count_value:
13414	.zero	2
13415	.section	.bss.check_vpc_table,"aw",@nobits
13416	.align	3
13417	.type	check_vpc_table, %object
13418	.size	check_vpc_table, 16384
13419check_vpc_table:
13420	.zero	16384
13421	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits
13422	.align	2
13423	.set	.LANCHOR144,. + 0
13424	.type	ftl_gc_temp_power_lost_recovery_flag, %object
13425	.size	ftl_gc_temp_power_lost_recovery_flag, 4
13426ftl_gc_temp_power_lost_recovery_flag:
13427	.zero	4
13428	.section	.bss.gBbtInfo,"aw",@nobits
13429	.align	3
13430	.set	.LANCHOR37,. + 0
13431	.type	gBbtInfo, %object
13432	.size	gBbtInfo, 96
13433gBbtInfo:
13434	.zero	96
13435	.section	.bss.gL2pMapInfo,"aw",@nobits
13436	.align	3
13437	.set	.LANCHOR140,. + 0
13438	.type	gL2pMapInfo, %object
13439	.size	gL2pMapInfo, 64
13440gL2pMapInfo:
13441	.zero	64
13442	.section	.bss.gSysFreeQueue,"aw",@nobits
13443	.align	3
13444	.set	.LANCHOR38,. + 0
13445	.type	gSysFreeQueue, %object
13446	.size	gSysFreeQueue, 2056
13447gSysFreeQueue:
13448	.zero	2056
13449	.section	.bss.gSysInfo,"aw",@nobits
13450	.align	3
13451	.set	.LANCHOR79,. + 0
13452	.type	gSysInfo, %object
13453	.size	gSysInfo, 12
13454gSysInfo:
13455	.zero	12
13456	.section	.bss.gVendorBlkInfo,"aw",@nobits
13457	.align	3
13458	.set	.LANCHOR158,. + 0
13459	.type	gVendorBlkInfo, %object
13460	.size	gVendorBlkInfo, 64
13461gVendorBlkInfo:
13462	.zero	64
13463	.section	.bss.g_GlobalDataVersion,"aw",@nobits
13464	.align	2
13465	.set	.LANCHOR71,. + 0
13466	.type	g_GlobalDataVersion, %object
13467	.size	g_GlobalDataVersion, 4
13468g_GlobalDataVersion:
13469	.zero	4
13470	.section	.bss.g_GlobalSysVersion,"aw",@nobits
13471	.align	2
13472	.set	.LANCHOR70,. + 0
13473	.type	g_GlobalSysVersion, %object
13474	.size	g_GlobalSysVersion, 4
13475g_GlobalSysVersion:
13476	.zero	4
13477	.section	.bss.g_MaxLbaSector,"aw",@nobits
13478	.align	2
13479	.set	.LANCHOR34,. + 0
13480	.type	g_MaxLbaSector, %object
13481	.size	g_MaxLbaSector, 4
13482g_MaxLbaSector:
13483	.zero	4
13484	.section	.bss.g_MaxLbn,"aw",@nobits
13485	.align	2
13486	.set	.LANCHOR152,. + 0
13487	.type	g_MaxLbn, %object
13488	.size	g_MaxLbn, 4
13489g_MaxLbn:
13490	.zero	4
13491	.section	.bss.g_MaxLpn,"aw",@nobits
13492	.align	2
13493	.set	.LANCHOR61,. + 0
13494	.type	g_MaxLpn, %object
13495	.size	g_MaxLpn, 4
13496g_MaxLpn:
13497	.zero	4
13498	.section	.bss.g_VaildLpn,"aw",@nobits
13499	.align	2
13500	.set	.LANCHOR59,. + 0
13501	.type	g_VaildLpn, %object
13502	.size	g_VaildLpn, 4
13503g_VaildLpn:
13504	.zero	4
13505	.section	.bss.g_active_superblock,"aw",@nobits
13506	.align	3
13507	.set	.LANCHOR51,. + 0
13508	.type	g_active_superblock, %object
13509	.size	g_active_superblock, 48
13510g_active_superblock:
13511	.zero	48
13512	.section	.bss.g_buffer_superblock,"aw",@nobits
13513	.align	3
13514	.set	.LANCHOR52,. + 0
13515	.type	g_buffer_superblock, %object
13516	.size	g_buffer_superblock, 48
13517g_buffer_superblock:
13518	.zero	48
13519	.section	.bss.g_cur_erase_blk,"aw",@nobits
13520	.align	2
13521	.set	.LANCHOR111,. + 0
13522	.type	g_cur_erase_blk, %object
13523	.size	g_cur_erase_blk, 4
13524g_cur_erase_blk:
13525	.zero	4
13526	.section	.bss.g_ect_tbl_info_size,"aw",@nobits
13527	.align	1
13528	.set	.LANCHOR125,. + 0
13529	.type	g_ect_tbl_info_size, %object
13530	.size	g_ect_tbl_info_size, 2
13531g_ect_tbl_info_size:
13532	.zero	2
13533	.section	.bss.g_ect_tbl_power_up_flush,"aw",@nobits
13534	.align	1
13535	.set	.LANCHOR170,. + 0
13536	.type	g_ect_tbl_power_up_flush, %object
13537	.size	g_ect_tbl_power_up_flush, 2
13538g_ect_tbl_power_up_flush:
13539	.zero	2
13540	.section	.bss.g_ftl_nand_free_count,"aw",@nobits
13541	.align	2
13542	.set	.LANCHOR181,. + 0
13543	.type	g_ftl_nand_free_count, %object
13544	.size	g_ftl_nand_free_count, 4
13545g_ftl_nand_free_count:
13546	.zero	4
13547	.section	.bss.g_gc_bad_block_gc_index,"aw",@nobits
13548	.align	1
13549	.set	.LANCHOR103,. + 0
13550	.type	g_gc_bad_block_gc_index, %object
13551	.size	g_gc_bad_block_gc_index, 2
13552g_gc_bad_block_gc_index:
13553	.zero	2
13554	.section	.bss.g_gc_bad_block_temp_num,"aw",@nobits
13555	.align	1
13556	.set	.LANCHOR101,. + 0
13557	.type	g_gc_bad_block_temp_num, %object
13558	.size	g_gc_bad_block_temp_num, 2
13559g_gc_bad_block_temp_num:
13560	.zero	2
13561	.section	.bss.g_gc_bad_block_temp_tbl,"aw",@nobits
13562	.align	3
13563	.set	.LANCHOR102,. + 0
13564	.type	g_gc_bad_block_temp_tbl, %object
13565	.size	g_gc_bad_block_temp_tbl, 34
13566g_gc_bad_block_temp_tbl:
13567	.zero	34
13568	.section	.bss.g_gc_blk_index,"aw",@nobits
13569	.align	1
13570	.set	.LANCHOR85,. + 0
13571	.type	g_gc_blk_index, %object
13572	.size	g_gc_blk_index, 2
13573g_gc_blk_index:
13574	.zero	2
13575	.section	.bss.g_gc_blk_num,"aw",@nobits
13576	.align	1
13577	.set	.LANCHOR95,. + 0
13578	.type	g_gc_blk_num, %object
13579	.size	g_gc_blk_num, 2
13580g_gc_blk_num:
13581	.zero	2
13582	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits
13583	.align	1
13584	.set	.LANCHOR179,. + 0
13585	.type	g_gc_cur_blk_max_valid_pages, %object
13586	.size	g_gc_cur_blk_max_valid_pages, 2
13587g_gc_cur_blk_max_valid_pages:
13588	.zero	2
13589	.section	.bss.g_gc_cur_blk_valid_pages,"aw",@nobits
13590	.align	1
13591	.set	.LANCHOR178,. + 0
13592	.type	g_gc_cur_blk_valid_pages, %object
13593	.size	g_gc_cur_blk_valid_pages, 2
13594g_gc_cur_blk_valid_pages:
13595	.zero	2
13596	.section	.bss.g_gc_free_blk_threshold,"aw",@nobits
13597	.align	1
13598	.set	.LANCHOR82,. + 0
13599	.type	g_gc_free_blk_threshold, %object
13600	.size	g_gc_free_blk_threshold, 2
13601g_gc_free_blk_threshold:
13602	.zero	2
13603	.section	.bss.g_gc_head_data_block,"aw",@nobits
13604	.align	2
13605	.set	.LANCHOR109,. + 0
13606	.type	g_gc_head_data_block, %object
13607	.size	g_gc_head_data_block, 4
13608g_gc_head_data_block:
13609	.zero	4
13610	.section	.bss.g_gc_head_data_block_count,"aw",@nobits
13611	.align	2
13612	.set	.LANCHOR110,. + 0
13613	.type	g_gc_head_data_block_count, %object
13614	.size	g_gc_head_data_block_count, 4
13615g_gc_head_data_block_count:
13616	.zero	4
13617	.section	.bss.g_gc_merge_free_blk_threshold,"aw",@nobits
13618	.align	1
13619	.set	.LANCHOR83,. + 0
13620	.type	g_gc_merge_free_blk_threshold, %object
13621	.size	g_gc_merge_free_blk_threshold, 2
13622g_gc_merge_free_blk_threshold:
13623	.zero	2
13624	.section	.bss.g_gc_next_blk,"aw",@nobits
13625	.align	1
13626	.set	.LANCHOR99,. + 0
13627	.type	g_gc_next_blk, %object
13628	.size	g_gc_next_blk, 2
13629g_gc_next_blk:
13630	.zero	2
13631	.section	.bss.g_gc_next_blk_1,"aw",@nobits
13632	.align	1
13633	.set	.LANCHOR100,. + 0
13634	.type	g_gc_next_blk_1, %object
13635	.size	g_gc_next_blk_1, 2
13636g_gc_next_blk_1:
13637	.zero	2
13638	.section	.bss.g_gc_num_req,"aw",@nobits
13639	.align	2
13640	.set	.LANCHOR89,. + 0
13641	.type	g_gc_num_req, %object
13642	.size	g_gc_num_req, 4
13643g_gc_num_req:
13644	.zero	4
13645	.section	.bss.g_gc_page_offset,"aw",@nobits
13646	.align	1
13647	.set	.LANCHOR97,. + 0
13648	.type	g_gc_page_offset, %object
13649	.size	g_gc_page_offset, 2
13650g_gc_page_offset:
13651	.zero	2
13652	.section	.bss.g_gc_skip_write_count,"aw",@nobits
13653	.align	2
13654	.set	.LANCHOR84,. + 0
13655	.type	g_gc_skip_write_count, %object
13656	.size	g_gc_skip_write_count, 4
13657g_gc_skip_write_count:
13658	.zero	4
13659	.section	.bss.g_gc_superblock,"aw",@nobits
13660	.align	3
13661	.set	.LANCHOR80,. + 0
13662	.type	g_gc_superblock, %object
13663	.size	g_gc_superblock, 48
13664g_gc_superblock:
13665	.zero	48
13666	.section	.bss.g_gc_temp_superblock,"aw",@nobits
13667	.align	3
13668	.set	.LANCHOR53,. + 0
13669	.type	g_gc_temp_superblock, %object
13670	.size	g_gc_temp_superblock, 48
13671g_gc_temp_superblock:
13672	.zero	48
13673	.section	.bss.g_in_gc_progress,"aw",@nobits
13674	.align	2
13675	.set	.LANCHOR108,. + 0
13676	.type	g_in_gc_progress, %object
13677	.size	g_in_gc_progress, 4
13678g_in_gc_progress:
13679	.zero	4
13680	.section	.bss.g_in_swl_replace,"aw",@nobits
13681	.align	2
13682	.set	.LANCHOR87,. + 0
13683	.type	g_in_swl_replace, %object
13684	.size	g_in_swl_replace, 4
13685g_in_swl_replace:
13686	.zero	4
13687	.section	.bss.g_l2p_last_update_region_id,"aw",@nobits
13688	.align	1
13689	.set	.LANCHOR56,. + 0
13690	.type	g_l2p_last_update_region_id, %object
13691	.size	g_l2p_last_update_region_id, 2
13692g_l2p_last_update_region_id:
13693	.zero	2
13694	.section	.bss.g_max_erase_count,"aw",@nobits
13695	.align	2
13696	.set	.LANCHOR76,. + 0
13697	.type	g_max_erase_count, %object
13698	.size	g_max_erase_count, 4
13699g_max_erase_count:
13700	.zero	4
13701	.section	.bss.g_min_erase_count,"aw",@nobits
13702	.align	2
13703	.set	.LANCHOR77,. + 0
13704	.type	g_min_erase_count, %object
13705	.size	g_min_erase_count, 4
13706g_min_erase_count:
13707	.zero	4
13708	.section	.bss.g_nand_ops,"aw",@nobits
13709	.align	3
13710	.set	.LANCHOR105,. + 0
13711	.type	g_nand_ops, %object
13712	.size	g_nand_ops, 48
13713g_nand_ops:
13714	.zero	48
13715	.section	.bss.g_nand_phy_info,"aw",@nobits
13716	.align	3
13717	.set	.LANCHOR0,. + 0
13718	.type	g_nand_phy_info, %object
13719	.size	g_nand_phy_info, 24
13720g_nand_phy_info:
13721	.zero	24
13722	.section	.bss.g_num_data_superblocks,"aw",@nobits
13723	.align	1
13724	.set	.LANCHOR45,. + 0
13725	.type	g_num_data_superblocks, %object
13726	.size	g_num_data_superblocks, 2
13727g_num_data_superblocks:
13728	.zero	2
13729	.section	.bss.g_num_free_superblocks,"aw",@nobits
13730	.align	1
13731	.set	.LANCHOR48,. + 0
13732	.type	g_num_free_superblocks, %object
13733	.size	g_num_free_superblocks, 2
13734g_num_free_superblocks:
13735	.zero	2
13736	.section	.bss.g_power_lost_recovery_flag,"aw",@nobits
13737	.align	1
13738	.set	.LANCHOR167,. + 0
13739	.type	g_power_lost_recovery_flag, %object
13740	.size	g_power_lost_recovery_flag, 2
13741g_power_lost_recovery_flag:
13742	.zero	2
13743	.section	.bss.g_recovery_page_min_ver,"aw",@nobits
13744	.align	2
13745	.set	.LANCHOR145,. + 0
13746	.type	g_recovery_page_min_ver, %object
13747	.size	g_recovery_page_min_ver, 4
13748g_recovery_page_min_ver:
13749	.zero	4
13750	.section	.bss.g_recovery_page_num,"aw",@nobits
13751	.align	2
13752	.set	.LANCHOR168,. + 0
13753	.type	g_recovery_page_num, %object
13754	.size	g_recovery_page_num, 4
13755g_recovery_page_num:
13756	.zero	4
13757	.section	.bss.g_recovery_ppa_tbl,"aw",@nobits
13758	.align	3
13759	.set	.LANCHOR169,. + 0
13760	.type	g_recovery_ppa_tbl, %object
13761	.size	g_recovery_ppa_tbl, 128
13762g_recovery_ppa_tbl:
13763	.zero	128
13764	.section	.bss.g_sys_ext_data,"aw",@nobits
13765	.align	3
13766	.set	.LANCHOR81,. + 0
13767	.type	g_sys_ext_data, %object
13768	.size	g_sys_ext_data, 512
13769g_sys_ext_data:
13770	.zero	512
13771	.section	.bss.g_sys_save_data,"aw",@nobits
13772	.align	3
13773	.set	.LANCHOR39,. + 0
13774	.type	g_sys_save_data, %object
13775	.size	g_sys_save_data, 48
13776g_sys_save_data:
13777	.zero	48
13778	.section	.bss.g_tmp_data_superblock_id,"aw",@nobits
13779	.align	1
13780	.set	.LANCHOR142,. + 0
13781	.type	g_tmp_data_superblock_id, %object
13782	.size	g_tmp_data_superblock_id, 2
13783g_tmp_data_superblock_id:
13784	.zero	2
13785	.section	.bss.g_totle_avg_erase_count,"aw",@nobits
13786	.align	2
13787	.set	.LANCHOR74,. + 0
13788	.type	g_totle_avg_erase_count, %object
13789	.size	g_totle_avg_erase_count, 4
13790g_totle_avg_erase_count:
13791	.zero	4
13792	.section	.bss.g_totle_cache_write_count,"aw",@nobits
13793	.align	2
13794	.set	.LANCHOR65,. + 0
13795	.type	g_totle_cache_write_count, %object
13796	.size	g_totle_cache_write_count, 4
13797g_totle_cache_write_count:
13798	.zero	4
13799	.section	.bss.g_totle_discard_page_count,"aw",@nobits
13800	.align	2
13801	.set	.LANCHOR63,. + 0
13802	.type	g_totle_discard_page_count, %object
13803	.size	g_totle_discard_page_count, 4
13804g_totle_discard_page_count:
13805	.zero	4
13806	.section	.bss.g_totle_gc_page_count,"aw",@nobits
13807	.align	2
13808	.set	.LANCHOR67,. + 0
13809	.type	g_totle_gc_page_count, %object
13810	.size	g_totle_gc_page_count, 4
13811g_totle_gc_page_count:
13812	.zero	4
13813	.section	.bss.g_totle_l2p_write_count,"aw",@nobits
13814	.align	2
13815	.set	.LANCHOR66,. + 0
13816	.type	g_totle_l2p_write_count, %object
13817	.size	g_totle_l2p_write_count, 4
13818g_totle_l2p_write_count:
13819	.zero	4
13820	.section	.bss.g_totle_map_block,"aw",@nobits
13821	.align	1
13822	.set	.LANCHOR141,. + 0
13823	.type	g_totle_map_block, %object
13824	.size	g_totle_map_block, 2
13825g_totle_map_block:
13826	.zero	2
13827	.section	.bss.g_totle_mlc_erase_count,"aw",@nobits
13828	.align	2
13829	.set	.LANCHOR72,. + 0
13830	.type	g_totle_mlc_erase_count, %object
13831	.size	g_totle_mlc_erase_count, 4
13832g_totle_mlc_erase_count:
13833	.zero	4
13834	.section	.bss.g_totle_read_page_count,"aw",@nobits
13835	.align	2
13836	.set	.LANCHOR62,. + 0
13837	.type	g_totle_read_page_count, %object
13838	.size	g_totle_read_page_count, 4
13839g_totle_read_page_count:
13840	.zero	4
13841	.section	.bss.g_totle_read_sector,"aw",@nobits
13842	.align	2
13843	.set	.LANCHOR69,. + 0
13844	.type	g_totle_read_sector, %object
13845	.size	g_totle_read_sector, 4
13846g_totle_read_sector:
13847	.zero	4
13848	.section	.bss.g_totle_slc_erase_count,"aw",@nobits
13849	.align	2
13850	.set	.LANCHOR73,. + 0
13851	.type	g_totle_slc_erase_count, %object
13852	.size	g_totle_slc_erase_count, 4
13853g_totle_slc_erase_count:
13854	.zero	4
13855	.section	.bss.g_totle_swl_count,"aw",@nobits
13856	.align	2
13857	.set	.LANCHOR143,. + 0
13858	.type	g_totle_swl_count, %object
13859	.size	g_totle_swl_count, 4
13860g_totle_swl_count:
13861	.zero	4
13862	.section	.bss.g_totle_sys_slc_erase_count,"aw",@nobits
13863	.align	2
13864	.set	.LANCHOR75,. + 0
13865	.type	g_totle_sys_slc_erase_count, %object
13866	.size	g_totle_sys_slc_erase_count, 4
13867g_totle_sys_slc_erase_count:
13868	.zero	4
13869	.section	.bss.g_totle_vendor_block,"aw",@nobits
13870	.align	1
13871	.set	.LANCHOR35,. + 0
13872	.type	g_totle_vendor_block, %object
13873	.size	g_totle_vendor_block, 2
13874g_totle_vendor_block:
13875	.zero	2
13876	.section	.bss.g_totle_write_page_count,"aw",@nobits
13877	.align	2
13878	.set	.LANCHOR64,. + 0
13879	.type	g_totle_write_page_count, %object
13880	.size	g_totle_write_page_count, 4
13881g_totle_write_page_count:
13882	.zero	4
13883	.section	.bss.g_totle_write_sector,"aw",@nobits
13884	.align	2
13885	.set	.LANCHOR68,. + 0
13886	.type	g_totle_write_sector, %object
13887	.size	g_totle_write_sector, 4
13888g_totle_write_sector:
13889	.zero	4
13890	.section	.bss.gc_discard_updated,"aw",@nobits
13891	.align	2
13892	.set	.LANCHOR172,. + 0
13893	.type	gc_discard_updated, %object
13894	.size	gc_discard_updated, 4
13895gc_discard_updated:
13896	.zero	4
13897	.section	.bss.gc_ink_free_return_value,"aw",@nobits
13898	.align	1
13899	.set	.LANCHOR177,. + 0
13900	.type	gc_ink_free_return_value, %object
13901	.size	gc_ink_free_return_value, 2
13902gc_ink_free_return_value:
13903	.zero	2
13904	.section	.bss.gp_ect_tbl_info,"aw",@nobits
13905	.align	3
13906	.set	.LANCHOR127,. + 0
13907	.type	gp_ect_tbl_info, %object
13908	.size	gp_ect_tbl_info, 8
13909gp_ect_tbl_info:
13910	.zero	8
13911	.section	.bss.gp_flash_check_buf,"aw",@nobits
13912	.align	3
13913	.set	.LANCHOR186,. + 0
13914	.type	gp_flash_check_buf, %object
13915	.size	gp_flash_check_buf, 8
13916gp_flash_check_buf:
13917	.zero	8
13918	.section	.bss.gp_gc_page_buf_info,"aw",@nobits
13919	.align	3
13920	.set	.LANCHOR90,. + 0
13921	.type	gp_gc_page_buf_info, %object
13922	.size	gp_gc_page_buf_info, 8
13923gp_gc_page_buf_info:
13924	.zero	8
13925	.section	.bss.gp_last_act_superblock,"aw",@nobits
13926	.align	3
13927	.type	gp_last_act_superblock, %object
13928	.size	gp_last_act_superblock, 8
13929gp_last_act_superblock:
13930	.zero	8
13931	.section	.bss.idb_buf,"aw",@nobits
13932	.align	3
13933	.set	.LANCHOR185,. + 0
13934	.type	idb_buf, %object
13935	.size	idb_buf, 8
13936idb_buf:
13937	.zero	8
13938	.section	.bss.idb_need_write_back,"aw",@nobits
13939	.align	2
13940	.set	.LANCHOR184,. + 0
13941	.type	idb_need_write_back, %object
13942	.size	idb_need_write_back, 4
13943idb_need_write_back:
13944	.zero	4
13945	.section	.bss.p_blk_mode_table,"aw",@nobits
13946	.align	3
13947	.set	.LANCHOR1,. + 0
13948	.type	p_blk_mode_table, %object
13949	.size	p_blk_mode_table, 8
13950p_blk_mode_table:
13951	.zero	8
13952	.section	.bss.p_data_block_list_head,"aw",@nobits
13953	.align	3
13954	.set	.LANCHOR41,. + 0
13955	.type	p_data_block_list_head, %object
13956	.size	p_data_block_list_head, 8
13957p_data_block_list_head:
13958	.zero	8
13959	.section	.bss.p_data_block_list_table,"aw",@nobits
13960	.align	3
13961	.set	.LANCHOR40,. + 0
13962	.type	p_data_block_list_table, %object
13963	.size	p_data_block_list_table, 8
13964p_data_block_list_table:
13965	.zero	8
13966	.section	.bss.p_data_block_list_tail,"aw",@nobits
13967	.align	3
13968	.set	.LANCHOR44,. + 0
13969	.type	p_data_block_list_tail, %object
13970	.size	p_data_block_list_tail, 8
13971p_data_block_list_tail:
13972	.zero	8
13973	.section	.bss.p_erase_count_table,"aw",@nobits
13974	.align	3
13975	.set	.LANCHOR43,. + 0
13976	.type	p_erase_count_table, %object
13977	.size	p_erase_count_table, 8
13978p_erase_count_table:
13979	.zero	8
13980	.section	.bss.p_free_data_block_list_head,"aw",@nobits
13981	.align	3
13982	.set	.LANCHOR47,. + 0
13983	.type	p_free_data_block_list_head, %object
13984	.size	p_free_data_block_list_head, 8
13985p_free_data_block_list_head:
13986	.zero	8
13987	.section	.bss.p_gc_blk_tbl,"aw",@nobits
13988	.align	3
13989	.set	.LANCHOR96,. + 0
13990	.type	p_gc_blk_tbl, %object
13991	.size	p_gc_blk_tbl, 8
13992p_gc_blk_tbl:
13993	.zero	8
13994	.section	.bss.p_gc_data_buf,"aw",@nobits
13995	.align	3
13996	.set	.LANCHOR91,. + 0
13997	.type	p_gc_data_buf, %object
13998	.size	p_gc_data_buf, 8
13999p_gc_data_buf:
14000	.zero	8
14001	.section	.bss.p_gc_page_info,"aw",@nobits
14002	.align	3
14003	.set	.LANCHOR98,. + 0
14004	.type	p_gc_page_info, %object
14005	.size	p_gc_page_info, 8
14006p_gc_page_info:
14007	.zero	8
14008	.section	.bss.p_gc_spare_buf,"aw",@nobits
14009	.align	3
14010	.set	.LANCHOR92,. + 0
14011	.type	p_gc_spare_buf, %object
14012	.size	p_gc_spare_buf, 8
14013p_gc_spare_buf:
14014	.zero	8
14015	.section	.bss.p_io_data_buf_0,"aw",@nobits
14016	.align	3
14017	.set	.LANCHOR118,. + 0
14018	.type	p_io_data_buf_0, %object
14019	.size	p_io_data_buf_0, 8
14020p_io_data_buf_0:
14021	.zero	8
14022	.section	.bss.p_io_data_buf_1,"aw",@nobits
14023	.align	3
14024	.set	.LANCHOR119,. + 0
14025	.type	p_io_data_buf_1, %object
14026	.size	p_io_data_buf_1, 8
14027p_io_data_buf_1:
14028	.zero	8
14029	.section	.bss.p_io_spare_buf,"aw",@nobits
14030	.align	3
14031	.set	.LANCHOR124,. + 0
14032	.type	p_io_spare_buf, %object
14033	.size	p_io_spare_buf, 8
14034p_io_spare_buf:
14035	.zero	8
14036	.section	.bss.p_l2p_map_buf,"aw",@nobits
14037	.align	3
14038	.set	.LANCHOR136,. + 0
14039	.type	p_l2p_map_buf, %object
14040	.size	p_l2p_map_buf, 8
14041p_l2p_map_buf:
14042	.zero	8
14043	.section	.bss.p_l2p_ram_map,"aw",@nobits
14044	.align	3
14045	.set	.LANCHOR55,. + 0
14046	.type	p_l2p_ram_map, %object
14047	.size	p_l2p_ram_map, 8
14048p_l2p_ram_map:
14049	.zero	8
14050	.section	.bss.p_map_block_table,"aw",@nobits
14051	.align	3
14052	.set	.LANCHOR129,. + 0
14053	.type	p_map_block_table, %object
14054	.size	p_map_block_table, 8
14055p_map_block_table:
14056	.zero	8
14057	.section	.bss.p_map_block_valid_page_count,"aw",@nobits
14058	.align	3
14059	.set	.LANCHOR130,. + 0
14060	.type	p_map_block_valid_page_count, %object
14061	.size	p_map_block_valid_page_count, 8
14062p_map_block_valid_page_count:
14063	.zero	8
14064	.section	.bss.p_map_block_ver_table,"aw",@nobits
14065	.align	3
14066	.set	.LANCHOR135,. + 0
14067	.type	p_map_block_ver_table, %object
14068	.size	p_map_block_ver_table, 8
14069p_map_block_ver_table:
14070	.zero	8
14071	.section	.bss.p_map_region_ppn_table,"aw",@nobits
14072	.align	3
14073	.set	.LANCHOR134,. + 0
14074	.type	p_map_region_ppn_table, %object
14075	.size	p_map_region_ppn_table, 8
14076p_map_region_ppn_table:
14077	.zero	8
14078	.section	.bss.p_plane_order_table,"aw",@nobits
14079	.align	3
14080	.set	.LANCHOR13,. + 0
14081	.type	p_plane_order_table, %object
14082	.size	p_plane_order_table, 32
14083p_plane_order_table:
14084	.zero	32
14085	.section	.bss.p_swl_mul_table,"aw",@nobits
14086	.align	3
14087	.set	.LANCHOR126,. + 0
14088	.type	p_swl_mul_table, %object
14089	.size	p_swl_mul_table, 8
14090p_swl_mul_table:
14091	.zero	8
14092	.section	.bss.p_sys_data_buf,"aw",@nobits
14093	.align	3
14094	.set	.LANCHOR115,. + 0
14095	.type	p_sys_data_buf, %object
14096	.size	p_sys_data_buf, 8
14097p_sys_data_buf:
14098	.zero	8
14099	.section	.bss.p_sys_data_buf_1,"aw",@nobits
14100	.align	3
14101	.set	.LANCHOR116,. + 0
14102	.type	p_sys_data_buf_1, %object
14103	.size	p_sys_data_buf_1, 8
14104p_sys_data_buf_1:
14105	.zero	8
14106	.section	.bss.p_sys_spare_buf,"aw",@nobits
14107	.align	3
14108	.set	.LANCHOR123,. + 0
14109	.type	p_sys_spare_buf, %object
14110	.size	p_sys_spare_buf, 8
14111p_sys_spare_buf:
14112	.zero	8
14113	.section	.bss.p_valid_page_count_check_table,"aw",@nobits
14114	.align	3
14115	.set	.LANCHOR128,. + 0
14116	.type	p_valid_page_count_check_table, %object
14117	.size	p_valid_page_count_check_table, 8
14118p_valid_page_count_check_table:
14119	.zero	8
14120	.section	.bss.p_valid_page_count_table,"aw",@nobits
14121	.align	3
14122	.set	.LANCHOR42,. + 0
14123	.type	p_valid_page_count_table, %object
14124	.size	p_valid_page_count_table, 8
14125p_valid_page_count_table:
14126	.zero	8
14127	.section	.bss.p_vendor_block_table,"aw",@nobits
14128	.align	3
14129	.set	.LANCHOR36,. + 0
14130	.type	p_vendor_block_table, %object
14131	.size	p_vendor_block_table, 8
14132p_vendor_block_table:
14133	.zero	8
14134	.section	.bss.p_vendor_block_valid_page_count,"aw",@nobits
14135	.align	3
14136	.set	.LANCHOR131,. + 0
14137	.type	p_vendor_block_valid_page_count, %object
14138	.size	p_vendor_block_valid_page_count, 8
14139p_vendor_block_valid_page_count:
14140	.zero	8
14141	.section	.bss.p_vendor_block_ver_table,"aw",@nobits
14142	.align	3
14143	.set	.LANCHOR132,. + 0
14144	.type	p_vendor_block_ver_table, %object
14145	.size	p_vendor_block_ver_table, 8
14146p_vendor_block_ver_table:
14147	.zero	8
14148	.section	.bss.p_vendor_data_buf,"aw",@nobits
14149	.align	3
14150	.set	.LANCHOR117,. + 0
14151	.type	p_vendor_data_buf, %object
14152	.size	p_vendor_data_buf, 8
14153p_vendor_data_buf:
14154	.zero	8
14155	.section	.bss.p_vendor_region_ppn_table,"aw",@nobits
14156	.align	3
14157	.set	.LANCHOR133,. + 0
14158	.type	p_vendor_region_ppn_table, %object
14159	.size	p_vendor_region_ppn_table, 8
14160p_vendor_region_ppn_table:
14161	.zero	8
14162	.section	.bss.req_erase,"aw",@nobits
14163	.align	3
14164	.set	.LANCHOR106,. + 0
14165	.type	req_erase, %object
14166	.size	req_erase, 8
14167req_erase:
14168	.zero	8
14169	.section	.bss.req_gc,"aw",@nobits
14170	.align	3
14171	.set	.LANCHOR93,. + 0
14172	.type	req_gc, %object
14173	.size	req_gc, 8
14174req_gc:
14175	.zero	8
14176	.section	.bss.req_gc_dst,"aw",@nobits
14177	.align	3
14178	.set	.LANCHOR113,. + 0
14179	.type	req_gc_dst, %object
14180	.size	req_gc_dst, 8
14181req_gc_dst:
14182	.zero	8
14183	.section	.bss.req_prgm,"aw",@nobits
14184	.align	3
14185	.set	.LANCHOR114,. + 0
14186	.type	req_prgm, %object
14187	.size	req_prgm, 8
14188req_prgm:
14189	.zero	8
14190	.section	.bss.req_read,"aw",@nobits
14191	.align	3
14192	.set	.LANCHOR112,. + 0
14193	.type	req_read, %object
14194	.size	req_read, 8
14195req_read:
14196	.zero	8
14197	.section	.bss.req_sys,"aw",@nobits
14198	.align	3
14199	.set	.LANCHOR148,. + 0
14200	.type	req_sys, %object
14201	.size	req_sys, 32
14202req_sys:
14203	.zero	32
14204	.section	.bss.sftl_nand_check_buf,"aw",@nobits
14205	.align	3
14206	.set	.LANCHOR120,. + 0
14207	.type	sftl_nand_check_buf, %object
14208	.size	sftl_nand_check_buf, 8
14209sftl_nand_check_buf:
14210	.zero	8
14211	.section	.bss.sftl_nand_check_spare_buf,"aw",@nobits
14212	.align	3
14213	.set	.LANCHOR122,. + 0
14214	.type	sftl_nand_check_spare_buf, %object
14215	.size	sftl_nand_check_spare_buf, 8
14216sftl_nand_check_spare_buf:
14217	.zero	8
14218	.section	.bss.sftl_temp_buf,"aw",@nobits
14219	.align	3
14220	.set	.LANCHOR121,. + 0
14221	.type	sftl_temp_buf, %object
14222	.size	sftl_temp_buf, 8
14223sftl_temp_buf:
14224	.zero	8
14225	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits
14226	.align	1
14227	.set	.LANCHOR162,. + 0
14228	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
14229	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
14230ftl_gc_temp_block_bops_scan_page_addr:
14231	.hword	-1
14232	.section	.data.gFtlInitStatus,"aw",@progbits
14233	.align	2
14234	.set	.LANCHOR86,. + 0
14235	.type	gFtlInitStatus, %object
14236	.size	gFtlInitStatus, 4
14237gFtlInitStatus:
14238	.word	-1
14239	.section	.data.power_up_flag,"aw",@progbits
14240	.align	2
14241	.set	.LANCHOR182,. + 0
14242	.type	power_up_flag, %object
14243	.size	power_up_flag, 4
14244power_up_flag:
14245	.word	1
14246	.section	.rodata.FlashEraseBlocks.str1.1,"aMS",@progbits,1
14247.LC79:
14248	.string	"%s: addr: %x is in id block!!!!!!!!!!\n"
14249.LC80:
14250	.string	"not free: w: d:"
14251.LC81:
14252	.string	"not free: w: s:"
14253	.section	.rodata.FlashProgPages.str1.1,"aMS",@progbits,1
14254.LC85:
14255	.string	"prog read error: = %x\n"
14256.LC86:
14257	.string	"prog read s error: = %x %x %x\n"
14258.LC87:
14259	.string	"prog read d error: = %x %x %x\n"
14260	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1
14261.LC0:
14262	.string	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n"
14263	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1
14264.LC101:
14265	.string	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n"
14266.LC102:
14267	.string	"FtlBbmTblFlush error:%x\n"
14268.LC103:
14269	.string	"FtlBbmTblFlush error = %x error count = %d\n"
14270	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1
14271.LC82:
14272	.string	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\n"
14273	.section	.rodata.FtlGcFreeBadSuperBlk.str1.1,"aMS",@progbits,1
14274.LC104:
14275	.string	"FtlGcFreeBadSuperBlk 0x%x\n"
14276	.section	.rodata.FtlGcMarkBadPhyBlk.str1.1,"aMS",@progbits,1
14277.LC74:
14278	.string	"FtlGcMarkBadPhyBlk %d 0x%x\n"
14279	.section	.rodata.FtlGcRefreshBlock.str1.1,"aMS",@progbits,1
14280.LC73:
14281	.string	"FtlGcRefreshBlock  0x%x\n"
14282	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1
14283.LC100:
14284	.string	"FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
14285	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1
14286.LC108:
14287	.string	"no ect"
14288	.section	.rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1
14289.LC88:
14290	.string	"FtlMapWritePage error = %x \n"
14291.LC89:
14292	.string	"FtlMapWritePage error = %x error count = %d\n"
14293	.section	.rodata.FtlMemInit.str1.1,"aMS",@progbits,1
14294.LC84:
14295	.string	"%s error allocating memory. return -1\n"
14296	.section	.rodata.FtlPrintInfo2buf.str1.1,"aMS",@progbits,1
14297.LC2:
14298	.string	"FLASH INFO:\n"
14299.LC3:
14300	.string	"Device Capacity: %d MB\n"
14301.LC4:
14302	.string	"FTL INFO:\n"
14303.LC5:
14304	.string	"g_MaxLpn = 0x%x\n"
14305.LC6:
14306	.string	"g_VaildLpn = 0x%x\n"
14307.LC7:
14308	.string	"read_page_count = 0x%x\n"
14309.LC8:
14310	.string	"discard_page_count = 0x%x\n"
14311.LC9:
14312	.string	"write_page_count = 0x%x\n"
14313.LC10:
14314	.string	"cache_write_count = 0x%x\n"
14315.LC11:
14316	.string	"l2p_write_count = 0x%x\n"
14317.LC12:
14318	.string	"gc_page_count = 0x%x\n"
14319.LC13:
14320	.string	"totle_write = %d MB\n"
14321.LC14:
14322	.string	"totle_read = %d MB\n"
14323.LC15:
14324	.string	"GSV = 0x%x\n"
14325.LC16:
14326	.string	"GDV = 0x%x\n"
14327.LC17:
14328	.string	"bad blk num = %d\n"
14329.LC18:
14330	.string	"free_superblocks = 0x%x\n"
14331.LC19:
14332	.string	"mlc_EC = 0x%x\n"
14333.LC20:
14334	.string	"slc_EC = 0x%x\n"
14335.LC21:
14336	.string	"avg_EC = 0x%x\n"
14337.LC22:
14338	.string	"sys_EC = 0x%x\n"
14339.LC23:
14340	.string	"max_EC = 0x%x\n"
14341.LC24:
14342	.string	"min_EC = 0x%x\n"
14343.LC25:
14344	.string	"PLT = 0x%x\n"
14345.LC26:
14346	.string	"POT = 0x%x\n"
14347.LC27:
14348	.string	"MaxSector = 0x%x\n"
14349.LC28:
14350	.string	"init_sys_blks_pp = 0x%x\n"
14351.LC29:
14352	.string	"sys_blks_pp = 0x%x\n"
14353.LC30:
14354	.string	"free sysblock = 0x%x\n"
14355.LC31:
14356	.string	"data_blks_pp = 0x%x\n"
14357.LC32:
14358	.string	"data_op_blks_pp = 0x%x\n"
14359.LC33:
14360	.string	"max_data_blks = 0x%x\n"
14361.LC34:
14362	.string	"Sys.id = 0x%x\n"
14363.LC35:
14364	.string	"Bbt.id = 0x%x\n"
14365.LC36:
14366	.string	"ACT.page = 0x%x\n"
14367.LC37:
14368	.string	"ACT.plane = 0x%x\n"
14369.LC38:
14370	.string	"ACT.id = 0x%x\n"
14371.LC39:
14372	.string	"ACT.mode = 0x%x\n"
14373.LC40:
14374	.string	"ACT.a_pages = 0x%x\n"
14375.LC41:
14376	.string	"ACT VPC = 0x%x\n"
14377.LC42:
14378	.string	"BUF.page = 0x%x\n"
14379.LC43:
14380	.string	"BUF.plane = 0x%x\n"
14381.LC44:
14382	.string	"BUF.id = 0x%x\n"
14383.LC45:
14384	.string	"BUF.mode = 0x%x\n"
14385.LC46:
14386	.string	"BUF.a_pages = 0x%x\n"
14387.LC47:
14388	.string	"BUF VPC = 0x%x\n"
14389.LC48:
14390	.string	"TMP.page = 0x%x\n"
14391.LC49:
14392	.string	"TMP.plane = 0x%x\n"
14393.LC50:
14394	.string	"TMP.id = 0x%x\n"
14395.LC51:
14396	.string	"TMP.mode = 0x%x\n"
14397.LC52:
14398	.string	"TMP.a_pages = 0x%x\n"
14399.LC53:
14400	.string	"GC.page = 0x%x\n"
14401.LC54:
14402	.string	"GC.plane = 0x%x\n"
14403.LC55:
14404	.string	"GC.id = 0x%x\n"
14405.LC56:
14406	.string	"GC.mode = 0x%x\n"
14407.LC57:
14408	.string	"GC.a_pages = 0x%x\n"
14409.LC58:
14410	.string	"WR_CHK = %x %x %x\n"
14411.LC59:
14412	.string	"Read Err Cnt = 0x%x\n"
14413.LC60:
14414	.string	"Prog Err Cnt = 0x%x\n"
14415.LC61:
14416	.string	"gc_free_blk_th= 0x%x\n"
14417.LC62:
14418	.string	"gc_merge_free_blk_th= 0x%x\n"
14419.LC63:
14420	.string	"gc_skip_write_count= 0x%x\n"
14421.LC64:
14422	.string	"gc_blk_index= 0x%x\n"
14423.LC65:
14424	.string	"free min EC= 0x%x\n"
14425.LC66:
14426	.string	"free max EC= 0x%x\n"
14427.LC67:
14428	.string	"GC__SB VPC = 0x%x\n"
14429.LC68:
14430	.string	"%d. [0x%x]=0x%x 0x%x  0x%x\n"
14431.LC69:
14432	.string	"free %d. [0x%x] 0x%x  0x%x\n"
14433	.section	.rodata.FtlProgPages.str1.1,"aMS",@progbits,1
14434.LC111:
14435	.string	"Ftlwrite decrement_vpc_count %x = %d\n"
14436	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1
14437.LC106:
14438	.string	"spuer block %x vpn is 0\n "
14439	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",@progbits,1
14440.LC107:
14441	.string	"FtlVendorPartRead refresh = %x phyAddr = %x\n"
14442	.section	.rodata.FtlVpcCheckAndModify.str1.1,"aMS",@progbits,1
14443.LC110:
14444	.string	"FtlCheckVpc %x = %x  %x\n"
14445	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1
14446.LC109:
14447	.string	"FtlVpcTblFlush error = %x error count = %d\n"
14448	.section	.rodata.FtlWrite.str1.1,"aMS",@progbits,1
14449.LC113:
14450	.string	"FtlWrite: lpa error:%x %x\n"
14451	.section	.rodata.FtlWriteToIDB.str1.1,"aMS",@progbits,1
14452.LC114:
14453	.string	"write_idblock fail! %x %x %x %x\n"
14454.LC115:
14455	.string	"%s idb buffer alloc fail\n"
14456.LC116:
14457	.string	"%p %x %p %x\n"
14458	.section	.rodata.GetSwlReplaceBlock.str1.1,"aMS",@progbits,1
14459.LC72:
14460	.string	"swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
14461	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1
14462.LC1:
14463	.string	"\n!!!!! error @ func:%s - line:%d\n"
14464	.section	.rodata.__func__.6148,"a",@progbits
14465	.align	3
14466	.set	.LANCHOR138,. + 0
14467	.type	__func__.6148, %object
14468	.size	__func__.6148, 11
14469__func__.6148:
14470	.string	"FtlMemInit"
14471	.section	.rodata.__func__.6272,"a",@progbits
14472	.align	3
14473	.set	.LANCHOR175,. + 0
14474	.type	__func__.6272, %object
14475	.size	__func__.6272, 13
14476__func__.6272:
14477	.string	"FtlProgPages"
14478	.section	.rodata.__func__.6300,"a",@progbits
14479	.align	3
14480	.set	.LANCHOR183,. + 0
14481	.type	__func__.6300, %object
14482	.size	__func__.6300, 9
14483__func__.6300:
14484	.string	"FtlWrite"
14485	.section	.rodata.__func__.6375,"a",@progbits
14486	.align	3
14487	.set	.LANCHOR139,. + 0
14488	.type	__func__.6375, %object
14489	.size	__func__.6375, 14
14490__func__.6375:
14491	.string	"FtlBbt2Bitmap"
14492	.section	.rodata.__func__.6418,"a",@progbits
14493	.align	3
14494	.set	.LANCHOR150,. + 0
14495	.type	__func__.6418, %object
14496	.size	__func__.6418, 11
14497__func__.6418:
14498	.string	"FtlLoadBbt"
14499	.section	.rodata.__func__.6533,"a",@progbits
14500	.align	3
14501	.set	.LANCHOR49,. + 0
14502	.type	__func__.6533, %object
14503	.size	__func__.6533, 17
14504__func__.6533:
14505	.string	"INSERT_FREE_LIST"
14506	.section	.rodata.__func__.6538,"a",@progbits
14507	.align	3
14508	.set	.LANCHOR46,. + 0
14509	.type	__func__.6538, %object
14510	.size	__func__.6538, 17
14511__func__.6538:
14512	.string	"INSERT_DATA_LIST"
14513	.section	.rodata.__func__.6569,"a",@progbits
14514	.align	3
14515	.set	.LANCHOR50,. + 0
14516	.type	__func__.6569, %object
14517	.size	__func__.6569, 17
14518__func__.6569:
14519	.string	"List_remove_node"
14520	.section	.rodata.__func__.6601,"a",@progbits
14521	.align	3
14522	.set	.LANCHOR54,. + 0
14523	.type	__func__.6601, %object
14524	.size	__func__.6601, 22
14525__func__.6601:
14526	.string	"List_update_data_list"
14527	.section	.rodata.__func__.6610,"a",@progbits
14528	.align	3
14529	.set	.LANCHOR156,. + 0
14530	.type	__func__.6610, %object
14531	.size	__func__.6610, 16
14532__func__.6610:
14533	.string	"load_l2p_region"
14534	.section	.rodata.__func__.6643,"a",@progbits
14535	.align	3
14536	.set	.LANCHOR107,. + 0
14537	.type	__func__.6643, %object
14538	.size	__func__.6643, 26
14539__func__.6643:
14540	.string	"ftl_map_blk_alloc_new_blk"
14541	.section	.rodata.__func__.6654,"a",@progbits
14542	.align	3
14543	.set	.LANCHOR157,. + 0
14544	.type	__func__.6654, %object
14545	.size	__func__.6654, 15
14546__func__.6654:
14547	.string	"ftl_map_blk_gc"
14548	.section	.rodata.__func__.6669,"a",@progbits
14549	.align	3
14550	.set	.LANCHOR154,. + 0
14551	.type	__func__.6669, %object
14552	.size	__func__.6669, 31
14553__func__.6669:
14554	.string	"Ftl_write_map_blk_to_last_page"
14555	.section	.rodata.__func__.6683,"a",@progbits
14556	.align	3
14557	.set	.LANCHOR155,. + 0
14558	.type	__func__.6683, %object
14559	.size	__func__.6683, 16
14560__func__.6683:
14561	.string	"FtlMapWritePage"
14562	.section	.rodata.__func__.6708,"a",@progbits
14563	.align	3
14564	.set	.LANCHOR57,. + 0
14565	.type	__func__.6708, %object
14566	.size	__func__.6708, 22
14567__func__.6708:
14568	.string	"select_l2p_ram_region"
14569	.section	.rodata.__func__.6725,"a",@progbits
14570	.align	3
14571	.set	.LANCHOR159,. + 0
14572	.type	__func__.6725, %object
14573	.size	__func__.6725, 9
14574__func__.6725:
14575	.string	"log2phys"
14576	.section	.rodata.__func__.6798,"a",@progbits
14577	.align	3
14578	.set	.LANCHOR171,. + 0
14579	.type	__func__.6798, %object
14580	.size	__func__.6798, 15
14581__func__.6798:
14582	.string	"FtlVpcTblFlush"
14583	.section	.rodata.__func__.6820,"a",@progbits
14584	.align	3
14585	.set	.LANCHOR149,. + 0
14586	.type	__func__.6820, %object
14587	.size	__func__.6820, 14
14588__func__.6820:
14589	.string	"FtlScanSysBlk"
14590	.section	.rodata.__func__.6877,"a",@progbits
14591	.align	3
14592	.set	.LANCHOR151,. + 0
14593	.type	__func__.6877, %object
14594	.size	__func__.6877, 15
14595__func__.6877:
14596	.string	"FtlLoadSysInfo"
14597	.section	.rodata.__func__.6940,"a",@progbits
14598	.align	3
14599	.set	.LANCHOR160,. + 0
14600	.type	__func__.6940, %object
14601	.size	__func__.6940, 16
14602__func__.6940:
14603	.string	"FtlReUsePrevPpa"
14604	.section	.rodata.__func__.6974,"a",@progbits
14605	.align	3
14606	.set	.LANCHOR166,. + 0
14607	.type	__func__.6974, %object
14608	.size	__func__.6974, 22
14609__func__.6974:
14610	.string	"FtlRecoverySuperblock"
14611	.section	.rodata.__func__.7031,"a",@progbits
14612	.align	3
14613	.set	.LANCHOR60,. + 0
14614	.type	__func__.7031, %object
14615	.size	__func__.7031, 16
14616__func__.7031:
14617	.string	"make_superblock"
14618	.section	.rodata.__func__.7052,"a",@progbits
14619	.align	3
14620	.set	.LANCHOR146,. + 0
14621	.type	__func__.7052, %object
14622	.size	__func__.7052, 18
14623__func__.7052:
14624	.string	"SupperBlkListInit"
14625	.section	.rodata.__func__.7077,"a",@progbits
14626	.align	3
14627	.set	.LANCHOR173,. + 0
14628	.type	__func__.7077, %object
14629	.size	__func__.7077, 21
14630__func__.7077:
14631	.string	"FtlVpcCheckAndModify"
14632	.section	.rodata.__func__.7093,"a",@progbits
14633	.align	3
14634	.set	.LANCHOR161,. + 0
14635	.type	__func__.7093, %object
14636	.size	__func__.7093, 14
14637__func__.7093:
14638	.string	"ftl_check_vpc"
14639	.section	.rodata.__func__.7178,"a",@progbits
14640	.align	3
14641	.set	.LANCHOR163,. + 0
14642	.type	__func__.7178, %object
14643	.size	__func__.7178, 25
14644__func__.7178:
14645	.string	"allocate_data_superblock"
14646	.section	.rodata.__func__.7199,"a",@progbits
14647	.align	3
14648	.set	.LANCHOR174,. + 0
14649	.type	__func__.7199, %object
14650	.size	__func__.7199, 29
14651__func__.7199:
14652	.string	"allocate_new_data_superblock"
14653	.section	.rodata.__func__.7206,"a",@progbits
14654	.align	3
14655	.set	.LANCHOR88,. + 0
14656	.type	__func__.7206, %object
14657	.size	__func__.7206, 19
14658__func__.7206:
14659	.string	"get_new_active_ppa"
14660	.section	.rodata.__func__.7219,"a",@progbits
14661	.align	3
14662	.set	.LANCHOR164,. + 0
14663	.type	__func__.7219, %object
14664	.size	__func__.7219, 16
14665__func__.7219:
14666	.string	"update_vpc_list"
14667	.section	.rodata.__func__.7226,"a",@progbits
14668	.align	3
14669	.set	.LANCHOR165,. + 0
14670	.type	__func__.7226, %object
14671	.size	__func__.7226, 20
14672__func__.7226:
14673	.string	"decrement_vpc_count"
14674	.section	.rodata.__func__.7296,"a",@progbits
14675	.align	3
14676	.set	.LANCHOR176,. + 0
14677	.type	__func__.7296, %object
14678	.size	__func__.7296, 19
14679__func__.7296:
14680	.string	"FtlGcFreeTempBlock"
14681	.section	.rodata.__func__.7407,"a",@progbits
14682	.align	3
14683	.set	.LANCHOR180,. + 0
14684	.type	__func__.7407, %object
14685	.size	__func__.7407, 23
14686__func__.7407:
14687	.string	"rk_ftl_garbage_collect"
14688	.section	.rodata.__func__.7669,"a",@progbits
14689	.align	3
14690	.set	.LANCHOR147,. + 0
14691	.type	__func__.7669, %object
14692	.size	__func__.7669, 15
14693__func__.7669:
14694	.string	"FlashReadPages"
14695	.section	.rodata.__func__.7688,"a",@progbits
14696	.align	3
14697	.set	.LANCHOR153,. + 0
14698	.type	__func__.7688, %object
14699	.size	__func__.7688, 15
14700__func__.7688:
14701	.string	"FlashProgPages"
14702	.section	.rodata.__func__.7712,"a",@progbits
14703	.align	3
14704	.set	.LANCHOR104,. + 0
14705	.type	__func__.7712, %object
14706	.size	__func__.7712, 17
14707__func__.7712:
14708	.string	"FlashEraseBlocks"
14709	.section	.rodata.__func__.7827,"a",@progbits
14710	.align	3
14711	.set	.LANCHOR187,. + 0
14712	.type	__func__.7827, %object
14713	.size	__func__.7827, 14
14714__func__.7827:
14715	.string	"FtlWriteToIDB"
14716	.section	.rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1
14717.LC105:
14718	.string	"decrement_vpc_count %x = %d\n"
14719	.section	.rodata.ftl_check_vpc.str1.1,"aMS",@progbits,1
14720.LC94:
14721	.string	"...%s enter...\n"
14722.LC95:
14723	.string	"FtlCheckVpc2 %x = %x  %x\n"
14724.LC96:
14725	.string	"free blk vpc error %x = %x  %x\n"
14726	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1
14727.LC83:
14728	.string	"FtlFreeSysBlkQueueOut = %x, free count = %d\n"
14729	.section	.rodata.ftl_scan_all_data.str1.1,"aMS",@progbits,1
14730.LC97:
14731	.string	"ftl_scan_all_data = %x\n"
14732.LC98:
14733	.string	"scan lpa = %x ppa= %x\n"
14734.LC99:
14735	.string	"lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
14736	.section	.rodata.load_l2p_region.str1.1,"aMS",@progbits,1
14737.LC90:
14738	.string	"region_id = %x phyAddr = %x\n"
14739.LC91:
14740	.string	"spare:"
14741.LC92:
14742	.string	"map_ppn:"
14743.LC93:
14744	.string	"load_l2p_region refresh = %x phyAddr = %x\n"
14745	.section	.rodata.rk_ftl_garbage_collect.str1.1,"aMS",@progbits,1
14746.LC112:
14747	.string	"SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
14748	.section	.rodata.rknand_print_hex.str1.1,"aMS",@progbits,1
14749.LC75:
14750	.string	"%s 0x%x:"
14751.LC76:
14752	.string	"%x "
14753.LC77:
14754	.string	"%02x "
14755.LC78:
14756	.string	"\n"
14757	.section	.rodata.rknand_proc_ftlread.str1.1,"aMS",@progbits,1
14758.LC70:
14759	.string	"SFTL version: 5.0.49 20181030"
14760.LC71:
14761	.string	"%s\n"
14762	.hidden	free
14763