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