From 102a0743326a03cd1a1202ceda21e175b7d3575c Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 20 Feb 2024 01:20:52 +0000
Subject: [PATCH] add new system file

---
 kernel/drivers/rk_nand/rk_zftl_arm32.S | 43774 +++++++++++++++++++++++++++++------------------------------
 1 files changed, 21,811 insertions(+), 21,963 deletions(-)

diff --git a/kernel/drivers/rk_nand/rk_zftl_arm32.S b/kernel/drivers/rk_nand/rk_zftl_arm32.S
index 7af38f2..4af2ab3 100644
--- a/kernel/drivers/rk_nand/rk_zftl_arm32.S
+++ b/kernel/drivers/rk_nand/rk_zftl_arm32.S
@@ -5,12 +5,11 @@
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * date: 2021-03-15
+ * date: 2021-07-26
  * function: rk ftl v6 for rockchip soc base on arm v7 to support 3D/2D
  *	     TLC and MLC.
  */
 	.arch armv7-a
-	.fpu softvfp
 	.eabi_attribute 20, 1
 	.eabi_attribute 21, 1
 	.eabi_attribute 23, 3
@@ -19,73 +18,139 @@
 	.eabi_attribute 26, 2
 	.eabi_attribute 30, 4
 	.eabi_attribute 34, 1
-	.eabi_attribute 18, 4
-	.file	"rk_zftl_arm_v7.S"
-#APP
+	.file	"rk_zftl_arm_v7.c"
 	.syntax unified
-	.global	__aeabi_uidiv
 	.text
 	.align	2
+	.fpu softvfp
+	.type	flash_mem_cmp8, %function
+flash_mem_cmp8:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	mov	r3, #0
+	cmp	r3, r2
+	bne	.L10
+	mov	r0, #0
+	bx	lr
+.L2:
+	cmp	r3, r2
+	bne	.L5
+	mov	r0, #0
+	ldr	pc, [sp], #4
+.L10:
+	str	lr, [sp, #-4]!
+	.save {lr}
+.L5:
+	ldrb	lr, [r0, r3]	@ zero_extendqisi2
+	ldrb	ip, [r1, r3]	@ zero_extendqisi2
+	add	r3, r3, #1
+	cmp	lr, ip
+	beq	.L2
+	mov	r0, r3
+	ldr	pc, [sp], #4
+	.fnend
+	.size	flash_mem_cmp8, .-flash_mem_cmp8
+	.global	__aeabi_uidiv
+	.global	__aeabi_uidivmod
+	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	slc_phy_page_address_calc, %function
 slc_phy_page_address_calc:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
-	.save {r4, r5, r6, lr}
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
 	mov	r4, r0
-	ldr	r6, .L14
-	ldrb	r3, [r6]	@ zero_extendqisi2
+	ldr	r5, .L22
+	ldrb	r3, [r5]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L2
-	ldrb	r3, [r6, #1]	@ zero_extendqisi2
+	beq	.L12
+	ldrb	r3, [r5, #1]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L3
-.L2:
-	ldrh	r5, [r6, #2]
+	beq	.L13
+.L12:
+	ldrh	r6, [r5, #2]
 	mov	r0, r4
-	mov	r1, r5
+	mov	r1, r6
 	bl	__aeabi_uidiv
-	ldrb	r3, [r6, #1]	@ zero_extendqisi2
-	cmp	r3, #0
-	ldreq	r3, .L14
-	mul	r0, r5, r0
-	rsb	r4, r0, r4
-	mov	r4, r4, asl #1
-	addeq	r4, r3, r4
-	ldreqh	r4, [r4, #4]
-	add	r4, r4, r0
-.L3:
+	mov	r1, r6
+	mul	r7, r6, r0
 	mov	r0, r4
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L15:
+	bl	__aeabi_uidivmod
+	ldrb	r3, [r5, #1]	@ zero_extendqisi2
+	lsl	r1, r1, #1
+	cmp	r3, #0
+	addeq	r1, r5, r1
+	addne	r4, r1, r7
+	ldrheq	r4, [r1, #4]
+	addeq	r4, r4, r7
+.L13:
+	mov	r0, r4
+	pop	{r4, r5, r6, r7, r8, pc}
+.L23:
 	.align	2
-.L14:
+.L22:
 	.word	.LANCHOR0
 	.fnend
 	.size	slc_phy_page_address_calc, .-slc_phy_page_address_calc
 	.align	2
 	.global	zftl_nandc_get_irq_status
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_nandc_get_irq_status, %function
 zftl_nandc_get_irq_status:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L19
+	ldr	r3, .L27
 	ldrb	r3, [r3, #1028]	@ zero_extendqisi2
 	cmp	r3, #9
 	ldreq	r0, [r0, #296]
 	ldrne	r0, [r0, #372]
 	bx	lr
-.L20:
+.L28:
 	.align	2
-.L19:
+.L27:
 	.word	.LANCHOR0
 	.fnend
 	.size	zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status
+	.section	.text.unlikely,"ax",%progbits
+	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	isxdigit, %function
+isxdigit:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	@ link register save eliminated.
+	bic	r3, r0, #32
+	sub	r3, r3, #65
+	cmp	r3, #25
+	bls	.L31
+	sub	r0, r0, #48
+	cmp	r0, #9
+	movhi	r0, #0
+	movls	r0, #1
+	bx	lr
+.L31:
+	mov	r0, #1
+	bx	lr
+	.fnend
+	.size	isxdigit, .-isxdigit
+	.text
 	.align	2
 	.global	zftl_get_density
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_get_density, %function
 zftl_get_density:
 	.fnstart
@@ -93,63 +158,66 @@
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
 	cmp	r0, #0
-	bne	.L22
-	ldr	r3, .L25
+	bne	.L33
+	ldr	r3, .L36
 	ldr	r0, [r3, #1032]
 	bx	lr
-.L22:
+.L33:
 	cmp	r0, #4
 	movcc	r0, #8192
 	movcs	r0, #0
 	bx	lr
-.L26:
+.L37:
 	.align	2
-.L25:
+.L36:
 	.word	.LANCHOR0
 	.fnend
 	.size	zftl_get_density, .-zftl_get_density
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	_list_remove_node, %function
 _list_remove_node:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	mov	r5, #6
+	ldr	r6, .L47
 	mul	r5, r5, r1
-	ldr	r6, .L36
-	mov	r7, r0
 	movw	r3, #65535
 	ldr	r8, [r6, #1036]
+	ldrh	ip, [r8, r5]
 	add	r4, r8, r5
-	ldrh	r0, [r8, r5]
 	ldrh	r1, [r4, #2]
-	cmp	r0, r3
-	ldr	r3, [r7]
-	bne	.L28
-	cmp	r1, r0
-	bne	.L28
+	cmp	ip, r3
+	ldr	r3, [r0]
+	bne	.L39
+	cmp	r1, ip
+	bne	.L39
 	cmp	r4, r3
-	ldmnefd	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
-.L28:
+	popne	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L39:
 	mov	r9, r2
 	movw	r2, #65535
 	cmp	r1, r2
-	bne	.L30
+	mov	r7, r0
+	bne	.L41
 	cmp	r4, r3
-	beq	.L30
-	ldr	r1, .L36+4
+	beq	.L41
 	mov	r2, #202
-	ldr	r0, .L36+8
+	ldr	r1, .L47+4
+	ldr	r0, .L47+8
 	bl	printk
 	bl	dump_stack
-.L30:
+.L41:
 	ldr	r3, [r7]
 	movw	r2, #65535
 	cmp	r4, r3
 	ldrh	r3, [r8, r5]
-	bne	.L31
+	bne	.L42
 	cmp	r3, r2
 	ldrne	r2, [r6, #1036]
 	movne	r1, #6
@@ -158,20 +226,27 @@
 	mlane	r3, r1, r3, r2
 	mvnne	r2, #0
 	strne	r3, [r7]
-	strneh	r2, [r3, #2]	@ movhi
-	b	.L33
-.L31:
+	strhne	r2, [r3, #2]	@ movhi
+.L44:
+	mvn	r3, #0
+	strh	r3, [r8, r5]	@ movhi
+	strh	r3, [r4, #2]	@ movhi
+	ldrh	r3, [r9]
+	sub	r3, r3, #1
+	strh	r3, [r9]	@ movhi
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L42:
 	cmp	r3, r2
 	ldrh	r1, [r4, #2]
-	bne	.L34
+	bne	.L45
 	cmp	r1, r3
 	movne	r3, #6
 	ldrne	r2, [r6, #1036]
 	mulne	r1, r3, r1
 	mvnne	r3, #0
-	strneh	r3, [r2, r1]	@ movhi
-	b	.L33
-.L34:
+	strhne	r3, [r2, r1]	@ movhi
+	b	.L44
+.L45:
 	ldr	r0, [r6, #1036]
 	mov	r2, #6
 	mla	r3, r2, r3, r0
@@ -181,65 +256,142 @@
 	ldr	r3, [r6, #1036]
 	mul	r2, r2, r0
 	strh	r1, [r3, r2]	@ movhi
-.L33:
-	mvn	r3, #0
-	strh	r3, [r8, r5]	@ movhi
-	strh	r3, [r4, #2]	@ movhi
-	ldrh	r3, [r9]
-	sub	r3, r3, #1
-	strh	r3, [r9]	@ movhi
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
-.L37:
+	b	.L44
+.L48:
 	.align	2
-.L36:
+.L47:
 	.word	.LANCHOR0
 	.word	.LANCHOR1
 	.word	.LC0
 	.fnend
 	.size	_list_remove_node, .-_list_remove_node
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	ndelay, %function
+ndelay:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	@ link register save eliminated.
+	ldr	r3, .L50
+	add	r0, r0, #996
+	add	r0, r0, #3
+	umull	r0, r1, r0, r3
+	ldr	r3, .L50+4
+	ldr	r3, [r3, #8]
+	lsr	r0, r1, #6
+	bx	r3	@ indirect register sibling call
+.L51:
+	.align	2
+.L50:
+	.word	274877907
+	.word	arm_delay_ops
+	.fnend
+	.size	ndelay, .-ndelay
+	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	hynix_set_rr_para, %function
+hynix_set_rr_para:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	ldr	r2, .L58
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	lsl	r9, r0, #8
+	ldr	r3, [r2, #1040]
+	ldr	r6, [r2, #1044]
+	ldrb	ip, [r3, #113]	@ zero_extendqisi2
+	add	r4, r3, #112
+	ldrb	r2, [r3, #112]	@ zero_extendqisi2
+	add	r5, r6, r9
+	add	r7, r3, #128
+	add	r8, r3, #127
+	mul	r1, r1, ip
+	cmp	r2, #8
+	movne	r2, #160
+	add	r1, r1, #32
+	smlabbne	r1, r2, r0, r1
+	mov	r2, #54
+	str	r2, [r5, #2056]
+	sub	r2, ip, #1
+	add	r4, r4, r1
+	add	r7, r7, r2
+	sub	r4, r4, #1
+.L55:
+	cmp	r8, r7
+	bne	.L56
+	add	r6, r6, r9
+	mov	r3, #22
+	str	r3, [r6, #2056]
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L56:
+	ldrb	r3, [r8, #1]!	@ zero_extendqisi2
+	mov	r0, #120
+	str	r3, [r5, #2052]
+	bl	ndelay
+	ldrsb	r3, [r4, #1]!
+	str	r3, [r5, #2048]
+	b	.L55
+.L59:
+	.align	2
+.L58:
+	.word	.LANCHOR0
+	.fnend
+	.size	hynix_set_rr_para, .-hynix_set_rr_para
+	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_debug_proc_open, %function
 zftl_debug_proc_open:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
 	mov	r4, r1
 	bl	PDE_DATA
-	ldr	r1, .L40
 	mov	r2, r0
 	mov	r0, r4
-	ldmfd	sp!, {r4, lr}
+	ldr	r1, .L62
+	pop	{r4, lr}
 	b	single_open
-.L41:
+.L63:
 	.align	2
-.L40:
+.L62:
 	.word	zftl_debug_proc_show
 	.fnend
 	.size	zftl_debug_proc_open, .-zftl_debug_proc_open
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_debug_proc_show, %function
 zftl_debug_proc_show:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
 	mov	r4, r0
-	ldr	r1, .L44
-	ldr	r2, .L44+4
+	ldr	r2, .L66
+	ldr	r1, .L66+4
 	bl	seq_printf
-	ldr	r3, .L44+8
+	ldr	r3, .L66+8
 	mov	r0, r4
-	ldr	r1, .L44+12
+	ldr	r1, .L66+12
 	ldr	r2, [r3]
 	bl	seq_printf
 	mov	r0, #0
-	ldmfd	sp!, {r4, pc}
-.L45:
+	pop	{r4, pc}
+.L67:
 	.align	2
-.L44:
+.L66:
 	.word	.LC1
 	.word	.LC2
 	.word	.LANCHOR2
@@ -248,66 +400,110 @@
 	.size	zftl_debug_proc_show, .-zftl_debug_proc_show
 	.align	2
 	.global	zftl_flash_suspend
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_flash_suspend, %function
 zftl_flash_suspend:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L50
+	ldr	r3, .L72
 	ldrb	r2, [r3, #1028]	@ zero_extendqisi2
 	cmp	r2, #9
-	ldr	r2, [r3, #1040]
+	ldr	r2, [r3, #1044]
 	ldr	r1, [r2]
-	str	r1, [r3, #1044]
-	ldr	r1, [r2, #4]
 	str	r1, [r3, #1048]
-	bne	.L47
-	ldr	r1, [r2, #16]
+	ldr	r1, [r2, #4]
 	str	r1, [r3, #1052]
-	ldr	r1, [r2, #32]
+	bne	.L69
+	ldr	r1, [r2, #16]
 	str	r1, [r3, #1056]
-	ldr	r1, [r2, #80]
+	ldr	r1, [r2, #32]
 	str	r1, [r3, #1060]
-	ldr	r1, [r2, #84]
+	ldr	r1, [r2, #80]
 	str	r1, [r3, #1064]
+	ldr	r1, [r2, #84]
+	str	r1, [r3, #1068]
 	ldr	r1, [r2, #520]
 	ldr	r2, [r2, #8]
-	str	r1, [r3, #1068]
-	b	.L49
-.L47:
+	str	r1, [r3, #1072]
+.L71:
+	str	r2, [r3, #1076]
+	bx	lr
+.L69:
 	ldr	r1, [r2, #8]
-	str	r1, [r3, #1052]
-	ldr	r1, [r2, #12]
 	str	r1, [r3, #1056]
-	ldr	r1, [r2, #304]
+	ldr	r1, [r2, #12]
 	str	r1, [r3, #1060]
-	ldr	r1, [r2, #308]
+	ldr	r1, [r2, #304]
 	str	r1, [r3, #1064]
+	ldr	r1, [r2, #308]
+	str	r1, [r3, #1068]
 	ldr	r1, [r2, #336]
 	ldr	r2, [r2, #344]
-	str	r1, [r3, #1068]
-.L49:
-	str	r2, [r3, #1072]
-	bx	lr
-.L51:
+	str	r1, [r3, #1072]
+	b	.L71
+.L73:
 	.align	2
-.L50:
+.L72:
 	.word	.LANCHOR0
 	.fnend
 	.size	zftl_flash_suspend, .-zftl_flash_suspend
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	nandc_irq_disable, %function
+nandc_irq_disable:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	@ link register save eliminated.
+	ldr	r3, .L77
+	ldrb	r3, [r3, #1028]	@ zero_extendqisi2
+	cmp	r3, #9
+	mov	r3, #1
+	bne	.L75
+	ldr	r2, [r0, #292]
+	lsl	r1, r3, r1
+	orr	r3, r2, r1
+	str	r3, [r0, #292]
+	ldr	r3, [r0, #288]
+	bic	r1, r3, r1
+	str	r1, [r0, #288]
+	bx	lr
+.L75:
+	ldr	r2, [r0, #368]
+	lsl	r1, r3, r1
+	orr	r3, r2, r1
+	str	r3, [r0, #368]
+	ldr	r3, [r0, #364]
+	bic	r1, r3, r1
+	str	r1, [r0, #364]
+	bx	lr
+.L78:
+	.align	2
+.L77:
+	.word	.LANCHOR0
+	.fnend
+	.size	nandc_irq_disable, .-nandc_irq_disable
+	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	_insert_free_list, %function
 _insert_free_list:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L62
-	movw	ip, #1076
+	ldr	r3, .L91
+	movw	ip, #1080
 	ldrh	ip, [r3, ip]
 	cmp	ip, r1
 	bxls	lr
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
 	mov	r4, r3
@@ -315,681 +511,825 @@
 	add	ip, ip, #1
 	strh	ip, [r2]	@ movhi
 	mov	ip, #6
-	ldr	r7, [r3, #1036]
 	mul	r6, ip, r1
+	ldr	r7, [r3, #1036]
 	mvn	r3, #0
 	add	lr, r7, r6
 	strh	r3, [lr, #2]	@ movhi
 	strh	r3, [r7, r6]	@ movhi
 	ldr	r3, [r0]
 	cmp	r3, #0
-	beq	.L61
-	ldr	r5, [r4, #1080]
-	movw	r8, #1084
-	ldrh	r10, [r4, r8]
-	mov	r2, r1, asl #2
+	bne	.L81
+.L90:
+	str	lr, [r0]
+	b	.L79
+.L81:
+	ldr	r5, [r4, #1084]
+	add	r2, r4, #1088
+	ldrh	r10, [r2]
+	lsl	r8, r1, #2
 	ldr	r9, [r4, #1036]
 	movw	fp, #65535
-	ldr	r8, [r5, r1, asl #2]
-	ldrh	r2, [r5, r2]
-	ubfx	r8, r8, #11, #8
+	ldr	r2, [r5, r1, lsl #2]
+	ldrh	r8, [r5, r8]
 	str	ip, [sp, #4]
-	ubfx	r2, r2, #0, #11
-	smulbb	r8, r8, r10
-	add	r2, r8, r2
-	rsb	r8, r9, r3
+	ubfx	r2, r2, #11, #8
+	smulbb	r2, r2, r10
+	ubfx	r8, r8, #0, #11
+	add	r2, r2, r8
 	uxth	r2, r2
 	str	r2, [sp]
-	ldr	r2, .L62+4
-	mov	r8, r8, asr #1
+	sub	r2, r3, r9
+	asr	r8, r2, #1
+	ldr	r2, .L91+4
 	mul	r2, r2, r8
 	uxth	r2, r2
-.L57:
-	ldr	ip, [r5, r2, asl #2]
-	mov	r8, r2, asl #2
-	ubfx	ip, ip, #11, #8
+.L84:
+	ldr	ip, [r5, r2, lsl #2]
+	lsl	r8, r2, #2
 	ldrh	r8, [r5, r8]
+	ubfx	ip, ip, #11, #8
 	smulbb	ip, ip, r10
 	ubfx	r8, r8, #0, #11
-	add	r8, ip, r8
-	ldr	ip, [sp]
-	uxth	r8, r8
+	add	ip, ip, r8
+	ldr	r8, [sp]
+	uxth	ip, ip
 	cmp	r8, ip
-	bcs	.L55
+	bls	.L82
 	ldrh	ip, [r3]
 	cmp	ip, fp
-	streqh	r2, [lr, #2]	@ movhi
-	streqh	r1, [r3]	@ movhi
-	beq	.L52
-.L56:
+	bne	.L83
+	strh	r2, [lr, #2]	@ movhi
+	strh	r1, [r3]	@ movhi
+.L79:
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L83:
 	ldr	r3, [sp, #4]
 	mov	r2, ip
 	mla	r3, r3, ip, r9
-	b	.L57
-.L55:
+	b	.L84
+.L82:
 	ldrh	ip, [r3, #2]
 	strh	ip, [lr, #2]	@ movhi
 	strh	r2, [r7, r6]	@ movhi
 	ldr	r2, [r0]
 	cmp	r3, r2
-	bne	.L58
-	strh	r1, [r3, #2]	@ movhi
-.L61:
-	str	lr, [r0]
-	b	.L52
-.L58:
+	strheq	r1, [r3, #2]	@ movhi
+	beq	.L90
+.L85:
 	ldrh	ip, [r3, #2]
 	mov	r2, #6
 	ldr	r0, [r4, #1036]
 	mul	r2, r2, ip
 	strh	r1, [r0, r2]	@ movhi
 	strh	r1, [r3, #2]	@ movhi
-.L52:
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L63:
+	b	.L79
+.L92:
 	.align	2
-.L62:
+.L91:
 	.word	.LANCHOR0
 	.word	-1431655765
 	.fnend
 	.size	_insert_free_list, .-_insert_free_list
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	_insert_data_list, %function
 _insert_data_list:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	ip, .L85
-	movw	r3, #1076
-	ldrh	r3, [ip, r3]
-	cmp	r3, r1
+	ldr	r3, .L116
+	movw	ip, #1080
+	ldrh	ip, [r3, ip]
+	cmp	ip, r1
 	bxls	lr
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	mov	r5, #6
-	ldrh	r3, [r2]
+	ldrh	ip, [r2]
+	mul	r5, r5, r1
+	mov	r4, r3
 	.pad #28
 	sub	sp, sp, #28
-	mul	r5, r5, r1
-	add	r3, r3, #1
-	strh	r3, [r2]	@ movhi
+	add	ip, ip, #1
+	strh	ip, [r2]	@ movhi
+	ldr	r10, [r3, #1036]
 	mvn	r3, #0
-	ldr	r10, [ip, #1036]
 	add	lr, r10, r5
 	strh	r3, [lr, #2]	@ movhi
 	strh	r3, [r10, r5]	@ movhi
 	ldr	r3, [r0]
 	cmp	r3, #0
-	beq	.L84
-	ldr	r2, [ip, #1088]
-	movw	r8, #1084
-	ldr	r9, [ip, #1080]
-	ldrh	ip, [ip, r8]
+	bne	.L96
+.L115:
+	str	lr, [r0]
+	b	.L93
+.L96:
+	ldr	r2, [r4, #1092]
+	add	r8, r4, #1088
+	ldr	r9, [r4, #1084]
+	ldrh	r8, [r8]
 	str	r2, [sp, #4]
-	mov	r2, r1, asl #1
-	ldr	r6, [sp, #4]
-	ldrh	r4, [lr, #4]
-	str	ip, [sp, #8]
-	ldrh	r7, [r6, r2]
-	muls	ip, r4, r7
-	ldr	r6, [r9, r1, asl #2]
-	mov	r2, r1, asl #2
-	ldrneh	r7, [sp, #8]
-	ubfx	r6, r6, #11, #8
+	lsl	r2, r1, #1
+	ldr	ip, [sp, #4]
+	ldrh	r6, [lr, #4]
+	ldr	r7, [r9, r1, lsl #2]
+	ldrh	ip, [ip, r2]
+	muls	ip, r6, ip
+	str	r8, [sp, #8]
+	lsl	r2, r1, #2
+	ldrhne	r8, [sp, #8]
+	ubfx	r7, r7, #11, #8
 	ldrh	r2, [r9, r2]
-	smulbbne	r6, r6, r7
+	smulbbne	r7, r7, r8
 	ubfx	r2, r2, #0, #11
-	addne	r2, r2, r6
+	addne	r2, r2, r7
 	uxtahne	ip, ip, r2
-	cmp	r4, #0
-	ldr	r4, .L85
-	mvneq	ip, #0
 	ldr	r2, [r4, #1036]
-	rsb	r6, r2, r3
+	cmp	r6, #0
+	mvneq	ip, #0
 	str	r2, [sp, #12]
-	ldr	r2, .L85+4
-	mov	r6, r6, asr #1
+	sub	r2, r3, r2
+	asr	r6, r2, #1
+	ldr	r2, .L116+4
 	mul	r2, r2, r6
-	movw	r6, #1076
+	movw	r6, #1080
 	ldrh	r4, [r4, r6]
 	mov	r6, #0
-	str	r4, [sp, #16]
 	uxth	r2, r2
-.L74:
+	str	r4, [sp, #16]
+.L103:
+	sub	r4, r1, r2
+	ldr	r7, [sp, #16]
 	add	r6, r6, #1
-	ldr	r4, [sp, #16]
+	clz	r4, r4
 	uxth	r6, r6
-	cmp	r6, r4
-	movls	r4, #0
-	movhi	r4, #1
-	cmp	r1, r2
-	orreq	r4, r4, #1
+	lsr	r4, r4, #5
+	cmp	r6, r7
+	orrhi	r4, r4, #1
 	cmp	r4, #0
-	bne	.L64
+	bne	.L93
 	ldr	r7, [sp, #4]
-	mov	r4, r2, asl #1
-	ldr	r8, [r9, r2, asl #2]
+	lsl	r4, r2, #1
 	ldrh	fp, [r3, #4]
+	ldr	r8, [r9, r2, lsl #2]
 	ldrh	r4, [r7, r4]
-	mov	r7, r2, asl #2
+	lsl	r7, r2, #2
 	muls	r4, fp, r4
-	ubfx	r8, r8, #11, #8
 	ldrh	r7, [r9, r7]
+	ubfx	r8, r8, #11, #8
 	ubfx	r7, r7, #0, #11
 	str	r7, [sp, #20]
-	ldrneh	r7, [sp, #8]
+	ldrhne	r7, [sp, #8]
 	smulbbne	r8, r8, r7
 	ldrne	r7, [sp, #20]
-	addne	r8, r7, r8
-	uxtahne	r4, r4, r8
+	addne	r7, r7, r8
+	uxtahne	r4, r4, r7
 	cmp	fp, #0
-	cmpne	r4, ip
-	bcs	.L72
+	cmpne	ip, r4
+	bls	.L101
 	ldrh	r4, [r3]
 	movw	r7, #65535
 	cmp	r4, r7
-	streqh	r2, [lr, #2]	@ movhi
-	streqh	r1, [r3]	@ movhi
-	beq	.L64
-.L73:
+	bne	.L102
+	strh	r2, [lr, #2]	@ movhi
+	strh	r1, [r3]	@ movhi
+.L93:
+	add	sp, sp, #28
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L102:
 	ldr	r2, [sp, #12]
 	mov	r3, #6
 	mla	r3, r3, r4, r2
 	mov	r2, r4
-	b	.L74
-.L72:
+	b	.L103
+.L101:
 	ldrh	ip, [r3, #2]
 	strh	ip, [lr, #2]	@ movhi
 	strh	r2, [r10, r5]	@ movhi
 	ldr	r2, [r0]
 	cmp	r3, r2
-	bne	.L75
-	strh	r1, [r3, #2]	@ movhi
-.L84:
-	str	lr, [r0]
-	b	.L64
-.L75:
-	ldr	r2, .L85
+	strheq	r1, [r3, #2]	@ movhi
+	beq	.L115
+.L104:
 	ldrh	ip, [r3, #2]
+	ldr	r2, .L116
 	ldr	r0, [r2, #1036]
 	mov	r2, #6
 	mul	r2, r2, ip
 	strh	r1, [r0, r2]	@ movhi
 	strh	r1, [r3, #2]	@ movhi
-.L64:
-	add	sp, sp, #28
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L86:
+	b	.L93
+.L117:
 	.align	2
-.L85:
+.L116:
 	.word	.LANCHOR0
 	.word	-1431655765
 	.fnend
 	.size	_insert_data_list, .-_insert_data_list
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	_list_update_data_list, %function
 _list_update_data_list:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
-	mov	r4, r1
-	ldr	r1, .L98
-	mov	r6, r0
-	ldr	r3, [r1, #1092]
-	ldrh	r0, [r3, #16]
-	cmp	r0, r4
-	ldmeqfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-	mov	r5, r1
-	ldrh	r1, [r3, #48]
-	cmp	r1, r4
-	ldmeqfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
+	ldr	r5, .L129
+	ldr	r3, [r5, #1096]
+	ldrh	ip, [r3, #16]
+	cmp	ip, r1
+	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
+	ldrh	ip, [r3, #48]
+	cmp	ip, r1
+	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
 	ldrh	r3, [r3, #80]
-	cmp	r3, r4
-	ldmeqfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
+	cmp	r3, r1
+	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
 	mov	r8, #6
 	ldr	r10, [r5, #1036]
-	mul	r8, r8, r4
-	ldr	r3, [r6]
+	mul	r8, r8, r1
+	ldr	r3, [r0]
 	add	r9, r10, r8
 	cmp	r9, r3
-	ldmeqfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
+	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
 	ldrh	r3, [r9, #2]
 	mov	r7, r2
 	movw	r2, #65535
+	mov	r4, r1
+	mov	r6, r0
 	cmp	r3, r2
-	bne	.L91
+	bne	.L122
 	ldrh	r2, [r10, r8]
 	cmp	r2, r3
-	bne	.L91
-	ldr	r1, .L98+4
+	bne	.L122
 	movw	r2, #273
-	ldr	r0, .L98+8
+	ldr	r1, .L129+4
+	ldr	r0, .L129+8
 	bl	printk
 	bl	dump_stack
-.L91:
-	ldrh	r2, [r9, #2]
-	movw	r3, #65535
-	cmp	r2, r3
-	bne	.L92
-	ldrh	r3, [r10, r8]
+.L122:
+	ldrh	r3, [r9, #2]
+	movw	r2, #65535
 	cmp	r3, r2
-	ldmeqfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L92:
-	ldr	r0, [r5, #1088]
-	mov	r3, r4, asl #1
-	ldrh	r1, [r0, r3]
-	ldrh	r3, [r9, #4]
-	cmp	r3, #0
-	mulne	r1, r3, r1
-	mov	r3, #6
-	mul	r2, r3, r2
-	ldr	r3, .L98+12
+	bne	.L123
+	ldrh	r2, [r10, r8]
+	cmp	r2, r3
+	popeq	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L123:
+	ldr	r0, [r5, #1092]
+	lsl	r2, r4, #1
+	ldrh	r1, [r9, #4]
+	ldrh	r2, [r0, r2]
+	cmp	r1, #0
 	mvneq	r1, #0
-	mov	ip, r2, asr #1
+	mulne	r1, r1, r2
+	mov	r2, #6
+	mul	r2, r2, r3
+	ldr	r3, .L129+12
+	asr	ip, r2, #1
 	mul	r3, r3, ip
-	mov	r3, r3, asl #1
-	ldrh	r0, [r0, r3]
-	ldr	r3, [r5, #1036]
-	add	r2, r3, r2
+	lsl	r3, r3, #1
+	ldrh	ip, [r0, r3]
+	ldr	r0, [r5, #1036]
+	add	r2, r0, r2
 	ldrh	r3, [r2, #4]
 	cmp	r3, #0
-	mulne	r3, r3, r0
+	mulne	r3, r3, ip
 	mvneq	r3, #0
 	cmp	r1, r3
-	ldmcsfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-	mov	r0, r6
-	mov	r1, r4
+	popcs	{r4, r5, r6, r7, r8, r9, r10, pc}
 	mov	r2, r7
+	mov	r1, r4
+	mov	r0, r6
 	bl	_list_remove_node
-	mov	r0, r6
-	mov	r1, r4
 	mov	r2, r7
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
+	mov	r1, r4
+	mov	r0, r6
+	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
 	b	_insert_data_list
-.L99:
+.L130:
 	.align	2
-.L98:
+.L129:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+20
+	.word	.LANCHOR1+18
 	.word	.LC0
 	.word	-1431655765
 	.fnend
 	.size	_list_update_data_list, .-_list_update_data_list
-	.section	.text.unlikely,"ax",%progbits
+	.section	.text.unlikely
 	.align	2
-	.type	rk_simple_strtoull.constprop.34, %function
-rk_simple_strtoull.constprop.34:
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	rk_simple_strtoull.constprop.33, %function
+rk_simple_strtoull.constprop.33:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
-	.save {r4, lr}
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	mov	r4, r0
 	ldrb	r3, [r0]	@ zero_extendqisi2
 	cmp	r3, #48
 	movne	r2, r0
-	movne	lr, #10
-	bne	.L101
+	movne	r5, #10
+	bne	.L132
 	ldrb	r3, [r0, #1]	@ zero_extendqisi2
 	add	r2, r0, #1
 	orr	r3, r3, #32
 	cmp	r3, #120
-	bne	.L112
-	ldrb	r3, [r0, #2]	@ zero_extendqisi2
-	bic	ip, r3, #32
-	sub	ip, ip, #65
-	cmp	ip, #25
-	bls	.L102
-	sub	r3, r3, #48
-	cmp	r3, #9
-	bls	.L102
-.L112:
-	mov	lr, #8
-.L101:
-	mov	r0, #0
-.L103:
-	mov	r4, r2
-	ldrb	ip, [r2], #1	@ zero_extendqisi2
-	bic	r3, ip, #32
-	sub	r3, r3, #65
-	cmp	r3, #25
-	sub	r3, ip, #48
-	bls	.L104
-	cmp	r3, #9
-	bls	.L104
-.L108:
+	bne	.L144
+	ldrb	r0, [r0, #2]	@ zero_extendqisi2
+	bl	isxdigit
+	cmp	r0, #0
+	addne	r2, r4, #2
+	movne	r5, #16
+	bne	.L132
+.L144:
+	mov	r5, #8
+.L132:
+	mov	r6, #0
+.L133:
+	mov	r7, r2
+	ldrb	r4, [r2], #1	@ zero_extendqisi2
+	mov	r0, r4
+	bl	isxdigit
+	cmp	r0, #0
+	bne	.L134
+.L140:
 	cmp	r1, #0
-	bne	.L105
-	ldmfd	sp!, {r4, pc}
-.L105:
-	str	r4, [r1]
-	ldmfd	sp!, {r4, pc}
-.L102:
-	add	r2, r0, #2
-	mov	lr, #16
-	b	.L101
-.L104:
-	cmp	r3, #9
-	orrhi	ip, ip, #32
-	subhi	r3, ip, #87
-	cmp	r3, lr
-	bcs	.L108
-	mla	r0, lr, r0, r3
-	b	.L103
+	mov	r0, r6
+	strne	r7, [r1]
+	pop	{r4, r5, r6, r7, r8, pc}
+.L134:
+	sub	r0, r4, #48
+	cmp	r0, #9
+	orrhi	r0, r4, #32
+	subhi	r0, r0, #87
+	cmp	r0, r5
+	bcs	.L140
+	mla	r6, r5, r6, r0
+	b	.L133
 	.fnend
-	.size	rk_simple_strtoull.constprop.34, .-rk_simple_strtoull.constprop.34
+	.size	rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33
 	.text
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	nandc_de_cs.constprop.35, %function
+nandc_de_cs.constprop.35:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	@ link register save eliminated.
+	ldr	r3, .L148
+	ldr	r2, [r3, #1044]
+	ldr	r3, [r2]
+	bfc	r3, #0, #8
+	bfc	r3, #17, #1
+	str	r3, [r2]
+	bx	lr
+.L149:
+	.align	2
+.L148:
+	.word	.LANCHOR0
+	.fnend
+	.size	nandc_de_cs.constprop.35, .-nandc_de_cs.constprop.35
+	.align	2
+	.global	flash_read_status
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	flash_read_status, %function
+flash_read_status:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	mov	r3, #112
+	push	{r4, lr}
+	.save {r4, lr}
+	mov	r4, r0
+	str	r3, [r0, #8]
+	mov	r0, #120
+	bl	ndelay
+	ldr	r0, [r4]
+	uxtb	r0, r0
+	pop	{r4, pc}
+	.fnend
+	.size	flash_read_status, .-flash_read_status
+	.align	2
+	.global	toshiba_set_rr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	toshiba_set_rr_para, %function
+toshiba_set_rr_para:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	add	r8, r1, r1, lsl #2
+	ldr	r9, .L161
+	mov	r5, r0
+	mov	r6, r1
+	mov	r4, #0
+	ldr	r7, .L161+4
+	add	r10, r9, #41
+.L153:
+	ldrb	r3, [r7, #1101]	@ zero_extendqisi2
+	cmp	r4, r3
+	bcc	.L157
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L157:
+	mov	r3, #85
+	mov	r0, #200
+	str	r3, [r5, #8]
+	ldrsb	r3, [r4, r10]
+	str	r3, [r5, #4]
+	bl	ndelay
+	ldrb	r3, [r7, #1100]	@ zero_extendqisi2
+	cmp	r3, #34
+	addeq	r3, r4, r8
+	addeq	r3, r10, r3
+	beq	.L160
+	cmp	r3, #35
+	addne	r3, r9, r6
+	ldrsbne	r3, [r3, #181]
+	bne	.L159
+	ldr	r2, .L161+8
+	add	r3, r4, r8
+	add	r3, r2, r3
+.L160:
+	ldrsb	r3, [r3, #5]
+.L159:
+	str	r3, [r5]
+	add	r4, r4, #1
+	b	.L153
+.L162:
+	.align	2
+.L161:
+	.word	.LANCHOR1
+	.word	.LANCHOR0
+	.word	.LANCHOR1+86
+	.fnend
+	.size	toshiba_set_rr_para, .-toshiba_set_rr_para
+	.align	2
+	.global	hynix_reconfig_rr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	hynix_reconfig_rr_para, %function
+hynix_reconfig_rr_para:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	ldr	r5, .L169
+	ldrb	r2, [r5, #1100]	@ zero_extendqisi2
+	sub	r2, r2, #1
+	cmp	r2, #7
+	pophi	{r4, r5, r6, pc}
+	ldr	r2, [r5, #1040]
+	mov	r4, r0
+	add	r2, r2, r0
+	ldrb	r2, [r2, #120]	@ zero_extendqisi2
+	cmp	r2, #0
+	popeq	{r4, r5, r6, pc}
+	mov	r1, #0
+	bl	hynix_set_rr_para
+	ldr	r3, [r5, #1040]
+	mov	r2, #0
+	add	r3, r3, r4
+	strb	r2, [r3, #120]
+	pop	{r4, r5, r6, pc}
+.L170:
+	.align	2
+.L169:
+	.word	.LANCHOR0
+	.fnend
+	.size	hynix_reconfig_rr_para, .-hynix_reconfig_rr_para
+	.align	2
 	.global	nand_flash_print_info
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nand_flash_print_info, %function
 nand_flash_print_info:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, lr}
+	push	{r0, r1, r2, r3, r4, lr}
 	.save {r4, lr}
 	.pad #16
-	ldr	r4, .L234
+	ldr	r4, .L290
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L116
-	ldr	r0, .L234+4
-	ldr	r1, .L234+8
+	beq	.L172
+	ldr	r1, .L290+4
+	ldr	r0, .L290+8
 	bl	printk
-.L116:
+.L172:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L117
-	ldr	r3, .L234+12
-	ldr	r0, [r3, #1096]
-	ldrb	ip, [r0, #4]	@ zero_extendqisi2
-	ldrb	r1, [r0, #1]	@ zero_extendqisi2
-	ldrb	r2, [r0, #2]	@ zero_extendqisi2
+	beq	.L173
+	ldr	r3, .L290+12
+	ldr	r0, [r3, #1104]
+	ldrb	ip, [r0, #6]	@ zero_extendqisi2
 	ldrb	r3, [r0, #3]	@ zero_extendqisi2
-	str	ip, [sp]
+	ldrb	r2, [r0, #2]	@ zero_extendqisi2
+	ldrb	r1, [r0, #1]	@ zero_extendqisi2
+	str	ip, [sp, #8]
 	ldrb	ip, [r0, #5]	@ zero_extendqisi2
 	str	ip, [sp, #4]
-	ldrb	r0, [r0, #6]	@ zero_extendqisi2
-	str	r0, [sp, #8]
-	ldr	r0, .L234+16
+	ldrb	r0, [r0, #4]	@ zero_extendqisi2
+	str	r0, [sp]
+	ldr	r0, .L290+16
 	bl	printk
-.L117:
+.L173:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L118
-	ldr	r3, .L234+12
-	ldr	r0, .L234+20
-	ldr	r3, [r3, #1096]
+	beq	.L174
+	ldr	r3, .L290+12
+	ldr	r0, .L290+20
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #8]	@ zero_extendqisi2
 	bl	printk
-.L118:
+.L174:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L119
-	ldr	r3, .L234+12
-	ldr	r0, .L234+24
-	ldr	r3, [r3, #1096]
+	beq	.L175
+	ldr	r3, .L290+12
+	ldr	r0, .L290+24
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #9]	@ zero_extendqisi2
 	bl	printk
-.L119:
+.L175:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L120
-	ldr	r3, .L234+12
-	ldr	r0, .L234+28
-	ldr	r3, [r3, #1096]
+	beq	.L176
+	ldr	r3, .L290+12
+	ldr	r0, .L290+28
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #10]
 	bl	printk
-.L120:
+.L176:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L121
-	ldr	r3, .L234+12
-	ldr	r0, .L234+32
-	ldr	r3, [r3, #1096]
+	beq	.L177
+	ldr	r3, .L290+12
+	ldr	r0, .L290+32
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #12]	@ zero_extendqisi2
 	bl	printk
-.L121:
+.L177:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L122
-	ldr	r3, .L234+12
-	ldr	r0, .L234+36
-	ldr	r3, [r3, #1096]
+	beq	.L178
+	ldr	r3, .L290+12
+	ldr	r0, .L290+36
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #13]	@ zero_extendqisi2
 	bl	printk
-.L122:
+.L178:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L123
-	ldr	r3, .L234+12
-	ldr	r0, .L234+40
-	ldr	r3, [r3, #1096]
+	beq	.L179
+	ldr	r3, .L290+12
+	ldr	r0, .L290+40
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #14]
 	bl	printk
-.L123:
+.L179:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L124
-	ldr	r3, .L234+12
-	ldr	r0, .L234+44
-	ldr	r3, [r3, #1096]
+	beq	.L180
+	ldr	r3, .L290+12
+	ldr	r0, .L290+44
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #23]	@ zero_extendqisi2
 	bl	printk
-.L124:
+.L180:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L125
-	ldr	r3, .L234+12
-	ldr	r0, .L234+48
-	ldr	r3, [r3, #1096]
+	beq	.L181
+	ldr	r3, .L290+12
+	ldr	r0, .L290+48
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #18]	@ zero_extendqisi2
 	bl	printk
-.L125:
+.L181:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L126
-	ldr	r3, .L234+12
-	ldr	r0, .L234+52
-	ldr	r3, [r3, #1096]
+	beq	.L182
+	ldr	r3, .L290+12
+	ldr	r0, .L290+52
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #19]	@ zero_extendqisi2
 	bl	printk
-.L126:
+.L182:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L127
-	ldr	r3, .L234+12
-	ldr	r0, .L234+56
-	ldr	r3, [r3, #1096]
+	beq	.L183
+	ldr	r3, .L290+12
+	ldr	r0, .L290+56
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #20]	@ zero_extendqisi2
 	bl	printk
-.L127:
+.L183:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L128
-	ldr	r3, .L234+12
-	ldr	r0, .L234+60
-	ldrb	r1, [r3, #1100]	@ zero_extendqisi2
+	beq	.L184
+	ldr	r3, .L290+12
+	ldr	r0, .L290+60
+	ldrb	r1, [r3, #1108]	@ zero_extendqisi2
 	bl	printk
-.L128:
+.L184:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L129
-	ldr	r3, .L234+12
-	ldr	r0, .L234+64
-	ldr	r3, [r3, #1096]
+	beq	.L185
+	ldr	r3, .L290+12
+	ldr	r0, .L290+64
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #22]	@ zero_extendqisi2
 	bl	printk
-.L129:
+.L185:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L130
-	ldr	r3, .L234+12
-	ldr	r0, .L234+68
-	ldrb	r1, [r3, #1101]	@ zero_extendqisi2
+	beq	.L186
+	ldr	r3, .L290+12
+	ldr	r0, .L290+68
+	ldrb	r1, [r3, #1109]	@ zero_extendqisi2
 	bl	printk
-.L130:
+.L186:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L131
-	ldr	r3, .L234+12
-	ldr	r0, .L234+72
-	ldr	r3, [r3, #1096]
+	beq	.L187
+	ldr	r3, .L290+12
+	ldr	r0, .L290+72
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	and	r1, r1, #1
 	bl	printk
-.L131:
+.L187:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L132
-	ldr	r3, .L234+12
-	ldr	r0, .L234+76
-	ldr	r3, [r3, #1096]
+	beq	.L188
+	ldr	r3, .L290+12
+	ldr	r0, .L290+76
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #1, #1
 	bl	printk
-.L132:
+.L188:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L133
-	ldr	r3, .L234+12
-	ldr	r0, .L234+80
-	ldr	r3, [r3, #1096]
+	beq	.L189
+	ldr	r3, .L290+12
+	ldr	r0, .L290+80
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #2, #1
 	bl	printk
-.L133:
+.L189:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L134
-	ldr	r3, .L234+12
-	ldr	r0, .L234+84
-	ldr	r3, [r3, #1096]
+	beq	.L190
+	ldr	r3, .L290+12
+	ldr	r0, .L290+84
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #3, #1
 	bl	printk
-.L134:
+.L190:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L135
-	ldr	r3, .L234+12
-	ldr	r0, .L234+88
-	ldr	r3, [r3, #1096]
+	beq	.L191
+	ldr	r3, .L290+12
+	ldr	r0, .L290+88
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #4, #1
 	bl	printk
-.L135:
+.L191:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L136
-	ldr	r3, .L234+12
-	ldr	r0, .L234+92
-	ldr	r3, [r3, #1096]
+	beq	.L192
+	ldr	r3, .L290+12
+	ldr	r0, .L290+92
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #5, #1
 	bl	printk
-.L136:
+.L192:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L137
-	ldr	r3, .L234+12
-	ldr	r0, .L234+96
-	ldr	r3, [r3, #1096]
+	beq	.L193
+	ldr	r3, .L290+12
+	ldr	r0, .L290+96
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #6, #1
 	bl	printk
-.L137:
+.L193:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L138
-	ldr	r3, .L234+12
-	ldr	r0, .L234+100
-	ldr	r3, [r3, #1096]
+	beq	.L194
+	ldr	r3, .L290+12
+	ldr	r0, .L290+100
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #7, #1
 	bl	printk
-.L138:
+.L194:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L139
-	ldr	r3, .L234+12
-	ldr	r0, .L234+104
-	ldr	r3, [r3, #1096]
+	beq	.L195
+	ldr	r3, .L290+12
+	ldr	r0, .L290+104
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #8, #1
 	bl	printk
-.L139:
+.L195:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L140
-	ldr	r3, .L234+12
-	ldr	r0, .L234+108
-	ldr	r3, [r3, #1096]
+	beq	.L196
+	ldr	r3, .L290+12
+	ldr	r0, .L290+108
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #9, #1
 	bl	printk
-.L140:
+.L196:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L141
-	ldr	r3, .L234+12
-	ldr	r0, .L234+112
-	ldr	r3, [r3, #1096]
+	beq	.L197
+	ldr	r3, .L290+12
+	ldr	r0, .L290+112
+	ldr	r3, [r3, #1104]
 	ldrh	r1, [r3, #16]
 	ubfx	r1, r1, #10, #1
 	bl	printk
-.L141:
+.L197:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L142
-	ldr	r3, .L234+12
-	ldr	r0, .L234+116
+	beq	.L198
+	ldr	r3, .L290+12
+	ldr	r0, .L290+116
+	ldrb	r2, [r3, #1110]	@ zero_extendqisi2
 	ldrb	r1, [r3]	@ zero_extendqisi2
-	ldrb	r2, [r3, #1102]	@ zero_extendqisi2
 	bl	printk
-.L142:
+.L198:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L143
-	ldr	r3, .L234+12
-	ldr	r0, .L234+120
-	ldrb	r1, [r3, #1113]	@ zero_extendqisi2
-	ldrb	r2, [r3, #1114]	@ zero_extendqisi2
+	beq	.L199
+	ldr	r3, .L290+12
+	ldr	r0, .L290+120
+	ldrb	r2, [r3, #1122]	@ zero_extendqisi2
+	ldrb	r1, [r3, #1121]	@ zero_extendqisi2
 	bl	printk
-.L143:
+.L199:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L144
-	ldr	r3, .L234+12
-	ldr	r0, .L234+124
-	ldrb	r1, [r3, #1111]	@ zero_extendqisi2
-	ldrb	r2, [r3, #1112]	@ zero_extendqisi2
+	beq	.L200
+	ldr	r3, .L290+12
+	ldr	r0, .L290+124
+	ldrb	r2, [r3, #1120]	@ zero_extendqisi2
+	ldrb	r1, [r3, #1119]	@ zero_extendqisi2
 	bl	printk
-.L144:
+.L200:
 	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L115
-	ldr	r3, .L234+12
-	ldr	r0, .L234+128
-	ldrb	r1, [r3, #1135]	@ zero_extendqisi2
+	beq	.L171
+	ldr	r3, .L290+12
+	ldr	r0, .L290+128
+	ldrb	r1, [r3, #1143]	@ zero_extendqisi2
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, lr}
+	pop	{r4, lr}
 	b	printk
-.L115:
+.L171:
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, pc}
-.L235:
+	pop	{r4, pc}
+.L291:
 	.align	2
-.L234:
+.L290:
 	.word	.LANCHOR2
+	.word	.LANCHOR1+189
 	.word	.LC4
-	.word	.LANCHOR1+44
 	.word	.LANCHOR0
 	.word	.LC5
 	.word	.LC6
@@ -1023,400 +1363,98 @@
 	.fnend
 	.size	nand_flash_print_info, .-nand_flash_print_info
 	.align	2
-	.global	nandc_init
-	.type	nandc_init, %function
-nandc_init:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 8
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, lr}
-	.save {r4, r5, r6, r7, lr}
-	.pad #20
-	sub	sp, sp, #20
-	ldr	r5, .L256
-	mov	r3, #0
-	str	r3, [sp, #12]
-	mov	r7, r0
-	ldr	r3, [r5]
-	tst	r3, #4096
-	beq	.L237
-	ldr	r0, .L256+4
-	mov	r2, r7
-	ldr	r1, .L256+8
-	bl	printk
-.L237:
-	ldr	r4, .L256+12
-	mov	r3, #6
-	ldr	r2, [r7, #352]
-	ldr	r6, .L256+12
-	strb	r3, [r4, #1028]
-	ldr	r3, .L256+16
-	str	r7, [r4, #1040]
-	cmp	r2, r3
-	ldr	r2, [r7, #128]
-	moveq	r3, #8
-	streqb	r3, [r4, #1028]
-	ldr	r3, .L256+20
-	cmp	r2, r3
-	ldr	r2, .L256+24
-	moveq	r3, #9
-	streqb	r3, [r4, #1028]
-	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
-	cmp	r3, #9
-	bne	.L240
-	mov	r3, #1
-	strb	r3, [r6, #1136]
-	ldr	r3, [sp, #12]
-	orr	r3, r3, #256
-	str	r3, [sp, #12]
-	ldr	r3, [sp, #12]
-	bic	r3, r3, #1835008
-	orr	r3, r3, #524288
-	str	r3, [sp, #12]
-	ldr	r3, [sp, #12]
-	str	r3, [r7]
-	mov	r3, #0
-	ldr	r0, [r6, #1040]
-	str	r3, [r0, #520]
-	movw	r3, #4161
-	str	r3, [r0, #4]
-	movw	r3, #8321
-	str	r3, [r0, #8]
-	mov	r3, #38
-	str	r2, [r0, #80]
-	str	r3, [r0, #84]
-	mov	r3, #39
-	str	r3, [r0, #84]
-	ldr	r3, [r5]
-	tst	r3, #4096
-	beq	.L242
-	ldr	r1, [r0]
-	ldr	r2, [r0, #8]
-	ldr	r3, [r0, #80]
-	ldr	ip, [r0, #84]
-	ldr	r0, [r0, #88]
-	b	.L255
-.L240:
-	ldr	r3, [sp, #12]
-	mov	r1, #0
-	strb	r1, [r6, #1136]
-	mov	r0, #2048
-	orr	r3, r3, #256
-	str	r3, [sp, #12]
-	ldr	r3, [sp, #12]
-	bic	r3, r3, #117440512
-	orr	r3, r3, #16777216
-	str	r3, [sp, #12]
-	ldr	r3, [sp, #12]
-	str	r3, [r7]
-	ldr	r3, [r6, #1040]
-	str	r1, [r3, #336]
-	movw	r1, #4193
-	str	r1, [r3, #4]
-	movw	r1, #8321
-	str	r1, [r3, #344]
-	str	r2, [r3, #304]
-	mov	r2, #38
-	str	r2, [r3, #308]
-	mov	r2, #39
-	str	r2, [r3, #308]
-	bl	ftl_malloc
-	ldr	r3, [r5]
-	tst	r3, #4096
-	str	r0, [r6, #1140]
-	beq	.L242
-	ldr	r0, [r6, #1040]
-	ldr	r1, [r0]
-	ldr	r2, [r0, #344]
-	ldr	r3, [r0, #304]
-	ldr	ip, [r0, #308]
-	ldr	r0, [r0, #312]
-.L255:
-	str	r0, [sp, #4]
-	str	ip, [sp]
-	ldr	r0, .L256+28
-	bl	printk
-.L242:
-	movw	r2, #1170
-	mov	r3, #1
-	strb	r3, [r4, #1168]
-	mov	r3, #0
-	strh	r3, [r4, r2]	@ movhi
-	strb	r3, [r4, #1172]
-	ldr	r3, [r5]
-	tst	r3, #4096
-	beq	.L236
-	ldr	r3, .L256+12
-	ldr	r0, .L256+32
-	ldrb	r1, [r3, #1028]	@ zero_extendqisi2
-	bl	printk
-.L236:
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, pc}
-.L257:
-	.align	2
-.L256:
-	.word	.LANCHOR2
-	.word	.LC34
-	.word	.LANCHOR1+68
-	.word	.LANCHOR0
-	.word	1446522928
-	.word	1446588464
-	.word	1052675
-	.word	.LC35
-	.word	.LC36
-	.fnend
-	.size	nandc_init, .-nandc_init
-	.align	2
 	.global	timer_delay_ns
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	timer_delay_ns, %function
 timer_delay_ns:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L259
-	add	r0, r0, #996
-	add	r0, r0, #3
-	umull	r0, r1, r0, r3
-	ldr	r3, .L259+4
-	ldr	r3, [r3, #8]
-	mov	r0, r1, lsr #6
-	bx	r3	@ indirect register sibling call
-.L260:
-	.align	2
-.L259:
-	.word	274877907
-	.word	arm_delay_ops
+	b	ndelay
 	.fnend
 	.size	timer_delay_ns, .-timer_delay_ns
 	.align	2
-	.global	flash_read_status
-	.type	flash_read_status, %function
-flash_read_status:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 0
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
-	.save {r4, lr}
-	mov	r3, #112
-	mov	r4, r0
-	str	r3, [r0, #8]
-	mov	r0, #120
-	bl	timer_delay_ns
-	ldr	r0, [r4]
-	uxtb	r0, r0
-	ldmfd	sp!, {r4, pc}
-	.fnend
-	.size	flash_read_status, .-flash_read_status
-	.align	2
-	.global	toshiba_set_rr_para
-	.type	toshiba_set_rr_para, %function
-toshiba_set_rr_para:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 0
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, lr}
-	add	r8, r1, r1, asl #2
-	ldr	r9, .L273
-	mov	r5, r0
-	ldr	r7, .L273+4
-	mov	r6, r1
-	add	r10, r9, #80
-	mov	r4, #0
-.L264:
-	ldrb	r3, [r7, #1174]	@ zero_extendqisi2
-	cmp	r4, r3
-	bcs	.L272
-	mov	r3, #85
-	str	r3, [r5, #8]
-	ldrsb	r3, [r4, r10]
-	mov	r0, #200
-	str	r3, [r5, #4]
-	bl	timer_delay_ns
-	ldrb	r3, [r7, #1173]	@ zero_extendqisi2
-	cmp	r3, #34
-	addeq	r3, r4, r8
-	addeq	r3, r10, r3
-	beq	.L271
-	cmp	r3, #35
-	addne	r3, r9, r6
-	ldrnesb	r3, [r3, #224]
-	bne	.L270
-	ldr	r3, .L273+8
-	add	r2, r4, r8
-	add	r3, r3, r2
-.L271:
-	ldrsb	r3, [r3, #5]
-.L270:
-	str	r3, [r5]
-	add	r4, r4, #1
-	b	.L264
-.L272:
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L274:
-	.align	2
-.L273:
-	.word	.LANCHOR1
-	.word	.LANCHOR0
-	.word	.LANCHOR1+128
-	.fnend
-	.size	toshiba_set_rr_para, .-toshiba_set_rr_para
-	.align	2
-	.type	hynix_set_rr_para, %function
-hynix_set_rr_para:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 0
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, lr}
-	mov	r5, r0, asl #8
-	ldr	r3, .L282
-	ldr	r4, [r3, #1176]
-	ldr	r7, [r3, #1040]
-	add	lr, r4, #128
-	add	r9, r4, #127
-	mov	r3, r4
-	ldrb	ip, [r4, #113]	@ zero_extendqisi2
-	ldrb	r2, [r3, #112]!	@ zero_extendqisi2
-	add	r6, r7, r5
-	cmp	r2, #8
-	mul	r1, r1, ip
-	movne	r2, #160
-	mlane	r1, r2, r0, r1
-	sub	ip, ip, #1
-	add	r8, lr, ip
-	mov	r2, #54
-	str	r2, [r6, #2056]
-	add	r1, r1, #32
-	add	r3, r3, r1
-	sub	r4, r3, #1
-.L278:
-	cmp	r9, r8
-	beq	.L281
-	ldrb	r3, [r9, #1]!	@ zero_extendqisi2
-	mov	r0, #120
-	str	r3, [r6, #2052]
-	bl	timer_delay_ns
-	ldrsb	r3, [r4, #1]!
-	str	r3, [r6, #2048]
-	b	.L278
-.L281:
-	add	r5, r7, r5
-	mov	r3, #22
-	str	r3, [r5, #2056]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
-.L283:
-	.align	2
-.L282:
-	.word	.LANCHOR0
-	.fnend
-	.size	hynix_set_rr_para, .-hynix_set_rr_para
-	.align	2
-	.global	hynix_reconfig_rr_para
-	.type	hynix_reconfig_rr_para, %function
-hynix_reconfig_rr_para:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 0
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
-	ldr	r5, .L290
-	ldrb	r2, [r5, #1173]	@ zero_extendqisi2
-	sub	r2, r2, #1
-	cmp	r2, #7
-	ldmhifd	sp!, {r3, r4, r5, pc}
-	ldr	r2, [r5, #1176]
-	add	r2, r2, r0
-	ldrb	r2, [r2, #120]	@ zero_extendqisi2
-	cmp	r2, #0
-	ldmeqfd	sp!, {r3, r4, r5, pc}
-	mov	r1, #0
-	mov	r4, r0
-	bl	hynix_set_rr_para
-	ldr	r2, [r5, #1176]
-	mov	r3, #0
-	add	r4, r2, r4
-	strb	r3, [r4, #120]
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L291:
-	.align	2
-.L290:
-	.word	.LANCHOR0
-	.fnend
-	.size	hynix_reconfig_rr_para, .-hynix_reconfig_rr_para
-	.align	2
 	.global	nandc_set_ddr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_set_ddr_para, %function
 nandc_set_ddr_para:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L295
-	ldrb	r2, [r3, #1028]	@ zero_extendqisi2
-	ldr	r3, [r3, #1040]
-	cmp	r2, #9
-	mov	r2, r0, asl #16
-	mov	r0, r0, asl #8
-	orr	r0, r2, r0
-	orr	r0, r0, #3
-	streq	r0, [r3, #80]
-	strne	r0, [r3, #304]
+	ldr	r2, .L296
+	ldrb	r3, [r2, #1028]	@ zero_extendqisi2
+	ldr	r2, [r2, #1044]
+	cmp	r3, #9
+	lsl	r3, r0, #16
+	lsl	r0, r0, #8
+	orr	r3, r3, r0
+	orr	r3, r3, #3
+	streq	r3, [r2, #80]
+	strne	r3, [r2, #304]
 	bx	lr
-.L296:
+.L297:
 	.align	2
-.L295:
+.L296:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_set_ddr_para, .-nandc_set_ddr_para
 	.align	2
 	.global	nandc_get_ddr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_get_ddr_para, %function
 nandc_get_ddr_para:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L301
+	ldr	r3, .L302
 	ldrb	r2, [r3, #1028]	@ zero_extendqisi2
-	ldr	r3, [r3, #1040]
+	ldr	r3, [r3, #1044]
 	cmp	r2, #9
 	ldreq	r0, [r3, #80]
 	ldrne	r0, [r3, #304]
 	ubfx	r0, r0, #8, #8
 	bx	lr
-.L302:
+.L303:
 	.align	2
-.L301:
+.L302:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_get_ddr_para, .-nandc_get_ddr_para
 	.align	2
 	.global	nandc_set_if_mode
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_set_if_mode, %function
 nandc_set_if_mode:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r1, .L311
+	ldr	r1, .L312
 	ands	ip, r0, #6
-	ldr	r3, [r1, #1040]
+	ldr	r3, [r1, #1044]
 	ldr	r2, [r3]
 	bfieq	r2, ip, #13, #1
-	beq	.L307
-	orr	r2, r2, #24576
+	beq	.L308
 	ldrb	r1, [r1, #1028]	@ zero_extendqisi2
+	orr	r2, r2, #24576
 	bfc	r2, #15, #1
 	tst	r0, #4
 	orr	r2, r2, #196608
 	movw	r0, #8321
 	orrne	r2, r2, #32768
 	cmp	r1, #9
-	ldr	r1, .L311+4
+	ldr	r1, .L312+4
 	streq	r0, [r3, #8]
 	strne	r0, [r3, #344]
 	streq	r1, [r3, #80]
@@ -1429,217 +1467,228 @@
 	movne	r1, #39
 	streq	r1, [r3, #84]
 	strne	r1, [r3, #308]
-.L307:
+.L308:
 	str	r2, [r3]
 	bx	lr
-.L312:
+.L313:
 	.align	2
-.L311:
+.L312:
 	.word	.LANCHOR0
 	.word	1052675
 	.fnend
 	.size	nandc_set_if_mode, .-nandc_set_if_mode
 	.align	2
 	.global	nandc_cs
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_cs, %function
 nandc_cs:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L314
+	ldr	r3, .L315
 	mov	r2, #1
-	mov	r0, r2, asl r0
-	ldr	r1, [r3, #1040]
+	lsl	r0, r2, r0
+	ldr	r1, [r3, #1044]
 	ldr	r3, [r1]
 	bfi	r3, r0, #0, #8
 	str	r3, [r1]
 	bx	lr
-.L315:
+.L316:
 	.align	2
-.L314:
+.L315:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_cs, .-nandc_cs
 	.align	2
+	.global	flash_wait_device_ready_raw
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	flash_wait_device_ready_raw, %function
+flash_wait_device_ready_raw:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 8
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.pad #12
+	mov	r6, r0
+	ldr	r4, .L326
+	mov	r5, r1
+	str	r2, [sp, #4]
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	cmp	r3, r0
+	bhi	.L318
+	mov	r2, #812
+	ldr	r1, .L326+4
+	ldr	r0, .L326+8
+	bl	printk
+	bl	dump_stack
+.L318:
+	add	r6, r4, r6
+	ldr	r3, [r4, #1044]
+	ldrb	r6, [r6, #1144]	@ zero_extendqisi2
+	lsr	r8, r5, #8
+	lsr	r9, r5, #16
+	lsr	r10, r5, #24
+	mov	fp, #120
+	add	r7, r3, r6, lsl #8
+.L320:
+	mov	r0, r6
+	bl	nandc_cs
+	uxtb	r2, r5
+	str	fp, [r7, #2056]
+	mov	r0, #120
+	str	r2, [r7, #2052]
+	ldrb	r2, [r4, #1152]	@ zero_extendqisi2
+	str	r8, [r7, #2052]
+	str	r9, [r7, #2052]
+	cmp	r2, #0
+	strne	r10, [r7, #2052]
+	bl	ndelay
+	ldr	r0, [r7, #2048]
+	uxtb	r0, r0
+	bl	nandc_de_cs.constprop.35
+	ldr	r3, [sp, #4]
+	bics	r3, r3, r0
+	movne	r2, #1
+	moveq	r2, #0
+	cmp	r0, #255
+	orreq	r2, r2, #1
+	cmp	r2, #0
+	bne	.L320
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L327:
+	.align	2
+.L326:
+	.word	.LANCHOR0
+	.word	.LANCHOR1+211
+	.word	.LC0
+	.fnend
+	.size	flash_wait_device_ready_raw, .-flash_wait_device_ready_raw
+	.align	2
+	.global	flash_wait_device_ready
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	flash_wait_device_ready, %function
+flash_wait_device_ready:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	mov	r3, #1
+	ldr	r5, .L339
+	tst	r0, #50331648
+	mov	r7, r1
+	ldrb	r6, [r5, #1153]	@ zero_extendqisi2
+	rsb	r2, r6, #24
+	lsl	r6, r3, r6
+	lsl	r4, r3, r2
+	sub	r6, r6, #1
+	sub	r4, r4, #1
+	and	r6, r6, r0, asr r2
+	and	r4, r4, r0
+	uxtb	r6, r6
+	bne	.L329
+	ldrb	r3, [r5]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L330
+	ldrb	r3, [r5, #1]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L329
+.L330:
+	ldrh	r8, [r5, #2]
+	mov	r0, r4
+	mov	r1, r8
+	bl	__aeabi_uidiv
+	mov	r1, r8
+	mul	r9, r8, r0
+	mov	r0, r4
+	bl	__aeabi_uidivmod
+	ldrb	r3, [r5, #1]	@ zero_extendqisi2
+	lsl	r1, r1, #1
+	cmp	r3, #0
+	addeq	r5, r5, r1
+	addne	r4, r1, r9
+	ldrheq	r4, [r5, #4]
+	addeq	r4, r4, r9
+.L329:
+	mov	r2, r7
+	mov	r1, r4
+	mov	r0, r6
+	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
+	b	flash_wait_device_ready_raw
+.L340:
+	.align	2
+.L339:
+	.word	.LANCHOR0
+	.fnend
+	.size	flash_wait_device_ready, .-flash_wait_device_ready
+	.align	2
 	.global	nandc_de_cs
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_de_cs, %function
 nandc_de_cs:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L317
-	ldr	r2, [r3, #1040]
+	ldr	r3, .L342
+	ldr	r2, [r3, #1044]
 	ldr	r3, [r2]
 	bfc	r3, #0, #8
 	bfc	r3, #17, #1
 	str	r3, [r2]
 	bx	lr
-.L318:
-	.align	2
-.L317:
-	.word	.LANCHOR0
-	.fnend
-	.size	nandc_de_cs, .-nandc_de_cs
-	.align	2
-	.global	flash_wait_device_ready_raw
-	.type	flash_wait_device_ready_raw, %function
-flash_wait_device_ready_raw:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 8
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #12
-	mov	r6, r0
-	ldr	r4, .L328
-	mov	r5, r1
-	mov	r7, r2
-	ldrb	r3, [r4, #1101]	@ zero_extendqisi2
-	cmp	r3, r0
-	bhi	.L320
-	ldr	r1, .L328+4
-	mov	r2, #812
-	ldr	r0, .L328+8
-	bl	printk
-	bl	dump_stack
-.L320:
-	add	r6, r4, r6
-	ldr	r3, [r4, #1040]
-	mov	r9, r5, lsr #16
-	mov	r10, r5, lsr #24
-	ldrb	r6, [r6, #1180]	@ zero_extendqisi2
-	mov	fp, #120
-	mov	r2, r5, lsr #8
-	str	r2, [sp]
-	add	r8, r3, r6, asl #8
-.L322:
-	mov	r0, r6
-	bl	nandc_cs
-	str	fp, [r8, #2056]
-	uxtb	r2, r5
-	str	r2, [r8, #2052]
-	ldrb	r2, [r4, #1188]	@ zero_extendqisi2
-	mov	r0, #120
-	cmp	r2, #0
-	ldr	r3, [sp]
-	str	r3, [r8, #2052]
-	str	r9, [r8, #2052]
-	strne	r10, [r8, #2052]
-	bl	timer_delay_ns
-	ldr	r2, [r8, #2048]
-	mov	r0, r6
-	uxtb	r2, r2
-	str	r2, [sp, #4]
-	bl	nandc_de_cs
-	ldr	r2, [sp, #4]
-	sub	r1, r2, #255
-	and	r0, r7, r2
-	clz	r1, r1
-	mov	r1, r1, lsr #5
-	cmp	r0, r7
-	orrne	r1, r1, #1
-	cmp	r1, #0
-	bne	.L322
-	mov	r0, r2
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L329:
-	.align	2
-.L328:
-	.word	.LANCHOR0
-	.word	.LANCHOR1+232
-	.word	.LC0
-	.fnend
-	.size	flash_wait_device_ready_raw, .-flash_wait_device_ready_raw
-	.align	2
-	.global	flash_wait_device_ready
-	.type	flash_wait_device_ready, %function
-flash_wait_device_ready:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 0
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
-	.save {r4, r5, r6, r7, r8, lr}
-	mov	r3, #1
-	ldr	r6, .L342
-	tst	r0, #50331648
-	mov	r8, r1
-	ldrb	r2, [r6, #1189]	@ zero_extendqisi2
-	rsb	r5, r2, #24
-	mov	r4, r3, asl r5
-	mov	r3, r3, asl r2
-	sub	r3, r3, #1
-	sub	r4, r4, #1
-	and	r5, r3, r0, asr r5
-	and	r4, r4, r0
-	uxtb	r5, r5
-	bne	.L331
-	ldrb	r3, [r6]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L332
-	ldrb	r3, [r6, #1]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L331
-.L332:
-	ldrh	r7, [r6, #2]
-	mov	r0, r4
-	mov	r1, r7
-	bl	__aeabi_uidiv
-	ldrb	r3, [r6, #1]	@ zero_extendqisi2
-	cmp	r3, #0
-	ldreq	r3, .L342
-	mul	r0, r7, r0
-	rsb	r4, r0, r4
-	mov	r4, r4, asl #1
-	addeq	r4, r3, r4
-	ldreqh	r4, [r4, #4]
-	add	r4, r4, r0
-.L331:
-	mov	r0, r5
-	mov	r1, r4
-	mov	r2, r8
-	ldmfd	sp!, {r4, r5, r6, r7, r8, lr}
-	b	flash_wait_device_ready_raw
 .L343:
 	.align	2
 .L342:
 	.word	.LANCHOR0
 	.fnend
-	.size	flash_wait_device_ready, .-flash_wait_device_ready
+	.size	nandc_de_cs, .-nandc_de_cs
 	.align	2
 	.global	nandc_wait_flash_ready_no_delay
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_wait_flash_ready_no_delay, %function
 nandc_wait_flash_ready_no_delay:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, lr}
+	push	{r0, r1, r2, r4, r5, lr}
 	.save {r4, r5, lr}
 	.pad #12
 	ldr	r4, .L350
 	ldr	r5, .L350+4
 .L346:
-	ldr	r3, [r5, #1040]
+	ldr	r3, [r5, #1044]
 	ldr	r3, [r3]
 	str	r3, [sp, #4]
 	ldr	r3, [sp, #4]
 	tst	r3, #512
 	bne	.L347
 	mov	r0, #10
-	bl	timer_delay_ns
+	bl	ndelay
 	subs	r4, r4, #1
 	bne	.L346
 	mvn	r0, #0
-	b	.L345
-.L347:
-	mov	r0, #0
-.L345:
+.L344:
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, pc}
+	pop	{r4, r5, pc}
+.L347:
+	mov	r0, #0
+	b	.L344
 .L351:
 	.align	2
 .L350:
@@ -1649,373 +1698,392 @@
 	.size	nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay
 	.align	2
 	.global	zftl_flash_enter_slc_mode
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_flash_enter_slc_mode, %function
 zftl_flash_enter_slc_mode:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	.save {r3, r4, r5, r6, r7, lr}
-	ldr	r3, .L371
+	ldr	r3, .L375
 	ldrb	r2, [r3]	@ zero_extendqisi2
 	cmp	r2, #0
-	ldmeqfd	sp!, {r3, r4, r5, r6, r7, pc}
+	bxeq	lr
 	cmp	r2, #1
-	ldr	r5, [r3, #1040]
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	ldr	r5, [r3, #1044]
 	bne	.L355
-	ldr	r3, .L371+4
+	ldr	r3, .L375+4
 	ldrb	r3, [r3, #33]	@ zero_extendqisi2
 	cmp	r3, #0
-	addne	r0, r5, r0, asl #8
-	strne	r3, [r0, #2056]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, pc}
+	addne	r4, r5, r0, lsl #8
+	bne	.L374
+	pop	{r4, r5, r6, r7, r8, pc}
 .L355:
 	cmp	r2, #2
 	mov	r4, r0
 	bne	.L357
 	add	r3, r3, r0
-	ldrb	r2, [r3, #1192]	@ zero_extendqisi2
+	ldrb	r2, [r3, #1154]	@ zero_extendqisi2
 	cmp	r2, #0
-	ldmeqfd	sp!, {r3, r4, r5, r6, r7, pc}
-	ldr	r6, .L371+4
+	popeq	{r4, r5, r6, r7, r8, pc}
+	ldr	r6, .L375+4
 	mov	r2, #0
-	strb	r2, [r3, #1192]
+	strb	r2, [r3, #1154]
 	ldrb	r3, [r6, #33]	@ zero_extendqisi2
 	cmp	r3, r2
-	ldmeqfd	sp!, {r3, r4, r5, r6, r7, pc}
+	popeq	{r4, r5, r6, r7, r8, pc}
 	bl	nandc_wait_flash_ready_no_delay
 	ldrb	r3, [r6, #33]	@ zero_extendqisi2
-	add	r4, r5, r4, asl #8
+	add	r4, r5, r4, lsl #8
+.L374:
 	str	r3, [r4, #2056]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, pc}
+	pop	{r4, r5, r6, r7, r8, pc}
 .L357:
 	cmp	r2, #3
-	ldmnefd	sp!, {r3, r4, r5, r6, r7, pc}
+	popne	{r4, r5, r6, r7, r8, pc}
 	add	r6, r3, r0
-	ldrb	r3, [r6, #1192]	@ zero_extendqisi2
+	ldrb	r3, [r6, #1154]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldmeqfd	sp!, {r3, r4, r5, r6, r7, pc}
-	add	r4, r5, r4, asl #8
+	popeq	{r4, r5, r6, r7, r8, pc}
+	add	r4, r5, r4, lsl #8
+	mov	r7, #0
 	bl	nandc_wait_flash_ready_no_delay
 	mov	r3, #239
 	mov	r0, #100
 	str	r3, [r4, #2056]
 	mov	r3, #145
 	str	r3, [r4, #2052]
-	mov	r7, #0
-	strb	r7, [r6, #1192]
-	bl	timer_delay_ns
-	str	r7, [r4, #2048]
+	strb	r7, [r6, #1154]
+	bl	ndelay
 	mov	r3, #1
+	str	r7, [r4, #2048]
 	mov	r0, #150
 	str	r3, [r4, #2048]
 	str	r7, [r4, #2048]
 	str	r7, [r4, #2048]
-	bl	timer_delay_ns
+	bl	ndelay
 	bl	nandc_wait_flash_ready_no_delay
 	mov	r3, #218
 	mov	r0, #50
 	str	r3, [r4, #2056]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	b	timer_delay_ns
-.L372:
+	pop	{r4, r5, r6, r7, r8, lr}
+	b	ndelay
+.L376:
 	.align	2
-.L371:
+.L375:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
 	.fnend
 	.size	zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode
 	.align	2
 	.global	zftl_flash_exit_slc_mode
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_flash_exit_slc_mode, %function
 zftl_flash_exit_slc_mode:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L394
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	ldr	r3, .L402
+	ldrb	r2, [r3]	@ zero_extendqisi2
+	cmp	r2, #0
+	bxeq	lr
+	cmp	r2, #1
+	push	{r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
-	ldrb	r4, [r3]	@ zero_extendqisi2
-	cmp	r4, #0
-	ldmeqfd	sp!, {r4, r5, r6, r7, r8, pc}
-	cmp	r4, #1
-	ldr	r7, [r3, #1040]
-	bne	.L376
-	ldr	r3, .L394+4
+	ldr	r7, [r3, #1044]
+	bne	.L380
+	ldr	r3, .L402+4
 	ldrb	r3, [r3, #34]	@ zero_extendqisi2
 	cmp	r3, #0
-	addne	r0, r7, r0, asl #8
-	strne	r3, [r0, #2056]
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L376:
-	cmp	r4, #2
-	mov	r5, r0
-	bne	.L378
+	addne	r4, r7, r0, lsl #8
+	bne	.L401
+	pop	{r4, r5, r6, r7, r8, pc}
+.L380:
+	cmp	r2, #2
+	mov	r4, r0
+	bne	.L382
 	add	r3, r3, r0
-	ldrb	r2, [r3, #1192]	@ zero_extendqisi2
+	ldrb	r2, [r3, #1154]	@ zero_extendqisi2
 	cmp	r2, #0
-	ldmnefd	sp!, {r4, r5, r6, r7, r8, pc}
-	ldr	r4, .L394+4
-	ldrb	r2, [r4, #16]	@ zero_extendqisi2
+	popne	{r4, r5, r6, r7, r8, pc}
+	ldr	r5, .L402+4
+	ldrb	r2, [r5, #16]	@ zero_extendqisi2
 	cmp	r2, #2
 	movne	r2, #4
-	strb	r2, [r3, #1192]
-	ldrb	r3, [r4, #34]	@ zero_extendqisi2
+	strb	r2, [r3, #1154]
+	ldrb	r3, [r5, #34]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldmeqfd	sp!, {r4, r5, r6, r7, r8, pc}
+	popeq	{r4, r5, r6, r7, r8, pc}
 	bl	nandc_wait_flash_ready_no_delay
-	ldrb	r3, [r4, #34]	@ zero_extendqisi2
-	add	r5, r7, r5, asl #8
-	str	r3, [r5, #2056]
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L378:
-	cmp	r4, #3
-	ldmnefd	sp!, {r4, r5, r6, r7, r8, pc}
-	add	r4, r3, r0
-	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
+	ldrb	r3, [r5, #34]	@ zero_extendqisi2
+	add	r4, r7, r4, lsl #8
+.L401:
+	str	r3, [r4, #2056]
+	pop	{r4, r5, r6, r7, r8, pc}
+.L382:
+	cmp	r2, #3
+	popne	{r4, r5, r6, r7, r8, pc}
+	add	r6, r3, r0
+	ldrb	r3, [r6, #1154]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldmnefd	sp!, {r4, r5, r6, r7, r8, pc}
-	ldr	r8, .L394+4
+	popne	{r4, r5, r6, r7, r8, pc}
+	ldr	r8, .L402+4
+	lsl	r4, r4, #8
 	bl	nandc_wait_flash_ready_no_delay
-	mov	r5, r5, asl #8
-	mov	r0, #100
-	add	r6, r7, r5
-	add	r5, r7, r5
 	ldrb	r3, [r8, #16]	@ zero_extendqisi2
+	add	r5, r7, r4
+	mov	r0, #100
+	add	r4, r7, r4
 	cmp	r3, #2
 	movne	r3, #4
-	strb	r3, [r4, #1192]
+	strb	r3, [r6, #1154]
 	mov	r3, #239
-	str	r3, [r6, #2056]
+	str	r3, [r5, #2056]
 	mov	r3, #145
-	str	r3, [r6, #2052]
-	bl	timer_delay_ns
+	str	r3, [r5, #2052]
+	bl	ndelay
 	ldrb	r3, [r8, #11]	@ zero_extendqisi2
 	mov	r0, #150
 	cmp	r3, #9
 	mov	r3, #1
-	streq	r3, [r6, #2048]
-	ldrneb	r2, [r4, #1192]	@ zero_extendqisi2
-	strne	r2, [r6, #2048]
-	str	r3, [r6, #2048]
+	ldrbne	r2, [r6, #1154]	@ zero_extendqisi2
+	streq	r3, [r5, #2048]
+	strne	r2, [r5, #2048]
+	str	r3, [r5, #2048]
 	mov	r3, #0
-	str	r3, [r6, #2048]
-	str	r3, [r6, #2048]
-	bl	timer_delay_ns
+	str	r3, [r5, #2048]
+	str	r3, [r5, #2048]
+	bl	ndelay
 	bl	nandc_wait_flash_ready_no_delay
 	mov	r3, #223
 	mov	r0, #50
-	str	r3, [r5, #2056]
-	ldmfd	sp!, {r4, r5, r6, r7, r8, lr}
-	b	timer_delay_ns
-.L395:
+	str	r3, [r4, #2056]
+	pop	{r4, r5, r6, r7, r8, lr}
+	b	ndelay
+.L403:
 	.align	2
-.L394:
+.L402:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
 	.fnend
 	.size	zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode
 	.align	2
 	.global	flash_start_page_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_start_page_read, %function
 flash_start_page_read:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	mvn	r2, #0
-	ldr	r7, .L411
-	mov	r5, r0
-	mov	r8, r1
-	ldrb	r3, [r7, #1189]	@ zero_extendqisi2
-	rsb	r6, r3, #24
-	mvn	r2, r2, asl r3
-	and	r2, r2, r1, lsr r6
-	ldrb	r3, [r7, #1101]	@ zero_extendqisi2
-	uxtb	r4, r2
-	cmp	r3, r4
-	bhi	.L397
-	ldr	r1, .L411+4
+	ldr	r4, .L419
+	mov	r7, r0
+	mov	r10, r1
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
+	rsb	r5, r3, #24
+	lsr	r6, r1, r5
+	bic	r6, r6, r2, lsl r3
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	uxtb	r6, r6
+	cmp	r3, r6
+	bhi	.L405
 	movw	r2, #1013
-	ldr	r0, .L411+8
+	ldr	r1, .L419+4
+	ldr	r0, .L419+8
 	bl	printk
 	bl	dump_stack
-.L397:
-	ldrb	r3, [r7, #1101]	@ zero_extendqisi2
-	ldr	r9, .L411
-	cmp	r3, r4
-	ldmlsfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-	add	r4, r9, r4
+.L405:
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	cmp	r3, r6
+	popls	{r4, r5, r6, r7, r8, r9, r10, pc}
+	add	r6, r4, r6
 	mvn	r3, #0
-	bic	r6, r8, r3, asl r6
-	ubfx	r8, r8, #24, #2
-	ldrb	fp, [r4, #1180]	@ zero_extendqisi2
-	ldr	r4, [r9, #1040]
-	mov	r0, fp
-	mov	r10, fp, asl #8
+	ldrb	r9, [r6, #1144]	@ zero_extendqisi2
+	bic	r5, r10, r3, lsl r5
+	ubfx	r10, r10, #24, #2
+	ldr	r6, [r4, #1044]
+	mov	r0, r9
 	bl	nandc_cs
-	cmp	r8, #0
-	bne	.L399
-	mov	r0, r6
+	cmp	r10, #0
+	lsl	r8, r9, #8
+	bne	.L407
+	mov	r0, r5
 	bl	slc_phy_page_address_calc
-	ldrb	r3, [r9]	@ zero_extendqisi2
+	ldrb	r3, [r4]	@ zero_extendqisi2
+	mov	r5, r0
 	cmp	r3, #0
-	mov	r6, r0
-	beq	.L400
-	mov	r0, fp
+	beq	.L408
+	mov	r0, r9
 	bl	zftl_flash_enter_slc_mode
-	b	.L400
-.L399:
-	ldr	r3, [r9, #1096]
-	ldrb	r3, [r3, #12]	@ zero_extendqisi2
-	cmp	r3, #3
-	bne	.L401
-	ldrb	r3, [r9, #1196]	@ zero_extendqisi2
-	cmp	r3, #0
-	bne	.L401
-	ldrb	r3, [r9, #1197]	@ zero_extendqisi2
-	cmp	r3, #0
-	addeq	r3, r4, r10
-	streq	r8, [r3, #2056]
-	beq	.L400
-.L401:
-	mov	r0, fp
-	bl	zftl_flash_exit_slc_mode
-.L400:
-	ldr	r3, [r7, #1096]
+.L408:
+	ldr	r3, [r4, #1104]
 	ldrb	r2, [r3, #7]	@ zero_extendqisi2
 	cmp	r2, #1
-	bne	.L402
+	bne	.L410
 	ldrb	r3, [r3, #12]	@ zero_extendqisi2
 	cmp	r3, #2
-	addeq	r3, r4, r10
+	addeq	r3, r6, r8
 	moveq	r2, #38
 	streq	r2, [r3, #2056]
-.L402:
-	add	r2, r4, r10
-	mov	r3, #0
-	str	r3, [r2, #2056]
-	str	r3, [r2, #2052]
-	str	r3, [r2, #2052]
-	uxtb	r3, r6
-	str	r3, [r2, #2052]
-	mov	r3, r6, lsr #8
-	str	r3, [r2, #2052]
-	mov	r3, r6, lsr #16
-	str	r3, [r2, #2052]
-	ldrb	r3, [r7, #1188]	@ zero_extendqisi2
+.L410:
+	add	r3, r6, r8
+	mov	r2, #0
+	str	r2, [r3, #2056]
+	str	r2, [r3, #2052]
+	str	r2, [r3, #2052]
+	uxtb	r2, r5
+	str	r2, [r3, #2052]
+	lsr	r2, r5, #8
+	str	r2, [r3, #2052]
+	lsr	r2, r5, #16
+	str	r2, [r3, #2052]
+	ldrb	r2, [r4, #1152]	@ zero_extendqisi2
+	cmp	r2, #0
+	lsrne	r5, r5, #24
+	strne	r5, [r3, #2052]
+	add	r3, r6, r8
+	str	r7, [r3, #2056]
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L407:
+	ldr	r3, [r4, #1104]
+	ldrb	r3, [r3, #12]	@ zero_extendqisi2
+	cmp	r3, #3
+	bne	.L409
+	ldrb	r3, [r4, #1158]	@ zero_extendqisi2
 	cmp	r3, #0
-	movne	r3, r6, lsr #24
-	strne	r3, [r2, #2052]
-	add	r3, r4, r10
-	str	r5, [r3, #2056]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L412:
+	bne	.L409
+	ldrb	r3, [r4, #1159]	@ zero_extendqisi2
+	cmp	r3, #0
+	addeq	r3, r6, r8
+	streq	r10, [r3, #2056]
+	beq	.L408
+.L409:
+	mov	r0, r9
+	bl	zftl_flash_exit_slc_mode
+	b	.L408
+.L420:
 	.align	2
-.L411:
+.L419:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+260
+	.word	.LANCHOR1+239
 	.word	.LC0
 	.fnend
 	.size	flash_start_page_read, .-flash_start_page_read
 	.align	2
 	.global	nandc_wait_flash_ready
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_wait_flash_ready, %function
 nandc_wait_flash_ready:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, lr}
+	push	{r0, r1, r2, r4, r5, lr}
 	.save {r4, r5, lr}
 	.pad #12
 	mov	r0, #150
-	bl	timer_delay_ns
-	ldr	r4, .L419
-	ldr	r5, .L419+4
-.L415:
-	ldr	r3, [r5, #1040]
+	ldr	r4, .L427
+	ldr	r5, .L427+4
+	bl	ndelay
+.L423:
+	ldr	r3, [r5, #1044]
 	ldr	r3, [r3]
 	str	r3, [sp, #4]
 	ldr	r3, [sp, #4]
 	tst	r3, #512
-	bne	.L416
+	bne	.L424
 	mov	r0, #10
-	bl	timer_delay_ns
+	bl	ndelay
 	subs	r4, r4, #1
-	bne	.L415
+	bne	.L423
 	mvn	r0, #0
-	b	.L414
-.L416:
-	mov	r0, #0
-.L414:
+.L421:
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, pc}
-.L420:
+	pop	{r4, r5, pc}
+.L424:
+	mov	r0, #0
+	b	.L421
+.L428:
 	.align	2
-.L419:
+.L427:
 	.word	100000
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_wait_flash_ready, .-nandc_wait_flash_ready
 	.align	2
 	.global	sandisk_set_rr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sandisk_set_rr_para, %function
 sandisk_set_rr_para:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
 	mov	r3, #239
-	mov	r5, r0
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	str	r3, [r0, #8]
 	mov	r3, #17
+	mov	r5, r0
+	mov	r4, r1
 	str	r3, [r0, #4]
 	mov	r0, #200
-	mov	r4, r1
-	bl	timer_delay_ns
-	ldr	r0, .L429
-	ldr	r1, .L429+4
-	add	r4, r4, r4, asl #2
-	sub	ip, r0, #48
+	bl	ndelay
+	ldr	r0, .L436
+	add	r4, r4, r4, lsl #2
+	ldr	r1, .L436+4
 	mov	r2, #0
-.L422:
-	ldrb	r3, [r1, #1174]	@ zero_extendqisi2
+	sub	ip, r0, #45
+.L430:
+	ldrb	r3, [r1, #1101]	@ zero_extendqisi2
 	cmp	r2, r3
-	bcs	.L428
-	ldrb	r3, [r1, #1173]	@ zero_extendqisi2
+	bcc	.L433
+	pop	{r4, r5, r6, lr}
+	b	nandc_wait_flash_ready
+.L433:
+	ldrb	r3, [r1, #1100]	@ zero_extendqisi2
 	cmp	r3, #67
 	add	r3, r2, r4
 	addeq	r3, ip, r3
 	addne	r3, r0, r3
-	add	r2, r2, #1
 	ldrsb	r3, [r3, #5]
+	add	r2, r2, #1
 	str	r3, [r5]
-	b	.L422
-.L428:
-	ldmfd	sp!, {r3, r4, r5, lr}
-	b	nandc_wait_flash_ready
-.L430:
+	b	.L430
+.L437:
 	.align	2
-.L429:
-	.word	.LANCHOR1+128
+.L436:
+	.word	.LANCHOR1+86
 	.word	.LANCHOR0
 	.fnend
 	.size	sandisk_set_rr_para, .-sandisk_set_rr_para
 	.align	2
 	.global	toshiba_3d_set_tlc_rr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	toshiba_3d_set_tlc_rr_para, %function
 toshiba_3d_set_tlc_rr_para:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
 	add	r1, r1, #1
-	stmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	.save {r3, r4, r5, r6, r7, lr}
-	rsb	r1, r1, r1, asl #3
-	ldr	r5, .L433
+	ldr	r5, .L440
+	rsb	r1, r1, r1, lsl #3
 	mov	r6, #0
 	mov	r7, #213
 	mvn	r3, #118
@@ -2024,43 +2092,46 @@
 	str	r6, [r0, #4]
 	mov	r4, r0
 	str	r3, [r0, #4]
-	add	r3, r5, #284
+	movw	r3, #261
+	ldrsb	r3, [r5, r3]
+	str	r3, [r0]
+	movw	r3, #262
+	ldrsb	r3, [r5, r3]
+	str	r3, [r0]
+	movw	r3, #263
+	ldrsb	r3, [r5, r3]
+	str	r3, [r0]
+	add	r3, r5, #264
 	ldrsb	r3, [r3]
-	str	r3, [r0]
-	movw	r3, #285
-	ldrsb	r3, [r5, r3]
-	str	r3, [r0]
-	movw	r3, #286
-	ldrsb	r3, [r5, r3]
-	str	r3, [r0]
-	movw	r3, #287
-	ldrsb	r3, [r5, r3]
 	str	r3, [r0]
 	bl	nandc_wait_flash_ready
-	str	r7, [r4, #8]
 	mvn	r3, #117
+	str	r7, [r4, #8]
 	str	r6, [r4, #4]
 	str	r3, [r4, #4]
-	add	r3, r5, #288
-	ldrsb	r3, [r3]
-	str	r3, [r4]
-	movw	r3, #289
+	movw	r3, #265
 	ldrsb	r3, [r5, r3]
 	str	r3, [r4]
-	movw	r3, #290
+	movw	r3, #266
+	ldrsb	r3, [r5, r3]
+	str	r3, [r4]
+	movw	r3, #267
 	ldrsb	r3, [r5, r3]
 	str	r3, [r4]
 	str	r6, [r4]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, lr}
+	pop	{r4, r5, r6, r7, r8, lr}
 	b	nandc_wait_flash_ready
-.L434:
+.L441:
 	.align	2
-.L433:
+.L440:
 	.word	.LANCHOR1
 	.fnend
 	.size	toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para
 	.align	2
 	.global	toshiba_3d_set_slc_rr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	toshiba_3d_set_slc_rr_para, %function
 toshiba_3d_set_slc_rr_para:
 	.fnstart
@@ -2073,39 +2144,42 @@
 	mov	r3, #0
 	str	r3, [r0, #4]
 	str	r2, [r0, #4]
-	ldr	r2, .L436
-	add	r2, r2, r1
-	movw	r1, #685
-	ldrsb	r2, [r2, r1]
+	ldr	r2, .L443
+	add	r1, r2, r1
+	movw	r2, #661
+	ldrsb	r2, [r1, r2]
 	str	r2, [r0]
 	str	r3, [r0]
 	str	r3, [r0]
 	str	r3, [r0]
 	b	nandc_wait_flash_ready
-.L437:
+.L444:
 	.align	2
-.L436:
+.L443:
 	.word	.LANCHOR1
 	.fnend
 	.size	toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para
 	.align	2
 	.global	toshiba_tlc_set_rr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	toshiba_tlc_set_rr_para, %function
 toshiba_tlc_set_rr_para:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	cmp	r2, #0
-	ldr	r3, .L442
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
+	ldr	r3, .L449
 	mov	r6, #239
-	mov	r4, r0
-	str	r6, [r0, #8]
-	beq	.L439
-	rsb	r1, r1, r1, asl #3
+	beq	.L446
+	rsb	r5, r1, r1, lsl #3
 	mov	r2, #18
-	add	r5, r3, r1
+	str	r6, [r0, #8]
+	mov	r4, r0
+	add	r5, r3, r5
 	str	r2, [r0, #4]
 	ldrb	r3, [r5, #36]	@ zero_extendqisi2
 	str	r3, [r0]
@@ -2116,8 +2190,8 @@
 	ldrb	r3, [r5, #39]	@ zero_extendqisi2
 	str	r3, [r0]
 	bl	nandc_wait_flash_ready
-	str	r6, [r4, #8]
 	mov	r3, #19
+	str	r6, [r4, #8]
 	str	r3, [r4, #4]
 	ldrb	r3, [r5, #40]	@ zero_extendqisi2
 	str	r3, [r4]
@@ -2127,87 +2201,94 @@
 	str	r3, [r4]
 	mov	r3, #0
 	str	r3, [r4]
-	b	.L440
-.L439:
-	add	r3, r3, r1
-	mov	r0, #20
-	str	r0, [r4, #4]
-	ldrb	r3, [r3, #368]	@ zero_extendqisi2
-	str	r3, [r4]
-	str	r2, [r4]
-	str	r2, [r4]
-	str	r2, [r4]
-.L440:
-	ldmfd	sp!, {r4, r5, r6, lr}
+.L447:
+	pop	{r4, r5, r6, lr}
 	b	nandc_wait_flash_ready
-.L443:
+.L446:
+	mov	ip, #20
+	add	r5, r3, r1
+	str	r6, [r0, #8]
+	str	ip, [r0, #4]
+	ldrb	r3, [r5, #365]	@ zero_extendqisi2
+	str	r3, [r0]
+	str	r2, [r0]
+	str	r2, [r0]
+	str	r2, [r0]
+	b	.L447
+.L450:
 	.align	2
-.L442:
+.L449:
 	.word	.LANCHOR2
 	.fnend
 	.size	toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para
 	.align	2
 	.global	ymtc_3d_set_tlc_rr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ymtc_3d_set_tlc_rr_para, %function
 ymtc_3d_set_tlc_rr_para:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	.save {r3, r4, r5, r6, r7, lr}
-	rsb	r1, r1, r1, asl #3
-	ldr	r5, .L446
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	rsb	r1, r1, r1, lsl #3
+	ldr	r5, .L453
 	mov	r7, #239
 	mov	r3, #160
+	mov	r6, #0
 	str	r7, [r0, #8]
+	mov	r4, r0
 	add	r5, r5, r1
 	str	r3, [r0, #4]
-	add	r3, r5, #696
-	mov	r4, r0
-	mov	r6, #0
-	ldrsb	r3, [r3]
+	movw	r3, #671
+	ldrsb	r3, [r5, r3]
 	str	r3, [r0]
-	add	r3, r5, #700
-	ldrsb	r3, [r3]
+	movw	r3, #675
+	ldrsb	r3, [r5, r3]
 	str	r3, [r0]
 	str	r6, [r0]
 	str	r6, [r0]
 	bl	nandc_wait_flash_ready
-	str	r7, [r4, #8]
 	mov	r3, #161
+	str	r7, [r4, #8]
 	str	r3, [r4, #4]
-	movw	r3, #697
+	add	r3, r5, #672
+	ldrsb	r3, [r3]
+	str	r3, [r4]
+	movw	r3, #674
 	ldrsb	r3, [r5, r3]
 	str	r3, [r4]
-	movw	r3, #699
-	ldrsb	r3, [r5, r3]
-	str	r3, [r4]
-	movw	r3, #701
-	ldrsb	r3, [r5, r3]
+	add	r3, r5, #676
+	ldrsb	r3, [r3]
 	str	r3, [r4]
 	str	r6, [r4]
 	bl	nandc_wait_flash_ready
-	str	r7, [r4, #8]
 	mov	r3, #162
+	str	r7, [r4, #8]
 	str	r3, [r4, #4]
-	movw	r3, #698
+	movw	r3, #673
 	ldrsb	r3, [r5, r3]
 	str	r3, [r4]
-	movw	r3, #702
+	movw	r3, #677
 	ldrsb	r3, [r5, r3]
 	str	r3, [r4]
 	str	r6, [r4]
 	str	r6, [r4]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, lr}
+	pop	{r4, r5, r6, r7, r8, lr}
 	b	nandc_wait_flash_ready
-.L447:
+.L454:
 	.align	2
-.L446:
+.L453:
 	.word	.LANCHOR1
 	.fnend
 	.size	ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para
 	.align	2
 	.global	ymtc_3d_set_slc_rr_para
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ymtc_3d_set_slc_rr_para, %function
 ymtc_3d_set_slc_rr_para:
 	.fnstart
@@ -2218,339 +2299,394 @@
 	str	r3, [r0, #8]
 	mov	r3, #163
 	str	r3, [r0, #4]
-	ldr	r3, .L449
-	ldrsb	r3, [r3, r1]
+	ldr	r3, .L456
+	add	r1, r3, r1
+	movw	r3, #1028
+	ldrsb	r3, [r1, r3]
 	str	r3, [r0]
 	mov	r3, #0
 	str	r3, [r0]
 	str	r3, [r0]
 	str	r3, [r0]
 	b	nandc_wait_flash_ready
-.L450:
+.L457:
 	.align	2
-.L449:
-	.word	.LANCHOR1+1056
+.L456:
+	.word	.LANCHOR1
 	.fnend
 	.size	ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para
 	.align	2
 	.global	flash_start_plane_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_start_plane_read, %function
 flash_start_plane_read:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	mov	r3, #1
-	ldr	r7, .L479
+	ldr	r4, .L487
 	ubfx	r9, r0, #24, #2
-	ldrb	r2, [r7, #1189]	@ zero_extendqisi2
-	rsb	r5, r2, #24
-	mov	r4, r3, asl r5
-	mov	r3, r3, asl r2
-	sub	r3, r3, #1
-	sub	r4, r4, #1
-	and	r5, r3, r0, lsr r5
-	ldrb	r3, [r7, #1101]	@ zero_extendqisi2
-	and	r6, r4, r0
-	and	r4, r4, r1
-	uxtb	r5, r5
-	cmp	r3, r5
-	bhi	.L452
-	ldr	r1, .L479+4
+	ldrb	r6, [r4, #1153]	@ zero_extendqisi2
+	rsb	r2, r6, #24
+	lsl	r6, r3, r6
+	lsl	r5, r3, r2
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	sub	r6, r6, #1
+	sub	r5, r5, #1
+	and	r6, r6, r0, lsr r2
+	and	r7, r5, r0
+	and	r5, r5, r1
+	uxtb	r6, r6
+	cmp	r3, r6
+	bhi	.L459
 	movw	r2, #1148
-	ldr	r0, .L479+8
+	ldr	r1, .L487+4
+	ldr	r0, .L487+8
 	bl	printk
 	bl	dump_stack
-.L452:
-	add	r5, r7, r5
-	ldr	r8, [r7, #1040]
-	ldr	fp, .L479
-	ldrb	r5, [r5, #1180]	@ zero_extendqisi2
-	mov	r0, r5
-	mov	r10, r5, asl #8
+.L459:
+	add	r6, r4, r6
+	ldr	r8, [r4, #1044]
+	ldrb	r6, [r6, #1144]	@ zero_extendqisi2
+	mov	r0, r6
 	bl	nandc_cs
 	cmp	r9, #0
-	bne	.L453
-	mov	r0, r6
+	lsl	r10, r6, #8
+	bne	.L460
+	mov	r0, r7
 	bl	slc_phy_page_address_calc
-	mov	r6, r0
-	mov	r0, r4
-	bl	slc_phy_page_address_calc
-	ldrb	r3, [fp]	@ zero_extendqisi2
-	cmp	r3, #0
-	mov	r4, r0
-	beq	.L454
+	mov	r7, r0
 	mov	r0, r5
+	bl	slc_phy_page_address_calc
+	ldrb	r3, [r4]	@ zero_extendqisi2
+	mov	r5, r0
+	cmp	r3, #0
+	beq	.L461
+	mov	r0, r6
 	bl	zftl_flash_enter_slc_mode
-	b	.L454
-.L453:
-	ldr	r3, [fp, #1096]
+.L461:
+	ldrb	r3, [r4, #1127]	@ zero_extendqisi2
+	uxtb	ip, r7
+	lsr	r0, r7, #8
+	lsr	r1, r7, #16
+	cmp	r3, #1
+	bne	.L463
+	ldrb	r3, [r4, #1119]	@ zero_extendqisi2
+	add	r6, r8, r10
+	str	r3, [r6, #2056]
+	mov	r3, #0
+	str	r3, [r6, #2052]
+	str	r3, [r6, #2052]
+	ldrb	r3, [r4, #1152]	@ zero_extendqisi2
+	str	ip, [r6, #2052]
+	str	r0, [r6, #2052]
+	cmp	r3, #0
+	ldrb	r3, [r4, #1120]	@ zero_extendqisi2
+	lsrne	r7, r7, #24
+	str	r1, [r6, #2052]
+	strne	r7, [r6, #2052]
+	add	r7, r8, r10
+	str	r3, [r7, #2056]
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r4, #1104]
+	cmp	r9, #0
+	add	r2, r8, r10
+	add	r8, r8, r10
+	ldrb	r3, [r3, #12]	@ zero_extendqisi2
+	sub	r3, r3, #3
+	clz	r3, r3
+	lsr	r3, r3, #5
+	moveq	r3, #0
+	cmp	r3, #0
+	mov	r3, #0
+	strne	r9, [r7, #2056]
+	str	r3, [r2, #2056]
+	str	r3, [r6, #2052]
+	str	r3, [r6, #2052]
+	uxtb	r3, r5
+	str	r3, [r6, #2052]
+	lsr	r3, r5, #8
+	str	r3, [r6, #2052]
+	lsr	r3, r5, #16
+	str	r3, [r6, #2052]
+	ldrb	r3, [r4, #1152]	@ zero_extendqisi2
+	cmp	r3, #0
+	lsrne	r5, r5, #24
+	strne	r5, [r6, #2052]
+.L486:
+	mov	r3, #48
+	str	r3, [r8, #2056]
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L460:
+	ldr	r3, [r4, #1104]
 	ldrb	r3, [r3, #12]	@ zero_extendqisi2
 	cmp	r3, #3
-	bne	.L455
-	ldrb	r3, [fp, #1196]	@ zero_extendqisi2
+	bne	.L462
+	ldrb	r3, [r4, #1158]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L455
-	ldrb	r3, [fp, #1197]	@ zero_extendqisi2
+	bne	.L462
+	ldrb	r3, [r4, #1159]	@ zero_extendqisi2
 	cmp	r3, #0
 	addeq	r3, r8, r10
 	streq	r9, [r3, #2056]
-	beq	.L454
-.L455:
-	mov	r0, r5
+	beq	.L461
+.L462:
+	mov	r0, r6
 	bl	zftl_flash_exit_slc_mode
-.L454:
-	ldrb	r2, [r7, #1119]	@ zero_extendqisi2
-	uxtb	ip, r6
-	ldr	r3, .L479
-	mov	r0, r6, lsr #8
-	cmp	r2, #1
-	mov	r1, r6, lsr #16
-	bne	.L456
-	ldrb	r2, [r3, #1111]	@ zero_extendqisi2
-	add	r5, r8, r10
-	ldrb	r3, [r3, #1188]	@ zero_extendqisi2
-	str	r2, [r5, #2056]
-	mov	r2, #0
-	cmp	r3, r2
-	ldrb	r3, [r7, #1112]	@ zero_extendqisi2
-	str	r2, [r5, #2052]
-	movne	r6, r6, lsr #24
-	str	r2, [r5, #2052]
-	str	ip, [r5, #2052]
-	str	r0, [r5, #2052]
-	str	r1, [r5, #2052]
-	strne	r6, [r5, #2052]
-	add	r6, r8, r10
-	str	r3, [r6, #2056]
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r7, #1096]
-	ldrb	r2, [r3, #12]	@ zero_extendqisi2
-	adds	r3, r9, #0
-	movne	r3, #1
-	cmp	r2, #3
-	add	r2, r8, r10
-	add	r10, r8, r10
-	movne	r3, #0
-	cmp	r3, #0
-	mov	r3, #0
-	strne	r9, [r6, #2056]
-	str	r3, [r2, #2056]
-	str	r3, [r5, #2052]
-	str	r3, [r5, #2052]
-	uxtb	r3, r4
-	str	r3, [r5, #2052]
-	mov	r3, r4, lsr #8
-	str	r3, [r5, #2052]
-	mov	r3, r4, lsr #16
-	str	r3, [r5, #2052]
-	ldrb	r3, [r7, #1188]	@ zero_extendqisi2
-	cmp	r3, #0
-	mov	r3, #48
-	movne	r4, r4, lsr #24
-	strne	r4, [r5, #2052]
-	str	r3, [r10, #2056]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L456:
-	ldr	r2, [r3, #1096]
+	b	.L461
+.L463:
+	ldr	r2, [r4, #1104]
 	ldrb	r3, [r2, #7]	@ zero_extendqisi2
 	cmp	r3, #1
-	bne	.L461
+	bne	.L468
 	ldrb	r3, [r2, #12]	@ zero_extendqisi2
 	cmp	r3, #2
 	addeq	r3, r8, r10
 	moveq	lr, #38
 	streq	lr, [r3, #2056]
-.L461:
-	ldrb	lr, [r7, #1111]	@ zero_extendqisi2
+.L468:
+	ldrb	lr, [r4, #1119]	@ zero_extendqisi2
 	add	r3, r8, r10
+	cmp	r9, #0
 	add	r8, r8, r10
 	str	lr, [r3, #2056]
 	str	ip, [r3, #2052]
 	str	r0, [r3, #2052]
 	str	r1, [r3, #2052]
-	ldrb	r1, [r2, #12]	@ zero_extendqisi2
-	adds	r2, r9, #0
-	movne	r2, #1
-	cmp	r1, #3
-	movne	r2, #0
+	ldrb	r2, [r2, #12]	@ zero_extendqisi2
+	sub	r2, r2, #3
+	clz	r2, r2
+	lsr	r2, r2, #5
+	moveq	r2, #0
 	cmp	r2, #0
-	ldrb	r2, [r7, #1112]	@ zero_extendqisi2
+	ldrb	r2, [r4, #1120]	@ zero_extendqisi2
 	strne	r9, [r3, #2056]
 	str	r2, [r8, #2056]
-	uxtb	r2, r4
+	uxtb	r2, r5
 	str	r2, [r3, #2052]
-	mov	r2, r4, lsr #8
-	mov	r4, r4, lsr #16
+	lsr	r2, r5, #8
+	lsr	r5, r5, #16
 	str	r2, [r3, #2052]
-	str	r4, [r3, #2052]
-	mov	r3, #48
-	str	r3, [r8, #2056]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L480:
+	str	r5, [r3, #2052]
+	b	.L486
+.L488:
 	.align	2
-.L479:
+.L487:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+1068
+	.word	.LANCHOR1+1038
 	.word	.LC0
 	.fnend
 	.size	flash_start_plane_read, .-flash_start_plane_read
 	.align	2
 	.global	flash_set_interface_mode
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_set_interface_mode, %function
 flash_set_interface_mode:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	mov	r8, r0
-	ldr	r6, .L515
-	mov	r9, #0
-	ldr	r10, .L515+4
+	ldr	r6, .L528
+	mov	r10, #0
+	ldr	r9, .L528+4
 	mov	r7, r6
-.L493:
-	ldr	r3, .L515+8
-	ldr	r5, [r6, #1040]
-	ldrb	r4, [r3, r9, asl #3]	@ zero_extendqisi2
+.L502:
+	ldrb	r4, [r9, r10, lsl #3]	@ zero_extendqisi2
+	ldr	r5, [r6, #1044]
 	cmp	r4, #69
-	cmpne	r4, #152
-	beq	.L482
+	beq	.L490
+	add	r3, r4, #119
+	sub	r1, r4, #44
+	uxtb	r2, r3
+	clz	r1, r1
+	lsr	r1, r1, #5
+	cmp	r2, #18
+	ldrls	r3, .L528+8
+	movhi	r3, #1
+	mvnls	r3, r3, lsr r2
+	and	r3, r3, #1
+	eor	r3, r3, #1
+	orrs	r3, r1, r3
+	beq	.L492
+.L490:
+	cmp	r8, #1
+	ldrb	r1, [r7, #1192]	@ zero_extendqisi2
+	bne	.L493
+	tst	r1, #1
+	beq	.L492
+	ldr	r3, .L528+12
+	ldr	r3, [r3]
+	tst	r3, #4096
+	beq	.L494
+	ldr	r0, .L528+16
+	bl	printk
+.L494:
+	lsl	r2, r10, #8
 	cmp	r4, #137
 	cmpne	r4, #44
-	moveq	r3, #1
-	movne	r3, #0
-	cmp	r4, #155
-	orreq	r3, r3, #1
-	cmp	r3, #0
-	beq	.L483
-.L482:
-	cmp	r8, #1
-	ldrb	r1, [r7, #1232]	@ zero_extendqisi2
-	bne	.L484
-	tst	r1, #1
-	beq	.L483
-	ldr	r3, [r10]
-	tst	r3, #4096
-	beq	.L485
-	ldr	r0, .L515+12
-	bl	printk
-.L485:
-	mov	r2, r9, asl #8
-	cmp	r4, #44
-	cmpne	r4, #137
-	add	r3, r5, r2
 	mov	r1, #239
+	add	r3, r5, r2
 	str	r1, [r3, #2056]
-	beq	.L514
+	bne	.L495
+.L527:
+	mov	r1, #1
+	str	r1, [r3, #2052]
+	mov	r1, #5
+	b	.L525
+.L495:
 	cmp	r4, #155
 	movne	r1, #128
 	strne	r1, [r3, #2052]
 	movne	r1, #1
-	bne	.L512
-.L514:
-	mov	r1, #1
-	str	r1, [r3, #2052]
-	mov	r1, #5
-	b	.L512
-.L484:
-	tst	r1, #4
-	beq	.L483
-	ldr	r3, [r10]
-	tst	r3, #4096
-	beq	.L489
-	ldr	r0, .L515+16
-	bl	printk
-.L489:
-	mov	r2, r9, asl #8
-	cmp	r4, #44
-	cmpne	r4, #137
-	add	r3, r5, r2
-	mov	r1, #239
-	str	r1, [r3, #2056]
-	moveq	r1, #1
-	movne	r1, #0
-	moveq	r1, #1
-	streq	r1, [r3, #2052]
-	moveq	r1, #35
-	beq	.L512
-	cmp	r4, #155
-	moveq	r1, #1
-	streq	r1, [r3, #2052]
-	moveq	r1, #37
-	movne	r0, #128
-	strne	r0, [r3, #2052]
-.L512:
-	add	r5, r5, r2
+	beq	.L527
+.L525:
 	str	r1, [r3, #2048]
+	add	r5, r5, r2
 	mov	r3, #0
 	str	r3, [r5, #2048]
 	str	r3, [r5, #2048]
 	str	r3, [r5, #2048]
-.L483:
-	add	r9, r9, #1
-	cmp	r9, #4
-	bne	.L493
+.L492:
+	add	r10, r10, #1
+	cmp	r10, #4
+	bne	.L502
 	bl	nandc_wait_flash_ready
 	mov	r0, #0
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L516:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L493:
+	tst	r1, #4
+	beq	.L492
+	ldr	r3, .L528+12
+	ldr	r3, [r3]
+	tst	r3, #4096
+	beq	.L498
+	ldr	r0, .L528+20
+	bl	printk
+.L498:
+	lsl	r2, r10, #8
+	mov	r1, #239
+	cmp	r4, #137
+	cmpne	r4, #44
+	add	r3, r5, r2
+	str	r1, [r3, #2056]
+	moveq	r1, #1
+	moveq	r1, #1
+	movne	r1, #0
+	streq	r1, [r3, #2052]
+	moveq	r1, #35
+	beq	.L525
+	cmp	r4, #155
+	moveq	r1, #1
+	movne	r0, #128
+	streq	r1, [r3, #2052]
+	moveq	r1, #37
+	strne	r0, [r3, #2052]
+	b	.L525
+.L529:
 	.align	2
-.L515:
+.L528:
 	.word	.LANCHOR0
+	.word	.LANCHOR0+1160
+	.word	294913
 	.word	.LANCHOR2
-	.word	.LANCHOR0+1200
-	.word	.LC37
-	.word	.LC38
+	.word	.LC34
+	.word	.LC35
 	.fnend
 	.size	flash_set_interface_mode, .-flash_set_interface_mode
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	mt_auto_read_calibration_config, %function
+mt_auto_read_calibration_config:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	mov	r5, r1
+	mov	r6, r0
+	bl	nandc_wait_flash_ready
+	ldr	r3, .L532
+	mov	r0, #200
+	ldr	r4, [r3, #1044]
+	mov	r3, #239
+	add	r4, r4, r6, lsl #8
+	str	r3, [r4, #2056]
+	mov	r3, #150
+	str	r3, [r4, #2052]
+	bl	ndelay
+	mov	r3, #0
+	str	r5, [r4, #2048]
+	str	r3, [r4, #2048]
+	str	r3, [r4, #2048]
+	str	r3, [r4, #2048]
+	pop	{r4, r5, r6, pc}
+.L533:
+	.align	2
+.L532:
+	.word	.LANCHOR0
+	.fnend
+	.size	mt_auto_read_calibration_config, .-mt_auto_read_calibration_config
+	.align	2
 	.global	flash_reset
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_reset, %function
 flash_reset:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L518
-	mov	r2, #255
-	ldr	r3, [r3, #1040]
-	add	r0, r3, r0, asl #8
-	str	r2, [r0, #2056]
+	ldr	r3, .L535
+	ldr	r3, [r3, #1044]
+	add	r0, r3, r0, lsl #8
+	mov	r3, #255
+	str	r3, [r0, #2056]
 	b	nandc_wait_flash_ready
-.L519:
+.L536:
 	.align	2
-.L518:
+.L535:
 	.word	.LANCHOR0
 	.fnend
 	.size	flash_reset, .-flash_reset
 	.align	2
 	.global	flash_read_id
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_read_id, %function
 flash_read_id:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, r5, r6, lr}
+	push	{r0, r1, r2, r3, r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
 	.pad #16
 	mov	r6, r0
-	ldr	r3, .L523
+	ldr	r3, .L540
 	mov	r4, r1
-	ldr	r5, [r3, #1040]
+	ldr	r5, [r3, #1044]
 	bl	flash_reset
 	mov	r0, r6
-	add	r5, r5, r6, asl #8
 	bl	nandc_cs
+	add	r5, r5, r6, lsl #8
 	mov	r3, #144
 	mov	r0, #200
 	str	r3, [r5, #2056]
 	mov	r3, #0
 	str	r3, [r5, #2052]
-	bl	timer_delay_ns
+	bl	ndelay
 	ldr	r3, [r5, #2048]
-	mov	r0, r6
 	strb	r3, [r4]
 	ldr	r3, [r5, #2048]
 	strb	r3, [r4, #1]
@@ -2566,60 +2702,63 @@
 	strb	r3, [r4, #6]
 	ldr	r3, [r5, #2048]
 	strb	r3, [r4, #7]
-	bl	nandc_de_cs
+	bl	nandc_de_cs.constprop.35
 	ldrb	r2, [r4]	@ zero_extendqisi2
 	sub	r3, r2, #1
 	uxtb	r3, r3
 	cmp	r3, #253
-	bhi	.L520
-	ldrb	r1, [r4, #2]	@ zero_extendqisi2
+	bhi	.L537
+	ldrb	r1, [r4, #5]	@ zero_extendqisi2
 	ldrb	r3, [r4, #1]	@ zero_extendqisi2
-	ldr	r0, .L523+4
-	str	r1, [sp]
-	ldrb	r1, [r4, #3]	@ zero_extendqisi2
-	str	r1, [sp, #4]
+	ldr	r0, .L540+4
+	str	r1, [sp, #12]
 	ldrb	r1, [r4, #4]	@ zero_extendqisi2
 	str	r1, [sp, #8]
-	ldrb	r1, [r4, #5]	@ zero_extendqisi2
-	str	r1, [sp, #12]
+	ldrb	r1, [r4, #3]	@ zero_extendqisi2
+	str	r1, [sp, #4]
+	ldrb	r1, [r4, #2]	@ zero_extendqisi2
+	str	r1, [sp]
 	add	r1, r6, #1
 	bl	printk
-.L520:
+.L537:
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L524:
+	pop	{r4, r5, r6, pc}
+.L541:
 	.align	2
-.L523:
+.L540:
 	.word	.LANCHOR0
-	.word	.LC39
+	.word	.LC36
 	.fnend
 	.size	flash_read_id, .-flash_read_id
 	.align	2
 	.global	flash_read_spare
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_read_spare, %function
 flash_read_spare:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	mov	r5, r2
-	ldr	r3, .L527
-	ldr	r2, .L527+4
+	ldr	r3, .L544
+	ldr	r2, .L544+4
 	ldrb	r3, [r3, #13]	@ zero_extendqisi2
-	ldr	r4, [r2, #1040]
+	ldr	r4, [r2, #1044]
 	mov	r2, #0
-	add	r4, r4, r0, asl #8
-	mov	r3, r3, asl #9
+	lsl	r3, r3, #9
+	add	r4, r4, r0, lsl #8
 	str	r2, [r4, #2056]
 	str	r3, [r4, #2052]
-	mov	r3, r3, lsr #8
+	lsr	r3, r3, #8
 	str	r3, [r4, #2052]
 	uxtb	r3, r1
 	str	r3, [r4, #2052]
-	mov	r3, r1, lsr #8
-	mov	r1, r1, lsr #16
+	lsr	r3, r1, #8
+	lsr	r1, r1, #16
 	str	r3, [r4, #2052]
 	mov	r3, #48
 	str	r1, [r4, #2052]
@@ -2627,118 +2766,125 @@
 	bl	nandc_wait_flash_ready
 	ldr	r3, [r4, #2048]
 	strb	r3, [r5]
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L528:
+	pop	{r4, r5, r6, pc}
+.L545:
 	.align	2
-.L527:
+.L544:
 	.word	.LANCHOR2
 	.word	.LANCHOR0
 	.fnend
 	.size	flash_read_spare, .-flash_read_spare
 	.align	2
 	.global	flash_read_otp_data
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_read_otp_data, %function
 flash_read_otp_data:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L533
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #12
-	mov	r8, r0
-	ldr	r7, [r3, #1040]
-	mov	r10, r8, asl #8
-	mov	r5, r1
-	mov	r9, r2
-	add	r4, r7, r10
+	ldr	r3, .L550
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	.pad #8
+	mov	r9, r0
+	lsl	r9, r9, #8
+	mov	r6, r1
+	mov	r5, r2
+	ldr	r8, [r3, #1044]
+	mov	r10, #144
 	bl	nandc_cs
-	mov	fp, #144
 	mov	r3, #239
 	mov	r0, #50
+	add	r4, r8, r9
+	mov	r7, #0
 	str	r3, [r4, #2056]
-	str	fp, [r4, #2052]
-	mov	r6, #0
-	bl	timer_delay_ns
+	str	r10, [r4, #2052]
+	bl	ndelay
 	mov	r3, #1
 	str	r3, [r4, #2048]
-	str	r6, [r4, #2048]
-	str	r6, [r4, #2048]
-	str	r6, [r4, #2048]
+	str	r7, [r4, #2048]
+	str	r7, [r4, #2048]
+	str	r7, [r4, #2048]
 	bl	nandc_wait_flash_ready
 	mov	r3, #238
+	ldr	r0, .L550+4
 	str	r3, [r4, #2056]
-	str	fp, [r4, #2052]
+	str	r10, [r4, #2052]
 	ldr	r2, [r4, #2048]
 	ldr	r3, [r4, #2048]
 	ldr	r1, [r4, #2048]
-	ldr	r0, .L533+4
 	str	r1, [sp]
-	mov	r1, r5
+	mov	r1, r6
 	bl	printk
 	bl	nandc_wait_flash_ready
-	str	r6, [r4, #2056]
-	uxtb	r3, r5
-	str	r6, [r4, #2052]
-	str	r6, [r4, #2052]
+	uxtb	r3, r6
+	str	r7, [r4, #2056]
+	str	r7, [r4, #2052]
+	str	r7, [r4, #2052]
 	str	r3, [r4, #2052]
-	mov	r3, r5, lsr #8
-	mov	r5, r5, lsr #16
+	lsr	r3, r6, #8
+	lsr	r6, r6, #16
 	str	r3, [r4, #2052]
 	mov	r3, #48
-	str	r5, [r4, #2052]
+	str	r6, [r4, #2052]
 	str	r3, [r4, #2056]
 	bl	nandc_wait_flash_ready
-	add	r3, r9, #16384
-.L530:
-	ldr	r2, [r4, #2048]
-	strb	r2, [r9], #1
-	cmp	r9, r3
-	bne	.L530
-	add	r7, r7, r10
+	add	r3, r5, #16384
+	mov	r2, r5
+.L547:
+	ldr	r1, [r4, #2048]
+	strb	r1, [r2], #1
+	cmp	r2, r3
+	bne	.L547
+	add	r8, r8, r9
 	mov	r3, #239
-	mov	r0, #50
-	str	r3, [r7, #2056]
+	str	r3, [r8, #2056]
 	mov	r3, #144
 	str	r3, [r4, #2052]
-	bl	timer_delay_ns
+	mov	r0, #50
+	bl	ndelay
 	mov	r3, #0
-	mov	r0, r8
 	str	r3, [r4, #2048]
 	str	r3, [r4, #2048]
 	str	r3, [r4, #2048]
 	str	r3, [r4, #2048]
-	add	sp, sp, #12
+	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	b	nandc_de_cs
-.L534:
+	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
+	b	nandc_de_cs.constprop.35
+.L551:
 	.align	2
-.L533:
+.L550:
 	.word	.LANCHOR0
-	.word	.LC40
+	.word	.LC37
 	.fnend
 	.size	flash_read_otp_data, .-flash_read_otp_data
 	.align	2
 	.global	sandisk_prog_test_bad_block
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sandisk_prog_test_bad_block, %function
 sandisk_prog_test_bad_block:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L551
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	push	{r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
-	mov	r7, r0, asl #8
-	ldr	r6, .L551+4
+	lsl	r7, r0, #8
+	ldr	r3, .L568
 	mov	r8, r1
-	ldr	r5, [r3, #1040]
-	ldrb	r4, [r6, #33]	@ zero_extendqisi2
-	add	r3, r5, r7
-	cmp	r4, #0
-	strne	r4, [r3, #2056]
+	ldr	r6, .L568+4
+	ldr	r5, [r3, #1044]
+	ldrb	r3, [r6, #33]	@ zero_extendqisi2
 	add	r4, r5, r7
+	cmp	r3, #0
+	addne	r2, r5, r7
+	addeq	r3, r5, r7
 	moveq	r2, #162
+	strne	r3, [r2, #2056]
 	streq	r2, [r3, #2056]
 	mov	r3, #128
 	str	r3, [r4, #2056]
@@ -2747,9 +2893,9 @@
 	str	r3, [r4, #2052]
 	uxtb	r3, r1
 	str	r3, [r4, #2052]
-	mov	r3, r1, lsr #8
+	lsr	r3, r1, #8
 	str	r3, [r4, #2052]
-	mov	r3, r1, lsr #16
+	lsr	r3, r1, #16
 	str	r3, [r4, #2052]
 	mov	r3, #16
 	str	r3, [r4, #2056]
@@ -2757,45 +2903,48 @@
 	mov	r3, #112
 	mov	r0, #200
 	str	r3, [r4, #2056]
-	bl	timer_delay_ns
+	bl	ndelay
 	ldr	r2, [r4, #2048]
 	cmp	r2, #255
 	ldreq	r2, [r4, #2048]
 	ands	r4, r2, #5
-	beq	.L539
+	beq	.L556
 	ldr	r3, [r6]
 	tst	r3, #4096
-	beq	.L539
-	ldr	r0, .L551+8
+	beq	.L556
 	mov	r1, r8
+	ldr	r0, .L568+8
 	bl	printk
-.L539:
+.L556:
 	ldrb	r3, [r6, #34]	@ zero_extendqisi2
 	mov	r0, r4
 	cmp	r3, #0
 	addne	r5, r5, r7
 	strne	r3, [r5, #2056]
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L552:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L569:
 	.align	2
-.L551:
+.L568:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LC41
+	.word	.LC38
 	.fnend
 	.size	sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block
 	.align	2
 	.global	nandc_rdy_status
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_rdy_status, %function
 nandc_rdy_status:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L555
+	ldr	r3, .L572
 	.pad #8
 	sub	sp, sp, #8
-	ldr	r3, [r3, #1040]
+	ldr	r3, [r3, #1044]
 	ldr	r3, [r3]
 	str	r3, [sp, #4]
 	ldr	r0, [sp, #4]
@@ -2803,14 +2952,17 @@
 	add	sp, sp, #8
 	@ sp needed
 	bx	lr
-.L556:
+.L573:
 	.align	2
-.L555:
+.L572:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_rdy_status, .-nandc_rdy_status
 	.align	2
 	.global	nandc_bch_sel
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_bch_sel, %function
 nandc_bch_sel:
 	.fnstart
@@ -2824,215 +2976,207 @@
 	ldr	r2, [sp, #4]
 	orr	r2, r2, #1
 	str	r2, [sp, #4]
-	ldr	r2, .L570
+	ldr	r2, .L586
 	ldrb	r1, [r2, #1028]	@ zero_extendqisi2
-	strb	r0, [r2, #1172]
+	strb	r0, [r2, #1193]
 	cmp	r1, #9
-	bne	.L558
-	ldr	r1, [r2, #1040]
+	bne	.L575
+	ldr	r2, [r2, #1044]
 	cmp	r0, #70
-	ldr	r2, [sp, #4]
-	str	r2, [r1, #16]
-	beq	.L559
+	ldr	r1, [sp, #4]
+	str	r1, [r2, #16]
+	beq	.L576
 	cmp	r0, #60
 	moveq	r3, #3
-	beq	.L559
+	beq	.L576
 	cmp	r0, #40
 	moveq	r3, #2
 	movne	r3, #1
-.L559:
-	mov	r2, #0
-	str	r2, [sp]
-	ldr	r2, [sp]
-	bic	r2, r2, #234881024
-	orr	r3, r2, r3, asl #25
-	str	r3, [sp]
+.L576:
+	mov	r1, #0
+	str	r1, [sp]
+	ldr	r1, [sp]
+	bfi	r1, r3, #25, #3
+	str	r1, [sp]
 	ldr	r3, [sp]
 	orr	r3, r3, #1
 	str	r3, [sp]
 	ldr	r3, [sp]
-	str	r3, [r1, #32]
-	b	.L557
-.L558:
-	ldr	r1, [sp, #4]
-	cmp	r0, #16
-	ldr	r2, [r2, #1040]
-	str	r1, [r2, #8]
-	str	r3, [sp]
-	ldr	r3, [sp]
-	bic	r3, r3, #65280
-	orr	r3, r3, #4096
-	str	r3, [sp]
-	ldr	r3, [sp]
-	bic	r3, r3, #262144
-	str	r3, [sp]
-	beq	.L568
-	ldr	r3, [sp]
-	cmp	r0, #24
-	orreq	r3, r3, #16
-	beq	.L569
-	orr	r3, r3, #262144
-	str	r3, [sp]
-	ldr	r3, [sp]
-	cmp	r0, #40
-	orr	r3, r3, #16
-	str	r3, [sp]
-	bne	.L562
-.L568:
-	ldr	r3, [sp]
-	bic	r3, r3, #16
-.L569:
-	str	r3, [sp]
-.L562:
-	ldr	r3, [sp]
-	orr	r3, r3, #1
-	str	r3, [sp]
-	ldr	r3, [sp]
-	str	r3, [r2, #12]
-.L557:
+	str	r3, [r2, #32]
+.L574:
 	add	sp, sp, #8
 	@ sp needed
 	bx	lr
-.L571:
+.L575:
+	ldr	r1, [r2, #1044]
+	mov	ip, #16
+	ldr	r2, [sp, #4]
+	cmp	r0, ip
+	str	r2, [r1, #8]
+	str	r3, [sp]
+	ldr	r2, [sp]
+	bfi	r2, ip, #8, #8
+	str	r2, [sp]
+	ldr	r2, [sp]
+	bfi	r2, r3, #18, #1
+	str	r2, [sp]
+	bne	.L578
+.L585:
+	ldr	r2, [sp]
+	bfi	r2, r3, #4, #1
+	str	r2, [sp]
+	b	.L579
+.L578:
+	cmp	r0, #24
+	ldreq	r3, [sp]
+	orreq	r3, r3, #16
+	streq	r3, [sp]
+	beq	.L579
+	ldr	r2, [sp]
+	cmp	r0, #40
+	orr	r2, r2, #262144
+	str	r2, [sp]
+	ldr	r2, [sp]
+	orr	r2, r2, #16
+	str	r2, [sp]
+	beq	.L585
+.L579:
+	ldr	r3, [sp]
+	orr	r3, r3, #1
+	str	r3, [sp]
+	ldr	r3, [sp]
+	str	r3, [r1, #12]
+	b	.L574
+.L587:
 	.align	2
-.L570:
+.L586:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_bch_sel, .-nandc_bch_sel
 	.align	2
 	.global	zftl_flash_resume
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_flash_resume, %function
 zftl_flash_resume:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, lr}
-	ldr	r4, .L583
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	ldr	r4, .L599
 	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
-	ldr	r2, [r4, #1044]
-	cmp	r3, #9
-	ldr	r3, [r4, #1040]
-	str	r2, [r3]
 	ldr	r2, [r4, #1048]
-	ldr	r3, [r4, #1040]
-	str	r2, [r3, #4]
+	cmp	r3, #9
+	ldr	r3, [r4, #1044]
+	str	r2, [r3]
 	ldr	r2, [r4, #1052]
-	bne	.L573
+	ldr	r3, [r4, #1044]
+	str	r2, [r3, #4]
+	ldr	r2, [r4, #1056]
+	bne	.L589
 	str	r2, [r3, #16]
-	ldr	r2, [r4, #1056]
+	ldr	r2, [r4, #1060]
 	str	r2, [r3, #32]
-	ldr	r2, [r4, #1060]
+	ldr	r2, [r4, #1064]
 	str	r2, [r3, #80]
-	ldr	r2, [r4, #1064]
+	ldr	r2, [r4, #1068]
 	str	r2, [r3, #84]
-	ldr	r2, [r4, #1068]
+	ldr	r2, [r4, #1072]
 	str	r2, [r3, #520]
-	ldr	r2, [r4, #1072]
+	ldr	r2, [r4, #1076]
 	str	r2, [r3, #8]
-	b	.L574
-.L573:
-	str	r2, [r3, #8]
-	ldr	r2, [r4, #1056]
-	str	r2, [r3, #12]
-	ldr	r2, [r4, #1060]
-	str	r2, [r3, #304]
-	ldr	r2, [r4, #1064]
-	str	r2, [r3, #308]
-	ldr	r2, [r4, #1068]
-	str	r2, [r3, #336]
-	ldr	r2, [r4, #1072]
-	str	r2, [r3, #344]
-.L574:
-	ldr	r6, .L583+4
+.L591:
+	ldr	r6, .L599+4
 	mov	r5, #0
 	mov	r8, #2
-	sub	r7, r6, #8
-.L576:
-	ldrb	r3, [r6, r5, asl #3]	@ zero_extendqisi2
+	sub	r7, r6, #6
+.L590:
+	ldrb	r3, [r6, r5, lsl #3]	@ zero_extendqisi2
 	sub	r3, r3, #1
 	uxtb	r3, r3
 	cmp	r3, #253
-	bhi	.L575
+	bhi	.L592
 	uxtb	r9, r5
 	mov	r0, r9
 	bl	flash_reset
 	strb	r8, [r5, r7]
 	mov	r0, r9
 	bl	zftl_flash_enter_slc_mode
-.L575:
+.L592:
 	add	r5, r5, #1
 	cmp	r5, #4
-	bne	.L576
-	ldrb	r3, [r4, #1135]	@ zero_extendqisi2
+	bne	.L590
+	ldrb	r3, [r4, #1143]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L577
+	beq	.L593
 	mov	r0, #1
 	bl	nandc_set_if_mode
 	mov	r0, r5
 	bl	flash_set_interface_mode
 	mov	r0, r5
 	bl	nandc_set_if_mode
-	ldr	r3, .L583
-	ldrb	r0, [r3, #1061]	@ zero_extendqisi2
+	ldrb	r0, [r4, #1065]	@ zero_extendqisi2
 	bl	nandc_set_ddr_para
-.L577:
-	ldr	r3, .L583+8
+.L593:
+	ldr	r3, .L599+8
+	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
 	ldrb	r0, [r3, #24]	@ zero_extendqisi2
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 	b	nandc_bch_sel
-.L584:
+.L589:
+	str	r2, [r3, #8]
+	ldr	r2, [r4, #1060]
+	str	r2, [r3, #12]
+	ldr	r2, [r4, #1064]
+	str	r2, [r3, #304]
+	ldr	r2, [r4, #1068]
+	str	r2, [r3, #308]
+	ldr	r2, [r4, #1072]
+	str	r2, [r3, #336]
+	ldr	r2, [r4, #1076]
+	str	r2, [r3, #344]
+	b	.L591
+.L600:
 	.align	2
-.L583:
+.L599:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+1200
+	.word	.LANCHOR0+1160
 	.word	.LANCHOR2
 	.fnend
 	.size	zftl_flash_resume, .-zftl_flash_resume
 	.align	2
 	.global	rk_nandc_flash_ready
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_nandc_flash_ready, %function
 rk_nandc_flash_ready:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L588
-	ldrb	r3, [r3, #1028]	@ zero_extendqisi2
-	cmp	r3, #9
-	ldreq	r3, [r0, #292]
-	ldrne	r3, [r0, #368]
-	orreq	r3, r3, #2
-	orrne	r3, r3, #2
-	streq	r3, [r0, #292]
-	strne	r3, [r0, #368]
-	ldreq	r3, [r0, #288]
-	ldrne	r3, [r0, #364]
-	biceq	r3, r3, #2
-	bicne	r3, r3, #2
-	streq	r3, [r0, #288]
-	strne	r3, [r0, #364]
-	bx	lr
-.L589:
-	.align	2
-.L588:
-	.word	.LANCHOR0
+	mov	r1, #1
+	b	nandc_irq_disable
 	.fnend
 	.size	rk_nandc_flash_ready, .-rk_nandc_flash_ready
 	.align	2
 	.global	nandc_iqr_wait_flash_ready
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_iqr_wait_flash_ready, %function
 nandc_iqr_wait_flash_ready:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
-	ldr	r4, .L597
-	ldr	r0, [r4, #1040]
+	ldr	r4, .L607
+	ldr	r0, [r4, #1044]
 	bl	rk_nandc_rb_irq_flag_init
 	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
-	ldr	r0, [r4, #1040]
+	ldr	r0, [r4, #1044]
 	cmp	r3, #9
 	ldreq	r3, [r0, #292]
 	ldrne	r3, [r0, #368]
@@ -3048,271 +3192,258 @@
 	strne	r3, [r0, #364]
 	ldr	r3, [r0]
 	tst	r3, #512
-	bne	.L593
-	ldmfd	sp!, {r4, lr}
+	bne	.L605
+	pop	{r4, lr}
 	b	wait_for_nand_flash_ready
-.L593:
-	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
-	cmp	r3, #9
-	ldreq	r3, [r0, #292]
-	ldrne	r3, [r0, #368]
-	orreq	r3, r3, #2
-	orrne	r3, r3, #2
-	streq	r3, [r0, #292]
-	strne	r3, [r0, #368]
-	ldreq	r3, [r0, #288]
-	ldrne	r3, [r0, #364]
-	biceq	r3, r3, #2
-	bicne	r3, r3, #2
-	streq	r3, [r0, #288]
-	strne	r3, [r0, #364]
-	ldmfd	sp!, {r4, pc}
-.L598:
+.L605:
+	mov	r1, #1
+	pop	{r4, lr}
+	b	nandc_irq_disable
+.L608:
 	.align	2
-.L597:
+.L607:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready
 	.align	2
 	.global	flash_erase_duplane_block
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_erase_duplane_block, %function
 flash_erase_duplane_block:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 8
+	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #12
-	mov	r8, r3
-	ldr	fp, .L624
+	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	mov	r10, r3
+	ldr	r7, .L634
 	mov	r4, r0
 	mov	r5, r1
-	mov	r9, r2
-	ldrb	r3, [fp, #1101]	@ zero_extendqisi2
+	mov	r6, r2
+	ldrb	r3, [r7, #1109]	@ zero_extendqisi2
 	cmp	r3, r0
-	bhi	.L600
-	ldr	r1, .L624+4
+	bhi	.L610
 	movw	r2, #695
-	ldr	r0, .L624+8
+	ldr	r1, .L634+4
+	ldr	r0, .L634+8
 	bl	printk
 	bl	dump_stack
-.L600:
-	ldrb	r2, [fp, #1101]	@ zero_extendqisi2
-	ldr	r3, .L624
-	cmp	r2, r4
-	mvnls	r0, #0
-	bls	.L601
-	add	r4, r3, r4
-	ldr	r7, [r3, #1040]
-	ldr	r3, .L624+12
-	ldrb	r6, [r4, #1180]	@ zero_extendqisi2
+.L610:
+	ldrb	r3, [r7, #1109]	@ zero_extendqisi2
+	cmp	r3, r4
+	bls	.L619
+	ldr	r3, .L634+12
+	add	r4, r7, r4
+	ldrb	r4, [r4, #1144]	@ zero_extendqisi2
+	ldr	r9, [r7, #1044]
 	ldr	r3, [r3]
-	add	r10, r6, #8
+	add	r8, r4, #8
 	tst	r3, #16
-	add	r10, r7, r10, asl #8
-	beq	.L602
-	ldr	r0, .L624+16
-	mov	r1, r6
-	mov	r2, r9
-	mov	r3, r8
+	add	r8, r9, r8, lsl #8
+	beq	.L612
+	mov	r3, r10
+	mov	r2, r6
+	mov	r1, r4
+	ldr	r0, .L634+16
 	bl	printk
-.L602:
+.L612:
 	bl	nandc_wait_flash_ready
-	mov	r0, r6
+	mov	r0, r4
 	bl	nandc_cs
 	cmp	r5, #0
-	mov	r0, r6
-	bne	.L603
+	mov	r0, r4
+	bne	.L613
 	bl	zftl_flash_enter_slc_mode
-	b	.L604
-.L603:
-	bl	zftl_flash_exit_slc_mode
-.L604:
-	mov	r3, r6, asl #8
-	mov	r2, #96
-	add	r4, r7, r3
-	str	r2, [r4, #2056]
-	uxtb	r2, r9
-	str	r2, [r4, #2052]
-	mov	r2, r9, lsr #8
-	str	r2, [r4, #2052]
-	mov	r2, r9, lsr #16
-	str	r2, [r4, #2052]
-	ldrb	r2, [fp, #1188]	@ zero_extendqisi2
-	cmp	r2, #0
-	movne	r2, r9, lsr #24
-	strne	r2, [r4, #2052]
-	ldrb	r2, [fp, #1233]	@ zero_extendqisi2
-	cmp	r2, #0
-	movne	r5, #0
-	bne	.L606
-	add	r2, r7, r3
-	mov	r1, #208
-	str	r3, [sp, #4]
-	str	r1, [r2, #2056]
+.L614:
+	lsl	r4, r4, #8
+	mov	r3, #96
+	add	r5, r9, r4
+	str	r3, [r5, #2056]
+	uxtb	r3, r6
+	str	r3, [r5, #2052]
+	lsr	r3, r6, #8
+	str	r3, [r5, #2052]
+	lsr	r3, r6, #16
+	str	r3, [r5, #2052]
+	ldrb	r3, [r7, #1152]	@ zero_extendqisi2
+	cmp	r3, #0
+	lsrne	r3, r6, #24
+	strne	r3, [r5, #2052]
+	ldrb	r3, [r7, #1194]	@ zero_extendqisi2
+	cmp	r3, #0
+	movne	fp, #0
+	bne	.L616
+	add	r3, r9, r4
+	mov	r2, #208
+	str	r2, [r3, #2056]
 	bl	nandc_wait_flash_ready
-	mov	r0, r10
+	mov	r0, r8
 	bl	flash_read_status
-	ldr	r3, [sp, #4]
-	and	r5, r0, #5
-.L606:
-	add	r2, r7, r3
-	mov	r1, #96
-	add	r7, r7, r3
+	and	fp, r0, #5
+.L616:
+	mov	r2, #96
+	add	r3, r9, r4
+	str	r2, [r3, #2056]
+	uxtb	r3, r10
+	add	r0, r9, r4
+	str	r3, [r5, #2052]
+	lsr	r3, r10, #8
+	str	r3, [r5, #2052]
+	lsr	r3, r10, #16
+	str	r3, [r5, #2052]
+	ldrb	r3, [r7, #1152]	@ zero_extendqisi2
+	cmp	r3, #0
 	mov	r3, #208
-	str	r1, [r2, #2056]
-	uxtb	r2, r8
-	str	r2, [r4, #2052]
-	mov	r2, r8, lsr #8
-	str	r2, [r4, #2052]
-	mov	r2, r8, lsr #16
-	str	r2, [r4, #2052]
-	ldrb	r2, [fp, #1188]	@ zero_extendqisi2
-	cmp	r2, #0
-	movne	r8, r8, lsr #24
-	strne	r8, [r4, #2052]
-	str	r3, [r7, #2056]
+	lsrne	r2, r10, #24
+	strne	r2, [r5, #2052]
+	str	r3, [r0, #2056]
 	bl	nandc_iqr_wait_flash_ready
 	bl	nandc_wait_flash_ready
-	mov	r0, r10
+	mov	r0, r8
 	bl	flash_read_status
-	mov	r4, r0
-	mov	r0, r6
-	bl	nandc_de_cs
-	and	r3, r4, #5
-	orrs	r5, r3, r5
-	beq	.L608
-	ldr	r0, .L624+20
-	mov	r1, r9
-	mov	r2, r4
+	bl	nandc_de_cs.constprop.35
+	and	r3, r0, #5
+	orrs	fp, r3, fp
+	beq	.L618
+	mov	r2, r0
+	mov	r1, r6
+	ldr	r0, .L634+20
 	bl	printk
-.L608:
-	mov	r0, r5
-.L601:
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L625:
+.L618:
+	mov	r0, fp
+	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L613:
+	bl	zftl_flash_exit_slc_mode
+	b	.L614
+.L619:
+	mvn	r0, #0
+	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L635:
 	.align	2
-.L624:
+.L634:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+1092
+	.word	.LANCHOR1+1061
 	.word	.LC0
 	.word	.LANCHOR2
-	.word	.LC42
-	.word	.LC43
+	.word	.LC39
+	.word	.LC40
 	.fnend
 	.size	flash_erase_duplane_block, .-flash_erase_duplane_block
 	.align	2
 	.global	flash_erase_block_en
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_erase_block_en, %function
 flash_erase_block_en:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mvn	r4, #0
-	ldr	r5, .L645
 	mov	r7, r0
+	ldr	r5, .L655
 	mov	fp, r1
 	mov	r8, r2
-	ldrb	r3, [r5, #1189]	@ zero_extendqisi2
-	rsb	r3, r3, #24
-	bic	r4, r2, r4, asl r3
-	ldrb	r3, [r5, #1101]	@ zero_extendqisi2
+	ldrb	r6, [r5, #1153]	@ zero_extendqisi2
+	rsb	r3, r6, #24
+	mvn	r6, #0
+	bic	r6, r2, r6, lsl r3
+	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
 	cmp	r3, r0
-	bhi	.L627
-	ldr	r1, .L645+4
+	bhi	.L637
 	movw	r2, #757
-	ldr	r0, .L645+8
+	ldr	r1, .L655+4
+	ldr	r0, .L655+8
 	bl	printk
 	bl	dump_stack
-.L627:
-	ldrb	r2, [r5, #1101]	@ zero_extendqisi2
-	ldr	r3, .L645
-	cmp	r2, r7
-	bls	.L634
-	add	r2, r3, r7
-	ldr	r9, [r3, #1040]
-	ldr	r3, .L645+12
-	ldrb	r6, [r2, #1180]	@ zero_extendqisi2
+.L637:
+	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
+	cmp	r3, r7
+	bls	.L644
+	add	r3, r5, r7
+	ldr	r9, [r5, #1044]
+	ldrb	r4, [r3, #1144]	@ zero_extendqisi2
+	ldr	r3, .L655+12
+	add	r10, r4, #8
 	ldr	r3, [r3]
-	add	r10, r6, #8
+	add	r10, r9, r10, lsl #8
 	tst	r3, #16
-	add	r10, r9, r10, asl #8
-	beq	.L629
-	ldr	r0, .L645+16
-	mov	r1, r6
-	mov	r2, r8
+	beq	.L639
 	mov	r3, fp
+	mov	r2, r8
+	mov	r1, r4
+	ldr	r0, .L655+16
 	bl	printk
-.L629:
+.L639:
 	bl	nandc_wait_flash_ready
-	mov	r0, r6
+	mov	r0, r4
 	bl	nandc_cs
 	cmp	fp, #0
-	mov	r0, r6
-	bne	.L630
+	mov	r0, r4
+	bne	.L640
 	bl	zftl_flash_enter_slc_mode
-	b	.L631
-.L630:
-	bl	zftl_flash_exit_slc_mode
-.L631:
-	mov	r2, r6, asl #8
-	mov	r1, #96
-	add	r3, r9, r2
-	add	r9, r9, r2
-	str	r1, [r3, #2056]
-	uxtb	r1, r4
-	str	r1, [r3, #2052]
-	mov	r1, r4, lsr #8
-	str	r1, [r3, #2052]
-	mov	r1, r4, lsr #16
-	str	r1, [r3, #2052]
-	ldrb	r1, [r5, #1188]	@ zero_extendqisi2
-	cmp	r1, #0
-	movne	r4, r4, lsr #24
-	strne	r4, [r3, #2052]
+.L641:
+	lsl	r4, r4, #8
+	mov	r2, #96
+	add	r3, r9, r4
+	add	r4, r9, r4
+	str	r2, [r3, #2056]
+	uxtb	r2, r6
+	str	r2, [r3, #2052]
+	lsr	r2, r6, #8
+	str	r2, [r3, #2052]
+	lsr	r2, r6, #16
+	str	r2, [r3, #2052]
+	ldrb	r2, [r5, #1152]	@ zero_extendqisi2
+	cmp	r2, #0
+	lsrne	r6, r6, #24
+	strne	r6, [r3, #2052]
 	mov	r3, #208
-	str	r3, [r9, #2056]
+	str	r3, [r4, #2056]
 	bl	nandc_iqr_wait_flash_ready
 	bl	nandc_wait_flash_ready
 	mov	r0, r10
 	bl	flash_read_status
-	mov	r4, r0
-	mov	r0, r6
-	bl	nandc_de_cs
-	ands	r4, r4, #5
-	beq	.L633
+	bl	nandc_de_cs.constprop.35
+	ands	r4, r0, #5
+	beq	.L643
 	ldrh	r1, [r5, #2]
 	mov	r0, r8
 	bl	__aeabi_uidiv
 	mov	r3, r4
-	mov	r1, r7
 	mvn	r4, #0
 	mov	r2, r0
-	ldr	r0, .L645+20
+	mov	r1, r7
+	ldr	r0, .L655+20
 	bl	printk
-.L633:
+.L643:
 	mov	r0, r4
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L634:
+	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L640:
+	bl	zftl_flash_exit_slc_mode
+	b	.L641
+.L644:
 	mvn	r0, #0
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L646:
+	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L656:
 	.align	2
-.L645:
+.L655:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+1120
+	.word	.LANCHOR1+1087
 	.word	.LC0
 	.word	.LANCHOR2
-	.word	.LC44
-	.word	.LC45
+	.word	.LC41
+	.word	.LC42
 	.fnend
 	.size	flash_erase_block_en, .-flash_erase_block_en
 	.align	2
 	.global	flash_erase_block
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_erase_block, %function
 flash_erase_block:
 	.fnstart
@@ -3326,117 +3457,105 @@
 	.size	flash_erase_block, .-flash_erase_block
 	.align	2
 	.global	flash_erase_all
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_erase_all, %function
 flash_erase_all:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, lr}
-	mov	r6, #0
-	ldr	r3, .L656
-	ldr	r7, .L656+4
+	ldr	r3, .L664
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	mov	r5, #0
+	ldr	r7, .L664+4
 	ldrb	r4, [r3, #17]	@ zero_extendqisi2
 	ldrh	r3, [r3, #18]
 	mov	r8, r7
 	smulbb	r4, r4, r3
 	uxth	r4, r4
-.L649:
-	ldrb	r2, [r7, #1101]	@ zero_extendqisi2
-	uxth	r3, r6
-	cmp	r2, r3
-	bls	.L654
-	add	r3, r7, r3
-	mov	r5, #0
-	ldrb	r9, [r3, #1180]	@ zero_extendqisi2
-.L650:
+.L659:
+	ldrb	r2, [r7, #1109]	@ zero_extendqisi2
 	uxth	r3, r5
-	cmp	r3, r4
-	bcs	.L655
+	cmp	r2, r3
+	bhi	.L662
+	mov	r1, #0
+	ldr	r0, .L664+8
+	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
+	b	printk
+.L662:
+	uxtah	r3, r7, r5
+	mov	r6, #0
+	ldrb	r9, [r3, #1144]	@ zero_extendqisi2
+.L660:
+	uxth	r3, r6
+	cmp	r4, r3
+	addls	r5, r5, #1
+	bls	.L659
+.L661:
 	ldrh	r1, [r8, #2]
 	mov	r0, r9
-	mul	r1, r1, r5
-	bl	flash_erase_block
-	add	r5, r5, #1
-	b	.L650
-.L655:
+	mul	r1, r6, r1
 	add	r6, r6, #1
-	b	.L649
-.L654:
-	ldr	r0, .L656+8
-	mov	r1, #0
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
-	b	printk
-.L657:
+	bl	flash_erase_block
+	b	.L660
+.L665:
 	.align	2
-.L656:
+.L664:
 	.word	.LANCHOR2
 	.word	.LANCHOR0
-	.word	.LC46
+	.word	.LC43
 	.fnend
 	.size	flash_erase_all, .-flash_erase_all
 	.align	2
 	.global	rk_nandc_flash_xfer_completed
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_nandc_flash_xfer_completed, %function
 rk_nandc_flash_xfer_completed:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L661
-	ldrb	r3, [r3, #1028]	@ zero_extendqisi2
-	cmp	r3, #9
-	ldreq	r3, [r0, #292]
-	ldrne	r3, [r0, #368]
-	orreq	r3, r3, #1
-	orrne	r3, r3, #1
-	streq	r3, [r0, #292]
-	strne	r3, [r0, #368]
-	ldreq	r3, [r0, #288]
-	ldrne	r3, [r0, #364]
-	biceq	r3, r3, #1
-	bicne	r3, r3, #1
-	streq	r3, [r0, #288]
-	strne	r3, [r0, #364]
-	bx	lr
-.L662:
-	.align	2
-.L661:
-	.word	.LANCHOR0
+	mov	r1, #0
+	b	nandc_irq_disable
 	.fnend
 	.size	rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
 	.align	2
 	.global	nandc_xfer_start
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_xfer_start, %function
 nandc_xfer_start:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 16
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, lr}
-	.save {r4, r5, r6, r7, r8, r9, lr}
+	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	.pad #16
 	mov	r5, r0
-	ldr	r4, .L680
+	ldr	r4, .L684
 	mov	r0, r2
-	.pad #20
-	sub	sp, sp, #20
 	and	r6, r5, #1
-	add	lr, r1, #1
+	add	ip, r1, #1
 	ldrb	r2, [r4, #1028]	@ zero_extendqisi2
 	cmp	r2, #9
-	bne	.L664
-	mov	r2, #0
-	str	r2, [sp, #4]
+	bne	.L668
+	mov	r1, #0
+	mov	lr, #1
+	str	r1, [sp, #4]
+	ubfx	ip, ip, #1, #6
 	ldr	r2, [sp, #4]
-	ubfx	lr, lr, #1, #6
-	bic	r2, r2, #2
-	orr	r2, r2, r6, asl #1
+	bfi	r2, r6, #1, #1
 	str	r2, [sp, #4]
 	ldr	r2, [sp, #4]
 	orr	r2, r2, #8
 	str	r2, [sp, #4]
 	ldr	r2, [sp, #4]
-	bic	r2, r2, #96
-	orr	r2, r2, #32
+	bfi	r2, lr, #5, #2
 	str	r2, [sp, #4]
 	ldr	r2, [sp, #4]
 	orr	r2, r2, #536870912
@@ -3445,199 +3564,184 @@
 	orr	r2, r2, #1024
 	str	r2, [sp, #4]
 	ldr	r2, [sp, #4]
-	bic	r2, r2, #16
+	bfi	r2, r1, #4, #1
 	str	r2, [sp, #4]
-	ldr	ip, [sp, #4]
-	bic	ip, ip, #264241152
-	orr	lr, ip, lr, asl #22
-	str	lr, [sp, #4]
+	ldr	r2, [sp, #4]
+	bfi	r2, ip, #22, #6
+	str	r2, [sp, #4]
 	ldr	r2, [sp, #4]
 	orr	r2, r2, #128
 	str	r2, [sp, #4]
-	ldrb	r2, [r4, #1136]	@ zero_extendqisi2
-	cmp	r2, #0
-	beq	.L665
-	ldrb	r2, [r4, #1168]	@ zero_extendqisi2
-	cmp	r2, #0
+	ldrb	r2, [r4, #1195]	@ zero_extendqisi2
+	cmp	r2, r1
+	beq	.L669
+	ldrb	r2, [r4, #1196]	@ zero_extendqisi2
+	cmp	r2, r1
 	ldrne	r2, [sp, #4]
 	orrne	r2, r2, #512
 	strne	r2, [sp, #4]
-.L665:
-	ldr	r1, [sp, #4]
-	mov	r2, r5
-	str	r3, [r4, #1148]
-	ubfx	r1, r1, #22, #6
-	str	r0, [r4, #1144]
-	mov	r1, r1, asl #10
-	bl	rknand_dma_map_single
-	mov	r2, r5
-	clz	r5, r5
-	mov	r5, r5, lsr #5
-	ldr	r1, [sp, #4]
-	str	r0, [r4, #1152]
-	ubfx	r1, r1, #22, #6
-	ldr	r0, [r4, #1148]
-	mov	r1, r1, asl #2
-	bl	rknand_dma_map_single
-	ldr	r2, [r4, #1040]
-	mov	r3, #1
-	str	r3, [r4, #1160]
-	ldr	r3, [r4, #1152]
-	str	r3, [r2, #52]
-	str	r0, [r2, #56]
-	ldr	r3, [r2, #48]
-	str	r0, [r4, #1156]
-	str	r3, [sp, #8]
-	ldr	r3, [sp, #8]
-	bic	r3, r3, #15872
-	orr	r3, r3, #8192
-	str	r3, [sp, #8]
-	ldr	r3, [sp, #8]
-	orr	r3, r3, #448
-	str	r3, [sp, #8]
-	ldr	r3, [sp, #8]
-	bic	r3, r3, #56
-	orr	r3, r3, #16
-	str	r3, [sp, #8]
-	ldr	r3, [sp, #8]
-	orr	r3, r3, #4
-	str	r3, [sp, #8]
-	ldr	r3, [sp, #8]
-	bic	r3, r3, #2
-	orr	r5, r3, r5, asl #1
-	str	r5, [sp, #8]
-	ldr	r3, [sp, #8]
-	orr	r3, r3, #1
-	str	r3, [sp, #8]
-	movw	r3, #1170
-	ldrh	r1, [r4, r3]
-	ldr	r3, [sp, #8]
-	ubfx	r1, r1, #0, #11
-	bic	r3, r3, #133169152
-	bic	r3, r3, #983040
-	orr	r3, r3, r1, asl #16
-	str	r3, [sp, #8]
-	ldr	r3, [sp, #8]
-	str	r3, [r2, #48]
-	ldr	r3, [sp, #4]
-	str	r3, [r2, #16]
-	ldr	r3, [sp, #4]
-	orr	r3, r3, #4
-	str	r3, [sp, #4]
-	ldr	r3, [sp, #4]
-	str	r3, [r2, #16]
-	b	.L663
-.L664:
-	ldr	r2, [r4, #1040]
-	mov	ip, #0
-	cmp	r5, ip
-	ubfx	lr, lr, #1, #6
-	ldr	r2, [r2, #12]
-	ldreq	r3, [r4, #1140]
-	str	r2, [sp, #12]
-	ldr	r2, [sp, #12]
-	bic	r2, r2, #65280
-	orr	r2, r2, #4096
-	str	r2, [sp, #12]
-	ldr	r2, [sp, #12]
-	bic	r2, r2, #8
-	str	r2, [sp, #12]
-	ldr	r2, [sp, #12]
-	bic	r2, r2, #224
-	str	r2, [sp, #12]
-	str	ip, [sp, #4]
-	ldr	r2, [sp, #4]
-	bic	r2, r2, #2
-	orr	r2, r2, r6, asl #1
-	str	r2, [sp, #4]
-	ldr	r2, [sp, #4]
-	orr	r2, r2, #8
-	str	r2, [sp, #4]
-	ldr	r6, [sp, #4]
-	bic	r6, r6, #96
-	orr	r6, r6, #32
-	str	r6, [sp, #4]
-	ldr	r2, [sp, #4]
-	orr	r2, r2, #536870912
-	str	r2, [sp, #4]
-	ldr	r2, [sp, #4]
-	orr	r2, r2, #1024
-	str	r2, [sp, #4]
-	ldr	r2, [sp, #4]
-	bic	r2, r2, #16
-	str	r2, [sp, #4]
-	ldr	r6, [sp, #4]
-	moveq	r2, #1
-	bic	r6, r6, #264241152
-	orr	lr, r6, lr, asl #22
-	str	lr, [sp, #4]
-	streq	r2, [r3]
-	beq	.L671
-	ldrb	r2, [r4, #1172]	@ zero_extendqisi2
-	mov	r1, r1, lsr #1
-	mov	r6, ip
-	cmp	r2, #25
-	movcc	r7, #64
-	movcs	r7, #128
 .L669:
-	cmp	r6, r1
-	add	r3, r3, #4
-	add	r8, ip, r7
-	bge	.L671
-	ldrh	lr, [r3, #-2]
-	mov	ip, ip, lsr #2
-	ldr	r9, [r4, #1140]
-	add	r6, r6, #1
-	ldrh	r2, [r3, #-4]
-	orr	lr, r2, lr, asl #16
-	str	lr, [r9, ip, asl #2]
-	mov	ip, r8
-	b	.L669
-.L671:
 	ldr	r1, [sp, #4]
 	mov	r2, r5
-	ldr	r3, [r4, #1140]
+	str	r3, [r4, #1208]
+	str	r0, [r4, #1204]
 	ubfx	r1, r1, #22, #6
-	str	r0, [r4, #1144]
-	mov	r1, r1, asl #10
-	str	r3, [r4, #1148]
+	lsl	r1, r1, #10
 	bl	rknand_dma_map_single
+	ldr	r1, [sp, #4]
 	mov	r2, r5
+	str	r0, [r4, #1212]
 	clz	r5, r5
-	mov	r5, r5, lsr #5
-	ldr	r1, [sp, #4]
-	str	r0, [r4, #1152]
+	ldr	r0, [r4, #1208]
+	lsr	r5, r5, #5
 	ubfx	r1, r1, #22, #6
-	ldr	r0, [r4, #1148]
-	mov	r1, r1, asl #7
+	lsl	r1, r1, #2
 	bl	rknand_dma_map_single
-	ldr	r2, [r4, #1152]
 	mov	r3, #1
-	str	r3, [r4, #1160]
-	ldr	r3, [r4, #1040]
-	str	r2, [r3, #20]
-	mov	r2, #0
-	str	r0, [r3, #24]
+	ldr	r2, [r4, #1212]
+	str	r3, [r4, #1220]
+	mov	r1, #16
+	ldr	r3, [r4, #1044]
+	str	r0, [r4, #1216]
+	str	r2, [r3, #52]
+	str	r0, [r3, #56]
+	ldr	r2, [r3, #48]
 	str	r2, [sp, #8]
 	ldr	r2, [sp, #8]
-	str	r0, [r4, #1156]
-	bic	r2, r2, #15872
-	orr	r2, r2, #8192
+	bfi	r2, r1, #9, #5
+	mov	r1, #2
 	str	r2, [sp, #8]
 	ldr	r2, [sp, #8]
 	orr	r2, r2, #448
 	str	r2, [sp, #8]
 	ldr	r2, [sp, #8]
-	bic	r2, r2, #56
-	orr	r2, r2, #16
+	bfi	r2, r1, #3, #3
 	str	r2, [sp, #8]
 	ldr	r2, [sp, #8]
 	orr	r2, r2, #4
 	str	r2, [sp, #8]
 	ldr	r2, [sp, #8]
-	bic	r2, r2, #2
-	orr	r5, r2, r5, asl #1
-	str	r5, [sp, #8]
+	bfi	r2, r5, #1, #1
+	str	r2, [sp, #8]
+	ldr	r2, [sp, #8]
+	orr	r2, r2, #1
+	str	r2, [sp, #8]
+	movw	r2, #1228
+	ldrh	r1, [r4, r2]
+	ldr	r2, [sp, #8]
+	bfi	r2, r1, #16, #11
+	str	r2, [sp, #8]
+	ldr	r2, [sp, #8]
+	str	r2, [r3, #48]
+	ldr	r2, [sp, #4]
+	str	r2, [r3, #16]
+	ldr	r2, [sp, #4]
+	orr	r2, r2, #4
+	str	r2, [sp, #4]
+	ldr	r2, [sp, #4]
+	str	r2, [r3, #16]
+.L667:
+	add	sp, sp, #16
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, pc}
+.L668:
+	ldr	r2, [r4, #1044]
+	mov	lr, #16
+	ubfx	ip, ip, #1, #6
+	ldr	r2, [r2, #12]
+	str	r2, [sp, #12]
+	ldr	r2, [sp, #12]
+	bfi	r2, lr, #8, #8
+	str	r2, [sp, #12]
+	ldr	r2, [sp, #12]
+	bfc	r2, #3, #1
+	str	r2, [sp, #12]
+	ldr	r2, [sp, #12]
+	bfc	r2, #5, #3
+	str	r2, [sp, #12]
+	mov	r2, #0
+	str	r2, [sp, #4]
+	cmp	r5, r2
+	ldr	lr, [sp, #4]
+	ldreq	r3, [r4, #1200]
+	bfi	lr, r6, #1, #1
+	mov	r6, #1
+	str	lr, [sp, #4]
+	ldr	lr, [sp, #4]
+	orr	lr, lr, #8
+	str	lr, [sp, #4]
+	ldr	lr, [sp, #4]
+	bfi	lr, r6, #5, #2
+	str	lr, [sp, #4]
+	ldr	lr, [sp, #4]
+	orr	lr, lr, #536870912
+	str	lr, [sp, #4]
+	ldr	lr, [sp, #4]
+	orr	lr, lr, #1024
+	str	lr, [sp, #4]
+	ldr	lr, [sp, #4]
+	bfi	lr, r2, #4, #1
+	str	lr, [sp, #4]
+	ldr	lr, [sp, #4]
+	bfi	lr, ip, #22, #6
+	str	lr, [sp, #4]
+	streq	r6, [r3]
+	beq	.L675
+	ldrb	ip, [r4, #1193]	@ zero_extendqisi2
+	lsr	r1, r1, #1
+	cmp	ip, #25
+	mov	ip, r2
+	movcc	r6, #64
+	movcs	r6, #128
+.L673:
+	cmp	ip, r1
+	add	r7, r3, ip, lsl #2
+	add	lr, r6, r2
+	blt	.L674
+.L675:
+	ldr	r1, [sp, #4]
+	mov	r2, r5
+	ldr	r3, [r4, #1200]
+	str	r0, [r4, #1204]
+	ubfx	r1, r1, #22, #6
+	lsl	r1, r1, #10
+	str	r3, [r4, #1208]
+	bl	rknand_dma_map_single
+	ldr	r1, [sp, #4]
+	mov	r2, r5
+	str	r0, [r4, #1212]
+	clz	r5, r5
+	ldr	r0, [r4, #1208]
+	lsr	r5, r5, #5
+	ubfx	r1, r1, #22, #6
+	lsl	r1, r1, #7
+	bl	rknand_dma_map_single
+	mov	r3, #1
+	ldr	r2, [r4, #1212]
+	str	r3, [r4, #1220]
+	mov	r1, #16
+	ldr	r3, [r4, #1044]
+	str	r0, [r4, #1216]
+	str	r2, [r3, #20]
+	mov	r2, #0
+	str	r0, [r3, #24]
+	str	r2, [sp, #8]
+	ldr	r2, [sp, #8]
+	bfi	r2, r1, #9, #5
+	mov	r1, #2
+	str	r2, [sp, #8]
+	ldr	r2, [sp, #8]
+	orr	r2, r2, #448
+	str	r2, [sp, #8]
+	ldr	r2, [sp, #8]
+	bfi	r2, r1, #3, #3
+	str	r2, [sp, #8]
+	ldr	r2, [sp, #8]
+	orr	r2, r2, #4
+	str	r2, [sp, #8]
+	ldr	r2, [sp, #8]
+	bfi	r2, r5, #1, #1
+	str	r2, [sp, #8]
 	ldr	r2, [sp, #8]
 	orr	r2, r2, #1
 	str	r2, [sp, #8]
@@ -3652,417 +3756,402 @@
 	str	r2, [sp, #4]
 	ldr	r2, [sp, #4]
 	str	r2, [r3, #8]
-.L663:
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L681:
+	b	.L667
+.L674:
+	ldr	r8, [r7]	@ unaligned
+	bic	r2, r2, #3
+	ldr	r7, [r4, #1200]
+	add	ip, ip, #1
+	str	r8, [r7, r2]
+	mov	r2, lr
+	b	.L673
+.L685:
 	.align	2
-.L680:
+.L684:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_xfer_start, .-nandc_xfer_start
 	.align	2
 	.global	nandc_set_seed
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_set_seed, %function
 nandc_set_seed:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r2, .L689
+	ldr	r3, .L693
 	and	r0, r0, #127
-	ldr	r3, .L689+4
-	mov	r0, r0, asl #1
-	ldrb	r1, [r2, #1168]	@ zero_extendqisi2
-	ldrh	r3, [r3, r0]
+	lsl	r0, r0, #1
+	ldrh	r2, [r3, r0]
+	ldr	r3, .L693+4
+	ldrb	r1, [r3, #1196]	@ zero_extendqisi2
 	cmp	r1, #0
-	ldr	r1, .L689
-	ldrb	r2, [r2, #1028]	@ zero_extendqisi2
-	orrne	r3, r3, #-1073741824
-	cmp	r2, #9
-	ldr	r2, [r1, #1040]
-	streq	r3, [r2, #520]
-	strne	r3, [r2, #336]
+	ldrb	r1, [r3, #1028]	@ zero_extendqisi2
+	ldr	r3, [r3, #1044]
+	orrne	r2, r2, #-1073741824
+	cmp	r1, #9
+	streq	r2, [r3, #520]
+	strne	r2, [r3, #336]
 	bx	lr
-.L690:
+.L694:
 	.align	2
-.L689:
+.L693:
+	.word	.LANCHOR1+1108
 	.word	.LANCHOR0
-	.word	.LANCHOR1+1144
 	.fnend
 	.size	nandc_set_seed, .-nandc_set_seed
 	.align	2
 	.global	zftl_flash_de_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_flash_de_init, %function
 zftl_flash_de_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
+	push	{r4, lr}
+	.save {r4, lr}
+	ldr	r4, .L715
 	bl	nandc_wait_flash_ready
-	ldr	r4, .L711
 	ldrb	r3, [r4]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L692
-	ldrb	r0, [r4, #1102]	@ zero_extendqisi2
+	beq	.L696
+	ldrb	r0, [r4, #1110]	@ zero_extendqisi2
 	cmp	r0, #0
-	bne	.L692
+	bne	.L696
 	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
 	cmp	r3, #9
-	beq	.L692
+	beq	.L696
 	bl	zftl_flash_exit_slc_mode
-.L692:
+.L696:
 	mov	r0, #0
-	ldr	r5, .L711
 	bl	hynix_reconfig_rr_para
-	ldrb	r3, [r4, #1135]	@ zero_extendqisi2
+	ldrb	r3, [r4, #1143]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L693
-	ldrb	r3, [r5, #1232]	@ zero_extendqisi2
+	beq	.L697
+	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
 	tst	r3, #1
-	beq	.L693
+	beq	.L697
 	mov	r0, #1
 	bl	flash_set_interface_mode
 	mov	r0, #1
 	bl	nandc_set_if_mode
 	mov	r3, #0
-	strb	r3, [r5, #1135]
-.L693:
-	ldrb	r3, [r4, #1168]	@ zero_extendqisi2
-	ldr	r5, .L711
+	strb	r3, [r4, #1143]
+.L697:
+	ldrb	r3, [r4, #1196]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L694
+	beq	.L698
 	mov	r0, #0
-	strb	r0, [r5, #1168]
+	strb	r0, [r4, #1196]
 	bl	nandc_set_seed
 	mov	r3, #1
-	strb	r3, [r5, #1168]
-.L694:
+	strb	r3, [r4, #1196]
+.L698:
 	mov	r0, #0
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L712:
+	pop	{r4, pc}
+.L716:
 	.align	2
-.L711:
+.L715:
 	.word	.LANCHOR0
 	.fnend
 	.size	zftl_flash_de_init, .-zftl_flash_de_init
 	.align	2
 	.global	nandc_randomizer_enable
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_randomizer_enable, %function
 nandc_randomizer_enable:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L714
-	strb	r0, [r3, #1168]
+	ldr	r3, .L718
+	strb	r0, [r3, #1196]
 	bx	lr
-.L715:
+.L719:
 	.align	2
-.L714:
+.L718:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_randomizer_enable, .-nandc_randomizer_enable
 	.align	2
 	.global	nandc_get_chip_if
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_get_chip_if, %function
 nandc_get_chip_if:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L717
+	ldr	r3, .L721
 	add	r0, r0, #8
-	ldr	r3, [r3, #1040]
-	add	r0, r3, r0, asl #8
+	ldr	r3, [r3, #1044]
+	add	r0, r3, r0, lsl #8
 	bx	lr
-.L718:
+.L722:
 	.align	2
-.L717:
+.L721:
 	.word	.LANCHOR0
 	.fnend
 	.size	nandc_get_chip_if, .-nandc_get_chip_if
 	.align	2
-	.global	zbuf_init
-	.type	zbuf_init, %function
-zbuf_init:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 0
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
-	.save {r4, r5, r6, r7, r8, lr}
-	mov	r5, #0
-	ldr	r4, .L723
-	mov	r7, r5
-	ldr	r8, .L723+4
-.L720:
-	ldrb	r0, [r8, #2772]	@ zero_extendqisi2
-	uxtb	r3, r5
-	add	r2, r3, #1
-	strb	r3, [r4, #1]
-	strb	r2, [r4]
-	add	r5, r5, #1
-	mov	r0, r0, asl #9
-	strb	r7, [r4, #2]
-	str	r7, [r4, #8]
-	bl	ftl_malloc
-	ldr	r6, .L723+4
-	add	r4, r4, #48
-	str	r0, [r4, #-44]
-	mov	r0, #64
-	bl	ftl_malloc
-	cmp	r5, #32
-	str	r0, [r4, #-36]
-	bne	.L720
-	mvn	r3, #0
-	strb	r5, [r6, #2774]
-	strb	r3, [r6, #2724]
-	mov	r3, #0
-	strb	r3, [r6, #2773]
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L724:
-	.align	2
-.L723:
-	.word	.LANCHOR0+1236
-	.word	.LANCHOR0
-	.fnend
-	.size	zbuf_init, .-zbuf_init
-	.align	2
 	.global	buf_reinit
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	buf_reinit, %function
 buf_reinit:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r2, .L728
+	ldr	r2, .L726
 	mov	r3, #0
 	mov	r1, r3
-.L726:
+.L724:
 	uxtb	r0, r3
 	add	r3, r3, #1
 	cmp	r3, #32
+	strb	r1, [r2, #2]
 	add	ip, r0, #1
 	strb	r0, [r2, #1]
+	strb	ip, [r2]
 	add	r2, r2, #48
-	strb	ip, [r2, #-48]
-	strb	r1, [r2, #-46]
 	str	r1, [r2, #-40]
-	bne	.L726
-	ldr	r2, .L728+4
-	mvn	r1, #0
-	strb	r3, [r2, #2774]
-	strb	r1, [r2, #2724]
-	mov	r1, #0
-	strb	r1, [r2, #2773]
+	bne	.L724
+	ldr	r2, .L726+4
+	mvn	r0, #0
+	strb	r0, [r2, #2720]
+	strb	r1, [r2, #2768]
+	strb	r3, [r2, #2769]
 	bx	lr
-.L729:
+.L727:
 	.align	2
-.L728:
-	.word	.LANCHOR0+1236
+.L726:
+	.word	.LANCHOR0+1232
 	.word	.LANCHOR0
 	.fnend
 	.size	buf_reinit, .-buf_reinit
 	.align	2
 	.global	buf_add_tail
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	buf_add_tail, %function
 buf_add_tail:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
 	mvn	r3, #0
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	strb	r3, [r1]
 	mov	r4, r1
 	ldrb	r3, [r0]	@ zero_extendqisi2
+	cmp	r3, #255
+	bne	.L729
+	ldrb	r3, [r1, #1]	@ zero_extendqisi2
 	mov	r5, r0
 	cmp	r3, #255
-	ldrne	r2, .L738
-	movne	r1, #48
-	bne	.L736
+	bne	.L730
+	mov	r2, #74
+	ldr	r1, .L736
+	ldr	r0, .L736+4
+	bl	printk
+	bl	dump_stack
+.L730:
+	ldrb	r3, [r4, #1]	@ zero_extendqisi2
+	strb	r3, [r5]
+	pop	{r4, r5, r6, pc}
+.L729:
+	ldr	r2, .L736+8
+	mov	r1, #48
+	mov	r6, r2
+.L734:
+	mov	r5, r3
+	mla	r3, r1, r3, r2
+	ldrb	r3, [r3, #1232]	@ zero_extendqisi2
+	cmp	r3, #255
+	bne	.L734
 	ldrb	r3, [r4, #1]	@ zero_extendqisi2
 	cmp	r3, #255
 	bne	.L732
-	ldr	r1, .L738+4
-	mov	r2, #74
-	ldr	r0, .L738+8
+	mov	r2, #81
+	ldr	r1, .L736
+	ldr	r0, .L736+4
 	bl	printk
 	bl	dump_stack
 .L732:
-	ldrb	r3, [r4, #1]	@ zero_extendqisi2
-	strb	r3, [r5]
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L736:
-	mov	r5, r3
-	mla	r3, r1, r3, r2
-	ldrb	r3, [r3, #1236]	@ zero_extendqisi2
-	cmp	r3, #255
-	bne	.L736
-	ldrb	r3, [r4, #1]	@ zero_extendqisi2
-	cmp	r3, #255
-	bne	.L734
-	ldr	r1, .L738+4
-	mov	r2, #81
-	ldr	r0, .L738+8
-	bl	printk
-	bl	dump_stack
-.L734:
-	ldr	r2, .L738
-	mov	r1, #48
-	ldrb	r3, [r4, #1]	@ zero_extendqisi2
-	mla	r5, r1, r5, r2
-	strb	r3, [r5, #1236]
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L739:
+	mov	r3, #48
+	ldrb	r2, [r4, #1]	@ zero_extendqisi2
+	mla	r3, r3, r5, r6
+	strb	r2, [r3, #1232]
+	pop	{r4, r5, r6, pc}
+.L737:
 	.align	2
-.L738:
-	.word	.LANCHOR0
-	.word	.LANCHOR1+1400
+.L736:
+	.word	.LANCHOR1+1364
 	.word	.LC0
+	.word	.LANCHOR0
 	.fnend
 	.size	buf_add_tail, .-buf_add_tail
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	queue_read_cmd, %function
 queue_read_cmd:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
 	mov	r4, r0
-	ldr	r1, [r4, #24]
+	ldr	r1, [r0, #24]
 	mov	r0, #48
 	bl	flash_start_page_read
 	mov	r3, #1
 	mov	r1, r4
 	strb	r3, [r4, #42]
-	ldr	r0, .L742
 	mov	r3, #0
 	strb	r3, [r4, #43]
 	mvn	r3, #0
 	strb	r3, [r4]
-	ldmfd	sp!, {r4, lr}
+	ldr	r0, .L740
+	pop	{r4, lr}
 	b	buf_add_tail
-.L743:
+.L741:
 	.align	2
-.L742:
-	.word	.LANCHOR0+2775
+.L740:
+	.word	.LANCHOR0+2770
 	.fnend
 	.size	queue_read_cmd, .-queue_read_cmd
 	.align	2
 	.global	zbuf_free
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zbuf_free, %function
 zbuf_free:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
 	ldrb	r3, [r0, #2]	@ zero_extendqisi2
-	ldr	r4, .L754
+	ldr	r4, .L752
 	and	r3, r3, #8
-	uxtb	r3, r3
-	strb	r3, [r0, #2]
 	cmp	r3, #0
-	beq	.L745
+	strb	r3, [r0, #2]
+	beq	.L743
 	ldr	r3, [r0, #20]
 	cmn	r3, #1
-	beq	.L745
+	beq	.L743
 	mov	r1, r0
-	ldr	r0, .L754+4
+	add	r0, r4, #2768
 	bl	buf_add_tail
-	b	.L746
-.L745:
-	ldrb	r3, [r4, #2773]	@ zero_extendqisi2
+.L744:
+	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
+	add	r3, r3, #1
+	strb	r3, [r4, #2769]
+	pop	{r4, pc}
+.L743:
+	ldrb	r3, [r4, #2768]	@ zero_extendqisi2
 	strb	r3, [r0]
 	ldrb	r3, [r0, #1]	@ zero_extendqisi2
-	strb	r3, [r4, #2773]
-.L746:
-	ldrb	r3, [r4, #2774]	@ zero_extendqisi2
-	add	r3, r3, #1
-	strb	r3, [r4, #2774]
-	ldmfd	sp!, {r4, pc}
-.L755:
+	strb	r3, [r4, #2768]
+	b	.L744
+.L753:
 	.align	2
-.L754:
+.L752:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2773
 	.fnend
 	.size	zbuf_free, .-zbuf_free
 	.align	2
 	.global	buf_alloc
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	buf_alloc, %function
 buf_alloc:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	mov	r5, r0
-	ldr	r4, .L767
-	ldrb	r3, [r4, #2774]	@ zero_extendqisi2
+	ldr	r4, .L765
+	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L757
-.L760:
-	ldrb	r1, [r4, #2773]	@ zero_extendqisi2
+	beq	.L755
+.L758:
+	ldrb	ip, [r4, #2768]	@ zero_extendqisi2
 	cmp	r5, #0
-	ldr	r3, .L767+4
-	mov	r0, #48
-	mla	r0, r0, r1, r3
-	beq	.L758
-	b	.L759
+	ldr	r3, .L765+4
+	add	r0, ip, ip, lsl #1
+	mov	r2, r3
+	add	r0, r3, r0, lsl #4
+	beq	.L756
 .L757:
-	ldr	r1, .L767+8
+	mov	r1, #48
+	mul	r1, r1, ip
+	add	r3, r4, r1
+	add	r2, r2, r1
+	ldrb	ip, [r3, #1232]	@ zero_extendqisi2
+	mov	r1, #0
+	strh	r1, [r2, #34]	@ movhi
+	str	r1, [r3, #1240]
+	strb	ip, [r4, #2768]
+	ldrb	ip, [r4, #2769]	@ zero_extendqisi2
+	strb	r1, [r3, #1272]
+	strb	r1, [r3, #1273]
+	sub	ip, ip, #1
+	strb	ip, [r4, #2769]
+	mov	ip, #1
+	strb	ip, [r3, #1234]
+	mvn	ip, #0
+	strb	ip, [r3, #1232]
+	str	ip, [r3, #1252]
+	pop	{r4, r5, r6, pc}
+.L755:
 	mov	r2, #121
-	ldr	r0, .L767+12
+	ldr	r1, .L765+8
+	ldr	r0, .L765+12
 	bl	printk
 	bl	dump_stack
-	ldrb	r3, [r4, #2774]	@ zero_extendqisi2
+	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L760
-.L762:
+	bne	.L758
+.L760:
 	mov	r0, #0
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L758:
-	ldr	r2, .L767
-	ldrb	r2, [r2, #2774]	@ zero_extendqisi2
-	cmp	r2, #1
-	beq	.L762
-.L759:
-	mov	r2, #48
-	mul	r1, r2, r1
-	add	r2, r4, r1
-	add	r3, r3, r1
-	mov	r1, #0
-	ldrb	ip, [r2, #1236]	@ zero_extendqisi2
-	strh	r1, [r3, #34]	@ movhi
-	str	r1, [r2, #1244]
-	strb	ip, [r4, #2773]
-	ldrb	ip, [r4, #2774]	@ zero_extendqisi2
-	strb	r1, [r2, #1276]
-	sub	ip, ip, #1
-	strb	r1, [r2, #1277]
-	strb	ip, [r4, #2774]
-	mov	ip, #1
-	strb	ip, [r2, #1238]
-	mvn	ip, #0
-	strb	ip, [r2, #1236]
-	str	ip, [r2, #1256]
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L768:
+	pop	{r4, r5, r6, pc}
+.L756:
+	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
+	cmp	r3, #1
+	bne	.L757
+	b	.L760
+.L766:
 	.align	2
-.L767:
+.L765:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+1236
-	.word	.LANCHOR1+1416
+	.word	.LANCHOR0+1232
+	.word	.LANCHOR1+1377
 	.word	.LC0
 	.fnend
 	.size	buf_alloc, .-buf_alloc
 	.align	2
 	.global	buf_remove_buf
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	buf_remove_buf, %function
 buf_remove_buf:
 	.fnstart
@@ -4071,236 +4160,246 @@
 	ldrb	ip, [r1, #1]	@ zero_extendqisi2
 	ldrb	r3, [r0]	@ zero_extendqisi2
 	cmp	ip, r3
-	bne	.L770
+	bne	.L768
 	ldrb	r3, [r1]	@ zero_extendqisi2
 	strb	r3, [r0]
 	mov	r0, #1
 	bx	lr
-.L770:
-	ldr	r0, .L777
-	str	lr, [sp, #-4]!
-	.save {lr}
-	mov	lr, #48
-.L772:
-	cmp	r3, #255
-	beq	.L776
+.L771:
 	mov	r2, r3
 	mla	r3, lr, r3, r0
-	ldrb	r3, [r3, #1236]	@ zero_extendqisi2
-	cmp	r3, ip
-	bne	.L772
-	ldr	r0, .L777
-	mov	ip, #48
+	ldrb	r3, [r3, #1232]	@ zero_extendqisi2
+	cmp	ip, r3
+	bne	.L770
+	mla	r2, lr, r2, r0
 	ldrb	r3, [r1]	@ zero_extendqisi2
-	mla	r2, ip, r2, r0
 	mov	r0, #1
-	strb	r3, [r2, #1236]
+	strb	r3, [r2, #1232]
 	mvn	r3, #0
 	strb	r3, [r1]
 	ldr	pc, [sp], #4
-.L776:
+.L768:
+	ldr	r0, .L776
+	str	lr, [sp, #-4]!
+	.save {lr}
+	mov	lr, #48
+.L770:
+	cmp	r3, #255
+	bne	.L771
 	mov	r0, #0
 	ldr	pc, [sp], #4
-.L778:
-	.align	2
 .L777:
+	.align	2
+.L776:
 	.word	.LANCHOR0
 	.fnend
 	.size	buf_remove_buf, .-buf_remove_buf
 	.align	2
 	.global	buf_remove_free
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	buf_remove_free, %function
 buf_remove_free:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L785
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
 	mov	r5, r0
-	ldrb	r2, [r3, #2774]	@ zero_extendqisi2
-	mov	r4, r3
-	cmp	r2, #0
-	bne	.L780
-	ldr	r1, .L785+4
+	ldr	r4, .L784
+	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L779
 	mov	r2, #172
-	ldr	r0, .L785+8
+	ldr	r1, .L784+4
+	ldr	r0, .L784+8
 	bl	printk
 	bl	dump_stack
-.L780:
-	ldrb	r3, [r4, #2774]	@ zero_extendqisi2
-	ldr	r6, .L785
+.L779:
+	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldmeqfd	sp!, {r4, r5, r6, pc}
-	ldr	r0, .L785+12
+	popeq	{r4, r5, r6, pc}
 	mov	r1, r5
+	ldr	r0, .L784+12
 	bl	buf_remove_buf
 	cmp	r0, #1
-	ldreqb	r3, [r6, #2774]	@ zero_extendqisi2
+	ldrbeq	r3, [r4, #2769]	@ zero_extendqisi2
 	subeq	r3, r3, #1
-	streqb	r3, [r6, #2774]
-	ldreqb	r3, [r5, #2]	@ zero_extendqisi2
+	strbeq	r3, [r4, #2769]
+	ldrbeq	r3, [r5, #2]	@ zero_extendqisi2
 	orreq	r3, r3, #1
-	streqb	r3, [r5, #2]
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L786:
-	.align	2
+	strbeq	r3, [r5, #2]
+	pop	{r4, r5, r6, pc}
 .L785:
+	.align	2
+.L784:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+1428
+	.word	.LANCHOR1+1387
 	.word	.LC0
-	.word	.LANCHOR0+2773
+	.word	.LANCHOR0+2768
 	.fnend
 	.size	buf_remove_free, .-buf_remove_free
 	.align	2
 	.global	dump_buf_info
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	dump_buf_info, %function
 dump_buf_info:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, lr}
-	.save {r4, r5, lr}
-	.pad #28
-	sub	sp, sp, #28
-	ldr	r4, .L791
-	ldr	r0, .L791+4
-	ldrb	r1, [r4, #2775]	@ zero_extendqisi2
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	.pad #24
+	sub	sp, sp, #24
+	ldr	r5, .L790
+	ldr	r0, .L790+4
+	ldrb	r1, [r5, #2770]	@ zero_extendqisi2
+	add	r4, r5, #1232
 	bl	printk
-	ldrb	r1, [r4, #2776]	@ zero_extendqisi2
-	ldr	r0, .L791+8
+	ldrb	r1, [r5, #2771]	@ zero_extendqisi2
+	add	r5, r5, #2768
+	ldr	r0, .L790+8
 	bl	printk
-	ldrb	r1, [r4, #2777]	@ zero_extendqisi2
-	ldr	r0, .L791+12
+	ldrb	r1, [r5, #4]	@ zero_extendqisi2
+	ldr	r0, .L790+12
 	bl	printk
-	ldrb	r1, [r4, #2778]	@ zero_extendqisi2
-	ldr	r0, .L791+16
+	ldr	r6, .L790+16
+	ldrb	r1, [r5, #5]	@ zero_extendqisi2
+	ldr	r0, .L790+20
 	bl	printk
-	ldrb	r1, [r4, #2773]	@ zero_extendqisi2
-	ldr	r0, .L791+20
+	ldrb	r1, [r5]	@ zero_extendqisi2
+	ldr	r0, .L790+24
 	bl	printk
-	ldrb	r1, [r4, #2774]	@ zero_extendqisi2
-	ldr	r0, .L791+24
+	ldrb	r1, [r5, #1]	@ zero_extendqisi2
+	ldr	r0, .L790+28
 	bl	printk
-	ldr	r4, .L791+28
-	add	r5, r4, #1536
-.L788:
-	ldrh	r0, [r4, #34]
+.L787:
+	ldr	r0, [r4, #24]
 	add	r4, r4, #48
-	ldrb	r1, [r4, #-47]	@ zero_extendqisi2
-	ldrb	r2, [r4, #-48]	@ zero_extendqisi2
-	str	r0, [sp]
-	ldrb	r0, [r4, #-6]	@ zero_extendqisi2
 	ldrb	r3, [r4, #-46]	@ zero_extendqisi2
-	str	r0, [sp, #4]
-	ldr	r0, [r4, #-12]
-	str	r0, [sp, #8]
+	ldrb	r2, [r4, #-48]	@ zero_extendqisi2
+	ldrb	r1, [r4, #-47]	@ zero_extendqisi2
+	str	r0, [sp, #16]
 	ldr	r0, [r4, #-28]
 	str	r0, [sp, #12]
-	ldr	r0, [r4, #-24]
-	str	r0, [sp, #16]
-	ldr	r0, .L791+32
+	ldr	r0, [r4, #-12]
+	str	r0, [sp, #8]
+	ldrb	r0, [r4, #-6]	@ zero_extendqisi2
+	str	r0, [sp, #4]
+	ldrh	r0, [r4, #-14]
+	str	r0, [sp]
+	mov	r0, r6
 	bl	printk
 	cmp	r4, r5
-	bne	.L788
-	add	sp, sp, #28
+	bne	.L787
+	add	sp, sp, #24
 	@ sp needed
-	ldmfd	sp!, {r4, r5, pc}
-.L792:
-	.align	2
+	pop	{r4, r5, r6, pc}
 .L791:
+	.align	2
+.L790:
 	.word	.LANCHOR0
+	.word	.LC44
+	.word	.LC45
+	.word	.LC46
+	.word	.LC50
 	.word	.LC47
 	.word	.LC48
 	.word	.LC49
-	.word	.LC50
-	.word	.LC51
-	.word	.LC52
-	.word	.LANCHOR0+1236
-	.word	.LC53
 	.fnend
 	.size	dump_buf_info, .-dump_buf_info
 	.align	2
 	.global	flash_check_bad_block
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_check_bad_block, %function
 flash_check_bad_block:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L794
-	ldrb	r2, [r3, #17]	@ zero_extendqisi2
-	ldrh	r3, [r3, #18]
-	smulbb	r3, r2, r3
-	ldr	r2, .L794+4
-	ldr	r2, [r2, #1176]
-	uxth	r3, r3
-	add	r3, r3, #31
-	mov	r3, r3, asr #5
-	mov	r3, r3, asl #2
-	uxth	r3, r3
-	mul	r0, r3, r0
-	add	r3, r0, #912
-	mov	r0, r1, lsr #5
+	ldr	r2, .L793
+	lsr	ip, r1, #5
 	and	r1, r1, #31
-	add	r2, r2, r0, asl #2
-	ldr	r0, [r2, r3]
-	mov	r0, r0, lsr r1
+	ldrb	r3, [r2, #17]	@ zero_extendqisi2
+	ldrh	r2, [r2, #18]
+	smulbb	r3, r3, r2
+	ldr	r2, .L793+4
+	uxth	r3, r3
+	ldr	r2, [r2, #1040]
+	add	r3, r3, #31
+	asr	r3, r3, #5
+	add	r2, r2, ip, lsl #2
+	lsl	r3, r3, #2
+	uxth	r3, r3
+	mla	r0, r0, r3, r2
+	ldr	r0, [r0, #912]
+	lsr	r0, r0, r1
 	and	r0, r0, #1
 	bx	lr
-.L795:
-	.align	2
 .L794:
+	.align	2
+.L793:
 	.word	.LANCHOR2
 	.word	.LANCHOR0
 	.fnend
 	.size	flash_check_bad_block, .-flash_check_bad_block
 	.align	2
 	.global	flash_mask_bad_block
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_mask_bad_block, %function
 flash_mask_bad_block:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L798
-	stmfd	sp!, {r4, r5, r6, lr}
+	ldr	r3, .L797
+	mov	r2, r1
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
-	mov	r5, r1
-	ldrb	r2, [r3, #17]	@ zero_extendqisi2
-	mov	r6, r0
-	ldrh	r4, [r3, #18]
-	mov	r1, r6
-	ldr	r0, .L798+4
-	smulbb	r4, r2, r4
-	mov	r2, r5
+	mov	r5, r0
+	mov	r6, r1
+	mov	r1, r0
+	ldrb	r4, [r3, #17]	@ zero_extendqisi2
+	ldrh	r3, [r3, #18]
+	ldr	r0, .L797+4
+	smulbb	r4, r4, r3
 	bl	printk
-	ldr	r3, .L798+8
-	mov	r2, r5, lsr #5
+	uxth	r4, r4
+	ldr	r3, .L797+8
 	mov	r1, #1
-	and	r5, r5, #31
-	ldr	r3, [r3, #1176]
-	uxth	r4, r4
-	add	r4, r4, #31
-	mov	r4, r4, asr #5
-	mov	r4, r4, asl #2
-	uxth	r4, r4
-	mul	r4, r4, r6
-	add	r4, r4, #912
-	add	r4, r3, r4
-	ldr	r3, [r4, r2, asl #2]
-	orr	r5, r3, r1, asl r5
-	str	r5, [r4, r2, asl #2]
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L799:
-	.align	2
+	add	r0, r4, #31
+	asr	r0, r0, #5
+	ldr	r2, [r3, #1040]
+	lsl	r0, r0, #2
+	uxth	r0, r0
+	mul	r0, r5, r0
+	lsr	r5, r6, #5
+	and	r6, r6, #31
+	add	r0, r0, #912
+	add	r0, r0, r5, lsl #2
+	ldr	r3, [r2, r0]
+	orr	r6, r3, r1, lsl r6
+	str	r6, [r2, r0]
+	pop	{r4, r5, r6, pc}
 .L798:
+	.align	2
+.L797:
 	.word	.LANCHOR2
-	.word	.LC54
+	.word	.LC51
 	.word	.LANCHOR0
 	.fnend
 	.size	flash_mask_bad_block, .-flash_mask_bad_block
 	.align	2
 	.global	str2hex
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	str2hex, %function
 str2hex:
 	.fnstart
@@ -4309,385 +4408,394 @@
 	@ link register save eliminated.
 	ldrb	r3, [r0]	@ zero_extendqisi2
 	cmp	r3, #48
-	bne	.L801
+	bne	.L800
 	ldrb	r3, [r0, #1]	@ zero_extendqisi2
 	and	r3, r3, #223
 	cmp	r3, #88
 	addeq	r0, r0, #2
-.L801:
+.L800:
 	ldrb	r3, [r0]	@ zero_extendqisi2
 	and	r3, r3, #223
 	cmp	r3, #88
 	addeq	r0, r0, #1
 	sub	r3, r0, #1
 	mov	r0, #0
-.L803:
+.L802:
 	ldrb	r2, [r3, #1]!	@ zero_extendqisi2
 	cmp	r2, #0
-	beq	.L812
+	bne	.L807
+	bx	lr
+.L807:
 	sub	r1, r2, #48
 	uxtb	ip, r1
 	cmp	ip, #9
-	addls	r0, r1, r0, asl #4
-	bls	.L803
+	addls	r0, r1, r0, lsl #4
+	bls	.L802
 	sub	r1, r2, #97
 	cmp	r1, #5
 	subls	r2, r2, #87
-	bls	.L811
+	bls	.L809
 	sub	r1, r2, #65
 	cmp	r1, #5
 	bxhi	lr
 	sub	r2, r2, #55
-.L811:
-	add	r0, r2, r0, asl #4
-	b	.L803
-.L812:
-	bx	lr
+.L809:
+	add	r0, r2, r0, lsl #4
+	b	.L802
 	.fnend
 	.size	str2hex, .-str2hex
 	.align	2
 	.global	zftl_proc_debug_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_proc_debug_init, %function
 zftl_proc_debug_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, lr}
+	push	{r0, r1, r2, lr}
 	.save {lr}
 	.pad #12
 	mov	r2, #0
-	mov	r1, #292
 	str	r2, [sp]
-	ldr	r3, .L815
-	ldr	r0, .L815+4
+	mov	r1, #292
+	ldr	r3, .L812
+	ldr	r0, .L812+4
 	bl	proc_create_data
 	add	sp, sp, #12
 	@ sp needed
 	ldr	pc, [sp], #4
-.L816:
+.L813:
 	.align	2
-.L815:
-	.word	.LANCHOR1+1448
-	.word	.LC55
+.L812:
+	.word	.LANCHOR1+1404
+	.word	.LC52
 	.fnend
 	.size	zftl_proc_debug_init, .-zftl_proc_debug_init
 	.align	2
 	.global	ftl_print_info_to_buf
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_print_info_to_buf, %function
 ftl_print_info_to_buf:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, r5, r6, lr}
+	push	{r0, r1, r2, r3, r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
 	.pad #16
-	mov	r5, r0
-	ldr	r1, .L819
-	ldr	r2, .L819+4
+	mov	r6, r0
+	ldr	r2, .L816
+	ldr	r1, .L816+4
 	bl	sprintf
-	ldr	r1, .L819+8
-	ldr	r6, .L819+12
+	ldr	r1, .L816+8
+	add	r4, r6, r0
+	ldr	r5, .L816+12
+	ldrb	r0, [r1, #10]	@ zero_extendqisi2
 	ldrb	r3, [r1, #6]	@ zero_extendqisi2
 	ldrb	r2, [r1, #5]	@ zero_extendqisi2
-	add	r4, r5, r0
-	ldrb	r0, [r1, #7]	@ zero_extendqisi2
-	str	r0, [sp]
-	ldrb	r0, [r1, #8]	@ zero_extendqisi2
-	str	r0, [sp, #4]
+	str	r0, [sp, #12]
 	ldrb	r0, [r1, #9]	@ zero_extendqisi2
 	str	r0, [sp, #8]
+	ldrb	r0, [r1, #8]	@ zero_extendqisi2
+	str	r0, [sp, #4]
 	mov	r0, r4
-	ldrb	r1, [r1, #10]	@ zero_extendqisi2
-	str	r1, [sp, #12]
-	ldr	r1, .L819+16
+	ldrb	r1, [r1, #7]	@ zero_extendqisi2
+	str	r1, [sp]
+	ldr	r1, .L816+16
 	bl	sprintf
-	ldr	r2, [r6, #1032]
-	ldr	r1, .L819+20
-	mov	r2, r2, lsr #11
+	ldr	r2, [r5, #1032]
 	add	r4, r4, r0
+	ldr	r1, .L816+20
 	mov	r0, r4
+	lsr	r2, r2, #11
 	bl	sprintf
-	ldr	r2, [r6, #2780]
-	ldr	r1, .L819+24
-	mov	r2, r2, lsr #11
+	ldr	r2, [r5, #2776]
 	add	r4, r4, r0
+	ldr	r1, .L816+24
 	mov	r0, r4
+	lsr	r2, r2, #11
 	bl	sprintf
-	ldr	r1, .L819+28
 	add	r4, r4, r0
+	ldr	r1, .L816+28
 	mov	r0, r4
 	add	r4, r4, #10
 	bl	strcpy
-	ldr	r2, [r6, #2784]
+	ldr	r2, [r5, #2780]
 	mov	r0, r4
-	ldr	r1, .L819+32
+	ldr	r1, .L816+32
 	bl	sprintf
-	ldr	r2, [r6, #1032]
-	ldr	r1, .L819+36
 	add	r4, r4, r0
+	ldr	r2, [r5, #1032]
+	ldr	r1, .L816+36
 	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #1092]
-	ldr	r1, .L819+40
+	ldr	r3, [r5, #1096]
+	add	r4, r4, r0
+	ldr	r1, .L816+40
+	mov	r0, r4
 	ldr	r2, [r3, #524]
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #1092]
-	ldr	r1, .L819+44
-	ldr	r2, [r3, #528]
+	ldr	r3, [r5, #1096]
 	add	r4, r4, r0
+	ldr	r1, .L816+44
 	mov	r0, r4
+	ldr	r2, [r3, #528]
+	bl	sprintf
+	add	r3, r5, #2784
+	add	r4, r4, r0
+	ldrh	r2, [r3]
+	mov	r0, r4
+	ldr	r1, .L816+48
+	bl	sprintf
+	movw	r3, #2786
+	add	r4, r4, r0
+	ldrh	r2, [r5, r3]
+	mov	r0, r4
+	ldr	r1, .L816+52
 	bl	sprintf
 	movw	r3, #2788
-	ldrh	r2, [r6, r3]
-	ldr	r1, .L819+48
 	add	r4, r4, r0
+	ldrh	r2, [r5, r3]
 	mov	r0, r4
+	ldr	r1, .L816+56
 	bl	sprintf
 	movw	r3, #2790
-	ldrh	r2, [r6, r3]
-	ldr	r1, .L819+52
 	add	r4, r4, r0
+	ldrh	r2, [r5, r3]
 	mov	r0, r4
+	ldr	r1, .L816+60
 	bl	sprintf
 	movw	r3, #2792
-	ldrh	r2, [r6, r3]
-	ldr	r1, .L819+56
 	add	r4, r4, r0
+	ldrh	r2, [r5, r3]
 	mov	r0, r4
+	ldr	r1, .L816+64
 	bl	sprintf
 	movw	r3, #2794
-	ldrh	r2, [r6, r3]
-	ldr	r1, .L819+60
 	add	r4, r4, r0
+	ldrh	r2, [r5, r3]
 	mov	r0, r4
+	ldr	r1, .L816+68
 	bl	sprintf
-	movw	r3, #2796
-	ldrh	r2, [r6, r3]
-	ldr	r1, .L819+64
+	ldrb	r1, [r5, #2797]	@ zero_extendqisi2
 	add	r4, r4, r0
+	ldrb	r3, [r5, #2796]	@ zero_extendqisi2
 	mov	r0, r4
-	bl	sprintf
-	movw	r3, #2798
-	ldrh	r2, [r6, r3]
-	ldr	r1, .L819+68
-	add	r4, r4, r0
-	mov	r0, r4
-	bl	sprintf
-	ldrb	r1, [r6, #2801]	@ zero_extendqisi2
-	ldrb	r2, [r6, #2774]	@ zero_extendqisi2
-	ldrb	r3, [r6, #2800]	@ zero_extendqisi2
-	add	r4, r4, r0
+	ldrb	r2, [r5, #2769]	@ zero_extendqisi2
 	str	r1, [sp]
-	ldr	r1, .L819+72
-	mov	r0, r4
+	ldr	r1, .L816+72
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+76
-	ldrh	r2, [r3, #148]
-	ldrh	r3, [r3, #146]
+	ldr	r2, [r5, #2800]
 	add	r4, r4, r0
+	ldr	r1, .L816+76
 	mov	r0, r4
+	ldrh	r3, [r2, #146]
+	ldrh	r2, [r2, #148]
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+80
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldr	r1, .L816+80
+	mov	r0, r4
 	ldr	r2, [r3, #16]
 	ldr	r3, [r3, #20]
 	add	r2, r3, r2, lsr #11
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+84
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldr	r1, .L816+84
+	mov	r0, r4
 	ldr	r2, [r3, #24]
 	ldr	r3, [r3, #28]
 	add	r2, r3, r2, lsr #11
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+88
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldr	r1, .L816+88
+	mov	r0, r4
 	ldr	r2, [r3, #64]
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+92
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldr	r1, .L816+92
+	mov	r0, r4
 	ldr	r2, [r3, #68]
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #1092]
-	ldr	r2, .L819+96
-	ldr	r1, .L819+100
-	ldr	r3, [r3, #12]
-	umull	r2, r3, r3, r2
-	mov	r2, r3, lsr #3
+	ldr	r3, [r5, #1096]
 	add	r4, r4, r0
+	ldr	r1, .L816+96
 	mov	r0, r4
+	ldr	r2, [r3, #12]
+	umull	r2, r3, r2, r1
+	ldr	r1, .L816+100
+	lsr	r2, r3, #3
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldrb	r2, [r6]	@ zero_extendqisi2
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldrb	r2, [r5]	@ zero_extendqisi2
+	mov	r0, r4
 	ldrh	r1, [r3, #150]
-	add	r4, r4, r0
 	str	r1, [sp]
-	ldr	r1, .L819+104
-	mov	r0, r4
+	ldr	r1, .L816+104
 	ldr	r3, [r3, #156]
 	bl	sprintf
-	ldr	r3, [r6, #1092]
-	ldr	r1, .L819+108
+	ldr	r3, [r5, #1096]
+	add	r4, r4, r0
+	ldr	r1, .L816+108
+	mov	r0, r4
 	ldr	r2, [r3, #556]
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #1092]
-	ldr	r1, .L819+112
+	ldr	r3, [r5, #1096]
+	add	r4, r4, r0
+	ldr	r1, .L816+112
+	mov	r0, r4
 	ldr	r2, [r3, #552]
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+116
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldr	r1, .L816+116
+	mov	r0, r4
 	ldr	r2, [r3, #52]
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+120
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldr	r1, .L816+120
+	mov	r0, r4
 	ldr	r2, [r3, #60]
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+124
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldr	r1, .L816+124
+	mov	r0, r4
 	ldr	r2, [r3, #76]
-	add	r4, r4, r0
-	mov	r0, r4
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldr	r1, .L819+128
+	ldr	r3, [r5, #2800]
+	add	r4, r4, r0
+	ldr	r1, .L816+128
+	mov	r0, r4
 	ldr	r2, [r3, #8]
+	bl	sprintf
+	ldr	r1, [r5, #1096]
 	add	r4, r4, r0
 	mov	r0, r4
-	bl	sprintf
-	ldr	r1, [r6, #1092]
-	ldrh	r2, [r1, #16]
 	ldrh	r3, [r1, #22]
+	ldrh	r2, [r1, #16]
 	ldrb	r1, [r1, #25]	@ zero_extendqisi2
-	add	r4, r4, r0
 	str	r1, [sp]
-	ldr	r1, .L819+132
-	mov	r0, r4
+	ldr	r1, .L816+132
 	bl	sprintf
-	ldr	r1, [r6, #1092]
-	ldrh	r2, [r1, #48]
+	ldr	r1, [r5, #1096]
+	add	r4, r4, r0
+	mov	r0, r4
 	ldrh	r3, [r1, #54]
+	ldrh	r2, [r1, #48]
 	ldrb	r1, [r1, #57]	@ zero_extendqisi2
-	add	r4, r4, r0
 	str	r1, [sp]
-	ldr	r1, .L819+136
-	mov	r0, r4
+	ldr	r1, .L816+136
 	bl	sprintf
-	ldr	r1, [r6, #1092]
-	ldrh	r2, [r1, #80]
+	ldr	r1, [r5, #1096]
+	add	r4, r4, r0
+	mov	r0, r4
 	ldrh	r3, [r1, #86]
+	ldrh	r2, [r1, #80]
 	ldrb	r1, [r1, #89]	@ zero_extendqisi2
-	add	r4, r4, r0
 	str	r1, [sp]
-	ldr	r1, .L819+140
-	mov	r0, r4
+	ldr	r1, .L816+140
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldrh	r1, [r3, #88]
-	ldrh	r2, [r3, #74]
-	str	r1, [sp]
+	ldr	r3, [r5, #2800]
 	add	r4, r4, r0
-	ldrh	r1, [r3, #92]
 	mov	r0, r4
-	str	r1, [sp, #4]
 	ldrh	r1, [r3, #96]
+	ldrh	r2, [r3, #74]
 	str	r1, [sp, #8]
-	ldr	r1, .L819+144
+	ldrh	r1, [r3, #92]
+	str	r1, [sp, #4]
+	ldrh	r1, [r3, #88]
+	str	r1, [sp]
+	ldr	r1, .L816+144
 	ldr	r3, [r3, #84]
 	bl	sprintf
-	ldr	r3, [r6, #2804]
-	ldrh	r1, [r3, #90]
-	ldrh	r2, [r3, #72]
-	str	r1, [sp]
+	ldr	r3, [r5, #2800]
 	add	r4, r4, r0
-	ldrh	r1, [r3, #94]
 	mov	r0, r4
-	str	r1, [sp, #4]
 	ldrh	r1, [r3, #98]
+	ldrh	r2, [r3, #72]
 	str	r1, [sp, #8]
-	ldr	r1, .L819+148
+	ldrh	r1, [r3, #94]
+	str	r1, [sp, #4]
+	ldrh	r1, [r3, #90]
+	str	r1, [sp]
+	ldr	r1, .L816+148
 	ldr	r3, [r3, #80]
 	bl	sprintf
-	movw	r3, #2808
-	ldrh	r2, [r6, r3]
-	ldr	r1, .L819+152
+	movw	r3, #2804
 	add	r4, r4, r0
+	ldrh	r2, [r5, r3]
 	mov	r0, r4
+	ldr	r1, .L816+152
 	bl	sprintf
-	movw	r1, #2814
-	ldrh	r1, [r6, r1]
-	movw	r3, #2810
-	ldrh	r2, [r6, r3]
-	movw	r3, #2812
-	ldrh	r3, [r6, r3]
-	str	r1, [sp]
-	add	r1, r6, #2816
+	ldr	r1, [r5, #2812]
 	add	r4, r4, r0
-	ldrh	r1, [r1]
+	movw	r3, #2806
+	movw	r2, #2808
+	ldrh	r3, [r5, r3]
 	mov	r0, r4
-	str	r1, [sp, #4]
-	ldr	r1, [r6, #2820]
 	str	r1, [sp, #8]
-	ldr	r1, .L819+156
-	bl	sprintf
-	ldr	r1, [r6, #1092]
-	add	r3, r1, #584
-	ldrh	r2, [r3]
-	movw	r3, #586
-	ldrh	r3, [r1, r3]
-	add	r4, r4, r0
-	add	r0, r1, #588
-	ldrh	r0, [r0]
-	str	r0, [sp]
-	movw	r0, #590
-	ldrh	r1, [r1, r0]
-	mov	r0, r4
+	add	r1, r5, #2816
+	ldrh	r1, [r1]
+	ldrh	r2, [r5, r2]
 	str	r1, [sp, #4]
-	ldr	r1, .L819+160
+	movw	r1, #2818
+	ldrh	r1, [r5, r1]
+	str	r1, [sp]
+	ldr	r1, .L816+156
 	bl	sprintf
-	ldr	r3, [r6, #1092]
-	ldr	r1, .L819+164
-	ldr	r2, [r3, #544]
-	str	r2, [sp]
+	ldr	r1, [r5, #1096]
 	add	r4, r4, r0
-	ldr	r2, [r6, #2804]
+	movw	r0, #590
+	movw	r3, #586
+	ldrh	r0, [r1, r0]
+	add	r2, r1, #584
+	ldrh	r3, [r1, r3]
+	add	r1, r1, #588
+	ldrh	r2, [r2]
+	str	r0, [sp, #4]
 	mov	r0, r4
-	ldr	r2, [r2, #44]
-	str	r2, [sp, #4]
-	ldr	r2, [r3, #548]
-	str	r2, [sp, #8]
-	ldr	r2, [r3, #536]
-	ldr	r3, [r3, #540]
+	ldrh	r1, [r1]
+	str	r1, [sp]
+	ldr	r1, .L816+160
+	bl	sprintf
+	ldr	r2, [r5, #1096]
+	add	r4, r4, r0
+	ldr	r1, .L816+164
+	mov	r0, r4
+	ldr	r3, [r2, #548]
+	str	r3, [sp, #8]
+	ldr	r3, [r5, #2800]
+	ldr	r3, [r3, #44]
+	str	r3, [sp, #4]
+	ldr	r3, [r2, #544]
+	str	r3, [sp]
+	ldr	r3, [r2, #540]
+	ldr	r2, [r2, #536]
 	bl	sprintf
 	add	r0, r4, r0
-	rsb	r0, r5, r0
+	sub	r0, r0, r6
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L820:
+	pop	{r4, r5, r6, pc}
+.L817:
 	.align	2
-.L819:
+.L816:
 	.word	.LC1
 	.word	.LC2
 	.word	.LANCHOR2
 	.word	.LANCHOR0
+	.word	.LC53
+	.word	.LC54
+	.word	.LC55
 	.word	.LC56
 	.word	.LC57
 	.word	.LC58
@@ -4705,10 +4813,10 @@
 	.word	.LC70
 	.word	.LC71
 	.word	.LC72
+	.word	-858993459
 	.word	.LC73
 	.word	.LC74
 	.word	.LC75
-	.word	-858993459
 	.word	.LC76
 	.word	.LC77
 	.word	.LC78
@@ -4723,13 +4831,13 @@
 	.word	.LC87
 	.word	.LC88
 	.word	.LC89
-	.word	.LC90
-	.word	.LC91
-	.word	.LC92
 	.fnend
 	.size	ftl_print_info_to_buf, .-ftl_print_info_to_buf
 	.align	2
 	.global	zftl_proc_ftl_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_proc_ftl_read, %function
 zftl_proc_ftl_read:
 	.fnstart
@@ -4741,34 +4849,40 @@
 	.size	zftl_proc_ftl_read, .-zftl_proc_ftl_read
 	.align	2
 	.global	ftl_gc_write_buf
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_gc_write_buf, %function
 ftl_gc_write_buf:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
 	mov	r1, r0
 	ldrb	r3, [r0, #2]	@ zero_extendqisi2
-	ldr	r4, .L824
+	ldr	r4, .L821
 	orr	r3, r3, #2
 	strb	r3, [r0, #2]
 	add	r0, r4, #2816
-	add	r0, r0, #8
+	add	r0, r0, #4
 	bl	buf_add_tail
-	ldrb	r0, [r4, #2800]	@ zero_extendqisi2
+	ldrb	r0, [r4, #2796]	@ zero_extendqisi2
 	add	r0, r0, #1
 	uxtb	r0, r0
-	strb	r0, [r4, #2800]
-	ldmfd	sp!, {r4, pc}
-.L825:
+	strb	r0, [r4, #2796]
+	pop	{r4, pc}
+.L822:
 	.align	2
-.L824:
+.L821:
 	.word	.LANCHOR0
 	.fnend
 	.size	ftl_gc_write_buf, .-ftl_gc_write_buf
 	.align	2
 	.global	gc_hook
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_hook, %function
 gc_hook:
 	.fnstart
@@ -4780,6 +4894,9 @@
 	.size	gc_hook, .-gc_hook
 	.align	2
 	.global	vpn_check
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	vpn_check, %function
 vpn_check:
 	.fnstart
@@ -4791,6 +4908,9 @@
 	.size	vpn_check, .-vpn_check
 	.align	2
 	.global	ftl_scan_all_data
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_scan_all_data, %function
 ftl_scan_all_data:
 	.fnstart
@@ -4802,719 +4922,741 @@
 	.size	ftl_scan_all_data, .-ftl_scan_all_data
 	.align	2
 	.global	gc_add_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_add_sblk, %function
 gc_add_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	.pad #16
 	mov	r5, r0
-	ldr	r8, .L866
+	ldr	r8, .L862
 	mov	r4, r1
 	mov	r9, r2
-	ldr	r7, .L866+4
+	ldr	r7, .L862+4
 	ldr	r3, [r8]
 	tst	r3, #256
-	beq	.L830
-	ldr	r3, [r7, #1080]
-	mov	r1, r5
-	ldr	r2, [r7, #1088]
-	add	r3, r3, r0, asl #2
-	ldrb	r3, [r3, #2]	@ zero_extendqisi2
-	mov	r3, r3, lsr #5
-	str	r3, [sp]
-	mov	r3, r0, asl #1
-	ldr	r0, .L866+8
-	ldrh	r3, [r2, r3]
-	mov	r2, r4
-	str	r3, [sp, #4]
-	ldr	r3, .L866+12
-	ldrh	r3, [r3, #52]
-	str	r3, [sp, #8]
-	movw	r3, #2814
+	beq	.L827
+	movw	r3, #2818
+	ldr	r2, [r7, #1092]
 	ldrh	r3, [r7, r3]
 	str	r3, [sp, #12]
+	ldr	r3, .L862+8
+	ldrh	r3, [r3, #52]
+	str	r3, [sp, #8]
+	lsl	r3, r0, #1
+	ldrh	r3, [r2, r3]
+	mov	r2, r1
+	mov	r1, r0
+	str	r3, [sp, #4]
+	ldr	r3, [r7, #1084]
+	add	r3, r3, r0, lsl #2
+	ldr	r0, .L862+12
+	ldrb	r3, [r3, #2]	@ zero_extendqisi2
+	lsr	r3, r3, #5
+	str	r3, [sp]
 	mov	r3, r9
 	bl	printk
-.L830:
-	movw	r3, #1076
+.L827:
+	movw	r3, #1080
 	ldrh	r3, [r7, r3]
 	cmp	r3, r5
-	bhi	.L831
-	ldr	r1, .L866+16
+	bhi	.L828
 	movw	r2, #543
-	ldr	r0, .L866+20
+	ldr	r1, .L862+16
+	ldr	r0, .L862+20
 	bl	printk
 	bl	dump_stack
-.L831:
-	movw	r3, #1076
-	ldr	r1, .L866+4
+.L828:
+	movw	r3, #1080
 	ldrh	r3, [r7, r3]
 	cmp	r3, r5
-	bhi	.L832
+	bhi	.L829
 	ldr	r0, [r8]
 	ands	r0, r0, #1024
-	beq	.L833
-	mov	r1, r5
-	mov	r2, r4
+	beq	.L826
 	mov	r3, r9
-	ldr	r0, .L866+24
+	mov	r2, r4
+	mov	r1, r5
+	ldr	r0, .L862+24
 	bl	printk
-	b	.L852
-.L832:
-	ldr	r2, [r1, #1088]
-	mov	r3, r5, asl #1
+.L849:
+	mov	r0, #0
+	b	.L826
+.L829:
+	ldr	r2, [r7, #1092]
+	lsl	r3, r5, #1
 	ldrh	r3, [r2, r3]
-	ldr	r2, [r1, #1080]
-	add	r2, r2, r5, asl #2
-	ldrb	ip, [r2, #2]	@ zero_extendqisi2
-	ands	r6, ip, #224
-	bne	.L834
+	ldr	r2, [r7, #1084]
+	add	r2, r2, r5, lsl #2
+	ldrb	r2, [r2, #2]	@ zero_extendqisi2
+	ands	r6, r2, #224
+	bne	.L831
 	cmp	r3, #0
-	beq	.L852
-	ldr	r1, .L866+16
+	beq	.L849
 	movw	r2, #553
-	ldr	r0, .L866+20
+	ldr	r1, .L862+16
+	ldr	r0, .L862+20
 	bl	printk
 	bl	dump_stack
-	b	.L852
-.L834:
-	movw	r2, #2828
-	ldrh	r2, [r1, r2]
-	cmp	r2, r5
-	beq	.L852
-	ldr	r2, [r1, #1092]
-	ldrh	r0, [r2, #48]
+	b	.L849
+.L831:
+	movw	r1, #2824
+	ldrh	r1, [r7, r1]
+	cmp	r1, r5
+	beq	.L849
+	ldr	r1, [r7, #1096]
+	ldrh	r0, [r1, #48]
 	cmp	r0, r5
-	beq	.L852
-	ldrh	r0, [r2, #16]
+	beq	.L849
+	ldrh	r0, [r1, #16]
 	cmp	r0, r5
-	beq	.L852
-	ldrh	r0, [r2, #80]
+	beq	.L849
+	ldrh	r0, [r1, #80]
 	cmp	r0, r5
-	beq	.L852
-	ldr	r0, .L866+12
-	add	r1, r1, #2880
-	ldrh	lr, [r0, #52]
-	mov	r0, #0
-.L835:
-	cmp	r0, lr
-	bcs	.L865
-	ldrh	r6, [r1, #2]!
-	cmp	r6, r5
-	beq	.L852
-	add	r0, r0, #1
-	b	.L835
-.L865:
+	beq	.L849
+	ldr	r0, .L862+8
+	mov	ip, #0
+	ldrh	r10, [r0, #52]!
+.L832:
+	cmp	ip, r10
+	bcc	.L833
 	cmp	r4, #0
-	bne	.L840
-	ldr	r0, .L866+28
-	ldrh	r6, [r0]
-	cmp	r6, r5
-	moveq	r0, r4
-	beq	.L833
-	add	r0, r0, #4
-	mov	r1, r4
-.L839:
-	ldrh	r10, [r1, r0]
-	cmp	r5, r10
-	bne	.L838
-	ldr	r0, [r8]
-	ands	r0, r0, #256
-	beq	.L833
-	stmia	sp, {r5, r6}
+	bne	.L837
+	ldr	ip, .L862+28
+	mov	r0, r4
+	ldrh	lr, [ip, #-4]
+	cmp	r5, lr
+	beq	.L826
+	sub	ip, ip, #2
+.L836:
+	ldrh	r6, [r0, ip]
+	cmp	r5, r6
+	bne	.L835
+	ldr	r1, [r8]
+	ands	r0, r1, #256
+	beq	.L826
+	stm	sp, {r5, lr}
+	lsr	r2, r2, #5
 	mov	r1, r5
-	mov	r2, ip, lsr #5
-	ldr	r0, .L866+32
+	ldr	r0, .L862+32
 	bl	printk
-	b	.L852
+	b	.L849
+.L833:
+	ldrh	lr, [r0, #2]!
+	cmp	lr, r5
+	beq	.L849
+	add	ip, ip, #1
+	b	.L832
+.L835:
+	add	r0, r0, #2
+	cmp	r0, #16
+	bne	.L836
+	add	r1, r1, r9, lsl #7
+	add	r6, r1, #136
 .L838:
-	add	r1, r1, #2
-	cmp	r1, #16
-	bne	.L839
-	add	r6, r2, r9, asl #7
-	add	r6, r6, #136
-	b	.L841
-.L840:
-	add	r6, r2, #392
-.L841:
-	ldr	r2, [r8]
-	tst	r2, #256
-	beq	.L842
-	stmia	sp, {r3, lr}
-	movw	r3, #2814
-	ldrh	r3, [r7, r3]
-	mov	r1, r5
-	ldr	r0, .L866+36
+	ldr	r1, [r8]
+	tst	r1, #256
+	beq	.L839
+	movw	r1, #2818
+	stm	sp, {r3, r10}
+	ldrh	r1, [r7, r1]
+	lsr	r3, r2, #5
+	ldr	r0, .L862+36
 	mov	r2, r4
-	str	r3, [sp, #8]
-	mov	r3, ip, lsr #5
+	str	r1, [sp, #8]
+	mov	r1, r5
 	bl	printk
-.L842:
-	add	r1, r6, #128
+.L839:
 	mov	r3, r6
+	add	r1, r6, #128
 	movw	r0, #65535
-.L845:
+.L842:
 	mov	r2, r3
 	add	r3, r3, #2
 	ldrh	ip, [r2]
 	cmp	ip, r0
-	bne	.L843
+	bne	.L840
 	cmp	r4, #0
 	strh	r5, [r2]	@ movhi
-	ldreq	r3, [r7, #1092]
-	ldrne	r2, [r7, #1092]
-	addeq	r9, r3, r9, asl #1
-	ldrneh	r3, [r2, #124]
-	ldreqh	r3, [r9, #120]
+	ldreq	r3, [r7, #1096]
+	ldrne	r2, [r7, #1096]
+	addeq	r9, r3, r9, lsl #1
+	ldrhne	r3, [r2, #124]
+	ldrheq	r3, [r9, #120]
 	addne	r3, r3, #1
+	strhne	r3, [r2, #124]	@ movhi
 	addeq	r3, r3, #1
-	strneh	r3, [r2, #124]	@ movhi
-	streqh	r3, [r9, #120]	@ movhi
-	b	.L864
-.L843:
-	cmp	r3, r1
-	bne	.L845
-.L864:
+	strheq	r3, [r9, #120]	@ movhi
+.L861:
 	mov	r0, #1
-	b	.L833
-.L852:
-	mov	r0, #0
-.L833:
+.L826:
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L867:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L837:
+	add	r6, r1, #392
+	b	.L838
+.L840:
+	cmp	r3, r1
+	bne	.L842
+	b	.L861
+.L863:
 	.align	2
-.L866:
+.L862:
 	.word	.LANCHOR2
 	.word	.LANCHOR0
-	.word	.LC93
-	.word	.LANCHOR0+2828
-	.word	.LANCHOR1+1608
+	.word	.LANCHOR0+2824
+	.word	.LC90
+	.word	.LANCHOR1+1448
 	.word	.LC0
-	.word	.LC94
+	.word	.LC91
 	.word	.LANCHOR3-3152
-	.word	.LC95
-	.word	.LC96
+	.word	.LC92
+	.word	.LC93
 	.fnend
 	.size	gc_add_sblk, .-gc_add_sblk
 	.align	2
 	.global	gc_mark_bad_ppa
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_mark_bad_ppa, %function
 gc_mark_bad_ppa:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L874
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
-	.save {r4, r5, r6, r7, r8, lr}
-	sub	r2, r3, #3120
-	ldr	r5, .L874+4
-	mov	r6, #1
-	ldrh	r1, [r2, #-12]
-	mov	r7, r0
+	ldr	r3, .L869
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	mov	r8, r0
+	ldr	r5, .L869+4
+	mov	r7, #1
+	sub	r2, r3, #3136
+	ldrh	r2, [r2, #-2]
+	ldrb	r1, [r3, #-3136]	@ zero_extendqisi2
 	add	r5, r5, #4096
-	ldrb	r2, [r5, #-2907]	@ zero_extendqisi2
-	mov	r0, r0, lsr r1
-	rsb	r2, r2, #24
-	uxth	r4, r0
-	rsb	r2, r1, r2
-	ldrb	r1, [r3, #-3130]	@ zero_extendqisi2
-	mov	r2, r6, asl r2
-	sub	r2, r2, #1
-	and	r0, r0, r2
+	lsr	r6, r0, r2
+	ldrb	r0, [r5, #-2943]	@ zero_extendqisi2
+	uxth	r4, r6
+	rsb	r0, r0, #24
+	sub	r0, r0, r2
+	lsl	r0, r7, r0
+	sub	r0, r0, #1
+	and	r0, r0, r6
 	bl	__aeabi_uidiv
-	mov	r3, r7
-	ldr	r1, [r5, #920]
+	uxth	r9, r0
+	mov	r3, r8
 	mov	r2, r4
-	uxth	r8, r0
-	ldr	r0, .L874+8
+	ldr	r1, [r5, #916]
+	ldr	r0, .L869+8
 	bl	printk
-	mov	r1, r6
-	mov	r0, r8
+	mov	r1, r7
 	mov	r2, #0
+	mov	r0, r9
 	bl	gc_add_sblk
-	ldr	r3, [r5, #920]
-	ldr	r0, .L874+12
+	ldr	r3, [r5, #916]
 	mov	r1, #0
-.L869:
+	ldr	r0, .L869+12
+	movw	ip, #1096
+.L865:
 	uxth	r2, r1
-	cmp	r2, r3
-	bcs	.L873
-	add	r2, r2, #1088
-	add	r1, r1, #1
-	add	r2, r2, #8
-	mov	r2, r2, asl #1
-	ldrh	r2, [r0, r2]
-	cmp	r2, r4
-	bne	.L869
-	b	.L870
-.L873:
+	cmp	r3, r2
+	bhi	.L867
 	cmp	r3, #5
-	bhi	.L870
+	bhi	.L866
 	add	r2, r3, #1
 	add	r3, r3, #1088
+	str	r2, [r5, #916]
 	add	r3, r3, #8
-	str	r2, [r5, #920]
-	ldr	r2, .L874+12
-	mov	r3, r3, asl #1
+	ldr	r2, .L869+12
+	lsl	r3, r3, #1
 	strh	r4, [r2, r3]	@ movhi
-.L870:
+	b	.L866
+.L867:
+	add	r2, r2, ip
+	add	r1, r1, #1
+	lsl	r2, r2, #1
+	ldrh	r2, [r0, r2]
+	cmp	r4, r2
+	bne	.L865
+.L866:
 	mov	r0, #0
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L875:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L870:
 	.align	2
-.L874:
+.L869:
 	.word	.LANCHOR3
 	.word	.LANCHOR0
-	.word	.LC97
-	.word	.LANCHOR0+2828
+	.word	.LC94
+	.word	.LANCHOR0+2824
 	.fnend
 	.size	gc_mark_bad_ppa, .-gc_mark_bad_ppa
 	.align	2
 	.global	gc_get_src_ppa_from_index
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_get_src_ppa_from_index, %function
 gc_get_src_ppa_from_index:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L877
-	ldr	r3, [r3, #-3128]
-	ldr	r0, [r3, r0, asl #2]
+	ldr	r3, .L872
+	ldr	r3, [r3, #-3132]
+	ldr	r0, [r3, r0, lsl #2]
 	bx	lr
-.L878:
+.L873:
 	.align	2
-.L877:
+.L872:
 	.word	.LANCHOR3
 	.fnend
 	.size	gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index
 	.align	2
 	.global	gc_write_completed
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_write_completed, %function
 gc_write_completed:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
-	ldr	r5, .L910
-	mov	r6, r5
-.L880:
-	ldrb	fp, [r5, #2777]	@ zero_extendqisi2
+.L875:
+	ldr	r7, .L902
+	ldrb	fp, [r7, #2772]	@ zero_extendqisi2
+	mov	r6, r7
 	cmp	fp, #255
-	beq	.L909
-	mov	r3, #48
-	mul	r3, r3, fp
-	add	r2, r5, r3
-	ldrb	r1, [r2, #1236]	@ zero_extendqisi2
-	strb	r1, [r5, #2777]
-	ldr	r1, .L910+4
-	add	r3, r1, r3
-	ldr	r1, [r2, #1272]
-	cmp	r1, #0
-	ldrh	r8, [r3, #32]
-	beq	.L881
-	ldr	r3, .L910+8
-	mov	r0, #1
-	ldr	r2, [r2, #1260]
-	strh	r0, [r3]	@ movhi
-	ldr	r3, .L910+12
-	ldr	r0, .L910+16
-	str	r2, [r3, #916]
-	bl	printk
-	ldr	r1, .L910+20
-	mov	r2, #956
-	ldr	r0, .L910+24
-	bl	printk
-	bl	dump_stack
-.L881:
-	ldr	r7, .L910+28
-	ldrb	r3, [r7, #-3124]	@ zero_extendqisi2
-	mov	r10, r7
-	cmp	r3, #3
-	bne	.L882
-	ldrb	r3, [r6, #1196]	@ zero_extendqisi2
-	cmp	r3, #0
-	bne	.L882
-	ldr	r3, [r5, #1092]
-	ldrb	r2, [r7, #-3123]	@ zero_extendqisi2
-	ldrb	r3, [r3, #89]	@ zero_extendqisi2
-	cmp	r2, r3
-	movhi	r3, #1
-	bhi	.L884
-	cmp	r3, #3
-	movcs	r3, #2
-.L884:
-	add	r4, r3, r3, asl #1
-	b	.L885
-.L882:
-	ldrb	r3, [r7, #-3122]	@ zero_extendqisi2
-	cmp	r3, #0
-	moveq	r4, #1
-	beq	.L885
-	ldr	r3, .L910+28
-	ldrb	r3, [r3, #-3121]	@ zero_extendqisi2
-	cmp	r3, #0
-	moveq	r4, #1
-	movne	r4, #2
-.L885:
-	mov	r2, #48
-	ldr	r1, [r7, #-3120]
-	mla	r2, r2, fp, r6
-	mov	r9, r8
-	ldrb	r1, [r1, r8]	@ zero_extendqisi2
-	ldrb	r2, [r2, #1237]	@ zero_extendqisi2
-	cmp	r1, r2
-	beq	.L886
-	ldr	r1, .L910+20
-	mov	r2, #976
-	ldr	r0, .L910+24
-	bl	printk
-	bl	dump_stack
-.L886:
-	mov	r2, #48
-	mla	fp, r2, fp, r6
-	ldrb	r2, [fp, #1281]	@ zero_extendqisi2
-	cmp	r2, #3
-	beq	.L887
-	ldrb	r1, [r7, #-3124]	@ zero_extendqisi2
-	ldr	r2, .L910+28
-	cmp	r1, #3
-	bne	.L887
-	ldrb	r1, [r2, #-3116]	@ zero_extendqisi2
-	cmp	r1, #0
-	bne	.L887
-	ldrb	r1, [r5, #1196]	@ zero_extendqisi2
-	cmp	r1, #0
-	bne	.L887
-	ldrb	r1, [r5, #1197]	@ zero_extendqisi2
-	cmp	r1, #0
-	bne	.L887
-	ldrb	r1, [r2, #-3122]	@ zero_extendqisi2
-	cmp	r1, #0
-	beq	.L888
-	ldrb	r2, [r2, #-3121]	@ zero_extendqisi2
-	cmp	r2, #0
-	bne	.L887
-.L888:
-	ldr	r2, [r7, #-3120]
-	mov	r3, #0
-	mov	r1, #48
-	mov	r0, r3
-	add	ip, r2, r8
-	b	.L889
-.L887:
-	ldr	r2, .L910+32
-	mvn	r7, #0
-	mov	fp, #48
-	strh	r8, [r2]	@ movhi
-	mov	r2, #0
-.L890:
-	rsb	r1, r8, r9
-	uxth	r1, r1
-	cmp	r1, r4
-	bcs	.L880
-	ldr	r1, [r10, #-3120]
-	ldr	r3, .L910+4
-	str	r2, [sp, #4]
-	ldrb	r0, [r1, r9]	@ zero_extendqisi2
-	strb	r7, [r1, r9]
-	add	r9, r9, #1
-	mul	r0, fp, r0
-	add	r1, r6, r0
-	add	r0, r3, r0
-	strb	r2, [r1, #1281]
-	bl	zbuf_free
-	ldrb	r1, [r6, #2835]	@ zero_extendqisi2
-	sub	r1, r1, #1
-	strb	r1, [r6, #2835]
-	ldr	r2, [sp, #4]
-	b	.L890
-.L889:
-	uxth	r2, r3
-	cmp	r2, r4
-	bcs	.L880
-	ldrb	r2, [ip, r3]	@ zero_extendqisi2
-	add	r3, r3, #1
-	mla	r2, r1, r2, r6
-	strb	r0, [r2, #1281]
-	b	.L889
-.L909:
+	bne	.L888
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L911:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L888:
+	mov	r2, #48
+	add	r10, r6, #1232
+	mul	r2, r2, fp
+	str	r10, [sp, #4]
+	add	r0, r6, r2
+	add	r2, r10, r2
+	ldrb	r1, [r0, #1232]	@ zero_extendqisi2
+	ldrh	r8, [r2, #32]
+	strb	r1, [r7, #2772]
+	ldr	r1, [r0, #1268]
+	cmp	r1, #0
+	beq	.L876
+	ldr	r3, .L902+4
+	mov	r2, #1
+	strh	r2, [r3]	@ movhi
+	ldr	r2, [r0, #1256]
+	add	r0, r6, #4096
+	str	r2, [r0, #912]
+	ldr	r0, .L902+8
+	bl	printk
+	mov	r2, #956
+	ldr	r1, .L902+12
+	ldr	r0, .L902+16
+	bl	printk
+	bl	dump_stack
+.L876:
+	ldr	r5, .L902+20
+	ldrb	r2, [r5, #-3128]	@ zero_extendqisi2
+	mov	r10, r5
+	cmp	r2, #3
+	bne	.L877
+	ldrb	r2, [r7, #1158]	@ zero_extendqisi2
+	cmp	r2, #0
+	bne	.L877
+	ldr	r2, [r7, #1096]
+	ldrb	r4, [r2, #89]	@ zero_extendqisi2
+	ldrb	r2, [r5, #-3127]	@ zero_extendqisi2
+	cmp	r2, r4
+	movhi	r4, #1
+	bhi	.L878
+	cmp	r4, #2
+	movcs	r4, #2
+.L878:
+	add	r4, r4, r4, lsl #1
+.L879:
+	mov	r2, #48
+	ldr	r1, [r5, #-3124]
+	mla	r2, r2, fp, r6
+	ldrb	r1, [r1, r8]	@ zero_extendqisi2
+	mov	r9, r8
+	ldrb	r2, [r2, #1233]	@ zero_extendqisi2
+	cmp	r1, r2
+	beq	.L880
+	mov	r2, #976
+	ldr	r1, .L902+12
+	ldr	r0, .L902+16
+	bl	printk
+	bl	dump_stack
+.L880:
+	mov	r2, #48
+	mla	r3, r2, fp, r6
+	ldrb	r3, [r3, #1277]	@ zero_extendqisi2
+	cmp	r3, #3
+	beq	.L881
+	ldrb	r3, [r5, #-3128]	@ zero_extendqisi2
+	cmp	r3, #3
+	bne	.L881
+	ldrb	r3, [r5, #-3120]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L881
+	ldrb	r3, [r7, #1158]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L881
+	ldrb	r3, [r7, #1159]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L881
+	ldrb	r3, [r5, #-3126]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L882
+	ldrb	r3, [r5, #-3125]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L881
+.L882:
+	ldr	r2, [r5, #-3124]
+	mov	r3, #0
+	mov	r1, #48
+	movw	r0, #1277
+	mov	ip, r3
+	add	r8, r2, r8
+.L883:
+	uxth	r2, r3
+	cmp	r4, r2
+	bls	.L875
+	ldrb	r2, [r8, r3]	@ zero_extendqisi2
+	add	r3, r3, #1
+	mla	r2, r1, r2, r6
+	strb	ip, [r2, r0]
+	b	.L883
+.L877:
+	ldrb	r2, [r5, #-3126]	@ zero_extendqisi2
+	cmp	r2, #0
+	moveq	r4, #1
+	beq	.L879
+	ldrb	r2, [r5, #-3125]	@ zero_extendqisi2
+	cmp	r2, #0
+	moveq	r4, #1
+	movne	r4, #2
+	b	.L879
+.L881:
+	ldr	r3, .L902+24
+	mvn	r5, #0
+	mov	r7, #48
+	movw	fp, #1277
+	strh	r8, [r3]	@ movhi
+.L884:
+	sub	r2, r9, r8
+	uxth	r2, r2
+	cmp	r4, r2
+	bls	.L875
+	ldr	r2, [r10, #-3124]
+	mov	r1, #0
+	ldr	r3, [sp, #4]
+	ldrb	r0, [r2, r9]	@ zero_extendqisi2
+	strb	r5, [r2, r9]
+	add	r9, r9, #1
+	mla	r2, r7, r0, r6
+	add	r0, r0, r0, lsl #1
+	strb	r1, [r2, fp]
+	add	r0, r3, r0, lsl #4
+	bl	zbuf_free
+	ldrb	r2, [r6, #2831]	@ zero_extendqisi2
+	sub	r2, r2, #1
+	strb	r2, [r6, #2831]
+	b	.L884
+.L903:
 	.align	2
-.L910:
+.L902:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+1236
-	.word	.LANCHOR0+5010
-	.word	.LANCHOR0+4096
-	.word	.LC98
-	.word	.LANCHOR1+1620
+	.word	.LANCHOR0+5006
+	.word	.LC95
+	.word	.LANCHOR1+1460
 	.word	.LC0
 	.word	.LANCHOR3
-	.word	.LANCHOR0+4932
+	.word	.LANCHOR0+4928
 	.fnend
 	.size	gc_write_completed, .-gc_write_completed
 	.align	2
 	.global	gc_get_src_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_get_src_blk, %function
 gc_get_src_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r1, .L922
-	stmfd	sp!, {r4, r5, lr}
-	.save {r4, r5, lr}
-	ldr	r3, [r1, #1092]
-	ldr	ip, .L922+4
+	ldr	r1, .L916
+	ldr	r3, [r1, #1096]
 	ldrh	r2, [r3, #124]
-	ldrb	r0, [ip, #-3115]	@ zero_extendqisi2
 	cmp	r2, #0
 	addne	r3, r3, #392
 	movne	r2, #1
-	bne	.L914
-	add	lr, r3, r0, asl #1
-	ldrh	lr, [lr, #120]
-	cmp	lr, #0
-	beq	.L919
-	add	r3, r3, r0, asl #7
+	bne	.L906
+	ldr	r0, .L916+4
+	ldrb	r0, [r0, #-3119]	@ zero_extendqisi2
+	add	ip, r3, r0, lsl #1
+	ldrh	ip, [ip, #120]
+	cmp	ip, #0
+	beq	.L911
+	add	r3, r3, r0, lsl #7
 	add	r3, r3, #136
-.L914:
-	add	lr, r3, #128
-	movw	r4, #65535
-.L918:
-	mov	r5, r3
+.L906:
+	push	{r4, lr}
+	.save {r4, lr}
+	add	ip, r3, #128
+	movw	lr, #65535
+.L910:
+	mov	r4, r3
 	ldrh	r0, [r3], #2
-	cmp	r0, r4
-	beq	.L916
+	cmp	r0, lr
+	beq	.L908
 	cmp	r2, #0
 	mvn	r3, #0
-	strh	r3, [r5]	@ movhi
-	ldreqb	r2, [ip, #-3115]	@ zero_extendqisi2
-	ldreq	r3, [r1, #1092]
-	ldrne	r2, [r1, #1092]
-	addeq	r3, r3, r2, asl #1
-	ldrneh	r3, [r2, #124]
-	ldreqh	r2, [r3, #120]
+	strh	r3, [r4]	@ movhi
+	ldreq	r3, .L916+4
+	ldrne	r2, [r1, #1096]
+	ldrbeq	r2, [r3, #-3119]	@ zero_extendqisi2
+	ldreq	r3, [r1, #1096]
+	ldrhne	r3, [r2, #124]
+	addeq	r3, r3, r2, lsl #1
 	subne	r3, r3, #1
+	strhne	r3, [r2, #124]	@ movhi
+	ldrheq	r2, [r3, #120]
 	subeq	r2, r2, #1
-	strneh	r3, [r2, #124]	@ movhi
-	streqh	r2, [r3, #120]	@ movhi
-	ldmfd	sp!, {r4, r5, pc}
-.L916:
-	cmp	r3, lr
-	bne	.L918
-	ldmfd	sp!, {r4, r5, pc}
-.L919:
+	strheq	r2, [r3, #120]	@ movhi
+	pop	{r4, pc}
+.L908:
+	cmp	r3, ip
+	bne	.L910
+	pop	{r4, pc}
+.L911:
 	movw	r0, #65535
-	ldmfd	sp!, {r4, r5, pc}
-.L923:
+	bx	lr
+.L917:
 	.align	2
-.L922:
+.L916:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
 	.fnend
 	.size	gc_get_src_blk, .-gc_get_src_blk
 	.align	2
 	.global	gc_free_temp_buf
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_free_temp_buf, %function
 gc_free_temp_buf:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
-	ldr	r5, .L939
-	ldrb	r0, [r5, #2835]	@ zero_extendqisi2
+	ldr	r5, .L933
+	ldrb	r0, [r5, #2831]	@ zero_extendqisi2
 	cmp	r0, #0
-	ldmeqfd	sp!, {r4, r5, r6, pc}
-	ldrb	r3, [r5, #2774]	@ zero_extendqisi2
+	popeq	{r4, r5, r6, pc}
+	ldrb	r3, [r5, #2769]	@ zero_extendqisi2
 	cmp	r3, #1
-	bhi	.L931
-	ldr	r2, .L939+4
-	movw	r3, #2104
-	ldr	r1, .L939+8
-	ldrh	r4, [r2, r3]
-	sub	r3, r1, #3104
-	mov	r6, r1
-	ldrh	r0, [r3, #-10]
-	add	r2, r4, #24
-	ldrb	r3, [r1, #-3123]	@ zero_extendqisi2
+	bhi	.L925
+	ldr	r2, .L933+4
+	add	r3, r5, #4928
+	ldrh	r4, [r3]
+	movw	ip, #1277
+	sub	r3, r2, #3104
+	mov	r6, r2
+	ldrh	r0, [r3, #-14]
+	add	r1, r4, #24
+	ldrb	r3, [r2, #-3127]	@ zero_extendqisi2
 	mul	r3, r3, r0
-	ldr	r0, [r1, #-3120]
-	mov	r1, #48
-	cmp	r3, r2
-	movcs	r3, r2
-.L926:
+	cmp	r3, r1
+	movcs	r3, r1
+	ldr	r1, [r2, #-3124]
+	mov	r2, #48
+.L920:
 	cmp	r4, r3
-	bcs	.L931
-	ldrb	r2, [r0, r4]	@ zero_extendqisi2
-	cmp	r2, #255
-	beq	.L927
-	mul	r2, r1, r2
-	add	ip, r5, r2
-	ldrb	ip, [ip, #1281]	@ zero_extendqisi2
-	cmp	ip, #0
-	bne	.L927
-	ldr	r0, .L939+12
-	add	r0, r0, r2
+	bcc	.L923
+.L925:
+	mov	r0, #0
+	pop	{r4, r5, r6, pc}
+.L923:
+	ldrb	r0, [r1, r4]	@ zero_extendqisi2
+	cmp	r0, #255
+	beq	.L921
+	mla	lr, r2, r0, r5
+	ldrb	lr, [lr, ip]	@ zero_extendqisi2
+	cmp	lr, #0
+	bne	.L921
+	ldr	r3, .L933+8
+	add	r0, r0, r0, lsl #1
+	add	r0, r3, r0, lsl #4
 	bl	zbuf_free
-	ldr	r3, .L939+16
+	ldr	r3, .L933+12
 	ldr	r3, [r3]
 	tst	r3, #256
-	beq	.L928
-	ldr	r3, [r6, #-3120]
+	beq	.L922
+	ldr	r3, [r6, #-3124]
 	mov	r1, r4
-	ldr	r0, .L939+20
+	ldr	r0, .L933+16
 	ldrb	r2, [r3, r4]	@ zero_extendqisi2
 	bl	printk
-.L928:
-	ldr	r3, [r6, #-3120]
+.L922:
+	ldr	r3, [r6, #-3124]
 	mvn	r2, #0
 	mov	r0, #1
 	strb	r2, [r3, r4]
-	ldrb	r3, [r5, #2835]	@ zero_extendqisi2
+	ldrb	r3, [r5, #2831]	@ zero_extendqisi2
 	add	r3, r3, r2
-	strb	r3, [r5, #2835]
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L927:
+	strb	r3, [r5, #2831]
+	pop	{r4, r5, r6, pc}
+.L921:
 	add	r4, r4, #1
-	b	.L926
-.L931:
-	mov	r0, #0
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L940:
+	b	.L920
+.L934:
 	.align	2
-.L939:
+.L933:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2828
 	.word	.LANCHOR3
-	.word	.LANCHOR0+1236
+	.word	.LANCHOR0+1232
 	.word	.LANCHOR2
-	.word	.LC99
+	.word	.LC96
 	.fnend
 	.size	gc_free_temp_buf, .-gc_free_temp_buf
 	.align	2
 	.global	get_ink_scaned_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	get_ink_scaned_blk, %function
 get_ink_scaned_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r1, .L944
+	ldr	r1, .L938
 	movw	ip, #2108
 	ldrh	r3, [r1, ip]
 	cmp	r3, #0
 	addne	r2, r3, #1040
 	subne	r3, r3, #1
 	addne	r2, r2, #11
-	strneh	r3, [r1, ip]	@ movhi
-	addne	r2, r1, r2, asl #1
-	ldrneh	r0, [r2, #6]
+	strhne	r3, [r1, ip]	@ movhi
+	addne	r2, r1, r2, lsl #1
+	ldrhne	r0, [r2, #6]
 	movweq	r0, #65535
 	bx	lr
-.L945:
+.L939:
 	.align	2
-.L944:
-	.word	.LANCHOR0+2828
+.L938:
+	.word	.LANCHOR0+2824
 	.fnend
 	.size	get_ink_scaned_blk, .-get_ink_scaned_blk
 	.align	2
 	.global	print_gc_debug_info
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	print_gc_debug_info, %function
 print_gc_debug_info:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, lr}
+	push	{r0, r1, r2, r3, r4, lr}
 	.save {lr}
 	.pad #20
-	movw	r2, #2828
-	ldr	r0, .L948
-	movw	ip, #2102
-	add	r3, r0, r2
-	ldrh	r1, [r0, r2]
-	ldrh	r2, [r3, #2]
-	ldrh	r3, [r3, ip]
-	ldrb	ip, [r0, #2774]	@ zero_extendqisi2
-	str	ip, [sp]
-	ldrb	ip, [r0, #2835]	@ zero_extendqisi2
+	movw	ip, #2804
+	ldr	r0, .L942
+	movw	r1, #2824
+	movw	r3, #2102
+	ldrh	ip, [r0, ip]
+	add	r2, r0, r1
+	ldrh	r3, [r2, r3]
+	ldrh	r1, [r0, r1]
+	ldrh	r2, [r2, #2]
+	str	ip, [sp, #8]
+	ldrb	ip, [r0, #2831]	@ zero_extendqisi2
 	str	ip, [sp, #4]
-	movw	ip, #2808
-	ldrh	r0, [r0, ip]
-	str	r0, [sp, #8]
-	ldr	r0, .L948+4
+	ldrb	r0, [r0, #2769]	@ zero_extendqisi2
+	str	r0, [sp]
+	ldr	r0, .L942+4
 	bl	printk
 	add	sp, sp, #20
 	@ sp needed
 	ldr	pc, [sp], #4
-.L949:
+.L943:
 	.align	2
-.L948:
+.L942:
 	.word	.LANCHOR0
-	.word	.LC100
+	.word	.LC97
 	.fnend
 	.size	print_gc_debug_info, .-print_gc_debug_info
 	.align	2
 	.global	_list_pop_index_node
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	_list_pop_index_node, %function
 _list_pop_index_node:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	ldr	r5, [r0]
 	cmp	r5, #0
-	beq	.L956
-	ldr	r3, .L958
+	beq	.L950
+	ldr	r3, .L952
 	movw	ip, #65535
 	mov	lr, #6
 	ldr	r4, [r3, #1036]
-.L952:
+.L946:
 	cmp	r1, #0
-	bne	.L953
-.L955:
-	rsb	r4, r4, r5
-	ldr	r3, .L958+4
-	mov	r4, r4, asr #1
-	mul	r4, r3, r4
-	uxth	r4, r4
-	mov	r1, r4
+	bne	.L947
+.L949:
+	sub	r4, r5, r4
+	asr	r3, r4, #1
+	ldr	r4, .L952+4
+	mul	r4, r4, r3
+	uxth	r1, r4
 	bl	_list_remove_node
 	mvn	r3, #0
-	mov	r0, r4
+	uxth	r0, r4
 	strh	r3, [r5]	@ movhi
 	strh	r3, [r5, #2]	@ movhi
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L953:
+	pop	{r4, r5, r6, pc}
+.L947:
 	ldrh	r3, [r5]
 	cmp	r3, ip
-	beq	.L955
+	beq	.L949
 	sub	r1, r1, #1
 	mla	r5, lr, r3, r4
 	uxth	r1, r1
-	b	.L952
-.L956:
+	b	.L946
+.L950:
 	movw	r0, #65535
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L959:
+	pop	{r4, r5, r6, pc}
+.L953:
 	.align	2
-.L958:
+.L952:
 	.word	.LANCHOR0
 	.word	-1431655765
 	.fnend
 	.size	_list_pop_index_node, .-_list_pop_index_node
 	.align	2
 	.global	_list_get_gc_head_node
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	_list_get_gc_head_node, %function
 _list_get_gc_head_node:
 	.fnstart
@@ -5523,712 +5665,721 @@
 	@ link register save eliminated.
 	ldr	r0, [r0]
 	cmp	r0, #0
-	beq	.L965
-	ldr	r3, .L968
+	beq	.L959
+	ldr	r3, .L961
+	movw	r2, #65535
 	mov	ip, #6
-	ldr	r2, [r3, #1036]
-	movw	r3, #65535
-.L962:
+	ldr	r3, [r3, #1036]
+.L956:
 	cmp	r1, #0
-	beq	.L963
+	beq	.L957
 	ldrh	r0, [r0]
-	cmp	r0, r3
-	subne	r1, r1, #1
-	mlane	r0, ip, r0, r2
-	uxthne	r1, r1
-	bne	.L962
-.L967:
+	cmp	r0, r2
+	bne	.L958
 	bx	lr
-.L965:
+.L958:
+	sub	r1, r1, #1
+	mla	r0, ip, r0, r3
+	uxth	r1, r1
+	b	.L956
+.L959:
 	movw	r0, #65535
 	bx	lr
-.L963:
-	rsb	r0, r2, r0
-	ldr	r3, .L968+4
-	mov	r0, r0, asr #1
-	mul	r0, r3, r0
+.L957:
+	sub	r0, r0, r3
+	asr	r3, r0, #1
+	ldr	r0, .L961+4
+	mul	r0, r0, r3
 	uxth	r0, r0
 	bx	lr
-.L969:
+.L962:
 	.align	2
-.L968:
+.L961:
 	.word	.LANCHOR0
 	.word	-1431655765
 	.fnend
 	.size	_list_get_gc_head_node, .-_list_get_gc_head_node
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	zftl_get_gc_node.part.10, %function
+zftl_get_gc_node.part.10:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	@ link register save eliminated.
+	mov	r1, r0
+	ldr	r0, .L964
+	b	_list_get_gc_head_node
+.L965:
+	.align	2
+.L964:
+	.word	.LANCHOR3-3116
+	.fnend
+	.size	zftl_get_gc_node.part.10, .-zftl_get_gc_node.part.10
+	.align	2
 	.global	gc_search_src_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_search_src_blk, %function
 gc_search_src_blk:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 24
+	@ args = 0, pretend = 0, frame = 32
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #36
-	sub	sp, sp, #36
-	ldr	r6, .L1093
-	str	r0, [sp, #8]
-	str	r1, [sp, #16]
-	ldr	r7, [r6, #1092]
-	add	r3, r7, r0, asl #1
-	ldrh	r4, [r3, #120]
-	cmp	r4, #0
-	bne	.L1025
-	ldr	r3, .L1093+4
-	mov	r5, r2
+	.pad #44
+	sub	sp, sp, #44
+	ldr	r5, .L1086
+	str	r1, [sp, #24]
+	ldr	r1, [r5, #1096]
+	str	r0, [sp, #16]
+	str	r2, [sp, #12]
+	add	r3, r1, r0, lsl #1
+	ldrh	r3, [r3, #120]
+	cmp	r3, #0
+	str	r3, [sp, #20]
+	movne	r0, r3
+	bne	.L966
+	ldr	r3, .L1086+4
 	ldrh	r2, [r3, #52]
 	cmp	r2, #1
-	ldrls	r1, .L1093+8
-	strlsh	r4, [r1, #-8]	@ movhi
-	strlsh	r4, [r1, #-6]	@ movhi
-	strlsh	r4, [r1, #-4]	@ movhi
-	ldr	r1, [sp, #8]
-	cmp	r1, #0
-	bne	.L1092
-	ldr	r8, [sp, #8]
-	ldr	r10, .L1093+12
-	ldr	fp, .L1093+16
-	mov	r4, r8
-.L974:
-	add	r9, r5, #1
-	uxth	r3, r8
-	cmp	r3, r9
-	bge	.L980
-	ldrh	r2, [r10]
-	ldr	ip, .L1093+12
-	mov	r1, r2
-	add	r0, ip, #6
-	str	ip, [sp, #20]
-	str	r2, [sp, #12]
-	bl	_list_get_gc_head_node
-	movw	r3, #65535
-	ldr	r2, [sp, #12]
-	cmp	r0, r3
+	ldrls	r0, .L1086+8
+	ldrhls	ip, [sp, #20]
+	strhls	ip, [r0, #-8]	@ movhi
+	strhls	ip, [r0, #-6]	@ movhi
+	strhls	ip, [r0, #-4]	@ movhi
+	ldr	r0, [sp, #16]
+	cmp	r0, #0
+	bne	.L970
+	ldr	r10, .L1086+12
 	mov	r7, r0
-	ldr	ip, [sp, #20]
-	add	r2, r2, #1
+	ldr	fp, .L1086+16
+	mov	r4, r0
+.L971:
+	ldr	r3, [sp, #12]
+	add	r8, r3, #1
+	uxth	r3, r7
+	cmp	r3, r8
+	bge	.L976
+	ldr	r3, .L1086+20
+	mov	r0, r3
+	str	r3, [sp, #20]
+	ldrh	r9, [r0], #6
+	mov	r1, r9
+	bl	_list_get_gc_head_node
+	add	r2, r9, #1
+	ldr	r3, [sp, #20]
+	movw	r1, #65535
 	uxth	r2, r2
-	strh	r2, [r10]	@ movhi
-	beq	.L976
-	ldr	r3, [fp]
-	mov	ip, r0, asl #1
+	cmp	r0, r1
+	mov	r6, r0
+	strh	r2, [r3]	@ movhi
+	beq	.L972
+	ldr	r3, [r10]
+	lsl	r9, r0, #1
 	tst	r3, #256
-	beq	.L977
-	ldr	r3, [r6, #1088]
-	mov	r1, r7
-	ldr	r0, .L1093+20
-	str	ip, [sp, #12]
-	ldrh	r3, [r3, ip]
+	beq	.L973
+	ldr	r3, [r5, #1092]
+	mov	r1, r0
+	mov	r0, fp
+	ldrh	r3, [r3, r9]
 	bl	printk
-	ldr	ip, [sp, #12]
-.L977:
-	ldr	r3, [r6, #1088]
-	ldrh	r2, [r3, ip]
-	ldr	r3, .L1093+24
+.L973:
+	ldr	r3, [r5, #1092]
+	ldrh	r2, [r3, r9]
+	ldr	r3, .L1086+24
 	ldrh	r3, [r3]
 	cmp	r2, r3
-	bcs	.L978
-	mov	r1, #0
-	mov	r0, r7
-	mov	r2, r1
+	bcs	.L974
+	mov	r2, #0
+	mov	r0, r6
+	mov	r1, r2
 	bl	gc_add_sblk
 	cmp	r0, #0
-	beq	.L979
+	beq	.L975
+	add	r4, r4, #1
+	ldr	r3, [sp, #12]
+	uxth	r4, r4
+	cmp	r4, r3
+	bcc	.L975
+.L976:
+	ldr	r3, [sp, #24]
+	tst	r3, #2
+	beq	.L978
+	movw	r3, #2794
+	ldrh	r3, [r5, r3]
+	cmp	r3, #32
+	bls	.L978
+	ldr	r9, .L1086+28
+	mov	fp, #0
+	ldr	r6, .L1086+32
+	sub	r10, r9, #12
+.L979:
+	uxth	r3, fp
+	cmp	r8, r3
+	ble	.L983
+	ldr	r7, .L1086+36
+	mov	r0, r10
+	ldrh	r3, [r7]
+	mov	r1, r3
+	str	r3, [sp, #20]
+	bl	_list_get_gc_head_node
+	ldr	r3, [sp, #20]
+	add	r3, r3, #1
+	strh	r3, [r7]	@ movhi
+	movw	r3, #65535
+	cmp	r0, r3
+	beq	.L980
+	ldr	r3, [r5, #1092]
+	lsl	r2, r0, #1
+	ldrh	r2, [r3, r2]
+	ldrh	r3, [r6]
+	cmp	r2, r3
+	bcs	.L980
+	mov	r2, #0
+	mov	r1, r2
+	bl	gc_add_sblk
+	cmp	r0, #0
+	beq	.L982
+	add	r4, r4, #1
+	ldr	r3, [sp, #12]
+	uxth	r4, r4
+	cmp	r4, r3
+	bcc	.L982
+.L983:
+	ldr	r3, [sp, #12]
+	cmp	r4, r3
+	bcs	.L985
+	ldr	r0, .L1086+40
+	ldrh	r1, [r9, #-8]
+	ldrh	r2, [r6]
+	sub	r3, r0, #3104
+	ldrh	ip, [r3, #-14]
+	ldrb	r3, [r0, #-3127]	@ zero_extendqisi2
+	mul	r3, r3, ip
+	sub	r3, r3, r1, lsr #2
+	cmp	r2, r3
+	addlt	r2, r2, r1, lsr #3
+	strhlt	r2, [r6]	@ movhi
+.L978:
+	ldr	r3, [sp, #24]
+	tst	r3, #1
+	beq	.L986
+	ldrh	r6, [sp, #12]
+	cmp	r4, r6
+	bcs	.L986
+	mov	r9, #0
+	movw	r8, #65535
+.L991:
+	ldr	r10, .L1086+44
+	ldrh	r7, [r10]
+	mov	r0, r7
+	add	r7, r7, #1
+	bl	zftl_get_gc_node.part.10
+	cmp	r0, r8
+	strh	r7, [r10]	@ movhi
+	beq	.L987
+	mov	r2, #0
+	mov	r1, r2
+	bl	gc_add_sblk
+	cmp	r0, #0
+	beq	.L988
 	add	r4, r4, #1
 	uxth	r4, r4
-	cmp	r4, r5
-	bcc	.L979
-	b	.L980
-.L978:
-	ldr	r3, .L1093+8
+	cmp	r6, r4
+	bhi	.L988
+.L989:
+	ldr	r3, .L1086+28
+	movw	r2, #2818
+	ldrh	r1, [r3, #-8]
+.L1085:
+	ldrh	r3, [r5, r2]
+	cmp	r3, r1, lsr #1
+	bls	.L986
+	sub	r3, r3, r1, lsr #3
+.L1082:
+	strh	r3, [r5, r2]	@ movhi
+	b	.L986
+.L974:
+	ldr	r3, .L1086+8
 	mov	r2, #0
 	strh	r2, [r3, #-6]	@ movhi
-	b	.L980
-.L976:
-	mov	r3, #0
-	strh	r3, [ip]	@ movhi
-	b	.L980
-.L979:
-	add	r8, r8, #1
-	b	.L974
-.L980:
-	ldr	r3, [sp, #16]
-	tst	r3, #2
-	beq	.L982
-	movw	r3, #2798
-	ldrh	r3, [r6, r3]
-	cmp	r3, #32
-	movhi	r10, #0
-	ldrhi	r8, .L1093+28
-	bls	.L982
-.L983:
-	uxth	r2, r10
-	ldr	r7, .L1093+32
-	cmp	r2, r9
-	bge	.L987
-	ldrh	fp, [r8]
-	ldr	r2, .L1093+28
-	mov	r1, fp
-	add	r0, r2, #8
-	str	r2, [sp, #12]
-	bl	_list_get_gc_head_node
-	movw	ip, #65535
-	add	fp, fp, #1
-	strh	fp, [r8]	@ movhi
-	cmp	r0, ip
-	ldr	r2, [sp, #12]
-	beq	.L984
-	ldr	fp, [r6, #1088]
-	mov	r1, r0, asl #1
-	ldr	r3, .L1093+32
-	ldrh	ip, [fp, r1]
-	ldrh	r1, [r3]
-	cmp	ip, r1
-	bcs	.L984
-	mov	r1, #0
-	mov	r2, r1
-	bl	gc_add_sblk
-	cmp	r0, #0
-	beq	.L986
-	add	r4, r4, #1
-	uxth	r4, r4
-	cmp	r4, r5
-	bcc	.L986
-	b	.L987
-.L984:
-	mov	r3, #0
-	strh	r3, [r2]	@ movhi
-	b	.L987
-.L986:
-	add	r10, r10, #1
-	b	.L983
-.L987:
-	cmp	r4, r5
-	ldr	r2, .L1093+36
-	bcs	.L989
-	ldrh	ip, [r2, #-26]
-	ldrb	r3, [r2, #-35]	@ zero_extendqisi2
-	ldrh	r0, [r2, #-8]
-	ldrh	r1, [r7]
-	mul	r3, r3, ip
-	sub	r3, r3, r0, lsr #2
-	cmp	r1, r3
-	ldrlt	r3, .L1093+32
-	addlt	r1, r1, r0, lsr #3
-	strlth	r1, [r3]	@ movhi
-	b	.L982
-.L989:
-	ldrh	r2, [r2, #-8]
-	ldrh	r3, [r7]
-	cmp	r3, r2
-	subhi	r3, r3, r2, lsr #3
-	ldrhi	r2, .L1093+32
-	strhih	r3, [r2]	@ movhi
-.L982:
-	ldr	r3, [sp, #16]
-	tst	r3, #1
-	beq	.L990
-	uxth	r7, r5
-	cmp	r4, r7
-	bcs	.L990
-	ldr	r8, .L1093+40
-	mov	fp, #0
-	movw	r9, #65535
-.L995:
-	ldrh	r10, [r8]
-	ldr	r3, .L1093+40
-	mov	r1, r10
-	add	r0, r3, #20
-	str	r3, [sp, #12]
-	bl	_list_get_gc_head_node
-	add	r10, r10, #1
-	strh	r10, [r8]	@ movhi
-	cmp	r0, r9
-	ldr	r3, [sp, #12]
-	beq	.L991
-	mov	r1, #0
-	mov	r2, r1
-	bl	gc_add_sblk
-	cmp	r0, #0
-	beq	.L992
-	add	r4, r4, #1
-	uxth	r4, r4
-	cmp	r4, r7
-	bcc	.L992
-	b	.L993
-.L991:
+	b	.L976
+.L972:
 	mov	r2, #0
 	strh	r2, [r3]	@ movhi
-	b	.L994
-.L992:
+	b	.L976
+.L975:
+	add	r7, r7, #1
+	b	.L971
+.L980:
+	mov	r3, #0
+	strh	r3, [r7]	@ movhi
+	b	.L983
+.L982:
 	add	fp, fp, #1
-	uxth	r3, fp
-	cmp	r3, r7
-	bcc	.L995
-.L994:
-	cmp	r4, r7
-	bcs	.L993
-	ldr	r1, .L1093+36
-	movw	r2, #2814
-	ldrh	r3, [r6, r2]
+	b	.L979
+.L985:
+	ldrh	r3, [r6]
+	ldrh	r2, [r9, #-8]
+	cmp	r3, r2
+	subhi	r3, r3, r2, lsr #3
+	strhhi	r3, [r6]	@ movhi
+	b	.L978
+.L987:
+	mov	r3, #0
+	strh	r3, [r10]	@ movhi
+.L990:
+	cmp	r4, r6
+	bcs	.L989
+	ldr	r1, .L1086+28
+	movw	r2, #2818
+	ldrh	r3, [r5, r2]
 	ldrh	r1, [r1, #-8]
 	cmp	r3, r1
 	addcc	r3, r3, r1, lsr #3
-	bcc	.L1091
+	bcc	.L1082
+.L986:
+	ldr	r3, .L1086+12
+	ldr	r3, [r3]
+	tst	r3, #256
+	beq	.L1021
+	ldr	r3, [sp, #12]
+	ldr	r2, [sp, #24]
+	ldr	r1, [sp, #16]
+	str	r3, [sp]
+	mov	r3, r4
+	ldr	r0, .L1086+48
+	bl	printk
+.L1021:
+	mov	r0, r4
+.L966:
+	add	sp, sp, #44
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L988:
+	add	r9, r9, #1
+	uxth	r3, r9
+	cmp	r6, r3
+	bhi	.L991
 	b	.L990
-.L993:
-	ldr	r1, .L1093+36
-	movw	r2, #2814
-	ldrh	r3, [r6, r2]
-	ldrh	r1, [r1, #-8]
-	cmp	r3, r1, lsr #1
-	bls	.L990
-	sub	r3, r3, r1, lsr #3
-.L1091:
-	ldr	r1, .L1093
-	b	.L1090
-.L1092:
-	ldr	r8, .L1093+44
-	cmp	r5, #1
-	sub	r8, r8, #3104
-	ldrb	r0, [r8, #-19]	@ zero_extendqisi2
-	ldrh	r1, [r8, #-10]
-	smulbb	r1, r0, r1
-	uxth	r1, r1
-	str	r1, [sp, #12]
-	bne	.L996
+.L970:
+	ldr	r4, .L1086+40
+	ldrb	r7, [r4, #-3127]	@ zero_extendqisi2
+	sub	r4, r4, #3104
+	ldrh	r0, [r4, #-14]
+	smulbb	r7, r7, r0
+	ldr	r0, [sp, #12]
+	cmp	r0, #1
+	uxth	r7, r7
+	bne	.L992
 	cmp	r2, #0
-	beq	.L996
-	ldrh	r0, [r7, #80]
+	beq	.L992
+	ldrh	r0, [r1, #80]
 	movw	r1, #65535
-	mov	r5, #8
 	cmp	r0, r1
 	movwne	r1, #2102
-	ldrne	r0, [sp, #12]
-	ldrneh	r1, [r3, r1]
-	rsbne	r1, r1, r0
-	uxthne	r1, r1
-	strne	r1, [sp, #12]
-.L996:
-	movw	r0, #2180
-	mov	r7, #0
-	strh	r7, [r3, r0]	@ movhi
-	ldr	r3, [sp, #16]
-	ldr	r4, .L1093+36
+	ldrhne	r1, [r3, r1]
+	subne	r7, r7, r1
+	mov	r1, #8
+	uxthne	r7, r7
+	str	r1, [sp, #12]
+.L992:
+	mov	r6, #0
+	movw	r1, #2180
+	strh	r6, [r3, r1]	@ movhi
+	ldr	r3, [sp, #24]
+	ldr	r1, .L1086+28
 	ands	r3, r3, #1
-	str	r3, [sp, #20]
-	ldr	r1, .L1093
-	strh	r7, [r4]	@ movhi
-	ldreq	r7, [sp, #20]
-	moveq	r4, r7
-	beq	.L997
-	ldrh	r0, [r4, #2]
-	movw	r3, #2794
-	ldrh	r3, [r1, r3]
-	add	r4, r4, #16
-	str	r4, [sp, #24]
-	cmp	r3, r0, lsr #2
-	bhi	.L998
-	movw	r0, #2796
-	ldrh	r1, [r1, r0]
+	strh	r6, [r1, #-6]	@ movhi
+	mov	r8, r1
+	str	r3, [sp, #28]
+	ldreq	r6, [sp, #28]
+	moveq	r4, r6
+	beq	.L993
+	movw	r3, #2790
+	ldrh	r1, [r1, #-4]
+	ldrh	r3, [r5, r3]
+	cmp	r3, r1, lsr #2
+	bhi	.L994
+	movw	r1, #2792
+	ldrh	r1, [r5, r1]
 	cmp	r1, r3
-	movcs	r4, r7
-	bcs	.L999
-.L998:
+	movcs	r4, r6
+	bcs	.L995
+.L994:
 	cmp	r2, #1
-	bls	.L1000
-.L1002:
+	bls	.L996
+.L998:
 	mov	r4, #0
-	b	.L1001
-.L1000:
-	ldr	r4, .L1093+8
+.L997:
+	ldr	r9, .L1086+52
+	mov	r6, #0
+	mov	r8, #64
+	movw	fp, #65535
+.L1001:
+	ldr	r2, .L1086+44
+	ldrh	r3, [r2]
+	str	r2, [sp, #36]
+	mov	r0, r3
+	str	r3, [sp, #32]
+	bl	zftl_get_gc_node.part.10
+	cmp	r0, fp
+	mov	r10, r0
+	ldr	r2, [sp, #36]
+	beq	.L999
+	ldr	r3, [sp, #32]
 	mov	r1, #0
-	mov	r3, r3, lsr #2
-	strh	r3, [r8, #-8]	@ movhi
-	add	r0, r4, #12
+	add	r3, r3, #1
+	strh	r3, [r2]	@ movhi
+	ldr	r2, [sp, #16]
+	bl	gc_add_sblk
+	cmp	r0, #0
+	beq	.L1000
+	ldr	r3, [r5, #1092]
+	lsl	r10, r10, #1
+	add	r4, r4, #1
+	ldr	r2, [sp, #12]
+	uxth	r4, r4
+	ldrh	r3, [r3, r10]
+	add	r6, r6, r3
+	uxth	r6, r6
+	cmp	r7, r6
+	movcs	r3, #0
+	movcc	r3, #1
+	cmp	r4, r2
+	orrcs	r3, r3, #1
+	cmp	r3, #0
+	bne	.L995
+	ldr	r2, .L1086+56
+	ldrh	r3, [r9]
+	ldrh	r2, [r2]
+	cmp	r3, r2, lsl #1
+	ble	.L1000
+.L995:
+	movw	r3, #2792
+	ldrh	r2, [r5, r3]
+	ldr	r3, .L1086+28
+	ldrh	r3, [r3, #-4]
+	cmp	r2, r3, lsr #2
+	bhi	.L1022
+	movw	r3, #2790
+	ldrh	r3, [r5, r3]
+	add	r3, r3, #8
+	cmp	r2, r3
+	ble	.L993
+.L1022:
+	cmp	r7, r6
+	bls	.L993
+	ldrh	r3, [sp, #16]
+	mov	r8, #64
+	str	r3, [sp, #32]
+.L1004:
+	ldr	fp, .L1086+20
+	mov	r0, fp
+	ldrh	r9, [r0], #6
+	mov	r1, r9
 	bl	_list_get_gc_head_node
+	movw	r3, #65535
+	mov	r10, r0
+	cmp	r0, r3
+	beq	.L1002
+	add	r9, r9, #1
+	ldr	r2, [sp, #32]
+	mov	r1, #0
+	strh	r9, [fp]	@ movhi
+	bl	gc_add_sblk
+	cmp	r0, #0
+	beq	.L1003
+	ldr	r3, [r5, #1092]
+	lsl	r10, r10, #1
+	add	r4, r4, #1
+	ldr	r2, [sp, #12]
+	uxth	r4, r4
+	ldrh	r3, [r3, r10]
+	add	r6, r6, r3
+	uxth	r6, r6
+	cmp	r7, r6
+	movcs	r3, #0
+	movcc	r3, #1
+	cmp	r4, r2
+	orrcs	r3, r3, #1
+	cmp	r3, #0
+	beq	.L1003
+.L993:
+	ldr	r3, [sp, #24]
+	tst	r3, #2
+	beq	.L1005
+	movw	r3, #2794
+	ldrh	r3, [r5, r3]
+	cmp	r3, #32
+	movls	r3, #0
+	movhi	r3, #1
+	cmp	r6, r7
+	movcs	r3, #0
+	cmp	r3, #0
+	beq	.L1005
+	ldr	r10, .L1086+40
+	mov	r5, #64
+	sub	fp, r10, #3088
+	sub	r3, fp, #12
+	str	r3, [sp, #32]
+.L1011:
+	ldr	r8, .L1086+8
+	ldr	r0, [sp, #32]
+	ldrh	r9, [r8, #-4]
+	sub	r2, r8, #4
+	str	r2, [sp, #36]
+	mov	r1, r9
+	bl	_list_get_gc_head_node
+	movw	r3, #65535
+	ldr	r2, [sp, #36]
+	cmp	r0, r3
+	beq	.L1006
+	ldr	r3, [sp, #12]
+	add	r9, r9, #1
+	strh	r9, [r8, #-4]	@ movhi
+	cmp	r3, #1
+	bne	.L1007
+	ldrh	r2, [r8, #-14]
+	ldrb	r3, [r10, #-3127]	@ zero_extendqisi2
+	smulbb	r3, r3, r2
+	ldrh	r2, [fp, #-8]
+	sub	r3, r3, r2, lsr #3
+	ldr	r2, .L1086+60
+	strh	r3, [r2]	@ movhi
+.L1007:
+	ldr	r9, .L1086
+	lsl	r8, r0, #1
+	ldr	r3, [r9, #1092]
+	ldrh	r2, [r3, r8]
+	ldr	r3, .L1086+60
+	ldrh	r3, [r3]
+	cmp	r2, r3
+	bcs	.L1008
+	ldr	r2, [sp, #16]
+	mov	r1, #0
+	bl	gc_add_sblk
+	cmp	r0, #0
+	beq	.L1009
+	ldr	r3, [sp, #20]
+	add	r4, r4, #1
+	ldr	r2, [sp, #12]
+	uxth	r4, r4
+	add	r0, r3, #1
+	uxth	r3, r0
+	str	r3, [sp, #20]
+	ldr	r3, [r9, #1092]
+	ldrh	r3, [r3, r8]
+	add	r6, r6, r3
+	uxth	r6, r6
+	cmp	r7, r6
+	movcs	r3, #0
+	movcc	r3, #1
+	cmp	r4, r2
+	orrcs	r3, r3, #1
+	cmp	r3, #0
+	beq	.L1009
+.L1010:
+	ldr	r3, [sp, #12]
+	ldr	r0, .L1086+28
+	ldr	r2, .L1086
+	cmp	r4, r3
+	add	lr, r0, #3088
+	bcc	.L1012
+	ldr	r3, [sp, #20]
+	cmp	r3, #0
+	bne	.L1013
+	movw	r3, #2794
+	ldrh	r1, [r2, r3]
+	ldrh	r3, [r0, #-2]
+	cmp	r1, r3
+	bls	.L1013
+.L1012:
+	ldr	r3, .L1086+8
+	movw	ip, #2808
+	ldrh	r0, [r0, #-8]
+	ldrh	r1, [r2, ip]
+	ldrh	r5, [r3, #-14]
+	ldrb	r3, [lr, #-3127]	@ zero_extendqisi2
+	lsr	r0, r0, #3
+	mul	r3, r3, r5
+	sub	r3, r3, r0
+	cmp	r1, r3
+	addlt	r1, r1, r0
+	strhlt	r1, [r2, ip]	@ movhi
+.L1005:
+	ldr	r3, [sp, #28]
+	cmp	r3, #0
+	beq	.L986
+	ldrh	r9, [sp, #12]
+	cmp	r6, r7
+	cmpcc	r4, r9
+	bcs	.L986
+	ldr	r5, .L1086
+	mov	r8, #64
+.L1019:
+	ldr	fp, .L1086+20
+	mov	r0, fp
+	ldrh	r10, [r0], #6
+	mov	r1, r10
+	bl	_list_get_gc_head_node
+	movw	r3, #65535
+	cmp	r0, r3
+	beq	.L1015
+	add	r10, r10, #1
+	ldr	r2, [r5, #1092]
+	ldr	r3, .L1086+64
+	strh	r10, [fp]	@ movhi
+	lsl	r10, r0, #1
+	ldrh	r1, [r2, r10]
+	ldrh	r2, [r3]
+	cmp	r1, r2
+	bcs	.L1016
+	ldrh	r2, [fp, #18]
+	ldrh	r3, [r3, #-14]
+	cmp	r3, r2, lsr #1
+	bls	.L1017
+.L1016:
+	ldr	r2, [sp, #16]
+	mov	r1, #0
+	bl	gc_add_sblk
+	cmp	r0, #0
+	beq	.L1018
+	ldr	r3, [r5, #1092]
+	add	r4, r4, #1
+	uxth	r4, r4
+	ldrh	r3, [r3, r10]
+	add	r6, r6, r3
+	uxth	r6, r6
+	cmp	r7, r6
+	cmpcs	r9, r4
+	bhi	.L1018
+.L1017:
+	ldr	r3, .L1086+28
+	cmp	r4, r9
+	movw	r2, #2806
+	ldrhcc	r1, [r3, #-8]
+	bcc	.L1085
+	ldrh	r0, [r3, #-8]
+	ldr	r3, .L1086+40
+	ldrh	r1, [r5, r2]
+	ldrb	r3, [r3, #-3127]	@ zero_extendqisi2
+	mul	r3, r0, r3
+	sub	r3, r3, #32
+	cmp	r1, r3
+	addlt	r1, r1, r0, lsr #3
+	strhlt	r1, [r5, r2]	@ movhi
+	b	.L986
+.L996:
+	lsr	r3, r3, #2
+	mov	r0, #0
+	strh	r3, [r4, #-8]	@ movhi
+	bl	zftl_get_gc_node.part.10
 	movw	r2, #65535
 	cmp	r0, r2
-	beq	.L1002
-	ldr	r1, [r6, #1088]
-	mov	r3, r0, asl #1
-	ldrh	r2, [r4, #8]
+	beq	.L998
+	ldr	r1, [r5, #1092]
+	lsl	r3, r0, #1
+	ldrh	r2, [r8, #-8]
 	ldrh	r3, [r1, r3]
 	cmp	r3, r2, lsr #2
-	bcs	.L1002
-	mov	r1, #0
-	ldr	r2, [sp, #8]
+	bcs	.L998
 	mov	r3, #1
+	ldr	r2, [sp, #16]
+	mov	r1, #0
 	strh	r3, [r4, #-8]	@ movhi
 	bl	gc_add_sblk
 	adds	r4, r0, #0
 	movne	r4, #1
-.L1001:
-	ldr	r9, .L1093+40
-	mov	r8, #64
-	mov	r7, #0
-.L1005:
-	ldrh	fp, [r9]
-	ldr	r3, .L1093+40
-	mov	r1, fp
-	add	r0, r3, #20
-	str	r3, [sp, #28]
-	bl	_list_get_gc_head_node
-	movw	r2, #65535
-	cmp	r0, r2
-	mov	r10, r0
-	ldr	r3, [sp, #28]
-	beq	.L1003
-	mov	r1, #0
-	ldr	r2, [sp, #8]
-	add	fp, fp, #1
-	strh	fp, [r9]	@ movhi
-	bl	gc_add_sblk
-	cmp	r0, #0
-	beq	.L1004
-	ldr	r3, [r6, #1088]
-	mov	r10, r10, asl #1
-	add	r4, r4, #1
-	ldrh	r3, [r3, r10]
-	uxth	r4, r4
-	add	r7, r7, r3
-	ldr	r3, [sp, #12]
-	uxth	r7, r7
-	cmp	r7, r3
-	cmpls	r4, r5
-	bcs	.L999
-	ldr	r2, .L1093+48
-	ldr	r3, .L1093+52
-	ldrh	r2, [r2]
-	ldrh	r3, [r3]
-	cmp	r3, r2, asl #1
-	ble	.L1004
-	b	.L999
-.L1003:
-	mov	r2, #0
-	strh	r2, [r3]	@ movhi
-	b	.L999
-.L1004:
+	b	.L997
+.L999:
+	mov	r3, #0
+	strh	r3, [r2]	@ movhi
+	b	.L995
+.L1000:
 	sub	r8, r8, #1
 	uxth	r8, r8
 	cmp	r8, #0
-	bne	.L1005
-.L999:
-	movw	r3, #2796
-	ldrh	r2, [r6, r3]
-	ldr	r3, [sp, #24]
-	ldrh	r3, [r3, #-14]
-	cmp	r2, r3, lsr #2
-	bhi	.L1026
-	ldr	r1, .L1093
-	movw	r3, #2794
-	ldrh	r3, [r1, r3]
-	add	r3, r3, #8
-	cmp	r2, r3
-	bgt	.L1026
-.L997:
-	ldr	r3, [sp, #16]
-	tst	r3, #2
-	beq	.L1009
-	movw	r3, #2798
-	ldrh	r2, [r6, r3]
-	ldr	r3, [sp, #12]
-	cmp	r7, r3
-	movcs	r3, #0
-	movcc	r3, #1
-	cmp	r2, #32
-	movls	r3, #0
-	cmp	r3, #0
-	beq	.L1009
-	ldr	r9, .L1093+28
-	mov	r8, #64
-	mov	r6, #0
-.L1015:
-	ldrh	r3, [r9]
-	ldr	r10, .L1093+28
-	ldr	fp, .L1093
-	add	r0, r10, #8
-	mov	r1, r3
-	str	r3, [sp, #24]
-	bl	_list_get_gc_head_node
-	movw	r2, #65535
-	cmp	r0, r2
-	beq	.L1010
-	ldr	r3, [sp, #24]
-	cmp	r5, #1
-	add	r3, r3, #1
-	strh	r3, [r9]	@ movhi
-	bne	.L1011
-	ldr	r3, .L1093+44
-	ldrb	r2, [r3, #-3123]	@ zero_extendqisi2
-	ldrh	r3, [r10, #-6]
-	smulbb	r3, r2, r3
-	ldrh	r2, [r10, #12]
-	sub	r3, r3, r2, lsr #3
-	ldr	r2, .L1093+56
-	strh	r3, [r2]	@ movhi
-.L1011:
-	ldr	r3, [fp, #1088]
-	mov	r10, r0, asl #1
-	ldrh	r2, [r3, r10]
-	ldr	r3, .L1093+56
-	ldrh	r3, [r3]
-	cmp	r2, r3
-	bcs	.L1012
-	mov	r1, #0
-	ldr	r2, [sp, #8]
-	bl	gc_add_sblk
-	cmp	r0, #0
-	beq	.L1013
-	ldr	r3, .L1093
-	add	r4, r4, #1
-	add	r6, r6, #1
-	uxth	r4, r4
-	ldr	r3, [r3, #1088]
-	uxth	r6, r6
-	ldrh	r3, [r3, r10]
-	add	r7, r7, r3
-	ldr	r3, [sp, #12]
-	uxth	r7, r7
-	cmp	r7, r3
-	cmpls	r4, r5
-	bcc	.L1013
-	b	.L1014
-.L1012:
-	ldr	r3, .L1093+8
+	bne	.L1001
+	b	.L995
+.L1002:
+	cmp	r9, #64
+	movhi	r3, #0
+	strhhi	r3, [fp]	@ movhi
+	b	.L993
+.L1003:
+	sub	r8, r8, #1
+	uxth	r8, r8
+	cmp	r8, #0
+	bne	.L1004
+	b	.L993
+.L1008:
+	ldr	r3, .L1086+8
 	mov	r2, #0
 	strh	r2, [r3, #-4]	@ movhi
-	b	.L1014
-.L1010:
-	mov	r3, #0
-	strh	r3, [r10]	@ movhi
-	b	.L1014
-.L1013:
-	sub	r8, r8, #1
-	uxth	r8, r8
-	cmp	r8, #0
-	bne	.L1015
-.L1014:
-	ldr	r0, .L1093+44
-	cmp	r4, r5
-	sub	r2, r0, #3088
-	bcc	.L1016
-	cmp	r6, #0
-	bne	.L1017
-	ldr	ip, .L1093
-	sub	r3, r0, #3072
-	movw	r1, #2798
-	ldrh	r3, [r3, #-12]
-	ldrh	r1, [ip, r1]
-	cmp	r1, r3
-	bls	.L1017
-.L1016:
-	ldr	r3, .L1093+8
-	movw	r1, #2810
-	ldrh	r2, [r2, #-8]
-	ldrh	ip, [fp, r1]
-	ldrh	lr, [r3, #-10]
-	ldrb	r3, [r0, #-3123]	@ zero_extendqisi2
-	mov	r2, r2, lsr #3
-	mul	r3, r3, lr
-	rsb	r3, r2, r3
-	cmp	ip, r3
-	addlt	r3, r2, ip
-	ldrlt	r2, .L1093
-	strlth	r3, [r2, r1]	@ movhi
-	b	.L1009
-.L1017:
-	ldrh	ip, [r2, #-8]
-	movw	r1, #2810
-	ldrb	r2, [r0, #-3123]	@ zero_extendqisi2
-	ldrh	r3, [fp, r1]
-	mul	r2, r2, ip
-	cmp	r3, r2
-	subgt	r3, r3, ip, lsr #3
-	bgt	.L1089
-	b	.L990
-.L1009:
-	ldr	r3, [sp, #20]
-	cmp	r3, #0
-	beq	.L990
-	ldr	r3, [sp, #12]
-	uxth	r9, r5
-	cmp	r4, r9
-	cmpcc	r7, r3
-	bcs	.L990
-	ldr	r10, .L1093
-	mov	r6, #64
-.L1023:
-	ldr	r2, .L1093+12
-	ldr	fp, .L1093
-	add	r0, r2, #6
-	ldrh	r8, [r2]
-	str	r2, [sp, #20]
-	mov	r1, r8
-	bl	_list_get_gc_head_node
-	movw	r1, #65535
-	cmp	r0, r1
-	ldr	r2, [sp, #20]
-	beq	.L1019
-	ldr	r3, .L1093+12
-	add	r8, r8, #1
-	ldr	r2, [r10, #1088]
-	strh	r8, [r3]	@ movhi
-	mov	r8, r0, asl #1
-	ldrh	r1, [r2, r8]
-	ldr	r2, .L1093+60
-	ldrh	r2, [r2]
-	cmp	r1, r2
-	bcs	.L1020
-	ldr	r2, .L1093+52
-	ldrh	r1, [r3, #24]
-	ldrh	r2, [r2]
-	cmp	r2, r1, lsr #1
-	bls	.L1021
-.L1020:
-	mov	r1, #0
-	ldr	r2, [sp, #8]
-	bl	gc_add_sblk
-	cmp	r0, #0
-	beq	.L1022
-	ldr	r2, [r10, #1088]
-	add	r4, r4, #1
-	ldr	r3, [sp, #12]
-	uxth	r4, r4
-	ldrh	r2, [r2, r8]
-	add	r7, r7, r2
-	uxth	r7, r7
-	cmp	r7, r3
-	cmpls	r4, r9
-	bcc	.L1022
-	b	.L1021
-.L1019:
-	cmp	r8, #64
-	movhi	r3, #0
-	strhih	r3, [r2]	@ movhi
-	b	.L1021
-.L1022:
-	sub	r6, r6, #1
-	uxth	r6, r6
-	cmp	r6, #0
-	bne	.L1023
-.L1021:
-	cmp	r4, r9
-	ldr	r0, .L1093+36
-	movw	r1, #2812
-	bcs	.L1024
-	ldrh	r2, [r0, #-8]
-	ldrh	r3, [fp, r1]
-	cmp	r3, r2, lsr #1
-	bls	.L990
-	sub	r3, r3, r2, lsr #3
-.L1089:
-	ldr	r2, .L1093
-.L1090:
-	strh	r3, [r2, r1]	@ movhi
-	b	.L990
-.L1024:
-	ldr	r3, .L1093+44
-	ldrh	r0, [r0, #-8]
-	ldrh	r2, [fp, r1]
-	ldrb	r3, [r3, #-3123]	@ zero_extendqisi2
-	mul	r3, r3, r0
-	sub	r3, r3, #32
-	cmp	r2, r3
-	addlt	r2, r2, r0, lsr #3
-	ldrlt	r3, .L1093
-	strlth	r2, [r3, r1]	@ movhi
-.L990:
-	ldr	r3, .L1093+16
-	ldr	r3, [r3]
-	tst	r3, #256
-	beq	.L1025
-	str	r5, [sp]
-	mov	r3, r4
-	ldr	r0, .L1093+64
-	ldr	r1, [sp, #8]
-	ldr	r2, [sp, #16]
-	bl	printk
-.L1025:
-	mov	r0, r4
-	add	sp, sp, #36
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1026:
-	ldr	r3, [sp, #12]
-	cmp	r7, r3
-	bcs	.L997
-	ldr	r9, .L1093+12
-	mov	r8, #64
-	movw	r10, #65535
-.L1008:
-	ldrh	fp, [r9]
-	ldr	r2, .L1093+12
-	mov	r1, fp
-	add	r0, r2, #6
-	str	r2, [sp, #28]
-	bl	_list_get_gc_head_node
-	cmp	r0, r10
-	mov	r3, r0
-	str	r0, [sp, #24]
-	ldr	r2, [sp, #28]
-	beq	.L1006
-	mov	r1, #0
-	ldr	r2, [sp, #8]
-	add	fp, fp, #1
-	strh	fp, [r9]	@ movhi
-	bl	gc_add_sblk
-	cmp	r0, #0
-	ldr	r3, [sp, #24]
-	beq	.L1007
-	ldr	r2, [r6, #1088]
-	mov	r3, r3, asl #1
-	add	r4, r4, #1
-	ldrh	r3, [r2, r3]
-	uxth	r4, r4
-	add	r7, r7, r3
-	ldr	r3, [sp, #12]
-	uxth	r7, r7
-	cmp	r7, r3
-	cmpls	r4, r5
-	bcc	.L1007
-	b	.L997
+	b	.L1010
 .L1006:
-	cmp	fp, #64
+	mov	r3, #0
+	strh	r3, [r2]	@ movhi
+	b	.L1010
+.L1009:
+	sub	r5, r5, #1
+	uxth	r5, r5
+	cmp	r5, #0
+	bne	.L1011
+	b	.L1010
+.L1013:
+	ldrh	r0, [r0, #-8]
+	movw	ip, #2808
+	ldrb	r1, [lr, #-3127]	@ zero_extendqisi2
+	ldrh	r3, [r2, ip]
+	mul	r1, r0, r1
+	cmp	r3, r1
+	subgt	r3, r3, r0, lsr #3
+	strhgt	r3, [r2, ip]	@ movhi
+	b	.L986
+.L1015:
+	cmp	r10, #64
 	movhi	r3, #0
-	strhih	r3, [r2]	@ movhi
-	b	.L997
-.L1007:
+	strhhi	r3, [fp]	@ movhi
+	b	.L1017
+.L1018:
 	sub	r8, r8, #1
 	uxth	r8, r8
 	cmp	r8, #0
-	bne	.L1008
-	b	.L997
-.L1094:
+	bne	.L1019
+	b	.L1017
+.L1087:
 	.align	2
-.L1093:
+.L1086:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2828
+	.word	.LANCHOR0+2824
 	.word	.LANCHOR3-3104
-	.word	.LANCHOR3-3110
 	.word	.LANCHOR2
-	.word	.LC101
-	.word	.LANCHOR0+2814
-	.word	.LANCHOR3-3108
-	.word	.LANCHOR0+2816
+	.word	.LC98
+	.word	.LANCHOR3-3110
+	.word	.LANCHOR0+2818
 	.word	.LANCHOR3-3088
-	.word	.LANCHOR3-3112
+	.word	.LANCHOR0+2816
+	.word	.LANCHOR3-3108
 	.word	.LANCHOR3
-	.word	.LANCHOR0+2794
-	.word	.LANCHOR0+2796
-	.word	.LANCHOR0+2810
-	.word	.LANCHOR0+2812
-	.word	.LC102
+	.word	.LANCHOR3-3112
+	.word	.LC99
+	.word	.LANCHOR0+2792
+	.word	.LANCHOR0+2790
+	.word	.LANCHOR0+2808
+	.word	.LANCHOR0+2806
 	.fnend
 	.size	gc_search_src_blk, .-gc_search_src_blk
 	.align	2
 	.global	zftl_get_gc_node
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_get_gc_node, %function
 zftl_get_gc_node:
 	.fnstart
@@ -6237,2951 +6388,3056 @@
 	@ link register save eliminated.
 	cmp	r1, #5
 	mov	r3, r0
-	ldreq	r0, .L1099
-	beq	.L1098
+	moveq	r1, r0
+	ldreq	r0, .L1092
+	beq	.L1091
 	cmp	r1, #2
-	ldreq	r0, .L1099+4
-	ldrne	r0, .L1099+8
-.L1098:
-	mov	r1, r3
+	movne	r1, r3
+	ldrne	r0, .L1092+4
+	bne	.L1091
+	b	zftl_get_gc_node.part.10
+.L1091:
 	b	_list_get_gc_head_node
-.L1100:
+.L1093:
 	.align	2
-.L1099:
+.L1092:
 	.word	.LANCHOR3-3100
-	.word	.LANCHOR3-3092
 	.word	.LANCHOR3-3104
 	.fnend
 	.size	zftl_get_gc_node, .-zftl_get_gc_node
 	.align	2
 	.global	zftl_insert_free_list
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_insert_free_list, %function
 zftl_insert_free_list:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1105
+	ldr	r2, .L1098
 	mov	r1, r0
-	ldr	r3, [r3, #1080]
-	add	r3, r3, r0, asl #2
+	ldr	r3, [r2, #1084]
+	add	r3, r3, r0, lsl #2
 	ldrb	r3, [r3, #2]	@ zero_extendqisi2
 	ands	r3, r3, #24
-	ldreq	r0, .L1105+4
-	ldreq	r2, .L1105+8
-	beq	.L1104
-.L1102:
+	addeq	r2, r2, #2784
+	ldreq	r0, .L1098+4
+	beq	.L1097
 	cmp	r3, #16
-	ldreq	r0, .L1105+12
-	ldreq	r2, .L1105+16
-	ldrne	r0, .L1105+20
-	ldrne	r2, .L1105+24
-.L1104:
+	ldr	r0, .L1098+8
+	ldreq	r2, .L1098+12
+	ldrne	r2, .L1098+16
+	subeq	r0, r0, #12
+	subne	r0, r0, #8
+.L1097:
 	b	_insert_free_list
-.L1106:
+.L1099:
 	.align	2
-.L1105:
+.L1098:
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3080
-	.word	.LANCHOR0+2788
-	.word	.LANCHOR3-3076
-	.word	.LANCHOR0+2790
+	.word	.LANCHOR3-3088
 	.word	.LANCHOR3-3072
-	.word	.LANCHOR0+2792
+	.word	.LANCHOR0+2786
+	.word	.LANCHOR0+2788
 	.fnend
 	.size	zftl_insert_free_list, .-zftl_insert_free_list
 	.align	2
 	.global	zftl_insert_data_list
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_insert_data_list, %function
 zftl_insert_data_list:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1112
+	ldr	r3, .L1105
 	mov	r1, r0
-	ldr	r3, [r3, #1080]
-	add	r3, r3, r0, asl #2
+	ldr	r3, [r3, #1084]
+	add	r3, r3, r0, lsl #2
 	ldrb	r3, [r3, #2]	@ zero_extendqisi2
 	and	r3, r3, #224
 	cmp	r3, #64
-	ldreq	r0, .L1112+4
-	ldreq	r2, .L1112+8
-	beq	.L1111
-.L1108:
+	bne	.L1101
+	ldr	r2, .L1105+4
+	ldr	r0, .L1105+8
+.L1104:
+	b	_insert_data_list
+.L1101:
 	cmp	r3, #96
-	ldreq	r0, .L1112+12
-	ldreq	r2, .L1112+16
-	beq	.L1111
-.L1109:
+	ldreq	r2, .L1105+12
+	ldreq	r0, .L1105+16
+	beq	.L1104
+.L1102:
 	cmp	r3, #160
 	bxne	lr
-	ldr	r0, .L1112+20
-	ldr	r2, .L1112+24
-.L1111:
-	b	_insert_data_list
-.L1113:
+	ldr	r2, .L1105+20
+	ldr	r0, .L1105+24
+	b	.L1104
+.L1106:
 	.align	2
-.L1112:
+.L1105:
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3092
-	.word	.LANCHOR0+2794
+	.word	.LANCHOR0+2790
+	.word	.LANCHOR3-3116
+	.word	.LANCHOR0+2792
 	.word	.LANCHOR3-3104
-	.word	.LANCHOR0+2796
+	.word	.LANCHOR0+2794
 	.word	.LANCHOR3-3100
-	.word	.LANCHOR0+2798
 	.fnend
 	.size	zftl_insert_data_list, .-zftl_insert_data_list
 	.align	2
 	.global	zftl_gc_get_free_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_gc_get_free_sblk, %function
 zftl_gc_get_free_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	.pad #16
 	movw	r2, #65535
-	ldr	r8, .L1129
-	mov	r7, r0
-	ldr	r3, [r8, #1092]
+	ldr	r8, .L1126
+	ldr	r3, [r8, #1096]
 	add	r3, r3, #588
 	ldrh	r4, [r3]
 	clz	r3, r0
+	lsr	r3, r3, #5
 	cmp	r4, r2
-	mov	r3, r3, lsr #5
 	moveq	r3, #0
 	cmp	r3, #0
-	beq	.L1115
-	ldr	r0, .L1129+4
+	beq	.L1108
 	mov	r1, r4
+	ldr	r0, .L1126+4
 	bl	printk
-	ldr	r3, [r8, #1092]
+	ldr	r3, [r8, #1096]
 	mvn	r2, #0
 	add	r3, r3, #588
 	strh	r2, [r3]	@ movhi
-	b	.L1116
-.L1115:
-	movw	r3, #2790
-	mov	r6, r1
-	ldrh	r1, [r8, r3]
-	movw	r3, #2792
-	ldrh	r3, [r8, r3]
-	mov	r5, r8
-	cmp	r1, r3
-	bcc	.L1117
-	movw	r2, #2788
-	ldrh	r2, [r8, r2]
-	cmp	r3, #0
-	cmpne	r2, r1
-	bls	.L1118
-.L1117:
-	cmp	r7, #0
-	ldr	r0, .L1129+8
-	rsbne	r1, r1, r1, asl #3
-	moveq	r1, r3, lsr #2
-	ubfxne	r1, r1, #3, #16
-	ldr	r2, .L1129+12
-	b	.L1128
-.L1118:
-	cmp	r0, #0
-	ldr	r2, .L1129+16
-	movne	r1, r1, lsr #3
-	moveq	r1, r0
-	ldr	r0, .L1129+20
-.L1128:
-	bl	_list_pop_index_node
-	movw	r3, #65535
-	uxth	r4, r0
-	cmp	r4, r3
-	bne	.L1123
-	movw	r3, #2788
-	ldr	r0, .L1129+24
-	ldrh	r3, [r5, r3]
-	mov	r1, r4
-	mov	r2, r6
-	str	r3, [sp]
-	movw	r3, #2792
-	ldrh	r3, [r5, r3]
-	str	r3, [sp, #4]
-	ldr	r3, .L1129+28
-	ldr	r3, [r3, #-3080]
-	bl	printk
-.L1123:
-	cmp	r7, #0
-	beq	.L1116
-	ldr	r3, .L1129+32
-	ldr	r3, [r3]
-	tst	r3, #256
-	beq	.L1116
-	ldr	r2, [r5, #1080]
-	mov	r0, r4, asl #2
-	add	r3, r2, r0
-	ldr	r1, [r2, r4, asl #2]
-	ldrb	r3, [r3, #2]	@ zero_extendqisi2
-	ubfx	r1, r1, #11, #8
-	str	r1, [sp]
-	ldrh	r2, [r2, r0]
-	ldr	r0, .L1129+36
-	ubfx	r2, r2, #0, #11
-	str	r2, [sp, #4]
-	ldr	r1, [r5, #1088]
-	mov	r2, r4, asl #1
-	ldrh	r2, [r1, r2]
-	mov	r1, r4
-	str	r2, [sp, #8]
-	mov	r2, r3, lsr #5
-	ubfx	r3, r3, #3, #2
-	bl	printk
-.L1116:
+.L1109:
 	mov	r0, r4
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L1130:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L1108:
+	movw	r3, #2786
+	mov	r7, r1
+	ldrh	r1, [r8, r3]
+	movw	r3, #2788
+	ldrh	r3, [r8, r3]
+	mov	r6, r0
+	mov	r5, r8
+	ldr	r0, .L1126+8
+	cmp	r1, r3
+	bcc	.L1110
+	add	r2, r8, #2784
+	ldrh	r2, [r2]
+	cmp	r3, #0
+	cmpne	r2, r1
+	bls	.L1111
+.L1110:
+	cmp	r6, #0
+	ldr	r2, .L1126+12
+	rsbne	r1, r1, r1, lsl #3
+	lsreq	r1, r3, #2
+	ubfxne	r1, r1, #3, #16
+	sub	r0, r0, #8
+.L1125:
+	bl	_list_pop_index_node
+	uxth	r4, r0
+	movw	r3, #65535
+	cmp	r4, r3
+	bne	.L1116
+	movw	r3, #2788
+	mov	r2, r7
+	ldrh	r3, [r5, r3]
+	mov	r1, r4
+	ldr	r0, .L1126+16
+	str	r3, [sp, #4]
+	ldr	r3, .L1126+20
+	ldrh	r3, [r3]
+	str	r3, [sp]
+	ldr	r3, .L1126+24
+	ldr	r3, [r3, #-3088]
+	bl	printk
+.L1116:
+	cmp	r6, #0
+	beq	.L1109
+	ldr	r3, .L1126+28
+	ldr	r3, [r3]
+	tst	r3, #256
+	beq	.L1109
+	ldr	ip, [r5, #1092]
+	lsl	r0, r4, #1
+	ldr	r1, [r5, #1084]
+	lsl	r3, r4, #2
+	ldrh	r0, [ip, r0]
+	add	r2, r1, r3
+	ldrb	r2, [r2, #2]	@ zero_extendqisi2
+	str	r0, [sp, #8]
+	ldrh	r3, [r1, r3]
+	ldr	r0, .L1126+32
+	ubfx	r3, r3, #0, #11
+	str	r3, [sp, #4]
+	ldr	r3, [r1, r4, lsl #2]
+	mov	r1, r4
+	ubfx	r3, r3, #11, #8
+	str	r3, [sp]
+	ubfx	r3, r2, #3, #2
+	lsr	r2, r2, #5
+	bl	printk
+	b	.L1109
+.L1111:
+	cmp	r6, #0
+	ldr	r2, .L1126+36
+	lsrne	r1, r1, #3
+	moveq	r1, r6
+	sub	r0, r0, #12
+	b	.L1125
+.L1127:
 	.align	2
-.L1129:
+.L1126:
 	.word	.LANCHOR0
-	.word	.LC103
+	.word	.LC100
 	.word	.LANCHOR3-3072
-	.word	.LANCHOR0+2792
-	.word	.LANCHOR0+2790
-	.word	.LANCHOR3-3076
-	.word	.LC104
+	.word	.LANCHOR0+2788
+	.word	.LC101
+	.word	.LANCHOR0+2784
 	.word	.LANCHOR3
 	.word	.LANCHOR2
-	.word	.LC105
+	.word	.LC102
+	.word	.LANCHOR0+2786
 	.fnend
 	.size	zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk
 	.align	2
 	.global	zftl_get_free_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_get_free_sblk, %function
 zftl_get_free_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	cmp	r1, #5
-	stmfd	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	.pad #8
 	mov	r7, r1
-	ldr	r5, .L1147
-	bne	.L1132
-	movw	r3, #2790
+	ldr	r5, .L1141
+	bne	.L1129
+	movw	r3, #2786
+	ldr	r0, .L1141+4
 	ldrh	r1, [r5, r3]
-	movw	r3, #2792
-	ldrh	r2, [r5, r3]
-	cmp	r1, r2
-	bcc	.L1133
 	movw	r3, #2788
-	ldrh	r3, [r5, r3]
-	cmp	r2, #0
+	ldrh	ip, [r5, r3]
+	cmp	r1, ip
+	bcc	.L1130
+	add	r3, r5, #2784
+	ldrh	r3, [r3]
+	cmp	ip, #0
 	cmpne	r3, r1
 	movhi	r1, #1
 	movls	r1, #0
-	bls	.L1134
-.L1133:
-	ldr	r0, .L1147+4
-	mov	r1, r2, lsr #1
-	b	.L1146
-.L1134:
-	ldr	r0, .L1147+8
-	ldr	r2, .L1147+12
-	b	.L1145
-.L1132:
-	ldr	r3, [r5, #1092]
+	ldrls	r2, .L1141+8
+	subls	r0, r0, #12
+	bls	.L1140
+.L1130:
+	ldr	r2, .L1141+12
+	lsr	r1, ip, #1
+	sub	r0, r0, #8
+.L1140:
+	bl	_list_pop_index_node
+	uxth	r4, r0
+	movw	r3, #65535
+	cmp	r4, r3
+	bne	.L1134
+	movw	r3, #2788
+	mov	r2, r7
+	ldrh	r3, [r5, r3]
+	mov	r1, r4
+	ldr	r0, .L1141+16
+	str	r3, [sp, #4]
+	ldr	r3, .L1141+20
+	ldrh	r3, [r3]
+	str	r3, [sp]
+	ldr	r3, .L1141+24
+	ldr	r3, [r3, #-3088]
+	bl	printk
+	b	.L1134
+.L1129:
+	ldr	r3, [r5, #1096]
 	movw	r8, #590
 	ldrh	r4, [r3, r8]
 	movw	r3, #65535
 	cmp	r1, #1
 	cmpne	r4, r3
-	beq	.L1136
-	ldr	r0, .L1147+16
+	beq	.L1133
 	mov	r1, r4
+	ldr	r0, .L1141+28
 	bl	printk
-	ldr	r3, [r5, #1092]
+	ldr	r3, [r5, #1096]
 	mvn	r2, #0
 	strh	r2, [r3, r8]	@ movhi
-	b	.L1137
-.L1136:
-	movw	r3, #2788
-	movw	r2, #2792
-	ldrh	r3, [r5, r3]
-	mov	r6, r0
-	ldrh	r2, [r5, r2]
-	cmp	r3, r2
-	bcc	.L1138
-	movw	r1, #2790
-	ldrh	r1, [r5, r1]
-	cmp	r2, #0
-	cmpne	r1, r3
-	bls	.L1139
-.L1138:
-	bl	get_ink_scaned_blk
-	movw	r3, #65535
-	cmp	r0, r3
-	movne	r4, r0
-	bne	.L1137
-	cmp	r7, #1
-	ldr	r0, .L1147+4
-	movweq	r3, #2792
-	ldreqh	r6, [r5, r3]
-	moveq	r6, r6, lsr #1
-	mov	r1, r6
-.L1146:
-	ldr	r2, .L1147+20
-	b	.L1145
-.L1139:
-	cmp	r7, #1
-	ldr	r0, .L1147+24
-	moveq	r6, r3, lsr #1
-	ldr	r2, .L1147+28
-	mov	r1, r6
-.L1145:
-	bl	_list_pop_index_node
-	movw	r3, #65535
-	uxth	r4, r0
-	cmp	r4, r3
-	bne	.L1137
-	movw	r3, #2788
-	ldr	r0, .L1147+32
-	ldrh	r3, [r5, r3]
-	mov	r1, r4
-	mov	r2, r7
-	str	r3, [sp]
-	movw	r3, #2792
-	ldrh	r3, [r5, r3]
-	str	r3, [sp, #4]
-	ldr	r3, .L1147+36
-	ldr	r3, [r3, #-3080]
-	bl	printk
-.L1137:
+.L1134:
 	mov	r0, r4
 	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L1148:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L1133:
+	add	r3, r5, #2784
+	movw	r2, #2788
+	ldrh	r3, [r3]
+	mov	r6, r0
+	ldrh	r2, [r5, r2]
+	cmp	r3, r2
+	bcc	.L1135
+	movw	r1, #2786
+	ldrh	r1, [r5, r1]
+	cmp	r2, #0
+	cmpne	r1, r3
+	bls	.L1136
+.L1135:
+	bl	get_ink_scaned_blk
+	movw	r3, #65535
+	mov	r4, r0
+	cmp	r0, r3
+	bne	.L1134
+	cmp	r7, #1
+	ldr	r2, .L1141+12
+	movweq	r3, #2788
+	ldr	r0, .L1141+32
+	ldrheq	r6, [r5, r3]
+	lsreq	r6, r6, #1
+	mov	r1, r6
+	b	.L1140
+.L1136:
+	cmp	r7, #1
+	ldr	r2, .L1141+20
+	lsreq	r6, r3, #1
+	ldr	r0, .L1141+36
+	mov	r1, r6
+	b	.L1140
+.L1142:
 	.align	2
-.L1147:
+.L1141:
 	.word	.LANCHOR0
 	.word	.LANCHOR3-3072
-	.word	.LANCHOR3-3076
-	.word	.LANCHOR0+2790
-	.word	.LC106
-	.word	.LANCHOR0+2792
-	.word	.LANCHOR3-3080
+	.word	.LANCHOR0+2786
 	.word	.LANCHOR0+2788
-	.word	.LC104
+	.word	.LC101
+	.word	.LANCHOR0+2784
 	.word	.LANCHOR3
+	.word	.LC103
+	.word	.LANCHOR3-3080
+	.word	.LANCHOR3-3088
 	.fnend
 	.size	zftl_get_free_sblk, .-zftl_get_free_sblk
 	.align	2
 	.global	zftl_remove_data_node
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_remove_data_node, %function
 zftl_remove_data_node:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1154
+	ldr	r3, .L1148
 	mov	r1, r0
-	ldr	r3, [r3, #1080]
-	add	r3, r3, r0, asl #2
+	ldr	r3, [r3, #1084]
+	add	r3, r3, r0, lsl #2
 	ldrb	r3, [r3, #2]	@ zero_extendqisi2
 	and	r3, r3, #224
 	cmp	r3, #64
-	ldreq	r0, .L1154+4
-	ldreq	r2, .L1154+8
-	beq	.L1153
-.L1150:
+	bne	.L1144
+	ldr	r2, .L1148+4
+	ldr	r0, .L1148+8
+.L1147:
+	b	_list_remove_node
+.L1144:
 	cmp	r3, #96
-	ldreq	r0, .L1154+12
-	ldreq	r2, .L1154+16
-	beq	.L1153
-.L1151:
+	ldreq	r2, .L1148+12
+	ldreq	r0, .L1148+16
+	beq	.L1147
+.L1145:
 	cmp	r3, #160
 	bxne	lr
-	ldr	r0, .L1154+20
-	ldr	r2, .L1154+24
-.L1153:
-	b	_list_remove_node
-.L1155:
+	ldr	r2, .L1148+20
+	ldr	r0, .L1148+24
+	b	.L1147
+.L1149:
 	.align	2
-.L1154:
+.L1148:
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3092
-	.word	.LANCHOR0+2794
+	.word	.LANCHOR0+2790
+	.word	.LANCHOR3-3116
+	.word	.LANCHOR0+2792
 	.word	.LANCHOR3-3104
-	.word	.LANCHOR0+2796
+	.word	.LANCHOR0+2794
 	.word	.LANCHOR3-3100
-	.word	.LANCHOR0+2798
 	.fnend
 	.size	zftl_remove_data_node, .-zftl_remove_data_node
 	.align	2
 	.global	zftl_remove_free_node
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_remove_free_node, %function
 zftl_remove_free_node:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1160
+	ldr	r2, .L1154
 	mov	r1, r0
-	ldr	r3, [r3, #1080]
-	add	r3, r3, r0, asl #2
+	ldr	r3, [r2, #1084]
+	add	r3, r3, r0, lsl #2
 	ldrb	r3, [r3, #2]	@ zero_extendqisi2
 	ands	r3, r3, #24
-	ldreq	r0, .L1160+4
-	ldreq	r2, .L1160+8
-	beq	.L1159
-.L1157:
+	addeq	r2, r2, #2784
+	ldreq	r0, .L1154+4
+	beq	.L1153
 	cmp	r3, #16
-	ldreq	r0, .L1160+12
-	ldreq	r2, .L1160+16
-	ldrne	r0, .L1160+20
-	ldrne	r2, .L1160+24
-.L1159:
+	ldr	r0, .L1154+8
+	ldreq	r2, .L1154+12
+	ldrne	r2, .L1154+16
+	subeq	r0, r0, #12
+	subne	r0, r0, #8
+.L1153:
 	b	_list_remove_node
-.L1161:
+.L1155:
 	.align	2
-.L1160:
+.L1154:
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3080
-	.word	.LANCHOR0+2788
-	.word	.LANCHOR3-3076
-	.word	.LANCHOR0+2790
+	.word	.LANCHOR3-3088
 	.word	.LANCHOR3-3072
-	.word	.LANCHOR0+2792
+	.word	.LANCHOR0+2786
+	.word	.LANCHOR0+2788
 	.fnend
 	.size	zftl_remove_free_node, .-zftl_remove_free_node
 	.align	2
 	.global	zftl_list_update_data_list
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_list_update_data_list, %function
 zftl_list_update_data_list:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1167
+	ldr	r3, .L1161
 	mov	r1, r0
-	ldr	r3, [r3, #1080]
-	add	r3, r3, r0, asl #2
+	ldr	r3, [r3, #1084]
+	add	r3, r3, r0, lsl #2
 	ldrb	r3, [r3, #2]	@ zero_extendqisi2
 	and	r3, r3, #224
 	cmp	r3, #64
-	ldreq	r0, .L1167+4
-	ldreq	r2, .L1167+8
-	beq	.L1166
-.L1163:
+	bne	.L1157
+	ldr	r2, .L1161+4
+	ldr	r0, .L1161+8
+.L1160:
+	b	_list_update_data_list
+.L1157:
 	cmp	r3, #96
-	ldreq	r0, .L1167+12
-	ldreq	r2, .L1167+16
-	beq	.L1166
-.L1164:
+	ldreq	r2, .L1161+12
+	ldreq	r0, .L1161+16
+	beq	.L1160
+.L1158:
 	cmp	r3, #160
 	bxne	lr
-	ldr	r0, .L1167+20
-	ldr	r2, .L1167+24
-.L1166:
-	b	_list_update_data_list
-.L1168:
+	ldr	r2, .L1161+20
+	ldr	r0, .L1161+24
+	b	.L1160
+.L1162:
 	.align	2
-.L1167:
+.L1161:
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3092
-	.word	.LANCHOR0+2794
+	.word	.LANCHOR0+2790
+	.word	.LANCHOR3-3116
+	.word	.LANCHOR0+2792
 	.word	.LANCHOR3-3104
-	.word	.LANCHOR0+2796
+	.word	.LANCHOR0+2794
 	.word	.LANCHOR3-3100
-	.word	.LANCHOR0+2798
 	.fnend
 	.size	zftl_list_update_data_list, .-zftl_list_update_data_list
 	.align	2
 	.global	print_list_info
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	print_list_info, %function
 print_list_info:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, lr}
-	.save {r4, r5, r6, r7, lr}
+	push	{r4, r5, r6, r7, r8, r9, lr}
+	.save {r4, r5, r6, r7, r8, r9, lr}
 	mov	r4, r0
 	ldrh	r2, [r1]
 	.pad #36
 	sub	sp, sp, #36
-	ldr	r1, [r4]
-	ldr	r0, .L1174
+	ldr	r1, [r0]
+	ldr	r0, .L1168
 	bl	printk
 	ldr	r4, [r4]
 	cmp	r4, #0
-	beq	.L1169
-	ldr	r6, .L1174+4
+	beq	.L1163
+	ldr	r6, .L1168+4
 	mov	r5, #0
-	ldr	r7, .L1174+8
-.L1172:
+	ldr	r7, .L1168+8
+	ldr	r8, .L1168+12
+.L1166:
 	ldr	r2, [r6, #1036]
-	ldrh	r0, [r4, #2]
-	rsb	r2, r2, r4
-	ldr	r1, [r6, #1080]
+	ldr	r9, [r6, #1092]
+	ldr	r1, [r6, #1084]
+	sub	r2, r4, r2
 	ldrh	r3, [r4]
-	mov	r2, r2, asr #1
-	str	r0, [sp]
-	ldrh	r0, [r4, #4]
+	asr	r2, r2, #1
 	mul	r2, r7, r2
-	str	r0, [sp, #4]
 	uxth	r2, r2
-	mov	ip, r2, asl #2
-	add	lr, r1, ip
-	ldrb	r0, [lr, #2]	@ zero_extendqisi2
-	mov	r0, r0, lsr #5
-	str	r0, [sp, #8]
-	ldrb	r0, [lr, #2]	@ zero_extendqisi2
-	ubfx	r0, r0, #3, #2
-	str	r0, [sp, #12]
-	ldr	r0, [r1, r2, asl #2]
-	ubfx	r0, r0, #11, #8
-	str	r0, [sp, #16]
-	ldrh	r1, [r1, ip]
-	ldr	r0, [r6, #1088]
-	ubfx	r1, r1, #0, #11
-	str	r1, [sp, #20]
-	mov	r1, r2, asl #1
-	ldrh	r1, [r0, r1]
-	ldr	r0, .L1174+12
-	str	r1, [sp, #24]
+	lsl	lr, r2, #1
+	lsl	r0, r2, #2
+	ldrh	lr, [r9, lr]
+	add	ip, r1, r0
+	str	lr, [sp, #24]
+	ldrh	r0, [r1, r0]
+	ubfx	r0, r0, #0, #11
+	str	r0, [sp, #20]
+	mov	r0, r8
+	ldr	r1, [r1, r2, lsl #2]
+	ubfx	r1, r1, #11, #8
+	str	r1, [sp, #16]
+	ldrb	r1, [ip, #2]	@ zero_extendqisi2
+	ubfx	r1, r1, #3, #2
+	str	r1, [sp, #12]
+	ldrb	r1, [ip, #2]	@ zero_extendqisi2
+	lsr	r1, r1, #5
+	str	r1, [sp, #8]
+	ldrh	r1, [r4, #4]
+	str	r1, [sp, #4]
+	ldrh	r1, [r4, #2]
+	str	r1, [sp]
 	mov	r1, r5
 	bl	printk
-	ldrh	r2, [r4]
+	ldrh	r4, [r4]
 	movw	r3, #65535
-	cmp	r2, r3
-	beq	.L1169
+	cmp	r4, r3
+	beq	.L1163
 	ldr	r3, [r6, #1036]
-	mov	r4, #6
+	mov	r2, #6
 	add	r5, r5, #1
-	mla	r4, r4, r2, r3
-	ldr	r3, .L1174+16
 	uxth	r5, r5
+	mla	r4, r2, r4, r3
+	ldr	r3, .L1168+16
 	ldrh	r3, [r3]
 	cmp	r3, r5
-	bcs	.L1172
-.L1169:
+	bcs	.L1166
+.L1163:
 	add	sp, sp, #36
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, pc}
-.L1175:
+	pop	{r4, r5, r6, r7, r8, r9, pc}
+.L1169:
 	.align	2
-.L1174:
-	.word	.LC107
+.L1168:
+	.word	.LC104
 	.word	.LANCHOR0
 	.word	-1431655765
-	.word	.LC108
-	.word	.LANCHOR3-3068
+	.word	.LC105
+	.word	.LANCHOR3-3076
 	.fnend
 	.size	print_list_info, .-print_list_info
 	.align	2
 	.global	dump_all_list_info
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	dump_all_list_info, %function
 dump_all_list_info:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
-	.save {r4, r5, r6, lr}
-	ldr	r4, .L1178
-	ldr	r5, .L1178+4
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	ldr	r5, .L1172
+	ldr	r4, .L1172+4
+	sub	r6, r5, #3088
+	sub	r7, r5, #3072
+	mov	r0, r6
+	sub	r5, r5, #3104
 	add	r1, r4, #2784
-	sub	r6, r5, #3072
-	add	r1, r1, #4
-	sub	r0, r6, #8
 	bl	print_list_info
 	add	r1, r4, #2784
-	sub	r0, r6, #4
+	sub	r0, r7, #12
+	add	r1, r1, #2
+	bl	print_list_info
+	add	r1, r4, #2784
+	sub	r0, r7, #8
+	add	r1, r1, #4
+	bl	print_list_info
+	add	r1, r4, #2784
+	sub	r0, r5, #12
 	add	r1, r1, #6
 	bl	print_list_info
 	add	r1, r4, #2784
-	mov	r0, r6
+	mov	r0, r5
 	add	r1, r1, #8
-	bl	print_list_info
-	sub	r6, r5, #3088
-	add	r1, r4, #2784
-	sub	r0, r6, #4
-	add	r1, r1, #10
-	bl	print_list_info
-	add	r1, r4, #2784
-	sub	r0, r5, #3104
-	add	r1, r1, #12
 	bl	print_list_info
 	add	r1, r4, #2784
 	sub	r0, r6, #12
-	add	r1, r1, #14
-	ldmfd	sp!, {r4, r5, r6, lr}
+	add	r1, r1, #10
+	pop	{r4, r5, r6, r7, r8, lr}
 	b	print_list_info
-.L1179:
+.L1173:
 	.align	2
-.L1178:
-	.word	.LANCHOR0
+.L1172:
 	.word	.LANCHOR3
+	.word	.LANCHOR0
 	.fnend
 	.size	dump_all_list_info, .-dump_all_list_info
 	.align	2
 	.global	ftl_tmp_into_update
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_tmp_into_update, %function
 ftl_tmp_into_update:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1185
-	ldr	r3, [r3, #2804]
+	ldr	r3, .L1179
+	ldr	r3, [r3, #2800]
 	ldr	r2, [r3, #16]
 	cmp	r2, #2048
-	movhi	r0, r2, lsr #11
 	ldrhi	r1, [r3, #20]
-	subhi	r2, r2, r0, asl #11
+	addhi	r1, r1, r2, lsr #11
+	ubfxhi	r2, r2, #0, #11
 	strhi	r2, [r3, #16]
 	ldr	r2, [r3, #24]
-	addhi	r1, r1, r0
 	strhi	r1, [r3, #20]
 	cmp	r2, #2048
-	movhi	r0, r2, lsr #11
 	ldrhi	r1, [r3, #28]
-	subhi	r2, r2, r0, asl #11
+	addhi	r1, r1, r2, lsr #11
+	ubfxhi	r2, r2, #0, #11
 	strhi	r2, [r3, #24]
 	ldr	r2, [r3, #32]
-	addhi	r1, r1, r0
 	strhi	r1, [r3, #28]
 	cmp	r2, #1024
-	movhi	r0, r2, lsr #10
 	ldrhi	r1, [r3, #36]
-	subhi	r2, r2, r0, asl #10
+	addhi	r1, r1, r2, lsr #10
+	ubfxhi	r2, r2, #0, #10
 	strhi	r2, [r3, #32]
 	ldr	r2, [r3, #40]
-	addhi	r1, r1, r0
 	strhi	r1, [r3, #36]
 	cmp	r2, #1024
-	movhi	r0, r2, lsr #10
 	ldrhi	r1, [r3, #44]
-	subhi	r2, r2, r0, asl #10
+	addhi	r1, r1, r2, lsr #10
+	ubfxhi	r2, r2, #0, #10
 	strhi	r2, [r3, #40]
-	addhi	r1, r1, r0
 	strhi	r1, [r3, #44]
 	bx	lr
-.L1186:
+.L1180:
 	.align	2
-.L1185:
+.L1179:
 	.word	.LANCHOR0
 	.fnend
 	.size	ftl_tmp_into_update, .-ftl_tmp_into_update
 	.global	__aeabi_idiv
 	.align	2
 	.global	ftl_get_blk_list_in_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_get_blk_list_in_sblk, %function
 ftl_get_blk_list_in_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
 	mov	r5, #0
-	ldr	r8, .L1197
+	ldr	r9, .L1189
 	mov	r10, r0
-	ldr	r9, .L1197+4
 	mov	r6, r1
-	ldr	r2, .L1197+8
 	mov	r7, r5
-	ldr	r4, [r8, #1080]
-	add	r4, r4, r0, asl #2
-	ldrb	r3, [r4, #3]	@ zero_extendqisi2
-.L1188:
-	ldrb	r1, [r9, #-3123]	@ zero_extendqisi2
+	ldr	r8, .L1189+4
+	ldr	r3, [r9, #1084]
+	add	r3, r3, r0, lsl #2
+	ldrb	r2, [r3, #3]	@ zero_extendqisi2
+	mov	r3, r8
+.L1182:
+	ldrb	r1, [r8, #-3127]	@ zero_extendqisi2
 	cmp	r7, r1
-	ldr	r1, .L1197+4
-	bge	.L1195
-	mov	r1, r3, asr r7
+	blt	.L1185
+	add	r6, r6, r5, lsl #1
+	mov	r2, r5
+	mvn	r0, #0
+.L1186:
+	ldrb	r1, [r3, #-3127]	@ zero_extendqisi2
+	cmp	r2, r1
+	blt	.L1187
+	mov	r0, r5
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1185:
+	asr	r1, r2, r7
 	tst	r1, #1
-	bne	.L1189
-	ldrb	r4, [r9, #-3130]	@ zero_extendqisi2
+	bne	.L1183
+	ldrb	r4, [r8, #-3136]	@ zero_extendqisi2
 	mov	r0, r7
-	str	r2, [sp, #4]
-	mov	fp, r5, asl #1
-	str	r3, [sp]
+	stm	sp, {r2, r3}
+	lsl	fp, r5, #1
 	add	r5, r5, #1
 	mov	r1, r4
 	bl	__aeabi_idiv
-	smulbb	r4, r10, r4
-	ldrb	r1, [r8, #1189]	@ zero_extendqisi2
+	ldr	ip, .L1189+8
+	smulbb	r4, r4, r10
+	ldrb	r1, [r9, #1153]	@ zero_extendqisi2
+	ldm	sp, {r2, r3}
+	ldrh	ip, [ip]
 	rsb	r1, r1, #24
-	ldr	r2, [sp, #4]
-	ldr	r3, [sp]
-	ldrh	ip, [r2]
-	rsb	r1, ip, r1
-	add	r0, r4, r0, asl r1
-	uxth	r4, r0
-	strh	r4, [r6, fp]	@ movhi
-	ldrb	r1, [r9, #-3130]	@ zero_extendqisi2
+	sub	r1, r1, ip
+	add	r0, r4, r0, lsl r1
+	uxth	r0, r0
+	strh	r0, [r6, fp]	@ movhi
+	ldrb	r1, [r8, #-3136]	@ zero_extendqisi2
 	cmp	r1, #1
 	subhi	r1, r1, #1
 	andhi	r1, r1, r7
-	addhi	r4, r4, r1
-	strhih	r4, [r6, fp]	@ movhi
-.L1189:
+	addhi	r0, r0, r1
+	strhhi	r0, [r6, fp]	@ movhi
+.L1183:
 	add	r7, r7, #1
-	b	.L1188
-.L1195:
-	add	r6, r6, r5, asl #1
-	mov	r0, r5
-	mvn	r2, #0
-.L1192:
-	ldrb	r3, [r1, #-3123]	@ zero_extendqisi2
-	cmp	r5, r3
-	strlth	r2, [r6], #2	@ movhi
-	addlt	r5, r5, #1
-	blt	.L1192
-.L1196:
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1198:
+	b	.L1182
+.L1187:
+	strh	r0, [r6], #2	@ movhi
+	add	r2, r2, #1
+	b	.L1186
+.L1190:
 	.align	2
-.L1197:
+.L1189:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3132
+	.word	.LANCHOR3-3138
 	.fnend
 	.size	ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk
 	.align	2
 	.global	ftl_erase_phy_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_erase_phy_blk, %function
 ftl_erase_phy_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	.save {r3, r4, r5, r6, r7, lr}
+	ldr	r2, .L1197
+	ldr	r3, .L1197+4
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
 	mov	r6, r1
-	ldr	r3, .L1205
-	ldrb	r4, [r3, #1189]	@ zero_extendqisi2
-	ldr	r3, .L1205+4
-	rsb	r4, r4, #24
-	sub	r2, r3, #3120
-	sub	r7, r3, #3056
-	ldrh	r2, [r2, #-12]
-	rsb	r4, r2, r4
-	mvn	r2, #0
-	mov	r5, r0, asr r4
-	bic	r4, r0, r2, asl r4
-	ldrb	r2, [r3, #-3122]	@ zero_extendqisi2
-	uxtb	r5, r5
+	sub	r1, r2, #3136
+	sub	r7, r2, #3072
+	ldrb	r3, [r3, #1153]	@ zero_extendqisi2
+	ldrh	r4, [r1, #-2]
+	rsb	r3, r3, #24
+	sub	r3, r3, r4
+	mvn	r4, #0
+	asr	r5, r0, r3
+	bic	r4, r0, r4, lsl r3
+	ldrb	r3, [r2, #-3126]	@ zero_extendqisi2
 	sxth	r4, r4
-	cmp	r2, #0
-	beq	.L1200
-	ldrb	r3, [r3, #-3121]	@ zero_extendqisi2
+	uxtb	r5, r5
 	cmp	r3, #0
-	bne	.L1200
-	ldrh	r2, [r7, #-10]
-	clz	r1, r1
+	beq	.L1192
+	ldrb	r3, [r2, #-3125]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L1192
+	ldrh	r2, [r7, #-2]
+	clz	r1, r6
+	lsr	r1, r1, #5
 	mov	r0, r5
-	mov	r1, r1, lsr #5
-	mul	r2, r2, r4
+	mul	r2, r4, r2
 	bl	flash_erase_block_en
-.L1200:
-	ldrh	r2, [r7, #-10]
-	mov	r0, r5
+.L1192:
+	ldrh	r2, [r7, #-2]
 	uxtb	r1, r6
-	mul	r2, r2, r4
-	ldmfd	sp!, {r3, r4, r5, r6, r7, lr}
+	mov	r0, r5
+	mul	r2, r4, r2
+	pop	{r4, r5, r6, r7, r8, lr}
 	b	flash_erase_block_en
-.L1206:
+.L1198:
 	.align	2
-.L1205:
-	.word	.LANCHOR0
+.L1197:
 	.word	.LANCHOR3
+	.word	.LANCHOR0
 	.fnend
 	.size	ftl_erase_phy_blk, .-ftl_erase_phy_blk
 	.align	2
 	.global	ftl_erase_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_erase_sblk, %function
 ftl_erase_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 80
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r10, r0, asl #2
-	ldr	r4, .L1235
-	.pad #84
-	sub	sp, sp, #84
-	ldr	r9, .L1235+4
+	lsl	fp, r0, #2
+	ldr	r4, .L1224
 	mov	r8, r0
 	mov	r7, r1
 	mov	r6, #0
-	ldr	r3, [r4, #1080]
-	add	r3, r3, r10
+	ldr	r9, .L1224+4
+	.pad #84
+	sub	sp, sp, #84
+	ldr	r3, [r4, #1084]
+	add	r3, r3, fp
 	ldrb	r3, [r3, #3]	@ zero_extendqisi2
-	str	r3, [sp, #12]
-.L1208:
-	ldrb	r3, [r9, #-3064]	@ zero_extendqisi2
+	str	r3, [sp, #4]
+.L1200:
+	ldr	r3, .L1224+4
+	ldrb	r3, [r3, #-3072]	@ zero_extendqisi2
 	cmp	r6, r3
-	bge	.L1219
-	ldrb	r2, [r9, #-3130]	@ zero_extendqisi2
+	bge	.L1211
+	ldr	r3, .L1224+4
 	mov	r5, #0
-	sub	fp, r2, #1
+	ldrb	r2, [r3, #-3136]	@ zero_extendqisi2
+	sub	r10, r2, #1
 	mul	r3, r2, r8
 	mul	ip, r2, r6
-	str	r3, [sp, #4]
-	ldr	r3, .L1235+8
-	ldrh	r3, [r3]
 	str	r3, [sp, #8]
+	ldr	r3, .L1224+8
+	ldrh	r3, [r3]
+	str	r3, [sp, #12]
 	mov	r3, r5
-.L1220:
-	cmp	r3, r2
-	bge	.L1234
-	ldr	lr, [sp, #12]
-	add	r1, r3, ip
-	mov	r1, lr, asr r1
+	b	.L1212
+.L1202:
+	ldr	lr, [sp, #4]
+	add	r1, ip, r3
+	asr	r1, lr, r1
 	tst	r1, #1
-	bne	.L1209
-	add	r1, sp, #80
-	ldr	r0, [sp, #4]
-	add	lr, r1, r5, asl #2
-	and	r1, r3, fp
-	add	r1, r0, r1
+	bne	.L1201
 	ldr	r0, [sp, #8]
+	add	r1, sp, #80
+	add	lr, r1, r5, lsl #2
+	and	r1, r3, r10
 	add	r5, r5, #1
+	add	r1, r1, r0
+	ldr	r0, [sp, #12]
 	mul	r1, r0, r1
 	str	r1, [lr, #-64]
-.L1209:
+.L1201:
 	add	r3, r3, #1
-	b	.L1220
-.L1234:
+.L1212:
+	cmp	r3, r2
+	blt	.L1202
 	cmp	r2, #4
-	bne	.L1232
-	uxtb	r3, r6
-	uxtb	ip, r7
-	mov	fp, #0
-.L1211:
-	cmp	fp, r5
-	beq	.L1214
-	mov	r0, r3
+	bne	.L1203
+	uxtb	r3, r7
+	mov	r10, #0
 	str	r3, [sp, #8]
-	add	r3, sp, #16
-	mov	r1, ip
-	str	ip, [sp, #4]
-	ldr	r2, [r3, fp, asl #2]
-	add	fp, fp, #1
-	bl	flash_erase_block_en
-	ldr	ip, [sp, #4]
-	ldr	r3, [sp, #8]
-	b	.L1211
-.L1232:
-	cmp	r5, #2
-	bne	.L1215
-	ldr	r3, .L1235+4
-	uxtb	r5, r6
-	ldrb	r3, [r3, #-3122]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L1216
-	ldrb	r3, [r9, #-3121]	@ zero_extendqisi2
-	cmp	r3, #0
-	bne	.L1216
-	clz	r1, r7
-	mov	r0, r5
-	ldr	r2, [sp, #16]
-	mov	r1, r1, lsr #5
-	ldr	r3, [sp, #20]
-	bl	flash_erase_duplane_block
-.L1216:
-	mov	r0, r5
-	uxtb	r1, r7
-	ldr	r2, [sp, #16]
-	ldr	r3, [sp, #20]
-	bl	flash_erase_duplane_block
-	b	.L1214
-.L1215:
-	cmp	r5, #1
-	bne	.L1214
-	ldr	r3, .L1235+4
-	uxtb	r5, r6
-	ldrb	r3, [r3, #-3122]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L1218
-	ldrb	r3, [r9, #-3121]	@ zero_extendqisi2
-	cmp	r3, #0
-	bne	.L1218
-	clz	r1, r7
-	mov	r0, r5
-	ldr	r2, [sp, #16]
-	mov	r1, r1, lsr #5
-	bl	flash_erase_block_en
-.L1218:
-	mov	r0, r5
-	uxtb	r1, r7
-	ldr	r2, [sp, #16]
-	bl	flash_erase_block_en
-.L1214:
+	uxtb	r3, r6
+.L1204:
+	cmp	r10, r5
+	bne	.L1205
+.L1206:
 	add	r6, r6, #1
-	b	.L1208
-.L1219:
+	b	.L1200
+.L1205:
+	add	r2, sp, #16
+	mov	r0, r3
+	ldr	r2, [r2, r10, lsl #2]
+	add	r10, r10, #1
+	ldr	r1, [sp, #8]
+	str	r3, [sp, #12]
+	bl	flash_erase_block_en
+	ldr	r3, [sp, #12]
+	b	.L1204
+.L1203:
+	cmp	r5, #2
+	bne	.L1207
+	ldrb	r3, [r9, #-3126]	@ zero_extendqisi2
+	uxtb	r5, r6
+	cmp	r3, #0
+	beq	.L1208
+	ldrb	r3, [r9, #-3125]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L1208
+	clz	r1, r7
+	ldr	r3, [sp, #20]
+	ldr	r2, [sp, #16]
+	lsr	r1, r1, #5
+	mov	r0, r5
+	bl	flash_erase_duplane_block
+.L1208:
+	ldr	r3, [sp, #20]
+	uxtb	r1, r7
+	ldr	r2, [sp, #16]
+	mov	r0, r5
+	bl	flash_erase_duplane_block
+	b	.L1206
+.L1207:
+	cmp	r5, #1
+	bne	.L1206
+	ldrb	r3, [r9, #-3126]	@ zero_extendqisi2
+	uxtb	r5, r6
+	cmp	r3, #0
+	beq	.L1210
+	ldrb	r3, [r9, #-3125]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L1210
+	clz	r1, r7
+	ldr	r2, [sp, #16]
+	lsr	r1, r1, #5
+	mov	r0, r5
+	bl	flash_erase_block_en
+.L1210:
+	ldr	r2, [sp, #16]
+	uxtb	r1, r7
+	mov	r0, r5
+	bl	flash_erase_block_en
+	b	.L1206
+.L1211:
 	cmp	r7, #0
-	ldr	r1, [r4, #1080]
-	bne	.L1221
-	ldrh	r3, [r1, r10]
-	ubfx	r2, r3, #0, #11
-	add	r2, r2, #1
-	bfi	r3, r2, #0, #11
-	strh	r3, [r1, r10]	@ movhi
-	ldr	r3, [r4, #2804]
+	bne	.L1213
+	ldr	r2, [r4, #1084]
+	ldrh	r3, [r2, fp]
+	add	r1, r3, #1
+	bfi	r3, r1, #0, #11
+	strh	r3, [r2, fp]	@ movhi
+	ldr	r3, [r4, #2800]
 	ldr	r2, [r3, #84]
 	ldrh	r0, [r3, #96]
 	add	r2, r2, #1
 	str	r2, [r3, #84]
-	ldr	r2, [r4, #1080]
-	ldrh	r2, [r2, r10]
+	ldr	r2, [r4, #1084]
+	ldrh	r2, [r2, fp]
 	ubfx	r2, r2, #0, #11
 	uxth	r1, r2
 	cmp	r0, r1
-	strlth	r2, [r3, #96]	@ movhi
-	b	.L1223
-.L1221:
-	ldr	r3, [r1, r8, asl #2]
+	strhlt	r2, [r3, #96]	@ movhi
+.L1215:
+	mov	r0, #0
+	add	sp, sp, #84
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1213:
+	ldr	r1, [r4, #1084]
+	ldr	r3, [r1, r8, lsl #2]
 	ubfx	r2, r3, #11, #8
 	add	r2, r2, #1
 	bfi	r3, r2, #11, #8
-	str	r3, [r1, r8, asl #2]
-	ldr	r3, [r4, #2804]
+	str	r3, [r1, r8, lsl #2]
+	ldr	r3, [r4, #2800]
 	ldr	r2, [r3, #80]
 	ldrh	r1, [r3, #98]
 	add	r2, r2, #1
 	str	r2, [r3, #80]
-	ldr	r2, [r4, #1080]
-	ldr	r2, [r2, r8, asl #2]
+	ldr	r2, [r4, #1084]
+	ldr	r2, [r2, r8, lsl #2]
 	ubfx	r2, r2, #11, #8
 	cmp	r1, r2
-	strcch	r2, [r3, #98]	@ movhi
-.L1223:
-	mov	r0, #0
-	add	sp, sp, #84
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1236:
+	strhcc	r2, [r3, #98]	@ movhi
+	b	.L1215
+.L1225:
 	.align	2
-.L1235:
+.L1224:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3066
+	.word	.LANCHOR3-3074
 	.fnend
 	.size	ftl_erase_sblk, .-ftl_erase_sblk
 	.align	2
 	.global	ftl_alloc_sys_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_alloc_sys_blk, %function
 ftl_alloc_sys_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L1248
-	stmfd	sp!, {r4, lr}
+	ldr	r3, .L1236
+	push	{r4, lr}
 	.save {r4, lr}
-	ldr	r2, [r3, #2804]
 	mov	r4, r3
+	ldr	r2, [r3, #2800]
 	ldrh	r1, [r2, #136]
 	cmp	r1, #63
 	movhi	r3, #0
-	strhih	r3, [r2, #136]	@ movhi
+	strhhi	r3, [r2, #136]	@ movhi
 	ldrh	r3, [r2, #112]
 	cmp	r3, #0
-	bne	.L1239
-	ldr	r1, .L1248+4
+	bne	.L1228
 	movw	r2, #1359
-	ldr	r0, .L1248+8
+	ldr	r1, .L1236+4
+	ldr	r0, .L1236+8
 	bl	printk
 	bl	dump_stack
-.L1239:
-	ldr	r3, [r4, #2804]
+.L1228:
+	ldr	r3, [r4, #2800]
 	movw	lr, #65535
 	mov	ip, #0
-.L1243:
+.L1232:
 	ldrh	r2, [r3, #136]
-	add	r1, r2, #79
-	add	r1, r3, r1, asl #1
-.L1240:
+	add	r1, r3, r2, lsl #1
+	add	r1, r1, #158
+.L1229:
 	cmp	r2, #63
-	bgt	.L1247
+	strhgt	ip, [r3, #136]	@ movhi
+	bgt	.L1232
+.L1231:
 	ldrh	r0, [r1, #2]!
 	cmp	r0, lr
-	bne	.L1245
-	add	r2, r2, #1
-	b	.L1240
-.L1247:
-	strh	ip, [r3, #136]	@ movhi
-	b	.L1243
-.L1245:
-	add	r1, r3, r2, asl #1
+	addeq	r2, r2, #1
+	beq	.L1229
+.L1234:
+	add	r1, r3, r2, lsl #1
 	mvn	ip, #0
 	strh	ip, [r1, #160]	@ movhi
 	strh	r2, [r3, #136]	@ movhi
 	ldrh	r2, [r3, #112]
 	add	r2, r2, ip
 	strh	r2, [r3, #112]	@ movhi
-	ldmfd	sp!, {r4, pc}
-.L1249:
+	pop	{r4, pc}
+.L1237:
 	.align	2
-.L1248:
+.L1236:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+1640
+	.word	.LANCHOR1+1479
 	.word	.LC0
 	.fnend
 	.size	ftl_alloc_sys_blk, .-ftl_alloc_sys_blk
 	.align	2
 	.global	ftl_free_sys_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_free_sys_blk, %function
 ftl_free_sys_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
+	ldr	r3, .L1247
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	mov	r5, r0
-	ldr	r3, .L1260
-	ldr	r2, [r3, #2804]
 	mov	r4, r3
+	ldr	r2, [r3, #2800]
 	ldrh	r1, [r2, #138]
 	cmp	r1, #63
 	movhi	r3, #0
-	strhih	r3, [r2, #138]	@ movhi
+	strhhi	r3, [r2, #138]	@ movhi
 	ldrh	r3, [r2, #112]
 	cmp	r3, #63
-	bls	.L1252
-	ldr	r1, .L1260+4
+	bls	.L1240
 	movw	r2, #1386
-	ldr	r0, .L1260+8
+	ldr	r1, .L1247+4
+	ldr	r0, .L1247+8
 	bl	printk
 	bl	dump_stack
-.L1252:
-	ldr	r3, [r4, #2804]
+.L1240:
+	ldr	r3, [r4, #2800]
 	movw	ip, #65535
 	mov	r0, #0
-.L1256:
+.L1244:
 	ldrh	r2, [r3, #138]
-	add	r1, r2, #79
-	add	r1, r3, r1, asl #1
-.L1253:
+	add	r1, r3, r2, lsl #1
+	add	r1, r1, #158
+.L1241:
 	cmp	r2, #63
-	bgt	.L1259
+	strhgt	r0, [r3, #138]	@ movhi
+	bgt	.L1244
+.L1243:
 	ldrh	lr, [r1, #2]!
 	cmp	lr, ip
-	bne	.L1254
-	add	r1, r3, r2, asl #1
+	bne	.L1242
+	add	r1, r3, r2, lsl #1
 	strh	r5, [r1, #160]	@ movhi
 	strh	r2, [r3, #138]	@ movhi
 	ldrh	r2, [r3, #112]
 	add	r2, r2, #1
 	strh	r2, [r3, #112]	@ movhi
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1254:
+	pop	{r4, r5, r6, pc}
+.L1242:
 	add	r2, r2, #1
-	b	.L1253
-.L1259:
-	strh	r0, [r3, #138]	@ movhi
-	b	.L1256
-.L1261:
+	b	.L1241
+.L1248:
 	.align	2
-.L1260:
+.L1247:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+1660
+	.word	.LANCHOR1+1497
 	.word	.LC0
 	.fnend
 	.size	ftl_free_sys_blk, .-ftl_free_sys_blk
 	.align	2
 	.global	ftl_info_data_recovery
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_info_data_recovery, %function
 ftl_info_data_recovery:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	push	{r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	movw	r3, #65535
 	ldrh	r6, [r0]
 	cmp	r6, r3
-	ldmeqfd	sp!, {r4, r5, r6, r7, r8, pc}
-	ldr	r4, .L1272
-	mov	r8, r6, asl #2
-	ldr	r5, [r4, #1080]
+	popeq	{r4, r5, r6, r7, r8, pc}
+	ldr	r4, .L1259
+	lsl	r8, r6, #2
+	ldr	r5, [r4, #1084]
 	add	r7, r5, r8
 	ldrb	r3, [r7, #2]	@ zero_extendqisi2
 	tst	r3, #224
-	ldmnefd	sp!, {r4, r5, r6, r7, r8, pc}
+	popne	{r4, r5, r6, r7, r8, pc}
 	ldrb	r2, [r0, #4]	@ zero_extendqisi2
 	mov	r0, r6
 	bfi	r3, r2, #5, #3
 	strb	r3, [r7, #2]
 	bl	zftl_remove_free_node
 	ldrb	r3, [r7, #2]	@ zero_extendqisi2
-	ldr	r2, [r4, #2804]
+	ldr	r2, [r4, #2800]
 	tst	r3, #8
-	ldrneh	r3, [r2, #116]
+	ldrhne	r3, [r2, #116]
 	subne	r3, r3, #1
-	strneh	r3, [r2, #116]	@ movhi
-	bne	.L1267
+	strhne	r3, [r2, #116]	@ movhi
+	bne	.L1254
 	tst	r3, #24
-	ldreqh	r3, [r2, #114]
-	ldrneh	r3, [r2, #118]
+	ldrheq	r3, [r2, #114]
+	ldrhne	r3, [r2, #118]
 	subeq	r3, r3, #1
 	subne	r3, r3, #1
-	streqh	r3, [r2, #114]	@ movhi
-	strneh	r3, [r2, #118]	@ movhi
-.L1267:
+	strheq	r3, [r2, #114]	@ movhi
+	strhne	r3, [r2, #118]	@ movhi
+.L1254:
 	ldrb	r3, [r7, #2]	@ zero_extendqisi2
 	and	r3, r3, #224
 	cmp	r3, #160
-	bne	.L1269
-	ldr	r3, [r5, r6, asl #2]
+	bne	.L1256
+	ldr	r3, [r5, r6, lsl #2]
 	ubfx	r2, r3, #11, #8
 	add	r2, r2, #1
 	bfi	r3, r2, #11, #8
-	str	r3, [r5, r6, asl #2]
-	ldr	r2, [r4, #2804]
+	str	r3, [r5, r6, lsl #2]
+	ldr	r2, [r4, #2800]
 	ldrh	r3, [r2, #120]
 	sub	r3, r3, #1
 	strh	r3, [r2, #120]	@ movhi
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L1269:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L1256:
 	ldrh	r2, [r5, r8]
 	cmp	r3, #64
-	ubfx	r1, r2, #0, #11
-	add	r1, r1, #1
+	add	r1, r2, #1
 	bfi	r2, r1, #0, #11
 	strh	r2, [r5, r8]	@ movhi
-	bne	.L1270
-	ldr	r2, [r4, #2804]
+	bne	.L1257
+	ldr	r2, [r4, #2800]
 	ldrh	r3, [r2, #122]
 	sub	r3, r3, #1
 	strh	r3, [r2, #122]	@ movhi
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L1270:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L1257:
 	cmp	r3, #96
-	ldreq	r2, [r4, #2804]
-	ldreqh	r3, [r2, #124]
+	ldreq	r2, [r4, #2800]
+	ldrheq	r3, [r2, #124]
 	subeq	r3, r3, #1
-	streqh	r3, [r2, #124]	@ movhi
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L1273:
+	strheq	r3, [r2, #124]	@ movhi
+	pop	{r4, r5, r6, r7, r8, pc}
+.L1260:
 	.align	2
-.L1272:
+.L1259:
 	.word	.LANCHOR0
 	.fnend
 	.size	ftl_info_data_recovery, .-ftl_info_data_recovery
 	.align	2
 	.global	ftl_get_ppa_from_index
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_get_ppa_from_index, %function
 ftl_get_ppa_from_index:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	.save {r3, r4, r5, r6, r7, lr}
+	ldr	r3, .L1266
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
 	mov	r4, r0
-	ldr	r3, .L1279
-	ldr	r2, .L1279+4
-	ldr	r5, [r3, #1092]
-	sub	r3, r2, #3088
-	ldrb	r2, [r2, #-3123]	@ zero_extendqisi2
-	ldrh	r3, [r3, #-8]
-	mul	r1, r2, r3
+	ldr	r5, [r3, #1096]
+	ldr	r3, .L1266+4
+	sub	r2, r3, #3088
+	ldrb	r3, [r3, #-3127]	@ zero_extendqisi2
+	ldrh	r2, [r2, #-8]
+	mul	r1, r3, r2
 	cmp	r0, r1
+	smulbbge	r3, r3, r2
 	addlt	r5, r5, #16
 	addge	r5, r5, #48
-	smulbbge	r3, r2, r3
 	ldrb	r6, [r5, #9]	@ zero_extendqisi2
-	rsbge	r4, r3, r0
-	mov	r1, r6
+	subge	r4, r0, r3
 	uxthge	r4, r4
+	mov	r1, r6
 	mov	r0, r4
 	bl	__aeabi_idiv
-	movw	r3, #65535
 	smulbb	r6, r0, r6
+	movw	r3, #65535
 	mov	r7, r0
-	rsb	r4, r6, r4
+	sub	r4, r4, r6
 	uxth	r4, r4
-	add	r5, r5, r4, asl #1
-	ldrh	r4, [r5, #16]
+	add	r4, r5, r4, lsl #1
+	ldrh	r4, [r4, #16]
 	cmp	r4, r3
-	bne	.L1277
-	ldr	r1, .L1279+8
+	bne	.L1264
 	movw	r2, #1945
-	ldr	r0, .L1279+12
+	ldr	r1, .L1266+8
+	ldr	r0, .L1266+12
 	bl	printk
 	bl	dump_stack
-.L1277:
-	ldr	r3, .L1279+16
-	ldrh	r0, [r3, #-10]
-	mla	r0, r0, r4, r7
-	ldmfd	sp!, {r3, r4, r5, r6, r7, pc}
-.L1280:
+.L1264:
+	ldr	r3, .L1266+16
+	ldrh	r0, [r3, #-2]
+	mla	r0, r4, r0, r7
+	pop	{r4, r5, r6, r7, r8, pc}
+.L1267:
 	.align	2
-.L1279:
+.L1266:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR1+1680
+	.word	.LANCHOR1+1514
 	.word	.LC0
-	.word	.LANCHOR3-3056
+	.word	.LANCHOR3-3072
 	.fnend
 	.size	ftl_get_ppa_from_index, .-ftl_get_ppa_from_index
 	.align	2
 	.global	lpa_hash_get_ppa
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	lpa_hash_get_ppa, %function
 lpa_hash_get_ppa:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
+	ldr	r2, .L1276
 	uxtb	r3, r0
-	ldr	r2, .L1287
-	ldr	r1, .L1287+4
-	mov	r3, r3, asl #1
+	lsl	r3, r3, #1
+	sub	r1, r2, #3056
+	ldr	ip, [r2, #-2552]
+	sub	r1, r1, #14
+	ldrh	r3, [r1, r3]
+	ldr	r1, [r2, #-2556]
+	movw	r2, #65535
+	cmp	r3, r2
+	bne	.L1275
+	mvn	r0, #0
+	bx	lr
+.L1270:
+	lsl	r3, r3, #1
+	ldrh	r3, [ip, r3]
+	cmp	r3, r2
+	bne	.L1271
+	mvn	r0, #0
+	ldr	pc, [sp], #4
+.L1275:
 	str	lr, [sp, #-4]!
 	.save {lr}
-	ldrh	r3, [r1, r3]
-	ldr	ip, [r2, #-2544]
-	ldr	r1, [r2, #-2548]
-	movw	r2, #65535
-.L1282:
-	cmp	r3, r2
-	beq	.L1286
-	ldr	lr, [r1, r3, asl #2]
-	cmp	lr, r0
-	bne	.L1283
+.L1271:
+	ldr	lr, [r1, r3, lsl #2]
+	cmp	r0, lr
+	bne	.L1270
 	mov	r0, r3
 	ldr	lr, [sp], #4
 	b	ftl_get_ppa_from_index
-.L1283:
-	mov	r3, r3, asl #1
-	ldrh	r3, [ip, r3]
-	b	.L1282
-.L1286:
-	mvn	r0, #0
-	ldr	pc, [sp], #4
-.L1288:
+.L1277:
 	.align	2
-.L1287:
+.L1276:
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3060
 	.fnend
 	.size	lpa_hash_get_ppa, .-lpa_hash_get_ppa
 	.align	2
 	.global	ftl_get_new_free_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_get_new_free_page, %function
 ftl_get_new_free_page:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
 	movw	r3, #65535
 	ldrh	r2, [r0]
 	mov	r4, r0
 	cmp	r2, r3
-	bne	.L1290
-	ldr	r1, .L1299
+	bne	.L1279
 	movw	r2, #2088
-	ldr	r0, .L1299+4
+	ldr	r1, .L1287
+	ldr	r0, .L1287+4
 	bl	printk
 	bl	dump_stack
-.L1290:
-	ldr	r3, .L1299+8
+.L1279:
+	ldr	r3, .L1287+8
 	ldrh	r2, [r4, #2]
 	ldrh	r3, [r3, #-8]
 	cmp	r2, r3
-	bne	.L1291
-	ldr	r1, .L1299
+	bne	.L1280
 	movw	r2, #2089
-	ldr	r0, .L1299+4
+	ldr	r1, .L1287
+	ldr	r0, .L1287+4
 	bl	printk
 	bl	dump_stack
-.L1291:
+.L1280:
 	ldrh	r3, [r4, #6]
 	cmp	r3, #0
-	bne	.L1292
-	ldr	r1, .L1299
+	bne	.L1281
 	movw	r2, #2090
-	ldr	r0, .L1299+4
+	ldr	r1, .L1287
+	ldr	r0, .L1287+4
 	bl	printk
 	bl	dump_stack
-.L1292:
+.L1281:
 	ldrb	r3, [r4, #5]	@ zero_extendqisi2
 	movw	r2, #65535
-	ldr	r1, .L1299+12
-	mov	lr, #0
-	add	r3, r4, r3, asl #1
-	ldrb	r0, [r1, #-3123]	@ zero_extendqisi2
-	ldrh	ip, [r3, #16]
-.L1293:
-	cmp	ip, r2
+	mov	r1, #0
+	add	r3, r4, r3, lsl #1
+	ldrh	r0, [r3, #16]
+	ldr	r3, .L1287+12
+	ldrb	ip, [r3, #-3127]	@ zero_extendqisi2
+.L1282:
+	cmp	r0, r2
 	ldrb	r3, [r4, #5]	@ zero_extendqisi2
-	bne	.L1298
+	beq	.L1284
+	ldr	r1, .L1287+16
 	add	r3, r3, #1
-	uxtb	r3, r3
-	strb	r3, [r4, #5]
-	cmp	r3, r0
-	streqb	lr, [r4, #5]
-	ldreqh	r3, [r4, #2]
-	addeq	r3, r3, #1
-	streqh	r3, [r4, #2]	@ movhi
-	ldrb	r3, [r4, #5]	@ zero_extendqisi2
-	add	r3, r4, r3, asl #1
-	ldrh	ip, [r3, #16]
-	b	.L1293
-.L1298:
-	ldr	r0, .L1299+16
-	add	r3, r3, #1
-	ldrb	r1, [r1, #-3123]	@ zero_extendqisi2
 	uxtb	r3, r3
 	ldrh	r2, [r4, #2]
-	ldrh	r0, [r0, #-10]
-	cmp	r1, r3
+	ldrh	r1, [r1, #-2]
+	cmp	ip, r3
 	strb	r3, [r4, #5]
+	addeq	r3, r2, #1
+	strheq	r3, [r4, #2]	@ movhi
 	moveq	r3, #0
-	streqb	r3, [r4, #5]
-	mul	r0, r0, ip
-	ldrh	ip, [r4, #6]
-	sub	ip, ip, #1
-	strh	ip, [r4, #6]	@ movhi
-	ldrh	ip, [r4, #10]
+	strbeq	r3, [r4, #5]
+	mul	r0, r0, r1
+	ldrh	r1, [r4, #6]
+	sub	r1, r1, #1
+	strh	r1, [r4, #6]	@ movhi
 	orr	r0, r0, r2
-	addeq	r2, r2, #1
-	streqh	r2, [r4, #2]	@ movhi
-	add	ip, ip, #1
-	strh	ip, [r4, #10]	@ movhi
-	ldmfd	sp!, {r4, pc}
-.L1300:
+	ldrh	r1, [r4, #10]
+	add	r1, r1, #1
+	strh	r1, [r4, #10]	@ movhi
+	pop	{r4, pc}
+.L1284:
+	add	r3, r3, #1
+	uxtb	r3, r3
+	cmp	r3, ip
+	strb	r3, [r4, #5]
+	ldrheq	r3, [r4, #2]
+	strbeq	r1, [r4, #5]
+	addeq	r3, r3, #1
+	strheq	r3, [r4, #2]	@ movhi
+	ldrb	r3, [r4, #5]	@ zero_extendqisi2
+	add	r3, r4, r3, lsl #1
+	ldrh	r0, [r3, #16]
+	b	.L1282
+.L1288:
 	.align	2
-.L1299:
-	.word	.LANCHOR1+1704
+.L1287:
+	.word	.LANCHOR1+1537
 	.word	.LC0
 	.word	.LANCHOR3-3088
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3056
+	.word	.LANCHOR3-3072
 	.fnend
 	.size	ftl_get_new_free_page, .-ftl_get_new_free_page
 	.align	2
 	.global	ftl_ext_alloc_new_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_ext_alloc_new_blk, %function
 ftl_ext_alloc_new_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	bl	ftl_alloc_sys_blk
-	movw	r2, #65533
 	sub	r3, r0, #1
-	mov	r4, r0
+	movw	r2, #65533
 	uxth	r3, r3
+	mov	r4, r0
 	cmp	r3, r2
-	bls	.L1302
-	ldr	r1, .L1304
+	bls	.L1290
 	movw	r2, #2125
-	ldr	r0, .L1304+4
+	ldr	r1, .L1292
+	ldr	r0, .L1292+4
 	bl	printk
 	bl	dump_stack
-.L1302:
-	ldr	r5, .L1304+8
+.L1290:
+	ldr	r5, .L1292+8
 	mov	r1, #0
 	mov	r0, r4
 	bl	ftl_erase_phy_blk
-	ldr	r3, [r5, #2804]
+	ldr	r3, [r5, #2800]
 	ldrh	r0, [r3, #130]
 	bl	ftl_free_sys_blk
-	ldr	r3, [r5, #2804]
+	ldr	r3, [r5, #2800]
 	mov	r0, #0
 	strh	r4, [r3, #130]	@ movhi
 	strh	r0, [r3, #140]	@ movhi
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1305:
+	pop	{r4, r5, r6, pc}
+.L1293:
 	.align	2
-.L1304:
-	.word	.LANCHOR1+1728
+.L1292:
+	.word	.LANCHOR1+1559
 	.word	.LC0
 	.word	.LANCHOR0
 	.fnend
 	.size	ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk
 	.align	2
 	.global	ftl_total_vpn_update
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_total_vpn_update, %function
 ftl_total_vpn_update:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r2, .L1319
-	ldrh	r3, [r2, #-12]
+	ldr	r2, .L1308
+	ldrh	r3, [r2, #-4]
 	cmp	r3, #4
 	cmpls	r0, #0
-	addeq	r3, r3, #1
-	streqh	r3, [r2, #-12]	@ movhi
-	bxeq	lr
-	ldr	r3, .L1319+4
-	movw	ip, #1076
-	stmfd	sp!, {r4, r5, r6, lr}
-	.save {r4, r5, r6, lr}
+	bne	.L1295
+	add	r3, r3, #1
+	strh	r3, [r2, #-4]	@ movhi
+	bx	lr
+.L1295:
+	ldr	r3, .L1308+4
 	mov	r0, #0
-	ldrh	lr, [r3, ip]
+	movw	ip, #1080
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	strh	r0, [r2, #-4]	@ movhi
 	movw	r6, #65535
-	strh	r0, [r2, #-12]	@ movhi
+	ldrh	lr, [r3, ip]
 	mov	ip, r0
-	ldr	r1, [r3, #1088]
-	ldr	r2, [r3, #1080]
+	ldr	r2, [r3, #1084]
+	ldr	r1, [r3, #1092]
+	add	lr, r2, lr, lsl #2
 	sub	r1, r1, #2
-	add	lr, r2, lr, asl #2
-.L1309:
+.L1297:
 	cmp	r2, lr
-	beq	.L1318
+	bne	.L1300
+	ldr	r4, [r3, #1096]
+	ldr	r3, [r3, #2800]
+	str	ip, [r4, #524]
+	str	r0, [r4, #528]
+	ldrh	r1, [r3, #120]
+	cmp	r1, #0
+	popeq	{r4, r5, r6, pc}
+	bl	__aeabi_uidiv
+	str	r0, [r4, #532]
+	pop	{r4, r5, r6, pc}
+.L1300:
 	ldrh	r4, [r1, #2]!
 	cmp	r4, r6
-	beq	.L1310
+	beq	.L1298
 	ldrb	r5, [r2, #2]	@ zero_extendqisi2
 	and	r5, r5, #224
 	cmp	r5, #160
 	addeq	r0, r0, r4
 	addne	ip, ip, r4
-.L1310:
+.L1298:
 	add	r2, r2, #4
-	b	.L1309
-.L1318:
-	ldr	r4, [r3, #1092]
-	ldr	r3, [r3, #2804]
-	str	ip, [r4, #524]
-	str	r0, [r4, #528]
-	ldrh	r1, [r3, #120]
-	cmp	r1, #0
-	ldmeqfd	sp!, {r4, r5, r6, pc}
-	bl	__aeabi_uidiv
-	str	r0, [r4, #532]
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L1320:
+	b	.L1297
+.L1309:
 	.align	2
-.L1319:
-	.word	.LANCHOR3-2528
+.L1308:
+	.word	.LANCHOR3-2544
 	.word	.LANCHOR0
 	.fnend
 	.size	ftl_total_vpn_update, .-ftl_total_vpn_update
 	.align	2
 	.global	ftl_debug_info_fill
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_debug_info_fill, %function
 ftl_debug_info_fill:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L1326
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
+	ldr	r3, .L1317
+	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
 	cmp	r3, #8
-	bls	.L1325
-	stmfd	sp!, {r4, lr}
-	.save {r4, lr}
-	sub	r4, r0, #2
-	clz	r4, r4
+	bls	.L1314
+	sub	r3, r0, #2
 	cmp	r2, #0
-	mov	r4, r4, lsr #5
-	moveq	r4, #0
-	cmp	r4, #0
-	streq	r4, [r1]
-	streq	r4, [r1, #4]
-	beq	.L1322
-	ldr	r3, .L1326+4
-	mov	r4, r1
+	clz	r3, r3
+	lsr	r3, r3, #5
+	moveq	r3, #0
+	cmp	r3, #0
+	streq	r3, [r1]
+	streq	r3, [r1, #4]
+	beq	.L1314
+	ldr	r3, .L1317+4
 	mov	r0, r2
+	push	{r4, lr}
+	.save {r4, lr}
+	mov	r4, r1
 	str	r3, [r1]
 	mov	r1, #1024
 	bl	js_hash
 	str	r0, [r4, #4]
-.L1322:
 	mov	r0, #0
-	ldmfd	sp!, {r4, pc}
-.L1325:
+	pop	{r4, pc}
+.L1314:
 	mov	r0, #0
 	bx	lr
-.L1327:
+.L1318:
 	.align	2
-.L1326:
-	.word	.LANCHOR0
+.L1317:
+	.word	.LANCHOR3
 	.word	1212240712
 	.fnend
 	.size	ftl_debug_info_fill, .-ftl_debug_info_fill
 	.align	2
 	.global	ftl_vpn_update
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_vpn_update, %function
 ftl_vpn_update:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
 	mov	r4, r0
 	bl	zftl_list_update_data_list
-	ldr	r3, .L1332
-	mov	r4, r4, asl #1
-	ldr	r2, [r3, #1088]
+	lsl	r4, r4, #1
+	ldr	r3, .L1323
+	ldr	r2, [r3, #1092]
 	ldrh	r2, [r2, r4]
 	cmp	r2, #0
 	moveq	r0, #1
 	movne	r0, #0
-	streq	r0, [r3, #2820]
-	ldmfd	sp!, {r4, pc}
-.L1333:
+	streq	r0, [r3, #2812]
+	pop	{r4, pc}
+.L1324:
 	.align	2
-.L1332:
+.L1323:
 	.word	.LANCHOR0
 	.fnend
 	.size	ftl_vpn_update, .-ftl_vpn_update
 	.align	2
 	.global	ftl_vpn_decrement
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_vpn_decrement, %function
 ftl_vpn_decrement:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
 	movw	r3, #65535
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	cmp	r0, r3
 	mov	r5, r0
-	beq	.L1335
-	ldr	r1, .L1344
-	mov	r3, r0, asl #1
-	ldr	r2, [r1, #1088]
+	beq	.L1326
+	ldr	r1, .L1335
+	lsl	r3, r0, #1
+	ldr	r2, [r1, #1092]
 	ldrh	r4, [r2, r3]
 	cmp	r4, #0
 	subne	r4, r4, #1
-	strneh	r4, [r2, r3]	@ movhi
-	bne	.L1335
-	ldr	r3, [r1, #1080]
+	strhne	r4, [r2, r3]	@ movhi
+	bne	.L1326
+	ldr	r3, [r1, #1084]
 	mov	r2, r4
-	mov	r1, r5
-	add	r3, r3, r0, asl #2
-	ldr	r0, .L1344+4
+	mov	r1, r0
+	add	r3, r3, r0, lsl #2
+	ldr	r0, .L1335+4
 	ldrb	r3, [r3, #2]	@ zero_extendqisi2
-	mov	r3, r3, lsr #5
+	lsr	r3, r3, #5
 	bl	printk
-	mov	r0, r4
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1335:
-	ldr	r3, .L1344+8
-	ldrh	r0, [r3]
+.L1332:
+	mov	r0, #0
+	pop	{r4, r5, r6, pc}
+.L1326:
+	ldr	r3, .L1335+8
+	ldrh	r0, [r3, #-4]
 	mov	r4, r3
-	cmp	r0, r5
-	beq	.L1341
+	cmp	r5, r0
+	beq	.L1332
 	movw	r2, #65535
 	cmp	r0, r2
-	streqh	r5, [r3]	@ movhi
-	beq	.L1341
+	strheq	r5, [r3, #-4]	@ movhi
+	beq	.L1332
 	bl	ftl_vpn_update
-	add	r3, r4, #624
-	ldrh	r1, [r4]
-	ldrh	r2, [r3, #-10]
-	strh	r5, [r4]	@ movhi
+	add	r3, r4, #608
+	adds	r0, r0, #0
+	ldrh	r2, [r3]
+	movne	r0, #1
 	add	r2, r2, #1
 	uxth	r2, r2
-	adds	r0, r0, #0
-	movne	r0, #1
 	cmp	r2, #7
 	movhi	r2, #0
-	strh	r2, [r3, #-10]	@ movhi
-	ldrh	r3, [r3, #-10]
-	ldr	r2, .L1344+12
-	mov	r3, r3, asl #1
-	strh	r1, [r2, r3]	@ movhi
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1341:
-	mov	r0, #0
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1345:
+	strh	r2, [r3]	@ movhi
+	ldrh	r3, [r3]
+	ldrh	r2, [r4, #-4]
+	strh	r5, [r4, #-4]	@ movhi
+	add	r3, r4, r3, lsl #1
+	strh	r2, [r3, #-2]	@ movhi
+	pop	{r4, r5, r6, pc}
+.L1336:
 	.align	2
-.L1344:
+.L1335:
 	.word	.LANCHOR0
-	.word	.LC109
+	.word	.LC106
 	.word	.LANCHOR3-3152
-	.word	.LANCHOR3-3148
 	.fnend
 	.size	ftl_vpn_decrement, .-ftl_vpn_decrement
 	.align	2
 	.global	lpa_hash_update_ppa
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	lpa_hash_update_ppa, %function
 lpa_hash_update_ppa:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
+	ldr	r3, .L1349
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
-	uxtb	r6, r0
-	ldr	r3, .L1358
-	movw	r4, #65535
-	ldr	ip, .L1358+4
-	mov	r6, r6, asl #1
-	mov	r8, r4
-	ldr	r7, [r3, #-2548]
-	ldrh	lr, [ip, r6]
-	ldr	r9, [r3, #-2544]
-.L1347:
-	cmp	lr, r8
-	beq	.L1351
-	ldr	r5, [r7, lr, asl #2]
-	add	r10, r7, lr, asl #2
-	cmp	r5, r0
-	mov	r5, lr, asl #1
-	bne	.L1348
-	mvn	lr, #0
-	str	lr, [r10]
-	movw	lr, #65535
-	cmp	r4, lr
-	ldr	lr, [r3, #-2544]
-	movne	r4, r4, asl #1
-	ldreqh	lr, [lr, r5]
-	ldrneh	r7, [lr, r5]
-	streqh	lr, [ip, r6]	@ movhi
-	strneh	r7, [lr, r4]	@ movhi
-	mvn	r4, #0
-	ldr	lr, [r3, #-2544]
-	strh	r4, [lr, r5]	@ movhi
-	b	.L1351
-.L1348:
-	mov	r4, lr
-	ldrh	lr, [r9, r5]
-	b	.L1347
-.L1351:
-	ldr	r4, [r3, #-2548]
+	uxtb	r7, r0
+	movw	r8, #65535
+	sub	lr, r3, #3056
+	lsl	r7, r7, #1
+	sub	ip, lr, #14
+	ldr	r6, [r3, #-2556]
+	ldrh	ip, [ip, r7]
+	mov	r5, r8
+	ldr	r9, [r3, #-2552]
+.L1338:
+	cmp	ip, r5
+	beq	.L1342
+	ldr	r4, [r6, ip, lsl #2]
+	add	r10, r6, ip, lsl #2
+	cmp	r0, r4
+	lsl	r4, ip, #1
+	bne	.L1339
+	mvn	ip, #0
+	cmp	r8, r5
+	str	ip, [r10]
+	lslne	r8, r8, #1
+	ldr	ip, [r3, #-2552]
+	ldrh	r5, [ip, r4]
+	subeq	ip, lr, #14
+	strheq	r5, [ip, r7]	@ movhi
+	strhne	r5, [ip, r8]	@ movhi
+	mvn	r5, #0
+	ldr	ip, [r3, #-2552]
+	strh	r5, [ip, r4]	@ movhi
+.L1342:
+	ldr	ip, [r3, #-2556]
 	cmn	r1, #1
-	ldr	lr, .L1358
-	str	r0, [r4, r2, asl #2]
-	ldrh	r0, [ip, r6]
-	ldr	r3, [r3, #-2544]
-	strh	r2, [ip, r6]	@ movhi
-	mov	r2, r2, asl #1
-	strh	r0, [r3, r2]	@ movhi
-	beq	.L1353
-	sub	r3, lr, #3120
-	ldrh	r0, [r3, #-12]
-	ldr	r3, .L1358+8
-	mov	r1, r1, lsr r0
-	ldrb	r3, [r3, #1189]	@ zero_extendqisi2
-	rsb	r3, r3, #24
-	rsb	r3, r0, r3
+	str	r0, [ip, r2, lsl #2]
+	sub	ip, lr, #14
+	ldrh	lr, [ip, r7]
+	ldr	r0, [r3, #-2552]
+	strh	r2, [ip, r7]	@ movhi
+	lsl	r2, r2, #1
+	strh	lr, [r0, r2]	@ movhi
+	beq	.L1344
+	ldr	r0, .L1349+4
+	ldr	r2, .L1349+8
+	ldrb	ip, [r0, #1153]	@ zero_extendqisi2
 	mvn	r0, #0
-	bic	r0, r1, r0, asl r3
-	ldrb	r1, [lr, #-3130]	@ zero_extendqisi2
+	ldrh	r2, [r2, #-2]
+	rsb	ip, ip, #24
+	sub	ip, ip, r2
+	lsr	r2, r1, r2
+	ldrb	r1, [r3, #-3136]	@ zero_extendqisi2
+	bic	r0, r2, r0, lsl ip
 	bl	__aeabi_uidiv
 	uxth	r0, r0
 	bl	ftl_vpn_decrement
-.L1353:
+.L1344:
 	mvn	r0, #0
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1359:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L1339:
+	mov	r8, ip
+	ldrh	ip, [r9, r4]
+	b	.L1338
+.L1350:
 	.align	2
-.L1358:
+.L1349:
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3060
 	.word	.LANCHOR0
+	.word	.LANCHOR3-3136
 	.fnend
 	.size	lpa_hash_update_ppa, .-lpa_hash_update_ppa
 	.align	2
 	.global	ftl_mask_bad_block
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_mask_bad_block, %function
 ftl_mask_bad_block:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
-	.save {r4, r5, r6, r7, r8, r9, lr}
-	.pad #12
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	.pad #8
 	mov	r3, #1
-	ldr	r1, .L1368
-	ldr	r7, .L1368+4
-	sub	r1, r1, #3120
-	ldrb	r5, [r1, #-10]	@ zero_extendqisi2
-	ldrb	r4, [r7, #1189]	@ zero_extendqisi2
-	ldrh	r1, [r1, #-12]
-	rsb	r2, r4, #24
-	mov	r4, r3, asl r4
+	ldr	r7, .L1359
+	ldr	ip, .L1359+4
+	ldrb	r4, [r7, #1153]	@ zero_extendqisi2
+	ldrb	r5, [ip, #-3136]!	@ zero_extendqisi2
+	rsb	r1, r4, #24
+	lsl	r4, r3, r4
 	sub	r4, r4, #1
-	and	r4, r4, r0, lsr r2
-	rsb	r2, r1, r2
-	mov	r3, r3, asl r2
-	sub	r3, r3, #1
+	and	r4, r4, r0, lsr r1
 	uxtb	r4, r4
-	and	r0, r3, r0, lsr r1
+	smulbb	r2, r4, r5
+	uxtb	r9, r2
+	ldrh	r2, [ip, #-2]
+	sub	r1, r1, r2
+	lsl	r3, r3, r1
 	mov	r1, r5
-	smulbb	r6, r4, r5
-	uxth	r9, r0
+	sub	r3, r3, #1
+	and	r0, r3, r0, lsr r2
+	uxth	r10, r0
 	bl	__aeabi_uidiv
+	ldr	r3, .L1359+8
 	cmp	r5, #1
-	subhi	r3, r5, #1
-	uxtb	r6, r6
-	andhi	r3, r3, r9
+	subhi	r2, r5, #1
+	mov	r6, r0
+	andhi	r2, r2, r10
 	uxth	r8, r0
-	addhi	r3, r6, r3
-	uxtbhi	r6, r3
-	ldr	r3, .L1368+8
 	ldr	r3, [r3]
+	addhi	r2, r9, r2
+	uxtbhi	r9, r2
 	tst	r3, #16384
-	beq	.L1362
-	str	r9, [sp]
+	beq	.L1353
+	uxth	r3, r0
+	str	r10, [sp]
+	mov	r2, r9
+	ldr	r0, .L1359+12
 	mov	r1, r4
-	ldr	r0, .L1368+12
-	mov	r2, r6
-	mov	r3, r8
 	bl	printk
-.L1362:
-	movw	r3, #1076
+.L1353:
+	movw	r3, #1080
 	ldrh	r3, [r7, r3]
 	cmp	r3, r8
-	bls	.L1360
-	ldr	r3, .L1368+4
-	mov	r2, #1
-	ldr	r4, [r3, #1080]
-	add	r4, r4, r8, asl #2
-	ldrb	r3, [r4, #3]	@ zero_extendqisi2
-	orr	r6, r3, r2, asl r6
-	strb	r6, [r4, #3]
-.L1360:
-	add	sp, sp, #12
+	bls	.L1351
+	ldr	r3, [r7, #1084]
+	uxth	r6, r6
+	add	r6, r3, r6, lsl #2
+	mov	r3, #1
+	ldrb	r2, [r6, #3]	@ zero_extendqisi2
+	orr	r2, r2, r3, lsl r9
+	strb	r2, [r6, #3]
+.L1351:
+	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L1369:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L1360:
 	.align	2
-.L1368:
-	.word	.LANCHOR3
+.L1359:
 	.word	.LANCHOR0
+	.word	.LANCHOR3
 	.word	.LANCHOR2
-	.word	.LC110
+	.word	.LC107
 	.fnend
 	.size	ftl_mask_bad_block, .-ftl_mask_bad_block
 	.align	2
 	.global	gc_free_bad_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_free_bad_sblk, %function
 gc_free_bad_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
-	ldr	r4, .L1391
-	str	r0, [sp]
-	ldr	r3, [r4, #920]
+	ldr	r6, .L1382
+	ldr	r3, [r6, #916]
 	cmp	r3, #0
-	movne	r5, #0
-	ldrne	r7, .L1391+4
-	beq	.L1387
-.L1371:
-	ldrb	r3, [r7, #-3123]	@ zero_extendqisi2
-	uxth	r0, r5
-	cmp	r3, r0
-	bls	.L1387
-	ldrb	r9, [r7, #-3130]	@ zero_extendqisi2
-	mov	fp, #0
-	ldr	r6, .L1391+8
-	mov	r1, r9
-	uxth	r8, r9
-	bl	__aeabi_idiv
-	ldr	r2, .L1391+12
-	ldrb	r3, [r6, #1189]	@ zero_extendqisi2
-	cmp	r9, #1
-	subhi	r1, r8, #1
-	ldrh	r2, [r2]
-	rsb	r3, r3, #24
-	rsb	r3, r2, r3
-	ldrh	r2, [sp]
-	andhi	r1, r1, r5
-	smulbb	r2, r2, r8
-	ldr	r8, .L1391+16
-	add	r0, r2, r0, asl r3
-	mov	r9, r8
-	uxth	r2, r0
-	addhi	r2, r2, r1
-	uxthhi	r2, r2
-.L1373:
-	ldr	r1, [r4, #920]
-	uxth	r10, fp
-	cmp	r10, r1
-	bcs	.L1389
-	add	r1, r10, #1088
-	add	r1, r1, #8
-	mov	r1, r1, asl #1
-	ldrh	r1, [r8, r1]
-	cmp	r1, r2
-	bne	.L1374
-	mov	r1, r2
-	ldr	r0, .L1391+20
-	str	r2, [sp, #4]
-	bl	printk
-	ldr	r3, .L1391+4
-	ldrb	r1, [r3, #-2536]	@ zero_extendqisi2
-	cmp	r1, #0
-	ldr	r2, [sp, #4]
-	bne	.L1375
-	ldrb	r1, [r7, #-3122]	@ zero_extendqisi2
-	cmp	r1, #0
-	beq	.L1376
-.L1375:
-	ldr	r1, [r6, #2804]
-	ldr	r3, .L1391+24
-	ldr	r1, [r1, #156]
-	cmp	r1, r3
-	beq	.L1377
-.L1376:
-	ldr	r1, .L1391+12
-	str	r2, [sp, #4]
-	ldrh	r0, [r1]
-	mov	r0, r2, asl r0
-	bl	ftl_mask_bad_block
-	ldr	r2, [sp, #4]
-.L1377:
-	ldr	r0, [r4, #920]
+	beq	.L1378
+	ldr	r8, .L1382+4
+	mov	r7, #0
+	str	r0, [sp, #4]
+.L1363:
+	ldrb	r2, [r8, #-3127]	@ zero_extendqisi2
+	uxth	r3, r7
+	cmp	r2, r3
+	bhi	.L1373
 .L1378:
-	cmp	r10, r0
-	bcs	.L1390
-	add	r1, r10, #1088
-	add	r3, r10, #1
-	add	r1, r1, #9
-	mov	r1, r1, asl #1
-	ldrh	lr, [r9, r1]
-	add	r1, r10, #1088
-	add	r1, r1, #8
-	uxth	r10, r3
-	mov	r1, r1, asl #1
-	strh	lr, [r9, r1]	@ movhi
-	b	.L1378
-.L1390:
-	sub	r0, r0, #1
-	str	r0, [r4, #920]
-.L1374:
-	add	fp, fp, #1
-	b	.L1373
-.L1389:
-	add	r5, r5, #1
-	b	.L1371
-.L1387:
 	mov	r0, #0
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1392:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1373:
+	ldrb	r9, [r8, #-3136]	@ zero_extendqisi2
+	uxth	r0, r7
+	ldr	r10, .L1382+8
+	ldr	fp, .L1382+12
+	mov	r1, r9
+	bl	__aeabi_idiv
+	ldrb	r3, [r10, #1153]	@ zero_extendqisi2
+	uxth	r5, r9
+	ldrh	r2, [sp, #4]
+	cmp	r9, #1
+	ldrh	r4, [fp], #2
+	mov	r9, #0
+	rsb	r3, r3, #24
+	str	r10, [sp]
+	ldr	r10, .L1382+16
+	sub	r3, r3, r4
+	smulbb	r4, r2, r5
+	subhi	r5, r5, #1
+	andhi	r5, r5, r7
+	add	r4, r4, r0, lsl r3
+	uxth	r4, r4
+	addhi	r4, r4, r5
+	uxthhi	r4, r4
+.L1365:
+	ldr	r1, [r6, #916]
+	uxth	r5, r9
+	mov	r3, r5
+	cmp	r1, r5
+	addls	r7, r7, #1
+	bls	.L1363
+.L1372:
+	add	r3, r3, #1088
+	add	r3, r3, #8
+	lsl	r3, r3, #1
+	ldrh	r3, [r10, r3]
+	cmp	r3, r4
+	bne	.L1366
+	mov	r1, r4
+	ldr	r0, .L1382+20
+	bl	printk
+	ldrb	r3, [r8, #-2542]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L1367
+	ldrb	r3, [r8, #-3126]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L1368
+.L1367:
+	ldr	r3, [sp]
+	ldr	r2, .L1382+24
+	ldr	r3, [r3, #2800]
+	ldr	r3, [r3, #156]
+	cmp	r3, r2
+	beq	.L1369
+.L1368:
+	ldrh	r0, [fp, #-2]
+	lsl	r0, r4, r0
+	bl	ftl_mask_bad_block
+.L1369:
+	ldr	r3, [r6, #916]
+	movw	r0, #1097
+	movw	ip, #1096
+.L1370:
+	cmp	r5, r3
+	bcc	.L1371
+	sub	r3, r3, #1
+	str	r3, [r6, #916]
+.L1366:
+	add	r9, r9, #1
+	b	.L1365
+.L1371:
+	add	r1, r5, r0
+	lsl	r1, r1, #1
+	ldrh	lr, [r10, r1]
+	add	r1, r5, ip
+	lsl	r1, r1, #1
+	add	r5, r5, #1
+	uxth	r5, r5
+	strh	lr, [r10, r1]	@ movhi
+	b	.L1370
+.L1383:
 	.align	2
-.L1391:
+.L1382:
 	.word	.LANCHOR0+4096
 	.word	.LANCHOR3
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3132
-	.word	.LANCHOR0+2828
-	.word	.LC111
+	.word	.LANCHOR3-3138
+	.word	.LANCHOR0+2824
+	.word	.LC108
 	.word	1145785929
 	.fnend
 	.size	gc_free_bad_sblk, .-gc_free_bad_sblk
 	.align	2
 	.global	ftl_free_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_free_sblk, %function
 ftl_free_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 16
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r10, r0, asl #2
-	ldr	r5, .L1417
+	lsl	r10, r0, #2
+	ldr	r5, .L1407
 	.pad #20
 	sub	sp, sp, #20
 	mov	r7, r0
-	ldr	r6, [r5, #1080]
+	ldr	r6, [r5, #1084]
 	add	r8, r6, r10
 	ldrb	r4, [r8, #2]	@ zero_extendqisi2
 	tst	r4, #8
-	mov	r3, r4, lsr #5
-	str	r3, [sp]
-	beq	.L1394
-	ldr	r9, [r5, #2804]
-	movw	r1, #1084
-	ldrh	r2, [r6, r10]
-	ldr	fp, [r6, r0, asl #2]
-	ldrh	r3, [r9, #74]
-	ubfx	r2, r2, #0, #11
-	ldrh	ip, [r9, #72]
-	ubfx	fp, fp, #11, #8
-	add	r3, r2, r3
-	ldrh	r9, [r5, r1]
-	add	ip, fp, ip
-	str	r2, [sp, #12]
-	uxth	r3, r3
+	lsr	r3, r4, #5
 	str	r3, [sp, #4]
-	mov	r1, r9
-	uxth	ip, ip
+	beq	.L1385
+	ldr	r1, [r5, #2800]
+	ldrh	r3, [r6, r10]
+	ldr	fp, [r6, r0, lsl #2]
+	ldrh	r2, [r1, #74]
+	ubfx	r3, r3, #0, #11
+	str	r3, [sp, #12]
+	ubfx	fp, fp, #11, #8
+	add	r2, r3, r2
+	uxth	r3, r2
+	ldrh	r2, [r1, #72]
+	add	r1, r5, #1088
+	ldrh	r9, [r1]
 	mov	r0, r3
-	str	ip, [sp, #8]
-	bl	__aeabi_uidiv
-	ldr	r1, .L1417+4
-	ldrh	lr, [r1, #-6]
-	ldr	ip, [sp, #8]
-	ldr	r3, [sp, #4]
-	uxtah	r0, ip, r0
-	ldr	r2, [sp, #12]
-	cmp	r0, lr
-	ble	.L1395
-	movw	r3, #2798
-	sub	r1, r1, #544
-	ldrh	r0, [r5, r3]
-	movw	r3, #2790
-	ldrh	r3, [r5, r3]
-	add	r0, r0, r3
-	ldrh	r3, [r1, #-12]
-	add	r3, r3, #8
-	cmp	r0, r3
-	blt	.L1401
-	movw	r3, #2794
-	movw	r0, #2788
-	ldrh	r0, [r5, r0]
-	ldrh	r3, [r5, r3]
-	add	r3, r3, r0
-	movw	r0, #2796
-	ldrh	ip, [r5, r0]
-	add	ip, r3, ip
-	ldrh	r3, [r1, #-14]
-	add	r3, r3, #8
-	cmp	ip, r3
-	b	.L1416
-.L1395:
-	mla	r3, r9, ip, r3
-	ldrh	r0, [r1, #-4]
-	cmp	r3, r0
-	ble	.L1397
-	movw	r3, #2794
-	movw	r0, #2788
-	ldrh	r0, [r5, r0]
-	ldrh	r3, [r5, r3]
-	add	r3, r3, r0
-	movw	r0, #2796
-	ldrh	ip, [r5, r0]
-	add	ip, r3, ip
-	sub	r3, r1, #544
-	ldrh	r1, [r3, #-14]
-	add	r0, r1, #8
-	cmp	ip, r0
-	blt	.L1414
-	movw	r0, #2798
-	movw	lr, #2790
-	ldrh	r0, [r5, r0]
-	ldrh	lr, [r5, lr]
-	ldrh	r3, [r3, #-12]
-	add	r0, r0, lr
-	add	r3, r3, #8
-	cmp	r0, r3
-	blt	.L1401
-	add	r1, r1, #24
-	cmp	ip, r1
-.L1416:
-	bge	.L1401
-.L1414:
-	bfc	r4, #3, #2
-	b	.L1412
-.L1401:
-	mov	r3, #2
-	bfi	r4, r3, #3, #2
-.L1412:
-	strb	r4, [r8, #2]
-.L1397:
-	ldrb	r3, [r8, #2]	@ zero_extendqisi2
-	ands	r3, r3, #24
-	bne	.L1402
-	mul	r9, r9, fp
-	ldrh	r3, [r6, r10]
-	mov	fp, fp, lsr #3
-	add	r9, r9, r9, asl #1
-	add	r2, r2, r9, asr #2
-	bfi	r3, r2, #0, #11
-	strh	r3, [r6, r10]	@ movhi
-	ldr	r4, [r6, r7, asl #2]
-	bfi	r4, fp, #11, #8
-	str	r4, [r6, r7, asl #2]
-	b	.L1403
-.L1402:
-	cmp	r3, #16
-	bne	.L1403
-	mov	r0, r2
+	add	r2, r2, fp
+	str	r3, [sp]
+	uxth	r2, r2
 	mov	r1, r9
-	str	r2, [sp, #4]
-	bl	__aeabi_idiv
-	ldr	r3, [r6, r7, asl #2]
-	add	r0, r0, r0, asl #1
-	add	fp, fp, r0, asr #2
-	bfi	r3, fp, #11, #8
-	str	r3, [r6, r7, asl #2]
-	ldr	r2, [sp, #4]
-	ldrh	r3, [r6, r10]
-	mov	r2, r2, asr #5
-	bfi	r3, r2, #0, #11
-	b	.L1413
-.L1394:
-	tst	r4, #24
-	bne	.L1403
-	movw	r3, #2792
-	ldrh	r3, [r5, r3]
-	cmp	r3, #0
-	bne	.L1403
-	movw	r3, #2790
-	ldrh	r1, [r5, r3]
-	cmp	r1, #15
-	bhi	.L1403
-	movw	r3, #2794
-	movw	r2, #2788
+	str	r2, [sp, #8]
+	bl	__aeabi_uidiv
+	ldr	ip, .L1407+4
+	ldr	r2, [sp, #8]
+	ldr	r3, [sp, #12]
+	ldrh	r1, [ip, #-12]
+	uxtah	r0, r2, r0
+	cmp	r0, r1
+	ble	.L1386
+	movw	r2, #2794
+	ldrh	r0, [r5, r2]
+	movw	r2, #2786
 	ldrh	r2, [r5, r2]
-	ldrh	r3, [r5, r3]
-	ldr	r0, .L1417+8
-	add	r3, r3, r2
-	movw	r2, #2796
+	add	r0, r0, r2
+	sub	r2, ip, #560
+	ldrh	r1, [r2, #-2]
+	add	r1, r1, #8
+	cmp	r0, r1
+	bge	.L1387
+.L1392:
+	mov	r2, #2
+	bfi	r4, r2, #3, #2
+	b	.L1403
+.L1387:
+	movw	r1, #2790
+	add	r0, r5, #2784
+	ldrh	r0, [r0]
+	ldrh	r1, [r5, r1]
+	ldrh	r2, [r2, #-4]
+	add	r1, r1, r0
+	movw	r0, #2792
+	ldrh	r0, [r5, r0]
+	add	r2, r2, #8
+	add	r1, r1, r0
+	cmp	r1, r2
+.L1406:
+	bge	.L1392
+	b	.L1404
+.L1386:
+	ldr	r1, [sp]
+	mla	r2, r2, r9, r1
+	ldrh	r1, [ip, #-10]
+	cmp	r2, r1
+	ble	.L1388
+	movw	r2, #2790
+	ldrh	r1, [r5, r2]
+	add	r2, r5, #2784
+	ldrh	r2, [r2]
+	add	r1, r1, r2
+	movw	r2, #2792
 	ldrh	r2, [r5, r2]
-	add	r3, r3, r2
-	ldrh	r2, [r0, #-14]
-	add	r2, r2, #16
-	cmp	r3, r2
-	ble	.L1403
-	movw	r3, #2798
-	ldrh	r2, [r5, r3]
-	ldrh	r3, [r0, #-12]
-	add	r2, r2, r1
-	add	r3, r3, #8
-	cmp	r2, r3
-	bge	.L1403
-	mov	r3, #2
-	bfi	r4, r3, #3, #2
-	strb	r4, [r8, #2]
-	movw	r3, #1084
-	ldrh	r4, [r6, r10]
-	ldrh	r1, [r5, r3]
-	ubfx	r4, r4, #0, #11
-	mov	r0, r4
-	mov	r4, r4, asr #5
-	bl	__aeabi_idiv
-	ldr	r3, [r6, r7, asl #2]
-	ubfx	r2, r3, #11, #8
-	add	r0, r0, r0, asl #1
-	add	r0, r2, r0, asr #2
-	bfi	r3, r0, #11, #8
-	str	r3, [r6, r7, asl #2]
-	ldrh	r3, [r6, r10]
-	bfi	r3, r4, #0, #11
-.L1413:
-	strh	r3, [r6, r10]	@ movhi
+	add	r1, r1, r2
+	sub	r2, ip, #560
+	ldrh	r0, [r2, #-4]
+	add	ip, r0, #8
+	cmp	r1, ip
+	bge	.L1390
+.L1404:
+	bfc	r4, #3, #2
 .L1403:
+	strb	r4, [r8, #2]
+.L1388:
+	ldrb	r2, [r8, #2]	@ zero_extendqisi2
+	ands	r2, r2, #24
+	bne	.L1393
+	mul	r9, r9, fp
+	ldrh	r2, [r6, r10]
+	lsr	fp, fp, #3
+	add	r9, r9, r9, lsl #1
+	add	r3, r3, r9, asr #2
+	bfi	r2, r3, #0, #11
+	strh	r2, [r6, r10]	@ movhi
+	ldr	r3, [r6, r7, lsl #2]
+	bfi	r3, fp, #11, #8
+	str	r3, [r6, r7, lsl #2]
+.L1394:
 	mov	r0, r7
 	bl	zftl_remove_data_node
-	ldr	r3, .L1417
+	ldr	r3, .L1407
 	mov	r0, #0
-	ldr	r2, [r3, #1080]
+	ldr	r2, [r3, #1084]
 	mov	r4, r3
 	add	r10, r2, r10
 	ldrb	r2, [r10, #2]	@ zero_extendqisi2
 	bfc	r2, #5, #3
 	strb	r2, [r10, #2]
-	ldr	r1, [r3, #1088]
-	mov	r2, r7, asl #1
+	lsl	r2, r7, #1
+	ldr	r1, [r3, #1092]
 	strh	r0, [r1, r2]	@ movhi
-	ldr	r2, [sp]
+	ldr	r2, [sp, #4]
 	add	r2, r2, #6
 	and	r2, r2, #7
 	cmp	r2, #4
-	bhi	.L1406
+	bhi	.L1397
 	mov	r0, r7
 	bl	gc_free_bad_sblk
-.L1406:
+.L1397:
 	ldrb	r3, [r8, #2]	@ zero_extendqisi2
 	tst	r3, #8
-	beq	.L1407
-	ldr	r3, [r4, #1092]
+	beq	.L1398
+	ldr	r3, [r4, #1096]
 	movw	r2, #586
 	ldrh	r1, [r3, r2]
 	cmp	r1, r7
-	bne	.L1407
+	bne	.L1398
 	mvn	r1, #0
 	strh	r1, [r3, r2]	@ movhi
 	movw	r2, #590
-	movw	r1, #65535
 	ldrh	r0, [r3, r2]
+	movw	r1, #65535
 	cmp	r0, r1
-	bne	.L1407
+	bne	.L1398
 	strh	r7, [r3, r2]	@ movhi
 	mov	r1, r7
-	ldr	r0, .L1417+12
+	ldr	r0, .L1407+8
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	b	printk
-.L1407:
+.L1390:
+	movw	ip, #2794
+	movw	lr, #2786
+	ldrh	ip, [r5, ip]
+	ldrh	lr, [r5, lr]
+	ldrh	r2, [r2, #-2]
+	add	ip, ip, lr
+	add	r2, r2, #8
+	cmp	ip, r2
+	blt	.L1392
+	add	r0, r0, #24
+	cmp	r1, r0
+	b	.L1406
+.L1393:
+	cmp	r2, #16
+	bne	.L1394
+	mov	r0, r3
+	mov	r1, r9
+	str	r3, [sp]
+	bl	__aeabi_idiv
+	add	r0, r0, r0, lsl #1
+	ldr	r2, [r6, r7, lsl #2]
+	add	fp, fp, r0, asr #2
+	bfi	r2, fp, #11, #8
+	str	r2, [r6, r7, lsl #2]
+	ldr	r3, [sp]
+	ldrh	r2, [r6, r10]
+	asr	r3, r3, #5
+	bfi	r2, r3, #0, #11
+	strh	r2, [r6, r10]	@ movhi
+	b	.L1394
+.L1385:
+	tst	r4, #24
+	bne	.L1394
+	movw	r3, #2788
+	ldrh	r3, [r5, r3]
+	cmp	r3, #0
+	bne	.L1394
+	movw	r3, #2786
+	ldrh	r0, [r5, r3]
+	cmp	r0, #15
+	bhi	.L1394
+	movw	r3, #2790
+	add	r2, r5, #2784
+	ldrh	r2, [r2]
+	ldrh	r3, [r5, r3]
+	ldr	ip, .L1407+12
+	add	r3, r3, r2
+	movw	r2, #2792
+	ldrh	r2, [r5, r2]
+	ldrh	r1, [ip, #-4]
+	add	r3, r3, r2
+	add	r1, r1, #16
+	cmp	r3, r1
+	ble	.L1394
+	movw	r3, #2794
+	ldrh	r2, [r5, r3]
+	ldrh	r3, [ip, #-2]
+	add	r2, r2, r0
+	add	r3, r3, #8
+	cmp	r2, r3
+	bge	.L1394
+	mov	r3, #2
+	add	r5, r5, #1088
+	bfi	r4, r3, #3, #2
+	ldrh	r1, [r5]
+	strb	r4, [r8, #2]
+	ldrh	r4, [r6, r10]
+	ubfx	r4, r4, #0, #11
+	mov	r0, r4
+	asr	r4, r4, #5
+	bl	__aeabi_idiv
+	ldr	r3, [r6, r7, lsl #2]
+	add	r0, r0, r0, lsl #1
+	ubfx	r2, r3, #11, #8
+	add	r0, r2, r0, asr #2
+	bfi	r3, r0, #11, #8
+	str	r3, [r6, r7, lsl #2]
+	ldrh	r3, [r6, r10]
+	bfi	r3, r4, #0, #11
+	strh	r3, [r6, r10]	@ movhi
+	b	.L1394
+.L1398:
 	mov	r0, r7
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	b	zftl_insert_free_list
-.L1418:
+.L1408:
 	.align	2
-.L1417:
+.L1407:
 	.word	.LANCHOR0
 	.word	.LANCHOR3-2528
-	.word	.LANCHOR3-3072
-	.word	.LC112
+	.word	.LC109
+	.word	.LANCHOR3-3088
 	.fnend
 	.size	ftl_free_sblk, .-ftl_free_sblk
 	.align	2
 	.global	gc_free_src_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_free_src_blk, %function
 gc_free_src_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	mov	r5, #0
-	ldr	r6, .L1458
-	ldr	r8, .L1458+4
-	mov	r7, r6
-.L1420:
-	ldrh	r2, [r8, #52]
+	ldr	r8, .L1447
+	ldr	r7, .L1447+4
+	mov	r6, r8
+.L1410:
+	ldrh	r2, [r7, #52]
 	uxth	r3, r5
 	cmp	r2, r3
-	bls	.L1457
-	add	r3, r8, r3, asl #1
+	bhi	.L1424
+	mov	r3, #0
+	strh	r3, [r7, #52]	@ movhi
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L1424:
+	uxth	r3, r5
+	add	r3, r7, r3, lsl #1
 	ldrh	r4, [r3, #54]
-	ldr	r3, [r6, #1088]
-	mov	r9, r4, asl #1
+	ldr	r3, [r8, #1092]
+	lsl	r9, r4, #1
 	ldrh	r2, [r3, r9]
 	cmp	r2, #0
-	beq	.L1421
-	ldr	r0, .L1458+8
+	beq	.L1411
 	mov	r1, r4
+	ldr	r0, .L1447+8
 	bl	printk
-.L1421:
-	ldr	r3, [r7, #1088]
+.L1411:
+	ldr	r3, [r6, #1092]
 	mov	r2, #0
 	strh	r2, [r3, r9]	@ movhi
-	ldr	r3, [r7, #1088]
+	ldr	r3, [r6, #1092]
 	ldrh	r3, [r3, r9]
 	cmp	r3, r2
-	bne	.L1422
-	ldr	r3, .L1458+12
-	ldr	r9, [r6, #1080]
+	bne	.L1412
+	ldr	r3, .L1447+12
+	ldr	r9, [r6, #1084]
 	ldr	r3, [r3]
-	add	r9, r9, r4, asl #2
+	add	r9, r9, r4, lsl #2
 	tst	r3, #256
-	beq	.L1423
+	beq	.L1413
 	ldrb	r2, [r9, #2]	@ zero_extendqisi2
 	mov	r1, r4
-	ldr	r0, .L1458+16
-	mov	r2, r2, lsr #5
+	ldr	r0, .L1447+16
+	lsr	r2, r2, #5
 	bl	printk
-.L1423:
+.L1413:
 	ldrb	r3, [r9, #2]	@ zero_extendqisi2
-	tst	r3, #192
-	and	r3, r3, #224
-	moveq	r2, #1
-	movne	r2, #0
-	cmp	r3, #224
-	movne	r3, r2
-	orreq	r3, r2, #1
+	and	r2, r3, #224
+	and	r3, r3, #192
 	cmp	r3, #0
-	beq	.L1424
-	ldr	r1, .L1458+20
+	cmpne	r2, #224
+	bne	.L1414
 	movw	r2, #1363
-	ldr	r0, .L1458+24
+	ldr	r1, .L1447+20
+	ldr	r0, .L1447+24
 	bl	printk
 	bl	dump_stack
-.L1424:
+.L1414:
 	mov	r0, r4
 	bl	ftl_free_sblk
-	ldr	r3, [r7, #1092]
+	ldr	r3, [r6, #1096]
 	ldrh	r1, [r3, #124]
 	cmp	r1, #0
-	beq	.L1425
-	add	r0, r3, #388
+	beq	.L1415
+	add	r0, r3, #392
 	mov	r2, #0
-	add	r0, r0, #2
-.L1427:
-	ldrh	ip, [r0, #2]!
-	cmp	ip, r4
-	bne	.L1426
+.L1417:
+	ldrh	ip, [r0], #2
+	cmp	r4, ip
+	bne	.L1416
 	add	r2, r2, #196
 	mvn	r0, #0
+	lsl	r2, r2, #1
 	add	r1, r1, r0
-	mov	r2, r2, asl #1
 	strh	r0, [r3, r2]	@ movhi
 	strh	r1, [r3, #124]	@ movhi
-	b	.L1425
-.L1426:
-	add	r2, r2, #1
-	cmp	r2, #64
-	bne	.L1427
-.L1425:
+.L1415:
 	ldrh	r1, [r3, #120]
 	cmp	r1, #0
-	beq	.L1428
-	add	r0, r3, #134
+	beq	.L1418
+	add	r0, r3, #136
 	mov	r2, #0
-.L1430:
-	ldrh	ip, [r0, #2]!
-	cmp	ip, r4
-	bne	.L1429
-	add	r2, r3, r2, asl #1
+.L1420:
+	ldrh	ip, [r0], #2
+	cmp	r4, ip
+	bne	.L1419
 	mvn	r0, #0
+	add	r2, r3, r2, lsl #1
 	add	r1, r1, r0
 	strh	r0, [r2, #136]	@ movhi
 	strh	r1, [r3, #120]	@ movhi
-	b	.L1428
-.L1429:
-	add	r2, r2, #1
-	cmp	r2, #64
-	bne	.L1430
-.L1428:
-	ldrh	r0, [r3, #122]
-	cmp	r0, #0
-	beq	.L1431
-	add	r1, r3, #260
+.L1418:
+	ldrh	r1, [r3, #122]
+	cmp	r1, #0
+	beq	.L1421
+	add	r0, r3, #264
 	mov	r2, #0
-	add	r1, r1, #2
-.L1433:
-	ldrh	ip, [r1, #2]!
-	cmp	ip, r4
-	bne	.L1432
+.L1423:
+	ldrh	ip, [r0], #2
+	cmp	r4, ip
+	bne	.L1422
 	add	r2, r2, #132
-	mvn	r1, #0
-	add	r0, r0, r1
-	mov	r2, r2, asl #1
-	strh	r1, [r3, r2]	@ movhi
-	strh	r0, [r3, #122]	@ movhi
-	b	.L1431
-.L1432:
+	mvn	r0, #0
+	lsl	r2, r2, #1
+	add	r1, r1, r0
+	strh	r0, [r3, r2]	@ movhi
+	strh	r1, [r3, #122]	@ movhi
+.L1421:
+	add	r5, r5, #1
+	b	.L1410
+.L1416:
 	add	r2, r2, #1
 	cmp	r2, #64
-	bne	.L1433
-	b	.L1431
+	bne	.L1417
+	b	.L1415
+.L1419:
+	add	r2, r2, #1
+	cmp	r2, #64
+	bne	.L1420
+	b	.L1418
 .L1422:
-	mov	r0, r4
+	add	r2, r2, #1
+	cmp	r2, #64
+	bne	.L1423
+	b	.L1421
+.L1412:
 	mov	r1, #1
+	mov	r0, r4
 	bl	gc_add_sblk
-.L1431:
-	add	r5, r5, #1
-	b	.L1420
-.L1457:
-	ldr	r3, .L1458+4
-	mov	r2, #0
-	strh	r2, [r3, #52]	@ movhi
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
-.L1459:
+	b	.L1421
+.L1448:
 	.align	2
-.L1458:
+.L1447:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2828
-	.word	.LC113
+	.word	.LANCHOR0+2824
+	.word	.LC110
 	.word	.LANCHOR2
-	.word	.LC114
-	.word	.LANCHOR1+1752
+	.word	.LC111
+	.word	.LANCHOR1+1581
 	.word	.LC0
 	.fnend
 	.size	gc_free_src_blk, .-gc_free_src_blk
 	.align	2
 	.global	print_ftl_debug_info
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	print_ftl_debug_info, %function
 print_ftl_debug_info:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
-	movw	ip, #2790
-	ldr	r4, .L1462
 	.pad #32
 	sub	sp, sp, #32
-	ldr	r3, [r4, #2804]
-	ldrh	ip, [r4, ip]
-	ldr	r0, [r4, #1092]
-	ldrh	r1, [r3, #148]
-	ldrh	r2, [r3, #146]
-	movw	r3, #2788
-	str	ip, [sp]
-	movw	ip, #2792
-	ldrh	ip, [r4, ip]
-	ldrh	r3, [r4, r3]
-	str	ip, [sp, #4]
-	movw	ip, #2794
-	ldrh	ip, [r4, ip]
-	str	ip, [sp, #8]
-	movw	ip, #2796
-	ldrh	ip, [r4, ip]
-	str	ip, [sp, #12]
-	movw	ip, #2798
-	ldrh	ip, [r4, ip]
-	str	ip, [sp, #16]
-	ldr	ip, [r0, #524]
-	str	ip, [sp, #20]
-	ldr	r0, [r0, #528]
-	str	r0, [sp, #24]
-	ldr	r0, [r4, #2784]
-	str	r0, [sp, #28]
-	ldr	r0, .L1462+4
-	bl	printk
-	ldr	r2, [r4, #2804]
-	ldrb	r3, [r4, #2801]	@ zero_extendqisi2
-	ldr	r0, .L1462+8
-	ldr	r1, [r2, #8]
-	str	r1, [sp]
-	ldr	r1, [r2, #64]
-	str	r1, [sp, #4]
-	ldr	r1, [r2, #20]
-	ldr	r2, [r2, #28]
-	bl	printk
-	ldr	r2, [r4, #2804]
-	ldr	r0, .L1462+12
-	ldr	r3, [r2, #16]
-	ldr	r1, [r2, #52]
-	ldr	r2, [r2, #60]
-	mov	r3, r3, lsr #11
-	bl	printk
-	ldr	r2, [r4, #2804]
-	ldrh	r0, [r2, #92]
-	ldrh	r1, [r2, #74]
-	ldrh	r3, [r2, #88]
-	str	r0, [sp]
-	ldrh	r0, [r2, #96]
-	str	r0, [sp, #4]
-	ldrh	r0, [r2, #72]
-	str	r0, [sp, #8]
-	ldr	r0, [r2, #80]
-	str	r0, [sp, #12]
-	ldrh	r0, [r2, #90]
-	str	r0, [sp, #16]
-	ldrh	r0, [r2, #94]
+	ldr	r4, .L1451
+	ldr	r1, [r4, #2800]
+	add	r3, r4, #2784
+	ldr	r0, [r4, #1096]
+	ldr	ip, [r4, #2780]
+	ldrh	r2, [r1, #146]
+	ldrh	r3, [r3]
+	ldrh	r1, [r1, #148]
+	str	ip, [sp, #28]
+	ldr	ip, [r0, #528]
+	str	ip, [sp, #24]
+	ldr	r0, [r0, #524]
 	str	r0, [sp, #20]
-	ldrh	r0, [r2, #98]
-	str	r0, [sp, #24]
-	ldr	r0, .L1462+16
-	ldr	r2, [r2, #84]
-	bl	printk
-	add	r0, r4, #2816
-	movw	r3, #2810
-	ldrh	r0, [r0]
-	ldrh	r1, [r4, r3]
-	movw	r3, #2812
-	ldrh	r2, [r4, r3]
-	movw	r3, #2814
-	ldrh	r3, [r4, r3]
-	str	r0, [sp]
-	movw	r0, #2808
+	movw	r0, #2794
+	ldrh	r0, [r4, r0]
+	str	r0, [sp, #16]
+	movw	r0, #2792
+	ldrh	r0, [r4, r0]
+	str	r0, [sp, #12]
+	movw	r0, #2790
+	ldrh	r0, [r4, r0]
+	str	r0, [sp, #8]
+	movw	r0, #2788
 	ldrh	r0, [r4, r0]
 	str	r0, [sp, #4]
-	ldr	r0, .L1462+20
-	bl	printk
-	ldr	r0, [r4, #1092]
-	movw	lr, #590
-	ldr	ip, [r4, #2804]
-	add	r3, r0, #584
-	ldrh	r1, [r3]
-	movw	r3, #586
-	ldrh	r2, [r0, r3]
-	add	r3, r0, #588
-	ldrh	r0, [r0, lr]
-	ldrh	r3, [r3]
+	movw	r0, #2786
+	ldrh	r0, [r4, r0]
 	str	r0, [sp]
-	ldr	r0, [ip, #156]
-	str	r0, [sp, #4]
-	ldrh	r0, [ip, #150]
+	ldr	r0, .L1451+4
+	bl	printk
+	ldr	r1, [r4, #2800]
+	ldrb	r3, [r4, #2797]	@ zero_extendqisi2
+	ldr	r0, .L1451+8
+	ldr	r2, [r1, #64]
+	str	r2, [sp, #4]
+	ldr	r2, [r1, #8]
+	str	r2, [sp]
+	ldr	r2, [r1, #28]
+	ldr	r1, [r1, #20]
+	bl	printk
+	ldr	r1, [r4, #2800]
+	ldr	r0, .L1451+12
+	ldr	r3, [r1, #16]
+	ldr	r2, [r1, #60]
+	ldr	r1, [r1, #52]
+	lsr	r3, r3, #11
+	bl	printk
+	ldr	r2, [r4, #2800]
+	ldrh	r0, [r2, #98]
+	ldrh	r3, [r2, #88]
+	ldrh	r1, [r2, #74]
+	str	r0, [sp, #24]
+	ldrh	r0, [r2, #94]
+	str	r0, [sp, #20]
+	ldrh	r0, [r2, #90]
+	str	r0, [sp, #16]
+	ldr	r0, [r2, #80]
+	str	r0, [sp, #12]
+	ldrh	r0, [r2, #72]
 	str	r0, [sp, #8]
-	ldr	r0, .L1462+24
+	ldrh	r0, [r2, #96]
+	str	r0, [sp, #4]
+	ldrh	r0, [r2, #92]
+	str	r0, [sp]
+	ldr	r0, .L1451+16
+	ldr	r2, [r2, #84]
+	bl	printk
+	movw	r0, #2804
+	movw	r3, #2818
+	ldrh	r0, [r4, r0]
+	movw	r2, #2806
+	movw	r1, #2808
+	ldrh	r3, [r4, r3]
+	ldrh	r2, [r4, r2]
+	str	r0, [sp, #4]
+	add	r0, r4, #2816
+	ldrh	r0, [r0]
+	ldrh	r1, [r4, r1]
+	str	r0, [sp]
+	ldr	r0, .L1451+20
+	bl	printk
+	ldr	ip, [r4, #2800]
+	movw	r2, #586
+	ldr	r0, [r4, #1096]
+	ldrh	lr, [ip, #150]
+	add	r3, r0, #588
+	add	r1, r0, #584
+	ldrh	r2, [r0, r2]
+	ldrh	r3, [r3]
+	ldrh	r1, [r1]
+	str	lr, [sp, #8]
+	ldr	ip, [ip, #156]
+	str	ip, [sp, #4]
+	movw	ip, #590
+	ldrh	r0, [r0, ip]
+	str	r0, [sp]
+	ldr	r0, .L1451+24
 	bl	printk
 	add	sp, sp, #32
 	@ sp needed
-	ldmfd	sp!, {r4, pc}
-.L1463:
+	pop	{r4, pc}
+.L1452:
 	.align	2
-.L1462:
+.L1451:
 	.word	.LANCHOR0
+	.word	.LC112
+	.word	.LC113
+	.word	.LC114
 	.word	.LC115
 	.word	.LC116
 	.word	.LC117
-	.word	.LC118
-	.word	.LC119
-	.word	.LC120
 	.fnend
 	.size	print_ftl_debug_info, .-print_ftl_debug_info
 	.align	2
 	.global	ftl_write_buf
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_write_buf, %function
 ftl_write_buf:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
 	subs	r4, r0, #0
-	bne	.L1465
-	ldr	r1, .L1476
-	movw	r2, #810
-	ldr	r0, .L1476+4
+	bne	.L1454
+	movw	r2, #811
+	ldr	r1, .L1464
+	ldr	r0, .L1464+4
 	bl	printk
 	bl	dump_stack
 	bl	print_ftl_debug_info
 	mvn	r0, #0
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L1465:
-	ldr	r5, .L1476+8
-	ldrb	r2, [r4, #40]	@ zero_extendqisi2
-	ldrb	r3, [r5, #2772]	@ zero_extendqisi2
-	cmp	r2, r3
-	bls	.L1470
-	ldr	r1, .L1476
-	movw	r2, #817
-	ldr	r0, .L1476+4
-	bl	printk
-	bl	dump_stack
-.L1470:
-	ldrb	r3, [r4, #40]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L1467
-	ldrb	r2, [r5, #2772]	@ zero_extendqisi2
-	ldr	r6, .L1476+8
-	cmp	r2, r3
-	bcs	.L1468
-.L1467:
-	mov	r0, r4
-	bl	zbuf_free
-	ldrb	r0, [r5, #2800]	@ zero_extendqisi2
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L1468:
+	pop	{r4, r5, r6, pc}
+.L1457:
 	mov	r1, r4
-	ldr	r0, .L1476+12
+	ldr	r0, .L1464+8
 	bl	buf_add_tail
-	ldr	r3, [r6, #2804]
+	ldr	r3, [r6, #2800]
 	ldrb	r1, [r4, #40]	@ zero_extendqisi2
-	ldrb	r0, [r6, #2800]	@ zero_extendqisi2
+	ldrb	r0, [r6, #2796]	@ zero_extendqisi2
 	ldr	r2, [r3, #16]
 	add	r0, r0, #1
 	add	r2, r2, r1
+	uxtb	r0, r0
 	str	r2, [r3, #16]
 	ldr	r2, [r3, #32]
-	uxtb	r0, r0
-	strb	r0, [r6, #2800]
+	strb	r0, [r6, #2796]
 	add	r2, r2, #1
 	str	r2, [r3, #32]
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L1477:
+	pop	{r4, r5, r6, pc}
+.L1454:
+	ldr	r3, .L1464+12
+	ldrb	r1, [r4, #40]	@ zero_extendqisi2
+	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
+	mov	r5, r3
+	cmp	r1, r2
+	bls	.L1459
+	movw	r2, #818
+	ldr	r1, .L1464
+	ldr	r0, .L1464+4
+	bl	printk
+	bl	dump_stack
+.L1459:
+	ldrb	r3, [r4, #40]	@ zero_extendqisi2
+	ldr	r6, .L1464+16
+	cmp	r3, #0
+	beq	.L1456
+	ldrb	r2, [r5, #-2546]	@ zero_extendqisi2
+	cmp	r2, r3
+	bcs	.L1457
+.L1456:
+	mov	r0, r4
+	bl	zbuf_free
+	ldrb	r0, [r6, #2796]	@ zero_extendqisi2
+	pop	{r4, r5, r6, pc}
+.L1465:
 	.align	2
-.L1476:
-	.word	.LANCHOR1+1768
+.L1464:
+	.word	.LANCHOR1+1597
 	.word	.LC0
+	.word	.LANCHOR0+2820
+	.word	.LANCHOR3
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2824
 	.fnend
 	.size	ftl_write_buf, .-ftl_write_buf
 	.align	2
 	.global	ftl_write_completed
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_write_completed, %function
 ftl_write_completed:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
-	mov	r5, #0
-	ldr	r8, .L1496
-	ldr	r9, .L1496+4
+	mov	r10, #0
+	ldr	r8, .L1483
+	ldr	r9, .L1483+4
 	mov	r6, r8
-.L1479:
-	ldrb	r10, [r8, #2778]	@ zero_extendqisi2
-	cmp	r10, #255
-	beq	.L1495
-	mov	r4, #48
-	ldr	r7, .L1496+8
-	mul	r4, r4, r10
-	add	r7, r7, r4
-	add	r4, r8, r4
-	ldrb	r3, [r4, #1236]	@ zero_extendqisi2
-	strb	r3, [r8, #2778]
-	ldr	r3, [r4, #1272]
-	cmn	r3, #1
-	bne	.L1480
-	ldr	r4, .L1496+12
-	ldrb	r3, [r4, #-2536]	@ zero_extendqisi2
+.L1467:
+	ldrb	r5, [r8, #2773]	@ zero_extendqisi2
+	cmp	r5, #255
+	bne	.L1478
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L1478:
+	mov	r2, #48
+	ldr	r3, .L1483+8
+	mul	r2, r2, r5
+	add	r7, r5, r5, lsl #1
+	add	r7, r3, r7, lsl #4
+	add	r4, r8, r2
+	ldrb	r1, [r4, #1232]	@ zero_extendqisi2
+	strb	r1, [r8, #2773]
+	ldr	r1, [r4, #1268]
+	cmn	r1, #1
+	bne	.L1468
+	ldr	r1, .L1483+12
+	ldrb	r3, [r1, #-2542]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L1481
-	ldrb	r3, [r4, #-3122]	@ zero_extendqisi2
+	bne	.L1469
+	ldrb	r3, [r1, #-3126]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L1482
-.L1481:
-	ldr	r3, [r6, #2804]
+	beq	.L1470
+.L1469:
+	ldr	r3, [r6, #2800]
 	ldr	r3, [r3, #156]
 	cmp	r3, r9
-	beq	.L1483
-.L1482:
-	mov	r5, #48
-	ldr	r3, .L1496+16
-	mla	r5, r5, r10, r6
-	ldrb	r1, [r4, #-3130]	@ zero_extendqisi2
+	beq	.L1471
+.L1470:
+	mov	r10, #48
+	ldr	r3, .L1483+16
+	mla	r10, r10, r5, r6
+	ldrb	r1, [r1, #-3136]	@ zero_extendqisi2
 	ldrh	r0, [r3]
-	ldrb	r3, [r6, #1189]	@ zero_extendqisi2
+	ldrb	r3, [r6, #1153]	@ zero_extendqisi2
+	ldr	r2, [r10, #1256]
 	rsb	r3, r3, #24
-	ldr	r2, [r5, #1260]
-	rsb	r3, r0, r3
-	mov	r2, r2, lsr r0
+	sub	r3, r3, r0
+	lsr	r2, r2, r0
 	mvn	r0, #0
-	bic	r0, r2, r0, asl r3
+	bic	r0, r2, r0, lsl r3
 	bl	__aeabi_uidiv
-	ldr	r3, [r6, #1092]
+	ldr	r3, [r6, #1096]
+	uxth	r4, r0
 	movw	r2, #65535
+	ldr	r0, .L1483+20
 	ldr	r1, [r3, #560]
 	cmp	r1, r2
-	uxth	r4, r0
-	streq	r4, [r3, #560]
-	ldreq	r2, [r5, #1260]
-	ldr	r0, .L1496+20
 	mov	r1, r4
+	streq	r4, [r3, #560]
+	ldreq	r2, [r10, #1256]
 	streq	r2, [r3, #564]
 	mov	r3, #48
-	mla	r10, r3, r10, r6
-	ldr	r2, [r10, #1256]
-	ldr	r3, [r10, #1260]
+	mla	r5, r3, r5, r6
+	ldr	r3, [r5, #1256]
+	ldr	r2, [r5, #1252]
 	bl	printk
-	ldr	r3, [r6, #1092]
+	ldr	r3, [r6, #1096]
 	ldr	r2, [r3, #556]
 	add	r2, r2, #1
 	str	r2, [r3, #556]
 	ldrh	r2, [r3, #16]
 	cmp	r2, r4
 	moveq	r2, #0
-	streqh	r2, [r3, #22]	@ movhi
-	beq	.L1483
+	strheq	r2, [r3, #22]	@ movhi
+	beq	.L1471
 	ldrh	r2, [r3, #48]
 	cmp	r2, r4
 	moveq	r2, #0
-	streqh	r2, [r3, #54]	@ movhi
-.L1483:
+	strheq	r2, [r3, #54]	@ movhi
+.L1471:
 	mov	r0, r7
-	mov	r5, #1
+	mov	r10, #1
 	bl	ftl_write_buf
-	b	.L1479
-.L1480:
-	cmp	r5, #1
-	add	r3, r4, #1248
-	add	r3, r3, #12
-	bne	.L1488
-	ldr	r1, [r4, #1256]
-	ldr	r2, [r4, #1260]
-	ldr	r0, .L1496+24
+	b	.L1467
+.L1468:
+	cmp	r10, #1
+	bne	.L1476
+	ldr	r2, [r4, #1256]
+	ldr	r1, [r4, #1252]
+	ldr	r0, .L1483+24
 	bl	printk
 	mov	r0, r7
 	bl	ftl_write_buf
-	b	.L1479
-.L1488:
-	ldr	r1, [r3, #4]
-	ldr	r0, [r4, #1256]
-	ldrh	r2, [r7, #32]
+	b	.L1467
+.L1476:
+	add	r3, r3, r2
+	ldr	r1, [r4, #1260]
+	ldrh	r2, [r3, #32]
+	ldr	r0, [r4, #1252]
 	bl	lpa_hash_update_ppa
-	ldrb	r3, [r4, #1238]	@ zero_extendqisi2
-	and	r5, r3, #4
-	ands	r5, r5, #255
+	ldrb	r3, [r4, #1234]	@ zero_extendqisi2
+	tst	r3, #4
 	bicne	r3, r3, #2
-	strneb	r3, [r4, #1238]
-	movne	r5, #0
-	bne	.L1479
+	strbne	r3, [r4, #1234]
+	bne	.L1467
 	mov	r0, r7
 	bl	zbuf_free
-	b	.L1479
-.L1495:
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1497:
+	b	.L1467
+.L1484:
 	.align	2
-.L1496:
+.L1483:
 	.word	.LANCHOR0
 	.word	1145785929
-	.word	.LANCHOR0+1236
+	.word	.LANCHOR0+1232
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3132
-	.word	.LC121
-	.word	.LC122
+	.word	.LANCHOR3-3138
+	.word	.LC118
+	.word	.LC119
 	.fnend
 	.size	ftl_write_completed, .-ftl_write_completed
 	.align	2
 	.global	zftl_add_read_buf
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_add_read_buf, %function
 zftl_add_read_buf:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
-	subs	r4, r0, #0
-	bne	.L1499
-	ldr	r1, .L1504
-	movw	r2, #1150
-	ldr	r0, .L1504+4
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	subs	r5, r0, #0
+	bne	.L1486
+	movw	r2, #1151
+	ldr	r1, .L1491
+	ldr	r0, .L1491+4
 	bl	printk
 	bl	dump_stack
-	ldmfd	sp!, {r3, r4, r5, lr}
+	pop	{r4, r5, r6, lr}
 	b	print_ftl_debug_info
-.L1499:
-	ldr	r3, .L1504+8
-	ldrb	r2, [r4, #40]	@ zero_extendqisi2
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
+.L1486:
+	ldr	r4, .L1491+8
+	ldrb	r2, [r5, #40]	@ zero_extendqisi2
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
 	cmp	r2, r3
-	bls	.L1501
-	ldr	r1, .L1504
-	movw	r2, #1157
-	ldr	r0, .L1504+4
+	bls	.L1488
+	movw	r2, #1158
+	ldr	r1, .L1491
+	ldr	r0, .L1491+4
 	bl	printk
 	bl	dump_stack
-.L1501:
-	ldr	r5, .L1504+12
-	mov	r1, r4
-	ldr	r0, .L1504+16
+.L1488:
+	mov	r1, r5
+	ldr	r0, .L1491+12
 	bl	buf_add_tail
-	ldrb	r3, [r5, #-2529]	@ zero_extendqisi2
+	ldrb	r3, [r4, #-2535]	@ zero_extendqisi2
 	add	r3, r3, #1
-	strb	r3, [r5, #-2529]
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1505:
+	strb	r3, [r4, #-2535]
+	pop	{r4, r5, r6, pc}
+.L1492:
 	.align	2
-.L1504:
-	.word	.LANCHOR1+1784
+.L1491:
+	.word	.LANCHOR1+1611
 	.word	.LC0
-	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR3-2530
+	.word	.LANCHOR3-2536
 	.fnend
 	.size	zftl_add_read_buf, .-zftl_add_read_buf
 	.align	2
 	.global	sblk_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_init, %function
 sblk_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1507
+	ldr	r3, .L1494
 	mvn	r2, #0
 	mov	r0, #0
-	strb	r2, [r3, #2775]
-	strb	r2, [r3, #2778]
-	strb	r2, [r3, #2776]
-	strb	r2, [r3, #2777]
+	strb	r2, [r3, #2770]
+	strb	r2, [r3, #2773]
+	strb	r2, [r3, #2771]
+	strb	r2, [r3, #2772]
 	bx	lr
-.L1508:
+.L1495:
 	.align	2
-.L1507:
+.L1494:
 	.word	.LANCHOR0
 	.fnend
 	.size	sblk_init, .-sblk_init
 	.align	2
 	.global	dump_sblk_queue
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	dump_sblk_queue, %function
 dump_sblk_queue:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
-	ldr	r4, .L1519
-	ldr	r0, .L1519+4
-	ldrb	r1, [r4, #2775]	@ zero_extendqisi2
+	ldr	r5, .L1506
+	ldr	r0, .L1506+4
+	ldrb	r1, [r5, #2770]	@ zero_extendqisi2
 	bl	printk
-	ldrb	r4, [r4, #2775]	@ zero_extendqisi2
+	ldrb	r4, [r5, #2770]	@ zero_extendqisi2
 	cmp	r4, #255
-	ldmeqfd	sp!, {r4, r5, r6, pc}
-	ldr	r3, .L1519+8
-	mov	r2, #48
-	mov	r6, r2
-	mla	r4, r2, r4, r3
-	mov	r5, r3
-.L1511:
-	ldrb	r1, [r4, #1]	@ zero_extendqisi2
-	ldrb	r2, [r4, #42]	@ zero_extendqisi2
+	popeq	{r4, r5, r6, pc}
+	add	r4, r4, r4, lsl #1
+	add	r5, r5, #1232
+	ldr	r6, .L1506+8
+	add	r4, r5, r4, lsl #4
+.L1498:
 	ldr	r3, [r4, #24]
-	ldr	r0, .L1519+12
+	mov	r0, r6
+	ldrb	r2, [r4, #42]	@ zero_extendqisi2
+	ldrb	r1, [r4, #1]	@ zero_extendqisi2
 	bl	printk
 	ldrb	r4, [r4]	@ zero_extendqisi2
 	cmp	r4, #255
-	ldmeqfd	sp!, {r4, r5, r6, pc}
-	mla	r4, r6, r4, r5
-	b	.L1511
-.L1520:
+	popeq	{r4, r5, r6, pc}
+	add	r4, r4, r4, lsl #1
+	add	r4, r5, r4, lsl #4
+	b	.L1498
+.L1507:
 	.align	2
-.L1519:
+.L1506:
 	.word	.LANCHOR0
-	.word	.LC123
-	.word	.LANCHOR0+1236
-	.word	.LC124
+	.word	.LC120
+	.word	.LC121
 	.fnend
 	.size	dump_sblk_queue, .-dump_sblk_queue
 	.align	2
 	.global	queue_lun_state
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	queue_lun_state, %function
 queue_lun_state:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 0
+	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	ldr	lr, .L1537
-	ldrb	ip, [lr, #2775]	@ zero_extendqisi2
+	.pad #12
+	ldr	lr, .L1520
+	ldrb	ip, [lr, #2770]	@ zero_extendqisi2
 	cmp	ip, #255
-	beq	.L1529
-	ldr	r4, .L1537+4
+	beq	.L1516
+	ldrb	r3, [lr, #1153]	@ zero_extendqisi2
 	mov	r2, #1
-	ldrb	r3, [lr, #1189]	@ zero_extendqisi2
-	mov	r9, #48
-	sub	r5, r4, #3120
-	rsb	r7, r3, #24
-	ldrb	r4, [r4, #-3130]	@ zero_extendqisi2
-	ldrh	r8, [r5, #-12]
-	mov	r3, r2, asl r3
-	sub	r4, r4, #1
+	mov	r8, #48
+	movw	r10, #1274
+	rsb	r6, r3, #24
+	lsl	r3, r2, r3
 	sub	r3, r3, #1
-	rsb	r5, r8, r7
-	mov	r2, r2, asl r5
-	uxth	r4, r4
-	sub	r2, r2, #1
 	uxth	r3, r3
-	and	r5, r4, r0, asr r8
-	and	r10, r3, r0, asr r7
+	and	r4, r3, r0, asr r6
+	str	r4, [sp]
+	ldr	r4, .L1520+4
+	sub	r5, r4, #3136
+	ldrb	r4, [r4, #-3136]	@ zero_extendqisi2
+	ldrh	r7, [r5, #-2]
+	sub	r4, r4, #1
+	sub	r5, r6, r7
+	uxth	r4, r4
+	lsl	r2, r2, r5
+	and	r0, r4, r0, asr r7
+	sub	r2, r2, #1
 	uxth	r2, r2
+	and	r0, r0, r2
+	str	r0, [sp, #4]
+.L1515:
+	mla	r0, r8, ip, lr
+	ldr	r9, [sp]
+	movw	r5, #1256
+	ldr	r5, [r0, r5]
+	and	fp, r3, r5, lsr r6
+	cmp	r9, fp
+	bne	.L1510
+	and	r5, r4, r5, lsr r7
+	ldr	r9, [sp, #4]
+	ldrb	r0, [r0, r10]	@ zero_extendqisi2
 	and	r5, r5, r2
-.L1528:
-	mla	r0, r9, ip, lr
-	ldr	r6, [r0, #1260]
-	and	fp, r3, r6, lsr r7
-	cmp	fp, r10
-	bne	.L1523
-	and	r6, r4, r6, lsr r8
-	ldrb	r0, [r0, #1278]	@ zero_extendqisi2
-	and	r6, r6, r2
-	cmp	r6, r5
-	bne	.L1524
+	cmp	r9, r5
+	bne	.L1511
 	cmp	r1, #1
-	ldmnefd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-	sub	r6, r0, #7
-	tst	r6, #253
-	beq	.L1523
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1524:
+	bne	.L1508
+.L1513:
+	sub	r5, r0, #7
+	tst	r5, #253
+	beq	.L1510
+.L1508:
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1511:
 	cmp	r1, #3
 	ldrls	pc, [pc, r1, asl #2]
-	b	.L1523
-.L1525:
-	.word	.L1522
-	.word	.L1526
-	.word	.L1527
-	.word	.L1522
-.L1526:
-	sub	r6, r0, #7
-	tst	r6, #253
-	beq	.L1523
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1527:
+	b	.L1510
+.L1512:
+	.word	.L1508
+	.word	.L1513
+	.word	.L1514
+	.word	.L1508
+.L1514:
 	cmp	r0, #11
-	ldmnefd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1523:
-	mla	ip, r9, ip, lr
-	ldrb	ip, [ip, #1236]	@ zero_extendqisi2
+	bne	.L1508
+.L1510:
+	mla	ip, r8, ip, lr
+	ldrb	ip, [ip, #1232]	@ zero_extendqisi2
 	cmp	ip, #255
-	bne	.L1528
-.L1529:
+	bne	.L1515
+.L1516:
 	mov	r0, #0
-.L1522:
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1538:
+	b	.L1508
+.L1521:
 	.align	2
-.L1537:
+.L1520:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
 	.fnend
 	.size	queue_lun_state, .-queue_lun_state
 	.align	2
 	.global	queue_remove_completed_req
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	queue_remove_completed_req, %function
 queue_remove_completed_req:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 8
+	@ args = 0, pretend = 0, frame = 16
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L1566
+	ldr	r3, .L1548
 	mov	ip, #0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #12
+	.pad #20
+	sub	sp, sp, #20
+	ldr	r7, .L1548+4
 	mov	r0, #48
-	ldrb	r1, [r3, #2777]	@ zero_extendqisi2
-	mov	r8, r3
-	ldrb	r2, [r3, #2775]	@ zero_extendqisi2
-	mvn	r9, #0
-	ldrb	r6, [r3, #2776]	@ zero_extendqisi2
-	mov	r4, r3
-	ldrb	r7, [r3, #2778]	@ zero_extendqisi2
-	mov	r5, r0
-	ldr	r10, .L1566+4
+	mvn	r4, #0
+	movw	r5, #1275
+	ldrb	r1, [r3, #2771]	@ zero_extendqisi2
+	movw	r6, #1233
+	ldrb	r2, [r3, #2770]	@ zero_extendqisi2
+	add	r8, r3, #1232
+	add	r9, r7, #1
+	add	r10, r7, #2
+	str	r1, [sp, #8]
+	ldrb	r1, [r3, #2773]	@ zero_extendqisi2
+	str	r1, [sp, #12]
+	ldrb	r1, [r3, #2772]	@ zero_extendqisi2
 	str	r1, [sp, #4]
-.L1540:
+.L1523:
 	cmp	r2, #255
-	beq	.L1541
+	beq	.L1524
 	mla	fp, r0, r2, r3
+	movw	lr, #1274
 	mov	r1, r2
-	ldrb	lr, [fp, #1278]	@ zero_extendqisi2
+	ldrb	lr, [fp, lr]	@ zero_extendqisi2
 	sub	lr, lr, #12
 	cmp	lr, #1
-	bls	.L1542
+	bls	.L1525
 	cmp	ip, #0
-	ldrne	r3, .L1566
-	beq	.L1539
-	b	.L1564
-.L1542:
+	beq	.L1522
+.L1547:
+	strb	r2, [r3, #2770]
+	b	.L1522
+.L1525:
 	mul	ip, r0, r1
-	ldrb	r2, [fp, #1236]	@ zero_extendqisi2
-	add	lr, r8, ip
-	ldrb	fp, [lr, #1279]	@ zero_extendqisi2
-	strb	r9, [lr, #1236]
+	ldrb	r2, [fp, #1232]	@ zero_extendqisi2
+	add	lr, r3, ip
+	ldrb	fp, [lr, r5]	@ zero_extendqisi2
+	strb	r4, [lr, #1232]
 	cmp	fp, #1
-	bne	.L1545
-	add	ip, r10, ip
+	bne	.L1528
+	add	ip, r8, ip
 	ldrh	ip, [ip, #34]
 	cmp	ip, #0
-	moveq	ip, r7
-	ldreq	lr, .L1566+8
+	ldreq	ip, [sp, #12]
+	moveq	lr, r10
 	ldrne	ip, [sp, #4]
-	ldrne	lr, .L1566+12
-	b	.L1546
-.L1545:
-	cmp	fp, #0
-	beq	.L1565
-.L1547:
-	mov	ip, #1
-	b	.L1540
-.L1565:
-	ldr	ip, [lr, #1256]
-	cmn	ip, #1
-	movne	ip, r6
-	ldrne	lr, .L1566+16
-	beq	.L1547
-.L1546:
+	movne	lr, r9
+.L1529:
 	cmp	ip, #255
-	bne	.L1551
-	strb	r2, [r3, #2775]
+	bne	.L1534
+	strb	r2, [r3, #2770]
 	mov	r2, #48
-	mla	r1, r2, r1, r3
-	ldrb	r3, [r1, #1237]	@ zero_extendqisi2
+	mla	r3, r2, r1, r3
+	ldrb	r3, [r3, #1233]	@ zero_extendqisi2
 	strb	r3, [lr]
-	b	.L1539
-.L1551:
+.L1522:
+	add	sp, sp, #20
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1528:
+	cmp	fp, #0
+	bne	.L1530
+	ldr	ip, [lr, #1252]
+	cmn	ip, #1
+	ldrne	ip, [sp, #8]
+	movne	lr, r7
+	bne	.L1529
+.L1530:
+	mov	ip, #1
+	b	.L1523
+.L1534:
 	mov	lr, ip
 	mla	ip, r0, ip, r3
-	ldrb	ip, [ip, #1236]	@ zero_extendqisi2
+	ldrb	ip, [ip, #1232]	@ zero_extendqisi2
 	cmp	ip, #255
-	bne	.L1551
-	mla	r1, r5, r1, r4
-	mla	lr, r5, lr, r4
-	ldrb	r1, [r1, #1237]	@ zero_extendqisi2
-	strb	r1, [lr, #1236]
-	b	.L1547
-.L1541:
+	bne	.L1534
+	mla	r1, r0, r1, r3
+	mla	lr, r0, lr, r3
+	ldrb	r1, [r1, r6]	@ zero_extendqisi2
+	strb	r1, [lr, #1232]
+	b	.L1530
+.L1524:
 	cmp	ip, #0
-	beq	.L1539
+	beq	.L1522
 	mvn	r2, #0
-.L1564:
-	strb	r2, [r3, #2775]
-.L1539:
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1567:
+	b	.L1547
+.L1549:
 	.align	2
-.L1566:
+.L1548:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+1236
-	.word	.LANCHOR0+2778
-	.word	.LANCHOR0+2777
-	.word	.LANCHOR0+2776
+	.word	.LANCHOR0+2771
 	.fnend
 	.size	queue_remove_completed_req, .-queue_remove_completed_req
 	.align	2
 	.global	pm_select_ram_region
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_select_ram_region, %function
 pm_select_ram_region:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r2, .L1583
+	ldr	r1, .L1561
 	mov	r3, #0
-	movw	r1, #65535
-.L1570:
-	mov	ip, r3, asl #3
-	uxth	r0, r3
-	ldrh	ip, [ip, r2]
-	cmp	ip, r1
-	ldr	ip, .L1583
-	bxeq	lr
+	movw	r0, #65535
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	add	r2, r1, #4
+.L1552:
+	lsl	ip, r3, #3
+	uxth	r4, r3
+	ldrh	ip, [ip, r1]
+	cmp	ip, r0
+	beq	.L1551
 	add	r3, r3, #1
 	cmp	r3, #32
-	bne	.L1570
-	mov	r2, #0
-	mov	r0, r3
-	mov	r1, #32768
-	stmfd	sp!, {r4, r5, r6, lr}
-	.save {r4, r5, r6, lr}
-.L1572:
-	add	r3, ip, r2, asl #3
-	uxth	lr, r2
-	ldrh	r3, [r3, #2]
-	tst	r3, #32768
-	bne	.L1571
-	cmp	r3, r1
-	movcc	r1, r3
-	movcc	r0, lr
-.L1571:
-	add	r2, r2, #1
-	cmp	r2, #32
-	bne	.L1572
-	cmp	r0, #32
-	mov	r4, r0
-	ldmnefd	sp!, {r4, r5, r6, pc}
-	ldr	r2, .L1583+4
-	mov	r3, #0
+	bne	.L1552
+	mov	r4, r3
+	mov	r1, #0
+	mov	r3, #32768
+	sub	ip, r2, #4
+.L1554:
+	add	r0, ip, r1, lsl #3
+	uxth	lr, r1
+	ldrh	r0, [r0, #2]
+	tst	r0, #32768
+	bne	.L1553
+	cmp	r0, r3
+	movcc	r3, r0
+	movcc	r4, lr
+.L1553:
+	add	r1, r1, #1
+	cmp	r1, #32
+	bne	.L1554
+	cmp	r4, #32
+	bne	.L1551
+	ldr	r3, .L1561+4
 	mvn	r1, #0
-	sub	r2, r2, #2528
-	ldrb	r5, [r2, #256]	@ zero_extendqisi2
-.L1574:
-	mov	lr, r3, asl #3
-	uxth	r6, r3
-	add	r0, ip, lr
+	sub	r2, r2, #4
+	ldrb	lr, [r3, #-2276]	@ zero_extendqisi2
+	mov	r3, #0
+.L1556:
+	lsl	ip, r3, #3
+	uxth	r5, r3
+	add	r0, r2, ip
 	ldrh	r0, [r0, #2]
 	cmp	r0, r1
-	bcs	.L1573
-	ldrh	lr, [lr, r2]
-	cmp	lr, r5
+	bcs	.L1555
+	ldrh	ip, [ip, r2]
+	cmp	ip, lr
 	movne	r1, r0
-	movne	r4, r6
-.L1573:
+	movne	r4, r5
+.L1555:
 	add	r3, r3, #1
 	cmp	r3, #32
-	bne	.L1574
+	bne	.L1556
 	cmp	r4, #32
-	bne	.L1575
-	ldr	r1, .L1583+8
+	bne	.L1551
 	movw	r2, #377
-	ldr	r0, .L1583+12
+	ldr	r1, .L1561+8
+	ldr	r0, .L1561+12
 	bl	printk
 	bl	dump_stack
-.L1575:
+.L1551:
 	mov	r0, r4
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L1584:
+	pop	{r4, r5, r6, pc}
+.L1562:
 	.align	2
-.L1583:
-	.word	.LANCHOR3-2528
+.L1561:
+	.word	.LANCHOR3-2532
 	.word	.LANCHOR3
-	.word	.LANCHOR1+1804
+	.word	.LANCHOR1+1629
 	.word	.LC0
 	.fnend
 	.size	pm_select_ram_region, .-pm_select_ram_region
 	.align	2
 	.global	ftl_memset
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_memset, %function
 ftl_memset:
 	.fnstart
@@ -9193,518 +9449,503 @@
 	.size	ftl_memset, .-ftl_memset
 	.align	2
 	.global	flash_lsb_page_tbl_build
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_lsb_page_tbl_build, %function
 flash_lsb_page_tbl_build:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
 	mov	r6, r0
-	ldr	r4, .L1630
+	ldr	r5, .L1618
 	mov	r0, #1024
-	ldr	r3, [r4, #1096]
+	ldr	r3, [r5, #1104]
 	ldrb	r1, [r3, #12]	@ zero_extendqisi2
 	bl	__aeabi_idiv
 	cmp	r6, #0
-	uxth	r5, r0
-	bne	.L1587
-	add	r4, r4, #4
-.L1588:
-	mov	r3, r6, asl #1
-	strh	r6, [r3, r4]	@ movhi
+	uxth	r4, r0
+	bne	.L1565
+	add	r5, r5, #4
+.L1566:
+	lsl	r3, r6, #1
+	strh	r6, [r3, r5]	@ movhi
 	add	r6, r6, #1
 	cmp	r6, #512
-	bne	.L1588
-.L1592:
-	mov	r1, #255
-	ldr	r0, .L1630+4
+	bne	.L1566
+.L1572:
 	mov	r2, #2048
+	mov	r1, #255
+	ldr	r0, .L1618+4
 	bl	ftl_memset
+	ldr	ip, .L1618+8
 	mov	r3, #0
-	ldr	r1, .L1630+8
-	ldr	r0, .L1630+4
-	b	.L1589
-.L1587:
+	ldr	r0, .L1618+4
+.L1567:
+	lsl	r2, r3, #1
+	add	r3, r3, #1
+	ldrh	r2, [r2, ip]
+	lsl	r1, r2, #1
+	strh	r2, [r0, r1]	@ movhi
+	uxth	r2, r3
+	cmp	r2, r4
+	bcc	.L1567
+	pop	{r4, r5, r6, pc}
+.L1565:
 	cmp	r6, #1
-	bne	.L1590
-	add	r4, r4, #4
+	bne	.L1568
 	mov	r3, #0
-.L1591:
+	add	r5, r5, #4
+.L1571:
+	cmp	r3, #3
 	uxth	r2, r3
-	mov	ip, r3, asl #1
-	cmp	r2, #3
-	movls	r0, #0
-	movhi	r0, #1
-	bics	r1, r0, r3
+	bls	.L1569
+	tst	r2, #1
+	movne	r1, #3
+	moveq	r1, #2
+	rsb	r2, r1, r2, lsl #1
+	uxth	r2, r2
+.L1569:
+	lsl	r1, r3, #1
 	add	r3, r3, #1
-	movne	r1, #2
-	moveq	r1, #3
-	cmp	r0, #0
-	rsb	r1, r1, r2, asl #1
-	movne	r2, r1
 	cmp	r3, #512
-	strh	r2, [ip, r4]	@ movhi
-	bne	.L1591
-	b	.L1592
-.L1590:
+	strh	r2, [r1, r5]	@ movhi
+	bne	.L1571
+	b	.L1572
+.L1568:
 	cmp	r6, #2
-	bne	.L1593
-	add	r4, r4, #4
-	mov	r3, #0
-.L1594:
-	uxth	r2, r3
-	mov	r1, r3, asl #1
+	bne	.L1573
+	mov	r2, #0
+	add	r5, r5, #4
+.L1575:
+	uxth	r3, r2
 	cmp	r2, #1
-	add	r3, r3, #1
-	mov	r0, r2, asl #1
-	subhi	r2, r0, #1
-	cmp	r3, #512
-	strh	r2, [r1, r4]	@ movhi
-	bne	.L1594
-	b	.L1592
-.L1593:
+	lsl	r1, r2, #1
+	add	r2, r2, #1
+	lslhi	r3, r3, #1
+	subhi	r3, r3, #1
+	uxthhi	r3, r3
+	cmp	r2, #512
+	strh	r3, [r1, r5]	@ movhi
+	bne	.L1575
+	b	.L1572
+.L1573:
 	cmp	r6, #3
-	bne	.L1595
-	add	r4, r4, #4
+	bne	.L1576
 	mov	r3, #0
-.L1596:
+	add	r5, r5, #4
+.L1579:
+	cmp	r3, #5
 	uxth	r2, r3
-	mov	ip, r3, asl #1
-	cmp	r2, #5
-	movls	r0, #0
-	movhi	r0, #1
-	bics	r1, r0, r3
+	bls	.L1577
+	tst	r2, #1
+	movne	r1, #5
+	moveq	r1, #4
+	rsb	r2, r1, r2, lsl #1
+	uxth	r2, r2
+.L1577:
+	lsl	r1, r3, #1
 	add	r3, r3, #1
-	movne	r1, #4
-	moveq	r1, #5
-	cmp	r0, #0
-	rsb	r1, r1, r2, asl #1
-	movne	r2, r1
 	cmp	r3, #512
-	strh	r2, [ip, r4]	@ movhi
-	bne	.L1596
-	b	.L1592
-.L1595:
+	strh	r2, [r1, r5]	@ movhi
+	bne	.L1579
+	b	.L1572
+.L1576:
 	cmp	r6, #4
+	mov	r2, r5
 	mov	r3, #0
-	bne	.L1597
-	strh	r3, [r4, #4]	@ movhi
+	bne	.L1580
+	strh	r3, [r5, #4]	@ movhi
 	mov	r3, #1
-	strh	r6, [r4, #12]	@ movhi
-	strh	r3, [r4, #6]	@ movhi
+	strh	r3, [r5, #6]	@ movhi
 	mov	r3, #2
-	strh	r3, [r4, #8]	@ movhi
+	strh	r3, [r5, #8]	@ movhi
 	mov	r3, #3
-	strh	r3, [r4, #10]	@ movhi
+	strh	r3, [r5, #10]	@ movhi
 	mov	r3, #5
-	strh	r3, [r4, #14]	@ movhi
+	strh	r3, [r5, #14]	@ movhi
 	mov	r3, #7
-	strh	r3, [r4, #16]	@ movhi
+	strh	r3, [r5, #16]	@ movhi
 	mov	r3, #8
-	strh	r3, [r4, #18]!	@ movhi
-.L1598:
+	strh	r6, [r5, #12]	@ movhi
+	strh	r3, [r5, #18]!	@ movhi
+.L1582:
 	tst	r3, #1
 	movne	r2, #7
 	moveq	r2, #6
-	rsb	r2, r2, r3, asl #1
+	rsb	r2, r2, r3, lsl #1
 	add	r3, r3, #1
-	strh	r2, [r4, #2]!	@ movhi
 	uxth	r3, r3
+	strh	r2, [r5, #2]!	@ movhi
 	cmp	r3, #512
-	bne	.L1598
-	b	.L1592
-.L1597:
+	bne	.L1582
+	b	.L1572
+.L1580:
 	cmp	r6, #5
-	bne	.L1599
-	add	r4, r4, #4
-.L1600:
-	mov	r2, r3, asl #1
-	strh	r3, [r2, r4]	@ movhi
+	bne	.L1583
+	add	r1, r5, #4
+.L1584:
+	lsl	r0, r3, #1
+	strh	r3, [r0, r1]	@ movhi
 	add	r3, r3, #1
 	cmp	r3, #16
-	bne	.L1600
-	ldr	r2, .L1630+12
-.L1601:
+	bne	.L1584
+	add	r2, r2, #34
+.L1585:
 	strh	r3, [r2, #2]!	@ movhi
 	add	r3, r3, #2
 	uxth	r3, r3
 	cmp	r3, #1008
-	bne	.L1601
-	b	.L1592
-.L1599:
+	bne	.L1585
+	b	.L1572
+.L1583:
 	cmp	r6, #8
-	bne	.L1602
-	add	r4, r4, #4
-.L1603:
-	strh	r3, [r3, r4]	@ movhi
+	bne	.L1586
+	add	r5, r5, #4
+.L1587:
+	strh	r3, [r3, r5]	@ movhi
 	add	r3, r3, #2
 	cmp	r3, #1024
-	bne	.L1603
-	b	.L1592
-.L1602:
+	bne	.L1587
+	b	.L1572
+.L1586:
 	cmp	r6, #9
-	bne	.L1604
-	strh	r3, [r4, #4]	@ movhi
-	movw	r2, #1021
+	bne	.L1588
+	strh	r3, [r5, #4]	@ movhi
 	mov	r3, #1
-	strh	r3, [r4, #6]	@ movhi
+	strh	r3, [r5, #6]	@ movhi
 	mov	r3, #2
-	strh	r3, [r4, #8]!	@ movhi
+	strh	r3, [r5, #8]!	@ movhi
+	movw	r2, #1021
 	mov	r3, #3
-.L1605:
-	strh	r3, [r4, #2]!	@ movhi
+.L1589:
+	strh	r3, [r5, #2]!	@ movhi
 	add	r3, r3, #2
 	uxth	r3, r3
 	cmp	r3, r2
-	bne	.L1605
-	b	.L1592
-.L1604:
+	bne	.L1589
+	b	.L1572
+.L1588:
 	cmp	r6, #10
-	bne	.L1606
-	add	r4, r4, #4
-.L1607:
-	mov	r2, r3, asl #1
-	strh	r3, [r2, r4]	@ movhi
+	bne	.L1590
+	add	r1, r5, #4
+.L1591:
+	lsl	r0, r3, #1
+	strh	r3, [r0, r1]	@ movhi
 	add	r3, r3, #1
 	cmp	r3, #63
-	bne	.L1607
-	ldr	r2, .L1630+16
+	bne	.L1591
+	add	r2, r2, #128
 	movw	r1, #961
-.L1608:
+.L1592:
 	strh	r3, [r2, #2]!	@ movhi
 	add	r3, r3, #2
 	uxth	r3, r3
 	cmp	r3, r1
-	bne	.L1608
-	b	.L1592
-.L1606:
+	bne	.L1592
+	b	.L1572
+.L1590:
 	cmp	r6, #11
-	bne	.L1609
-	ldr	r2, .L1630+8
+	bne	.L1593
+	ldr	r1, .L1618+8
 	mov	r3, #0
-.L1610:
-	mov	r1, r3, asl #1
-	strh	r3, [r1, r2]	@ movhi
+.L1594:
+	lsl	r0, r3, #1
+	strh	r3, [r0, r1]	@ movhi
 	add	r3, r3, #1
 	cmp	r3, #8
-	bne	.L1610
-	ldr	r1, .L1630+20
-.L1611:
+	bne	.L1594
+	add	r2, r2, #18
+.L1596:
 	tst	r3, #1
-	movne	r2, #7
-	moveq	r2, #6
-	rsb	r2, r2, r3, asl #1
+	movne	r1, #7
+	moveq	r1, #6
+	rsb	r1, r1, r3, lsl #1
 	add	r3, r3, #1
-	strh	r2, [r1, #2]!	@ movhi
 	uxth	r3, r3
+	strh	r1, [r2, #2]!	@ movhi
 	cmp	r3, #512
-	bne	.L1611
-	b	.L1592
-.L1609:
+	bne	.L1596
+	b	.L1572
+.L1593:
 	cmp	r6, #13
-	bne	.L1592
-	ldr	r2, .L1630+24
+	bne	.L1572
+	ldr	r2, .L1618+12
 	mov	r3, #0
-.L1612:
+.L1597:
 	strh	r3, [r2, #2]!	@ movhi
 	add	r3, r3, #3
 	uxth	r3, r3
 	cmp	r3, #1536
-	bne	.L1612
-	b	.L1592
-.L1589:
-	uxth	r2, r3
-	cmp	r2, r5
-	bcs	.L1629
-	mov	r2, r3, asl #1
-	add	r3, r3, #1
-	ldrh	r2, [r2, r1]
-	mov	ip, r2, asl #1
-	strh	r2, [r0, ip]	@ movhi
-	b	.L1589
-.L1629:
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L1631:
+	bne	.L1597
+	b	.L1572
+.L1619:
 	.align	2
-.L1630:
+.L1618:
 	.word	.LANCHOR0
-	.word	.LANCHOR3-2268
+	.word	.LANCHOR3-2272
 	.word	.LANCHOR0+4
-	.word	.LANCHOR0+34
-	.word	.LANCHOR0+128
-	.word	.LANCHOR0+18
 	.word	.LANCHOR0+2
 	.fnend
 	.size	flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build
 	.align	2
 	.global	flash_die_info_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_die_info_init, %function
 flash_die_info_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
-	ldr	r5, .L1663
-	ldr	r3, [r5]
+	ldr	r4, .L1638
+	ldr	r3, [r4]
 	tst	r3, #4096
-	beq	.L1633
-	ldr	r0, .L1663+4
-	ldr	r1, .L1663+8
+	beq	.L1621
+	ldr	r1, .L1638+4
+	ldr	r0, .L1638+8
 	bl	printk
-.L1633:
-	ldrh	r3, [r5, #30]
+.L1621:
+	ldrh	r3, [r4, #30]
 	mov	r7, #0
-	ldr	r4, .L1663+12
-	ldrb	r1, [r5, #16]	@ zero_extendqisi2
-	ldrh	r0, [r5, #14]
-	add	r10, r4, #1200
-	strh	r3, [r4, #2]	@ movhi
-	strb	r7, [r4, #1101]
+	ldr	r5, .L1638+12
+	ldr	r9, .L1638+16
+	ldr	r6, .L1638+20
+	strh	r3, [r5, #2]	@ movhi
+	ldrb	r1, [r4, #16]	@ zero_extendqisi2
+	add	r8, r9, #6
+	ldrh	r0, [r4, #14]
+	mov	r10, r8
+	strb	r7, [r5, #1109]
 	bl	__aeabi_idiv
-	ldr	r6, .L1663+16
-	mov	r1, r7
 	mov	r2, #8
-	ldr	r9, .L1663+20
-	strh	r0, [r6, #-220]	@ movhi
-	ldr	r0, .L1663+24
-	bl	ftl_memset
-	sub	r0, r6, #216
+	strh	r0, [r6, #-224]	@ movhi
 	mov	r1, r7
-	mov	r2, #32
+	ldr	r0, .L1638+24
 	bl	ftl_memset
-.L1638:
-	ldrb	r2, [r5, #4]	@ zero_extendqisi2
-	add	r1, r10, r7, asl #3
-	ldr	r8, .L1663+28
+	mov	r2, #32
+	mov	r1, r7
+	sub	r0, r6, #220
+	bl	ftl_memset
+.L1623:
 	mov	r3, #2
-	ldr	r0, .L1663+32
+	ldrb	r2, [r4, #4]	@ zero_extendqisi2
 	strb	r3, [r7, r9]
-	mov	r3, #0
-.L1634:
-	cmp	r3, r2
-	bcs	.L1661
-	add	ip, r0, r3
-	ldrb	lr, [ip, #1]	@ zero_extendqisi2
-	ldrb	ip, [r1, r3]	@ zero_extendqisi2
-	cmp	lr, ip
-	bne	.L1635
-	add	r3, r3, #1
-	b	.L1634
-.L1661:
-	ldrb	r3, [r4, #1101]	@ zero_extendqisi2
-	mov	r1, #0
+	add	r1, r8, r7, lsl #3
+	ldr	r0, .L1638+28
+	bl	flash_mem_cmp8
+	cmp	r0, #0
+	ldr	fp, .L1638+28
+	bne	.L1622
+	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
+	add	r2, r6, r3, lsl #2
+	str	r0, [r2, #-220]
 	uxtb	r0, r7
-	add	r2, r6, r3, asl #2
-	str	r1, [r2, #-216]
 	add	r2, r3, #1
-	add	r3, r4, r3
-	strb	r2, [r4, #1101]
-	strb	r0, [r3, #1180]
+	add	r3, r5, r3
+	strb	r2, [r5, #1109]
+	strb	r0, [r3, #1144]
 	bl	zftl_flash_enter_slc_mode
-.L1635:
+.L1622:
 	add	r7, r7, #1
 	cmp	r7, #4
-	bne	.L1638
-	ldrb	r2, [r5, #12]	@ zero_extendqisi2
-	ldr	r3, .L1663
-	cmp	r2, #2
-	beq	.L1639
-.L1646:
-	ldrb	r3, [r5, #17]	@ zero_extendqisi2
-	ldrb	r2, [r4, #1101]	@ zero_extendqisi2
-	smulbb	r2, r2, r3
-	ldrh	r3, [r5, #18]
-	smulbb	r3, r2, r3
-	strh	r3, [r6, #-184]	@ movhi
+	bne	.L1623
+	ldrb	r3, [r4, #12]	@ zero_extendqisi2
+	cmp	r3, #2
+	beq	.L1624
+.L1628:
+	ldrb	r2, [r4, #17]	@ zero_extendqisi2
+	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
+	smulbb	r3, r3, r2
+	ldrh	r2, [r4, #18]
+	smulbb	r3, r3, r2
+	strh	r3, [r6, #-188]	@ movhi
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1639:
-	ldrh	ip, [r3, #18]
-	mov	lr, #0
-	ldrh	r2, [r4, #2]
-	add	r3, r3, #4
-	and	ip, ip, #65280
-	ldrb	r1, [r4, #1101]	@ zero_extendqisi2
-	ldrb	r7, [r3]	@ zero_extendqisi2
-	mul	r2, r2, ip
-	ldrb	ip, [r3, #13]	@ zero_extendqisi2
-	mul	ip, ip, r2
-	ldrb	r2, [r3, #23]	@ zero_extendqisi2
-	str	r2, [sp]
-	mov	r2, ip, asl #1
-	str	r2, [sp, #4]
-	mov	r2, lr
-.L1644:
-	add	r9, r8, r2, asl #3
-	mov	r0, #0
-.L1640:
-	cmp	r0, r7
-	bcs	.L1662
-	add	r10, r3, r0
-	ldrb	fp, [r10, #1]	@ zero_extendqisi2
-	ldrb	r10, [r9, r0]	@ zero_extendqisi2
-	cmp	fp, r10
-	bne	.L1641
-	add	r0, r0, #1
-	b	.L1640
-.L1662:
-	ldmia	sp, {r9, lr}
-	mov	r0, r1
-	add	r1, r6, r1, asl #2
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1624:
+	ldrb	r3, [r4, #4]	@ zero_extendqisi2
+	mov	r7, #0
+	ldrh	r8, [r5, #2]
+	ldrb	r9, [r4, #27]	@ zero_extendqisi2
+	str	r3, [sp]
+	ldrh	r3, [r4, #18]
+	and	r3, r3, #65280
+	mul	r3, r8, r3
+	ldrb	r8, [r4, #17]	@ zero_extendqisi2
+	mul	r8, r8, r3
+	lsl	r3, r8, #1
+.L1627:
+	ldr	r2, [sp]
+	add	r1, r10, r7, lsl #3
+	mov	r0, fp
+	str	r3, [sp, #4]
+	bl	flash_mem_cmp8
+	cmp	r0, #0
+	ldr	r3, [sp, #4]
+	bne	.L1625
+	ldrb	r2, [r5, #1109]	@ zero_extendqisi2
 	cmp	r9, #0
-	moveq	lr, ip
-	str	lr, [r1, #-216]
-	add	r1, r0, #1
-	add	r0, r4, r0
-	mov	lr, #1
-	uxtb	r1, r1
-	strb	r2, [r0, #1180]
-.L1641:
-	add	r2, r2, #1
-	cmp	r2, #4
-	bne	.L1644
-	cmp	lr, #0
-	strneb	r1, [r4, #1101]
-	b	.L1646
-.L1664:
+	moveq	r0, r8
+	movne	r0, r3
+	add	r1, r6, r2, lsl #2
+	str	r0, [r1, #-220]
+	add	r1, r2, #1
+	add	r2, r5, r2
+	strb	r1, [r5, #1109]
+	strb	r7, [r2, #1144]
+.L1625:
+	add	r7, r7, #1
+	cmp	r7, #4
+	bne	.L1627
+	b	.L1628
+.L1639:
 	.align	2
-.L1663:
+.L1638:
 	.word	.LANCHOR2
+	.word	.LANCHOR1+1650
 	.word	.LC4
-	.word	.LANCHOR1+1828
 	.word	.LANCHOR0
+	.word	.LANCHOR0+1154
 	.word	.LANCHOR3
-	.word	.LANCHOR0+1192
-	.word	.LANCHOR0+1180
-	.word	.LANCHOR0+1200
-	.word	.LANCHOR2+4
+	.word	.LANCHOR0+1144
+	.word	.LANCHOR2+5
 	.fnend
 	.size	flash_die_info_init, .-flash_die_info_init
 	.align	2
 	.global	lpa_hash_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	lpa_hash_init, %function
 lpa_hash_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
-	mov	r1, #255
-	ldr	r4, .L1667
 	mov	r2, #512
+	ldr	r4, .L1642
+	mov	r1, #255
 	sub	r0, r4, #3056
-	sub	r0, r0, #4
+	sub	r0, r0, #14
 	bl	ftl_memset
 	sub	r3, r4, #3088
-	ldr	r0, [r4, #-2544]
+	ldrb	r2, [r4, #-3127]	@ zero_extendqisi2
+	ldrh	r3, [r3, #-8]
 	mov	r1, #255
-	ldrh	r2, [r3, #-8]
-	ldrb	r3, [r4, #-3123]	@ zero_extendqisi2
-	mul	r2, r3, r2
-	mov	r2, r2, asl #2
-	ldmfd	sp!, {r4, lr}
+	ldr	r0, [r4, #-2552]
+	pop	{r4, lr}
+	mul	r2, r2, r3
+	lsl	r2, r2, #2
 	b	ftl_memset
-.L1668:
+.L1643:
 	.align	2
-.L1667:
+.L1642:
 	.word	.LANCHOR3
 	.fnend
 	.size	lpa_hash_init, .-lpa_hash_init
 	.align	2
 	.global	lpa_rebuild_hash
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	lpa_rebuild_hash, %function
 lpa_rebuild_hash:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
-	ldr	r3, .L1682
+	ldr	r3, .L1656
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L1670
-	ldr	r0, .L1682+4
-	mov	r2, #239
-	ldr	r1, .L1682+8
+	beq	.L1645
 	mov	r3, #0
+	mov	r2, #239
+	ldr	r1, .L1656+4
+	ldr	r0, .L1656+8
 	bl	printk
-.L1670:
-	ldr	r4, .L1682+12
-	mov	r1, #255
+.L1645:
+	ldr	r4, .L1656+12
 	mov	r2, #512
-	ldr	r0, .L1682+16
-	sub	r5, r4, #3088
-	bl	ftl_memset
-	ldrb	r3, [r4, #-3123]	@ zero_extendqisi2
 	mov	r1, #255
-	ldrh	r2, [r5, #-8]
-	ldr	r0, [r4, #-2544]
-	mul	r2, r3, r2
-	mov	r2, r2, asl #2
+	sub	r5, r4, #3056
+	sub	r6, r4, #3088
+	sub	r5, r5, #14
+	mov	r0, r5
 	bl	ftl_memset
-	sub	lr, r5, #8
-	add	r5, r5, #28
-	mov	r0, #0
-	mov	ip, r4
-.L1671:
-	ldrh	r1, [lr]
-	uxth	r2, r0
-	ldrb	r3, [r4, #-3123]	@ zero_extendqisi2
-	mul	r3, r3, r1
-	cmp	r2, r3, asl #1
-	bge	.L1681
-	ldr	r3, [ip, #-2548]
-	ldr	r3, [r3, r2, asl #2]
+	ldrh	r3, [r6, #-8]
+	mov	r1, #255
+	ldrb	r2, [r4, #-3127]	@ zero_extendqisi2
+	ldr	r0, [r4, #-2552]
+	mul	r2, r2, r3
+	lsl	r2, r2, #2
+	bl	ftl_memset
+	mov	r1, #0
+.L1646:
+	ldrh	r0, [r6, #-8]
+	uxth	ip, r1
+	ldrb	r3, [r4, #-3127]	@ zero_extendqisi2
+	mov	r2, ip
+	mul	r3, r3, r0
+	cmp	ip, r3, lsl #1
+	blt	.L1648
+	pop	{r4, r5, r6, pc}
+.L1648:
+	ldr	r3, [r4, #-2556]
+	ldr	r3, [r3, r2, lsl #2]
 	cmn	r3, #1
-	beq	.L1672
+	beq	.L1647
 	uxtb	r3, r3
-	mov	r3, r3, asl #1
-	ldrh	r1, [r5, r3]
-	strh	r2, [r5, r3]	@ movhi
-	mov	r2, r2, asl #1
-	ldr	r3, [ip, #-2544]
-	strh	r1, [r3, r2]	@ movhi
-.L1672:
-	add	r0, r0, #1
-	b	.L1671
-.L1681:
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1683:
+	lsl	r2, r2, #1
+	lsl	r3, r3, #1
+	ldrh	r0, [r5, r3]
+	strh	ip, [r5, r3]	@ movhi
+	ldr	r3, [r4, #-2552]
+	strh	r0, [r3, r2]	@ movhi
+.L1647:
+	add	r1, r1, #1
+	b	.L1646
+.L1657:
 	.align	2
-.L1682:
+.L1656:
 	.word	.LANCHOR2
-	.word	.LC125
-	.word	.LANCHOR1+1848
+	.word	.LANCHOR1+1670
+	.word	.LC122
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3060
 	.fnend
 	.size	lpa_rebuild_hash, .-lpa_rebuild_hash
 	.align	2
 	.global	zftl_read_flash_info
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_read_flash_info, %function
 zftl_read_flash_info:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
-	mov	r1, #0
 	mov	r2, #11
+	mov	r1, #0
 	mov	r4, r0
 	bl	ftl_memset
-	ldr	r2, .L1689
-	ldr	r3, .L1689+4
+	ldr	r2, .L1662
 	mov	ip, #1
-	ldrh	r1, [r2, #2]
-	ldrb	r0, [r3, #13]	@ zero_extendqisi2
-	smulbb	r1, r0, r1
-	ldr	r0, .L1689+8
+	ldr	r3, .L1662+4
+	ldrh	r0, [r2, #2]
+	ldrb	r1, [r3, #13]	@ zero_extendqisi2
+	smulbb	r1, r1, r0
+	ldr	r0, .L1662+8
 	strh	r1, [r4, #4]	@ unaligned
-	ldrb	r1, [r2, #1172]	@ zero_extendqisi2
+	ldrb	r1, [r2, #1193]	@ zero_extendqisi2
 	strb	r1, [r4, #7]
 	ldr	r1, [r2, #1032]
 	str	r1, [r4]	@ unaligned
@@ -9713,1348 +9954,1251 @@
 	mov	r1, #32
 	ldrb	r3, [r3, #11]	@ zero_extendqisi2
 	strb	r1, [r4, #8]
-	ldrb	r1, [r2, #1101]	@ zero_extendqisi2
+	ldrb	r1, [r2, #1109]	@ zero_extendqisi2
 	strb	r3, [r4, #9]
 	mov	r3, #0
 	strb	r3, [r4, #10]
-.L1685:
+.L1659:
 	uxtb	r2, r3
-	cmp	r2, r1
-	bcs	.L1688
+	cmp	r1, r2
+	bhi	.L1660
+	pop	{r4, pc}
+.L1660:
 	ldrb	lr, [r3, r0]	@ zero_extendqisi2
 	add	r3, r3, #1
 	ldrb	r2, [r4, #10]	@ zero_extendqisi2
-	orr	r2, r2, ip, asl lr
+	orr	r2, r2, ip, lsl lr
 	strb	r2, [r4, #10]
-	b	.L1685
-.L1688:
-	ldmfd	sp!, {r4, pc}
-.L1690:
+	b	.L1659
+.L1663:
 	.align	2
-.L1689:
+.L1662:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LANCHOR0+1180
+	.word	.LANCHOR0+1144
 	.fnend
 	.size	zftl_read_flash_info, .-zftl_read_flash_info
 	.align	2
-	.global	gc_init
-	.type	gc_init, %function
-gc_init:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 0
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, lr}
-	movw	r9, #2828
-	ldr	r6, .L1693
-	mov	r5, #0
-	ldr	r4, .L1693+4
-	mov	r1, r5
-	add	r7, r6, r9
-	movw	r2, #2204
-	sub	r8, r4, #3088
-	mov	r0, r7
-	strb	r5, [r4, #-3115]
-	strb	r5, [r4, #-182]
-	str	r5, [r4, #-180]
-	strh	r5, [r8]	@ movhi
-	bl	ftl_memset
-	ldrh	r2, [r8, #-8]
-	mvn	r3, #0
-	strh	r3, [r6, r9]	@ movhi
-	movw	ip, #2812
-	str	r5, [r6, #2836]
-	mov	r3, r2, lsr #1
-	strh	r3, [r7, #34]	@ movhi
-	ldrb	r3, [r4, #-3123]	@ zero_extendqisi2
-	mov	r0, r2, lsr #2
-	strh	r0, [r7, #32]	@ movhi
-	sub	r7, r4, #3104
-	smulbb	r1, r3, r2
-	strh	r5, [r7, #-8]	@ movhi
-	strh	r5, [r7, #-6]	@ movhi
-	strh	r5, [r7, #-4]	@ movhi
-	uxth	r1, r1
-	sub	lr, r1, #32
-	strh	lr, [r6, ip]	@ movhi
-	movw	ip, #2810
-	strh	r1, [r6, ip]	@ movhi
-	add	r1, r6, #2816
-	strh	r2, [r1]	@ movhi
-	mov	r2, #4
-	strh	r2, [r4, #-176]	@ movhi
-	movw	r2, #2814
-	strh	r0, [r6, r2]	@ movhi
-	sub	r4, r4, #3072
-	ldrh	r0, [r7, #-10]
-	mul	r0, r3, r0
-	mov	r0, r0, asl #2
-	bl	ftl_malloc
-	ldrb	r3, [r4, #-51]	@ zero_extendqisi2
-	str	r0, [r4, #2900]
-	ldrh	r0, [r7, #-10]
-	mul	r0, r3, r0
-	mov	r0, r0, asl #2
-	bl	ftl_malloc
-	ldrh	r3, [r7, #-10]
-	str	r0, [r4, #2904]
-	ldrb	r0, [r4, #-51]	@ zero_extendqisi2
-	mul	r0, r0, r3
-	bl	ftl_malloc
-	ldrb	r3, [r4, #-51]	@ zero_extendqisi2
-	str	r0, [r4, #-48]
-	ldrh	r0, [r7, #-10]
-	mul	r0, r3, r0
-	mov	r0, r0, asl #2
-	bl	ftl_malloc
-	ldrb	r3, [r4, #-51]	@ zero_extendqisi2
-	str	r0, [r4, #-56]
-	ldrh	r0, [r7, #-10]
-	mul	r0, r3, r0
-	mov	r0, r0, asl #2
-	bl	ftl_malloc
-	movw	r2, #2808
-	str	r0, [r4, #2908]
-	ldrh	r3, [r4, #-14]
-	mov	r3, r3, lsr #2
-	strh	r3, [r6, r2]	@ movhi
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
-.L1694:
-	.align	2
-.L1693:
-	.word	.LANCHOR0
-	.word	.LANCHOR3
-	.fnend
-	.size	gc_init, .-gc_init
-	.align	2
 	.global	gc_static_wearleveling
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_static_wearleveling, %function
 gc_static_wearleveling:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	ldr	r0, .L1779
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #44
 	sub	sp, sp, #44
-	ldr	r4, .L1814
-	ldr	r3, [r4, #2804]
+	ldr	r3, [r0, #2800]
 	ldr	r3, [r3, #32]
 	cmp	r3, #10240
-	bls	.L1696
+	bls	.L1665
 	bl	ftl_tmp_into_update
-.L1696:
-	ldr	r3, [r4, #1092]
+.L1665:
+	ldr	r3, [r0, #1096]
 	ldr	r2, [r3, #568]
-	ldr	r0, [r3, #12]
-	add	r1, r2, #35840
-	add	r1, r1, #160
-	cmp	r0, r1
-	bcs	.L1697
-	ldr	r1, .L1814
-	ldr	ip, [r1, #2804]
-	ldr	r1, [r3, #572]
-	ldr	ip, [ip, #36]
-	add	r1, r1, #256
-	cmp	ip, r1
+	ldr	r1, [r3, #12]
+	add	ip, r2, #35840
+	add	ip, ip, #160
+	cmp	r1, ip
+	bcs	.L1666
+	ldr	lr, [r0, #2800]
+	ldr	ip, [r3, #572]
+	ldr	lr, [lr, #36]
+	add	ip, ip, #256
+	cmp	lr, ip
 	movcc	r0, #0
-	bcc	.L1806
-.L1697:
+	bcc	.L1664
+.L1666:
 	add	r2, r2, #860160
 	add	r2, r2, #3840
-	cmp	r0, r2
-	bhi	.L1699
-	ldr	r1, [r4, #2804]
-	ldr	r2, [r3, #572]
-	ldr	r1, [r1, #36]
-	add	r2, r2, #32
 	cmp	r1, r2
+	bhi	.L1668
+	ldr	ip, [r0, #2800]
+	ldr	r2, [r3, #572]
+	ldr	ip, [ip, #36]
+	add	r2, r2, #32
+	cmp	ip, r2
 	movls	r7, #0
-	movls	r9, r7
-	bls	.L1700
-.L1699:
-	ldr	r2, [r4, #2804]
-	mov	r8, #0
-	ldr	ip, .L1814
-	movw	r5, #65535
-	mov	fp, r8
-	mov	r9, r8
-	ldr	r1, [r2, #36]
-	mov	r10, r8
-	str	r0, [r3, #568]
-	mov	r6, r5
-	str	r8, [sp, #32]
-	str	r1, [r3, #572]
+	movls	r5, r7
+	bls	.L1669
+.L1668:
+	ldr	r2, [r0, #2800]
+	mov	r4, #0
+	ldr	r5, .L1779
+	movw	r10, #65535
+	ldr	r8, .L1779+4
+	mov	r6, r4
+	ldr	r0, [r2, #36]
+	mov	fp, r10
+	str	r1, [r3, #568]
+	ldr	r9, .L1779+8
+	str	r0, [r3, #572]
 	ldrh	r7, [r2, #134]
-	str	r8, [sp, #28]
-	str	r8, [sp, #24]
-	str	r8, [sp, #20]
-.L1701:
-	ldr	r2, .L1814+4
-	ldr	r3, .L1814
-	ldrh	r2, [r2]
-	cmp	r2, r7
-	bls	.L1811
-	ldr	r0, [ip, #1080]
-	mov	r1, r7, asl #2
-	add	lr, r0, r1
-	ldrb	r3, [lr, #2]	@ zero_extendqisi2
-	and	r2, r3, #224
-	cmp	r2, #224
-	beq	.L1702
-	tst	r3, #8
-	ldrneh	r3, [r0, r1]
-	ldrne	r4, [r0, r1]
-	ubfxne	r3, r3, #0, #11
-	ubfxne	r4, r4, #11, #8
-	bne	.L1704
-.L1703:
-	tst	r3, #24
-	ldreqh	r3, [r0, r1]
-	movweq	r4, #65535
-	ldrne	r4, [r0, r1]
-	movwne	r3, #65535
-	ubfxeq	r3, r3, #0, #11
-	ubfxne	r4, r4, #11, #8
-	bne	.L1706
-.L1704:
-	ldr	r2, [sp, #32]
-	add	r9, r9, #1
-	cmp	r5, r3
-	add	r2, r2, r3
-	uxth	r9, r9
-	str	r2, [sp, #32]
-	ldrhi	r2, [ip, #1092]
-	movhi	r5, r3
-	addhi	r2, r2, #584
-	strhih	r7, [r2, #2]	@ movhi
-.L1748:
-	ldr	r2, [sp, #20]
-	cmp	r2, r3
-	movw	r2, #65535
-	strcc	r3, [sp, #20]
-	movcc	r8, r7
-	cmp	r4, r2
-	beq	.L1708
-.L1706:
-	ldr	r2, [sp, #24]
-	cmp	r6, r4
-	add	r2, r2, #1
-	movhi	r6, r4
-	uxth	r2, r2
-	str	r2, [sp, #24]
-	ldr	r2, [sp, #28]
-	add	r2, r2, r4
-	str	r2, [sp, #28]
-	ldrhi	r2, [ip, #1092]
-	addhi	r2, r2, #584
-	strhih	r7, [r2]	@ movhi
-	cmp	r10, r4
-	movcc	fp, r7
-	movcc	r10, r4
-.L1708:
-	cmp	r4, #9
-	cmphi	r3, #9
-	bhi	.L1702
-	ldr	r3, .L1814+8
-	ldr	r3, [r3]
-	tst	r3, #256
-	beq	.L1702
-	ldrh	r2, [r0, r1]
-	ldr	r3, [r0, r1]
-	ldrb	r1, [lr, #2]	@ zero_extendqisi2
-	ubfx	r2, r2, #0, #11
-	ubfx	r3, r3, #11, #8
-	str	ip, [sp, #36]
-	ubfx	r1, r1, #3, #2
-	str	r1, [sp]
-	ldrb	r1, [lr, #2]	@ zero_extendqisi2
-	mov	r1, r1, lsr #5
-	str	r1, [sp, #4]
-	ldrb	r1, [lr, #3]	@ zero_extendqisi2
-	str	r1, [sp, #8]
-	mov	r1, r7, asl #1
-	ldr	r0, [ip, #1088]
-	ldrh	r1, [r0, r1]
-	ldr	r0, .L1814+12
-	str	r1, [sp, #12]
-	mov	r1, r7
-	bl	printk
-	ldr	ip, [sp, #36]
-.L1702:
-	add	r7, r7, #1
-	uxth	r7, r7
-	b	.L1701
-.L1811:
-	ldr	r0, [r3, #1092]
-	mov	r2, #0
-	mov	r1, #255
-	str	r3, [sp, #36]
-	add	r0, r0, #264
-	strh	r2, [r0, #-142]	@ movhi
+	str	r4, [sp, #36]
+	str	r4, [sp, #32]
+	str	r4, [sp, #28]
+	str	r4, [sp, #24]
+	str	r4, [sp, #16]
+	str	r4, [sp, #20]
+.L1670:
+	ldrh	r3, [r8]
+	cmp	r3, r7
+	bhi	.L1679
+	ldr	r0, [r5, #1096]
+	mov	r3, #0
 	mov	r2, #128
+	mov	r1, #255
+	strh	r3, [r0, #122]	@ movhi
+	add	r0, r0, #264
 	bl	ftl_memset
-	movw	r2, #586
-	ldr	r3, [sp, #36]
-	ldr	r1, [r3, #1092]
-	ldr	r7, [r3, #1080]
-	ldrh	r1, [r1, r2]
-	ldr	r2, .L1814+8
-	mov	ip, r1, asl #2
-	ldr	r2, [r2]
-	add	r4, r7, ip
-	tst	r2, #1024
-	beq	.L1711
-	ldrb	r0, [r4, #2]	@ zero_extendqisi2
-	ldrh	r2, [r7, ip]
-	ldr	lr, [r7, r1, asl #2]
+	ldr	r2, [r5, #1096]
+	movw	r3, #586
+	ldr	r8, [r5, #1084]
+	ldrh	r1, [r2, r3]
+	ldr	r3, .L1779+8
+	ldr	r3, [r3]
+	lsl	r9, r1, #2
+	add	r7, r8, r9
+	tst	r3, #1024
+	beq	.L1680
+	ldr	ip, [r5, #1092]
+	lsl	r0, r1, #1
+	ldr	r3, [r8, r1, lsl #2]
+	ldrh	r2, [r8, r9]
+	ldrh	r0, [ip, r0]
+	ubfx	r3, r3, #11, #8
+	ubfx	r2, r2, #0, #11
+	str	r0, [sp, #12]
+	ldrb	r0, [r7, #3]	@ zero_extendqisi2
+	str	r0, [sp, #8]
+	ldrb	r0, [r7, #2]	@ zero_extendqisi2
+	lsr	r0, r0, #5
+	str	r0, [sp, #4]
+	ldrb	r0, [r7, #2]	@ zero_extendqisi2
 	ubfx	r0, r0, #3, #2
 	str	r0, [sp]
-	ubfx	r2, r2, #0, #11
-	ldrb	r0, [r4, #2]	@ zero_extendqisi2
-	str	ip, [sp, #36]
-	mov	r0, r0, lsr #5
-	str	r0, [sp, #4]
-	ldrb	r0, [r4, #3]	@ zero_extendqisi2
-	str	r0, [sp, #8]
-	ldr	r0, [r3, #1088]
-	mov	r3, r1, asl #1
-	ldrh	r3, [r0, r3]
-	ldr	r0, .L1814+16
-	str	r3, [sp, #12]
-	ubfx	r3, lr, #11, #8
+	ldr	r0, .L1779+12
 	bl	printk
-	ldr	ip, [sp, #36]
-.L1711:
-	ldrb	r3, [r4, #2]	@ zero_extendqisi2
-	ldr	r1, .L1814
+.L1680:
+	ldrb	r3, [r7, #2]	@ zero_extendqisi2
 	and	r3, r3, #224
 	cmp	r3, #32
-	bne	.L1712
-	ldr	r3, [r1, #2804]
+	bne	.L1681
+	ldr	r3, .L1779
+	ldr	r3, [r3, #2800]
 	add	r3, r3, #688
 	ldrh	r3, [r3]
 	cmp	r3, #2
-	ldrhi	r3, .L1814+20
+	ldrhi	r3, .L1779+16
 	movhi	r2, #1
-	strhi	r2, [r3, #-160]
-.L1712:
-	ldrb	r2, [r4, #2]	@ zero_extendqisi2
+	strhi	r2, [r3, #-184]
+.L1681:
+	ldrb	r2, [r7, #2]	@ zero_extendqisi2
 	tst	r2, #8
-	beq	.L1713
-	ldr	r3, [r1, #2804]
-	ldr	r0, .L1814+20
-	ldr	r4, .L1814
+	beq	.L1682
+	ldr	r5, .L1779
+	ldr	r3, [r5, #2800]
 	ldrh	r1, [r3, #96]
-	ldrh	r0, [r0, #-156]
-	ldrh	r3, [r7, ip]
+	ldr	r3, .L1779+16
+	ldrh	r0, [r3, #-180]
+	ldrh	r3, [r8, r9]
 	ubfx	r3, r3, #0, #11
 	add	r3, r3, r0, lsr #2
 	cmp	r1, r3
-	ble	.L1713
+	ble	.L1682
 	and	r3, r2, #192
 	cmp	r3, #64
-	bne	.L1714
-	ldr	r2, [r4, #1092]
+	bne	.L1683
+	ldr	r0, [r5, #1096]
 	movw	r3, #586
-	mov	r1, #0
-	ldrh	r0, [r2, r3]
 	mov	r2, #1
+	mov	r1, #0
+	ldrh	r0, [r0, r3]
 	bl	gc_add_sblk
-	ldr	r2, .L1814+24
-	movw	r3, #2180
+	ldr	r2, .L1779+20
 	mov	r1, #1
+	movw	r3, #2180
 	strh	r1, [r2, r3]	@ movhi
-	b	.L1713
-.L1714:
+.L1682:
+	ldr	r1, .L1779
+	ldr	r3, [r1, #1096]
+	ldr	r7, [r1, #1084]
+	add	r3, r3, #584
+	ldrh	r5, [r3]
+	ldr	r3, .L1779+8
+	ldr	r3, [r3]
+	lsl	r2, r5, #2
+	add	r8, r7, r2
+	tst	r3, #1024
+	beq	.L1684
+	ldr	r0, [r1, #1092]
+	lsl	r1, r5, #1
+	ldr	r3, [r7, r5, lsl #2]
+	ldrh	r2, [r7, r2]
+	ldrh	r1, [r0, r1]
+	ubfx	r3, r3, #11, #8
+	ldr	r0, .L1779+24
+	ubfx	r2, r2, #0, #11
+	str	r1, [sp, #12]
+	ldrb	r1, [r8, #3]	@ zero_extendqisi2
+	str	r1, [sp, #8]
+	ldrb	r1, [r8, #2]	@ zero_extendqisi2
+	lsr	r1, r1, #5
+	str	r1, [sp, #4]
+	ldrb	r1, [r8, #2]	@ zero_extendqisi2
+	ubfx	r1, r1, #3, #2
+	str	r1, [sp]
+	mov	r1, r5
+	bl	printk
+.L1684:
+	ldrb	r3, [r8, #2]	@ zero_extendqisi2
+	tst	r3, #8
+	beq	.L1685
+	ldr	r8, .L1779
+	ldr	r2, [r8, #2800]
+	ldrh	r1, [r2, #98]
+	ldr	r2, .L1779+16
+	ldrh	r0, [r2, #-178]
+	ldr	r2, [r7, r5, lsl #2]
+	ubfx	r2, r2, #11, #8
+	add	r2, r2, r0, lsr #2
+	cmp	r1, r2
+	ble	.L1685
+	and	r2, r3, #192
+	cmp	r2, #64
+	bne	.L1686
+	ldr	r3, [r8, #1096]
+	mov	r2, #1
+	mov	r1, #0
+	add	r3, r3, #584
+	ldrh	r0, [r3]
+	bl	gc_add_sblk
+	ldr	r2, .L1779+20
+	mov	r1, #1
+	movw	r3, #2180
+	strh	r1, [r2, r3]	@ movhi
+.L1685:
+	ldr	r3, .L1779+8
+	ldr	r3, [r3]
+	tst	r3, #1024
+	beq	.L1687
+	ldr	r1, .L1779
+	lsl	ip, r4, #2
+	ldr	r2, [r1, #1084]
+	add	r0, r2, ip
+	ldr	r3, [r2, r4, lsl #2]
+	ldrh	r2, [r2, ip]
+	ldr	ip, [r1, #1092]
+	lsl	r1, r4, #1
+	ubfx	r3, r3, #11, #8
+	ubfx	r2, r2, #0, #11
+	ldrh	r1, [ip, r1]
+	str	r1, [sp, #12]
+	ldrb	r1, [r0, #3]	@ zero_extendqisi2
+	str	r1, [sp, #8]
+	ldrb	r1, [r0, #2]	@ zero_extendqisi2
+	lsr	r1, r1, #5
+	str	r1, [sp, #4]
+	ldrb	r1, [r0, #2]	@ zero_extendqisi2
+	ldr	r0, .L1779+28
+	ubfx	r1, r1, #3, #2
+	str	r1, [sp]
+	mov	r1, r4
+	bl	printk
+.L1687:
+	ldr	r3, .L1779+8
+	ldr	r3, [r3]
+	tst	r3, #1024
+	beq	.L1688
+	ldr	r1, .L1779
+	lsl	ip, r6, #2
+	ldr	r2, [r1, #1084]
+	add	r0, r2, ip
+	ldr	r3, [r2, r6, lsl #2]
+	ldrh	r2, [r2, ip]
+	ldr	ip, [r1, #1092]
+	lsl	r1, r6, #1
+	ubfx	r3, r3, #11, #8
+	ubfx	r2, r2, #0, #11
+	ldrh	r1, [ip, r1]
+	str	r1, [sp, #12]
+	ldrb	r1, [r0, #3]	@ zero_extendqisi2
+	str	r1, [sp, #8]
+	ldrb	r1, [r0, #2]	@ zero_extendqisi2
+	lsr	r1, r1, #5
+	str	r1, [sp, #4]
+	ldrb	r1, [r0, #2]	@ zero_extendqisi2
+	ldr	r0, .L1779+32
+	ubfx	r1, r1, #3, #2
+	str	r1, [sp]
+	mov	r1, r6
+	bl	printk
+.L1688:
+	ldr	r5, .L1779
+	ldrh	r3, [sp, #16]
+	ldr	r1, [sp, #24]
+	ldr	r4, [r5, #2800]
+	ldr	r0, [sp, #36]
+	strh	r3, [r4, #96]	@ movhi
+	ldrh	r3, [sp, #20]
+	strh	r10, [r4, #92]	@ movhi
+	strh	fp, [r4, #94]	@ movhi
+	strh	r3, [r4, #98]	@ movhi
+	bl	__aeabi_uidiv
+	strh	r0, [r4, #88]	@ movhi
+	mov	r6, r0
+	ldr	r1, [sp, #28]
+	ldr	r0, [sp, #32]
+	bl	__aeabi_uidiv
+	strh	r0, [r4, #90]	@ movhi
+	ldr	r4, .L1779+8
+	ldr	r3, [r4]
+	tst	r3, #1024
+	beq	.L1689
+	uxth	r0, r0
+	uxth	r3, r6
+	ldr	r2, [sp, #28]
+	str	r0, [sp]
+	ldr	r1, [sp, #24]
+	ldr	r0, .L1779+36
+	bl	printk
+.L1689:
+	ldr	r3, [r4]
+	ldr	r4, .L1779+16
+	tst	r3, #1024
+	beq	.L1690
+	ldrh	r3, [r4, #-178]
+	mov	r2, fp
+	mov	r1, r10
+	ldr	r0, .L1779+40
+	str	r3, [sp, #8]
+	ldrh	r3, [r4, #-180]
+	str	r3, [sp, #4]
+	ldr	r3, [sp, #20]
+	str	r3, [sp]
+	ldr	r3, [sp, #16]
+	bl	printk
+.L1690:
+	ldr	r3, [sp, #20]
+	sub	r3, r3, fp
+	str	r3, [sp, #24]
+	ldr	r2, [sp, #24]
+	ldrh	r3, [r4, #-178]
+	cmp	r2, r3
+	bgt	.L1691
+	ldr	r3, [sp, #16]
+	ldrh	r2, [r4, #-180]
+	sub	r3, r3, r10
+	cmp	r3, r2
+	movle	r7, #0
+	movle	r5, r7
+	ble	.L1692
+.L1691:
+	ldr	r3, [r5, #1096]
+	mov	r7, #0
+	ldr	r4, [r3, #580]
+	ldr	r3, [r5, #2800]
+	mov	r5, r7
+	ldrh	r9, [r3, #134]
+	uxth	r4, r4
+	ldr	r3, .L1779+20
+	add	r3, r3, #2176
+	add	r3, r3, #4
+	str	r3, [sp, #20]
+.L1693:
+	ldr	r3, .L1779+4
+	ldrh	r3, [r3]
+	cmp	r9, r3
+	bcc	.L1703
+.L1702:
+	ldr	r3, .L1779
+	ldr	r3, [r3, #1096]
+	str	r4, [r3, #580]
+.L1692:
+	cmp	fp, #0
+	beq	.L1705
+	ldr	r2, .L1779
+	ldr	r4, .L1779+4
+	ldr	r3, [r2, #2800]
+	mov	r0, r2
+	ldrh	r3, [r3, #134]
+.L1706:
+	ldrh	r2, [r4]
+	cmp	r2, r3
+	bhi	.L1708
+	ldr	r3, [r0, #2800]
+	ldrh	r2, [r3, #72]
+	add	r2, fp, r2
+	strh	r2, [r3, #72]	@ movhi
+	ldrh	r2, [r3, #98]
+	cmp	fp, r2
+	subcc	r2, r2, fp
+	strhcc	r2, [r3, #98]	@ movhi
+.L1705:
+	cmp	r10, #0
+	beq	.L1711
+	ldr	r3, .L1779
+	ldr	r6, .L1779+4
+	ldr	r2, [r3, #2800]
+	mov	ip, r3
+	ldrh	r0, [r2, #134]
+.L1712:
+	ldrh	r3, [r6]
+	cmp	r3, r0
+	bhi	.L1714
+	ldr	r3, [ip, #2800]
+	ldrh	r2, [r3, #74]
+	add	r2, r10, r2
+	strh	r2, [r3, #74]	@ movhi
+	ldrh	r2, [r3, #96]
+	cmp	r10, r2
+	subcc	r2, r2, r10
+	strhcc	r2, [r3, #96]	@ movhi
+.L1711:
+	ldr	r4, .L1779+44
+	mov	r1, #0
+	sub	r0, r4, #12
+	bl	_list_get_gc_head_node
+	movw	r2, #65535
+	cmp	r0, r2
+	beq	.L1669
+	ldr	r2, .L1779
+	lsl	r3, r0, #1
+	ldr	r1, [r2, #1092]
+	ldrh	r2, [r4, #-8]
+	ldrh	r3, [r1, r3]
+	cmp	r3, r2, lsr #1
+	bhi	.L1669
+	add	r5, r5, #1
+	mov	r2, #1
+	mov	r1, #0
+	bl	gc_add_sblk
+.L1669:
+	add	r0, r5, r7
+.L1664:
+	add	sp, sp, #44
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1679:
+	ldr	r0, [r5, #1084]
+	lsl	r1, r7, #2
+	add	ip, r0, r1
+	ldrb	r3, [ip, #2]	@ zero_extendqisi2
+	and	r2, r3, #224
+	cmp	r2, #224
+	beq	.L1671
+	tst	r3, #8
+	beq	.L1672
+	ldrh	r2, [r0, r1]
+	ldr	r3, [r0, r1]
+	ubfx	r2, r2, #0, #11
+	ubfx	r3, r3, #11, #8
+.L1673:
+	ldr	lr, [sp, #24]
+	cmp	r10, r2
+	add	lr, lr, #1
+	uxth	lr, lr
+	str	lr, [sp, #24]
+	ldr	lr, [sp, #36]
+	add	lr, lr, r2
+	str	lr, [sp, #36]
+	ldrhi	r10, [r5, #1096]
+	movwhi	lr, #586
+	strhhi	r7, [r10, lr]	@ movhi
+	movhi	r10, r2
+.L1717:
+	ldr	lr, [sp, #16]
+	cmp	lr, r2
+	movcc	lr, r2
+	movcc	r4, r7
+	str	lr, [sp, #16]
+	movw	lr, #65535
+	cmp	r3, lr
+	bne	.L1675
+.L1677:
+	cmp	r2, #9
+	cmphi	r3, #9
+	bhi	.L1671
+	ldr	r3, [r9]
+	tst	r3, #256
+	beq	.L1671
+	ldr	r3, [r0, r1]
+	ldrh	r2, [r0, r1]
+	lsl	r1, r7, #1
+	ldr	r0, [r5, #1092]
+	ubfx	r3, r3, #11, #8
+	ubfx	r2, r2, #0, #11
+	ldrh	r1, [r0, r1]
+	ldr	r0, .L1779+48
+	str	r1, [sp, #12]
+	ldrb	r1, [ip, #3]	@ zero_extendqisi2
+	str	r1, [sp, #8]
+	ldrb	r1, [ip, #2]	@ zero_extendqisi2
+	lsr	r1, r1, #5
+	str	r1, [sp, #4]
+	ldrb	r1, [ip, #2]	@ zero_extendqisi2
+	ubfx	r1, r1, #3, #2
+	str	r1, [sp]
+	mov	r1, r7
+	bl	printk
+.L1671:
+	add	r7, r7, #1
+	uxth	r7, r7
+	b	.L1670
+.L1672:
+	tst	r3, #24
+	ldrheq	r2, [r0, r1]
+	movweq	r3, #65535
+	ldrne	r3, [r0, r1]
+	movwne	r2, #65535
+	ubfxeq	r2, r2, #0, #11
+	ubfxne	r3, r3, #11, #8
+	beq	.L1673
+.L1675:
+	ldr	lr, [sp, #28]
+	cmp	fp, r3
+	movhi	fp, r3
+	add	lr, lr, #1
+	uxth	lr, lr
+	str	lr, [sp, #28]
+	ldr	lr, [sp, #32]
+	add	lr, lr, r3
+	str	lr, [sp, #32]
+	ldrhi	lr, [r5, #1096]
+	addhi	lr, lr, #584
+	strhhi	r7, [lr]	@ movhi
+	ldr	lr, [sp, #20]
+	cmp	lr, r3
+	movcc	lr, r3
+	movcc	r6, r7
+	str	lr, [sp, #20]
+	b	.L1677
+.L1683:
 	tst	r2, #224
-	bne	.L1713
-	ldr	r3, [r4, #1092]
-	movw	r2, #590
-	movw	r1, #65535
-	ldrh	r0, [r3, r2]
-	cmp	r0, r1
-	bne	.L1713
+	bne	.L1682
+	ldr	r3, [r5, #1096]
+	movw	r8, #590
+	movw	r2, #65535
+	ldrh	r1, [r3, r8]
+	cmp	r1, r2
+	bne	.L1682
 	movw	r7, #586
-	str	r2, [sp, #36]
 	ldrh	r0, [r3, r7]
 	add	r3, r3, #588
 	ldrh	r3, [r3]
 	cmp	r3, r0
-	beq	.L1713
+	beq	.L1682
 	bl	zftl_remove_free_node
-	ldr	r3, [r4, #1092]
-	ldrh	r1, [r3, r7]
-	ldr	r2, [sp, #36]
-	strh	r1, [r3, r2]	@ movhi
+	ldr	r3, [r5, #1096]
+	ldrh	r2, [r3, r7]
+	strh	r2, [r3, r8]	@ movhi
 	mvn	r2, #0
 	strh	r2, [r3, r7]	@ movhi
-.L1713:
-	ldr	r1, .L1814
-	ldr	r2, .L1814+8
-	ldr	r3, [r1, #1092]
-	ldr	r2, [r2]
-	add	r3, r3, #584
-	ldr	ip, [r1, #1080]
-	tst	r2, #1024
-	ldrh	r7, [r3]
-	mov	r3, r7, asl #2
-	add	r4, ip, r3
-	beq	.L1715
-	ldrb	r0, [r4, #2]	@ zero_extendqisi2
-	ldrh	r2, [ip, r3]
-	ubfx	r0, r0, #3, #2
-	ldr	r3, [ip, r7, asl #2]
-	str	r0, [sp]
-	ubfx	r2, r2, #0, #11
-	ldrb	r0, [r4, #2]	@ zero_extendqisi2
-	ubfx	r3, r3, #11, #8
-	str	ip, [sp, #36]
-	mov	r0, r0, lsr #5
-	str	r0, [sp, #4]
-	ldrb	r0, [r4, #3]	@ zero_extendqisi2
-	str	r0, [sp, #8]
-	ldr	r0, [r1, #1088]
-	mov	r1, r7, asl #1
-	ldrh	r1, [r0, r1]
-	ldr	r0, .L1814+28
-	str	r1, [sp, #12]
-	mov	r1, r7
-	bl	printk
-	ldr	ip, [sp, #36]
-.L1715:
-	ldrb	r3, [r4, #2]	@ zero_extendqisi2
-	ldr	r4, .L1814
-	tst	r3, #8
-	beq	.L1716
-	ldr	r2, [r4, #2804]
-	ldr	r0, .L1814+20
-	ldrh	r1, [r2, #98]
-	ldrh	r0, [r0, #-154]
-	ldr	r2, [ip, r7, asl #2]
-	ubfx	r2, r2, #11, #8
-	add	r2, r2, r0, lsr #2
-	cmp	r1, r2
-	ble	.L1716
-	and	r2, r3, #192
-	cmp	r2, #64
-	bne	.L1717
-	ldr	r3, [r4, #1092]
-	mov	r1, #0
-	mov	r2, #1
-	add	r3, r3, #584
-	ldrh	r0, [r3]
-	bl	gc_add_sblk
-	ldr	r2, .L1814+24
-	movw	r3, #2180
-	mov	r1, #1
-	strh	r1, [r2, r3]	@ movhi
-	b	.L1716
-.L1717:
+	b	.L1682
+.L1686:
 	and	r3, r3, #248
 	cmp	r3, #16
-	bne	.L1716
-	ldr	r3, [r4, #1092]
+	bne	.L1685
+	ldr	r3, [r8, #1096]
 	add	r2, r3, #588
 	ldrh	r1, [r2]
 	movw	r2, #65535
 	cmp	r1, r2
-	bne	.L1716
+	bne	.L1685
 	add	r2, r3, #584
 	ldrh	r0, [r2]
 	movw	r2, #590
 	ldrh	r3, [r3, r2]
 	cmp	r3, r0
-	beq	.L1716
+	beq	.L1685
 	bl	zftl_remove_free_node
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r8, #1096]
 	add	r2, r3, #588
 	add	r3, r3, #584
 	ldrh	r1, [r3]
 	strh	r1, [r2]	@ movhi
 	mvn	r2, #0
 	strh	r2, [r3]	@ movhi
-.L1716:
-	ldr	r3, .L1814+8
-	ldr	r0, [r4, #1080]
-	ldr	r3, [r3]
-	tst	r3, #1024
-	beq	.L1718
-	mov	r3, r8, asl #2
-	add	r1, r0, r3
-	ldrh	r2, [r0, r3]
-	ldr	r3, [r0, r8, asl #2]
-	ldrb	r0, [r1, #2]	@ zero_extendqisi2
-	ubfx	r2, r2, #0, #11
-	ubfx	r3, r3, #11, #8
-	ubfx	r0, r0, #3, #2
-	str	r0, [sp]
-	ldrb	r0, [r1, #2]	@ zero_extendqisi2
-	mov	r0, r0, lsr #5
-	str	r0, [sp, #4]
-	ldrb	r1, [r1, #3]	@ zero_extendqisi2
-	str	r1, [sp, #8]
-	ldr	r1, .L1814
-	ldr	r0, [r1, #1088]
-	mov	r1, r8, asl #1
-	ldrh	r1, [r0, r1]
-	ldr	r0, .L1814+32
-	str	r1, [sp, #12]
-	mov	r1, r8
-	bl	printk
-.L1718:
-	ldr	r3, .L1814+8
-	ldr	ip, .L1814
-	ldr	r3, [r3]
-	ldr	r0, [ip, #1080]
-	tst	r3, #1024
-	beq	.L1719
-	mov	r3, fp, asl #2
-	add	r1, r0, r3
-	ldrh	r2, [r0, r3]
-	ldr	r3, [r0, fp, asl #2]
-	ldrb	r0, [r1, #2]	@ zero_extendqisi2
-	ubfx	r2, r2, #0, #11
-	ubfx	r3, r3, #11, #8
-	ubfx	r0, r0, #3, #2
-	str	r0, [sp]
-	ldrb	r0, [r1, #2]	@ zero_extendqisi2
-	mov	r0, r0, lsr #5
-	str	r0, [sp, #4]
-	ldrb	r1, [r1, #3]	@ zero_extendqisi2
-	str	r1, [sp, #8]
-	mov	r1, fp, asl #1
-	ldr	r0, [ip, #1088]
-	ldrh	r1, [r0, r1]
-	ldr	r0, .L1814+36
-	str	r1, [sp, #12]
-	mov	r1, fp
-	bl	printk
-.L1719:
-	ldr	r4, [r4, #2804]
-	mov	r1, r9
-	ldrh	r3, [sp, #20]
-	ldr	r0, [sp, #32]
-	strh	r10, [r4, #98]	@ movhi
-	strh	r3, [r4, #96]	@ movhi
-	strh	r5, [r4, #92]	@ movhi
-	strh	r6, [r4, #94]	@ movhi
-	bl	__aeabi_uidiv
-	strh	r0, [r4, #88]	@ movhi
-	mov	r7, r0
-	ldr	r1, [sp, #24]
-	ldr	r0, [sp, #28]
-	bl	__aeabi_uidiv
-	strh	r0, [r4, #90]	@ movhi
-	ldr	r4, .L1814+8
-	ldr	r3, [r4]
-	tst	r3, #1024
-	beq	.L1720
-	uxth	r0, r0
-	mov	r1, r9
-	str	r0, [sp]
-	uxth	r3, r7
-	ldr	r0, .L1814+40
-	ldr	r2, [sp, #24]
-	bl	printk
-.L1720:
-	ldr	r3, [r4]
-	ldr	r4, .L1814+20
-	tst	r3, #1024
-	beq	.L1721
-	str	r10, [sp]
-	mov	r1, r5
-	ldrh	r3, [r4, #-156]
-	mov	r2, r6
-	ldr	r0, .L1814+44
-	str	r3, [sp, #4]
-	ldrh	r3, [r4, #-154]
-	str	r3, [sp, #8]
-	ldr	r3, [sp, #20]
-	bl	printk
-.L1721:
-	rsb	r3, r6, r10
-	str	r3, [sp, #24]
-	ldr	r2, [sp, #24]
-	ldrh	r3, [r4, #-154]
-	cmp	r2, r3
-	bgt	.L1722
-	ldr	r2, .L1814+20
-	ldr	r3, [sp, #20]
-	ldrh	r2, [r2, #-156]
-	rsb	r3, r5, r3
-	cmp	r3, r2
-	movle	r7, #0
-	movle	r9, r7
-	ble	.L1723
-.L1722:
-	ldr	ip, .L1814
-	mov	r7, #0
-	mov	r9, r7
-	ldr	r3, [ip, #1092]
-	mov	fp, ip
-	ldr	r4, [r3, #580]
-	ldr	r3, [ip, #2804]
-	uxth	r4, r4
-	ldrh	r10, [r3, #134]
-.L1724:
-	ldr	r3, .L1814+4
-	ldrh	r3, [r3]
-	cmp	r10, r3
-	bcs	.L1733
+	b	.L1685
+.L1703:
 	add	r4, r4, #1
 	uxth	r4, r4
-	cmp	r4, r3
-	ldr	r3, [fp, #1080]
-	movcs	r4, #0
-	mov	r8, r4, asl #2
-	add	r2, r3, r8
+	cmp	r3, r4
+	ldr	r3, .L1779
+	movls	r4, #0
+	lsl	r6, r4, #2
+	ldr	r8, [r3, #1084]
+	add	r2, r8, r6
 	ldrb	r2, [r2, #2]	@ zero_extendqisi2
-	tst	r2, #192
-	and	r0, r2, #224
-	moveq	r1, #1
-	movne	r1, #0
-	cmp	r0, #224
-	orreq	r1, r1, #1
+	and	ip, r2, #224
+	and	r1, r2, #192
 	cmp	r1, #0
-	bne	.L1726
+	cmpne	ip, #224
+	beq	.L1695
 	ubfx	r2, r2, #3, #2
+	ldr	r0, .L1779+16
 	ands	r1, r2, #1
-	beq	.L1727
-	cmp	r0, #160
-	b	.L1809
-.L1727:
-	cmp	r2, #2
-.L1809:
-	bne	.L1729
-	ldr	r2, .L1814+20
+	beq	.L1696
+	cmp	ip, #160
+.L1777:
+	bne	.L1698
+	ldrh	r2, [r0, #-178]
 	ldr	r0, [sp, #24]
-	ldrh	r2, [r2, #-154]
 	cmp	r0, r2
-	ble	.L1730
-	ldr	r2, [r3, r8]
+	ble	.L1699
+	ldr	r2, [r8, r6]
 	ubfx	r2, r2, #11, #8
-	cmp	r2, r6
-	bls	.L1731
+	cmp	r2, fp
+	bls	.L1700
 	cmp	r1, #0
-	beq	.L1730
-	ldrh	r2, [r3, r8]
+	beq	.L1699
+	ldrh	r2, [r8, r6]
 	ubfx	r2, r2, #0, #11
-	cmp	r2, r5
-	bgt	.L1730
-.L1731:
-	mov	r1, #0
+	cmp	r2, r10
+	bgt	.L1699
+.L1700:
 	mov	r2, #1
+	mov	r1, #0
 	mov	r0, r4
 	str	r3, [sp, #28]
 	bl	gc_add_sblk
-	ldr	r2, .L1814+48
-	mov	r1, #1
-	add	r9, r9, r1
-	strh	r1, [r2]	@ movhi
-	ldr	r2, .L1814+8
+	ldr	r3, [sp, #20]
+	mov	r2, #1
+	add	r5, r5, r2
+	strh	r2, [r3]	@ movhi
+	ldr	r2, .L1779+8
+	ldr	r3, [sp, #28]
 	ldr	r2, [r2]
 	tst	r2, #1024
-	ldr	r3, [sp, #28]
-	beq	.L1730
-	ldr	r0, [fp, #1088]
-	mov	r1, r4, asl r1
-	ldr	r2, [fp, #1080]
-	ldrh	lr, [r0, r1]
-	add	r2, r2, r8
-	ldr	r1, .L1814+24
-	ldrb	r2, [r2, #2]	@ zero_extendqisi2
-	ldr	r0, .L1814+52
-	ldrh	r1, [r1, #52]
-	str	r1, [sp]
-	ldrh	r1, [r3, r8]
+	beq	.L1699
+	ldr	r1, [r3, #1092]
+	lsl	r2, r4, #1
+	ldr	r3, [r3, #1084]
+	ldrh	r0, [r1, r2]
+	ldr	r1, [r8, r6]
+	add	r3, r3, r6
+	ldrb	r2, [r3, #2]	@ zero_extendqisi2
+	ldr	r3, .L1779+20
+	ubfx	r1, r1, #11, #8
+	str	r1, [sp, #8]
+	ldrh	r1, [r8, r6]
+	lsr	r2, r2, #5
 	ubfx	r1, r1, #0, #11
 	str	r1, [sp, #4]
-	ldr	r3, [r3, r8]
-	ubfx	r3, r3, #11, #8
-	str	r3, [sp, #8]
-	b	.L1810
-.L1729:
-	ldr	r0, .L1814+20
-	ldr	r2, [sp, #20]
-	ldrh	r0, [r0, #-156]
-	rsb	r2, r5, r2
+	mov	r1, r4
+	ldrh	r3, [r3, #52]
+	str	r3, [sp]
+	mov	r3, r0
+	ldr	r0, .L1779+52
+.L1778:
+	bl	printk
+.L1699:
+	cmp	r7, #4
+	cmpls	r5, #4
+	bhi	.L1702
+.L1695:
+	add	r9, r9, #1
+	uxth	r9, r9
+	b	.L1693
+.L1696:
+	cmp	r2, #2
+	b	.L1777
+.L1698:
+	ldr	r2, [sp, #16]
+	ldrh	r0, [r0, #-180]
+	sub	r2, r2, r10
 	cmp	r2, r0
-	ble	.L1730
-	ldrh	r2, [r3, r8]
-	add	r0, r5, #8
+	ble	.L1699
+	ldrh	r2, [r8, r6]
+	add	r0, r10, #8
 	ubfx	r2, r2, #0, #11
 	cmp	r2, r0
-	ble	.L1732
+	ble	.L1701
 	cmp	r1, #0
-	beq	.L1730
-	ldr	r2, [r3, r8]
-	add	r1, r6, #4
+	beq	.L1699
+	ldr	r2, [r8, r6]
+	add	r1, fp, #4
 	ubfx	r2, r2, #11, #8
 	cmp	r2, r1
-	bgt	.L1730
-.L1732:
-	mov	r1, #0
+	bgt	.L1699
+.L1701:
 	mov	r2, #1
+	mov	r1, #0
 	mov	r0, r4
 	str	r3, [sp, #28]
 	bl	gc_add_sblk
-	ldr	r2, .L1814+48
-	mov	r1, #1
-	add	r7, r7, r1
-	strh	r1, [r2]	@ movhi
-	ldr	r2, .L1814+8
+	ldr	r3, [sp, #20]
+	mov	r2, #1
+	add	r7, r7, r2
+	strh	r2, [r3]	@ movhi
+	ldr	r2, .L1779+8
+	ldr	r3, [sp, #28]
 	ldr	r2, [r2]
 	tst	r2, #1024
-	ldr	r3, [sp, #28]
-	beq	.L1730
-	ldr	r0, [fp, #1088]
-	mov	r1, r4, asl r1
-	ldr	r2, [fp, #1080]
-	ldrh	lr, [r0, r1]
-	add	r2, r2, r8
-	ldr	r1, .L1814+24
-	ldrb	r2, [r2, #2]	@ zero_extendqisi2
-	ldr	r0, .L1814+56
-	ldrh	r1, [r1, #52]
-	str	r1, [sp]
-	ldrh	r1, [r3, r8]
+	beq	.L1699
+	ldr	r1, [r3, #1092]
+	lsl	r2, r4, #1
+	ldr	r3, [r3, #1084]
+	ldrh	r0, [r1, r2]
+	ldr	r1, [r8, r6]
+	add	r3, r3, r6
+	ldrb	r2, [r3, #2]	@ zero_extendqisi2
+	ldr	r3, .L1779+20
+	ubfx	r1, r1, #11, #8
+	str	r1, [sp, #8]
+	ldrh	r1, [r8, r6]
+	lsr	r2, r2, #5
 	ubfx	r1, r1, #0, #11
 	str	r1, [sp, #4]
-	ldr	r3, [r3, r8]
-	ubfx	r3, r3, #11, #8
-	str	r3, [sp, #8]
-.L1810:
 	mov	r1, r4
-	mov	r2, r2, lsr #5
-	mov	r3, lr
-	bl	printk
-.L1730:
-	cmp	r9, #4
-	cmpls	r7, #4
-	bhi	.L1733
-.L1726:
-	add	r10, r10, #1
-	uxth	r10, r10
-	b	.L1724
-.L1733:
-	ldr	r3, .L1814
-	ldr	r3, [r3, #1092]
-	str	r4, [r3, #580]
-.L1723:
-	cmp	r6, #0
-	beq	.L1736
-	ldr	r0, .L1814
-	ldr	r4, .L1814+4
-	ldr	r3, [r0, #2804]
-	ldrh	r3, [r3, #134]
-.L1737:
-	ldrh	r2, [r4]
-	cmp	r2, r3
-	bls	.L1812
-	ldr	ip, [r0, #1080]
-	mov	lr, r3, asl #2
-	add	r8, ip, lr
-	ldr	r2, [ip, r3, asl #2]
+	ldrh	r3, [r3, #52]
+	str	r3, [sp]
+	mov	r3, r0
+	ldr	r0, .L1779+56
+	b	.L1778
+.L1708:
+	ldr	ip, [r0, #1084]
+	lsl	lr, r3, #2
+	ldr	r2, [ip, r3, lsl #2]
+	add	r6, ip, lr
 	ubfx	r1, r2, #11, #8
-	cmp	r1, r6
-	bcc	.L1738
-	ldrb	r8, [r8, #2]	@ zero_extendqisi2
-	tst	r8, #24
-	rsbne	r1, r6, r1
+	cmp	fp, r1
+	bhi	.L1707
+	ldrb	r6, [r6, #2]	@ zero_extendqisi2
+	tst	r6, #24
+	subne	r1, r1, fp
 	bfine	r2, r1, #11, #8
 	strne	r2, [ip, lr]
-.L1738:
+.L1707:
 	add	r3, r3, #1
 	uxth	r3, r3
-	b	.L1737
-.L1812:
-	ldr	r3, .L1814
-	ldr	r3, [r3, #2804]
-	ldrh	r2, [r3, #72]
-	add	r2, r6, r2
-	strh	r2, [r3, #72]	@ movhi
-	ldrh	r2, [r3, #98]
-	cmp	r2, r6
-	rsbhi	r2, r6, r2
-	strhih	r2, [r3, #98]	@ movhi
-.L1736:
-	cmp	r5, #0
-	beq	.L1742
-	ldr	ip, .L1814
-	ldr	r6, .L1814+4
-	ldr	r3, [ip, #2804]
-	ldrh	r3, [r3, #134]
-.L1743:
-	ldrh	r2, [r6]
-	cmp	r2, r3
-	bls	.L1813
-	ldr	r4, [ip, #1080]
-	mov	lr, r3, asl #2
-	add	r0, r4, lr
-	ldrh	r2, [r4, lr]
-	ubfx	r1, r2, #0, #11
-	cmp	r1, r5
-	blt	.L1744
-	ldrb	r0, [r0, #2]	@ zero_extendqisi2
-	and	r0, r0, #24
-	cmp	r0, #16
-	rsbne	r1, r5, r1
-	bfine	r2, r1, #0, #11
-	strneh	r2, [r4, lr]	@ movhi
-.L1744:
-	add	r3, r3, #1
-	uxth	r3, r3
-	b	.L1743
-.L1813:
-	ldr	r3, .L1814
-	ldr	r3, [r3, #2804]
-	ldrh	r2, [r3, #74]
-	add	r2, r5, r2
-	strh	r2, [r3, #74]	@ movhi
-	ldrh	r2, [r3, #96]
-	cmp	r2, r5
-	rsbhi	r2, r5, r2
-	strhih	r2, [r3, #96]	@ movhi
-.L1742:
-	ldr	r4, .L1814+60
-	mov	r1, #0
-	sub	r0, r4, #12
-	bl	_list_get_gc_head_node
-	movw	r2, #65535
-	cmp	r0, r2
-	beq	.L1700
-	ldr	r2, .L1814
-	mov	r3, r0, asl #1
-	ldr	r1, [r2, #1088]
-	ldrh	r2, [r4, #-8]
-	ldrh	r3, [r1, r3]
-	cmp	r3, r2, lsr #1
-	bhi	.L1700
-	mov	r1, #0
-	mov	r2, #1
-	bl	gc_add_sblk
-	add	r9, r9, #1
-.L1700:
-	add	r0, r7, r9
-.L1806:
-	add	sp, sp, #44
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1815:
+	b	.L1706
+.L1714:
+	ldr	r4, [ip, #1084]
+	lsl	lr, r0, #2
+	ldrh	r3, [r4, lr]
+	add	r1, r4, lr
+	ubfx	r2, r3, #0, #11
+	cmp	r2, r10
+	blt	.L1713
+	ldrb	r1, [r1, #2]	@ zero_extendqisi2
+	and	r1, r1, #24
+	cmp	r1, #16
+	subne	r2, r2, r10
+	bfine	r3, r2, #0, #11
+	strhne	r3, [r4, lr]	@ movhi
+.L1713:
+	add	r0, r0, #1
+	uxth	r0, r0
+	b	.L1712
+.L1780:
 	.align	2
-.L1814:
+.L1779:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+1076
+	.word	.LANCHOR0+1080
 	.word	.LANCHOR2
+	.word	.LC124
+	.word	.LANCHOR3
+	.word	.LANCHOR0+2824
+	.word	.LC125
 	.word	.LC126
 	.word	.LC127
-	.word	.LANCHOR3
-	.word	.LANCHOR0+2828
 	.word	.LC128
 	.word	.LC129
+	.word	.LANCHOR3-3088
+	.word	.LC123
 	.word	.LC130
 	.word	.LC131
-	.word	.LC132
-	.word	.LANCHOR0+5008
-	.word	.LC133
-	.word	.LC134
-	.word	.LANCHOR3-3088
 	.fnend
 	.size	gc_static_wearleveling, .-gc_static_wearleveling
 	.align	2
 	.global	zftl_sblk_list_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_sblk_list_init, %function
 zftl_sblk_list_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 16
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	movw	r3, #1076
-	ldr	r5, .L1849
+	movw	r3, #1080
+	ldr	r4, .L1813
 	mov	r2, #6
-	ldr	r6, .L1849+4
 	mov	r1, #0
 	.pad #20
 	sub	sp, sp, #20
-	mov	fp, #0
-	ldrh	r3, [r5, r3]
-	mov	r4, fp
-	ldr	r0, [r5, #1036]
-	mov	r8, r5
-	ldr	r10, .L1849+8
+	ldr	r7, .L1813+4
+	mov	r5, #0
+	ldrh	r3, [r4, r3]
+	add	r10, r4, #2784
+	ldr	r0, [r4, #1036]
+	sub	r8, r7, #3072
+	sub	r9, r7, #3104
 	mul	r2, r2, r3
 	bl	ftl_memset
-	sub	r3, r6, #3056
-	mov	r2, #32
-	str	fp, [r6, #-3080]
-	strh	r2, [r3, #-12]	@ movhi
+	mov	r3, #32
+	ldrh	r1, [r9, #-14]
+	strh	r3, [r8, #-4]	@ movhi
+	movw	r3, #2786
+	strh	r5, [r4, r3]	@ movhi
 	movw	r3, #2788
-	strh	fp, [r5, r3]	@ movhi
+	strh	r5, [r4, r3]	@ movhi
 	movw	r3, #2790
-	strh	fp, [r5, r3]	@ movhi
-	movw	r3, #2792
-	strh	fp, [r5, r3]	@ movhi
+	strh	r5, [r4, r3]	@ movhi
 	movw	r3, #2794
-	strh	fp, [r5, r3]	@ movhi
-	sub	r2, r6, #3104
-	movw	r3, #2798
-	str	fp, [r6, #-3076]
-	strh	fp, [r5, r3]	@ movhi
-	movw	r3, #2796
-	strh	fp, [r5, r3]	@ movhi
+	strh	r5, [r4, r3]	@ movhi
+	movw	r3, #2792
+	strh	r5, [r4, r3]	@ movhi
 	mov	r0, #32768
-	ldrb	r3, [r6, #-3123]	@ zero_extendqisi2
-	ldrh	r1, [r2, #-10]
-	str	fp, [r6, #-3072]
-	str	fp, [r6, #-3104]
+	ldrb	r3, [r7, #-3127]	@ zero_extendqisi2
+	str	r5, [r7, #-3088]
+	str	r5, [r7, #-3084]
+	str	r5, [r7, #-3080]
 	mul	r1, r1, r3
-	str	fp, [r6, #-3092]
-	str	fp, [r6, #-3100]
+	str	r5, [r7, #-3104]
+	str	r5, [r7, #-3116]
+	str	r5, [r7, #-3100]
+	strh	r5, [r10]	@ movhi
 	bl	__aeabi_idiv
-	uxth	r3, r0
+	sxth	r3, r0
+	str	r7, [sp, #8]
+	str	r10, [sp, #12]
 	str	r3, [sp, #4]
-	ldr	r3, [r5, #2804]
-	str	r6, [sp, #8]
-	ldrh	r7, [r3, #134]
-	strh	fp, [r3, #146]	@ movhi
-.L1817:
-	ldr	r2, .L1849+12
-	sxth	ip, r7
-	ldr	r3, .L1849
+	ldr	r3, [r4, #2800]
+	ldrsh	r6, [r3, #134]
+	strh	r5, [r3, #146]	@ movhi
+.L1782:
+	ldr	r3, .L1813+8
+	ldrh	r3, [r3]
+	cmp	r6, r3
+	blt	.L1799
+	ldr	r2, [sp, #12]
+	ldr	r3, [r4, #2800]
 	ldrh	r2, [r2]
-	cmp	ip, r2
-	bge	.L1847
-	ldr	r6, [r8, #1080]
-	add	r6, r6, ip, asl #2
-	ldrb	r3, [r6, #3]	@ zero_extendqisi2
+	strh	r2, [r3, #114]	@ movhi
+	movw	r2, #2786
+	ldrh	r2, [r4, r2]
+	strh	r2, [r3, #118]	@ movhi
+	movw	r2, #2788
+	ldrh	r2, [r4, r2]
+	strh	r2, [r3, #116]	@ movhi
+	movw	r2, #2790
+	ldrh	r2, [r4, r2]
+	strh	r2, [r3, #122]	@ movhi
+	movw	r2, #2794
+	ldrh	r2, [r4, r2]
+	strh	r2, [r3, #120]	@ movhi
+	movw	r2, #2792
+	ldrh	r2, [r4, r2]
+	strh	r2, [r3, #124]	@ movhi
+	add	sp, sp, #20
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1799:
+	ldr	r7, [r4, #1084]
+	add	r7, r7, r6, lsl #2
+	ldrb	r3, [r7, #3]	@ zero_extendqisi2
 	cmp	r3, #0
 	ldreq	r1, [sp, #4]
-	beq	.L1818
+	beq	.L1783
 	ldr	r3, [sp, #8]
-	ldrh	fp, [r10]
-	ldr	r0, [r8, #2804]
-	ldrb	lr, [r3, #-3123]	@ zero_extendqisi2
+	ldr	ip, [r4, #2800]
+	ldrh	r10, [r9, #-14]
+	ldrb	lr, [r3, #-3127]	@ zero_extendqisi2
 	mov	r3, #0
 	mov	r1, r3
-.L1819:
+.L1784:
 	cmp	r3, lr
-	bge	.L1848
-	ldrb	r2, [r6, #3]	@ zero_extendqisi2
-	mov	r2, r2, asr r3
+	blt	.L1787
+	cmp	r1, #0
+	beq	.L1788
+	mov	r0, #32768
+	bl	__aeabi_idiv
+	add	r1, r0, #1
+	sxth	r1, r1
+.L1783:
+	lsl	fp, r6, #1
+	ldr	r0, [r4, #1036]
+	add	r2, fp, r6
+	lsl	r2, r2, #1
+	add	ip, r0, r2
+	strh	r1, [ip, #4]	@ movhi
+	mvn	r1, #0
+	strh	r1, [ip, #2]	@ movhi
+	strh	r1, [r0, r2]	@ movhi
+	ldrb	r2, [r7, #2]	@ zero_extendqisi2
+	and	r2, r2, #224
+	cmp	r2, #224
+	cmpne	r2, #32
+	moveq	r10, #1
+	movne	r10, #0
+	beq	.L1789
+	ldr	r1, [r4, #1096]
+	ldrh	r0, [r1, #16]
+	cmp	r6, r0
+	beq	.L1789
+	ldrh	r0, [r1, #48]
+	cmp	r6, r0
+	beq	.L1789
+	ldrh	r1, [r1, #80]
+	cmp	r6, r1
+	beq	.L1789
+	cmp	r2, #64
+	bne	.L1790
+	uxth	r7, r6
+	ldr	r2, .L1813+12
+	sub	r0, r9, #12
+	mov	r1, r7
+.L1811:
+	bl	_insert_data_list
+	ldr	r2, [r4, #1092]
+	ldrh	r3, [r2, fp]
+	cmp	r3, #7
+	movls	r2, r10
+	movls	r1, #1
+	movls	r0, r7
+	bls	.L1809
+.L1789:
+	add	r6, r6, #1
+	sxth	r6, r6
+	b	.L1782
+.L1787:
+	ldrb	r2, [r7, #3]	@ zero_extendqisi2
+	asr	r2, r2, r3
 	add	r3, r3, #1
 	tst	r2, #1
-	addeq	r1, fp, r1
-	ldrneh	r2, [r0, #146]
-	uxtheq	r1, r1
+	ldrhne	r2, [ip, #146]
+	addeq	r1, r10, r1
+	sxtheq	r1, r1
 	addne	r2, r2, #1
-	strneh	r2, [r0, #146]	@ movhi
-	b	.L1819
-.L1848:
-	cmp	r1, #0
-	beq	.L1823
-	sxth	r1, r1
-	mov	r0, #32768
-	str	ip, [sp, #12]
-	bl	__aeabi_idiv
-	add	r0, r0, #1
-	ldr	ip, [sp, #12]
-	uxth	r1, r0
-	b	.L1818
-.L1823:
-	ldrb	r3, [r6, #2]	@ zero_extendqisi2
+	strhne	r2, [ip, #146]	@ movhi
+	b	.L1784
+.L1788:
+	ldrb	r3, [r7, #2]	@ zero_extendqisi2
 	mvn	r0, #0
 	orr	r3, r3, #224
-	strb	r3, [r6, #2]
-	ldr	r2, [r5, #1088]
-	mov	r3, ip, asl #1
+	strb	r3, [r7, #2]
+	lsl	r3, r6, #1
+	ldr	r2, [r4, #1092]
 	strh	r0, [r2, r3]	@ movhi
-.L1818:
-	mov	r9, ip, asl #1
-	ldr	r0, [r5, #1036]
-	add	r2, r9, ip
-	mov	r2, r2, asl #1
-	add	lr, r0, r2
-	strh	r1, [lr, #4]	@ movhi
-	mvn	r1, #0
-	strh	r1, [lr, #2]	@ movhi
-	strh	r1, [r0, r2]	@ movhi
-	ldrb	r2, [r6, #2]	@ zero_extendqisi2
-	and	r2, r2, #224
-	cmp	r2, #32
-	cmpne	r2, #224
-	moveq	fp, #1
-	movne	fp, #0
-	beq	.L1824
-	ldr	r1, [r8, #1092]
-	ldrh	r0, [r1, #16]
-	cmp	ip, r0
-	beq	.L1824
-	ldrh	r0, [r1, #48]
-	cmp	ip, r0
-	beq	.L1824
-	ldrh	r1, [r1, #80]
-	cmp	ip, r1
-	beq	.L1824
-	cmp	r2, #64
-	uxtheq	r6, r7
-	ldreq	r0, .L1849+16
-	ldreq	r2, .L1849+20
-	moveq	r1, r6
-	beq	.L1845
-.L1825:
+	b	.L1783
+.L1790:
 	cmp	r2, #96
-	uxtheq	r6, r7
-	ldreq	r0, .L1849+24
-	ldreq	r2, .L1849+28
-	moveq	r1, r6
-	beq	.L1845
-.L1826:
+	uxtheq	r7, r6
+	ldreq	r2, .L1813+16
+	ldreq	r0, .L1813+20
+	moveq	r1, r7
+	beq	.L1811
+.L1791:
 	cmp	r2, #160
-	bne	.L1827
-	uxth	r6, r7
-	ldr	r0, .L1849+32
-	ldr	r2, .L1849+36
+	uxtheq	r7, r6
+	ldreq	r2, .L1813+24
+	ldreq	r0, .L1813+28
+	moveq	r1, r7
+	beq	.L1811
+.L1792:
+	cmp	r2, #0
+	bne	.L1789
+	ldr	r2, [r4, #1092]
+	uxth	r10, r6
+	ldrh	r2, [r2, fp]
+	cmp	r2, #0
+	beq	.L1793
+	cmp	r5, #2
+	bgt	.L1794
 	mov	r1, r6
-.L1845:
-	bl	_insert_data_list
-	ldr	r2, [r8, #1088]
-	ldrh	r3, [r2, r9]
-	cmp	r3, #7
-	movls	r0, r6
-	movls	r1, #1
-	movls	r2, fp
-	bhi	.L1824
-	b	.L1843
-.L1827:
-	cmp	r2, #0
-	bne	.L1824
-	ldr	r2, [r8, #1088]
-	uxth	fp, r7
-	ldrh	r2, [r2, r9]
-	cmp	r2, #0
-	beq	.L1828
-	sxth	r3, r4
-	cmp	r3, #2
-	bgt	.L1829
-	mov	r1, ip
-	ldr	r0, .L1849+40
+	ldr	r0, .L1813+32
 	bl	printk
-	ldrb	r3, [r6, #2]	@ zero_extendqisi2
-	add	r4, r4, #1
-	mov	r0, fp
-	tst	r3, #16
+	ldrb	r3, [r7, #2]	@ zero_extendqisi2
+	add	r5, r5, #1
+	sxth	r5, r5
 	mov	r1, #1
-	uxth	r4, r4
+	mov	r0, r10
+	tst	r3, #16
 	movne	r2, #5
 	moveq	r2, #2
 	bfi	r3, r2, #5, #3
 	mov	r2, #0
-	strb	r3, [r6, #2]
-.L1843:
+	strb	r3, [r7, #2]
+.L1809:
 	bl	gc_add_sblk
-	b	.L1824
-.L1829:
-	ldr	r1, .L1849+44
+	b	.L1789
+.L1794:
 	mov	r2, #656
-	ldr	r0, .L1849+48
+	ldr	r1, .L1813+36
+	ldr	r0, .L1813+40
 	bl	printk
 	bl	dump_stack
-.L1828:
-	ldrb	r3, [r6, #2]	@ zero_extendqisi2
+.L1793:
+	ldrb	r3, [r7, #2]	@ zero_extendqisi2
 	ands	r3, r3, #24
-	ldreq	r0, .L1849+52
-	moveq	r1, fp
-	ldreq	r2, .L1849+56
-	beq	.L1841
-.L1831:
-	cmp	r3, #16
-	ldreq	r0, .L1849+60
-	moveq	r1, fp
-	ldreq	r2, .L1849+64
-	movne	r1, fp
-	ldrne	r0, .L1849+68
-	ldrne	r2, .L1849+72
-.L1841:
+	bne	.L1797
+	ldr	r2, .L1813+44
+	mov	r1, r10
+	ldr	r0, .L1813+48
+.L1807:
 	bl	_insert_free_list
-.L1824:
-	add	r7, r7, #1
-	uxth	r7, r7
-	b	.L1817
-.L1847:
-	movw	r1, #2788
-	ldr	r2, [r3, #2804]
-	ldrh	r1, [r3, r1]
-	strh	r1, [r2, #114]	@ movhi
-	movw	r1, #2790
-	ldrh	r1, [r3, r1]
-	strh	r1, [r2, #118]	@ movhi
-	movw	r1, #2792
-	ldrh	r1, [r3, r1]
-	strh	r1, [r2, #116]	@ movhi
-	movw	r1, #2794
-	ldrh	r1, [r3, r1]
-	strh	r1, [r2, #122]	@ movhi
-	movw	r1, #2798
-	ldrh	r1, [r3, r1]
-	strh	r1, [r2, #120]	@ movhi
-	movw	r1, #2796
-	ldrh	r3, [r3, r1]
-	strh	r3, [r2, #124]	@ movhi
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1850:
+	b	.L1789
+.L1797:
+	cmp	r3, #16
+	ldreq	r2, .L1813+52
+	moveq	r1, r10
+	subeq	r0, r8, #12
+	ldrne	r2, .L1813+56
+	movne	r1, r10
+	subne	r0, r8, #8
+	b	.L1807
+.L1814:
 	.align	2
-.L1849:
+.L1813:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3114
-	.word	.LANCHOR0+1076
-	.word	.LANCHOR3-3092
-	.word	.LANCHOR0+2794
-	.word	.LANCHOR3-3104
-	.word	.LANCHOR0+2796
-	.word	.LANCHOR3-3100
-	.word	.LANCHOR0+2798
-	.word	.LC135
-	.word	.LANCHOR1+1868
-	.word	.LC0
-	.word	.LANCHOR3-3080
-	.word	.LANCHOR0+2788
-	.word	.LANCHOR3-3076
+	.word	.LANCHOR0+1080
 	.word	.LANCHOR0+2790
-	.word	.LANCHOR3-3072
 	.word	.LANCHOR0+2792
+	.word	.LANCHOR3-3104
+	.word	.LANCHOR0+2794
+	.word	.LANCHOR3-3100
+	.word	.LC132
+	.word	.LANCHOR1+1687
+	.word	.LC0
+	.word	.LANCHOR0+2784
+	.word	.LANCHOR3-3088
+	.word	.LANCHOR0+2786
+	.word	.LANCHOR0+2788
 	.fnend
 	.size	zftl_sblk_list_init, .-zftl_sblk_list_init
 	.align	2
 	.global	pm_free_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_free_sblk, %function
 pm_free_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 272
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #284
 	sub	sp, sp, #284
-	ldr	r5, .L1881
-	ldrh	r3, [r5, #-152]
+	ldr	r5, .L1843
+	ldrh	r3, [r5, #-176]
 	cmp	r3, #128
-	bls	.L1852
-	ldr	r1, .L1881+4
+	bls	.L1816
 	mov	r2, #94
-	ldr	r0, .L1881+8
+	ldr	r1, .L1843+4
+	ldr	r0, .L1843+8
 	bl	printk
 	bl	dump_stack
-.L1852:
-	ldr	r4, .L1881+12
-	mov	r1, #0
-	ldrh	lr, [r5, #-152]
-	mov	r0, r1
-	movw	r6, #65535
-	ldr	r2, [r4, #2804]
-	add	r3, r2, #688
-	add	r2, r2, #412
-	add	r2, r2, #2
-	ldrh	ip, [r3]
-.L1855:
-	ldrh	r7, [r2, #2]!
-	uxth	r3, r1
-	cmp	r7, r6
-	addne	r0, r0, #1
-	uxthne	r0, r0
-	cmp	r0, ip
-	bcs	.L1854
-	cmp	r0, lr
-	bcs	.L1854
-	add	r1, r1, #1
-	cmp	r1, #128
-	bne	.L1855
-	mov	r3, r1
-.L1854:
+.L1816:
+	ldr	r4, .L1843+12
+	mov	r2, #0
+	ldrh	ip, [r5, #-176]
+	movw	lr, #65535
+	ldr	r1, [r4, #2800]
+	add	r3, r1, #688
+	add	r1, r1, #416
+	ldrh	r0, [r3]
+	mov	r3, r2
+.L1819:
+	ldrh	r6, [r1], #2
+	cmp	r6, lr
+	addne	r2, r2, #1
+	uxthne	r2, r2
+	cmp	r2, r0
+	bcs	.L1818
+	cmp	r2, ip
+	bcs	.L1818
 	add	r3, r3, #1
-	add	r0, sp, #24
-	mov	r1, #0
-	mov	r2, #256
 	uxth	r3, r3
-	mvn	r8, #0
 	cmp	r3, #128
-	mov	r6, #0
-	movcs	r3, #128
-	str	r3, [sp, #8]
-	bl	ftl_memset
-	ldr	r7, [r4, #2804]
-	movw	r3, #698
-	ldrb	ip, [r5, #-3130]	@ zero_extendqisi2
-	add	r10, r7, #700
-	ldrh	fp, [r7, r3]
-	ldr	r3, .L1881+16
-	ldrh	r9, [r3, #-12]
-	ldrb	r3, [r4, #1189]	@ zero_extendqisi2
-	rsb	r3, r3, #24
-	rsb	r3, r9, r3
-	mvn	r8, r8, asl r3
-.L1856:
-	uxth	r3, r6
-	cmp	r3, fp
-	bcs	.L1878
-	ldr	r0, [r10, #4]!
-	mov	r1, ip
-	str	ip, [sp, #16]
-	and	r0, r8, r0, lsr r9
-	bl	__aeabi_uidiv
+	bne	.L1819
+.L1818:
+	add	r3, r3, #1
+	mov	r2, #256
+	uxth	fp, r3
 	mov	r1, #0
-	uxth	r3, r0
-	ldr	ip, [sp, #16]
-	str	r3, [sp, #12]
-	add	r3, r7, #412
-	add	r3, r3, #2
-	add	r2, sp, #24
-.L1857:
-	ldr	r0, [sp, #8]
-	uxth	lr, r1
-	cmp	lr, r0
-	bcs	.L1879
-	ldrh	lr, [r3, #2]!
-	add	r1, r1, #1
-	ldr	r0, [sp, #12]
-	add	r2, r2, #2
-	cmp	lr, r0
-	ldreqh	lr, [r2, #-2]
-	addeq	lr, lr, #1
-	streqh	lr, [r2, #-2]	@ movhi
-	b	.L1857
-.L1879:
-	add	r6, r6, #1
-	b	.L1856
-.L1878:
-	ldr	r2, .L1881+20
+	add	r0, sp, #24
+	cmp	fp, #129
 	mov	r6, #0
-	ldrb	fp, [r5, #-3123]	@ zero_extendqisi2
-	add	r8, sp, #24
-	movw	r10, #65535
-	mov	r9, r6
-	ldrh	r3, [r2, #-8]
-	smulbb	fp, fp, r3
-	add	r3, r2, #3088
+	moveq	fp, #128
+	bl	ftl_memset
+	ldr	r7, [r4, #2800]
+	movw	r3, #698
+	ldrb	r8, [r4, #1153]	@ zero_extendqisi2
+	ldrb	r2, [r5, #-3136]	@ zero_extendqisi2
+	ldrh	r3, [r7, r3]
+	add	r10, r7, #704
+	rsb	r8, r8, #24
 	str	r3, [sp, #12]
-	uxth	r7, fp
-.L1861:
-	ldr	r3, [sp, #8]
-	uxth	fp, r6
-	cmp	fp, r3
-	bcs	.L1880
+	ldr	r3, .L1843+16
+	ldrh	r9, [r3, #-2]
+	sub	r3, r8, r9
+	mvn	r8, #0
+	mvn	r8, r8, lsl r3
+.L1821:
+	ldr	r1, [sp, #12]
+	uxth	r3, r6
+	cmp	r1, r3
+	bhi	.L1824
+	ldr	r3, .L1843+20
+	add	r8, sp, #24
+	ldrb	r7, [r5, #-3127]	@ zero_extendqisi2
+	movw	r10, #65535
+	mov	r6, #0
+	ldrh	r3, [r3, #-8]
+	str	r6, [sp, #12]
+	smulbb	r7, r7, r3
+	uxth	r7, r7
+.L1830:
+	ldr	r2, [r4, #2800]
 	add	r3, r6, #208
-	ldr	ip, [r4, #2804]
-	ldrb	r1, [r5, #-3130]	@ zero_extendqisi2
-	mov	r3, r3, asl #1
-	add	r2, ip, #692
-	str	ip, [sp, #16]
-	ldrh	r3, [ip, r3]
-	ldrh	r0, [r2]
+	lsl	r3, r3, #1
+	ldrb	r1, [r5, #-3136]	@ zero_extendqisi2
+	uxth	r9, r6
+	ldrh	r3, [r2, r3]
+	add	r0, r2, #692
+	ldrh	r0, [r0]
+	str	r2, [sp, #16]
 	str	r3, [sp, #20]
 	bl	__aeabi_idiv
 	ldr	r3, [sp, #20]
-	ldr	ip, [sp, #16]
+	ldr	r2, [sp, #16]
 	cmp	r0, r3
-	movw	r0, #65535
-	ldreq	r2, [sp, #12]
-	ldreqb	r1, [r2, #-3123]	@ zero_extendqisi2
-	ldreq	r2, .L1881+24
-	ldreqh	r2, [r2]
-	smulbbeq	r2, r1, r2
-	streqh	r2, [r8]	@ movhi
-	ldrh	r2, [r8]
-	cmp	r2, #0
-	cmpne	r7, r2
-	movhi	r1, #1
-	movls	r1, #0
+	ldreq	r0, .L1843+24
+	ldrbeq	r1, [r5, #-3127]	@ zero_extendqisi2
+	ldrheq	r0, [r0]
+	smulbbeq	r1, r1, r0
+	strheq	r1, [r8]	@ movhi
+	ldrh	r1, [r8]
+	ldrh	ip, [r2, #74]
 	cmp	r1, #0
-	ldrh	r1, [ip, #74]
-	movne	r9, fp
-	movne	r7, r2
+	cmpne	r1, r7
+	movcc	r0, #1
+	movcs	r0, #0
+	cmp	r0, #0
+	ldr	r0, [sp, #12]
+	movne	r0, r9
+	movne	r7, r1
+	str	r0, [sp, #16]
+	str	r0, [sp, #12]
+	movw	r0, #65535
 	cmp	r3, r0
-	cmpne	r1, #2
-	bls	.L1864
-	ldr	r0, [r4, #1080]
-	mov	r1, r3, asl #2
-	ldrh	r1, [r0, r1]
-	ldrh	r0, [ip, #92]
-	ubfx	r1, r1, #0, #11
-	add	r0, r0, #4
-	cmp	r1, r0
-	bgt	.L1864
-	str	r1, [sp]
+	cmpne	ip, #2
+	bls	.L1827
+	ldr	ip, [r4, #1084]
+	lsl	r0, r3, #2
+	ldrh	r2, [r2, #92]
+	ldrh	r0, [ip, r0]
+	add	r2, r2, #4
+	ubfx	r0, r0, #0, #11
+	cmp	r0, r2
+	bgt	.L1827
+	mov	r10, r9
+	str	r0, [sp]
+	mov	r2, r1
+	ldr	r0, .L1843+28
 	mov	r1, r6
-	ldr	r0, .L1881+28
-	mov	r10, fp
 	bl	printk
-.L1864:
+.L1827:
 	ldrh	r2, [r8]
 	cmp	r2, #0
-	bne	.L1865
-	add	fp, r6, #208
-	ldr	r1, [r4, #2804]
+	bne	.L1828
+	ldr	r1, [r4, #2800]
+	add	r9, r6, #208
+	lsl	r3, r9, #1
 	movw	r0, #65535
-	mov	r3, fp, asl #1
 	ldrh	r3, [r1, r3]
 	cmp	r3, r0
-	beq	.L1865
-	ldr	r0, .L1881+32
+	beq	.L1828
+	ldr	r0, .L1843+32
 	ldr	r0, [r0]
 	tst	r0, #4096
-	beq	.L1866
+	beq	.L1829
 	add	r1, r1, #688
-	ldr	r0, .L1881+36
+	ldr	r0, .L1843+36
 	ldrh	r1, [r1]
 	str	r1, [sp]
 	mov	r1, r6
 	bl	printk
-.L1866:
-	ldr	r3, [r4, #2804]
-	mov	fp, fp, asl #1
-	ldrh	r0, [r3, fp]
+.L1829:
+	ldr	r3, [r4, #2800]
+	lsl	r9, r9, #1
+	ldrh	r0, [r3, r9]
 	bl	ftl_free_sblk
-	ldr	r3, [r4, #2804]
+	ldr	r3, [r4, #2800]
 	mvn	r2, #0
-	strh	r2, [r3, fp]	@ movhi
+	strh	r2, [r3, r9]	@ movhi
 	add	r3, r3, #688
 	ldrh	r2, [r3]
 	sub	r2, r2, #1
 	strh	r2, [r3]	@ movhi
-.L1865:
+.L1828:
 	add	r6, r6, #1
 	add	r8, r8, #2
-	b	.L1861
-.L1880:
+	uxth	r3, r6
+	cmp	fp, r3
+	bhi	.L1830
+	ldr	r3, [sp, #16]
 	movw	r0, #65535
 	cmp	r10, r0
-	movne	r0, r10
-	moveq	r0, r9
+	movne	r3, r10
+	mov	r0, r3
 	add	sp, sp, #284
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1882:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1824:
+	ldr	r0, [r10], #4
+	mov	r1, r2
+	str	r2, [sp, #16]
+	and	r0, r8, r0, lsr r9
+	bl	__aeabi_uidiv
+	ldr	r2, [sp, #16]
+	uxth	r0, r0
+	add	lr, r7, #416
+	add	r1, sp, #24
+	mov	r3, #0
+.L1823:
+	ldrh	ip, [lr], #2
+	add	r3, r3, #1
+	uxth	r3, r3
+	add	r1, r1, #2
+	cmp	r0, ip
+	ldrheq	ip, [r1, #-2]
+	addeq	ip, ip, #1
+	strheq	ip, [r1, #-2]	@ movhi
+	cmp	fp, r3
+	bne	.L1823
+	add	r6, r6, #1
+	b	.L1821
+.L1844:
 	.align	2
-.L1881:
+.L1843:
 	.word	.LANCHOR3
-	.word	.LANCHOR1+1888
+	.word	.LANCHOR1+1707
 	.word	.LC0
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3120
+	.word	.LANCHOR3-3136
 	.word	.LANCHOR3-3088
 	.word	.LANCHOR3-3096
-	.word	.LC136
+	.word	.LC133
 	.word	.LANCHOR2
-	.word	.LC137
+	.word	.LC134
 	.fnend
 	.size	pm_free_sblk, .-pm_free_sblk
 	.align	2
 	.global	ftl_memcpy
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_memcpy, %function
 ftl_memcpy:
 	.fnstart
@@ -11066,59 +11210,65 @@
 	.size	ftl_memcpy, .-ftl_memcpy
 	.align	2
 	.global	flash_info_data_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_info_data_init, %function
 flash_info_data_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L1890
-	stmfd	sp!, {r4, lr}
+	ldr	r3, .L1852
+	push	{r4, lr}
 	.save {r4, lr}
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L1885
-	ldr	r0, .L1890+4
+	beq	.L1847
+	ldr	r2, .L1852+4
 	mov	r1, #120
-	ldr	r2, .L1890+8
+	ldr	r0, .L1852+8
 	bl	printk
-.L1885:
-	ldr	r4, .L1890+12
-	mov	r1, #0
+.L1847:
+	ldr	r4, .L1852+12
 	mov	r2, #2048
-	ldr	r0, [r4, #1176]
+	mov	r1, #0
+	ldr	r0, [r4, #1040]
 	bl	ftl_memset
-	ldr	r3, [r4, #1176]
-	ldr	r2, .L1890+16
-	ldr	r1, .L1890+20
+	ldr	r3, [r4, #1040]
+	ldr	r2, .L1852+16
+	ldr	r1, .L1852+20
 	str	r2, [r3]
 	mov	r3, #2032
-	ldr	r0, [r4, #1176]
+	ldr	r0, [r4, #1040]
 	mov	r2, #32
-	add	r0, r0, #80
-	str	r3, [r0, #-72]
+	str	r3, [r0, #8]
 	mov	r3, #1
-	strh	r3, [r0, #-64]	@ movhi
+	strh	r3, [r0, #16]	@ movhi
+	add	r0, r0, #80
 	bl	ftl_memcpy
-	ldr	r0, [r4, #1176]
-	ldr	r1, .L1890+24
+	ldr	r0, [r4, #1040]
 	mov	r2, #32
+	ldr	r1, .L1852+24
+	pop	{r4, lr}
 	add	r0, r0, #48
-	ldmfd	sp!, {r4, lr}
 	b	ftl_memcpy
-.L1891:
+.L1853:
 	.align	2
-.L1890:
+.L1852:
 	.word	.LANCHOR2
-	.word	.LC138
-	.word	.LANCHOR1+1904
+	.word	.LANCHOR1+1720
+	.word	.LC135
 	.word	.LANCHOR0
 	.word	1398362953
-	.word	.LANCHOR0+1103
+	.word	.LANCHOR0+1111
 	.word	.LANCHOR2+4
 	.fnend
 	.size	flash_info_data_init, .-flash_info_data_init
 	.align	2
 	.global	ftl_memcpy32
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_memcpy32, %function
 ftl_memcpy32:
 	.fnstart
@@ -11126,18 +11276,22 @@
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
 	mov	r3, #0
-.L1893:
+.L1855:
 	cmp	r3, r2
-	ldrne	ip, [r1, r3, asl #2]
-	strne	ip, [r0, r3, asl #2]
-	addne	r3, r3, #1
-	bne	.L1893
-.L1895:
+	bne	.L1856
 	bx	lr
+.L1856:
+	ldr	ip, [r1, r3, lsl #2]
+	str	ip, [r0, r3, lsl #2]
+	add	r3, r3, #1
+	b	.L1855
 	.fnend
 	.size	ftl_memcpy32, .-ftl_memcpy32
 	.align	2
 	.global	ftl_memcmp
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_memcmp, %function
 ftl_memcmp:
 	.fnstart
@@ -11149,178 +11303,198 @@
 	.size	ftl_memcmp, .-ftl_memcmp
 	.align	2
 	.global	timer_get_time
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	timer_get_time, %function
 timer_get_time:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1898
+	ldr	r3, .L1859
 	ldr	r0, [r3]
-	ldr	r3, .L1898+4
-	ldr	r3, [r3, #-144]
-	rsb	r0, r3, r0
+	ldr	r3, .L1859+4
+	ldr	r3, [r3, #-168]
+	sub	r0, r0, r3
 	b	jiffies_to_msecs
-.L1899:
+.L1860:
 	.align	2
-.L1898:
+.L1859:
 	.word	jiffies
 	.word	.LANCHOR3
 	.fnend
 	.size	timer_get_time, .-timer_get_time
 	.align	2
 	.global	StorageSysDataLoad
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	StorageSysDataLoad, %function
 StorageSysDataLoad:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
-	mov	r2, #512
-	mov	r5, r0
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	mov	r4, r1
-	mov	r0, r1
+	mov	r5, r0
+	mov	r2, #512
 	mov	r1, #0
+	mov	r0, r4
 	bl	ftl_memset
 	bl	rknand_device_lock
-	ldr	r3, .L1902
+	ldr	r3, .L1863
 	mov	r2, r4
 	mov	r1, #1
 	mov	r0, r5
-	ldr	r3, [r3, #-136]
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #12]
 	blx	r3
 	mov	r4, r0
 	bl	rknand_device_unlock
 	mov	r0, r4
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1903:
+	pop	{r4, r5, r6, pc}
+.L1864:
 	.align	2
-.L1902:
+.L1863:
 	.word	.LANCHOR3
 	.fnend
 	.size	StorageSysDataLoad, .-StorageSysDataLoad
 	.align	2
 	.global	StorageSysDataStore
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	StorageSysDataStore, %function
 StorageSysDataStore:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
-	mov	r4, r1
-	mov	r5, r0
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	mov	r5, r1
+	mov	r4, r0
 	bl	rknand_device_lock
-	ldr	r3, .L1906
-	mov	r2, r4
+	ldr	r3, .L1867
+	mov	r2, r5
 	mov	r1, #1
-	mov	r0, r5
-	ldr	r3, [r3, #-136]
+	mov	r0, r4
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #16]
 	blx	r3
 	mov	r4, r0
 	bl	rknand_device_unlock
 	mov	r0, r4
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L1907:
+	pop	{r4, r5, r6, pc}
+.L1868:
 	.align	2
-.L1906:
+.L1867:
 	.word	.LANCHOR3
 	.fnend
 	.size	StorageSysDataStore, .-StorageSysDataStore
 	.align	2
 	.global	FlashBootVendorRead
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	FlashBootVendorRead, %function
 FlashBootVendorRead:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
-	mov	r6, r0
+	mov	r4, r0
 	mov	r5, r1
-	mov	r4, r2
+	mov	r6, r2
 	bl	rknand_device_lock
-	ldr	r3, .L1910
-	mov	r2, r4
+	ldr	r3, .L1871
+	mov	r2, r6
 	mov	r1, r5
-	mov	r0, r6
-	ldr	r3, [r3, #-136]
+	mov	r0, r4
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #4]
 	blx	r3
 	mov	r4, r0
 	bl	rknand_device_unlock
 	mov	r0, r4
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L1911:
+	pop	{r4, r5, r6, pc}
+.L1872:
 	.align	2
-.L1910:
+.L1871:
 	.word	.LANCHOR3
 	.fnend
 	.size	FlashBootVendorRead, .-FlashBootVendorRead
 	.align	2
 	.global	FlashBootVendorWrite
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	FlashBootVendorWrite, %function
 FlashBootVendorWrite:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
-	mov	r6, r0
+	mov	r4, r0
 	mov	r5, r1
-	mov	r4, r2
+	mov	r6, r2
 	bl	rknand_device_lock
-	ldr	r3, .L1914
-	mov	r2, r4
+	ldr	r3, .L1875
+	mov	r2, r6
 	mov	r1, r5
-	mov	r0, r6
-	ldr	r3, [r3, #-136]
+	mov	r0, r4
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #8]
 	blx	r3
 	mov	r4, r0
 	bl	rknand_device_unlock
 	mov	r0, r4
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L1915:
+	pop	{r4, r5, r6, pc}
+.L1876:
 	.align	2
-.L1914:
+.L1875:
 	.word	.LANCHOR3
 	.fnend
 	.size	FlashBootVendorWrite, .-FlashBootVendorWrite
 	.align	2
 	.global	flash_sram_load_store
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_sram_load_store, %function
 flash_sram_load_store:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	ip, .L1920
+	ldr	ip, .L1882
 	cmp	r2, #0
 	moveq	r2, r3
-	ldr	ip, [ip, #-132]
+	ldr	ip, [ip, #-156]
 	add	ip, ip, #4096
-	add	r1, ip, r1
-	beq	.L1919
-	str	lr, [sp, #-4]!
+	add	ip, ip, r1
+	moveq	r1, ip
+	strne	lr, [sp, #-4]!
 	.save {lr}
-	mov	lr, r0
-	mov	r0, r1
-	mov	r1, lr
-	ldr	lr, [sp], #4
-	mov	r2, r3
-.L1919:
+	movne	r1, r0
+	ldrne	lr, [sp], #4
+	movne	r2, r3
+	movne	r0, ip
+.L1881:
 	b	ftl_memcpy
-.L1921:
+.L1883:
 	.align	2
-.L1920:
+.L1882:
 	.word	.LANCHOR3
 	.fnend
 	.size	flash_sram_load_store, .-flash_sram_load_store
 	.align	2
 	.global	FlashCs123Init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	FlashCs123Init, %function
 FlashCs123Init:
 	.fnstart
@@ -11331,312 +11505,699 @@
 	.fnend
 	.size	FlashCs123Init, .-FlashCs123Init
 	.align	2
+	.global	ftl_dma32_malloc
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	ftl_dma32_malloc, %function
+ftl_dma32_malloc:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	cmp	r0, #8192
+	ble	.L1886
+	b	ftl_malloc
+.L1886:
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	add	r4, r0, #63
+	ldr	r5, .L1890
+	bic	r4, r4, #63
+	ldr	r3, [r5, #-152]
+	cmp	r4, r3
+	ble	.L1887
+	mov	r0, #16384
+	bl	ftl_malloc
+	mov	r3, #16384
+	str	r0, [r5, #-148]
+	str	r3, [r5, #-152]
+.L1887:
+	ldr	r3, [r5, #-152]
+	ldr	r0, [r5, #-148]
+	sub	r3, r3, r4
+	add	r4, r0, r4
+	str	r3, [r5, #-152]
+	str	r4, [r5, #-148]
+	pop	{r4, r5, r6, pc}
+.L1891:
+	.align	2
+.L1890:
+	.word	.LANCHOR3
+	.fnend
+	.size	ftl_dma32_malloc, .-ftl_dma32_malloc
+	.align	2
+	.global	nandc_init
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	nandc_init, %function
+nandc_init:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 8
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	.pad #16
+	mov	r3, #0
+	ldr	r5, .L1912
+	mov	r6, r0
+	str	r3, [sp, #12]
+	ldr	r3, [r5]
+	tst	r3, #4096
+	beq	.L1893
+	mov	r2, r0
+	ldr	r1, .L1912+4
+	ldr	r0, .L1912+8
+	bl	printk
+.L1893:
+	ldr	r4, .L1912+12
+	mov	r3, #6
+	ldr	r2, [r6, #352]
+	strb	r3, [r4, #1028]
+	ldr	r3, .L1912+16
+	str	r6, [r4, #1044]
+	cmp	r2, r3
+	ldr	r2, [r6, #128]
+	moveq	r3, #8
+	strbeq	r3, [r4, #1028]
+	ldr	r3, .L1912+20
+	cmp	r2, r3
+	ldr	r2, .L1912+24
+	moveq	r3, #9
+	strbeq	r3, [r4, #1028]
+	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
+	cmp	r3, #9
+	bne	.L1896
+	mov	r3, #1
+	mov	r1, #2
+	strb	r3, [r4, #1195]
+	ldr	r3, [sp, #12]
+	orr	r3, r3, #256
+	str	r3, [sp, #12]
+	ldr	r3, [sp, #12]
+	bfi	r3, r1, #18, #3
+	str	r3, [sp, #12]
+	ldr	r3, [sp, #12]
+	str	r3, [r6]
+	mov	r3, #0
+	ldr	r0, [r4, #1044]
+	str	r3, [r0, #520]
+	movw	r3, #4161
+	str	r3, [r0, #4]
+	movw	r3, #8321
+	str	r3, [r0, #8]
+	mov	r3, #38
+	str	r2, [r0, #80]
+	str	r3, [r0, #84]
+	mov	r3, #39
+	str	r3, [r0, #84]
+	ldr	r3, [r5]
+	tst	r3, #4096
+	beq	.L1898
+	ldr	r1, [r0]
+	ldr	r2, [r0, #8]
+	ldr	r3, [r0, #80]
+	ldr	ip, [r0, #84]
+	ldr	r0, [r0, #88]
+.L1911:
+	str	r0, [sp, #4]
+	str	ip, [sp]
+	ldr	r0, .L1912+28
+	bl	printk
+.L1898:
+	mov	r3, #1
+	movw	r2, #1228
+	strb	r3, [r4, #1196]
+	mov	r3, #0
+	strh	r3, [r4, r2]	@ movhi
+	strb	r3, [r4, #1193]
+	ldr	r3, [r5]
+	tst	r3, #4096
+	beq	.L1892
+	ldrb	r1, [r4, #1028]	@ zero_extendqisi2
+	ldr	r0, .L1912+32
+	bl	printk
+.L1892:
+	add	sp, sp, #16
+	@ sp needed
+	pop	{r4, r5, r6, pc}
+.L1896:
+	ldr	r3, [sp, #12]
+	mov	r0, #1
+	mov	r1, #0
+	strb	r1, [r4, #1195]
+	orr	r3, r3, #256
+	str	r3, [sp, #12]
+	ldr	r3, [sp, #12]
+	bfi	r3, r0, #24, #3
+	mov	r0, #2048
+	str	r3, [sp, #12]
+	ldr	r3, [sp, #12]
+	str	r3, [r6]
+	ldr	r3, [r4, #1044]
+	str	r1, [r3, #336]
+	movw	r1, #4193
+	str	r1, [r3, #4]
+	movw	r1, #8321
+	str	r1, [r3, #344]
+	str	r2, [r3, #304]
+	mov	r2, #38
+	str	r2, [r3, #308]
+	mov	r2, #39
+	str	r2, [r3, #308]
+	bl	ftl_dma32_malloc
+	ldr	r3, [r5]
+	str	r0, [r4, #1200]
+	tst	r3, #4096
+	beq	.L1898
+	ldr	r0, [r4, #1044]
+	ldr	r1, [r0]
+	ldr	r2, [r0, #344]
+	ldr	r3, [r0, #304]
+	ldr	ip, [r0, #308]
+	ldr	r0, [r0, #312]
+	b	.L1911
+.L1913:
+	.align	2
+.L1912:
+	.word	.LANCHOR2
+	.word	.LANCHOR1+1741
+	.word	.LC136
+	.word	.LANCHOR0
+	.word	1446522928
+	.word	1446588464
+	.word	1052675
+	.word	.LC137
+	.word	.LC138
+	.fnend
+	.size	nandc_init, .-nandc_init
+	.align	2
+	.global	zbuf_init
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	zbuf_init, %function
+zbuf_init:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	mov	r5, #0
+	ldr	r4, .L1918
+	mov	r6, r5
+	ldr	r7, .L1918+4
+.L1915:
+	ldrb	r0, [r7, #-2546]	@ zero_extendqisi2
+	uxtb	r3, r5
+	strb	r6, [r4, #2]
+	add	r5, r5, #1
+	add	r2, r3, #1
+	strb	r3, [r4, #1]
+	strb	r2, [r4]
+	add	r4, r4, #48
+	lsl	r0, r0, #9
+	str	r6, [r4, #-40]
+	bl	ftl_dma32_malloc
+	str	r0, [r4, #-44]
+	mov	r0, #64
+	bl	ftl_dma32_malloc
+	cmp	r5, #32
+	str	r0, [r4, #-36]
+	bne	.L1915
+	ldr	r3, .L1918+8
+	mvn	r2, #0
+	strb	r2, [r3, #2720]
+	strb	r6, [r3, #2768]
+	strb	r5, [r3, #2769]
+	pop	{r4, r5, r6, r7, r8, pc}
+.L1919:
+	.align	2
+.L1918:
+	.word	.LANCHOR0+1232
+	.word	.LANCHOR3
+	.word	.LANCHOR0
+	.fnend
+	.size	zbuf_init, .-zbuf_init
+	.align	2
+	.global	gc_init
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	gc_init, %function
+gc_init:
+	.fnstart
+	@ args = 0, pretend = 0, frame = 0
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	movw	r9, #2824
+	ldr	r6, .L1922
+	mov	r5, #0
+	movw	r2, #2204
+	mov	r1, r5
+	ldr	r4, .L1922+4
+	add	r7, r6, r9
+	mov	r0, r7
+	sub	r8, r4, #3088
+	strb	r5, [r4, #-3119]
+	strb	r5, [r4, #-144]
+	str	r5, [r4, #-140]
+	strh	r5, [r8, #-6]	@ movhi
+	bl	ftl_memset
+	mvn	r3, #0
+	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
+	strh	r3, [r6, r9]	@ movhi
+	movw	ip, #2806
+	ldrh	r3, [r8, #-8]
+	str	r5, [r6, #2832]
+	lsr	r2, r3, #1
+	lsr	r1, r3, #2
+	strh	r2, [r7, #34]	@ movhi
+	smulbb	r2, r0, r3
+	strh	r1, [r7, #32]	@ movhi
+	sub	r7, r4, #3104
+	strh	r5, [r7, #-8]	@ movhi
+	uxth	r2, r2
+	strh	r5, [r7, #-6]	@ movhi
+	strh	r5, [r7, #-4]	@ movhi
+	sub	lr, r2, #32
+	strh	lr, [r6, ip]	@ movhi
+	movw	ip, #2808
+	strh	r2, [r6, ip]	@ movhi
+	add	r2, r6, #2816
+	strh	r3, [r2]	@ movhi
+	mov	r3, #4
+	strh	r3, [r4, #-136]	@ movhi
+	movw	r3, #2818
+	strh	r1, [r6, r3]	@ movhi
+	ldrh	r3, [r7, #-14]
+	mul	r0, r0, r3
+	lsl	r0, r0, #2
+	bl	ftl_dma32_malloc
+	ldrh	r3, [r7, #-14]
+	str	r0, [r4, #-132]
+	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
+	mul	r0, r0, r3
+	lsl	r0, r0, #2
+	bl	ftl_dma32_malloc
+	ldrh	r3, [r7, #-14]
+	str	r0, [r4, #-128]
+	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
+	mul	r0, r0, r3
+	bl	ftl_dma32_malloc
+	ldrh	r3, [r7, #-14]
+	str	r0, [r4, #-3124]
+	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
+	mul	r0, r0, r3
+	lsl	r0, r0, #2
+	bl	ftl_dma32_malloc
+	ldrh	r3, [r7, #-14]
+	str	r0, [r4, #-3132]
+	ldrb	r0, [r4, #-3127]	@ zero_extendqisi2
+	mul	r0, r0, r3
+	lsl	r0, r0, #2
+	bl	ftl_dma32_malloc
+	ldrh	r3, [r8, #-4]
+	movw	r2, #2804
+	str	r0, [r4, #-124]
+	lsr	r3, r3, #2
+	strh	r3, [r6, r2]	@ movhi
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L1923:
+	.align	2
+.L1922:
+	.word	.LANCHOR0
+	.word	.LANCHOR3
+	.fnend
+	.size	gc_init, .-gc_init
+	.align	2
 	.global	rk_ftl_de_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_de_init, %function
 rk_ftl_de_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
 	mov	r1, #0
-	ldr	r0, .L1925
+	ldr	r0, .L1926
 	bl	printk
-	ldr	r3, .L1925+4
-	ldr	r3, [r3, #-136]
+	ldr	r3, .L1926+4
+	pop	{r4, lr}
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #40]
-	ldmfd	sp!, {r4, lr}
 	bx	r3	@ indirect register sibling call
-.L1926:
+.L1927:
 	.align	2
-.L1925:
+.L1926:
 	.word	.LC139
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_ftl_de_init, .-rk_ftl_de_init
 	.align	2
 	.global	rk_ftl_cache_write_back
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_cache_write_back, %function
 rk_ftl_cache_write_back:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1928
+	ldr	r3, .L1929
 	mov	r0, #0
-	ldr	r3, [r3, #-136]
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #32]
 	bx	r3	@ indirect register sibling call
-.L1929:
+.L1930:
 	.align	2
-.L1928:
+.L1929:
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_ftl_cache_write_back, .-rk_ftl_cache_write_back
 	.align	2
 	.global	rk_nand_suspend
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_nand_suspend, %function
 rk_nand_suspend:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1931
-	ldr	r3, [r3, #-136]
+	ldr	r3, .L1932
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #44]
 	bx	r3	@ indirect register sibling call
-.L1932:
+.L1933:
 	.align	2
-.L1931:
+.L1932:
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_nand_suspend, .-rk_nand_suspend
 	.align	2
 	.global	rk_nand_resume
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_nand_resume, %function
 rk_nand_resume:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1934
-	ldr	r3, [r3, #-136]
+	ldr	r3, .L1935
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #48]
 	bx	r3	@ indirect register sibling call
-.L1935:
+.L1936:
 	.align	2
-.L1934:
+.L1935:
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_nand_resume, .-rk_nand_resume
 	.align	2
 	.global	rk_ftl_get_capacity
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_get_capacity, %function
 rk_ftl_get_capacity:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1937
+	ldr	r3, .L1938
 	mov	r0, #0
-	ldr	r3, [r3, #-136]
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #36]
 	bx	r3
-.L1938:
+.L1939:
 	.align	2
-.L1937:
+.L1938:
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_ftl_get_capacity, .-rk_ftl_get_capacity
 	.align	2
 	.global	rk_nandc_get_irq_status
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_nandc_get_irq_status, %function
 rk_nandc_get_irq_status:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1940
-	ldr	r3, [r3, #-136]
+	ldr	r3, .L1941
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #60]
 	bx	r3
-.L1941:
+.L1942:
 	.align	2
-.L1940:
+.L1941:
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_nandc_get_irq_status, .-rk_nandc_get_irq_status
 	.align	2
 	.global	rknand_proc_ftlread
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rknand_proc_ftlread, %function
 rknand_proc_ftlread:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1943
-	ldr	r3, [r3, #-136]
+	ldr	r3, .L1944
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #64]
 	bx	r3
-.L1944:
+.L1945:
 	.align	2
-.L1943:
+.L1944:
 	.word	.LANCHOR3
 	.fnend
 	.size	rknand_proc_ftlread, .-rknand_proc_ftlread
 	.align	2
 	.global	FtlRead
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	FtlRead, %function
 FtlRead:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	@ link register save eliminated.
-	ldr	ip, .L1946
-	ldr	ip, [ip, #-136]
-	ldr	ip, [ip, #20]
+	ldr	ip, .L1948
+	str	lr, [sp, #-4]!
+	.save {lr}
+	ldr	ip, [ip, #-160]
+	ldr	lr, [ip, #20]
+	mov	ip, lr
+	ldr	lr, [sp], #4
 	bx	ip
-.L1947:
+.L1949:
 	.align	2
-.L1946:
+.L1948:
 	.word	.LANCHOR3
 	.fnend
 	.size	FtlRead, .-FtlRead
 	.align	2
 	.global	FtlDiscard
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	FtlDiscard, %function
 FtlDiscard:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1949
-	ldr	r3, [r3, #-136]
+	ldr	r3, .L1951
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #28]
 	bx	r3
-.L1950:
+.L1952:
 	.align	2
-.L1949:
+.L1951:
 	.word	.LANCHOR3
 	.fnend
 	.size	FtlDiscard, .-FtlDiscard
 	.align	2
 	.global	rk_ftl_garbage_collect
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_garbage_collect, %function
 rk_ftl_garbage_collect:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1952
-	ldr	r3, [r3, #-136]
+	ldr	r3, .L1954
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #52]
 	bx	r3
-.L1953:
+.L1955:
 	.align	2
-.L1952:
+.L1954:
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
 	.align	2
 	.global	ReadFlashInfo
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ReadFlashInfo, %function
 ReadFlashInfo:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L1955
-	ldr	r3, [r3, #-136]
+	ldr	r3, .L1957
+	ldr	r3, [r3, #-160]
 	ldr	r3, [r3, #56]
 	bx	r3	@ indirect register sibling call
-.L1956:
+.L1958:
 	.align	2
-.L1955:
+.L1957:
 	.word	.LANCHOR3
 	.fnend
 	.size	ReadFlashInfo, .-ReadFlashInfo
 	.align	2
 	.global	rknand_print_hex
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rknand_print_hex, %function
 rknand_print_hex:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, lr}
+	mov	ip, r2
+	push	{r0, r1, r2, r3, r4, lr}
 	.save {lr}
 	.pad #20
-	mov	ip, r0
-	mul	r3, r3, r2
-	str	r2, [sp]
-	str	r1, [sp, #4]
+	mul	r3, r3, ip
 	mov	r2, #0
-	ldr	r0, .L1959
-	mov	r1, ip
 	str	r2, [sp, #12]
-	str	r3, [sp, #8]
+	str	ip, [sp]
+	stmib	sp, {r1, r3}
+	mov	r1, r0
 	mov	r3, #16
+	ldr	r0, .L1961
 	bl	print_hex_dump
 	add	sp, sp, #20
 	@ sp needed
 	ldr	pc, [sp], #4
-.L1960:
+.L1962:
 	.align	2
-.L1959:
+.L1961:
 	.word	.LC140
 	.fnend
 	.size	rknand_print_hex, .-rknand_print_hex
 	.align	2
 	.global	hynix_get_read_retry_default
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	hynix_get_read_retry_default, %function
 hynix_get_read_retry_default:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 32
+	@ args = 0, pretend = 0, frame = 48
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	cmp	r0, #2
-	ldr	r8, .L2072
-	.pad #36
-	sub	sp, sp, #36
-	mvn	r7, #81
-	mvn	r6, #80
 	mov	r5, r0
-	ldr	r4, [r8, #1176]
-	add	r3, r4, #128
-	str	r3, [sp]
-	strb	r0, [r4, #112]
+	ldr	r6, .L2074
 	mvn	r3, #83
-	strb	r7, [r4, #130]
+	cmp	r5, #2
+	mvn	r2, #81
+	.pad #52
+	sub	sp, sp, #52
+	ldr	r4, [r6, #1040]
+	strb	r0, [r4, #112]
+	mvn	r0, #82
 	strb	r3, [r4, #128]
-	mvn	r3, #82
-	strb	r6, [r4, #131]
-	strb	r3, [r4, #129]
-	bne	.L1962
-	mvn	r3, #88
-	strb	r3, [r4, #128]
-	ldr	r3, .L2072+4
-	mvn	r1, #8
-	mov	r6, #7
-	strb	r1, [r3, #413]
-	b	.L2023
-.L1962:
-	cmp	r0, #3
+	mvn	r3, #80
+	add	r1, r4, #128
+	strb	r0, [r4, #129]
+	strb	r2, [r4, #130]
+	strb	r3, [r4, #131]
 	bne	.L1964
-	add	r1, r4, #127
+	mvn	r3, #88
+	mov	r10, #7
+	strb	r3, [r4, #128]
+	mvn	r2, #8
+	ldr	r3, .L2074+4
+	strb	r2, [r3, #407]
+.L2068:
+	mov	fp, #4
+	b	.L1965
+.L1964:
+	cmp	r5, #3
+	bne	.L1966
+	add	r2, r4, #127
 	mov	r3, #176
-.L1965:
-	strb	r3, [r1, #1]!
+.L1967:
+	strb	r3, [r2, #1]!
 	add	r3, r3, #1
 	uxtb	r3, r3
 	cmp	r3, #184
-	bne	.L1965
-	b	.L2066
-.L1964:
-	cmp	r0, #4
-	bne	.L1966
-	mvn	r1, #51
-	strb	r3, [r4, #133]
-	strb	r1, [r4, #128]
-	mvn	r1, #64
-	strb	r7, [r4, #134]
-	strb	r1, [r4, #129]
-	mvn	r1, #85
-	strb	r6, [r4, #135]
-	strb	r1, [r4, #130]
-	mvn	r1, #84
-	strb	r1, [r4, #131]
-	mvn	r1, #50
-	strb	r1, [r4, #132]
-.L2066:
-	mov	r6, #8
-	mov	fp, r6
-	b	.L1963
-.L1966:
-	cmp	r0, #5
 	bne	.L1967
+.L2069:
+	mov	r10, #8
+	mov	fp, r10
+.L1965:
+	sub	r3, r5, #1
+	cmp	r3, #1
+	bhi	.L1973
+	sub	r9, fp, #1
+	mov	r8, #0
+	uxtab	r3, r1, r9
+	str	r3, [sp, #4]
+.L1974:
+	ldrb	r2, [r6, #1109]	@ zero_extendqisi2
+	uxtb	r3, r8
+	cmp	r2, r3
+	bhi	.L1979
+.L1980:
+	strb	fp, [r4, #113]
+	strb	r10, [r4, #114]
+	add	sp, sp, #52
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1966:
+	cmp	r5, #4
+	bne	.L1968
+	mvn	ip, #51
+	strb	r0, [r4, #133]
+	strb	ip, [r4, #128]
+	mvn	ip, #64
+	strb	ip, [r4, #129]
+	mvn	ip, #85
+	strb	ip, [r4, #130]
+	mvn	ip, #84
+	strb	ip, [r4, #131]
+	mvn	ip, #50
+	strb	ip, [r4, #132]
+	strb	r2, [r4, #134]
+	strb	r3, [r4, #135]
+	b	.L2069
+.L1968:
+	cmp	r5, #5
+	bne	.L1969
 	mov	r3, #56
-	mov	r6, #8
+	mov	r10, #8
 	strb	r3, [r4, #128]
 	mov	r3, #57
 	strb	r3, [r4, #129]
@@ -11644,12 +12205,12 @@
 	strb	r3, [r4, #130]
 	mov	r3, #59
 	strb	r3, [r4, #131]
-	b	.L2023
-.L1967:
-	cmp	r0, #6
-	bne	.L1968
+	b	.L2068
+.L1969:
+	cmp	r5, #6
+	bne	.L1970
 	mov	r3, #14
-	mov	r6, #12
+	mov	r10, #12
 	strb	r3, [r4, #128]
 	mov	r3, #15
 	strb	r3, [r4, #129]
@@ -11657,105 +12218,87 @@
 	strb	r3, [r4, #130]
 	mov	r3, #17
 	strb	r3, [r4, #131]
-	b	.L2023
-.L1968:
-	cmp	r0, #7
-	bne	.L1969
-	add	r1, r4, #127
-	mov	r3, #176
+	b	.L2068
 .L1970:
-	strb	r3, [r1, #1]!
+	cmp	r5, #7
+	bne	.L1971
+	add	r2, r4, #127
+	mov	r3, #176
+.L1972:
+	strb	r3, [r2, #1]!
 	add	r3, r3, #1
 	uxtb	r3, r3
 	cmp	r3, #184
-	bne	.L1970
+	bne	.L1972
 	mvn	r3, #43
-	mov	r6, #12
+	mov	r10, #12
 	strb	r3, [r4, #136]
-	mov	fp, #10
 	mvn	r3, #42
 	strb	r3, [r4, #137]
-	b	.L1963
-.L1969:
-	cmp	r0, #8
-	mov	r6, #7
-	bne	.L2023
-	mov	r3, #6
-	strb	r6, [r4, #129]
-	strb	r3, [r4, #128]
-	mov	r6, #50
-	mov	r3, #9
-	strb	r0, [r4, #130]
-	strb	r3, [r4, #131]
-	mov	fp, #5
-	mov	r3, #10
-	strb	r3, [r4, #132]
-	b	.L1963
-.L2023:
-	mov	fp, #4
-.L1963:
-	sub	r3, r5, #1
-	cmp	r3, #1
-	bhi	.L2062
-	ldr	r1, .L2072+8
-	mov	r9, #0
+	mov	fp, #10
+	b	.L1965
 .L1971:
-	ldrb	ip, [r8, #1101]	@ zero_extendqisi2
-	uxtb	r3, r9
-	ldr	r0, .L2072
-	cmp	ip, r3
-	bls	.L1978
-	add	r3, r0, r3
+	cmp	r5, #8
+	mov	r3, #7
+	movne	r10, r3
+	bne	.L2068
+	strb	r3, [r4, #129]
+	mov	r3, #9
+	mov	r2, #6
+	strb	r3, [r4, #131]
+	mov	r3, #10
+	strb	r2, [r4, #128]
+	strb	r5, [r4, #130]
+	mov	r10, #50
+	strb	r3, [r4, #132]
+	mov	fp, #5
+	b	.L1965
+.L1979:
+	add	r3, r6, r3
 	mov	r5, #160
-	ldr	r0, [r0, #1040]
-	sub	r10, fp, #1
-	ldrb	r7, [r3, #1180]	@ zero_extendqisi2
-	add	r2, r4, #127
-	ldr	ip, [sp]
-	mla	r5, r5, r7, r4
-	add	r7, r0, r7, asl #8
-	uxtab	r10, ip, r10
-	mov	ip, #55
+	ldrb	r3, [r3, #1144]	@ zero_extendqisi2
+	add	r1, r4, #127
+	ldr	r7, [r6, #1044]
+	mla	r5, r5, r3, r4
+	add	r7, r7, r3, lsl #8
+	mov	r3, #55
 	add	r5, r5, #144
-	sub	r3, r5, #1
-.L1973:
-	str	ip, [r7, #2056]
-	ldrb	r0, [r2, #1]!	@ zero_extendqisi2
-	str	r1, [sp, #16]
-	str	r3, [sp, #12]
-	str	r0, [r7, #2052]
-	mov	r0, #200
-	str	ip, [sp, #8]
-	str	r2, [sp, #4]
-	str	r2, [sp, #20]
-	bl	timer_delay_ns
-	ldr	r0, [r7, #2048]
-	ldr	r2, [sp, #4]
-	ldr	r3, [sp, #12]
-	cmp	r2, r10
-	ldr	ip, [sp, #8]
-	ldr	r1, [sp, #16]
-	strb	r0, [r3, #1]!
-	bne	.L1973
-	mov	ip, r5
-	mov	r0, #0
-.L1974:
-	add	r7, r1, r0
-	mov	r3, #1
+	sub	r9, r5, #1
 .L1975:
-	ldrb	lr, [r7, r3, asl #2]	@ zero_extendqisi2
-	ldrb	r10, [ip]	@ zero_extendqisi2
-	add	lr, lr, r10
-	strb	lr, [ip, r3, asl #3]
+	str	r3, [r7, #2056]
+	mov	r0, #200
+	ldrb	r2, [r1, #1]!	@ zero_extendqisi2
+	str	r3, [sp, #12]
+	str	r2, [r7, #2052]
+	str	r1, [sp, #8]
+	bl	ndelay
+	ldr	r3, [sp, #4]
+	ldr	r1, [sp, #8]
+	ldr	r2, [r7, #2048]
+	cmp	r3, r1
+	ldr	r3, [sp, #12]
+	strb	r2, [r9, #1]!
+	bne	.L1975
+	ldr	lr, .L2074+8
+	mov	r1, r5
+	mov	r2, #0
+.L1976:
+	mov	r3, #1
+	add	ip, lr, r2
+.L1977:
+	ldrb	r0, [ip, r3, lsl #2]	@ zero_extendqisi2
+	ldrb	r7, [r1]	@ zero_extendqisi2
+	add	r0, r0, r7
+	strb	r0, [r1, r3, lsl #3]
 	add	r3, r3, #1
 	cmp	r3, #7
-	bne	.L1975
-	add	r0, r0, #1
-	add	ip, ip, #1
-	cmp	r0, #4
-	bne	.L1974
+	bne	.L1977
+	add	r2, r2, #1
+	add	r1, r1, #1
+	cmp	r2, #4
+	bne	.L1976
 	mov	r3, #0
-	add	r9, r9, #1
+	add	r8, r8, #1
 	strb	r3, [r5, #16]
 	strb	r3, [r5, #24]
 	strb	r3, [r5, #32]
@@ -11763,384 +12306,383 @@
 	strb	r3, [r5, #48]
 	strb	r3, [r5, #41]
 	strb	r3, [r5, #49]
-	b	.L1971
-.L2062:
+	b	.L1974
+.L1973:
 	sub	r3, r5, #3
 	cmp	r3, #5
-	bhi	.L1978
-	smulbb	r2, fp, r6
-	mov	r3, r2, asl #4
-	mov	r2, r2, asr #1
-	str	r3, [sp, #28]
-	mov	r3, r2, asl #1
-	str	r3, [sp, #8]
+	bhi	.L1980
+	smulbb	r3, fp, r10
+	asr	r2, r3, #1
+	lsl	r3, r3, #4
+	str	r3, [sp, #44]
+	lsl	r3, r2, #2
+	str	r2, [sp, #4]
+	str	r3, [sp, #36]
+	lsl	r3, r2, #1
+	str	r3, [sp, #20]
 	mov	r3, #0
-.L2070:
-	str	r3, [sp, #12]
-	ldr	r3, .L2072
-	ldrb	r2, [r3, #1101]	@ zero_extendqisi2
-	ldrb	r3, [sp, #12]	@ zero_extendqisi2
+.L2073:
+	str	r3, [sp, #16]
+	ldr	r3, .L2074
+	ldrb	r2, [r3, #1109]	@ zero_extendqisi2
+	ldrb	r3, [sp, #16]	@ zero_extendqisi2
 	cmp	r2, r3
-	bhi	.L2022
-.L1978:
-	strb	fp, [r4, #113]
-	strb	r6, [r4, #114]
-	add	sp, sp, #36
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2022:
-	ldr	r2, .L2072
-	mov	r10, #160
-	mov	r9, #255
+	bls	.L1980
+	ldr	r2, .L2074
+	mov	r7, #255
 	add	r3, r2, r3
-	ldrb	r3, [r3, #1180]	@ zero_extendqisi2
-	mov	r0, r3
-	str	r3, [sp]
+	ldrb	r8, [r3, #1144]	@ zero_extendqisi2
+	mov	r0, r8
 	bl	zftl_flash_exit_slc_mode
-	ldr	r3, [sp]
-	mla	r10, r10, r3, r4
-	add	r3, r10, #144
-	str	r3, [sp, #24]
-	ldr	r3, .L2072
-	ldr	r3, [r3, #1040]
-	str	r3, [sp, #4]
-	ldr	r3, [sp]
-	mov	r8, r3, asl #8
-	ldr	r3, [sp, #4]
-	add	r7, r3, r8
-	str	r9, [r7, #2056]
+	mov	r0, #160
+	mla	r0, r0, r8, r4
+	add	r3, r0, #144
+	str	r3, [sp, #32]
+	ldr	r3, .L2074
+	ldr	r9, [r3, #1044]
+	add	r6, r9, r8, lsl #8
+	str	r7, [r6, #2056]
 	bl	nandc_wait_flash_ready
 	cmp	r5, #8
-	bne	.L1980
+	bne	.L1982
 	add	r3, r4, #144
 	mov	r2, #23
-	mov	r1, #25
-	str	r3, [sp, #24]
+	str	r3, [sp, #32]
 	mov	r3, #120
-	str	r3, [r7, #2056]
+	str	r3, [r6, #2056]
 	mov	r3, #0
-	str	r3, [r7, #2052]
-	str	r3, [r7, #2052]
-	str	r3, [r7, #2052]
-	str	r2, [r7, #2056]
+	str	r3, [r6, #2052]
+	mov	r1, #25
+	str	r3, [r6, #2052]
+	str	r3, [r6, #2052]
+	str	r2, [r6, #2056]
 	mov	r2, #4
-	str	r2, [r7, #2056]
-	str	r1, [r7, #2056]
+	str	r2, [r6, #2056]
+	str	r1, [r6, #2056]
 	mov	r1, #218
-	str	r1, [r7, #2056]
+	str	r1, [r6, #2056]
 	mov	r1, #21
-	str	r3, [r7, #2056]
-	str	r3, [r7, #2052]
-	str	r3, [r7, #2052]
-	str	r1, [r7, #2052]
-	str	r2, [r7, #2052]
-	str	r3, [r7, #2052]
-	b	.L1981
-.L1980:
-	cmp	r5, #4
-	mov	r3, #54
-	str	r3, [r7, #2056]
-	moveq	r3, #64
-	streq	r9, [r7, #2052]
-	streq	r3, [r7, #2048]
-	moveq	r3, #204
-	beq	.L2067
-.L1982:
-	sub	r3, r5, #5
-	cmp	r3, #1
-	ldrlsb	r3, [r4, #128]	@ zero_extendqisi2
-	strls	r3, [r7, #2052]
-	movls	r3, #82
-	bls	.L2068
-	cmp	r5, #7
-	bne	.L1983
-	mov	r3, #174
-	str	r3, [r7, #2052]
-	mov	r3, #0
-	str	r3, [r7, #2048]
-	mov	r3, #176
-.L2067:
-	str	r3, [r7, #2052]
-	mov	r3, #77
-.L2068:
-	str	r3, [r7, #2048]
+	str	r3, [r6, #2056]
+	str	r3, [r6, #2052]
+	str	r3, [r6, #2052]
+	str	r1, [r6, #2052]
+	str	r2, [r6, #2052]
+	str	r3, [r6, #2052]
 .L1983:
-	ldr	r3, [sp, #4]
-	cmp	r5, #6
-	add	r8, r3, r8
-	mov	r3, #22
-	str	r3, [r8, #2056]
-	mov	r3, #23
-	str	r3, [r8, #2056]
-	mov	r3, #4
-	str	r3, [r8, #2056]
-	mov	r3, #25
-	str	r3, [r8, #2056]
-	mov	r3, #0
-	str	r3, [r8, #2056]
-	str	r3, [r8, #2052]
-	str	r3, [r8, #2052]
-	moveq	r3, #31
-	str	r3, [r8, #2052]
-	mov	r3, #2
-	str	r3, [r8, #2052]
-	mov	r3, #0
-	str	r3, [r8, #2052]
-.L1981:
-	ldmia	sp, {r2, r3}
-	sub	r10, r5, #8
-	sub	r8, r5, #5
-	clz	r10, r10
-	add	r3, r3, r2, asl #8
+	add	r3, r9, r8, lsl #8
 	mov	r2, #48
-	mov	r10, r10, lsr #5
 	str	r2, [r3, #2056]
 	bl	nandc_wait_flash_ready
-	cmp	r8, #1
-	movhi	r3, #0
-	movls	r3, #1
-	str	r3, [sp, #16]
-	orrs	r3, r3, r10
-	movne	ip, #16
-	bne	.L1987
+	sub	r3, r5, #5
+	cmp	r5, #8
+	cmpne	r3, #1
+	str	r3, [sp, #40]
+	movls	r2, #16
+	bls	.L1989
 	cmp	r5, #7
-	movne	ip, #2
-	moveq	ip, #32
-.L1987:
-	ldr	r3, .L2072+12
-	ldmia	sp, {r1, r2}
-	ldr	r3, [r3, #-128]
-	add	r1, r2, r1, asl #8
-	mov	r0, r3
-.L1988:
-	ldr	r2, [r1, #2048]
-	strb	r2, [r0], #1
-	rsb	r2, r3, r0
-	uxtb	r2, r2
-	cmp	r2, ip
-	bcc	.L1988
-	cmp	r10, #0
-	beq	.L1989
-	mov	r2, #0
-.L1991:
-	ldrb	ip, [r3, r2, asl #2]	@ zero_extendqisi2
-	uxtb	r0, r2
-	cmp	ip, #50
-	beq	.L1990
-	add	ip, r3, r2, asl #2
-	ldrb	ip, [ip, #1]	@ zero_extendqisi2
-	cmp	ip, #5
-	beq	.L1990
-	add	r2, r2, #1
-	cmp	r2, #8
-	bne	.L1991
-	b	.L1992
-.L1990:
-	cmp	r0, #7
-	bne	.L1993
-.L1992:
-	ldr	r0, .L2072+16
-	mov	r1, #0
-	bl	printk
-.L1994:
-	b	.L1994
+	movne	r2, #2
+	moveq	r2, #32
 .L1989:
-	cmp	r5, #7
-	bne	.L1995
-	mov	r2, r10
-.L1997:
-	ldrb	ip, [r3, r2, asl #2]	@ zero_extendqisi2
-	uxtb	r0, r2
-	cmp	ip, #12
-	beq	.L1996
-	add	ip, r3, r2, asl #2
-	ldrb	ip, [ip, #1]	@ zero_extendqisi2
-	cmp	ip, #10
-	beq	.L1996
+	ldr	r3, .L2074+12
+	sub	r2, r2, #1
+	add	r6, r9, r8, lsl #8
+	ldr	r3, [r3, #-120]
+	sub	r1, r3, #1
+	uxtab	r2, r3, r2
+	mov	r0, r1
+.L1990:
+	ldr	ip, [r6, #2048]
+	strb	ip, [r0, #1]!
+	cmp	r0, r2
+	bne	.L1990
+	cmp	r5, #8
+	bne	.L1991
+	mov	r2, #0
+.L1993:
+	ldrb	r0, [r3, r2, lsl #2]	@ zero_extendqisi2
+	uxtb	r1, r2
+	cmp	r0, #50
+	beq	.L1992
+	add	r0, r3, r2, lsl #2
+	ldrb	r0, [r0, #1]	@ zero_extendqisi2
+	cmp	r0, #5
+	beq	.L1992
 	add	r2, r2, #1
 	cmp	r2, #8
-	bne	.L1997
-	b	.L1998
+	bne	.L1993
+.L1994:
+	mov	r1, #0
+	ldr	r0, .L2074+16
+	bl	printk
 .L1996:
-	cmp	r0, #7
-	bne	.L1993
-.L1998:
-	ldr	r0, .L2072+16
-	mov	r1, #0
-	bl	printk
-.L1999:
-	b	.L1999
-.L1995:
-	cmp	r5, #6
-	bne	.L1993
-	sub	r2, r3, #1
-	add	r3, r3, #7
-.L2000:
-	ldrb	r0, [r2, #1]!	@ zero_extendqisi2
-	cmp	r0, #12
-	beq	.L1993
-	ldrb	r0, [r2, #8]	@ zero_extendqisi2
-	cmp	r0, #4
-	beq	.L1993
-	cmp	r2, r3
-	bne	.L2000
-	ldr	r0, .L2072+16
-	mov	r1, #0
-	bl	printk
-.L2002:
-	b	.L2002
-.L1993:
-	ldr	r3, .L2072+12
-	ldr	r0, [sp, #28]
-	ldr	r2, [r3, #-128]
-	add	r0, r2, r0
-	mov	r3, r2
-.L2003:
-	cmp	r3, r0
-	ldrne	ip, [r1, #2048]
-	strneb	ip, [r3], #1
-	bne	.L2003
+	b	.L1996
+.L1982:
+	cmp	r5, #4
+	mov	r3, #54
+	str	r3, [r6, #2056]
+	bne	.L1984
+	mov	r3, #64
+	str	r7, [r6, #2052]
+	str	r3, [r6, #2048]
+	mov	r3, #204
+.L2070:
+	str	r3, [r6, #2052]
+	mov	r3, #77
 .L2071:
-	ldr	r3, .L2072+12
-	mov	r0, #8
-	ldr	r1, [sp, #8]
-	ldr	r3, [r3, #-128]
-	add	r1, r3, r1
-	str	r1, [sp, #20]
-.L2006:
-	ldr	ip, [sp, #8]
-	add	lr, r1, ip
+	str	r3, [r6, #2048]
+.L1985:
+	add	r3, r9, r8, lsl #8
+	mov	r2, #22
+	cmp	r5, #6
+	str	r2, [r3, #2056]
+	mov	r2, #23
+	str	r2, [r3, #2056]
+	mov	r2, #4
+	str	r2, [r3, #2056]
+	mov	r2, #25
+	str	r2, [r3, #2056]
+	mov	r2, #0
+	str	r2, [r3, #2056]
+	str	r2, [r3, #2052]
+	str	r2, [r3, #2052]
+	moveq	r2, #31
+	str	r2, [r3, #2052]
+	mov	r2, #2
+	str	r2, [r3, #2052]
+	mov	r2, #0
+	str	r2, [r3, #2052]
+	b	.L1983
+.L1984:
+	sub	r3, r5, #5
+	cmp	r3, #1
+	ldrbls	r3, [r4, #128]	@ zero_extendqisi2
+	strls	r3, [r6, #2052]
+	movls	r3, #82
+	bls	.L2071
+	cmp	r5, #7
+	bne	.L1985
+	mov	r3, #174
+	str	r3, [r6, #2052]
+	mov	r3, #0
+	str	r3, [r6, #2048]
+	mov	r3, #176
+	b	.L2070
+.L1992:
+	cmp	r1, #6
+	bhi	.L1994
+.L1995:
+	ldr	r3, .L2074+12
+	ldr	r2, [r3, #-120]
+	mov	r3, r2
 .L2005:
-	ldrh	ip, [r1]
-	mvn	ip, ip
-	strh	ip, [r1], #2	@ movhi
-	cmp	r1, lr
-	bne	.L2005
-	ldr	ip, [sp, #8]
-	subs	r0, r0, #1
-	add	r1, r1, ip
-	bne	.L2006
+	ldr	r0, [sp, #44]
+	sub	r1, r3, r2
+	cmp	r0, r1
+	bgt	.L2006
+	ldr	r3, .L2074+12
+	ldr	r1, [r3, #-120]
+	ldr	r3, [sp, #20]
+	add	r0, r1, r3
+	mov	r3, #8
+.L2008:
+	mov	lr, r0
+	mov	ip, #0
 .L2007:
+	ldrh	r7, [lr]
+	add	ip, ip, #1
+	mvn	r7, r7
+	strh	r7, [lr], #2	@ movhi
+	ldr	r7, [sp, #4]
+	cmp	r7, ip
+	bgt	.L2007
+	ldr	ip, [sp, #36]
+	subs	r3, r3, #1
+	add	r0, r0, ip
+	bne	.L2008
+	str	r1, [sp, #8]
+	str	r3, [sp, #12]
+.L2009:
 	mov	ip, #0
 	mov	r0, ip
-.L2010:
-	mov	r1, #1
-	mov	lr, #0
-	mov	r1, r1, asl r0
-	mov	r8, #16
-	mov	r7, lr
-.L2008:
-	ldrh	r9, [r3, lr]
-	and	r9, r9, r1
-	cmp	r9, r1
+.L2013:
+	mov	lr, #1
+	mov	r7, #16
+	lsl	lr, lr, r0
+	str	r7, [sp, #28]
+	mov	r7, #0
+	str	lr, [sp, #24]
+	ldr	lr, [sp, #8]
+.L2011:
+	ldrh	r3, [lr]
+	mov	r1, r3
+	ldr	r3, [sp, #24]
+	bics	r3, r3, r1
+	ldr	r3, [sp, #20]
 	addeq	r7, r7, #1
-	ldr	r9, [sp, #8]
-	subs	r8, r8, #1
-	add	lr, lr, r9
-	bne	.L2008
+	add	lr, lr, r3
+	ldr	r3, [sp, #28]
+	subs	r3, r3, #1
+	str	r3, [sp, #28]
+	bne	.L2011
 	cmp	r7, #8
 	add	r0, r0, #1
-	orrhi	ip, ip, r1
+	ldrhi	r3, [sp, #24]
+	orrhi	ip, ip, r3
 	uxthhi	ip, ip
 	cmp	r0, #16
-	bne	.L2010
-	ldr	r1, [sp, #20]
+	bne	.L2013
+	ldr	r3, [sp, #8]
 	strh	ip, [r3], #2	@ movhi
+	str	r3, [sp, #8]
+	ldr	r3, [sp, #12]
+	add	r3, r3, #1
+	str	r3, [sp, #12]
+	ldr	r1, [sp, #12]
+	ldr	r3, [sp, #4]
 	cmp	r3, r1
-	bne	.L2007
-	ldr	r3, .L2072+12
-	ldr	r1, [r3, #-128]
+	bgt	.L2009
+	ldr	r3, .L2074+12
+	ldr	r1, [r3, #-120]
 	mov	r3, #0
 	sub	r0, r1, #4
 	add	ip, r1, #28
-.L2012:
+.L2016:
 	ldr	lr, [r0, #4]!
 	cmp	lr, #0
 	addeq	r3, r3, #1
-	cmp	r0, ip
-	bne	.L2012
+	cmp	ip, r0
+	bne	.L2016
 	cmp	r3, #7
-	ble	.L2013
-	ldr	r0, .L2072+20
-	mov	r2, #1
+	ble	.L2017
+	ldr	r0, .L2074+20
 	mov	r3, #1024
+	mov	r2, #1
 	bl	rknand_print_hex
-	ldr	r0, .L2072+16
 	mov	r1, #0
+	ldr	r0, .L2074+16
 	bl	printk
-.L2014:
-	b	.L2014
-.L2013:
-	cmp	r5, #6
-	moveq	r0, #4
-	beq	.L2015
+.L2018:
+	b	.L2018
+.L1991:
 	cmp	r5, #7
-	moveq	r0, #10
-	beq	.L2015
-	cmp	r10, #0
-	moveq	r0, #8
-	movne	r0, #5
-.L2015:
-	sub	r9, fp, #1
-	ldr	r1, [sp, #24]
-	mov	ip, #0
-	uxtb	r9, r9
-	add	r9, r9, #1
-.L2016:
-	mov	r7, r1
-	mov	r3, r2
+	bne	.L1997
+	mov	r2, #0
+.L1999:
+	ldrb	r0, [r3, r2, lsl #2]	@ zero_extendqisi2
+	uxtb	r1, r2
+	cmp	r0, #12
+	beq	.L1998
+	add	r0, r3, r2, lsl #2
+	ldrb	r0, [r0, #1]	@ zero_extendqisi2
+	cmp	r0, #10
+	beq	.L1998
+	add	r2, r2, #1
+	cmp	r2, #8
+	bne	.L1999
+.L2000:
+	mov	r1, #0
+	ldr	r0, .L2074+16
+	bl	printk
+.L2001:
+	b	.L2001
+.L1998:
+	cmp	r1, #6
+	bls	.L1995
+	b	.L2000
+.L1997:
+	cmp	r5, #6
+	bne	.L1995
+	add	r3, r3, #7
+.L2002:
+	ldrb	r2, [r1, #1]!	@ zero_extendqisi2
+	cmp	r2, #12
+	beq	.L1995
+	ldrb	r2, [r1, #8]	@ zero_extendqisi2
+	cmp	r2, #4
+	beq	.L1995
+	cmp	r1, r3
+	bne	.L2002
+	mov	r1, #0
+	ldr	r0, .L2074+16
+	bl	printk
+.L2004:
+	b	.L2004
+.L2006:
+	ldr	r1, [r6, #2048]
+	strb	r1, [r3], #1
+	b	.L2005
 .L2017:
-	ldrb	lr, [r3], #1	@ zero_extendqisi2
-	strb	lr, [r7], #1
-	rsb	lr, r2, r3
-	uxtb	lr, lr
-	cmp	lr, fp
-	bcc	.L2017
-	add	ip, ip, #1
-	add	r2, r2, r9
-	cmp	ip, r6
-	add	r1, r1, r0
-	blt	.L2016
-	ldmia	sp, {r2, r3}
+	cmp	r5, #6
+	moveq	ip, #4
+	beq	.L2019
+	cmp	r5, #7
+	moveq	ip, #10
+	beq	.L2019
+	cmp	r5, #8
+	movne	ip, #8
+	moveq	ip, #5
+.L2019:
+	sub	r3, fp, #1
+	ldr	r0, [sp, #32]
+	uxtb	r3, r3
+	mov	lr, #0
+	add	r3, r3, #1
+	str	r3, [sp, #8]
+.L2020:
+	mov	r3, r0
+	mov	r1, r2
+.L2021:
+	ldrb	r7, [r1], #1	@ zero_extendqisi2
+	strb	r7, [r3], #1
+	sub	r7, r1, r2
+	uxtb	r7, r7
+	cmp	fp, r7
+	bhi	.L2021
+	ldr	r3, [sp, #8]
+	add	lr, lr, #1
+	cmp	r10, lr
+	add	r0, r0, ip
+	add	r2, r2, r3
+	bgt	.L2020
+	add	r7, r9, r8, lsl #8
 	mov	r8, #255
-	add	r7, r3, r2, asl #8
 	str	r8, [r7, #2056]
 	bl	nandc_wait_flash_ready
-	ldr	r3, [sp, #16]
-	cmp	r3, #0
-	beq	.L2019
+	ldr	r3, [sp, #40]
+	cmp	r3, #1
+	bhi	.L2023
 	mov	r3, #54
+	mov	r2, #22
 	str	r3, [r7, #2056]
 	ldrb	r3, [r4, #128]	@ zero_extendqisi2
-	mov	r2, #22
-	str	r3, [r7, #2052]
+	str	r3, [r6, #2052]
 	mov	r3, #0
-	str	r3, [r7, #2048]
+	str	r3, [r6, #2048]
 	str	r2, [r7, #2056]
 	str	r3, [r7, #2056]
-	str	r3, [r7, #2052]
-	str	r3, [r7, #2052]
+	str	r3, [r6, #2052]
+	str	r3, [r6, #2052]
 	mov	r3, #48
-	str	r8, [r7, #2052]
-	str	r8, [r7, #2052]
-	str	r8, [r7, #2052]
-	b	.L2069
-.L2019:
-	cmp	r10, #0
-	movne	r3, #190
-	moveq	r3, #56
-.L2069:
+	str	r8, [r6, #2052]
+	str	r8, [r6, #2052]
+	str	r8, [r6, #2052]
+.L2072:
 	str	r3, [r7, #2056]
 	bl	nandc_wait_flash_ready
-	ldr	r3, [sp, #12]
+	ldr	r3, [sp, #16]
 	add	r3, r3, #1
-	b	.L2070
-.L2073:
+	b	.L2073
+.L2023:
+	cmp	r5, #8
+	moveq	r3, #190
+	movne	r3, #56
+	b	.L2072
+.L2075:
 	.align	2
-.L2072:
+.L2074:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LANCHOR2+396
+	.word	.LANCHOR2+390
 	.word	.LANCHOR3
 	.word	.LC141
 	.word	.LC142
@@ -12148,495 +12690,494 @@
 	.size	hynix_get_read_retry_default, .-hynix_get_read_retry_default
 	.align	2
 	.global	flash_get_read_retry_tbl
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_get_read_retry_tbl, %function
 flash_get_read_retry_tbl:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	ldr	r3, .L2076
+	ldr	r3, .L2078
 	ldrb	r0, [r3, #23]	@ zero_extendqisi2
 	sub	r3, r0, #1
 	cmp	r3, #7
 	bxhi	lr
 	b	hynix_get_read_retry_default
-.L2077:
+.L2079:
 	.align	2
-.L2076:
+.L2078:
 	.word	.LANCHOR2
 	.fnend
 	.size	flash_get_read_retry_tbl, .-flash_get_read_retry_tbl
 	.align	2
 	.global	nandc_xfer_done
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_xfer_done, %function
 nandc_xfer_done:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L2127
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
-	.save {r4, r5, r6, r7, lr}
-	.pad #12
-	mov	r5, #0
-	ldrb	r2, [r3, #1028]	@ zero_extendqisi2
-	mov	r4, r3
-	ldr	r7, .L2127+4
-	cmp	r2, #9
-	strb	r5, [r7, #-124]
-	bne	.L2079
-	ldr	r6, [r3, #1040]
+	push	{r0, r1, r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	.pad #8
+	mov	r1, #0
+	ldr	r4, .L2129
+	ldr	r7, .L2129+4
+	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
+	ldr	r6, [r4, #1044]
+	strb	r1, [r7, #-116]
+	cmp	r3, #9
+	bne	.L2081
 	ldr	r3, [r6, #16]
 	str	r3, [sp]
-	ldr	r3, [r6, #48]
-	ubfx	r3, r3, #1, #1
-	cmp	r3, r5
-	moveq	r5, r3
-	moveq	r7, r4
-	beq	.L2081
-.L2080:
+	ldr	r5, [r6, #48]
+	ubfx	r5, r5, #1, #1
+	cmp	r5, r1
+	bne	.L2082
+	ldr	r7, .L2129+8
+	ldr	r8, .L2129+12
+.L2083:
+	ldr	r3, [sp]
+	tst	r3, #1048576
+	beq	.L2093
+	ldr	r3, [r4, #1220]
+	cmp	r3, #0
+	beq	.L2091
+	ldr	r1, [sp]
+	mov	r2, #1
+	ldr	r0, [r4, #1212]
+	ubfx	r1, r1, #22, #6
+	lsl	r1, r1, #10
+	bl	rknand_dma_unmap_single
+	ldr	r1, [sp]
+	mov	r2, #1
+	ubfx	r1, r1, #22, #6
+	b	.L2128
+.L2082:
+	mov	r5, r1
+.L2084:
 	ldr	r2, [r6, #64]
 	ldr	r3, [sp]
 	ubfx	r2, r2, #16, #6
 	ubfx	r3, r3, #22, #6
 	cmp	r2, r3
-	bge	.L2083
-	ldr	r3, [r4, #1040]
+	bge	.L2086
+	ldr	r3, [r4, #1044]
 	ldr	r3, [r3]
 	str	r3, [sp, #4]
 	ldr	r3, [sp, #4]
 	tst	r3, #8192
-	beq	.L2082
+	beq	.L2085
 	ldr	r3, [sp, #4]
 	tst	r3, #131072
-	beq	.L2082
+	beq	.L2085
 	ldr	r1, [sp, #4]
-	ldr	r0, .L2127+8
+	ldr	r0, .L2129+16
 	ubfx	r1, r1, #17, #1
 	bl	printk
-	b	.L2083
-.L2082:
+.L2086:
+	ldr	r3, [r4, #1220]
+	cmp	r3, #0
+	beq	.L2091
+	ldr	r1, [sp]
+	mov	r2, #0
+	ldr	r0, [r4, #1212]
+	ubfx	r1, r1, #22, #6
+	lsl	r1, r1, #10
+	bl	rknand_dma_unmap_single
+	ldr	r1, [sp]
+	mov	r2, #0
+	ubfx	r1, r1, #22, #6
+.L2128:
+	lsl	r1, r1, #2
+.L2126:
+	ldr	r0, [r4, #1216]
+	bl	rknand_dma_unmap_single
+.L2091:
+	mov	r3, #0
+	str	r3, [r4, #1220]
+	add	sp, sp, #8
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, pc}
+.L2085:
 	ldr	r3, [sp]
 	add	r5, r5, #1
 	ubfx	r3, r3, #22, #6
-	cmp	r5, r3, asl #12
-	bne	.L2084
+	cmp	r5, r3, lsl #12
+	bne	.L2087
 	ldr	r2, [r6, #64]
 	mov	r1, r5
 	ldr	r3, [sp]
-	ldr	r0, .L2127+12
+	ldr	r0, .L2129+20
 	ubfx	r2, r2, #16, #5
 	ubfx	r3, r3, #22, #6
 	bl	printk
 	ldr	r3, [sp, #4]
 	tst	r3, #8192
 	mov	r3, #1
-	strb	r3, [r7, #-124]
-	bne	.L2083
-	ldr	r3, .L2127+16
-	ldr	r0, .L2127+20
+	strb	r3, [r7, #-116]
+	bne	.L2086
+	ldr	r3, .L2129+24
+	ldr	r0, .L2129+28
 	ldr	r3, [r3, #4]
 	blx	r3
-	b	.L2083
-.L2084:
-	mov	r0, #5
+	b	.L2086
+.L2087:
 	mov	r1, #10
+	mov	r0, #5
 	bl	usleep_range
-	b	.L2080
-.L2083:
-	ldr	r3, [r4, #1160]
-	ldr	r5, .L2127
-	cmp	r3, #0
-	beq	.L2088
-	ldr	r1, [sp]
-	mov	r2, #0
-	ldr	r0, [r5, #1152]
-	ubfx	r1, r1, #22, #6
-	mov	r1, r1, asl #10
-	bl	rknand_dma_unmap_single
-	ldr	r0, [r5, #1156]
-	ldr	r1, [sp]
-	ubfx	r1, r1, #22, #6
-	mov	r1, r1, asl #2
-	b	.L2126
-.L2090:
-	ldr	r3, [r4, #1040]
+	b	.L2084
+.L2093:
+	ldr	r3, [r4, #1044]
 	add	r5, r5, #1
 	ldr	r3, [r3, #16]
 	str	r3, [sp]
-	bic	r3, r5, #-16777216
-	cmp	r3, #0
-	bne	.L2089
+	bics	r3, r5, #-16777216
+	bne	.L2092
 	ldr	r2, [sp]
 	mov	r1, r5
 	ldr	r3, [r6, #64]
-	ldr	r0, .L2127+24
+	mov	r0, r7
 	ubfx	r3, r3, #16, #6
 	bl	printk
-	ldr	r0, .L2127+28
-	ldr	r1, [r7, #1040]
-	mov	r2, #4
 	mov	r3, #64
+	mov	r2, #4
+	ldr	r1, [r4, #1044]
+	mov	r0, r8
 	bl	rknand_print_hex
-.L2089:
-	mov	r0, #5
+.L2092:
 	mov	r1, #10
+	mov	r0, #5
 	bl	usleep_range
+	b	.L2083
 .L2081:
+	ldr	r3, [r6, #8]
+	str	r3, [sp]
+	ldr	r5, [r6, #16]
+	ubfx	r5, r5, #1, #1
+	cmp	r5, #0
+	bne	.L2095
+	ldr	r7, .L2129+8
+	ldr	r8, .L2129+12
+.L2096:
 	ldr	r3, [sp]
 	tst	r3, #1048576
-	beq	.L2090
-	ldr	r3, [r4, #1160]
-	ldr	r5, .L2127
+	beq	.L2103
+	ldr	r3, [r4, #1220]
 	cmp	r3, #0
-	beq	.L2088
+	beq	.L2091
 	ldr	r1, [sp]
 	mov	r2, #1
-	ldr	r0, [r5, #1152]
+	ldr	r0, [r4, #1212]
 	ubfx	r1, r1, #22, #6
-	mov	r1, r1, asl #10
+	lsl	r1, r1, #10
 	bl	rknand_dma_unmap_single
-	ldr	r0, [r5, #1156]
 	ldr	r1, [sp]
+	mov	r2, #1
 	ubfx	r1, r1, #22, #6
-	mov	r1, r1, asl #2
-	b	.L2125
-.L2079:
-	ldr	r7, [r3, #1040]
-	ldr	r3, [r7, #8]
-	str	r3, [sp]
-	ldr	r6, [r7, #16]
-	ubfx	r6, r6, #1, #1
-	cmp	r6, #0
-	moveq	r5, r4
-	beq	.L2093
-.L2092:
-	ldr	r2, [r7, #28]
+	b	.L2127
+.L2095:
+	ldr	r7, .L2129+20
+	mov	r5, r1
+	ldr	r8, .L2129+12
+.L2097:
+	ldr	r2, [r6, #28]
 	ldr	r3, [sp]
 	ubfx	r2, r2, #16, #5
 	ubfx	r3, r3, #22, #6
 	cmp	r2, r3
-	bge	.L2095
-	ldr	r3, [r4, #1040]
+	bge	.L2099
+	ldr	r3, [r4, #1044]
 	ldr	r3, [r3]
 	str	r3, [sp, #4]
 	ldr	r3, [sp, #4]
 	tst	r3, #8192
-	beq	.L2094
+	beq	.L2098
 	ldr	r3, [sp, #4]
 	tst	r3, #131072
-	beq	.L2094
+	beq	.L2098
 	ldr	r1, [sp, #4]
-	ldr	r0, .L2127+32
+	ldr	r0, .L2129+32
 	bl	printk
-	b	.L2095
-.L2094:
-	add	r5, r5, #1
-	bic	r3, r5, #-16777216
+.L2099:
+	ldr	r3, [r4, #1220]
 	cmp	r3, #0
-	bne	.L2096
-	ldr	r2, [r7, #28]
+	beq	.L2091
+	ldr	r1, [sp]
+	mov	r2, #0
+	ldr	r0, [r4, #1212]
+	ubfx	r1, r1, #22, #6
+	lsl	r1, r1, #10
+	bl	rknand_dma_unmap_single
+	ldr	r1, [sp]
+	mov	r2, #0
+	ubfx	r1, r1, #22, #6
+.L2127:
+	lsl	r1, r1, #7
+	b	.L2126
+.L2098:
+	add	r5, r5, #1
+	bics	r3, r5, #-16777216
+	bne	.L2100
+	ldr	r2, [r6, #28]
 	mov	r1, r5
 	ldr	r3, [sp]
+	mov	r0, r7
 	ubfx	r2, r2, #16, #5
-	ldr	r0, .L2127+12
 	ubfx	r3, r3, #22, #6
 	bl	printk
-	ldr	r0, .L2127+28
-	ldr	r1, [r4, #1040]
-	mov	r2, #4
 	mov	r3, #64
+	mov	r2, #4
+	ldr	r1, [r4, #1044]
+	mov	r0, r8
 	bl	rknand_print_hex
-.L2096:
-	mov	r0, #5
+.L2100:
 	mov	r1, #10
+	mov	r0, #5
 	bl	usleep_range
-	b	.L2092
-.L2095:
-	ldr	r3, [r4, #1160]
-	ldr	r5, .L2127
-	cmp	r3, #0
-	beq	.L2088
-	ldr	r1, [sp]
-	mov	r2, #0
-	ldr	r0, [r5, #1152]
-	ubfx	r1, r1, #22, #6
-	mov	r1, r1, asl #10
-	bl	rknand_dma_unmap_single
-	ldr	r0, [r5, #1156]
-	ldr	r1, [sp]
-	ubfx	r1, r1, #22, #6
-	mov	r1, r1, asl #7
-.L2126:
-	mov	r2, #0
-	b	.L2124
-.L2099:
-	ldr	r3, [r4, #1040]
-	add	r6, r6, #1
+	b	.L2097
+.L2103:
+	ldr	r3, [r4, #1044]
+	add	r5, r5, #1
 	ldr	r3, [r3, #8]
 	str	r3, [sp]
-	bic	r3, r6, #-16777216
-	cmp	r3, #0
-	bne	.L2098
+	bics	r3, r5, #-16777216
+	bne	.L2102
 	ldr	r2, [sp]
-	mov	r1, r6
-	ldr	r3, [r7, #28]
-	ldr	r0, .L2127+24
+	mov	r1, r5
+	ldr	r3, [r6, #28]
+	mov	r0, r7
 	ubfx	r3, r3, #16, #5
 	bl	printk
-	ldr	r0, .L2127+28
-	ldr	r1, [r5, #1040]
-	mov	r2, #4
 	mov	r3, #64
+	mov	r2, #4
+	ldr	r1, [r4, #1044]
+	mov	r0, r8
 	bl	rknand_print_hex
-.L2098:
-	mov	r0, #5
+.L2102:
 	mov	r1, #10
+	mov	r0, #5
 	bl	usleep_range
-.L2093:
-	ldr	r3, [sp]
-	tst	r3, #1048576
-	beq	.L2099
-	ldr	r3, [r4, #1160]
-	ldr	r5, .L2127
-	cmp	r3, #0
-	beq	.L2088
-	ldr	r1, [sp]
-	mov	r2, #1
-	ldr	r0, [r5, #1152]
-	ubfx	r1, r1, #22, #6
-	mov	r1, r1, asl #10
-	bl	rknand_dma_unmap_single
-	ldr	r0, [r5, #1156]
-	ldr	r1, [sp]
-	ubfx	r1, r1, #22, #6
-	mov	r1, r1, asl #7
-.L2125:
-	mov	r2, #1
-.L2124:
-	bl	rknand_dma_unmap_single
-.L2088:
-	mov	r3, #0
-	str	r3, [r4, #1160]
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, pc}
-.L2128:
+	b	.L2096
+.L2130:
 	.align	2
-.L2127:
+.L2129:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
+	.word	.LC145
+	.word	.LC146
 	.word	.LC143
 	.word	.LC144
 	.word	arm_delay_ops
 	.word	644245000
-	.word	.LC145
-	.word	.LC146
 	.word	.LC147
 	.fnend
 	.size	nandc_xfer_done, .-nandc_xfer_done
 	.align	2
 	.global	nandc_xfer
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nandc_xfer, %function
 nandc_xfer:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	.pad #8
 	mov	r4, r1
-	ldr	r7, [sp, #32]
-	mov	r0, r1
+	ldr	r5, [sp, #32]
 	mov	r8, r2
-	mov	r1, r2
 	mov	r6, r3
-	mov	r2, r3
-	mov	r3, r7
+	mov	r1, r8
+	mov	r2, r6
+	mov	r0, r4
+	mov	r3, r5
 	bl	nandc_xfer_start
 	mov	r0, r4
 	bl	nandc_xfer_done
 	cmp	r4, #0
 	movne	r0, #0
-	bne	.L2159
-	ldr	r5, .L2172
-	ldrb	r3, [r5, #1028]	@ zero_extendqisi2
+	bne	.L2132
+	ldr	r7, .L2170
+	ldrb	r3, [r7, #1028]	@ zero_extendqisi2
 	cmp	r3, #9
-	bne	.L2131
-	ldr	ip, [r5, #1040]
-	mov	r2, r8, lsr #2
-	mov	r1, #1
-	mov	lr, r4
+	bne	.L2133
+	ldr	r1, [r7, #1044]
+	lsr	r8, r8, #2
+	mov	r2, #1
 	mov	r0, r4
+.L2134:
+	cmp	r4, r8
+	bcc	.L2138
+	ldr	r4, [r1]
+	cmp	r2, #0
+	movne	r0, #512
+	and	r3, r4, #139264
+	cmp	r3, #139264
+	bne	.L2140
+	mov	r1, r4
+	ldr	r0, .L2170+4
+	bl	printk
+	ldr	r3, [r7, #1044]
+	mvn	r0, #0
+	orr	r4, r4, #131072
+	str	r4, [r3]
+.L2140:
+	tst	r4, #8192
+	beq	.L2141
+	ldr	r3, .L2170+8
+	ldrb	r3, [r3, #-116]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L2141
+	mov	r1, r4
+	ldr	r0, .L2170+12
+	bl	printk
+	ldr	r3, [r7, #1044]
+	mov	r2, #1
+	str	r2, [r3, #16]
+.L2169:
+	mvn	r0, #0
 .L2132:
-	cmp	lr, r2
-	bcs	.L2169
-	add	r3, lr, #84
-	ldr	r3, [ip, r3, asl #2]
+	add	sp, sp, #8
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, pc}
+.L2138:
+	add	r3, r4, #84
+	ldr	r3, [r1, r3, lsl #2]
 	str	r3, [sp, #4]
+	ldr	ip, [sp, #4]
 	ldr	r3, [sp, #4]
-	ldr	r4, [sp, #4]
-	ubfx	r4, r4, #26, #1
-	and	r4, r4, r3, lsr #10
+	ubfx	r3, r3, #26, #1
+	and	r3, r3, ip, lsr #10
+	and	r2, r2, r3
 	ldr	r3, [sp, #4]
-	and	r1, r1, r4
 	tst	r3, #4
-	bne	.L2151
+	bne	.L2152
 	ldr	r3, [sp, #4]
 	tst	r3, #262144
-	bne	.L2151
-	ldr	r4, [sp, #4]
+	bne	.L2152
+	ldr	ip, [sp, #4]
 	ldr	r3, [sp, #4]
-	ubfx	r4, r4, #3, #7
+	ubfx	ip, ip, #3, #7
 	ubfx	r3, r3, #19, #7
-	cmp	r4, r3
+	cmp	ip, r3
 	ldr	r3, [sp, #4]
 	ubfxgt	r3, r3, #3, #7
 	ubfxle	r3, r3, #19, #7
 	cmp	r0, r3
 	movcc	r0, r3
-	b	.L2133
-.L2151:
+.L2135:
+	add	r4, r4, #1
+	b	.L2134
+.L2152:
 	mvn	r0, #0
+	b	.L2135
 .L2133:
-	add	lr, lr, #1
-	b	.L2132
-.L2169:
-	ldr	r3, [r5, #1040]
-	cmp	r1, #0
-	movne	r0, #512
-	ldr	r4, [r3]
+	ldrb	r3, [r7, #1193]	@ zero_extendqisi2
+	lsr	r0, r8, #1
+	mov	r2, r5
+	mov	r1, r4
+	cmp	r3, #25
+	movcc	lr, #64
+	movcs	lr, #128
+.L2143:
+	cmp	r1, r0
+	add	ip, lr, r4
+	add	r2, r2, #4
+	bcc	.L2144
+	ldr	r1, [r7, #1044]
+	mov	r2, #0
+	lsr	r8, r8, #2
+	mov	r0, r2
+.L2145:
+	cmp	r2, r8
+	bcc	.L2149
+	mov	r3, #0
+	str	r3, [r1, #16]
+	ldr	r4, [r1]
 	and	r3, r4, #139264
 	cmp	r3, #139264
-	bne	.L2138
+	bne	.L2141
 	mov	r1, r4
-	ldr	r0, .L2172+4
+	ldr	r0, .L2170+16
 	bl	printk
-	ldr	r3, [r5, #1040]
-	mvn	r0, #0
+	ldr	r3, [r7, #1044]
 	orr	r4, r4, #131072
 	str	r4, [r3]
-.L2138:
-	tst	r4, #8192
-	beq	.L2139
-	ldr	r3, .L2172+8
-	ldrb	r3, [r3, #-124]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L2139
-	ldr	r0, .L2172+12
-	mov	r1, r4
-	bl	printk
-	ldr	r3, [r5, #1040]
-	mov	r2, #1
-	str	r2, [r3, #16]
-	b	.L2140
-.L2131:
-	ldrb	r3, [r5, #1172]	@ zero_extendqisi2
-	mov	r1, r8, lsr #1
-	mov	r2, r4
-	cmp	r3, #25
-	mov	r3, r7
-	movcc	ip, #64
-	movcs	ip, #128
-.L2142:
-	cmp	r2, r1
-	add	r0, r4, ip
-	add	r3, r3, #4
-	bcs	.L2170
-	ldr	lr, [r5, #1140]
-	mov	r4, r4, lsr #2
-	add	r2, r2, #1
-	ldr	r4, [lr, r4, asl #2]
-	mov	lr, r4, lsr #8
-	strb	r4, [r3, #-4]
-	strb	lr, [r3, #-3]
-	mov	lr, r4, lsr #16
-	mov	r4, r4, lsr #24
-	strb	lr, [r3, #-2]
-	strb	r4, [r3, #-1]
-	mov	r4, r0
-	b	.L2142
-.L2170:
-	ldr	ip, [r5, #1040]
-	mov	r1, #0
-	mov	r2, r8, lsr #2
-	mov	r0, r1
+	b	.L2169
 .L2144:
-	cmp	r1, r2
-	bcs	.L2171
-	add	r3, r1, #8
-	ldr	r3, [ip, r3, asl #2]
+	ldr	r3, [r7, #1200]
+	bic	r4, r4, #3
+	add	r1, r1, #1
+	ldr	r3, [r3, r4]
+	strb	r3, [r2, #-4]
+	lsr	r4, r3, #8
+	strb	r4, [r2, #-3]
+	lsr	r4, r3, #16
+	lsr	r3, r3, #24
+	strb	r4, [r2, #-2]
+	mov	r4, ip
+	strb	r3, [r2, #-1]
+	b	.L2143
+.L2149:
+	add	r3, r2, #8
+	ldr	r3, [r1, r3, lsl #2]
 	str	r3, [sp, #4]
 	ldr	r3, [sp, #4]
 	tst	r3, #4
-	bne	.L2154
+	bne	.L2155
 	ldr	r3, [sp, #4]
 	tst	r3, #32768
-	bne	.L2154
-	ldr	lr, [sp, #4]
-	ldr	r8, [sp, #4]
-	ldr	r3, [sp, #4]
-	ubfx	lr, lr, #3, #5
+	bne	.L2155
+	ldr	ip, [sp, #4]
 	ldr	r4, [sp, #4]
-	ubfx	r8, r8, #27, #1
-	ubfx	r3, r3, #16, #5
-	ubfx	r4, r4, #29, #1
-	orr	lr, lr, r8, asl #5
-	orr	r3, r3, r4, asl #5
-	cmp	lr, r3
 	ldr	r3, [sp, #4]
-	ldrhi	r4, [sp, #4]
+	ldr	lr, [sp, #4]
+	ubfx	ip, ip, #3, #5
+	ubfx	r4, r4, #27, #1
+	ubfx	r3, r3, #16, #5
+	orr	ip, ip, r4, lsl #5
+	ubfx	lr, lr, #29, #1
+	orr	r3, r3, lr, lsl #5
+	cmp	ip, r3
+	ldr	r3, [sp, #4]
+	ldrhi	ip, [sp, #4]
+	ldrls	ip, [sp, #4]
 	ubfxhi	r3, r3, #3, #5
-	ldrls	r4, [sp, #4]
 	ubfxls	r3, r3, #16, #5
-	ubfxhi	r4, r4, #27, #1
-	ubfxls	r4, r4, #29, #1
-	orr	r4, r3, r4, asl #5
-	cmp	r0, r4
-	movcc	r0, r4
+	ubfxhi	ip, ip, #27, #1
+	ubfxls	ip, ip, #29, #1
+	orr	r3, r3, ip, lsl #5
+	cmp	r0, r3
+	movcc	r0, r3
+.L2146:
+	add	r2, r2, #1
 	b	.L2145
-.L2154:
+.L2155:
 	mvn	r0, #0
-.L2145:
-	add	r1, r1, #1
-	b	.L2144
-.L2171:
-	ldr	r3, [r5, #1040]
-	mov	r2, #0
-	str	r2, [r3, #16]
-	ldr	r4, [r3]
-	and	r3, r4, #139264
-	cmp	r3, #139264
-	bne	.L2139
-	mov	r1, r4
-	ldr	r0, .L2172+16
-	bl	printk
-	ldr	r3, .L2172
-	orr	r4, r4, #131072
-	ldr	r3, [r3, #1040]
-	str	r4, [r3]
-	b	.L2140
-.L2139:
+	b	.L2146
+.L2141:
 	cmn	r0, #1
-	beq	.L2159
-	ldr	r3, [r7]
+	beq	.L2132
+	ldr	r3, [r5]
 	cmn	r3, #1
-	bne	.L2159
-	ldr	r3, [r7, #4]
+	bne	.L2132
+	ldr	r3, [r5, #4]
 	cmn	r3, #1
-	bne	.L2159
+	bne	.L2132
 	ldr	r3, [r6]
 	cmn	r3, #1
 	moveq	r0, #512
-	b	.L2159
-.L2140:
-	mvn	r0, #0
-.L2159:
-	add	sp, sp, #8
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L2173:
+	b	.L2132
+.L2171:
 	.align	2
-.L2172:
+.L2170:
 	.word	.LANCHOR0
 	.word	.LC148
 	.word	.LANCHOR3
@@ -12646,712 +13187,670 @@
 	.size	nandc_xfer, .-nandc_xfer
 	.align	2
 	.global	flash_read_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_read_page, %function
 flash_read_page:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	mov	r6, r0
-	ldr	r10, .L2190
+	ldr	r7, .L2188
 	.pad #20
 	sub	sp, sp, #20
-	mvn	r4, #0
 	ubfx	r9, r1, #24, #2
-	str	r2, [sp, #12]
 	mov	r8, r3
-	ldrb	r0, [r10, #1189]	@ zero_extendqisi2
-	mov	r7, r10
-	ldr	r5, [r10, #1040]
-	mov	r10, r6, asl #8
-	rsb	r0, r0, #24
-	bic	r4, r1, r4, asl r0
+	str	r2, [sp, #12]
+	lsl	r10, r6, #8
+	ldrb	r4, [r7, #1153]	@ zero_extendqisi2
+	ldr	r5, [r7, #1044]
+	rsb	r0, r4, #24
+	mvn	r4, #0
+	bic	r4, r1, r4, lsl r0
 	bl	nandc_wait_flash_ready
 	mov	r0, r6
 	bl	nandc_cs
 	cmp	r9, #0
-	bne	.L2175
+	bne	.L2173
 	mov	r0, r6
 	bl	zftl_flash_enter_slc_mode
-	b	.L2176
-.L2175:
-	ldr	r2, [r7, #1096]
-	ldrb	r2, [r2, #12]	@ zero_extendqisi2
-	cmp	r2, #3
-	bne	.L2177
-	ldrb	r2, [r7, #1196]	@ zero_extendqisi2
-	cmp	r2, #0
-	bne	.L2177
-	ldrb	r2, [r7, #1197]	@ zero_extendqisi2
-	cmp	r2, #0
-	addeq	r2, r5, r10
-	streq	r9, [r2, #2056]
-	beq	.L2176
-.L2177:
-	mov	r0, r6
-	bl	zftl_flash_exit_slc_mode
-.L2176:
-	ldr	r2, [r7, #1096]
+.L2174:
+	ldr	r2, [r7, #1104]
 	ldrb	r1, [r2, #7]	@ zero_extendqisi2
 	cmp	r1, #1
-	bne	.L2178
+	bne	.L2176
 	ldrb	r1, [r2, #12]	@ zero_extendqisi2
 	cmp	r1, #2
 	addeq	r1, r5, r10
 	moveq	r0, #38
 	streq	r0, [r1, #2056]
-.L2178:
+.L2176:
 	add	fp, r5, r10
 	mov	r1, #0
-	mov	r0, #48
 	str	r1, [fp, #2056]
+	mov	r0, #48
 	str	r1, [fp, #2052]
 	str	r1, [fp, #2052]
 	uxtb	r1, r4
 	str	r1, [fp, #2052]
-	mov	r1, r4, lsr #8
+	lsr	r1, r4, #8
 	str	r1, [fp, #2052]
-	mov	r1, r4, lsr #16
+	lsr	r1, r4, #16
 	str	r1, [fp, #2052]
-	ldrb	r1, [r7, #1188]	@ zero_extendqisi2
+	ldrb	r1, [r7, #1152]	@ zero_extendqisi2
 	cmp	r1, #0
-	movne	r1, r4, lsr #24
+	lsrne	r1, r4, #24
 	strne	r1, [fp, #2052]
 	add	r1, r5, r10
 	str	r0, [r1, #2056]
-	ldrb	r1, [r2, #12]	@ zero_extendqisi2
-	adds	r2, r9, #0
-	movne	r2, #1
-	cmp	r1, #3
-	movne	r2, #0
+	cmp	r9, #0
+	ldrb	r2, [r2, #12]	@ zero_extendqisi2
+	sub	r2, r2, #3
+	clz	r2, r2
+	lsr	r2, r2, #5
+	moveq	r2, #0
 	cmp	r2, #0
-	beq	.L2180
-	ldrb	r3, [r7, #1196]	@ zero_extendqisi2
+	beq	.L2178
+	ldrb	r2, [r7, #1158]	@ zero_extendqisi2
+	cmp	r2, #0
+	bne	.L2178
+	ldrb	r3, [r7, #1159]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L2180
-	ldr	r3, .L2190
-	ldrb	r3, [r3, #1197]	@ zero_extendqisi2
-	cmp	r3, #0
-	addeq	r4, r4, r4, asl #1
+	addeq	r4, r4, r4, lsl #1
 	subeq	r0, r4, #1
 	addeq	r0, r0, r9
-	beq	.L2189
-.L2180:
+	beq	.L2187
+.L2178:
 	mov	r0, r4
-.L2189:
+.L2187:
 	bl	nandc_set_seed
-	mov	r4, #0
 	bl	nandc_wait_flash_ready
 	add	r3, r5, r10
-	mov	r1, r4
 	mov	r2, #5
-	mov	r0, r6
 	str	r2, [r3, #2056]
-	str	r4, [fp, #2052]
+	mov	r1, #0
 	mov	r2, #224
-	str	r4, [fp, #2052]
+	str	r1, [fp, #2052]
+	mov	r0, r6
+	str	r1, [fp, #2052]
 	str	r2, [r3, #2056]
-	ldrb	r2, [sp, #56]	@ zero_extendqisi2
 	ldr	r3, [sp, #12]
+	ldrb	r2, [sp, #56]	@ zero_extendqisi2
 	str	r8, [sp]
 	bl	nandc_xfer
-	mov	r5, r0
-	mov	r0, r4
-	bl	nandc_de_cs
-	mov	r0, r5
+	bl	nandc_de_cs.constprop.35
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2191:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2173:
+	ldr	r2, [r7, #1104]
+	ldrb	r2, [r2, #12]	@ zero_extendqisi2
+	cmp	r2, #3
+	bne	.L2175
+	ldrb	r2, [r7, #1158]	@ zero_extendqisi2
+	cmp	r2, #0
+	bne	.L2175
+	ldrb	r2, [r7, #1159]	@ zero_extendqisi2
+	cmp	r2, #0
+	addeq	r2, r5, r10
+	streq	r9, [r2, #2056]
+	beq	.L2174
+.L2175:
+	mov	r0, r6
+	bl	zftl_flash_exit_slc_mode
+	b	.L2174
+.L2189:
 	.align	2
-.L2190:
+.L2188:
 	.word	.LANCHOR0
 	.fnend
 	.size	flash_read_page, .-flash_read_page
 	.align	2
 	.global	micron_read_retrial
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	micron_read_retrial, %function
 micron_read_retrial:
 	.fnstart
-	@ args = 4, pretend = 0, frame = 24
+	@ args = 4, pretend = 0, frame = 16
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #36
-	sub	sp, sp, #36
-	ldr	r4, .L2220
-	mov	r5, r0
-	str	r3, [sp, #24]
-	mov	r9, r1
-	str	r2, [sp, #20]
-	mov	r8, #0
-	ldrb	r3, [r4, #1172]	@ zero_extendqisi2
-	ldr	r10, .L2220+4
-	add	r3, r3, r3, asl #1
-	mov	r3, r3, asr #2
-	str	r3, [sp, #12]
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r4, #1040]
+	.pad #28
+	sub	sp, sp, #28
+	ldr	r4, .L2219
+	mov	r6, r0
+	mov	r10, r1
+	mov	r9, #0
 	str	r3, [sp, #16]
-.L2193:
-	mov	r0, r5
+	ldrb	r3, [r4, #1193]	@ zero_extendqisi2
+	str	r2, [sp, #12]
+	add	r3, r3, r3, lsl #1
+	asr	r3, r3, #2
+	str	r3, [sp, #8]
+	bl	nandc_wait_flash_ready
+	ldr	r5, [r4, #1044]
+	add	r5, r5, r6, lsl #8
+.L2191:
+	ldr	fp, .L2219+4
+	mov	r0, r6
 	mov	r7, #0
-	bl	zftl_flash_enter_slc_mode
-	mov	r0, r5
-	bl	zftl_flash_exit_slc_mode
 	mvn	r4, #0
-	ldr	r3, [sp, #16]
-	add	r6, r3, r5, asl #8
-.L2194:
-	ldrb	r3, [r10, #-116]	@ zero_extendqisi2
+	bl	zftl_flash_enter_slc_mode
+	mov	r0, r6
+	bl	zftl_flash_exit_slc_mode
+.L2192:
+	ldrb	r3, [fp, #-108]	@ zero_extendqisi2
 	cmp	r7, r3
-	bcs	.L2198
+	bcc	.L2197
+.L2196:
 	mov	r3, #239
 	mov	r0, #200
-	str	r3, [r6, #2056]
+	str	r3, [r5, #2056]
 	mov	r3, #137
-	str	r3, [r6, #2052]
-	add	fp, r7, #1
-	bl	timer_delay_ns
-	str	fp, [r6, #2048]
+	str	r3, [r5, #2052]
+	bl	ndelay
 	mov	r3, #0
-	str	r3, [r6, #2048]
-	str	r3, [r6, #2048]
-	mov	r0, r5
-	str	r3, [r6, #2048]
-	mov	r1, r9
-	ldr	r3, [sp, #72]
-	ldr	r2, [sp, #20]
+	str	r3, [r5, #2048]
+	str	r3, [r5, #2048]
+	str	r3, [r5, #2048]
+	str	r3, [r5, #2048]
+	ldr	r3, [sp, #8]
+	cmp	r4, r3
+	bcc	.L2198
+	cmn	r4, #1
+	movne	r4, #256
+.L2198:
+	cmn	r4, #1
+	movne	r8, #0
+	moveq	r8, #1
+	cmp	r4, #256
+	movne	r1, r8
+	orreq	r1, r8, #1
+	cmp	r1, #0
+	beq	.L2199
+	mov	r1, r6
+	str	r4, [sp]
+	mov	r3, r7
+	mov	r2, r10
+	ldr	r0, .L2219+8
+	bl	printk
+	eor	r1, r9, #1
+	ands	r1, r8, r1
+	beq	.L2200
+	mov	r1, #3
+	mov	r0, r6
+	bl	mt_auto_read_calibration_config
+	mov	r9, #1
+	b	.L2191
+.L2197:
+	mov	r3, #239
+	mov	r0, #200
+	str	r3, [r5, #2056]
+	mov	r3, #137
+	str	r3, [r5, #2052]
+	bl	ndelay
+	add	r3, r7, #1
+	ldr	r2, [sp, #12]
+	str	r3, [r5, #2048]
+	mov	r1, r10
+	str	r3, [sp, #20]
+	mov	r3, #0
+	str	r3, [r5, #2048]
+	mov	r0, r6
+	str	r3, [r5, #2048]
+	str	r3, [r5, #2048]
+	ldr	r3, [sp, #64]
 	str	r3, [sp]
-	ldr	r3, [sp, #24]
+	ldr	r3, [sp, #16]
 	bl	flash_read_page
-	ldr	r3, .L2220+8
+	ldr	r3, .L2219+12
+	mov	r8, r0
 	ldr	r3, [r3]
 	tst	r3, #4096
-	mov	ip, r0
-	beq	.L2195
+	beq	.L2193
 	str	r0, [sp]
-	mov	r1, r7
-	str	r0, [sp, #28]
-	mov	r2, r9
-	ldr	r0, .L2220+12
 	mov	r3, r4
+	mov	r2, r10
+	mov	r1, r7
+	ldr	r0, .L2219+16
 	bl	printk
-	ldr	ip, [sp, #28]
-.L2195:
-	cmn	ip, #1
-	beq	.L2196
-	ldr	r3, [r10, #-128]
+.L2193:
+	cmn	r8, #1
+	beq	.L2194
+	ldr	r3, [fp, #-120]
 	cmn	r4, #1
-	moveq	r4, ip
-	str	r3, [sp, #20]
-	ldr	r3, [r10, #-120]
-	str	r3, [sp, #24]
-	ldr	r3, [sp, #12]
-	cmp	ip, r3
-	bcc	.L2205
-.L2196:
-	mov	r7, fp
-	b	.L2194
-.L2205:
-	mov	r4, ip
-.L2198:
-	ldr	r3, [sp, #16]
-	mov	r6, r5, asl #8
-	mov	r0, #200
-	add	fp, r3, r6
-	mov	r3, #239
-	str	r3, [fp, #2056]
-	mov	r3, #137
-	str	r3, [fp, #2052]
-	bl	timer_delay_ns
-	mov	r3, #0
-	str	r3, [fp, #2048]
-	str	r3, [fp, #2048]
-	str	r3, [fp, #2048]
-	str	r3, [fp, #2048]
-	ldr	r3, [sp, #12]
-	cmp	r4, r3
-	bcc	.L2200
-	cmn	r4, #1
-	movne	r4, #256
-.L2200:
-	cmn	r4, #1
-	movne	fp, #0
-	moveq	fp, #1
-	cmp	r4, #256
-	movne	r3, fp
-	orreq	r3, fp, #1
-	cmp	r3, #0
-	beq	.L2201
-	mov	r3, r7
-	str	r4, [sp]
-	ldr	r0, .L2220+16
-	mov	r1, r5
-	mov	r2, r9
-	eor	r7, r8, #1
-	bl	printk
-	ands	r7, fp, r7
-	beq	.L2202
-	bl	nandc_wait_flash_ready
-	ldr	r3, .L2220
-	mov	r0, #200
-	mov	r8, #1
-	ldr	r3, [r3, #1040]
-	add	r6, r3, r6
-	mov	r3, #239
-	str	r3, [r6, #2056]
-	mov	r3, #150
-	str	r3, [r6, #2052]
-	bl	timer_delay_ns
-	mov	r3, #3
-	str	r3, [r6, #2048]
-	mov	r3, #0
-	str	r3, [r6, #2048]
-	str	r3, [r6, #2048]
-	str	r3, [r6, #2048]
-	b	.L2193
-.L2202:
-	cmp	r8, #0
-	beq	.L2203
-	bl	nandc_wait_flash_ready
-	ldr	r3, .L2220
-	mov	r0, #200
-	ldr	r9, [r3, #1040]
-	mov	r3, #239
-	add	r5, r9, r5, asl #8
-	add	r6, r9, r6
-	str	r3, [r6, #2056]
-	mov	r3, #150
-	str	r3, [r5, #2052]
-	bl	timer_delay_ns
-	cmn	r4, #1
-	str	r7, [r5, #2048]
-	movne	r4, #256
-	str	r7, [r5, #2048]
-	str	r7, [r5, #2048]
-	str	r7, [r5, #2048]
-	b	.L2203
-.L2201:
-	cmp	r8, #0
-	beq	.L2203
+	moveq	r4, r8
 	str	r3, [sp, #12]
-	bl	nandc_wait_flash_ready
-	ldr	r2, .L2220
-	mov	r0, #200
-	mov	r4, #256
-	ldr	r9, [r2, #1040]
-	mov	r2, #239
-	add	r5, r9, r5, asl #8
-	add	r6, r9, r6
-	str	r2, [r6, #2056]
-	mov	r2, #150
-	str	r2, [r5, #2052]
-	bl	timer_delay_ns
-	ldr	r3, [sp, #12]
-	str	r3, [r5, #2048]
-	str	r3, [r5, #2048]
-	str	r3, [r5, #2048]
-	str	r3, [r5, #2048]
+	ldr	r3, [fp, #-112]
+	str	r3, [sp, #16]
+	ldr	r3, [sp, #8]
+	cmp	r8, r3
+	bcc	.L2203
+.L2194:
+	ldr	r7, [sp, #20]
+	b	.L2192
 .L2203:
+	mov	r4, r8
+	b	.L2196
+.L2200:
+	cmp	r9, #0
+	beq	.L2201
+	mov	r0, r6
+	bl	mt_auto_read_calibration_config
+	cmn	r4, #1
+	movne	r4, #256
+.L2201:
 	bl	nandc_wait_flash_ready
 	mov	r0, r4
-	add	sp, sp, #36
+	add	sp, sp, #28
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2221:
-	.align	2
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2199:
+	cmp	r9, #0
+	beq	.L2201
+	mov	r0, r6
+	mov	r4, #256
+	bl	mt_auto_read_calibration_config
+	b	.L2201
 .L2220:
+	.align	2
+.L2219:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
+	.word	.LC152
 	.word	.LANCHOR2
 	.word	.LC151
-	.word	.LC152
 	.fnend
 	.size	micron_read_retrial, .-micron_read_retrial
 	.align	2
 	.global	toshiba_3d_read_retrial
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	toshiba_3d_read_retrial, %function
 toshiba_3d_read_retrial:
 	.fnstart
-	@ args = 4, pretend = 0, frame = 16
+	@ args = 4, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #28
-	sub	sp, sp, #28
-	ubfx	r4, r1, #24, #2
+	.pad #36
+	sub	sp, sp, #36
+	ldr	r7, .L2269
 	mov	r8, r0
-	mov	fp, r3
-	mov	r10, r1
-	str	r2, [sp, #12]
-	bl	nandc_wait_flash_ready
-	ldr	r7, .L2270
+	ubfx	r4, r1, #24, #2
+	mov	r9, r1
+	str	r3, [sp, #20]
 	add	r6, r8, #8
-	ldr	r3, [r7, #1040]
-	add	r6, r3, r6, asl #8
-	str	r3, [sp, #8]
-	ldrb	r3, [r7, #1173]	@ zero_extendqisi2
+	str	r2, [sp, #16]
+	mov	r5, #1
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r7, #1044]
+	str	r3, [sp, #12]
+	add	r6, r3, r6, lsl #8
+	ldrb	r3, [r7, #1100]	@ zero_extendqisi2
 	cmp	r3, #36
 	movne	r3, #56
 	moveq	r3, #46
-	movne	r5, #10
-	moveq	r5, #26
+	str	r3, [sp, #28]
+	movne	r3, #10
+	moveq	r3, #26
 	cmp	r4, #0
-	str	r3, [sp, #16]
+	str	r3, [sp, #24]
 	mvn	r4, #0
-	bne	.L2224
-	ldr	r3, [sp, #8]
-	mov	r9, #1
-	add	r3, r3, r8, asl #8
-	str	r3, [sp, #16]
-.L2231:
-	ldr	r3, .L2270
-	mov	r0, r6
-	ldrb	r3, [r3, #1173]	@ zero_extendqisi2
-	cmp	r3, #36
-	bne	.L2225
-	mov	r2, #0
-	mov	r1, r9
-	bl	toshiba_tlc_set_rr_para
-	mov	r3, #93
-	ldr	r2, [sp, #16]
-	str	r3, [r2, #2056]
-	b	.L2226
-.L2225:
-	uxtb	r1, r9
-	bl	toshiba_3d_set_slc_rr_para
-.L2226:
-	ldr	r3, [sp, #64]
-	mov	r0, r8
-	mov	r1, r10
-	ldr	r2, [sp, #12]
-	str	r3, [sp]
-	mov	r3, fp
-	bl	flash_read_page
-	ldr	r3, .L2270+4
-	ldr	r3, [r3]
-	tst	r3, #16
-	mov	ip, r0
-	beq	.L2227
-	mov	r3, ip
-	ldr	r0, .L2270+8
-	mov	r1, r9
-	mov	r2, r10
-	str	ip, [sp, #20]
-	bl	printk
-	ldr	ip, [sp, #20]
-.L2227:
-	cmn	ip, #1
-	beq	.L2228
-	ldr	r3, .L2270+12
-	cmn	r4, #1
-	moveq	r4, ip
-	ldr	r2, [r3, #-128]
-	ldr	fp, [r3, #-120]
-	ldrb	r3, [r7, #1172]	@ zero_extendqisi2
-	str	r2, [sp, #12]
-	add	r3, r3, r3, asl #1
-	cmp	ip, r3, asr #2
-	bcc	.L2246
-.L2228:
-	add	r9, r9, #1
-	cmp	r9, r5
-	bne	.L2231
-	b	.L2230
-.L2246:
-	mov	r5, r9
-	mov	r4, ip
+	ldr	r3, [sp, #12]
+	add	fp, r3, r8, lsl #8
+	bne	.L2239
 .L2230:
-	ldr	r3, .L2270
-	mov	r1, #0
-	mov	r0, r6
-	ldrb	r3, [r3, #1173]	@ zero_extendqisi2
+	ldr	r3, .L2269
+	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
 	cmp	r3, #36
-	moveq	r2, r1
-	beq	.L2269
-	bl	toshiba_3d_set_slc_rr_para
-	b	.L2233
-.L2224:
-	ldr	r3, [sp, #8]
-	mov	r5, #1
-	add	r9, r3, r8, asl #8
-.L2240:
-	ldr	r3, .L2270
-	mov	r0, r6
-	ldrb	r3, [r3, #1173]	@ zero_extendqisi2
-	cmp	r3, #36
-	bne	.L2234
+	bne	.L2224
+	mov	r2, #0
 	mov	r1, r5
-	mov	r2, #1
+	mov	r0, r6
 	bl	toshiba_tlc_set_rr_para
 	mov	r3, #93
-	b	.L2268
-.L2234:
-	uxtb	r1, r5
-	bl	toshiba_3d_set_tlc_rr_para
-	mov	r3, #38
-.L2268:
-	str	r3, [r9, #2056]
+	str	r3, [fp, #2056]
+.L2225:
+	ldr	r3, [sp, #72]
+	mov	r1, r9
+	ldr	r2, [sp, #16]
 	mov	r0, r8
-	ldr	r3, [sp, #64]
-	mov	r1, r10
-	ldr	r2, [sp, #12]
 	str	r3, [sp]
-	mov	r3, fp
+	ldr	r3, [sp, #20]
 	bl	flash_read_page
-	ldr	r3, .L2270+4
+	ldr	r3, .L2269+4
+	mov	r10, r0
 	ldr	r3, [r3]
 	tst	r3, #16
-	mov	ip, r0
-	beq	.L2236
-	mov	r3, ip
-	ldr	r0, .L2270+16
+	beq	.L2226
+	mov	r3, r0
+	mov	r2, r9
 	mov	r1, r5
-	mov	r2, r10
-	str	ip, [sp, #20]
+	ldr	r0, .L2269+8
 	bl	printk
-	ldr	ip, [sp, #20]
-.L2236:
-	cmn	ip, #1
-	beq	.L2237
-	ldr	r3, .L2270+12
+.L2226:
+	cmn	r10, #1
+	beq	.L2227
+	ldr	r3, .L2269+12
 	cmn	r4, #1
-	moveq	r4, ip
-	ldr	r2, [r3, #-128]
-	ldr	fp, [r3, #-120]
-	ldrb	r3, [r7, #1172]	@ zero_extendqisi2
-	str	r2, [sp, #12]
-	add	r3, r3, r3, asl #1
-	cmp	ip, r3, asr #2
-	bcc	.L2247
-.L2237:
-	ldr	r3, [sp, #16]
+	moveq	r4, r10
+	ldr	r2, [r3, #-120]
+	ldr	r3, [r3, #-112]
+	str	r2, [sp, #16]
+	str	r3, [sp, #20]
+	ldrb	r3, [r7, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
+	cmp	r10, r3, asr #2
+	bcc	.L2245
+.L2227:
+	ldr	r3, [sp, #24]
 	add	r5, r5, #1
-	cmp	r5, r3
-	bne	.L2240
-	b	.L2239
-.L2247:
-	mov	r4, ip
-.L2239:
-	ldr	r3, .L2270
-	mov	r0, r6
+	cmp	r3, r5
+	bne	.L2230
+.L2229:
+	ldr	r3, .L2269
+	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
+	cmp	r3, #36
+	moveq	r2, #0
+	beq	.L2268
 	mov	r1, #0
-	ldrb	r3, [r3, #1173]	@ zero_extendqisi2
+	mov	r0, r6
+	bl	toshiba_3d_set_slc_rr_para
+.L2232:
+	ldr	r3, .L2269
+	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
 	cmp	r3, #36
 	bne	.L2241
-	mov	r2, #1
-.L2269:
-	bl	toshiba_tlc_set_rr_para
-	b	.L2233
-.L2241:
-	bl	toshiba_3d_set_tlc_rr_para
-.L2233:
-	ldr	r3, .L2270
-	ldrb	r3, [r3, #1173]	@ zero_extendqisi2
-	cmp	r3, #36
-	bne	.L2242
-	ldr	r3, [sp, #8]
+	ldr	r3, [sp, #12]
 	mov	r2, #85
-	add	r3, r3, r8, asl #8
+	add	r3, r3, r8, lsl #8
 	str	r2, [r3, #2056]
 	mov	r2, #0
 	str	r2, [r3, #2052]
 	str	r2, [r3, #2048]
 	mov	r2, #255
 	str	r2, [r3, #2056]
-.L2242:
-	ldrb	r3, [r7, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
+.L2241:
+	ldrb	r3, [r7, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
 	cmp	r4, r3, asr #2
-	bcc	.L2243
+	bcc	.L2242
 	cmn	r4, #1
 	movne	r4, #256
-.L2243:
+.L2242:
 	cmn	r4, #1
 	cmpne	r4, #256
-	bne	.L2244
+	bne	.L2243
 	str	r4, [sp]
-	mov	r1, r8
-	ldr	r0, .L2270+20
-	mov	r2, r10
 	mov	r3, r5
+	mov	r2, r9
+	mov	r1, r8
+	ldr	r0, .L2269+16
 	bl	printk
-.L2244:
+.L2243:
 	bl	nandc_wait_flash_ready
 	mov	r0, r4
-	add	sp, sp, #28
+	add	sp, sp, #36
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2271:
-	.align	2
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2224:
+	uxtb	r1, r5
+	mov	r0, r6
+	bl	toshiba_3d_set_slc_rr_para
+	b	.L2225
+.L2245:
+	mov	r4, r10
+	b	.L2229
+.L2239:
+	ldr	r3, .L2269
+	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
+	cmp	r3, #36
+	bne	.L2233
+	mov	r2, #1
+	mov	r1, r5
+	mov	r0, r6
+	bl	toshiba_tlc_set_rr_para
+	mov	r3, #93
+.L2267:
+	str	r3, [fp, #2056]
+	mov	r1, r9
+	ldr	r3, [sp, #72]
+	mov	r0, r8
+	ldr	r2, [sp, #16]
+	str	r3, [sp]
+	ldr	r3, [sp, #20]
+	bl	flash_read_page
+	ldr	r3, .L2269+4
+	mov	r10, r0
+	ldr	r3, [r3]
+	tst	r3, #16
+	beq	.L2235
+	mov	r3, r0
+	mov	r2, r9
+	mov	r1, r5
+	ldr	r0, .L2269+20
+	bl	printk
+.L2235:
+	cmn	r10, #1
+	beq	.L2236
+	ldr	r3, .L2269+12
+	cmn	r4, #1
+	moveq	r4, r10
+	ldr	r2, [r3, #-120]
+	ldr	r3, [r3, #-112]
+	str	r2, [sp, #16]
+	str	r3, [sp, #20]
+	ldrb	r3, [r7, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
+	cmp	r10, r3, asr #2
+	bcc	.L2246
+.L2236:
+	ldr	r3, [sp, #28]
+	add	r5, r5, #1
+	cmp	r3, r5
+	bne	.L2239
+.L2238:
+	ldr	r3, .L2269
+	ldrb	r3, [r3, #1100]	@ zero_extendqisi2
+	cmp	r3, #36
+	bne	.L2240
+	mov	r2, #1
+.L2268:
+	mov	r1, #0
+	mov	r0, r6
+	bl	toshiba_tlc_set_rr_para
+	b	.L2232
+.L2233:
+	uxtb	r1, r5
+	mov	r0, r6
+	bl	toshiba_3d_set_tlc_rr_para
+	mov	r3, #38
+	b	.L2267
+.L2246:
+	mov	r4, r10
+	b	.L2238
+.L2240:
+	mov	r1, #0
+	mov	r0, r6
+	bl	toshiba_3d_set_tlc_rr_para
+	b	.L2232
 .L2270:
+	.align	2
+.L2269:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
 	.word	.LC153
 	.word	.LANCHOR3
-	.word	.LC154
 	.word	.LC155
+	.word	.LC154
 	.fnend
 	.size	toshiba_3d_read_retrial, .-toshiba_3d_read_retrial
 	.align	2
 	.global	toshiba_read_retrial
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	toshiba_read_retrial, %function
 toshiba_read_retrial:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	mov	r6, r0
 	.pad #36
 	sub	sp, sp, #36
-	mov	r5, r0
-	ldr	r4, .L2305
+	ldr	r5, .L2303
+	add	r9, r6, #8
 	str	r3, [sp, #20]
-	add	r9, r5, #8
 	str	r1, [sp, #12]
 	str	r2, [sp, #16]
 	bl	nandc_wait_flash_ready
-	mov	r0, r5
+	mov	r0, r6
 	bl	zftl_flash_enter_slc_mode
-	mov	r0, r5
+	mov	r0, r6
 	bl	zftl_flash_exit_slc_mode
-	ldrb	r3, [r4, #1173]	@ zero_extendqisi2
-	ldr	r7, [r4, #1040]
+	ldrb	r3, [r5, #1100]	@ zero_extendqisi2
+	ldr	r7, [r5, #1044]
 	sub	r3, r3, #67
 	cmp	r3, #1
-	add	r9, r7, r9, asl #8
-	mov	r3, r5, asl #8
+	lsl	r3, r6, #8
+	add	r9, r7, r9, lsl #8
 	str	r3, [sp, #24]
 	movls	r3, #0
 	strls	r3, [sp, #8]
-	bls	.L2273
-	ldrb	r6, [r4, #1135]	@ zero_extendqisi2
-	cmp	r6, #0
-	streq	r6, [sp, #8]
-	beq	.L2274
+	bls	.L2272
+	ldrb	r3, [r5, #1143]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L2290
 	mov	r0, #1
 	bl	nandc_set_if_mode
 	mov	r3, #1
+.L2290:
 	str	r3, [sp, #8]
-.L2274:
-	ldr	r3, [sp, #24]
+	lsl	r3, r6, #8
 	mov	r2, #92
 	add	r3, r7, r3
 	str	r2, [r3, #2056]
 	mov	r2, #197
 	str	r2, [r3, #2056]
-.L2273:
-	ldr	fp, .L2305+4
+.L2272:
+	ldr	fp, .L2303+4
+	lsl	r3, r6, #8
 	mov	r8, #1
 	mvn	r10, #0
-	mov	r3, r5, asl #8
 	str	r3, [sp, #28]
-.L2275:
-	ldrb	r3, [fp, #-116]	@ zero_extendqisi2
+.L2274:
+	ldrb	r3, [fp, #-108]	@ zero_extendqisi2
 	add	r3, r3, #1
 	cmp	r8, r3
-	bcs	.L2304
-	ldrb	r3, [r4, #1173]	@ zero_extendqisi2
+	bcc	.L2283
+	mov	r4, r10
+.L2282:
+	ldrb	r3, [r5, #1100]	@ zero_extendqisi2
+	mov	r1, #0
+	mov	r0, r9
+	sub	r3, r3, #67
+	cmp	r3, #1
+	bhi	.L2284
+	bl	sandisk_set_rr_para
+.L2285:
+	add	r6, r7, r6, lsl #8
+	mov	r3, #255
+	str	r3, [r6, #2056]
+	ldrb	r3, [r5, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
+	cmp	r4, r3, asr #2
+	bcc	.L2286
+	cmn	r4, #1
+	movne	r4, #256
+.L2286:
+	cmn	r4, #1
+	cmpne	r4, #256
+	bne	.L2287
+	str	r4, [sp]
+	mov	r3, r8
+	ldr	r2, [sp, #12]
+	mov	r1, r8
+	ldr	r0, .L2303+8
+	bl	printk
+.L2287:
+	bl	nandc_wait_flash_ready
+	ldr	r3, [sp, #8]
+	cmp	r3, #0
+	beq	.L2271
+	mov	r0, #4
+	bl	nandc_set_if_mode
+.L2271:
+	mov	r0, r4
+	add	sp, sp, #36
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2283:
+	ldrb	r3, [r5, #1100]	@ zero_extendqisi2
 	mov	r0, r9
 	uxtb	r1, r8
 	sub	r3, r3, #67
 	cmp	r3, #1
-	bhi	.L2276
+	bhi	.L2275
 	bl	sandisk_set_rr_para
-	b	.L2277
 .L2276:
-	bl	toshiba_set_rr_para
-.L2277:
-	ldrb	r3, [r4, #1173]	@ zero_extendqisi2
+	ldrb	r3, [r5, #1100]	@ zero_extendqisi2
 	cmp	r3, #34
-	bne	.L2278
-	ldr	r3, .L2305+4
-	ldrb	r3, [r3, #-116]	@ zero_extendqisi2
+	bne	.L2277
+	ldr	r3, .L2303+4
+	ldrb	r3, [r3, #-108]	@ zero_extendqisi2
 	sub	r3, r3, #3
 	cmp	r8, r3
 	ldreq	r3, [sp, #28]
 	moveq	r2, #179
 	addeq	r3, r7, r3
 	streq	r2, [r3, #2056]
-.L2278:
+.L2277:
 	ldr	r3, [sp, #24]
 	mov	r2, #38
 	add	r1, sp, #12
-	mov	r0, r5
+	mov	r0, r6
 	add	r3, r7, r3
 	str	r2, [r3, #2056]
 	mov	r2, #93
 	str	r2, [r3, #2056]
 	ldr	r3, [sp, #72]
 	str	r3, [sp]
-	ldmia	r1, {r1, r2, r3}
+	ldm	r1, {r1, r2, r3}
 	bl	flash_read_page
 	cmn	r0, #1
-	mov	r6, r0
-	beq	.L2281
-	ldr	r3, [fp, #-128]
+	mov	r4, r0
+	beq	.L2280
+	ldr	r3, [fp, #-120]
 	cmn	r10, #1
 	moveq	r10, r0
 	str	r3, [sp, #16]
-	ldr	r3, [fp, #-120]
+	ldr	r3, [fp, #-112]
 	str	r3, [sp, #20]
-	ldrb	r3, [r4, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
+	ldrb	r3, [r5, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
 	cmp	r0, r3, asr #2
-	bcc	.L2283
-.L2281:
+	bcc	.L2282
+.L2280:
 	add	r8, r8, #1
-	b	.L2275
-.L2304:
-	mov	r6, r10
-.L2283:
-	ldrb	r3, [r4, #1173]	@ zero_extendqisi2
-	mov	r0, r9
-	mov	r1, #0
-	sub	r3, r3, #67
-	cmp	r3, #1
-	bhi	.L2285
-	bl	sandisk_set_rr_para
-	b	.L2286
-.L2285:
+	b	.L2274
+.L2275:
 	bl	toshiba_set_rr_para
-.L2286:
-	add	r5, r7, r5, asl #8
-	mov	r3, #255
-	str	r3, [r5, #2056]
-	ldrb	r3, [r4, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
-	cmp	r6, r3, asr #2
-	bcc	.L2287
-	cmn	r6, #1
-	movne	r6, #256
-.L2287:
-	cmn	r6, #1
-	cmpne	r6, #256
-	bne	.L2288
-	str	r6, [sp]
-	mov	r1, r8
-	ldr	r0, .L2305+8
-	mov	r3, r8
-	ldr	r2, [sp, #12]
-	bl	printk
-.L2288:
-	bl	nandc_wait_flash_ready
-	ldr	r3, [sp, #8]
-	cmp	r3, #0
-	beq	.L2289
-	mov	r0, #4
-	bl	nandc_set_if_mode
-.L2289:
-	mov	r0, r6
-	add	sp, sp, #36
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2306:
+	b	.L2276
+.L2284:
+	bl	toshiba_set_rr_para
+	b	.L2285
+.L2304:
 	.align	2
-.L2305:
+.L2303:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
 	.word	.LC155
@@ -13359,129 +13858,131 @@
 	.size	toshiba_read_retrial, .-toshiba_read_retrial
 	.align	2
 	.global	ymtc_3d_read_retrial
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ymtc_3d_read_retrial, %function
 ymtc_3d_read_retrial:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r8, r0
+	mov	r7, r0
 	.pad #20
 	sub	sp, sp, #20
-	ldr	r6, .L2337
-	mov	r9, r1
-	mov	fp, r3
-	mov	r10, r2
+	mov	r8, r1
+	mov	r9, r2
+	mov	r10, r3
 	bl	nandc_wait_flash_ready
-	mov	r0, r8
-	add	r7, r8, #8
-	bl	zftl_flash_enter_slc_mode
-	mov	r0, r8
-	bl	zftl_flash_exit_slc_mode
-	ldr	r3, [r6, #1040]
-	tst	r9, #50331648
-	mvn	r4, #0
-	add	r7, r3, r7, asl #8
-	mov	r5, #1
-	ldr	ip, .L2337+4
-	bne	.L2317
-.L2312:
 	mov	r0, r7
+	mvn	r4, #0
+	bl	zftl_flash_enter_slc_mode
+	mov	r0, r7
+	mov	r5, #1
+	bl	zftl_flash_exit_slc_mode
+	ldr	r3, .L2334
+	tst	r8, #50331648
+	add	r2, r7, #8
+	ldr	fp, .L2334+4
+	ldr	r6, [r3, #1044]
+	str	r3, [sp, #12]
+	add	r6, r6, r2, lsl #8
+	bne	.L2315
+.L2310:
 	uxtb	r1, r5
-	str	ip, [sp, #12]
+	mov	r0, r6
 	bl	ymtc_3d_set_slc_rr_para
-	mov	r0, r8
-	mov	r1, r9
-	mov	r2, r10
 	ldr	r3, [sp, #56]
+	mov	r2, r9
+	mov	r1, r8
+	mov	r0, r7
 	str	r3, [sp]
-	mov	r3, fp
+	mov	r3, r10
 	bl	flash_read_page
 	cmn	r0, #1
-	ldr	ip, [sp, #12]
-	beq	.L2309
-	ldrb	r3, [r6, #1172]	@ zero_extendqisi2
+	beq	.L2307
+	ldr	r3, [sp, #12]
 	cmn	r4, #1
-	ldr	r10, [ip, #-128]
 	moveq	r4, r0
-	ldr	fp, [ip, #-120]
-	add	r3, r3, r3, asl #1
+	ldr	r9, [fp, #-120]
+	ldr	r10, [fp, #-112]
+	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
 	cmp	r0, r3, asr #2
-	bcc	.L2320
-.L2309:
+	bcc	.L2318
+.L2307:
 	add	r5, r5, #1
 	cmp	r5, #10
-	bne	.L2312
-	b	.L2311
-.L2320:
-	mov	r4, r0
-.L2311:
-	mov	r0, r7
+	bne	.L2310
+.L2309:
 	mov	r1, #0
+	mov	r0, r6
 	bl	ymtc_3d_set_slc_rr_para
-	b	.L2313
-.L2336:
-	ldrb	r3, [r6, #1172]	@ zero_extendqisi2
-	cmn	r4, #1
-	ldr	r10, [ip, #-128]
-	moveq	r4, r0
-	ldr	fp, [ip, #-120]
-	add	r3, r3, r3, asl #1
-	cmp	r0, r3, asr #2
-	bcc	.L2321
-.L2314:
-	add	r5, r5, #1
-	cmp	r5, #51
-	beq	.L2316
-.L2317:
-	mov	r0, r7
-	uxtb	r1, r5
-	str	ip, [sp, #12]
-	bl	ymtc_3d_set_tlc_rr_para
-	mov	r0, r8
-	mov	r1, r9
-	mov	r2, r10
-	ldr	r3, [sp, #56]
-	str	r3, [sp]
-	mov	r3, fp
-	bl	flash_read_page
-	cmn	r0, #1
-	ldr	ip, [sp, #12]
-	bne	.L2336
-	b	.L2314
-.L2321:
-	mov	r4, r0
-.L2316:
-	mov	r0, r7
-	mov	r1, #0
-	bl	ymtc_3d_set_tlc_rr_para
-.L2313:
-	ldrb	r3, [r6, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
+.L2311:
+	ldr	r3, [sp, #12]
+	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
 	cmp	r4, r3, asr #2
-	bcc	.L2318
+	bcc	.L2316
 	cmn	r4, #1
 	movne	r4, #256
-.L2318:
+.L2316:
 	cmn	r4, #1
 	cmpne	r4, #256
-	bne	.L2319
+	bne	.L2317
 	str	r4, [sp]
-	mov	r1, r5
-	ldr	r0, .L2337+8
-	mov	r2, r9
 	mov	r3, r5
+	mov	r2, r8
+	mov	r1, r5
+	ldr	r0, .L2334+8
 	bl	printk
-.L2319:
+.L2317:
 	bl	nandc_wait_flash_ready
 	mov	r0, r4
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2338:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2318:
+	mov	r4, r0
+	b	.L2309
+.L2315:
+	uxtb	r1, r5
+	mov	r0, r6
+	bl	ymtc_3d_set_tlc_rr_para
+	ldr	r3, [sp, #56]
+	mov	r2, r9
+	mov	r1, r8
+	mov	r0, r7
+	str	r3, [sp]
+	mov	r3, r10
+	bl	flash_read_page
+	cmn	r0, #1
+	beq	.L2312
+	ldr	r3, [sp, #12]
+	cmn	r4, #1
+	moveq	r4, r0
+	ldr	r9, [fp, #-120]
+	ldr	r10, [fp, #-112]
+	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
+	cmp	r0, r3, asr #2
+	bcc	.L2319
+.L2312:
+	add	r5, r5, #1
+	cmp	r5, #51
+	bne	.L2315
+.L2314:
+	mov	r1, #0
+	mov	r0, r6
+	bl	ymtc_3d_set_tlc_rr_para
+	b	.L2311
+.L2319:
+	mov	r4, r0
+	b	.L2314
+.L2335:
 	.align	2
-.L2337:
+.L2334:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
 	.word	.LC156
@@ -13489,425 +13990,408 @@
 	.size	ymtc_3d_read_retrial, .-ymtc_3d_read_retrial
 	.align	2
 	.global	samsung_read_retrial
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	samsung_read_retrial, %function
 samsung_read_retrial:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 16
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	mov	r9, r0
 	.pad #28
 	sub	sp, sp, #28
-	mov	r7, r0
-	mov	r8, r1
-	str	r3, [sp, #12]
-	str	r2, [sp, #8]
-	bl	nandc_wait_flash_ready
-	mov	r0, r7
-	bl	zftl_flash_enter_slc_mode
-	mov	r0, r7
-	bl	zftl_flash_exit_slc_mode
-	ldr	r3, .L2377
-	tst	r8, #50331648
-	ldr	r4, [r3, #1040]
-	str	r3, [sp, #16]
-	bne	.L2340
-	mov	r10, r7, asl #8
-	mvn	r5, #0
-	add	r9, r4, r10
-	mov	r6, #1
-	mov	fp, #239
-.L2345:
-	str	fp, [r9, #2056]
-	mov	r3, #141
-	str	r3, [r9, #2052]
-	ldr	r3, .L2377+4
-	ldrsb	r3, [r6, r3]
-	str	r3, [r9, #2048]
-	mov	r3, #0
-	str	r3, [r9, #2048]
-	str	r3, [r9, #2048]
-	str	r3, [r9, #2048]
-	bl	nandc_wait_flash_ready
-	mov	r0, r7
-	mov	r1, r8
-	ldr	r3, [sp, #64]
-	ldr	r2, [sp, #8]
-	str	r3, [sp]
-	ldr	r3, [sp, #12]
-	bl	flash_read_page
-	ldr	r3, .L2377+8
-	ldr	r3, [r3]
-	tst	r3, #16
-	mov	ip, r0
-	beq	.L2341
-	mov	r3, ip
-	ldr	r0, .L2377+12
-	mov	r1, r6
-	mov	r2, r8
-	str	ip, [sp, #20]
-	bl	printk
-	ldr	ip, [sp, #20]
-.L2341:
-	cmn	ip, #1
-	beq	.L2342
-	ldr	r3, .L2377+16
-	cmn	r5, #1
-	moveq	r5, ip
-	ldr	r2, [r3, #-128]
-	ldr	r3, [r3, #-120]
-	str	r2, [sp, #8]
-	str	r3, [sp, #12]
-	ldr	r3, [sp, #16]
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
-	cmp	ip, r3, asr #2
-	bcc	.L2354
-.L2342:
-	add	r6, r6, #1
-	cmp	r6, #26
-	bne	.L2345
-	b	.L2344
-.L2354:
-	mov	r5, ip
-.L2344:
-	add	r10, r4, r10
-	mov	r3, #239
-	add	r4, r4, r7, asl #8
-	str	r3, [r10, #2056]
-	mov	r3, #141
-	b	.L2376
-.L2340:
-	mov	r3, r7, asl #8
-	ldr	r9, .L2377+20
-	add	r10, r4, r3
-	mvn	r5, #0
-	mov	r6, #1
-	str	r3, [sp, #20]
-.L2351:
-	mov	r3, #239
-	str	r3, [r10, #2056]
-	mov	r3, #137
-	str	r3, [r10, #2052]
-	ldrb	r3, [r9, #4]	@ zero_extendqisi2
-	str	r3, [r10, #2048]
-	ldrb	r3, [r9, #5]	@ zero_extendqisi2
-	str	r3, [r10, #2048]
-	ldrb	r3, [r9, #6]	@ zero_extendqisi2
-	str	r3, [r10, #2048]
-	ldrb	r3, [r9, #7]	@ zero_extendqisi2
-	str	r3, [r10, #2048]
-	bl	nandc_wait_flash_ready
-	mov	r0, r7
-	mov	r1, r8
-	ldr	r3, [sp, #64]
-	ldr	r2, [sp, #8]
-	str	r3, [sp]
-	ldr	r3, [sp, #12]
-	bl	flash_read_page
-	ldr	r3, .L2377+8
-	ldr	r3, [r3]
-	tst	r3, #16
-	mov	fp, r0
-	beq	.L2347
-	ldr	r0, .L2377+24
-	mov	r1, r6
-	mov	r2, r8
-	mov	r3, fp
-	bl	printk
-.L2347:
-	cmn	fp, #1
-	beq	.L2348
-	ldr	r3, .L2377+16
-	cmn	r5, #1
-	moveq	r5, fp
-	ldr	r2, [r3, #-128]
-	ldr	r3, [r3, #-120]
-	str	r2, [sp, #8]
-	str	r3, [sp, #12]
-	ldr	r3, [sp, #16]
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
-	cmp	fp, r3, asr #2
-	bcc	.L2355
-.L2348:
-	add	r6, r6, #1
-	add	r9, r9, #4
-	cmp	r6, #26
-	bne	.L2351
-	b	.L2350
-.L2355:
-	mov	r5, fp
-.L2350:
-	ldr	r3, [sp, #20]
-	mov	r2, #239
-	add	r3, r4, r3
-	add	r4, r4, r7, asl #8
-	str	r2, [r3, #2056]
-	mov	r3, #137
-.L2376:
-	str	r3, [r4, #2052]
-	mov	r3, #0
-	str	r3, [r4, #2048]
-	str	r3, [r4, #2048]
-	str	r3, [r4, #2048]
-	str	r3, [r4, #2048]
-	bl	nandc_wait_flash_ready
-	ldr	r3, [sp, #16]
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
-	cmp	r5, r3, asr #2
-	bcc	.L2352
-	cmn	r5, #1
-	movne	r5, #256
-.L2352:
-	cmn	r5, #1
-	cmpne	r5, #256
-	bne	.L2353
-	str	r5, [sp]
-	mov	r1, r6
-	ldr	r0, .L2377+28
-	mov	r2, r8
-	mov	r3, r6
-	bl	printk
-.L2353:
-	bl	nandc_wait_flash_ready
-	mov	r0, r5
-	add	sp, sp, #28
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2378:
-	.align	2
-.L2377:
-	.word	.LANCHOR0
-	.word	.LANCHOR1+1928
-	.word	.LANCHOR2
-	.word	.LC157
-	.word	.LANCHOR3
-	.word	.LANCHOR1+1956
-	.word	.LC158
-	.word	.LC159
-	.fnend
-	.size	samsung_read_retrial, .-samsung_read_retrial
-	.align	2
-	.global	hynix_read_retrial
-	.type	hynix_read_retrial, %function
-hynix_read_retrial:
-	.fnstart
-	@ args = 4, pretend = 0, frame = 16
-	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	mov	r7, r1
 	mov	fp, r3
-	ldr	r3, .L2398
-	.pad #28
-	sub	sp, sp, #28
-	mov	r10, r2
-	mov	r6, r0
-	mov	r8, r1
-	mov	r7, #0
-	ldr	r2, [r3, #1176]
-	mvn	r4, #0
-	str	r3, [sp, #16]
-	add	r3, r2, r0
-	str	r3, [sp, #12]
-	ldrb	r9, [r2, #114]	@ zero_extendqisi2
-	ldrb	r5, [r3, #120]	@ zero_extendqisi2
+	str	r2, [sp, #16]
 	bl	nandc_wait_flash_ready
-	mov	r0, r6
+	mov	r0, r9
 	bl	zftl_flash_enter_slc_mode
-	mov	r0, r6
+	mov	r0, r9
 	bl	zftl_flash_exit_slc_mode
-	ldr	ip, .L2398+4
-.L2380:
-	cmp	r7, r9
-	bcs	.L2384
-	add	r5, r5, #1
-	mov	r0, r6
-	str	ip, [sp, #20]
-	uxtb	r5, r5
-	cmp	r5, r9
-	movcs	r5, #0
-	mov	r1, r5
-	bl	hynix_set_rr_para
-	mov	r0, r6
-	mov	r1, r8
-	mov	r2, r10
+	ldr	r3, .L2374
+	tst	r7, #50331648
+	ldr	r2, [r3, #1044]
+	str	r3, [sp, #20]
+	str	r2, [sp, #12]
+	bne	.L2337
+	lsl	r10, r9, #8
+	mvn	r4, #0
+	mov	r5, #1
+	add	r6, r2, r10
+.L2342:
+	mov	r3, #239
+	str	r3, [r6, #2056]
+	mov	r3, #141
+	str	r3, [r6, #2052]
+	ldr	r3, .L2374+4
+	ldrsb	r3, [r5, r3]
+	str	r3, [r6, #2048]
+	mov	r3, #0
+	str	r3, [r6, #2048]
+	str	r3, [r6, #2048]
+	str	r3, [r6, #2048]
+	bl	nandc_wait_flash_ready
 	ldr	r3, [sp, #64]
+	mov	r1, r7
+	ldr	r2, [sp, #16]
+	mov	r0, r9
 	str	r3, [sp]
 	mov	r3, fp
 	bl	flash_read_page
-	cmn	r0, #1
-	ldr	ip, [sp, #20]
-	beq	.L2382
-	ldr	r3, [sp, #16]
+	ldr	r3, .L2374+8
+	mov	r8, r0
+	ldr	r3, [r3]
+	tst	r3, #16
+	beq	.L2338
+	mov	r3, r0
+	mov	r2, r7
+	mov	r1, r5
+	ldr	r0, .L2374+12
+	bl	printk
+.L2338:
+	cmn	r8, #1
+	beq	.L2339
+	ldr	r3, .L2374+16
 	cmn	r4, #1
-	ldr	r10, [ip, #-128]
-	moveq	r4, r0
-	ldr	fp, [ip, #-120]
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
-	cmp	r0, r3, asr #2
-	bcc	.L2388
-.L2382:
-	add	r7, r7, #1
-	b	.L2380
-.L2388:
-	mov	r4, r0
-.L2384:
+	moveq	r4, r8
+	ldr	r2, [r3, #-120]
+	ldr	fp, [r3, #-112]
+	ldr	r3, [sp, #20]
+	str	r2, [sp, #16]
+	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
+	cmp	r8, r3, asr #2
+	bcc	.L2351
+.L2339:
+	add	r5, r5, #1
+	cmp	r5, #26
+	bne	.L2342
+.L2341:
 	ldr	r3, [sp, #12]
-	strb	r5, [r3, #120]
-	ldr	r3, [sp, #16]
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
+	add	r10, r3, r10
+	mov	r3, #239
+	str	r3, [r10, #2056]
+	mov	r3, #141
+.L2373:
+	str	r3, [r6, #2052]
+	mov	r3, #0
+	str	r3, [r6, #2048]
+	str	r3, [r6, #2048]
+	str	r3, [r6, #2048]
+	str	r3, [r6, #2048]
+	bl	nandc_wait_flash_ready
+	ldr	r3, .L2374
+	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
 	cmp	r4, r3, asr #2
-	bcc	.L2386
+	bcc	.L2349
 	cmn	r4, #1
 	movne	r4, #256
-.L2386:
+.L2349:
 	cmn	r4, #1
 	cmpne	r4, #256
-	bne	.L2387
+	bne	.L2350
 	str	r4, [sp]
-	mov	r1, r7
-	ldr	r0, .L2398+8
-	mov	r2, r8
-	mov	r3, r7
+	mov	r3, r5
+	mov	r2, r7
+	mov	r1, r5
+	ldr	r0, .L2374+20
 	bl	printk
-.L2387:
+.L2350:
 	bl	nandc_wait_flash_ready
 	mov	r0, r4
 	add	sp, sp, #28
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2399:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2351:
+	mov	r4, r8
+	b	.L2341
+.L2337:
+	lsl	r3, r9, #8
+	lsl	r2, r9, #8
+	ldr	r8, .L2374+24
+	str	r3, [sp, #20]
+	mvn	r4, #0
+	ldr	r3, [sp, #12]
+	mov	r5, #1
+	add	r6, r3, r2
+.L2348:
+	mov	r3, #239
+	str	r3, [r6, #2056]
+	mov	r3, #137
+	str	r3, [r6, #2052]
+	ldrb	r3, [r8, #4]	@ zero_extendqisi2
+	str	r3, [r6, #2048]
+	ldrb	r3, [r8, #5]	@ zero_extendqisi2
+	str	r3, [r6, #2048]
+	ldrb	r3, [r8, #6]	@ zero_extendqisi2
+	str	r3, [r6, #2048]
+	ldrb	r3, [r8, #7]	@ zero_extendqisi2
+	str	r3, [r6, #2048]
+	bl	nandc_wait_flash_ready
+	ldr	r3, [sp, #64]
+	mov	r1, r7
+	ldr	r2, [sp, #16]
+	mov	r0, r9
+	str	r3, [sp]
+	mov	r3, fp
+	bl	flash_read_page
+	ldr	r3, .L2374+8
+	mov	r10, r0
+	ldr	r3, [r3]
+	tst	r3, #16
+	beq	.L2344
+	mov	r3, r0
+	mov	r2, r7
+	mov	r1, r5
+	ldr	r0, .L2374+28
+	bl	printk
+.L2344:
+	cmn	r10, #1
+	beq	.L2345
+	ldr	r3, .L2374+16
+	cmn	r4, #1
+	moveq	r4, r10
+	ldr	r2, [r3, #-120]
+	ldr	fp, [r3, #-112]
+	ldr	r3, .L2374
+	str	r2, [sp, #16]
+	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
+	cmp	r10, r3, asr #2
+	bcc	.L2352
+.L2345:
+	add	r5, r5, #1
+	add	r8, r8, #4
+	cmp	r5, #26
+	bne	.L2348
+.L2347:
+	ldr	r3, [sp, #12]
+	ldr	r2, [sp, #20]
+	add	r10, r3, r2
+	mov	r3, #239
+	str	r3, [r10, #2056]
+	mov	r3, #137
+	b	.L2373
+.L2352:
+	mov	r4, r10
+	b	.L2347
+.L2375:
 	.align	2
-.L2398:
+.L2374:
 	.word	.LANCHOR0
+	.word	.LANCHOR1+1752
+	.word	.LANCHOR2
+	.word	.LC157
 	.word	.LANCHOR3
+	.word	.LC159
+	.word	.LANCHOR1+1778
+	.word	.LC158
+	.fnend
+	.size	samsung_read_retrial, .-samsung_read_retrial
+	.align	2
+	.global	hynix_read_retrial
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	hynix_read_retrial, %function
+hynix_read_retrial:
+	.fnstart
+	@ args = 4, pretend = 0, frame = 8
+	@ frame_needed = 0, uses_anonymous_args = 0
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	mov	r10, r3
+	ldr	fp, .L2395
+	mov	r9, r2
+	.pad #20
+	sub	sp, sp, #20
+	mov	r6, r0
+	mov	r8, r1
+	mov	r7, #0
+	ldr	r3, [fp, #1040]
+	mvn	r4, #0
+	add	r2, r3, r0
+	ldrb	r3, [r3, #114]	@ zero_extendqisi2
+	str	r2, [sp, #12]
+	ldrb	r5, [r2, #120]	@ zero_extendqisi2
+	str	r3, [sp, #8]
+	bl	nandc_wait_flash_ready
+	mov	r0, r6
+	bl	zftl_flash_enter_slc_mode
+	mov	r0, r6
+	bl	zftl_flash_exit_slc_mode
+.L2377:
+	ldr	r3, [sp, #8]
+	cmp	r7, r3
+	bcc	.L2382
+.L2381:
+	ldr	r3, [sp, #12]
+	strb	r5, [r3, #120]
+	ldrb	r3, [fp, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
+	cmp	r4, r3, asr #2
+	bcc	.L2383
+	cmn	r4, #1
+	movne	r4, #256
+.L2383:
+	cmn	r4, #1
+	cmpne	r4, #256
+	bne	.L2384
+	str	r4, [sp]
+	mov	r3, r7
+	mov	r2, r8
+	mov	r1, r7
+	ldr	r0, .L2395+4
+	bl	printk
+.L2384:
+	bl	nandc_wait_flash_ready
+	mov	r0, r4
+	add	sp, sp, #20
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2382:
+	ldr	r3, [sp, #8]
+	add	r5, r5, #1
+	uxtb	r5, r5
+	mov	r0, r6
+	cmp	r3, r5
+	movls	r5, #0
+	mov	r1, r5
+	bl	hynix_set_rr_para
+	ldr	r3, [sp, #56]
+	mov	r2, r9
+	mov	r1, r8
+	mov	r0, r6
+	str	r3, [sp]
+	mov	r3, r10
+	bl	flash_read_page
+	cmn	r0, #1
+	beq	.L2379
+	ldr	r3, .L2395+8
+	cmn	r4, #1
+	moveq	r4, r0
+	ldr	r9, [r3, #-120]
+	ldr	r10, [r3, #-112]
+	ldrb	r3, [fp, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
+	cmp	r0, r3, asr #2
+	bcc	.L2385
+.L2379:
+	add	r7, r7, #1
+	b	.L2377
+.L2385:
+	mov	r4, r0
+	b	.L2381
+.L2396:
+	.align	2
+.L2395:
+	.word	.LANCHOR0
 	.word	.LC160
+	.word	.LANCHOR3
 	.fnend
 	.size	hynix_read_retrial, .-hynix_read_retrial
 	.align	2
 	.global	flash_ddr_tuning_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_ddr_tuning_read, %function
 flash_ddr_tuning_read:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #36
-	sub	sp, sp, #36
-	mov	r8, r0
-	mov	r10, r1
-	mov	fp, r2
-	str	r3, [sp, #16]
-	bl	nandc_get_ddr_para
 	mov	r4, #0
 	mov	r5, r4
 	mov	r6, #1024
 	mov	r7, #6
-	mvn	r9, #0
-	str	r0, [sp, #24]
-	str	r4, [sp, #20]
+	mvn	r10, #0
+	.pad #36
+	sub	sp, sp, #36
+	mov	r8, r0
+	mov	fp, r1
+	str	r2, [sp, #16]
+	str	r3, [sp, #20]
+	bl	nandc_get_ddr_para
+	str	r0, [sp, #28]
+	str	r4, [sp, #24]
 	str	r4, [sp, #12]
-.L2406:
+.L2403:
 	uxtb	r0, r7
 	bl	nandc_set_ddr_para
-	mov	r0, r8
-	mov	r1, r10
-	mov	r2, fp
 	ldr	r3, [sp, #72]
+	mov	r1, fp
+	ldr	r2, [sp, #16]
+	mov	r0, r8
 	str	r3, [sp]
-	ldr	r3, [sp, #16]
+	ldr	r3, [sp, #20]
 	bl	flash_read_page
-	ldr	r3, .L2427
+	ldr	r3, .L2424
+	mov	r9, r0
 	ldr	r3, [r3]
 	tst	r3, #16
-	mov	ip, r0
-	beq	.L2401
-	mov	r3, ip
-	ldr	r0, .L2427+4
+	beq	.L2398
+	mov	r3, r0
+	mov	r2, fp
 	mov	r1, r7
-	mov	r2, r10
-	str	ip, [sp, #28]
+	ldr	r0, .L2424+4
 	bl	printk
-	ldr	ip, [sp, #28]
-.L2401:
+.L2398:
 	add	r3, r6, #1
-	cmp	ip, r3
-	bhi	.L2402
-	ldr	r3, .L2427+8
-	ldr	fp, [r3, #-128]
+	cmp	r9, r3
+	bhi	.L2399
+	ldr	r3, .L2424+8
 	ldr	r3, [r3, #-120]
 	str	r3, [sp, #16]
-	ldr	r3, .L2427+12
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	cmp	ip, r3, lsr #2
-	bcs	.L2412
+	ldr	r3, .L2424+8
+	ldr	r3, [r3, #-112]
+	str	r3, [sp, #20]
+	ldr	r3, .L2424+12
+	ldrb	r3, [r3, #1193]	@ zero_extendqisi2
+	cmp	r9, r3, lsr #2
+	bcs	.L2409
 	add	r5, r5, #1
 	cmp	r5, #7
-	bls	.L2412
-	rsb	r4, r5, r7
-	mov	r6, ip
-	mov	r9, #0
-	b	.L2404
-.L2402:
-	ldr	r3, [sp, #12]
-	cmp	r3, r5
-	bcs	.L2413
-	cmp	r5, #7
-	rsb	r3, r5, r4
-	str	r3, [sp, #20]
-	bhi	.L2405
-	str	r5, [sp, #12]
-	b	.L2413
-.L2412:
-	mov	r4, r7
-	mov	r6, ip
-	mov	r9, #0
-	b	.L2403
-.L2413:
-	mov	r5, #0
-.L2403:
-	add	r7, r7, #2
-	cmp	r7, #50
-	bne	.L2406
-.L2404:
+	bls	.L2409
+	sub	r4, r7, r5
+	mov	r6, r9
+	mov	r10, #0
+.L2401:
 	ldr	r2, [sp, #12]
-	ldr	r3, [sp, #20]
-	cmp	r2, r5
-	movhi	r4, r3
-.L2405:
+	ldr	r3, [sp, #24]
+	cmp	r5, r2
+	movcc	r4, r3
+.L2402:
 	cmp	r4, #0
-	beq	.L2407
-	ldr	r3, .L2427+12
-	ldr	r2, .L2427+16
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	umull	r2, r3, r3, r2
+	beq	.L2404
+	ldr	r3, .L2424+12
+	ldrb	r2, [r3, #1193]	@ zero_extendqisi2
+	ldr	r3, .L2424+16
+	umull	r2, r3, r2, r3
 	ubfx	r3, r3, #1, #8
-	cmp	r6, r3
-	bcs	.L2407
-	ldr	r0, .L2427+20
+	cmp	r3, r6
+	bls	.L2404
 	mov	r1, r4
+	ldr	r0, .L2424+20
 	bl	printk
 	uxtb	r0, r4
-	b	.L2426
-.L2407:
-	ldrb	r0, [sp, #24]	@ zero_extendqisi2
-.L2426:
+.L2423:
 	bl	nandc_set_ddr_para
-	cmn	r9, #1
-	bne	.L2409
-	ldr	r5, .L2427+12
-	ldrb	r3, [r5, #1232]	@ zero_extendqisi2
-	mov	r4, r5
+	cmn	r10, #1
+	bne	.L2397
+	ldr	r4, .L2424+12
+	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
+	mov	r5, r4
 	tst	r3, #1
-	beq	.L2409
+	beq	.L2397
 	mov	r1, r8
-	mov	r2, r10
-	ldr	r0, .L2427+24
+	mov	r2, fp
+	ldr	r0, .L2424+24
 	bl	printk
 	mov	r0, r8
 	bl	flash_reset
@@ -13915,51 +14399,75 @@
 	bl	flash_set_interface_mode
 	mov	r0, #1
 	bl	nandc_set_if_mode
-	add	r3, r5, r8
-	mov	r0, r8
+	add	r3, r4, r8
 	mov	r2, #2
-	strb	r2, [r3, #1192]
-	bl	zftl_flash_enter_slc_mode
-	mov	r1, r10
-	mov	r2, fp
 	mov	r0, r8
+	strb	r2, [r3, #1154]
+	bl	zftl_flash_enter_slc_mode
 	ldr	r3, [sp, #72]
+	mov	r1, fp
+	ldr	r2, [sp, #16]
+	mov	r0, r8
 	str	r3, [sp]
-	ldr	r3, [sp, #16]
+	ldr	r3, [sp, #20]
 	bl	flash_read_page
-	mov	r1, r8
-	mov	r2, r10
+	mov	r2, fp
+	mov	r3, r0
 	mov	r6, r0
-	ldr	r0, .L2427+28
-	mov	r3, r6
+	mov	r1, r8
+	ldr	r0, .L2424+28
 	bl	printk
-	ldrb	r3, [r5, #1172]	@ zero_extendqisi2
+	ldrb	r3, [r4, #1193]	@ zero_extendqisi2
 	cmp	r6, r3
-	bhi	.L2414
-	ldr	r2, .L2427+8
-	ldr	r3, [r2, #-112]
+	bhi	.L2411
+	ldr	r2, .L2424+8
+	ldr	r3, [r2, #-104]
 	add	r3, r3, #1
-	str	r3, [r2, #-112]
 	cmp	r3, #100
+	str	r3, [r2, #-104]
 	movhi	r3, #0
-	strhib	r3, [r5, #1135]
-	bls	.L2410
-	b	.L2409
-.L2414:
-	mov	r6, r9
-.L2410:
-	ldrb	r0, [r4, #1232]	@ zero_extendqisi2
+	strbhi	r3, [r4, #1143]
+	bhi	.L2397
+.L2407:
+	ldrb	r0, [r5, #1192]	@ zero_extendqisi2
 	bl	flash_set_interface_mode
-	ldrb	r0, [r4, #1232]	@ zero_extendqisi2
+	ldrb	r0, [r5, #1192]	@ zero_extendqisi2
 	bl	nandc_set_if_mode
-.L2409:
+.L2397:
 	mov	r0, r6
 	add	sp, sp, #36
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2428:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2399:
+	ldr	r3, [sp, #12]
+	cmp	r5, r3
+	bls	.L2410
+	cmp	r5, #7
+	sub	r3, r4, r5
+	str	r3, [sp, #24]
+	bhi	.L2402
+	str	r5, [sp, #12]
+.L2410:
+	mov	r5, #0
+	b	.L2400
+.L2409:
+	mov	r4, r7
+	mov	r6, r9
+	mov	r10, #0
+.L2400:
+	add	r7, r7, #2
+	cmp	r7, #50
+	bne	.L2403
+	b	.L2401
+.L2404:
+	ldrb	r0, [sp, #28]	@ zero_extendqisi2
+	b	.L2423
+.L2411:
+	mov	r6, r10
+	b	.L2407
+.L2425:
 	.align	2
-.L2427:
+.L2424:
 	.word	.LANCHOR2
 	.word	.LC161
 	.word	.LANCHOR3
@@ -13972,141 +14480,145 @@
 	.size	flash_ddr_tuning_read, .-flash_ddr_tuning_read
 	.align	2
 	.global	flash_read_page_en
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_read_page_en, %function
 flash_read_page_en:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
-	mov	r7, r3
-	ldr	r5, .L2460
+	mov	r8, r3
+	ldr	r5, .L2454
 	mov	r10, r0
 	mov	r4, r1
-	mov	r8, r2
+	mov	r7, r2
 	ldr	r9, [sp, #48]
-	ldrb	r3, [r5, #1101]	@ zero_extendqisi2
+	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
 	cmp	r3, r0
-	bhi	.L2430
-	ldr	r1, .L2460+4
+	bhi	.L2427
 	movw	r2, #431
-	ldr	r0, .L2460+8
+	ldr	r1, .L2454+4
+	ldr	r0, .L2454+8
 	bl	printk
 	bl	dump_stack
-.L2430:
-	add	r2, r5, r10
-	ldr	r3, .L2460
-	ldrb	r6, [r2, #1180]	@ zero_extendqisi2
-	ldrb	r2, [r5, #1101]	@ zero_extendqisi2
-	cmp	r10, r2
-	bcc	.L2431
-	ldr	r3, .L2460+12
-	ldr	r3, [r3]
-	tst	r3, #64
-	beq	.L2459
-	str	r2, [sp]
-	mov	r1, r6
-	ldr	r0, .L2460+16
+.L2427:
+	add	r3, r5, r10
+	ldrb	r6, [r3, #1144]	@ zero_extendqisi2
+	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
+	cmp	r10, r3
+	bcc	.L2428
+	ldr	r2, .L2454+12
+	ldr	r2, [r2]
+	tst	r2, #64
+	bne	.L2429
+.L2453:
+	mvn	r0, #0
+.L2426:
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2429:
+	str	r3, [sp]
 	mov	r2, r10
 	mov	r3, r4
+	mov	r1, r6
+	ldr	r0, .L2454+16
 	bl	printk
-.L2459:
-	mvn	r0, #0
-	b	.L2456
-.L2431:
+	b	.L2453
+.L2428:
 	tst	r4, #50331648
-	bne	.L2434
-	ldrb	r2, [r3]	@ zero_extendqisi2
-	cmp	r2, #0
-	beq	.L2435
-	ldrb	r3, [r3, #1]	@ zero_extendqisi2
+	bne	.L2431
+	ldrb	r3, [r5]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L2434
-.L2435:
+	beq	.L2432
+	ldrb	r3, [r5, #1]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L2431
+.L2432:
 	ldrh	r10, [r5, #2]
 	mov	r0, r4
 	mov	r1, r10
 	bl	__aeabi_uidiv
+	mov	r1, r10
+	mul	fp, r10, r0
+	mov	r0, r4
+	bl	__aeabi_uidivmod
 	ldrb	r3, [r5, #1]	@ zero_extendqisi2
+	lsl	r1, r1, #1
 	cmp	r3, #0
-	ldreq	r3, .L2460
-	mul	r0, r10, r0
-	rsb	r4, r0, r4
-	mov	r4, r4, asl #1
-	addeq	r4, r3, r4
-	ldreqh	r4, [r4, #4]
-	add	r4, r4, r0
-.L2434:
+	addeq	r1, r5, r1
+	addne	r4, r1, fp
+	ldrheq	r4, [r1, #4]
+	addeq	r4, r4, fp
+.L2431:
 	str	r9, [sp]
-	mov	r0, r6
+	mov	r3, r8
+	mov	r2, r7
 	mov	r1, r4
-	mov	r2, r8
-	mov	r3, r7
+	mov	r0, r6
 	bl	flash_read_page
 	cmn	r0, #1
-	bne	.L2456
-	ldrb	fp, [r5, #1168]	@ zero_extendqisi2
-	ldr	r10, .L2460
-	cmp	fp, #0
-	bne	.L2438
-.L2441:
-	ldr	r3, .L2460+20
-	ldr	ip, [r3, #-108]
-	cmp	ip, #0
-	bne	.L2439
-	b	.L2440
-.L2438:
-	mov	r3, #0
-	mov	r0, r6
-	strb	r3, [r10, #1168]
-	mov	r1, r4
-	str	r9, [sp]
-	mov	r2, r8
-	mov	r3, r7
-	bl	flash_read_page
-	strb	fp, [r10, #1168]
-	cmn	r0, #1
-	beq	.L2441
-	b	.L2456
-.L2439:
-	str	r9, [sp]
-	mov	r0, r6
-	mov	r1, r4
-	mov	r2, r8
-	mov	r3, r7
-	blx	ip
-	cmn	r0, #1
-	bne	.L2456
-.L2440:
-	ldrb	r3, [r5, #1168]	@ zero_extendqisi2
-	mov	r1, #0
-	ldr	r0, .L2460+24
+	bne	.L2426
+	ldrb	r10, [r5, #1196]	@ zero_extendqisi2
+	cmp	r10, #0
+	bne	.L2434
+.L2437:
+	ldr	r3, .L2454+20
+	ldr	r10, [r3, #-100]
+	cmp	r10, #0
+	bne	.L2435
+.L2436:
+	ldrb	r3, [r5, #1196]	@ zero_extendqisi2
 	mov	r2, r4
+	mov	r1, #0
+	ldr	r0, .L2454+24
 	str	r3, [sp]
 	mvn	r3, #0
 	bl	printk
-	ldrb	r3, [r5, #1135]	@ zero_extendqisi2
+	ldrb	r3, [r5, #1143]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L2459
+	beq	.L2453
 	str	r9, [sp, #48]
-	mov	r0, r6
+	mov	r3, r8
+	mov	r2, r7
 	mov	r1, r4
-	mov	r2, r8
-	mov	r3, r7
+	mov	r0, r6
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	b	flash_ddr_tuning_read
-.L2456:
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2461:
+.L2434:
+	mov	r3, #0
+	str	r9, [sp]
+	strb	r3, [r5, #1196]
+	mov	r2, r7
+	mov	r3, r8
+	mov	r1, r4
+	mov	r0, r6
+	bl	flash_read_page
+	cmn	r0, #1
+	strb	r10, [r5, #1196]
+	beq	.L2437
+	b	.L2426
+.L2435:
+	str	r9, [sp]
+	mov	r3, r8
+	mov	r2, r7
+	mov	r1, r4
+	mov	r0, r6
+	blx	r10
+	cmn	r0, #1
+	bne	.L2426
+	b	.L2436
+.L2455:
 	.align	2
-.L2460:
+.L2454:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2060
+	.word	.LANCHOR1+1882
 	.word	.LC0
 	.word	.LANCHOR2
 	.word	.LC165
@@ -14116,74 +14628,75 @@
 	.size	flash_read_page_en, .-flash_read_page_en
 	.align	2
 	.global	flash_get_last_written_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_get_last_written_page, %function
 flash_get_last_written_page:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r9, r1
-	ldr	r6, .L2473
+	mov	r8, r1
+	ldr	r5, .L2467
 	.pad #20
 	sub	sp, sp, #20
-	ldr	r1, .L2473+4
 	mov	r10, r0
 	mov	fp, r2
-	mov	r8, r3
-	ldrh	r7, [r6, #30]
-	ldrh	r4, [r1, #-220]
+	ldr	r1, .L2467+4
+	mov	r9, r3
+	ldrh	r6, [r5, #30]
+	ldrh	r4, [r1, #-224]
 	ldr	r1, [sp, #56]
+	mul	r6, r8, r6
 	sub	r4, r4, #1
-	mul	r7, r7, r9
-	uxth	r4, r4
-	str	r1, [sp]
-	sxtah	r1, r7, r4
-	bl	flash_read_page_en
-	cmp	r0, #512
-	moveq	ip, #0
-	bne	.L2463
-.L2464:
-	sxth	r3, ip
-	sxth	r2, r4
-	cmp	r3, r2
-	bgt	.L2463
-	add	r3, r3, r2
-	mov	r0, r10
-	mov	r2, fp
-	str	ip, [sp, #12]
-	add	r3, r3, r3, lsr #31
-	mov	r5, r3, asr #1
-	ldr	r3, [sp, #56]
-	sxtah	r1, r7, r5
-	str	r3, [sp]
-	mov	r3, r8
-	bl	flash_read_page_en
-	cmp	r0, #512
-	ldr	ip, [sp, #12]
-	subeq	r5, r5, #1
-	addne	ip, r5, #1
-	uxtheq	r4, r5
-	uxthne	ip, ip
-	b	.L2464
-.L2463:
-	ldr	r3, [r6]
 	sxth	r4, r4
+	str	r1, [sp]
+	add	r1, r4, r6
+	bl	flash_read_page_en
+	cmp	r0, #512
+	str	r5, [sp, #12]
+	moveq	r7, #0
+	beq	.L2458
+.L2457:
+	ldr	r3, [sp, #12]
+	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L2468
-	ldr	r0, .L2473+8
-	mov	r1, r9
+	beq	.L2462
+	ldr	r3, [r9]
 	mov	r2, r4
-	ldr	r3, [r8]
+	mov	r1, r8
+	ldr	r0, .L2467+8
 	bl	printk
-.L2468:
+.L2462:
 	mov	r0, r4
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2474:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2461:
+	add	r5, r7, r4
+	ldr	r3, [sp, #56]
+	add	r5, r5, r5, lsr #31
+	mov	r2, fp
+	mov	r0, r10
+	asr	r5, r5, #1
+	str	r3, [sp]
+	mov	r3, r9
+	sxtah	r1, r6, r5
+	bl	flash_read_page_en
+	cmp	r0, #512
+	subeq	r4, r5, #1
+	addne	r5, r5, #1
+	sxtheq	r4, r4
+	sxthne	r7, r5
+.L2458:
+	cmp	r7, r4
+	ble	.L2461
+	b	.L2457
+.L2468:
 	.align	2
-.L2473:
+.L2467:
 	.word	.LANCHOR2
 	.word	.LANCHOR3
 	.word	.LC167
@@ -14191,471 +14704,273 @@
 	.size	flash_get_last_written_page, .-flash_get_last_written_page
 	.align	2
 	.global	flash_get_last_written_page_ext
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_get_last_written_page_ext, %function
 flash_get_last_written_page_ext:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r4, lr}
-	.save {r4, lr}
-	.pad #8
-	mov	lr, r2
-	ldr	r2, .L2477
-	mov	r4, r1
-	ldr	r1, .L2477+4
-	mov	ip, r0
-	ldrb	r2, [r2, #1189]	@ zero_extendqisi2
-	ldrh	r1, [r1, #-12]
-	rsb	r2, r2, #24
+	ldr	ip, .L2471
+	push	{r0, r1, r2, lr}
+	.save {lr}
+	.pad #12
+	ldr	lr, .L2471+4
+	ldrb	ip, [ip, #1153]	@ zero_extendqisi2
+	ldrh	lr, [lr, #-2]
 	str	r3, [sp]
-	rsb	r2, r1, r2
+	mov	r3, r2
+	rsb	ip, ip, #24
+	mov	r2, r1
+	sub	ip, ip, lr
 	mvn	r1, #0
-	mov	r0, r0, asr r2
-	bic	r1, ip, r1, asl r2
-	mov	r3, lr
-	mov	r2, r4
-	uxtb	r0, r0
+	asr	lr, r0, ip
+	bic	r1, r0, r1, lsl ip
+	uxtb	r0, lr
 	bl	flash_get_last_written_page
-	add	sp, sp, #8
+	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, pc}
-.L2478:
+	ldr	pc, [sp], #4
+.L2472:
 	.align	2
-.L2477:
+.L2471:
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3120
+	.word	.LANCHOR3-3136
 	.fnend
 	.size	flash_get_last_written_page_ext, .-flash_get_last_written_page_ext
 	.align	2
 	.global	flash_ddr_para_scan
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_ddr_para_scan, %function
 flash_ddr_para_scan:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
 	.save {r4, r5, r6, r7, r8, r9, lr}
 	.pad #12
-	mov	r8, r0
-	ldr	r4, .L2486
-	mov	r7, r1
+	mov	r7, r0
+	ldr	r4, .L2480
 	mov	r6, #1
-	ldr	r5, .L2486+4
+	mov	r8, r1
 	mov	r9, #4
-	ldrb	r0, [r4, #1232]	@ zero_extendqisi2
-	strb	r6, [r4, #1135]
+	ldr	r5, .L2480+4
+	ldrb	r0, [r4, #1192]	@ zero_extendqisi2
+	strb	r6, [r4, #1143]
 	bl	flash_set_interface_mode
-	ldrb	r0, [r4, #1232]	@ zero_extendqisi2
+	ldrb	r0, [r4, #1192]	@ zero_extendqisi2
 	bl	nandc_set_if_mode
-	mov	r1, r7
-	ldr	r2, [r5, #-104]
-	mov	r0, r8
-	ldr	r3, [r5, #-100]
+	ldr	r3, [r5, #-96]
+	mov	r1, r8
+	ldr	r2, [r5, #-92]
+	mov	r0, r7
 	str	r9, [sp]
 	bl	flash_ddr_tuning_read
-	ldr	r3, [r5, #-100]
-	mov	r0, r8
-	mov	r1, r7
-	ldr	r2, [r5, #-104]
+	ldr	r3, [r5, #-96]
+	mov	r1, r8
 	str	r9, [sp]
+	mov	r0, r7
+	ldr	r2, [r5, #-92]
 	bl	flash_read_page
-	mov	r3, r4
 	cmn	r0, #1
-	bne	.L2480
-	ldrb	r2, [r4, #1232]	@ zero_extendqisi2
+	mov	r3, r4
+	bne	.L2474
+	ldrb	r2, [r4, #1192]	@ zero_extendqisi2
 	tst	r2, #1
-	beq	.L2480
+	beq	.L2474
 	mov	r0, r6
 	bl	flash_set_interface_mode
 	mov	r0, r6
 	bl	nandc_set_if_mode
 	mov	r3, #0
-	strb	r3, [r4, #1135]
-	b	.L2481
-.L2480:
-	mov	r2, #1
-	strb	r2, [r3, #1135]
-.L2481:
+	strb	r3, [r4, #1143]
+.L2475:
 	mov	r0, #0
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L2487:
+	pop	{r4, r5, r6, r7, r8, r9, pc}
+.L2474:
+	mov	r2, #1
+	strb	r2, [r3, #1143]
+	b	.L2475
+.L2481:
 	.align	2
-.L2486:
+.L2480:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
 	.fnend
 	.size	flash_ddr_para_scan, .-flash_ddr_para_scan
-	.global	__aeabi_uidivmod
-	.section	.text.unlikely
-	.align	2
-	.type	id_block_read_data.constprop.31, %function
-id_block_read_data.constprop.31:
-	.fnstart
-	@ args = 0, pretend = 0, frame = 112
-	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L2519
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #124
-	sub	sp, sp, #124
-	ldr	r4, .L2519+4
-	mov	r6, r2
-	str	r1, [sp, #24]
-	mov	r5, #0
-	ldrb	r2, [r3, #13]	@ zero_extendqisi2
-	mov	r7, #4
-	ldrh	r1, [r3, #30]
-	mov	r10, r5
-	ldrb	r3, [r4, #1168]	@ zero_extendqisi2
-	str	r0, [sp, #40]
-	mul	r1, r1, r2
-	str	r3, [sp, #44]
-	str	r2, [sp, #28]
-	strb	r5, [r4, #1168]
-	bl	__aeabi_uidivmod
-	ldr	r3, [sp, #40]
-	str	r1, [sp, #12]
-	rsb	r3, r1, r3
-	str	r3, [sp, #32]
-	and	r3, r1, #3
-	str	r3, [sp, #16]
-.L2489:
-	ldr	r3, [sp, #24]
-	cmp	r5, r3
-	bcs	.L2518
-	ldr	r3, [sp, #16]
-	mov	r1, r7
-	rsb	r3, r3, r7
-	uxth	r3, r3
-	str	r3, [sp, #20]
-	ldr	r3, [sp, #12]
-	add	r0, r5, r3
-	bl	__aeabi_uidiv
-	ldrb	r1, [r4, #1102]	@ zero_extendqisi2
-	cmp	r1, #0
-	uxth	r0, r0
-	mov	r3, r0, asl #1
-	add	r2, r4, r3
-	ldrh	r2, [r2, #4]
-	moveq	r0, r2
-	beq	.L2491
-	ldrb	r2, [r4, #1]	@ zero_extendqisi2
-	cmp	r2, #0
-	movne	r0, r3
-.L2491:
-	ldr	r2, [sp, #32]
-	ldr	r3, [sp, #28]
-	ldr	r1, [sp, #16]
-	mla	r3, r3, r0, r2
-	str	r3, [sp, #36]
-	ldr	r3, .L2519+4
-	ldr	r2, [sp, #36]
-	ldrb	r9, [r3, #1100]	@ zero_extendqisi2
-	add	r0, r2, r1
-	ldr	r3, [r3, #1096]
-	ldrb	r1, [r3, #9]	@ zero_extendqisi2
-	bl	__aeabi_uidiv
-	ldr	r3, .L2519+4
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	mov	fp, r0
-	mov	r0, r9
-	str	r3, [sp, #48]
-	bl	nandc_bch_sel
-.L2492:
-	str	r7, [sp]
-	mov	r0, #0
-	mov	r1, fp
-	mov	r2, r6
-	add	r3, sp, #56
-	bl	flash_read_page
-	cmn	r0, #1
-	mov	r8, r0
-	bne	.L2499
-	ldrb	ip, [r4, #1168]	@ zero_extendqisi2
-	cmp	ip, #0
-	bne	.L2494
-.L2497:
-	ldr	r3, .L2519+8
-	ldr	ip, [r3, #-108]
-	cmp	ip, #0
-	bne	.L2495
-	b	.L2496
-.L2494:
-	mov	r0, #0
-	str	r7, [sp]
-	mov	r1, fp
-	mov	r2, r6
-	add	r3, sp, #56
-	str	ip, [sp, #52]
-	strb	r0, [r4, #1168]
-	bl	flash_read_page
-	ldr	ip, [sp, #52]
-	cmn	r0, #1
-	strb	ip, [r4, #1168]
-	beq	.L2497
-	b	.L2517
-.L2495:
-	str	r7, [sp]
-	mov	r0, #0
-	mov	r1, fp
-	mov	r2, r6
-	add	r3, sp, #56
-	blx	ip
-	cmn	r0, #1
-	bne	.L2517
-.L2496:
-	ldrb	r3, [r4, #1135]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L2499
-	str	r7, [sp]
-	mov	r0, #0
-	mov	r1, fp
-	mov	r2, r6
-	add	r3, sp, #56
-	bl	flash_ddr_tuning_read
-.L2517:
-	mov	r8, r0
-.L2499:
-	subs	r9, r9, #16
-	movne	r9, #1
-	cmn	r8, #1
-	movne	r9, #0
-	cmp	r9, #0
-	beq	.L2500
-	mov	r0, #16
-	mov	r9, #16
-	bl	nandc_bch_sel
-	b	.L2492
-.L2500:
-	ldr	r0, [sp, #48]
-	bl	nandc_bch_sel
-	cmn	r8, #1
-	mvneq	r10, #0
-	ldr	r3, [sp, #32]
-	ldr	r2, [sp, #40]
-	cmp	r5, #0
-	cmpeq	r3, r2
-	moveq	r3, #1
-	movne	r3, #0
-	cmp	r10, #0
-	movne	r3, #0
-	andeq	r3, r3, #1
-	cmp	r3, #0
-	beq	.L2502
-	ldr	r3, [r6]
-	ldr	r2, .L2519+12
-	cmp	r3, r2
-	bne	.L2502
-	ldr	r3, [sp, #24]
-	ldr	r2, [sp, #20]
-	ldrb	r7, [r6, #17]	@ zero_extendqisi2
-	add	r3, r3, r2
-	str	r3, [sp, #24]
-	b	.L2503
-.L2502:
-	ldr	r3, [sp, #20]
-	mov	r2, r5
-	ldr	r0, .L2519+16
-	ldr	r1, [sp, #36]
-	add	r6, r6, r3, asl #9
-	ldr	r3, [sp, #60]
-	str	r3, [sp]
-	ldr	r3, [sp, #56]
-	bl	printk
-	mov	r3, #0
-	str	r3, [sp, #16]
-.L2503:
-	ldr	r3, [sp, #20]
-	add	r5, r3, r5
-	uxth	r5, r5
-	b	.L2489
-.L2518:
-	ldr	r3, .L2519+4
-	mov	r0, r10
-	ldrb	r2, [sp, #44]	@ zero_extendqisi2
-	strb	r2, [r3, #1168]
-	add	sp, sp, #124
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2520:
-	.align	2
-.L2519:
-	.word	.LANCHOR2
-	.word	.LANCHOR0
-	.word	.LANCHOR3
-	.word	1179535694
-	.word	.LC168
-	.fnend
-	.size	id_block_read_data.constprop.31, .-id_block_read_data.constprop.31
-	.text
 	.align	2
 	.global	flash_prog_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_prog_page, %function
 flash_prog_page:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	mov	fp, r3
-	ldr	r7, .L2533
-	mov	r4, r0
+	ldr	r6, .L2494
 	.pad #20
 	sub	sp, sp, #20
-	mvn	r5, #0
-	mov	r8, r1
-	mov	r10, r2
-	ldrb	r3, [r7, #1189]	@ zero_extendqisi2
-	add	r9, r0, #8
-	ldr	r6, [r7, #1040]
+	mov	r4, r0
+	mov	r7, r1
+	str	r2, [sp, #12]
+	mvn	r2, #0
+	ldrb	r3, [r6, #1153]	@ zero_extendqisi2
+	add	r8, r0, #8
+	ldr	r5, [r6, #1044]
 	rsb	r3, r3, #24
-	bic	r5, r1, r5, asl r3
+	bic	r10, r1, r2, lsl r3
+	add	r8, r5, r8, lsl #8
 	bl	nandc_wait_flash_ready
 	mov	r0, r4
-	add	r9, r6, r9, asl #8
 	bl	hynix_reconfig_rr_para
 	mov	r0, r4
 	bl	nandc_cs
-	tst	r8, #50331648
+	tst	r7, #50331648
 	mov	r0, r4
-	bne	.L2522
+	bne	.L2483
 	bl	zftl_flash_enter_slc_mode
-	b	.L2523
-.L2522:
-	bl	zftl_flash_exit_slc_mode
-.L2523:
-	mov	ip, r4, asl #8
-	mov	r2, #128
-	add	r3, r6, ip
-	mov	r0, r5
-	str	ip, [sp, #12]
-	str	r2, [r3, #2056]
-	mov	r2, #0
-	str	r2, [r3, #2052]
-	str	r2, [r3, #2052]
-	uxtb	r2, r5
-	str	r2, [r3, #2052]
-	mov	r2, r5, lsr #8
-	str	r2, [r3, #2052]
-	mov	r2, r5, lsr #16
-	str	r2, [r3, #2052]
-	ldrb	r2, [r7, #1188]	@ zero_extendqisi2
-	cmp	r2, #0
-	movne	r2, r5, lsr #24
-	strne	r2, [r3, #2052]
+.L2484:
+	lsl	r9, r4, #8
+	mov	r1, #128
+	mov	r0, r10
+	add	r2, r5, r9
+	add	r5, r5, r9
+	str	r1, [r2, #2056]
+	mov	r1, #0
+	str	r1, [r2, #2052]
+	str	r1, [r2, #2052]
+	uxtb	r1, r10
+	str	r1, [r2, #2052]
+	lsr	r1, r10, #8
+	str	r1, [r2, #2052]
+	lsr	r1, r10, #16
+	str	r1, [r2, #2052]
+	ldrb	r1, [r6, #1152]	@ zero_extendqisi2
+	cmp	r1, #0
+	lsrne	r1, r10, #24
+	strne	r1, [r2, #2052]
 	bl	nandc_set_seed
-	ldr	r3, .L2533+4
+	ldr	r3, .L2494+4
 	mov	r1, #1
 	mov	r0, r4
 	ldrb	r2, [r3, #13]	@ zero_extendqisi2
-	mov	r3, r10
+	ldr	r3, [sp, #12]
 	str	fp, [sp]
 	bl	nandc_xfer
 	mov	r3, #16
-	ldr	ip, [sp, #12]
-	add	ip, r6, ip
-	str	r3, [ip, #2056]
+	str	r3, [r5, #2056]
 	bl	nandc_iqr_wait_flash_ready
 	bl	nandc_wait_flash_ready
-	mov	r0, r9
+	mov	r0, r8
 	bl	flash_read_status
-	mov	r5, r0
-	mov	r0, r4
-	bl	nandc_de_cs
-	ands	r2, r5, #4
-	beq	.L2525
-	ldr	r0, .L2533+8
-	mov	r1, r8
+	bl	nandc_de_cs.constprop.35
+	ands	r0, r0, #4
+	beq	.L2482
+	mov	r2, r0
+	mov	r1, r7
+	ldr	r0, .L2494+8
 	bl	printk
-	mvn	r2, #0
-.L2525:
-	mov	r0, r2
+	mvn	r0, #0
+.L2482:
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2534:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2483:
+	bl	zftl_flash_exit_slc_mode
+	b	.L2484
+.L2495:
 	.align	2
-.L2533:
+.L2494:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LC169
+	.word	.LC168
 	.fnend
 	.size	flash_prog_page, .-flash_prog_page
 	.align	2
 	.global	flash_test_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_test_blk, %function
 flash_test_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 	.save {r4, r5, r6, r7, lr}
 	.pad #12
 	mov	r6, r0
-	ldr	r4, .L2546
+	ldr	r4, .L2507
 	mov	r5, r1
 	mov	r2, #32
 	mov	r1, #165
-	ldr	r0, [r4, #-128]
-	bl	ftl_memset
-	mov	r1, #90
-	mov	r2, #8
 	ldr	r0, [r4, #-120]
 	bl	ftl_memset
-	ldr	r3, .L2546+4
+	mov	r2, #8
+	mov	r1, #90
+	ldr	r0, [r4, #-112]
+	bl	ftl_memset
+	ldr	r3, .L2507+4
 	mov	r0, r6
 	ldrh	r3, [r3, #2]
-	mul	r5, r3, r5
+	mul	r5, r5, r3
 	mov	r1, r5
 	bl	flash_erase_block
 	cmn	r0, #1
-	bne	.L2536
-.L2538:
+	bne	.L2497
+.L2499:
 	mvn	r4, #0
-	b	.L2537
-.L2536:
-	ldr	r7, .L2546+8
-	mov	r0, r6
+.L2498:
 	mov	r1, r5
-	ldrb	r3, [r7, #13]	@ zero_extendqisi2
-	str	r3, [sp]
-	ldr	r2, [r4, #-128]
-	ldr	r3, [r4, #-120]
-	bl	flash_prog_page
-	cmn	r0, #1
-	beq	.L2538
-	ldrb	r3, [r7, #13]	@ zero_extendqisi2
 	mov	r0, r6
-	mov	r1, r5
-	str	r3, [sp]
-	ldr	r2, [r4, #-128]
-	ldr	r3, [r4, #-120]
-	bl	flash_read_page_en
-	cmn	r0, #1
-	beq	.L2538
-	ldr	r3, [r4, #-128]
-	ldr	r2, [r3]
-	ldr	r3, .L2546+12
-	cmp	r2, r3
-	bne	.L2538
-	ldr	r3, [r4, #-120]
-	ldr	r4, .L2546+16
-	ldr	r3, [r3]
-	subs	r4, r3, r4
-	mvnne	r4, #0
-.L2537:
-	mov	r0, r6
-	mov	r1, r5
 	bl	flash_erase_block
 	mov	r0, r4
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, pc}
-.L2547:
+	pop	{r4, r5, r6, r7, pc}
+.L2497:
+	ldr	r7, .L2507+8
+	mov	r1, r5
+	mov	r0, r6
+	ldrb	r3, [r7, #13]	@ zero_extendqisi2
+	str	r3, [sp]
+	ldr	r3, [r4, #-112]
+	ldr	r2, [r4, #-120]
+	bl	flash_prog_page
+	cmn	r0, #1
+	beq	.L2499
+	ldrb	r3, [r7, #13]	@ zero_extendqisi2
+	mov	r1, r5
+	mov	r0, r6
+	str	r3, [sp]
+	ldr	r3, [r4, #-112]
+	ldr	r2, [r4, #-120]
+	bl	flash_read_page_en
+	cmn	r0, #1
+	beq	.L2499
+	ldr	r3, [r4, #-120]
+	ldr	r2, [r3]
+	ldr	r3, .L2507+12
+	cmp	r2, r3
+	bne	.L2499
+	ldr	r3, [r4, #-112]
+	ldr	r4, [r3]
+	ldr	r3, .L2507+16
+	subs	r4, r4, r3
+	mvnne	r4, #0
+	b	.L2498
+.L2508:
 	.align	2
-.L2546:
+.L2507:
 	.word	.LANCHOR3
 	.word	.LANCHOR0
 	.word	.LANCHOR2
@@ -14665,48 +14980,51 @@
 	.size	flash_test_blk, .-flash_test_blk
 	.align	2
 	.global	flash_start_one_pass_page_prog
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_start_one_pass_page_prog, %function
 flash_start_one_pass_page_prog:
 	.fnstart
 	@ args = 12, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	.pad #8
+	mov	r9, r3
+	ldr	r6, .L2519
 	mov	r10, r0
-	ldr	r6, .L2558
+	lsl	r7, r9, #8
 	mov	r0, r3
 	ldr	r5, [sp, #40]
-	mov	r9, r3
 	mov	r8, r2
-	mov	r7, r9, asl #8
-	ldr	r4, [r6, #1040]
+	ldr	r4, [r6, #1044]
 	bl	nandc_cs
 	cmp	r10, #0
-	mov	r0, r5
-	add	r2, r4, r7
+	mov	r2, #128
 	addne	r3, r4, r7
-	add	r4, r4, r7
+	mov	r0, r5
 	strne	r10, [r3, #2056]
-	mov	r3, #128
-	str	r3, [r2, #2056]
-	mov	r3, #0
-	str	r3, [r2, #2052]
-	str	r3, [r2, #2052]
-	uxtb	r3, r5
-	str	r3, [r2, #2052]
-	mov	r3, r5, lsr #8
-	str	r3, [r2, #2052]
-	mov	r3, r5, lsr #16
-	str	r3, [r2, #2052]
-	ldrb	r3, [r6, #1188]	@ zero_extendqisi2
-	cmp	r3, #0
-	movne	r3, r5, lsr #24
-	strne	r3, [r2, #2052]
+	add	r3, r4, r7
+	str	r2, [r3, #2056]
+	mov	r2, #0
+	str	r2, [r3, #2052]
+	add	r4, r4, r7
+	str	r2, [r3, #2052]
+	uxtb	r2, r5
+	str	r2, [r3, #2052]
+	lsr	r2, r5, #8
+	str	r2, [r3, #2052]
+	lsr	r2, r5, #16
+	str	r2, [r3, #2052]
+	ldrb	r2, [r6, #1152]	@ zero_extendqisi2
+	cmp	r2, #0
+	lsrne	r2, r5, #24
+	strne	r2, [r3, #2052]
 	bl	nandc_set_seed
-	ldr	r3, .L2558+4
-	mov	r0, r9
+	ldr	r3, .L2519+4
 	mov	r1, #1
+	mov	r0, r9
 	ldrb	r2, [r3, #13]	@ zero_extendqisi2
 	ldr	r3, [sp, #48]
 	str	r3, [sp]
@@ -14715,129 +15033,132 @@
 	str	r8, [r4, #2056]
 	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L2559:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L2520:
 	.align	2
-.L2558:
+.L2519:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
 	.fnend
 	.size	flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog
 	.align	2
 	.global	flash_dual_page_prog
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_dual_page_prog, %function
 flash_dual_page_prog:
 	.fnstart
 	@ args = 12, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r9, r3
-	ldr	r4, .L2573
-	add	r8, r0, #8
-	ldr	r6, .L2573+4
+	mov	r10, r3
+	ldr	r3, .L2534
+	mov	r9, r2
+	add	r2, r0, #8
 	.pad #20
 	sub	sp, sp, #20
-	mov	r5, r0
+	ldr	r6, .L2534+4
+	mov	r4, r0
+	ldrb	r5, [r3, #1153]	@ zero_extendqisi2
 	mov	r7, r1
-	ldr	r3, [r4, #1040]
-	mov	r10, r2
+	ldr	r8, [r3, #1044]
 	ubfx	fp, r1, #24, #2
-	add	r8, r3, r8, asl #8
-	ldrb	r3, [r4, #1189]	@ zero_extendqisi2
-	mvn	r4, #0
-	rsb	r3, r3, #24
-	bic	r4, r1, r4, asl r3
+	rsb	r3, r5, #24
+	mvn	r5, #0
+	bic	r5, r1, r5, lsl r3
 	ldr	r3, [r6]
+	add	r8, r8, r2, lsl #8
 	tst	r3, #16
-	beq	.L2561
-	ldr	r0, .L2573+8
-	mov	r2, fp
+	beq	.L2522
 	ldr	r3, [sp, #64]
+	mov	r2, fp
+	ldr	r0, .L2534+8
 	bl	printk
-.L2561:
+.L2522:
 	bl	nandc_wait_flash_ready
-	mov	r0, r5
+	mov	r0, r4
 	bl	nandc_cs
 	cmp	fp, #0
-	mov	r0, r5
-	bne	.L2562
+	mov	r0, r4
+	bne	.L2523
 	bl	zftl_flash_enter_slc_mode
-	b	.L2563
-.L2562:
-	bl	zftl_flash_exit_slc_mode
-.L2563:
-	mov	r0, #0
+.L2524:
+	mov	r1, #0
+	mov	r3, r4
 	mov	r2, #16
-	mov	r1, r0
-	mov	r3, r5
-	stmia	sp, {r4, r10}
-	add	r4, r4, #1
-	str	r9, [sp, #8]
+	mov	r0, r1
+	stm	sp, {r5, r9, r10}
+	add	r5, r5, #1
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_wait_flash_ready
-	mov	r0, #0
-	mov	r2, #16
-	mov	r1, r0
-	ldr	r3, [sp, #56]
-	str	r4, [sp]
-	str	r3, [sp, #4]
 	ldr	r3, [sp, #60]
+	mov	r1, #0
+	mov	r2, #16
+	mov	r0, r1
+	str	r5, [sp]
 	str	r3, [sp, #8]
-	mov	r3, r5
+	ldr	r3, [sp, #56]
+	str	r3, [sp, #4]
+	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_wait_flash_ready
 	mov	r0, r8
 	bl	flash_read_status
-	mov	r4, r0
-	mov	r0, r5
-	bl	nandc_de_cs
-	ands	r2, r4, #4
-	beq	.L2564
+	bl	nandc_de_cs.constprop.35
+	ands	r0, r0, #4
+	beq	.L2521
 	ldr	r3, [r6]
 	tst	r3, #4096
-	beq	.L2565
-	ldr	r0, .L2573+12
+	beq	.L2526
+	mov	r2, r0
 	mov	r1, r7
+	ldr	r0, .L2534+12
 	bl	printk
-.L2565:
-	mvn	r2, #0
-.L2564:
-	mov	r0, r2
+.L2526:
+	mvn	r0, #0
+.L2521:
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2574:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2523:
+	bl	zftl_flash_exit_slc_mode
+	b	.L2524
+.L2535:
 	.align	2
-.L2573:
+.L2534:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LC170
 	.word	.LC169
+	.word	.LC168
 	.fnend
 	.size	flash_dual_page_prog, .-flash_dual_page_prog
 	.align	2
 	.global	ymtc_flash_tlc_page_prog
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ymtc_flash_tlc_page_prog, %function
 ymtc_flash_tlc_page_prog:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	.pad #16
-	mov	r8, r3
-	ldr	r4, .L2582
+	mov	r10, r3
+	ldr	r3, .L2543
 	mov	r6, #1
-	add	r7, r0, #8
 	mov	r5, r0
-	mov	r9, r2
-	mov	r10, r1
-	ldr	r3, [r4, #1040]
-	ldrb	r4, [r4, #1189]	@ zero_extendqisi2
-	add	r7, r3, r7, asl #8
+	mov	r8, r2
+	add	r2, r0, #8
+	mov	r9, r1
+	ldrb	r4, [r3, #1153]	@ zero_extendqisi2
+	ldr	r7, [r3, #1044]
 	rsb	r4, r4, #24
-	mov	r4, r6, asl r4
+	lsl	r4, r6, r4
+	add	r7, r7, r2, lsl #8
 	sub	r4, r4, #1
 	and	r4, r4, r1
 	bl	nandc_wait_flash_ready
@@ -14845,179 +15166,180 @@
 	bl	nandc_cs
 	mov	r0, r5
 	bl	zftl_flash_exit_slc_mode
-	mov	r1, r6
-	mov	r2, #26
 	mov	r3, r5
+	mov	r2, #26
+	mov	r1, r6
+	stm	sp, {r4, r8, r10}
 	mov	r0, #0
-	stmia	sp, {r4, r9}
-	str	r8, [sp, #8]
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_wait_flash_ready
 	add	r3, r4, r6
-	mov	r1, r6
 	mov	r2, #26
+	mov	r1, r6
+	str	r3, [sp]
 	mov	r0, #0
-	add	r4, r4, #2
-	stmia	sp, {r3, r9}
 	mov	r3, r5
-	str	r8, [sp, #8]
+	stmib	sp, {r8, r10}
+	add	r4, r4, #2
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_wait_flash_ready
+	mov	r3, r5
 	mov	r2, #16
 	mov	r1, r6
-	mov	r3, r5
 	mov	r0, #0
-	stmia	sp, {r4, r9}
-	str	r8, [sp, #8]
+	stmib	sp, {r8, r10}
+	str	r4, [sp]
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_iqr_wait_flash_ready
 	bl	nandc_wait_flash_ready
 	mov	r0, r7
 	bl	flash_read_status
-	mov	r4, r0
-	mov	r0, r5
-	bl	nandc_de_cs
-	ands	r2, r4, #4
-	beq	.L2576
-	ldr	r3, .L2582+4
+	bl	nandc_de_cs.constprop.35
+	ands	r0, r0, #4
+	beq	.L2536
+	ldr	r3, .L2543+4
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L2577
-	ldr	r0, .L2582+8
-	mov	r1, r10
+	beq	.L2538
+	mov	r2, r0
+	mov	r1, r9
+	ldr	r0, .L2543+8
 	bl	printk
-.L2577:
-	mvn	r2, #0
-.L2576:
-	mov	r0, r2
+.L2538:
+	mvn	r0, #0
+.L2536:
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L2583:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L2544:
 	.align	2
-.L2582:
+.L2543:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LC171
+	.word	.LC170
 	.fnend
 	.size	ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog
 	.section	.text.unlikely
 	.align	2
-	.type	fw_flash_page_prog.constprop.30, %function
-fw_flash_page_prog.constprop.30:
+	.syntax unified
+	.arm
+	.fpu softvfp
+	.type	fw_flash_page_prog.constprop.29, %function
+fw_flash_page_prog.constprop.29:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, lr}
+	push	{r4, r5, r6, r7, r8, r9, lr}
 	.save {r4, r5, r6, r7, r8, r9, lr}
 	mov	r6, r1
-	ldr	r4, .L2590
+	ldr	r4, .L2551
 	.pad #20
 	sub	sp, sp, #20
-	mov	r5, r2
-	ldr	r3, [r4, #1096]
+	mov	r7, r2
+	ldr	r3, [r4, #1104]
 	ldrb	r1, [r3, #9]	@ zero_extendqisi2
 	bl	__aeabi_uidiv
-	ldrb	r8, [r4, #1172]	@ zero_extendqisi2
-	mov	r7, r0
-	ldrb	r0, [r4, #1100]	@ zero_extendqisi2
+	mov	r5, r0
+	ldrb	r0, [r4, #1108]	@ zero_extendqisi2
+	ldrb	r8, [r4, #1193]	@ zero_extendqisi2
 	bl	nandc_bch_sel
-	ldr	r3, .L2590+4
+	ldr	r3, .L2551+4
 	ldrb	r2, [r3, #11]	@ zero_extendqisi2
 	cmp	r2, #9
-	bne	.L2585
-	ldrb	r4, [r4, #1102]	@ zero_extendqisi2
+	bne	.L2546
+	ldrb	r4, [r4, #1110]	@ zero_extendqisi2
 	cmp	r4, #0
-	bne	.L2585
+	bne	.L2546
 	ldrb	r3, [r3, #16]	@ zero_extendqisi2
 	cmp	r3, #3
-	bne	.L2586
-	mov	r0, r4
-	mov	r1, r7
+	bne	.L2547
+	mov	r3, r7
 	mov	r2, r6
-	mov	r3, r5
+	mov	r1, r5
+	mov	r0, r4
 	bl	ymtc_flash_tlc_page_prog
-	b	.L2589
-.L2586:
-	ldr	r9, .L2590+8
-	mov	r1, #255
-	mov	r2, #16384
-	ldr	r0, [r9, #-128]
-	bl	ftl_memset
-	ldr	r3, [r9, #-128]
-	mov	r0, r4
-	mov	r1, r7
-	mov	r2, r6
-	str	r3, [sp]
-	str	r3, [sp, #4]
-	mov	r3, #4
-	str	r3, [sp, #8]
-	mov	r3, r5
-	bl	flash_dual_page_prog
-	b	.L2589
-.L2585:
-	mov	r3, #4
-	mov	r0, #0
-	str	r3, [sp]
-	mov	r1, r7
-	mov	r2, r6
-	mov	r3, r5
-	bl	flash_prog_page
-.L2589:
+.L2550:
 	mov	r4, r0
 	mov	r0, r8
 	bl	nandc_bch_sel
 	mov	r0, r4
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L2591:
+	pop	{r4, r5, r6, r7, r8, r9, pc}
+.L2547:
+	ldr	r9, .L2551+8
+	mov	r2, #16384
+	mov	r1, #255
+	ldr	r0, [r9, #-120]
+	bl	ftl_memset
+	ldr	r3, [r9, #-120]
+	mov	r2, #4
+	str	r2, [sp, #8]
+	mov	r1, r5
+	mov	r2, r6
+	mov	r0, r4
+	str	r3, [sp, #4]
+	str	r3, [sp]
+	mov	r3, r7
+	bl	flash_dual_page_prog
+	b	.L2550
+.L2546:
+	mov	r3, #4
+	mov	r2, r6
+	str	r3, [sp]
+	mov	r1, r5
+	mov	r3, r7
+	mov	r0, #0
+	bl	flash_prog_page
+	b	.L2550
+.L2552:
 	.align	2
-.L2590:
+.L2551:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
 	.word	.LANCHOR3
 	.fnend
-	.size	fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30
+	.size	fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29
 	.text
 	.align	2
 	.global	flash_start_tlc_page_prog
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_start_tlc_page_prog, %function
 flash_start_tlc_page_prog:
 	.fnstart
 	@ args = 12, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
-	mov	r4, r3
-	ldr	r3, .L2600
-	mov	r8, r2
+	mov	r6, r3
+	ldr	r4, .L2561
 	add	r5, sp, #48
 	mov	fp, r0
 	mov	r7, r1
-	ldrb	r2, [r3, #1101]	@ zero_extendqisi2
-	mov	r6, r3
-	ldmia	r5, {r5, r9, r10}
-	cmp	r2, r4
-	bhi	.L2593
-	ldr	r1, .L2600+4
+	mov	r8, r2
+	ldm	r5, {r5, r9, r10}
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	cmp	r3, r6
+	bhi	.L2554
 	mov	r2, #868
-	ldr	r0, .L2600+8
+	ldr	r1, .L2561+4
+	ldr	r0, .L2561+8
 	bl	printk
 	bl	dump_stack
-.L2593:
-	ldrb	r2, [r6, #1101]	@ zero_extendqisi2
-	ldr	r3, .L2600
-	cmp	r2, r4
-	bls	.L2592
-	add	r4, r3, r4
-	ldrb	r6, [r4, #1180]	@ zero_extendqisi2
-	ldr	r4, [r3, #1040]
+.L2554:
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	cmp	r3, r6
+	bls	.L2553
+	add	r6, r4, r6
+	ldr	r4, [r4, #1044]
+	ldrb	r6, [r6, #1144]	@ zero_extendqisi2
 	mov	r0, r6
 	bl	nandc_cs
+	lsl	r3, r6, #8
 	cmp	fp, #0
-	mov	r3, r6, asl #8
 	addne	r2, r4, r3
 	add	r4, r4, r3
 	mov	r3, #128
@@ -15029,153 +15351,116 @@
 	str	r3, [r4, #2052]
 	uxtb	r3, r5
 	str	r3, [r4, #2052]
-	mov	r3, r5, lsr #8
+	lsr	r3, r5, #8
 	str	r3, [r4, #2052]
-	mov	r3, r5, lsr #16
-	add	r5, r5, r5, asl #1
+	lsr	r3, r5, #16
+	add	r5, r5, r5, lsl #1
 	str	r3, [r4, #2052]
 	sub	r0, r5, #1
 	add	r0, r0, r7
 	bl	nandc_set_seed
-	ldr	r3, .L2600+12
-	mov	r0, r6
+	ldr	r3, .L2561+12
 	mov	r1, #1
+	mov	r0, r6
 	ldrb	r2, [r3, #13]	@ zero_extendqisi2
 	mov	r3, r9
 	str	r10, [sp]
 	bl	nandc_xfer
 	str	r8, [r4, #2056]
-	mov	r0, r6
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	b	nandc_de_cs
-.L2592:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	b	nandc_de_cs.constprop.35
+.L2553:
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2601:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2562:
 	.align	2
-.L2600:
+.L2561:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2080
+	.word	.LANCHOR1+1901
 	.word	.LC0
 	.word	.LANCHOR2
 	.fnend
 	.size	flash_start_tlc_page_prog, .-flash_start_tlc_page_prog
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	queue_tlc_prog_cmd, %function
 queue_tlc_prog_cmd:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	.pad #16
-	mov	r8, #1
-	ldr	r2, .L2607
+	mov	r8, r1
+	ldr	r1, .L2568
+	mov	r7, #1
 	mov	r6, r0
-	ldr	r3, [r0]
-	mov	r7, r1
-	ldrb	r4, [r2, #1189]	@ zero_extendqisi2
-	ldr	r0, [r3, #24]
-	rsb	r1, r4, #24
-	ldrb	r2, [r2, #1197]	@ zero_extendqisi2
-	mov	r4, r8, asl r4
-	mov	r5, r8, asl r1
+	ldr	r2, [r0]
+	ldrb	r3, [r1, #1153]	@ zero_extendqisi2
+	ldr	ip, [r2, #24]
+	rsb	r0, r3, #24
+	lsl	r4, r7, r3
+	ldrb	r3, [r1, #1159]	@ zero_extendqisi2
+	lsl	r5, r7, r0
 	sub	r4, r4, #1
-	cmp	r2, #0
-	and	r4, r4, r0, lsr r1
+	and	r4, r4, ip, lsr r0
+	cmp	r3, #0
 	sub	r5, r5, #1
-	and	r5, r5, r0
+	and	r5, r5, ip
 	uxtb	r4, r4
-	beq	.L2603
+	beq	.L2564
 	mov	r0, r4
 	bl	zftl_flash_exit_slc_mode
 	ldr	r3, [r6]
-	mov	r1, r8
+	mov	r1, r7
 	mov	r0, #0
-	str	r5, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
 	mov	r2, #26
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
+	ldr	r3, [r3, #4]
+	str	r5, [sp]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_iqr_wait_flash_ready
 	bl	nandc_wait_flash_ready
 	ldr	r3, [r6, #4]
-	add	r2, r5, r8
-	mov	r1, r8
+	mov	r1, r7
 	mov	r0, #0
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #26
+	ldr	r3, [r3, #4]
+	str	r3, [sp, #4]
+	add	r3, r5, r7
+	str	r3, [sp]
+	mov	r3, r4
+	bl	flash_start_one_pass_page_prog
+	bl	nandc_iqr_wait_flash_ready
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r6, #8]
 	add	r5, r5, #2
-	str	r2, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #26
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_one_pass_page_prog
-	bl	nandc_iqr_wait_flash_ready
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r6, #8]
+	mov	r1, r7
 	mov	r0, #0
-	mov	r1, r8
-	str	r5, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
 	mov	r2, #16
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
+	ldr	r3, [r3, #4]
+	str	r5, [sp]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
-	b	.L2604
-.L2603:
-	ldrb	r0, [r3, #44]	@ zero_extendqisi2
-	mov	r1, r8
-	str	r5, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #26
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-	bl	nandc_iqr_wait_flash_ready
-	bl	nandc_wait_flash_ready
-	ldmia	r6, {r2, r3}
-	mov	r1, #2
-	ldrb	r0, [r2, #44]	@ zero_extendqisi2
-	str	r5, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #26
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-	bl	nandc_iqr_wait_flash_ready
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r6, #8]
-	ldr	r2, [r6]
-	mov	r1, #3
-	ldrb	r0, [r2, #44]	@ zero_extendqisi2
-	str	r5, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #16
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-.L2604:
-	cmp	r7, #0
-	beq	.L2602
+.L2565:
+	cmp	r8, #0
+	beq	.L2563
 	ldr	r1, [r6]
 	mov	r3, #4
-	ldr	r0, .L2607+4
+	ldr	r0, .L2568+4
 	strb	r3, [r1, #42]
 	mov	r3, #1
 	strb	r3, [r1, #43]
@@ -15183,242 +15468,288 @@
 	strb	r3, [r1]
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	pop	{r4, r5, r6, r7, r8, lr}
 	b	buf_add_tail
-.L2602:
+.L2564:
+	ldr	r3, [r2, #12]
+	mov	r1, r7
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	str	r3, [sp, #8]
+	ldr	r3, [r2, #4]
+	mov	r2, #26
+	str	r5, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_iqr_wait_flash_ready
+	bl	nandc_wait_flash_ready
+	ldm	r6, {r2, r3}
+	mov	r1, #2
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #26
+	ldr	r3, [r3, #4]
+	str	r5, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_iqr_wait_flash_ready
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r6, #8]
+	mov	r1, #3
+	ldr	r2, [r6]
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #16
+	ldr	r3, [r3, #4]
+	str	r5, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	b	.L2565
+.L2563:
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L2608:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L2569:
 	.align	2
-.L2607:
+.L2568:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2775
+	.word	.LANCHOR0+2770
 	.fnend
 	.size	queue_tlc_prog_cmd, .-queue_tlc_prog_cmd
 	.align	2
 	.global	sblk_3d_tlc_dump_prog
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_3d_tlc_dump_prog, %function
 sblk_3d_tlc_dump_prog:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	.pad #16
 	mov	r7, #1
-	ldr	r3, .L2613
+	ldr	r2, .L2574
 	mov	r5, r0
-	ldr	r1, [r0, #24]
-	ldrb	r4, [r3, #1189]	@ zero_extendqisi2
-	ldrb	r8, [r3, #1197]	@ zero_extendqisi2
-	rsb	r2, r4, #24
-	mov	r4, r7, asl r4
+	ldr	r0, [r0, #24]
+	ldrb	r3, [r2, #1153]	@ zero_extendqisi2
+	ldrb	r8, [r2, #1159]	@ zero_extendqisi2
+	rsb	r1, r3, #24
+	lsl	r4, r7, r3
+	lsl	r6, r7, r1
 	sub	r4, r4, #1
-	mov	r6, r7, asl r2
-	and	r4, r4, r1, lsr r2
 	cmp	r8, #0
+	and	r4, r4, r0, lsr r1
 	sub	r6, r6, #1
-	and	r6, r6, r1
+	and	r6, r6, r0
 	uxtb	r4, r4
-	beq	.L2610
+	beq	.L2571
 	mov	r0, r4
 	bl	zftl_flash_exit_slc_mode
-	ldr	r3, [r5, #4]
-	mov	r1, r7
-	mov	r2, #26
-	mov	r0, #0
-	str	r3, [sp, #4]
 	ldr	r3, [r5, #12]
+	mov	r2, #26
+	mov	r1, r7
+	mov	r0, #0
 	str	r6, [sp]
 	str	r3, [sp, #8]
+	ldr	r3, [r5, #4]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_iqr_wait_flash_ready
 	bl	nandc_wait_flash_ready
+	ldr	r3, [r5, #12]
+	mov	r2, #26
+	mov	r1, r7
+	mov	r0, #0
+	str	r3, [sp, #8]
+	ldr	r3, [r5, #4]
+	str	r3, [sp, #4]
 	add	r3, r6, r7
-	mov	r1, r7
-	mov	r2, #26
-	mov	r0, #0
-	add	r6, r6, #2
 	str	r3, [sp]
-	ldr	r3, [r5, #4]
-	str	r3, [sp, #4]
-	ldr	r3, [r5, #12]
-	str	r3, [sp, #8]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_iqr_wait_flash_ready
 	bl	nandc_wait_flash_ready
-	ldr	r3, [r5, #4]
+	ldr	r3, [r5, #12]
+	add	r6, r6, #2
+	str	r6, [sp]
+	mov	r2, #16
+	mov	r1, r7
 	mov	r0, #0
-	mov	r1, r7
-	mov	r2, #16
-	str	r3, [sp, #4]
-	ldr	r3, [r5, #12]
-	str	r6, [sp]
 	str	r3, [sp, #8]
+	ldr	r3, [r5, #4]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
-	b	.L2611
-.L2610:
-	str	r6, [sp]
-	mov	r1, r7
-	ldr	r3, [r0, #4]
-	mov	r2, #26
-	str	r3, [sp, #4]
-	ldr	r3, [r0, #12]
-	mov	r0, r8
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
+.L2572:
 	bl	nandc_iqr_wait_flash_ready
 	bl	nandc_wait_flash_ready
-	ldr	r3, [r5, #4]
-	mov	r1, #2
-	mov	r2, #26
-	mov	r0, r8
-	str	r3, [sp, #4]
-	ldr	r3, [r5, #12]
-	str	r6, [sp]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-	bl	nandc_iqr_wait_flash_ready
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r5, #4]
-	mov	r0, r8
-	mov	r1, #3
-	mov	r2, #16
-	str	r3, [sp, #4]
-	ldr	r3, [r5, #12]
-	str	r6, [sp]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-.L2611:
-	bl	nandc_iqr_wait_flash_ready
-	bl	nandc_wait_flash_ready
-	ldr	r0, [r5, #24]
 	mov	r1, #64
+	ldr	r0, [r5, #24]
 	add	sp, sp, #16
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	pop	{r4, r5, r6, r7, r8, lr}
 	b	flash_wait_device_ready
-.L2614:
+.L2571:
+	ldr	r3, [r5, #12]
+	mov	r1, r7
+	mov	r2, #26
+	mov	r0, r8
+	str	r6, [sp]
+	str	r3, [sp, #8]
+	ldr	r3, [r5, #4]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_iqr_wait_flash_ready
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r5, #12]
+	mov	r2, #26
+	mov	r1, #2
+	mov	r0, r8
+	str	r6, [sp]
+	str	r3, [sp, #8]
+	ldr	r3, [r5, #4]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_iqr_wait_flash_ready
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r5, #12]
+	mov	r2, #16
+	str	r6, [sp]
+	mov	r1, #3
+	mov	r0, r8
+	str	r3, [sp, #8]
+	ldr	r3, [r5, #4]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	b	.L2572
+.L2575:
 	.align	2
-.L2613:
+.L2574:
 	.word	.LANCHOR0
 	.fnend
 	.size	sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog
 	.align	2
 	.global	flash_start_3d_mlc_page_prog
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_start_3d_mlc_page_prog, %function
 flash_start_3d_mlc_page_prog:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	.pad #8
 	mov	r8, r3
-	ldr	r3, .L2619
-	mov	r5, r2
+	ldr	r4, .L2580
 	mov	r7, r0
-	mov	r4, r1
-	ldrb	r2, [r3, #1101]	@ zero_extendqisi2
-	mov	r6, r3
-	cmp	r2, r1
-	bhi	.L2616
-	ldr	r1, .L2619+4
+	mov	r5, r1
+	mov	r6, r2
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	cmp	r3, r1
+	bhi	.L2577
 	movw	r2, #903
-	ldr	r0, .L2619+8
+	ldr	r1, .L2580+4
+	ldr	r0, .L2580+8
 	bl	printk
 	bl	dump_stack
-.L2616:
-	ldrb	r2, [r6, #1101]	@ zero_extendqisi2
-	ldr	r3, .L2619
-	cmp	r2, r4
-	bls	.L2615
-	add	r4, r3, r4
-	ldrb	r6, [r4, #1180]	@ zero_extendqisi2
-	ldr	r4, [r3, #1040]
-	add	r4, r4, r6, asl #8
-	mov	r0, r6
+.L2577:
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	cmp	r3, r5
+	bls	.L2576
+	add	r5, r4, r5
+	ldr	r4, [r4, #1044]
+	ldrb	r5, [r5, #1144]	@ zero_extendqisi2
+	mov	r0, r5
+	add	r4, r4, r5, lsl #8
 	bl	nandc_cs
 	mov	r3, #128
-	mov	r0, r5
+	mov	r0, r6
 	str	r3, [r4, #2056]
 	mov	r3, #0
 	str	r3, [r4, #2052]
 	str	r3, [r4, #2052]
-	uxtb	r3, r5
+	uxtb	r3, r6
 	str	r3, [r4, #2052]
-	mov	r3, r5, lsr #8
+	lsr	r3, r6, #8
 	str	r3, [r4, #2052]
-	mov	r3, r5, lsr #16
+	lsr	r3, r6, #16
 	str	r3, [r4, #2052]
 	bl	nandc_set_seed
-	ldr	r3, .L2619+12
-	mov	r0, r6
+	ldr	r3, .L2580+12
 	mov	r1, #1
+	mov	r0, r5
 	ldrb	r2, [r3, #13]	@ zero_extendqisi2
 	ldr	r3, [sp, #32]
 	str	r3, [sp]
 	mov	r3, r8
 	bl	nandc_xfer
 	str	r7, [r4, #2056]
-.L2615:
+.L2576:
 	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L2620:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L2581:
 	.align	2
-.L2619:
+.L2580:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2108
+	.word	.LANCHOR1+1927
 	.word	.LC0
 	.word	.LANCHOR2
 	.fnend
 	.size	flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog
 	.align	2
 	.global	sblk_mlc_dump_prog
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_mlc_dump_prog, %function
 sblk_mlc_dump_prog:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L2627
-	stmfd	sp!, {r0, r1, r4, r5, r6, lr}
+	ldr	r3, .L2588
+	push	{r0, r1, r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
 	.pad #8
-	mov	r4, #1
-	ldrb	r1, [r3, #1189]	@ zero_extendqisi2
 	mov	r5, r0
-	ldr	r2, [r0, #24]
-	rsb	r3, r1, #24
-	mov	r6, r4, asl r3
-	mov	r4, r4, asl r1
+	ldr	r1, [r0, #24]
+	ldrb	r4, [r3, #1153]	@ zero_extendqisi2
+	mov	r3, #1
+	rsb	r2, r4, #24
+	lsl	r4, r3, r4
+	lsl	r6, r3, r2
 	sub	r4, r4, #1
 	sub	r6, r6, #1
-	and	r4, r4, r2, lsr r3
-	and	r6, r6, r2
+	and	r4, r4, r1, lsr r2
+	and	r6, r6, r1
 	uxtb	r4, r4
 	mov	r0, r4
 	bl	zftl_flash_exit_slc_mode
-	ldr	r3, .L2627+4
+	ldr	r3, .L2588+4
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L2622
+	beq	.L2583
 	ldr	r2, [r5, #24]
 	mov	r1, r6
-	ldr	r0, .L2627+8
+	ldr	r0, .L2588+8
 	add	r3, r2, #1
 	bl	printk
-.L2622:
+.L2583:
 	ldr	r3, [r5, #12]
-	mov	r1, r4
 	mov	r2, r6
+	mov	r1, r4
 	mov	r0, #16
 	str	r3, [sp]
 	ldr	r3, [r5, #4]
@@ -15437,100 +15768,87 @@
 	mov	r1, #64
 	ldr	r0, [r5, #24]
 	bl	flash_wait_device_ready
-	mov	r5, r0
-	mov	r0, r4
-	bl	nandc_de_cs
-	mov	r0, r5
+	bl	nandc_de_cs.constprop.35
 	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L2628:
+	pop	{r4, r5, r6, pc}
+.L2589:
 	.align	2
-.L2627:
+.L2588:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LC172
+	.word	.LC171
 	.fnend
 	.size	sblk_mlc_dump_prog, .-sblk_mlc_dump_prog
 	.align	2
 	.global	flash_start_page_prog
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_start_page_prog, %function
 flash_start_page_prog:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	fp, r3
-	ldr	r6, .L2644
-	mvn	r3, #0
 	mov	r10, r2
+	ldr	r5, .L2605
+	mov	fp, r3
+	mov	r8, r1
 	.pad #20
 	sub	sp, sp, #20
-	mov	r8, r1
-	ldrb	r4, [r6, #1189]	@ zero_extendqisi2
-	ldrb	r2, [r6, #1101]	@ zero_extendqisi2
-	rsb	r7, r4, #24
-	str	r0, [sp, #8]
-	mvn	r4, r3, asl r4
-	and	r5, r4, r1, lsr r7
-	uxtb	r9, r5
+	str	r0, [sp, #12]
+	ldrb	r2, [r5, #1153]	@ zero_extendqisi2
+	rsb	r4, r2, #24
+	lsr	r3, r1, r4
+	mvn	r1, #0
+	bic	r3, r3, r1, lsl r2
+	ldrb	r2, [r5, #1109]	@ zero_extendqisi2
+	uxtb	r9, r3
 	cmp	r2, r9
-	bhi	.L2630
-	ldr	r1, .L2644+4
+	bhi	.L2591
 	mov	r2, #956
-	ldr	r0, .L2644+8
+	ldr	r1, .L2605+4
+	ldr	r0, .L2605+8
 	bl	printk
 	bl	dump_stack
-.L2630:
-	ldrb	r1, [r6, #1101]	@ zero_extendqisi2
-	ldr	r2, .L2644
-	cmp	r1, r9
-	bls	.L2629
-	add	r1, r2, r9
-	mvn	r4, #0
-	str	r2, [sp, #12]
-	bic	r4, r8, r4, asl r7
-	ldrb	r5, [r1, #1180]	@ zero_extendqisi2
-	ldr	r7, [r2, #1040]
+.L2591:
+	ldrb	r2, [r5, #1109]	@ zero_extendqisi2
+	cmp	r2, r9
+	bls	.L2590
+	mvn	r2, #0
+	ldr	r7, [r5, #1044]
+	bic	r4, r8, r2, lsl r4
+	add	r2, r5, r9
+	ldrb	r6, [r2, #1144]	@ zero_extendqisi2
 	bl	nandc_rdy_status
 	cmp	r0, #0
-	ldr	r2, [sp, #12]
-	bne	.L2632
-	ldrb	r2, [r2, #1101]	@ zero_extendqisi2
+	bne	.L2593
+	ldrb	r2, [r5, #1109]	@ zero_extendqisi2
 	cmp	r2, #1
-	bne	.L2633
+	bne	.L2594
 	bl	nandc_wait_flash_ready
-	b	.L2632
-.L2633:
-	mov	r0, r9
-	mov	r1, r4
-	mov	r2, #64
-	bl	flash_wait_device_ready_raw
-.L2632:
-	mov	r0, r5
+.L2593:
+	mov	r0, r6
 	bl	hynix_reconfig_rr_para
-	mov	r0, r5
+	mov	r0, r6
 	bl	nandc_cs
 	tst	r8, #50331648
-	bne	.L2634
+	bne	.L2595
 	mov	r0, r4
 	bl	slc_phy_page_address_calc
-	ldrb	r3, [r6]	@ zero_extendqisi2
-	cmp	r3, #0
+	ldrb	r3, [r5]	@ zero_extendqisi2
 	mov	r4, r0
-	beq	.L2635
-	mov	r0, r5
+	cmp	r3, #0
+	beq	.L2596
+	mov	r0, r6
 	bl	zftl_flash_enter_slc_mode
-	b	.L2635
-.L2634:
-	mov	r0, r5
-	bl	zftl_flash_exit_slc_mode
-.L2635:
-	mov	r8, r5, asl #8
+.L2596:
+	lsl	r8, r6, #8
 	mov	r2, #128
-	add	r3, r7, r8
 	mov	r0, r4
+	add	r3, r7, r8
 	add	r7, r7, r8
 	str	r2, [r3, #2056]
 	mov	r2, #0
@@ -15538,1909 +15856,1919 @@
 	str	r2, [r3, #2052]
 	uxtb	r2, r4
 	str	r2, [r3, #2052]
-	mov	r2, r4, lsr #8
+	lsr	r2, r4, #8
 	str	r2, [r3, #2052]
-	mov	r2, r4, lsr #16
+	lsr	r2, r4, #16
 	str	r2, [r3, #2052]
-	ldrb	r2, [r6, #1188]	@ zero_extendqisi2
+	ldrb	r2, [r5, #1152]	@ zero_extendqisi2
 	cmp	r2, #0
-	movne	r2, r4, lsr #24
+	lsrne	r2, r4, #24
 	strne	r2, [r3, #2052]
 	bl	nandc_set_seed
-	ldr	r3, .L2644+12
-	mov	r0, r5
+	ldr	r3, .L2605+12
 	mov	r1, #1
+	mov	r0, r6
 	ldrb	r2, [r3, #13]	@ zero_extendqisi2
 	mov	r3, r10
 	str	fp, [sp]
 	bl	nandc_xfer
-	mov	r0, r5
-	ldr	r3, [sp, #8]
+	ldr	r3, [sp, #12]
 	str	r3, [r7, #2056]
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	b	nandc_de_cs
-.L2629:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	b	nandc_de_cs.constprop.35
+.L2594:
+	mov	r2, #64
+	mov	r1, r4
+	mov	r0, r9
+	bl	flash_wait_device_ready_raw
+	b	.L2593
+.L2595:
+	mov	r0, r6
+	bl	zftl_flash_exit_slc_mode
+	b	.L2596
+.L2590:
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2645:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2606:
 	.align	2
-.L2644:
+.L2605:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2140
+	.word	.LANCHOR1+1956
 	.word	.LC0
 	.word	.LANCHOR2
 	.fnend
 	.size	flash_start_page_prog, .-flash_start_page_prog
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	queue_prog_cmd, %function
 queue_prog_cmd:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
-	.save {r4, r5, r6, lr}
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
 	mov	r4, r0
-	ldr	r2, [r4, #4]
+	ldr	r3, [r0, #12]
+	ldr	r2, [r0, #4]
+	ldr	r1, [r0, #24]
 	mov	r0, #16
-	ldr	r3, [r4, #12]
-	ldr	r1, [r4, #24]
 	bl	flash_start_page_prog
-	ldr	r2, .L2655
+	ldr	r2, .L2616
 	ldr	r0, [r4, #24]
-	ldrb	r3, [r2, #2775]	@ zero_extendqisi2
+	ldrb	r3, [r2, #2770]	@ zero_extendqisi2
 	cmp	r3, #255
-	beq	.L2647
-	ldrb	ip, [r2, #1189]	@ zero_extendqisi2
+	beq	.L2608
+	ldrb	ip, [r2, #1153]	@ zero_extendqisi2
 	mvn	r1, #0
 	mov	r5, #48
-	rsb	r6, ip, #24
-	mvn	r1, r1, asl ip
+	movw	r8, #1256
+	movw	r6, #1274
+	rsb	r7, ip, #24
+	mvn	r1, r1, lsl ip
 	uxth	r1, r1
-	and	r0, r1, r0, asr r6
-.L2649:
-	mla	lr, r5, r3, r2
-	ldr	ip, [lr, #1260]
-	and	ip, r1, ip, lsr r6
-	cmp	r0, ip
-	bne	.L2648
-	add	ip, lr, #1264
-	ldrb	lr, [lr, #1278]	@ zero_extendqisi2
-	add	ip, ip, #12
-	cmp	lr, #7
-	moveq	r3, #3
-	streqb	r3, [ip, #2]
-	beq	.L2647
-.L2648:
-	mla	r3, r5, r3, r2
-	ldrb	r3, [r3, #1236]	@ zero_extendqisi2
-	cmp	r3, #255
-	bne	.L2649
-.L2647:
+	and	r0, r1, r0, asr r7
+.L2610:
+	mla	ip, r5, r3, r2
+	ldr	lr, [ip, r8]
+	and	lr, r1, lr, lsr r7
+	cmp	r0, lr
+	bne	.L2609
+	add	lr, ip, r6
+	ldrb	ip, [ip, r6]	@ zero_extendqisi2
+	cmp	ip, #7
+	bne	.L2609
+	mov	r3, #3
+	strb	r3, [lr]
+.L2608:
 	mov	r3, #3
 	mov	r1, r4
 	strb	r3, [r4, #42]
 	mov	r3, #1
-	ldr	r0, .L2655+4
 	strb	r3, [r4, #43]
 	mvn	r3, #0
 	strb	r3, [r4]
-	ldmfd	sp!, {r4, r5, r6, lr}
+	ldr	r0, .L2616+4
+	pop	{r4, r5, r6, r7, r8, lr}
 	b	buf_add_tail
-.L2656:
+.L2609:
+	mla	r3, r5, r3, r2
+	ldrb	r3, [r3, #1232]	@ zero_extendqisi2
+	cmp	r3, #255
+	bne	.L2610
+	b	.L2608
+.L2617:
 	.align	2
-.L2655:
+.L2616:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2775
+	.word	.LANCHOR0+2770
 	.fnend
 	.size	queue_prog_cmd, .-queue_prog_cmd
 	.align	2
 	.global	flash_complete_plane_page_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_complete_plane_page_read, %function
 flash_complete_plane_page_read:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	.pad #8
-	mvn	r3, #0
-	ldr	r8, .L2687
-	mov	r10, r0
-	mov	r6, r1
-	mov	r7, r2
-	ldrb	r4, [r8, #1189]	@ zero_extendqisi2
-	rsb	r9, r4, #24
-	mvn	r4, r3, asl r4
-	and	r4, r4, r0, lsr r9
-	ldrb	r3, [r8, #1101]	@ zero_extendqisi2
-	uxtb	r5, r4
-	cmp	r3, r5
-	bhi	.L2658
-	ldr	r1, .L2687+4
+	mov	r10, r2
+	ldr	r5, .L2649
+	mvn	r2, #0
+	mov	r6, r0
+	mov	r9, r1
+	ldrb	r3, [r5, #1153]	@ zero_extendqisi2
+	rsb	r4, r3, #24
+	lsr	r7, r0, r4
+	bic	r7, r7, r2, lsl r3
+	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
+	uxtb	r7, r7
+	cmp	r3, r7
+	bhi	.L2619
 	movw	r2, #1070
-	ldr	r0, .L2687+8
+	ldr	r1, .L2649+4
+	ldr	r0, .L2649+8
 	bl	printk
 	bl	dump_stack
-.L2658:
-	ldrb	r2, [r8, #1101]	@ zero_extendqisi2
-	ldr	r3, .L2687
-	cmp	r2, r5
-	mvnls	r0, #0
-	bls	.L2659
-	add	r5, r3, r5
-	mvn	r4, #0
-	bic	r4, r10, r4, asl r9
-	ubfx	r10, r10, #24, #2
-	ldrb	r9, [r5, #1180]	@ zero_extendqisi2
-	ldr	r5, [r3, #1040]
-	mov	r0, r9
+.L2619:
+	ldrb	r3, [r5, #1109]	@ zero_extendqisi2
+	mvn	r0, #0
+	cmp	r3, r7
+	bls	.L2618
+	add	r7, r5, r7
+	bic	r4, r6, r0, lsl r4
+	ldrb	r8, [r7, #1144]	@ zero_extendqisi2
+	ubfx	r6, r6, #24, #2
+	ldr	r7, [r5, #1044]
+	mov	r0, r8
 	bl	nandc_cs
-	cmp	r10, #0
-	bne	.L2660
+	cmp	r6, #0
+	bne	.L2621
 	mov	r0, r4
 	bl	slc_phy_page_address_calc
 	mov	r4, r0
-.L2660:
-	ldrb	r3, [r8, #1119]	@ zero_extendqisi2
-	uxtb	ip, r4
-	mov	r0, r4, lsr #8
-	ldrb	r1, [r8, #1188]	@ zero_extendqisi2
+.L2621:
+	ldrb	r3, [r5, #1127]	@ zero_extendqisi2
+	uxtb	lr, r4
+	lsr	ip, r4, #8
+	ldrb	r0, [r5, #1152]	@ zero_extendqisi2
 	cmp	r3, #1
-	mov	r3, r9, asl #8
-	addeq	r2, r5, r3
-	moveq	lr, #6
-	beq	.L2686
-	ldr	r2, .L2687
-	ldr	r2, [r2, #1096]
+	lsl	r3, r8, #8
+	moveq	r1, #6
+	addeq	r2, r7, r3
+	beq	.L2648
+	ldr	r2, [r5, #1104]
 	ldrb	r2, [r2, #12]	@ zero_extendqisi2
 	cmp	r2, #3
-	add	r2, r5, r3
-	bne	.L2664
-	mov	lr, #5
-.L2686:
-	add	r3, r5, r3
-	str	lr, [r2, #2056]
-	mov	lr, #0
-	cmp	r1, lr
-	str	lr, [r2, #2052]
-	movne	r1, r4, lsr #24
-	str	lr, [r2, #2052]
-	str	ip, [r2, #2052]
-	str	r0, [r2, #2052]
-	mov	r0, r4, lsr #16
-	str	r0, [r2, #2052]
-	strne	r1, [r2, #2052]
-	mov	r2, #224
-	str	r2, [r3, #2056]
-	b	.L2663
-.L2664:
-	add	r5, r5, r3
-	mov	lr, #0
-	cmp	r1, lr
-	str	lr, [r2, #2056]
-	mov	r3, #5
-	str	lr, [r2, #2052]
-	movne	r1, r4, lsr #24
-	str	lr, [r2, #2052]
-	str	ip, [r2, #2052]
-	str	r0, [r2, #2052]
-	mov	r0, r4, lsr #16
-	str	r0, [r2, #2052]
-	strne	r1, [r2, #2052]
-	str	r3, [r5, #2056]
-	mov	r3, #0
-	str	r3, [r2, #2052]
-	str	r3, [r2, #2052]
-	mov	r3, #224
-	str	r3, [r5, #2056]
-.L2663:
-	ldr	r2, [r8, #1096]
-	ldr	r3, .L2687
-	ldrb	r1, [r2, #12]	@ zero_extendqisi2
-	adds	r2, r10, #0
-	movne	r2, #1
-	cmp	r1, #3
-	movne	r2, #0
-	cmp	r2, #0
-	beq	.L2667
-	ldrb	r2, [r3, #1196]	@ zero_extendqisi2
-	cmp	r2, #0
-	bne	.L2667
-	ldrb	r3, [r3, #1197]	@ zero_extendqisi2
-	cmp	r3, #0
-	subeq	r0, r10, #1
-	addeq	r4, r4, r4, asl #1
-	addeq	r0, r0, r4
-	beq	.L2683
-.L2667:
-	mov	r0, r4
-.L2683:
-	bl	nandc_set_seed
-	ldr	r3, .L2687+12
+	add	r2, r7, r3
+	bne	.L2625
+	mov	r1, #5
+.L2648:
+	str	r1, [r2, #2056]
 	mov	r1, #0
-	mov	r0, r9
-	ldrb	r2, [r3, #13]	@ zero_extendqisi2
-	mov	r3, r6
-	str	r7, [sp]
-	bl	nandc_xfer
-	mov	r4, r0
-	mov	r0, r9
-	bl	nandc_de_cs
+	str	r1, [r2, #2052]
+	cmp	r0, #0
+	str	r1, [r2, #2052]
+	lsr	r1, r4, #16
+	str	lr, [r2, #2052]
+	add	r3, r7, r3
+	str	ip, [r2, #2052]
+	str	r1, [r2, #2052]
+	lsrne	r1, r4, #24
+	strne	r1, [r2, #2052]
+.L2644:
+	mov	r2, #224
+	cmp	r6, #0
+	str	r2, [r3, #2056]
+	ldr	r3, [r5, #1104]
+	ldrb	r3, [r3, #12]	@ zero_extendqisi2
+	sub	r3, r3, #3
+	clz	r3, r3
+	lsr	r3, r3, #5
+	moveq	r3, #0
+	cmp	r3, #0
+	beq	.L2628
+	ldrb	r3, [r5, #1158]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L2628
+	ldrb	r3, [r5, #1159]	@ zero_extendqisi2
+	cmp	r3, #0
+	addeq	r4, r4, r4, lsl #1
+	subeq	r6, r6, #1
+	addeq	r0, r4, r6
+	beq	.L2645
+.L2628:
 	mov	r0, r4
-.L2659:
+.L2645:
+	bl	nandc_set_seed
+	ldr	r3, .L2649+12
+	mov	r1, #0
+	mov	r0, r8
+	ldrb	r2, [r3, #13]	@ zero_extendqisi2
+	mov	r3, r9
+	str	r10, [sp]
+	bl	nandc_xfer
+	bl	nandc_de_cs.constprop.35
+.L2618:
 	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L2688:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L2625:
+	mov	r1, #0
+	cmp	r0, #0
+	str	r1, [r2, #2056]
+	add	r3, r7, r3
+	str	r1, [r2, #2052]
+	str	r1, [r2, #2052]
+	lsr	r1, r4, #16
+	str	lr, [r2, #2052]
+	str	ip, [r2, #2052]
+	str	r1, [r2, #2052]
+	lsrne	r1, r4, #24
+	strne	r1, [r2, #2052]
+	mov	r1, #5
+	str	r1, [r3, #2056]
+	mov	r1, #0
+	str	r1, [r2, #2052]
+	str	r1, [r2, #2052]
+	b	.L2644
+.L2650:
 	.align	2
-.L2687:
+.L2649:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2164
+	.word	.LANCHOR1+1978
 	.word	.LC0
 	.word	.LANCHOR2
 	.fnend
 	.size	flash_complete_plane_page_read, .-flash_complete_plane_page_read
 	.align	2
 	.global	flash_complete_page_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_complete_page_read, %function
 flash_complete_page_read:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r6, #1
-	ldr	r5, .L2724
+	mov	r3, #1
+	ldr	r4, .L2683
+	mov	fp, r2
 	.pad #20
 	sub	sp, sp, #20
-	mov	r9, r0
 	mov	r10, r1
-	mov	fp, r2
-	ldrb	r7, [r5, #1189]	@ zero_extendqisi2
-	rsb	r3, r7, #24
-	mov	r7, r6, asl r7
-	sub	r7, r7, #1
-	mov	r4, r6, asl r3
-	and	r7, r7, r0, lsr r3
-	ldrb	r3, [r5, #1101]	@ zero_extendqisi2
-	sub	r4, r4, #1
+	str	r0, [sp, #12]
 	ubfx	r6, r0, #24, #2
+	ldrb	r7, [r4, #1153]	@ zero_extendqisi2
+	rsb	r2, r7, #24
+	lsl	r7, r3, r7
+	lsl	r5, r3, r2
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	sub	r7, r7, #1
+	sub	r5, r5, #1
+	and	r7, r7, r0, lsr r2
+	and	r5, r5, r0
 	uxtb	r7, r7
-	and	r4, r4, r0
 	cmp	r3, r7
-	bhi	.L2690
-	ldr	r1, .L2724+4
+	bhi	.L2652
 	mov	r2, #1232
-	ldr	r0, .L2724+8
+	ldr	r1, .L2683+4
+	ldr	r0, .L2683+8
 	bl	printk
 	bl	dump_stack
-.L2690:
-	add	r7, r5, r7
-	ldr	r3, [r5, #1040]
-	ldrb	r8, [r7, #1180]	@ zero_extendqisi2
-	str	r3, [sp, #12]
-	mov	r0, r8
+.L2652:
+	add	r7, r4, r7
+	ldrb	r9, [r7, #1144]	@ zero_extendqisi2
+	ldr	r7, [r4, #1044]
+	mov	r0, r9
 	bl	nandc_cs
 	cmp	r6, #0
-	bne	.L2691
-	mov	r0, r4
+	bne	.L2653
+	mov	r0, r5
 	bl	slc_phy_page_address_calc
-	mov	r4, r0
-.L2691:
-	ldr	r7, .L2724+12
-	ldrb	r3, [r7, #16]	@ zero_extendqisi2
+	mov	r5, r0
+.L2653:
+	ldr	r8, .L2683+12
+	ldrb	r3, [r8, #16]	@ zero_extendqisi2
 	cmp	r3, #3
-	bne	.L2692
-	ldr	r3, [sp, #12]
-	mov	r2, #5
-	add	r3, r3, r8, asl #8
-	str	r2, [r3, #2056]
-	mov	r2, #0
-	str	r2, [r3, #2052]
-	str	r2, [r3, #2052]
-	uxtb	r2, r4
-	str	r2, [r3, #2052]
-	mov	r2, r4, lsr #8
-	str	r2, [r3, #2052]
-	mov	r2, r4, lsr #16
-	str	r2, [r3, #2052]
-	mov	r2, #224
-	str	r2, [r3, #2056]
-.L2692:
-	ldr	r2, [r5, #1096]
-	ldr	r3, .L2724
-	ldrb	r1, [r2, #12]	@ zero_extendqisi2
-	adds	r2, r6, #0
-	movne	r2, #1
-	cmp	r1, #3
-	movne	r2, #0
-	cmp	r2, #0
-	beq	.L2693
-	ldrb	r2, [r3, #1196]	@ zero_extendqisi2
-	cmp	r2, #0
-	bne	.L2693
-	ldrb	r3, [r3, #1197]	@ zero_extendqisi2
+	bne	.L2654
+	add	r7, r7, r9, lsl #8
+	mov	r3, #5
+	str	r3, [r7, #2056]
+	mov	r3, #0
+	str	r3, [r7, #2052]
+	str	r3, [r7, #2052]
+	uxtb	r3, r5
+	str	r3, [r7, #2052]
+	lsr	r3, r5, #8
+	str	r3, [r7, #2052]
+	lsr	r3, r5, #16
+	str	r3, [r7, #2052]
+	mov	r3, #224
+	str	r3, [r7, #2056]
+.L2654:
+	ldr	r3, [r4, #1104]
+	cmp	r6, #0
+	ldrb	r3, [r3, #12]	@ zero_extendqisi2
+	sub	r3, r3, #3
+	clz	r3, r3
+	lsr	r3, r3, #5
+	moveq	r3, #0
 	cmp	r3, #0
+	beq	.L2655
+	ldrb	r3, [r4, #1158]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L2655
+	ldrb	r3, [r4, #1159]	@ zero_extendqisi2
+	cmp	r3, #0
+	addeq	r3, r5, r5, lsl #1
 	subeq	r0, r6, #1
-	addeq	r3, r4, r4, asl #1
 	addeq	r0, r0, r3
-	beq	.L2723
-.L2693:
-	mov	r0, r4
-.L2723:
+	beq	.L2682
+.L2655:
+	mov	r0, r5
+.L2682:
 	bl	nandc_set_seed
-	ldrb	r2, [r7, #13]	@ zero_extendqisi2
-	mov	r0, r8
-	mov	r1, #0
+	ldrb	r2, [r8, #13]	@ zero_extendqisi2
 	mov	r3, r10
 	str	fp, [sp]
+	mov	r1, #0
+	mov	r0, r9
 	bl	nandc_xfer
 	cmn	r0, #1
-	bne	.L2695
-	ldrb	ip, [r5, #1168]	@ zero_extendqisi2
-	cmp	ip, #0
-	beq	.L2696
-	ldr	r2, .L2724
+	bne	.L2657
+	ldrb	r7, [r4, #1196]	@ zero_extendqisi2
+	cmp	r7, #0
+	beq	.L2658
 	mov	r3, #0
-	mov	r0, r8
-	orr	r1, r4, r6, asl #24
-	str	ip, [sp, #12]
-	strb	r3, [r2, #1168]
 	mov	r2, r10
-	ldr	r3, .L2724+12
-	ldrb	r3, [r3, #13]	@ zero_extendqisi2
+	strb	r3, [r4, #1196]
+	orr	r1, r5, r6, lsl #24
+	ldrb	r3, [r8, #13]	@ zero_extendqisi2
+	mov	r0, r9
 	str	r3, [sp]
 	mov	r3, fp
 	bl	flash_read_page
-	ldr	r3, .L2724
 	cmp	r6, #0
-	ldr	ip, [sp, #12]
-	strb	ip, [r3, #1168]
-	bne	.L2697
-.L2704:
-	ldrb	r3, [r5]	@ zero_extendqisi2
+	strb	r7, [r4, #1196]
+	bne	.L2659
+.L2664:
+	ldrb	r3, [r4]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L2697
-	ldr	r3, .L2724
-	ldrb	r3, [r3, #1172]	@ zero_extendqisi2
-	add	r3, r3, r3, asl #1
+	beq	.L2659
+	ldrb	r3, [r4, #1193]	@ zero_extendqisi2
+	add	r3, r3, r3, lsl #1
 	cmp	r0, r3, asr #2
-	blt	.L2697
-	ldrb	r3, [r7, #23]	@ zero_extendqisi2
+	blt	.L2659
+	ldrb	r3, [r8, #23]	@ zero_extendqisi2
 	sub	r3, r3, #4
 	cmp	r3, #4
 	movls	r0, #256
-	b	.L2711
-.L2697:
+.L2651:
+	add	sp, sp, #20
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2659:
 	cmn	r0, #1
-	bne	.L2711
-.L2705:
-	ldr	r3, .L2724+16
-	ldr	ip, [r3, #-108]
-	cmp	ip, #0
-	bne	.L2700
-.L2703:
-	ldrb	r3, [r5, #1168]	@ zero_extendqisi2
+	bne	.L2651
+.L2665:
+	ldr	r3, .L2683+16
+	ldr	r7, [r3, #-100]
+	cmp	r7, #0
+	bne	.L2661
+.L2663:
+	ldrb	r3, [r4, #1196]	@ zero_extendqisi2
 	mov	r1, #0
-	ldr	r0, .L2724+20
-	mov	r2, r9
+	ldr	r2, [sp, #12]
+	ldr	r0, .L2683+20
 	str	r3, [sp]
 	mvn	r3, #0
 	bl	printk
-	ldrb	r3, [r5, #1135]	@ zero_extendqisi2
+	ldrb	r3, [r4, #1143]	@ zero_extendqisi2
 	cmp	r3, #0
 	mvneq	r0, #0
-	beq	.L2711
-	ldrb	r3, [r7, #13]	@ zero_extendqisi2
-	mov	r0, r8
-	orr	r1, r4, r6, asl #24
+	beq	.L2651
+	ldrb	r3, [r8, #13]	@ zero_extendqisi2
 	mov	r2, r10
+	orr	r1, r5, r6, lsl #24
+	mov	r0, r9
 	str	r3, [sp]
 	mov	r3, fp
 	bl	flash_ddr_tuning_read
-	b	.L2711
-.L2700:
-	ldrb	r3, [r7, #13]	@ zero_extendqisi2
-	mov	r0, r8
-	orr	r1, r4, r6, asl #24
+	b	.L2651
+.L2661:
+	ldrb	r3, [r8, #13]	@ zero_extendqisi2
 	mov	r2, r10
+	orr	r1, r5, r6, lsl #24
+	mov	r0, r9
 	str	r3, [sp]
 	mov	r3, fp
-	blx	ip
+	blx	r7
 	cmn	r0, #1
-	bne	.L2711
-	b	.L2703
-.L2695:
+	bne	.L2651
+	b	.L2663
+.L2658:
 	cmp	r6, #0
-	beq	.L2704
-	b	.L2711
-.L2696:
+	beq	.L2664
+	b	.L2665
+.L2657:
 	cmp	r6, #0
-	beq	.L2704
-	b	.L2705
-.L2711:
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2725:
+	bne	.L2651
+	b	.L2664
+.L2684:
 	.align	2
-.L2724:
+.L2683:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2196
+	.word	.LANCHOR1+2009
 	.word	.LC0
 	.word	.LANCHOR2
 	.word	.LANCHOR3
-	.word	.LC173
+	.word	.LC172
 	.fnend
 	.size	flash_complete_page_read, .-flash_complete_page_read
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	queue_wait_first_req_completed, %function
 queue_wait_first_req_completed:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #20
 	sub	sp, sp, #20
-	ldr	r4, .L2816
-	ldrb	r5, [r4, #2775]	@ zero_extendqisi2
+	ldr	r4, .L2779
+	ldrb	r5, [r4, #2770]	@ zero_extendqisi2
 	cmp	r5, #255
-	beq	.L2760
-	mov	r7, #48
-	mla	r2, r7, r5, r4
-	ldrb	r3, [r2, #1278]	@ zero_extendqisi2
-	ldr	r6, [r2, #1260]
+	bne	.L2686
+.L2719:
+	mov	r7, #0
+	b	.L2685
+.L2686:
+	mov	r8, #48
+	mla	r2, r8, r5, r4
+	ldrb	r3, [r2, #1274]	@ zero_extendqisi2
+	ldr	r7, [r2, #1256]
 	sub	r2, r3, #1
 	cmp	r2, #10
 	ldrls	pc, [pc, r2, asl #2]
-	b	.L2760
-.L2730:
-	.word	.L2729
-	.word	.L2731
-	.word	.L2732
-	.word	.L2732
-	.word	.L2732
-	.word	.L2732
-	.word	.L2733
-	.word	.L2734
-	.word	.L2735
-	.word	.L2732
-	.word	.L2735
-.L2729:
-	mla	r7, r7, r5, r4
+	b	.L2719
+.L2689:
+	.word	.L2688
+	.word	.L2690
+	.word	.L2691
+	.word	.L2691
+	.word	.L2691
+	.word	.L2691
+	.word	.L2692
+	.word	.L2693
+	.word	.L2694
+	.word	.L2691
+	.word	.L2694
+.L2688:
+	mla	r8, r8, r5, r4
 	bl	nandc_wait_flash_ready
-	ldr	r3, [r7, #1244]
-	ldr	r1, [r7, #1240]
+	ldr	r3, [r8, #1240]
+	ldr	r1, [r8, #1236]
 	cmp	r3, #0
-	beq	.L2736
-	ldr	r2, .L2816
-	ldrb	r0, [r7, #1276]	@ zero_extendqisi2
-	ldrb	r2, [r2, #2772]	@ zero_extendqisi2
+	beq	.L2695
+	ldr	r2, .L2779+4
+	ldrb	r0, [r8, #1272]	@ zero_extendqisi2
+	ldrb	r2, [r2, #-2546]	@ zero_extendqisi2
 	cmp	r0, r2
 	moveq	r1, r3
-.L2736:
+.L2695:
 	mov	r3, #48
-	mov	r0, r6
-	mla	r5, r3, r5, r4
-	ldr	r2, [r5, #1248]
+	mov	r0, r7
+	mla	r4, r3, r5, r4
+	ldr	r2, [r4, #1244]
 	bl	flash_complete_page_read
+	str	r0, [r4, #1268]
+.L2778:
 	mov	r3, #13
-	strb	r3, [r5, #1278]
-	ldrb	r3, [r5, #1238]	@ zero_extendqisi2
+	strb	r3, [r4, #1274]
+	ldrb	r3, [r4, #1234]	@ zero_extendqisi2
 	orr	r3, r3, #8
-	strb	r3, [r5, #1238]
-	str	r0, [r5, #1272]
-	b	.L2760
-.L2731:
+	strb	r3, [r4, #1234]
+	b	.L2719
+.L2690:
 	bl	nandc_wait_flash_ready
-	mla	r3, r7, r5, r4
-	ldrb	r6, [r3, #1236]	@ zero_extendqisi2
-	ldr	r2, [r3, #1244]
-	ldr	r10, [r3, #1240]
-	mla	r7, r7, r6, r4
+	mla	r3, r8, r5, r4
+	ldrb	r6, [r3, #1232]	@ zero_extendqisi2
+	ldr	r2, [r3, #1240]
+	ldr	r9, [r3, #1236]
+	mla	r8, r8, r6, r4
 	cmp	r2, #0
-	ldr	r8, [r7, #1240]
-	beq	.L2737
-	ldrb	r1, [r3, #1276]	@ zero_extendqisi2
-	ldr	r3, .L2816
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
+	ldr	r10, [r8, #1236]
+	beq	.L2696
+	ldrb	r1, [r3, #1272]	@ zero_extendqisi2
+	ldr	r3, .L2779+4
+	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
+	cmp	r1, r3
+	moveq	r9, r2
+.L2696:
+	mov	r3, #48
+	mla	r3, r3, r6, r4
+	ldr	r2, [r3, #1240]
+	cmp	r2, #0
+	beq	.L2697
+	ldrb	r1, [r3, #1272]	@ zero_extendqisi2
+	ldr	r3, .L2779+4
+	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
 	cmp	r1, r3
 	moveq	r10, r2
-.L2737:
-	mov	r3, #48
-	mla	r3, r3, r6, r4
+.L2697:
+	mov	r7, #48
+	mov	r1, r9
+	mla	r3, r7, r5, r4
+	mla	r7, r7, r6, r4
 	ldr	r2, [r3, #1244]
-	cmp	r2, #0
-	beq	.L2738
-	ldrb	r1, [r3, #1276]	@ zero_extendqisi2
-	ldr	r3, .L2816
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
-	cmp	r1, r3
-	moveq	r8, r2
-.L2738:
-	mov	r9, #48
-	mov	r1, r10
-	mla	r3, r9, r5, r4
-	mla	r9, r9, r6, r4
-	add	fp, r3, #1232
-	add	fp, fp, #12
-	ldr	r2, [r3, #1248]
-	ldr	r0, [r3, #1260]
+	ldr	r0, [r3, #1256]
 	str	r3, [sp, #12]
 	bl	flash_complete_plane_page_read
-	ldr	r2, [r9, #1248]
-	mov	r1, r8
-	mov	r7, r0
-	ldr	r0, [r9, #1260]
+	ldr	r2, [r7, #1244]
+	mov	r8, r0
+	mov	r1, r10
+	ldr	r0, [r7, #1256]
 	bl	flash_complete_plane_page_read
-	cmn	r7, #1
-	mov	r9, r0
-	beq	.L2739
+	cmn	r8, #1
+	mov	fp, r0
+	beq	.L2698
 	ldr	r3, [sp, #12]
-	ldr	r3, [r3, #1256]
-	cmn	r3, #1
-	beq	.L2740
-	ldr	r2, [fp, #4]
-	ldr	r2, [r2, #4]
-	cmp	r3, r2
-	beq	.L2740
-.L2739:
-	mov	fp, #48
-	ldrb	r0, [r4, #1189]	@ zero_extendqisi2
-	mla	fp, fp, r5, r4
-	ldrb	lr, [r4, #2772]	@ zero_extendqisi2
-	rsb	r1, r0, #24
-	mvn	r3, #0
-	mvn	r3, r3, asl r0
-	add	ip, fp, #1232
-	add	ip, ip, #12
-	str	ip, [sp, #12]
-	ldr	r2, [fp, #1260]
-	str	lr, [sp]
-	and	r0, r3, r2, lsr r1
-	bic	r1, r2, r3, asl r1
-	mov	r2, r10
-	ldr	r3, [fp, #1248]
-	uxtb	r0, r0
-	bl	flash_read_page_en
-	ldr	r2, [fp, #1256]
+	ldr	r2, [r3, #1252]
 	cmn	r2, #1
-	mov	r7, r0
-	beq	.L2741
-	ldr	ip, [sp, #12]
-	ldr	r3, [ip, #4]
+	beq	.L2699
+	ldr	r3, [r3, #1244]
+	ldr	r3, [r3, #4]
+	cmp	r2, r3
+	beq	.L2699
+.L2698:
+	mov	r7, #48
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
+	mla	r7, r7, r5, r4
+	mvn	ip, #0
+	mvn	ip, ip, lsl r3
+	rsb	r1, r3, #24
+	ldr	lr, [r7, #1256]
+	mov	r2, r9
+	ldr	r3, .L2779+4
+	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
+	and	r0, ip, lr, lsr r1
+	bic	r1, lr, ip, lsl r1
+	uxtb	r0, r0
+	str	r3, [sp]
+	ldr	r3, [r7, #1244]
+	bl	flash_read_page_en
+	ldr	r2, [r7, #1252]
+	mov	r8, r0
+	cmn	r2, #1
+	beq	.L2700
+	ldr	r3, [r7, #1244]
 	ldr	r1, [r3, #4]
 	cmp	r2, r1
-	beq	.L2741
-	ldr	r0, .L2816+4
+	beq	.L2700
+	ldr	r0, .L2779+8
 	ldr	r0, [r0]
 	tst	r0, #64
-	beq	.L2741
+	beq	.L2700
 	str	r1, [sp]
-	ldr	r0, .L2816+8
-	ldr	r1, [fp, #1260]
+	ldr	r0, .L2779+12
 	ldr	r3, [r3]
+	ldr	r1, [r7, #1256]
 	bl	printk
-.L2741:
+.L2700:
 	mov	r3, #48
 	mla	r3, r3, r5, r4
-	ldr	r2, [r3, #1256]
+	ldr	r2, [r3, #1252]
 	cmn	r2, #1
-	beq	.L2740
-	ldr	r3, [r3, #1248]
+	beq	.L2699
+	ldr	r3, [r3, #1244]
 	ldr	r3, [r3, #4]
 	cmp	r2, r3
-	beq	.L2740
-	ldr	r1, .L2816+12
+	beq	.L2699
 	movw	r2, #431
-	ldr	r0, .L2816+16
+	ldr	r1, .L2779+16
+	ldr	r0, .L2779+20
 	bl	printk
 	bl	dump_stack
-.L2740:
+.L2699:
 	mov	r3, #48
 	mov	r2, #13
 	mla	r5, r3, r5, r4
-	cmn	r9, #1
-	strb	r2, [r5, #1278]
-	ldrb	r2, [r5, #1238]	@ zero_extendqisi2
-	str	r7, [r5, #1272]
+	cmn	fp, #1
+	strb	r2, [r5, #1274]
+	ldrb	r2, [r5, #1234]	@ zero_extendqisi2
+	str	r8, [r5, #1268]
 	orr	r2, r2, #8
-	strb	r2, [r5, #1238]
-	beq	.L2742
-	ldr	r2, .L2816
-	mla	r3, r3, r6, r2
-	ldr	r2, [r3, #1256]
+	strb	r2, [r5, #1234]
+	beq	.L2701
+	mla	r3, r3, r6, r4
+	ldr	r2, [r3, #1252]
 	cmn	r2, #1
-	beq	.L2744
-	ldr	r3, [r3, #1248]
+	beq	.L2703
+	ldr	r3, [r3, #1244]
 	ldr	r3, [r3, #4]
 	cmp	r2, r3
-	beq	.L2744
-.L2742:
+	beq	.L2703
+.L2701:
 	mov	r5, #48
-	ldrb	r0, [r4, #1189]	@ zero_extendqisi2
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
 	mla	r5, r5, r6, r4
-	rsb	r1, r0, #24
-	ldrb	ip, [r4, #2772]	@ zero_extendqisi2
-	mvn	r3, #0
-	mvn	r3, r3, asl r0
-	add	r9, r5, #1232
-	add	r9, r9, #12
-	ldr	r2, [r5, #1260]
-	str	ip, [sp]
-	and	r0, r3, r2, lsr r1
-	bic	r1, r2, r3, asl r1
-	mov	r2, r8
-	ldr	r3, [r5, #1248]
+	mvn	ip, #0
+	mvn	ip, ip, lsl r3
+	rsb	r1, r3, #24
+	ldr	lr, [r5, #1256]
+	mov	r2, r10
+	ldr	r3, .L2779+4
+	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
+	and	r0, ip, lr, lsr r1
+	bic	r1, lr, ip, lsl r1
 	uxtb	r0, r0
+	str	r3, [sp]
+	ldr	r3, [r5, #1244]
 	bl	flash_read_page_en
-	ldr	r2, [r5, #1256]
+	ldr	r2, [r5, #1252]
 	cmn	r2, #1
-	beq	.L2746
-	ldr	r3, [r9, #4]
+	beq	.L2705
+	ldr	r3, [r5, #1244]
 	ldr	r1, [r3, #4]
 	cmp	r2, r1
-	beq	.L2746
-	ldr	r0, .L2816+4
+	beq	.L2705
+	ldr	r0, .L2779+8
 	ldr	r0, [r0]
 	tst	r0, #64
-	beq	.L2746
+	beq	.L2705
 	str	r1, [sp]
-	ldr	r0, .L2816+8
-	ldr	r1, [r5, #1260]
+	ldr	r0, .L2779+12
 	ldr	r3, [r3]
+	ldr	r1, [r5, #1256]
 	bl	printk
-.L2746:
+.L2705:
 	mov	r3, #48
 	mla	r3, r3, r6, r4
-	ldr	r2, [r3, #1256]
+	ldr	r2, [r3, #1252]
 	cmn	r2, #1
-	beq	.L2744
-	ldr	r3, [r3, #1248]
+	beq	.L2703
+	ldr	r3, [r3, #1244]
 	ldr	r3, [r3, #4]
 	cmp	r2, r3
-	beq	.L2744
-	ldr	r1, .L2816+12
+	beq	.L2703
 	movw	r2, #450
-	ldr	r0, .L2816+16
+	ldr	r1, .L2779+16
+	ldr	r0, .L2779+20
 	bl	printk
 	bl	dump_stack
-.L2744:
+.L2703:
 	mov	r3, #48
 	mla	r4, r3, r6, r4
-	mov	r3, #13
-	strb	r3, [r4, #1278]
-	ldrb	r3, [r4, #1238]	@ zero_extendqisi2
-	str	r7, [r4, #1272]
-	orr	r3, r3, #8
-	strb	r3, [r4, #1238]
-	b	.L2760
-.L2732:
+	str	r8, [r4, #1268]
+	b	.L2778
+.L2691:
 	bl	nandc_iqr_wait_flash_ready
-	mov	r0, r6
+	mov	r0, r7
 	mov	r1, #64
 	bl	flash_wait_device_ready
 	tst	r0, #64
 	mov	r7, r0
-	beq	.L2760
-	ands	r6, r0, #5
+	beq	.L2719
+	ands	r2, r0, #5
 	mov	r3, #48
-	beq	.L2748
-	mla	r5, r3, r5, r4
-	ldr	r0, .L2816+20
+	beq	.L2707
+	mla	r4, r3, r5, r4
 	mov	r3, #12
-	mov	r2, r7
-	mov	r6, r7
-	strb	r3, [r5, #1278]
-	ldrb	r1, [r5, #1237]	@ zero_extendqisi2
+	mov	r2, r0
+	ldr	r0, .L2779+24
+	strb	r3, [r4, #1274]
+	ldrb	r1, [r4, #1233]	@ zero_extendqisi2
 	str	r3, [sp]
-	ldr	r3, [r5, #1260]
+	ldr	r3, [r4, #1256]
 	bl	printk
+.L2777:
 	mvn	r3, #0
-	str	r3, [r5, #1272]
-	b	.L2728
-.L2748:
+	str	r3, [r4, #1268]
+	b	.L2685
+.L2707:
 	mul	r3, r3, r5
-	mov	r2, #13
-	ldr	ip, .L2816
-	add	r7, r4, r3
-	strb	r2, [r7, #1278]
-	ldr	r2, [r4, #2804]
-	str	r6, [r7, #1272]
-	ldr	r1, [r2, #156]
-	ldr	r2, .L2816+24
-	cmp	r1, r2
-	bne	.L2760
-	ldr	r2, .L2816+28
-	add	r3, r3, r2
-	ldrh	r3, [r3, #2]
-	cmp	r3, #0
-	bne	.L2760
-	ldrb	r0, [ip, #1189]	@ zero_extendqisi2
-	mvn	r3, #0
-	ldr	r2, [r7, #1260]
-	rsb	r1, r0, #24
-	ldr	r8, .L2816+32
-	ldrb	ip, [ip, #2772]	@ zero_extendqisi2
-	mvn	r3, r3, asl r0
-	and	r0, r3, r2, lsr r1
-	bic	r1, r2, r3, asl r1
-	str	ip, [sp]
-	uxtb	r0, r0
-	ldr	r3, [r8, #-100]
-	ldr	r2, [r8, #-104]
-	bl	flash_read_page_en
-	cmn	r0, #1
-	mov	r3, r0
-	beq	.L2749
-	ldr	r1, [r7, #1248]
-	ldr	r2, [r8, #-100]
-	ldr	r1, [r1]
-	ldr	r2, [r2]
-	cmp	r1, r2
-	beq	.L2760
-.L2749:
-	mov	r2, #48
-	ldr	r0, .L2816+36
-	mla	r5, r2, r5, r4
-	ldrb	r2, [r4, #1168]	@ zero_extendqisi2
-	ldrb	r1, [r5, #1237]	@ zero_extendqisi2
-	str	r2, [sp]
-	ldr	r2, [r5, #1260]
-	bl	printk
-	mvn	r3, #0
-	str	r3, [r5, #1272]
-	b	.L2728
-.L2735:
-	ldr	r2, .L2816+40
-	cmp	r3, #11
-	mov	r1, #48
-	ldrb	r3, [r4, #1189]	@ zero_extendqisi2
-	mvn	r7, #0
-	movne	r9, #3
-	mla	ip, r1, r5, r2
-	rsb	lr, r3, #24
-	mvn	r3, r7, asl r3
-	and	r0, r3, r6, lsr lr
-	moveq	r9, #10
-	mov	r10, r3
-	uxth	r0, r0
-.L2751:
-	ldrb	r8, [ip]	@ zero_extendqisi2
-	cmp	r8, #255
-	beq	.L2815
-	mul	r3, r1, r8
-	ldr	r7, .L2816
-	add	ip, r2, r3
-	add	r3, r4, r3
-	ldrb	fp, [r3, #1278]	@ zero_extendqisi2
-	cmp	fp, r9
-	bne	.L2751
-	ldr	r3, [r3, #1260]
-	and	r3, r10, r3, lsr lr
-	cmp	r0, r3
-	bne	.L2751
-	bl	nandc_iqr_wait_flash_ready
-	mov	r0, r6
-	mov	r1, #64
-	bl	flash_wait_device_ready
-	tst	r0, #64
-	mov	r6, r0
-	beq	.L2814
-	ands	r2, r0, #15
-	mov	r3, #48
-	mul	r3, r3, r5
-	beq	.L2755
-	add	r7, r7, r3
-	mov	r9, #12
-	ldr	r0, .L2816+44
-	mov	r2, r6
-	ldrb	r1, [r7, #1237]	@ zero_extendqisi2
-	str	r9, [sp]
-	ldr	r3, [r7, #1260]
-	bl	printk
-	mvn	r3, #0
-	strb	r9, [r7, #1278]
-	str	r3, [r7, #1272]
-	b	.L2754
-.L2755:
-	add	r6, r7, r3
 	mov	r1, #13
-	str	r2, [r6, #1272]
-	ldr	r2, [r7, #2804]
-	strb	r1, [r6, #1278]
+	add	r7, r4, r3
+	str	r2, [r7, #1268]
+	ldr	r2, [r4, #2800]
+	strb	r1, [r7, #1274]
 	ldr	r1, [r2, #156]
-	ldr	r2, .L2816+24
+	ldr	r2, .L2779+28
 	cmp	r1, r2
-	bne	.L2814
-	ldr	r2, .L2816+40
+	bne	.L2719
+	ldr	r2, .L2779+32
 	add	r3, r2, r3
 	ldrh	r3, [r3, #34]
 	cmp	r3, #0
-	bne	.L2814
-	ldr	r2, [r6, #1260]
-	mvn	r3, #0
-	ldrb	r0, [r7, #1189]	@ zero_extendqisi2
-	ldr	r9, .L2816+32
-	rsb	r1, r0, #24
-	ldrb	ip, [r7, #2772]	@ zero_extendqisi2
-	mvn	r3, r3, asl r0
-	and	r0, r3, r2, lsr r1
-	bic	r1, r2, r3, asl r1
-	str	ip, [sp]
+	bne	.L2719
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
+	mvn	ip, #0
+	ldr	lr, [r7, #1256]
+	ldr	r6, .L2779+4
+	rsb	r1, r3, #24
+	mvn	ip, ip, lsl r3
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	and	r0, ip, lr, lsr r1
+	bic	r1, lr, ip, lsl r1
+	str	r3, [sp]
 	uxtb	r0, r0
-	ldr	r3, [r9, #-100]
-	ldr	r2, [r9, #-104]
+	ldr	r3, [r6, #-96]
+	ldr	r2, [r6, #-92]
 	bl	flash_read_page_en
 	cmn	r0, #1
 	mov	r3, r0
-	beq	.L2757
-	ldr	r1, [r6, #1248]
-	ldr	r2, [r9, #-100]
+	beq	.L2708
+	ldr	r1, [r7, #1244]
+	ldr	r2, [r6, #-96]
 	ldr	r1, [r1]
 	ldr	r2, [r2]
 	cmp	r1, r2
-	beq	.L2814
-.L2757:
-	mov	r6, #48
-	ldrb	r2, [r4, #1168]	@ zero_extendqisi2
-	mla	r6, r6, r5, r4
-	ldr	r0, .L2816+48
-	ldrb	r1, [r6, #1237]	@ zero_extendqisi2
+	beq	.L2719
+.L2708:
+	mov	r2, #48
+	ldr	r0, .L2779+36
+	mla	r5, r2, r5, r4
+	ldrb	r2, [r4, #1196]	@ zero_extendqisi2
+	ldrb	r1, [r5, #1233]	@ zero_extendqisi2
 	str	r2, [sp]
-	ldr	r2, [r6, #1260]
+	ldr	r2, [r5, #1256]
 	bl	printk
 	mvn	r3, #0
-	str	r3, [r6, #1272]
-.L2814:
-	mov	r6, #0
-.L2754:
-	mov	r3, #48
-	mla	r5, r3, r5, r4
-	mla	r4, r3, r8, r4
-	ldrb	r2, [r5, #1278]	@ zero_extendqisi2
-	ldr	r3, [r5, #1272]
-	strb	r2, [r4, #1278]
-	str	r3, [r4, #1272]
-	b	.L2728
-.L2815:
-	mvn	r6, #0
-	b	.L2728
-.L2733:
-	mov	r0, r6
-	mov	r1, #32
-	bl	flash_wait_device_ready
-	tst	r0, #32
-	beq	.L2760
-	ands	r6, r0, #15
-	mov	r3, #48
-	mlaeq	r5, r3, r5, r4
-	movne	r2, #12
-	mlane	r3, r3, r5, r4
-	moveq	r3, #13
-	movne	r6, r0
-	streqb	r3, [r5, #1278]
-	streq	r6, [r5, #1272]
-	strneb	r2, [r3, #1278]
-	mvnne	r2, #0
-	strne	r2, [r3, #1272]
-	b	.L2728
-.L2734:
-	mov	r0, r6
+	str	r3, [r5, #1268]
+	b	.L2719
+.L2694:
+	ldrb	r1, [r4, #1153]	@ zero_extendqisi2
+	mvn	r2, #0
+	cmp	r3, #11
+	ldr	r9, .L2779+32
+	moveq	r3, #10
+	movne	r3, #3
+	rsb	r0, r1, #24
+	mov	lr, r3
+	mvn	r2, r2, lsl r1
+	add	r3, r5, r5, lsl #1
+	and	r1, r2, r7, lsr r0
+	add	r3, r9, r3, lsl #4
+	uxth	r1, r1
+	mov	r6, #48
+	movw	r10, #1256
+.L2710:
+	ldrb	r8, [r3]	@ zero_extendqisi2
+	cmp	r8, #255
+	mvneq	r7, #0
+	beq	.L2685
+.L2717:
+	mla	ip, r6, r8, r4
+	movw	fp, #1274
+	add	r3, r8, r8, lsl #1
+	ldrb	fp, [ip, fp]	@ zero_extendqisi2
+	add	r3, r9, r3, lsl #4
+	cmp	fp, lr
+	bne	.L2710
+	ldr	ip, [ip, r10]
+	and	ip, r2, ip, lsr r0
+	cmp	r1, ip
+	bne	.L2710
+	bl	nandc_iqr_wait_flash_ready
+	mov	r0, r7
 	mov	r1, #64
 	bl	flash_wait_device_ready
 	tst	r0, #64
-	movne	r3, #48
-	mlane	r5, r3, r5, r4
-	movne	r3, #7
-	strne	r0, [r5, #1272]
-	strneb	r3, [r5, #1278]
-.L2760:
-	mov	r6, #0
-.L2728:
-	mov	r0, r6
+	mov	r7, r0
+	bne	.L2712
+.L2776:
+	mov	r7, #0
+	b	.L2713
+.L2712:
+	ands	r3, r0, #15
+	mul	r6, r6, r5
+	beq	.L2714
+	add	r6, r4, r6
+	mov	r9, #12
+	ldrb	r1, [r6, #1233]	@ zero_extendqisi2
+	mov	r2, r0
+	str	r9, [sp]
+	ldr	r0, .L2779+40
+	ldr	r3, [r6, #1256]
+	bl	printk
+	mvn	r3, #0
+	strb	r9, [r6, #1274]
+	str	r3, [r6, #1268]
+.L2713:
+	mov	r3, #48
+	mla	r5, r3, r5, r4
+	mla	r8, r3, r8, r4
+	ldrb	r2, [r5, #1274]	@ zero_extendqisi2
+	ldr	r3, [r5, #1268]
+	strb	r2, [r8, #1274]
+	str	r3, [r8, #1268]
+.L2685:
+	mov	r0, r7
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2817:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2714:
+	add	r7, r4, r6
+	mov	r2, #13
+	str	r3, [r7, #1268]
+	ldr	r3, [r4, #2800]
+	strb	r2, [r7, #1274]
+	ldr	r2, [r3, #156]
+	ldr	r3, .L2779+28
+	cmp	r2, r3
+	bne	.L2776
+	add	r6, r9, r6
+	ldrh	r3, [r6, #34]
+	cmp	r3, #0
+	bne	.L2776
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
+	mvn	ip, #0
+	ldr	lr, [r7, #1256]
+	ldr	r6, .L2779+4
+	rsb	r1, r3, #24
+	mvn	ip, ip, lsl r3
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	and	r0, ip, lr, lsr r1
+	bic	r1, lr, ip, lsl r1
+	str	r3, [sp]
+	uxtb	r0, r0
+	ldr	r3, [r6, #-96]
+	ldr	r2, [r6, #-92]
+	bl	flash_read_page_en
+	cmn	r0, #1
+	mov	r3, r0
+	beq	.L2716
+	ldr	r1, [r7, #1244]
+	ldr	r2, [r6, #-96]
+	ldr	r1, [r1]
+	ldr	r2, [r2]
+	cmp	r1, r2
+	beq	.L2776
+.L2716:
+	mov	r6, #48
+	ldrb	r2, [r4, #1196]	@ zero_extendqisi2
+	mla	r6, r6, r5, r4
+	ldr	r0, .L2779+44
+	ldrb	r1, [r6, #1233]	@ zero_extendqisi2
+	str	r2, [sp]
+	ldr	r2, [r6, #1256]
+	bl	printk
+	mvn	r3, #0
+	str	r3, [r6, #1268]
+	b	.L2776
+.L2692:
+	mov	r0, r7
+	mov	r1, #32
+	bl	flash_wait_device_ready
+	tst	r0, #32
+	mov	r7, r0
+	beq	.L2719
+	ands	r2, r0, #15
+	mov	r3, #48
+	mla	r4, r3, r5, r4
+	movne	r3, #12
+	strbne	r3, [r4, #1274]
+	bne	.L2777
+.L2718:
+	mov	r3, #13
+	str	r2, [r4, #1268]
+	strb	r3, [r4, #1274]
+	b	.L2719
+.L2693:
+	mov	r1, #64
+	mov	r0, r7
+	bl	flash_wait_device_ready
+	tst	r0, #64
+	movne	r3, #48
+	mlane	r4, r3, r5, r4
+	movne	r3, #7
+	strne	r0, [r4, #1268]
+	strbne	r3, [r4, #1274]
+	b	.L2719
+.L2780:
 	.align	2
-.L2816:
+.L2779:
 	.word	.LANCHOR0
-	.word	.LANCHOR2
-	.word	.LC174
-	.word	.LANCHOR1+2224
-	.word	.LC0
-	.word	.LC175
-	.word	1145785929
-	.word	.LANCHOR0+1268
 	.word	.LANCHOR3
+	.word	.LANCHOR2
+	.word	.LC173
+	.word	.LANCHOR1+2034
+	.word	.LC0
+	.word	.LC174
+	.word	1145785929
+	.word	.LANCHOR0+1232
+	.word	.LC175
 	.word	.LC176
-	.word	.LANCHOR0+1236
 	.word	.LC177
-	.word	.LC178
 	.fnend
 	.size	queue_wait_first_req_completed, .-queue_wait_first_req_completed
 	.align	2
 	.global	sblk_prog_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_prog_page, %function
 sblk_prog_page:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
 	mov	r4, r0
 	ldrh	r3, [r0, #34]
 	mov	r5, r1
 	cmp	r3, #0
-	beq	.L2819
-	ldr	r3, .L2850
+	beq	.L2782
+	ldr	r3, .L2812
 	ldr	r3, [r3]
 	tst	r3, #256
-	beq	.L2819
-	ldr	r0, .L2850+4
-	mov	r2, r5
-	ldr	r1, [r4, #24]
+	beq	.L2782
+	mov	r2, r1
+	ldr	r1, [r0, #24]
+	ldr	r0, .L2812+4
 	bl	printk
-.L2819:
-	ldr	r8, .L2850+8
+.L2782:
+	ldr	r8, .L2812+8
 	mov	r6, #0
-	mov	r9, r8
-.L2820:
+	ldr	fp, .L2812+12
+.L2783:
 	cmp	r5, #0
-	beq	.L2847
-	ldrb	r3, [r4]	@ zero_extendqisi2
-	ldr	r7, [r4, #24]
-	str	r3, [sp, #4]
-.L2821:
-	mov	r0, r7
-	mov	r1, #1
-	bl	queue_lun_state
-	cmp	r0, #0
-	beq	.L2849
-	bl	queue_wait_first_req_completed
-	bl	queue_remove_completed_req
-	b	.L2821
-.L2849:
-	cmp	r5, #1
-	beq	.L2823
-	ldrb	r3, [r8, #1233]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L2823
-	ldrb	r3, [r8, #1197]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L2824
-.L2823:
-	mov	r0, r4
-	bl	queue_prog_cmd
-	b	.L2825
-.L2824:
-	ldrb	r3, [r8, #1189]	@ zero_extendqisi2
-	mvn	fp, #0
-	rsb	ip, r3, #24
-	mov	ip, r7, lsr ip
-	bic	fp, ip, fp, asl r3
-	ldrb	r3, [r4]	@ zero_extendqisi2
-	cmp	r3, #255
-	uxth	fp, fp
-	bne	.L2826
-	ldr	r1, .L2850+12
-	movw	r2, #697
-	ldr	r0, .L2850+16
-	bl	printk
-	bl	dump_stack
-.L2826:
-	ldrb	r3, [r4]	@ zero_extendqisi2
-	mov	r2, #48
-	mov	r10, #1
-	mla	r3, r2, r3, r9
-	ldrb	r2, [r9, #1189]	@ zero_extendqisi2
-	ldr	ip, [r3, #1260]
-	rsb	r3, r2, #24
-	mov	r2, r10, asl r2
-	sub	r2, r2, #1
-	and	r2, r2, ip, lsr r3
-	uxth	r2, r2
-	cmp	fp, r2
-	bne	.L2827
-	ldr	r2, .L2850+20
-	ldrh	fp, [r2]
-	ldr	r2, .L2850+24
-	rsb	r3, fp, r3
-	mov	r0, r10, asl fp
-	mov	r3, r10, asl r3
-	sub	r0, r0, #1
-	ldrb	lr, [r2, #-3130]	@ zero_extendqisi2
-	sub	r3, r3, #1
-	uxth	r0, r0
-	sub	lr, lr, #1
-	uxth	r3, r3
-	uxth	r1, lr
-	and	r2, r1, r7, lsr fp
-	and	r1, r1, ip, lsr fp
-	and	r2, r2, r3
-	and	r3, r3, r1
-	subs	fp, r2, r3
-	and	r7, r7, r0
-	and	ip, ip, r0
-	movne	fp, #1
-	cmp	r7, ip
-	movne	fp, #0
-	cmp	fp, #0
-	beq	.L2828
-	cmp	r6, lr
-	beq	.L2827
-	mov	r0, #17
-	ldr	r1, [r4, #24]
-	ldr	r2, [r4, #4]
-	add	r6, r6, r10
-	ldr	r3, [r4, #12]
-	bl	flash_start_page_prog
-	mov	r3, #9
-	strb	r10, [r4, #43]
-	mov	r1, r4
-	strb	r3, [r4, #42]
-	mvn	r3, #0
-	ldr	r0, .L2850+28
-	strb	r3, [r4]
-	bl	buf_add_tail
-	b	.L2825
-.L2828:
-	mov	r0, r4
-	mov	r6, fp
-	bl	queue_prog_cmd
-	b	.L2825
-.L2827:
-	mov	r0, r4
-	mov	r6, #0
-	bl	queue_prog_cmd
-.L2825:
-	subs	r5, r5, #1
-	ldrne	r3, .L2850+32
-	movne	r4, #48
-	ldrne	r2, [sp, #4]
-	mlane	r4, r4, r2, r3
-	bne	.L2820
-.L2847:
+	bne	.L2794
+.L2810:
 	mov	r0, #0
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2851:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2794:
+	ldrb	r9, [r4]	@ zero_extendqisi2
+	ldr	r7, [r4, #24]
+.L2784:
+	mov	r1, #1
+	mov	r0, r7
+	bl	queue_lun_state
+	cmp	r0, #0
+	bne	.L2785
+	cmp	r5, #1
+	beq	.L2786
+	ldrb	r3, [r8, #1194]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L2786
+	ldrb	r3, [r8, #1159]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L2787
+.L2786:
+	mov	r0, r4
+	bl	queue_prog_cmd
+.L2788:
+	subs	r5, r5, #1
+	beq	.L2810
+	ldr	r4, .L2812+16
+	add	r9, r9, r9, lsl #1
+	add	r4, r4, r9, lsl #4
+	b	.L2783
+.L2785:
+	bl	queue_wait_first_req_completed
+	bl	queue_remove_completed_req
+	b	.L2784
+.L2787:
+	ldrb	r2, [r8, #1153]	@ zero_extendqisi2
+	mvn	r3, #0
+	rsb	r1, r2, #24
+	mvn	r3, r3, lsl r2
+	ldrb	r2, [r4]	@ zero_extendqisi2
+	and	r3, r3, r7, lsr r1
+	cmp	r2, #255
+	uxth	r3, r3
+	bne	.L2789
+	movw	r2, #697
+	ldr	r1, .L2812+20
+	ldr	r0, .L2812+24
+	str	r3, [sp, #4]
+	bl	printk
+	bl	dump_stack
+	ldr	r3, [sp, #4]
+.L2789:
+	ldrb	r2, [r4]	@ zero_extendqisi2
+	mov	r1, #48
+	mov	r10, #1
+	mla	r2, r1, r2, r8
+	ldrb	r1, [r8, #1153]	@ zero_extendqisi2
+	ldr	r0, [r2, #1256]
+	rsb	r2, r1, #24
+	lsl	r1, r10, r1
+	sub	r1, r1, #1
+	and	r1, r1, r0, lsr r2
+	uxth	r1, r1
+	cmp	r3, r1
+	bne	.L2790
+	ldr	r3, .L2812+28
+	ldrb	lr, [fp, #-3136]	@ zero_extendqisi2
+	ldrh	ip, [r3, #-2]
+	sub	lr, lr, #1
+	sub	r3, r2, ip
+	lsl	r3, r10, r3
+	lsl	r2, r10, ip
+	sub	r3, r3, #1
+	sub	r2, r2, #1
+	and	r3, r3, lr
+	uxth	r2, r2
+	uxth	r3, r3
+	and	r1, r3, r7, lsr ip
+	and	r3, r3, r0, lsr ip
+	and	ip, r2, r7
+	subs	r7, r1, r3
+	and	r2, r2, r0
+	movne	r7, #1
+	cmp	ip, r2
+	movne	r7, #0
+	cmp	r7, #0
+	beq	.L2790
+	cmp	r6, lr
+	beq	.L2790
+	ldr	r3, [r4, #12]
+	mov	r0, #17
+	ldr	r2, [r4, #4]
+	add	r6, r6, r10
+	ldr	r1, [r4, #24]
+	bl	flash_start_page_prog
+	mov	r3, #9
+	strb	r10, [r4, #43]
+	strb	r3, [r4, #42]
+	mvn	r3, #0
+	strb	r3, [r4]
+	mov	r1, r4
+	ldr	r0, .L2812+32
+	bl	buf_add_tail
+	b	.L2788
+.L2790:
+	mov	r0, r4
+	mov	r6, #0
+	bl	queue_prog_cmd
+	b	.L2788
+.L2813:
 	.align	2
-.L2850:
+.L2812:
 	.word	.LANCHOR2
-	.word	.LC179
+	.word	.LC178
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2256
-	.word	.LC0
-	.word	.LANCHOR3-3132
 	.word	.LANCHOR3
-	.word	.LANCHOR0+2775
-	.word	.LANCHOR0+1236
+	.word	.LANCHOR0+1232
+	.word	.LANCHOR1+2065
+	.word	.LC0
+	.word	.LANCHOR3-3136
+	.word	.LANCHOR0+2770
 	.fnend
 	.size	sblk_prog_page, .-sblk_prog_page
 	.align	2
 	.global	sblk_wait_write_queue_completed
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_wait_write_queue_completed, %function
 sblk_wait_write_queue_completed:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, lr}
+	push	{r4, lr}
 	.save {r4, lr}
-	ldr	r4, .L2857
-.L2853:
-	ldrb	r3, [r4, #2775]	@ zero_extendqisi2
+	ldr	r4, .L2818
+.L2815:
+	ldrb	r3, [r4, #2770]	@ zero_extendqisi2
 	cmp	r3, #255
-	beq	.L2856
+	bne	.L2816
+	pop	{r4, pc}
+.L2816:
 	bl	queue_wait_first_req_completed
 	bl	queue_remove_completed_req
-	b	.L2853
-.L2856:
-	ldmfd	sp!, {r4, pc}
-.L2858:
+	b	.L2815
+.L2819:
 	.align	2
-.L2857:
+.L2818:
 	.word	.LANCHOR0
 	.fnend
 	.size	sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed
 	.align	2
 	.global	ftl_flush
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_flush, %function
 ftl_flush:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
-	ldr	r3, .L2865
-	ldr	r5, .L2865+4
-	ldrb	r1, [r3, #2801]	@ zero_extendqisi2
-	mov	r4, r3
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	ldr	r4, .L2826
+	ldr	r5, .L2826+4
+	ldrb	r1, [r4, #2797]	@ zero_extendqisi2
 	cmp	r1, #0
-	beq	.L2860
-	ldrb	r2, [r5, #-96]	@ zero_extendqisi2
-	mov	r0, #48
-	ldr	r3, .L2865+8
-	mla	r0, r0, r2, r3
+	beq	.L2821
+	ldrb	r3, [r5, #-88]	@ zero_extendqisi2
+	add	r0, r4, #1232
+	add	r3, r3, r3, lsl #1
+	add	r0, r0, r3, lsl #4
 	bl	sblk_prog_page
-.L2860:
+.L2821:
 	mvn	r3, #0
-	strb	r3, [r5, #-96]
+	strb	r3, [r5, #-88]
 	mov	r3, #0
-	strb	r3, [r4, #2801]
+	strb	r3, [r4, #2797]
 	bl	sblk_wait_write_queue_completed
 	bl	ftl_write_completed
 	movw	r0, #65535
-	ldmfd	sp!, {r3, r4, r5, lr}
+	pop	{r4, r5, r6, lr}
 	b	ftl_vpn_decrement
-.L2866:
+.L2827:
 	.align	2
-.L2865:
+.L2826:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR0+1236
 	.fnend
 	.size	ftl_flush, .-ftl_flush
 	.align	2
 	.global	zftl_cache_flush
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_cache_flush, %function
 zftl_cache_flush:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, lr}
-	.save {r3, lr}
-	ldr	r3, .L2872
-	ldrb	r3, [r3, #2801]	@ zero_extendqisi2
+	ldr	r3, .L2836
+	ldrb	r3, [r3, #2797]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldmeqfd	sp!, {r3, pc}
+	bxeq	lr
+	push	{r4, lr}
+	.save {r4, lr}
 	bl	timer_get_time
-	ldr	r3, .L2872+4
-	ldr	r3, [r3, #-92]
+	ldr	r3, .L2836+4
+	ldr	r3, [r3, #-84]
 	add	r3, r3, #100
 	cmp	r0, r3
-	ldmlsfd	sp!, {r3, pc}
-	ldmfd	sp!, {r3, lr}
+	popls	{r4, pc}
+	pop	{r4, lr}
 	b	ftl_flush
-.L2873:
+.L2837:
 	.align	2
-.L2872:
+.L2836:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
 	.fnend
 	.size	zftl_cache_flush, .-zftl_cache_flush
 	.align	2
 	.global	ftl_read_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_read_page, %function
 ftl_read_page:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	push	{r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
-	mov	r7, r0
-	mov	r6, r1
-	mov	r5, r2
-	mov	r4, r3
+	mov	r4, r0
 	ldr	r8, [sp, #24]
+	mov	r5, r1
+	mov	r6, r2
+	mov	r7, r3
 	bl	sblk_wait_write_queue_completed
-	mov	r0, r7
-	mov	r1, r6
-	mov	r2, r5
-	mov	r3, r4
+	mov	r3, r7
 	str	r8, [sp, #24]
-	ldmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	mov	r2, r6
+	mov	r1, r5
+	mov	r0, r4
+	pop	{r4, r5, r6, r7, r8, lr}
 	b	flash_read_page_en
 	.fnend
 	.size	ftl_read_page, .-ftl_read_page
 	.align	2
 	.global	ftl_read_ppa_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_read_ppa_page, %function
 ftl_read_ppa_page:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	.pad #8
 	mov	r8, r3
-	ldr	r3, .L2878
-	mov	r7, r1
-	mov	r6, r2
-	mvn	r2, #0
+	ldr	r3, .L2842
 	mov	r5, r0
-	ldrb	r1, [r3, #1189]	@ zero_extendqisi2
-	rsb	r4, r1, #24
-	mvn	r2, r2, asl r1
-	and	r4, r2, r0, lsr r4
-	bl	sblk_wait_write_queue_completed
-	mov	r1, r5
+	mvn	r4, #0
+	mov	r6, r1
+	mov	r7, r2
+	ldrb	r0, [r3, #1153]	@ zero_extendqisi2
+	rsb	r3, r0, #24
+	mvn	r4, r4, lsl r0
+	and	r4, r4, r5, lsr r3
 	uxtb	r4, r4
-	mov	r2, r7
-	mov	r3, r6
-	mov	r0, r4
+	bl	sblk_wait_write_queue_completed
+	mov	r3, r7
 	str	r8, [sp]
+	mov	r2, r6
+	mov	r1, r5
+	mov	r0, r4
 	bl	flash_read_page_en
 	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L2879:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L2843:
 	.align	2
-.L2878:
+.L2842:
 	.word	.LANCHOR0
 	.fnend
 	.size	ftl_read_ppa_page, .-ftl_read_ppa_page
 	.align	2
 	.global	sblk_read_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_read_page, %function
 sblk_read_page:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 16
+	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #20
-	sub	sp, sp, #20
-	ldr	r10, .L2908
-	mov	r8, r0
-	mov	r6, r1
+	.pad #12
+	mov	r10, r0
+	mov	r7, r1
 	mov	r4, r0
 	mov	r5, r1
-.L2881:
+.L2845:
 	cmp	r5, #0
-	beq	.L2904
-	ldrb	fp, [r4]	@ zero_extendqisi2
-	ldr	r9, [r4, #24]
-.L2882:
-	mov	r0, r9
+	bne	.L2855
+.L2868:
+	ldr	r4, .L2870
+.L2856:
+	cmp	r7, #0
+	bne	.L2858
+	mov	r0, r7
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2855:
+	ldrb	r8, [r4]	@ zero_extendqisi2
+	ldr	fp, [r4, #24]
+.L2846:
 	mov	r1, #0
+	mov	r0, fp
 	bl	queue_lun_state
 	cmp	r0, #0
-	beq	.L2906
-	bl	queue_wait_first_req_completed
-	bl	queue_remove_completed_req
-	b	.L2882
-.L2906:
+	bne	.L2847
 	cmp	r5, #1
-	beq	.L2888
-	ldr	r3, .L2908+4
-	ldrb	r3, [r3, #-88]	@ zero_extendqisi2
+	beq	.L2852
+	ldr	r3, .L2870+4
+	ldrb	r3, [r3, #-80]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L2888
-	ldr	r3, .L2908
-	mvn	lr, #0
-	ldrb	r2, [r3, #1189]	@ zero_extendqisi2
-	rsb	r3, r2, #24
-	mov	r3, r9, lsr r3
-	bic	lr, r3, lr, asl r2
-	uxth	r3, lr
-	str	r3, [sp, #4]
-	ldrb	r3, [r4]	@ zero_extendqisi2
-	cmp	r3, #255
-	bne	.L2887
-	ldr	r1, .L2908+8
-	movw	r2, #782
-	ldr	r0, .L2908+12
-	bl	printk
-	bl	dump_stack
-.L2887:
-	ldrb	r3, [r4]	@ zero_extendqisi2
-	mov	r2, #48
-	ldrb	r0, [r10, #1189]	@ zero_extendqisi2
-	mvn	ip, #0
-	mul	r3, r2, r3
-	rsb	r2, r0, #24
-	add	r7, r10, r3
-	ldr	r1, [r7, #1260]
-	mov	r2, r1, lsr r2
-	bic	r2, r2, ip, asl r0
-	ldr	r0, [sp, #4]
-	uxth	r2, r2
-	cmp	r0, r2
-	bne	.L2888
-	ldr	r2, .L2908+16
-	ldrh	r2, [r2]
-	add	r9, r2, r9
-	cmp	r1, r9
-	bne	.L2888
-	ldr	r0, [r4, #24]
-	mvn	r9, #0
-	str	r3, [sp, #12]
-	add	r5, r5, r9
-	ldrb	fp, [r7, #1236]	@ zero_extendqisi2
-	bl	flash_start_plane_read
-	mov	ip, #2
-	mov	r2, #0
-	strb	ip, [r4, #42]
-	mov	r1, r4
-	strb	r2, [r4, #43]
-	ldr	r0, .L2908+20
-	strb	r9, [r4]
-	str	ip, [sp, #8]
-	str	r2, [sp, #4]
-	bl	buf_add_tail
-	ldr	r1, .L2908+24
-	strb	r9, [r7, #1236]
-	ldr	r0, .L2908+20
-	ldr	ip, [sp, #8]
-	ldr	r2, [sp, #4]
-	ldr	r3, [sp, #12]
-	strb	ip, [r7, #1278]
-	strb	r2, [r7, #1279]
-	add	r1, r1, r3
-	bl	buf_add_tail
-	b	.L2886
-.L2888:
+	bne	.L2849
+.L2852:
 	mov	r0, r4
 	bl	queue_read_cmd
-.L2886:
-	subs	r5, r5, #1
-	ldrne	r3, .L2908+24
-	movne	r4, #48
-	mlane	r4, r4, fp, r3
-	bne	.L2881
-.L2904:
-	ldr	r4, .L2908+24
-	mov	r5, #48
-.L2892:
-	cmp	r6, #0
-	beq	.L2907
-	ldrb	r3, [r8, #42]	@ zero_extendqisi2
-	cmp	r3, #13
-	bne	.L2893
-	ldrb	r3, [r8]	@ zero_extendqisi2
-	sub	r6, r6, #1
-	cmp	r3, #255
-	mlane	r8, r5, r3, r4
-.L2893:
+	b	.L2850
+.L2847:
 	bl	queue_wait_first_req_completed
 	bl	queue_remove_completed_req
-	b	.L2892
-.L2907:
-	mov	r0, r6
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2909:
+	b	.L2846
+.L2849:
+	ldr	r3, .L2870+8
+	ldrb	r2, [r3, #1153]	@ zero_extendqisi2
+	mvn	r3, #0
+	rsb	r1, r2, #24
+	mvn	r3, r3, lsl r2
+	ldrb	r2, [r4]	@ zero_extendqisi2
+	and	r3, r3, fp, lsr r1
+	cmp	r2, #255
+	uxth	r3, r3
+	bne	.L2851
+	movw	r2, #782
+	ldr	r1, .L2870+12
+	ldr	r0, .L2870+16
+	str	r3, [sp]
+	bl	printk
+	bl	dump_stack
+	ldr	r3, [sp]
+.L2851:
+	ldr	r2, .L2870+8
+	mov	r6, #48
+	ldrb	r9, [r4]	@ zero_extendqisi2
+	ldrb	ip, [r2, #1153]	@ zero_extendqisi2
+	mla	r6, r6, r9, r2
+	mvn	r2, #0
+	mvn	r2, r2, lsl ip
+	rsb	r0, ip, #24
+	ldr	r1, [r6, #1256]
+	and	r2, r2, r1, lsr r0
+	uxth	r2, r2
+	cmp	r3, r2
+	bne	.L2852
+	ldr	r3, .L2870+20
+	ldrh	r3, [r3]
+	add	fp, r3, fp
+	cmp	r1, fp
+	bne	.L2852
+	ldr	r0, [r4, #24]
+	mvn	fp, #0
+	ldrb	r8, [r6, #1232]	@ zero_extendqisi2
+	add	r9, r9, r9, lsl #1
+	add	r5, r5, fp
+	bl	flash_start_plane_read
+	mov	r2, #2
+	mov	r3, #0
+	strb	r2, [r4, #42]
+	mov	r1, r4
+	strb	r3, [r4, #43]
+	ldr	r0, .L2870+24
+	strb	fp, [r4]
+	str	r2, [sp, #4]
+	str	r3, [sp]
+	bl	buf_add_tail
+	ldr	r1, .L2870
+	ldr	r2, [sp, #4]
+	ldr	r3, [sp]
+	strb	fp, [r6, #1232]
+	strb	r2, [r6, #1274]
+	add	r1, r1, r9, lsl #4
+	strb	r3, [r6, #1275]
+	ldr	r0, .L2870+24
+	bl	buf_add_tail
+.L2850:
+	subs	r5, r5, #1
+	beq	.L2868
+	ldr	r4, .L2870
+	add	r8, r8, r8, lsl #1
+	add	r4, r4, r8, lsl #4
+	b	.L2845
+.L2858:
+	ldrb	r3, [r10, #42]	@ zero_extendqisi2
+	cmp	r3, #13
+	bne	.L2857
+	ldrb	r3, [r10]	@ zero_extendqisi2
+	sub	r7, r7, #1
+	cmp	r3, #255
+	addne	r3, r3, r3, lsl #1
+	addne	r10, r4, r3, lsl #4
+.L2857:
+	bl	queue_wait_first_req_completed
+	bl	queue_remove_completed_req
+	b	.L2856
+.L2871:
 	.align	2
-.L2908:
-	.word	.LANCHOR0
+.L2870:
+	.word	.LANCHOR0+1232
 	.word	.LANCHOR3
-	.word	.LANCHOR1+2272
+	.word	.LANCHOR0
+	.word	.LANCHOR1+2080
 	.word	.LC0
-	.word	.LANCHOR3-3066
-	.word	.LANCHOR0+2775
-	.word	.LANCHOR0+1236
+	.word	.LANCHOR3-3074
+	.word	.LANCHOR0+2770
 	.fnend
 	.size	sblk_read_page, .-sblk_read_page
 	.align	2
 	.global	gc_check_data_one_wl
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_check_data_one_wl, %function
 gc_check_data_one_wl:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 8
+	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #36
-	sub	sp, sp, #36
-	ldr	r6, .L2946
-	ldr	r3, [r6, #2836]
-	ldr	r9, [r6, #1092]
+	.pad #28
+	sub	sp, sp, #28
+	ldr	r5, .L2906
+	ldr	r3, [r5, #2832]
+	ldr	r10, [r5, #1096]
 	cmp	r3, #0
-	bne	.L2911
+	bne	.L2873
 	mov	r0, #1
 	bl	buf_alloc
-	str	r0, [r6, #2836]
-.L2911:
-	ldr	r4, [r6, #2836]
+	str	r0, [r5, #2832]
+.L2873:
+	ldr	r4, [r5, #2832]
 	cmp	r4, #0
-	bne	.L2912
-	ldr	r1, .L2946+4
+	bne	.L2874
 	movw	r2, #729
-	ldr	r0, .L2946+8
+	ldr	r1, .L2906+4
+	ldr	r0, .L2906+8
 	bl	printk
 	bl	dump_stack
-.L2912:
-	ldr	fp, .L2946+12
-	add	r10, r9, #96
-	mov	r8, #0
-	mov	ip, fp
-.L2913:
-	ldrb	r3, [r9, #89]	@ zero_extendqisi2
-	ldr	r5, .L2946+16
-	cmp	r8, r3
-	bge	.L2944
-	mov	r7, #1
-.L2924:
-	ldrh	r3, [r5, #16]
-	cmp	r7, r3
-	bgt	.L2945
-	ldr	r2, .L2946+20
-	ldrb	r1, [fp, #-3124]	@ zero_extendqisi2
-	ldrh	r3, [r10]
-	ldrh	r2, [r2]
+.L2874:
+	ldr	r7, .L2906+12
+	add	fp, r10, #96
+	mov	r9, #0
+.L2875:
+	ldrb	r3, [r10, #89]	@ zero_extendqisi2
+	ldr	r6, .L2906+16
+	cmp	r9, r3
+	bge	.L2886
+	mov	r8, #1
+	b	.L2887
+.L2885:
+	ldr	r2, .L2906+20
+	ldrb	r1, [r7, #-3128]	@ zero_extendqisi2
+	ldrh	r3, [fp]
+	ldrh	r2, [r2, #-2]
 	cmp	r1, #2
 	mul	r2, r2, r3
-	beq	.L2914
-	ldr	r3, .L2946
-	ldrb	r3, [r3, #1196]	@ zero_extendqisi2
+	beq	.L2876
+	ldrb	r3, [r5, #1158]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L2915
-.L2914:
-	ldrh	r3, [r5, #12]
+	beq	.L2877
+.L2876:
+	ldrh	r3, [r6, #12]
 	sub	r3, r3, #1
 	add	r3, r3, r2
-	add	r3, r3, r7
-	orr	r3, r3, r1, asl #24
-	b	.L2943
-.L2915:
-	ldr	r3, .L2946+16
-	cmp	r1, #3
-	ldrh	r3, [r3, #12]
-	addne	r2, r2, r3
-	strne	r2, [r4, #24]
-	bne	.L2916
-	ldr	r1, .L2946
-	ldrb	r1, [r1, #1197]	@ zero_extendqisi2
-	cmp	r1, #0
-	addne	r3, r3, r3, asl #1
-	addeq	r3, r2, r3
-	subne	r3, r3, #1
-	orreq	r3, r3, r7, asl #24
-	addne	r3, r3, r2
-	addne	r3, r3, r7
-	orrne	r3, r3, #50331648
-.L2943:
+	add	r3, r3, r8
+	orr	r3, r3, r1, lsl #24
+.L2905:
 	str	r3, [r4, #24]
-.L2916:
-	mov	r0, r4
 	mov	r1, #1
-	str	ip, [sp, #28]
+	mov	r0, r4
 	bl	sblk_read_page
 	ldr	r2, [r4, #36]
 	cmn	r2, #1
-	ldr	ip, [sp, #28]
-	beq	.L2919
-	ldr	r0, [ip, #-172]
-	ldrh	r1, [r5, #18]
+	beq	.L2881
+	ldr	r0, [r7, #-132]
+	ldrh	r1, [r6, #18]
 	ldr	r3, [r4, #12]
-	ldr	lr, [r0, r1, asl #2]
+	ldr	ip, [r0, r1, lsl #2]
 	ldr	r0, [r3, #4]
-	cmp	lr, r0
-	bne	.L2919
-	ldr	r0, [fp, #-168]
+	cmp	ip, r0
+	bne	.L2881
+	ldr	r0, [r7, #-128]
 	ldr	r3, [r3, #8]
-	ldr	r1, [r0, r1, asl #2]
+	ldr	r1, [r0, r1, lsl #2]
 	cmp	r1, r3
-	beq	.L2920
-.L2919:
-	ldrh	r3, [r5, #18]
-	ldr	r1, [ip, #-172]
-	mov	r0, r3, asl #2
-	ldr	r3, [r1, r3, asl #2]
+	beq	.L2882
+.L2881:
+	ldrh	r3, [r6, #18]
+	ldr	r1, [r7, #-132]
+	lsl	r0, r3, #2
+	ldr	r3, [r1, r3, lsl #2]
 	cmn	r3, #1
-	beq	.L2920
-	ldr	r1, .L2946+24
+	beq	.L2882
+	ldr	r1, .L2906+24
 	ldr	r1, [r1]
 	tst	r1, #1024
-	beq	.L2921
-	ldr	ip, .L2946+12
+	beq	.L2883
 	ldr	r1, [r4, #12]
-	ldr	ip, [ip, #-168]
-	ldr	r0, [ip, r0]
-	str	r0, [sp]
-	ldr	r0, [r1]
-	str	r0, [sp, #4]
-	ldr	r0, [r1, #4]
-	str	r0, [sp, #8]
-	ldr	r0, [r1, #8]
-	str	r0, [sp, #12]
-	ldr	r1, [r1, #12]
-	ldr	r0, .L2946+28
-	str	r1, [sp, #16]
+	ldr	ip, [r1, #12]
+	str	ip, [sp, #16]
+	ldr	ip, [r1, #8]
+	str	ip, [sp, #12]
+	ldr	ip, [r1, #4]
+	str	ip, [sp, #8]
+	ldr	r1, [r1]
+	str	r1, [sp, #4]
+	ldr	r1, [r7, #-128]
+	ldr	r1, [r1, r0]
+	ldr	r0, .L2906+28
+	str	r1, [sp]
 	ldr	r1, [r4, #24]
 	bl	printk
-.L2921:
-	ldrh	r3, [r9, #80]
+.L2883:
+	ldrh	r3, [r10, #80]
 	mov	r1, #0
-	ldr	r2, [r6, #1088]
-	mov	r3, r3, asl #1
+	ldr	r2, [r5, #1092]
+	lsl	r3, r3, #1
 	strh	r1, [r2, r3]	@ movhi
-	ldr	r2, [r6, #1092]
+	ldr	r2, [r5, #1096]
 	ldr	r3, [r2, #556]
 	add	r3, r3, #1
 	str	r3, [r2, #556]
-	ldr	r3, [r6, #2804]
+	ldr	r3, [r5, #2800]
 	ldr	r2, [r3, #156]
-	ldr	r3, .L2946+32
+	ldr	r3, .L2906+32
 	cmp	r2, r3
-	bne	.L2927
-	ldr	r3, .L2946+12
-	ldrb	r3, [r3, #-2536]	@ zero_extendqisi2
+	bne	.L2890
+	ldrb	r3, [r7, #-2542]	@ zero_extendqisi2
 	cmp	r3, r1
-	bne	.L2927
-	ldr	r3, .L2946+12
-	ldrb	r3, [r3, #-3122]	@ zero_extendqisi2
+	bne	.L2890
+	ldrb	r3, [r7, #-3126]	@ zero_extendqisi2
 	cmp	r3, r1
-	bne	.L2927
+	bne	.L2890
 	ldr	r0, [r4, #24]
 	bl	ftl_mask_bad_block
-	b	.L2927
-.L2920:
-	ldrh	r3, [r5, #18]
-	add	r7, r7, #1
-	add	r3, r3, #1
-	strh	r3, [r5, #18]	@ movhi
-	b	.L2924
-.L2945:
-	add	r8, r8, #1
-	add	r10, r10, #2
-	b	.L2913
-.L2944:
-	ldrh	r3, [r5, #12]
-	add	r2, r3, #1
-	strh	r2, [r5, #12]	@ movhi
-	ldr	r2, .L2946+12
-	ldrb	r0, [r2, #-3122]	@ zero_extendqisi2
-	cmp	r0, #0
-	addne	r3, r3, #2
-	strneh	r3, [r5, #12]	@ movhi
-	movne	r0, #0
-	b	.L2922
-.L2927:
+.L2890:
 	mvn	r0, #0
-.L2922:
-	add	sp, sp, #36
+	b	.L2872
+.L2877:
+	ldrh	r3, [r6, #12]
+	cmp	r1, #3
+	addne	r3, r3, r2
+	bne	.L2905
+	ldrb	r1, [r5, #1159]	@ zero_extendqisi2
+	cmp	r1, #0
+	addne	r3, r3, r3, lsl #1
+	addeq	r3, r3, r2
+	orreq	r3, r3, r8, lsl #24
+	subne	r3, r3, #1
+	addne	r3, r3, r2
+	addne	r3, r3, r8
+	orrne	r3, r3, #50331648
+	b	.L2905
+.L2882:
+	ldrh	r3, [r6, #18]
+	add	r8, r8, #1
+	add	r3, r3, #1
+	strh	r3, [r6, #18]	@ movhi
+.L2887:
+	ldrh	r3, [r6, #16]
+	cmp	r8, r3
+	ble	.L2885
+	add	r9, r9, #1
+	add	fp, fp, #2
+	b	.L2875
+.L2886:
+	ldrh	r3, [r6, #12]
+	add	r2, r3, #1
+	strh	r2, [r6, #12]	@ movhi
+	ldr	r2, .L2906+12
+	ldrb	r0, [r2, #-3126]	@ zero_extendqisi2
+	cmp	r0, #0
+	movne	r0, #0
+	addne	r3, r3, #2
+	strhne	r3, [r6, #12]	@ movhi
+.L2884:
+.L2872:
+	add	sp, sp, #28
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2947:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2907:
 	.align	2
-.L2946:
+.L2906:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2288
+	.word	.LANCHOR1+2095
 	.word	.LC0
 	.word	.LANCHOR3
-	.word	.LANCHOR0+2828
-	.word	.LANCHOR3-3066
+	.word	.LANCHOR0+2824
+	.word	.LANCHOR3-3072
 	.word	.LANCHOR2
-	.word	.LC180
+	.word	.LC179
 	.word	1145785929
 	.fnend
 	.size	gc_check_data_one_wl, .-gc_check_data_one_wl
 	.align	2
 	.global	sblk_tlc_prog_one_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_tlc_prog_one_page, %function
 sblk_tlc_prog_one_page:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
 	mov	r4, r0
 	ldr	r3, [r0]
 	ldr	r6, [r3, #24]
-.L2949:
-	mov	r0, r6
+.L2909:
 	mov	r1, #1
+	mov	r0, r6
 	bl	queue_lun_state
 	subs	r5, r0, #0
-	beq	.L2952
-	bl	queue_wait_first_req_completed
-	bl	queue_remove_completed_req
-	b	.L2949
-.L2952:
+	bne	.L2910
 	mov	r0, r4
 	mov	r1, #1
 	bl	queue_tlc_prog_cmd
 	mov	r0, r5
-	ldmfd	sp!, {r4, r5, r6, pc}
+	pop	{r4, r5, r6, pc}
+.L2910:
+	bl	queue_wait_first_req_completed
+	bl	queue_remove_completed_req
+	b	.L2909
 	.fnend
 	.size	sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page
 	.align	2
 	.global	sblk_xlc_prog_pages
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_xlc_prog_pages, %function
 sblk_xlc_prog_pages:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	mov	r5, r0
+	ldr	r3, [r0]
 	.pad #20
 	sub	sp, sp, #20
-	ldr	r3, [r0]
-	mov	r5, r0
 	mov	r7, r1
-	mov	r10, r2
+	mov	fp, r2
 	ldr	r4, [r3, #24]
-.L2954:
-	mov	r0, r4
+.L2913:
 	mov	r1, #1
+	mov	r0, r4
 	bl	queue_lun_state
-	subs	r9, r0, #0
-	beq	.L2966
-	bl	queue_wait_first_req_completed
-	bl	queue_remove_completed_req
-	b	.L2954
-.L2966:
-	cmp	r10, #2
-	bne	.L2956
-	ldr	r2, .L2968
+	subs	r10, r0, #0
+	bne	.L2914
+	cmp	fp, #2
+	bne	.L2915
+	ldr	r1, .L2925
 	ldr	lr, [r7]
-	ldrb	r3, [r2, #1233]	@ zero_extendqisi2
+	ldrb	r3, [r1, #1194]	@ zero_extendqisi2
 	cmp	r3, #0
 	ldreq	r4, [lr, #24]
-	beq	.L2961
-	ldr	r3, [r5]
-	mov	fp, #1
-	ldrb	r4, [r2, #1189]	@ zero_extendqisi2
-	ldrb	r2, [r2, #1197]	@ zero_extendqisi2
-	ldr	r0, [r3, #24]
-	rsb	r1, r4, #24
-	mov	r4, fp, asl r4
-	mov	ip, fp, asl r1
+	beq	.L2920
+	ldrb	r3, [r1, #1153]	@ zero_extendqisi2
+	mov	r9, #1
+	ldr	r2, [r5]
+	ldr	lr, [lr, #24]
+	rsb	r0, r3, #24
+	ldr	ip, [r2, #24]
+	lsl	r4, r9, r3
+	ldrb	r3, [r1, #1159]	@ zero_extendqisi2
+	lsl	r6, r9, r0
 	sub	r4, r4, #1
-	ldr	r6, [lr, #24]
-	and	r4, r4, r0, lsr r1
-	cmp	r2, #0
-	sub	ip, ip, #1
-	and	r8, ip, r0
-	and	r6, r6, ip
+	sub	r6, r6, #1
+	and	r4, r4, ip, lsr r0
+	cmp	r3, #0
+	and	r8, ip, r6
 	uxtb	r4, r4
-	beq	.L2958
+	and	r6, r6, lr
+	beq	.L2917
 	mov	r0, r4
 	bl	zftl_flash_exit_slc_mode
 	ldr	r3, [r5]
-	mov	r1, fp
-	mov	r0, r9
-	str	r8, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
+	mov	r1, r9
+	mov	r0, r10
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
 	mov	r2, #17
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
+	ldr	r3, [r3, #4]
+	str	r8, [sp]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_wait_flash_ready
 	ldr	r3, [r7]
-	mov	r1, fp
-	mov	r0, r9
-	str	r6, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
+	mov	r1, r9
+	mov	r0, r10
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
 	mov	r2, #26
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
+	ldr	r3, [r3, #4]
+	str	r6, [sp]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_wait_flash_ready
 	ldr	r3, [r5, #4]
-	add	r2, r8, fp
-	mov	r1, r10
-	mov	r0, r9
+	mov	r1, fp
+	mov	r0, r10
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #17
+	ldr	r3, [r3, #4]
+	str	r3, [sp, #4]
+	add	r3, r8, r9
+	str	r3, [sp]
+	mov	r3, r4
+	bl	flash_start_one_pass_page_prog
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r7, #4]
+	mov	r1, fp
+	mov	r0, r10
 	add	r8, r8, #2
-	str	r2, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #17
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #26
+	ldr	r3, [r3, #4]
+	str	r3, [sp, #4]
+	add	r3, r6, r9
+	str	r3, [sp]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_wait_flash_ready
-	ldr	r3, [r7, #4]
-	add	r2, r6, fp
-	mov	r1, r10
-	mov	r0, r9
+	ldr	r3, [r5, #8]
+	mov	r1, #3
+	mov	r0, r10
 	add	r6, r6, #2
-	str	r2, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #26
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_one_pass_page_prog
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r5, #8]
-	mov	r0, r9
-	mov	r1, #3
-	str	r8, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
 	mov	r2, #17
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
+	ldr	r3, [r3, #4]
+	str	r8, [sp]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
 	bl	nandc_wait_flash_ready
 	ldr	r3, [r7, #8]
-	mov	r0, r9
 	mov	r1, #3
-	str	r6, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
+	mov	r0, r10
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
 	mov	r2, #16
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
+	ldr	r3, [r3, #4]
+	str	r6, [sp]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	flash_start_one_pass_page_prog
-	b	.L2959
-.L2958:
-	ldrb	r0, [r3, #44]	@ zero_extendqisi2
-	mov	r1, fp
-	str	r8, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #17
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r7]
-	ldr	r2, [r5]
-	mov	r1, fp
-	ldrb	r0, [r2, #44]	@ zero_extendqisi2
-	str	r6, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #26
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-	bl	nandc_wait_flash_ready
-	ldmia	r5, {r2, r3}
-	mov	r1, r10
-	ldrb	r0, [r2, #44]	@ zero_extendqisi2
-	str	r8, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #17
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r7, #4]
-	ldr	r2, [r5]
-	mov	r1, r10
-	ldrb	r0, [r2, #44]	@ zero_extendqisi2
-	str	r6, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #26
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r5, #8]
-	ldr	r2, [r5]
-	mov	r1, #3
-	ldrb	r0, [r2, #44]	@ zero_extendqisi2
-	str	r8, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #17
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-	bl	nandc_wait_flash_ready
-	ldr	r3, [r7, #8]
-	ldr	r2, [r5]
-	mov	r1, #3
-	ldrb	r0, [r2, #44]	@ zero_extendqisi2
-	str	r6, [sp]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #4]
-	mov	r2, #16
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #8]
-	mov	r3, r4
-	bl	flash_start_tlc_page_prog
-.L2959:
+.L2918:
 	ldr	r1, [r5]
 	mov	r3, #5
-	ldr	r0, .L2968+4
+	ldr	r0, .L2925+4
 	strb	r3, [r1, #42]
 	mov	r3, #1
 	strb	r3, [r1, #43]
 	mvn	r3, #0
 	strb	r3, [r1]
 	bl	buf_add_tail
-	b	.L2960
-.L2961:
-	mov	r0, r4
-	mov	r1, #1
-	bl	queue_lun_state
-	subs	r6, r0, #0
-	beq	.L2967
-	bl	queue_wait_first_req_completed
-	bl	queue_remove_completed_req
-	b	.L2961
-.L2967:
-	mov	r0, r5
-	mov	r1, #1
-	bl	queue_tlc_prog_cmd
-	mov	r0, r7
-	mov	r1, r6
-	bl	queue_tlc_prog_cmd
-.L2963:
-	mov	r0, r4
-	mov	r1, #1
-	bl	queue_lun_state
-	cmp	r0, #0
-	beq	.L2960
-	bl	queue_wait_first_req_completed
-	bl	queue_remove_completed_req
-	b	.L2963
-.L2956:
-	mov	r0, r5
-	mov	r1, #1
-	bl	queue_tlc_prog_cmd
-.L2960:
+.L2919:
 	mov	r0, #0
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2969:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2914:
+	bl	queue_wait_first_req_completed
+	bl	queue_remove_completed_req
+	b	.L2913
+.L2917:
+	ldr	r3, [r2, #12]
+	mov	r1, r9
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	str	r3, [sp, #8]
+	ldr	r3, [r2, #4]
+	mov	r2, #17
+	str	r8, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r7]
+	mov	r1, r9
+	ldr	r2, [r5]
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #26
+	ldr	r3, [r3, #4]
+	str	r6, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_wait_flash_ready
+	ldm	r5, {r2, r3}
+	mov	r1, fp
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #17
+	ldr	r3, [r3, #4]
+	str	r8, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r7, #4]
+	mov	r1, fp
+	ldr	r2, [r5]
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #26
+	ldr	r3, [r3, #4]
+	str	r6, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r5, #8]
+	mov	r1, #3
+	ldr	r2, [r5]
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #17
+	ldr	r3, [r3, #4]
+	str	r8, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	bl	nandc_wait_flash_ready
+	ldr	r3, [r7, #8]
+	mov	r1, #3
+	ldr	r2, [r5]
+	ldrb	r0, [r2, #44]	@ zero_extendqisi2
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	mov	r2, #16
+	ldr	r3, [r3, #4]
+	str	r6, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r4
+	bl	flash_start_tlc_page_prog
+	b	.L2918
+.L2921:
+	bl	queue_wait_first_req_completed
+	bl	queue_remove_completed_req
+.L2920:
+	mov	r1, #1
+	mov	r0, r4
+	bl	queue_lun_state
+	subs	r6, r0, #0
+	bne	.L2921
+	mov	r1, #1
+	mov	r0, r5
+	bl	queue_tlc_prog_cmd
+	mov	r1, r6
+	mov	r0, r7
+	bl	queue_tlc_prog_cmd
+.L2922:
+	mov	r1, #1
+	mov	r0, r4
+	bl	queue_lun_state
+	cmp	r0, #0
+	beq	.L2919
+	bl	queue_wait_first_req_completed
+	bl	queue_remove_completed_req
+	b	.L2922
+.L2915:
+	mov	r1, #1
+	mov	r0, r5
+	bl	queue_tlc_prog_cmd
+	b	.L2919
+.L2926:
 	.align	2
-.L2968:
+.L2925:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2775
+	.word	.LANCHOR0+2770
 	.fnend
 	.size	sblk_xlc_prog_pages, .-sblk_xlc_prog_pages
 	.align	2
 	.global	sblk_3d_mlc_prog_pages
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	sblk_3d_mlc_prog_pages, %function
 sblk_3d_mlc_prog_pages:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
-	.save {r4, r5, r6, r7, r8, r9, lr}
-	.pad #12
-	add	r5, r0, #8
-	ldr	r9, .L2978
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	.pad #8
 	mov	r7, r1
+	ldr	r9, .L2933
+	add	r5, r0, #8
 	mov	r8, #1
-.L2971:
+	ldr	r10, .L2933+4
+.L2928:
 	cmp	r7, #0
-	beq	.L2976
+	bne	.L2931
+	mov	r0, r7
+	add	sp, sp, #8
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L2931:
 	ldr	r3, [r5, #-8]
 	ldr	r4, [r3, #24]
-.L2972:
-	mov	r0, r4
+.L2929:
 	mov	r1, #1
+	mov	r0, r4
 	bl	queue_lun_state
 	cmp	r0, #0
-	beq	.L2977
-	bl	queue_wait_first_req_completed
-	bl	queue_remove_completed_req
-	b	.L2972
-.L2977:
+	bne	.L2930
 	ldr	r3, [r5, #-8]
 	sub	r7, r7, #1
-	ldrb	r4, [r9, #1189]	@ zero_extendqisi2
 	add	r5, r5, #8
-	ldr	r2, [r3, #24]
-	rsb	r3, r4, #24
-	mov	r4, r8, asl r4
-	mov	r6, r8, asl r3
+	ldr	r1, [r3, #24]
+	ldrb	r3, [r9, #1153]	@ zero_extendqisi2
+	rsb	r2, r3, #24
+	lsl	r4, r8, r3
+	lsl	r6, r8, r2
 	sub	r4, r4, #1
 	sub	r6, r6, #1
-	and	r4, r4, r2, lsr r3
-	and	r6, r6, r2
+	and	r4, r4, r1, lsr r2
+	and	r6, r6, r1
 	uxtb	r4, r4
 	mov	r0, r4
 	bl	zftl_flash_exit_slc_mode
@@ -17461,638 +17789,642 @@
 	add	r2, r6, #1
 	ldr	r3, [r3, #4]
 	bl	flash_start_3d_mlc_page_prog
-	mov	r0, r4
-	bl	nandc_de_cs
+	bl	nandc_de_cs.constprop.35
 	ldr	r1, [r5, #-16]
 	mov	r3, #4
-	ldr	r0, .L2978+4
+	mov	r0, r10
 	strb	r3, [r1, #42]
 	mvn	r3, #0
 	strb	r8, [r1, #43]
 	strb	r3, [r1]
 	bl	buf_add_tail
-	b	.L2971
-.L2976:
-	mov	r0, r7
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L2979:
+	b	.L2928
+.L2930:
+	bl	queue_wait_first_req_completed
+	bl	queue_remove_completed_req
+	b	.L2929
+.L2934:
 	.align	2
-.L2978:
+.L2933:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2775
+	.word	.LANCHOR0+2770
 	.fnend
 	.size	sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages
 	.align	2
 	.global	flash_prog_page_en
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_prog_page_en, %function
 flash_prog_page_en:
 	.fnstart
 	@ args = 8, pretend = 0, frame = 16
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #28
 	sub	sp, sp, #28
-	mov	r8, r3
-	ldr	r6, .L3010
-	ldrb	r3, [sp, #68]	@ zero_extendqisi2
-	mov	r7, r0
+	mov	r10, r3
+	ldr	r4, .L2966
+	mov	r8, r0
 	mov	r5, r1
-	mov	r9, r2
-	ubfx	r4, r1, #24, #2
-	str	r3, [sp, #16]
-	ldrb	r3, [r6, #1101]	@ zero_extendqisi2
+	ldrb	r3, [sp, #68]	@ zero_extendqisi2
+	mov	fp, r2
+	ubfx	r7, r1, #24, #2
+	str	r3, [sp, #20]
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
 	cmp	r3, r0
-	bhi	.L2981
-	ldr	r1, .L3010+4
+	bhi	.L2936
 	movw	r2, #642
-	ldr	r0, .L3010+8
+	ldr	r1, .L2966+4
+	ldr	r0, .L2966+8
 	bl	printk
 	bl	dump_stack
-.L2981:
-	ldrb	r2, [r6, #1101]	@ zero_extendqisi2
-	ldr	r3, .L3010
-	cmp	r2, r7
+.L2936:
+	ldrb	r3, [r4, #1109]	@ zero_extendqisi2
+	cmp	r3, r8
 	mvnls	r0, #0
-	bls	.L2982
-	add	r2, r3, r7
-	cmp	r4, #0
-	ldrb	r10, [r2, #1180]	@ zero_extendqisi2
-	bne	.L2994
-	ldrb	r2, [r3]	@ zero_extendqisi2
-	cmp	r2, #0
-	beq	.L2984
-	ldrb	r3, [r3, #1]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L2994
-.L2984:
-	ldrh	fp, [r6, #2]
-	mov	r0, r5
-	mov	r1, fp
-	bl	__aeabi_uidiv
-	ldrb	r3, [r6, #1]	@ zero_extendqisi2
-	cmp	r3, #0
-	ldreq	r3, .L3010
-	mul	r0, fp, r0
-	rsb	r4, r0, r5
-	mov	r4, r4, asl #1
-	addeq	r4, r3, r4
-	ldreqh	r4, [r4, #4]
-	add	r4, r4, r0
-	b	.L2983
-.L2994:
-	mov	r4, r5
-.L2983:
-	ldr	fp, .L3010+12
-	ldr	r6, .L3010+16
-.L2989:
-	ldr	r3, [fp]
-	tst	r3, #16
-	beq	.L2986
-	ldr	r0, .L3010+20
-	mov	r1, r10
-	mov	r2, r5
-	mov	r3, r4
-	bl	printk
-.L2986:
-	ldr	r3, [sp, #64]
-	mov	r0, r10
-	mov	r1, r4
-	mov	r2, r9
-	str	r3, [sp]
-	mov	r3, r8
-	bl	flash_prog_page
-	ldr	r3, [sp, #16]
-	mov	ip, r0
-	cmp	r3, #0
-	beq	.L2987
-	ldr	r3, [sp, #64]
-	mov	r1, r5
-	str	r0, [sp, #20]
-	mov	r0, r7
-	str	r3, [sp]
-	ldr	r3, [r6, #-100]
-	ldr	r2, [r6, #-104]
-	bl	flash_read_page_en
-	sub	r3, r0, #512
-	cmp	r0, #512
-	cmnne	r0, #1
-	clz	r3, r3
-	mov	r3, r3, lsr #5
+	bls	.L2935
+	add	r3, r4, r8
+	cmp	r7, #0
+	ldrb	r3, [r3, #1144]	@ zero_extendqisi2
 	str	r3, [sp, #12]
-	beq	.L2988
-	ldr	r3, [r6, #-104]
-	ldr	r2, [r9]
-	ldr	ip, [sp, #20]
-	ldr	r3, [r3]
-	cmp	r2, r3
-	bne	.L2988
-	ldr	r3, [r6, #-100]
-	ldr	r2, [r8]
-	ldr	r3, [r3]
-	cmp	r2, r3
-	beq	.L2987
-.L2988:
-	mov	r2, #4
-	ldr	r0, .L3010+24
-	mov	r3, r2
-	mov	r1, r9
-	bl	rknand_print_hex
-	mov	r2, #4
-	mov	r3, r2
-	ldr	r0, .L3010+28
-	mov	r1, r8
-	bl	rknand_print_hex
-	mov	r2, #4
-	mov	r3, r2
-	ldr	r0, .L3010+32
-	ldr	r1, [r6, #-100]
-	bl	rknand_print_hex
-	mov	r2, #4
-	mov	r3, r2
-	ldr	r0, .L3010+36
-	ldr	r1, [r6, #-104]
-	bl	rknand_print_hex
-	ldr	r3, [sp, #12]
+	bne	.L2949
+	ldrb	r3, [r4]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L2989
-.L2991:
-	mov	r1, r5
-	ldr	r0, .L3010+40
+	beq	.L2939
+	ldrb	r3, [r4, #1]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L2949
+.L2939:
+	ldrh	r7, [r4, #2]
+	mov	r0, r5
+	mov	r1, r7
+	bl	__aeabi_uidiv
+	mov	r1, r7
+	mul	r6, r7, r0
+	mov	r0, r5
+	bl	__aeabi_uidivmod
+	ldrb	r3, [r4, #1]	@ zero_extendqisi2
+	lsl	r1, r1, #1
+	cmp	r3, #0
+	addeq	r4, r4, r1
+	ldrheq	r1, [r4, #4]
+	add	r6, r1, r6
+.L2938:
+	ldr	r4, .L2966+12
+	ldr	r7, .L2966+16
+.L2944:
+	ldr	r3, [r4]
+	tst	r3, #16
+	beq	.L2941
+	mov	r3, r6
+	mov	r2, r5
+	ldr	r1, [sp, #12]
+	ldr	r0, .L2966+20
 	bl	printk
-	ldr	r1, .L3010+4
+.L2941:
+	ldr	r3, [sp, #64]
+	mov	r2, fp
+	mov	r1, r6
+	ldr	r0, [sp, #12]
+	str	r3, [sp]
+	mov	r3, r10
+	bl	flash_prog_page
+	ldr	r3, [sp, #20]
+	str	r0, [sp, #16]
+	cmp	r3, #0
+	beq	.L2942
+	ldr	r3, [sp, #64]
+	mov	r1, r5
+	mov	r0, r8
+	str	r3, [sp]
+	ldr	r3, [r7, #-96]
+	ldr	r2, [r7, #-92]
+	bl	flash_read_page_en
+	cmn	r0, #1
+	cmpne	r0, #512
+	mov	r9, r0
+	beq	.L2943
+	ldr	r3, [r7, #-92]
+	ldr	r2, [fp]
+	ldr	r3, [r3]
+	cmp	r2, r3
+	bne	.L2943
+	ldr	r3, [r7, #-96]
+	ldr	r2, [r10]
+	ldr	r3, [r3]
+	cmp	r2, r3
+	beq	.L2942
+.L2943:
+	mov	r3, #4
+	mov	r1, fp
+	mov	r2, r3
+	ldr	r0, .L2966+24
+	bl	rknand_print_hex
+	mov	r3, #4
+	mov	r1, r10
+	mov	r2, r3
+	ldr	r0, .L2966+28
+	bl	rknand_print_hex
+	mov	r3, #4
+	ldr	r1, [r7, #-96]
+	mov	r2, r3
+	ldr	r0, .L2966+32
+	bl	rknand_print_hex
+	mov	r3, #4
+	ldr	r1, [r7, #-92]
+	mov	r2, r3
+	ldr	r0, .L2966+36
+	bl	rknand_print_hex
+	cmp	r9, #512
+	beq	.L2944
+.L2946:
+	mov	r1, r5
+	ldr	r0, .L2966+40
+	bl	printk
+	mvn	r4, #0
 	movw	r2, #685
-	ldr	r0, .L3010+8
+	ldr	r1, .L2966+4
+	ldr	r0, .L2966+8
 	bl	printk
 	bl	dump_stack
-	mvn	ip, #0
-	b	.L2990
-.L2987:
-	cmn	ip, #1
-	beq	.L2991
-.L2990:
-	mov	r0, ip
-.L2982:
+.L2945:
+	mov	r0, r4
+.L2935:
 	add	sp, sp, #28
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3011:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2949:
+	mov	r6, r5
+	b	.L2938
+.L2942:
+	ldr	r4, [sp, #16]
+	cmn	r4, #1
+	bne	.L2945
+	b	.L2946
+.L2967:
 	.align	2
-.L3010:
+.L2966:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2312
+	.word	.LANCHOR1+2116
 	.word	.LC0
 	.word	.LANCHOR2
 	.word	.LANCHOR3
+	.word	.LC180
 	.word	.LC181
 	.word	.LC182
 	.word	.LC183
 	.word	.LC184
 	.word	.LC185
-	.word	.LC186
 	.fnend
 	.size	flash_prog_page_en, .-flash_prog_page_en
 	.align	2
 	.global	ftl_prog_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_prog_page, %function
 ftl_prog_page:
 	.fnstart
 	@ args = 4, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 	.save {r4, r5, r6, r7, lr}
 	.pad #12
-	mov	r4, r3
-	mov	r7, r0
+	mov	r4, r0
+	mov	r7, r3
 	mov	r5, r1
 	mov	r6, r2
 	bl	sblk_wait_write_queue_completed
-	mov	r0, r7
-	mov	r1, r5
+	mov	r3, #1
+	mov	r0, r4
+	str	r3, [sp, #4]
 	mov	r2, r6
 	ldr	r3, [sp, #32]
+	mov	r1, r5
 	str	r3, [sp]
-	mov	r3, #1
-	str	r3, [sp, #4]
-	mov	r3, r4
+	mov	r3, r7
 	bl	flash_prog_page_en
 	cmn	r0, #1
 	mov	r4, r0
-	bne	.L3013
-	ldr	r1, .L3015
+	bne	.L2968
+	ldr	r1, .L2971
 	movw	r2, #2678
-	ldr	r0, .L3015+4
+	ldr	r0, .L2971+4
 	bl	printk
 	bl	dump_stack
-	ldr	r0, .L3015+8
 	mov	r1, r5
+	ldr	r0, .L2971+8
 	bl	printk
-.L3013:
+.L2968:
 	mov	r0, r4
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, pc}
-.L3016:
+	pop	{r4, r5, r6, r7, pc}
+.L2972:
 	.align	2
-.L3015:
-	.word	.LANCHOR1+2332
+.L2971:
+	.word	.LANCHOR1+2135
 	.word	.LC0
-	.word	.LC186
+	.word	.LC185
 	.fnend
 	.size	ftl_prog_page, .-ftl_prog_page
 	.align	2
 	.global	ftl_info_flush
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_info_flush, %function
 ftl_info_flush:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	mov	r1, #0
-	ldr	r6, .L3052
+	ldr	r4, .L3010
 	.pad #20
 	sub	sp, sp, #20
-	mov	r10, r0
-	ldr	r0, .L3052+4
-	ldr	r4, .L3052+8
+	mov	r9, r0
 	mov	r8, #0
-	ldrb	r2, [r6, #2772]	@ zero_extendqisi2
-	ldr	r9, .L3052+12
-	mov	r7, r4
-	mov	r2, r2, asl #1
+	ldr	r6, .L3010+4
+	ldrb	r2, [r4, #-2546]	@ zero_extendqisi2
+	ldr	r0, [r4, #-76]
+	ldr	r10, .L3010+8
+	ldr	r7, .L3010+12
+	lsl	r2, r2, #1
 	bl	ftl_memset
-	ldr	r3, [r6, #2804]
+	ldr	r3, [r6, #2800]
 	ldrh	r2, [r3, #74]
 	cmp	r2, #1
 	movhi	r2, #0
-	strhih	r2, [r3, #150]	@ movhi
-.L3029:
-	ldrh	r3, [r4, #202]
-	ldr	r2, [r6, #2804]
-	ldrb	r1, [r6, #2772]	@ zero_extendqisi2
-	str	r3, [sp, #12]
+	strhhi	r2, [r3, #150]	@ movhi
+.L2987:
+	ldr	r3, .L3010+16
+	ldr	r2, [r6, #2800]
+	ldrb	r5, [r4, #-56]	@ zero_extendqisi2
+	ldrh	fp, [r3]
+	ldrh	r3, [r4, #-54]
+	str	r3, [sp, #8]
 	ldr	r3, [r2, #4]
-	ldr	r0, [r4, #204]
-	mov	r1, r1, asl #9
 	add	r3, r3, #1
 	str	r3, [r2, #4]
-	ldrb	r5, [r4, #200]	@ zero_extendqisi2
-	str	r3, [r4, #-52]
-	ldrh	fp, [r9]
-	str	r10, [r4, #-56]
+	ldr	r3, [r4, #-76]
+	str	r9, [r3]
+	ldr	r2, [r6, #2800]
+	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
+	ldr	r3, [r4, #-76]
+	ldr	r2, [r2, #4]
+	ldr	r0, [r4, #-52]
+	lsl	r1, r1, #9
+	str	r3, [sp, #12]
+	str	r2, [r3, #4]
 	bl	js_hash
-	ldr	r3, .L3052+16
-	ldr	r3, [r3]
+	ldr	r3, [sp, #12]
+	str	r0, [r3, #8]
+	ldr	r3, [r10]
 	tst	r3, #4096
-	str	r0, [r4, #-48]
-	beq	.L3019
-	ldr	r3, .L3052
-	ldr	r0, .L3052+20
-	ldrb	r1, [r4, #200]	@ zero_extendqisi2
-	ldr	r3, [r3, #2804]
-	ldrh	r2, [r4, #202]
+	beq	.L2975
+	ldr	r3, [r6, #2800]
+	ldrh	r2, [r4, #-54]
+	ldrb	r1, [r4, #-56]	@ zero_extendqisi2
 	ldr	r3, [r3, #4]
+	ldr	r0, .L3010+20
 	bl	printk
-.L3019:
-	ldr	r3, .L3052+24
-	ldrh	r0, [r7, #202]
+.L2975:
+	ldr	r3, .L3010+24
+	ldrh	r0, [r4, #-54]
 	ldrh	r3, [r3]
 	cmp	r3, r0
-	bhi	.L3020
-.L3025:
-	ldrb	r3, [r7, #201]	@ zero_extendqisi2
+	bhi	.L2976
+	ldr	fp, .L3010+28
+	ldr	r5, .L3010+32
+.L2983:
+	ldrb	r3, [r4, #-55]	@ zero_extendqisi2
 	add	r3, r3, #1
 	uxtb	r3, r3
-	strb	r3, [r7, #201]
 	cmp	r3, #7
-	bls	.L3021
+	strb	r3, [r4, #-55]
+	bls	.L2977
 	mov	r3, #8
-.L3024:
-	ldr	r2, [r6, #1176]
-	sub	r5, r3, #8
+.L2982:
+	ldr	r2, [r6, #1040]
+	sub	r8, r3, #8
+	uxth	r8, r8
 	add	r2, r2, r3
-	uxth	r5, r5
 	ldrb	r1, [r2, #32]	@ zero_extendqisi2
 	add	r2, r1, #127
 	uxtb	r2, r2
 	cmp	r2, #125
-	bhi	.L3022
-	ldr	r1, .L3052+28
+	bhi	.L2978
 	movw	r2, #846
-	ldr	r0, .L3052+32
+	mov	r1, fp
+	mov	r0, r5
 	bl	printk
 	bl	dump_stack
-	b	.L3023
-.L3022:
-	cmp	r1, #255
-	bne	.L3023
-	add	r3, r3, #1
-	cmp	r3, #16
-	bne	.L3024
-	mov	r5, #8
-.L3023:
+.L2981:
+	strb	r8, [r4, #-55]
 	mov	r8, #1
-	strb	r5, [r7, #201]
-.L3021:
-	ldr	r3, [r6, #1176]
-	ldrb	r2, [r7, #201]	@ zero_extendqisi2
+.L2977:
+	ldr	r3, [r6, #1040]
+	ldrb	r2, [r4, #-55]	@ zero_extendqisi2
 	add	r3, r3, r2
 	ldrb	r3, [r3, #40]	@ zero_extendqisi2
 	cmp	r3, #255
-	strb	r3, [r7, #200]
-	beq	.L3025
-	ldrh	r5, [r9]
+	strb	r3, [r4, #-56]
+	beq	.L2983
+	ldrh	r5, [r7, #-2]
 	mov	r0, #0
-	mul	r5, r5, r3
+	mul	r5, r3, r5
 	mov	r1, r5
 	bl	flash_erase_block
-	ldr	r3, .L3052
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
 	mov	r1, r5
+	ldr	r2, [r4, #-52]
 	mov	r0, #0
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
 	str	r3, [sp]
-	ldr	r3, .L3052+4
-	ldr	r2, [r4, #204]
+	ldr	r3, [r4, #-76]
 	bl	ftl_prog_page
 	mov	r3, #1
-	strh	r3, [r4, #202]	@ movhi
 	add	r5, r5, r3
-	b	.L3026
-.L3020:
-	ldr	r3, [sp, #12]
+	strh	r3, [r4, #-54]	@ movhi
+.L2984:
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
+	mov	r1, r5
+	ldr	r2, [r4, #-52]
+	mov	r0, #0
+	str	r3, [sp]
+	ldr	r3, [r4, #-76]
+	bl	ftl_prog_page
+	ldrh	r3, [r4, #-54]
+	cmn	r0, #1
+	add	r3, r3, #1
+	strh	r3, [r4, #-54]	@ movhi
+	beq	.L2985
+	ldrb	r3, [r4, #-48]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L2986
+.L2985:
+	mov	r3, #0
+	strb	r3, [r4, #-48]
+	b	.L2987
+.L2978:
+	cmp	r1, #255
+	bne	.L2981
+	add	r3, r3, #1
+	cmp	r3, #16
+	bne	.L2982
+	mov	r8, #8
+	b	.L2981
+.L2976:
+	ldr	r3, [sp, #8]
 	cmp	r0, #0
 	mla	r5, fp, r5, r3
-	bne	.L3026
+	bne	.L2984
 	mov	r1, r5
 	bl	flash_erase_block
-.L3026:
-	ldrb	r3, [r6, #2772]	@ zero_extendqisi2
-	mov	r0, #0
-	ldr	fp, .L3052+8
-	mov	r1, r5
-	str	r3, [sp]
-	sub	r3, fp, #56
-	ldr	r2, [r7, #204]
-	bl	ftl_prog_page
-	ldrh	r3, [r7, #202]
-	add	r3, r3, #1
-	strh	r3, [r7, #202]	@ movhi
-	cmn	r0, #1
-	beq	.L3027
-	ldrb	r3, [r4, #208]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L3028
-.L3027:
-	mov	r3, #0
-	strb	r3, [r7, #208]
-	b	.L3029
-.L3028:
+	b	.L2984
+.L2986:
 	cmp	r8, #1
-	beq	.L3030
-.L3038:
-	ldr	r3, .L3052+8
-	ldrb	r3, [r3, #200]	@ zero_extendqisi2
+	beq	.L2988
+.L2996:
+	ldrb	r3, [r4, #-56]	@ zero_extendqisi2
 	cmp	r3, #255
-	bne	.L3032
-	ldr	r1, .L3052+28
+	bne	.L2990
 	movw	r2, #890
-	ldr	r0, .L3052+32
+	ldr	r1, .L3010+28
+	ldr	r0, .L3010+32
 	bl	printk
 	bl	dump_stack
-	b	.L3032
-.L3030:
-	ldrb	r4, [fp, #201]	@ zero_extendqisi2
-	add	r4, r4, #1
-.L3033:
-	cmp	r4, #7
-	bhi	.L3038
-	ldr	r3, [r6, #1176]
-	add	r3, r3, r4
-	ldrb	r5, [r3, #40]	@ zero_extendqisi2
-	add	r3, r5, #127
-	uxtb	r3, r3
-	cmp	r3, #125
-	bhi	.L3034
-	ldr	r1, .L3052+28
-	movw	r2, #881
-	ldr	r0, .L3052+32
-	bl	printk
-	bl	dump_stack
-	b	.L3035
-.L3034:
-	cmp	r5, #255
-	beq	.L3036
-.L3035:
-	ldr	r3, .L3052+12
-	mov	r0, #0
-	ldrh	r1, [r3]
-	mul	r1, r1, r5
-	bl	flash_erase_block
-.L3036:
-	add	r4, r4, #1
-	uxth	r4, r4
-	b	.L3033
-.L3032:
+.L2990:
 	mov	r0, #0
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3053:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2988:
+	ldrb	r5, [r4, #-55]	@ zero_extendqisi2
+	ldr	r8, .L3010+28
+	ldr	r9, .L3010+32
+	add	r5, r5, #1
+.L2991:
+	cmp	r5, #7
+	bhi	.L2996
+	ldr	r3, [r6, #1040]
+	add	r3, r3, r5
+	ldrb	r10, [r3, #40]	@ zero_extendqisi2
+	add	r3, r10, #127
+	uxtb	r3, r3
+	cmp	r3, #125
+	bhi	.L2992
+	movw	r2, #881
+	mov	r1, r8
+	mov	r0, r9
+	bl	printk
+	bl	dump_stack
+.L2993:
+	ldrh	r1, [r7, #-2]
+	mov	r0, #0
+	mul	r1, r10, r1
+	bl	flash_erase_block
+	b	.L2994
+.L2992:
+	cmp	r10, #255
+	bne	.L2993
+.L2994:
+	add	r5, r5, #1
+	uxth	r5, r5
+	b	.L2991
+.L3011:
 	.align	2
-.L3052:
-	.word	.LANCHOR0
-	.word	.LANCHOR3-56
+.L3010:
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3066
+	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LC187
+	.word	.LANCHOR3-3072
+	.word	.LANCHOR3-3074
+	.word	.LC186
 	.word	.LANCHOR3-3096
-	.word	.LANCHOR1+2348
+	.word	.LANCHOR1+2149
 	.word	.LC0
 	.fnend
 	.size	ftl_info_flush, .-ftl_info_flush
 	.align	2
 	.global	ftl_info_blk_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_info_blk_init, %function
 ftl_info_blk_init:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 16
+	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	mov	r3, #1
-	ldr	r4, .L3087
+	ldr	r4, .L3043
 	mov	r6, #0
-	ldr	r5, .L3087+4
 	mov	r1, r6
 	mov	r2, #16384
-	.pad #28
-	sub	sp, sp, #28
-	strb	r3, [r4, #208]
-	mov	r10, r4
-	strb	r3, [r4, #210]
-	movw	r3, #1076
-	ldr	r0, [r4, #204]
+	ldr	r5, .L3043+4
+	.pad #20
+	sub	sp, sp, #20
+	strb	r3, [r4, #-48]
+	strb	r3, [r4, #-46]
+	movw	r3, #1080
+	ldr	r0, [r4, #-52]
 	ldrh	r3, [r5, r3]
-	strb	r6, [r4, #209]
-	str	r0, [r5, #1080]
-	add	r3, r0, r3, asl #2
-	str	r3, [r5, #2804]
+	strb	r6, [r4, #-47]
+	str	r0, [r5, #1084]
+	ldr	r10, .L3043+8
+	add	r3, r0, r3, lsl #2
+	ldr	r9, .L3043+12
+	str	r3, [r5, #2800]
 	bl	ftl_memset
 	mov	r1, r6
-	ldr	r0, [r4, #212]
 	mov	r2, #16384
+	ldr	r0, [r4, #-44]
 	bl	ftl_memset
-	ldr	r3, [r5, #1176]
-	ldr	fp, .L3087+8
-	strb	r6, [r4, #201]
-	ldrb	r3, [r3, #40]	@ zero_extendqisi2
-	strh	r6, [r4, #202]	@ movhi
+	ldr	r3, [r5, #1040]
+	strb	r6, [r4, #-55]
+	strh	r6, [r4, #-54]	@ movhi
 	mov	r6, #7
-	strb	r3, [r4, #200]
-.L3059:
-	ldr	r3, [r5, #1176]
-	uxth	r7, r6
-	ldr	ip, .L3087+4
-	add	r3, r3, r6
 	ldrb	r3, [r3, #40]	@ zero_extendqisi2
-	cmp	r3, #255
-	beq	.L3055
-	ldr	r2, .L3087+12
+	strb	r3, [r4, #-56]
+.L3014:
+	ldr	r3, [r5, #1040]
+	sxth	r8, r6
+	add	r3, r3, r6
+	ldrb	r7, [r3, #40]	@ zero_extendqisi2
+	cmp	r7, #255
+	bne	.L3013
+.L3018:
+	subs	r6, r6, #1
+	bcs	.L3014
+	mov	r7, r6
+	mov	r8, #0
+.L3015:
+	ldr	r6, .L3043+8
+	ldr	r3, [r6]
+	tst	r3, #4096
+	beq	.L3019
+	ldr	r3, [r5, #2800]
+	mov	r2, #4800
+	mov	r1, r7
+	ldr	r0, .L3043+16
+	ldr	r3, [r3]
+	bl	printk
+.L3019:
+	cmn	r7, #1
+	bne	.L3020
+	mov	r2, #16384
+	mov	r1, #0
+	ldr	r0, [r4, #-52]
+	bl	ftl_memset
+	ldr	r3, [r5, #2800]
+	ldr	r2, .L3043+12
+	str	r2, [r3]
+	ldr	r2, .L3043+20
+	ldr	r3, [r5, #2800]
+	str	r2, [r3, #12]
+.L3042:
+	mov	r0, r7
+.L3012:
+	add	sp, sp, #20
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3013:
+	ldr	r3, .L3043+24
 	mov	r0, #0
-	str	ip, [sp, #12]
-	ldrh	r9, [r2]
-	ldr	r2, [r4, #204]
-	mul	r9, r9, r3
-	ldrb	r3, [ip, #2772]	@ zero_extendqisi2
+	ldr	r2, [r4, #-52]
+	ldrh	r3, [r3]
+	mul	r7, r7, r3
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
 	str	r3, [sp]
-	ldr	r3, .L3087+16
-	mov	r1, r9
+	mov	r1, r7
+	ldr	r3, [r4, #-76]
 	bl	ftl_read_page
 	cmn	r0, #1
-	mov	r8, r0
-	ldr	ip, [sp, #12]
-	bne	.L3056
-	ldrb	r3, [ip, #2772]	@ zero_extendqisi2
+	mov	fp, r0
+	bne	.L3016
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
+	add	r1, r7, #1
+	ldr	r2, [r4, #-52]
 	mov	r0, #0
-	add	r1, r9, #1
 	str	r3, [sp]
-	ldr	r3, .L3087+16
-	ldr	r2, [r10, #204]
+	ldr	r3, [r4, #-76]
 	bl	ftl_read_page
-	mov	r8, r0
-.L3056:
-	ldr	r3, .L3087+20
-	ldr	r3, [r3]
+	mov	fp, r0
+.L3016:
+	ldr	r3, [r10]
 	tst	r3, #4096
-	beq	.L3057
-	ldr	r3, [r5, #2804]
+	beq	.L3017
+	ldr	r3, [r5, #2800]
+	mov	r2, fp
 	mov	r1, r6
-	ldr	r0, .L3087+24
-	mov	r2, r8
+	ldr	r0, .L3043+28
 	ldr	r3, [r3]
 	str	r3, [sp]
 	movw	r3, #749
 	bl	printk
-.L3057:
-	cmn	r8, #1
-	beq	.L3055
-	ldr	r3, [r5, #2804]
+.L3017:
+	cmn	fp, #1
+	beq	.L3018
+	ldr	r3, [r5, #2800]
 	ldr	r3, [r3]
-	cmp	r3, fp
-	beq	.L3069
-.L3055:
-	subs	r6, r6, #1
-	bcs	.L3059
-	movw	r6, #65535
-	mov	r7, #0
-	b	.L3058
-.L3069:
-	mov	r6, r7
-.L3058:
-	ldr	r3, .L3087+20
-	sxth	r6, r6
-	ldr	r2, [r3]
-	str	r3, [sp, #16]
-	tst	r2, #4096
-	beq	.L3060
-	ldr	r3, [r5, #2804]
-	mov	r1, r6
-	ldr	r0, .L3087+28
-	mov	r2, #4800
-	ldr	r3, [r3]
-	bl	printk
-.L3060:
-	cmn	r6, #1
-	bne	.L3061
-	mov	r2, #16384
-	ldr	r0, [r4, #204]
-	mov	r1, #0
-	bl	ftl_memset
-	ldr	r3, [r5, #2804]
-	ldr	r2, .L3087+8
-	mov	r0, r6
-	str	r2, [r3]
-	ldr	r2, .L3087+32
-	ldr	r3, [r5, #2804]
-	str	r2, [r3, #12]
-	b	.L3062
-.L3061:
-	ldr	r3, [r5, #1176]
+	cmp	r3, r9
+	bne	.L3018
+	mov	r7, r8
+	b	.L3015
+.L3020:
+	ldr	r3, [r5, #1040]
 	mov	r0, #0
-	ldr	r2, [r4, #204]
-	sxtah	r3, r3, r7
-	strb	r7, [r4, #201]
-	ldr	r6, .L3087+36
+	ldr	r2, [r4, #-52]
 	mov	r7, #0
+	strb	r8, [r4, #-55]
+	add	r3, r3, r8
+	ldr	r10, .L3043+12
 	ldrb	r1, [r3, #40]	@ zero_extendqisi2
 	mov	r3, #4
 	str	r3, [sp]
-	ldr	r3, .L3087+16
-	strb	r1, [r4, #200]
+	ldr	r3, [r4, #-76]
+	strb	r1, [r4, #-56]
 	bl	flash_get_last_written_page
-	ldrh	r8, [r6, #-10]
-	add	r6, r6, #3056
-	ldr	fp, .L3087+8
 	uxth	r9, r0
-	mov	r10, r0
+	ldrb	r8, [r4, #-56]	@ zero_extendqisi2
+	ldr	fp, .L3043+32
 	add	r3, r9, #1
 	uxth	r3, r3
-	str	r3, [sp, #12]
-	ldrb	r3, [r4, #200]	@ zero_extendqisi2
-	mul	r8, r8, r3
-.L3063:
-	rsb	r3, r7, r9
+	str	r3, [sp, #8]
+	ldr	r3, .L3043+36
+	ldrh	r3, [r3, #-2]
+	mla	r8, r3, r8, r0
+.L3022:
+	sub	r3, r9, r7
 	tst	r3, #32768
-	bne	.L3067
-	ldrb	r3, [r5, #2772]	@ zero_extendqisi2
-	add	r1, r10, r8
-	ldr	ip, .L3087+4
+	bne	.L3026
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
+	sub	r1, r8, r7
+	ldr	r2, [r4, #-52]
 	mov	r0, #0
-	rsb	r1, r7, r1
-	ldr	r2, [r4, #204]
 	str	r3, [sp]
-	ldr	r3, .L3087+16
-	str	ip, [sp, #20]
+	ldr	r3, [r4, #-76]
 	bl	ftl_read_page
 	cmn	r0, #1
-	beq	.L3064
-	ldr	ip, [sp, #20]
-	ldr	r3, [ip, #2804]
+	beq	.L3023
+	ldr	r3, [r5, #2800]
 	ldr	r3, [r3]
-	cmp	r3, fp
-	bne	.L3064
-	ldr	r3, [r6, #-48]
+	cmp	r3, r10
+	bne	.L3023
+	ldr	r3, [r4, #-76]
+	ldr	r3, [r3, #8]
 	cmp	r3, #0
-	bne	.L3065
-.L3067:
-	ldrh	r3, [sp, #12]
-	strh	r3, [r4, #202]	@ movhi
+	bne	.L3024
+.L3026:
+	ldrh	r3, [sp, #8]
+	strh	r3, [r4, #-54]	@ movhi
 	bl	ftl_tmp_into_update
-	ldr	r2, [r5, #2804]
+	ldr	r2, [r5, #2800]
 	mov	r0, #0
 	ldr	r3, [r2, #64]
 	add	r3, r3, #1
@@ -18100,301 +18432,282 @@
 	bl	ftl_info_flush
 	mov	r0, #0
 	bl	ftl_info_flush
-	ldr	r3, [sp, #16]
-	ldr	r0, [r3]
-	ands	r0, r0, #16384
-	beq	.L3062
-	ldr	r3, .L3087+4
-	ldr	r0, .L3087+40
-	ldr	r3, [r3, #2804]
+	ldr	r7, [r6]
+	ands	r7, r7, #16384
+	beq	.L3042
+	ldr	r3, [r5, #2800]
+	ldr	r0, .L3043+40
 	ldr	r1, [r3, #156]
 	bl	printk
 	mov	r0, #0
-	b	.L3062
-.L3065:
-	ldrb	r1, [ip, #2772]	@ zero_extendqisi2
-	ldr	r0, [r6, #204]
-	str	r3, [sp, #20]
-	mov	r1, r1, asl #9
+	b	.L3012
+.L3024:
+	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
+	ldr	r0, [r4, #-52]
+	str	r3, [sp, #12]
+	lsl	r1, r1, #9
 	bl	js_hash
-	ldr	r3, [sp, #20]
+	ldr	r3, [sp, #12]
 	cmp	r3, r0
-	beq	.L3067
-	ldr	r0, .L3087+44
-	ldr	r1, [r6, #-48]
+	beq	.L3026
+	ldr	r3, [r4, #-76]
+	mov	r0, fp
+	ldr	r1, [r3, #8]
 	bl	printk
-.L3064:
+.L3023:
 	add	r7, r7, #1
-	b	.L3063
-.L3062:
-	add	sp, sp, #28
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3088:
+	b	.L3022
+.L3044:
 	.align	2
-.L3087:
+.L3043:
 	.word	.LANCHOR3
 	.word	.LANCHOR0
-	.word	1229739078
-	.word	.LANCHOR3-3066
-	.word	.LANCHOR3-56
 	.word	.LANCHOR2
+	.word	1229739078
 	.word	.LC188
-	.word	.LC189
 	.word	393252
-	.word	.LANCHOR3-3056
-	.word	.LC191
+	.word	.LANCHOR3-3074
+	.word	.LC187
+	.word	.LC189
+	.word	.LANCHOR3-3072
 	.word	.LC190
 	.fnend
 	.size	ftl_info_blk_init, .-ftl_info_blk_init
 	.align	2
 	.global	ftl_ext_info_flush
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_ext_info_flush, %function
 ftl_ext_info_flush:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
 	.save {r4, r5, r6, r7, r8, r9, lr}
 	.pad #12
 	bl	timer_get_time
-	ldr	r3, .L3105
-	ldr	r4, .L3105+4
+	ldr	r3, .L3061
+	ldr	r5, .L3061+4
 	umull	r0, r1, r0, r3
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r5, #1096]
 	ldr	r0, [r3, #520]
-	mov	r1, r1, lsr #5
+	lsr	r1, r1, #5
 	cmp	r1, r0
-	ldrhi	r2, [r3, #12]
-	rsbhi	r2, r0, r2
-	addhi	r2, r2, r1
-	strhi	r2, [r3, #12]
-	bhi	.L3104
-.L3090:
-	bcs	.L3091
-.L3104:
+	bls	.L3046
+	ldr	r2, [r3, #12]
+	sub	r2, r2, r0
+	add	r2, r2, r1
+	str	r2, [r3, #12]
+.L3060:
 	str	r1, [r3, #520]
-.L3091:
+	b	.L3047
+.L3046:
+	bcc	.L3060
+.L3047:
+	ldr	r4, .L3061+8
 	mov	r0, #0
-	ldr	r7, .L3105+8
 	bl	ftl_total_vpn_update
-	ldr	r6, .L3105+12
-.L3095:
-	ldr	r3, [r4, #2804]
+	sub	r7, r4, #3136
+.L3051:
+	ldr	r3, [r5, #2800]
 	ldr	r2, [r3, #56]
 	add	r2, r2, #1
 	str	r2, [r3, #56]
 	ldrh	r2, [r3, #140]
-	ldrh	r3, [r7]
+	ldr	r3, .L3061+12
+	ldrh	r3, [r3]
 	cmp	r2, r3
-	bcc	.L3093
+	bcc	.L3049
 	bl	ftl_ext_alloc_new_blk
-.L3093:
-	ldr	r3, [r4, #2804]
+.L3049:
+	ldr	r3, [r5, #2800]
 	ldrh	r2, [r3, #130]
 	movw	r3, #65535
 	cmp	r2, r3
-	bne	.L3094
-	ldr	r1, .L3105+16
+	bne	.L3050
 	movw	r2, #2211
-	ldr	r0, .L3105+20
+	ldr	r1, .L3061+16
+	ldr	r0, .L3061+20
 	bl	printk
 	bl	dump_stack
-.L3094:
-	ldr	r1, [r4, #2804]
-	ldr	r0, .L3105+24
-	ldrb	r2, [r4, #1189]	@ zero_extendqisi2
-	ldrh	r3, [r1, #130]
-	ldrh	r0, [r0]
-	rsb	r2, r2, #24
-	ldr	r8, .L3105+12
-	rsb	r2, r0, r2
-	mvn	r0, #0
-	mov	r9, r3, asr r2
-	bic	r3, r3, r0, asl r2
-	ldr	r2, .L3105+28
-	sub	r0, r8, #56
-	sxth	r3, r3
-	ldrh	r5, [r2]
-	ldrh	r2, [r1, #140]
+.L3050:
+	ldr	r2, [r5, #2800]
+	ldrb	r6, [r5, #1153]	@ zero_extendqisi2
+	ldrh	r1, [r7, #-2]
+	ldrh	r3, [r2, #130]
+	rsb	r6, r6, #24
+	ldr	r0, [r4, #-76]
+	sub	r6, r6, r1
+	mvn	r1, #0
+	asr	r8, r3, r6
+	bic	r6, r3, r1, lsl r6
+	ldr	r3, .L3061+24
+	sxth	r6, r6
+	ldrh	r1, [r3, #-2]
+	ldrh	r3, [r2, #140]
+	ldrb	r2, [r4, #-2546]	@ zero_extendqisi2
+	mla	r6, r1, r6, r3
+	lsl	r2, r2, #1
 	mov	r1, #0
-	mla	r5, r5, r3, r2
-	ldrb	r2, [r4, #2772]	@ zero_extendqisi2
-	mov	r2, r2, asl #1
 	bl	ftl_memset
-	mov	r3, #0
-	str	r3, [r6, #-56]
-	ldr	r3, [r4, #2804]
-	ldrb	r1, [r4, #2772]	@ zero_extendqisi2
-	ldr	r0, [r6, #212]
+	ldr	r3, [r4, #-76]
+	mov	r2, #0
+	str	r2, [r3]
+	ldr	r3, [r5, #2800]
+	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
+	ldr	r9, [r4, #-76]
 	ldr	r3, [r3, #56]
-	mov	r1, r1, asl #9
-	str	r3, [r6, #-52]
+	ldr	r0, [r4, #-44]
+	lsl	r1, r1, #9
+	str	r3, [r9, #4]
 	bl	js_hash
-	ldrb	r3, [r4, #2772]	@ zero_extendqisi2
-	mov	r1, r5
-	ldr	r2, [r6, #212]
-	str	r0, [r6, #-48]
-	uxtb	r0, r9
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
+	mov	r1, r6
+	str	r0, [r9, #8]
+	uxtb	r0, r8
+	ldr	r2, [r4, #-44]
 	str	r3, [sp]
-	sub	r3, r8, #56
+	ldr	r3, [r4, #-76]
 	bl	ftl_prog_page
-	ldr	r2, [r4, #2804]
+	ldr	r2, [r5, #2800]
 	ldrh	r3, [r2, #140]
 	add	r3, r3, #1
 	uxth	r3, r3
-	strh	r3, [r2, #140]	@ movhi
 	cmp	r3, #1
-	beq	.L3095
+	strh	r3, [r2, #140]	@ movhi
+	beq	.L3051
 	cmn	r0, #1
-	beq	.L3096
-	ldrb	r0, [r8, #210]	@ zero_extendqisi2
+	beq	.L3052
+	ldrb	r0, [r4, #-46]	@ zero_extendqisi2
 	cmp	r0, #0
-	beq	.L3097
-.L3096:
-.L3092:
+	beq	.L3053
+.L3052:
+.L3048:
 	mov	r3, #0
-	strb	r3, [r8, #210]
-	b	.L3095
-.L3097:
+	strb	r3, [r4, #-46]
+	b	.L3051
+.L3053:
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L3106:
+	pop	{r4, r5, r6, r7, r8, r9, pc}
+.L3062:
 	.align	2
-.L3105:
+.L3061:
 	.word	1374389535
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3096
 	.word	.LANCHOR3
-	.word	.LANCHOR1+2364
+	.word	.LANCHOR3-3096
+	.word	.LANCHOR1+2164
 	.word	.LC0
-	.word	.LANCHOR3-3132
-	.word	.LANCHOR3-3066
+	.word	.LANCHOR3-3072
 	.fnend
 	.size	ftl_ext_info_flush, .-ftl_ext_info_flush
 	.align	2
 	.global	ftl_ext_info_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_ext_info_init, %function
 ftl_ext_info_init:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 16
+	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	ip, .L3127
-	mov	r2, #0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	sub	r3, ip, #2528
-	ldr	r4, .L3127+4
-	mvn	r5, #0
-	strh	r2, [r3, #-12]	@ movhi
-	sub	r2, ip, #3120
-	.pad #28
-	sub	sp, sp, #28
-	ldr	r3, [r4, #2804]
-	ldrb	r9, [r4, #1189]	@ zero_extendqisi2
-	ldrh	r6, [r2, #-12]
-	ldrh	r3, [r3, #130]
-	rsb	r8, r9, #24
-	rsb	r6, r6, r8
-	str	ip, [sp, #12]
-	bic	r5, r3, r5, asl r6
-	mov	fp, r3, asr r6
+	mov	r2, #0
+	ldr	r4, .L3083
+	.pad #20
+	sub	sp, sp, #20
+	ldr	r5, .L3083+4
+	sub	r3, r4, #2544
+	strh	r2, [r3, #-4]	@ movhi
+	sub	r2, r4, #3136
+	ldr	r3, [r5, #2800]
+	ldrh	r2, [r2, #-2]
+	ldrh	r6, [r3, #130]
+	ldrb	r3, [r5, #1153]	@ zero_extendqisi2
+	rsb	r3, r3, #24
+	sub	r3, r3, r2
+	mvn	r2, #0
+	asr	r7, r6, r3
+	bic	r6, r6, r2, lsl r3
+	uxtb	r10, r7
 	mov	r3, #4
-	mov	r1, r5
 	str	r3, [sp]
-	uxtb	r10, fp
-	ldr	r2, [ip, #212]
-	sub	r3, ip, #56
+	mov	r1, r6
+	ldr	r3, [r4, #-76]
 	mov	r0, r10
+	ldr	r2, [r4, #-44]
 	bl	flash_get_last_written_page
-	ldr	r3, .L3127+8
+	ldr	r3, .L3083+8
+	mov	r8, r0
 	ldr	r2, [r3]
+	str	r3, [sp, #8]
 	tst	r2, #4096
-	mov	r7, r0
-	str	r3, [sp, #16]
-	beq	.L3108
-	uxth	fp, fp
-	str	fp, [sp]
-	ldr	r3, [r4, #2804]
+	beq	.L3064
+	ldr	r3, [r5, #2800]
+	uxth	r7, r7
 	mov	r2, #2256
-	ldr	r0, .L3127+12
-	ldr	r1, .L3127+16
+	ldr	r1, .L3083+12
 	ldrh	r3, [r3, #130]
+	str	r7, [sp]
 	str	r3, [sp, #4]
-	mov	r3, r7
+	mov	r3, r0
+	ldr	r0, .L3083+16
 	bl	printk
-.L3108:
-	ldr	r9, .L3127
-	mov	r8, #0
-	ldr	fp, .L3127+20
-.L3109:
-	uxth	r6, r7
-	rsb	r3, r8, r6
+.L3064:
+	ldr	fp, .L3083+20
+	mov	r9, #0
+.L3065:
+	uxth	r7, r8
+	sub	r3, r7, r9
 	tst	r3, #32768
-	bne	.L3114
-	ldr	r3, .L3127+24
-	rsb	r1, r8, r7
-	ldrb	r2, [r4, #2772]	@ zero_extendqisi2
+	bne	.L3070
+	ldr	r3, .L3083+24
+	sub	r1, r8, r9
+	ldrh	r0, [r3]
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
+	mla	r1, r6, r0, r1
+	str	r3, [sp]
+	ldr	r3, [r4, #-76]
+	ldr	r2, [r4, #-44]
 	mov	r0, r10
-	ldr	ip, .L3127+4
-	ldrh	r3, [r3]
-	str	r2, [sp]
-	str	ip, [sp, #20]
-	mla	r1, r3, r5, r1
-	ldr	r3, [sp, #12]
-	ldr	r2, [r3, #212]
-	ldr	r3, .L3127+28
 	bl	flash_read_page_en
 	cmp	r0, #512
 	cmnne	r0, #1
-	ldr	ip, [sp, #20]
-	beq	.L3110
-	ldr	r3, [ip, #1092]
+	beq	.L3066
+	ldr	r3, [r5, #1096]
+	ldr	r2, .L3083+28
 	ldr	r3, [r3]
-	cmp	r3, fp
-	bne	.L3110
-	ldr	r3, [r9, #-48]
+	cmp	r3, r2
+	bne	.L3066
+	ldr	r3, [r4, #-76]
+	ldr	r3, [r3, #8]
 	cmp	r3, #0
-	bne	.L3111
-.L3114:
+	bne	.L3067
+.L3070:
 	bl	zftl_sblk_list_init
-	ldr	r3, [r4, #2804]
+	ldr	r3, [r5, #2800]
 	ldrh	r2, [r3, #140]
-	cmp	r2, r7
-	bgt	.L3113
-	add	r6, r6, #1
-	strh	r6, [r3, #140]	@ movhi
+	cmp	r2, r8
+	bgt	.L3069
+	add	r7, r7, #1
+	strh	r7, [r3, #140]	@ movhi
 	bl	ftl_ext_info_flush
-	b	.L3113
-.L3111:
-	ldrb	r1, [ip, #2772]	@ zero_extendqisi2
-	ldr	r0, [r9, #212]
-	str	r3, [sp, #20]
-	mov	r1, r1, asl #9
-	bl	js_hash
-	ldr	r3, [sp, #20]
-	cmp	r3, r0
-	beq	.L3114
-	ldr	r0, .L3127+32
-	ldr	r1, [r9, #-48]
-	bl	printk
-.L3110:
-	add	r8, r8, #1
-	b	.L3109
-.L3113:
-	ldr	r5, [r4, #1092]
+.L3069:
+	ldr	r4, [r5, #1096]
 	bl	timer_get_time
-	ldr	r3, .L3127+36
+	ldr	r3, .L3083+32
 	umull	r0, r1, r0, r3
-	mov	r3, r1, lsr #5
-	str	r3, [r5, #520]
-	ldr	r5, [r4, #1092]
+	lsr	r3, r1, #5
+	str	r3, [r4, #520]
+	ldr	r4, [r5, #1096]
 	bl	timer_get_time
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r5, #1096]
 	mov	r2, #0
+	str	r0, [r4, #604]
 	add	r1, r3, #584
-	str	r0, [r5, #604]
 	str	r2, [r3, #608]
 	mvn	r2, #0
 	strh	r2, [r1]	@ movhi
@@ -18406,2066 +18719,2053 @@
 	strh	r2, [r3, r1]	@ movhi
 	movw	r1, #65535
 	str	r2, [r3, #564]
-	ldr	r2, [sp, #16]
+	ldr	r2, [sp, #8]
 	str	r1, [r3, #560]
 	ldr	r2, [r2]
 	tst	r2, #4096
-	beq	.L3116
-	ldr	r5, [r3, #520]
-	ldr	r4, [r3, #12]
+	beq	.L3072
+	ldr	r4, [r3, #520]
+	ldr	r5, [r3, #12]
 	bl	timer_get_time
-	ldr	r1, .L3127+16
-	mov	r2, r5
-	mov	r3, r4
+	mov	r2, r4
 	str	r0, [sp]
-	ldr	r0, .L3127+40
+	mov	r3, r5
+	ldr	r1, .L3083+12
+	ldr	r0, .L3083+36
 	bl	printk
-.L3116:
-	ldr	r3, .L3127+44
+.L3072:
+	ldr	r3, .L3083+40
 	mvn	r2, #0
 	mov	r0, #0
-	strh	r2, [r3]	@ movhi
-	add	sp, sp, #28
+	strh	r2, [r3, #-4]	@ movhi
+	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3128:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3067:
+	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
+	ldr	r0, [r4, #-44]
+	str	r3, [sp, #12]
+	lsl	r1, r1, #9
+	bl	js_hash
+	ldr	r3, [sp, #12]
+	cmp	r3, r0
+	beq	.L3070
+	ldr	r3, [r4, #-76]
+	mov	r0, fp
+	ldr	r1, [r3, #8]
+	bl	printk
+.L3066:
+	add	r9, r9, #1
+	b	.L3065
+.L3084:
 	.align	2
-.L3127:
+.L3083:
 	.word	.LANCHOR3
 	.word	.LANCHOR0
 	.word	.LANCHOR2
+	.word	.LANCHOR1+2183
+	.word	.LC191
 	.word	.LC192
-	.word	.LANCHOR1+2384
+	.word	.LANCHOR3-3074
 	.word	1162432070
-	.word	.LANCHOR3-3066
-	.word	.LANCHOR3-56
-	.word	.LC193
 	.word	1374389535
-	.word	.LC194
+	.word	.LC193
 	.word	.LANCHOR3-3152
 	.fnend
 	.size	ftl_ext_info_init, .-ftl_ext_info_init
 	.align	2
 	.global	ftl_prog_ppa_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_prog_ppa_page, %function
 ftl_prog_ppa_page:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r4, lr}
-	.save {r4, lr}
-	.pad #8
-	mov	lr, r2
-	ldr	r2, .L3131
-	mov	ip, r0
-	mov	r4, r1
-	ldrb	r0, [r2, #1189]	@ zero_extendqisi2
-	mov	r2, #1
+	ldr	ip, .L3087
+	push	{r0, r1, r2, r4, r5, lr}
+	.save {r4, r5, lr}
+	.pad #12
+	ldrb	r5, [ip, #1153]	@ zero_extendqisi2
+	mov	ip, #1
 	str	r3, [sp]
-	mov	r3, lr
-	rsb	r1, r0, #24
-	mov	r0, r2, asl r0
-	sub	r0, r0, #1
-	and	r0, r0, ip, lsr r1
-	mov	r1, r2, asl r1
-	sub	r1, r1, #1
-	mov	r2, r4
-	and	r1, r1, ip
-	uxtb	r0, r0
+	mov	r3, r2
+	mov	r2, r1
+	rsb	r4, r5, #24
+	lsl	lr, ip, r4
+	lsl	ip, ip, r5
+	sub	ip, ip, #1
+	sub	lr, lr, #1
+	and	ip, ip, r0, lsr r4
+	and	r1, lr, r0
+	uxtb	r0, ip
 	bl	ftl_prog_page
-	add	sp, sp, #8
+	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, pc}
-.L3132:
+	pop	{r4, r5, pc}
+.L3088:
 	.align	2
-.L3131:
+.L3087:
 	.word	.LANCHOR0
 	.fnend
 	.size	ftl_prog_ppa_page, .-ftl_prog_ppa_page
 	.align	2
 	.global	ftl_write_last_log_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_write_last_log_page, %function
 ftl_write_last_log_page:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	ldrh	r3, [r0, #6]
+	cmp	r3, #1
+	bne	.L3091
+	push	{r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	mov	r4, r0
-	ldrh	r3, [r0, #6]
-	ldr	r5, .L3138
-	cmp	r3, #1
+	ldr	r5, .L3097
 	ldrh	r8, [r0, #12]
-	ldr	r6, [r5, #-2548]
-	bne	.L3135
+	ldr	r6, [r5, #-2556]
 	bl	ftl_get_new_free_page
 	cmn	r0, #1
 	mov	r7, r0
-	beq	.L3136
+	beq	.L3092
 	ldrh	r0, [r4]
-	add	r6, r6, r8, asl #2
+	add	r6, r6, r8, lsl #2
 	bl	ftl_vpn_decrement
-	ldr	r3, .L3138+4
+	ldr	r3, [r5, #-40]
 	mov	r0, r6
-	mov	r4, #0
-	str	r3, [r5, #264]
+	ldr	r2, .L3097+4
+	str	r2, [r3]
 	sub	r3, r5, #3088
-	ldrh	r1, [r3, #-8]
-	ldrb	r3, [r5, #-3123]	@ zero_extendqisi2
-	mul	r1, r3, r1
-	mov	r1, r1, asl #2
+	ldrh	r3, [r3, #-8]
+	ldrb	r1, [r5, #-3127]	@ zero_extendqisi2
+	ldr	r4, [r5, #-40]
+	mul	r1, r1, r3
+	lsl	r1, r1, #2
 	bl	js_hash
-	mov	r1, r5
-	str	r4, [r1, #280]!
+	ldr	r1, [r5, #-40]
+	str	r0, [r4, #4]
+	mov	r4, #0
 	mov	r2, r4
-	str	r4, [r5, #272]
-	str	r4, [r5, #276]
-	str	r0, [r5, #268]
 	mov	r0, #2
+	str	r4, [r1, #8]
+	str	r4, [r1, #12]
+	str	r4, [r1, #16]!
 	bl	ftl_debug_info_fill
-	ldr	r3, .L3138+8
-	mov	r0, r7
+	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
 	mov	r1, r6
-	add	r2, r5, #264
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
+	ldr	r2, [r5, #-40]
+	mov	r0, r7
 	bl	ftl_prog_ppa_page
-	b	.L3136
-.L3135:
-	mvn	r0, #0
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L3136:
+.L3092:
 	mov	r0, #0
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L3139:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L3091:
+	mvn	r0, #0
+	bx	lr
+.L3098:
 	.align	2
-.L3138:
+.L3097:
 	.word	.LANCHOR3
 	.word	-178307901
-	.word	.LANCHOR0
 	.fnend
 	.size	ftl_write_last_log_page, .-ftl_write_last_log_page
 	.align	2
 	.global	ftl_dump_write_open_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_dump_write_open_sblk, %function
 ftl_dump_write_open_sblk:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 72
+	@ args = 0, pretend = 0, frame = 64
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L3182
-	movw	r2, #1076
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r6, r0
-	ldrh	r2, [r3, r2]
-	.pad #116
-	sub	sp, sp, #116
-	cmp	r2, r0
-	bls	.L3140
-	mov	fp, r3
-	ldr	r3, .L3182+4
-	ldrb	r2, [r3, #-3116]	@ zero_extendqisi2
+	movw	r3, #1080
+	ldr	r4, .L3138
+	.pad #108
+	sub	sp, sp, #108
+	ldrh	r3, [r4, r3]
+	cmp	r3, r0
+	bls	.L3099
+	ldr	r3, .L3138+4
+	ldrb	r2, [r3, #-3120]	@ zero_extendqisi2
 	cmp	r2, #0
-	bne	.L3142
-	ldrb	r2, [r3, #-3122]	@ zero_extendqisi2
+	bne	.L3101
+	ldrb	r2, [r3, #-3126]	@ zero_extendqisi2
 	cmp	r2, #0
-	beq	.L3140
-.L3142:
-	ldrb	r2, [fp, #1196]	@ zero_extendqisi2
+	beq	.L3099
+.L3101:
+	ldrb	r2, [r4, #1158]	@ zero_extendqisi2
 	cmp	r2, #0
-	bne	.L3140
-	ldr	r2, .L3182
-	mov	r4, r6, asl #2
-	add	r1, sp, #96
-	mov	r0, r6
-	strh	r6, [sp, #80]	@ movhi
-	mov	r5, #0
-	ldr	r2, [r2, #1080]
-	mov	r7, r5
-	ldr	r8, .L3182+8
-	mov	r9, r5
-	add	r2, r2, r4
+	bne	.L3099
+	ldr	r2, [r4, #1084]
+	lsl	r7, r0, #2
+	ldr	r5, .L3138+8
+	add	r1, sp, #88
+	mov	r10, r0
+	strh	r0, [sp, #72]	@ movhi
+	add	r2, r2, r7
+	mov	r6, #0
 	ldrb	r2, [r2, #2]	@ zero_extendqisi2
 	and	r2, r2, #224
 	cmp	r2, #160
-	ldreqb	r10, [r3, #-3124]	@ zero_extendqisi2
-	movne	r10, #1
+	ldrbeq	r8, [r3, #-3128]	@ zero_extendqisi2
+	movne	r8, #1
 	bl	ftl_get_blk_list_in_sblk
-	mov	r2, r8
-	ldrh	r3, [r2, #-8]!
+	ldrh	r3, [r5, #-8]
 	uxtb	r0, r0
-	strb	r0, [sp, #89]
-	str	r2, [sp, #44]
+	strh	r6, [sp, #74]	@ movhi
+	strb	r0, [sp, #81]
+	strb	r6, [sp, #77]
 	smulbb	r0, r3, r0
-	ldr	r2, [fp, #1080]
-	strh	r5, [sp, #82]	@ movhi
-	add	r3, r2, r4
-	strb	r5, [sp, #85]
-	strh	r5, [sp, #90]	@ movhi
-	strh	r0, [sp, #86]	@ movhi
-	ldrh	r1, [r2, r4]
-	ldrb	r3, [r3, #2]	@ zero_extendqisi2
-	ubfx	r1, r1, #0, #11
-	str	r1, [sp]
-	ldr	r2, [r2, r6, asl #2]
-	mov	r1, r6
-	ldr	r0, .L3182+12
-	ubfx	r2, r2, #11, #8
-	str	r2, [sp, #4]
-	mov	r2, r3, lsr #5
-	ubfx	r3, r3, #3, #2
+	ldr	r3, [r4, #1084]
+	strh	r6, [sp, #82]	@ movhi
+	strh	r0, [sp, #78]	@ movhi
+	add	r2, r3, r7
+	ldr	r1, [r3, r10, lsl #2]
+	ldrb	r2, [r2, #2]	@ zero_extendqisi2
+	ldr	r0, .L3138+12
+	ubfx	r1, r1, #11, #8
+	str	r1, [sp, #4]
+	mov	r1, r10
+	ldrh	r3, [r3, r7]
+	mov	r7, r6
+	ubfx	r3, r3, #0, #11
+	str	r3, [sp]
+	ubfx	r3, r2, #3, #2
+	lsr	r2, r2, #5
 	bl	printk
 	mov	r0, #1
 	bl	buf_alloc
-	add	r3, r8, #3088
 	mov	r4, r0
-	str	r3, [sp, #48]
-.L3144:
-	ldr	r3, [sp, #44]
-	uxth	r8, r5
-	ldrh	r3, [r3]
-	cmp	r3, r8
-	bls	.L3167
-	mov	r3, r8, asl #1
-	mov	ip, #0
-	add	r2, r3, r8
-	sub	r3, r3, #1
-	sub	r2, r2, #1
-	str	r3, [sp, #60]
-	str	r2, [sp, #52]
-.L3155:
-	ldrb	r3, [sp, #89]	@ zero_extendqisi2
-	uxth	r9, ip
-	cmp	r3, r9
-	bls	.L3179
-	add	r3, r9, #8
-	mov	r7, #1
-	mov	r3, r3, asl r7
+	add	r3, r5, #16
+	str	r6, [sp, #44]
 	str	r3, [sp, #64]
-.L3154:
-	cmp	r7, r10
-	bhi	.L3180
-	ldr	r2, [sp, #64]
-	add	r3, sp, #112
-	add	r3, r3, r2
-	ldrh	r2, [r3, #-32]
-	movw	r3, #65535
-	cmp	r2, r3
-	beq	.L3146
-	ldr	r3, .L3182+16
-	cmp	r10, #3
+.L3103:
+	ldr	r3, .L3138+16
+	uxth	r5, r6
 	ldrh	r3, [r3]
-	mul	r3, r3, r2
-	bne	.L3147
-	ldr	r1, .L3182
-	ldrb	r1, [r1, #1197]	@ zero_extendqisi2
-	cmp	r1, #0
-	uxtaheq	r3, r3, r5
-	ldrne	r1, [sp, #52]
-	orreq	r3, r3, r7, asl #24
-	beq	.L3149
-	b	.L3178
-.L3147:
-	cmp	r10, #2
-	uxtahne	r3, r3, r5
-	bne	.L3149
-	ldr	r1, [sp, #60]
-.L3178:
-	add	r3, r3, r1
-	ldr	r1, [sp, #48]
-	add	r3, r3, r7
-	ldrb	r1, [r1, #-3124]	@ zero_extendqisi2
-	orr	r3, r3, r1, asl #24
-.L3149:
-	str	r3, [r4, #24]
-	mov	r0, r4
-	mov	r1, #1
-	str	ip, [sp, #76]
-	str	r2, [sp, #72]
-	str	r3, [sp, #68]
-	bl	sblk_read_page
-	ldr	lr, [r4, #36]
-	sub	r3, lr, #512
-	cmp	lr, #512
-	cmnne	lr, #1
-	clz	r3, r3
-	mov	r3, r3, lsr #5
-	ldr	r2, [sp, #72]
+	cmp	r3, r5
+	bls	.L3111
+	lsl	r3, r5, #1
+	str	r5, [sp, #52]
+	mov	fp, #0
+	sub	r2, r3, #1
+	add	r3, r3, r5
+	sub	r3, r3, #1
+	str	r2, [sp, #48]
 	str	r3, [sp, #56]
-	ldr	ip, [sp, #76]
-	ldr	r3, [sp, #68]
-	bne	.L3146
-	ldr	r0, [r4, #4]
-	ldr	r1, [r4, #12]
-	str	lr, [sp]
-	ldr	lr, [r0]
-	str	ip, [sp, #68]
-	str	lr, [sp, #4]
-	ldr	lr, [r0, #4]
-	str	lr, [sp, #8]
-	ldr	lr, [r0, #8]
-	str	lr, [sp, #12]
-	ldr	r0, [r0, #12]
-	str	r0, [sp, #16]
-	ldr	r0, [r1]
-	str	r0, [sp, #20]
-	ldr	r0, [r1, #4]
-	str	r0, [sp, #24]
-	ldr	r0, [r1, #8]
-	str	r0, [sp, #28]
-	ldr	r1, [r1, #12]
-	ldr	r0, .L3182+20
-	str	r1, [sp, #32]
-	mov	r1, r2
-	mov	r2, r8
-	bl	printk
-	ldr	r3, [sp, #56]
-	ldr	ip, [sp, #68]
-	cmp	r3, #0
-	bne	.L3167
-.L3146:
+	b	.L3114
+.L3112:
+	ldr	r2, [sp, #60]
+	add	r3, sp, #104
+	add	r3, r3, r2
+	ldrh	r3, [r3, #-32]
+	str	r3, [sp, #40]
+	movw	r3, #65535
+	ldr	r2, [sp, #40]
+	cmp	r2, r3
+	bne	.L3104
+.L3110:
 	add	r7, r7, #1
 	uxth	r7, r7
-	b	.L3154
-.L3180:
-	add	ip, ip, #1
-	b	.L3155
-.L3179:
-	add	r5, r5, #1
-	b	.L3144
-.L3167:
-.L3152:
-	str	r7, [sp]
-	mov	r3, r9
-	ldr	r7, .L3182
-	mov	r1, r6
-	mov	r2, r8
-	ldr	r0, .L3182+24
-	bl	printk
-	mov	r1, #0
-	ldrb	r2, [r7, #2772]	@ zero_extendqisi2
-	mov	r5, r8
-	ldr	r0, [r4, #4]
-	ldr	r10, .L3182+28
-	mov	r2, r2, asl #9
-	ldr	r9, .L3182+32
-	bl	ftl_memset
-	ldrb	r2, [r7, #2772]	@ zero_extendqisi2
-	ldr	r0, [r4, #12]
-	mov	r1, #0
-	mov	r2, r2, asl #1
-	bl	ftl_memset
-.L3156:
-	ldrh	r3, [r10]
-	cmp	r3, r5
-	bls	.L3162
-	ldr	r8, .L3182+4
-	mov	r7, #0
-	mov	r3, r5, asl #1
+.L3105:
+	cmp	r8, r7
+	bcs	.L3112
+	add	fp, fp, #1
+.L3114:
+	uxth	r3, fp
+	uxth	r2, fp
 	str	r3, [sp, #44]
-.L3163:
-	ldrb	r2, [sp, #89]	@ zero_extendqisi2
-	uxth	r3, r7
-	cmp	r2, r3
-	bls	.L3181
-	ldr	r2, [r9]
-	tst	r2, #4096
-	beq	.L3157
-	mov	r2, r3
-	ldr	r0, .L3182+36
-	mov	r1, r5
-	str	r3, [sp, #48]
-	bl	printk
-	ldr	r3, [sp, #48]
-.L3157:
-	ldrb	ip, [r8, #-3116]	@ zero_extendqisi2
-	cmp	ip, #0
-	beq	.L3158
-	add	r2, sp, #112
+	ldrb	r3, [sp, #81]	@ zero_extendqisi2
+	cmp	r3, r2
+	bls	.L3113
+	mov	r7, #1
+	add	r3, r2, #8
+	lsl	r3, r3, r7
+	str	r3, [sp, #60]
+	b	.L3105
+.L3104:
+	ldr	r3, [sp, #64]
+	cmp	r8, #3
+	ldr	r2, [sp, #40]
+	ldrh	r3, [r3, #-2]
+	mul	r3, r2, r3
+	bne	.L3106
+	ldr	r2, .L3138
+	ldrb	r2, [r2, #1159]	@ zero_extendqisi2
+	cmp	r2, #0
+	uxtaheq	r3, r3, r6
+	ldrne	r2, [sp, #56]
+	orreq	r3, r3, r7, lsl #24
+	beq	.L3108
+.L3137:
+	add	r3, r2, r3
+	ldr	r2, .L3138+4
+	add	r3, r3, r7
+	ldrb	r2, [r2, #-3128]	@ zero_extendqisi2
+	orr	r3, r3, r2, lsl #24
+.L3108:
+	str	r3, [r4, #24]
+	mov	r1, #1
 	mov	r0, r4
-	add	r3, r2, r3, asl #1
+	str	r3, [sp, #68]
+	bl	sblk_read_page
+	ldr	r9, [r4, #36]
+	ldr	r3, [sp, #68]
+	cmn	r9, #1
+	cmpne	r9, #512
+	bne	.L3110
+	ldr	r1, [r4, #12]
+	ldr	r2, [r4, #4]
+	ldr	r0, [r1, #12]
+	str	r0, [sp, #32]
+	ldr	r0, [r1, #8]
+	str	r0, [sp, #28]
+	ldr	r0, [r1, #4]
+	str	r0, [sp, #24]
+	ldr	r1, [r1]
+	ldr	r0, .L3138+20
+	str	r1, [sp, #20]
+	ldr	r1, [r2, #12]
+	str	r1, [sp, #16]
+	ldr	r1, [r2, #8]
+	str	r1, [sp, #12]
+	ldr	r1, [r2, #4]
+	str	r1, [sp, #8]
+	ldr	r2, [r2]
+	ldr	r1, [sp, #40]
+	str	r9, [sp]
+	str	r2, [sp, #4]
+	ldr	r2, [sp, #52]
+	bl	printk
+	cmp	r9, #512
+	bne	.L3110
+.L3111:
+	uxth	r2, r6
+	ldr	r6, .L3138+4
+	ldr	r3, [sp, #44]
+	mov	r1, r10
+	str	r7, [sp]
+	ldr	r0, .L3138+24
+	bl	printk
+	ldrb	r2, [r6, #-2546]	@ zero_extendqisi2
+	mov	r1, #0
+	ldr	r0, [r4, #4]
+	ldr	fp, .L3138+28
+	lsl	r2, r2, #9
+	bl	ftl_memset
+	ldrb	r2, [r6, #-2546]	@ zero_extendqisi2
+	mov	r1, #0
+	ldr	r0, [r4, #12]
+	lsl	r2, r2, #1
+	bl	ftl_memset
+.L3115:
+	ldr	r7, .L3138+16
+	ldrh	r3, [r7]
+	cmp	r3, r5
+	bls	.L3121
+	lsl	r3, r5, #1
+	mov	r8, #0
+	ldr	r9, .L3138+32
+	add	r7, r7, #24
+	str	r3, [sp, #40]
+	b	.L3122
+.L3106:
+	cmp	r8, #2
+	uxtahne	r3, r3, r6
+	bne	.L3108
+	ldr	r2, [sp, #48]
+	b	.L3137
+.L3113:
+	add	r6, r6, #1
+	b	.L3103
+.L3120:
+	ldr	r3, [fp]
+	tst	r3, #4096
+	uxth	r3, r8
+	beq	.L3116
+	mov	r2, r3
+	mov	r1, r5
+	mov	r0, r9
+	str	r3, [sp, #44]
+	bl	printk
+	ldr	r3, [sp, #44]
+.L3116:
+	ldrb	r2, [r6, #-3120]	@ zero_extendqisi2
+	cmp	r2, #0
+	beq	.L3117
+	add	r2, sp, #104
+	mov	r0, r4
+	add	r3, r2, r3, lsl #1
 	ldrh	r2, [r3, #-16]
-	ldr	r3, .L3182+16
-	ldrh	r3, [r3]
+	ldrh	r3, [r7, #-2]
 	mul	r3, r3, r2
 	orr	r3, r3, r5
 	str	r3, [r4, #24]
 	bl	sblk_3d_tlc_dump_prog
-	b	.L3159
-.L3158:
-	ldrb	r2, [r8, #-3124]	@ zero_extendqisi2
-	cmp	r2, #2
-	add	r2, sp, #112
-	add	r3, r2, r3, asl #1
-	ldrh	r2, [r3, #-16]
-	ldr	r3, .L3182+16
-	ldrh	r3, [r3]
-	mul	r3, r3, r2
-	bne	.L3160
-	ldr	r2, [sp, #44]
+.L3118:
+	add	r8, r8, #1
+.L3122:
+	ldrb	r2, [sp, #81]	@ zero_extendqisi2
+	uxth	r3, r8
+	cmp	r2, r3
+	bhi	.L3120
+	add	r5, r5, #1
+	uxth	r5, r5
+	b	.L3115
+.L3117:
+	ldrb	r1, [r6, #-3128]	@ zero_extendqisi2
+	cmp	r1, #2
+	bne	.L3119
+	add	r2, sp, #104
 	mov	r0, r4
+	add	r3, r2, r3, lsl #1
+	ldrh	r2, [r3, #-16]
+	ldrh	r3, [r7, #-2]
+	mul	r3, r3, r2
+	ldr	r2, [sp, #40]
 	orr	r3, r3, r2
 	orr	r3, r3, #33554432
 	str	r3, [r4, #24]
 	bl	sblk_mlc_dump_prog
-	b	.L3159
-.L3160:
-	ldrb	r2, [fp, #1189]	@ zero_extendqisi2
-	orr	r3, r3, r5
-	mvn	r0, #0
-	ldrb	lr, [fp, #2772]	@ zero_extendqisi2
-	rsb	r1, r2, #24
-	str	r3, [r4, #24]
-	mvn	r2, r0, asl r2
-	and	r0, r2, r3, lsr r1
-	str	lr, [sp]
-	bic	r1, r3, r2, asl r1
-	str	ip, [sp, #4]
+	b	.L3118
+.L3119:
+	add	r1, sp, #104
+	ldrh	ip, [r7, #-2]
+	add	r3, r1, r3, lsl #1
+	ldrh	r1, [r3, #-16]
+	ldr	r3, .L3138
+	mul	ip, ip, r1
+	ldrb	r1, [r3, #1153]	@ zero_extendqisi2
+	mvn	r3, #0
+	rsb	lr, r1, #24
+	orr	ip, ip, r5
+	mvn	r1, r3, lsl r1
+	str	ip, [r4, #24]
+	str	r2, [sp, #4]
+	and	r0, r1, ip, lsr lr
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	bic	r1, ip, r1, lsl lr
 	uxtb	r0, r0
-	ldr	r2, [r4, #4]
+	str	r3, [sp]
 	ldr	r3, [r4, #12]
+	ldr	r2, [r4, #4]
 	bl	flash_prog_page_en
-.L3159:
-	add	r7, r7, #1
-	b	.L3163
-.L3181:
-	add	r5, r5, #1
-	uxth	r5, r5
-	b	.L3156
-.L3162:
+	b	.L3118
+.L3121:
 	mov	r0, r4
 	bl	zbuf_free
-	ldr	r0, .L3182+40
-	mov	r1, r6
+	mov	r1, r10
+	ldr	r0, .L3138+36
 	bl	printk
-.L3140:
-	add	sp, sp, #116
+.L3099:
+	add	sp, sp, #108
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3183:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3139:
 	.align	2
-.L3182:
+.L3138:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
 	.word	.LANCHOR3-3088
-	.word	.LC195
-	.word	.LANCHOR3-3066
-	.word	.LC196
-	.word	.LC197
+	.word	.LC194
 	.word	.LANCHOR3-3096
+	.word	.LC195
+	.word	.LC196
 	.word	.LANCHOR2
+	.word	.LC197
 	.word	.LC198
-	.word	.LC199
 	.fnend
 	.size	ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk
 	.align	2
 	.global	gc_ink_check_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_ink_check_sblk, %function
 gc_ink_check_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #12
-	movw	r5, #2106
-	ldr	r4, .L3213
-	ldr	r7, .L3213+4
-	ldrh	r3, [r4, r5]
-	ldr	r6, [r7, #908]
-	cmp	r3, #3
-	ldrls	pc, [pc, r3, asl #2]
-	b	.L3185
-.L3187:
-	.word	.L3186
-	.word	.L3188
-	.word	.L3189
-	.word	.L3190
-.L3186:
-	ldr	r8, .L3213+8
-	movw	r3, #2792
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	.pad #8
+	movw	r3, #2106
+	ldr	r4, .L3169
+	ldr	r5, .L3169+4
+	ldrh	r2, [r4, r3]
+	ldr	r6, [r5, #904]
+	cmp	r2, #3
+	ldrls	pc, [pc, r2, asl #2]
+	b	.L3141
+.L3143:
+	.word	.L3142
+	.word	.L3144
+	.word	.L3145
+	.word	.L3146
+.L3142:
+	ldr	r8, .L3169+8
+	movw	r3, #2788
 	ldrh	r3, [r8, r3]
 	cmp	r3, #7
-	bls	.L3184
-	ldrb	r3, [r8, #2774]	@ zero_extendqisi2
+	bls	.L3140
+	ldrb	r3, [r8, #2769]	@ zero_extendqisi2
 	cmp	r3, #2
-	bls	.L3184
-	ldr	r0, .L3213+12
+	bls	.L3140
+	ldr	r7, .L3169+12
 	mov	r1, #0
-	bl	_list_get_gc_head_node
 	movw	r9, #65535
+	sub	r6, r7, #3072
+	sub	r6, r6, #8
+	mov	r0, r6
+	bl	_list_get_gc_head_node
 	cmp	r0, r9
-	beq	.L3184
-	ldr	r3, [r8, #1080]
-	mov	r0, r0, asl #2
+	beq	.L3140
+	ldr	r3, [r8, #1084]
+	lsl	r0, r0, #2
 	ldrh	r3, [r3, r0]
 	ubfx	r3, r3, #0, #11
 	cmp	r3, #2
-	bgt	.L3184
+	bgt	.L3140
 	mov	r0, #1
-	add	r6, r8, #4096
 	bl	buf_alloc
 	cmp	r0, #0
-	str	r0, [r7, #908]
-	beq	.L3184
-	ldr	r0, .L3213+12
+	str	r0, [r5, #904]
+	beq	.L3140
+	mov	r0, r6
+	ldr	r2, .L3169+16
 	mov	r1, #0
-	ldr	r2, .L3213+16
 	bl	_list_pop_index_node
-	uxth	r5, r0
-	cmp	r5, r9
-	bne	.L3194
-	ldr	r0, [r6, #908]
+	uxth	r10, r0
+	mov	r6, r0
+	cmp	r10, r9
+	bne	.L3150
+	ldr	r0, [r5, #904]
 	bl	zbuf_free
 	mov	r3, #0
-	str	r3, [r6, #908]
-	b	.L3184
-.L3194:
-	ldr	r1, .L3213+20
-	mov	r0, r5
+	str	r3, [r5, #904]
+.L3140:
+	add	sp, sp, #8
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L3150:
+	add	r1, r4, #2144
+	mov	r0, r10
+	add	r1, r1, #14
+	uxth	r6, r6
 	bl	ftl_get_blk_list_in_sblk
 	movw	r3, #2142
-	strh	r5, [r4, r3]	@ movhi
 	mov	r2, #0
-	ldr	r3, .L3213+24
-	mov	r5, r5, asl #2
+	strh	r10, [r4, r3]	@ movhi
+	add	r3, r4, #2144
 	strh	r2, [r3]	@ movhi
-	movw	r3, #2106
 	mov	r2, #1
+	movw	r3, #2106
+	lsl	r6, r6, #2
 	strh	r2, [r4, r3]	@ movhi
-	ldr	r3, [r8, #1080]
-	ldrb	r2, [r8, #2772]	@ zero_extendqisi2
-	mov	r2, r2, asl #9
-	strb	r0, [r6, #883]
-	ldrh	r3, [r3, r5]
+	ldr	r3, [r8, #1084]
+	strb	r0, [r5, #879]
+	ldrb	r2, [r7, #-2546]	@ zero_extendqisi2
+	ldrh	r3, [r3, r6]
 	tst	r3, #1
-	ldr	r3, [r6, #908]
+	ldr	r3, [r5, #904]
+	lsl	r2, r2, #9
 	movne	r1, #85
 	moveq	r1, #170
 	ldr	r0, [r3, #4]
-	add	sp, sp, #12
+	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
 	b	ftl_memset
-.L3188:
+.L3144:
 	movw	r3, #2142
 	mov	r1, #0
 	ldrh	r0, [r4, r3]
 	bl	ftl_erase_sblk
-	movw	r3, #2106
 	mov	r2, #2
+.L3168:
+	movw	r3, #2106
+.L3166:
 	strh	r2, [r4, r3]	@ movhi
-	b	.L3184
-.L3189:
+	b	.L3140
+.L3145:
+	ldr	r8, .L3169+12
+	mov	r7, #0
+	ldr	r10, .L3169+20
 	bl	sblk_wait_write_queue_completed
-	ldr	r9, .L3213+8
-	ldr	r10, .L3213+28
-	mov	r8, #0
-	ldr	fp, .L3213+32
-.L3196:
-	ldrb	r3, [r7, #883]	@ zero_extendqisi2
-	uxth	r5, r8
-	cmp	r3, r5
-	bls	.L3211
-	add	r5, r4, r5, asl #1
-	movw	r3, #65535
-	add	r5, r5, #2144
-	ldrh	r2, [r5, #14]
+	sub	r9, r8, #3072
+.L3152:
+	ldrb	r2, [r5, #879]	@ zero_extendqisi2
+	uxth	r3, r7
 	cmp	r2, r3
-	beq	.L3197
-	ldr	r3, .L3213+24
-	mov	ip, #0
-	ldrh	r1, [r10]
-	ldrh	r3, [r3]
-	mla	r3, r1, r2, r3
-	ldr	r2, [r6, #4]
-	str	r3, [r2]
-	ldr	r2, [r6, #4]
-	str	fp, [r2, #4]
-	ldr	r2, [r6, #12]
-	str	ip, [r2]
-	mvn	r2, #0
-	ldrb	r0, [r9, #1189]	@ zero_extendqisi2
-	ldrb	lr, [r9, #2772]	@ zero_extendqisi2
-	rsb	r1, r0, #24
-	str	ip, [sp, #4]
-	mvn	r2, r2, asl r0
-	and	r0, r2, r3, lsr r1
-	str	lr, [sp]
-	bic	r1, r3, r2, asl r1
-	uxtb	r0, r0
-	ldr	r2, [r6, #4]
-	ldr	r3, [r6, #12]
-	bl	flash_prog_page_en
-.L3197:
-	add	r8, r8, #1
-	b	.L3196
-.L3211:
-	ldr	r1, .L3213
-	ldr	r0, .L3213+36
-	add	r2, r1, #2144
+	bhi	.L3154
+	add	r2, r4, #2144
+	ldr	r1, .L3169+24
 	ldrh	r3, [r2]
-	ldrh	r0, [r0, #-8]
+	ldrh	r1, [r1, #-8]
+	add	r3, r3, #1
+	uxth	r3, r3
+	cmp	r1, r3
+	strh	r3, [r2]	@ movhi
+	bhi	.L3140
+	mov	r3, #0
+	strh	r3, [r2]	@ movhi
+	mov	r2, #3
+	b	.L3168
+.L3154:
+	uxth	r2, r7
+	add	r3, r4, #2128
+	add	r3, r3, #14
+	add	r3, r3, r2, lsl #1
+	ldrh	r1, [r3, #16]
+	movw	r3, #65535
+	cmp	r1, r3
+	beq	.L3153
+	add	r3, r4, #2144
+	ldrh	ip, [r9, #-2]
+	ldrh	r3, [r3]
+	mla	ip, r1, ip, r3
+	ldr	r3, [r6, #4]
+	str	ip, [r3]
+	ldr	r3, [r6, #4]
+	str	r10, [r3, #4]
+	mov	r3, #0
+	ldr	r2, [r6, #12]
+	str	r3, [r2]
+	ldr	r2, .L3169+8
+	ldrb	r1, [r2, #1153]	@ zero_extendqisi2
+	mvn	r2, #0
+	str	r3, [sp, #4]
+	ldrb	r3, [r8, #-2546]	@ zero_extendqisi2
+	rsb	lr, r1, #24
+	mvn	r1, r2, lsl r1
+	str	r3, [sp]
+	and	r0, r1, ip, lsr lr
+	ldr	r3, [r6, #12]
+	ldr	r2, [r6, #4]
+	bic	r1, ip, r1, lsl lr
+	uxtb	r0, r0
+	bl	flash_prog_page_en
+.L3153:
+	add	r7, r7, #1
+	b	.L3152
+.L3146:
+	add	r10, r4, #2128
+	mov	r9, #0
+	add	r10, r10, #14
+	bl	sblk_wait_write_queue_completed
+.L3155:
+	ldrb	r2, [r5, #879]	@ zero_extendqisi2
+	uxth	r3, r9
+	cmp	r2, r3
+	bhi	.L3159
+	add	r2, r4, #2144
+	ldrh	r3, [r2]
 	add	r3, r3, #1
 	uxth	r3, r3
 	strh	r3, [r2]	@ movhi
-	cmp	r0, r3
-	movls	r3, #0
-	strlsh	r3, [r2]	@ movhi
-	movwls	r3, #2106
-	movls	r2, #3
-	strlsh	r2, [r1, r3]	@ movhi
-	b	.L3184
-.L3190:
-	bl	sblk_wait_write_queue_completed
-	ldr	r9, .L3213+28
-	ldr	r10, .L3213+24
-	mov	fp, #0
-.L3199:
-	ldrb	r3, [r7, #883]	@ zero_extendqisi2
-	uxth	r5, fp
-	ldr	r8, .L3213+4
-	cmp	r3, r5
-	bls	.L3212
-	add	r5, r4, r5, asl #1
+	ldr	r2, .L3169+24
+	ldrh	r2, [r2, #-8]
+	cmp	r2, r3
+	bhi	.L3140
+	movw	r3, #2106
+	mov	r6, #0
+	ldr	r0, [r5, #904]
+	strh	r6, [r4, r3]	@ movhi
+	bl	zbuf_free
+	movw	r2, #2108
+	str	r6, [r5, #904]
+	ldrh	r3, [r4, r2]
+	cmp	r3, #15
+	bhi	.L3160
+	add	r1, r3, #1
+	add	r3, r3, #1040
+	strh	r1, [r4, r2]	@ movhi
+	movw	r2, #2142
+	add	r3, r3, #12
+	ldrh	r2, [r4, r2]
+	add	r3, r4, r3, lsl #1
+	strh	r2, [r3, #6]	@ movhi
+.L3161:
+	movw	r3, #2108
+	ldr	r0, .L3169+28
+	ldrh	r2, [r4, r3]
+	movw	r3, #2142
+	ldrh	r1, [r4, r3]
+	add	sp, sp, #8
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, lr}
+	b	printk
+.L3159:
+	uxth	r7, r9
 	movw	r2, #65535
-	add	r5, r5, #2144
-	add	r5, r5, #14
-	ldrh	r3, [r5]
+	add	r7, r7, #8
+	lsl	r7, r7, #1
+	ldrh	r3, [r10, r7]
 	cmp	r3, r2
-	beq	.L3201
-	ldrh	r2, [r10]
-	mov	r0, r6
-	ldrh	r8, [r9]
+	beq	.L3157
+	ldr	r2, .L3169+32
 	mov	r1, #1
-	mla	r8, r8, r3, r2
+	mov	r0, r6
+	ldrh	r8, [r2]
+	add	r2, r4, #2144
+	ldrh	r2, [r2]
+	mla	r8, r3, r8, r2
 	str	r8, [r6, #24]
 	bl	sblk_read_page
 	ldr	r3, [r6, #4]
 	ldr	r3, [r3]
-	cmp	r3, r8
-	beq	.L3201
+	cmp	r8, r3
+	beq	.L3157
 	mov	r0, r8
 	bl	ftl_mask_bad_block
 	mvn	r3, #0
-	strh	r3, [r5]	@ movhi
-.L3201:
-	add	fp, fp, #1
-	b	.L3199
-.L3212:
-	add	r2, r8, #876
-	ldr	r5, .L3213
-	ldrh	r3, [r2]
-	add	r3, r3, #1
-	uxth	r3, r3
-	strh	r3, [r2]	@ movhi
-	ldr	r2, .L3213+36
-	ldrh	r2, [r2, #-8]
-	cmp	r2, r3
-	bhi	.L3184
-	movw	r3, #2106
-	ldr	r0, [r8, #908]
-	mov	r6, #0
-	strh	r6, [r5, r3]	@ movhi
-	bl	zbuf_free
-	movw	r2, #2108
-	ldrh	r3, [r5, r2]
-	str	r6, [r8, #908]
-	cmp	r3, #15
-	bhi	.L3204
-	add	r1, r3, #1
-	add	r3, r3, #1040
-	strh	r1, [r5, r2]	@ movhi
-	add	r3, r3, #12
-	movw	r2, #2142
-	ldrh	r2, [r5, r2]
-	add	r3, r5, r3, asl #1
-	strh	r2, [r3, #6]	@ movhi
-	b	.L3205
-.L3204:
+	strh	r3, [r10, r7]	@ movhi
+.L3157:
+	add	r9, r9, #1
+	b	.L3155
+.L3160:
 	movw	r3, #2142
-	ldrh	r0, [r5, r3]
+	ldrh	r0, [r4, r3]
 	bl	zftl_insert_free_list
-.L3205:
-	movw	r3, #2142
-	ldr	r0, .L3213+40
-	ldrh	r1, [r4, r3]
-	movw	r3, #2108
-	ldrh	r2, [r4, r3]
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	b	printk
-.L3185:
-	mov	r3, #0
-	strh	r3, [r4, r5]	@ movhi
-.L3184:
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3214:
+	b	.L3161
+.L3141:
+	mov	r2, #0
+	b	.L3166
+.L3170:
 	.align	2
-.L3213:
-	.word	.LANCHOR0+2828
+.L3169:
+	.word	.LANCHOR0+2824
 	.word	.LANCHOR0+4096
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3072
-	.word	.LANCHOR0+2792
-	.word	.LANCHOR0+4986
-	.word	.LANCHOR0+4972
-	.word	.LANCHOR3-3066
+	.word	.LANCHOR3
+	.word	.LANCHOR0+2788
 	.word	1437269760
 	.word	.LANCHOR3-3088
-	.word	.LC200
+	.word	.LC199
+	.word	.LANCHOR3-3074
 	.fnend
 	.size	gc_ink_check_sblk, .-gc_ink_check_sblk
 	.align	2
 	.global	ftl_ink_check_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_ink_check_sblk, %function
 ftl_ink_check_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 40
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	lsl	r9, r0, #2
+	ldr	r6, .L3190
+	mov	r5, r0
+	mov	r1, r0
 	.pad #52
 	sub	sp, sp, #52
-	ldr	r6, .L3238
-	mov	r3, r0, asl #2
-	str	r3, [sp, #8]
-	mov	r5, r0
-	ldr	r2, [sp, #8]
-	mov	r1, r5
-	ldr	r3, [r6, #1080]
-	ldrh	r2, [r3, r2]
-	ldr	r3, [r3, r0, asl #2]
-	ubfx	r2, r2, #0, #11
-	ldr	r0, .L3238+4
+	ldr	r2, [r6, #1084]
+	ldr	r3, [r2, r0, lsl #2]
+	ldrh	r2, [r2, r9]
+	ldr	r0, .L3190+4
 	ubfx	r3, r3, #11, #8
+	ubfx	r2, r2, #0, #11
 	bl	printk
 	movw	r3, #65535
 	cmp	r5, r3
-	beq	.L3215
-	movw	r3, #1076
+	beq	.L3171
+	movw	r3, #1080
 	ldrh	r3, [r6, r3]
 	cmp	r3, r5
-	bls	.L3215
+	bls	.L3171
 	mov	r1, #0
 	mov	r0, r5
 	bl	ftl_erase_sblk
 	mov	r0, r5
-	mov	r8, #0
 	add	r1, sp, #32
 	strh	r5, [sp, #16]	@ movhi
+	mov	r8, #0
 	bl	ftl_get_blk_list_in_sblk
 	strb	r0, [sp, #25]
 	mov	r0, #1
 	bl	buf_alloc
-	ldr	r3, [r6, #1080]
-	ldr	r2, [sp, #8]
+	ldr	r3, [r6, #1084]
 	mov	r4, r0
+	ldr	r10, .L3190+8
+	ldr	fp, .L3190+12
+	ldrh	r3, [r3, r9]
+	ldrb	r2, [r10, #-2546]	@ zero_extendqisi2
 	ldr	r0, [r0, #4]
-	ldrh	r3, [r3, r2]
-	ldrb	r2, [r6, #2772]	@ zero_extendqisi2
 	ubfx	r3, r3, #0, #11
 	cmp	r3, #1
-	mov	r2, r2, asl #9
+	lsl	r2, r2, #9
 	movle	r1, #85
 	movgt	r1, #170
 	bl	ftl_memset
 	bl	sblk_wait_write_queue_completed
-.L3219:
-	ldr	r3, .L3238+8
-	uxth	r10, r8
-	ldr	fp, .L3238+8
-	ldrh	r3, [r3]
-	cmp	r3, r10
-	bls	.L3234
-	add	fp, fp, #30
-	mov	r9, #0
-.L3222:
-	ldrb	r2, [sp, #25]	@ zero_extendqisi2
-	uxth	r3, r9
+.L3175:
+	ldr	r3, .L3190+16
+	ldrh	r2, [r3]
+	uxth	r3, r8
 	cmp	r2, r3
-	bls	.L3235
+	bls	.L3178
+	mov	r7, #0
+	b	.L3179
+.L3177:
+	uxth	r3, r7
 	add	r2, sp, #48
-	add	r3, r2, r3, asl #1
-	movw	r2, #65535
-	ldrh	r3, [r3, #-16]
-	cmp	r3, r2
-	beq	.L3220
-	ldrh	r7, [fp]
-	mvn	r0, #0
-	ldr	r2, .L3238+12
-	mla	r7, r7, r3, r10
-	ldr	r3, [r4, #4]
-	str	r7, [r3]
-	ldr	r3, [r4, #4]
-	str	r2, [r3, #4]
-	mov	r2, #0
-	ldr	r3, [r4, #12]
-	str	r2, [r3]
-	ldrb	r3, [r6, #1189]	@ zero_extendqisi2
-	ldrb	ip, [r6, #2772]	@ zero_extendqisi2
-	rsb	r1, r3, #24
-	str	r2, [sp, #4]
-	mvn	r3, r0, asl r3
-	and	r0, r3, r7, lsr r1
-	str	ip, [sp]
-	bic	r1, r7, r3, asl r1
-	uxtb	r0, r0
-	ldr	r2, [r4, #4]
-	ldr	r3, [r4, #12]
-	bl	flash_prog_page_en
-.L3220:
-	add	r9, r9, #1
-	b	.L3222
-.L3235:
-	add	r8, r8, #1
-	b	.L3219
-.L3234:
-	mov	r10, #0
-.L3223:
-	ldrh	r1, [fp]
-	uxth	r3, r10
-	str	r3, [sp, #12]
+	add	r3, r2, r3, lsl #1
+	ldrh	r1, [r3, #-16]
+	movw	r3, #65535
 	cmp	r1, r3
-	bls	.L3236
-	mov	r9, #0
-.L3228:
-	ldrb	r1, [sp, #25]	@ zero_extendqisi2
-	uxth	r7, r9
-	cmp	r1, r7
-	bls	.L3237
-	add	r7, r7, #8
+	beq	.L3176
+	ldr	r3, .L3190+20
+	ldrh	ip, [r3]
+	uxth	r3, r8
+	mla	ip, r1, ip, r3
+	ldr	r3, [r4, #4]
+	str	ip, [r3]
+	ldr	r3, [r4, #4]
+	str	fp, [r3, #4]
+	mov	r3, #0
+	ldr	r2, [r4, #12]
+	str	r3, [r2]
+	mvn	r2, #0
+	ldrb	r1, [r6, #1153]	@ zero_extendqisi2
+	str	r3, [sp, #4]
+	ldrb	r3, [r10, #-2546]	@ zero_extendqisi2
+	rsb	lr, r1, #24
+	mvn	r1, r2, lsl r1
+	str	r3, [sp]
+	and	r0, r1, ip, lsr lr
+	ldr	r3, [r4, #12]
+	ldr	r2, [r4, #4]
+	bic	r1, ip, r1, lsl lr
+	uxtb	r0, r0
+	bl	flash_prog_page_en
+.L3176:
+	add	r7, r7, #1
+.L3179:
+	ldrb	r2, [sp, #25]	@ zero_extendqisi2
+	uxth	r3, r7
+	cmp	r2, r3
+	bhi	.L3177
+	add	r8, r8, #1
+	b	.L3175
+.L3178:
+	mov	r10, #0
+.L3180:
+	ldr	r3, .L3190+24
+	uxth	r2, r10
+	ldrh	r1, [r3, #-8]
+	cmp	r1, r2
+	bls	.L3185
+	mov	fp, #0
+	str	r2, [sp, #12]
+	b	.L3186
+.L3184:
+	uxth	r7, fp
 	add	r3, sp, #48
-	add	r7, r3, r7, asl #1
+	add	r7, r7, #8
+	add	r7, r3, r7, lsl #1
 	movw	r3, #65535
 	ldrh	r1, [r7, #-32]
 	cmp	r1, r3
-	beq	.L3225
-	ldr	r3, .L3238+16
-	mov	r0, r4
-	ldrh	r8, [r3]
+	beq	.L3182
+	ldr	r0, .L3190+20
 	ldr	r3, [sp, #12]
-	mla	r8, r8, r1, r3
+	ldrh	r8, [r0]
+	mov	r0, r4
+	mla	r8, r1, r8, r3
 	mov	r1, #1
 	str	r8, [r4, #24]
 	bl	sblk_read_page
 	ldr	r1, [r4, #4]
 	ldr	r1, [r1]
-	cmp	r1, r8
-	beq	.L3225
+	cmp	r8, r1
+	beq	.L3182
 	mov	r0, r8
 	bl	ftl_mask_bad_block
 	mvn	r1, #0
 	strh	r1, [r7, #-32]	@ movhi
-.L3225:
-	add	r9, r9, #1
-	b	.L3228
-.L3237:
+.L3182:
+	add	fp, fp, #1
+.L3186:
+	ldrb	r0, [sp, #25]	@ zero_extendqisi2
+	uxth	r1, fp
+	cmp	r0, r1
+	bhi	.L3184
 	add	r10, r10, #1
-	b	.L3223
-.L3236:
+	b	.L3180
+.L3185:
 	mov	r0, r4
 	bl	zbuf_free
-	ldr	r3, [r6, #1080]
-	ldr	r0, .L3238+20
+	ldr	r2, [r6, #1084]
 	mov	r1, r5
-	ldr	r2, [sp, #8]
-	ldrh	r2, [r3, r2]
-	ldr	r3, [r3, r5, asl #2]
-	ubfx	r2, r2, #0, #11
+	ldr	r0, .L3190+28
+	ldr	r3, [r2, r5, lsl #2]
+	ldrh	r2, [r2, r9]
 	ubfx	r3, r3, #11, #8
+	ubfx	r2, r2, #0, #11
 	bl	printk
-.L3215:
+.L3171:
 	add	sp, sp, #52
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3239:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3191:
 	.align	2
-.L3238:
+.L3190:
 	.word	.LANCHOR0
-	.word	.LC201
-	.word	.LANCHOR3-3096
+	.word	.LC200
+	.word	.LANCHOR3
 	.word	1437269760
-	.word	.LANCHOR3-3066
-	.word	.LC202
+	.word	.LANCHOR3-3096
+	.word	.LANCHOR3-3074
+	.word	.LANCHOR3-3088
+	.word	.LC201
 	.fnend
 	.size	ftl_ink_check_sblk, .-ftl_ink_check_sblk
 	.align	2
 	.global	ftl_alloc_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_alloc_sblk, %function
 ftl_alloc_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	uxth	r5, r0
 	cmp	r0, #5
 	mov	r9, r0
 	mov	r1, r5
 	mov	r0, #0
-	movne	r7, #0
-	moveq	r7, #2
+	movne	r8, #0
+	moveq	r8, #2
 	bl	zftl_get_free_sblk
 	movw	r3, #65535
-	cmp	r0, r3
 	mov	r4, r0
-	beq	.L3242
-	ldr	r6, .L3256
-	mov	r8, r0, asl #2
-	ldr	r5, [r6, #1080]
-	add	r5, r5, r8
+	cmp	r0, r3
+	beq	.L3194
+	ldr	r6, .L3212
+	lsl	r7, r0, #2
+	ldr	r5, [r6, #1084]
+	add	r5, r5, r7
 	ldrb	r3, [r5, #2]	@ zero_extendqisi2
 	tst	r3, #224
-	beq	.L3243
-	ldr	r1, .L3256+4
+	beq	.L3195
 	mov	r2, #1012
-	ldr	r0, .L3256+8
+	ldr	r1, .L3212+4
+	ldr	r0, .L3212+8
 	bl	printk
 	bl	dump_stack
-.L3243:
+.L3195:
 	ldrb	r3, [r5, #2]	@ zero_extendqisi2
 	bfi	r3, r9, #5, #3
 	uxtb	r3, r3
 	ubfx	r2, r3, #3, #2
-	orr	r2, r7, r2
+	orr	r2, r8, r2
 	bfi	r3, r2, #3, #2
+	clz	r2, r8
 	strb	r3, [r5, #2]
 	uxtb	r3, r3
-	and	r2, r3, #24
-	cmp	r7, #0
-	cmpeq	r2, #24
-	moveq	r2, #1
-	bfieq	r3, r2, #3, #2
-	streqb	r3, [r5, #2]
-	ldr	r3, [r6, #2804]
+	lsr	r2, r2, #5
+	and	r1, r3, #24
+	cmp	r1, #24
+	cmpeq	r8, #0
+	moveq	r1, #1
+	bfieq	r3, r1, #3, #2
+	strbeq	r3, [r5, #2]
+	ldr	r3, [r6, #2800]
 	ldrh	r3, [r3, #150]
 	cmp	r3, #0
-	beq	.L3247
-	ldr	r3, .L3256
-	mov	r0, r4
-	ldr	r3, [r3, #1080]
-	ldrh	r3, [r3, r8]
+	beq	.L3197
+	ldr	r3, [r6, #1084]
+	ldrh	r3, [r3, r7]
 	ubfx	r3, r3, #0, #11
-	orrs	r3, r7, r3
-	bne	.L3248
+	cmp	r3, #0
+	movne	r2, #0
+	andeq	r2, r2, #1
+	cmp	r2, #0
+	beq	.L3197
+	mov	r0, r4
 	bl	ftl_ink_check_sblk
-	b	.L3247
-.L3242:
+.L3197:
+	mov	r0, r4
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L3194:
 	bl	print_ftl_debug_info
-	mov	r1, r4
 	mov	r2, r9
-	ldr	r0, .L3256+12
+	mov	r1, r4
+	ldr	r0, .L3212+12
 	bl	printk
 	mov	r1, r5
 	mov	r0, #0
 	bl	zftl_get_free_sblk
 	mov	r2, r9
+	mov	r1, r0
 	mov	r4, r0
-	ldr	r0, .L3256+12
-	mov	r1, r4
+	ldr	r0, .L3212+12
 	bl	printk
 	bl	dump_all_list_info
-	ldr	r1, .L3256+4
 	movw	r2, #1031
-	ldr	r0, .L3256+8
+	ldr	r1, .L3212+4
+	ldr	r0, .L3212+8
 	bl	printk
 	bl	dump_stack
-.L3247:
-	mov	r0, r4
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
-.L3248:
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
-.L3257:
+	b	.L3197
+.L3213:
 	.align	2
-.L3256:
+.L3212:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2404
+	.word	.LANCHOR1+2201
 	.word	.LC0
-	.word	.LC203
+	.word	.LC202
 	.fnend
 	.size	ftl_alloc_sblk, .-ftl_alloc_sblk
 	.align	2
 	.global	ftl_open_sblk_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_open_sblk_init, %function
 ftl_open_sblk_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	mov	r4, r0
-	ldr	r6, .L3266
-	mov	r5, r1
-	ldr	r8, .L3266+4
-	mov	r7, r6
-.L3259:
+	ldr	r5, .L3222
+	mov	r6, r1
+	mov	r7, #0
+	sub	r8, r5, #3088
+.L3215:
 	movw	r10, #65535
-.L3260:
-	mov	r0, r5
+.L3216:
+	mov	r0, r6
 	bl	ftl_alloc_sblk
 	cmp	r0, r10
 	mov	r9, r0
-	beq	.L3260
+	beq	.L3216
 	mov	r1, #0
-	ldr	fp, .L3266+8
+	ldr	fp, .L3222+4
 	bl	ftl_erase_sblk
 	add	r1, r4, #16
 	mov	r0, r9
-	mov	r10, r9, asl #1
 	bl	ftl_get_blk_list_in_sblk
 	strh	r9, [r4]	@ movhi
-	ldrh	r2, [r8]
-	cmp	r5, #2
-	strb	r5, [r4, #4]
-	uxtb	r3, r0
-	strb	r3, [r4, #9]
-	mov	r0, #0
-	strh	r0, [r4, #2]	@ movhi
-	smulbb	r3, r3, r2
-	strb	r0, [r4, #5]
-	strh	r0, [r4, #10]	@ movhi
-	ldrneb	r0, [r6, #-3123]	@ zero_extendqisi2
-	ldr	r1, [r7, #-2548]
-	strh	r3, [r4, #6]	@ movhi
-	ldrb	r3, [r7, #-3123]	@ zero_extendqisi2
-	smulbbne	r0, r0, r2
-	mul	r2, r3, r2
-	uxthne	r0, r0
-	strh	r0, [r4, #12]	@ movhi
-	mov	r2, r2, asl #2
-	add	r0, r1, r0, asl #2
+	cmp	r6, #2
+	ldrh	r2, [r8, #-8]
+	uxtb	r0, r0
+	ldrbne	r3, [r5, #-3127]	@ zero_extendqisi2
+	moveq	r3, #0
+	ldrb	r1, [r5, #-3127]	@ zero_extendqisi2
+	lsl	r10, r9, #1
+	strb	r0, [r4, #9]
+	smulbb	r0, r0, r2
+	strh	r7, [r4, #2]	@ movhi
+	smulbbne	r3, r3, r2
+	strb	r7, [r4, #5]
+	mul	r2, r2, r1
+	strh	r7, [r4, #10]	@ movhi
+	strh	r0, [r4, #6]	@ movhi
 	mov	r1, #255
+	ldr	r0, [r5, #-2556]
+	uxthne	r3, r3
+	strb	r6, [r4, #4]
+	strh	r3, [r4, #12]	@ movhi
+	lsl	r2, r2, #2
+	add	r0, r0, r3, lsl #2
 	bl	ftl_memset
-	ldr	r3, [fp, #1088]
+	ldr	r3, [fp, #1092]
 	ldrh	r2, [r4, #6]
 	strh	r2, [r3, r10]	@ movhi
 	ldrb	r3, [r4, #9]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldmnefd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-	ldr	r0, .L3266+12
+	popne	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
 	mov	r1, r9
+	ldr	r0, .L3222+8
 	bl	printk
-	ldr	r3, [fp, #1088]
+	ldr	r3, [fp, #1092]
 	mvn	r2, #0
 	strh	r2, [r3, r10]	@ movhi
 	mov	r3, #7
 	strb	r3, [r4, #4]
-	b	.L3259
-.L3267:
+	b	.L3215
+.L3223:
 	.align	2
-.L3266:
+.L3222:
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3096
 	.word	.LANCHOR0
-	.word	.LC204
+	.word	.LC203
 	.fnend
 	.size	ftl_open_sblk_init, .-ftl_open_sblk_init
 	.align	2
 	.global	pm_alloc_new_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_alloc_new_blk, %function
 pm_alloc_new_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	.pad #8
-	movw	r2, #690
-	ldr	r5, .L3286
-	ldr	r7, .L3286+4
-	ldr	r4, [r5, #2804]
-	ldrh	r3, [r4, r2]
+	movw	r1, #690
+	ldr	r4, .L3242
+	ldr	r7, .L3242+4
+	ldr	r2, [r4, #2800]
+	ldrh	r3, [r2, r1]
 	add	r3, r3, #1
 	uxth	r3, r3
-	strh	r3, [r4, r2]	@ movhi
-	ldrb	r2, [r7, #-3123]	@ zero_extendqisi2
-	cmp	r2, r3
-	bls	.L3269
+	strh	r3, [r2, r1]	@ movhi
+	ldrb	r1, [r7, #-3127]	@ zero_extendqisi2
+	cmp	r1, r3
+	bls	.L3225
 	add	r3, r3, #336
-	mov	r3, r3, asl #1
-	ldrh	r2, [r4, r3]
+	lsl	r3, r3, #1
+	ldrh	r2, [r2, r3]
 	movw	r3, #65535
 	cmp	r2, r3
-	bne	.L3270
-.L3269:
-	ldr	r4, .L3286
+	bne	.L3226
+.L3225:
+	ldr	r5, .L3242+8
 	movw	r8, #65535
-.L3271:
+.L3227:
 	mov	r0, #1
 	bl	ftl_alloc_sblk
 	cmp	r0, r8
 	mov	r6, r0
-	beq	.L3271
+	beq	.L3227
 	mov	r1, #0
 	bl	ftl_erase_sblk
-	ldr	r1, [r5, #2804]
+	ldr	r1, [r4, #2800]
 	mov	r0, r6
 	add	r1, r1, #672
 	bl	ftl_get_blk_list_in_sblk
 	uxth	r0, r0
 	cmp	r0, #0
-	bne	.L3272
+	bne	.L3228
 	mov	r1, r6
-	ldr	r0, .L3286+8
+	mov	r0, r5
 	bl	printk
-	ldr	r3, [r4, #1080]
-	add	r6, r3, r6, asl #2
+	ldr	r3, [r4, #1084]
+	add	r6, r3, r6, lsl #2
 	ldrb	r3, [r6, #2]	@ zero_extendqisi2
 	orr	r3, r3, #224
 	strb	r3, [r6, #2]
-	b	.L3271
-.L3272:
-	ldr	r3, .L3286
-	movw	r2, #690
-	mov	r4, #0
+	b	.L3227
+.L3228:
+	ldr	r2, [r4, #2800]
+	movw	r3, #690
+	mov	r5, #0
 	movw	r1, #65535
-	ldr	r3, [r3, #2804]
-	strh	r4, [r3, r2]	@ movhi
-	add	r3, r3, #412
-	add	r3, r3, #2
-	mov	r2, #1
-	str	r2, [r7, #520]
-.L3274:
-	ldrh	r0, [r3, #2]!
-	uxth	r2, r4
+	strh	r5, [r2, r3]	@ movhi
+	add	r2, r2, #416
+	mov	r3, #1
+	str	r3, [r7, #-36]
+.L3230:
+	ldrh	r0, [r2], #2
+	uxth	r3, r5
 	cmp	r0, r1
-	beq	.L3273
-	add	r4, r4, #1
-	cmp	r4, #128
-	bne	.L3274
+	beq	.L3229
+	add	r5, r5, #1
+	cmp	r5, #128
+	bne	.L3230
 	mov	r2, #264
-	ldr	r1, .L3286+12
-	ldr	r0, .L3286+16
+	ldr	r1, .L3242+12
+	ldr	r0, .L3242+16
 	bl	printk
 	bl	dump_stack
-	mov	r2, r4
-.L3273:
-	add	r2, r2, #208
-	ldr	r3, [r5, #2804]
-	mov	r2, r2, asl #1
-	strh	r6, [r3, r2]	@ movhi
-	add	r3, r3, #688
+	mov	r3, r5
+.L3229:
+	ldr	r2, [r4, #2800]
+	add	r3, r3, #208
+	lsl	r3, r3, #1
+	strh	r6, [r2, r3]	@ movhi
+	add	r3, r2, #688
 	ldrh	r2, [r3]
 	add	r2, r2, #1
 	strh	r2, [r3]	@ movhi
-.L3270:
-	ldr	r2, [r5, #2804]
+.L3226:
+	ldr	r2, [r4, #2800]
 	movw	r3, #690
 	ldrh	r3, [r2, r3]
 	add	r3, r3, #336
-	mov	r3, r3, asl #1
-	ldrh	r4, [r2, r3]
+	lsl	r3, r3, #1
+	ldrh	r5, [r2, r3]
 	movw	r2, #65533
-	sub	r3, r4, #1
+	sub	r3, r5, #1
 	uxth	r3, r3
 	cmp	r3, r2
-	bls	.L3276
-	ldr	r1, .L3286+12
+	bls	.L3232
 	movw	r2, #270
-	ldr	r0, .L3286+16
+	ldr	r1, .L3242+12
+	ldr	r0, .L3242+16
 	bl	printk
 	bl	dump_stack
-.L3276:
-	ldr	r1, [r5, #2804]
+.L3232:
+	ldr	r1, [r4, #2800]
 	mov	r2, #0
+	movw	r0, #694
 	add	r3, r1, #696
 	strh	r2, [r3]	@ movhi
-	ldr	r2, .L3286+20
-	ldrb	r3, [r5, #1189]	@ zero_extendqisi2
-	ldrh	r5, [r2, #-12]
-	rsb	r3, r3, #24
-	movw	r2, #694
-	rsb	r5, r5, r3
-	mov	r3, r4, asr r5
-	strh	r3, [r1, r2]	@ movhi
-	ldr	r2, .L3286+24
+	ldr	r3, .L3242+20
+	ldrb	r2, [r4, #1153]	@ zero_extendqisi2
+	ldrh	r3, [r3, #-2]
+	rsb	r2, r2, #24
+	sub	r2, r2, r3
+	asr	r3, r5, r2
+	strh	r3, [r1, r0]	@ movhi
 	add	r1, r1, #692
-	strh	r4, [r1]	@ movhi
-	ldr	r2, [r2]
-	tst	r2, #4096
-	beq	.L3280
-	mvn	r2, #0
+	strh	r5, [r1]	@ movhi
+	ldr	r1, .L3242+24
+	ldr	r1, [r1]
+	tst	r1, #4096
+	beq	.L3236
 	uxth	r3, r3
-	ldr	r0, .L3286+28
-	mov	r1, r4
+	mvn	r1, #0
+	mvn	r2, r1, lsl r2
+	ldr	r0, .L3242+28
 	str	r3, [sp]
-	mvn	r2, r2, asl r5
-	mov	r3, r4
+	mov	r1, r5
+	mov	r3, r5
 	bl	printk
-.L3280:
+.L3236:
 	mov	r0, #0
 	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, pc}
-.L3287:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L3243:
 	.align	2
-.L3286:
+.L3242:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LC204
-	.word	.LANCHOR1+2420
+	.word	.LC203
+	.word	.LANCHOR1+2216
 	.word	.LC0
-	.word	.LANCHOR3-3120
+	.word	.LANCHOR3-3136
 	.word	.LANCHOR2
-	.word	.LC205
+	.word	.LC204
 	.fnend
 	.size	pm_alloc_new_blk, .-pm_alloc_new_blk
 	.align	2
 	.global	pm_write_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_write_page, %function
 pm_write_page:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #12
-	mov	r6, r0
-	ldr	r8, .L3302
-	mov	r7, r1
-	ldr	r9, .L3302+4
-	mov	r4, r8
-.L3289:
-	ldr	r3, [r8, #2804]
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	.pad #8
+	mov	r5, r0
+	ldr	r9, .L3258
+	mov	r8, r1
+	mov	r7, r9
+.L3245:
+	ldr	r3, [r9, #2800]
 	ldr	r2, [r3, #48]
 	add	r2, r2, #1
 	str	r2, [r3, #48]
 	add	r2, r3, #696
 	ldrh	r1, [r2]
-	ldrh	r2, [r9]
+	ldr	r2, .L3258+4
+	ldrh	r2, [r2]
 	cmp	r1, r2
-	bcs	.L3290
+	bcs	.L3246
 	add	r3, r3, #692
 	ldrh	r2, [r3]
 	movw	r3, #65535
 	cmp	r2, r3
-	bne	.L3291
-.L3290:
+	bne	.L3247
+.L3246:
 	bl	pm_alloc_new_blk
 	mov	r0, #0
 	bl	ftl_info_flush
-.L3291:
-	ldr	r3, [r4, #2804]
+.L3247:
+	ldr	r3, [r7, #2800]
 	add	r3, r3, #692
 	ldrh	r2, [r3]
 	movw	r3, #65535
 	cmp	r2, r3
-	bne	.L3292
-	ldr	r1, .L3302+8
+	bne	.L3248
 	movw	r2, #303
-	ldr	r0, .L3302+12
+	ldr	r1, .L3258+8
+	ldr	r0, .L3258+12
 	bl	printk
 	bl	dump_stack
-.L3292:
-	ldr	r3, [r4, #2804]
-	ldr	r5, .L3302+16
+.L3248:
+	ldr	r3, [r7, #2800]
+	mov	r1, #0
+	ldr	r4, .L3258+16
 	add	r2, r3, #692
 	add	r3, r3, #696
-	ldrh	r1, [r2]
-	ldr	r2, .L3302+20
-	ldr	r0, [r5, #524]
-	ldrh	r10, [r2]
-	ldrh	r2, [r3]
-	mla	r10, r10, r1, r2
+	ldrh	r6, [r2]
+	sub	r2, r4, #3072
+	ldrh	r2, [r2, #-2]
+	ldrh	r3, [r3]
+	ldr	r0, [r4, #-32]
+	mla	r6, r2, r6, r3
 	mov	r2, #64
-	mov	r1, #0
 	bl	ftl_memset
-	ldr	r3, [r5, #524]
-	mov	r0, r7
-	str	r6, [r3]
-	ldr	r3, [r4, #2804]
-	ldr	fp, [r5, #524]
-	ldrb	r1, [r4, #2772]	@ zero_extendqisi2
+	ldr	r3, [r4, #-32]
+	mov	r0, r8
+	str	r5, [r3]
+	ldr	r3, [r7, #2800]
+	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
+	ldr	r10, [r4, #-32]
 	ldr	r3, [r3, #48]
-	mov	r1, r1, asl #9
-	str	r3, [fp, #4]
+	lsl	r1, r1, #9
+	str	r3, [r10, #4]
 	bl	js_hash
-	ldr	r3, [r4, #2804]
-	mov	r1, r10
-	mov	r2, r7
-	str	r0, [fp, #8]
+	ldr	r3, [r7, #2800]
+	mov	r2, r8
+	str	r0, [r10, #8]
+	mov	r1, r6
 	ldrb	r0, [r3, #694]	@ zero_extendqisi2
-	ldrb	r3, [r4, #2772]	@ zero_extendqisi2
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
 	str	r3, [sp]
-	ldr	r3, [r5, #524]
+	ldr	r3, [r4, #-32]
 	bl	ftl_prog_page
-	ldr	r2, [r4, #2804]
+	ldr	r2, [r7, #2800]
 	add	r1, r2, #696
 	ldrh	r3, [r1]
 	add	r3, r3, #1
 	uxth	r3, r3
-	strh	r3, [r1]	@ movhi
 	cmp	r3, #1
-	beq	.L3293
-	ldrb	r3, [r5, #528]	@ zero_extendqisi2
+	strh	r3, [r1]	@ movhi
+	beq	.L3249
+	ldrb	r3, [r4, #-28]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L3294
-.L3293:
+	beq	.L3250
+.L3249:
 	mov	r3, #0
-	strb	r3, [r5, #528]
-	b	.L3289
-.L3294:
+	strb	r3, [r4, #-28]
+	b	.L3245
+.L3250:
 	cmn	r0, #1
-	bne	.L3296
-	mov	r1, r10
-	ldr	r0, .L3302+24
+	bne	.L3252
+	mov	r1, r6
+	ldr	r0, .L3258+20
 	bl	printk
-	b	.L3289
-.L3296:
+	b	.L3245
+.L3252:
 	movw	r3, #698
 	mov	r0, #0
 	ldrh	r3, [r2, r3]
-	cmp	r6, r3
-	addcc	r6, r6, #176
-	strcc	r10, [r2, r6, asl #2]
-	add	sp, sp, #12
+	cmp	r5, r3
+	addcc	r5, r5, #176
+	strcc	r6, [r2, r5, lsl #2]
+	add	sp, sp, #8
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3303:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L3259:
 	.align	2
-.L3302:
+.L3258:
 	.word	.LANCHOR0
 	.word	.LANCHOR3-3096
-	.word	.LANCHOR1+2440
+	.word	.LANCHOR1+2233
 	.word	.LC0
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3066
-	.word	.LC206
+	.word	.LC205
 	.fnend
 	.size	pm_write_page, .-pm_write_page
 	.align	2
 	.global	flash_info_flush
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_info_flush, %function
 flash_info_flush:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L3318
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	ldr	r3, .L3273
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #20
 	sub	sp, sp, #20
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L3305
-	ldr	r0, .L3318+4
+	beq	.L3261
+	ldr	r2, .L3273+4
 	movw	r1, #365
-	ldr	r2, .L3318+8
+	ldr	r0, .L3273+8
 	bl	printk
-.L3305:
-	ldr	r5, .L3318+12
-	mov	r1, #0
-	ldr	r6, .L3318+16
+.L3261:
+	ldr	r4, .L3273+12
 	mov	r2, #64
-	add	r8, r5, #536
-	mov	r9, #0
-	ldr	r0, [r5, #532]
-	mov	r7, r5
+	ldr	r5, .L3273+16
+	mov	r1, #0
+	ldr	r9, .L3273+20
+	mov	r7, #0
+	ldr	r0, [r4, #-24]
+	mov	r10, r7
 	bl	ftl_memset
-	ldr	r0, .L3318+20
-	ldr	r1, [r6, #1176]
-	mov	r2, #4
 	mov	r3, #16
-	mov	r10, r8
+	mov	r2, #4
+	ldr	r1, [r5, #1040]
+	ldr	r0, .L3273+24
 	bl	rknand_print_hex
-	ldr	r4, [r6, #1176]
-	add	r0, r4, #16
-	ldr	r1, [r4, #8]
+	ldr	r8, .L3273+28
+	ldr	r6, [r5, #1040]
+	ldr	r1, [r6, #8]
+	add	r0, r6, #16
 	bl	js_hash
-	str	r0, [r4, #12]
-.L3306:
-	ldrb	r3, [r5, #536]	@ zero_extendqisi2
-	ldrh	r4, [r8, #2]
-	ldrh	ip, [r6, #2]
-	mov	r1, r3
-	ldr	r0, .L3318+24
-	mov	r2, r4
-	str	r3, [sp, #8]
-	str	ip, [sp, #12]
+	str	r0, [r6, #12]
+.L3262:
+	ldrb	r6, [r4, #-20]	@ zero_extendqisi2
+	mov	r0, r9
+	ldrh	fp, [r4, #-18]
+	ldrh	r3, [r5, #2]
+	mov	r1, r6
+	mov	r2, fp
+	str	r3, [sp, #12]
 	bl	printk
-	ldrh	r2, [r5, #-220]
-	ldrh	r0, [r8, #2]
+	ldrh	r2, [r4, #-224]
+	ldrh	r0, [r4, #-18]
+	ldr	r3, [sp, #12]
 	sub	r2, r2, #1
-	ldr	fp, .L3318+16
 	cmp	r0, r2
-	ldr	r3, [sp, #8]
-	ldr	ip, [sp, #12]
-	blt	.L3307
-	ldr	r4, [fp, #1176]
-	ldrb	r2, [r7, #537]	@ zero_extendqisi2
-	ldr	r3, [r4, #4]
-	mov	r0, r4
+	blt	.L3263
+	ldr	r6, [r5, #1040]
+	ldrb	r2, [r4, #-19]	@ zero_extendqisi2
+	strh	r10, [r4, #-18]	@ movhi
+	ldr	r3, [r6, #4]
+	mov	r0, r6
 	add	r3, r3, #1
-	str	r3, [r4, #4]
-	ldrb	r3, [r7, #536]	@ zero_extendqisi2
-	strb	r2, [r7, #536]
-	ldrh	r2, [r4, #16]
-	strb	r3, [r7, #537]
-	mov	r3, #0
-	add	r2, r2, #1
-	strh	r2, [r0, #16]!	@ movhi
-	ldr	r1, [r4, #8]
-	strh	r3, [r8, #2]	@ movhi
-	str	r3, [sp, #8]
+	str	r3, [r6, #4]
+	ldrb	r3, [r4, #-20]	@ zero_extendqisi2
+	strb	r2, [r4, #-20]
+	strb	r3, [r4, #-19]
+	ldrh	r3, [r6, #16]
+	add	r3, r3, #1
+	strh	r3, [r0, #16]!	@ movhi
+	ldr	r1, [r6, #8]
 	bl	js_hash
-	ldrb	r2, [r7, #536]	@ zero_extendqisi2
-	str	r0, [r4, #12]
-	ldr	r3, [sp, #8]
-	ldrh	r4, [fp, #2]
-	mov	r0, r3
-	mul	r4, r4, r2
-	b	.L3316
-.L3307:
-	cmp	r0, #0
-	mla	r4, ip, r3, r4
-	bne	.L3308
-.L3316:
-	mov	r1, r4
-	bl	flash_erase_block
-.L3308:
-	ldr	r2, [r6, #1176]
-	mov	fp, #1
-	ldr	r3, [r5, #532]
+	ldrb	r3, [r4, #-20]	@ zero_extendqisi2
+	str	r0, [r6, #12]
 	mov	r0, #0
-	mov	r1, r4
+	ldrh	r6, [r5, #2]
+	mul	r6, r6, r3
+	mov	r1, r6
+.L3272:
+	bl	flash_erase_block
+.L3264:
+	ldr	r2, [r5, #1040]
+	mov	fp, #1
+	ldr	r3, [r4, #-24]
+	mov	r1, r6
+	mov	r0, #0
 	ldr	r2, [r2, #4]
 	str	r2, [r3]
-	ldr	r2, .L3318+28
-	ldr	r3, [r5, #532]
-	str	r2, [r3, #4]
 	mov	r2, #4
-	stmia	sp, {r2, fp}
-	ldr	r2, [r6, #1176]
+	ldr	r3, [r4, #-24]
+	str	r8, [r3, #4]
+	stm	sp, {r2, fp}
+	ldr	r2, [r5, #1040]
 	bl	flash_prog_page_en
-	ldrh	r3, [r10, #2]
-	add	r3, r3, fp
-	strh	r3, [r10, #2]	@ movhi
+	ldrh	r3, [r4, #-18]
 	cmn	r0, #1
-	bne	.L3309
-	mov	r1, r4
-	ldr	r0, .L3318+32
+	add	r3, r3, fp
+	strh	r3, [r4, #-18]	@ movhi
+	bne	.L3265
+	mov	r1, r6
+	ldr	r0, .L3273+32
 	bl	printk
-	b	.L3306
-.L3309:
-	cmp	r9, #0
-	moveq	r9, fp
-	beq	.L3306
-.L3317:
+	b	.L3262
+.L3267:
+	mov	r7, fp
+	b	.L3262
+.L3263:
+	cmp	r0, #0
+	mla	r6, r6, r3, fp
+	bne	.L3264
+	mov	r1, r6
+	b	.L3272
+.L3265:
+	cmp	r7, #0
+	beq	.L3267
 	mov	r0, #0
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3319:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3274:
 	.align	2
-.L3318:
+.L3273:
 	.word	.LANCHOR2
-	.word	.LC138
-	.word	.LANCHOR1+2456
+	.word	.LANCHOR1+2247
+	.word	.LC135
 	.word	.LANCHOR3
 	.word	.LANCHOR0
 	.word	.LC207
-	.word	.LC208
+	.word	.LC206
 	.word	1398362953
-	.word	.LC209
+	.word	.LC208
 	.fnend
 	.size	flash_info_flush, .-flash_info_flush
 	.align	2
 	.global	flash_info_blk_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flash_info_blk_init, %function
 flash_info_blk_init:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 8
+	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L3353
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	ldr	r3, .L3307
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #20
-	sub	sp, sp, #20
+	.pad #12
+	ldr	r4, .L3307+4
 	ldr	r3, [r3]
-	ldr	r6, .L3353+4
 	tst	r3, #4096
-	beq	.L3321
-	ldr	r3, [r6, #1176]
+	beq	.L3276
+	ldr	r3, [r4, #1040]
 	mov	r1, #50
-	ldr	r0, .L3353+8
-	ldr	r2, .L3353+12
+	ldr	r2, .L3307+8
+	ldr	r0, .L3307+12
 	str	r3, [sp]
 	mov	r3, #2048
 	bl	printk
-.L3321:
-	ldr	ip, .L3353+4
+.L3276:
+	ldr	r5, .L3307+16
 	mov	r7, #4
-	ldr	fp, .L3353+16
-.L3322:
-	mov	r5, #0
-.L3325:
-	ldrh	r1, [r6, #2]
-	mov	r8, #4
-	ldr	r4, .L3353+20
+	ldr	r8, .L3307+20
+.L3280:
+	mov	r6, #0
+.L3279:
+	ldrh	r1, [r4, #2]
+	mov	r9, #4
+	str	r9, [sp]
 	mov	r0, #0
-	str	r8, [sp]
-	mla	r1, r1, r7, r5
-	ldr	r2, [r6, #1176]
-	ldr	r3, [r4, #532]
-	str	ip, [sp, #12]
+	ldr	r3, [r5, #-24]
+	ldr	r2, [r4, #1040]
+	mla	r1, r7, r1, r6
 	bl	flash_read_page_en
-	ldr	r9, .L3353+4
 	cmn	r0, #1
-	ldr	ip, [sp, #12]
-	beq	.L3323
-	ldr	r2, [ip, #1176]
-	ldr	r10, .L3353+16
+	beq	.L3277
+	ldr	r2, [r4, #1040]
 	ldr	r3, [r2]
-	cmp	r3, fp
-	beq	.L3324
-.L3323:
-	add	r5, r5, #1
-	cmp	r5, #4
-	bne	.L3325
+	cmp	r3, r8
+	beq	.L3278
+.L3277:
+	add	r6, r6, #1
+	cmp	r6, #4
+	bne	.L3279
 	add	r7, r7, #1
 	cmp	r7, #16
-	bne	.L3322
-	b	.L3334
-.L3324:
-	ldrb	r1, [r2, #37]	@ zero_extendqisi2
+	bne	.L3280
+.L3306:
+	mvn	r0, #0
+.L3275:
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3287:
+	str	r9, [sp]
+	sub	r1, r10, r7
+	ldr	r3, [r5, #-24]
 	mov	r0, #0
-	ldrb	r3, [r2, #36]	@ zero_extendqisi2
-	strb	r1, [r4, #537]
-	ldrh	r1, [r9, #2]
-	strb	r3, [r4, #536]
-	str	r8, [sp]
-	mul	r1, r1, r3
-	ldr	r3, [r4, #532]
+	ldr	r2, [r4, #1040]
 	bl	flash_read_page_en
 	cmn	r0, #1
-	beq	.L3335
-	ldr	r3, [r9, #1176]
+	beq	.L3285
+	ldr	r3, [r4, #1040]
+	ldr	r3, [r3]
+	cmp	r3, r8
+	beq	.L3286
+.L3285:
+	add	r7, r7, #1
+	b	.L3284
+.L3286:
+	cmp	r7, #1
+	bls	.L3290
+	bl	flash_info_flush
+.L3290:
+	mov	r0, #0
+	b	.L3275
+.L3278:
+	ldrb	r1, [r2, #36]	@ zero_extendqisi2
+	ldrh	r0, [r4, #2]
+	ldrb	r3, [r2, #37]	@ zero_extendqisi2
+	strb	r1, [r5, #-20]
+	str	r9, [sp]
+	strb	r3, [r5, #-19]
+	mul	r1, r1, r0
+	ldr	r3, [r5, #-24]
+	mov	r0, #0
+	bl	flash_read_page_en
+	cmn	r0, #1
+	beq	.L3289
+	ldr	r3, [r4, #1040]
 	ldr	r2, [r3]
-	cmp	r2, fp
-	ldreq	r5, [r3, #4]
-	bne	.L3335
-.L3327:
-	ldrb	r3, [r4, #537]	@ zero_extendqisi2
-	mov	r2, #4
-	ldrh	r1, [r6, #2]
+	cmp	r2, r8
+	ldreq	r6, [r3, #4]
+	beq	.L3282
+.L3289:
+	mov	r6, #0
+.L3282:
+	ldrh	r0, [r4, #2]
+	mov	r3, #4
+	ldrb	r1, [r5, #-19]	@ zero_extendqisi2
+	str	r3, [sp]
+	ldr	r2, [r4, #1040]
+	ldr	r3, [r5, #-24]
+	mul	r1, r0, r1
 	mov	r0, #0
-	str	r2, [sp]
-	ldr	r2, [r6, #1176]
-	mul	r1, r1, r3
-	ldr	r3, [r4, #532]
 	bl	flash_read_page_en
-	ldr	r7, .L3353+20
 	cmn	r0, #1
-	bne	.L3352
-.L3328:
-	ldr	r2, [r6, #1176]
-	mov	r8, #4
-	ldr	r3, [r4, #532]
+	beq	.L3283
+	ldr	r3, [r4, #1040]
+	ldr	r2, [r3]
+	cmp	r2, r8
+	bne	.L3283
+	ldr	r2, [r3, #4]
+	cmp	r6, r2
+	ldrbcc	r2, [r3, #37]	@ zero_extendqisi2
+	ldrbcc	r3, [r3, #36]	@ zero_extendqisi2
+	strbcc	r2, [r5, #-20]
+	strbcc	r3, [r5, #-19]
+.L3283:
+	mov	r9, #4
+	ldr	r3, [r5, #-24]
+	ldrb	r1, [r5, #-20]	@ zero_extendqisi2
 	mov	r0, #0
-	ldrb	r1, [r4, #536]	@ zero_extendqisi2
+	str	r9, [sp]
 	mov	r7, #0
-	str	r8, [sp]
+	ldr	r2, [r4, #1040]
 	bl	flash_get_last_written_page
-	ldr	r3, .L3353+24
-	ldrh	r9, [r6, #2]
-	ldr	ip, .L3353+4
 	uxth	fp, r0
-	add	r2, fp, #1
-	strh	r2, [r3, #2]	@ movhi
-	ldrb	r3, [r4, #536]	@ zero_extendqisi2
-	mla	r9, r9, r3, r0
-.L3329:
-	rsb	r5, r7, fp
-	sxth	r5, r5
-	cmp	r5, #0
-	bge	.L3332
-	cmn	r5, #1
-	bne	.L3331
-	ldr	r3, [r6, #1176]
-	ldr	r0, .L3353+28
+	ldrb	r10, [r5, #-20]	@ zero_extendqisi2
+	add	r3, fp, #1
+	strh	r3, [r5, #-18]	@ movhi
+	ldrh	r3, [r4, #2]
+	mla	r10, r3, r10, r0
+.L3284:
+	sub	r0, fp, r7
+	sxth	r6, r0
+	cmp	r6, #0
+	bge	.L3287
+	cmn	r6, #1
+	bne	.L3286
+	ldr	r3, [r4, #1040]
+	ldr	r0, .L3307+24
 	ldr	r1, [r3]
 	bl	printk
-.L3334:
-	mvn	r0, #0
-	b	.L3350
-.L3335:
-	mov	r5, #0
-	b	.L3327
-.L3352:
-	ldr	r3, .L3353+4
-	ldr	r3, [r3, #1176]
-	ldr	r2, [r3]
-	cmp	r2, r10
-	bne	.L3328
-	ldr	r2, [r3, #4]
-	cmp	r5, r2
-	ldrccb	r2, [r3, #37]	@ zero_extendqisi2
-	ldrccb	r3, [r3, #36]	@ zero_extendqisi2
-	strccb	r2, [r7, #536]
-	strccb	r3, [r7, #537]
-	b	.L3328
-.L3332:
-	str	r8, [sp]
-	mov	r0, #0
-	rsb	r1, r7, r9
-	ldr	r2, [r6, #1176]
-	ldr	r3, [r4, #532]
-	str	ip, [sp, #12]
-	bl	flash_read_page_en
-	cmn	r0, #1
-	ldr	ip, [sp, #12]
-	beq	.L3330
-	ldr	r3, [ip, #1176]
-	ldr	r3, [r3]
-	cmp	r3, r10
-	beq	.L3331
-.L3330:
-	add	r7, r7, #1
-	b	.L3329
-.L3331:
-	cmp	r7, #1
-	bls	.L3336
-	bl	flash_info_flush
-.L3336:
-	mov	r0, #0
-.L3350:
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3354:
+	b	.L3306
+.L3308:
 	.align	2
-.L3353:
+.L3307:
 	.word	.LANCHOR2
 	.word	.LANCHOR0
-	.word	.LC210
-	.word	.LANCHOR1+2476
-	.word	1398362953
+	.word	.LANCHOR1+2264
+	.word	.LC209
 	.word	.LANCHOR3
-	.word	.LANCHOR3+536
-	.word	.LC211
+	.word	1398362953
+	.word	.LC210
 	.fnend
 	.size	flash_info_blk_init, .-flash_info_blk_init
 	.align	2
 	.global	nand_flash_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	nand_flash_init, %function
 nand_flash_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	mov	r4, r0
-	ldr	r6, .L3451
+	ldr	r6, .L3395
 	ldr	r3, [r6]
 	tst	r3, #4096
-	beq	.L3356
-	ldr	r0, .L3451+4
+	beq	.L3310
+	ldr	r2, .L3395+4
 	movw	r1, #3450
-	ldr	r2, .L3451+8
+	ldr	r0, .L3395+8
 	bl	printk
-.L3356:
-	ldr	r5, .L3451+12
-	mov	r0, r4
+.L3310:
+	ldr	r5, .L3395+12
 	mov	r7, #0
-	ldr	r4, .L3451+16
-	str	r7, [r5, #-112]
+	mov	r0, r4
+	ldr	r4, .L3395+16
+	ldr	r9, .L3395+20
+	mov	fp, #44
+	str	r7, [r5, #-104]
 	bl	nandc_init
-	ldr	r3, .L3451+20
-	mov	r1, r7
+	ldr	r3, .L3395+24
 	mov	r2, #8
-	ldr	r0, .L3451+24
-	add	r10, r4, #1200
-	mov	r9, r4
-	str	r3, [r4, #1096]
-	mov	r3, #1
-	strb	r3, [r4, #1101]
-	mov	r3, #3
-	strb	r3, [r4, #1189]
-	bl	ftl_memset
-	sub	r0, r5, #216
 	mov	r1, r7
-	mov	r2, #32
-	mov	fp, r10
+	ldr	r0, .L3395+28
+	mov	r10, r9
+	str	r3, [r4, #1104]
+	mov	r3, #1
+	strb	r3, [r4, #1109]
+	mov	r3, #3
+	strb	r3, [r4, #1153]
 	bl	ftl_memset
-.L3362:
-	mov	r8, r7, asl #3
+	mov	r2, #32
+	mov	r1, r7
+	sub	r0, r5, #220
+	bl	ftl_memset
+.L3316:
+	lsl	r8, r7, #3
 	uxtb	r0, r7
-	add	r1, r10, r8
+	add	r1, r9, r8
 	bl	flash_read_id
 	cmp	r7, #0
-	ldr	r1, .L3451+28
-	bne	.L3357
-	ldrb	r3, [r9, #1200]	@ zero_extendqisi2
+	bne	.L3311
+	ldrb	r3, [r4, #1160]	@ zero_extendqisi2
 	sub	r3, r3, #1
 	uxtb	r3, r3
 	cmp	r3, #253
-	bls	.L3358
-.L3360:
+	bls	.L3312
+.L3314:
 	mvn	r7, #1
-	b	.L3440
-.L3358:
-	ldrb	r3, [r9, #1201]	@ zero_extendqisi2
+.L3309:
+	mov	r0, r7
+	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3312:
+	ldrb	r3, [r4, #1161]	@ zero_extendqisi2
 	cmp	r3, #255
-	beq	.L3360
-.L3357:
-	ldrb	r3, [fp, r8]	@ zero_extendqisi2
+	beq	.L3314
+.L3311:
+	ldrb	r3, [r8, r10]	@ zero_extendqisi2
 	add	r7, r7, #1
 	cmp	r3, #181
-	ldreq	r3, .L3451+28
-	moveq	r2, #44
-	streqb	r2, [r8, r3]
+	strbeq	fp, [r8, r10]
 	cmp	r7, #4
-	bne	.L3362
-	ldr	ip, .L3451+32
-	mov	r3, #0
-.L3400:
-	mov	r0, r3, asl #5
-	ldrb	r8, [ip, r3, asl #5]	@ zero_extendqisi2
-	add	r7, r0, #1
-	ldr	lr, .L3451+32
-	add	r7, ip, r7
-	mov	r2, #0
-.L3363:
-	cmp	r2, r8
-	bcs	.L3450
-	ldrb	r10, [r7, r2]	@ zero_extendqisi2
-	ldrb	r9, [r1, r2]	@ zero_extendqisi2
-	cmp	r10, r9
-	bne	.L3364
-	add	r2, r2, #1
-	b	.L3363
-.L3450:
-	adds	r8, lr, r0
-	beq	.L3360
-	ldr	r3, .L3451
-	ldr	r2, .L3451+36
-	add	r0, r3, r0
-	mov	r3, #0
-	ldrb	r1, [r0, #446]	@ zero_extendqisi2
-.L3368:
-	ldrb	r0, [r2, r3, asl #5]	@ zero_extendqisi2
-	cmp	r0, r1
-	beq	.L3367
-	add	r3, r3, #1
-	cmp	r3, #4
-	bne	.L3368
-.L3367:
-	ldr	r1, .L3451+36
+	bne	.L3316
+	ldr	r9, .L3395+32
+	mov	r7, #0
+	ldr	r10, .L3395+20
+.L3319:
+	lsl	r8, r7, #5
+	ldrb	r2, [r9, r7, lsl #5]	@ zero_extendqisi2
+	mov	r1, r10
+	add	r0, r8, #1
+	add	r0, r9, r0
+	bl	flash_mem_cmp8
+	cmp	r0, #0
+	bne	.L3317
+	add	r9, r9, r8
+	ldr	r3, .L3395+36
+	add	r8, r6, r8
+	ldrb	r2, [r8, #440]	@ zero_extendqisi2
+	mov	r1, r3
+.L3318:
+	ldrb	ip, [r3, r0, lsl #5]	@ zero_extendqisi2
+	cmp	ip, r2
+	beq	.L3320
+	add	r0, r0, #1
+	cmp	r0, #4
+	bne	.L3318
+.L3320:
+	add	r1, r1, r0, lsl #5
 	mov	r2, #32
-	ldr	r7, .L3451
-	add	r1, r1, r3, asl #5
-	ldr	r0, .L3451+40
+	ldr	r0, .L3395+40
 	bl	ftl_memcpy
-	add	r0, r7, #4
-	mov	r1, r8
 	mov	r2, #32
+	mov	r1, r9
+	ldr	r0, .L3395+24
 	bl	ftl_memcpy
 	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
 	cmp	r3, #8
-	bhi	.L3369
-	ldrb	r2, [r7, #24]	@ zero_extendqisi2
+	bhi	.L3321
+	ldrb	r2, [r6, #24]	@ zero_extendqisi2
 	cmp	r2, #60
 	movhi	r2, #60
-	strhib	r2, [r7, #24]
+	strbhi	r2, [r6, #24]
 	cmp	r3, #6
-	beq	.L3360
-.L3369:
+	beq	.L3314
+.L3321:
 	ldr	r3, [r6]
 	tst	r3, #4096
-	beq	.L3371
-	ldr	r0, .L3451+4
+	beq	.L3323
+	ldr	r2, .L3395+4
 	movw	r1, #3480
-	ldr	r2, .L3451+8
+	ldr	r0, .L3395+8
 	bl	printk
-.L3371:
-	ldr	r3, [r4, #1096]
+.L3323:
+	ldr	r3, [r4, #1104]
 	mov	r0, #16384
 	mov	r7, #0
 	ldrh	r3, [r3, #10]
 	cmp	r3, #1024
-	ldrcs	r3, .L3451+16
-	movcs	r2, #2
-	strcsb	r2, [r3, #1189]
+	movcs	r3, #2
+	strbcs	r3, [r4, #1153]
 	bl	ftl_malloc
-	str	r0, [r5, #-104]
+	str	r0, [r5, #-92]
 	mov	r0, #16384
 	bl	ftl_malloc
-	str	r0, [r5, #-128]
-	mov	r0, #2048
-	bl	ftl_malloc
-	str	r0, [r4, #1176]
-	mov	r0, #64
-	bl	ftl_malloc
-	str	r0, [r5, #-100]
-	mov	r0, #64
-	bl	ftl_malloc
 	str	r0, [r5, #-120]
+	mov	r0, #2048
+	bl	ftl_dma32_malloc
+	str	r0, [r4, #1040]
 	mov	r0, #64
-	bl	ftl_malloc
-	strb	r7, [r5, #540]
-	str	r0, [r5, #532]
+	bl	ftl_dma32_malloc
+	str	r0, [r5, #-96]
+	mov	r0, #64
+	bl	ftl_dma32_malloc
+	str	r0, [r5, #-112]
+	mov	r0, #64
+	bl	ftl_dma32_malloc
+	strb	r7, [r5, #-16]
+	str	r0, [r5, #-24]
 	bl	flash_die_info_init
 	ldrb	r0, [r6, #22]	@ zero_extendqisi2
 	bl	flash_lsb_page_tbl_build
 	ldrb	r0, [r6, #24]	@ zero_extendqisi2
 	bl	nandc_bch_sel
-	ldr	r1, [r4, #1096]
-	str	r7, [r5, #-108]
+	ldr	r1, [r4, #1104]
+	str	r7, [r5, #-100]
 	ldrh	r3, [r1, #16]
 	ubfx	r2, r3, #8, #3
-	strb	r2, [r4, #1232]
+	strb	r2, [r4, #1192]
 	ubfx	r2, r3, #3, #1
-	strb	r2, [r5, #-88]
+	strb	r2, [r5, #-80]
 	ubfx	r2, r3, #4, #1
-	strb	r2, [r4, #1233]
+	strb	r2, [r4, #1194]
 	ubfx	r2, r3, #12, #1
-	strb	r2, [r5, #-3116]
+	strb	r2, [r5, #-3120]
 	ubfx	r2, r3, #13, #1
-	strb	r2, [r5, #-3122]
+	strb	r2, [r5, #-3126]
 	ubfx	r2, r3, #11, #1
-	strb	r2, [r4, #1196]
+	strb	r2, [r4, #1158]
 	ldrb	r2, [r1, #31]	@ zero_extendqisi2
 	ldrb	r1, [r1, #28]	@ zero_extendqisi2
 	ubfx	r0, r2, #1, #1
-	strb	r0, [r5, #-2536]
+	strb	r0, [r5, #-2542]
 	ubfx	r0, r2, #2, #1
-	strb	r0, [r5, #541]
+	strb	r0, [r5, #-15]
 	ubfx	r0, r3, #14, #1
-	mov	r3, r3, lsr #15
-	strb	r3, [r5, #-3121]
+	lsr	r3, r3, #15
+	strb	r0, [r4, #1]
+	strb	r1, [r4]
+	strb	r3, [r5, #-3125]
 	ubfx	r3, r2, #3, #1
-	strb	r3, [r4, #1188]
+	strb	r3, [r4, #1152]
 	mov	r3, #60
-	strb	r3, [r4, #1100]
+	strb	r3, [r4, #1108]
 	ubfx	r2, r2, #4, #1
 	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
-	strb	r2, [r4, #1197]
+	strb	r2, [r4, #1159]
+	strb	r1, [r4, #1110]
 	cmp	r3, #9
-	strb	r1, [r4]
-	strb	r1, [r4, #1102]
-	ldreq	r2, .L3451+16
-	ldrb	r1, [r6, #35]	@ zero_extendqisi2
-	strb	r0, [r4, #1]
-	moveq	r0, #70
-	streqb	r0, [r2, #1100]
-	tst	r1, #1
-	ldr	r2, .L3451+16
-	beq	.L3374
-	ldr	r1, .L3451
-	ldrb	r1, [r1, #33]	@ zero_extendqisi2
-	cmp	r1, #0
-	movne	r1, #2
-	moveq	r1, #3
-	strb	r1, [r2, #1102]
-.L3374:
+	moveq	r2, #70
+	strbeq	r2, [r4, #1108]
+	ldrb	r2, [r6, #35]	@ zero_extendqisi2
+	tst	r2, #1
+	beq	.L3326
+	ldrb	r2, [r6, #33]	@ zero_extendqisi2
+	cmp	r2, #0
+	movne	r2, #2
+	moveq	r2, #3
+	strb	r2, [r4, #1110]
+.L3326:
 	cmp	r3, #8
-	bne	.L3376
-	ldrb	r3, [r4, #1200]	@ zero_extendqisi2
-	cmp	r3, #44
-	cmpne	r3, #137
-	bne	.L3376
+	bne	.L3328
+	ldrb	r3, [r4, #1160]	@ zero_extendqisi2
+	cmp	r3, #137
+	cmpne	r3, #44
+	bne	.L3328
 	ldrb	r3, [r6, #32]	@ zero_extendqisi2
 	cmp	r3, #3
-	ldreq	r3, .L3451+16
-	moveq	r2, #0
-	streqb	r2, [r3, #1102]
-.L3376:
+	moveq	r3, #0
+	strbeq	r3, [r4, #1110]
+.L3328:
 	ldrh	r2, [r6, #20]
 	ldrb	r3, [r6, #23]	@ zero_extendqisi2
 	tst	r2, #64
-	ldr	r0, .L3451+16
-	strb	r3, [r4, #1173]
-	beq	.L3378
+	strb	r3, [r4, #1100]
+	beq	.L3330
 	sub	r2, r3, #17
-	sub	r1, r3, #21
-	clz	r1, r1
 	cmp	r3, #21
 	cmpne	r2, #2
-	mov	r1, r1, lsr #5
-	bhi	.L3379
-	ldr	r2, .L3451+44
-	cmp	r1, #0
-	ldr	r3, .L3451+12
-	str	r2, [r5, #-108]
-	moveq	r2, #15
-	movne	r2, #4
-	strb	r2, [r3, #-116]
-	b	.L3378
-.L3379:
-	sub	r2, r3, #65
-	cmp	r3, #33
-	cmpne	r2, #1
-	ldrls	r3, .L3451+48
-	strls	r3, [r5, #-108]
-	movls	r3, #4
-	strlsb	r3, [r0, #1174]
-	bls	.L3449
-.L3382:
-	sub	r1, r3, #67
-	sub	r2, r3, #34
-	cmp	r1, #1
-	sub	ip, r3, #35
-	sub	lr, r3, #68
-	clz	ip, ip
-	movhi	r1, #0
-	movls	r1, #1
-	cmp	r2, #1
-	movhi	r2, r1
-	orrls	r2, r1, #1
-	clz	lr, lr
-	cmp	r2, #0
-	mov	ip, ip, lsr #5
-	mov	lr, lr, lsr #5
-	beq	.L3383
-	ldr	r2, .L3451+48
-	ldr	r3, .L3451+12
-	str	r2, [r5, #-108]
-	orrs	r2, lr, ip
-	moveq	r2, #7
-	movne	r2, #17
-	cmp	r1, #0
-	strb	r2, [r3, #-116]
-	movne	r3, #4
-	moveq	r3, #5
-	strb	r3, [r4, #1174]
-	b	.L3378
-.L3383:
-	sub	r1, r3, #36
-	cmp	r1, #1
-	bhi	.L3387
-	ldr	r3, .L3451+52
-	str	r3, [r5, #-108]
-.L3449:
-	mov	r3, #7
-	b	.L3447
-.L3387:
-	cmp	r3, #50
-	bne	.L3388
-	ldr	r3, .L3451+56
-	str	r3, [r5, #-108]
-	mov	r3, #25
-.L3447:
-	strb	r3, [r5, #-116]
-	b	.L3378
-.L3388:
-	cmp	r3, #81
-	streqb	r2, [r0, #1136]
-	ldreq	r3, .L3451+60
-	streq	r3, [r5, #-108]
-	moveq	r3, #7
-	streqb	r3, [r5, #-116]
-.L3378:
+	bhi	.L3331
+	cmp	r3, #21
+	ldr	r2, .L3395+44
+	movne	r3, #15
+	moveq	r3, #4
+	str	r2, [r5, #-100]
+.L3391:
+	strb	r3, [r5, #-108]
+.L3330:
 	ldr	r3, [r6]
 	tst	r3, #4096
-	beq	.L3389
-	ldr	r0, .L3451+4
+	beq	.L3341
+	ldr	r2, .L3395+4
 	movw	r1, #3573
-	ldr	r2, .L3451+8
+	ldr	r0, .L3395+8
 	bl	printk
-.L3389:
+.L3341:
 	mov	r3, #0
-	strb	r3, [r4, #1135]
-	ldrb	r3, [r4, #1232]	@ zero_extendqisi2
+	strb	r3, [r4, #1143]
+	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
 	tst	r3, #1
 	moveq	r0, #4
-	beq	.L3448
-	ldr	r3, .L3451+16
-	ldrb	r3, [r3, #1200]	@ zero_extendqisi2
+	beq	.L3393
+	ldrb	r3, [r4, #1160]	@ zero_extendqisi2
 	cmp	r3, #155
-	beq	.L3391
+	beq	.L3343
 	mov	r0, #4
 	bl	flash_set_interface_mode
 	mov	r0, #4
 	bl	nandc_set_if_mode
-.L3391:
+.L3343:
 	mov	r0, #1
 	bl	flash_set_interface_mode
 	mov	r0, #1
-.L3448:
+.L3393:
 	bl	nandc_set_if_mode
 	bl	flash_info_blk_init
 	cmn	r0, #1
 	mov	r7, r0
-	bne	.L3393
-	ldr	r3, [r4, #1176]
+	bne	.L3345
+	ldr	r3, [r4, #1040]
 	mov	r2, #17
 	mov	r0, #0
-	strb	r0, [r4, #1192]
+	strb	r0, [r4, #1154]
 	strb	r2, [r3, #32]
 	bl	zftl_flash_exit_slc_mode
-	b	.L3440
-.L3393:
+	b	.L3309
+.L3317:
+	add	r7, r7, #1
+	cmp	r7, #49
+	bne	.L3319
+	b	.L3314
+.L3331:
+	sub	r2, r3, #65
+	cmp	r3, #33
+	cmpne	r2, #1
+	bhi	.L3334
+	ldr	r3, .L3395+48
+	str	r3, [r5, #-100]
+	mov	r3, #4
+	strb	r3, [r4, #1101]
+.L3394:
+	mov	r3, #7
+	b	.L3391
+.L3334:
+	sub	r2, r3, #67
+	sub	r1, r3, #34
+	uxtb	r2, r2
+	cmp	r2, #1
+	cmphi	r1, #1
+	movls	r1, #1
+	movhi	r1, #0
+	bhi	.L3335
+	cmp	r3, #68
+	cmpne	r3, #35
+	ldr	r1, .L3395+48
+	movne	r3, #7
+	moveq	r3, #17
+	cmp	r2, #1
+	strb	r3, [r5, #-108]
+	movls	r3, #4
+	movhi	r3, #5
+	str	r1, [r5, #-100]
+	strb	r3, [r4, #1101]
+	b	.L3330
+.L3335:
+	sub	r2, r3, #36
+	cmp	r2, #1
+	ldrls	r3, .L3395+52
+	strls	r3, [r5, #-100]
+	bls	.L3394
+.L3339:
+	cmp	r3, #50
+	ldreq	r3, .L3395+56
+	streq	r3, [r5, #-100]
+	moveq	r3, #25
+	beq	.L3391
+.L3340:
+	cmp	r3, #81
+	ldreq	r3, .L3395+60
+	strbeq	r1, [r4, #1195]
+	streq	r3, [r5, #-100]
+	moveq	r3, #7
+	strbeq	r3, [r5, #-108]
+	b	.L3330
+.L3345:
 	ldrb	r3, [r6, #11]	@ zero_extendqisi2
 	cmp	r3, #9
-	bne	.L3394
-	ldr	r3, [r4, #1176]
+	bne	.L3346
+	ldr	r3, [r4, #1040]
 	ldrb	r3, [r3, #20]	@ zero_extendqisi2
 	cmp	r3, #1
-	ldrne	r3, .L3451+16
-	movne	r2, #0
-	strneb	r2, [r3, #1102]
-.L3394:
-	ldrb	r3, [r4, #1173]	@ zero_extendqisi2
-	ldr	r7, .L3451+16
+	movne	r3, #0
+	strbne	r3, [r4, #1110]
+.L3346:
+	ldrb	r3, [r4, #1100]	@ zero_extendqisi2
 	sub	r3, r3, #1
 	cmp	r3, #7
-	ldrls	r3, .L3451+64
-	strls	r3, [r5, #-108]
-	ldrb	r3, [r4, #1232]	@ zero_extendqisi2
+	ldrls	r3, .L3395+64
+	strls	r3, [r5, #-100]
+	ldrb	r3, [r4, #1192]	@ zero_extendqisi2
 	tst	r3, #4
-	beq	.L3397
-	ldr	r3, [r7, #1176]
+	beq	.L3349
+	ldr	r3, [r4, #1040]
 	ldrb	r3, [r3, #19]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L3397
-	ldrb	r3, [r5, #536]	@ zero_extendqisi2
+	beq	.L3349
+	ldrb	r3, [r5, #-20]	@ zero_extendqisi2
 	mov	r0, #0
-	ldrh	r1, [r7, #2]
+	ldrh	r1, [r4, #2]
 	mul	r1, r1, r3
 	bl	flash_ddr_para_scan
-	ldrb	r3, [r7, #1135]	@ zero_extendqisi2
+	ldrb	r3, [r4, #1143]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L3397
-	ldr	r2, [r7, #1176]
+	bne	.L3349
+	ldr	r2, [r4, #1040]
 	strb	r3, [r2, #19]
 	bl	flash_info_flush
-.L3397:
+.L3349:
 	ldr	r3, [r6]
 	tst	r3, #4096
-	beq	.L3399
-	ldr	r0, .L3451+4
+	beq	.L3351
+	ldr	r2, .L3395+4
 	movw	r1, #3676
-	ldr	r2, .L3451+8
+	ldr	r0, .L3395+8
 	bl	printk
-.L3399:
+.L3351:
 	bl	nand_flash_print_info
 	mov	r7, #0
-	b	.L3440
-.L3364:
-	add	r3, r3, #1
-	cmp	r3, #49
-	bne	.L3400
-	b	.L3360
-.L3440:
-	mov	r0, r7
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3452:
+	b	.L3309
+.L3396:
 	.align	2
-.L3451:
+.L3395:
 	.word	.LANCHOR2
-	.word	.LC138
-	.word	.LANCHOR1+2496
+	.word	.LANCHOR1+2284
+	.word	.LC135
 	.word	.LANCHOR3
 	.word	.LANCHOR0
+	.word	.LANCHOR0+1160
 	.word	.LANCHOR2+4
-	.word	.LANCHOR0+1180
-	.word	.LANCHOR0+1200
-	.word	.LANCHOR2+424
-	.word	.LANCHOR2+1992
-	.word	.LANCHOR0+1103
+	.word	.LANCHOR0+1144
+	.word	.LANCHOR2+418
+	.word	.LANCHOR2+1986
+	.word	.LANCHOR0+1111
 	.word	micron_read_retrial
 	.word	toshiba_read_retrial
 	.word	toshiba_3d_read_retrial
@@ -20476,408 +20776,397 @@
 	.size	nand_flash_init, .-nand_flash_init
 	.align	2
 	.global	ftl_sysblk_dump
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_sysblk_dump, %function
 ftl_sysblk_dump:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	fp, r0
+	mov	r9, r0
 	.pad #52
 	sub	sp, sp, #52
 	mov	r0, #1
+	mov	r5, #0
+	ldr	r10, .L3408
+	mov	r6, r5
 	bl	buf_alloc
-	ldr	r10, .L3465
-	mov	r6, #0
-	mov	r5, r6
-	ldr	ip, [r0, #4]
+	ldr	r3, [r0, #4]
 	mov	r4, r0
-.L3454:
-	ldrh	r3, [r10]
-	uxth	r8, r6
-	cmp	r3, r8
-	bls	.L3464
-	ldr	r3, .L3465+4
-	add	r6, r6, #1
-	ldr	r1, [r4, #4]
-	ldr	r2, [r4, #12]
-	ldrh	r7, [r3]
-	ldr	r3, .L3465+8
-	str	ip, [sp, #44]
-	mla	r7, r7, fp, r8
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
-	mov	r0, r7
-	bl	ftl_read_ppa_page
-	ldr	r2, [r4, #4]
-	ldr	r3, [r4, #12]
-	str	r0, [sp]
-	mov	r9, r0
-	ldr	r1, [r2]
-	ldr	r0, .L3465+12
-	str	r1, [sp, #4]
-	ldr	r1, [r2, #4]
-	str	r1, [sp, #8]
-	ldr	r1, [r2, #8]
-	str	r1, [sp, #12]
-	mov	r1, fp
-	ldr	r2, [r2, #12]
-	str	r2, [sp, #16]
-	ldr	r2, [r3]
-	str	r2, [sp, #20]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #24]
-	ldr	r2, [r3, #8]
-	str	r2, [sp, #28]
-	mov	r2, r8
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #32]
-	mov	r3, r7
-	bl	printk
-	cmn	r9, #1
-	cmpne	r9, #512
-	moveq	r5, #1
-	ldr	ip, [sp, #44]
-	b	.L3454
-.L3464:
-	ldr	r0, .L3465+16
-	add	r1, ip, #704
-	mov	r2, #4
+	str	r3, [sp, #44]
+.L3398:
+	ldr	r3, .L3408+4
+	ldrh	r2, [r3, #-8]
+	uxth	r3, r5
+	cmp	r2, r3
+	bhi	.L3400
+	ldr	r1, [sp, #44]
 	mov	r3, #32
+	mov	r2, #4
+	ldr	r0, .L3408+8
+	add	r1, r1, #704
 	bl	rknand_print_hex
 	mov	r0, r4
 	bl	zbuf_free
-	cmp	r5, #0
-	beq	.L3457
-	ldr	r1, .L3465+20
+	cmp	r6, #0
+	beq	.L3401
 	movw	r2, #1619
-	ldr	r0, .L3465+24
+	ldr	r1, .L3408+12
+	ldr	r0, .L3408+16
 	bl	printk
 	bl	dump_stack
-.L3457:
-	mov	r0, r5
+.L3401:
+	mov	r0, r6
 	add	sp, sp, #52
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3466:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3400:
+	ldr	r3, .L3408+20
+	uxth	fp, r5
+	ldr	r2, [r4, #12]
+	add	r5, r5, #1
+	ldr	r1, [r4, #4]
+	ldrh	r7, [r3]
+	ldrb	r3, [r10, #-2546]	@ zero_extendqisi2
+	mla	r7, r9, r7, fp
+	mov	r0, r7
+	bl	ftl_read_ppa_page
+	ldr	r2, [r4, #12]
+	mov	r8, r0
+	ldr	r3, [r4, #4]
+	ldr	r1, [r2, #12]
+	str	r1, [sp, #32]
+	ldr	r1, [r2, #8]
+	str	r1, [sp, #28]
+	ldr	r1, [r2, #4]
+	str	r1, [sp, #24]
+	mov	r1, r9
+	ldr	r2, [r2]
+	str	r2, [sp, #20]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #16]
+	ldr	r2, [r3, #8]
+	str	r2, [sp, #12]
+	ldr	r2, [r3, #4]
+	str	r2, [sp, #8]
+	mov	r2, fp
+	ldr	r3, [r3]
+	str	r0, [sp]
+	ldr	r0, .L3408+24
+	str	r3, [sp, #4]
+	mov	r3, r7
+	bl	printk
+	cmn	r8, #1
+	cmpne	r8, #512
+	moveq	r6, #1
+	b	.L3398
+.L3409:
 	.align	2
-.L3465:
-	.word	.LANCHOR3-3096
-	.word	.LANCHOR3-3066
-	.word	.LANCHOR0
-	.word	.LC196
-	.word	.LC212
-	.word	.LANCHOR1+2512
+.L3408:
+	.word	.LANCHOR3
+	.word	.LANCHOR3-3088
+	.word	.LC211
+	.word	.LANCHOR1+2300
 	.word	.LC0
+	.word	.LANCHOR3-3074
+	.word	.LC195
 	.fnend
 	.size	ftl_sysblk_dump, .-ftl_sysblk_dump
 	.align	2
 	.global	ftl_open_sblk_recovery
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_open_sblk_recovery, %function
 ftl_open_sblk_recovery:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 216
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #228
 	sub	sp, sp, #228
-	ldr	r5, .L3606
+	ldr	r5, .L3532
 	mov	r4, r0
 	str	r1, [sp, #28]
 	ldr	r3, [r5]
 	tst	r3, #4096
-	beq	.L3468
-	ldr	r0, .L3606+4
-	ldrh	r1, [r4, #2]
+	beq	.L3411
+	ldrh	r1, [r0, #2]
+	ldr	r0, .L3532+4
 	bl	printk
-.L3468:
+.L3411:
 	ldr	r3, [r5]
 	tst	r3, #4096
-	beq	.L3469
-	ldr	r0, .L3606+8
+	beq	.L3412
 	ldrb	r1, [r4, #5]	@ zero_extendqisi2
+	ldr	r0, .L3532+8
 	bl	printk
-.L3469:
+.L3412:
 	ldr	r3, [r5]
 	tst	r3, #4096
-	beq	.L3470
-	ldr	r0, .L3606+12
+	beq	.L3413
 	ldrh	r1, [r4]
+	ldr	r0, .L3532+12
 	bl	printk
-.L3470:
+.L3413:
 	ldr	r3, [r5]
 	tst	r3, #4096
-	beq	.L3471
-	ldr	r0, .L3606+16
-	ldrh	r1, [r4, #16]
+	beq	.L3414
 	ldrh	r2, [r4, #18]
+	ldrh	r1, [r4, #16]
+	ldr	r0, .L3532+16
 	bl	printk
-.L3471:
+.L3414:
 	ldr	r3, [r5]
 	tst	r3, #4096
-	beq	.L3472
-	ldr	r0, .L3606+20
+	beq	.L3415
 	ldrb	r1, [r4, #9]	@ zero_extendqisi2
+	ldr	r0, .L3532+20
 	bl	printk
-.L3472:
+.L3415:
 	ldrh	r3, [r4, #10]
-	ldr	r6, .L3606+24
+	ldr	r1, .L3532+24
 	ldrh	r2, [r4]
 	strh	r3, [r4, #14]	@ movhi
-	movw	r3, #1076
-	ldrh	r3, [r6, r3]
+	movw	r3, #1080
+	ldrh	r3, [r1, r3]
 	cmp	r2, r3
-	bcs	.L3467
+	bcs	.L3410
 	mov	r0, #1
 	bl	buf_alloc
-	ldrb	r3, [r6, #2772]	@ zero_extendqisi2
+	ldr	r3, .L3532+28
 	mov	r1, #255
-	sub	r3, r3, #2
 	ldr	r2, [r0, #4]
 	mov	r5, r0
 	add	r0, sp, #32
-	add	r3, r2, r3, asl #9
+	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
+	sub	r3, r3, #2
+	add	r3, r2, r3, lsl #9
 	mov	r2, #64
 	str	r3, [sp, #16]
 	bl	ftl_memset
-	mov	r1, #255
 	mov	r2, #64
+	mov	r1, #255
 	add	r0, sp, #96
 	bl	ftl_memset
-	mov	r1, #255
 	mov	r2, #64
+	mov	r1, #255
 	add	r0, sp, #160
 	bl	ftl_memset
-	ldrb	r6, [r4, #5]	@ zero_extendqisi2
-	ldrh	r7, [r4, #2]
+	ldrb	r10, [r4, #5]	@ zero_extendqisi2
 	mov	r3, #2
+	ldrh	r9, [r4, #2]
 	str	r3, [sp, #12]
 	mov	r3, #0
 	str	r3, [sp, #24]
-.L3474:
-	ldr	r3, .L3606+28
+.L3417:
+	ldr	r3, .L3532+32
 	ldrh	r3, [r3]
-	cmp	r3, r7
-	bls	.L3477
-	ldrb	r6, [r4, #5]	@ zero_extendqisi2
-	ldr	r8, .L3606+24
-.L3475:
+	cmp	r3, r9
+	bhi	.L3434
+.L3420:
+	ldrh	r3, [r4, #10]
+	ldr	r1, .L3532+36
+	ldrh	r2, [r4, #6]
+	ldrb	r0, [r4, #9]	@ zero_extendqisi2
+	strh	r9, [r4, #2]	@ movhi
+	add	r2, r2, r3
+	ldrh	r3, [r1, #-8]
+	strb	r10, [r4, #5]
+	str	r1, [sp, #16]
+	mul	r3, r3, r0
+	cmp	r2, r3
+	beq	.L3435
+	movw	r2, #1802
+	ldr	r1, .L3532+40
+	ldr	r0, .L3532+44
+	bl	printk
+	bl	dump_stack
+.L3435:
+	ldr	r6, .L3532+28
+	mov	r7, #0
+	ldrh	r0, [r4, #10]
+	mov	r2, r7
+	ldr	r3, [r6, #-2556]
+.L3436:
+	cmp	r2, r0
+	bcc	.L3438
+	ldr	r2, [sp, #16]
 	ldrb	r3, [r4, #9]	@ zero_extendqisi2
-	cmp	r3, r6
-	bls	.L3602
-	add	r3, r4, r6, asl #1
-	ldrh	r10, [r3, #16]
+	ldr	r9, .L3532
+	ldrh	r2, [r2, #-8]
+	ldr	r10, .L3532+24
+	smulbb	r3, r3, r2
+	sub	r3, r3, r0
+	add	r7, r7, r3
+	ldr	r3, [r9]
+	uxth	r7, r7
+	tst	r3, #4096
+	beq	.L3439
+	ldrh	r1, [r4]
+	ldr	r2, [r10, #1092]
+	ldr	r0, .L3532+48
+	lsl	r3, r1, #1
+	ldrh	r3, [r2, r3]
+	mov	r2, r7
+	bl	printk
+.L3439:
+	ldrh	r3, [r4]
+	ldr	r2, [r10, #1092]
+	lsl	r3, r3, #1
+	strh	r7, [r2, r3]	@ movhi
+	ldr	r3, [r9]
+	tst	r3, #16384
+	beq	.L3440
+	ldr	r3, [sp, #44]
+	add	r1, sp, #32
+	ldr	r0, .L3532+52
+	str	r3, [sp]
+	ldm	r1, {r1, r2, r3}
+	bl	printk
+.L3440:
+	ldrb	r2, [r6, #-2546]	@ zero_extendqisi2
+	mov	r8, #0
+	mov	r1, #0
+	ldr	r0, [r5, #4]
+	lsl	r2, r2, #9
+	bl	ftl_memset
+.L3441:
+	ldrb	r3, [r6, #-3127]	@ zero_extendqisi2
+	ldr	r2, [sp, #12]
+	mul	r3, r2, r3
+	cmp	r8, r3
+	bcc	.L3453
+	ldr	fp, .L3532+56
+	mov	r7, #0
+	add	r8, sp, #32
+.L3454:
+	ldrb	r3, [r6, #-3127]	@ zero_extendqisi2
+	ldr	r2, [sp, #12]
+	mul	r3, r2, r3
+	cmp	r7, r3
+	bcc	.L3460
+	mov	r0, r5
+	bl	zbuf_free
+	ldr	r3, [sp, #16]
+	ldrh	r2, [r4, #12]
+	ldrb	r1, [r4, #9]	@ zero_extendqisi2
+	ldrh	r3, [r3, #-8]
+	mla	r3, r1, r3, r2
+	ldr	r2, [r6, #-2556]
+	sub	r3, r3, #-1073741823
+	ldr	r3, [r2, r3, lsl #2]
+	cmn	r3, #1
+	beq	.L3461
+	movw	r2, #1917
+	ldr	r1, .L3532+40
+	ldr	r0, .L3532+44
+	bl	printk
+	bl	dump_stack
+.L3461:
+	ldrh	r3, [r4, #6]
+	cmp	r3, #1
+	bne	.L3410
+	mov	r0, r4
+	bl	ftl_write_last_log_page
+.L3410:
+	add	sp, sp, #228
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3434:
+	ldrb	r10, [r4, #5]	@ zero_extendqisi2
+	ldr	r6, .L3532+28
+.L3418:
+	ldrb	r3, [r4, #9]	@ zero_extendqisi2
+	cmp	r3, r10
+	movls	r3, #0
+	strbls	r3, [r4, #5]
+	addls	r3, r9, #1
+	uxthls	r9, r3
+	bls	.L3417
+.L3433:
+	add	r3, r4, r10, lsl #1
+	ldrh	r8, [r3, #16]
 	movw	r3, #65535
-	cmp	r10, r3
-	beq	.L3476
-	ldr	r3, .L3606+32
-	ldr	r1, [r5, #4]
+	cmp	r8, r3
+	beq	.L3419
+	ldr	r3, .L3532+60
 	ldr	r2, [r5, #12]
-	ldrh	r3, [r3]
-	mla	r3, r3, r10, r7
+	ldr	r1, [r5, #4]
+	ldrh	r3, [r3, #-2]
+	mla	r3, r8, r3, r9
 	str	r3, [sp, #20]
-	mov	r0, r3
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
+	ldr	r0, [sp, #20]
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
 	bl	ftl_read_ppa_page
 	cmp	r0, #512
-	mov	r9, r0
-	beq	.L3477
+	mov	r7, r0
+	beq	.L3420
 	cmn	r0, #1
-	beq	.L3478
+	beq	.L3421
 	ldr	r3, [r5, #12]
 	ldr	r2, [r3]
 	cmn	r2, #1
-	bne	.L3478
+	bne	.L3421
 	ldr	r3, [r3, #4]
 	cmn	r3, #1
-	bne	.L3478
+	bne	.L3421
 	ldr	r3, [r5, #4]
 	ldr	r3, [r3]
 	cmn	r3, #1
-	beq	.L3477
-.L3478:
-	ldr	r3, .L3606+36
-	mov	r2, #1
-	strb	r2, [r3, #209]
-	ldrb	r3, [r4, #9]	@ zero_extendqisi2
+	beq	.L3420
+.L3421:
+	mov	r3, #1
 	ldrh	r2, [r4, #10]
-	mla	r3, r3, r7, r6
+	strb	r3, [r6, #-47]
+	ldrb	r3, [r4, #9]	@ zero_extendqisi2
+	mla	r3, r9, r3, r10
 	cmp	r2, r3
-	beq	.L3479
-	ldr	r1, .L3606+40
+	beq	.L3422
 	movw	r2, #1694
-	ldr	r0, .L3606+44
+	ldr	r1, .L3532+40
+	ldr	r0, .L3532+44
 	bl	printk
 	bl	dump_stack
-.L3479:
-	ldrh	r3, [r4, #6]
-	ldrh	r2, [r4, #10]
-	add	r2, r3, r2
-	ldr	r3, .L3606+28
+.L3422:
+	ldrh	r3, [r4, #10]
+	ldrh	r2, [r4, #6]
+	add	r2, r2, r3
+	ldr	r3, .L3532+32
 	ldrh	r1, [r3]
 	ldrb	r3, [r4, #9]	@ zero_extendqisi2
 	mul	r3, r3, r1
 	cmp	r2, r3
-	beq	.L3480
-	ldr	r1, .L3606+40
+	beq	.L3423
 	movw	r2, #1695
-	ldr	r0, .L3606+44
+	ldr	r1, .L3532+40
+	ldr	r0, .L3532+44
 	bl	printk
 	bl	dump_stack
-.L3480:
-	ldr	r3, .L3606+24
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
+.L3423:
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
 	cmp	r3, #8
-	bls	.L3481
+	bls	.L3424
 	ldr	r3, [r5, #12]
-	ldr	r1, .L3606+48
+	ldr	r1, .L3532+64
 	ldr	r2, [r3]
 	cmp	r2, r1
-	beq	.L3481
-	cmn	r9, #1
-	beq	.L3486
+	beq	.L3424
+	cmn	r7, #1
+	beq	.L3426
 	ldr	r2, [r3, #4]
 	cmn	r2, #1
-	beq	.L3519
-	ldr	r2, [r3, #16]
-	ldr	r1, .L3606+52
-	cmp	r2, r1
-	bne	.L3519
-	ldr	r0, [sp, #16]
-	mov	r1, #1024
-	ldr	fp, [r3, #20]
-	bl	js_hash
-	cmp	fp, r0
-	beq	.L3519
-	mov	r1, #1024
-	ldr	r0, [sp, #16]
-	bl	js_hash
-	mov	r1, r10
-	mov	r2, r7
-	str	r9, [sp]
-	str	r0, [sp, #4]
-	ldr	r3, [sp, #20]
-	ldr	r0, .L3606+56
-	bl	printk
-	ldr	r0, .L3606+60
-	mov	r2, #4
-	mov	r3, #16
-	ldr	r1, [sp, #16]
-	bl	rknand_print_hex
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
-	ldr	r0, .L3606+64
-	mov	r2, #4
-	ldr	r1, [r5, #12]
-	mov	r3, r3, lsr #1
-	bl	rknand_print_hex
-	b	.L3486
-.L3481:
-	cmn	r9, #1
-	beq	.L3486
-.L3519:
+	bne	.L3427
+.L3430:
 	ldr	r3, [r5, #12]
 	ldr	r0, [r3, #4]
 	cmn	r0, #1
-	beq	.L3486
-	ldr	r3, [r3]
-	ldr	r2, .L3606+48
-	cmp	r3, r2
-	beq	.L3486
-	bl	lpa_hash_get_ppa
-	ldr	r2, [sp, #28]
-	mov	r3, r0
-	cmp	r2, #0
-	beq	.L3485
-	ldr	r2, [r5, #12]
-	ldr	r1, [r2, #8]
-	str	r2, [sp, #24]
-	cmp	r0, r1
-	cmnne	r0, #1
-	beq	.L3485
-	ldr	r2, .L3606+24
-	mov	r9, #1
-	ldr	fp, .L3606+68
-	ldr	r10, .L3606+36
-	ldrb	r1, [r2, #1189]	@ zero_extendqisi2
-	ldrh	r0, [fp]
-	rsb	r1, r1, #24
-	str	r3, [sp, #12]
-	rsb	r1, r0, r1
-	mov	r1, r9, asl r1
-	sub	r1, r1, #1
-	and	r0, r1, r3, lsr r0
-	ldrb	r1, [r10, #-3130]	@ zero_extendqisi2
-	bl	__aeabi_uidiv
-	ldr	r3, [sp, #28]
-	uxth	r0, r0
-	ldr	r2, [sp, #24]
-	ldrh	r1, [r3]
-	ldr	r3, [sp, #12]
-	cmp	r1, r0
-	bne	.L3485
-	ldr	ip, [r2]
-	mov	r0, r3
-	ldr	r1, [r5, #4]
-	sub	r2, r10, #56
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
-	str	ip, [sp, #12]
-	bl	ftl_read_ppa_page
-	ldr	r3, [r10, #-56]
-	ldr	ip, [sp, #12]
-	cmp	r3, ip
-	bcc	.L3485
-	ldr	r3, [r5, #12]
-	ldr	r0, [r3, #8]
-	cmn	r0, #1
-	beq	.L3486
-	ldrb	r3, [r8, #1189]	@ zero_extendqisi2
-	ldrh	r2, [fp]
-	rsb	r3, r3, #24
-	ldrb	r1, [r10, #-3130]	@ zero_extendqisi2
-	rsb	r3, r2, r3
-	mov	r9, r9, asl r3
-	sub	r9, r9, #1
-	and	r0, r9, r0, lsr r2
-	bl	__aeabi_uidiv
-	uxth	r0, r0
-	bl	ftl_vpn_decrement
-	b	.L3486
-.L3485:
-	ldr	r2, [r5, #12]
-	ldr	r3, [r8, #2784]
-	ldr	r1, [r2, #4]
-	cmp	r1, r3
-	bcs	.L3486
-	ldr	r3, .L3606+28
-	ldrb	r0, [r4, #9]	@ zero_extendqisi2
-	ldrh	r1, [r4, #10]
-	ldrh	r3, [r3]
-	mul	r3, r3, r0
-	sub	r3, r3, #1
-	cmp	r1, r3
-	bge	.L3486
-	ldr	r3, [r8, #2804]
-	ldr	r2, [r2]
-	ldr	r1, [r3, #8]
-	cmp	r2, r1
-	strhi	r2, [r3, #8]
-	ldrh	r3, [r4, #12]
-	ldrh	r2, [r4, #10]
-	ldr	r1, [r5, #12]
-	add	r2, r3, r2
-	ldmib	r1, {r0, r1}
-	uxth	r2, r2
-	bl	lpa_hash_update_ppa
-	ldr	r3, [sp, #36]
-	str	r3, [sp, #32]
-	ldr	r3, [sp, #40]
-	str	r3, [sp, #36]
-	ldr	r3, [sp, #44]
-	str	r3, [sp, #40]
-	ldr	r3, [sp, #20]
-	str	r3, [sp, #44]
-.L3486:
+	bne	.L3428
+.L3426:
 	ldrh	r3, [r4, #6]
 	sub	r3, r3, #1
 	strh	r3, [r4, #6]	@ movhi
@@ -20888,114 +21177,133 @@
 	str	r3, [sp, #12]
 	mov	r3, #1
 	str	r3, [sp, #24]
-.L3476:
-	add	r6, r6, #1
-	uxth	r6, r6
-	b	.L3475
-.L3602:
-	add	r7, r7, #1
-	mov	r3, #0
-	strb	r3, [r4, #5]
-	uxth	r7, r7
-	b	.L3474
-.L3477:
-	ldrh	r3, [r4, #6]
-	strb	r6, [r4, #5]
-	ldrh	r6, [r4, #10]
-	ldrb	fp, [r4, #9]	@ zero_extendqisi2
-	add	r6, r3, r6
-	ldr	r3, .L3606+72
-	strh	r7, [r4, #2]	@ movhi
-	ldrh	ip, [r3, #-8]
-	str	r3, [sp, #16]
-	mul	fp, ip, fp
-	cmp	r6, fp
-	beq	.L3490
-	ldr	r1, .L3606+40
-	movw	r2, #1802
-	ldr	r0, .L3606+44
+.L3419:
+	add	r3, r10, #1
+	uxth	r10, r3
+	b	.L3418
+.L3427:
+	ldr	r2, [r3, #16]
+	ldr	r1, .L3532+68
+	cmp	r2, r1
+	bne	.L3430
+	ldr	fp, [r3, #20]
+	mov	r1, #1024
+	ldr	r0, [sp, #16]
+	bl	js_hash
+	cmp	fp, r0
+	beq	.L3430
+	mov	r1, #1024
+	ldr	r0, [sp, #16]
+	bl	js_hash
+	mov	r2, r9
+	mov	r1, r8
+	str	r0, [sp, #4]
+	str	r7, [sp]
+	ldr	r3, [sp, #20]
+	ldr	r0, .L3532+72
 	bl	printk
-	bl	dump_stack
-.L3490:
-	ldr	r9, .L3606+36
-	mov	r8, #0
-	ldrh	r6, [r4, #10]
-	mov	r7, r8
-	ldr	r10, [r9, #-2548]
-.L3491:
-	cmp	r7, r6
-	bcs	.L3603
-	ldrh	r3, [r4, #12]
-	add	r3, r7, r3
-	add	r7, r7, #1
-	ldr	r3, [r10, r3, asl #2]
-	cmn	r3, #1
-	addne	r8, r8, #1
-	uxthne	r8, r8
-	b	.L3491
-.L3603:
-	ldr	r2, [sp, #16]
-	ldrb	r3, [r4, #9]	@ zero_extendqisi2
-	ldrh	r10, [r2, #-8]
-	smulbb	r3, r3, r10
-	ldr	r10, .L3606+24
-	rsb	r6, r6, r3
-	add	r6, r8, r6
-	ldr	r8, .L3606
-	uxth	r6, r6
-	ldr	r3, [r8]
-	tst	r3, #4096
-	beq	.L3494
-	ldrh	r1, [r4]
-	mov	r2, r6
-	ldr	ip, [r10, #1088]
-	ldr	r0, .L3606+76
-	mov	r3, r1, asl #1
-	ldrh	r3, [ip, r3]
-	bl	printk
-.L3494:
-	ldrh	r3, [r4]
-	ldr	r2, [r10, #1088]
-	mov	r3, r3, asl #1
-	strh	r6, [r2, r3]	@ movhi
-	ldr	r3, [r8]
-	tst	r3, #16384
-	beq	.L3495
-	ldr	r3, [sp, #44]
-	add	r1, sp, #32
-	ldr	r0, .L3606+80
-	str	r3, [sp]
-	ldmia	r1, {r1, r2, r3}
-	bl	printk
-.L3495:
-	ldrb	r2, [r10, #2772]	@ zero_extendqisi2
-	mov	r1, #0
-	ldr	r0, [r5, #4]
-	mov	r7, #0
-	mov	r2, r2, asl #9
-	bl	ftl_memset
-.L3496:
-	ldrb	r3, [r9, #-3123]	@ zero_extendqisi2
-	ldr	r2, [sp, #12]
-	mul	r3, r3, r2
-	cmp	r7, r3
-	bcs	.L3604
-	add	ip, sp, #32
-	ldr	r0, [ip, r7, asl #2]
+	mov	r3, #16
+	mov	r2, #4
+	ldr	r1, [sp, #16]
+	ldr	r0, .L3532+76
+	bl	rknand_print_hex
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	mov	r2, #4
+	ldr	r1, [r5, #12]
+	ldr	r0, .L3532+80
+	lsr	r3, r3, #1
+	bl	rknand_print_hex
+	b	.L3426
+.L3424:
+	cmn	r7, #1
+	bne	.L3430
+	b	.L3426
+.L3428:
+	ldr	r3, [r3]
+	ldr	r2, .L3532+64
+	cmp	r3, r2
+	beq	.L3426
+	bl	lpa_hash_get_ppa
+	ldr	r3, [sp, #28]
+	mov	r8, r0
+	cmp	r3, #0
+	beq	.L3431
+	ldr	fp, [r5, #12]
+	ldr	r3, [fp, #8]
+	cmp	r3, r0
+	cmnne	r0, #1
+	beq	.L3431
+	ldr	r3, .L3532+84
+	mov	r7, #1
+	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
+	ldrh	r0, [r3]
+	ldr	r3, .L3532+24
+	ldrb	r3, [r3, #1153]	@ zero_extendqisi2
+	rsb	r3, r3, #24
+	sub	r3, r3, r0
+	lsl	r3, r7, r3
+	sub	r3, r3, #1
+	and	r0, r3, r8, lsr r0
+	bl	__aeabi_uidiv
+	ldr	r3, [sp, #28]
+	uxth	r0, r0
+	ldrh	r3, [r3]
+	cmp	r3, r0
+	bne	.L3431
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	mov	r0, r8
+	ldr	r2, [r6, #-76]
+	ldr	r1, [r5, #4]
+	ldr	fp, [fp]
+	bl	ftl_read_ppa_page
+	ldr	r3, [r6, #-76]
+	ldr	r3, [r3]
+	cmp	fp, r3
+	bhi	.L3431
+	ldr	r3, [r5, #12]
+	ldr	r0, [r3, #8]
 	cmn	r0, #1
-	bne	.L3497
-.L3501:
-	ldr	r2, [r10, #2804]
-	mvn	r6, #0
+	beq	.L3426
+	ldr	r3, .L3532+84
+	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
+	ldrh	r2, [r3]
+	ldr	r3, .L3532+24
+	ldrb	r3, [r3, #1153]	@ zero_extendqisi2
+	rsb	r3, r3, #24
+	sub	r3, r3, r2
+	lsl	r7, r7, r3
+	sub	r7, r7, #1
+	and	r0, r7, r0, lsr r2
+	bl	__aeabi_uidiv
+	uxth	r0, r0
+	bl	ftl_vpn_decrement
+	b	.L3426
+.L3438:
+	ldrh	r1, [r4, #12]
+	add	r1, r1, r2
+	add	r2, r2, #1
+	ldr	r1, [r3, r1, lsl #2]
+	cmn	r1, #1
+	addne	r7, r7, #1
+	uxthne	r7, r7
+	b	.L3436
+.L3453:
+	add	r3, sp, #32
+	ldr	r0, [r3, r8, lsl #2]
+	cmn	r0, #1
+	bne	.L3442
+.L3446:
+	ldr	r2, [r10, #2800]
+	mvn	r7, #0
 	ldr	r3, [r5, #12]
 	mov	r0, #2
 	ldr	r2, [r2, #8]
 	str	r2, [r3]
 	mov	r2, #0
 	ldr	r3, [r5, #12]
-	str	r6, [r3, #4]
+	str	r7, [r3, #4]
 	ldr	r3, [r5, #12]
-	str	r6, [r3, #8]
+	str	r7, [r3, #8]
 	ldr	r3, [r5, #12]
 	str	r2, [r3, #12]
 	ldr	r3, [r5, #12]
@@ -21005,37 +21313,91 @@
 	ldr	r1, [r5, #12]
 	add	r1, r1, #16
 	bl	ftl_debug_info_fill
-	b	.L3498
-.L3497:
-	ldr	r3, .L3606+24
-	ldr	r1, [r5, #4]
+.L3443:
+	ldr	r3, [sp, #24]
+	cmp	r3, #1
+	bne	.L3448
+	ldrh	r3, [r4, #6]
+	cmp	r3, #1
+	bls	.L3448
+.L3507:
+	mov	r0, r4
+	bl	ftl_get_new_free_page
+	ldr	r3, [r9]
+	mov	fp, r0
+	tst	r3, #16384
+	beq	.L3450
+	ldrh	r2, [r4, #12]
+	mov	r1, r0
+	ldrh	r3, [r4, #10]
+	ldr	r0, .L3532+88
+	add	r3, r3, r2
 	ldr	r2, [r5, #12]
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
-	str	ip, [sp, #20]
+	sub	r3, r3, #1
+	ldr	r2, [r2, #4]
+	bl	printk
+.L3450:
+	ldrb	r3, [r6, #-3127]	@ zero_extendqisi2
+	ldr	r1, [sp, #12]
+	ldrh	r2, [r4, #6]
+	mul	r3, r1, r3
+	add	r3, r3, #1
+	sub	r3, r3, r8
+	cmp	r2, r3
+	bls	.L3448
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	mov	r0, fp
+	ldr	r2, [r5, #12]
+	ldr	r1, [r5, #4]
+	bl	ftl_prog_ppa_page
+	str	r0, [sp, #20]
+	ldrh	r0, [r4]
+	bl	ftl_vpn_decrement
+	ldr	r2, [sp, #20]
+	adds	r3, r7, #1
+	movne	r3, #1
+	cmn	r2, #1
+	cmnne	r7, #1
+	beq	.L3451
+	add	r3, sp, #96
+	ldrh	r2, [r4, #12]
+	str	fp, [r3, r8, lsl #2]
+	ldrh	r3, [r4, #10]
+	add	r3, r3, r2
+	add	r2, sp, #160
+	sub	r3, r3, #1
+	str	r3, [r2, r8, lsl #2]
+.L3448:
+	add	r8, r8, #1
+	b	.L3441
+.L3442:
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	ldr	r2, [r5, #12]
+	ldr	r1, [r5, #4]
 	bl	ftl_read_ppa_page
 	ldr	r3, [r5, #12]
-	mov	r6, r0
+	mov	r7, r0
 	ldr	r0, [r3, #4]
 	bl	lpa_hash_get_ppa
-	ldr	r3, [r8]
-	tst	r3, #16384
+	ldr	r3, [r9]
 	mov	fp, r0
-	ldr	ip, [sp, #20]
-	beq	.L3499
+	tst	r3, #16384
+	beq	.L3444
 	ldr	r3, [r5, #12]
-	mov	r1, fp
-	ldr	r0, .L3606+84
-	ldr	r2, [ip, r7, asl #2]
+	add	r2, sp, #32
+	mov	r1, r0
+	ldr	r2, [r2, r8, lsl #2]
+	ldr	r0, .L3532+92
 	ldr	r3, [r3, #4]
 	bl	printk
-.L3499:
+.L3444:
 	add	r3, sp, #32
 	mov	r2, #1
+	ldr	r3, [r3, r8, lsl #2]
 	mov	r0, #2
-	ldr	r3, [r3, r7, asl #2]
 	cmp	fp, r3
 	ldr	r3, [r5, #12]
-	mvnne	r6, #0
+	mvnne	r7, #0
 	str	fp, [r3, #8]
 	ldr	r3, [r5, #12]
 	str	r2, [r3, #12]
@@ -21045,298 +21407,243 @@
 	ldr	r1, [r5, #12]
 	add	r1, r1, #16
 	bl	ftl_debug_info_fill
-	cmn	r6, #1
-	beq	.L3501
-.L3498:
-	ldr	r3, [sp, #24]
-	cmp	r3, #1
-	bne	.L3503
-	ldrh	r3, [r4, #6]
-	cmp	r3, #1
-	bls	.L3503
-.L3573:
-	mov	r0, r4
-	bl	ftl_get_new_free_page
-	ldr	r3, [r8]
-	tst	r3, #16384
-	mov	fp, r0
-	beq	.L3505
-	ldrh	r1, [r4, #12]
-	ldr	r2, [r5, #12]
-	ldrh	r3, [r4, #10]
-	ldr	r0, .L3606+88
-	add	r3, r3, r1
-	ldr	r2, [r2, #4]
-	mov	r1, fp
-	sub	r3, r3, #1
-	bl	printk
-.L3505:
-	ldrb	r3, [r9, #-3123]	@ zero_extendqisi2
-	ldr	r1, [sp, #12]
-	ldrh	r2, [r4, #6]
-	mul	r3, r3, r1
-	add	r3, r3, #1
-	rsb	r3, r7, r3
-	cmp	r2, r3
-	bls	.L3503
-	ldr	r3, .L3606+24
-	mov	r0, fp
-	ldr	r2, [r5, #12]
-	ldr	r1, [r5, #4]
-	ldrb	r3, [r3, #2772]	@ zero_extendqisi2
-	bl	ftl_prog_ppa_page
-	str	r0, [sp, #20]
-	ldrh	r0, [r4]
-	bl	ftl_vpn_decrement
-	adds	r3, r6, #1
-	movne	r3, #1
-	ldr	r2, [sp, #20]
-	cmn	r2, #1
-	cmnne	r6, #1
-	beq	.L3506
-	add	r3, sp, #96
-	ldrh	r2, [r4, #12]
-	str	fp, [r3, r7, asl #2]
-	ldrh	r3, [r4, #10]
-	add	r3, r3, r2
-	add	r2, sp, #160
-	sub	r3, r3, #1
-	str	r3, [r2, r7, asl #2]
-	b	.L3503
-.L3506:
+	cmn	r7, #1
+	bne	.L3443
+	b	.L3446
+.L3451:
 	ldrh	r2, [r4, #6]
 	cmp	r2, #1
 	movls	r3, #0
 	andhi	r3, r3, #1
 	cmp	r3, #0
-	bne	.L3573
-.L3503:
-	add	r7, r7, #1
-	b	.L3496
-.L3604:
-	ldr	r10, .L3606+24
-	mov	r6, #0
-.L3509:
-	ldrb	r3, [r9, #-3123]	@ zero_extendqisi2
-	ldr	r2, [sp, #12]
-	mul	r3, r3, r2
-	cmp	r6, r3
-	bcs	.L3605
-	add	fp, sp, #96
-	ldr	r3, [fp, r6, asl #2]
+	bne	.L3507
+	b	.L3448
+.L3460:
+	add	r10, sp, #96
+	ldr	r3, [r10, r7, lsl #2]
 	cmn	r3, #1
-	beq	.L3511
-	add	r7, sp, #32
-	ldr	r1, [r5, #4]
+	beq	.L3456
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
 	ldr	r2, [r5, #12]
-	ldr	r0, [r7, r6, asl #2]
-	ldrb	r3, [r10, #2772]	@ zero_extendqisi2
+	ldr	r1, [r5, #4]
+	ldr	r0, [r8, r7, lsl #2]
 	bl	ftl_read_ppa_page
 	cmn	r0, #1
 	cmpne	r0, #256
-	bne	.L3511
-	ldr	r0, [fp, r6, asl #2]
-	ldrb	r3, [r10, #2772]	@ zero_extendqisi2
-	ldr	r1, [r5, #4]
+	bne	.L3456
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	ldr	r0, [r10, r7, lsl #2]
 	ldr	r2, [r5, #12]
+	ldr	r1, [r5, #4]
 	bl	ftl_read_ppa_page
-	ldr	r3, [r8]
+	ldr	r3, [r9]
+	mov	r10, r0
 	tst	r3, #16384
-	mov	fp, r0
-	beq	.L3513
-	ldr	r3, [r5, #12]
-	mov	r1, fp
-	ldr	r0, .L3606+88
-	ldr	r2, [r3, #8]
-	ldr	r3, [r7, r6, asl #2]
+	beq	.L3458
+	ldr	r2, [r5, #12]
+	mov	r1, r0
+	ldr	r3, [r8, r7, lsl #2]
+	ldr	r0, .L3532+88
+	ldr	r2, [r2, #8]
 	bl	printk
-.L3513:
-	cmn	fp, #1
-	beq	.L3511
-	ldr	r3, [r5, #12]
-	ldr	r2, [r7, r6, asl #2]
-	ldr	r1, [r3, #8]
-	cmp	r2, r1
-	bne	.L3511
-	ldr	r1, [r8]
-	add	r7, sp, #160
-	tst	r1, #16384
-	beq	.L3514
-	ldr	r1, [r3, #4]
-	ldr	r0, .L3606+92
-	ldr	r3, [r7, r6, asl #2]
+.L3458:
+	cmn	r10, #1
+	beq	.L3456
+	ldr	r1, [r5, #12]
+	ldr	r2, [r8, r7, lsl #2]
+	ldr	r3, [r1, #8]
+	cmp	r2, r3
+	bne	.L3456
+	ldr	r3, [r9]
+	add	r10, sp, #160
+	tst	r3, #16384
+	beq	.L3459
+	ldr	r3, [r10, r7, lsl #2]
+	mov	r0, fp
+	ldr	r1, [r1, #4]
 	bl	printk
-.L3514:
+.L3459:
+	ldr	r2, [r10, r7, lsl #2]
 	ldr	r3, [r5, #12]
-	ldr	r2, [r7, r6, asl #2]
-	ldmib	r3, {r0, r1}
 	uxth	r2, r2
+	ldmib	r3, {r0, r1}
 	bl	lpa_hash_update_ppa
-.L3511:
-	add	r6, r6, #1
-	b	.L3509
-.L3605:
-	mov	r0, r5
-	bl	zbuf_free
-	ldrh	r3, [r4, #12]
-	ldrb	r1, [r4, #9]	@ zero_extendqisi2
-	ldr	r2, [sp, #16]
-	ldrh	r2, [r2, #-8]
-	mla	r3, r1, r2, r3
-	ldr	r2, .L3606+36
-	ldr	r2, [r2, #-2548]
-	sub	r3, r3, #-1073741823
-	ldr	r3, [r2, r3, asl #2]
-	cmn	r3, #1
-	beq	.L3516
-	ldr	r1, .L3606+40
-	movw	r2, #1917
-	ldr	r0, .L3606+44
-	bl	printk
-	bl	dump_stack
-.L3516:
-	ldrh	r3, [r4, #6]
-	cmp	r3, #1
-	bne	.L3467
-	mov	r0, r4
-	bl	ftl_write_last_log_page
-.L3467:
-	add	sp, sp, #228
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3607:
+.L3456:
+	add	r7, r7, #1
+	b	.L3454
+.L3431:
+	ldr	r1, [r5, #12]
+	ldr	r2, .L3532+24
+	ldr	r0, [r1, #4]
+	ldr	r3, [r2, #2780]
+	cmp	r0, r3
+	bcs	.L3426
+	ldr	r3, .L3532+32
+	ldrb	ip, [r4, #9]	@ zero_extendqisi2
+	ldrh	r0, [r4, #10]
+	ldrh	r3, [r3]
+	mul	r3, r3, ip
+	sub	r3, r3, #1
+	cmp	r0, r3
+	bge	.L3426
+	ldr	r3, [r2, #2800]
+	ldr	r1, [r1]
+	ldr	r2, [r3, #8]
+	cmp	r1, r2
+	strhi	r1, [r3, #8]
+	ldrh	r1, [r4, #12]
+	ldrh	r2, [r4, #10]
+	ldr	r3, [r5, #12]
+	add	r2, r2, r1
+	uxth	r2, r2
+	ldmib	r3, {r0, r1}
+	bl	lpa_hash_update_ppa
+	ldr	r3, [sp, #36]
+	str	r3, [sp, #32]
+	ldr	r3, [sp, #40]
+	str	r3, [sp, #36]
+	ldr	r3, [sp, #44]
+	str	r3, [sp, #40]
+	ldr	r3, [sp, #20]
+	str	r3, [sp, #44]
+	b	.L3426
+.L3533:
 	.align	2
-.L3606:
+.L3532:
 	.word	.LANCHOR2
+	.word	.LC212
 	.word	.LC213
 	.word	.LC214
 	.word	.LC215
 	.word	.LC216
-	.word	.LC217
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3096
-	.word	.LANCHOR3-3066
 	.word	.LANCHOR3
-	.word	.LANCHOR1+2528
+	.word	.LANCHOR3-3096
+	.word	.LANCHOR3-3088
+	.word	.LANCHOR1+2316
 	.word	.LC0
+	.word	.LC219
+	.word	.LC220
+	.word	.LC223
+	.word	.LANCHOR3-3072
 	.word	-178307901
 	.word	1212240712
+	.word	.LC217
 	.word	.LC218
-	.word	.LC219
-	.word	.LC184
-	.word	.LANCHOR3-3132
-	.word	.LANCHOR3-3088
-	.word	.LC220
-	.word	.LC221
+	.word	.LC183
+	.word	.LANCHOR3-3138
 	.word	.LC222
-	.word	.LC223
-	.word	.LC224
+	.word	.LC221
 	.fnend
 	.size	ftl_open_sblk_recovery, .-ftl_open_sblk_recovery
 	.align	2
 	.global	dump_ftl_info
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	dump_ftl_info, %function
 dump_ftl_info:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 	.save {r4, r5, r6, r7, lr}
 	.pad #12
-	movw	r7, #1076
-	ldr	r4, .L3610
-	ldr	r5, .L3610+4
-	ldr	r0, .L3610+8
-	ldrb	r1, [r4, #2774]	@ zero_extendqisi2
+	movw	r7, #1080
+	ldr	r4, .L3536
+	ldr	r5, .L3536+4
+	ldrb	r1, [r4, #2769]	@ zero_extendqisi2
+	ldr	r0, .L3536+8
+	bl	printk
+	ldrh	r3, [r5, #-54]
 	sub	r6, r5, #3088
+	ldrb	r2, [r5, #-55]	@ zero_extendqisi2
+	ldrb	r1, [r5, #-56]	@ zero_extendqisi2
+	ldr	r0, .L3536+12
 	bl	printk
-	ldrb	r1, [r5, #200]	@ zero_extendqisi2
-	ldrb	r2, [r5, #201]	@ zero_extendqisi2
-	ldrh	r3, [r5, #202]
-	ldr	r0, .L3610+12
-	bl	printk
-	ldr	r3, [r4, #2804]
-	ldr	r0, .L3610+16
-	ldrh	r1, [r3, #130]
+	ldr	r3, [r4, #2800]
+	ldr	r0, .L3536+16
 	ldrh	r2, [r3, #140]
+	ldrh	r1, [r3, #130]
 	bl	printk
-	ldr	r0, [r4, #1092]
-	ldrh	ip, [r0, #22]
-	ldrh	r1, [r0, #16]
-	ldrh	r2, [r0, #18]
+	ldr	r0, [r4, #1096]
+	ldrh	ip, [r0, #26]
 	ldrb	r3, [r0, #21]	@ zero_extendqisi2
-	str	ip, [sp]
-	ldrh	r0, [r0, #26]
-	str	r0, [sp, #4]
-	ldr	r0, .L3610+20
+	ldrh	r2, [r0, #18]
+	ldrh	r1, [r0, #16]
+	str	ip, [sp, #4]
+	ldrh	r0, [r0, #22]
+	str	r0, [sp]
+	ldr	r0, .L3536+20
 	bl	printk
-	ldr	r0, [r4, #1092]
-	ldrh	ip, [r0, #54]
-	ldrh	r1, [r0, #48]
-	ldrh	r2, [r0, #50]
+	ldr	r0, [r4, #1096]
+	ldrh	ip, [r0, #58]
 	ldrb	r3, [r0, #53]	@ zero_extendqisi2
-	str	ip, [sp]
-	ldrh	r0, [r0, #58]
-	str	r0, [sp, #4]
-	ldr	r0, .L3610+24
+	ldrh	r2, [r0, #50]
+	ldrh	r1, [r0, #48]
+	str	ip, [sp, #4]
+	ldrh	r0, [r0, #54]
+	str	r0, [sp]
+	ldr	r0, .L3536+24
 	bl	printk
-	ldr	r0, [r4, #1092]
-	ldrh	ip, [r0, #86]
-	ldrh	r1, [r0, #80]
-	ldrh	r2, [r0, #82]
+	ldr	r0, [r4, #1096]
+	ldrh	ip, [r0, #90]
 	ldrb	r3, [r0, #85]	@ zero_extendqisi2
-	str	ip, [sp]
-	ldrh	r0, [r0, #90]
-	str	r0, [sp, #4]
-	ldr	r0, .L3610+28
+	ldrh	r2, [r0, #82]
+	ldrh	r1, [r0, #80]
+	str	ip, [sp, #4]
+	ldrh	r0, [r0, #86]
+	str	r0, [sp]
+	ldr	r0, .L3536+28
 	bl	printk
 	ldrh	r2, [r6, #-8]
-	ldrb	r3, [r5, #-3123]	@ zero_extendqisi2
-	ldr	r1, [r5, #-2548]
-	ldr	r0, .L3610+32
+	ldrb	r3, [r5, #-3127]	@ zero_extendqisi2
+	ldr	r1, [r5, #-2556]
+	ldr	r0, .L3536+32
 	mul	r3, r3, r2
 	mov	r2, #4
-	mov	r3, r3, asl #1
+	lsl	r3, r3, #1
 	bl	rknand_print_hex
-	ldr	r1, [r4, #1088]
 	ldrh	r3, [r4, r7]
 	mov	r2, #2
-	ldr	r0, .L3610+36
+	ldr	r1, [r4, #1092]
+	ldr	r0, .L3536+36
 	bl	rknand_print_hex
-	ldr	r3, [r4, #2804]
-	movw	ip, #698
-	ldr	r0, .L3610+40
-	add	r1, r3, #704
+	ldr	r1, [r4, #2800]
+	movw	r3, #698
 	mov	r2, #4
-	ldrh	r3, [r3, ip]
+	ldr	r0, .L3536+40
+	ldrh	r3, [r1, r3]
+	add	r1, r1, #704
 	bl	rknand_print_hex
-	ldr	r1, [r4, #1080]
 	ldrh	r3, [r4, r7]
 	mov	r2, #4
-	ldr	r0, .L3610+44
+	ldr	r1, [r4, #1084]
+	ldr	r0, .L3536+44
 	bl	rknand_print_hex
 	sub	r1, r5, #3056
-	ldr	r0, .L3610+48
-	sub	r1, r1, #4
-	mov	r2, #2
 	mov	r3, #256
+	mov	r2, #2
+	sub	r1, r1, #14
+	ldr	r0, .L3536+48
 	bl	rknand_print_hex
 	ldrh	r2, [r6, #-8]
-	ldrb	r3, [r5, #-3123]	@ zero_extendqisi2
-	ldr	r0, .L3610+52
-	ldr	r1, [r5, #-2544]
+	ldrb	r3, [r5, #-3127]	@ zero_extendqisi2
+	ldr	r1, [r5, #-2552]
+	ldr	r0, .L3536+52
 	mul	r3, r3, r2
 	mov	r2, #2
-	mov	r3, r3, asl #1
+	lsl	r3, r3, #1
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, lr}
+	pop	{r4, r5, r6, r7, lr}
 	b	rknand_print_hex
-.L3611:
+.L3537:
 	.align	2
-.L3610:
+.L3536:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
+	.word	.LC224
 	.word	.LC225
 	.word	.LC226
 	.word	.LC227
@@ -21344,2197 +21651,2185 @@
 	.word	.LC229
 	.word	.LC230
 	.word	.LC231
+	.word	.LC211
 	.word	.LC232
-	.word	.LC212
 	.word	.LC233
 	.word	.LC234
-	.word	.LC235
 	.fnend
 	.size	dump_ftl_info, .-dump_ftl_info
 	.align	2
 	.global	pm_ppa_update_check
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_ppa_update_check, %function
 pm_ppa_update_check:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	.save {r3, r4, r5, r6, r7, lr}
-	mov	r4, r2
-	ldr	r3, .L3616
-	mov	r6, r0
-	ldr	r7, .L3616+4
+	ldr	r3, .L3542
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	mov	r6, r2
+	ldr	r7, .L3542+4
+	mov	r4, r0
+	sub	r2, r3, #3136
 	mov	r5, r1
-	sub	r2, r3, #3120
-	mvn	r1, #0
-	ldrh	r0, [r2, #-12]
-	ldrb	r2, [r7, #1189]	@ zero_extendqisi2
-	rsb	r2, r2, #24
-	rsb	r2, r0, r2
-	mov	r0, r4, lsr r0
-	bic	r0, r0, r1, asl r2
-	ldrb	r1, [r3, #-3130]	@ zero_extendqisi2
+	ldrh	r0, [r2, #-2]
+	ldrb	ip, [r7, #1153]	@ zero_extendqisi2
+	ldrb	r1, [r3, #-3136]	@ zero_extendqisi2
+	mvn	r3, #0
+	rsb	ip, ip, #24
+	sub	ip, ip, r0
+	lsr	r0, r6, r0
+	bic	r0, r0, r3, lsl ip
 	bl	__aeabi_uidiv
-	ldr	r3, [r7, #1080]
+	ldr	r3, [r7, #1084]
 	uxth	r0, r0
-	add	r0, r3, r0, asl #2
+	add	r0, r3, r0, lsl #2
 	ldrb	r0, [r0, #2]	@ zero_extendqisi2
-	mov	r0, r0, lsr #5
-	cmp	r0, #1
-	cmpne	r0, #7
+	lsr	r0, r0, #5
+	cmp	r0, #7
+	cmpne	r0, #1
 	moveq	r0, #1
 	movne	r0, #0
-	ldmnefd	sp!, {r3, r4, r5, r6, r7, pc}
-	mov	r1, r6
+	popne	{r4, r5, r6, r7, r8, pc}
+	mov	r3, r6
 	mov	r2, r5
-	mov	r3, r4
-	ldr	r0, .L3616+8
+	mov	r1, r4
+	ldr	r0, .L3542+8
 	bl	printk
 	bl	dump_ftl_info
 	mvn	r0, #0
-	ldmfd	sp!, {r3, r4, r5, r6, r7, pc}
-.L3617:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L3543:
 	.align	2
-.L3616:
+.L3542:
 	.word	.LANCHOR3
 	.word	.LANCHOR0
-	.word	.LC236
+	.word	.LC235
 	.fnend
 	.size	pm_ppa_update_check, .-pm_ppa_update_check
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	load_l2p_region, %function
 load_l2p_region:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	cmp	r1, #31
-	stmfd	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
 	.pad #8
-	mov	r6, r0
-	mov	r5, r1
-	bls	.L3619
-	ldr	r1, .L3633
+	mov	r7, r0
+	mov	r6, r1
+	bls	.L3545
 	mov	r2, #32
-	ldr	r0, .L3633+4
+	ldr	r1, .L3559
+	ldr	r0, .L3559+4
 	bl	printk
 	bl	dump_stack
-.L3619:
-	ldr	r9, .L3633+8
+.L3545:
+	ldr	r8, .L3559+8
 	movw	r10, #698
-	ldr	r7, .L3633+12
-	ldr	r3, [r9, #2804]
-	mov	r8, r9
+	ldr	r5, .L3559+12
+	ldr	r3, [r8, #2800]
+	mov	r9, r8
 	ldrh	r2, [r3, r10]
-	cmp	r6, r2
-	bls	.L3620
-	mov	r1, r6
-	ldr	r0, .L3633+16
-	bl	printk
+	cmp	r2, r7
+	bcs	.L3546
+	mov	r1, r7
+	ldr	r0, .L3559+16
 	mov	r4, #0
-	movw	r3, #542
-	ldr	r0, [r4, #4]
-	ldrh	r2, [r7, r3]
+	bl	printk
+	ldrh	r2, [r5, #-14]
 	mov	r1, #255
+	ldr	r0, [r4, #4]
 	bl	ftl_memset
-	ldr	r3, [r9, #2804]
+	ldr	r3, [r8, #2800]
 	ldrh	r3, [r3, r10]
-	cmp	r3, r6
-	bcs	.L3631
-	ldr	r0, .L3633+4
+	cmp	r3, r7
+	bcc	.L3547
+.L3557:
+	mov	r0, #0
+.L3544:
+	add	sp, sp, #8
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L3547:
 	mov	r2, #37
-	ldr	r1, .L3633
-	b	.L3632
-.L3620:
-	add	r2, r6, #176
-	mov	r5, r5, asl #3
-	add	r9, r7, r5
-	ldr	r4, [r3, r2, asl #2]
-	sub	r3, r7, #2528
-	add	r2, r3, r5
-	strh	r6, [r3, r5]	@ movhi
+.L3558:
+	ldr	r1, .L3559
+	ldr	r0, .L3559+4
+	bl	printk
+	bl	dump_stack
+	b	.L3557
+.L3546:
+	add	r2, r7, #176
+	lsl	r6, r6, #3
+	ldr	r4, [r3, r2, lsl #2]
+	ldr	r3, .L3559+20
+	add	r8, r5, r6
+	add	r2, r3, r6
+	strh	r7, [r3, r6]	@ movhi
 	mov	r3, #0
 	cmp	r4, r3
 	strh	r3, [r2, #2]	@ movhi
-	bne	.L3623
-	mov	r1, r6
+	bne	.L3549
 	mov	r2, r4
-	ldr	r0, .L3633+20
+	mov	r1, r7
+	ldr	r0, .L3559+24
 	bl	printk
-	movw	r3, #542
-	ldr	r0, [r9, #-2524]
+	ldrh	r2, [r5, #-14]
 	mov	r1, #255
-	ldrh	r2, [r7, r3]
+	ldr	r0, [r8, #-2528]
 	bl	ftl_memset
-	b	.L3631
-.L3623:
-	ldr	r2, [r7, #524]
+	b	.L3557
+.L3549:
+	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
 	mov	r0, r4
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
-	ldr	r1, [r9, #-2524]
+	ldr	r2, [r5, #-32]
+	ldr	r1, [r8, #-2528]
 	bl	ftl_read_ppa_page
-	ldr	r2, [r7, #524]
-	ldr	r2, [r2]
-	cmp	r2, r6
+	ldr	r2, [r5, #-32]
 	mov	r3, r0
-	bne	.L3624
+	ldr	r2, [r2]
+	cmp	r2, r7
+	bne	.L3550
 	cmn	r0, #1
 	cmpne	r0, #512
-	beq	.L3624
-.L3628:
-	ldr	r3, [r7, #524]
+	beq	.L3550
+.L3554:
+	ldr	r3, [r5, #-32]
 	ldr	r3, [r3]
-	cmp	r3, r6
-	beq	.L3631
-	ldr	r0, .L3633+4
+	cmp	r7, r3
+	beq	.L3557
 	mov	r2, #73
-	ldr	r1, .L3633
-	b	.L3632
-.L3624:
-	mov	r1, r6
+	b	.L3558
+.L3550:
+	mov	r1, r7
 	str	r4, [sp]
-	ldr	r0, .L3633+24
-	add	r5, r7, r5
+	ldr	r0, .L3559+28
+	add	r6, r5, r6
 	bl	printk
-	ldr	r3, [r8, #2804]
-	movw	ip, #698
-	ldr	r0, .L3633+28
-	add	r1, r3, #704
+	ldr	r1, [r9, #2800]
+	movw	r3, #698
 	mov	r2, #4
-	ldrh	r3, [r3, ip]
+	ldr	r0, .L3559+32
+	ldrh	r3, [r1, r3]
+	add	r1, r1, #704
 	bl	rknand_print_hex
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
-	ldr	r0, .L3633+32
+	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
 	mov	r2, #4
-	ldr	r1, [r5, #-2524]
-	mov	r3, r3, asl #7
-	ldr	r9, .L3633+12
+	ldr	r1, [r6, #-2528]
+	ldr	r0, .L3559+36
+	lsl	r3, r3, #7
 	bl	rknand_print_hex
-	ldr	r0, .L3633+36
-	ldr	r1, [r7, #524]
-	mov	r2, #4
 	mov	r3, #16
+	mov	r2, #4
+	ldr	r1, [r5, #-32]
+	ldr	r0, .L3559+40
 	bl	rknand_print_hex
+	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
 	mov	r0, r4
-	ldr	r1, [r5, #-2524]
-	ldr	r2, [r7, #524]
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
+	ldr	r2, [r5, #-32]
+	ldr	r1, [r6, #-2528]
 	bl	ftl_read_ppa_page
 	cmn	r0, #1
 	cmpne	r0, #512
-	bne	.L3627
-	movw	r3, #542
-	ldr	r0, [r5, #-2524]
+	bne	.L3553
+	ldrh	r2, [r5, #-14]
 	mov	r1, #255
-	ldrh	r2, [r9, r3]
+	ldr	r0, [r6, #-2528]
 	bl	ftl_memset
-	b	.L3629
-.L3627:
-	ldr	r3, [r9, #524]
-	ldr	r3, [r3]
-	cmp	r3, r6
-	beq	.L3628
-	b	.L3629
-.L3632:
-	bl	printk
-	bl	dump_stack
-.L3631:
-	mov	r0, #0
-	b	.L3622
-.L3629:
+.L3555:
 	mvn	r0, #0
-.L3622:
-	add	sp, sp, #8
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L3634:
+	b	.L3544
+.L3553:
+	ldr	r3, [r5, #-32]
+	ldr	r3, [r3]
+	cmp	r7, r3
+	beq	.L3554
+	b	.L3555
+.L3560:
 	.align	2
-.L3633:
-	.word	.LANCHOR1+2552
+.L3559:
+	.word	.LANCHOR1+2339
 	.word	.LC0
 	.word	.LANCHOR0
 	.word	.LANCHOR3
+	.word	.LC236
+	.word	.LANCHOR3-2532
 	.word	.LC237
 	.word	.LC238
 	.word	.LC239
+	.word	.LC218
 	.word	.LC240
-	.word	.LC219
-	.word	.LC241
 	.fnend
 	.size	load_l2p_region, .-load_l2p_region
 	.align	2
 	.global	pm_gc
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_gc, %function
 pm_gc:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
-	ldr	r5, .L3654
-	ldr	r4, [r5, #2804]
-	add	r4, r4, #688
-	ldrh	r2, [r4]
-	ldr	r4, .L3654+4
-	ldrh	r3, [r4, #-152]
+	ldr	r6, .L3579
+	ldr	r4, .L3579+4
+	ldr	r3, [r6, #2800]
+	add	r3, r3, #688
+	ldrh	r2, [r3]
+	ldrh	r3, [r4, #-176]
 	sub	r3, r3, #1
 	cmp	r2, r3
-	bge	.L3636
-	ldr	r3, [r4, #-160]
+	bge	.L3562
+	ldr	r3, [r4, #-184]
 	cmp	r3, #0
-	beq	.L3637
-.L3636:
+	beq	.L3563
+.L3562:
 	bl	pm_free_sblk
-	ldr	r2, [r5, #2804]
+	ldr	r2, [r6, #2800]
 	add	r3, r2, #688
 	ldrh	r1, [r3]
-	ldrh	r3, [r4, #-152]
+	ldrh	r3, [r4, #-176]
 	sub	r3, r3, #1
 	cmp	r1, r3
-	bge	.L3638
-	ldr	r3, .L3654+4
-	ldr	r3, [r3, #-160]
+	bge	.L3564
+	ldr	r3, [r4, #-184]
 	cmp	r3, #0
-	beq	.L3637
-.L3638:
+	beq	.L3563
+.L3564:
 	uxth	r0, r0
-	movw	r6, #65535
-	add	r0, r0, #208
+	movw	r5, #65535
 	mov	r3, #0
-	str	r3, [r4, #-160]
-	mov	r0, r0, asl #1
-	ldrh	r7, [r2, r0]
-	cmp	r7, r6
-	bne	.L3640
-	ldr	r1, .L3654+8
+	add	r0, r0, #208
+	str	r3, [r4, #-184]
+	lsl	r0, r0, #1
+	ldrh	r9, [r2, r0]
+	cmp	r9, r5
+	bne	.L3566
 	mov	r2, #182
-	ldr	r0, .L3654+12
+	ldr	r1, .L3579+8
+	ldr	r0, .L3579+12
 	bl	printk
 	bl	dump_stack
 	bl	pm_free_sblk
-	ldr	r3, [r5, #2804]
 	uxth	r0, r0
+	ldr	r3, [r6, #2800]
 	add	r0, r0, #208
-	mov	r0, r0, asl #1
-	ldrh	r7, [r3, r0]
-	cmp	r7, r6
-	beq	.L3637
-.L3640:
+	lsl	r0, r0, #1
+	ldrh	r9, [r3, r0]
+	cmp	r9, r5
+	beq	.L3563
+.L3566:
+	ldr	r5, .L3579+16
 	bl	pm_select_ram_region
-	ldr	r8, .L3654+4
-	movw	r2, #65535
-	sub	r3, r8, #2528
-	mov	r6, r0, asl #3
+	lsl	r7, r0, #3
 	mov	r10, r0
-	add	r9, r3, r6
-	str	r3, [sp]
-	ldrh	r0, [r3, r6]
-	cmp	r0, r2
-	beq	.L3641
-	add	r8, r8, r6
-	ldr	r1, [r8, #-2524]
+	movw	r3, #65535
+	ldrh	r0, [r5, r7]
+	add	r8, r5, r7
+	add	r5, r5, #4
+	cmp	r0, r3
+	beq	.L3567
+	add	r3, r4, r7
+	ldr	r1, [r3, #-2528]
 	cmp	r1, #0
-	beq	.L3641
-	ldrsh	r3, [r9, #2]
+	beq	.L3567
+	ldrsh	r3, [r8, #2]
 	cmp	r3, #0
-	bge	.L3641
+	bge	.L3567
 	bl	pm_write_page
-	ldrh	r3, [r9, #2]
+	ldrh	r3, [r8, #2]
 	ubfx	r3, r3, #0, #15
-	strh	r3, [r9, #2]	@ movhi
-.L3641:
-	ldr	fp, .L3654
+	strh	r3, [r8, #2]	@ movhi
+.L3567:
+	sub	r5, r5, #4
 	mov	r8, #0
-	ldr	r9, .L3654+4
-	add	r3, r9, r6
-	str	r3, [sp, #4]
-.L3642:
-	ldr	r0, [r5, #2804]
-	uxth	r9, r8
-	add	r3, r0, #696
-	add	r3, r3, #2
-	ldrh	r3, [r3]
-	cmp	r3, r9
-	bls	.L3653
-	ldr	r3, .L3654+16
-	ldrh	r1, [r3]
-	add	r3, r9, #176
-	ldr	ip, [r0, r3, asl #2]
-	mvn	r0, #0
-	ldrb	r3, [fp, #1189]	@ zero_extendqisi2
-	rsb	r3, r3, #24
-	rsb	r3, r1, r3
-	mvn	r0, r0, asl r3
-	and	r0, r0, ip, lsr r1
-	ldrb	r1, [r4, #-3130]	@ zero_extendqisi2
-	bl	__aeabi_uidiv
-	uxth	r0, r0
-	cmp	r0, r7
-	bne	.L3643
-	mov	r0, r9
-	mov	r1, r10
-	bl	load_l2p_region
-	cmp	r0, #0
-	bne	.L3644
-	ldr	r3, [sp, #4]
-	mov	r0, r9
-	ldr	r1, [r3, #-2524]
-	bl	pm_write_page
-.L3644:
-	ldr	r2, [sp]
-	mvn	r3, #0
-	strh	r3, [r2, r6]	@ movhi
-.L3643:
-	add	r8, r8, #1
-	b	.L3642
-.L3653:
+	add	r5, r5, r7
+.L3568:
+	ldr	r3, [r6, #2800]
+	movw	r1, #698
+	uxth	r2, r8
+	ldrh	r1, [r3, r1]
+	cmp	r1, r2
+	bhi	.L3571
 	bl	pm_free_sblk
-.L3637:
+.L3563:
 	mov	r0, #0
 	add	sp, sp, #12
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3655:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3571:
+	ldr	r1, .L3579+20
+	uxth	fp, r8
+	ldrb	r0, [r6, #1153]	@ zero_extendqisi2
+	add	ip, fp, #176
+	str	r2, [sp, #4]
+	ldrh	r1, [r1]
+	ldr	r3, [r3, ip, lsl #2]
+	rsb	r0, r0, #24
+	mvn	ip, #0
+	sub	r0, r0, r1
+	lsr	r3, r3, r1
+	ldrb	r1, [r4, #-3136]	@ zero_extendqisi2
+	bic	r0, r3, ip, lsl r0
+	bl	__aeabi_uidiv
+	uxth	r0, r0
+	ldr	r2, [sp, #4]
+	cmp	r9, r0
+	bne	.L3569
+	mov	r1, r10
+	mov	r0, r2
+	bl	load_l2p_region
+	cmp	r0, #0
+	bne	.L3570
+	add	r3, r4, r7
+	mov	r0, fp
+	ldr	r1, [r3, #-2528]
+	bl	pm_write_page
+.L3570:
+	mvn	r3, #0
+	strh	r3, [r5]	@ movhi
+.L3569:
+	add	r8, r8, #1
+	b	.L3568
+.L3580:
 	.align	2
-.L3654:
+.L3579:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR1+2568
+	.word	.LANCHOR1+2355
 	.word	.LC0
-	.word	.LANCHOR3-3132
+	.word	.LANCHOR3-2532
+	.word	.LANCHOR3-3138
 	.fnend
 	.size	pm_gc, .-pm_gc
 	.align	2
 	.global	pm_flush_id
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_flush_id, %function
 pm_flush_id:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
-	mov	r0, r0, asl #3
-	ldr	r4, .L3662
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	lsl	r0, r0, #3
+	ldr	r4, .L3587
 	sub	r3, r4, #2528
 	add	r2, r4, r0
+	sub	r3, r3, #4
+	ldr	r1, [r2, #-2528]
 	add	r5, r3, r0
-	ldr	r1, [r2, #-2524]
 	ldrh	r0, [r3, r0]
 	bl	pm_write_page
 	ldrh	r3, [r5, #2]
 	ubfx	r3, r3, #0, #15
 	strh	r3, [r5, #2]	@ movhi
-	ldr	r3, [r4, #520]
+	ldr	r3, [r4, #-36]
 	cmp	r3, #0
-	beq	.L3657
+	beq	.L3582
 	bl	pm_gc
 	mov	r3, #0
-	str	r3, [r4, #520]
-.L3657:
+	str	r3, [r4, #-36]
+.L3582:
 	mov	r0, #0
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L3663:
+	pop	{r4, r5, r6, pc}
+.L3588:
 	.align	2
-.L3662:
+.L3587:
 	.word	.LANCHOR3
 	.fnend
 	.size	pm_flush_id, .-pm_flush_id
 	.align	2
 	.global	pm_flush
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_flush, %function
 pm_flush:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
 	mov	r4, #0
-	ldr	r5, .L3669
-.L3666:
-	add	r3, r5, r4, asl #3
+	ldr	r5, .L3594
+.L3591:
+	add	r3, r5, r4, lsl #3
 	uxth	r0, r4
 	ldrsh	r3, [r3, #2]
 	cmp	r3, #0
-	bge	.L3665
+	bge	.L3590
 	bl	pm_flush_id
-.L3665:
+.L3590:
 	add	r4, r4, #1
 	cmp	r4, #32
-	bne	.L3666
+	bne	.L3591
 	mov	r0, #0
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L3670:
+	pop	{r4, r5, r6, pc}
+.L3595:
 	.align	2
-.L3669:
-	.word	.LANCHOR3-2528
+.L3594:
+	.word	.LANCHOR3-2532
 	.fnend
 	.size	pm_flush, .-pm_flush
 	.align	2
 	.global	flt_sys_flush
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	flt_sys_flush, %function
 flt_sys_flush:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, lr}
-	.save {r3, lr}
+	push	{r4, lr}
+	.save {r4, lr}
 	bl	ftl_flush
 	bl	pm_flush
 	bl	ftl_ext_info_flush
 	mov	r0, #0
-	ldmfd	sp!, {r3, lr}
+	pop	{r4, lr}
 	b	ftl_info_flush
 	.fnend
 	.size	flt_sys_flush, .-flt_sys_flush
 	.align	2
 	.global	zftl_deinit
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_deinit, %function
 zftl_deinit:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, lr}
-	.save {r3, lr}
+	push	{r4, lr}
+	.save {r4, lr}
 	bl	zftl_flash_de_init
 	bl	flt_sys_flush
-	ldmfd	sp!, {r3, lr}
+	pop	{r4, lr}
 	b	zftl_flash_de_init
 	.fnend
 	.size	zftl_deinit, .-zftl_deinit
 	.align	2
 	.global	pm_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_init, %function
 pm_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r7, r0
-	ldr	r4, .L3699
+	mov	r5, #0
+	ldr	r8, .L3623
+	mvn	r9, #0
+	mov	r10, r5
+	mov	r3, #1
+	ldr	r4, .L3623+4
 	.pad #20
 	sub	sp, sp, #20
+	mov	r7, r0
 	mov	r0, #64
-	mov	r5, #0
-	mov	r3, #1
-	ldr	r10, .L3699+4
-	str	r5, [r4, #-160]
-	sub	r8, r4, #2528
-	str	r5, [r4, #520]
-	mvn	r9, #0
-	strb	r3, [r4, #528]
-	bl	ftl_malloc
-	str	r0, [r4, #524]
-.L3677:
-	mov	r3, #0
-	cmp	r7, r3
+	str	r5, [r4, #-184]
+	str	r5, [r4, #-36]
+	strb	r3, [r4, #-28]
+	bl	ftl_dma32_malloc
+	str	r0, [r4, #-32]
+.L3602:
+	cmp	r7, #0
 	mov	r6, r8
 	strh	r9, [r6, r5]!	@ movhi
-	strh	r3, [r6, #2]	@ movhi
-	beq	.L3676
-	ldrb	r0, [r10, #2772]	@ zero_extendqisi2
-	mov	r0, r0, asl #9
-	bl	ftl_malloc
+	strh	r10, [r6, #2]	@ movhi
+	beq	.L3601
+	ldrb	r0, [r4, #-2546]	@ zero_extendqisi2
+	lsl	r0, r0, #9
+	bl	ftl_dma32_malloc
 	str	r0, [r6, #4]
-.L3676:
+.L3601:
 	add	r5, r5, #8
 	cmp	r5, #256
-	bne	.L3677
-	ldr	r5, .L3699+4
-	ldr	r10, [r4, #-2524]
-	ldr	r6, [r4, #524]
-	ldr	r3, [r5, #2804]
-	mov	r2, r10
-	add	r3, r3, #692
-	ldrb	r0, [r3, #2]	@ zero_extendqisi2
-	ldrh	r1, [r3]
+	bne	.L3602
+	ldr	r5, .L3623+8
+	ldr	r9, [r4, #-2528]
+	ldr	r6, [r4, #-32]
+	ldr	r3, [r5, #2800]
+	add	r2, r3, #692
+	ldrb	r0, [r3, #694]	@ zero_extendqisi2
 	mov	r3, #4
+	ldrh	r1, [r2]
 	str	r3, [sp]
+	mov	r2, r9
 	mov	r3, r6
 	bl	flash_get_last_written_page
-	ldr	r3, [r5, #2804]
+	ldr	r3, [r5, #2800]
+	mov	r8, r0
 	add	r2, r3, #696
 	ldrh	r2, [r2]
 	cmp	r2, r0
-	mov	r7, r0
-	bgt	.L3678
-	add	r3, r3, #692
-	ldr	r0, .L3699+8
-	mov	fp, r5
-	ldrh	r1, [r3]
-	mov	r3, r7
-	bl	printk
-	ldr	r3, [r5, #2804]
-	add	r7, r7, #1
-	add	r3, r3, #696
-	ldrh	r9, [r3]
-.L3679:
-	sxth	r3, r9
-	cmp	r3, r7
-	bge	.L3698
-	ldr	r2, [r5, #2804]
-	ldr	r0, .L3699+12
-	add	r1, r2, #692
-	ldrh	r8, [r0]
+	bgt	.L3603
+	add	r1, r3, #692
+	mov	r3, r0
 	ldrh	r1, [r1]
-	ldrb	r0, [r2, #694]	@ zero_extendqisi2
-	mov	r2, r10
-	mla	r8, r8, r1, r3
-	ldrb	r3, [r5, #2772]	@ zero_extendqisi2
-	str	r3, [sp]
-	mov	r3, r6
-	mov	r1, r8
-	bl	flash_read_page_en
-	ldr	r3, [r5, #2804]
-	add	r3, r3, #692
-	ldr	r2, [r3, #-644]
-	add	r2, r2, #1
-	str	r2, [r3, #-644]
-	add	r3, r3, #2
-	ldr	r1, [r6]
-	mov	r2, r8
-	ldrh	r3, [r3]
-	str	r0, [sp, #12]
-	ldr	r0, .L3699+16
+	ldr	r0, .L3623+12
 	bl	printk
-	ldr	ip, [sp, #12]
-	cmp	ip, #512
-	cmnne	ip, #1
-	beq	.L3680
-	ldr	r3, [fp, #2804]
-	ldr	r2, [r6]
+	ldr	r3, [r5, #2800]
 	add	r3, r3, #696
-	add	r3, r3, #2
-	ldrh	r3, [r3]
-	cmp	r2, r3
-	bcs	.L3680
-	ldr	r3, [r6, #8]
-	cmp	r3, #0
-	beq	.L3681
-	ldrb	r1, [fp, #2772]	@ zero_extendqisi2
-	mov	r0, r10
+	ldrsh	r7, [r3]
+	add	r3, r8, #1
 	str	r3, [sp, #12]
-	mov	r1, r1, asl #9
-	bl	js_hash
+.L3604:
 	ldr	r3, [sp, #12]
-	cmp	r3, r0
-	beq	.L3681
-	ldr	r1, [r6, #8]
-	ldr	r0, .L3699+20
-	bl	printk
-	b	.L3680
-.L3681:
-	ldr	r3, [r6]
-	ldr	r2, [r5, #2804]
-	add	r3, r3, #176
-	str	r8, [r2, r3, asl #2]
-.L3680:
-	add	r9, r9, #1
-	uxth	r9, r9
-	b	.L3679
-.L3698:
+	cmp	r7, r3
+	blt	.L3607
 	mov	r3, #1
-	strb	r3, [r4, #209]
-	ldr	r3, [r5, #2804]
+	ldrh	r2, [sp, #12]
+	strb	r3, [r4, #-47]
+	ldr	r3, [r5, #2800]
 	add	r3, r3, #696
-	strh	r7, [r3]	@ movhi
+	strh	r2, [r3]	@ movhi
 	bl	pm_free_sblk
-.L3678:
-	movw	r3, #542
+.L3603:
+	ldrh	r2, [r4, #-14]
 	mov	r1, #255
-	ldrh	r2, [r4, r3]
-	ldr	r0, [r4, #-2524]
+	ldr	r0, [r4, #-2528]
 	bl	ftl_memset
+	ldr	r1, [r4, #-2528]
 	mvn	r0, #0
-	ldr	r1, [r4, #-2524]
 	bl	pm_write_page
-	ldrb	r3, [r4, #209]	@ zero_extendqisi2
-	ldr	r5, .L3699
+	ldrb	r3, [r4, #-47]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L3683
-	ldr	r1, [r5, #-2524]
+	beq	.L3608
+	ldr	r1, [r4, #-2528]
 	mvn	r0, #0
 	bl	pm_write_page
-	ldr	r1, [r5, #-2524]
+	ldr	r1, [r4, #-2528]
 	mvn	r0, #0
 	bl	pm_write_page
+	ldr	r1, [r4, #-2528]
 	mvn	r0, #0
-	ldr	r1, [r5, #-2524]
 	bl	pm_write_page
-.L3683:
+.L3608:
 	bl	pm_free_sblk
 	bl	pm_gc
 	mov	r0, #0
 	add	sp, sp, #20
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3700:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3607:
+	ldr	r3, [r5, #2800]
+	movw	fp, #694
+	add	r2, r3, #692
+	ldrb	r0, [r3, fp]	@ zero_extendqisi2
+	ldrh	r8, [r2]
+	ldr	r2, .L3623+16
+	ldrb	r3, [r4, #-2546]	@ zero_extendqisi2
+	ldrh	r2, [r2]
+	str	r3, [sp]
+	mov	r3, r6
+	mla	r8, r2, r8, r7
+	mov	r2, r9
+	mov	r1, r8
+	bl	flash_read_page_en
+	ldr	r3, [r5, #2800]
+	mov	r10, r0
+	ldr	r0, .L3623+20
+	ldr	r2, [r3, #48]
+	add	r2, r2, #1
+	str	r2, [r3, #48]
+	mov	r2, r8
+	ldrh	r3, [r3, fp]
+	ldr	r1, [r6]
+	bl	printk
+	cmp	r10, #512
+	cmnne	r10, #1
+	beq	.L3605
+	ldr	r2, [r5, #2800]
+	movw	r3, #698
+	ldrh	r3, [r2, r3]
+	ldr	r2, [r6]
+	cmp	r2, r3
+	bcs	.L3605
+	ldr	r10, [r6, #8]
+	cmp	r10, #0
+	beq	.L3606
+	ldrb	r1, [r4, #-2546]	@ zero_extendqisi2
+	mov	r0, r9
+	lsl	r1, r1, #9
+	bl	js_hash
+	cmp	r10, r0
+	beq	.L3606
+	ldr	r1, [r6, #8]
+	ldr	r0, .L3623+24
+	bl	printk
+.L3605:
+	add	r7, r7, #1
+	sxth	r7, r7
+	b	.L3604
+.L3606:
+	ldr	r3, [r6]
+	ldr	r2, [r5, #2800]
+	add	r3, r3, #176
+	str	r8, [r2, r3, lsl #2]
+	b	.L3605
+.L3624:
 	.align	2
-.L3699:
+.L3623:
+	.word	.LANCHOR3-2532
 	.word	.LANCHOR3
 	.word	.LANCHOR0
+	.word	.LC241
+	.word	.LANCHOR3-3074
 	.word	.LC242
-	.word	.LANCHOR3-3066
 	.word	.LC243
-	.word	.LC244
 	.fnend
 	.size	pm_init, .-pm_init
 	.align	2
 	.global	pm_log2phys
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	pm_log2phys, %function
 pm_log2phys:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 0
+	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r6, r1
-	ldr	r9, .L3720
-	mov	r10, r0
-	mov	r8, r2
-	ldrb	r4, [r9, #2772]	@ zero_extendqisi2
-	mov	r1, r4, asl #7
-	mov	r5, r4, asl #7
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.pad #12
+	mov	r7, r1
+	ldr	r8, .L3641
+	mov	r6, r0
+	mov	r9, r2
+	ldr	r10, .L3641+4
+	ldrb	r4, [r8, #-2546]	@ zero_extendqisi2
+	lsl	r1, r4, #7
+	lsl	r4, r4, #7
 	bl	__aeabi_uidiv
-	ldr	r2, [r9, #2784]
-	cmp	r10, r2
-	movcc	r3, #0
-	ldrcc	r2, .L3720+4
-	uxth	fp, r0
-	mov	r7, r0
-	smulbb	r5, r5, fp
-	rsb	r5, r5, r10
-	uxth	r5, r5
-	bcc	.L3702
-	mov	r1, r10
-	ldr	r0, .L3720+8
+	str	r0, [sp, #4]
+	ldrh	fp, [sp, #4]
+	ldr	r2, [r10, #2780]
+	smulbb	r4, r4, fp
+	cmp	r6, r2
+	sub	r4, r6, r4
+	bcc	.L3626
+	mov	r1, r6
+	ldr	r0, .L3641+8
 	bl	printk
+	cmp	r9, #0
 	mvn	r0, #0
-	cmp	r8, #0
-	streq	r0, [r6]
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3718:
-	ldrh	r1, [r1, r2]
-	cmp	r1, fp
-	beq	.L3705
-.L3704:
-	add	r3, r3, #1
-	cmp	r3, #32
-	beq	.L3717
-.L3702:
-	mov	r1, r3, asl #3
-	uxth	r4, r3
-	add	r0, r2, r1
-	ldr	r10, .L3720+4
-	ldr	r0, [r0, #4]
-	cmp	r0, #0
-	bne	.L3718
-	b	.L3704
-.L3717:
-	bl	pm_select_ram_region
-	mov	r3, r0, asl #3
-	mov	r4, r0
-	add	r2, r10, r3
-	ldrh	r1, [r10, r3]
-	movw	r3, #65535
-	cmp	r1, r3
-	bne	.L3719
-.L3708:
-	ldr	r3, .L3720+12
-	mov	r0, fp
-	mov	r1, r4
-	strb	r4, [r3, #544]
-	bl	load_l2p_region
-.L3705:
-	cmp	r8, #0
-	ldr	r1, .L3720+12
-	mov	r4, r4, asl #3
-	bne	.L3706
-	add	r3, r1, r4
+	streq	r0, [r7]
+.L3625:
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3626:
+	ldr	r1, .L3641+12
+	uxth	r4, r4
+	mov	r2, #0
+	sub	r6, r8, #2528
+.L3632:
+	lsl	r0, r2, #3
+	uxth	r5, r2
+	add	ip, r1, r0
+	ldr	ip, [ip, #4]
+	cmp	ip, #0
+	beq	.L3628
+	ldrh	r0, [r0, r1]
+	cmp	r0, fp
+	bne	.L3628
+.L3629:
+	cmp	r9, #0
+	lsl	r5, r5, #3
+	bne	.L3630
+	add	r2, r8, r5
+	ldr	r2, [r2, #-2528]
+	ldr	r1, [r2, r4, lsl #2]
 	mvn	r2, #0
-	ldr	r3, [r3, #-2524]
-	ldr	r3, [r3, r5, asl #2]
-	str	r3, [r6]
-	ldrb	r0, [r9, #1189]	@ zero_extendqisi2
+	str	r1, [r7]
+	ldrb	r0, [r10, #1153]	@ zero_extendqisi2
+	ldrb	r3, [r8, #-3072]	@ zero_extendqisi2
 	rsb	ip, r0, #24
-	mvn	r2, r2, asl r0
-	and	r3, r2, r3, lsr ip
-	ldrb	r2, [r1, #-3064]	@ zero_extendqisi2
-	cmp	r3, r2
+	mvn	r2, r2, lsl r0
+	and	r2, r2, r1, lsr ip
+	cmp	r2, r3
 	mvncs	r3, #0
-	strcs	r3, [r6]
-	b	.L3707
-.L3706:
-	add	r3, r1, r4
-	ldr	r2, [r6]
-	ldr	r3, [r3, #-2524]
-	str	r2, [r3, r5, asl #2]
-	add	r2, r10, r4
-	strb	r7, [r1, #-2272]
-	ldrh	r3, [r2, #2]
-	mvn	r3, r3, asl #17
-	mvn	r3, r3, lsr #17
-	strh	r3, [r2, #2]	@ movhi
-.L3707:
-	add	r4, r10, r4
+	strcs	r3, [r7]
+.L3631:
+	sub	r6, r6, #4
 	movw	r2, #32767
+	add	r6, r6, r5
 	mov	r0, #0
-	ldrh	r3, [r4, #2]
+	ldrh	r3, [r6, #2]
 	ubfx	r1, r3, #0, #15
 	cmp	r1, r2
 	addne	r3, r3, #1
-	strneh	r3, [r4, #2]	@ movhi
-	ldmfd	sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3719:
-	ldrsh	r3, [r2, #2]
-	cmp	r3, #0
-	bge	.L3708
+	strhne	r3, [r6, #2]	@ movhi
+	b	.L3625
+.L3630:
+	add	r2, r8, r5
+	ldr	r1, [r7]
+	ldr	r2, [r2, #-2528]
+	ldrb	r3, [sp, #4]	@ zero_extendqisi2
+	str	r1, [r2, r4, lsl #2]
+	sub	r1, r6, #4
+	add	r1, r1, r5
+	strb	r3, [r8, #-2276]
+	ldrh	r2, [r1, #2]
+	mvn	r2, r2, lsl #17
+	mvn	r2, r2, lsr #17
+	strh	r2, [r1, #2]	@ movhi
+	b	.L3631
+.L3628:
+	add	r2, r2, #1
+	cmp	r2, #32
+	bne	.L3632
+	bl	pm_select_ram_region
+	lsl	r1, r0, #3
+	sub	r2, r6, #4
+	mov	r5, r0
+	add	ip, r2, r1
+	ldrh	r1, [r2, r1]
+	movw	r2, #65535
+	cmp	r1, r2
+	beq	.L3633
+	ldrsh	r2, [ip, #2]
+	cmp	r2, #0
+	bge	.L3633
 	bl	pm_flush_id
-	b	.L3708
-.L3721:
+.L3633:
+	mov	r1, r5
+	mov	r0, fp
+	strb	r5, [r8, #-12]
+	bl	load_l2p_region
+	b	.L3629
+.L3642:
 	.align	2
-.L3720:
-	.word	.LANCHOR0
-	.word	.LANCHOR3-2528
-	.word	.LC245
+.L3641:
 	.word	.LANCHOR3
+	.word	.LANCHOR0
+	.word	.LC244
+	.word	.LANCHOR3-2532
 	.fnend
 	.size	pm_log2phys, .-pm_log2phys
 	.align	2
 	.global	gc_recovery
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_recovery, %function
 gc_recovery:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 32
+	@ args = 0, pretend = 0, frame = 40
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	movw	r3, #65535
-	ldr	r7, .L3822
-	mov	r6, #0
-	ldr	r8, .L3822+4
-	.pad #68
-	sub	sp, sp, #68
-	ldr	r5, [r7, #1092]
-	strb	r6, [r8, #-3115]
-	strb	r6, [r8, #-182]
-	ldrh	r4, [r5, #80]
-	cmp	r4, r3
-	beq	.L3723
+	ldr	r8, .L3744
+	mov	r5, #0
+	.pad #76
+	sub	sp, sp, #76
+	ldr	r7, .L3744+4
+	ldr	r4, [r8, #1096]
+	strb	r5, [r7, #-3119]
+	ldrh	r2, [r4, #80]
+	strb	r5, [r7, #-144]
+	cmp	r2, r3
+	beq	.L3644
 	mvn	r3, #0
 	mov	r0, #1
-	strh	r3, [r5, #130]	@ movhi
+	strh	r3, [r4, #130]	@ movhi
 	bl	buf_alloc
-	ldrb	r3, [r5, #89]	@ zero_extendqisi2
-	add	r3, r5, r3, asl #1
-	ldrh	r1, [r3, #94]
-	sub	r3, r8, #3056
-	ldrh	r3, [r3, #-10]
-	mul	r1, r3, r1
-	ldrb	r3, [r8, #-3124]	@ zero_extendqisi2
-	cmp	r3, #2
-	mov	r4, r0
-	str	r1, [sp, #56]
-	beq	.L3724
-	ldrb	r2, [r7, #1196]	@ zero_extendqisi2
-	cmp	r2, r6
-	bne	.L3724
-	ldrb	r2, [r7, #1197]	@ zero_extendqisi2
-	cmp	r2, r6
-	beq	.L3725
-.L3724:
-	ldr	r2, .L3822+8
-	ldrh	r2, [r2, #-10]
-	sub	r2, r2, #1
-	add	r2, r2, r1
-	orr	r3, r2, r3, asl #24
-	b	.L3814
-.L3725:
-	cmp	r3, #3
-	bne	.L3726
-	sub	r3, r8, #3088
-	ldrh	r3, [r3, #-8]
-	sub	r3, r3, #1
-	add	r3, r3, r1
-	orr	r3, r3, #50331648
-.L3814:
-	str	r3, [r4, #24]
-.L3726:
-	mov	r0, r4
-	mov	r1, #1
-	bl	sblk_read_page
-	ldr	r3, [r4, #36]
-	cmn	r3, #1
-	cmpne	r3, #512
-	beq	.L3727
-	ldr	r3, [r4, #12]
-	ldr	r6, .L3822+12
-	ldr	r3, [r3]
-	cmp	r3, r6
-	beq	.L3728
-.L3727:
-	mov	r0, r4
-	bl	zbuf_free
-	ldr	r3, [r4, #4]
-	ldr	r2, [r4, #12]
-	ldr	r0, .L3822+16
-	ldr	r1, [r3, #4]
-	str	r1, [sp]
-	ldr	r1, [r3, #8]
-	str	r1, [sp, #4]
-	ldr	r1, [r3, #12]
-	str	r1, [sp, #8]
-	ldr	r1, [r2]
-	str	r1, [sp, #12]
-	ldr	r1, [r2, #4]
-	str	r1, [sp, #16]
-	ldr	r1, [r2, #8]
-	str	r1, [sp, #20]
-	ldr	r2, [r2, #12]
-	str	r2, [sp, #24]
-	ldr	r1, [r4, #24]
-	ldr	r2, [r4, #36]
-	ldr	r3, [r3]
-	bl	printk
-	b	.L3818
-.L3728:
-	ldrb	r3, [r8, #545]	@ zero_extendqisi2
-	ldr	r10, .L3822+4
-	cmp	r3, #2
-	sub	r9, r10, #3104
-	bne	.L3730
-	ldrb	r3, [r10, #-3124]	@ zero_extendqisi2
-	cmp	r3, #3
-	bne	.L3730
-	ldrh	r2, [r9, #-10]
-	movw	r3, #542
-	ldrb	ip, [r10, #-3123]	@ zero_extendqisi2
-	ldrh	r3, [r10, r3]
-	mov	r2, r2, asl #2
-	ldr	r1, [r10, #-172]
-	smulbb	r2, ip, r2
-	mov	r0, r3, lsr #2
-	add	r0, r1, r0, asl #2
-	ldr	r1, [r4, #4]
-	rsb	r2, r3, r2
-	uxth	r2, r2
-	bl	ftl_memcpy
-	ldrb	r3, [r7, #1196]	@ zero_extendqisi2
-	cmp	r3, #0
-	bne	.L3731
-	ldr	r3, .L3822
-	ldrb	r3, [r3, #1197]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L3732
-.L3731:
-	ldr	r3, [r4, #24]
-	sub	r3, r3, #1
-	b	.L3733
-.L3732:
-	sub	r10, r10, #3088
-	ldr	r3, [sp, #56]
-	ldrh	r2, [r10, #-8]
+	ldrb	r3, [r4, #89]	@ zero_extendqisi2
+	mov	r6, r0
+	ldrb	r1, [r7, #-3128]	@ zero_extendqisi2
+	add	r3, r4, r3, lsl #1
+	cmp	r1, #2
+	ldrh	r2, [r3, #94]
+	sub	r3, r7, #3072
+	ldrh	r3, [r3, #-2]
+	mul	r2, r3, r2
+	str	r2, [sp, #64]
+	beq	.L3645
+	ldrb	r3, [r8, #1158]	@ zero_extendqisi2
+	cmp	r3, r5
+	bne	.L3645
+	ldrb	r3, [r8, #1159]	@ zero_extendqisi2
+	cmp	r3, r5
+	beq	.L3646
+.L3645:
+	ldr	r3, .L3744+8
+	ldrh	r3, [r3, #-14]
 	sub	r3, r3, #1
 	add	r3, r3, r2
-	orr	r3, r3, #33554432
-.L3733:
-	str	r3, [r4, #24]
-	mov	r0, r4
+	orr	r3, r3, r1, lsl #24
+.L3734:
+	str	r3, [r6, #24]
+.L3647:
 	mov	r1, #1
+	mov	r0, r6
 	bl	sblk_read_page
-	ldr	r3, [r4, #36]
+	ldr	r3, [r6, #36]
 	cmn	r3, #1
 	cmpne	r3, #512
-	beq	.L3734
-	ldr	r3, [r4, #12]
+	beq	.L3648
+	ldr	r3, [r6, #12]
+	ldr	r9, .L3744+12
 	ldr	r3, [r3]
-	cmp	r3, r6
-	beq	.L3735
-.L3734:
-	mov	r0, r4
+	cmp	r3, r9
+	beq	.L3649
+.L3648:
+	mov	r0, r6
 	bl	zbuf_free
-.L3818:
-	ldrh	r4, [r5, #80]
-	mov	r6, #0
-	ldr	r3, [r7, #1088]
-	mov	r4, r4, asl #1
-	strh	r6, [r3, r4]	@ movhi
-	ldrh	r2, [r5, #80]
-	ldr	r3, [r7, #1092]
-	strh	r2, [r3, #130]	@ movhi
-	b	.L3729
-.L3735:
-	movw	r3, #542
-	ldr	r0, [r8, #-172]
-	ldr	r1, [r4, #4]
-	ldrh	r2, [r8, r3]
-	b	.L3815
-.L3730:
-	ldrh	r2, [r9, #-10]
-	ldrb	r3, [r8, #-3123]	@ zero_extendqisi2
-	ldr	r0, [r8, #-172]
-	ldr	r1, [r4, #4]
-	mul	r2, r3, r2
-	mov	r2, r2, asl #2
-.L3815:
-	bl	ftl_memcpy
-	ldrb	r3, [r8, #-3123]	@ zero_extendqisi2
-	ldrh	r2, [r9, #-10]
-	ldr	r10, .L3822+4
-	mul	r2, r3, r2
-	ldrb	r3, [r7, #2772]	@ zero_extendqisi2
-	sub	r6, r10, #3104
-	cmp	r3, r2, asr #6
-	mov	r2, r2, asl #2
-	bge	.L3737
-	ldr	r0, [r10, #-168]
-	mov	r1, #0
-	bl	ftl_memset
-	ldrb	r9, [r10, #545]	@ zero_extendqisi2
-	cmp	r9, #1
-	movne	r9, #1
-	movne	r6, #0
-	bne	.L3738
-	ldrh	r1, [r6, #-10]
-	movw	r2, #542
-	ldrb	r3, [r10, #-3123]	@ zero_extendqisi2
-	ldrh	r6, [r10, r2]
-	ldr	r0, [r10, #-168]
-	mul	r3, r3, r1
-	ldr	r1, [r4, #4]
-	sub	r6, r6, r3, asl #2
-	add	r1, r1, r3, asl #2
-	mov	r2, r6
-	bl	ftl_memcpy
-	b	.L3738
-.L3737:
-	ldr	r1, [r4, #4]
-	mov	r9, #0
-	ldr	r0, [r10, #-168]
-	mov	r6, r9
-	add	r1, r1, r2
-	bl	ftl_memcpy
-.L3738:
-	ldr	r3, .L3822+4
-	sub	r2, r3, #3088
-	ldrh	r2, [r2, #-8]
-	str	r2, [sp, #36]
-	ldrb	r2, [r8, #-3124]	@ zero_extendqisi2
-	cmp	r2, #2
-	str	r2, [sp, #32]
-	bne	.L3739
-	ldrb	r3, [r3, #-3122]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L3740
-.L3739:
-	ldrb	r3, [r7, #1196]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L3741
-.L3740:
-	ldr	r3, [sp, #32]
-	ldr	r2, [sp, #36]
-	mul	r3, r3, r2
-	str	r3, [sp, #36]
-	mov	r3, #1
-	str	r3, [sp, #32]
-.L3741:
-	ldr	r10, .L3822+4
-	mov	r7, #0
-	str	r7, [sp, #40]
-.L3742:
-	ldr	r3, [sp, #36]
-	cmp	r7, r3
-	bcs	.L3755
-	add	ip, r5, #96
-	add	r3, r7, r7, asl #1
-	sub	r3, r3, #1
-	str	r3, [sp, #48]
-	mov	r3, #0
-	str	r3, [sp, #44]
-.L3756:
-	ldrb	r3, [r5, #89]	@ zero_extendqisi2
-	ldr	r2, [sp, #44]
-	cmp	r2, r3
-	bge	.L3752
-	ldr	r3, [sp, #40]
-	mov	fp, #1
-	mov	r8, r3, asl #2
-.L3753:
-	ldr	r3, [sp, #32]
-	cmp	fp, r3
-	bhi	.L3820
-	ldr	r3, .L3822+20
-	ldrh	r2, [ip]
-	ldrb	r1, [r10, #-3124]	@ zero_extendqisi2
-	ldrh	r3, [r3]
-	cmp	r1, #2
-	mul	r3, r3, r2
-	str	r3, [sp, #56]
-	beq	.L3743
-	ldr	r2, .L3822
-	ldrb	r2, [r2, #1196]	@ zero_extendqisi2
-	cmp	r2, #0
-	beq	.L3744
-.L3743:
-	sub	r2, r7, #1
-	add	r3, r2, r3
-	add	r3, r3, fp
-	orr	r3, r3, r1, asl #24
-	b	.L3816
-.L3744:
-	cmp	r1, #3
-	addne	r3, r3, r7
-	bne	.L3816
-	ldr	r2, .L3822
-	ldrb	r2, [r2, #1197]	@ zero_extendqisi2
-	cmp	r2, #0
-	addeq	r3, r3, r7
-	ldrne	r2, [sp, #48]
-	orreq	r3, r3, fp, asl #24
-	addne	r3, r3, r2
-	addne	r3, r3, fp
-	orrne	r3, r3, #50331648
-.L3816:
-	str	r3, [r4, #24]
-	mov	r0, r4
-	mov	r1, #1
-	str	ip, [sp, #52]
-	bl	sblk_read_page
-	cmp	r9, #0
-	ldr	ip, [sp, #52]
-	beq	.L3748
-	ldr	r3, [r10, #-168]
-	ldr	r2, [r3, r8]
-	cmp	r2, #0
-	ldreq	r2, [r4, #12]
-	ldreq	r2, [r2, #8]
-	streq	r2, [r3, r8]
-.L3748:
-	ldr	r3, [r10, #-172]
-	ldr	r2, [r4, #12]
-	ldr	r3, [r3, r8]
-	ldr	r1, [r2, #4]
-	cmp	r3, r1
-	bne	.L3749
-	ldr	r0, [r10, #-168]
-	ldr	lr, [r0, r8]
-	ldr	r0, [r2, #8]
-	cmp	lr, r0
-	beq	.L3779
-.L3749:
-	ldr	r0, [r10, #-168]
-	str	ip, [sp, #52]
-	ldr	r0, [r0, r8]
-	str	r0, [sp]
-	ldr	r0, [r2]
-	stmib	sp, {r0, r1}
+	ldr	r2, [r6, #12]
+	ldr	r3, [r6, #4]
+	ldr	r0, .L3744+16
+	ldr	r1, [r2, #12]
+	str	r1, [sp, #24]
 	ldr	r1, [r2, #8]
-	ldr	r0, .L3822+24
-	str	r1, [sp, #12]
-	ldr	r2, [r2, #12]
-	str	r2, [sp, #16]
-	ldr	r1, [r4, #24]
-	ldr	r2, [r4, #36]
+	str	r1, [sp, #20]
+	ldr	r1, [r2, #4]
+	str	r1, [sp, #16]
+	ldr	r2, [r2]
+	str	r2, [sp, #12]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	ldr	r2, [r3, #8]
+	str	r2, [sp, #4]
+	ldr	r2, [r3, #4]
+	str	r2, [sp]
+	ldr	r3, [r3]
+	ldr	r2, [r6, #36]
+	ldr	r1, [r6, #24]
 	bl	printk
-	ldr	r3, [r10, #-172]
-	ldr	r3, [r3, r8]
-	cmn	r3, #1
-	ldr	ip, [sp, #52]
-	beq	.L3779
-	mov	r0, r4
-	bl	zbuf_free
-	ldr	r2, .L3822
-	ldrh	r3, [r5, #80]
-	mov	r0, #0
-	ldr	r1, [r2, #1088]
-	mov	r3, r3, asl #1
-	strh	r0, [r1, r3]	@ movhi
-	ldrh	r1, [r5, #80]
-	ldr	r3, [r2, #1092]
-	strh	r1, [r3, #130]	@ movhi
-	b	.L3729
-.L3779:
-	ldr	r3, [sp, #40]
-	add	fp, fp, #1
-	add	r8, r8, #4
-	add	r3, r3, #1
-	str	r3, [sp, #40]
-	b	.L3753
-.L3820:
-	ldr	r3, [sp, #44]
-	add	ip, ip, #2
-	add	r3, r3, #1
-	str	r3, [sp, #44]
-	b	.L3756
-.L3752:
-	ldrb	r3, [r10, #-3122]	@ zero_extendqisi2
-	cmp	r3, #0
-	addne	r7, r7, #1
-	add	r7, r7, #1
-	b	.L3742
-.L3755:
-	mov	r0, r4
-	mov	r6, #0
-	bl	zbuf_free
-	ldr	ip, .L3822+8
-	ldrb	r8, [r5, #89]	@ zero_extendqisi2
-	mov	r7, r6
-	ldr	r3, .L3822
-	add	r10, ip, #3104
-	ldrh	r9, [ip, #-10]
-	ldrh	r4, [r5, #80]
-	ldr	r3, [r3, #1088]
-	smulbb	r8, r8, r9
-	mov	r4, r4, asl #1
-	mov	r9, r6
-	strh	r8, [r3, r4]	@ movhi
-.L3757:
-	ldr	r3, [sp, #36]
-	cmp	r9, r3
-	bcs	.L3771
-	add	r2, r9, r9, asl #1
-	sub	r3, r2, #1
-	str	r3, [sp, #48]
-	add	r3, r5, #96
-	str	r3, [sp, #44]
-	mov	r3, #0
-	str	r3, [sp, #40]
-.L3772:
-	ldrb	r2, [r5, #89]	@ zero_extendqisi2
-	ldr	r3, [sp, #40]
-	cmp	r3, r2
-	bge	.L3768
-	mov	r4, #1
-.L3769:
-	ldr	r3, [sp, #32]
-	cmp	r4, r3
-	bhi	.L3821
-	ldr	r2, [r10, #-172]
-	ldr	r8, [r2, r7, asl #2]
-	cmn	r8, #1
-	beq	.L3758
-	ldr	r2, [r10, #-168]
-	mov	r0, r8
-	ldr	fp, [r2, r7, asl #2]
-	bl	lpa_hash_get_ppa
-	cmn	r0, #1
-	str	r0, [sp, #60]
-	bne	.L3759
-	mov	r0, r8
-	add	r1, sp, #60
-	mov	r2, #0
-	bl	pm_log2phys
-.L3759:
-	ldr	r3, [sp, #44]
-	ldrh	r2, [r3]
-	ldr	r3, .L3822+20
-	ldrh	r1, [r3]
-	ldr	r3, .L3822+4
-	mul	r2, r1, r2
-	ldrb	r1, [r3, #-3124]	@ zero_extendqisi2
-	cmp	r1, #2
-	beq	.L3760
-	ldr	r0, .L3822
-	ldrb	lr, [r0, #1196]	@ zero_extendqisi2
-	cmp	lr, #0
-	beq	.L3761
-.L3760:
-	sub	r0, r9, #1
-	add	r2, r0, r2
-	add	r2, r2, r4
-	orr	r2, r2, r1, asl #24
-	b	.L3817
-.L3761:
-	cmp	r1, #3
-	addne	r2, r2, r9
-	bne	.L3817
-	ldrb	r1, [r0, #1197]	@ zero_extendqisi2
-	cmp	r1, #0
-	mov	r1, r4, asl #24
-	addeq	r2, r2, r9
-	ldrne	r3, [sp, #48]
-	addne	r2, r2, r3
-	addne	r2, r2, r4
-	orr	r2, r1, r2
-.L3817:
-	str	r2, [sp, #56]
-	ldr	r2, .L3822+28
-	ldrh	r0, [r2]
-	ldr	r2, .L3822
-	ldrb	r1, [r2, #1189]	@ zero_extendqisi2
-	mov	r2, #1
-	str	r2, [sp, #52]
-	rsb	r1, r1, #24
-	rsb	r1, r0, r1
-	mov	r1, r2, asl r1
-	sub	r1, r1, #1
-	and	r0, r1, fp, lsr r0
-	ldrb	r1, [r10, #-3130]	@ zero_extendqisi2
-	bl	__aeabi_uidiv
-	ldr	r1, [sp, #60]
-	ldr	r2, [sp, #52]
-	cmp	r1, fp
-	uxth	fp, r0
-	bne	.L3765
-	mov	r0, r8
-	add	r1, sp, #56
-	bl	pm_log2phys
-	mov	r0, fp
-	add	r6, r6, #1
-	bl	ftl_vpn_decrement
-	b	.L3766
-.L3765:
-	ldr	r2, [sp, #56]
-	cmp	r1, r2
-	addeq	r6, r6, #1
-.L3766:
-	ldr	r1, .L3822
-	add	r7, r7, #1
-	ldr	r2, [r1, #1080]
-	add	r2, r2, fp, asl #2
-	ldrb	r2, [r2, #2]	@ zero_extendqisi2
-	ands	r2, r2, #224
-	bne	.L3758
-	ldr	r8, [r1, #1088]
-	mov	fp, fp, asl #1
-	ldrh	r1, [r8, fp]
-	cmp	r1, #0
-	strneh	r2, [r8, fp]	@ movhi
-.L3758:
-	add	r4, r4, #1
-	b	.L3769
-.L3821:
-	ldr	r3, [sp, #40]
-	add	r3, r3, #1
-	str	r3, [sp, #40]
-	ldr	r3, [sp, #44]
-	add	r3, r3, #2
-	str	r3, [sp, #44]
-	b	.L3772
-.L3768:
-	ldrb	r2, [r10, #-3122]	@ zero_extendqisi2
-	cmp	r2, #0
-	addne	r9, r9, #1
-	add	r9, r9, #1
-	b	.L3757
-.L3771:
-	ldr	r2, .L3822
-	ldrh	r3, [r5, #80]
-	ldr	r2, [r2, #1088]
-	mov	r3, r3, asl #1
-	strh	r6, [r2, r3]	@ movhi
-	ldrh	r0, [r5, #80]
-	bl	zftl_insert_data_list
-.L3729:
-	ldr	r4, .L3822
-	ldrh	r0, [r5, #80]
-	ldr	r2, [r4, #1088]
-	mov	r3, r0, asl #1
+.L3742:
+	ldrh	r3, [r4, #80]
+	mov	r5, #0
+	ldr	r2, [r8, #1092]
+	lsl	r3, r3, #1
+	strh	r5, [r2, r3]	@ movhi
+	ldrh	r2, [r4, #80]
+	ldr	r3, [r8, #1096]
+	strh	r2, [r3, #130]	@ movhi
+.L3650:
+	ldrh	r0, [r4, #80]
+	ldr	r6, .L3744
+	ldr	r2, [r6, #1092]
+	lsl	r3, r0, #1
 	ldrh	r3, [r2, r3]
 	cmp	r3, #0
-	bne	.L3773
+	bne	.L3694
 	bl	ftl_dump_write_open_sblk
-.L3773:
-	mov	r2, r6
-	ldrh	r1, [r5, #80]
-	ldr	r0, .L3822+32
+.L3694:
+	mov	r2, r5
+	ldrh	r1, [r4, #80]
+	ldr	r0, .L3744+20
 	bl	printk
 	mvn	r3, #0
-	strh	r3, [r5, #80]	@ movhi
+	strh	r3, [r4, #80]	@ movhi
 	bl	pm_flush
 	bl	ftl_ext_info_flush
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r6, #1096]
 	movw	r2, #65535
 	ldrh	r3, [r3, #130]
 	cmp	r3, r2
-	beq	.L3774
-	ldr	r1, .L3822
-	movw	r2, #1076
-	ldrh	r2, [r1, r2]
+	beq	.L3695
+	movw	r2, #1080
+	ldrh	r2, [r6, r2]
 	cmp	r2, r3
-	bhi	.L3775
-	ldr	r1, .L3822+36
+	bhi	.L3696
 	movw	r2, #517
-	ldr	r0, .L3822+40
+	ldr	r1, .L3744+24
+	ldr	r0, .L3744+28
 	bl	printk
 	bl	dump_stack
-.L3775:
-	ldr	r3, [r4, #1092]
+.L3696:
+	ldr	r3, [r6, #1096]
 	ldrh	r0, [r3, #130]
 	bl	ftl_free_sblk
-.L3774:
-	ldr	r2, [r4, #2804]
+.L3695:
+	ldr	r2, [r6, #2800]
 	mvn	r3, #0
 	mov	r0, #0
 	strh	r3, [r2, #126]	@ movhi
-	ldr	r2, [r4, #1092]
+	ldr	r2, [r6, #1096]
 	strh	r3, [r2, #130]	@ movhi
 	bl	ftl_info_flush
-	b	.L3722
-.L3723:
-	ldrh	r3, [r5, #130]
-	cmp	r3, r4
-	beq	.L3722
-	ldr	r2, [r7, #2804]
+.L3643:
+	add	sp, sp, #76
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3646:
+	cmp	r1, #3
+	bne	.L3647
+	sub	r3, r7, #3088
+	ldrh	r3, [r3, #-8]
+	sub	r3, r3, #1
+	add	r3, r3, r2
+	orr	r3, r3, #50331648
+	b	.L3734
+.L3649:
+	ldrb	r3, [r7, #-11]	@ zero_extendqisi2
+	ldr	r5, .L3744+8
+	cmp	r3, #2
+	bne	.L3651
+	ldrb	r3, [r7, #-3128]	@ zero_extendqisi2
+	cmp	r3, #3
+	bne	.L3651
+	ldrh	r2, [r5, #-14]
+	ldrh	r0, [r7, #-14]
+	ldr	r1, [r6, #4]
+	lsl	r3, r2, #2
+	ldrb	r2, [r7, #-3127]	@ zero_extendqisi2
+	smulbb	r2, r2, r3
+	ldr	r3, [r7, #-132]
+	sub	r2, r2, r0
+	lsr	r0, r0, #2
+	uxth	r2, r2
+	add	r0, r3, r0, lsl #2
+	bl	ftl_memcpy
+	ldrb	r3, [r8, #1158]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L3652
+	ldrb	r3, [r8, #1159]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L3653
+.L3652:
+	ldr	r3, [r6, #24]
+	sub	r3, r3, #1
+.L3735:
+	str	r3, [r6, #24]
+	mov	r1, #1
+	mov	r0, r6
+	bl	sblk_read_page
+	ldr	r3, [r6, #36]
+	cmn	r3, #1
+	cmpne	r3, #512
+	beq	.L3655
+	ldr	r3, [r6, #12]
+	ldr	r3, [r3]
+	cmp	r3, r9
+	beq	.L3656
+.L3655:
+	mov	r0, r6
+	bl	zbuf_free
+	b	.L3742
+.L3653:
+	ldr	r3, [sp, #64]
+	ldrh	r2, [r5, #8]
+	sub	r3, r3, #1
+	add	r3, r3, r2
+	orr	r3, r3, #33554432
+	b	.L3735
+.L3656:
+	ldrh	r2, [r7, #-14]
+.L3736:
+	ldr	r1, [r6, #4]
+	ldr	r0, [r7, #-132]
+	bl	ftl_memcpy
+	ldrh	r3, [r5, #-14]
+	ldrb	r2, [r7, #-3127]	@ zero_extendqisi2
+	mul	r2, r2, r3
+	ldrb	r3, [r7, #-2546]	@ zero_extendqisi2
+	cmp	r3, r2, asr #6
+	lsl	r2, r2, #2
+	bge	.L3658
+	mov	r1, #0
+	ldr	r0, [r7, #-128]
+	bl	ftl_memset
+	ldrb	r10, [r7, #-11]	@ zero_extendqisi2
+	cmp	r10, #1
+	movne	r10, #1
+	bne	.L3737
+	ldrh	r1, [r5, #-14]
+	ldrb	r3, [r7, #-3127]	@ zero_extendqisi2
+	ldrh	r5, [r7, #-14]
+	ldr	r0, [r7, #-128]
+	mul	r3, r3, r1
+	ldr	r1, [r6, #4]
+	lsl	r3, r3, #2
+	sub	r5, r5, r3
+	add	r1, r1, r3
+	mov	r2, r5
+	bl	ftl_memcpy
+.L3659:
+	ldr	r3, .L3744+32
+	ldrh	r3, [r3, #-8]
+	str	r3, [sp, #44]
+	ldrb	r3, [r7, #-3128]	@ zero_extendqisi2
+	cmp	r3, #2
+	str	r3, [sp, #36]
+	bne	.L3660
+	ldrb	r3, [r7, #-3126]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L3661
+.L3660:
+	ldrb	r3, [r8, #1158]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L3662
+.L3661:
+	ldr	r3, [sp, #36]
+	ldr	r2, [sp, #44]
+	mul	r3, r3, r2
+	str	r3, [sp, #44]
+	mov	r3, #1
+	str	r3, [sp, #36]
+.L3662:
+	ldr	r8, .L3744+4
+	mov	r7, #0
+	str	r7, [sp, #48]
+.L3663:
+	ldr	r3, [sp, #44]
+	cmp	r3, r7
+	bls	.L3676
+	add	r3, r7, r7, lsl #1
+	sub	r3, r3, #1
+	str	r3, [sp, #52]
+	mov	r3, #0
+	b	.L3739
+.L3651:
+	ldrh	r3, [r5, #-14]
+	ldrb	r2, [r7, #-3127]	@ zero_extendqisi2
+	mul	r2, r2, r3
+	lsl	r2, r2, #2
+	b	.L3736
+.L3658:
+	ldr	r1, [r6, #4]
+	mov	r10, #0
+	ldr	r0, [r7, #-128]
+	add	r1, r1, r2
+	bl	ftl_memcpy
+.L3737:
+	mov	r5, #0
+	b	.L3659
+.L3672:
+	ldr	r3, [sp, #56]
+	ldrb	r1, [r8, #-3128]	@ zero_extendqisi2
+	ldrh	r2, [r3, #96]
+	ldr	r3, .L3744+36
+	cmp	r1, #2
+	ldrh	r3, [r3, #-2]
+	mul	r3, r3, r2
+	str	r3, [sp, #64]
+	beq	.L3664
+	ldr	r2, .L3744
+	ldrb	r2, [r2, #1158]	@ zero_extendqisi2
+	cmp	r2, #0
+	beq	.L3665
+.L3664:
+	sub	r2, r7, #1
+	add	r3, r2, r3
+	add	r3, r3, fp
+	orr	r3, r3, r1, lsl #24
+.L3738:
+	str	r3, [r6, #24]
+	mov	r1, #1
+	mov	r0, r6
+	bl	sblk_read_page
+	cmp	r10, #0
+	beq	.L3669
+	ldr	r3, [r8, #-128]
+	ldr	r2, [r3, r9]
+	cmp	r2, #0
+	ldreq	r2, [r6, #12]
+	ldreq	r2, [r2, #8]
+	streq	r2, [r3, r9]
+.L3669:
+	ldr	r3, [r8, #-132]
+	ldr	r2, [r6, #12]
+	ldr	r3, [r3, r9]
+	ldr	r1, [r2, #4]
+	cmp	r3, r1
+	bne	.L3670
+	ldr	r0, [r8, #-128]
+	ldr	ip, [r0, r9]
+	ldr	r0, [r2, #8]
+	cmp	ip, r0
+	beq	.L3671
+.L3670:
+	ldr	r0, [r2, #12]
+	str	r0, [sp, #16]
+	ldr	r0, [r2, #8]
+	str	r1, [sp, #8]
+	str	r0, [sp, #12]
+	ldr	r2, [r2]
+	ldr	r0, .L3744+40
+	str	r2, [sp, #4]
+	ldr	r2, [r8, #-128]
+	ldr	r2, [r2, r9]
+	str	r2, [sp]
+	ldr	r2, [r6, #36]
+	ldr	r1, [r6, #24]
+	bl	printk
+	ldr	r3, [r8, #-132]
+	ldr	r3, [r3, r9]
+	cmn	r3, #1
+	beq	.L3671
+	mov	r0, r6
+	bl	zbuf_free
+	ldrh	r3, [r4, #80]
+	mov	r0, #0
+	ldr	r2, .L3744
+	ldr	r1, [r2, #1092]
+	lsl	r3, r3, #1
+	strh	r0, [r1, r3]	@ movhi
+	ldrh	r1, [r4, #80]
+	ldr	r3, [r2, #1096]
+	strh	r1, [r3, #130]	@ movhi
+	b	.L3650
+.L3665:
+	cmp	r1, #3
+	addne	r3, r7, r3
+	bne	.L3738
+	ldr	r2, .L3744
+	ldrb	r2, [r2, #1159]	@ zero_extendqisi2
+	cmp	r2, #0
+	ldrne	r2, [sp, #52]
+	addeq	r3, r7, r3
+	orreq	r3, r3, fp, lsl #24
+	addne	r3, r3, r2
+	addne	r3, r3, fp
+	orrne	r3, r3, #50331648
+	b	.L3738
+.L3671:
+	ldr	r3, [sp, #48]
+	add	fp, fp, #1
+	add	r9, r9, #4
+	add	r3, r3, #1
+	str	r3, [sp, #48]
+.L3674:
+	ldr	r3, [sp, #36]
+	cmp	r3, fp
+	bcs	.L3672
+	ldr	r3, [sp, #40]
+	add	r3, r3, #1
+.L3739:
+	str	r3, [sp, #40]
+	ldr	r2, [sp, #40]
+	ldrb	r3, [r4, #89]	@ zero_extendqisi2
+	cmp	r2, r3
+	bge	.L3673
+	ldr	r3, [sp, #48]
+	mov	fp, #1
+	lsl	r9, r3, #2
+	add	r3, r4, r2, lsl #1
+	str	r3, [sp, #56]
+	b	.L3674
+.L3673:
+	ldrb	r3, [r8, #-3126]	@ zero_extendqisi2
+	cmp	r3, #0
+	addne	r7, r7, #1
+	add	r7, r7, #1
+	b	.L3663
+.L3676:
+	mov	r0, r6
+	mov	r5, #0
+	bl	zbuf_free
+	ldr	r3, .L3744
+	mov	r6, r5
+	ldrb	r1, [r4, #89]	@ zero_extendqisi2
+	mov	r10, r5
+	ldrh	r2, [r4, #80]
+	ldr	r0, [r3, #1092]
+	ldr	r3, .L3744+8
+	lsl	r2, r2, #1
+	ldrh	ip, [r3, #-14]
+	add	r9, r3, #3104
+	smulbb	r1, r1, ip
+	strh	r1, [r0, r2]	@ movhi
+.L3678:
+	ldr	r3, [sp, #44]
+	cmp	r3, r6
+	bls	.L3692
+	add	r2, r6, r6, lsl #1
+	sub	r3, r2, #1
+	str	r3, [sp, #52]
+	mov	r3, #0
+	b	.L3741
+.L3688:
+	ldr	r2, [r9, #-132]
+	ldr	fp, [r2, r10, lsl #2]
+	cmn	fp, #1
+	beq	.L3679
+	ldr	r2, [r9, #-128]
+	mov	r0, fp
+	ldr	r3, [r2, r10, lsl #2]
+	str	r3, [sp, #48]
+	bl	lpa_hash_get_ppa
+	cmn	r0, #1
+	str	r0, [sp, #68]
+	bne	.L3680
+	mov	r2, #0
+	add	r1, sp, #68
+	mov	r0, fp
+	bl	pm_log2phys
+.L3680:
+	ldr	r3, [sp, #56]
+	ldr	r1, .L3744+44
+	ldrb	r0, [r9, #-3128]	@ zero_extendqisi2
+	ldrh	r2, [r3, #96]
+	ldrh	r1, [r1]
+	cmp	r0, #2
+	mul	r2, r1, r2
+	beq	.L3681
+	ldr	r1, .L3744
+	ldrb	ip, [r1, #1158]	@ zero_extendqisi2
+	cmp	ip, #0
+	beq	.L3682
+.L3681:
+	sub	r1, r6, #1
+	add	r2, r1, r2
+	add	r2, r2, r8
+	orr	r2, r2, r0, lsl #24
+.L3740:
+	str	r2, [sp, #64]
+	ldr	r2, .L3744+48
+	ldr	r3, [sp, #48]
+	ldrb	r1, [r9, #-3136]	@ zero_extendqisi2
+	ldrh	ip, [r2, #-2]
+	ldr	r2, .L3744
+	ldrb	r0, [r2, #1153]	@ zero_extendqisi2
+	mov	r2, #1
+	str	r2, [sp, #60]
+	rsb	r0, r0, #24
+	sub	r0, r0, ip
+	lsl	r0, r2, r0
+	sub	r0, r0, #1
+	and	r0, r0, r3, lsr ip
+	bl	__aeabi_uidiv
+	ldr	r1, [sp, #68]
+	mov	r7, r0
+	ldr	r3, [sp, #48]
+	ldr	r2, [sp, #60]
+	cmp	r3, r1
+	bne	.L3686
+	add	r1, sp, #64
+	mov	r0, fp
+	bl	pm_log2phys
+	uxth	r0, r7
+	add	r5, r5, #1
+	bl	ftl_vpn_decrement
+.L3687:
+	ldr	r1, .L3744
+	uxth	r7, r7
+	add	r10, r10, #1
+	ldr	r2, [r1, #1084]
+	add	r2, r2, r7, lsl #2
+	ldrb	r2, [r2, #2]	@ zero_extendqisi2
+	ands	r0, r2, #224
+	bne	.L3679
+	ldr	r2, [r1, #1092]
+	lsl	r7, r7, #1
+	ldrh	r1, [r2, r7]
+	cmp	r1, #0
+	strhne	r0, [r2, r7]	@ movhi
+.L3679:
+	add	r8, r8, #1
+.L3690:
+	ldr	r3, [sp, #36]
+	cmp	r3, r8
+	bcs	.L3688
+	ldr	r3, [sp, #40]
+	add	r3, r3, #1
+.L3741:
+	str	r3, [sp, #40]
+	ldrb	r2, [r4, #89]	@ zero_extendqisi2
+	ldr	r3, [sp, #40]
+	cmp	r3, r2
+	bge	.L3689
+	add	r3, r4, r3, lsl #1
+	mov	r8, #1
+	str	r3, [sp, #56]
+	b	.L3690
+.L3682:
+	cmp	r0, #3
+	addne	r2, r6, r2
+	bne	.L3740
+	ldrb	r1, [r1, #1159]	@ zero_extendqisi2
+	cmp	r1, #0
+	lsl	r1, r8, #24
+	ldrne	r3, [sp, #52]
+	addeq	r2, r6, r2
+	addne	r2, r2, r3
+	addne	r2, r2, r8
+	orr	r2, r2, r1
+	b	.L3740
+.L3686:
+	ldr	r2, [sp, #64]
+	cmp	r1, r2
+	addeq	r5, r5, #1
+	b	.L3687
+.L3689:
+	ldrb	r2, [r9, #-3126]	@ zero_extendqisi2
+	cmp	r2, #0
+	addne	r6, r6, #1
+	add	r6, r6, #1
+	b	.L3678
+.L3692:
+	ldrh	r3, [r4, #80]
+	ldr	r2, .L3744
+	ldr	r2, [r2, #1092]
+	lsl	r3, r3, #1
+	strh	r5, [r2, r3]	@ movhi
+	ldrh	r0, [r4, #80]
+	bl	zftl_insert_data_list
+	b	.L3650
+.L3644:
+	ldrh	r3, [r4, #130]
+	cmp	r3, r2
+	beq	.L3643
+	ldr	r2, [r8, #2800]
 	ldrh	r2, [r2, #126]
 	cmp	r2, r3
-	bne	.L3777
+	bne	.L3698
 	bl	pm_flush
-	ldr	r3, [r7, #1092]
+	ldr	r3, [r8, #1096]
 	ldrh	r0, [r3, #130]
 	bl	ftl_free_sblk
-	ldr	r3, [r7, #2804]
+	ldr	r3, [r8, #2800]
 	mvn	r2, #0
-	mov	r0, r6
+	mov	r0, r5
 	strh	r2, [r3, #126]	@ movhi
 	bl	ftl_info_flush
-.L3777:
-	ldr	r3, [r7, #1092]
+.L3698:
+	ldr	r3, [r8, #1096]
 	mvn	r2, #0
 	strh	r2, [r3, #130]	@ movhi
-.L3722:
-	add	sp, sp, #68
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3823:
+	b	.L3643
+.L3745:
 	.align	2
-.L3822:
+.L3744:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
 	.word	.LANCHOR3-3104
 	.word	-178307901
-	.word	.LC246
-	.word	.LANCHOR3-3066
+	.word	.LC245
 	.word	.LC247
-	.word	.LANCHOR3-3132
-	.word	.LC248
-	.word	.LANCHOR1+2576
+	.word	.LANCHOR1+2361
 	.word	.LC0
+	.word	.LANCHOR3-3088
+	.word	.LANCHOR3-3072
+	.word	.LC246
+	.word	.LANCHOR3-3074
+	.word	.LANCHOR3-3136
 	.fnend
 	.size	gc_recovery, .-gc_recovery
 	.align	2
 	.global	gc_update_l2p_map_new
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_update_l2p_map_new, %function
 gc_update_l2p_map_new:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #28
 	sub	sp, sp, #28
-	ldr	r4, .L3860
-	ldr	r3, .L3860+4
-	ldr	r9, .L3860+8
-	ldr	r5, [r4, #1092]
-	ldrh	r3, [r3, #-10]
+	ldr	r4, .L3781
+	ldr	r3, .L3781+4
+	ldr	r5, [r4, #1096]
+	ldrh	r3, [r3, #-14]
 	ldrb	r2, [r5, #89]	@ zero_extendqisi2
 	mul	r3, r2, r3
 	str	r3, [sp]
-	ldr	r3, [r9]
-	tst	r3, #256
-	beq	.L3825
-	ldr	r0, .L3860+12
-	ldrh	r1, [r5, #80]
-	bl	printk
-.L3825:
-	ldrh	r3, [r5, #80]
-	mov	r8, #0
-	ldr	r6, .L3860+16
-	mov	r7, r8
-	ldr	r1, [r4, #1088]
-	mov	r3, r3, asl #1
-	ldr	r0, [sp]
-	ldrb	r2, [r6, #545]	@ zero_extendqisi2
-	rsb	r2, r2, r0
-	strh	r2, [r1, r3]	@ movhi
-.L3826:
-	ldr	r3, [sp]
-	cmp	r7, r3
-	beq	.L3859
-	ldr	r3, [r6, #-172]
-	mov	r10, r7, asl #2
-	ldr	fp, [r3, r7, asl #2]
-	cmn	fp, #1
-	beq	.L3827
-	ldrb	r1, [r4, #2772]	@ zero_extendqisi2
-	mov	r0, fp
-	mov	r1, r1, asl #7
-	bl	__aeabi_uidiv
-	uxth	r3, r0
-	str	r3, [sp, #12]
-	ldr	r3, [r9]
-	tst	r3, #256
-	beq	.L3828
-	ldr	r0, .L3860+20
-	mov	r2, fp
-	ldr	r1, [sp, #12]
-	mov	r3, r7
-	bl	printk
-.L3828:
-	str	r7, [sp, #8]
-.L3834:
-	ldr	r3, [r6, #-172]
-	ldr	fp, [r3, r10]
-	cmn	fp, #1
-	beq	.L3829
-	ldrb	r1, [r4, #2772]	@ zero_extendqisi2
-	mov	r0, fp
-	mov	r1, r1, asl #7
-	bl	__aeabi_uidiv
-	ldr	r3, [sp, #12]
-	uxth	r0, r0
-	cmp	r0, r3
-	bne	.L3829
-	ldr	r3, [r6, #-168]
-	mov	r0, fp
-	ldr	r3, [r3, r10]
-	str	r3, [sp, #4]
-	bl	lpa_hash_get_ppa
-	cmn	r0, #1
-	str	r0, [sp, #20]
-	bne	.L3830
-	mov	r0, fp
-	add	r1, sp, #20
-	mov	r2, #0
-	bl	pm_log2phys
-.L3830:
-	ldr	r3, [sp, #20]
-	ldr	r2, [sp, #4]
-	cmp	r3, r2
-	bne	.L3831
-	ldr	r3, .L3860+16
-	add	r1, sp, #24
-	mov	r0, fp
-	mov	r2, #1
-	add	r8, r8, #1
-	ldr	r3, [r3, #-164]
-	ldr	r3, [r3, r10]
-	str	r3, [r1, #-8]!
-	bl	pm_log2phys
-	ldr	r3, .L3860+24
-	ldrh	r0, [r3]
-	ldrb	r3, [r4, #1189]	@ zero_extendqisi2
-	rsb	r3, r3, #24
-	rsb	r3, r0, r3
-	ldr	r2, [sp, #4]
-	mov	fp, r2, lsr r0
-	mvn	r0, #0
-	bic	r0, fp, r0, asl r3
-	ldr	r3, .L3860+16
-	ldrb	r1, [r3, #-3130]	@ zero_extendqisi2
-	bl	__aeabi_uidiv
-	uxth	r0, r0
-	b	.L3858
-.L3831:
-	ldr	r2, [r9]
+	ldr	r3, .L3781+8
+	ldr	r2, [r3]
+	mov	fp, r3
 	tst	r2, #256
-	beq	.L3833
-	ldr	r0, .L3860+28
-	mov	r1, fp
-	ldr	r2, [sp, #4]
+	beq	.L3747
+	ldrh	r1, [r5, #80]
+	ldr	r0, .L3781+12
 	bl	printk
-.L3833:
-	ldrh	r0, [r5, #80]
-.L3858:
-	bl	ftl_vpn_decrement
-	ldr	r3, [r6, #-172]
-	mvn	r2, #0
-	str	r2, [r3, r10]
-.L3829:
-	ldr	r3, [sp, #8]
-	add	r10, r10, #4
-	ldr	r2, [sp]
-	add	r3, r3, #1
-	str	r3, [sp, #8]
-	cmp	r3, r2
-	bne	.L3834
-.L3827:
-	add	r7, r7, #1
-	b	.L3826
-.L3859:
-	ldr	r3, [r9]
-	tst	r3, #256
-	beq	.L3836
+.L3747:
+	ldr	r2, .L3781+16
+	mov	r7, #0
 	ldrh	r3, [r5, #80]
+	mov	r6, r7
+	ldr	r0, [sp]
+	ldrb	r2, [r2, #-11]	@ zero_extendqisi2
+	ldr	r8, .L3781+16
 	ldr	r1, [r4, #1092]
-	ldr	r2, [r4, #1088]
-	mov	r3, r3, asl #1
-	ldr	r0, .L3860+32
+	lsl	r3, r3, #1
+	sub	r2, r0, r2
+	strh	r2, [r1, r3]	@ movhi
+.L3748:
+	ldr	r3, [sp]
+	cmp	r6, r3
+	bne	.L3757
+	ldr	r3, [fp]
+	tst	r3, #256
+	beq	.L3758
+	ldrh	r2, [r5, #80]
+	mov	r3, r7
+	ldr	r0, [r4, #1092]
+	ldr	r1, [r4, #1096]
+	lsl	r2, r2, #1
 	ldrh	r1, [r1, #80]
-	ldrh	r2, [r2, r3]
-	mov	r3, r8
+	ldrh	r2, [r0, r2]
+	ldr	r0, .L3781+20
 	bl	printk
-.L3836:
+.L3758:
 	ldrh	r3, [r5, #80]
-	ldr	r2, [r4, #1088]
-	mov	r3, r3, asl #1
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
 	ldrh	r3, [r2, r3]
-	cmp	r3, r8
-	beq	.L3837
-	ldr	r1, .L3860+36
+	cmp	r7, r3
+	beq	.L3759
 	movw	r2, #898
-	ldr	r0, .L3860+40
+	ldr	r1, .L3781+24
+	ldr	r0, .L3781+28
 	bl	printk
 	bl	dump_stack
-.L3837:
+.L3759:
 	ldrh	r3, [r5, #80]
-	ldr	r2, [r4, #1088]
-	mov	r3, r3, asl #1
-	strh	r8, [r2, r3]	@ movhi
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
+	strh	r7, [r2, r3]	@ movhi
 	ldrh	r0, [r5, #80]
 	bl	zftl_insert_data_list
 	add	sp, sp, #28
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3861:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3757:
+	ldr	r3, [r8, #-132]
+	lsl	r9, r6, #2
+	ldr	r10, [r3, r6, lsl #2]
+	cmn	r10, #1
+	beq	.L3749
+	ldrb	r1, [r8, #-2546]	@ zero_extendqisi2
+	mov	r0, r10
+	lsl	r1, r1, #7
+	bl	__aeabi_uidiv
+	uxth	r3, r0
+	str	r3, [sp, #12]
+	ldr	r3, [fp]
+	tst	r3, #256
+	beq	.L3750
+	mov	r3, r6
+	mov	r2, r10
+	ldr	r1, [sp, #12]
+	ldr	r0, .L3781+32
+	bl	printk
+.L3750:
+	str	r6, [sp, #8]
+.L3756:
+	ldr	r3, [r8, #-132]
+	ldr	r10, [r3, r9]
+	cmn	r10, #1
+	beq	.L3751
+	ldrb	r1, [r8, #-2546]	@ zero_extendqisi2
+	mov	r0, r10
+	lsl	r1, r1, #7
+	bl	__aeabi_uidiv
+	ldr	r3, [sp, #12]
+	uxth	r0, r0
+	cmp	r3, r0
+	bne	.L3751
+	ldr	r3, [r8, #-128]
+	mov	r0, r10
+	ldr	r3, [r3, r9]
+	str	r3, [sp, #4]
+	bl	lpa_hash_get_ppa
+	cmn	r0, #1
+	str	r0, [sp, #20]
+	bne	.L3752
+	mov	r2, #0
+	add	r1, sp, #20
+	mov	r0, r10
+	bl	pm_log2phys
+.L3752:
+	ldr	r3, [sp, #20]
+	ldr	r2, [sp, #4]
+	cmp	r2, r3
+	bne	.L3753
+	ldr	r3, .L3781+16
+	add	r1, sp, #24
+	mov	r2, #1
+	mov	r0, r10
+	add	r7, r7, #1
+	ldr	r3, [r3, #-124]
+	ldr	r3, [r3, r9]
+	str	r3, [r1, #-8]!
+	bl	pm_log2phys
+	ldr	r3, .L3781+36
+	ldr	r2, [sp, #4]
+	ldrh	r0, [r3]
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
+	rsb	r3, r3, #24
+	sub	r3, r3, r0
+	lsr	r0, r2, r0
+	ldr	r2, .L3781+16
+	ldrb	r1, [r2, #-3136]	@ zero_extendqisi2
+	mvn	r2, #0
+	bic	r0, r0, r2, lsl r3
+	bl	__aeabi_uidiv
+	uxth	r0, r0
+.L3780:
+	bl	ftl_vpn_decrement
+	ldr	r3, [r8, #-132]
+	mvn	r2, #0
+	str	r2, [r3, r9]
+.L3751:
+	ldr	r3, [sp, #8]
+	add	r9, r9, #4
+	add	r3, r3, #1
+	str	r3, [sp, #8]
+	ldr	r2, [sp, #8]
+	ldr	r3, [sp]
+	cmp	r3, r2
+	bne	.L3756
+.L3749:
+	add	r6, r6, #1
+	b	.L3748
+.L3753:
+	ldr	r2, [fp]
+	tst	r2, #256
+	beq	.L3755
+	ldr	r2, [sp, #4]
+	mov	r1, r10
+	ldr	r0, .L3781+40
+	bl	printk
+.L3755:
+	ldrh	r0, [r5, #80]
+	b	.L3780
+.L3782:
 	.align	2
-.L3860:
+.L3781:
 	.word	.LANCHOR0
 	.word	.LANCHOR3-3104
 	.word	.LANCHOR2
-	.word	.LC249
+	.word	.LC248
 	.word	.LANCHOR3
-	.word	.LC250
-	.word	.LANCHOR3-3132
 	.word	.LC251
-	.word	.LC252
-	.word	.LANCHOR1+2588
+	.word	.LANCHOR1+2373
 	.word	.LC0
+	.word	.LC249
+	.word	.LANCHOR3-3138
+	.word	.LC250
 	.fnend
 	.size	gc_update_l2p_map_new, .-gc_update_l2p_map_new
 	.align	2
 	.global	gc_scan_src_blk_one_page
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_scan_src_blk_one_page, %function
 gc_scan_src_blk_one_page:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 16
+	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	.pad #8
 	mov	r1, #0
-	ldr	r6, .L3891
-	.pad #20
-	sub	sp, sp, #20
-	ldr	r4, .L3891+4
+	ldr	r5, .L3810
 	mov	lr, r1
-	ldr	r5, .L3891+8
 	movw	r0, #65535
-	ldrb	r3, [r6, #2832]	@ zero_extendqisi2
-	ldrb	ip, [r5, #-3123]	@ zero_extendqisi2
-	add	r2, r4, r3, asl #1
-	ldrh	r7, [r2, #36]
+	ldr	r4, .L3810+4
+	ldrb	r3, [r5, #2828]	@ zero_extendqisi2
+	ldr	r7, .L3810+8
+	add	r2, r4, r3, lsl #1
+	ldrb	ip, [r7, #-3127]	@ zero_extendqisi2
+	ldrh	r8, [r2, #36]
 	ldrh	r2, [r4, #2]
-.L3863:
-	cmp	r7, r0
-	bne	.L3889
+.L3784:
+	cmp	r8, r0
+	beq	.L3786
+	cmp	lr, #0
+	mov	r0, #1
+	strhne	r2, [r4, #2]	@ movhi
+	cmp	r1, #0
+	strbne	r3, [r5, #2828]
+	mov	r9, #1
+	bl	buf_alloc
+	mov	r6, r0
+.L3789:
+	ldrb	r1, [r5, #2830]	@ zero_extendqisi2
+	cmp	r9, r1
+	ble	.L3799
+	mov	r0, r6
+	bl	zbuf_free
+	ldrb	r3, [r5, #2828]	@ zero_extendqisi2
+	ldrb	r2, [r7, #-3127]	@ zero_extendqisi2
+	add	r3, r3, #1
+	uxtb	r3, r3
+	cmp	r2, r3
+	strb	r3, [r5, #2828]
+	ldrheq	r3, [r4, #2]
+	addeq	r3, r3, #1
+	strheq	r3, [r4, #2]	@ movhi
+	moveq	r3, #0
+	strbeq	r3, [r5, #2828]
+	add	sp, sp, #8
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L3786:
 	add	r3, r3, #1
 	uxtb	r3, r3
 	cmp	r3, ip
-	addeq	r2, r2, #1
 	moveq	r3, #0
-	moveq	lr, #1
-	add	r1, r4, r3, asl #1
+	addeq	r2, r2, #1
+	add	r1, r4, r3, lsl #1
 	uxtheq	r2, r2
-	ldrh	r7, [r1, #36]
+	ldrh	r8, [r1, #36]
+	moveq	lr, #1
 	mov	r1, #1
-	b	.L3863
-.L3889:
-	mov	r0, #1
-	cmp	lr, #0
-	strneh	r2, [r4, #2]	@ movhi
-	cmp	r1, #0
-	strneb	r3, [r6, #2832]
-	bl	buf_alloc
-	ldr	r8, .L3891
-	mov	r9, #1
-	ldr	r10, .L3891+12
-	mov	fp, r0
-.L3868:
-	ldrb	r3, [r6, #2834]	@ zero_extendqisi2
-	ldr	r2, .L3891
-	cmp	r9, r3
-	bgt	.L3890
-	ldrh	r2, [r10]
-	cmp	r3, #2
-	mul	r2, r2, r7
-	bne	.L3869
-	ldrh	r3, [r4, #2]
-	add	r3, r2, r3, asl #1
-	ldr	r2, .L3891+8
-	sub	r3, r3, #1
-	add	r3, r3, r9
-	ldrb	r2, [r2, #-3124]	@ zero_extendqisi2
-	b	.L3887
-.L3869:
-	cmp	r3, #3
-	ldrneh	r1, [r4, #2]
-	addne	r2, r2, r1
-	bne	.L3888
-	ldrb	r3, [r8, #1196]	@ zero_extendqisi2
+	b	.L3784
+.L3799:
+	ldr	r3, .L3810+12
+	cmp	r1, #2
+	ldrh	r3, [r3]
+	mul	r2, r8, r3
+	ldrheq	r3, [r4, #2]
+	addeq	r3, r2, r3, lsl #1
+	subeq	r3, r3, #1
+	beq	.L3809
+	cmp	r1, #3
+	ldrhne	r3, [r4, #2]
+	addne	r3, r3, r2
+	bne	.L3808
+	ldrb	r3, [r5, #1158]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L3872
-	ldrb	r3, [r8, #1197]	@ zero_extendqisi2
+	bne	.L3793
+	ldrb	r3, [r5, #1159]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L3873
-.L3872:
+	ldrheq	r3, [r4, #2]
+	addeq	r3, r3, r2
+	orreq	r3, r3, r9, lsl #24
+	beq	.L3808
+.L3793:
 	ldrh	r3, [r4, #2]
-	add	r3, r3, r3, asl #1
+	add	r3, r3, r3, lsl #1
 	sub	r3, r3, #1
 	add	r3, r3, r2
-	ldrb	r2, [r5, #-3124]	@ zero_extendqisi2
+.L3809:
+	ldrb	r2, [r7, #-3128]	@ zero_extendqisi2
 	add	r3, r3, r9
-.L3887:
-	orr	r3, r3, r2, asl #24
-	str	r3, [fp, #24]
-	b	.L3870
-.L3873:
-	ldrh	r1, [r4, #2]
-	add	r2, r2, r1
-	orr	r2, r2, r9, asl #24
-.L3888:
-	str	r2, [fp, #24]
-.L3870:
-	mov	r0, fp
+	orr	r3, r3, r2, lsl #24
+.L3808:
+	str	r3, [r6, #24]
 	mov	r1, #1
+	mov	r0, r6
 	bl	sblk_read_page
-	ldr	r3, [fp, #36]
+	ldr	r3, [r6, #36]
 	cmp	r3, #512
 	cmnne	r3, #1
-	beq	.L3875
-	ldr	r3, [fp, #12]
-	ldr	r3, [r3, #4]
-	mov	r0, r3
-	str	r3, [sp, #4]
+	beq	.L3796
+	ldr	r3, [r6, #12]
+	ldr	r10, [r3, #4]
+	mov	r0, r10
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
-	str	r0, [sp, #12]
-	ldr	r3, [sp, #4]
-	bne	.L3876
-	ldr	r2, [r6, #2784]
-	cmp	r3, r2
-	bcs	.L3876
-	mov	r0, r3
-	add	r1, sp, #12
+	str	r0, [sp, #4]
+	bne	.L3797
+	ldr	r3, [r5, #2780]
+	cmp	r10, r3
+	bcs	.L3797
 	mov	r2, #0
+	add	r1, sp, #4
+	mov	r0, r10
 	bl	pm_log2phys
-.L3876:
-	ldr	r3, [fp, #24]
-	ldr	r2, [sp, #12]
+.L3797:
+	ldr	r3, [r6, #24]
+	ldr	r2, [sp, #4]
 	cmp	r3, r2
-	ldreqh	r1, [r4, #20]
-	ldreq	r2, [r5, #-3128]
-	streq	r3, [r2, r1, asl #2]
-	ldreqh	r3, [r4, #20]
+	ldrheq	r1, [r4, #20]
+	ldreq	r2, [r7, #-3132]
+	streq	r3, [r2, r1, lsl #2]
+	ldrheq	r3, [r4, #20]
 	addeq	r3, r3, #1
-	streqh	r3, [r4, #20]	@ movhi
-.L3875:
+	strheq	r3, [r4, #20]	@ movhi
+.L3796:
 	ldrh	r3, [r4, #22]
 	add	r9, r9, #1
 	add	r3, r3, #1
 	strh	r3, [r4, #22]	@ movhi
-	b	.L3868
-.L3890:
-	mov	r0, fp
-	str	r2, [sp, #4]
-	bl	zbuf_free
-	ldrb	r1, [r5, #-3123]	@ zero_extendqisi2
-	ldr	r2, [sp, #4]
-	ldrb	r3, [r2, #2832]	@ zero_extendqisi2
-	add	r3, r3, #1
-	uxtb	r3, r3
-	strb	r3, [r2, #2832]
-	cmp	r1, r3
-	ldreqh	r3, [r4, #2]
-	addeq	r3, r3, #1
-	streqh	r3, [r4, #2]	@ movhi
-	moveq	r3, #0
-	streqb	r3, [r2, #2832]
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3892:
+	b	.L3789
+.L3811:
 	.align	2
-.L3891:
+.L3810:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2828
+	.word	.LANCHOR0+2824
 	.word	.LANCHOR3
-	.word	.LANCHOR3-3066
+	.word	.LANCHOR3-3074
 	.fnend
 	.size	gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page
 	.align	2
 	.global	gc_scan_src_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_scan_src_blk, %function
 gc_scan_src_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	movw	r3, #2828
-	ldr	r4, .L3945
+	movw	r3, #2824
+	ldr	r4, .L3867
 	.pad #28
 	sub	sp, sp, #28
 	ldrh	r2, [r4, r3]
 	movw	r3, #65535
 	cmp	r2, r3
-	bne	.L3894
-	ldr	r1, .L3945+4
+	bne	.L3813
 	movw	r2, #1505
-	ldr	r0, .L3945+8
+	ldr	r1, .L3867+4
+	ldr	r0, .L3867+8
 	bl	printk
 	bl	dump_stack
-.L3894:
-	movw	r3, #2828
+.L3813:
+	movw	r3, #2824
 	ldrh	r1, [r4, r3]
 	movw	r3, #65535
 	cmp	r1, r3
 	moveq	r0, #0
-	beq	.L3895
-	ldr	r3, .L3945+12
+	beq	.L3812
+	ldr	r3, .L3867+12
 	ldr	r3, [r3]
 	tst	r3, #256
-	beq	.L3896
-	ldr	r3, .L3945
-	ldr	r0, .L3945+16
-	ldr	r2, [r3, #1088]
-	mov	r3, r1, asl #1
+	beq	.L3815
+	ldr	r2, [r4, #1092]
+	lsl	r3, r1, #1
+	ldr	r0, .L3867+16
 	ldrh	r2, [r2, r3]
 	bl	printk
-.L3896:
-	ldr	r5, .L3945
-	movw	r7, #2828
+.L3815:
+	ldr	r7, .L3867+20
+	movw	r5, #2824
 	bl	timer_get_time
-	ldrh	r0, [r4, r7]
-	add	r1, r5, #2864
-	ldr	r6, .L3945+20
+	ldrh	r0, [r4, r5]
+	add	r1, r7, #36
 	bl	ftl_get_blk_list_in_sblk
 	uxtb	r0, r0
-	strb	r0, [r4, #2833]
 	cmp	r0, #0
+	strb	r0, [r4, #2829]
 	mvneq	r3, #0
-	streqh	r3, [r5, r7]	@ movhi
-	beq	.L3895
-	ldrh	r3, [r5, r7]
-	ldr	r2, [r5, #1080]
-	add	r2, r2, r3, asl #2
+	strheq	r3, [r4, r5]	@ movhi
+	beq	.L3812
+	ldrh	r3, [r4, r5]
+	ldr	r2, [r4, #1084]
+	add	r2, r2, r3, lsl #2
 	ldrb	r2, [r2, #2]	@ zero_extendqisi2
-	tst	r2, #192
-	and	r1, r2, #224
-	moveq	r2, #1
-	movne	r2, #0
-	cmp	r1, #224
-	orreq	r2, r2, #1
+	and	r2, r2, #224
+	cmp	r2, #32
+	beq	.L3817
 	cmp	r2, #0
-	bne	.L3898
-	ldr	r2, [r5, #1092]
-	ldrh	ip, [r2, #16]
-	cmp	ip, r3
-	beq	.L3898
-	ldrh	ip, [r2, #48]
-	cmp	ip, r3
-	beq	.L3898
+	cmpne	r2, #224
+	beq	.L3818
+	ldr	r2, [r4, #1096]
+	ldrh	r1, [r2, #16]
+	cmp	r1, r3
+	beq	.L3817
+	ldrh	r1, [r2, #48]
+	cmp	r1, r3
+	beq	.L3817
 	ldrh	r2, [r2, #80]
 	cmp	r2, r3
-	bne	.L3899
-.L3898:
-	cmp	r1, #0
-	bne	.L3900
-	ldr	r2, [r4, #1088]
-	mov	r3, r3, asl #1
-	ldrh	r3, [r2, r3]
-	cmp	r3, #0
-	beq	.L3901
-	ldr	r1, .L3945+4
-	movw	r2, #1530
-	ldr	r0, .L3945+8
-	bl	printk
-	bl	dump_stack
-.L3901:
-	movw	r3, #2828
-	ldr	r2, [r4, #1088]
-	ldrh	r3, [r4, r3]
-	mov	r1, #0
-	mov	r3, r3, asl #1
-	strh	r1, [r2, r3]	@ movhi
-.L3900:
-	movw	r3, #2828
+	bne	.L3860
+.L3817:
 	mvn	r2, #0
+	movw	r3, #2824
 	mov	r0, #0
 	strh	r2, [r4, r3]	@ movhi
-	strh	r0, [r6, #20]	@ movhi
-	b	.L3895
-.L3899:
-	add	r0, r6, r0, asl #1
+	strh	r0, [r7, #20]	@ movhi
+.L3812:
+	add	sp, sp, #28
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3818:
+	cmp	r2, #0
+	bne	.L3817
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
+	ldrh	r3, [r2, r3]
+	cmp	r3, #0
+	beq	.L3820
+	movw	r2, #1530
+	ldr	r1, .L3867+4
+	ldr	r0, .L3867+8
+	bl	printk
+	bl	dump_stack
+.L3820:
+	movw	r3, #2824
+	ldr	r2, [r4, #1092]
+	ldrh	r3, [r4, r3]
+	mov	r1, #0
+	lsl	r3, r3, #1
+	strh	r1, [r2, r3]	@ movhi
+	b	.L3817
+.L3860:
+	add	r0, r7, r0, lsl #1
 	movw	r3, #65535
 	ldrh	r10, [r0, #34]
 	cmp	r10, r3
-	bne	.L3902
-	ldr	r1, .L3945+4
+	bne	.L3821
 	movw	r2, #1540
-	ldr	r0, .L3945+8
+	ldr	r1, .L3867+4
+	ldr	r0, .L3867+8
 	bl	printk
 	bl	dump_stack
-.L3902:
-	movw	r3, #2828
-	ldr	r5, .L3945+24
-	ldrh	r2, [r4, r3]
-	ldr	r3, [r4, #1080]
-	sub	r9, r5, #3088
-	sub	fp, r5, #3056
-	str	fp, [sp, #4]
-	add	r3, r3, r2, asl #2
-	ldrh	r8, [r9, #-8]
-	ldrh	r7, [fp, #-10]
-	ldrb	r3, [r3, #2]	@ zero_extendqisi2
-	sub	r8, r8, #1
-	and	r3, r3, #224
-	uxth	r8, r8
-	cmp	r3, #160
-	mul	r7, r7, r10
-	movne	r3, #1
-	bne	.L3903
-	ldrb	r2, [r5, #-3124]	@ zero_extendqisi2
+.L3821:
+	movw	r2, #2824
+	ldr	r8, .L3867+24
+	ldrh	r0, [r4, r2]
+	ldr	r2, [r4, #1084]
+	sub	r1, r8, #3072
+	sub	fp, r8, #3088
+	ldrh	r6, [fp, #-8]
+	ldrh	r3, [r1, #-2]
+	add	r2, r2, r0, lsl #2
+	str	r1, [sp, #4]
+	sub	r6, r6, #1
+	ldrb	r2, [r2, #2]	@ zero_extendqisi2
+	uxth	r6, r6
+	mul	r3, r10, r3
+	and	r2, r2, #224
+	cmp	r2, #160
+	movne	r9, #1
+	bne	.L3822
+	ldrb	r2, [r8, #-3128]	@ zero_extendqisi2
 	cmp	r2, #2
-	uxth	r3, r2
-	orr	r7, r7, r2, asl #24
-	subeq	r2, r5, #3104
-	ldreqh	r8, [r2, #-10]
-	ldrb	r2, [r4, #1196]	@ zero_extendqisi2
-	subeq	r8, r8, #1
-	uxtheq	r8, r8
+	uxth	r9, r2
+	orr	r3, r3, r2, lsl #24
+	subeq	r2, r8, #3104
+	ldrheq	r6, [r2, #-14]
+	ldrb	r2, [r4, #1158]	@ zero_extendqisi2
+	subeq	r6, r6, #1
+	uxtheq	r6, r6
 	cmp	r2, #0
-	bne	.L3905
-	ldr	r2, .L3945
-	ldrb	r2, [r2, #1197]	@ zero_extendqisi2
+	bne	.L3824
+	ldrb	r2, [r4, #1159]	@ zero_extendqisi2
 	cmp	r2, #0
-	beq	.L3903
-.L3905:
-	ldr	r2, .L3945+28
-	ldrh	r8, [r2, #-10]
-	sub	r8, r8, #1
-	uxth	r8, r8
-.L3903:
+	beq	.L3822
+.L3824:
+	ldr	r2, .L3867+28
+	ldrh	r6, [r2, #-14]
+	sub	r6, r6, #1
+	uxth	r6, r6
+.L3822:
+	orr	r6, r6, r3
+	strb	r9, [r4, #2830]
+	mov	r3, #0
 	mov	r0, #1
-	strb	r3, [r4, #2834]
+	strh	r3, [r7, #2]	@ movhi
+	strb	r3, [r4, #2828]
+	strh	r3, [r7, #22]	@ movhi
+	strh	r3, [r7, #24]	@ movhi
 	str	r3, [sp]
-	orr	r7, r8, r7
-	mov	r8, #0
-	strh	r8, [r6, #2]	@ movhi
-	strb	r8, [r4, #2832]
-	strh	r8, [r6, #22]	@ movhi
-	strh	r8, [r6, #24]	@ movhi
 	bl	buf_alloc
 	mov	r1, #1
-	str	r7, [r0, #24]
-	mov	fp, r0
+	str	r6, [r0, #24]
+	mov	r5, r0
 	bl	sblk_read_page
-	ldr	r2, [fp, #36]
-	strh	r8, [r6, #20]	@ movhi
-	cmn	r2, #1
-	cmpne	r2, #512
 	ldr	r3, [sp]
-	beq	.L3942
-	ldr	r0, [fp, #12]
-	ldr	r2, .L3945+32
-	ldr	r1, [r0]
-	str	r2, [sp, #8]
-	cmp	r1, r2
-	beq	.L3907
-	ldr	r0, .L3945+8
+	strh	r3, [r7, #20]	@ movhi
+	ldr	r3, [r5, #36]
+	cmn	r3, #1
+	cmpne	r3, #512
+	bne	.L3825
+.L3865:
+	mov	r0, r5
+	bl	zbuf_free
+.L3863:
+	mvn	r0, #0
+	b	.L3812
+.L3825:
+	ldr	r1, [r5, #12]
+	ldr	r3, .L3867+32
+	ldr	r2, [r1]
+	str	r3, [sp, #8]
+	cmp	r2, r3
+	beq	.L3826
 	movw	r2, #1578
-	ldr	r1, .L3945+4
-.L3943:
+.L3866:
+	ldr	r1, .L3867+4
+	ldr	r0, .L3867+8
 	bl	printk
 	bl	dump_stack
-.L3942:
-	mov	r0, fp
-	bl	zbuf_free
-	b	.L3940
-.L3907:
-	ldrb	r8, [r5, #-3123]	@ zero_extendqisi2
-	ldrh	r1, [r9, #-8]
-	ldr	r2, .L3945+24
-	smulbb	r1, r1, r8
-	smulbb	r1, r1, r3
-	uxth	r1, r1
-	str	r1, [sp]
-	ldrb	r1, [r5, #545]	@ zero_extendqisi2
-	cmp	r3, #3
-	cmpeq	r1, #2
-	bne	.L3908
-	movw	r3, #542
-	ldr	r1, [fp, #4]
-	ldrh	r0, [r2, r3]
-	sub	r3, r2, #3104
-	ldrh	r3, [r3, #-10]
-	mov	r3, r3, asl #2
-	smulbb	r8, r3, r8
-	ldr	r3, [r2, #-3128]
-	rsb	r8, r0, r8
-	mov	r0, r0, lsr #2
-	uxth	r8, r8
-	add	r0, r3, r0, asl #2
-	mov	r2, r8
+	b	.L3865
+.L3826:
+	ldrb	r2, [r8, #-3127]	@ zero_extendqisi2
+	ldrh	r3, [fp, #-8]
+	smulbb	r3, r3, r2
+	smulbb	r3, r3, r9
+	uxth	r3, r3
+	str	r3, [sp]
+	ldrb	r3, [r8, #-11]	@ zero_extendqisi2
+	cmp	r3, #2
+	cmpeq	r9, #3
+	bne	.L3827
+	ldr	r3, .L3867+28
+	ldrh	r0, [r8, #-14]
+	ldr	r1, [r5, #4]
+	ldrh	r9, [r3, #-14]
+	ldr	r3, [r8, #-3132]
+	lsl	r9, r9, #2
+	smulbb	r9, r9, r2
+	sub	r9, r9, r0
+	lsr	r0, r0, #2
+	uxth	r9, r9
+	add	r0, r3, r0, lsl #2
+	mov	r2, r9
 	bl	ftl_memcpy
-	ldr	r3, [fp, #12]
+	ldr	r3, [r5, #12]
 	ldr	r3, [r3, #4]
 	cmp	r3, #0
-	beq	.L3909
-	ldr	r0, [fp, #4]
-	mov	r1, r8
+	beq	.L3828
+	mov	r1, r9
+	ldr	r0, [r5, #4]
 	str	r3, [sp, #12]
 	bl	js_hash
 	ldr	r3, [sp, #12]
 	cmp	r3, r0
-	beq	.L3909
-	mov	r0, fp
+	beq	.L3828
+	mov	r0, r5
 	bl	zbuf_free
-	ldr	r3, [fp, #12]
-	ldr	r0, .L3945+36
-	ldr	r2, [fp, #24]
-	ldr	r1, [r3, #4]
-	mov	r3, r8
-	b	.L3941
-.L3909:
-	ldrb	r3, [r4, #1196]	@ zero_extendqisi2
+	ldr	r1, [r5, #12]
+	mov	r3, r9
+.L3864:
+	ldr	r2, [r5, #24]
+	ldr	r1, [r1, #4]
+	ldr	r0, .L3867+36
+	bl	printk
+	b	.L3863
+.L3828:
+	ldrb	r3, [r4, #1158]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L3910
-	ldr	r3, .L3945
-	ldrb	r3, [r3, #1197]	@ zero_extendqisi2
+	bne	.L3829
+	ldrb	r3, [r4, #1159]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L3911
-.L3910:
-	sub	r7, r7, #1
-	b	.L3912
-.L3911:
-	ldr	r3, [sp, #4]
-	ldrh	r7, [r9, #-8]
-	ldrh	r3, [r3, #-10]
-	sub	r7, r7, #1
-	uxth	r7, r7
-	mul	r10, r3, r10
-	orr	r7, r7, #33554432
-	orr	r7, r7, r10
-.L3912:
-	str	r7, [fp, #24]
-	mov	r0, fp
+	beq	.L3830
+.L3829:
+	sub	r6, r6, #1
+	str	r6, [r5, #24]
+.L3831:
 	mov	r1, #1
+	mov	r0, r5
 	bl	sblk_read_page
-	ldr	r3, [fp, #36]
+	ldr	r3, [r5, #36]
 	cmn	r3, #1
 	cmpne	r3, #512
-	beq	.L3942
-	ldr	r3, [fp, #12]
+	beq	.L3865
+	ldr	r3, [r5, #12]
 	ldr	r2, [sp, #8]
 	ldr	r3, [r3]
 	cmp	r3, r2
-	ldrne	r0, .L3945+8
 	movwne	r2, #1619
-	ldrne	r1, .L3945+4
-	bne	.L3943
-.L3914:
-	movw	r3, #542
-	ldr	r0, [r5, #-3128]
-	ldr	r1, [fp, #4]
-	ldrh	r2, [r5, r3]
-	b	.L3939
-.L3908:
-	ldr	r3, [sp]
-	ldr	r8, [r0, #4]
-	ldr	r0, [fp, #4]
-	mov	r7, r3, asl #2
-	str	r2, [sp, #4]
-	mov	r1, r7
-	bl	js_hash
-	ldr	r2, [sp, #4]
-	cmp	r8, r0
-	ldreq	r1, [fp, #4]
-	ldreq	r0, [r2, #-3128]
-	moveq	r2, r7
-	beq	.L3939
-	mov	r0, fp
-	bl	zbuf_free
-	ldr	r3, [fp, #12]
-	ldr	r0, .L3945+36
-	ldr	r2, [fp, #24]
-	ldr	r1, [r3, #4]
-	mov	r3, r7
-.L3941:
-	bl	printk
-.L3940:
-	mvn	r0, #0
-	b	.L3895
-.L3939:
+	ldrheq	r2, [r8, #-14]
+	bne	.L3866
+.L3862:
+	ldr	r1, [r5, #4]
+	mov	r9, #0
+	ldr	r0, [r8, #-3132]
+	mov	r10, #1
 	bl	ftl_memcpy
-	ldr	r7, [r5, #-3128]
-	ldr	r10, .L3945+24
-	mov	r8, #0
-	ldr	r9, .L3945+20
-	sub	r7, r7, #4
-.L3917:
+	ldr	r6, [r8, #-3132]
+	sub	r6, r6, #4
+.L3836:
 	ldr	r3, [sp]
-	cmp	r8, r3
-	bge	.L3944
-	ldr	r0, [r7, #4]!
+	cmp	r9, r3
+	blt	.L3841
+	mov	r0, r5
+	bl	zbuf_free
+	movw	r3, #2824
+	ldr	r2, [r4, #1092]
+	ldrh	r1, [r4, r3]
+	lsl	r3, r1, #1
+	ldrh	r2, [r2, r3]
+	ldrh	r3, [r7, #20]
+	cmp	r2, r3
+	beq	.L3842
+	ldr	r0, .L3867+40
+	bl	printk
+.L3842:
+	movw	r3, #2824
+	ldrh	r1, [r7, #20]
+	ldrh	r3, [r4, r3]
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
+	strh	r1, [r2, r3]	@ movhi
+	mov	r3, #0
+	strh	r3, [r7, #24]	@ movhi
+	ldrh	r0, [r7, #20]
+	b	.L3812
+.L3830:
+	ldr	r2, [sp, #4]
+	ldrh	r3, [fp, #-8]
+	ldrh	r2, [r2, #-2]
+	sub	r3, r3, #1
+	uxth	r3, r3
+	mul	r10, r10, r2
+	orr	r3, r3, #33554432
+	orr	r10, r3, r10
+	str	r10, [r5, #24]
+	b	.L3831
+.L3827:
+	ldr	r3, [sp]
+	ldr	r9, [r1, #4]
+	ldr	r0, [r5, #4]
+	lsl	r6, r3, #2
+	mov	r1, r6
+	bl	js_hash
+	cmp	r9, r0
+	moveq	r2, r6
+	beq	.L3862
+	mov	r0, r5
+	bl	zbuf_free
+	ldr	r1, [r5, #12]
+	mov	r3, r6
+	b	.L3864
+.L3841:
+	ldr	r0, [r6, #4]!
 	cmn	r0, #1
-	beq	.L3919
+	beq	.L3838
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
 	str	r0, [sp, #20]
-	bne	.L3920
-	ldr	r0, [r7]
-	add	r1, sp, #20
+	bne	.L3839
 	mov	r2, #0
+	add	r1, sp, #20
+	ldr	r0, [r6]
 	bl	pm_log2phys
-.L3920:
-	ldr	r3, .L3945+40
-	mvn	r1, #0
-	ldr	r2, [sp, #20]
+.L3839:
+	ldr	r3, .L3867+44
+	ldr	fp, [sp, #20]
+	ldrb	r1, [r8, #-3136]	@ zero_extendqisi2
 	ldrh	r0, [r3]
-	ldrb	r3, [r4, #1189]	@ zero_extendqisi2
-	str	r2, [sp, #4]
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
 	rsb	r3, r3, #24
-	rsb	r3, r0, r3
-	mov	r0, r2, lsr r0
-	bic	r0, r0, r1, asl r3
-	ldrb	r1, [r5, #-3130]	@ zero_extendqisi2
+	sub	r3, r3, r0
+	lsl	r3, r10, r3
+	sub	r3, r3, #1
+	and	r0, r3, fp, lsr r0
 	bl	__aeabi_uidiv
-	ldrh	r3, [r6]
+	ldrh	r3, [r7]
 	cmp	r0, r3
-	ldr	r2, [sp, #4]
-	ldreq	r3, [r10, #-3128]
-	ldreqh	r1, [r9, #20]
-	streq	r2, [r3, r1, asl #2]
-	ldreqh	r3, [r9, #20]
+	ldreq	r3, [r8, #-3132]
+	ldrheq	r2, [r7, #20]
+	streq	fp, [r3, r2, lsl #2]
+	ldrheq	r3, [r7, #20]
 	addeq	r3, r3, #1
-	streqh	r3, [r9, #20]	@ movhi
-.L3919:
+	strheq	r3, [r7, #20]	@ movhi
+.L3838:
 	bl	timer_get_time
-	add	r8, r8, #1
-	b	.L3917
-.L3944:
-	mov	r0, fp
-	bl	zbuf_free
-	movw	r3, #2828
-	ldrh	r1, [r4, r3]
-	ldr	r2, [r4, #1088]
-	mov	r3, r1, asl #1
-	ldrh	r2, [r2, r3]
-	ldrh	r3, [r6, #20]
-	cmp	r2, r3
-	beq	.L3923
-	ldr	r0, .L3945+44
-	bl	printk
-.L3923:
-	movw	r3, #2828
-	ldrh	r1, [r6, #20]
-	ldrh	r3, [r4, r3]
-	ldr	r2, [r4, #1088]
-	mov	r3, r3, asl #1
-	strh	r1, [r2, r3]	@ movhi
-	mov	r3, #0
-	ldrh	r0, [r6, #20]
-	strh	r3, [r6, #24]	@ movhi
-.L3895:
-	add	sp, sp, #28
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3946:
+	add	r9, r9, #1
+	b	.L3836
+.L3868:
 	.align	2
-.L3945:
+.L3867:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2612
+	.word	.LANCHOR1+2395
 	.word	.LC0
 	.word	.LANCHOR2
-	.word	.LC253
-	.word	.LANCHOR0+2828
+	.word	.LC252
+	.word	.LANCHOR0+2824
 	.word	.LANCHOR3
 	.word	.LANCHOR3-3104
 	.word	-178307901
+	.word	.LC253
 	.word	.LC254
-	.word	.LANCHOR3-3132
-	.word	.LC255
+	.word	.LANCHOR3-3138
 	.fnend
 	.size	gc_scan_src_blk, .-gc_scan_src_blk
 	.align	2
 	.global	gc_scan_static_data
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_scan_static_data, %function
 gc_scan_static_data:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
-	.save {r4, r5, r6, r7, r8, r9, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #12
-	ldr	r4, .L3964
-	ldr	r3, [r4, #1092]
+	ldr	r4, .L3886
+	ldr	r3, [r4, #1096]
 	ldr	r2, [r3, #544]
 	cmn	r2, #1
-	beq	.L3948
-	mov	r5, #0
-	mov	r7, r4
-.L3949:
-	ldr	r3, [r4, #1092]
-	add	r1, sp, #4
+	beq	.L3870
+	ldr	r6, .L3886+4
+	mov	r7, #0
+	ldr	r9, .L3886+8
+	sub	r10, r6, #3136
+.L3878:
+	ldr	r3, [r4, #1096]
 	mov	r2, #0
-	uxth	r6, r5
+	add	r1, sp, #4
+	uxth	r8, r7
 	ldr	r0, [r3, #544]
 	bl	pm_log2phys
 	ldr	r3, [sp, #4]
 	cmn	r3, #1
-	beq	.L3950
+	beq	.L3871
 	mov	r0, #1
 	bl	buf_alloc
-	mov	r1, #1
 	ldr	r3, [sp, #4]
-	mov	r8, r0
+	mov	r5, r0
+	mov	r1, #1
 	str	r3, [r0, #24]
 	bl	sblk_read_page
-	ldr	r3, [r8, #36]
+	ldr	r3, [r5, #36]
 	cmp	r3, #256
-	bne	.L3951
-	ldr	r3, .L3964+4
-	mov	r9, #1
+	bne	.L3872
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
+	mov	fp, #1
+	ldrh	r2, [r10, #-2]
 	ldr	r0, [sp, #4]
-	ldrh	r2, [r3]
-	ldrb	r3, [r7, #1189]	@ zero_extendqisi2
 	rsb	r3, r3, #24
-	rsb	r3, r2, r3
-	mov	r3, r9, asl r3
+	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
+	sub	r3, r3, r2
+	lsl	r3, fp, r3
 	sub	r3, r3, #1
 	and	r0, r3, r0, lsr r2
-	ldr	r3, .L3964+8
-	ldrb	r1, [r3, #-3130]	@ zero_extendqisi2
 	bl	__aeabi_uidiv
-	mov	r1, r9
 	mov	r2, #0
+	mov	r1, fp
 	uxth	r0, r0
 	bl	gc_add_sblk
-.L3951:
-	ldr	r2, [r8, #12]
-	ldr	r3, [r4, #1092]
+.L3872:
+	ldr	r2, [r5, #12]
+	ldr	r3, [r4, #1096]
 	ldr	r2, [r2, #4]
 	ldr	r3, [r3, #544]
 	cmp	r2, r3
-	beq	.L3952
-	ldr	r1, .L3964+12
+	beq	.L3873
 	movw	r2, #2163
-	ldr	r0, .L3964+16
+	mov	r1, r9
+	ldr	r0, .L3886+12
 	bl	printk
 	bl	dump_stack
-.L3952:
-	mov	r0, r8
+.L3873:
+	mov	r0, r5
 	bl	zbuf_free
-.L3950:
-	ldr	r3, [r4, #1092]
-	ldr	r1, [r4, #2784]
+.L3871:
+	ldr	r3, [r4, #1096]
+	ldr	r1, [r4, #2780]
 	ldr	r2, [r3, #544]
 	add	r2, r2, #1
-	str	r2, [r3, #544]
 	cmp	r2, r1
-	bcc	.L3953
+	str	r2, [r3, #544]
+	bcc	.L3874
 	mvn	r2, #0
 	str	r2, [r3, #544]
 	ldr	r2, [r3, #548]
@@ -23545,109 +23840,108 @@
 	bl	ftl_ext_info_flush
 	mov	r0, #0
 	bl	ftl_info_flush
-	b	.L3947
-.L3953:
+.L3869:
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3874:
 	ldr	r3, [sp, #4]
 	cmn	r3, #1
-	bne	.L3947
-	ldr	r3, .L3964+20
-	add	r5, r5, #1
-	ldrh	r3, [r3]
-	cmp	r6, r3, lsr #2
-	bcc	.L3949
-	b	.L3947
-.L3948:
+	bne	.L3869
+	ldrh	r3, [r6, #-14]
+	add	r7, r7, #1
+	cmp	r8, r3, lsr #2
+	bcc	.L3878
+	b	.L3869
+.L3870:
 	ldr	r2, [r3, #536]
 	ldr	r1, [r3, #12]
 	add	r2, r2, #12910592
 	add	r2, r2, #49408
 	cmp	r1, r2
-	bhi	.L3958
-	ldr	r0, [r4, #2804]
+	bhi	.L3880
+	ldr	r0, [r4, #2800]
 	ldr	r2, [r3, #540]
 	ldr	r0, [r0, #44]
 	add	r2, r2, #4992
 	add	r2, r2, #8
 	cmp	r0, r2
-	bls	.L3947
-.L3958:
-	ldr	r2, [r4, #2804]
+	bls	.L3869
+.L3880:
+	ldr	r2, [r4, #2800]
 	ldr	r2, [r2, #44]
 	str	r1, [r3, #536]
 	str	r2, [r3, #540]
 	mov	r2, #0
 	str	r2, [r3, #544]
-.L3947:
-	add	sp, sp, #12
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L3965:
+	b	.L3869
+.L3887:
 	.align	2
-.L3964:
+.L3886:
 	.word	.LANCHOR0
-	.word	.LANCHOR3-3132
 	.word	.LANCHOR3
-	.word	.LANCHOR1+2628
+	.word	.LANCHOR1+2411
 	.word	.LC0
-	.word	.LANCHOR3+542
 	.fnend
 	.size	gc_scan_static_data, .-gc_scan_static_data
 	.align	2
 	.global	gc_block_vpn_scan
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_block_vpn_scan, %function
 gc_block_vpn_scan:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 32
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	movw	r4, #1076
-	ldr	r5, .L4004
+	movw	r5, #1080
+	ldr	r4, .L3922
 	.pad #44
 	sub	sp, sp, #44
-	ldr	r2, [r5, #1092]
-	ldrh	r3, [r5, r4]
+	ldr	r2, [r4, #1096]
+	ldrh	r3, [r4, r5]
 	ldr	r2, [r2, #608]
 	cmp	r2, r3
-	bcs	.L3966
+	bcs	.L3888
 	bl	timer_get_time
-	ldr	r6, [r5, #1092]
+	ldr	r6, [r4, #1096]
 	ldr	r3, [r6, #604]
 	add	r3, r3, #29952
 	add	r3, r3, #48
 	cmp	r0, r3
-	bls	.L3966
+	bls	.L3888
 	bl	timer_get_time
-	ldr	r3, [r5, #1092]
-	ldrh	r1, [r5, r4]
+	ldr	r3, [r4, #1096]
 	str	r0, [r6, #604]
+	ldrh	r1, [r4, r5]
 	ldr	r2, [r3, #600]
 	cmp	r2, r1
-	bcs	.L3970
-	ldr	r1, [r5, #2804]
+	bcs	.L3890
+	ldr	r1, [r4, #2800]
 	ldrh	r1, [r1, #134]
 	cmp	r2, r1
-	bcs	.L3971
-.L3970:
-	ldr	r2, [r5, #2804]
+	bcs	.L3891
+.L3890:
+	ldr	r2, [r4, #2800]
 	ldrh	r2, [r2, #134]
 	str	r2, [r3, #600]
-.L3971:
-	ldr	r4, [r3, #600]
+.L3891:
+	ldr	r5, [r3, #600]
 	movw	r3, #65535
-	uxth	r4, r4
-	cmp	r4, r3
-	bne	.L3972
-	ldr	r1, .L4004+4
+	uxth	r7, r5
+	cmp	r7, r3
+	bne	.L3892
 	movw	r2, #2504
-	ldr	r0, .L4004+8
+	ldr	r1, .L3922+4
+	ldr	r0, .L3922+8
 	bl	printk
 	bl	dump_stack
-.L3972:
-	ldr	r3, [r5, #1092]
-	mov	r0, r4
+.L3892:
+	ldr	r3, [r4, #1096]
 	add	r1, sp, #24
-	ldr	r6, .L4004
+	mov	r0, r7
 	ldr	r2, [r3, #600]
 	add	r2, r2, #1
 	str	r2, [r3, #600]
@@ -23655,1351 +23949,1362 @@
 	add	r2, r2, #1
 	str	r2, [r3, #608]
 	bl	ftl_get_blk_list_in_sblk
-	uxth	r0, r0
-	cmp	r0, #0
-	beq	.L3966
-	ldr	r9, [r6, #1080]
-	add	r9, r9, r4, asl #2
-	ldrb	r3, [r9, #2]	@ zero_extendqisi2
-	tst	r3, #192
+	uxth	r3, r0
+	cmp	r3, #0
+	beq	.L3888
+	ldr	r10, [r4, #1084]
+	uxth	r5, r5
+	add	r10, r10, r5, lsl #2
+	ldrb	r3, [r10, #2]	@ zero_extendqisi2
 	and	r2, r3, #224
-	moveq	r3, #1
-	movne	r3, #0
-	cmp	r2, #224
-	orreq	r3, r3, #1
+	and	r3, r3, #192
 	cmp	r3, #0
-	bne	.L3973
-	ldr	r3, [r6, #1092]
+	cmpne	r2, #224
+	beq	.L3893
+	ldr	r3, [r4, #1096]
 	ldrh	r1, [r3, #16]
-	cmp	r1, r4
-	beq	.L3973
+	cmp	r1, r7
+	beq	.L3893
 	ldrh	r1, [r3, #48]
-	cmp	r1, r4
-	beq	.L3973
+	cmp	r1, r7
+	beq	.L3893
 	ldrh	r3, [r3, #80]
-	cmp	r3, r4
-	bne	.L3974
-.L3973:
+	cmp	r3, r7
+	bne	.L3894
+.L3893:
 	cmp	r2, #0
-	bne	.L3966
-	ldr	r3, [r5, #1088]
-	mov	r4, r4, asl #1
-	ldrh	r3, [r3, r4]
+	bne	.L3888
+	ldr	r3, [r4, #1092]
+	lsl	r5, r5, #1
+	ldrh	r3, [r3, r5]
 	cmp	r3, #0
-	beq	.L3975
-	ldr	r1, .L4004+4
+	beq	.L3895
 	movw	r2, #2521
-	ldr	r0, .L4004+8
+	ldr	r1, .L3922+4
+	ldr	r0, .L3922+8
 	bl	printk
 	bl	dump_stack
-.L3975:
-	ldr	r3, [r5, #1088]
+.L3895:
+	ldr	r3, [r4, #1092]
 	mov	r2, #0
-	strh	r2, [r3, r4]	@ movhi
-	b	.L3966
-.L3974:
+	strh	r2, [r3, r5]	@ movhi
+.L3888:
+	add	sp, sp, #44
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3894:
+	uxth	r0, r0
 	add	r3, sp, #40
-	add	r0, r3, r0, asl #1
+	add	r0, r3, r0, lsl #1
 	movw	r3, #65535
-	ldrh	r7, [r0, #-18]
-	cmp	r7, r3
-	bne	.L3977
-	ldr	r1, .L4004+4
+	ldrh	r8, [r0, #-18]
+	cmp	r8, r3
+	bne	.L3897
 	movw	r2, #2529
-	ldr	r0, .L4004+8
+	ldr	r1, .L3922+4
+	ldr	r0, .L3922+8
 	bl	printk
 	bl	dump_stack
-.L3977:
-	ldr	r6, .L4004+12
-	ldrb	r10, [r9, #2]	@ zero_extendqisi2
+.L3897:
+	ldr	r6, .L3922+12
 	sub	fp, r6, #3088
-	ldrh	r3, [fp, #-8]
-	sub	r3, r3, #1
-	uxth	r8, r3
-	sub	r3, r6, #3056
-	ldrh	r2, [r3, #-10]
-	sub	r3, r6, #3104
-	mul	r7, r2, r7
-	and	r2, r10, #224
+	ldrh	r2, [fp, #-8]
+	sub	r2, r2, #1
+	uxth	r3, r2
+	sub	r2, r6, #3072
+	ldrh	r1, [r2, #-2]
+	ldrb	r2, [r10, #2]	@ zero_extendqisi2
+	and	r2, r2, #224
+	mul	r1, r8, r1
 	cmp	r2, #160
-	movne	r10, #1
-	bne	.L3978
-	ldrb	r2, [r6, #-3124]	@ zero_extendqisi2
-	cmp	r2, #2
-	uxth	r10, r2
-	orr	r7, r7, r2, asl #24
-	ldreqh	r8, [r3, #-10]
-	subeq	r8, r8, #1
-	uxtheq	r8, r8
-.L3978:
+	sub	r2, r6, #3104
+	movne	r8, #1
+	bne	.L3898
+	ldrb	r8, [r6, #-3128]	@ zero_extendqisi2
+	cmp	r8, #2
+	ldrheq	r3, [r2, #-14]
+	orr	r1, r1, r8, lsl #24
+	uxthne	r8, r8
+	subeq	r3, r3, #1
+	uxtheq	r3, r3
+.L3898:
+	orr	r3, r3, r1
+	str	r2, [sp, #12]
 	mov	r0, #1
-	str	r3, [sp, #12]
+	str	r3, [sp, #8]
 	bl	buf_alloc
-	orr	r7, r8, r7
+	ldr	r3, [sp, #8]
 	mov	r1, #1
-	str	r7, [r0, #24]
-	mov	r8, r0
+	mov	r9, r0
+	str	r3, [r0, #24]
 	bl	sblk_read_page
+	ldr	r2, [sp, #12]
 	mov	r1, #255
-	ldr	r0, [r6, #-3128]
-	ldr	r3, [sp, #12]
-	ldrh	r2, [r3, #-10]
-	ldrb	r3, [r6, #-3123]	@ zero_extendqisi2
-	mul	r2, r3, r2
-	mov	r2, r2, asl #2
+	ldr	r0, [r6, #-3132]
+	ldrh	r3, [r2, #-14]
+	ldrb	r2, [r6, #-3127]	@ zero_extendqisi2
+	mul	r2, r2, r3
+	lsl	r2, r2, #2
 	bl	ftl_memset
-	ldr	r2, [r8, #36]
+	ldr	r2, [r9, #36]
 	cmn	r2, #1
 	cmpne	r2, #512
 	moveq	r2, #1
 	movne	r2, #0
-	moveq	r0, r4
-	moveq	r1, #1
 	moveq	r2, #0
-	beq	.L4002
-	ldr	r3, [r8, #12]
+	beq	.L3921
+	ldr	r3, [r9, #12]
 	ldr	r1, [r3]
-	ldr	r3, .L4004+16
+	ldr	r3, .L3922+16
 	cmp	r1, r3
-	beq	.L3980
-	mov	r0, r4
+	beq	.L3901
+.L3921:
 	mov	r1, #1
-.L4002:
+	mov	r0, r7
 	bl	gc_add_sblk
-	mov	r0, r8
+	mov	r0, r9
 	bl	zbuf_free
-	b	.L3966
-.L3980:
-	ldr	r3, .L4004+12
-	mov	r7, r2
-	ldrh	fp, [fp, #-8]
-	ldrb	r3, [r3, #-3123]	@ zero_extendqisi2
-	smulbb	fp, r3, fp
-	smulbb	fp, fp, r10
-	ldr	r10, [r8, #4]
-	uxth	r3, fp
+	b	.L3888
+.L3901:
+	ldrh	r3, [fp, #-8]
 	mov	fp, r2
+	ldrb	r1, [r6, #-3127]	@ zero_extendqisi2
+	smulbb	r1, r1, r3
+	smulbb	r8, r1, r8
+	uxth	r3, r8
+	mov	r8, r2
 	str	r3, [sp, #12]
-.L3981:
+	ldr	r3, [r9, #4]
+	str	r3, [sp, #8]
+.L3902:
 	ldr	r3, [sp, #12]
 	cmp	fp, r3
-	bge	.L4003
-	ldr	r0, [r10, fp, asl #2]
+	blt	.L3905
+	mov	r0, r9
+	lsl	r6, r5, #1
+	bl	zbuf_free
+	ldr	r3, .L3922+20
+	ldr	r3, [r3]
+	tst	r3, #256
+	beq	.L3906
+	ldr	r3, [r4, #1092]
+	mov	r1, r5
+	ldr	r0, .L3922+24
+	ldrh	r2, [r3, r6]
+	ldrb	r3, [r10, #2]	@ zero_extendqisi2
+	lsr	r3, r3, #5
+	str	r3, [sp]
+	mov	r3, r8
+	bl	printk
+.L3906:
+	ldr	r3, [r4, #1092]
+	cmp	r8, #31
+	strh	r8, [r3, r6]	@ movhi
+	bhi	.L3888
+	mov	r2, #0
+	mov	r1, #1
+	mov	r0, r7
+	bl	gc_add_sblk
+	b	.L3888
+.L3905:
+	ldr	r3, [sp, #8]
+	ldr	r0, [r3, fp, lsl #2]
 	cmn	r0, #1
-	beq	.L3982
+	beq	.L3903
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
 	str	r0, [sp, #20]
-	bne	.L3983
-	ldr	r0, [r10, fp, asl #2]
+	bne	.L3904
+	ldr	r3, [sp, #8]
+	mov	r2, #0
 	add	r1, sp, #20
-	mov	r2, #0
+	ldr	r0, [r3, fp, lsl #2]
 	bl	pm_log2phys
-.L3983:
-	ldr	r3, .L4004+20
-	ldrb	r2, [r5, #1189]	@ zero_extendqisi2
-	ldr	r0, [sp, #20]
-	ldrh	r1, [r3]
-	rsb	r2, r2, #24
+.L3904:
+	ldr	r2, .L3922+28
 	mov	r3, #1
-	rsb	r2, r1, r2
-	mov	r2, r3, asl r2
+	ldr	r0, [sp, #20]
+	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
+	ldrh	ip, [r2]
+	ldrb	r2, [r4, #1153]	@ zero_extendqisi2
+	rsb	r2, r2, #24
+	sub	r2, r2, ip
+	lsl	r2, r3, r2
 	sub	r2, r2, #1
-	and	r0, r2, r0, lsr r1
-	ldrb	r1, [r6, #-3130]	@ zero_extendqisi2
+	and	r0, r2, r0, lsr ip
 	bl	__aeabi_uidiv
-	cmp	r0, r4
-	addeq	r7, r7, #1
-	uxtheq	r7, r7
-.L3982:
+	cmp	r5, r0
+	addeq	r8, r8, #1
+	uxtheq	r8, r8
+.L3903:
 	add	fp, fp, #1
-	b	.L3981
-.L4003:
-	mov	r0, r8
-	mov	r6, r4, asl #1
-	bl	zbuf_free
-	ldr	r3, .L4004+24
-	ldr	r3, [r3]
-	tst	r3, #256
-	beq	.L3985
-	ldr	r3, [r5, #1088]
-	mov	r1, r4
-	ldr	r0, .L4004+28
-	ldrh	r2, [r3, r6]
-	ldrb	r3, [r9, #2]	@ zero_extendqisi2
-	mov	r3, r3, lsr #5
-	str	r3, [sp]
-	mov	r3, r7
-	bl	printk
-.L3985:
-	ldr	r3, [r5, #1088]
-	cmp	r7, #31
-	strh	r7, [r3, r6]	@ movhi
-	bhi	.L3966
-	mov	r0, r4
-	mov	r1, #1
-	mov	r2, #0
-	bl	gc_add_sblk
-.L3966:
-	add	sp, sp, #44
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4005:
+	b	.L3902
+.L3923:
 	.align	2
-.L4004:
+.L3922:
 	.word	.LANCHOR0
-	.word	.LANCHOR1+2648
+	.word	.LANCHOR1+2431
 	.word	.LC0
 	.word	.LANCHOR3
 	.word	-178307901
-	.word	.LANCHOR3-3132
 	.word	.LANCHOR2
-	.word	.LC256
+	.word	.LC255
+	.word	.LANCHOR3-3138
 	.fnend
 	.size	gc_block_vpn_scan, .-gc_block_vpn_scan
 	.align	2
 	.global	ftl_sblk_dump
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_sblk_dump, %function
 ftl_sblk_dump:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 88
+	@ args = 0, pretend = 0, frame = 80
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	fp, r0, asl #2
-	ldr	r4, .L4044
-	.pad #132
-	sub	sp, sp, #132
+	lsl	r3, r0, #2
+	ldr	r4, .L3961
+	.pad #124
+	sub	sp, sp, #124
+	lsl	r2, r0, #2
 	mov	r7, r0
+	str	r3, [sp, #68]
+	ldr	r3, [r4, #1084]
 	str	r1, [sp, #60]
-	ldr	r2, [r4, #1080]
-	add	r3, r2, fp
-	ldrh	r1, [r2, fp]
-	ldrb	r3, [r3, #2]	@ zero_extendqisi2
-	ubfx	r1, r1, #0, #11
-	str	r1, [sp]
-	ldr	r10, [r2, r0, asl #2]
-	mov	r1, r7
-	mov	r2, r3, lsr #5
-	ldr	r0, .L4044+4
-	ubfx	r3, r3, #3, #2
-	ubfx	r10, r10, #11, #8
-	str	r10, [sp, #4]
+	ldr	r1, [r3, r0, lsl #2]
+	add	r2, r3, r2
+	ldrb	r2, [r2, #2]	@ zero_extendqisi2
+	ubfx	r1, r1, #11, #8
+	str	r1, [sp, #4]
+	lsl	r1, r0, #2
+	ldrh	r3, [r3, r1]
+	mov	r1, r0
+	ldr	r0, .L3961+4
+	ubfx	r3, r3, #0, #11
+	str	r3, [sp]
+	ubfx	r3, r2, #3, #2
+	lsr	r2, r2, #5
 	bl	printk
 	movw	r3, #65535
 	cmp	r7, r3
-	beq	.L4029
-	movw	r3, #1076
+	beq	.L3947
+	movw	r3, #1080
 	ldrh	r3, [r4, r3]
 	cmp	r3, r7
-	bls	.L4029
-	ldr	r3, [r4, #1080]
-	add	r1, sp, #112
+	bls	.L3947
+	ldr	r3, [r4, #1084]
+	lsl	r2, r7, #2
+	add	r1, sp, #104
+	strh	r7, [sp, #88]	@ movhi
 	mov	r0, r7
-	strh	r7, [sp, #96]	@ movhi
-	add	r3, r3, fp
 	mov	r5, #0
-	mov	r9, r5
+	add	r3, r3, r2
+	mov	fp, r5
 	ldrb	r3, [r3, #2]	@ zero_extendqisi2
 	and	r3, r3, #224
 	cmp	r3, #160
-	ldreq	r3, .L4044+8
-	movne	r10, #1
-	ldreqb	r10, [r3, #-3124]	@ zero_extendqisi2
+	ldreq	r3, .L3961+8
+	movne	r9, #1
+	ldrbeq	r9, [r3, #-3128]	@ zero_extendqisi2
 	bl	ftl_get_blk_list_in_sblk
-	ldr	r3, .L4044+12
-	mov	r1, r7
-	mov	r2, r3
-	ldrh	r3, [r2, #-8]!
+	ldr	r3, .L3961+12
 	uxtb	r0, r0
+	lsl	r2, r7, #2
+	strh	r5, [sp, #90]	@ movhi
+	strb	r0, [sp, #97]
+	mov	r1, r7
+	ldrh	r3, [r3, #-8]
+	strb	r5, [sp, #93]
 	strh	r5, [sp, #98]	@ movhi
-	strb	r0, [sp, #105]
 	smulbb	r3, r3, r0
-	strb	r5, [sp, #101]
-	str	r2, [sp, #64]
-	strh	r5, [sp, #106]	@ movhi
-	strh	r3, [sp, #102]	@ movhi
-	ldr	r3, [r4, #1080]
-	add	r3, r3, fp
+	strh	r3, [sp, #94]	@ movhi
+	ldr	r3, [r4, #1084]
+	add	r3, r3, r2
 	ldrb	r2, [r3, #2]	@ zero_extendqisi2
-	mov	r3, r10
+	mov	r3, r9
 	str	r0, [sp]
-	ldr	r0, .L4044+16
-	mov	r2, r2, lsr #5
+	ldr	r0, .L3961+16
+	lsr	r2, r2, #5
 	bl	printk
 	mov	r0, #1
 	bl	buf_alloc
 	mov	r6, r0
 	str	r5, [sp, #44]
 	str	r5, [sp, #52]
-.L4009:
-	ldr	r3, [sp, #64]
-	uxth	r2, r5
-	str	r2, [sp, #48]
-	ldrh	r3, [r3]
-	cmp	r3, r2
-	bls	.L4026
-	mov	r3, r2, asl #1
-	add	r2, r3, r2
-	sub	r3, r3, #1
+.L3927:
+	ldr	r3, .L3961+20
+	ldrh	r2, [r3]
+	uxth	r3, r5
+	cmp	r2, r3
+	bls	.L3944
 	str	r3, [sp, #72]
+	lsl	r3, r3, #1
+	sub	r2, r3, #1
+	str	r2, [sp, #76]
+	uxth	r2, r5
+	add	r3, r3, r2
+	sub	r3, r3, #1
+	str	r3, [sp, #64]
 	mov	r3, #0
-	sub	r2, r2, #1
-	str	r2, [sp, #68]
-.L4042:
+	b	.L3960
+.L3941:
+	ldrh	r3, [sp, #48]
+	add	r2, sp, #120
+	add	r3, r2, r3, lsl #1
+	ldrh	r3, [r3, #-16]
 	str	r3, [sp, #56]
-	ldrb	r2, [sp, #105]	@ zero_extendqisi2
-	ldrh	r3, [sp, #56]
-	cmp	r2, r3
-	bls	.L4024
-	mov	r8, #1
-	add	r3, r3, #8
-	str	r3, [sp, #76]
-.L4025:
-	cmp	r8, r10
-	bhi	.L4043
-	ldr	r2, [sp, #76]
-	add	r3, sp, #128
-	add	r3, r3, r2, asl #1
-	ldrh	r2, [r3, #-32]
 	movw	r3, #65535
+	ldr	r2, [sp, #56]
 	cmp	r2, r3
-	beq	.L4010
-	ldr	r3, .L4044+20
-	cmp	r10, #3
-	ldrh	r3, [r3]
-	mul	r3, r3, r2
-	bne	.L4011
-	ldr	r1, .L4044
-	ldrb	r0, [r1, #1196]	@ zero_extendqisi2
-	cmp	r0, #0
-	ldrne	r1, [sp, #68]
-	bne	.L4040
-	ldrb	r1, [r1, #1197]	@ zero_extendqisi2
-	mov	r4, r8, asl #24
+	beq	.L3928
+	ldr	r3, .L3961+24
+	cmp	r9, #3
+	ldrh	r4, [r3, #-2]
+	mul	r3, r2, r4
+	bne	.L3929
+	ldr	r2, .L3961
+	ldrb	r1, [r2, #1158]	@ zero_extendqisi2
 	cmp	r1, #0
+	ldrne	r2, [sp, #64]
+	bne	.L3958
+	ldrb	r2, [r2, #1159]	@ zero_extendqisi2
+	lsl	r4, r8, #24
+	cmp	r2, #0
+	ldrne	r2, [sp, #64]
 	uxtaheq	r3, r3, r5
-	ldrne	r1, [sp, #68]
-	addne	r3, r3, r1
+	addne	r3, r3, r2
 	addne	r3, r3, r8
 	orr	r4, r4, r3
-	b	.L4013
-.L4011:
-	cmp	r10, #2
-	uxtahne	r4, r3, r5
-	bne	.L4013
-	ldr	r1, [sp, #72]
-.L4040:
-	add	r3, r3, r1
-	ldr	r1, .L4044+8
-	add	r3, r3, r8
-	ldrb	r4, [r1, #-3124]	@ zero_extendqisi2
-	orr	r4, r3, r4, asl #24
-.L4013:
+.L3931:
 	mov	r1, #1
 	str	r4, [r6, #24]
 	mov	r0, r6
-	str	r2, [sp, #84]
 	bl	sblk_read_page
-	ldr	r1, [r6, #4]
-	ldr	ip, [r6, #36]
-	ldr	r3, [r6, #12]
-	str	ip, [sp]
-	ldr	r0, [r1]
-	ldr	r2, [sp, #84]
-	str	ip, [sp, #80]
-	str	r0, [sp, #4]
-	ldr	r0, [r1, #4]
-	str	r0, [sp, #8]
-	ldr	r0, [r1, #8]
-	str	r0, [sp, #12]
-	ldr	r1, [r1, #12]
-	ldr	r0, .L4044+24
-	str	r1, [sp, #16]
-	ldr	r1, [r3]
-	str	r1, [sp, #20]
-	ldr	r1, [r3, #4]
-	str	r1, [sp, #24]
-	ldr	r1, [r3, #8]
+	ldr	r2, [r6, #12]
+	ldr	r3, [r6, #4]
+	ldr	r10, [r6, #36]
+	ldr	r1, [r2, #12]
+	ldr	r0, .L3961+28
+	str	r1, [sp, #32]
+	ldr	r1, [r2, #8]
 	str	r1, [sp, #28]
-	mov	r1, r2
-	ldr	r3, [r3, #12]
-	ldr	r2, [sp, #48]
-	str	r3, [sp, #32]
+	ldr	r1, [r2, #4]
+	str	r1, [sp, #24]
+	ldr	r2, [r2]
+	ldr	r1, [sp, #56]
+	str	r2, [sp, #20]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #16]
+	ldr	r2, [r3, #8]
+	str	r2, [sp, #12]
+	ldr	r2, [r3, #4]
+	str	r2, [sp, #8]
+	ldr	r3, [r3]
+	ldr	r2, [sp, #72]
+	str	r10, [sp]
+	str	r3, [sp, #4]
 	mov	r3, r4
 	bl	printk
-	ldr	r0, .L4044+28
-	ldr	ip, [sp, #80]
 	ldr	r3, [sp, #52]
-	cmn	ip, #1
-	cmpne	ip, #512
+	cmn	r10, #1
+	cmpne	r10, #512
 	moveq	r3, #1
+	ldr	r0, .L3961+32
 	str	r3, [sp, #52]
-	ldr	r3, .L4044+32
+	ldr	r3, .L3961+36
 	ldr	r3, [r3, #4]
 	blx	r3
-	ldr	r3, .L4044
-	ldr	r3, [r3, #1080]
-	add	r3, r3, fp
+	ldr	r3, .L3961
+	ldr	r2, [sp, #68]
+	ldr	r3, [r3, #1084]
+	add	r3, r3, r2
 	ldrb	r2, [r3, #2]	@ zero_extendqisi2
 	and	r2, r2, #224
-	cmp	r2, #224
-	cmpne	r2, #32
-	moveq	r2, #1
-	movne	r2, #0
-	beq	.L4010
+	cmp	r2, #32
+	cmpne	r2, #224
+	moveq	r10, #1
+	movne	r10, #0
+	beq	.L3928
 	ldr	r3, [r6, #12]
-	str	r2, [sp, #80]
 	ldr	r0, [r3, #4]
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
-	str	r0, [sp, #92]
-	ldr	r2, [sp, #80]
-	bne	.L4017
+	str	r0, [sp, #84]
+	bne	.L3935
 	ldr	r3, [r6, #12]
-	add	r1, sp, #92
+	mov	r2, r10
+	add	r1, sp, #84
 	ldr	r0, [r3, #4]
 	bl	pm_log2phys
-.L4017:
-	ldr	r3, [sp, #92]
-	cmp	r3, r4
-	bne	.L4018
+.L3935:
+	ldr	r3, [sp, #84]
+	cmp	r4, r3
+	bne	.L3936
 	ldr	r3, [sp, #44]
 	mov	r1, r4
-	ldr	r0, .L4044+36
+	ldr	r2, [r6, #12]
+	ldr	r0, .L3961+40
 	add	r3, r3, #1
+	ldr	r2, [r2, #4]
 	str	r3, [sp, #44]
-	ldr	r3, [r6, #12]
-	ldr	r2, [r3, #4]
-	ldr	r3, [sp, #44]
 	bl	printk
-.L4018:
+.L3936:
 	ldr	r3, [sp, #60]
 	cmp	r3, #0
-	beq	.L4020
-	ldr	r2, [r3, r9, asl #2]
-	mov	r4, r9, asl #2
+	beq	.L3938
+	ldr	r2, [r3, fp, lsl #2]
+	lsl	r4, fp, #2
 	ldr	r3, [r6, #12]
 	ldr	r3, [r3, #4]
 	cmp	r3, r2
-	beq	.L4021
-	ldr	r3, .L4044+40
+	beq	.L3939
+	ldr	r3, .L3961+44
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L4021
-	ldr	r0, .L4044+44
-	mov	r1, r9
+	beq	.L3939
+	mov	r1, fp
+	ldr	r0, .L3961+48
 	bl	printk
-.L4021:
+.L3939:
 	ldr	r3, [sp, #60]
 	ldr	r2, [r6, #12]
 	ldr	r3, [r3, r4]
 	ldr	r2, [r2, #4]
 	cmp	r2, r3
 	cmnne	r3, #1
-	beq	.L4020
-	ldr	r1, .L4044+48
+	beq	.L3938
 	movw	r2, #1575
-	ldr	r0, .L4044+52
+	ldr	r1, .L3961+52
+	ldr	r0, .L3961+56
 	bl	printk
 	bl	dump_stack
-.L4020:
-	add	r9, r9, #1
-.L4010:
+.L3938:
+	add	fp, fp, #1
+.L3928:
 	add	r8, r8, #1
 	uxth	r8, r8
-	b	.L4025
-.L4043:
-	ldr	r3, [sp, #56]
+.L3943:
+	cmp	r9, r8
+	bcs	.L3941
+	ldr	r3, [sp, #48]
 	add	r3, r3, #1
-	b	.L4042
-.L4024:
+.L3960:
+	str	r3, [sp, #48]
+	ldrb	r2, [sp, #97]	@ zero_extendqisi2
+	ldrh	r3, [sp, #48]
+	cmp	r2, r3
+	bls	.L3942
+	mov	r8, #1
+	b	.L3943
+.L3929:
+	cmp	r9, #2
+	uxtahne	r4, r3, r5
+	bne	.L3931
+	ldr	r2, [sp, #76]
+.L3958:
+	add	r4, r3, r2
+	ldr	r2, .L3961+8
+	add	r3, r4, r8
+	ldrb	r4, [r2, #-3128]	@ zero_extendqisi2
+	orr	r4, r3, r4, lsl #24
+	b	.L3931
+.L3942:
 	add	r5, r5, #1
-	b	.L4009
-.L4026:
+	b	.L3927
+.L3944:
 	mov	r0, r6
 	bl	zbuf_free
-	ldr	r3, .L4044
-	ldr	r0, .L4044+56
-	mov	r1, r7
-	ldr	r2, [r3, #1088]
-	mov	r3, r7, asl #1
-	ldrh	r2, [r2, r3]
+	ldr	r3, .L3961
+	lsl	r2, r7, #1
+	ldr	r0, .L3961+60
+	ldr	r1, [r3, #1092]
 	ldr	r3, [sp, #44]
+	ldrh	r2, [r1, r2]
+	mov	r1, r7
 	bl	printk
 	ldr	r0, [sp, #52]
-	b	.L4007
-.L4029:
-	mov	r0, #0
-.L4007:
-	add	sp, sp, #132
+.L3924:
+	add	sp, sp, #124
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4045:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3947:
+	mov	r0, #0
+	b	.L3924
+.L3962:
 	.align	2
-.L4044:
+.L3961:
 	.word	.LANCHOR0
-	.word	.LC257
+	.word	.LC256
 	.word	.LANCHOR3
 	.word	.LANCHOR3-3088
-	.word	.LC258
-	.word	.LANCHOR3-3066
-	.word	.LC196
+	.word	.LC257
+	.word	.LANCHOR3-3096
+	.word	.LANCHOR3-3072
+	.word	.LC195
 	.word	644245000
 	.word	arm_delay_ops
-	.word	.LC259
+	.word	.LC258
 	.word	.LANCHOR2
-	.word	.LC260
-	.word	.LANCHOR1+2668
+	.word	.LC259
+	.word	.LANCHOR1+2449
 	.word	.LC0
-	.word	.LC261
+	.word	.LC260
 	.fnend
 	.size	ftl_sblk_dump, .-ftl_sblk_dump
 	.align	2
 	.global	zftl_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_read, %function
 zftl_read:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 48
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r6, r3
-	ldr	r3, .L4113
+	mov	r7, r3
+	ldr	r3, .L4026
 	.pad #76
 	sub	sp, sp, #76
-	mov	r8, r0
-	mov	r4, r1
-	mov	r5, r2
+	mov	r4, r0
+	mov	r6, r1
+	str	r2, [sp, #24]
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L4047
-	ldr	r0, .L4113+4
-	mov	r1, r8
-	mov	r2, r4
-	mov	r3, r5
+	beq	.L3964
+	mov	r3, r2
+	mov	r2, r1
+	mov	r1, r0
+	ldr	r0, .L4026+4
 	bl	printk
-.L4047:
-	cmp	r8, #0
-	ldreq	r3, .L4113+8
-	moveq	ip, #24576
-	ldreq	r8, [r3, #1032]
-	beq	.L4049
-.L4048:
-	cmp	r8, #3
-	bhi	.L4078
-	mov	ip, r8, asl #13
-	mov	r8, #8192
-.L4049:
-	cmp	r5, r8
-	cmpls	r4, r8
-	movcs	r7, #1
-	movcc	r7, #0
-	bcs	.L4078
-	add	r3, r4, r5
-	cmp	r3, r8
-	bhi	.L4078
-	ldr	r2, .L4113+8
-	add	r3, ip, r4
+.L3964:
+	cmp	r4, #0
+	bne	.L3965
+	ldr	r3, .L4026+8
+	mov	r4, #24576
+	ldr	r3, [r3, #1032]
+.L3966:
+	ldr	r2, [sp, #24]
+	cmp	r3, r2
+	cmpcs	r3, r6
+	movls	r5, #1
+	movhi	r5, #0
+	bls	.L3995
+	add	r2, r6, r2
+	cmp	r3, r2
+	bcc	.L3995
+	add	r3, r4, r6
+	ldr	r4, .L4026+8
 	str	r3, [sp, #28]
+	ldr	r1, [sp, #24]
+	ldr	r2, [r4, #2800]
 	ldr	r0, [sp, #28]
-	ldr	r1, [r2, #2804]
-	ldrb	r4, [r2, #2772]	@ zero_extendqisi2
-	ldr	r3, [r1, #24]
-	add	r3, r3, r5
-	str	r3, [r1, #24]
-	mov	r1, r4
+	ldr	r3, [r2, #24]
+	add	r3, r3, r1
+	str	r3, [r2, #24]
+	ldr	r3, .L4026+12
+	ldrb	r6, [r3, #-2546]	@ zero_extendqisi2
+	mov	r1, r6
 	bl	__aeabi_uidiv
-	mov	r1, r4
-	ldr	r3, [sp, #28]
+	ldr	r3, [sp, #24]
+	mov	r1, r6
+	ldr	r2, [sp, #28]
 	str	r0, [sp, #36]
-	add	r3, r3, r5
-	str	r3, [sp, #44]
+	add	r3, r3, r2
 	sub	r0, r3, #1
+	str	r3, [sp, #44]
 	bl	__aeabi_uidiv
 	ldr	r3, [sp, #36]
-	str	r7, [sp, #40]
-	ldr	r4, [sp, #36]
+	str	r5, [sp, #40]
+	ldr	r6, [sp, #36]
+	ldr	r5, .L4026+12
 	rsb	r3, r3, #1
-	ldr	r7, .L4113+12
 	add	r3, r3, r0
 	str	r0, [sp, #48]
 	str	r3, [sp, #32]
-.L4051:
+.L3968:
 	ldr	r3, [sp, #32]
 	cmp	r3, #0
-	beq	.L4110
+	bne	.L3992
+	bl	timer_get_time
+	str	r0, [r5, #-8]
+	ldr	r0, [sp, #40]
+.L3963:
+	add	sp, sp, #76
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3965:
+	cmp	r4, #3
+	bhi	.L3995
+	lsl	r4, r4, #13
+	mov	r3, #8192
+	b	.L3966
+.L3992:
 	ldr	r3, [sp, #36]
-	ldr	r8, .L4113+8
-	rsb	r2, r3, r4
-	ldr	r3, [sp, #48]
-	clz	r2, r2
-	rsb	r3, r3, r4
-	ldrb	r1, [r8, #2772]	@ zero_extendqisi2
-	clz	r3, r3
-	mov	r2, r2, lsr #5
-	mov	r9, r8
-	mov	r3, r3, lsr #5
-	uxth	r10, r1
-	orrs	fp, r3, r2
-	beq	.L4052
-	cmp	r2, #0
-	beq	.L4053
+	ldr	r2, [sp, #48]
+	ldrb	r1, [r5, #-2546]	@ zero_extendqisi2
+	cmp	r6, r2
+	cmpne	r6, r3
+	moveq	r10, #1
+	movne	r10, #0
+	uxth	r8, r1
+	bne	.L3969
+	cmp	r6, r3
+	bne	.L3970
 	ldr	r0, [sp, #28]
 	bl	__aeabi_uidivmod
-	uxth	fp, r1
-	rsb	r10, fp, r10
-	uxth	r10, r10
-	cmp	r10, r5
-	uxthhi	r10, r5
-	b	.L4052
-.L4053:
-	cmp	r3, #0
-	ldrne	r3, [sp, #28]
-	movne	fp, r2
-	moveq	fp, r3
-	addne	r3, r3, r5
-	mlsne	r1, r4, r1, r3
-	uxtbne	r10, r1
-.L4052:
-	ldr	r2, .L4113+16
+	uxth	r10, r1
+	ldr	r3, [sp, #24]
+	sub	r8, r8, r10
+	uxth	r8, r8
+	cmp	r3, r8
+	ldrhcc	r8, [sp, #24]
+.L3969:
+	ldr	r2, .L4026+16
 	mov	r3, #0
-.L4056:
+	mov	r9, r2
+.L3973:
 	ldr	r1, [r2, #20]
-	cmp	r1, r4
-	bne	.L4054
+	cmp	r6, r1
+	bne	.L3971
 	ldrb	r1, [r2, #2]	@ zero_extendqisi2
 	tst	r1, #8
-	beq	.L4054
-	ldr	r1, .L4113+8
+	beq	.L3971
 	mov	r2, #48
-	mov	r10, r10, asl #9
-	mov	r0, r6
-	add	r6, r6, r10
-	mla	r3, r2, r3, r1
-	mov	r2, r10
-	ldr	r1, [r3, #1240]
-	add	r1, r1, fp, asl #9
+	lsl	r8, r8, #9
+	mov	r0, r7
+	mla	r3, r2, r3, r4
+	add	r7, r7, r8
+	mov	r2, r8
+	ldr	r1, [r3, #1236]
+	add	r1, r1, r10, lsl #9
 	bl	ftl_memcpy
-	b	.L4055
-.L4054:
+.L3972:
+	ldr	r3, [sp, #32]
+	add	r6, r6, #1
+	sub	r3, r3, #1
+	str	r3, [sp, #32]
+.L3979:
+	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
+	ldr	r2, [sp, #32]
+	cmp	r2, #0
+	cmpne	r3, #2
+	bhi	.L3968
+	ldrb	r1, [r5, #-2535]	@ zero_extendqisi2
+	cmp	r1, #0
+	beq	.L3968
+	ldrb	r0, [r5, #-2536]	@ zero_extendqisi2
+	add	r0, r0, r0, lsl #1
+	add	r0, r9, r0, lsl #4
+	bl	sblk_read_page
+.L3981:
+	ldrb	r3, [r5, #-2535]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L3991
+	mvn	r2, #0
+	strb	r3, [r5, #-2535]
+	strb	r2, [r5, #-2536]
+	b	.L3968
+.L3970:
+	ldr	r3, [sp, #28]
+	mov	r10, #0
+	ldr	r2, [sp, #24]
+	add	r8, r3, r2
+	mls	r1, r6, r1, r8
+	uxtb	r8, r1
+	b	.L3969
+.L3971:
 	add	r3, r3, #1
 	add	r2, r2, #48
 	cmp	r3, #32
-	bne	.L4056
-	mov	r0, r4
+	bne	.L3973
+	mov	r0, r6
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
 	str	r0, [sp, #68]
-	bne	.L4057
-	mov	r0, r4
-	add	r1, sp, #68
+	bne	.L3974
 	mov	r2, #0
+	add	r1, sp, #68
+	mov	r0, r6
 	bl	pm_log2phys
-.L4057:
+.L3974:
 	ldr	r3, [sp, #68]
 	cmn	r3, #1
-	moveq	r10, #0
-	bne	.L4111
-.L4059:
-	ldrb	r3, [r9, #2772]	@ zero_extendqisi2
-	cmp	r10, r3
-	bcs	.L4055
-	mla	r3, r3, r4, r10
-	ldr	r2, [sp, #28]
-	ldr	r1, [sp, #44]
-	cmp	r3, r2
-	movcs	r2, #1
-	movcc	r2, #0
-	cmp	r3, r1
-	movcs	r2, #0
-	cmp	r2, #0
-	beq	.L4060
-	mov	r0, r6
-	mov	r1, #0
-	mov	r2, #512
-	add	r6, r6, #512
-	bl	ftl_memset
-.L4060:
-	add	r10, r10, #1
-	b	.L4059
-.L4111:
+	moveq	r8, #0
+	beq	.L3976
 	mov	r0, #0
 	bl	buf_alloc
 	subs	r3, r0, #0
-	beq	.L4062
-	ldr	r2, .L4113+8
-	ldr	r1, [r2, #2804]
+	beq	.L3979
+	ldr	r1, [r4, #2800]
 	ldr	r2, [r1, #40]
 	add	r2, r2, #1
 	str	r2, [r1, #40]
 	ldr	r2, [sp, #68]
-	str	r6, [r3, #8]
-	add	r6, r6, r10, asl #9
-	str	r4, [r3, #20]
+	str	r7, [r3, #8]
+	add	r7, r7, r8, lsl #9
+	str	r6, [r3, #20]
 	str	r2, [r3, #24]
 	str	r2, [r3, #28]
-	strb	r10, [r3, #40]
-	strb	fp, [r3, #41]
+	strb	r8, [r3, #40]
+	strb	r10, [r3, #41]
 	bl	zftl_add_read_buf
-.L4055:
-	ldr	r3, [sp, #32]
-	add	r4, r4, #1
-	sub	r3, r3, #1
-	str	r3, [sp, #32]
-.L4062:
-	ldrb	r3, [r8, #2774]	@ zero_extendqisi2
-	ldr	r2, [sp, #32]
+	b	.L3972
+.L3978:
+	mla	r3, r3, r6, r8
+	ldr	r2, [sp, #28]
+	ldr	r1, [sp, #44]
+	cmp	r2, r3
+	movls	r2, #1
+	movhi	r2, #0
+	cmp	r1, r3
+	movls	r2, #0
 	cmp	r2, #0
-	cmpne	r3, #2
-	bhi	.L4051
-	ldrb	r1, [r7, #-2529]	@ zero_extendqisi2
-	cmp	r1, #0
-	beq	.L4051
-	ldrb	r2, [r7, #-2530]	@ zero_extendqisi2
-	mov	r0, #48
-	ldr	r3, .L4113+16
-	mla	r0, r0, r2, r3
-	bl	sblk_read_page
-.L4064:
-	ldrb	r3, [r7, #-2529]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L4112
-	ldrb	r3, [r7, #-2530]	@ zero_extendqisi2
+	beq	.L3977
+	mov	r0, r7
+	add	r7, r7, #512
+	mov	r2, #512
+	mov	r1, #0
+	bl	ftl_memset
+.L3977:
+	add	r8, r8, #1
+.L3976:
+	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
+	cmp	r8, r3
+	bcc	.L3978
+	b	.L3972
+.L3991:
+	ldrb	r3, [r5, #-2536]	@ zero_extendqisi2
 	cmp	r3, #255
-	bne	.L4065
-	ldr	r1, .L4113+20
-	movw	r2, #1283
-	ldr	r0, .L4113+24
+	bne	.L3982
+	movw	r2, #1284
+	ldr	r1, .L4026+20
+	ldr	r0, .L4026+24
 	bl	printk
 	bl	dump_stack
-.L4065:
-	ldr	r3, .L4113+12
-	mov	ip, #48
-	ldr	r8, .L4113+8
-	ldr	r1, .L4113+12
-	ldrb	r10, [r3, #-2530]	@ zero_extendqisi2
-	ldr	r3, .L4113+16
-	mul	ip, ip, r10
-	add	r2, r8, ip
-	add	r3, r3, ip
+.L3982:
+	ldr	r3, .L4026+12
+	ldr	r1, .L4026+12
+	ldrb	r9, [r3, #-2536]	@ zero_extendqisi2
+	ldr	r3, .L4026+16
+	add	r2, r9, r9, lsl #1
+	add	r3, r3, r2, lsl #4
+	mov	r2, #48
+	mla	r2, r2, r9, r4
 	str	r3, [sp, #52]
-	ldr	r9, [r2, #1272]
-	ldrb	r3, [r2, #1236]	@ zero_extendqisi2
-	cmn	r9, #1
-	strb	r3, [r1, #-2530]
-	bne	.L4066
-	ldr	r2, [r8, #1092]
-	str	r9, [sp, #40]
+	ldr	r10, [r2, #1268]
+	ldrb	r3, [r2, #1232]	@ zero_extendqisi2
+	cmn	r10, #1
+	strb	r3, [r1, #-2536]
+	bne	.L3983
+	ldr	r2, [r4, #1096]
+	str	r10, [sp, #40]
 	ldr	r3, [r2, #552]
 	add	r3, r3, #1
 	str	r3, [r2, #552]
-	b	.L4067
-.L4066:
-	cmp	r9, #256
-	bne	.L4067
-	ldr	r1, .L4113+28
-	ldr	r3, [r2, #1260]
-	str	r2, [sp, #60]
-	ldrh	r0, [r1]
-	ldrb	r1, [r8, #1189]	@ zero_extendqisi2
-	mov	r8, #1
-	str	r3, [sp, #56]
-	rsb	r1, r1, #24
-	rsb	r1, r0, r1
-	mov	r1, r8, asl r1
-	sub	r1, r1, #1
-	and	r0, r1, r3, lsr r0
-	ldrb	r1, [r7, #-3130]	@ zero_extendqisi2
-	bl	__aeabi_uidiv
-	ldr	r2, [sp, #60]
-	uxth	fp, r0
-	ldr	r3, [sp, #56]
-	mov	r1, fp
-	ldr	r0, .L4113+32
-	ldr	r2, [r2, #1256]
-	bl	printk
-	mov	r0, fp
-	mov	r1, r8
-	mov	r2, #0
-	bl	gc_add_sblk
-.L4067:
-	ldr	r1, .L4113+8
-	mov	r0, #48
-	cmn	r9, #1
-	mla	r0, r0, r10, r1
+.L3984:
+	mov	r1, #48
+	cmn	r10, #1
+	mla	r1, r1, r9, r4
 	movne	r2, #0
 	moveq	r2, #1
-	ldr	r3, [r0, #1248]
-	ldr	ip, [r0, #1256]
-	ldr	lr, [r3, #4]
-	cmp	lr, ip
+	ldr	r3, [r1, #1244]
+	ldr	r0, [r1, #1252]
+	ldr	ip, [r3, #4]
+	cmp	ip, r0
 	orrne	r2, r2, #1
 	cmp	r2, #0
-	beq	.L4068
-	ldr	r9, [r0, #1240]
+	beq	.L3985
+	ldrb	r0, [r4, #1153]	@ zero_extendqisi2
 	mvn	ip, #0
-	ldr	r8, [r0, #1260]
-	ldr	r2, [r0, #1244]
-	ldrb	fp, [r0, #1276]	@ zero_extendqisi2
-	ldrb	r0, [r1, #1189]	@ zero_extendqisi2
-	ldrb	lr, [r1, #2772]	@ zero_extendqisi2
+	ldr	lr, [r1, #1256]
+	ldrb	fp, [r1, #1272]	@ zero_extendqisi2
+	ldrb	r8, [r5, #-2546]	@ zero_extendqisi2
+	mvn	ip, ip, lsl r0
+	ldr	r10, [r1, #1236]
+	ldr	r2, [r1, #1240]
 	rsb	r1, r0, #24
-	mvn	ip, ip, asl r0
-	cmp	fp, lr
-	and	r0, ip, r8, lsr r1
-	str	lr, [sp]
-	movcc	r2, r9
-	bic	r1, r8, ip, asl r1
+	and	r0, ip, lr, lsr r1
+	cmp	fp, r8
+	movcc	r2, r10
+	str	r8, [sp]
+	bic	r1, lr, ip, lsl r1
 	uxtb	r0, r0
 	bl	flash_read_page_en
-	mov	r9, r0
-.L4068:
-	ldr	ip, .L4113+8
+	mov	r10, r0
+.L3985:
 	mov	r8, #48
-	cmn	r9, #1
-	mla	r8, r8, r10, ip
+	cmn	r10, #1
+	mla	r8, r8, r9, r4
 	movne	fp, #0
 	moveq	fp, #1
-	add	r3, r8, #1232
-	add	r3, r3, #12
-	ldr	r2, [r8, #1248]
-	ldr	r1, [r8, #1256]
-	ldr	r2, [r2, #4]
-	cmp	r2, r1
-	moveq	r2, fp
-	orrne	r2, fp, #1
-	cmp	r2, #0
-	beq	.L4070
-	ldr	r1, [ip, #1092]
-	ldr	r0, .L4113+36
-	str	ip, [sp, #56]
-	ldr	r2, [r1, #552]
-	add	r2, r2, #1
-	str	r2, [r1, #552]
+	ldr	r3, [r8, #1244]
+	ldr	r2, [r8, #1252]
 	ldr	r3, [r3, #4]
-	ldr	r2, [r8, #1260]
-	ldrb	r1, [r8, #1237]	@ zero_extendqisi2
-	str	r2, [sp]
-	ldr	r2, [r3]
-	str	r2, [sp, #4]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #8]
+	cmp	r3, r2
+	moveq	r3, fp
+	orrne	r3, fp, #1
+	cmp	r3, #0
+	beq	.L3987
+	ldr	r2, [r4, #1096]
+	ldr	r0, .L4026+28
+	ldr	r3, [r2, #552]
+	add	r3, r3, #1
+	str	r3, [r2, #552]
+	ldr	r3, [r8, #1244]
+	ldrb	r1, [r8, #1233]	@ zero_extendqisi2
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #16]
 	ldr	r2, [r3, #8]
 	str	r2, [sp, #12]
-	mov	r2, r9
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #16]
+	ldr	r2, [r3, #4]
+	str	r2, [sp, #8]
+	mov	r2, r10
+	ldr	r3, [r3]
+	str	r3, [sp, #4]
 	ldr	r3, [r8, #1256]
+	str	r3, [sp]
+	ldr	r3, [r8, #1252]
 	bl	printk
-	ldr	r3, .L4113+28
-	ldr	r2, [r8, #1260]
-	ldrb	r1, [r7, #-3130]	@ zero_extendqisi2
-	ldrh	r0, [r3]
-	mov	r2, r2, lsr r0
-	ldr	ip, [sp, #56]
-	ldrb	r3, [ip, #1189]	@ zero_extendqisi2
+	ldr	r3, .L4026+32
+	ldr	r2, [r8, #1256]
+	ldrb	r1, [r5, #-3136]	@ zero_extendqisi2
+	ldrh	r0, [r3, #-2]
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
+	lsr	r2, r2, r0
 	rsb	r3, r3, #24
-	rsb	r3, r0, r3
+	sub	r3, r3, r0
 	mvn	r0, #0
-	bic	r0, r2, r0, asl r3
+	bic	r0, r2, r0, lsl r3
 	bl	__aeabi_uidiv
 	mov	r1, #0
 	uxth	r0, r0
 	bl	ftl_sblk_dump
-.L4070:
-	ldr	r8, .L4113+8
+.L3987:
 	mov	r3, #48
-	mla	r3, r3, r10, r8
-	mov	r9, r8
-	ldr	r2, [r3, #1248]
-	ldr	r3, [r3, #1256]
+	mla	r3, r3, r9, r4
+	ldr	r2, [r3, #1244]
+	ldr	r3, [r3, #1252]
 	ldr	r2, [r2, #4]
 	cmp	r2, r3
 	orrne	fp, fp, #1
 	cmp	fp, #0
-	beq	.L4071
-	ldr	r1, .L4113+20
-	movw	r2, #1319
-	ldr	r0, .L4113+24
+	beq	.L3988
+	movw	r2, #1320
+	ldr	r1, .L4026+20
+	ldr	r0, .L4026+24
 	bl	printk
 	bl	dump_stack
-.L4071:
+.L3988:
 	mov	r3, #48
-	mla	r10, r3, r10, r9
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
-	ldrb	r2, [r10, #1276]	@ zero_extendqisi2
+	mla	r9, r3, r9, r4
+	ldrb	r3, [r5, #-2546]	@ zero_extendqisi2
+	ldrb	r2, [r9, #1272]	@ zero_extendqisi2
 	cmp	r3, r2
-	ldrlsb	r3, [r10, #1238]	@ zero_extendqisi2
+	ldrbls	r3, [r9, #1234]	@ zero_extendqisi2
 	bicls	r3, r3, #8
-	strlsb	r3, [r10, #1238]
-	bls	.L4073
-	ldrb	r1, [r10, #1277]	@ zero_extendqisi2
-	mov	r2, r2, asl #9
-	ldr	r3, [r10, #1240]
-	ldr	r0, [r10, #1244]
-	add	r1, r3, r1, asl #9
+	strbls	r3, [r9, #1234]
+	bls	.L3990
+	ldrb	r1, [r9, #1273]	@ zero_extendqisi2
+	lsl	r2, r2, #9
+	ldr	r3, [r9, #1236]
+	ldr	r0, [r9, #1240]
+	add	r1, r3, r1, lsl #9
 	bl	ftl_memcpy
-.L4073:
+.L3990:
 	ldr	r1, [sp, #52]
-	ldr	r0, .L4113+40
+	ldr	r0, .L4026+36
 	bl	buf_remove_buf
 	ldr	r0, [sp, #52]
 	bl	zbuf_free
-	ldrb	r3, [r7, #-2529]	@ zero_extendqisi2
+	ldrb	r3, [r5, #-2535]	@ zero_extendqisi2
 	sub	r3, r3, #1
-	strb	r3, [r7, #-2529]
-	b	.L4064
-.L4112:
-	ldr	r1, .L4113+12
-	mvn	r2, #0
-	strb	r3, [r1, #-2529]
-	strb	r2, [r1, #-2530]
-	b	.L4051
-.L4110:
-	bl	timer_get_time
-	ldr	r3, .L4113+12
-	str	r0, [r3, #548]
-	ldr	r0, [sp, #40]
-	b	.L4050
-.L4078:
+	strb	r3, [r5, #-2535]
+	b	.L3981
+.L3983:
+	cmp	r10, #256
+	bne	.L3984
+	ldr	r1, .L4026+40
+	mov	fp, #1
+	ldrb	r0, [r4, #1153]	@ zero_extendqisi2
+	ldr	r3, [r2, #1256]
+	ldrh	ip, [r1]
+	rsb	r0, r0, #24
+	str	r2, [sp, #60]
+	ldr	r2, .L4026+12
+	sub	r0, r0, ip
+	str	r3, [sp, #56]
+	lsl	r0, fp, r0
+	ldrb	r1, [r2, #-3136]	@ zero_extendqisi2
+	sub	r0, r0, #1
+	and	r0, r0, r3, lsr ip
+	bl	__aeabi_uidiv
+	ldr	r2, [sp, #60]
+	mov	r8, r0
+	uxth	r1, r0
+	ldr	r3, [sp, #56]
+	ldr	r0, .L4026+44
+	ldr	r2, [r2, #1252]
+	bl	printk
+	mov	r2, #0
+	mov	r1, fp
+	uxth	r0, r8
+	bl	gc_add_sblk
+	b	.L3984
+.L3995:
 	mvn	r0, #0
-.L4050:
-	add	sp, sp, #76
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4114:
+	b	.L3963
+.L4027:
 	.align	2
-.L4113:
+.L4026:
 	.word	.LANCHOR2
-	.word	.LC262
+	.word	.LC261
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR0+1236
-	.word	.LANCHOR1+2684
+	.word	.LANCHOR0+1232
+	.word	.LANCHOR1+2463
 	.word	.LC0
-	.word	.LANCHOR3-3132
 	.word	.LC263
-	.word	.LC264
-	.word	.LANCHOR0+2776
+	.word	.LANCHOR3-3136
+	.word	.LANCHOR0+2771
+	.word	.LANCHOR3-3138
+	.word	.LC262
 	.fnend
 	.size	zftl_read, .-zftl_read
 	.align	2
 	.global	zftl_vendor_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_vendor_read, %function
 zftl_vendor_read:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	mov	ip, r1
 	mov	r3, r2
+	mov	r2, r1
 	add	r1, r0, #512
-	mov	r2, ip
 	mov	r0, #2
 	b	zftl_read
 	.fnend
 	.size	zftl_vendor_read, .-zftl_vendor_read
 	.align	2
 	.global	zftl_sys_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_sys_read, %function
 zftl_sys_read:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	str	lr, [sp, #-4]!
-	.save {lr}
-	mov	ip, r1
-	mov	lr, r0
+	@ link register save eliminated.
 	mov	r3, r2
-	mov	r1, lr
+	mov	r2, r1
+	mov	r1, r0
 	mov	r0, #2
-	mov	r2, ip
-	ldr	lr, [sp], #4
 	b	zftl_read
 	.fnend
 	.size	zftl_sys_read, .-zftl_sys_read
 	.align	2
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_debug_proc_write, %function
 zftl_debug_proc_write:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 88
+	@ args = 0, pretend = 0, frame = 96
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, lr}
-	.save {r4, r5, r6, r7, r8, r9, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	cmp	r2, #79
-	.pad #124
-	sub	sp, sp, #124
-	mov	r5, r2
-	add	r4, sp, #40
+	.pad #132
+	sub	sp, sp, #132
 	mvnhi	r0, #21
-	str	r4, [sp, #36]
-	bhi	.L4119
-	mov	r0, r4
+	add	r6, sp, #48
+	str	r6, [sp, #44]
+	bhi	.L4030
+	mov	r0, r6
+	mov	r4, r2
 	bl	rk_copy_from_user
 	cmp	r0, #0
 	mvnne	r0, #13
-	bne	.L4119
-	add	r3, sp, #120
-	mov	r1, r4
-	add	r3, r3, r5
+	bne	.L4030
+	add	r3, sp, #128
+	mov	r1, r6
+	add	r3, r3, r4
 	strb	r0, [r3, #-80]
-	ldr	r0, .L4144
+	ldr	r0, .L4056
 	bl	printk
-	ldr	r0, .L4144+4
-	mov	r1, r4
-	mov	r2, #1
 	mov	r3, #16
+	mov	r2, #1
+	mov	r1, r6
+	ldr	r0, .L4056+4
 	bl	rknand_print_hex
 	bl	rknand_device_lock
-	mov	r0, r4
-	ldr	r1, .L4144+8
 	mov	r2, #7
+	ldr	r1, .L4056+8
+	mov	r0, r6
 	bl	memcmp
-	subs	r6, r0, #0
-	bne	.L4120
-	ldr	r4, .L4144+12
-	movw	ip, #698
-	ldr	r0, .L4144+16
+	subs	r7, r0, #0
+	bne	.L4032
+	ldr	r5, .L4056+12
+	movw	r3, #698
 	mov	r2, #4
-	ldr	r7, .L4144+20
+	ldr	r0, .L4056+16
+	ldr	r6, .L4056+20
 	movw	r8, #65535
-	ldr	r3, [r4, #2804]
-	add	r1, r3, #704
-	ldrh	r3, [r3, ip]
+	ldr	r1, [r5, #2800]
+	ldrh	r3, [r1, r3]
+	add	r1, r1, #704
 	bl	rknand_print_hex
-	ldr	r1, [r4, #2804]
-	ldr	r0, .L4144+24
+	ldr	r1, [r5, #2800]
 	mov	r2, #2
+	ldrh	r3, [r6, #-176]
+	ldr	r0, .L4056+24
 	add	r1, r1, #416
-	ldrh	r3, [r7, #-152]
 	bl	rknand_print_hex
-.L4121:
-	ldrh	r3, [r7, #-152]
-	cmp	r6, r3
-	bge	.L4124
+.L4033:
+	ldrh	r3, [r6, #-176]
+	cmp	r7, r3
+	blt	.L4035
+.L4036:
+	bl	rknand_device_unlock
+	mov	r0, r4
+.L4030:
+	add	sp, sp, #132
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4035:
 	mov	r0, #300
 	bl	msleep
-	add	r3, r6, #208
-	ldr	r2, [r4, #2804]
-	mov	r3, r3, asl #1
+	ldr	r2, [r5, #2800]
+	add	r3, r7, #208
+	lsl	r3, r3, #1
 	ldrh	r0, [r2, r3]
 	cmp	r0, r8
-	beq	.L4122
+	beq	.L4034
 	mov	r1, #0
 	bl	ftl_sblk_dump
-.L4122:
-	add	r6, r6, #1
-	b	.L4121
-.L4120:
-	mov	r0, r4
-	ldr	r1, .L4144+28
+.L4034:
+	add	r7, r7, #1
+	b	.L4033
+.L4032:
 	mov	r2, #7
+	ldr	r1, .L4056+28
+	mov	r0, r6
 	bl	memcmp
-	subs	r6, r0, #0
-	bne	.L4125
-	ldr	r7, .L4144+12
-	movw	ip, #698
-	ldr	r0, .L4144+16
+	subs	r5, r0, #0
+	bne	.L4037
+	ldr	r8, .L4056+12
+	movw	r3, #698
 	mov	r2, #4
-	ldr	r9, .L4144+20
-	ldr	r3, [r7, #2804]
-	add	r1, r3, #704
-	ldrh	r3, [r3, ip]
+	ldr	r0, .L4056+16
+	ldr	r7, .L4056+20
+	ldr	r1, [r8, #2800]
+	ldr	r10, .L4056+32
+	ldr	fp, .L4056+36
+	ldrh	r3, [r1, r3]
+	add	r1, r1, #704
 	bl	rknand_print_hex
-	ldr	r1, [r7, #2804]
-	ldrh	r3, [r9, #-152]
+	ldr	r1, [r8, #2800]
 	mov	r2, #2
+	ldrh	r3, [r7, #-176]
+	ldr	r0, .L4056+24
 	add	r1, r1, #416
-	ldr	r0, .L4144+24
 	bl	rknand_print_hex
 	mov	r0, #50
 	bl	msleep
-	ldr	r0, .L4144+32
-	sub	r9, r9, #2528
-	add	r4, sp, #120
-	add	r1, sp, #47
-	str	r1, [r4, #-84]!
+	ldr	r0, .L4056+40
+	add	r6, sp, #128
+	add	r1, sp, #55
+	str	r1, [r6, #-84]!
 	bl	printk
-	mov	r1, r4
-	mov	r4, r6
-	ldr	r0, [sp, #36]
-	bl	rk_simple_strtoull.constprop.34
-	uxth	r8, r0
-	str	r0, [sp, #32]
-.L4127:
-	add	r6, r9, r4
-	ldr	r0, .L4144+36
-	ldrh	r1, [r9, r4]
-	ldrh	r2, [r6, #2]
-	bl	printk
-	ldrh	r3, [r4, r9]
-	cmp	r3, r8
-	bne	.L4126
-	ldrb	r3, [r7, #2772]	@ zero_extendqisi2
-	mov	r2, #4
-	ldr	r0, .L4144+40
-	ldr	r1, [r6, #4]
-	mov	r3, r3, asl #7
-	bl	rknand_print_hex
-	mov	r0, #50
-	bl	msleep
-.L4126:
-	add	r4, r4, #8
-	cmp	r4, #256
-	bne	.L4127
-	mov	r0, #300
-	add	r8, r8, #176
-	bl	msleep
-	mov	r0, #1
-	bl	buf_alloc
-	ldr	r3, [r7, #2804]
-	mov	r1, #1
-	ldr	r3, [r3, r8, asl #2]
-	str	r3, [r0, #24]
-	mov	r4, r0
+	mov	r1, r6
+	ldr	r0, [sp, #44]
+	bl	rk_simple_strtoull.constprop.33
+	str	r8, [sp, #36]
+	uxth	r3, r0
+	ldr	r8, .L4056+44
+	mov	r6, r0
+	str	r0, [sp, #40]
 	str	r3, [sp, #32]
-	bl	sblk_read_page
-	ldr	ip, [r4, #4]
-	ldr	r3, [r4, #12]
-	ldr	r0, .L4144+44
-	ldr	r2, [ip, #4]
-	str	r2, [sp]
-	ldr	r2, [ip, #8]
-	ldr	r1, [sp, #32]
-	str	r2, [sp, #4]
-	ldr	r2, [ip, #12]
-	str	r2, [sp, #8]
-	ldr	r2, [r3]
-	str	r2, [sp, #12]
-	ldr	r2, [r3, #4]
-	str	r2, [sp, #16]
-	ldr	r2, [r3, #8]
-	str	r2, [sp, #20]
-	ldr	r3, [r3, #12]
-	str	r3, [sp, #24]
-	ldr	r2, [r4, #36]
-	ldr	r3, [ip]
+.L4039:
+	add	r9, r8, r5
+	ldrh	r1, [r8, r5]
+	ldrh	r2, [r9, #2]
+	mov	r0, r10
 	bl	printk
-	ldrb	r3, [r7, #2772]	@ zero_extendqisi2
-	ldr	r0, .L4144+48
+	ldrh	r3, [r5, r8]
+	ldr	r2, [sp, #32]
+	cmp	r3, r2
+	bne	.L4038
+	ldrb	r3, [r7, #-2546]	@ zero_extendqisi2
+	mov	r0, fp
 	mov	r2, #4
-	ldr	r1, [r4, #4]
-	mov	r3, r3, asl #7
-	b	.L4143
-.L4125:
-	mov	r0, r4
-	ldr	r1, .L4144+52
-	mov	r2, #7
-	bl	memcmp
-	cmp	r0, #0
-	bne	.L4128
-	bl	dump_ftl_info
-	b	.L4124
-.L4128:
-	mov	r0, r4
-	ldr	r1, .L4144+56
-	mov	r2, #9
-	bl	memcmp
-	cmp	r0, #0
-	bne	.L4129
-	add	r1, sp, #120
-	add	r0, sp, #49
-	str	r0, [r1, #-84]!
-	bl	rk_simple_strtoull.constprop.34
-	ldr	r3, .L4144+60
-	str	r0, [sp, #32]
-	strh	r0, [r3, #-12]	@ movhi
-	bl	dump_all_list_info
-	b	.L4124
-.L4129:
-	mov	r0, r4
-	ldr	r1, .L4144+64
-	mov	r2, #8
-	bl	memcmp
-	cmp	r0, #0
-	beq	.L4124
-	mov	r0, r4
-	ldr	r1, .L4144+68
-	mov	r2, #8
-	bl	memcmp
-	cmp	r0, #0
-	bne	.L4131
-	add	r4, sp, #120
-	add	r1, sp, #48
-	ldr	r0, .L4144+32
-	str	r1, [r4, #-84]!
-	bl	printk
-	mov	r1, r4
-	ldr	r6, .L4144+12
-	ldr	r0, [sp, #36]
-	bl	rk_simple_strtoull.constprop.34
-	str	r0, [sp, #32]
+	ldr	r1, [r9, #4]
+	lsl	r3, r3, #7
+	bl	rknand_print_hex
+	mov	r0, #50
+	bl	msleep
+.L4038:
+	add	r5, r5, #8
+	cmp	r5, #256
+	bne	.L4039
+	mov	r0, #300
+	uxth	r6, r6
+	bl	msleep
 	mov	r0, #1
+	add	r6, r6, #176
 	bl	buf_alloc
+	ldr	r3, [sp, #36]
+	mov	r5, r0
 	mov	r1, #1
-	ldr	r3, [sp, #32]
-	mov	r4, r0
+	ldr	r3, [r3, #2800]
+	ldr	r3, [r3, r6, lsl #2]
 	str	r3, [r0, #24]
+	str	r3, [sp, #40]
 	bl	sblk_read_page
-	ldr	r3, [r4, #4]
-	ldr	r2, [r4, #12]
-	ldr	r0, .L4144+44
-	ldr	r1, [r3, #4]
-	str	r1, [sp]
-	ldr	r1, [r3, #8]
-	str	r1, [sp, #4]
-	ldr	r1, [r3, #12]
-	str	r1, [sp, #8]
-	ldr	r1, [r2]
-	str	r1, [sp, #12]
-	ldr	r1, [r2, #4]
-	str	r1, [sp, #16]
+	ldr	r2, [r5, #12]
+	ldr	r3, [r5, #4]
+	ldr	r0, .L4056+48
+	ldr	r1, [r2, #12]
+	str	r1, [sp, #24]
 	ldr	r1, [r2, #8]
 	str	r1, [sp, #20]
-	ldr	r2, [r2, #12]
-	ldr	r1, [sp, #32]
-	str	r2, [sp, #24]
-	ldr	r2, [r4, #36]
+	ldr	r1, [r2, #4]
+	str	r1, [sp, #16]
+	ldr	r2, [r2]
+	ldr	r1, [sp, #40]
+	str	r2, [sp, #12]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	ldr	r2, [r3, #8]
+	str	r2, [sp, #4]
+	ldr	r2, [r3, #4]
+	str	r2, [sp]
 	ldr	r3, [r3]
+	ldr	r2, [r5, #36]
 	bl	printk
-	ldrb	r3, [r6, #2772]	@ zero_extendqisi2
-	ldr	r0, .L4144+72
+	ldrb	r3, [r7, #-2546]	@ zero_extendqisi2
 	mov	r2, #4
-	ldr	r1, [r4, #4]
-	mov	r3, r3, asl #7
+	ldr	r1, [r5, #4]
+	ldr	r0, .L4056+52
+	lsl	r3, r3, #7
+.L4055:
 	bl	rknand_print_hex
-	ldrb	r3, [r6, #2772]	@ zero_extendqisi2
-	ldr	r0, .L4144+76
-	mov	r2, #4
-	ldr	r1, [r4, #12]
-	mov	r3, r3, asl #1
-.L4143:
-	bl	rknand_print_hex
-	mov	r0, r4
+	mov	r0, r5
 	bl	zbuf_free
-	b	.L4124
-.L4131:
-	mov	r0, r4
-	ldr	r1, .L4144+80
-	mov	r2, #8
-	bl	memcmp
-	subs	r6, r0, #0
-	bne	.L4132
-	add	r4, sp, #120
-	add	r1, sp, #48
-	ldr	r0, .L4144+32
-	str	r1, [r4, #-84]!
-	bl	printk
-	mov	r1, r4
-	ldr	r0, [sp, #36]
-	bl	rk_simple_strtoull.constprop.34
-	mov	r1, r6
-	str	r0, [sp, #32]
-	uxth	r0, r0
-	bl	ftl_sblk_dump
-	b	.L4124
-.L4132:
-	mov	r0, r4
-	ldr	r1, .L4144+84
-	mov	r2, #10
+	b	.L4036
+.L4037:
+	mov	r2, #7
+	ldr	r1, .L4056+56
+	mov	r0, r6
 	bl	memcmp
 	cmp	r0, #0
-	bne	.L4133
-	add	r4, sp, #120
-	add	r1, sp, #50
-	ldr	r0, .L4144+32
-	str	r1, [r4, #-84]!
-	bl	printk
-	mov	r1, r4
-	ldr	r0, [sp, #36]
-	bl	rk_simple_strtoull.constprop.34
-	ldr	r3, .L4144+88
-	str	r0, [sp, #32]
-	str	r0, [r3]
-	b	.L4124
-.L4133:
-	mov	r0, r4
-	ldr	r1, .L4144+92
+	bne	.L4040
+	bl	dump_ftl_info
+	b	.L4036
+.L4040:
+	mov	r2, #9
+	ldr	r1, .L4056+60
+	mov	r0, r6
+	bl	memcmp
+	cmp	r0, #0
+	bne	.L4041
+	add	r1, sp, #128
+	add	r0, sp, #57
+	str	r0, [r1, #-84]!
+	bl	rk_simple_strtoull.constprop.33
+	ldr	r3, .L4056+64
+	str	r0, [sp, #40]
+	strh	r0, [r3, #-4]	@ movhi
+	bl	dump_all_list_info
+	b	.L4036
+.L4041:
 	mov	r2, #8
+	ldr	r1, .L4056+68
+	mov	r0, r6
+	bl	memcmp
+	cmp	r0, #0
+	beq	.L4036
+	mov	r2, #8
+	ldr	r1, .L4056+72
+	mov	r0, r6
+	bl	memcmp
+	cmp	r0, #0
+	bne	.L4043
+	add	r5, sp, #128
+	add	r1, sp, #56
+	ldr	r0, .L4056+40
+	str	r1, [r5, #-84]!
+	bl	printk
+	mov	r1, r5
+	ldr	r0, [sp, #44]
+	bl	rk_simple_strtoull.constprop.33
+	str	r0, [sp, #40]
+	mov	r0, #1
+	bl	buf_alloc
+	ldr	r3, [sp, #40]
+	mov	r5, r0
+	mov	r1, #1
+	ldr	r6, .L4056+20
+	str	r3, [r0, #24]
+	bl	sblk_read_page
+	ldr	r2, [r5, #12]
+	ldr	r3, [r5, #4]
+	ldr	r0, .L4056+48
+	ldr	r1, [r2, #12]
+	str	r1, [sp, #24]
+	ldr	r1, [r2, #8]
+	str	r1, [sp, #20]
+	ldr	r1, [r2, #4]
+	str	r1, [sp, #16]
+	ldr	r2, [r2]
+	ldr	r1, [sp, #40]
+	str	r2, [sp, #12]
+	ldr	r2, [r3, #12]
+	str	r2, [sp, #8]
+	ldr	r2, [r3, #8]
+	str	r2, [sp, #4]
+	ldr	r2, [r3, #4]
+	str	r2, [sp]
+	ldr	r3, [r3]
+	ldr	r2, [r5, #36]
+	bl	printk
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	mov	r2, #4
+	ldr	r1, [r5, #4]
+	ldr	r0, .L4056+76
+	lsl	r3, r3, #7
+	bl	rknand_print_hex
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	mov	r2, #4
+	ldr	r1, [r5, #12]
+	ldr	r0, .L4056+80
+	lsl	r3, r3, #1
+	b	.L4055
+.L4043:
+	mov	r2, #8
+	ldr	r1, .L4056+84
+	mov	r0, r6
+	bl	memcmp
+	subs	r7, r0, #0
+	bne	.L4044
+	add	r5, sp, #128
+	add	r1, sp, #56
+	ldr	r0, .L4056+40
+	str	r1, [r5, #-84]!
+	bl	printk
+	mov	r1, r5
+	ldr	r0, [sp, #44]
+	bl	rk_simple_strtoull.constprop.33
+	mov	r1, r7
+	str	r0, [sp, #40]
+	uxth	r0, r0
+	bl	ftl_sblk_dump
+	b	.L4036
+.L4044:
+	mov	r2, #10
+	ldr	r1, .L4056+88
+	mov	r0, r6
+	bl	memcmp
+	cmp	r0, #0
+	bne	.L4045
+	add	r1, sp, #58
+	add	r5, sp, #128
+	ldr	r0, .L4056+40
+	str	r1, [r5, #-84]!
+	bl	printk
+	mov	r1, r5
+	ldr	r0, [sp, #44]
+	bl	rk_simple_strtoull.constprop.33
+	ldr	r3, .L4056+92
+	str	r0, [sp, #40]
+	str	r0, [r3]
+	b	.L4036
+.L4045:
+	mov	r0, r6
+	mov	r2, #8
+	ldr	r1, .L4056+96
 	bl	memcmp
 	subs	r6, r0, #0
-	bne	.L4134
-	add	r4, sp, #120
-	add	r1, sp, #48
-	ldr	r0, .L4144+32
-	str	r1, [r4, #-84]!
+	bne	.L4046
+	add	r5, sp, #128
+	add	r1, sp, #56
+	ldr	r0, .L4056+40
+	str	r1, [r5, #-84]!
 	bl	printk
-	mov	r1, r4
-	ldr	r0, [sp, #36]
-	bl	rk_simple_strtoull.constprop.34
-	mov	r4, r0
+	mov	r1, r5
+	ldr	r0, [sp, #44]
+	bl	rk_simple_strtoull.constprop.33
+	mov	r5, r0
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
-	str	r0, [sp, #32]
-	bne	.L4135
-	mov	r0, r4
-	add	r1, sp, #32
+	str	r0, [sp, #40]
+	bne	.L4047
 	mov	r2, r6
-	bl	pm_log2phys
-.L4135:
-	mov	r1, r4
-	ldr	r2, [sp, #32]
-	ldr	r0, .L4144+96
-	bl	printk
-	b	.L4124
-.L4134:
-	ldr	r0, .L4144+100
-	bl	printk
-	ldr	r0, .L4144+104
-	bl	printk
-	ldr	r0, .L4144+108
-	bl	printk
-	ldr	r0, .L4144+112
-	bl	printk
-	ldr	r0, .L4144+116
-	bl	printk
-	ldr	r0, .L4144+120
-	bl	printk
-	ldr	r0, .L4144+124
-	bl	printk
-	ldr	r0, .L4144+128
-	bl	printk
-	ldr	r0, .L4144+132
-	bl	printk
-.L4124:
-	bl	rknand_device_unlock
+	add	r1, sp, #40
 	mov	r0, r5
-.L4119:
-	add	sp, sp, #124
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L4145:
+	bl	pm_log2phys
+.L4047:
+	ldr	r2, [sp, #40]
+	mov	r1, r5
+	ldr	r0, .L4056+100
+	bl	printk
+	b	.L4036
+.L4046:
+	ldr	r0, .L4056+104
+	bl	printk
+	ldr	r0, .L4056+108
+	bl	printk
+	ldr	r0, .L4056+112
+	bl	printk
+	ldr	r0, .L4056+116
+	bl	printk
+	ldr	r0, .L4056+120
+	bl	printk
+	ldr	r0, .L4056+124
+	bl	printk
+	ldr	r0, .L4056+128
+	bl	printk
+	ldr	r0, .L4056+132
+	bl	printk
+	ldr	r0, .L4056+136
+	bl	printk
+	b	.L4036
+.L4057:
 	.align	2
-.L4144:
+.L4056:
+	.word	.LC264
 	.word	.LC265
 	.word	.LC266
-	.word	.LC267
 	.word	.LANCHOR0
-	.word	.LC268
+	.word	.LC267
 	.word	.LANCHOR3
+	.word	.LC268
 	.word	.LC269
-	.word	.LC270
 	.word	.LC271
 	.word	.LC272
+	.word	.LC270
+	.word	.LANCHOR3-2532
+	.word	.LC245
 	.word	.LC273
-	.word	.LC246
 	.word	.LC274
 	.word	.LC275
+	.word	.LANCHOR3-3072
 	.word	.LC276
-	.word	.LANCHOR3-3056
 	.word	.LC277
+	.word	.LC218
+	.word	.LC240
 	.word	.LC278
-	.word	.LC219
-	.word	.LC241
 	.word	.LC279
-	.word	.LC280
 	.word	.LANCHOR2
+	.word	.LC280
 	.word	.LC281
 	.word	.LC282
 	.word	.LC283
@@ -25010,418 +25315,442 @@
 	.word	.LC288
 	.word	.LC289
 	.word	.LC290
-	.word	.LC291
 	.fnend
 	.size	zftl_debug_proc_write, .-zftl_debug_proc_write
+	.global	__aeabi_idivmod
 	.align	2
 	.global	ftl_update_l2p_map
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_update_l2p_map, %function
 ftl_update_l2p_map:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 16
+	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r6, r0
-	ldr	r5, .L4177
-	.pad #20
-	sub	sp, sp, #20
-	ldrb	r7, [r0, #9]	@ zero_extendqisi2
-	sub	r3, r5, #3088
-	ldrh	r4, [r0, #12]
+	mov	r7, r0
+	ldr	r6, .L4088
+	.pad #28
+	sub	sp, sp, #28
+	ldrb	r8, [r0, #9]	@ zero_extendqisi2
+	sub	r3, r6, #3088
+	ldr	r4, [r6, #-2556]
 	ldrh	r3, [r3, #-8]
-	mul	r7, r7, r3
-	ldr	r3, [r5, #-2548]
-	add	r4, r3, r4, asl #2
-	sub	r3, r7, #-1073741823
-	ldr	r3, [r4, r3, asl #2]
+	mul	r8, r8, r3
+	ldrh	r3, [r0, #12]
+	add	r4, r4, r3, lsl #2
+	sub	r3, r8, #-1073741823
+	ldr	r3, [r4, r3, lsl #2]
 	cmn	r3, #1
-	beq	.L4147
-	ldr	r1, .L4177+4
+	beq	.L4059
 	movw	r2, #1998
-	ldr	r0, .L4177+8
+	ldr	r1, .L4088+4
+	ldr	r0, .L4088+8
 	bl	printk
 	bl	dump_stack
-.L4147:
+.L4059:
 	mov	r5, #0
 	sub	r4, r4, #4
-	mov	r9, r5
-.L4148:
-	cmp	r9, r7
-	beq	.L4176
-	ldr	r8, [r4, #4]!
-	cmn	r8, #1
-	beq	.L4149
-	ldr	r3, .L4177+12
-	mov	r0, r8
-	ldrb	r1, [r3, #2772]	@ zero_extendqisi2
-	mov	r1, r1, asl #7
-	bl	__aeabi_uidiv
-	ldr	r3, .L4177+16
+	mov	r10, r5
+.L4060:
+	cmp	r10, r8
+	bne	.L4066
+	ldr	r3, .L4088+12
+	ldr	r4, .L4088+16
 	ldr	r3, [r3]
 	tst	r3, #4096
-	uxth	fp, r0
-	beq	.L4150
-	ldr	r0, .L4177+20
-	mov	r1, fp
-	mov	r2, r8
-	mov	r3, r9
+	beq	.L4067
+	ldrh	r1, [r7]
+	ldr	r2, [r4, #1092]
+	ldr	r0, .L4088+20
+	lsl	r3, r1, #1
+	ldrh	r3, [r2, r3]
+	mov	r2, r5
 	bl	printk
-.L4150:
-	mov	r8, r4
-	mov	r10, r9
-.L4153:
-	ldr	r0, [r8]
-	cmn	r0, #1
-	beq	.L4151
-	ldr	r3, .L4177+12
-	ldrb	r1, [r3, #2772]	@ zero_extendqisi2
-	mov	r1, r1, asl #7
+.L4067:
+	ldrh	r3, [r7]
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
+	strh	r5, [r2, r3]	@ movhi
+	add	sp, sp, #28
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4066:
+	ldr	r9, [r4, #4]!
+	cmn	r9, #1
+	beq	.L4061
+	ldrb	r1, [r6, #-2546]	@ zero_extendqisi2
+	mov	r0, r9
+	lsl	r1, r1, #7
 	bl	__aeabi_uidiv
-	uxth	r0, r0
-	cmp	r0, fp
-	bne	.L4151
-	ldrb	r3, [r6, #9]	@ zero_extendqisi2
-	mov	r0, r10
-	mov	r1, r3
+	uxth	r3, r0
 	str	r3, [sp, #4]
-	bl	__aeabi_idiv
-	ldr	r2, .L4177+24
-	ldrh	r2, [r2]
+	ldr	r3, .L4088+12
+	ldr	r3, [r3]
+	tst	r3, #4096
+	beq	.L4062
+	mov	r3, r10
+	mov	r2, r9
+	ldr	r1, [sp, #4]
+	ldr	r0, .L4088+24
+	bl	printk
+.L4062:
+	mov	r9, r4
+	mov	fp, r10
+.L4065:
+	ldr	r0, [r9]
+	cmn	r0, #1
+	beq	.L4063
+	ldrb	r1, [r6, #-2546]	@ zero_extendqisi2
+	lsl	r1, r1, #7
+	bl	__aeabi_uidiv
 	ldr	r3, [sp, #4]
-	mls	r3, r3, r0, r10
-	add	r3, r6, r3, asl #1
-	ldrh	r3, [r3, #16]
-	mla	r2, r2, r3, r0
-	ldr	r0, .L4177+28
-	str	r2, [sp, #12]
-	ldr	r1, [r8]
+	uxth	r0, r0
+	cmp	r3, r0
+	bne	.L4063
+	ldrb	r3, [r7, #9]	@ zero_extendqisi2
+	mov	r0, fp
+	mov	r1, r3
+	str	r3, [sp, #12]
+	bl	__aeabi_idivmod
+	ldr	r2, .L4088+28
+	add	r1, r7, r1, lsl #1
+	ldr	r3, [sp, #12]
+	ldrh	r0, [r1, #16]
+	ldrh	r2, [r2]
+	mov	r1, r3
+	mul	r2, r2, r0
+	mov	r0, fp
+	str	r2, [sp, #8]
+	bl	__aeabi_idiv
+	ldr	r2, [sp, #8]
+	add	r2, r2, r0
+	ldr	r0, .L4088+32
+	str	r2, [sp, #20]
+	ldr	r1, [r9]
 	bl	pm_ppa_update_check
 	cmp	r0, #0
-	beq	.L4152
-	ldr	r3, .L4177
+	beq	.L4064
+	mov	r3, r8
 	mov	r2, #4
-	ldr	r0, .L4177+32
-	ldr	r1, [r3, #-2548]
-	mov	r3, r7
+	ldr	r1, [r6, #-2556]
+	ldr	r0, .L4088+36
 	bl	rknand_print_hex
-.L4152:
+.L4064:
 	add	r5, r5, #1
-	ldr	r0, [r8]
-	add	r1, sp, #12
 	mov	r2, #1
 	uxth	r5, r5
+	add	r1, sp, #20
+	ldr	r0, [r9]
 	bl	pm_log2phys
 	mvn	r3, #0
-	str	r3, [r8]
-.L4151:
+	str	r3, [r9]
+.L4063:
+	add	fp, fp, #1
+	add	r9, r9, #4
+	cmp	r8, fp
+	bne	.L4065
+.L4061:
 	add	r10, r10, #1
-	add	r8, r8, #4
-	cmp	r10, r7
-	bne	.L4153
-.L4149:
-	add	r9, r9, #1
-	b	.L4148
-.L4176:
-	ldr	r3, .L4177+16
-	ldr	r4, .L4177+12
-	ldr	r3, [r3]
-	tst	r3, #4096
-	beq	.L4155
-	ldrh	r1, [r6]
-	mov	r2, r5
-	ldr	ip, [r4, #1088]
-	ldr	r0, .L4177+36
-	mov	r3, r1, asl #1
-	ldrh	r3, [ip, r3]
-	bl	printk
-.L4155:
-	ldrh	r3, [r6]
-	ldr	r2, [r4, #1088]
-	mov	r3, r3, asl #1
-	strh	r5, [r2, r3]	@ movhi
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4178:
+	b	.L4060
+.L4089:
 	.align	2
-.L4177:
+.L4088:
 	.word	.LANCHOR3
-	.word	.LANCHOR1+2696
+	.word	.LANCHOR1+2473
 	.word	.LC0
-	.word	.LANCHOR0
 	.word	.LANCHOR2
-	.word	.LC292
-	.word	.LANCHOR3-3066
-	.word	.LC293
+	.word	.LANCHOR0
 	.word	.LC294
-	.word	.LC295
+	.word	.LC291
+	.word	.LANCHOR3-3074
+	.word	.LC292
+	.word	.LC293
 	.fnend
 	.size	ftl_update_l2p_map, .-ftl_update_l2p_map
 	.align	2
 	.global	ftl_alloc_new_data_sblk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_alloc_new_data_sblk, %function
 ftl_alloc_new_data_sblk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
-	mov	r6, r0
-	ldrh	r5, [r0]
+	mov	r5, r0
+	ldrh	r6, [r0]
 	bl	ftl_update_l2p_map
 	bl	pm_flush
-	ldrh	r0, [r6]
+	ldrh	r0, [r5]
 	movw	r3, #65535
 	cmp	r0, r3
-	beq	.L4180
+	beq	.L4091
 	bl	zftl_insert_data_list
-.L4180:
-	ldr	r4, .L4188
-	mov	r0, r6
-	ldr	r1, [r4, #1092]
+.L4091:
+	ldr	r4, .L4099
+	mov	r0, r5
+	ldr	r1, [r4, #1096]
 	add	r1, r1, #16
-	cmp	r1, r6
-	movw	r6, #65535
+	cmp	r5, r1
+	movw	r5, #65535
 	moveq	r1, #2
 	movne	r1, #3
 	bl	ftl_open_sblk_init
-	ldr	r3, [r4, #1092]
-	cmp	r5, r6
+	ldr	r3, [r4, #1096]
+	cmp	r6, r5
 	ldr	r3, [r3, #560]
-	rsb	r3, r5, r3
+	sub	r3, r3, r6
 	clz	r3, r3
-	mov	r3, r3, lsr #5
+	lsr	r3, r3, #5
 	moveq	r3, #0
 	cmp	r3, #0
-	beq	.L4182
-	mov	r1, r5
-	ldr	r0, .L4188+4
+	beq	.L4093
+	mov	r1, r6
+	ldr	r0, .L4099+4
 	bl	printk
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r4, #1096]
 	ldr	r0, [r3, #564]
 	bl	gc_mark_bad_ppa
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r4, #1096]
 	mvn	r2, #0
-	str	r6, [r3, #560]
+	str	r5, [r3, #560]
 	str	r2, [r3, #564]
-.L4182:
+.L4093:
 	bl	ftl_ext_info_flush
 	mov	r0, #0
 	bl	ftl_info_flush
 	bl	lpa_rebuild_hash
 	mov	r0, #0
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L4189:
+	pop	{r4, r5, r6, pc}
+.L4100:
 	.align	2
-.L4188:
+.L4099:
 	.word	.LANCHOR0
-	.word	.LC296
+	.word	.LC295
 	.fnend
 	.size	ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk
 	.align	2
 	.global	ftl_write_commit
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	ftl_write_commit, %function
 ftl_write_commit:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.pad #36
 	sub	sp, sp, #36
-	ldr	r7, .L4258
-	mov	r8, r7
-.L4191:
-	ldrb	r2, [r7, #2800]	@ zero_extendqisi2
+	ldr	r8, .L4167
+	mov	r9, r8
+.L4102:
+	ldrb	r2, [r8, #2796]	@ zero_extendqisi2
 	cmp	r2, #0
-	beq	.L4193
-	ldrb	r3, [r7, #2824]	@ zero_extendqisi2
+	beq	.L4104
+	ldrb	r3, [r8, #2820]	@ zero_extendqisi2
 	sub	r2, r2, #1
-	strb	r2, [r7, #2800]
-	str	r3, [sp, #16]
+	ldr	r1, .L4167+4
+	strb	r2, [r8, #2796]
+	str	r3, [sp, #12]
+	add	r3, r3, r3, lsl #1
+	add	r3, r1, r3, lsl #4
+	ldr	r1, [sp, #12]
+	str	r3, [sp, #20]
 	mov	r3, #48
-	ldr	r1, [sp, #16]
-	mul	r3, r3, r1
-	ldr	r1, .L4258+4
-	add	r1, r1, r3
-	add	r3, r7, r3
-	str	r1, [sp, #20]
-	ldr	r2, [r3, #1256]
-	ldrb	r1, [r3, #1236]	@ zero_extendqisi2
-	ldr	r3, [r7, #2784]
+	mla	r3, r3, r1, r8
+	ldrb	r1, [r3, #1232]	@ zero_extendqisi2
+	ldr	r2, [r3, #1252]
+	ldr	r3, [r8, #2780]
+	strb	r1, [r8, #2820]
 	cmp	r2, r3
-	strb	r1, [r7, #2824]
-	bcc	.L4194
-	ldr	r1, .L4258+8
-	movw	r2, #606
-	ldr	r0, .L4258+12
+	bcc	.L4106
+	movw	r2, #607
+	ldr	r1, .L4167+8
+	ldr	r0, .L4167+12
 	bl	printk
 	bl	dump_stack
-.L4194:
-	ldr	r2, [sp, #16]
+.L4106:
+	ldr	r2, [sp, #12]
 	mov	r3, #48
-	ldr	r1, [r8, #2784]
-	mla	r2, r3, r2, r8
-	ldr	r9, [r2, #1256]
-	cmp	r9, r1
-	bcc	.L4195
+	mla	r3, r3, r2, r9
+	ldr	r2, [r9, #2780]
+	ldr	r7, [r3, #1252]
+	cmp	r7, r2
+	bcc	.L4107
 	ldr	r0, [sp, #20]
 	bl	zbuf_free
 	mvn	r0, #0
-	b	.L4254
-.L4195:
-	ldr	r1, [r2, #1248]
-	ldr	fp, [r2, #1240]
-	ldrb	r5, [r2, #1277]	@ zero_extendqisi2
-	ldrb	r2, [r2, #1276]	@ zero_extendqisi2
-	str	r1, [sp, #8]
-	str	r2, [sp, #12]
-	ldrb	r2, [r7, #2801]	@ zero_extendqisi2
-	cmp	r2, #0
-	beq	.L4197
-	ldr	r2, .L4258+16
-	ldrb	r4, [r2, #-96]	@ zero_extendqisi2
-	ldr	r2, .L4258+4
-	mla	r4, r3, r4, r2
-.L4198:
-	ldrb	r2, [r4]	@ zero_extendqisi2
-	cmp	r2, #255
-	ldrne	r1, .L4258+4
-	mlane	r4, r3, r2, r1
-	bne	.L4198
-.L4256:
+.L4101:
+	add	sp, sp, #36
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4107:
+	ldr	r2, [r3, #1244]
+	ldr	fp, [r3, #1236]
+	ldrb	r5, [r3, #1273]	@ zero_extendqisi2
+	ldrb	r3, [r3, #1272]	@ zero_extendqisi2
+	str	r2, [sp, #8]
+	str	r3, [sp, #16]
+	ldrb	r3, [r9, #2797]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L4109
+	ldr	r6, .L4167+16
+	ldr	r3, .L4167+4
+	ldrb	r4, [r6, #-88]	@ zero_extendqisi2
+	add	r4, r4, r4, lsl #1
+	add	r4, r3, r4, lsl #4
+.L4110:
+	ldrb	r3, [r4]	@ zero_extendqisi2
+	cmp	r3, #255
+	bne	.L4111
 	ldr	r3, [r4, #20]
-	cmp	r3, r9
-	bne	.L4197
-	ldr	r3, [sp, #12]
-	mov	r1, r5, asl #9
+	cmp	r7, r3
+	bne	.L4109
+	ldr	r3, [sp, #16]
+	lsl	r5, r5, #9
 	ldr	r0, [r4, #4]
-	mov	r2, r3, asl #9
-	add	r0, r0, r1
-	add	r1, fp, r1
+	add	r1, fp, r5
+	lsl	r2, r3, #9
+	add	r0, r0, r5
 	bl	ftl_memcpy
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
-	ldr	r1, [r4, #12]
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
 	mov	r0, #2
-	sub	r3, r3, #2
 	ldr	r2, [r4, #4]
+	ldr	r1, [r4, #12]
+	sub	r3, r3, #2
+	add	r2, r2, r3, lsl #9
 	add	r1, r1, #16
-	add	r2, r2, r3, asl #9
 	bl	ftl_debug_info_fill
 	ldr	r0, [sp, #20]
 	bl	zbuf_free
-	b	.L4191
-.L4197:
-	mov	r0, r9
+	b	.L4102
+.L4111:
+	ldr	r2, .L4167+4
+	add	r3, r3, r3, lsl #1
+	add	r4, r2, r3, lsl #4
+	b	.L4110
+.L4109:
+	mov	r0, r7
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
 	str	r0, [sp, #28]
-	bne	.L4201
-	mov	r0, r9
-	add	r1, sp, #28
+	bne	.L4113
 	mov	r2, #0
+	add	r1, sp, #28
+	mov	r0, r7
 	bl	pm_log2phys
-.L4201:
-	ldr	r6, [r8, #1092]
+.L4113:
+	ldr	r6, [r9, #1096]
 	mov	r1, #0
-	ldr	r3, .L4258+4
+	ldr	r3, .L4167+4
 	mov	r4, r1
 	ldr	ip, [sp, #28]
 	add	r6, r6, #16
 	add	r0, r3, #1536
-.L4203:
+.L4115:
 	ldr	r2, [r3, #20]
-	cmp	r2, r9
-	bne	.L4202
+	cmp	r7, r2
+	bne	.L4114
 	ldrb	r2, [r3, #2]	@ zero_extendqisi2
 	tst	r2, #8
-	bicne	r2, r2, #8
-	strneb	r2, [r3, #2]
 	ldrne	r4, [r3, #4]
 	movne	r1, #1
 	ldrne	ip, [r3, #24]
-.L4202:
+	bicne	r2, r2, #8
+	strbne	r2, [r3, #2]
+.L4114:
 	add	r3, r3, #48
 	cmp	r3, r0
-	bne	.L4203
-	ldrb	r3, [r8, #2772]	@ zero_extendqisi2
+	bne	.L4115
+	ldr	r3, .L4167+16
 	cmp	r1, #0
-	ldr	r2, [sp, #12]
+	ldr	r2, [sp, #16]
 	strne	ip, [sp, #28]
+	ldrb	r3, [r3, #-2546]	@ zero_extendqisi2
 	cmp	r2, r3
-	bcs	.L4230
+	bcs	.L4142
 	cmp	r4, #0
-	beq	.L4206
+	beq	.L4118
 	cmp	r5, #0
-	beq	.L4207
-	mov	r0, fp
+	beq	.L4119
+	lsl	r2, r5, #9
 	mov	r1, r4
-	mov	r2, r5, asl #9
+	mov	r0, fp
 	bl	ftl_memcpy
-	ldr	r6, [r7, #1092]
+	ldr	r6, [r9, #1096]
 	add	r6, r6, #48
-.L4207:
-	ldr	r3, [sp, #12]
-	ldrb	r10, [r8, #2772]	@ zero_extendqisi2
-	add	r2, r5, r3
-	cmp	r2, r10
-	ldrcs	r6, [r7, #1092]
+.L4119:
+	ldr	r3, [sp, #16]
+	add	r5, r5, r3
+	ldr	r3, .L4167+16
+	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
+	cmp	r5, r2
+	ldrcs	r6, [r9, #1096]
 	addcs	r6, r6, #16
-	bcs	.L4230
-	mov	r1, r2, asl #9
-	rsb	r2, r2, r10
-	add	r0, fp, r1
-	add	r1, r4, r1
-	mov	r2, r2, asl #9
+	bcs	.L4142
+	lsl	r0, r5, #9
+	sub	r2, r2, r5
+	lsl	r2, r2, #9
+	add	r1, r4, r0
+	add	r0, fp, r0
 	bl	ftl_memcpy
-	b	.L4230
-.L4206:
+.L4142:
+	mov	r10, #0
+	b	.L4117
+.L4118:
 	ldr	r3, [sp, #28]
 	cmn	r3, #1
-	beq	.L4209
+	beq	.L4121
 	mov	r0, #1
 	bl	buf_alloc
-	mov	r1, #1
 	ldr	r3, [sp, #28]
 	mov	r4, r0
-	str	r9, [r0, #20]
+	str	r7, [r0, #20]
+	mov	r1, #1
 	str	r3, [r0, #24]
 	bl	sblk_read_page
 	ldr	r3, [r4, #12]
 	ldr	r2, [r3, #4]
 	ldr	r10, [r3, #12]
-	cmp	r2, r9
+	cmp	r7, r2
 	add	r10, r10, #1
-	bne	.L4210
+	bne	.L4122
 	ldr	r2, [r4, #36]
 	cmn	r2, #1
-	bne	.L4211
-.L4210:
-	ldr	ip, [r4, #24]
-	mvn	r0, #0
-	ldrb	r2, [r8, #1189]	@ zero_extendqisi2
-	ldrb	lr, [r8, #2772]	@ zero_extendqisi2
+	bne	.L4123
+.L4122:
+	ldrb	r2, [r9, #1153]	@ zero_extendqisi2
+	mvn	ip, #0
+	ldr	lr, [r4, #24]
 	rsb	r1, r2, #24
-	mvn	r2, r0, asl r2
-	and	r0, r2, ip, lsr r1
-	str	lr, [sp]
-	bic	r1, ip, r2, asl r1
+	mvn	ip, ip, lsl r2
+	ldr	r2, .L4167+16
+	and	r0, ip, lr, lsr r1
+	bic	r1, lr, ip, lsl r1
+	ldrb	r2, [r2, #-2546]	@ zero_extendqisi2
 	uxtb	r0, r0
+	str	r2, [sp]
 	ldr	r2, [r4, #4]
 	bl	flash_read_page_en
 	str	r0, [r4, #36]
-.L4211:
+.L4123:
 	ldr	r3, [r4, #12]
 	ldr	r3, [r3, #4]
-	cmp	r3, r9
-	bne	.L4212
+	cmp	r7, r3
+	bne	.L4124
 	ldr	r3, [r4, #36]
 	cmn	r3, #1
-	bne	.L4213
-.L4212:
-	ldr	r2, [r7, #1092]
-	ldr	r0, .L4258+20
+	bne	.L4125
+.L4124:
+	ldr	r2, [r8, #1096]
+	ldr	r0, .L4167+20
 	ldr	r3, [r2, #552]
 	add	r3, r3, #1
 	str	r3, [r2, #552]
@@ -25429,155 +25758,127 @@
 	ldrb	r1, [r4, #1]	@ zero_extendqisi2
 	ldr	r2, [sp, #28]
 	str	r3, [sp]
-	mov	r3, r9
+	mov	r3, r7
 	bl	printk
-	mov	r2, #4
-	ldr	r0, .L4258+24
-	mov	r3, r2
+	mov	r3, #4
 	ldr	r1, [r4, #12]
+	mov	r2, r3
+	ldr	r0, .L4167+24
 	bl	rknand_print_hex
-.L4213:
+.L4125:
 	ldr	r3, [r4, #12]
 	ldr	r3, [r3, #4]
-	cmp	r3, r9
-	bne	.L4214
+	cmp	r7, r3
+	bne	.L4126
 	ldr	r3, [r4, #36]
 	cmn	r3, #1
-	bne	.L4215
-.L4214:
-	ldr	r1, .L4258+8
-	movw	r2, #698
-	ldr	r0, .L4258+12
+	bne	.L4127
+.L4126:
+	movw	r2, #699
+	ldr	r1, .L4167+8
+	ldr	r0, .L4167+12
 	bl	printk
 	bl	dump_stack
-.L4215:
+.L4127:
 	cmp	r5, #0
-	beq	.L4216
+	beq	.L4128
 	ldr	r3, [sp, #28]
-	mov	r2, r5, asl #9
+	lsl	r2, r5, #9
 	cmn	r3, #1
-	beq	.L4217
-	mov	r0, fp
+	beq	.L4129
 	ldr	r1, [r4, #4]
-	bl	ftl_memcpy
-	b	.L4218
-.L4209:
-	cmp	r5, #0
-	moveq	r4, r5
-	moveq	r10, r5
-	beq	.L4216
-	mov	r2, r5, asl #9
-	mov	r10, r4
-.L4217:
 	mov	r0, fp
-	mov	r1, #0
-	bl	ftl_memset
-.L4218:
-	ldr	r6, [r7, #1092]
+	bl	ftl_memcpy
+.L4130:
+	ldr	r6, [r8, #1096]
 	add	r6, r6, #48
-.L4216:
-	ldr	r3, [sp, #12]
-	ldrb	r2, [r7, #2772]	@ zero_extendqisi2
+.L4128:
+	ldr	r3, [sp, #16]
 	add	r5, r5, r3
+	ldr	r3, .L4167+16
+	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
 	cmp	r5, r2
-	bcc	.L4219
-	ldrhi	r6, [r7, #1092]
+	bcc	.L4131
+	ldrhi	r6, [r8, #1096]
 	addhi	r6, r6, #16
-	b	.L4220
-.L4219:
-	ldr	r3, [sp, #28]
-	rsb	r2, r5, r2
-	mov	r5, r5, asl #9
-	cmn	r3, #1
-	mov	r2, r2, asl #9
-	beq	.L4221
-	ldr	r1, [r4, #4]
-	add	r0, fp, r5
-	add	r1, r1, r5
-	bl	ftl_memcpy
-	b	.L4220
-.L4221:
-	add	r0, fp, r5
-	mov	r1, #0
-	bl	ftl_memset
-.L4220:
+.L4132:
 	cmp	r4, #0
-	beq	.L4205
+	beq	.L4117
 	ldrb	r3, [r4, #2]	@ zero_extendqisi2
 	mov	r1, r4
-	ldr	r0, .L4258+28
+	ldr	r0, .L4167+28
 	bic	r3, r3, #8
 	strb	r3, [r4, #2]
 	bl	buf_remove_buf
 	mov	r0, r4
 	bl	zbuf_free
-	b	.L4205
-.L4230:
-	mov	r10, #0
-.L4205:
+.L4117:
 	ldrh	r3, [r6, #6]
 	cmp	r3, #0
-	bne	.L4222
+	bne	.L4134
 	bl	ftl_flush
 	mov	r0, r6
 	bl	ftl_alloc_new_data_sblk
-.L4222:
+.L4134:
 	mov	r0, r6
 	mov	r4, #48
 	bl	ftl_get_new_free_page
-	ldr	r3, [sp, #16]
-	str	r0, [sp, #12]
+	ldr	r3, [sp, #12]
+	str	r0, [sp, #16]
 	mov	r0, #2
 	mul	r4, r4, r3
 	ldr	r3, [sp, #8]
-	add	r5, r8, r4
 	mov	r1, r3
-	ldr	r2, [r5, #1252]
+	add	r5, r9, r4
+	ldr	r2, [r5, #1248]
 	str	r10, [r3, #12]
-	stmia	r3, {r2, r9}
+	stm	r3, {r2, r7}
 	ldr	r2, [sp, #28]
-	ldrb	ip, [r8, #2772]	@ zero_extendqisi2
 	str	r2, [r3, #8]
 	mov	r2, #0
+	ldr	r3, .L4167+16
 	str	r2, [r1, #16]!
-	sub	r2, ip, #2
-	add	r2, fp, r2, asl #9
+	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
+	sub	r2, r2, #2
+	add	r2, fp, r2, lsl #9
 	bl	ftl_debug_info_fill
-	ldr	r3, [sp, #12]
+	ldr	r3, [sp, #16]
 	ldr	r1, [sp, #20]
-	str	r3, [r5, #1260]
+	ldr	r0, .L4167+32
+	str	r3, [r5, #1256]
 	ldr	r3, [sp, #28]
-	str	r3, [r5, #1264]
+	str	r3, [r5, #1260]
 	mvn	r3, #0
-	strb	r3, [r5, #1236]
-	ldrb	r3, [r5, #1238]	@ zero_extendqisi2
+	strb	r3, [r5, #1232]
+	ldrb	r3, [r5, #1234]	@ zero_extendqisi2
 	orr	r3, r3, #10
-	strb	r3, [r5, #1238]
-	ldr	r3, .L4258+4
-	ldrh	r10, [r6, #10]
-	ldrh	r9, [r6, #12]
+	strb	r3, [r5, #1234]
+	ldr	r3, .L4167+4
+	ldrh	r2, [r6, #12]
 	add	r4, r3, r4
-	add	r9, r10, r9
-	sub	r9, r9, #1
-	strh	r9, [r4, #32]	@ movhi
-	ldr	r4, .L4258+16
-	sub	r0, r4, #96
+	ldrh	r3, [r6, #10]
+	add	r3, r3, r2
+	sub	r3, r3, #1
+	strh	r3, [r4, #32]	@ movhi
 	bl	buf_add_tail
-	ldrb	r3, [r8, #2801]	@ zero_extendqisi2
+	ldrb	r3, [r9, #2797]	@ zero_extendqisi2
+	ldr	r4, .L4167
 	add	r3, r3, #1
-	strb	r3, [r8, #2801]
+	strb	r3, [r9, #2797]
 	bl	timer_get_time
-	ldrb	r3, [r8, #2801]	@ zero_extendqisi2
+	ldr	r3, .L4167+16
 	ldrh	r2, [r6, #6]
+	str	r0, [r3, #-84]
+	ldrb	r3, [r9, #2797]	@ zero_extendqisi2
 	cmp	r3, #2
-	str	r0, [r4, #-92]
-	bhi	.L4223
+	bhi	.L4135
 	cmp	r2, #1
-	bne	.L4193
-.L4223:
+	bne	.L4105
+.L4135:
+	ldr	lr, .L4167+16
+	mov	r5, #48
 	ldrb	r1, [r6, #5]	@ zero_extendqisi2
-	mov	lr, #48
-	ldrb	r0, [r4, #-96]	@ zero_extendqisi2
+	ldrb	r0, [lr, #-88]	@ zero_extendqisi2
 	cmp	r1, #0
 	mov	r1, #0
 	moveq	ip, #1
@@ -25585,1853 +25886,1822 @@
 	cmp	r2, #1
 	mov	r2, r0
 	moveq	ip, r3
-.L4227:
+.L4139:
 	cmp	r1, ip
-	mlane	r2, lr, r2, r7
-	addne	r1, r1, #1
-	ldrneb	r2, [r2, #1236]	@ zero_extendqisi2
-	bne	.L4227
-.L4257:
-	strb	r2, [r4, #-96]
+	bne	.L4140
 	uxtb	r1, r1
-	ldr	r2, .L4258+4
-	rsb	r3, r1, r3
-	strb	r3, [r8, #2801]
-	mov	r3, #48
-	mla	r0, r3, r0, r2
+	add	r0, r0, r0, lsl #1
+	strb	r2, [lr, #-88]
+	sub	r3, r3, r1
+	strb	r3, [r4, #2797]
+	ldr	r3, .L4167+4
+	add	r0, r3, r0, lsl #4
 	bl	sblk_prog_page
 	ldrh	r3, [r6, #6]
 	cmp	r3, #1
-	bne	.L4193
+	bne	.L4105
 	bl	sblk_wait_write_queue_completed
 	bl	ftl_write_completed
 	mov	r0, r6
 	bl	ftl_write_last_log_page
 	mov	r0, r6
 	bl	ftl_alloc_new_data_sblk
-.L4193:
-	ldrb	r4, [r7, #2800]	@ zero_extendqisi2
-	cmp	r4, #0
-	bne	.L4191
+.L4105:
+	ldrb	r3, [r4, #2796]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L4102
+.L4104:
 	bl	ftl_write_completed
-	mov	r0, r4
-.L4254:
-	add	sp, sp, #36
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4259:
+	mov	r0, #0
+	b	.L4101
+.L4131:
+	ldr	r3, [sp, #28]
+	sub	r2, r2, r5
+	lsl	r2, r2, #9
+	lsl	r0, r5, #9
+	cmn	r3, #1
+	beq	.L4133
+	ldr	r1, [r4, #4]
+	add	r1, r1, r0
+	add	r0, fp, r0
+	bl	ftl_memcpy
+	b	.L4132
+.L4133:
+	mov	r1, #0
+	add	r0, fp, r0
+	bl	ftl_memset
+	b	.L4132
+.L4140:
+	mla	r2, r5, r2, r4
+	add	r1, r1, #1
+	ldrb	r2, [r2, #1232]	@ zero_extendqisi2
+	b	.L4139
+.L4121:
+	cmp	r5, #0
+	moveq	r10, r5
+	moveq	r4, r5
+	beq	.L4128
+	lsl	r2, r5, #9
+	mov	r10, r4
+.L4129:
+	mov	r1, #0
+	mov	r0, fp
+	bl	ftl_memset
+	b	.L4130
+.L4168:
 	.align	2
-.L4258:
+.L4167:
 	.word	.LANCHOR0
-	.word	.LANCHOR0+1236
-	.word	.LANCHOR1+2716
+	.word	.LANCHOR0+1232
+	.word	.LANCHOR1+2492
 	.word	.LC0
 	.word	.LANCHOR3
-	.word	.LC297
-	.word	.LC241
-	.word	.LANCHOR0+2776
+	.word	.LC296
+	.word	.LC240
+	.word	.LANCHOR0+2771
+	.word	.LANCHOR3-88
 	.fnend
 	.size	ftl_write_commit, .-ftl_write_commit
 	.align	2
 	.global	gc_do_copy_back
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	gc_do_copy_back, %function
 gc_do_copy_back:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 64
+	@ args = 0, pretend = 0, frame = 72
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #76
-	sub	sp, sp, #76
-	ldr	r8, .L4408
-	ldr	r5, .L4408+4
-	ldrb	r0, [r8, #-3115]	@ zero_extendqisi2
-	ldr	r3, [r5, #1092]
+	.pad #84
+	sub	sp, sp, #84
+	ldr	r7, .L4307
+	ldrb	r0, [r7, #-3119]	@ zero_extendqisi2
 	cmp	r0, #0
-	str	r3, [sp, #12]
-	bne	.L4261
+	bne	.L4170
 	bl	buf_alloc
 	subs	r4, r0, #0
-	beq	.L4260
-	ldr	r7, .L4408+8
-	ldrh	r6, [r7, #22]
-	mov	r0, r6
-	add	r6, r6, #1
+	beq	.L4169
+	ldr	r5, .L4307+4
+	ldrh	r2, [r5, #22]
+	mov	r0, r2
 	bl	gc_get_src_ppa_from_index
 	mov	r1, #1
-	strh	r6, [r7, #22]	@ movhi
+	add	r2, r2, #1
 	str	r0, [r4, #24]
-	mov	r9, r0
+	mov	r6, r0
 	mov	r0, r4
+	strh	r2, [r5, #22]	@ movhi
 	bl	sblk_read_page
 	ldr	r3, [r4, #36]
 	cmn	r3, #1
 	cmpne	r3, #512
-	bne	.L4263
-	ldr	r1, .L4408+12
+	bne	.L4172
 	movw	r2, #1032
-	ldr	r0, .L4408+16
+	ldr	r1, .L4307+8
+	ldr	r0, .L4307+12
 	bl	printk
 	bl	dump_stack
-.L4263:
+.L4172:
 	ldr	r3, [r4, #12]
-	ldr	r6, [r3, #4]
-	mov	r0, r6
+	ldr	r8, [r3, #4]
+	mov	r0, r8
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
-	str	r0, [sp, #48]
-	bne	.L4264
-	mov	r0, r6
-	add	r1, sp, #48
+	str	r0, [sp, #56]
+	bne	.L4173
 	mov	r2, #0
+	add	r1, sp, #56
+	mov	r0, r8
 	bl	pm_log2phys
-.L4264:
-	ldr	r8, [sp, #48]
-	cmp	r8, r9
-	bne	.L4265
-	ldr	r1, .L4408+20
+.L4173:
+	ldr	r9, [sp, #56]
+	cmp	r6, r9
+	bne	.L4174
+	ldr	r2, .L4307+16
 	mov	r3, #0
-.L4268:
-	add	r2, r1, r3
-	ldr	r0, [r2, #20]
-	cmp	r0, r6
-	bne	.L4266
-	ldrb	r2, [r2, #2]	@ zero_extendqisi2
-	tst	r2, #2
-	beq	.L4266
+	sub	r10, r2, #1232
+.L4177:
+	add	r1, r2, r3
+	ldr	r0, [r1, #20]
+	cmp	r8, r0
+	bne	.L4175
+	ldrb	r1, [r1, #2]	@ zero_extendqisi2
+	tst	r1, #2
+	beq	.L4175
 	mov	r0, r4
 	bl	zbuf_free
-	ldr	r3, .L4408+24
+	ldr	r3, .L4307+20
 	ldr	r3, [r3]
 	tst	r3, #256
-	beq	.L4260
-	mov	r1, r6
-	mov	r2, r8
-	ldrh	r3, [r7, #22]
-	ldr	r0, .L4408+28
+	beq	.L4169
+	ldrh	r3, [r5, #22]
+	mov	r2, r6
+	mov	r1, r8
+	ldr	r0, .L4307+24
 	bl	printk
-	b	.L4260
-.L4266:
+.L4169:
+	add	sp, sp, #84
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4175:
 	add	r3, r3, #48
 	cmp	r3, #1536
-	bne	.L4268
-	ldrb	r3, [r5, #2772]	@ zero_extendqisi2
+	bne	.L4177
+	ldrb	r3, [r7, #-2546]	@ zero_extendqisi2
 	mov	r2, #0
-	str	r6, [r4, #20]
+	str	r8, [r4, #20]
 	strb	r2, [r4, #41]
 	strb	r3, [r4, #40]
 	ldr	r3, [r4, #12]
 	ldr	r1, [r3]
 	str	r1, [r4, #16]
 	str	r2, [r3, #16]
-	ldr	r3, .L4408+24
+	ldr	r3, .L4307+20
 	ldr	r3, [r3]
 	tst	r3, #256
-	beq	.L4269
-	mov	r0, r6
+	beq	.L4178
+	mov	r0, r8
 	bl	lpa_hash_get_ppa
-	mov	r1, r6
-	str	r8, [sp]
+	ldrh	r3, [r5, #22]
+	mov	r2, r9
+	str	r6, [sp]
+	mov	r1, r8
+	str	r3, [sp, #4]
 	mov	r3, r0
-	ldrh	r2, [r7, #22]
-	ldr	r0, .L4408+32
-	str	r2, [sp, #4]
-	mov	r2, r8
+	ldr	r0, .L4307+28
 	bl	printk
-.L4269:
+.L4178:
 	mov	r0, r4
 	bl	ftl_gc_write_buf
 	bl	ftl_write_commit
-	ldr	r2, [r5, #2804]
+	ldr	r2, [r10, #2800]
 	ldr	r3, [r2, #60]
 	add	r3, r3, #1
 	str	r3, [r2, #60]
-	ldrh	r3, [r7, #24]
+	ldrh	r3, [r5, #24]
 	add	r3, r3, #1
-	strh	r3, [r7, #24]	@ movhi
-	b	.L4260
-.L4265:
-	ldr	r3, .L4408+24
+	strh	r3, [r5, #24]	@ movhi
+	b	.L4169
+.L4174:
+	ldr	r3, .L4307+20
 	ldr	r3, [r3]
 	tst	r3, #256
-	beq	.L4271
-	mov	r0, r6
+	beq	.L4179
+	mov	r0, r8
 	bl	lpa_hash_get_ppa
-	mov	r1, r6
-	str	r9, [sp]
+	ldrh	r3, [r5, #22]
+	mov	r2, r9
+	str	r6, [sp]
+	mov	r1, r8
+	str	r3, [sp, #4]
 	mov	r3, r0
-	ldrh	r2, [r7, #22]
-	ldr	r0, .L4408+32
-	str	r2, [sp, #4]
-	mov	r2, r8
+	ldr	r0, .L4307+28
 	bl	printk
-.L4271:
+.L4179:
 	mov	r0, r4
 	bl	zbuf_free
-	b	.L4260
-.L4261:
-	ldr	r3, [sp, #12]
+	b	.L4169
+.L4170:
+	ldr	r10, .L4307+32
+	ldr	r3, [r10, #1096]
 	ldrb	r9, [r3, #89]	@ zero_extendqisi2
-	ldrb	r3, [r8, #-3123]	@ zero_extendqisi2
-	uxth	fp, r9
-	cmp	r3, fp
+	str	r3, [sp, #12]
+	ldrb	r3, [r7, #-3127]	@ zero_extendqisi2
+	uxth	r8, r9
+	cmp	r3, r8
 	movhi	r6, #1
-	bhi	.L4273
-	cmp	fp, #2
-	movcc	r6, fp
+	bhi	.L4180
+	cmp	r8, #2
+	movcc	r6, r8
 	movcs	r6, #2
-.L4273:
-	ldrb	r4, [r8, #-3124]	@ zero_extendqisi2
-	ldr	r10, .L4408
-	cmp	r4, #3
-	ldr	r3, .L4408+8
-	bne	.L4274
-	ldrb	r2, [r5, #1196]	@ zero_extendqisi2
+.L4180:
+	ldrb	r5, [r7, #-3128]	@ zero_extendqisi2
+	ldr	r3, .L4307+4
+	cmp	r5, #3
+	bne	.L4181
+	ldrb	r2, [r10, #1158]	@ zero_extendqisi2
 	cmp	r2, #0
-	beq	.L4275
+	beq	.L4182
 	movw	r2, #2102
 	mov	r1, r9
-	ldrh	r7, [r3, r2]
-	mov	r0, r7
+	ldrh	fp, [r3, r2]
+	mov	r0, fp
 	bl	__aeabi_idiv
-	ldrb	r3, [r10, #-2536]	@ zero_extendqisi2
+	ldrb	r3, [r7, #-2542]	@ zero_extendqisi2
+	uxth	r4, r0
 	cmp	r3, #0
-	uxth	r5, r0
-	beq	.L4276
-	ldr	r3, .L4408+36
-	mov	r0, r0, asl #1
+	beq	.L4183
+	ldr	r3, .L4307+36
+	lsl	r0, r0, #1
 	ldrh	r3, [r3, r0]
 	cmp	r3, #0
-	moveq	r4, #1
-	movne	r4, #2
-	b	.L4277
-.L4276:
-	ldrb	r3, [r10, #541]	@ zero_extendqisi2
+	moveq	r5, #1
+	movne	r5, #2
+.L4184:
+	smulbb	r8, r8, r4
+	sub	r8, fp, r8
+	uxth	r3, r8
+	str	r3, [sp, #20]
+.L4185:
+	mul	r3, r6, r5
+	ldr	r9, .L4307+36
+	mov	r8, #0
+	str	r3, [sp, #16]
+	add	r9, r9, r4, lsl #1
+	ldr	r3, .L4307+4
+.L4189:
+	ldr	r1, [sp, #16]
+	uxth	r0, r8
+	mov	r2, r0
+	cmp	r0, r1
+	bge	.L4242
+	ldr	r1, .L4307+40
+	add	r2, fp, r2
+	ldrh	ip, [r1]
+	ldr	r1, [sp, #12]
+	ldrb	r1, [r1, #89]	@ zero_extendqisi2
+	mul	r1, r1, ip
+	ldrb	ip, [r7, #-11]	@ zero_extendqisi2
+	sub	r1, r1, ip
+	cmp	r2, r1
+	blt	.L4190
+	ldrb	r1, [r7, #-2542]	@ zero_extendqisi2
+	cmp	r1, #0
+	beq	.L4242
+	ldrh	r1, [r9]
+	cmp	r1, r4
+	bcc	.L4191
+.L4242:
+	mov	r3, #1
+	str	r3, [sp, #24]
+	b	.L4187
+.L4183:
+	ldrb	r3, [r7, #-15]	@ zero_extendqisi2
 	cmp	r3, #0
-	moveq	r4, #1
-	beq	.L4277
-	sub	r3, r5, #62
+	moveq	r5, #1
+	beq	.L4184
+	sub	r3, r4, #62
 	cmp	r3, #2160
-	movcs	r4, #2
-	bcs	.L4277
-	mov	r1, r4
-	mov	r0, r5
+	movcs	r5, #2
+	bcs	.L4184
+	mov	r1, r5
+	mov	r0, r4
 	bl	__aeabi_uidivmod
 	uxth	r1, r1
 	cmp	r1, #0
-	movne	r4, #1
-	moveq	r4, #2
-.L4277:
-	smulbb	r1, r5, fp
-	rsb	r1, r1, r7
-	uxth	r3, r1
-	str	r3, [sp, #16]
-	b	.L4280
-.L4275:
-	ldrb	r2, [r10, #-3116]	@ zero_extendqisi2
+	movne	r5, #1
+	moveq	r5, #2
+	b	.L4184
+.L4182:
+	ldrb	r2, [r7, #-3120]	@ zero_extendqisi2
 	cmp	r2, #0
 	movw	r2, #2102
-	ldrh	r7, [r3, r2]
-	mov	r0, r7
-	beq	.L4279
-	add	r1, r9, r9, asl #1
+	beq	.L4186
+	ldrh	fp, [r3, r2]
+	add	r1, r9, r9, lsl #1
+	mov	r0, fp
 	bl	__aeabi_idiv
-	ldr	r2, .L4408+40
-	mul	r9, r9, r0
-	uxth	r5, r0
-	sub	r9, r9, r9, asl #2
-	add	r1, r7, r9
-	smull	r2, r3, r1, r2
-	sub	r1, r3, r1, asr #31
-	uxth	r3, r1
-	str	r3, [sp, #16]
-	ldr	r3, .L4408+4
-	ldrb	r3, [r3, #1197]	@ zero_extendqisi2
+	mul	r9, r0, r9
+	ldr	r2, .L4307+44
+	uxth	r4, r0
+	sub	r9, r9, r9, lsl #2
+	add	r9, r9, fp
+	smull	r2, r3, r9, r2
+	sub	r9, r3, r9, asr #31
+	uxth	r3, r9
+	str	r3, [sp, #20]
+	ldrb	r3, [r10, #1159]	@ zero_extendqisi2
 	cmp	r3, #0
-	addne	r5, r5, r5, asl #1
-	uxthne	r5, r5
-	b	.L4280
-.L4279:
+	addne	r4, r4, r4, lsl #1
+	uxthne	r4, r4
+	b	.L4185
+.L4186:
+	ldrh	r10, [r3, r2]
 	mov	r1, r9
+	mov	r0, r10
 	bl	__aeabi_idiv
-	ldr	r2, .L4408+44
-	smulbb	r1, r0, fp
-	mov	r3, r0, asl #1
-	ldrh	r2, [r2, r3]
-	rsb	r1, r1, r7
-	and	r3, r2, #7
+	ldr	r2, .L4307+48
+	lsl	r3, r0, #1
+	smulbb	r8, r0, r8
+	ldrh	r3, [r2, r3]
+	sub	r10, r10, r8
+	lsr	r4, r3, #3
+	and	r3, r3, #7
+	str	r3, [sp, #24]
+	uxth	r3, r10
+	mla	r9, r9, r4, r3
 	str	r3, [sp, #20]
-	mov	r5, r2, lsr #3
-	uxth	r3, r1
-	str	r3, [sp, #16]
-	mla	r9, r9, r5, r3
-	ldr	r3, [sp, #20]
+	ldr	r3, [sp, #24]
+	add	r9, r9, r9, lsl #1
 	cmp	r3, #1
-	add	r9, r9, r9, asl #1
-	uxth	r7, r9
-	bne	.L4281
-	b	.L4280
-.L4274:
-	ldrb	r2, [r10, #-3122]	@ zero_extendqisi2
+	uxth	fp, r9
+	beq	.L4185
+.L4187:
+	mul	r3, r6, r5
+	str	r3, [sp, #36]
+	lsl	r3, r6, #1
+	uxth	r3, r3
+	str	r3, [sp, #44]
+	ldrh	r3, [sp, #44]
+	smulbb	r3, r3, r5
+	sub	r3, fp, r3
+	uxth	r3, r3
+	str	r3, [sp, #48]
+	mov	r3, #0
+	str	r3, [sp, #32]
+	ldr	r3, .L4307+36
+	add	r3, r3, r4, lsl #1
+	str	r3, [sp, #40]
+.L4192:
+	ldrh	r9, [sp, #32]
+	ldr	r2, [sp, #36]
+	ldr	r7, .L4307
+	str	r9, [sp, #28]
+	cmp	r9, r2
+	blt	.L4216
+	ldrb	r3, [r7, #-3128]	@ zero_extendqisi2
+	cmp	r3, #3
+	bne	.L4217
+	ldr	r3, .L4307+32
+	ldrb	r1, [r3, #1158]	@ zero_extendqisi2
+	cmp	r1, #0
+	movne	r3, r2
+	movne	r1, #0
+	subne	r2, r3, #1
+	bne	.L4219
+	ldrb	r2, [r7, #-3120]	@ zero_extendqisi2
+	ldr	r3, [sp, #56]
+	cmp	r2, #0
+	strbne	r1, [r3, #44]
+	bne	.L4305
+	ldr	r1, [sp, #24]
+	cmp	r1, #1
+	moveq	r2, #9
+	beq	.L4225
+	ldr	r1, [sp, #24]
+	cmp	r1, #2
+	moveq	r2, #13
+.L4225:
+	strb	r2, [r3, #44]
+.L4305:
+	mov	r2, r6
+	add	r1, sp, #68
+	add	r0, sp, #56
+	bl	sblk_xlc_prog_pages
+.L4221:
+	ldrb	r3, [r7, #-3120]	@ zero_extendqisi2
+	ldr	r2, .L4307+32
+	cmp	r3, #0
+	addne	r6, r6, r6, lsl #1
+	uxthne	r6, r6
+	bne	.L4231
+	ldrb	r3, [r7, #-3126]	@ zero_extendqisi2
+	cmp	r3, #0
+	ldrne	r6, [sp, #44]
+	bne	.L4231
+	ldrb	r3, [r2, #1158]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L4231
+	smulbb	r5, r6, r5
+	ldrb	r3, [r7, #-2542]	@ zero_extendqisi2
+	uxth	r5, r5
+	cmp	r3, #0
+	moveq	r6, r5
+	beq	.L4231
+	ldr	r1, .L4307+36
+	lsl	r3, r4, #1
+	ldrh	r3, [r1, r3]
+	cmp	r3, r4
+	movcs	r6, r5
+.L4231:
+	ldr	r1, [r2, #2800]
+	ldr	r0, .L4307+4
+	ldr	r3, [r1, #52]
+	add	r3, r3, r6
+	str	r3, [r1, #52]
+	movw	r1, #2102
+	ldrh	r3, [r0, r1]
+	add	r6, r6, r3
+	ldr	r3, .L4307+52
+	uxth	r6, r6
+	strh	r6, [r0, r1]	@ movhi
+	ldrh	r1, [r3, #-14]
+	ldr	r3, [sp, #12]
+	ldrb	r3, [r3, #89]	@ zero_extendqisi2
+	mul	r3, r3, r1
+	cmp	r6, r3
+	ldrge	r3, [r2, #1096]
+	movge	r2, #0
+	strhge	r2, [r3, #86]	@ movhi
+	bl	gc_write_completed
+	b	.L4169
+.L4181:
+	ldrb	r2, [r7, #-3126]	@ zero_extendqisi2
 	mov	r1, r9
 	cmp	r2, #0
 	movw	r2, #2102
-	ldrh	r7, [r3, r2]
-	mov	r0, r7
-	bne	.L4282
+	ldrh	fp, [r3, r2]
+	mov	r0, fp
+	bne	.L4188
 	bl	__aeabi_idiv
-	mov	r4, #1
-	uxth	r5, r0
-	smulbb	r1, r5, fp
-	rsb	r1, r1, r7
-	uxth	r3, r1
-	str	r3, [sp, #16]
-	b	.L4280
-.L4282:
+	uxth	r4, r0
+	mov	r5, #1
+	smulbb	r8, r8, r4
+	sub	r8, fp, r8
+	uxth	r3, r8
+	str	r3, [sp, #20]
+	b	.L4185
+.L4188:
 	bl	__aeabi_idiv
-	mov	r4, #2
-	uxth	r5, r0
-	smulbb	r1, r5, fp
-	rsb	r1, r1, r7
-	uxth	r3, r1
-	str	r3, [sp, #16]
-.L4280:
-	mul	r3, r6, r4
-	ldr	r10, .L4408+36
-	mov	r2, #0
-	ldr	ip, .L4408
-	add	r10, r10, r5, asl #1
-	ldr	r1, .L4408+8
+	uxth	r4, r0
+	mov	r5, #2
+	smulbb	r8, r8, r4
+	sub	r8, fp, r8
+	uxth	r3, r8
 	str	r3, [sp, #20]
-	b	.L4283
-.L4403:
-	ldrh	r0, [r10]
-	cmp	r0, r5
-	bcs	.L4341
-	tst	lr, #1
-	beq	.L4341
-.L4284:
-	ldr	fp, [r8, #-168]
-	ldr	r0, [fp, r3, asl #2]
-	cmn	r0, #1
-	beq	.L4402
-.L4287:
-	add	r2, r2, #1
-.L4283:
-	ldr	r3, [sp, #20]
-	uxth	lr, r2
-	cmp	lr, r3
-	bge	.L4341
-	ldr	r0, .L4408+48
-	add	r3, r7, lr
-	ldr	r9, [sp, #12]
-	ldrh	r0, [r0]
-	ldrb	r9, [r9, #89]	@ zero_extendqisi2
-	mul	r0, r9, r0
-	ldrb	r9, [r8, #545]	@ zero_extendqisi2
-	rsb	r0, r9, r0
-	cmp	r3, r0
-	blt	.L4284
-	ldrb	r0, [ip, #-2536]	@ zero_extendqisi2
-	cmp	r0, #0
-	bne	.L4403
-.L4341:
-	mov	r3, #1
-	str	r3, [sp, #20]
-.L4281:
-	rsb	r1, r6, r6, asl #15
-	mul	r3, r6, r4
-	mov	r1, r1, asl #1
-	smulbb	r1, r1, r4
-	str	r3, [sp, #24]
-	add	r1, r7, r1
-	uxth	r3, r1
-	ldr	r1, .L4408+36
-	str	r3, [sp, #36]
-	mov	r3, #0
-	str	r3, [sp, #28]
-	add	r3, r1, r5, asl #1
-	str	r3, [sp, #32]
-	b	.L4286
-.L4402:
-	ldrh	r9, [r1, #22]
-	ldrh	r0, [r1, #20]
-	cmp	r0, r9
-	bls	.L4260
-	ldrb	r0, [ip, #-2536]	@ zero_extendqisi2
-	cmp	r0, #0
-	beq	.L4288
-	ldrh	r0, [r10]
-	cmp	r0, r5
-	bcs	.L4288
-	tst	lr, #1
-	ldrne	r0, [fp, r0, asl #2]
-	strne	r0, [fp, r3, asl #2]
-	bne	.L4287
-.L4288:
-	mov	r0, r9
-	str	r1, [sp, #36]
-	str	ip, [sp, #32]
-	add	r9, r9, #1
-	str	r2, [sp, #28]
+	b	.L4185
+.L4191:
+	tst	r0, #1
+	beq	.L4242
+.L4190:
+	ldr	r10, [r7, #-128]
+	ldr	r1, [r10, r2, lsl #2]
+	cmn	r1, #1
+	bne	.L4193
+	ldrh	r1, [r3, #22]
+	ldrh	ip, [r3, #20]
+	cmp	ip, r1
+	bls	.L4169
+	ldrb	ip, [r7, #-2542]	@ zero_extendqisi2
+	cmp	ip, #0
+	beq	.L4194
+	ldrh	ip, [r9]
+	cmp	ip, r4
+	bcs	.L4194
+	tst	r0, #1
+	ldrne	r1, [r10, ip, lsl #2]
+	strne	r1, [r10, r2, lsl #2]
+	bne	.L4193
+.L4194:
+	mov	r0, r1
 	str	r3, [sp, #24]
 	bl	gc_get_src_ppa_from_index
-	ldr	r3, .L4408+8
-	strh	r9, [r3, #22]	@ movhi
 	ldr	r3, [sp, #24]
-	ldr	r1, [sp, #36]
-	ldr	ip, [sp, #32]
-	str	r0, [fp, r3, asl #2]
-	ldr	r2, [sp, #28]
-	b	.L4287
-.L4312:
-	ldr	r3, [fp, #-3120]
-	add	r10, r7, r9
-	ldrb	r3, [r3, r10]	@ zero_extendqisi2
-	cmp	r3, #255
-	beq	.L4404
-.L4290:
-	ldr	r1, .L4408
-	add	r2, sp, #72
-	add	r2, r2, r9, asl #2
-	ldr	r0, .L4408+20
-	ldr	ip, .L4408+4
-	ldr	r3, [r1, #-3120]
-	ldrb	r8, [r3, r10]	@ zero_extendqisi2
-	mov	r3, #48
-	mul	r3, r3, r8
-	add	r0, r0, r3
-	str	r0, [r2, #-24]
-	ldrb	r2, [sp, #20]	@ zero_extendqisi2
-	add	r3, ip, r3
-	strb	r2, [r3, #1281]
-	mov	r2, #2
-	strh	r2, [r0, #34]	@ movhi
-	ldrb	r2, [r1, #-3124]	@ zero_extendqisi2
-	cmp	r2, #3
-	bne	.L4303
-	ldrb	r2, [ip, #1196]	@ zero_extendqisi2
-	cmp	r2, #0
-	beq	.L4304
-	ldrb	r1, [r1, #-2536]	@ zero_extendqisi2
-	and	r2, r9, #1
-	add	r3, r5, r2
-	cmp	r1, #0
-	beq	.L4305
-	ldr	r1, [sp, #32]
-	ldrh	r1, [r1]
-	cmp	r1, r5
-	movcs	r2, #0
-	andcc	r2, r2, #1
-	cmp	r2, #0
-	movne	r3, r1
-.L4305:
-	ldr	r2, .L4408+4
-	mov	r1, r4
-	mov	fp, #48
-	mov	r0, r9
-	str	r3, [sp, #40]
-	mla	fp, fp, r8, r2
-	bl	__aeabi_uidiv
-	ldr	r1, .L4408+52
-	ldrh	r1, [r1]
-	ldr	r3, [sp, #16]
-	uxtah	r0, r3, r0
-	ldr	r3, [sp, #12]
-	add	r0, r3, r0, asl #1
-	ldr	r3, [sp, #40]
-	ldrh	r2, [r0, #96]
-	mla	r3, r1, r2, r3
-	orr	r3, r3, #50331648
-	str	r3, [fp, #1260]
-.L4306:
-	mov	r3, #48
-	mul	r8, r3, r8
-	ldr	r3, .L4408+4
-	add	r3, r3, r8
-	ldr	r1, [r3, #1260]
-	ldr	r3, .L4408+20
-	add	r8, r3, r8
-	ldr	r3, .L4408
-	ldrh	r2, [r8, #32]
-	ldr	r3, [r3, #-164]
-	str	r1, [r3, r2, asl #2]
-.L4331:
-	ldr	r8, .L4408
-	ldrb	r3, [r8, #-2536]	@ zero_extendqisi2
-	cmp	r3, #0
-	bne	.L4405
-.L4311:
+	add	r1, r1, #1
+	strh	r1, [r3, #22]	@ movhi
+	str	r0, [r10, r2, lsl #2]
+.L4193:
+	add	r8, r8, #1
+	b	.L4189
+.L4216:
 	ldr	r3, [sp, #28]
-	add	r3, r3, #1
-	str	r3, [sp, #28]
-.L4286:
-	ldrh	r9, [sp, #28]
-	ldr	r3, [sp, #24]
-	ldr	fp, .L4408
-	cmp	r9, r3
-	blt	.L4312
-	b	.L4406
-.L4404:
+	add	r3, fp, r3
+	str	r3, [sp, #16]
+	ldr	r2, [sp, #16]
+	ldr	r3, [r7, #-3124]
+	ldrb	r3, [r3, r2]	@ zero_extendqisi2
+	cmp	r3, #255
+	bne	.L4196
 	mov	r0, #0
 	bl	buf_alloc
-	subs	r8, r0, #0
-	bne	.L4291
+	subs	r7, r0, #0
+	bne	.L4197
 	bl	sblk_wait_write_queue_completed
 	bl	ftl_write_completed
 	bl	gc_write_completed
 	bl	gc_free_temp_buf
-	mov	r0, r8
+	mov	r0, r7
 	bl	buf_alloc
-	subs	r8, r0, #0
-	beq	.L4260
-.L4291:
-	ldrb	r2, [r8, #1]	@ zero_extendqisi2
-	ldr	r3, [fp, #-3120]
-	strb	r2, [r3, r10]
-	ldr	r2, .L4408+4
-	ldrb	r3, [r2, #2835]	@ zero_extendqisi2
+	subs	r7, r0, #0
+	beq	.L4169
+.L4197:
+	ldr	r2, .L4307
+	ldrb	r1, [r7, #1]	@ zero_extendqisi2
+	ldr	r0, [sp, #16]
+	ldr	r3, [r2, #-3124]
+	strb	r1, [r3, r0]
+	ldr	r1, .L4307+32
+	ldrb	r3, [r1, #2831]	@ zero_extendqisi2
 	add	r3, r3, #1
-	strb	r3, [r2, #2835]
-	add	r3, r9, r7
-	strh	r3, [r8, #32]	@ movhi
-	ldrb	r3, [sp, #20]	@ zero_extendqisi2
-	strb	r3, [r8, #45]
-	ldr	r3, .L4408+48
-	ldrh	r2, [r3]
+	strb	r3, [r1, #2831]
+	add	r3, r9, fp
+	strh	r3, [r7, #32]	@ movhi
+	ldrb	r3, [sp, #24]	@ zero_extendqisi2
+	strb	r3, [r7, #45]
+	sub	r3, r2, #3104
+	ldrh	r1, [r3, #-14]
 	ldr	r3, [sp, #12]
 	ldrb	r3, [r3, #89]	@ zero_extendqisi2
-	mul	r3, r3, r2
-	ldrb	r2, [fp, #545]	@ zero_extendqisi2
-	rsb	r3, r2, r3
-	cmp	r10, r3
-	blt	.L4292
-	ldr	r3, .L4408
-	ldrb	r3, [r3, #-2536]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L4293
-	ldr	r3, [sp, #32]
-	ldrh	r3, [r3]
-	cmp	r3, r5
-	bcs	.L4293
-	tst	r9, #1
-	bne	.L4292
-.L4293:
-	ldr	r3, .L4408
-	mvn	r1, #0
-	ldr	fp, .L4408+56
-	ldr	r2, [r3, #-172]
-	str	r1, [r2, r10, asl #2]
-	ldrb	r2, [r3, #545]	@ zero_extendqisi2
-	cmp	r2, #2
-	bne	.L4294
-	ldr	r2, .L4408+48
-	ldr	ip, .L4408+60
-	ldrh	r0, [r2]
-	ldr	r2, [sp, #12]
-	ldrb	r2, [r2, #89]	@ zero_extendqisi2
-	mul	r2, r2, r0
-	sub	r2, r2, #2
-	cmp	r10, r2
-	bne	.L4295
-	ldrh	r2, [ip]
-	ldr	r1, [r3, #-172]
-	ldr	r0, [r8, #4]
-	str	ip, [sp, #44]
-	bl	ftl_memcpy
-	ldr	r3, .L4408+4
-	mov	r1, #0
-	ldr	r0, [r8, #12]
-	ldrb	r2, [r3, #2772]	@ zero_extendqisi2
-	mov	r2, r2, asl #1
-	str	r3, [sp, #40]
-	bl	ftl_memset
-	ldr	r2, [r8, #12]
-	str	fp, [r2]
-	ldr	r0, [r8, #4]
-	ldr	fp, [r8, #12]
-	ldr	ip, [sp, #44]
-	ldrh	r1, [ip]
-	bl	js_hash
-	ldr	r3, [sp, #40]
-	str	r0, [fp, #4]
-	ldr	r2, [r8, #12]
-	ldr	r3, [r3, #1092]
-	ldr	r3, [r3, #132]
-	str	r3, [r2, #8]
-	mov	r2, #0
-	ldr	r3, [r8, #12]
-	b	.L4398
-.L4295:
-	ldrb	r2, [r3, #-3123]	@ zero_extendqisi2
-	ldrh	r1, [ip]
-	ldr	r3, [r3, #-172]
-	mul	r0, r2, r0
-	rsb	ip, r1, r0, asl #2
-	mov	r1, r1, lsr #2
-	ldr	r0, [r8, #4]
-	mov	r2, ip
-	add	r1, r3, r1, asl #2
-	str	ip, [sp, #44]
-	bl	ftl_memcpy
-	ldr	r3, .L4408+4
-	mov	r1, #0
-	ldr	r0, [r8, #12]
-	ldrb	r2, [r3, #2772]	@ zero_extendqisi2
-	mov	r2, r2, asl #1
-	str	r3, [sp, #40]
-	bl	ftl_memset
-	ldr	r2, [r8, #12]
-	str	fp, [r2]
-	ldr	r0, [r8, #4]
-	ldr	fp, [r8, #12]
-	ldr	ip, [sp, #44]
-	mov	r1, ip
-	bl	js_hash
-	ldr	r3, [sp, #40]
-	str	r0, [fp, #4]
-	ldr	r2, [r8, #12]
-	ldr	r3, [r3, #1092]
-	ldr	r3, [r3, #132]
-	str	r3, [r2, #8]
-	mov	r2, #1
-	ldr	r3, [r8, #12]
-.L4398:
-	str	r2, [r3, #12]
-	b	.L4296
-.L4294:
-	ldr	ip, .L4408+48
-	ldrb	r2, [r3, #-3123]	@ zero_extendqisi2
-	ldr	r0, [r8, #4]
-	ldrh	r1, [ip]
-	str	ip, [sp, #44]
-	str	r3, [sp, #40]
-	mul	r2, r2, r1
-	ldr	r1, [r3, #-172]
-	mov	r2, r2, asl #2
-	bl	ftl_memcpy
-	ldr	r0, [r8, #4]
-	ldr	ip, [sp, #44]
-	ldr	r3, [sp, #40]
-	ldrh	r1, [ip]
-	ldrb	r3, [r3, #-3123]	@ zero_extendqisi2
-	ldr	ip, .L4408
 	mul	r3, r3, r1
-	ldr	r1, .L4408+4
-	str	ip, [sp, #44]
-	ldrb	r1, [r1, #2772]	@ zero_extendqisi2
-	cmp	r1, r3, asr #6
-	mov	r2, r3, asl #2
-	ldrlt	r1, .L4408+60
-	mov	r3, r2
-	add	r0, r0, r3
-	ldrlth	r1, [r1]
-	rsblt	r2, r2, r1
-	ldr	r1, [ip, #-168]
-	bl	ftl_memcpy
-	ldr	r3, .L4408+4
-	mov	r1, #0
-	ldr	r0, [r8, #12]
-	ldrb	r2, [r3, #2772]	@ zero_extendqisi2
-	mov	r2, r2, asl #1
-	str	r3, [sp, #40]
-	bl	ftl_memset
-	ldr	r2, [r8, #12]
-	str	fp, [r2]
-	ldr	r2, .L4408+48
-	ldr	r0, [r8, #4]
-	ldr	fp, [r8, #12]
-	ldrh	r1, [r2]
-	ldr	ip, [sp, #44]
-	ldrb	r2, [ip, #-3123]	@ zero_extendqisi2
-	mul	r1, r2, r1
-	mov	r1, r1, asl #2
-	bl	js_hash
+	ldrb	r1, [r2, #-11]	@ zero_extendqisi2
+	sub	r3, r3, r1
+	cmp	r0, r3
+	blt	.L4198
+	ldrb	r3, [r2, #-2542]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L4199
 	ldr	r3, [sp, #40]
-	str	r0, [fp, #4]
-	ldr	r2, [r8, #12]
-	ldr	r3, [r3, #1092]
-	ldr	r3, [r3, #132]
-	str	r3, [r2, #8]
-	b	.L4296
-.L4292:
-	ldr	fp, .L4408
-	mov	r0, r8
+	ldrh	r3, [r3]
+	cmp	r3, r4
+	bcs	.L4199
+	tst	r9, #1
+	bne	.L4198
+.L4199:
+	ldr	r8, .L4307
+	mvn	r2, #0
+	ldr	r1, [sp, #16]
+	ldr	r10, .L4307+56
+	ldr	r3, [r8, #-132]
+	str	r2, [r3, r1, lsl #2]
+	ldrb	r3, [r8, #-11]	@ zero_extendqisi2
+	cmp	r3, #2
+	bne	.L4200
+	sub	r3, r8, #3104
+	ldr	r2, [sp, #16]
+	ldrh	r1, [r3, #-14]
+	ldr	r3, [sp, #12]
+	ldrb	r3, [r3, #89]	@ zero_extendqisi2
+	mul	r3, r1, r3
+	sub	r3, r3, #2
+	cmp	r2, r3
+	ldrh	r2, [r8, #-14]
+	bne	.L4201
+	ldr	r1, [r8, #-132]
+	ldr	r0, [r7, #4]
+	bl	ftl_memcpy
+	ldrb	r2, [r8, #-2546]	@ zero_extendqisi2
+	mov	r1, #0
+	ldr	r0, [r7, #12]
+	lsl	r2, r2, #1
+	bl	ftl_memset
+	ldr	r3, [r7, #12]
+	str	r10, [r3]
+	ldrh	r1, [r8, #-14]
+	ldr	r0, [r7, #4]
+	ldr	r10, [r7, #12]
+	bl	js_hash
+	ldr	r2, .L4307+32
+	str	r0, [r10, #4]
+	ldr	r3, [r7, #12]
+	ldr	r2, [r2, #1096]
+	ldr	r2, [r2, #132]
+	str	r2, [r3, #8]
+	mov	r2, #0
+	ldr	r3, [r7, #12]
+.L4301:
+	str	r2, [r3, #12]
+.L4202:
+	ldr	r3, [r7, #12]
+	mov	r2, #0
+	str	r2, [r3, #16]
+.L4196:
+	ldr	r3, .L4307
+	ldr	r1, [sp, #16]
+	ldrb	lr, [sp, #24]	@ zero_extendqisi2
+	ldr	r2, [r3, #-3124]
+	ldrb	r7, [r2, r1]	@ zero_extendqisi2
+	add	r2, sp, #80
+	ldr	r1, [sp, #28]
+	add	r0, r7, r7, lsl #1
+	add	ip, r2, r1, lsl #2
+	ldr	r2, .L4307+32
+	add	r1, r2, #1232
+	add	r0, r1, r0, lsl #4
+	str	r0, [ip, #-24]
+	mov	ip, #48
+	mul	ip, ip, r7
+	add	r1, r1, ip
+	add	r0, r2, ip
+	mov	ip, #2
+	strb	lr, [r0, #1277]
+	strh	ip, [r1, #34]	@ movhi
+	ldrb	r1, [r3, #-3128]	@ zero_extendqisi2
+	cmp	r1, #3
+	bne	.L4207
+	ldrb	r1, [r2, #1158]	@ zero_extendqisi2
+	cmp	r1, #0
+	beq	.L4208
+	ldrb	r3, [r3, #-2542]	@ zero_extendqisi2
+	and	r8, r9, #1
+	add	r8, r8, r4
+	cmp	r3, #0
+	beq	.L4209
+	ldr	r3, [sp, #40]
+	ldr	r2, [sp, #32]
+	ldrh	r3, [r3]
+	cmp	r3, r4
+	movcs	r2, #0
+	andcc	r2, r2, #1
+	cmp	r2, #0
+	movne	r8, r3
+.L4209:
+	ldr	r3, .L4307+32
+	mov	r10, #48
+	mov	r1, r5
+	mov	r0, r9
+	mla	r10, r10, r7, r3
+	bl	__aeabi_uidiv
+	ldr	r3, [sp, #20]
+	ldr	r2, .L4307+60
+	uxtah	r0, r3, r0
+	ldr	r3, [sp, #12]
+	ldrh	r2, [r2]
+	add	r0, r3, r0, lsl #1
+	ldrh	r3, [r0, #96]
+	mla	r8, r2, r3, r8
+	orr	r8, r8, #50331648
+	str	r8, [r10, #1256]
+.L4214:
+	mov	r2, #48
+	ldr	r3, .L4307+32
+	mul	r7, r2, r7
+	add	r2, r3, r7
+	add	r3, r3, #1232
+	add	r3, r3, r7
+	ldr	r2, [r2, #1256]
+	ldrh	r1, [r3, #32]
+	ldr	r3, .L4307
+	ldr	r3, [r3, #-124]
+	str	r2, [r3, r1, lsl #2]
+	b	.L4233
+.L4201:
+	ldrb	r3, [r8, #-3127]	@ zero_extendqisi2
+	ldr	r0, [r8, #-132]
+	mul	r3, r1, r3
+	lsr	r1, r2, #2
+	add	r1, r0, r1, lsl #2
+	ldr	r0, [r7, #4]
+	rsb	r3, r2, r3, lsl #2
+	mov	r2, r3
+	str	r3, [sp, #52]
+	bl	ftl_memcpy
+	ldrb	r2, [r8, #-2546]	@ zero_extendqisi2
+	mov	r1, #0
+	ldr	r0, [r7, #12]
+	lsl	r2, r2, #1
+	bl	ftl_memset
+	ldr	r2, [r7, #12]
+	ldr	r3, [sp, #52]
+	str	r10, [r2]
+	mov	r1, r3
+	ldr	r0, [r7, #4]
+	ldr	r8, [r7, #12]
+	bl	js_hash
+	ldr	r2, .L4307+32
+	str	r0, [r8, #4]
+	ldr	r3, [r7, #12]
+	ldr	r2, [r2, #1096]
+	ldr	r2, [r2, #132]
+	str	r2, [r3, #8]
+	mov	r2, #1
+	ldr	r3, [r7, #12]
+	b	.L4301
+.L4200:
+	ldr	r3, .L4307+52
+	ldrb	r2, [r8, #-3127]	@ zero_extendqisi2
+	ldr	r1, [r8, #-132]
+	ldrh	r3, [r3, #-14]
+	ldr	r0, [r7, #4]
+	mul	r2, r2, r3
+	lsl	r2, r2, #2
+	bl	ftl_memcpy
+	ldr	r3, .L4307+52
+	ldrb	r1, [r8, #-2546]	@ zero_extendqisi2
+	ldr	r0, [r7, #4]
+	ldrh	r2, [r3, #-14]
+	ldrb	r3, [r8, #-3127]	@ zero_extendqisi2
+	mul	r3, r3, r2
+	cmp	r1, r3, asr #6
+	lsl	r2, r3, #2
+	ldrhlt	r1, [r8, #-14]
+	mov	r3, r2
+	ldr	r8, .L4307
+	add	r0, r0, r3
+	sublt	r2, r1, r2
+	ldr	r1, [r8, #-128]
+	bl	ftl_memcpy
+	ldrb	r2, [r8, #-2546]	@ zero_extendqisi2
+	mov	r1, #0
+	ldr	r0, [r7, #12]
+	lsl	r2, r2, #1
+	bl	ftl_memset
+	ldr	r3, [r7, #12]
+	str	r10, [r3]
+	sub	r3, r8, #3104
+	ldrh	r3, [r3, #-14]
+	ldrb	r1, [r8, #-3127]	@ zero_extendqisi2
+	ldr	r0, [r7, #4]
+	ldr	r10, [r7, #12]
+	mul	r1, r1, r3
+	lsl	r1, r1, #2
+	bl	js_hash
+	ldr	r2, .L4307+32
+	str	r0, [r10, #4]
+	ldr	r3, [r7, #12]
+	ldr	r2, [r2, #1096]
+	ldr	r2, [r2, #132]
+.L4302:
+	str	r2, [r3, #8]
+	b	.L4202
+.L4198:
+	ldr	r8, .L4307
 	mov	r1, #1
-	ldr	r3, [fp, #-168]
-	ldr	r3, [r3, r10, asl #2]
-	str	r3, [r8, #24]
+	ldr	r2, [sp, #16]
+	mov	r0, r7
+	ldr	r3, [r8, #-128]
+	ldr	r3, [r3, r2, lsl #2]
+	str	r3, [r7, #24]
 	bl	sblk_read_page
-	ldr	r3, [r8, #36]
+	ldr	r3, [r7, #36]
 	cmn	r3, #1
 	cmpne	r3, #512
-	bne	.L4299
-	ldr	r3, .L4408+64
-	ldr	r2, [r8, #24]
-	ldrb	r1, [fp, #-3130]	@ zero_extendqisi2
-	ldrh	r0, [r3]
-	ldr	r3, .L4408+4
-	mov	r2, r2, lsr r0
-	ldrb	r3, [r3, #1189]	@ zero_extendqisi2
-	rsb	r3, r3, #24
-	rsb	r3, r0, r3
+	bne	.L4205
+	ldr	r3, .L4307+64
 	mvn	r0, #0
-	bic	r0, r2, r0, asl r3
+	ldr	r2, [r7, #24]
+	ldrh	r1, [r3]
+	ldr	r3, .L4307+32
+	ldrb	r3, [r3, #1153]	@ zero_extendqisi2
+	lsr	r2, r2, r1
+	rsb	r3, r3, #24
+	sub	r3, r3, r1
+	ldrb	r1, [r8, #-3136]	@ zero_extendqisi2
+	bic	r0, r2, r0, lsl r3
 	bl	__aeabi_uidiv
 	mov	r1, #0
 	uxth	r0, r0
 	bl	ftl_sblk_dump
-	ldr	r3, [r8, #36]
+	ldr	r3, [r7, #36]
 	cmn	r3, #1
 	cmpne	r3, #512
-	ldreq	r3, [r8, #12]
-	mvneq	r2, #0
-	streq	r2, [r3, #4]
-.L4299:
-	ldr	r3, [r8, #36]
-	cmn	r3, #1
+	bne	.L4205
+	ldr	r3, [r7, #12]
+	mvn	r2, #0
+	str	r2, [r3, #4]
+	ldr	r3, [r7, #36]
+	cmp	r3, r2
 	cmpne	r3, #512
-	bne	.L4301
-	ldr	r1, .L4408+12
+	bne	.L4205
 	movw	r2, #1223
-	ldr	r0, .L4408+16
+	ldr	r1, .L4307+8
+	ldr	r0, .L4307+12
 	bl	printk
 	bl	dump_stack
-.L4301:
-	ldr	r3, [r8, #12]
-	ldr	r2, .L4408+4
+.L4205:
+	ldr	r3, [r7, #12]
+	ldr	r2, .L4307+32
 	ldr	r1, [r3, #4]
-	ldr	r2, [r2, #2784]
+	ldr	r2, [r2, #2780]
 	cmp	r1, r2
+	ldr	r1, [sp, #16]
 	mvncs	r2, #0
 	strcs	r2, [r3, #4]
-	ldr	r3, [r8, #12]
+	ldr	r3, [r7, #12]
 	ldr	r2, [r3, #4]
-	ldr	r3, .L4408
-	ldr	r3, [r3, #-172]
-	str	r2, [r3, r10, asl #2]
-	ldr	r3, [r8, #12]
-	ldr	r2, [r8, #24]
-	str	r2, [r3, #8]
-.L4296:
-	ldr	r3, [r8, #12]
-	mov	r2, #0
-	str	r2, [r3, #16]
-	b	.L4290
-.L4304:
-	ldrb	r2, [ip, #1197]	@ zero_extendqisi2
-	cmp	r2, #0
-	ldr	r2, .L4408+68
-	umull	r0, r1, r9, r2
-	beq	.L4307
-	mov	r1, r1, lsr #1
-	ldr	r0, [sp, #16]
+	ldr	r3, .L4307
+	ldr	r3, [r3, #-132]
+	str	r2, [r3, r1, lsl #2]
+	ldr	r3, [r7, #12]
+	ldr	r2, [r7, #24]
+	b	.L4302
+.L4208:
+	ldrb	r3, [r2, #1159]	@ zero_extendqisi2
+	ldr	r1, .L4307+68
+	cmp	r3, #0
+	umull	r2, r3, r9, r1
+	beq	.L4211
+	ldr	r2, [sp, #20]
+	lsr	r3, r3, #1
 	ldr	ip, [sp, #12]
-	uxtah	r0, r0, r1
-	add	r1, r1, r1, asl #1
-	rsb	r1, r1, r9
-	add	r0, ip, r0, asl #1
-	ldr	ip, .L4408+52
-	ldrh	r0, [r0, #96]
+	uxtah	r2, r2, r3
+	add	r3, r3, r3, lsl #1
+	add	r2, ip, r2, lsl #1
+	ldr	ip, .L4307+60
+	sub	r3, r9, r3
+	ldrh	r2, [r2, #96]
 	ldrh	ip, [ip]
-	mla	r0, ip, r0, r5
-	uxtah	r0, r0, r1
-	str	r0, [r3, #1260]
-	b	.L4308
-.L4307:
-	ldr	r0, [sp, #16]
-	ubfx	r1, r1, #1, #16
-	add	r1, r0, r1
-	ldr	r0, [sp, #12]
-	add	r1, r0, r1, asl #1
-	ldr	r0, .L4408+52
-	ldrh	r1, [r1, #96]
-	ldrh	r0, [r0]
-	mla	r1, r0, r1, r5
-	str	r1, [r3, #1260]
-	b	.L4308
-.L4303:
-	cmp	r2, #2
-	bne	.L4306
-	ldrb	r2, [r1, #-3122]	@ zero_extendqisi2
+	mla	r2, ip, r2, r4
+	uxtah	r3, r2, r3
+.L4306:
+	str	r3, [r0, #1256]
+	mov	r0, #48
+	mul	r7, r0, r7
+	ldr	r3, .L4307+32
+	umull	r0, r1, r9, r1
+	add	r2, r3, #1232
+	add	r2, r2, r7
+	add	r7, r3, r7
+	ldrh	ip, [r2, #32]
+	ldr	r2, .L4307
+	lsr	r1, r1, #1
+	ldr	r3, [r7, #1256]
+	add	r1, r1, r1, lsl #1
+	ldr	r2, [r2, #-124]
+	sub	r1, r9, r1
+	lsl	r1, r1, #24
+	add	r1, r1, #16777216
+	orr	r1, r1, r3
+	str	r1, [r2, ip, lsl #2]
+.L4233:
+	ldr	r3, .L4307
+	ldrb	r2, [r3, #-2542]	@ zero_extendqisi2
 	cmp	r2, #0
-	ldr	r2, [sp, #16]
-	bne	.L4310
-	ldr	r1, [sp, #12]
-	add	r2, r2, r9
-	add	r2, r1, r2, asl #1
-	ldr	r1, .L4408+52
-	ldrh	r2, [r2, #96]
-	ldrh	r1, [r1]
-	mla	r2, r1, r2, r5
-	b	.L4399
-.L4310:
-	ldr	r1, [sp, #12]
-	add	r2, r2, r9, lsr #1
-	add	r2, r1, r2, asl #1
-	ldr	r1, .L4408+52
-	ldrh	r2, [r2, #96]
-	ldrh	r1, [r1]
-	mla	r2, r1, r2, r5
-	and	r1, r9, #1
-	add	r2, r2, r1
-.L4399:
-	orr	r2, r2, #33554432
-	str	r2, [r3, #1260]
-	b	.L4306
-.L4405:
-	ldr	r3, [sp, #32]
-	ldrh	r3, [r3]
-	cmp	r3, r5
-	bcs	.L4311
+	beq	.L4215
+	ldr	r2, [sp, #40]
+	ldrh	r2, [r2]
+	cmp	r2, r4
+	bcs	.L4215
 	tst	r9, #1
-	beq	.L4311
-	ldr	r2, [r8, #-3120]
-	mvn	r3, #0
-	ldrh	r1, [sp, #36]
-	ldr	r0, [sp, #36]
-	strb	r3, [r2, r10]
-	add	r2, sp, #72
-	add	r9, r2, r9, asl #2
-	ldr	r2, [r9, #-24]
-	strh	r1, [r2, #32]	@ movhi
-	ldrb	r1, [r2, #1]	@ zero_extendqisi2
-	ldr	r2, [r8, #-3120]
-	strb	r1, [r2, r0]
-	ldr	r2, [r8, #-168]
-	str	r3, [r2, r10, asl #2]
-	b	.L4311
-.L4406:
-	ldrb	r3, [fp, #-3124]	@ zero_extendqisi2
-	cmp	r3, #3
-	bne	.L4313
-	ldr	r3, .L4408+4
-	ldrb	r1, [r3, #1196]	@ zero_extendqisi2
-	cmp	r1, #0
-	ldrne	r3, [sp, #24]
-	movne	r2, #0
-	subne	r1, r3, #1
-	beq	.L4407
-.L4315:
-	uxth	r3, r2
-	add	r2, r2, #1
-	cmp	r3, r1
-	bge	.L4400
-	add	ip, sp, #72
-	add	r0, sp, #72
-	add	ip, ip, r3, asl #2
-	add	r0, r0, r3, asl #2
-	ldr	r3, [ip, #-20]
-	ldr	r0, [r0, #-24]
-	ldrb	r3, [r3, #1]	@ zero_extendqisi2
-	strb	r3, [r0]
-	b	.L4315
-.L4407:
-	ldrb	r2, [fp, #-3116]	@ zero_extendqisi2
-	ldr	r3, [sp, #48]
-	cmp	r2, #0
-	strneb	r1, [r3, #44]
-	bne	.L4401
-	ldr	r1, [sp, #20]
-	cmp	r1, #1
-	moveq	r2, #9
-	beq	.L4321
-	ldr	r1, [sp, #20]
-	cmp	r1, #2
-	moveq	r2, #13
-.L4321:
-	strb	r2, [r3, #44]
-.L4401:
-	add	r1, sp, #60
-	mov	r2, r6
-	add	r0, sp, #48
-	bl	sblk_xlc_prog_pages
-	b	.L4317
-.L4313:
-	ldrb	r3, [fp, #-3122]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L4322
-	ldrb	r3, [fp, #-3121]	@ zero_extendqisi2
-	cmp	r3, #0
-	bne	.L4323
-.L4322:
-	ldr	r3, [sp, #24]
-	mov	r2, #0
-	sub	r1, r3, #1
-	b	.L4324
-.L4323:
-	mov	r1, r6
-	add	r0, sp, #48
-	bl	sblk_3d_mlc_prog_pages
-	b	.L4317
-.L4324:
-	uxth	r3, r2
-	add	r2, r2, #1
-	cmp	r3, r1
-	bge	.L4400
-	add	ip, sp, #72
-	add	r0, sp, #72
-	add	ip, ip, r3, asl #2
-	add	r0, r0, r3, asl #2
-	ldr	r3, [ip, #-20]
-	ldr	r0, [r0, #-24]
-	ldrb	r3, [r3, #1]	@ zero_extendqisi2
-	strb	r3, [r0]
-	b	.L4324
-.L4400:
-	add	r3, sp, #72
+	beq	.L4215
+	ldr	r1, [r3, #-3124]
 	mvn	r2, #0
-	add	r1, r3, r1, asl #2
-	ldr	r3, [r1, #-24]
-	smulbb	r1, r4, r6
+	ldr	r0, [sp, #16]
+	ldr	ip, [sp, #48]
+	strb	r2, [r1, r0]
+	add	r1, sp, #80
+	ldr	r0, [sp, #28]
+	add	r1, r1, r0, lsl #2
+	ldrh	r0, [sp, #48]
+	ldr	r1, [r1, #-24]
+	strh	r0, [r1, #32]	@ movhi
+	ldrb	r0, [r1, #1]	@ zero_extendqisi2
+	ldr	r1, [r3, #-3124]
+	strb	r0, [r1, ip]
+	ldr	r1, [sp, #16]
+	ldr	r3, [r3, #-128]
+	str	r2, [r3, r1, lsl #2]
+.L4215:
+	ldr	r3, [sp, #32]
+	add	r3, r3, #1
+	str	r3, [sp, #32]
+	b	.L4192
+.L4211:
+	ldr	r2, [sp, #20]
+	ubfx	r3, r3, #1, #16
+	add	r3, r2, r3
+	ldr	r2, [sp, #12]
+	add	r3, r2, r3, lsl #1
+	ldr	r2, .L4307+60
+	ldrh	r3, [r3, #96]
+	ldrh	r2, [r2]
+	mla	r3, r2, r3, r4
+	b	.L4306
+.L4207:
+	cmp	r1, #2
+	bne	.L4214
+	ldrb	r3, [r3, #-3126]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L4213
+	ldr	r2, [sp, #20]
+	ldr	r3, [sp, #28]
+	add	r3, r3, r2
+	ldr	r2, [sp, #12]
+	add	r3, r2, r3, lsl #1
+	ldr	r2, .L4307+60
+	ldrh	r3, [r3, #96]
+	ldrh	r2, [r2]
+	mla	r3, r2, r3, r4
+.L4303:
+	orr	r3, r3, #33554432
+	str	r3, [r0, #1256]
+	b	.L4214
+.L4213:
+	ldr	r3, [sp, #20]
+	ldr	r2, [sp, #12]
+	add	r3, r3, r9, lsr #1
+	add	r3, r2, r3, lsl #1
+	ldr	r2, .L4307+60
+	ldrh	r3, [r3, #96]
+	ldrh	r2, [r2]
+	mla	r3, r2, r3, r4
+	and	r2, r9, #1
+	add	r3, r3, r2
+	b	.L4303
+.L4220:
+	add	r0, sp, #80
+	add	ip, sp, #80
+	add	r0, r0, r3, lsl #2
+	add	r3, ip, r3, lsl #2
+	ldr	r3, [r3, #-20]
+	ldr	r0, [r0, #-24]
+	ldrb	r3, [r3, #1]	@ zero_extendqisi2
+	strb	r3, [r0]
+.L4219:
+	uxth	r3, r1
+	add	r1, r1, #1
+	cmp	r3, r2
+	blt	.L4220
+	add	r3, sp, #80
+	add	r2, r3, r2, lsl #2
+	ldr	r3, [r2, #-24]
+.L4304:
+	smulbb	r1, r6, r5
+	mvn	r2, #0
 	strb	r2, [r3]
-	ldr	r0, [sp, #48]
+	ldr	r0, [sp, #56]
 	uxtb	r1, r1
 	bl	sblk_prog_page
-.L4317:
-	ldrb	r3, [fp, #-3116]	@ zero_extendqisi2
-	ldr	r2, .L4408
+	b	.L4221
+.L4217:
+	ldrb	r3, [r7, #-3126]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldr	r3, .L4408+4
-	addne	r4, r6, r6, asl #1
-	bne	.L4327
-	ldrb	r1, [r2, #-3122]	@ zero_extendqisi2
-	cmp	r1, #0
-	movne	r4, r6, asl #1
-	bne	.L4327
-	ldrb	r1, [r3, #1196]	@ zero_extendqisi2
-	cmp	r1, #0
-	moveq	r4, r6
-	beq	.L4327
-	ldrb	r2, [r2, #-2536]	@ zero_extendqisi2
-	mul	r4, r4, r6
-	cmp	r2, #0
-	beq	.L4327
-	ldr	r1, .L4408+36
-	mov	r2, r5, asl #1
-	ldrh	r2, [r1, r2]
-	cmp	r2, r5
-	movcc	r4, r6
-.L4327:
-	ldr	r2, [r3, #2804]
-	ldr	r3, [r2, #52]
-	add	r3, r3, r4
-	str	r3, [r2, #52]
-	ldr	r2, .L4408+8
-	movw	r3, #2102
-	ldrh	r1, [r2, r3]
-	add	r4, r4, r1
-	uxth	r4, r4
-	strh	r4, [r2, r3]	@ movhi
-	ldr	r3, .L4408+72
-	ldrh	r2, [r3, #-10]
-	ldr	r3, [sp, #12]
-	ldrb	r3, [r3, #89]	@ zero_extendqisi2
-	mul	r3, r3, r2
-	cmp	r4, r3
-	ldrge	r3, .L4408+4
-	movge	r2, #0
-	ldrge	r3, [r3, #1092]
-	strgeh	r2, [r3, #86]	@ movhi
-	bl	gc_write_completed
-	b	.L4260
+	beq	.L4226
+	ldrb	r3, [r7, #-3125]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L4227
+.L4226:
+	ldr	r2, [sp, #36]
+	sub	r1, r2, #1
+.L4228:
+	uxth	r2, r3
+	add	r3, r3, #1
+	cmp	r2, r1
+	blt	.L4229
+	add	r3, sp, #80
+	add	r1, r3, r1, lsl #2
+	ldr	r3, [r1, #-24]
+	b	.L4304
+.L4227:
+	mov	r1, r6
+	add	r0, sp, #56
+	bl	sblk_3d_mlc_prog_pages
+	b	.L4221
+.L4229:
+	add	r0, sp, #80
+	add	ip, sp, #80
+	add	r0, r0, r2, lsl #2
+	add	r2, ip, r2, lsl #2
+	ldr	r2, [r2, #-20]
+	ldr	r0, [r0, #-24]
+	ldrb	r2, [r2, #1]	@ zero_extendqisi2
+	strb	r2, [r0]
+	b	.L4228
 .L4308:
-	mov	r0, #48
-	ldr	r3, .L4408+20
-	mul	r0, r0, r8
-	ldr	ip, .L4408+4
-	add	r3, r3, r0
-	add	r0, ip, r0
-	ldrh	r1, [r3, #32]
-	ldr	r3, .L4408
-	ldr	r0, [r0, #1260]
-	ldr	lr, [r3, #-164]
-	umull	r2, r3, r9, r2
-	mov	r2, r3, lsr #1
-	add	r2, r2, r2, asl #1
-	rsb	r2, r2, r9
-	mov	r2, r2, asl #24
-	add	r2, r2, #16777216
-	orr	r2, r2, r0
-	str	r2, [lr, r1, asl #2]
-	b	.L4331
-.L4260:
-	add	sp, sp, #76
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4409:
 	.align	2
-.L4408:
+.L4307:
 	.word	.LANCHOR3
-	.word	.LANCHOR0
-	.word	.LANCHOR0+2828
-	.word	.LANCHOR1+2736
+	.word	.LANCHOR0+2824
+	.word	.LANCHOR1+2509
 	.word	.LC0
-	.word	.LANCHOR0+1236
+	.word	.LANCHOR0+1232
 	.word	.LANCHOR2
+	.word	.LC297
 	.word	.LC298
-	.word	.LC299
-	.word	.LANCHOR2+2120
+	.word	.LANCHOR0
+	.word	.LANCHOR2+2114
+	.word	.LANCHOR3-3118
 	.word	1431655766
-	.word	.LANCHOR2+3656
-	.word	.LANCHOR3-3114
-	.word	.LANCHOR3-3066
-	.word	-178307901
-	.word	.LANCHOR3+542
-	.word	.LANCHOR3-3132
-	.word	-1431655765
+	.word	.LANCHOR2+3650
 	.word	.LANCHOR3-3104
+	.word	-178307901
+	.word	.LANCHOR3-3074
+	.word	.LANCHOR3-3138
+	.word	-1431655765
 	.fnend
 	.size	gc_do_copy_back, .-gc_do_copy_back
 	.align	2
 	.global	zftl_do_gc
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_do_gc, %function
 zftl_do_gc:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 16
+	@ args = 0, pretend = 0, frame = 8
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	movw	r3, #2792
-	ldr	r4, .L4635+60
-	cmp	r0, #1
-	.pad #44
-	sub	sp, sp, #44
-	mov	fp, r0
-	ldr	r5, .L4635+32
-	ldrh	r9, [r4, r3]
 	movw	r3, #2788
-	ldrh	r7, [r4, r3]
-	movw	r3, #2790
-	ldr	r6, [r4, #1092]
-	add	r7, r9, r7
+	ldr	r4, .L4535
+	cmp	r0, #1
+	.pad #36
+	sub	sp, sp, #36
+	mov	r10, r0
+	ldr	r5, .L4535+4
+	add	r9, r4, #2784
 	ldrh	r8, [r4, r3]
-	uxth	r7, r7
-	beq	.L4411
-.L4422:
-	ldrb	r3, [r5, #-182]	@ zero_extendqisi2
+	ldrh	r6, [r9]
+	movw	r3, #2786
+	ldr	r7, [r4, #1096]
+	ldrh	fp, [r4, r3]
+	add	r6, r8, r6
+	uxth	r6, r6
+	beq	.L4310
+.L4322:
+	ldrb	r3, [r5, #-144]	@ zero_extendqisi2
 	cmp	r3, #6
 	ldrls	pc, [pc, r3, asl #2]
-	b	.L4536
-.L4414:
-	.word	.L4413
-	.word	.L4415
-	.word	.L4416
-	.word	.L4417
-	.word	.L4418
-	.word	.L4537
-	.word	.L4420
-.L4411:
-	ldr	r10, [r5, #548]
-	cmp	r10, #0
-	bne	.L4421
-	ldr	r3, [r5, #552]
+	b	.L4435
+.L4313:
+	.word	.L4312
+	.word	.L4314
+	.word	.L4315
+	.word	.L4316
+	.word	.L4317
+	.word	.L4318
+	.word	.L4319
+.L4318:
+	ldr	r8, .L4535+40
+	mov	r7, #0
+.L4320:
+	bl	gc_check_data_one_wl
+	subs	r9, r0, #0
+	beq	.L4431
+	ldr	r3, [r4, #1096]
+	mov	r6, #0
+	strh	r6, [r8, #52]	@ movhi
+	ldrh	r0, [r3, #80]
+	bl	ftl_free_sblk
+	ldr	r2, [r4, #1096]
+	mvn	r3, #0
+	ldr	r1, [r4, #2800]
+	ldr	r0, [r4, #2832]
+	strh	r3, [r2, #80]	@ movhi
+	strh	r3, [r1, #126]	@ movhi
+	strh	r3, [r2, #130]	@ movhi
+	bl	zbuf_free
+	str	r6, [r4, #2832]
+	strb	r6, [r5, #-144]
+	b	.L4532
+.L4310:
+	ldr	r3, [r5, #-8]
 	cmp	r3, #0
-	beq	.L4422
-.L4421:
-	ldr	r3, .L4635+32
-	sub	r2, r3, #3072
-	ldrh	r2, [r2, #-14]
-	cmp	r7, r2, lsr #2
-	bls	.L4422
-	movw	r2, #2808
+	bne	.L4321
+	ldr	r2, [r5, #-4]
+	cmp	r2, #0
+	beq	.L4322
+.L4321:
+	ldr	r2, .L4535+60
+	ldrh	r2, [r2, #-4]
+	cmp	r6, r2, lsr #2
+	bls	.L4322
+	movw	r2, #2804
 	ldrh	r2, [r4, r2]
-	cmp	r2, r7
-	bcs	.L4422
-	str	r3, [sp, #28]
+	cmp	r2, r6
+	bcs	.L4322
+	str	r3, [sp, #24]
 	bl	timer_get_time
-	add	r10, r10, #20
-	ldr	r3, [sp, #28]
-	cmp	r10, r0
-	ldr	r10, [r5, #552]
-	movcc	r2, #0
-	strcc	r2, [r3, #548]
+	ldr	r3, [sp, #24]
+	add	r3, r3, #20
+	cmp	r3, r0
+	movcc	r3, #0
+	strcc	r3, [r5, #-8]
+	ldr	r3, [r5, #-4]
+	add	r3, r3, #20
+	str	r3, [sp, #24]
 	bl	timer_get_time
-	add	r10, r10, #20
-	cmp	r10, r0
-	ldrcc	r3, .L4635+32
-	movcc	r2, #0
-	strcc	r2, [r3, #552]
-	ldr	r3, [r4, #1092]
+	ldr	r3, [sp, #24]
+	cmp	r3, r0
+	movcc	r3, #0
+	strcc	r3, [r5, #-4]
+	ldr	r3, [r4, #1096]
 	ldrh	r3, [r3, #124]
 	cmp	r3, #0
-	beq	.L4536
-	b	.L4422
-.L4413:
-	movw	r2, #2794
-	movw	r3, #2796
+	bne	.L4322
+.L4435:
+	mov	r7, #16
+	b	.L4309
+.L4312:
+	movw	r3, #2790
+	ldrh	r2, [r7, #80]
+	ldrh	r9, [r4, r3]
+	movw	r3, #2792
 	ldrh	r3, [r4, r3]
-	add	r8, r8, r9
-	ldrh	r10, [r4, r2]
-	ldrh	r2, [r6, #80]
+	add	r8, r8, fp
 	uxth	r8, r8
-	add	r10, r3, r10
+	add	r9, r9, r3
 	movw	r3, #65535
 	cmp	r2, r3
-	ldr	r9, .L4635+60
-	uxth	r10, r10
-	beq	.L4425
-	cmp	fp, #0
-	bne	.L4426
-	movw	r3, #2808
-	ldrh	r3, [r9, r3]
-	cmp	r7, r3, asl #1
-	bge	.L4536
-.L4426:
-	ldr	fp, .L4635+32
-	sub	r9, fp, #3088
-	sub	r0, r9, #12
-	ldrh	r1, [r9]
+	uxth	r9, r9
+	beq	.L4325
+	cmp	r10, #0
+	bne	.L4326
+	movw	r3, #2804
+	ldrh	r3, [r4, r3]
+	cmp	r6, r3, lsl #1
+	bge	.L4435
+.L4326:
+	ldr	r10, .L4535+60
+	ldrh	r1, [r10, #-6]
+	sub	r0, r10, #12
 	add	r1, r1, #1
 	uxth	r1, r1
-	strh	r1, [r9]	@ movhi
+	strh	r1, [r10, #-6]	@ movhi
 	bl	_list_get_gc_head_node
 	movw	r3, #65535
 	cmp	r0, r3
-	beq	.L4428
-	ldr	ip, [r4, #1088]
-	mov	r2, r0, asl #1
-	ldr	r3, [fp, #-180]
-	ldr	r1, .L4635+60
-	ldrh	r2, [ip, r2]
+	beq	.L4328
+	ldr	r1, [r4, #1092]
+	lsl	r2, r0, #1
+	ldr	r3, [r5, #-140]
+	ldrh	r2, [r1, r2]
+	ldrh	r1, [r10, #-8]
 	add	r3, r3, #1
-	ldrh	ip, [r9, #-8]
-	str	r3, [fp, #-180]
-	cmp	ip, r2
-	bcs	.L4429
-	movw	ip, #1076
-	ldrh	ip, [r1, ip]
-	cmp	r3, ip, lsr #4
-	bls	.L4428
-	movw	r3, #2810
-	ldrh	r3, [r1, r3]
+	str	r3, [r5, #-140]
+	cmp	r1, r2
+	bcs	.L4329
+	movw	r1, #1080
+	ldrh	r1, [r4, r1]
+	cmp	r3, r1, lsr #4
+	bls	.L4328
+	movw	r3, #2808
+	ldrh	r3, [r4, r3]
 	cmp	r3, r2
-	bls	.L4428
-.L4429:
+	bls	.L4328
+.L4329:
+	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
 	mov	r1, #0
-	ldrb	r2, [r5, #-3115]	@ zero_extendqisi2
 	bl	gc_add_sblk
-	ldr	r9, .L4635+32
 	cmp	r0, #0
-	beq	.L4430
+	beq	.L4330
 	mov	r3, #1
-	strb	r3, [r9, #-182]
+	strb	r3, [r5, #-144]
 	mov	r3, #0
-	str	r3, [r9, #-180]
-	b	.L4536
-.L4428:
+	str	r3, [r5, #-140]
+	b	.L4435
+.L4328:
 	mov	r3, #0
-	strh	r3, [r9]	@ movhi
-.L4430:
+	strh	r3, [r10, #-6]	@ movhi
+.L4330:
 	cmp	r8, #15
 	movls	r9, #2
-	bls	.L4431
-	ldr	r2, .L4635
-	movw	r3, #2798
-	ldrh	r3, [r4, r3]
-	ldrh	r2, [r2, #-12]
-	cmp	r3, r2
-	movls	r3, #0
-	movhi	r3, #1
-	cmp	r10, #0
-	movne	r10, r3
-	orreq	r10, r3, #1
-	cmp	r10, #0
+	bls	.L4331
+	movw	r3, #2794
+	clz	r9, r9
+	ldrh	r2, [r4, r3]
+	lsr	r9, r9, #5
+	ldrh	r3, [r10, #-2]
+	cmp	r2, r3
+	orrhi	r9, r9, #1
+	cmp	r9, #0
 	movne	r9, #2
 	moveq	r9, #1
-.L4431:
-	ldr	r3, .L4635+4
+.L4331:
+	ldr	r3, .L4535+8
 	ldr	r3, [r3]
 	tst	r3, #256
-	beq	.L4432
-	ldr	r3, [r4, #1092]
-	ldrb	r2, [r5, #-3115]	@ zero_extendqisi2
-	str	r8, [sp]
-	ldrh	r1, [r3, #124]
-	ldr	r0, .L4635+8
-	str	r1, [sp, #4]
+	beq	.L4332
+	ldrh	r1, [r7, #80]
+	ldr	r3, [r4, #1096]
+	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
+	str	r1, [sp, #16]
+	ldrh	r1, [r3, #122]
+	ldr	r0, .L4535+12
+	str	r1, [sp, #12]
 	ldrh	r1, [r3, #120]
 	str	r1, [sp, #8]
 	movw	r1, #2807
-	ldrh	r3, [r3, #122]
-	str	r3, [sp, #12]
-	ldrh	r3, [r6, #80]
-	str	r3, [sp, #16]
-	mov	r3, r7
+	ldrh	r3, [r3, #124]
+	str	r8, [sp]
+	str	r3, [sp, #4]
+	mov	r3, r6
 	bl	printk
-.L4432:
-	ldrb	r0, [r5, #-3115]	@ zero_extendqisi2
+.L4332:
+	mov	r2, #1
 	mov	r1, r9
-	mov	r2, #1
+	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
 	bl	gc_search_src_blk
 	cmp	r0, #0
-	ble	.L4433
-.L4434:
+	ble	.L4333
+.L4334:
 	mov	r3, #1
-	b	.L4631
-.L4433:
-	ldr	r3, .L4635+32
-	mov	r1, #3
+.L4533:
+	strb	r3, [r5, #-144]
+	b	.L4435
+.L4333:
 	mov	r2, #1
-	ldrb	r0, [r3, #-3115]	@ zero_extendqisi2
+	mov	r1, #3
+	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
 	bl	gc_search_src_blk
 	cmp	r0, #0
-	bgt	.L4434
-	b	.L4536
-.L4425:
-	cmp	fp, #1
-	bne	.L4435
-	ldr	r3, [r9, #2804]
+	bgt	.L4334
+	b	.L4435
+.L4325:
+	cmp	r10, #1
+	bne	.L4335
+	ldr	r3, [r4, #2800]
 	ldrh	r3, [r3, #150]
 	cmp	r3, #0
-	beq	.L4436
-	movw	r3, #2792
-	ldrh	r3, [r9, r3]
+	beq	.L4336
+	movw	r3, #2788
+	ldrh	r3, [r4, r3]
 	cmp	r3, #8
-	bls	.L4436
+	bls	.L4336
 	bl	gc_ink_check_sblk
-.L4436:
+.L4336:
 	bl	gc_scan_static_data
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r4, #1096]
 	ldrh	r3, [r3, #122]
 	cmp	r3, #0
-	beq	.L4437
-.L4438:
+	beq	.L4337
+.L4338:
 	mov	r3, #1
-	strb	r3, [r5, #-3115]
-	b	.L4631
-.L4437:
+	strb	r3, [r5, #-3119]
+	b	.L4533
+.L4337:
 	bl	gc_static_wearleveling
-	cmp	r0, #0
-	bne	.L4438
+	subs	r7, r0, #0
+	bne	.L4338
 	bl	gc_block_vpn_scan
 	cmp	r8, #0
-	beq	.L4439
-	cmp	r7, r10
-	ldr	r6, .L4635
-	bcs	.L4440
-	ldrh	r3, [r6, #-14]
-	cmp	r3, r7
-	bhi	.L4441
-.L4440:
-	ldrh	r2, [r6, #-14]
-	add	r3, r7, r10
+	ldr	fp, .L4535+60
+	beq	.L4339
+	cmp	r6, r9
+	bcs	.L4340
+	ldrh	r3, [fp, #-4]
+	cmp	r3, r6
+	bhi	.L4341
+.L4340:
+	ldrh	r2, [fp, #-4]
+	add	r3, r6, r9
 	cmp	r3, r2
-	blt	.L4441
-	movw	r3, #2798
+	blt	.L4341
+	movw	r3, #2794
 	ldrh	r2, [r4, r3]
-	ldr	r3, .L4635
-	ldrh	r3, [r3, #-12]
+	ldrh	r3, [fp, #-2]
 	cmp	r2, r3
-	bcc	.L4439
-.L4441:
-	ldr	r0, .L4635+12
-	mov	r1, #16
-	mov	ip, #1
-	strb	ip, [r5, #-3115]
-	str	ip, [sp, #28]
-	bl	_list_get_gc_head_node
+	bcc	.L4339
+.L4341:
+	mov	r1, #1
+	mov	r0, #16
+	strb	r1, [r5, #-3119]
+	str	r1, [sp, #24]
+	bl	zftl_get_gc_node.part.10
 	movw	r2, #65535
-	ldr	r9, .L4635+32
 	cmp	r0, r2
-	beq	.L4442
-	ldr	r2, [r4, #1088]
-	mov	r3, r0, asl #1
-	ldr	ip, [sp, #28]
+	beq	.L4342
+	ldr	r2, [r4, #1092]
+	lsl	r3, r0, #1
+	ldr	r1, [sp, #24]
 	ldrh	r3, [r2, r3]
-	ldrh	r2, [r9, #-176]
+	ldrh	r2, [r5, #-136]
 	cmp	r3, r2
 	movcs	r3, #0
 	movcc	r3, #1
-	cmp	r7, #2
+	cmp	r6, #2
 	movls	r3, #0
 	cmp	r3, #0
-	beq	.L4442
+	beq	.L4342
 	mov	r2, #0
-	mov	r1, ip
-	strb	r2, [r9, #-3115]
-	str	r2, [r9, #-180]
+	strb	r2, [r5, #-3119]
+	str	r2, [r5, #-140]
 	bl	gc_add_sblk
 	cmp	r0, #0
-	bne	.L4434
-.L4442:
-	ldr	r9, .L4635+32
+	bne	.L4334
+.L4342:
 	mov	r1, #0
-	sub	r0, r9, #3104
+	ldr	r0, .L4535+16
 	bl	_list_get_gc_head_node
 	movw	r2, #65535
 	cmp	r0, r2
-	beq	.L4443
-	ldr	r2, [r4, #1088]
-	mov	r3, r0, asl #1
+	beq	.L4343
+	ldr	r2, [r4, #1092]
+	lsl	r3, r0, #1
 	ldrh	r3, [r2, r3]
-	ldrh	r2, [r9, #-176]
+	ldrh	r2, [r5, #-136]
 	cmp	r3, r2
 	movcs	r3, #0
 	movcc	r3, #1
-	cmp	r7, #2
+	cmp	r6, #2
 	movls	r3, #0
 	cmp	r3, #0
-	beq	.L4443
+	beq	.L4343
 	mov	r2, #0
 	mov	r1, #1
-	strb	r2, [r9, #-3115]
-	str	r2, [r9, #-180]
+	strb	r2, [r5, #-3119]
+	str	r2, [r5, #-140]
 	bl	gc_add_sblk
 	cmp	r0, #0
-	bne	.L4434
-.L4443:
-	ldr	r1, .L4635+32
-	mov	r9, #0
-	ldrh	r3, [r5, #-176]
-	sub	r2, r1, #3088
-	ldr	ip, .L4635+60
+	bne	.L4334
+.L4343:
+	ldrh	r3, [r5, #-136]
+	ldrh	r2, [fp, #-8]
+	ldr	r0, .L4535+16
 	add	r3, r3, #1
-	ldrh	r2, [r2, #-8]
+	ldr	r1, [r5, #-140]
 	uxth	r3, r3
-	strh	r3, [r5, #-176]	@ movhi
+	str	r2, [sp, #28]
 	cmp	r3, r2, lsr #5
-	movhi	r3, #4
-	strhih	r3, [r1, #-176]	@ movhi
-	ldr	r3, .L4635+32
-	ldr	r1, [r5, #-180]
-	sub	r0, r3, #3104
+	strh	r3, [r5, #-136]	@ movhi
 	add	r1, r1, #1
-	str	r1, [r5, #-180]
-	strh	r9, [r0, #-8]	@ movhi
-	strh	r9, [r0, #-6]	@ movhi
-	strh	r9, [r0, #-4]	@ movhi
-	movw	r0, #1076
+	movhi	r3, #4
+	str	r1, [r5, #-140]
+	strhhi	r3, [r5, #-136]	@ movhi
+	mov	r3, #0
+	strh	r3, [r0, #-8]	@ movhi
+	strh	r3, [r0, #-6]	@ movhi
+	strh	r3, [r0, #-4]	@ movhi
+	movw	r0, #1080
 	ldrh	r0, [r4, r0]
 	cmp	r1, r0, lsr #5
-	bls	.L4445
-	movw	r1, #2798
-	ldrh	r1, [ip, r1]
+	bls	.L4345
+	movw	r1, #2794
+	ldrh	r1, [r4, r1]
 	cmp	r1, r8
-	bls	.L4445
-	mov	r1, r9
-	ldr	r0, .L4635+16
-	str	ip, [sp, #36]
-	str	r3, [sp, #32]
-	str	r2, [sp, #28]
+	bls	.L4345
+	mov	r1, r3
+	sub	r0, fp, #12
+	str	r3, [sp, #24]
 	bl	_list_get_gc_head_node
 	movw	r1, #65535
+	ldr	r3, [sp, #24]
 	cmp	r0, r1
-	beq	.L4541
-	ldr	ip, [sp, #36]
-	mov	r0, r0, asl #1
-	ldr	r3, [sp, #32]
 	ldr	r2, [sp, #28]
-	ldr	r1, [ip, #1088]
-	ldrh	r0, [r1, r0]
-	ldrb	r1, [r3, #-3123]	@ zero_extendqisi2
-	mul	r2, r1, r2
-	cmp	r0, r2
-	strle	r9, [r3, #-180]
-	ldrleb	r0, [r3, #-3115]	@ zero_extendqisi2
-	movle	r1, #2
-	bgt	.L4541
-	b	.L4624
-.L4445:
-	movw	r2, #2798
-	ldr	r3, .L4635+60
-	ldrh	r1, [r4, r2]
-	ldrh	r2, [r6, #-12]
+	bne	.L4346
+.L4519:
+	mov	r7, #16
+	b	.L4347
+.L4346:
+	ldr	r1, [r4, #1092]
+	lsl	r0, r0, #1
+	ldrh	r1, [r1, r0]
+	ldrb	r0, [r5, #-3127]	@ zero_extendqisi2
+	mul	r2, r2, r0
 	cmp	r1, r2
-	ldrcs	r3, .L4635+32
-	movcs	r1, #2
-	movcs	r2, #1
-	ldrcsb	r0, [r3, #-3115]	@ zero_extendqisi2
-	bcs	.L4623
-.L4448:
-	movw	r2, #2794
-	ldrh	r2, [r3, r2]
-	cmp	r2, #0
-	bne	.L4449
-	movw	r2, #2796
-	ldrh	r3, [r3, r2]
-	cmp	r3, #8
-	bls	.L4450
-.L4449:
-	ldrb	r0, [r5, #-3115]	@ zero_extendqisi2
-	mov	r1, #1
-.L4624:
-	mov	r2, #4
-.L4623:
+	strle	r3, [r5, #-140]
+	movle	r2, #4
+	bgt	.L4519
+.L4527:
+	mov	r1, #2
+.L4518:
+	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
 	bl	gc_search_src_blk
 	uxth	r0, r0
 	cmp	r0, #0
-	bne	.L4434
-	b	.L4541
-.L4450:
-	ldr	r2, .L4635+56
+	beq	.L4519
+	b	.L4334
+.L4345:
+	movw	r3, #2794
+	ldrh	r2, [r4, r3]
+	ldrh	r3, [fp, #-2]
+	cmp	r2, r3
+	movcs	r2, #1
+	bcs	.L4527
+.L4350:
+	movw	r3, #2790
+	ldrh	r3, [r4, r3]
+	cmp	r3, #0
+	bne	.L4351
+	movw	r3, #2792
+	ldrh	r3, [r4, r3]
+	cmp	r3, #8
+	bls	.L4352
+.L4351:
+	mov	r2, #4
+	mov	r1, #1
+	b	.L4518
+.L4352:
+	ldr	r2, .L4535+40
 	movw	r3, #2106
 	ldrh	r3, [r2, r3]
 	cmp	r3, #0
-	movne	r6, #16
-	moveq	r6, #0
-	b	.L4451
-.L4439:
-	ldr	r3, .L4635+32
-	sub	r2, r3, #3088
-	ldrh	r1, [r2, #-8]
-	ldrh	r2, [r5, #-176]
-	cmp	r2, r1, lsr #5
-	movcs	r2, #4
-	strcsh	r2, [r3, #-176]	@ movhi
-	b	.L4541
-.L4435:
-	movw	r3, #2808
-	ldrh	r3, [r9, r3]
-	cmp	r3, r7
-	bcs	.L4541
-	ldr	r3, [r9, #1092]
-	ldrh	r3, [r3, #124]
+	bne	.L4519
+.L4347:
+	ldr	r3, [r4, #2812]
 	cmp	r3, #0
-	beq	.L4536
-.L4541:
-	mov	r6, #16
-.L4451:
-	ldr	r3, [r4, #2820]
-	cmp	r3, #0
-	beq	.L4453
-	ldr	r3, .L4635+60
-	cmp	r7, #15
-	mov	r2, #0
-	ldr	r0, .L4635+16
+	beq	.L4353
+	mov	r3, #0
 	mov	r1, #0
-	str	r2, [r3, #2820]
-	movhi	r3, #0
-	movls	r3, #1
-	cmp	r8, r2
-	moveq	r3, #0
-	cmp	r3, r2
+	str	r3, [r4, #2812]
+	subs	r3, r8, r3
 	movne	r3, #1
-	strb	r3, [r5, #-3115]
+	cmp	r6, #15
+	movhi	r3, #0
+	ldr	r0, .L4535+20
+	cmp	r3, #0
+	movne	r3, #1
+	strb	r3, [r5, #-3119]
 	bl	_list_get_gc_head_node
 	movw	r2, #65535
 	cmp	r0, r2
-	beq	.L4456
-	ldr	r2, [r4, #1088]
-	mov	r3, r0, asl #1
+	beq	.L4356
+	ldr	r2, [r4, #1092]
+	lsl	r3, r0, #1
 	ldrh	r3, [r2, r3]
 	cmp	r3, #8
-	bhi	.L4456
-	ldr	r3, .L4635+60
-	mov	r2, #1
+	bhi	.L4356
+	mov	r3, #1
+	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
 	mov	r1, #0
-	str	r2, [r3, #2820]
-	ldr	r3, .L4635+32
-	ldrb	r2, [r3, #-3115]	@ zero_extendqisi2
+	str	r3, [r4, #2812]
 	bl	gc_add_sblk
 	cmp	r0, #0
-	bne	.L4434
-.L4456:
-	ldr	r9, .L4635+32
+	bne	.L4334
+.L4356:
 	mov	r1, #0
-	sub	r0, r9, #3104
+	ldr	r0, .L4535+16
 	bl	_list_get_gc_head_node
 	movw	r2, #65535
 	cmp	r0, r2
-	beq	.L4457
-	ldr	r2, [r4, #1088]
-	mov	r3, r0, asl #1
-	ldrh	r3, [r2, r3]
-	cmp	r3, #4
-	bhi	.L4457
-	ldr	r3, .L4635+60
-	mov	r2, #1
-	mov	r1, #0
-	str	r2, [r3, #2820]
-	ldrb	r2, [r9, #-3115]	@ zero_extendqisi2
-	bl	gc_add_sblk
-	cmp	r0, #0
-	bne	.L4434
-.L4457:
-	ldr	r0, .L4635+12
-	mov	r1, #0
-	bl	_list_get_gc_head_node
-	movw	r2, #65535
-	cmp	r0, r2
-	beq	.L4453
-	ldr	r2, [r4, #1088]
-	mov	r3, r0, asl #1
-	ldrh	r3, [r2, r3]
-	cmp	r3, #4
-	bhi	.L4453
-	ldr	r3, .L4635+60
-	mov	r1, #1
-	str	r1, [r3, #2820]
-	ldr	r3, .L4635+32
-	ldrb	r2, [r3, #-3115]	@ zero_extendqisi2
-	bl	gc_add_sblk
-	cmp	r0, #0
-	bne	.L4434
-.L4453:
+	beq	.L4357
 	ldr	r2, [r4, #1092]
-	mov	r1, #1
-	ldr	r9, .L4635+32
-	ldr	r3, .L4635+60
-	ldrh	ip, [r2, #124]
-	strb	r1, [r5, #-3115]
-	cmp	ip, #0
-	strneb	r1, [r9, #-182]
-	movne	r3, #0
-	strneb	r3, [r9, #-3115]
-	bne	.L4459
-	movw	r2, #2808
-	ldrh	r0, [r3, r2]
-	cmp	r7, r0
-	bcs	.L4460
-	cmp	r8, #0
-	beq	.L4461
-	cmp	r8, #16
-	bls	.L4462
-	sub	r2, r9, #3072
-	movw	r0, #2798
-	ldrh	r0, [r3, r0]
-	ldrh	r2, [r2, #-12]
+	lsl	r3, r0, #1
+	ldrh	r3, [r2, r3]
+	cmp	r3, #4
+	bhi	.L4357
+	mov	r3, #1
+	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
+	mov	r1, #0
+	str	r3, [r4, #2812]
+	bl	gc_add_sblk
+	cmp	r0, #0
+	bne	.L4334
+.L4357:
+	mov	r0, #0
+	bl	zftl_get_gc_node.part.10
+	movw	r2, #65535
 	cmp	r0, r2
-	bhi	.L4462
-	mov	r0, r1
+	beq	.L4353
+	ldr	r2, [r4, #1092]
+	lsl	r3, r0, #1
+	ldrh	r3, [r2, r3]
+	cmp	r3, #4
+	bhi	.L4353
+	mov	r1, #1
+	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
+	str	r1, [r4, #2812]
+	bl	gc_add_sblk
+	cmp	r0, #0
+	bne	.L4334
+.L4353:
+	ldr	r3, [r4, #1096]
+	mov	r1, #1
+	strb	r1, [r5, #-3119]
+	ldrh	fp, [r3, #124]
+	cmp	fp, #0
+	movne	r3, #0
+	strbne	r1, [r5, #-144]
+	strbne	r3, [r5, #-3119]
+	bne	.L4309
+	movw	r3, #2804
+	ldrh	r2, [r4, r3]
+	cmp	r6, r2
+	bcs	.L4359
+	cmp	r8, #0
+	beq	.L4360
+	cmp	r8, #16
+	bls	.L4361
+	ldr	r6, .L4535+60
+	movw	r3, #2794
+	ldrh	r2, [r4, r3]
+	ldrh	r3, [r6, #-2]
+	cmp	r2, r3
+	bhi	.L4361
 	mov	r2, #4
-	str	ip, [sp, #32]
-	str	r3, [sp, #28]
+	mov	r0, r1
 	bl	gc_search_src_blk
 	uxth	r0, r0
-	ldr	r3, [sp, #28]
 	cmp	r0, #0
-	ldr	ip, [sp, #32]
-	beq	.L4628
-	sub	r7, r9, #3088
-	mov	r1, ip
-	sub	r0, r7, #12
-	str	r3, [sp, #28]
+	bne	.L4362
+.L4523:
+	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
+	mov	r2, #4
+	mov	r1, #3
+.L4525:
+	bl	gc_search_src_blk
+	uxth	r0, r0
+.L4363:
+	cmp	r0, #0
+	bne	.L4365
+	b	.L4309
+.L4339:
+	ldrh	r3, [r5, #-136]
+	ldrh	r2, [fp, #-8]
+	cmp	r3, r2, lsr #5
+	movcs	r3, #4
+	strhcs	r3, [r5, #-136]	@ movhi
+	b	.L4519
+.L4335:
+	movw	r3, #2804
+	ldrh	r3, [r4, r3]
+	cmp	r3, r6
+	bcs	.L4519
+	ldr	r3, [r4, #1096]
+	ldrh	r3, [r3, #124]
+	cmp	r3, #0
+	beq	.L4435
+	b	.L4519
+.L4362:
+	mov	r1, fp
+	sub	r0, r6, #12
 	bl	_list_get_gc_head_node
-	movw	r2, #65535
-	cmp	r0, r2
-	beq	.L4534
-	ldr	r3, [sp, #28]
-	mov	r1, r0, asl #1
-	ldr	r2, [r9, #-180]
-	ldr	ip, [r3, #1088]
-	add	r2, r2, #1
-	str	r2, [r9, #-180]
-	ldrh	r1, [ip, r1]
-	ldrh	ip, [r7, #-8]
-	cmp	ip, r1
-	bcs	.L4466
-	movw	ip, #1076
-	ldrh	ip, [r3, ip]
-	cmp	r2, ip, lsr #4
-	bls	.L4534
-	movw	r2, #2810
-	ldrh	r3, [r3, r2]
-	cmp	r3, r1
-	bls	.L4534
-.L4466:
+	movw	r3, #65535
+	cmp	r0, r3
+	beq	.L4365
+	ldr	r1, [r4, #1092]
+	lsl	r2, r0, #1
+	ldr	r3, [r5, #-140]
+	ldrh	r2, [r1, r2]
+	ldrh	r1, [r6, #-8]
+	add	r3, r3, #1
+	str	r3, [r5, #-140]
+	cmp	r1, r2
+	bcs	.L4366
+	movw	r1, #1080
+	ldrh	r1, [r4, r1]
+	cmp	r3, r1, lsr #4
+	bls	.L4365
+	movw	r3, #2808
+	ldrh	r3, [r4, r3]
+	cmp	r3, r2
+	bls	.L4365
+.L4366:
+	ldrb	r2, [r5, #-3119]	@ zero_extendqisi2
 	mov	r1, #0
-	ldrb	r2, [r5, #-3115]	@ zero_extendqisi2
 	bl	gc_add_sblk
 	mov	r3, #1
-	str	r3, [r4, #2820]
+	str	r3, [r4, #2812]
 	mov	r3, #0
-	str	r3, [r5, #-180]
-	b	.L4534
-.L4462:
-	mov	r0, #1
+	str	r3, [r5, #-140]
+.L4365:
+	mov	r3, #1
+	b	.L4526
+.L4361:
+	mov	r2, #1
 	mov	r1, #2
-	mov	r2, r0
+	mov	r0, r2
+.L4529:
 	bl	gc_search_src_blk
 	uxth	r0, r0
 	cmp	r0, #0
-	ldreqb	r0, [r5, #-3115]	@ zero_extendqisi2
-	bne	.L4534
-	b	.L4627
-.L4461:
-	cmp	r7, #16
-	strb	r8, [r9, #-3115]
-	mov	r0, r8
-	bhi	.L4627
+	bne	.L4365
+	b	.L4523
+.L4360:
+	cmp	r6, #16
+	strb	r8, [r5, #-3119]
+	movhi	r2, #4
+	movhi	r1, #3
+	movhi	r0, r8
+	bhi	.L4525
 	mov	r2, r1
-	bl	gc_search_src_blk
-	uxth	r0, r0
-	cmp	r0, #0
-	bne	.L4534
-.L4628:
-	ldrb	r0, [r9, #-3115]	@ zero_extendqisi2
-.L4627:
-	mov	r1, #3
-	mov	r2, #4
-	bl	gc_search_src_blk
-	uxth	r0, r0
-	b	.L4464
-.L4460:
-	cmp	fp, #1
-	bne	.L4459
-	cmp	r7, r0, asl #1
-	bge	.L4469
-	cmp	r10, r8, lsr #1
-	bcs	.L4470
-	sub	r9, r9, #3072
-	movw	r1, #2798
-	ldrh	r0, [r3, r1]
-	ldrh	r1, [r9, #-12]
+	mov	r0, r8
+	b	.L4529
+.L4359:
+	cmp	r10, #1
+	bne	.L4309
+	cmp	r6, r2, lsl #1
+	bge	.L4369
+	cmp	r9, r8, lsr #1
+	bcs	.L4370
+	ldr	r2, .L4535+60
+	movw	r1, #2794
+	ldrh	r0, [r4, r1]
+	ldrh	r1, [r2, #-2]
 	cmp	r0, r1
-	ldrcch	r1, [r9, #-14]
-	movcc	r1, r1, lsr #2
-	strcch	r1, [r3, r2]	@ movhi
-	bcc	.L4459
-.L4470:
-	ldr	r0, .L4635+12
-	mov	r1, #8
-	bl	_list_get_gc_head_node
+	ldrhcc	r2, [r2, #-4]
+	lsrcc	r2, r2, #2
+	strhcc	r2, [r4, r3]	@ movhi
+	bcc	.L4309
+.L4370:
+	mov	r0, #8
+	bl	zftl_get_gc_node.part.10
 	movw	r2, #65535
-	ldr	r9, .L4635+32
 	cmp	r0, r2
-	beq	.L4471
-	ldr	r2, [r4, #1088]
-	mov	r3, r0, asl #1
+	beq	.L4371
+	ldr	r2, [r4, #1092]
+	lsl	r3, r0, #1
 	ldrh	r3, [r2, r3]
 	cmp	r3, #3
 	movhi	r3, #0
 	movls	r3, #1
-	cmp	r7, #0
+	cmp	r6, #0
 	moveq	r3, #0
 	cmp	r3, #0
-	beq	.L4471
+	beq	.L4371
 	mov	r2, #0
 	mov	r1, #1
-	strb	r2, [r9, #-3115]
+	strb	r2, [r5, #-3119]
 	bl	gc_add_sblk
 	cmp	r0, #0
-	bne	.L4634
-.L4471:
-	ldr	r0, .L4635+16
+	bne	.L4365
+.L4371:
 	mov	r1, #0
+	ldr	r0, .L4535+20
 	bl	_list_get_gc_head_node
 	movw	r3, #65535
-	ldr	r9, .L4635+32
-	cmp	r0, r3
 	mov	fp, r0
-	bne	.L4472
-.L4477:
+	cmp	r0, r3
+	ldr	r10, .L4535+60
+	bne	.L4372
+.L4377:
 	cmp	r8, #1
-	bhi	.L4473
-	b	.L4474
-.L4472:
-	movw	r1, #1076
-	ldr	r3, [r9, #-180]
-	ldrh	r1, [r4, r1]
-	mov	ip, r0, asl #1
-	add	r3, r3, #1
-	ldr	r2, .L4635+60
-	str	r3, [r9, #-180]
-	cmp	r3, r1, lsr #4
-	bls	.L4475
-	ldr	r3, [r2, #1088]
-	mov	r1, #0
-	str	r1, [r9, #-180]
-	ldrh	lr, [r3, ip]
-	movw	r3, #2810
-	ldrh	r3, [r2, r3]
-	cmp	lr, r3
-	bcs	.L4475
-	mov	r3, #1
-	str	ip, [sp, #32]
-	mov	r2, r3
-	strb	r3, [r9, #-3115]
-	str	r3, [sp, #28]
-	bl	gc_add_sblk
-	cmp	r0, #0
-	ldr	r3, [sp, #28]
-	ldr	ip, [sp, #32]
-	bne	.L4633
-.L4475:
-	ldr	r2, [r4, #1088]
-	ldr	r9, .L4635+32
-	ldr	r3, .L4635+60
-	ldrh	r1, [r2, ip]
-	sub	r2, r9, #3088
-	ldrh	r2, [r2, #-8]
-	cmp	r1, r2, lsr #1
-	bhi	.L4476
-	mov	r0, fp
-	mov	r1, #1
-	mov	r2, #0
-	bl	gc_add_sblk
-.L4634:
-	mov	r3, #1
-.L4633:
-	strb	r3, [r9, #-182]
-	b	.L4459
-.L4476:
-	movw	r2, #2794
-	movw	r0, #2796
-	ldrh	r0, [r3, r0]
-	sub	r9, r9, #3072
-	ldrh	r2, [r3, r2]
-	add	r2, r2, r0
-	ldrh	r0, [r9, #-14]
-	cmp	r2, r0, asl #1
-	ble	.L4477
-	movw	r2, #2810
-	ldrh	r3, [r3, r2]
-	cmp	r3, r1
-	bcc	.L4474
-	b	.L4477
-.L4473:
-	ldr	r9, .L4635+32
-	cmp	r8, #16
-	mov	r0, #1
-	strb	r0, [r5, #-3115]
-	sub	r8, r9, #3072
-	bls	.L4478
-	movw	r3, #2798
-	ldrh	r2, [r4, r3]
-	ldrh	r3, [r8, #-12]
-	cmp	r2, r3
-	bhi	.L4478
-	mov	r1, r0
-	mov	r2, #4
-	bl	gc_search_src_blk
-	uxth	r0, r0
-	cmp	r0, #0
-	ldreqb	r0, [r9, #-3115]	@ zero_extendqisi2
-	bne	.L4479
-	b	.L4626
-.L4478:
-	mov	r0, #1
-	mov	r1, #2
-	mov	r2, r0
-	bl	gc_search_src_blk
-	uxth	r0, r0
-	cmp	r0, #0
-	bne	.L4479
-	ldrb	r0, [r5, #-3115]	@ zero_extendqisi2
-.L4626:
-	mov	r1, #3
-	mov	r2, #4
-	bl	gc_search_src_blk
-	uxth	r0, r0
-.L4479:
-	ldrh	r3, [r8, #-14]
-	cmp	r7, r10, lsr #1
-	movw	r2, #2808
-	movhi	r3, r3, lsr #2
-	movls	r3, r3, lsr #1
-	strh	r3, [r4, r2]	@ movhi
-	b	.L4464
-.L4474:
-	cmp	r7, r10
-	ldr	r8, .L4635
-	bcs	.L4481
-	sub	r0, r8, #20
-	mov	r1, #4
-	mov	r9, #0
-	strb	r9, [r5, #-3115]
-	bl	_list_get_gc_head_node
+	bhi	.L4373
+.L4374:
+	cmp	r6, r9
+	bcs	.L4381
+	mov	r6, #0
+	mov	r0, #4
+	strb	r6, [r5, #-3119]
+	bl	zftl_get_gc_node.part.10
 	movw	r3, #65535
 	cmp	r0, r3
-	beq	.L4481
-	ldr	r3, [r4, #1088]
-	mov	r0, r0, asl #1
-	ldrh	r1, [r8, #-24]
-	ldr	r7, .L4635+60
+	beq	.L4381
+	ldr	r3, [r4, #1092]
+	lsl	r0, r0, #1
+	ldrh	r1, [r10, #-8]
 	ldrh	r2, [r3, r0]
-	ldrb	r3, [r8, #-51]	@ zero_extendqisi2
+	ldrb	r3, [r5, #-3127]	@ zero_extendqisi2
 	mul	r3, r3, r1
 	cmp	r2, r3, asr #1
-	ldrgth	r3, [r8, #-14]
-	movwgt	r2, #2808
-	movgt	r3, r3, lsr #2
-	strgth	r3, [r7, r2]	@ movhi
-	bgt	.L4459
-.L4483:
-	mov	r2, #4
-	mov	r0, r9
-	mov	r1, #3
-	bl	gc_search_src_blk
-	ldrh	r3, [r8, #-14]
-	movw	r2, #2808
-	mov	r3, r3, lsr #1
-	strh	r3, [r7, r2]	@ movhi
-	uxth	r0, r0
-	b	.L4464
-.L4481:
-	ldrh	r3, [r8, #-14]
-	movw	r2, #2808
-	mov	r3, r3, lsr #2
+	ble	.L4383
+.L4381:
+	ldrh	r3, [r10, #-4]
+	movw	r2, #2804
+	lsr	r3, r3, #2
 	strh	r3, [r4, r2]	@ movhi
-	b	.L4459
-.L4469:
-	sub	r9, r9, #3072
-	ldrh	r1, [r9, #-14]
-	mov	r1, r1, lsr #2
-	strh	r1, [r3, r2]	@ movhi
-	ldr	r2, .L4635+56
+.L4309:
+	mov	r0, r7
+	add	sp, sp, #36
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4372:
+	movw	r2, #1080
+	ldr	r3, [r5, #-140]
+	ldrh	r2, [r4, r2]
+	add	r3, r3, #1
+	str	r3, [r5, #-140]
+	cmp	r3, r2, lsr #4
+	lsl	r3, r0, #1
+	str	r3, [sp, #24]
+	bls	.L4375
+	ldr	r3, [r4, #1092]
+	lsl	r2, r0, #1
+	mov	r1, #0
+	str	r1, [r5, #-140]
+	ldrh	r2, [r3, r2]
+	movw	r3, #2808
+	ldrh	r3, [r4, r3]
+	cmp	r2, r3
+	bcs	.L4375
+	mov	r3, #1
+	mov	r2, r3
+	strb	r3, [r5, #-3119]
+	str	r3, [sp, #24]
+	bl	gc_add_sblk
+	cmp	r0, #0
+	ldr	r3, [sp, #24]
+	beq	.L4375
+.L4526:
+	strb	r3, [r5, #-144]
+	b	.L4309
+.L4375:
+	ldr	r3, [r4, #1092]
+	lsl	r2, fp, #1
+	ldrh	r2, [r3, r2]
+	ldrh	r3, [r10, #-8]
+	cmp	r2, r3, lsr #1
+	bhi	.L4376
+	mov	r2, #0
+	mov	r1, #1
+	mov	r0, fp
+	bl	gc_add_sblk
+	b	.L4365
+.L4376:
+	movw	r3, #2790
+	movw	r1, #2792
+	ldrh	r1, [r4, r1]
+	ldrh	r3, [r4, r3]
+	add	r3, r3, r1
+	ldrh	r1, [r10, #-4]
+	cmp	r3, r1, lsl #1
+	ble	.L4377
+	movw	r3, #2808
+	ldrh	r3, [r4, r3]
+	cmp	r3, r2
+	bcc	.L4374
+	b	.L4377
+.L4373:
+	cmp	r8, #16
+	mov	r1, #1
+	strb	r1, [r5, #-3119]
+	bls	.L4378
+	movw	r3, #2794
+	ldrh	r2, [r4, r3]
+	ldrh	r3, [r10, #-2]
+	cmp	r2, r3
+	movls	r2, #4
+	movls	r0, r1
+	bls	.L4531
+.L4378:
+	mov	r2, #1
+	mov	r1, #2
+	mov	r0, r2
+.L4531:
+	bl	gc_search_src_blk
+	uxth	r0, r0
+	cmp	r0, #0
+	bne	.L4379
+	mov	r2, #4
+	mov	r1, #3
+	ldrb	r0, [r5, #-3119]	@ zero_extendqisi2
+	bl	gc_search_src_blk
+	uxth	r0, r0
+.L4379:
+	ldrh	r3, [r10, #-4]
+	cmp	r6, r9, lsr #1
+	movw	r2, #2804
+	lsrhi	r3, r3, #2
+	lsrls	r3, r3, #1
+.L4524:
+	strh	r3, [r4, r2]	@ movhi
+	b	.L4363
+.L4383:
+	mov	r2, #4
+	mov	r1, #3
+	mov	r0, r6
+	bl	gc_search_src_blk
+	ldrh	r3, [r10, #-4]
+	uxth	r0, r0
+	movw	r2, #2804
+	lsr	r3, r3, #1
+	b	.L4524
+.L4369:
+	ldr	r2, .L4535+60
+	ldrh	r2, [r2, #-4]
+	lsr	r2, r2, #2
+	strh	r2, [r4, r3]	@ movhi
 	movw	r3, #2106
+	ldr	r2, .L4535+40
 	ldrh	r3, [r2, r3]
 	cmp	r3, #0
-	moveq	r6, #0
-	b	.L4459
-.L4464:
-	cmp	r0, #0
-	beq	.L4459
-.L4534:
-	mov	r3, #1
-	strb	r3, [r5, #-182]
-	b	.L4459
-.L4415:
-	movw	r6, #2828
+	moveq	r7, #0
+	b	.L4309
+.L4314:
+	movw	r6, #2824
 	movw	r3, #65535
 	ldrh	r2, [r4, r6]
 	cmp	r2, r3
-	bne	.L4484
+	bne	.L4384
 	bl	gc_get_src_blk
-	ldr	r3, .L4635+60
-	strh	r0, [r3, r6]	@ movhi
-.L4484:
-	movw	r3, #2828
-	movw	r0, #65535
-	ldrh	r1, [r4, r3]
-	ldr	r2, .L4635+60
-	cmp	r1, r0
-	beq	.L4485
-	movw	r0, #1076
-	ldrh	r0, [r2, r0]
-	cmp	r0, r1
-	mvnls	r1, #0
-	strlsh	r1, [r2, r3]	@ movhi
-.L4485:
-	movw	r3, #2828
+	strh	r0, [r4, r6]	@ movhi
+.L4384:
+	movw	r3, #2824
+	movw	r1, #65535
+	ldrh	r2, [r4, r3]
+	cmp	r2, r1
+	beq	.L4385
+	movw	r1, #1080
+	ldrh	r1, [r4, r1]
+	cmp	r1, r2
+	mvnls	r2, #0
+	strhls	r2, [r4, r3]	@ movhi
+.L4385:
+	movw	r3, #2824
 	movw	r1, #65535
 	ldrh	r3, [r4, r3]
-	ldr	r2, .L4635+60
+	ldr	r2, .L4535+40
 	cmp	r3, r1
-	beq	.L4632
-	ldr	r0, .L4635+56
-	ldr	r1, [r2, #1080]
-	ldrh	ip, [r0, #52]
-	add	r1, r1, r3, asl #2
+	beq	.L4534
+	ldrh	ip, [r2, #52]
+	ldr	r1, [r4, #1084]
 	cmp	ip, #0
-	addne	r2, r2, #2880
+	addne	r2, r2, #52
 	movne	r0, #0
-	beq	.L4487
-.L4488:
-	uxth	lr, r0
-	cmp	lr, ip
-	bcs	.L4487
-	ldrh	lr, [r2, #2]!
-	add	r0, r0, #1
-	cmp	lr, r3
-	bne	.L4488
-.L4492:
-	movw	r3, #2828
-	mvn	r2, #0
-	strh	r2, [r4, r3]	@ movhi
-	b	.L4536
-.L4487:
+	add	r1, r1, r3, lsl #2
+	bne	.L4388
+.L4387:
 	ldrb	r2, [r1, #2]	@ zero_extendqisi2
 	tst	r2, #192
 	and	r2, r2, #224
@@ -27441,216 +27711,201 @@
 	movne	r2, r1
 	orreq	r2, r1, #1
 	cmp	r2, #0
-	beq	.L4490
-	ldr	r2, [r4, #1088]
-	mov	r3, r3, asl #1
+	beq	.L4390
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
 	ldrh	r3, [r2, r3]
 	cmp	r3, #0
-	beq	.L4492
-	ldr	r1, .L4635+64
+	beq	.L4392
 	movw	r2, #3306
-	ldr	r0, .L4635+68
+	ldr	r1, .L4535+64
+	ldr	r0, .L4535+68
 	bl	printk
 	bl	dump_stack
-	b	.L4492
-.L4490:
+	b	.L4392
+.L4388:
+	uxth	lr, r0
+	cmp	lr, ip
+	bcs	.L4387
+	ldrh	lr, [r2, #2]!
+	add	r0, r0, #1
+	cmp	lr, r3
+	bne	.L4388
+.L4392:
+	mvn	r2, #0
+	movw	r3, #2824
+	strh	r2, [r4, r3]	@ movhi
+	b	.L4435
+.L4390:
 	mov	r3, #2
-	b	.L4631
-.L4416:
+	b	.L4533
+.L4315:
 	bl	gc_scan_src_blk
 	cmn	r0, #1
 	moveq	r3, #3
-	beq	.L4631
-	movw	r3, #2828
-	ldr	r2, .L4635+56
+	beq	.L4533
+	movw	r3, #2824
+	ldr	r2, .L4535+40
 	ldrh	r3, [r4, r3]
 	movw	r1, #65535
-	cmp	r3, r1
 	mov	r6, r2
-	beq	.L4434
+	cmp	r3, r1
+	beq	.L4334
 	ldrh	r1, [r2, #20]
 	cmp	r1, #0
 	movne	r3, #4
-	strneb	r3, [r5, #-182]
+	strbne	r3, [r5, #-144]
 	movne	r3, #0
-	strneh	r3, [r2, #22]	@ movhi
-	bne	.L4536
-.L4494:
+	strhne	r3, [r2, #22]	@ movhi
+	bne	.L4435
+.L4394:
 	mov	r2, #1
-	strb	r2, [r5, #-182]
-	ldr	r2, .L4635+60
-	mov	r3, r3, asl #1
-	ldr	r2, [r2, #1088]
+	lsl	r3, r3, #1
+	strb	r2, [r5, #-144]
+	ldr	r2, [r4, #1092]
 	ldrh	r3, [r2, r3]
 	cmp	r3, #0
-	beq	.L4495
-	ldr	r1, .L4635+64
+	beq	.L4395
 	movw	r2, #3336
-	ldr	r0, .L4635+68
+	ldr	r1, .L4535+64
+	ldr	r0, .L4535+68
 	bl	printk
 	bl	dump_stack
-.L4495:
-	movw	r5, #2828
-	ldr	r7, .L4635+56
+.L4395:
+	movw	r5, #2824
 	ldrh	r0, [r4, r5]
 	bl	ftl_free_sblk
 	ldrh	r3, [r4, r5]
-	ldr	r2, [r4, #1088]
 	mov	r5, #0
-	mov	r3, r3, asl #1
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
 	strh	r5, [r2, r3]	@ movhi
 	ldrh	r3, [r6, #26]
 	add	r3, r3, #1
 	uxth	r3, r3
 	cmp	r3, #8
-	strlsh	r3, [r7, #26]	@ movhi
-	bls	.L4492
-	strh	r5, [r7, #26]	@ movhi
+	strhls	r3, [r6, #26]	@ movhi
+	bls	.L4392
+	strh	r5, [r6, #26]	@ movhi
 	bl	ftl_flush
 	bl	pm_flush
 	bl	ftl_ext_info_flush
 	mov	r0, r5
 	bl	ftl_info_flush
-	b	.L4492
-.L4417:
-	ldr	r6, .L4635+56
-.L4594:
+	b	.L4392
+.L4316:
+	ldr	r7, .L4535+40
+	mov	r8, r7
+.L4489:
 	bl	gc_scan_src_blk_one_page
-	ldr	r3, .L4635+20
-	ldrh	r1, [r6, #2]
-	ldr	r0, .L4635+60
+	ldr	r3, .L4535+24
+	ldrh	r2, [r7, #2]
 	ldrh	r3, [r3]
-	ldr	r2, .L4635+32
-	cmp	r1, r3
-	ldr	r5, .L4635+56
-	bcs	.L4498
-	cmp	r7, #7
-	bls	.L4594
-	b	.L4536
-.L4498:
-	ldrh	r3, [r5, #20]
-	ldrh	r1, [r5]
-	cmp	r3, #0
-	beq	.L4499
-	ldr	r0, [r0, #1088]
-	mov	ip, #4
-	strb	ip, [r2, #-182]
-	mov	r2, #0
-	strh	r2, [r5, #22]	@ movhi
-	mov	r2, r1, asl #1
-	ldrh	r2, [r0, r2]
 	cmp	r2, r3
-	beq	.L4500
-	ldr	r0, .L4635+4
+	bcs	.L4398
+	cmp	r6, #7
+	bls	.L4489
+	b	.L4435
+.L4398:
+	ldrh	r3, [r7, #20]
+	ldrh	r1, [r7]
+	cmp	r3, #0
+	beq	.L4399
+	mov	r2, #4
+	ldr	r0, [r4, #1092]
+	strb	r2, [r5, #-144]
+	mov	r2, #0
+	strh	r2, [r7, #22]	@ movhi
+	lsl	r2, r1, #1
+	ldrh	r2, [r0, r2]
+	cmp	r3, r2
+	beq	.L4400
+	ldr	r0, .L4535+8
 	ldr	r0, [r0]
 	tst	r0, #1024
-	beq	.L4500
-	ldr	r0, .L4635+24
+	beq	.L4400
+	ldr	r0, .L4535+28
 	bl	printk
-.L4500:
-	movw	r3, #2828
-	ldr	r2, [r4, #1088]
+.L4400:
+	movw	r3, #2824
+	ldr	r2, [r4, #1092]
 	ldrh	r3, [r4, r3]
-	mov	r3, r3, asl #1
+	lsl	r3, r3, #1
 	ldrh	r2, [r2, r3]
-	ldrh	r3, [r5, #20]
+	ldrh	r3, [r8, #20]
 	cmp	r2, r3
-	beq	.L4501
-	ldr	r1, .L4635+64
+	beq	.L4401
 	movw	r2, #3379
-	ldr	r0, .L4635+68
+	ldr	r1, .L4535+64
+	ldr	r0, .L4535+68
 	bl	printk
 	bl	dump_stack
-.L4501:
-	movw	r3, #2828
-	ldrh	r1, [r5, #20]
+.L4401:
+	movw	r3, #2824
+	ldrh	r1, [r8, #20]
 	ldrh	r3, [r4, r3]
-	ldr	r2, [r4, #1088]
-	mov	r3, r3, asl #1
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
 	strh	r1, [r2, r3]	@ movhi
-	b	.L4536
-.L4499:
+	b	.L4435
+.L4399:
 	mov	r3, #1
-	strb	r3, [r2, #-182]
-	ldr	r3, .L4635+4
-	ldr	r6, [r0, #1080]
+	ldr	r6, [r4, #1084]
+	strb	r3, [r5, #-144]
+	ldr	r3, .L4535+8
+	add	r6, r6, r1, lsl #2
 	ldr	r3, [r3]
-	add	r6, r6, r1, asl #2
 	tst	r3, #256
-	beq	.L4502
+	beq	.L4402
 	ldrb	r2, [r6, #2]	@ zero_extendqisi2
-	ldr	r0, .L4635+28
-	mov	r2, r2, lsr #5
+	ldr	r0, .L4535+32
+	lsr	r2, r2, #5
 	bl	printk
-.L4502:
+.L4402:
 	ldrb	r3, [r6, #2]	@ zero_extendqisi2
-	tst	r3, #192
-	and	r3, r3, #224
-	moveq	r2, #1
-	movne	r2, #0
-	cmp	r3, #224
-	movne	r3, r2
-	orreq	r3, r2, #1
+	and	r2, r3, #224
+	and	r3, r3, #192
 	cmp	r3, #0
-	beq	.L4503
-	ldr	r1, .L4635+64
+	cmpne	r2, #224
+	bne	.L4403
 	movw	r2, #3389
-	ldr	r0, .L4635+68
+	ldr	r1, .L4535+64
+	ldr	r0, .L4535+68
 	bl	printk
 	bl	dump_stack
-.L4503:
-	movw	r7, #2828
-	ldr	r6, .L4635+56
-	ldrh	r0, [r4, r7]
+.L4403:
+	movw	r5, #2824
+	ldrh	r0, [r4, r5]
 	bl	ftl_free_sblk
 	mvn	r3, #0
-	strh	r3, [r4, r7]	@ movhi
-	ldrh	r3, [r5, #26]
+	strh	r3, [r4, r5]	@ movhi
+	ldrh	r3, [r8, #26]
 	add	r3, r3, #1
 	uxth	r3, r3
 	cmp	r3, #8
-	strlsh	r3, [r6, #26]	@ movhi
 	movhi	r3, #0
-	strhih	r3, [r6, #26]	@ movhi
-	bls	.L4536
-	b	.L4630
-.L4636:
-	.align	2
-.L4635:
-	.word	.LANCHOR3-3072
-	.word	.LANCHOR2
-	.word	.LC300
-	.word	.LANCHOR3-3092
-	.word	.LANCHOR3-3100
-	.word	.LANCHOR3-3096
-	.word	.LC301
-	.word	.LC302
-	.word	.LANCHOR3
-	.word	.LANCHOR0+5010
-	.word	.LANCHOR0+4096
-	.word	1145785929
-	.word	.LANCHOR3-3120
-	.word	.LANCHOR3-3088
-	.word	.LANCHOR0+2828
-	.word	.LANCHOR0
-	.word	.LANCHOR1+2752
-	.word	.LC0
-.L4418:
-	cmp	fp, #0
-	bne	.L4505
-	movw	r3, #2808
+	strhls	r3, [r8, #26]	@ movhi
+	strhhi	r3, [r8, #26]	@ movhi
+	bls	.L4435
+.L4532:
+	bl	flt_sys_flush
+	b	.L4435
+.L4317:
+	cmp	r10, #0
+	bne	.L4405
+	movw	r3, #2804
 	ldrh	r3, [r4, r3]
-	cmp	r3, r7
-	bcc	.L4536
-.L4505:
-	ldrh	r2, [r6, #80]
+	cmp	r3, r6
+	bcc	.L4435
+.L4405:
+	ldrh	r2, [r7, #80]
 	movw	r3, #65535
 	cmp	r2, r3
-	bne	.L4506
-	ldrb	r8, [r5, #-3115]	@ zero_extendqisi2
+	bne	.L4406
+	ldrb	r8, [r5, #-3119]	@ zero_extendqisi2
 	cmp	r8, #1
-	bne	.L4506
-	ldr	r9, .L4635+56
+	bne	.L4406
+	ldr	r9, .L4535+40
 	bl	ftl_flush
 	movw	r3, #2180
 	mov	r1, #5
@@ -27659,774 +27914,734 @@
 	movne	r0, r8
 	bl	zftl_gc_get_free_sblk
 	movw	r3, #65535
+	mov	r6, r0
 	cmp	r0, r3
-	mov	r7, r0
-	beq	.L4509
-	ldr	r8, [r4, #1080]
-	add	r8, r8, r0, asl #2
+	beq	.L4409
+	ldr	r8, [r4, #1084]
+	add	r8, r8, r0, lsl #2
 	ldrb	r3, [r8, #2]	@ zero_extendqisi2
 	tst	r3, #224
-	beq	.L4510
-	ldr	r1, .L4635+64
+	beq	.L4410
 	movw	r2, #3423
-	ldr	r0, .L4635+68
+	ldr	r1, .L4535+64
+	ldr	r0, .L4535+68
 	bl	printk
 	bl	dump_stack
-.L4510:
+.L4410:
 	ldrb	r3, [r8, #2]	@ zero_extendqisi2
 	and	r3, r3, #15
 	orr	r3, r3, #176
 	strb	r3, [r8, #2]
-.L4535:
-	mov	r0, r7
+.L4434:
 	mov	r1, #1
+	mov	r0, r6
 	bl	ftl_erase_sblk
 	mov	r3, #5
-	add	r1, r6, #96
-	strb	r3, [r6, #84]
-	mov	r0, r7
-	ldr	r10, .L4635+52
+	add	r1, r7, #96
+	strb	r3, [r7, #84]
+	mov	r0, r6
 	bl	ftl_get_blk_list_in_sblk
-	mov	r8, #0
-	strh	r7, [r6, #80]	@ movhi
-	mov	r1, #255
-	ldrh	r3, [r10, #-8]
-	ldrh	r2, [r10, #-26]
-	strh	r8, [r6, #82]	@ movhi
-	strb	r8, [r6, #85]
-	strh	r8, [r6, #90]	@ movhi
+	ldr	r2, .L4535+60
 	uxtb	r0, r0
-	strb	r0, [r6, #89]
+	mov	r8, #0
+	strh	r6, [r7, #80]	@ movhi
+	strb	r0, [r7, #89]
+	mov	r1, #255
+	ldrh	r3, [r2, #-8]
+	strh	r8, [r7, #82]	@ movhi
+	strb	r8, [r7, #85]
+	strh	r8, [r7, #90]	@ movhi
 	smulbb	r0, r3, r0
-	ldrb	r3, [r5, #-3123]	@ zero_extendqisi2
-	mul	r2, r3, r2
-	strh	r0, [r6, #86]	@ movhi
-	ldr	r0, [r5, #-172]
-	mov	r2, r2, asl #2
+	ldrh	r3, [r2, #-30]
+	strh	r0, [r7, #86]	@ movhi
+	sub	r7, r2, #16
+	ldrb	r2, [r5, #-3127]	@ zero_extendqisi2
+	ldr	r0, [r5, #-132]
+	mul	r2, r2, r3
+	lsl	r2, r2, #2
 	bl	ftl_memset
-	ldrb	r3, [r5, #-3123]	@ zero_extendqisi2
-	ldrh	r2, [r10, #-26]
+	ldrh	r3, [r7, #-14]
 	mov	r1, #255
-	ldr	r0, [r5, #-168]
-	mul	r2, r3, r2
-	mov	r2, r2, asl #2
+	ldrb	r2, [r5, #-3127]	@ zero_extendqisi2
+	ldr	r0, [r5, #-128]
+	mul	r2, r2, r3
+	lsl	r2, r2, #2
 	bl	ftl_memset
-	ldrh	r3, [r10, #-26]
-	ldrb	r2, [r5, #-3123]	@ zero_extendqisi2
+	ldrh	r3, [r7, #-14]
 	mov	r1, #255
-	ldr	r0, [r5, #-3120]
+	ldrb	r2, [r5, #-3127]	@ zero_extendqisi2
+	ldr	r0, [r5, #-3124]
 	mvn	r5, #0
 	mul	r2, r2, r3
 	bl	ftl_memset
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r4, #1096]
 	strh	r5, [r3, #128]	@ movhi
 	strh	r5, [r3, #130]	@ movhi
-	str	r7, [r3, #132]
+	str	r6, [r3, #132]
 	bl	pm_flush
 	bl	ftl_ext_info_flush
-	ldr	r3, [r4, #2804]
+	ldr	r3, [r4, #2800]
+	movw	r2, #2182
 	mov	r0, r8
 	strh	r8, [r9, #52]	@ movhi
-	strh	r7, [r3, #126]	@ movhi
+	strh	r6, [r3, #126]	@ movhi
 	movw	r3, #2102
 	strh	r8, [r9, r3]	@ movhi
-	movw	r3, #2104
-	strh	r8, [r9, r3]	@ movhi
-	movw	r3, #2182
-	strh	r8, [r9, r3]	@ movhi
-	ldr	r3, .L4635+40
-	str	r5, [r3, #916]
+	ldr	r3, .L4535+36
+	strh	r8, [r9, r2]	@ movhi
+	strh	r8, [r3]	@ movhi
+	str	r5, [r3, #80]
 	bl	ftl_info_flush
-	b	.L4536
-.L4506:
-	cmp	fp, #1
-	ldr	r10, .L4635+56
-	ldr	r9, .L4635+36
+	b	.L4435
+.L4536:
+	.align	2
+.L4535:
+	.word	.LANCHOR0
+	.word	.LANCHOR3
+	.word	.LANCHOR2
+	.word	.LC299
+	.word	.LANCHOR3-3104
+	.word	.LANCHOR3-3100
+	.word	.LANCHOR3-3096
+	.word	.LC300
+	.word	.LC301
+	.word	.LANCHOR0+4928
+	.word	.LANCHOR0+2824
+	.word	.LANCHOR0+4096
+	.word	1145785929
+	.word	.LANCHOR3-3136
+	.word	.LANCHOR0+1088
+	.word	.LANCHOR3-3088
+	.word	.LANCHOR1+2525
+	.word	.LC0
+.L4406:
+	cmp	r10, #1
 	movne	r8, #1
 	moveq	r8, #4
-	cmp	r7, #15
+	cmp	r6, #15
+	ldr	r6, .L4535+40
 	addls	r8, r8, #4
-.L4513:
+	add	r10, r6, #2176
+	add	r10, r10, #6
+.L4413:
 	sub	r8, r8, #1
 	uxtb	r8, r8
 	cmp	r8, #255
-	beq	.L4536
+	beq	.L4435
 	bl	gc_do_copy_back
-	ldrb	r3, [r5, #-3115]	@ zero_extendqisi2
-	ldr	fp, .L4635+32
+	ldrb	r3, [r5, #-3119]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldr	r7, .L4635+56
-	bne	.L4514
-	ldrb	r3, [r4, #2774]	@ zero_extendqisi2
+	bne	.L4414
+	ldrb	r3, [r4, #2769]	@ zero_extendqisi2
 	cmp	r3, #3
-	bhi	.L4515
+	bhi	.L4415
 	bl	ftl_write_commit
-.L4515:
-	ldrh	r2, [r10, #22]
-	ldrh	r3, [r10, #20]
+.L4415:
+	ldrh	r2, [r6, #22]
+	ldrh	r3, [r6, #20]
 	cmp	r2, r3
-	bcc	.L4513
+	bcc	.L4413
 	mov	r3, #1
-	strb	r3, [r5, #-182]
+	strb	r3, [r5, #-144]
 	bl	ftl_write_commit
 	bl	ftl_flush
-	ldr	r3, .L4635+56
-	ldr	r2, .L4635+60
-	ldrh	r3, [r3]
-	ldr	r2, [r2, #1088]
-	mov	r3, r3, asl #1
+	ldrh	r3, [r6]
+	ldr	r2, [r4, #1092]
+	lsl	r3, r3, #1
 	ldrh	r3, [r2, r3]
 	cmp	r3, #0
-	beq	.L4517
-	ldr	r1, .L4635+64
+	beq	.L4417
 	movw	r2, #3507
-	ldr	r0, .L4635+68
+	ldr	r1, .L4535+64
+	ldr	r0, .L4535+68
 	bl	printk
 	bl	dump_stack
-.L4517:
-	movw	r3, #2828
-	ldr	r1, [r4, #1088]
+.L4417:
+	movw	r3, #2824
+	ldr	r2, [r4, #1092]
 	ldrh	r0, [r4, r3]
-	mov	r2, r0, asl #1
-	ldrh	ip, [r1, r2]
-	cmp	ip, #0
-	bne	.L4518
-	strh	ip, [r1, r2]	@ movhi
-	ldr	r2, .L4635+60
-	ldrh	r0, [r2, r3]
-	bl	ftl_free_sblk
-	b	.L4492
-.L4518:
-	mov	r1, #0
-	mov	r2, #1
-	bl	gc_add_sblk
-	b	.L4492
-.L4514:
-	ldrh	r3, [r9]
+	lsl	r3, r0, #1
+	ldrh	r3, [r2, r3]
 	cmp	r3, #0
-	beq	.L4519
-	ldr	r3, .L4635+36
-	mov	r2, #0
-	ldr	r8, .L4635+40
-	strh	r2, [r3]	@ movhi
+	bne	.L4418
+	bl	ftl_free_sblk
+	b	.L4392
+.L4418:
+	mov	r2, #1
+	mov	r1, #0
+	bl	gc_add_sblk
+	b	.L4392
+.L4414:
+	ldrh	r3, [r10]
+	cmp	r3, #0
+	beq	.L4419
+	ldr	r8, .L4535+44
+	mov	r3, #0
+	strh	r3, [r10]	@ movhi
 	bl	sblk_wait_write_queue_completed
 	bl	gc_write_completed
-	ldr	r0, [r8, #916]
+	ldr	r0, [r8, #912]
 	cmn	r0, #1
-	beq	.L4520
-	ldrb	r3, [fp, #-2536]	@ zero_extendqisi2
+	beq	.L4420
+	ldrb	r3, [r5, #-2542]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L4521
-	ldrb	r3, [fp, #-3122]	@ zero_extendqisi2
+	bne	.L4421
+	ldrb	r3, [r5, #-3126]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L4522
-.L4521:
-	ldr	r3, [r4, #2804]
-	ldr	r9, .L4635+60
+	beq	.L4422
+.L4421:
+	ldr	r3, [r4, #2800]
 	ldr	r2, [r3, #156]
-	ldr	r3, .L4635+44
+	ldr	r3, .L4535+48
 	cmp	r2, r3
-	bne	.L4522
-	ldr	r10, .L4635+48
-	ldrb	r3, [r9, #1189]	@ zero_extendqisi2
-	ldrb	r1, [r5, #-3130]	@ zero_extendqisi2
-	ldrh	r2, [r10, #-12]
+	bne	.L4422
+	ldr	r7, .L4535+52
+	ldrb	r3, [r4, #1153]	@ zero_extendqisi2
+	ldrb	r1, [r5, #-3136]	@ zero_extendqisi2
+	ldrh	r2, [r7, #-2]
 	rsb	r3, r3, #24
-	rsb	r3, r2, r3
-	mov	r2, r0, lsr r2
+	sub	r3, r3, r2
+	lsr	r2, r0, r2
 	mvn	r0, #0
-	bic	r0, r2, r0, asl r3
+	bic	r0, r2, r0, lsl r3
 	bl	__aeabi_uidiv
-	ldr	r6, [r9, #1080]
-	mov	ip, r0, asl #2
-	add	r1, r6, ip
-	ldrb	r3, [r1, #2]	@ zero_extendqisi2
-	tst	r3, #8
-	beq	.L4520
-	movw	r2, #2788
-	ldrh	lr, [r10, #34]
-	ldrh	r2, [r9, r2]
-	add	r2, r2, #8
-	cmp	r2, lr
-	bge	.L4520
-	bfc	r3, #3, #2
-	movw	r2, #1084
-	strb	r3, [r1, #2]
-	ldr	r3, [r6, r0, asl #2]
-	ldrh	r2, [r9, r2]
-	ubfx	r3, r3, #11, #8
-	ldrh	r1, [r6, ip]
-	mul	r2, r2, r3
-	ubfx	lr, r1, #0, #11
-	mov	r3, r3, lsr #3
-	add	r2, r2, r2, asl #1
-	add	r2, lr, r2, asr #2
-	bfi	r1, r2, #0, #11
-	strh	r1, [r6, ip]	@ movhi
-	ldr	r2, [r6, r0, asl #2]
-	bfi	r2, r3, #11, #8
-	str	r2, [r6, r0, asl #2]
-	b	.L4520
-.L4522:
-	bl	ftl_mask_bad_block
-.L4520:
-	ldr	r3, [r4, #1092]
-	mov	r6, #0
-	str	r6, [r8, #916]
-	strh	r6, [r7, #52]	@ movhi
+	ldr	r3, [r4, #1084]
+	lsl	lr, r0, #2
+	add	ip, r3, lr
+	ldrb	r2, [ip, #2]	@ zero_extendqisi2
+	tst	r2, #8
+	beq	.L4420
+	ldrh	r1, [r9]
+	ldrh	r7, [r7, #44]
+	add	r1, r1, #8
+	cmp	r1, r7
+	bge	.L4420
+	ldr	r1, .L4535+56
+	bfc	r2, #3, #2
+	strb	r2, [ip, #2]
+	ldr	r2, [r3, r0, lsl #2]
+	ldrh	r1, [r1]
+	ldrh	ip, [r3, lr]
+	ubfx	r2, r2, #11, #8
+	mul	r1, r2, r1
+	ubfx	r7, ip, #0, #11
+	lsr	r2, r2, #3
+	add	r1, r1, r1, lsl #1
+	add	r1, r7, r1, asr #2
+	bfi	ip, r1, #0, #11
+	strh	ip, [r3, lr]	@ movhi
+	ldr	r1, [r3, r0, lsl #2]
+	bfi	r1, r2, #11, #8
+	str	r1, [r3, r0, lsl #2]
+.L4420:
+	ldr	r3, [r4, #1096]
+	mov	r7, #0
+	str	r7, [r8, #912]
+	strh	r7, [r6, #52]	@ movhi
 	ldrh	r0, [r3, #80]
 	bl	ftl_free_sblk
-	ldr	r0, [r4, #2836]
-	ldr	r2, [r4, #1092]
+	ldr	r0, [r4, #2832]
 	mvn	r3, #0
-	ldr	r1, [r4, #2804]
-	cmp	r0, r6
+	ldr	r2, [r4, #1096]
+	ldr	r1, [r4, #2800]
+	cmp	r0, r7
 	strh	r3, [r2, #80]	@ movhi
 	strh	r3, [r1, #126]	@ movhi
 	strh	r3, [r2, #130]	@ movhi
-	beq	.L4523
+	beq	.L4423
 	bl	zbuf_free
-.L4523:
-	str	r6, [r4, #2836]
+.L4423:
+	str	r7, [r4, #2832]
 	bl	flt_sys_flush
-	ldr	r1, .L4635+64
 	movw	r2, #3567
-	ldr	r0, .L4635+68
-	strb	r6, [r5, #-182]
+	ldr	r1, .L4535+64
+	ldr	r0, .L4535+68
+	strb	r7, [r5, #-144]
 	bl	printk
 	bl	dump_stack
-	b	.L4536
-.L4519:
-	ldrh	r3, [r6, #86]
-	ldrh	r2, [r10, #22]
+	b	.L4435
+.L4422:
+	bl	ftl_mask_bad_block
+	b	.L4420
+.L4419:
+	ldrh	r3, [r7, #86]
+	ldrh	r2, [r6, #22]
 	cmp	r3, #1
-	ldrh	r3, [r10, #20]
-	bls	.L4524
+	ldrh	r3, [r6, #20]
+	bls	.L4424
 	cmp	r2, r3
-	bcc	.L4513
+	bcc	.L4413
 	mov	r3, #1
-	strb	r3, [fp, #-182]
-	ldrh	r3, [r7, #52]
+	strb	r3, [r5, #-144]
+	ldrh	r3, [r6, #52]
 	add	r2, r3, #1
-	strh	r2, [r7, #52]	@ movhi
-	ldrh	r2, [r7]
-	add	r3, r7, r3, asl #1
+	strh	r2, [r6, #52]	@ movhi
+	add	r3, r6, r3, lsl #1
+	ldrh	r2, [r6]
 	strh	r2, [r3, #54]	@ movhi
 	mvn	r3, #0
-	strh	r3, [r7]	@ movhi
-	b	.L4536
-.L4524:
+	strh	r3, [r6]	@ movhi
+	b	.L4435
+.L4424:
 	cmp	r2, r3
 	mov	r1, #5
-	strb	r1, [fp, #-182]
-	bcc	.L4525
-	ldrh	r3, [r7, #52]
+	strb	r1, [r5, #-144]
+	bcc	.L4425
+	ldrh	r3, [r6, #52]
 	add	r2, r3, #1
-	strh	r2, [r7, #52]	@ movhi
-	ldrh	r2, [r7]
-	add	r3, r7, r3, asl #1
+	strh	r2, [r6, #52]	@ movhi
+	add	r3, r6, r3, lsl #1
+	ldrh	r2, [r6]
 	strh	r2, [r3, #54]	@ movhi
 	mvn	r3, #0
-	strh	r3, [r7]	@ movhi
-.L4525:
+	strh	r3, [r6]	@ movhi
+.L4425:
 	bl	ftl_flush
 	bl	sblk_wait_write_queue_completed
 	bl	gc_write_completed
-	ldrh	r2, [r6, #80]
-	ldr	r3, [r4, #1092]
+	ldrh	r2, [r7, #80]
+	ldr	r3, [r4, #1096]
 	strh	r2, [r3, #128]	@ movhi
 	bl	pm_flush
 	bl	ftl_ext_info_flush
-	ldr	r1, .L4635+52
-	ldrb	r0, [r4, #1196]	@ zero_extendqisi2
+	ldr	r2, .L4535+60
 	mov	r3, #0
-	strh	r3, [r7, #12]	@ movhi
-	ldrh	r3, [r1, #-8]
-	cmp	r0, #0
-	ldr	r2, .L4635+56
-	ldrneh	r1, [r1, #-26]
-	strh	r3, [r7, #14]	@ movhi
-	ldrb	r3, [r5, #-3124]	@ zero_extendqisi2
-	strneh	r1, [r2, #14]	@ movhi
-	movne	r1, #1
-	strh	r3, [r7, #16]	@ movhi
-	strneh	r1, [r2, #16]	@ movhi
+	ldrb	r1, [r4, #1158]	@ zero_extendqisi2
+	strh	r3, [r6, #12]	@ movhi
+	ldrh	r3, [r2, #-8]
+	cmp	r1, #0
+	ldrhne	r2, [r2, #-30]
+	strh	r3, [r6, #14]	@ movhi
+	ldrb	r3, [r5, #-3128]	@ zero_extendqisi2
+	strhne	r2, [r6, #14]	@ movhi
+	movne	r2, #1
+	strh	r3, [r6, #16]	@ movhi
+	strhne	r2, [r6, #16]	@ movhi
 	cmp	r3, #2
-	bne	.L4528
-	ldrh	r3, [r7, #14]
-	mov	r3, r3, asl #1
-	strh	r3, [r7, #14]	@ movhi
-	ldrb	r3, [r5, #-3122]	@ zero_extendqisi2
+	bne	.L4428
+	ldrh	r3, [r6, #14]
+	lsl	r3, r3, #1
+	strh	r3, [r6, #14]	@ movhi
+	ldrb	r3, [r5, #-3126]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldreq	r3, .L4635+56
-	moveq	r2, #1
-	streqh	r2, [r3, #16]	@ movhi
-.L4528:
+	moveq	r3, #1
+	strheq	r3, [r6, #16]	@ movhi
+.L4428:
 	mov	r3, #0
-	strh	r3, [r7, #18]	@ movhi
-	b	.L4536
-.L4537:
-	ldr	r8, .L4635+56
-	mov	r6, #0
-.L4419:
-	bl	gc_check_data_one_wl
-	subs	r10, r0, #0
-	beq	.L4531
-	ldr	r3, .L4635+56
-	mov	r6, #0
-	strh	r6, [r3, #52]	@ movhi
-	ldr	r3, [r4, #1092]
-	ldrh	r0, [r3, #80]
-	bl	ftl_free_sblk
-	ldr	r2, [r4, #1092]
-	ldr	r1, [r4, #2804]
-	mvn	r3, #0
-	ldr	r0, [r4, #2836]
-	strh	r3, [r2, #80]	@ movhi
-	strh	r3, [r1, #126]	@ movhi
-	strh	r3, [r2, #130]	@ movhi
-	bl	zbuf_free
-	str	r6, [r4, #2836]
-	strb	r6, [r5, #-182]
-.L4630:
-	bl	flt_sys_flush
-	b	.L4536
-.L4531:
+	strh	r3, [r6, #18]	@ movhi
+	b	.L4435
+.L4431:
 	ldrh	r2, [r8, #12]
 	ldrh	r3, [r8, #14]
-	ldr	r9, .L4635+60
 	cmp	r2, r3
-	bcc	.L4532
-	ldr	r0, [r9, #2836]
+	bcc	.L4432
 	mov	r3, #6
-	strb	r3, [r5, #-182]
+	ldr	r0, [r4, #2832]
+	strb	r3, [r5, #-144]
 	bl	zbuf_free
-	str	r10, [r9, #2836]
-	b	.L4536
-.L4532:
-	cmp	r7, #15
-	bls	.L4419
-	cmp	fp, #1
-	bne	.L4536
-	add	r6, r6, #1
-	uxtb	r6, r6
-	cmp	r6, #4
-	bls	.L4419
-	b	.L4536
-.L4420:
+	str	r9, [r4, #2832]
+	b	.L4435
+.L4432:
+	cmp	r6, #15
+	bls	.L4320
+	cmp	r10, #1
+	bne	.L4435
+	add	r7, r7, #1
+	uxtb	r7, r7
+	cmp	r7, #4
+	bls	.L4320
+	b	.L4435
+.L4319:
 	bl	gc_update_l2p_map_new
-	mvn	r7, #0
 	bl	gc_free_src_blk
 	bl	ftl_flush
+	mvn	r6, #0
 	bl	pm_flush
-	strh	r7, [r6, #80]	@ movhi
+	strh	r6, [r7, #80]	@ movhi
 	bl	ftl_ext_info_flush
-	ldr	r3, [r4, #2804]
+	ldr	r3, [r4, #2800]
 	mov	r0, #0
-	strh	r7, [r3, #126]	@ movhi
+	strh	r6, [r3, #126]	@ movhi
 	bl	ftl_info_flush
-.L4632:
+.L4534:
 	mov	r3, #0
-.L4631:
-	strb	r3, [r5, #-182]
-.L4536:
-	mov	r0, #16
-	b	.L4621
-.L4459:
-	mov	r0, r6
-	b	.L4621
-.L4509:
-	ldr	r1, .L4635+64
+	b	.L4533
+.L4409:
 	movw	r2, #3430
-	ldr	r0, .L4635+68
+	ldr	r1, .L4535+64
+	ldr	r0, .L4535+68
 	bl	printk
 	bl	dump_stack
-	b	.L4535
-.L4621:
-	add	sp, sp, #44
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+	b	.L4434
 	.fnend
 	.size	zftl_do_gc, .-zftl_do_gc
 	.align	2
 	.global	zftl_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_init, %function
 zftl_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	mvn	r3, #0
+	ldr	r5, .L4617
+	mov	r6, #0
 	.pad #28
 	sub	sp, sp, #28
-	ldr	r5, .L4721
-	mvn	r3, #0
-	ldr	r4, .L4721+4
-	mov	r6, #0
-	ldr	r1, .L4721+8
-	ldr	r0, .L4721+12
-	strb	r3, [r4, #2824]
-	strb	r3, [r5, #-2530]
-	strb	r3, [r5, #-96]
-	str	r3, [r5, #556]
-	strb	r6, [r4, #2800]
-	strb	r6, [r5, #-2529]
-	strb	r6, [r4, #2801]
+	ldr	r4, .L4617+4
+	ldr	r9, .L4617+8
+	ldr	r1, .L4617+12
+	ldr	r0, .L4617+16
+	strb	r3, [r4, #2820]
+	strb	r3, [r5, #-2536]
+	strb	r3, [r5, #-88]
+	str	r3, [r5]
+	strb	r6, [r4, #2796]
+	strb	r6, [r5, #-2535]
+	strb	r6, [r4, #2797]
 	bl	printk
-	ldr	r8, .L4721+16
+	ldrb	r3, [r9, #16]	@ zero_extendqisi2
 	sub	r2, r5, #3104
-	ldrb	r3, [r8, #16]	@ zero_extendqisi2
-	ldrb	fp, [r8, #13]	@ zero_extendqisi2
-	strb	fp, [r4, #2772]
-	mov	r9, fp, asl #9
-	uxth	r9, r9
+	ldrb	r8, [r9, #13]	@ zero_extendqisi2
 	str	r3, [sp, #4]
 	ldrb	r3, [sp, #4]	@ zero_extendqisi2
 	ldr	r1, [sp, #4]
-	strb	r3, [r5, #-3124]
-	ldrh	r3, [r8, #14]
-	strh	r3, [r2, #-10]	@ movhi
+	lsl	r10, r8, #9
+	strb	r8, [r5, #-2546]
+	strb	r3, [r5, #-3128]
+	uxth	r10, r10
+	ldrh	r3, [r9, #14]
+	strh	r3, [r2, #-14]	@ movhi
 	mov	r0, r3
-	str	r3, [sp, #8]
+	str	r3, [sp, #12]
 	bl	__aeabi_idiv
-	sub	r1, r5, #3088
-	ldrh	r10, [r8, #18]
-	ldrh	ip, [r4, #2]
-	strh	r0, [r1, #-8]	@ movhi
-	mov	r2, r0
-	ldrb	r1, [r4, #1101]	@ zero_extendqisi2
-	ldrb	r0, [r8, #17]	@ zero_extendqisi2
-	ldr	r3, [sp, #8]
-	strb	r1, [r5, #-3064]
-	smulbb	r1, r0, r1
-	strb	r0, [r5, #-3130]
-	mov	r0, #1
-	uxtb	r7, r1
-	movw	r1, #1076
-	strh	r10, [r4, r1]	@ movhi
-	movw	r1, #542
-	strh	r9, [r5, r1]	@ movhi
-	sub	r1, r5, #3056
-	strb	r7, [r5, #-3123]
-	strh	ip, [r1, #-10]	@ movhi
-.L4638:
-	cmp	r0, ip
-	uxth	r1, r6
-	add	r6, r6, #1
-	movls	r0, r0, asl #1
-	bls	.L4638
-.L4719:
-	ldr	r0, .L4721+20
-	sub	r1, r1, #1
-	strh	r1, [r0, #-12]	@ movhi
-	mov	r0, #0
-	mul	r1, r3, fp
-	mul	r6, r10, r1
-	str	r1, [sp, #8]
+	str	r0, [sp, #8]
+	sub	r2, r5, #3088
+	ldrh	r3, [sp, #8]
 	mov	r1, #1
-	mov	ip, r6, lsr #21
-.L4640:
-	cmp	r1, ip
-	uxth	lr, r0
-	add	r0, r0, #1
-	movls	r1, r1, asl #1
-	bls	.L4640
-.L4720:
-	ldr	r1, .L4721+24
-	sub	lr, lr, #1
+	ldrb	r7, [r4, #1109]	@ zero_extendqisi2
+	ldrh	fp, [r9, #18]
+	strh	r3, [r2, #-8]	@ movhi
+	ldrb	r2, [r9, #17]	@ zero_extendqisi2
+	strb	r7, [r5, #-3072]
+	ldr	r3, [sp, #12]
+	ldrh	r0, [r4, #2]
+	smulbb	r7, r7, r2
+	strb	r2, [r5, #-3136]
+	movw	r2, #1080
+	strh	r10, [r5, #-14]	@ movhi
+	strh	fp, [r4, r2]	@ movhi
+	sub	r2, r5, #3072
+	uxtb	r7, r7
+	strh	r0, [r2, #-2]	@ movhi
+	strb	r7, [r5, #-3127]
+.L4538:
+	cmp	r0, r1
+	uxth	r2, r6
+	add	r6, r6, #1
+	bcs	.L4539
+	ldr	r1, .L4617+20
+	sub	r2, r2, #1
+	mov	ip, #0
 	mov	r0, #1
+	strh	r2, [r1, #-2]	@ movhi
+	mul	r2, r3, r8
+	mul	r1, r2, fp
+	str	r2, [sp, #12]
+	lsr	lr, r1, #21
+.L4540:
+	cmp	lr, r0
+	uxth	r2, ip
+	add	ip, ip, #1
+	bcs	.L4541
+	ldr	r9, .L4617+24
+	sub	r2, r2, #1
+	uxth	r2, r2
+	mul	r1, r7, r1
+	ldr	r6, .L4617
+	lsr	fp, fp, #4
 	str	r3, [sp, #20]
-	mul	r6, r7, r6
-	uxth	lr, lr
-	mul	r1, r1, r7
-	mov	lr, r0, asl lr
-	str	r2, [sp, #12]
-	mov	r10, r10, lsr #4
-	str	r6, [r4, #2780]
-	ldr	r6, .L4721
-	mul	r8, lr, r1
-	mov	r1, fp
-	add	fp, r6, #564
-	add	ip, r8, #24576
-	str	ip, [r6, #560]
-	str	ip, [sp, #16]
-	mov	r0, ip
-	str	r8, [r4, #1032]
+	mul	r0, r9, r7
+	str	r1, [r4, #2776]
+	mov	r1, r8
+	sub	r8, r6, #3088
+	lsl	r9, r0, r2
+	add	r2, r9, #24576
+	str	r9, [r4, #1032]
+	str	r2, [r6, #4]
+	mov	r0, r2
+	str	r2, [sp, #16]
 	bl	__aeabi_uidiv
-	sub	r1, r9, #1
-	str	r0, [r4, #2784]
-	add	r0, r1, r0, asl #2
-	mov	r1, r9
+	sub	ip, r10, #1
+	str	r0, [r4, #2780]
+	mov	r1, r10
+	add	r0, ip, r0, lsl #2
 	bl	__aeabi_uidiv
-	ldr	r2, [sp, #12]
-	strh	r0, [fp]	@ movhi
-	uxth	r0, r0
-	mul	r1, r7, r2
-	mov	r0, r0, asl #4
-	bl	__aeabi_idiv
-	sub	r2, r6, #3072
 	ldr	r3, [sp, #8]
-	ldr	ip, [sp, #16]
-	strh	r0, [r6, #-152]	@ movhi
+	strh	r0, [r6, #8]	@ movhi
+	uxth	r0, r0
+	lsl	r0, r0, #4
 	mul	r1, r7, r3
-	mov	r0, ip
-	str	r2, [sp, #12]
+	bl	__aeabi_idiv
+	ldr	r3, [sp, #12]
+	ldr	r2, [sp, #16]
+	strh	r0, [r6, #-176]	@ movhi
+	mul	r1, r7, r3
+	mov	r0, r2
 	sub	r1, r1, #1
 	bl	__aeabi_uidiv
-	cmp	r10, #79
-	movw	ip, #1084
-	movls	r1, #80
-	ldr	r2, [sp, #12]
+	cmp	fp, #79
+	strh	fp, [r8, #-4]	@ movhi
+	movls	r2, #80
+	mov	r1, #2000
+	strhls	r2, [r8, #-4]	@ movhi
 	add	r0, r0, #8
-	ldr	r3, [sp, #20]
-	strh	r10, [r2, #-14]	@ movhi
-	strlsh	r1, [r2, #-14]	@ movhi
-	ldr	r1, .L4721
-	strh	r0, [r2, #-12]	@ movhi
-	mov	r0, #2000
-	sub	r2, r1, #2528
-	strh	r0, [r2, #-4]	@ movhi
-	mov	r0, #50
-	strh	r0, [r2, #-6]	@ movhi
-	mov	r0, #256
-	strh	r0, [r6, #-156]	@ movhi
-	mov	r0, #48
-	strh	r0, [r6, #-154]	@ movhi
+	ldr	r2, .L4617+28
+	strh	r0, [r8, #-2]	@ movhi
 	mov	r0, #32
-	strh	r0, [r4, ip]	@ movhi
-	ldr	ip, [sp, #4]
-	cmp	ip, #2
-	mov	ip, r2
-	beq	.L4643
-	ldrb	lr, [r1, #-3116]	@ zero_extendqisi2
-	cmp	lr, #0
-	beq	.L4644
-.L4643:
-	mov	r1, #150
-	strh	r1, [ip, #-6]	@ movhi
-	mov	r1, #64
-	strh	r1, [r6, #-154]	@ movhi
-	movw	r1, #1084
-	mov	lr, #12
-	strh	lr, [r4, r1]	@ movhi
-	ldrb	lr, [r4]	@ zero_extendqisi2
-	ldr	r2, .L4721
-	cmp	lr, #0
-	sub	r0, r2, #2528
-	bne	.L4645
-	ldr	lr, .L4721+4
-	mov	r10, #4
-	strh	r10, [lr, r1]	@ movhi
-	mov	r1, #600
-	strh	r1, [r0, #-4]	@ movhi
-	mov	r1, #128
-	strh	r1, [r2, #-156]	@ movhi
-.L4645:
-	ldrb	r2, [r4, #1197]	@ zero_extendqisi2
+	ldr	r3, [sp, #20]
+	strh	r1, [r2, #-10]	@ movhi
+	mov	r1, #50
+	strh	r1, [r2, #-12]	@ movhi
+	mov	r1, #256
+	strh	r1, [r6, #-180]	@ movhi
+	mov	r1, #48
+	strh	r1, [r6, #-178]	@ movhi
+	ldr	r1, .L4617+32
+	strh	r0, [r1]	@ movhi
+	ldr	r1, [sp, #4]
+	cmp	r1, #2
+	mov	r1, r2
+	beq	.L4543
+	ldrb	ip, [r6, #-3120]	@ zero_extendqisi2
+	cmp	ip, #0
+	beq	.L4544
+.L4543:
+	mov	r2, #150
+	mov	r0, #12
+	strh	r2, [r1, #-12]	@ movhi
+	mov	r2, #64
+	strh	r2, [r6, #-178]	@ movhi
+	ldr	r2, .L4617+32
+	strh	r0, [r2]	@ movhi
+	ldrb	r0, [r4]	@ zero_extendqisi2
+	cmp	r0, #0
+	moveq	r0, #4
+	strheq	r0, [r2]	@ movhi
+	moveq	r2, #600
+	strheq	r2, [r1, #-10]	@ movhi
+	moveq	r2, #128
+	strheq	r2, [r6, #-180]	@ movhi
+	ldrb	r2, [r4, #1159]	@ zero_extendqisi2
 	cmp	r2, #0
 	movne	r2, #200
-	strneh	r2, [ip, #-6]	@ movhi
+	strhne	r2, [r1, #-12]	@ movhi
 	movne	r2, #2000
-	strneh	r2, [ip, #-4]	@ movhi
-	b	.L4647
-.L4644:
-	ldr	ip, .L4721+4
-	ldrb	ip, [ip, #1196]	@ zero_extendqisi2
-	cmp	ip, #0
-	strneh	r0, [r2, #-6]	@ movhi
-	strneh	r0, [r1, #-154]	@ movhi
-	movne	ip, #1200
-	strneh	ip, [r2, #-4]	@ movhi
-.L4647:
-	mul	r3, r7, r3
-	ldr	r7, .L4721+16
+	strhne	r2, [r1, #-10]	@ movhi
+.L4547:
+	mul	r7, r7, r3
 	mov	r2, #0
-	str	r2, [r4, #2820]
+	str	r2, [r4, #2812]
 	mov	r2, #1
-	strb	r2, [r6, #545]
-	cmp	r9, r3, asl #2
-	ldrlt	r3, .L4721
-	movlt	r2, #2
-	strltb	r2, [r3, #545]
+	strb	r2, [r6, #-11]
+	cmp	r10, r7, lsl #2
+	ldr	r7, .L4617+8
+	movlt	r3, #2
+	strblt	r3, [r6, #-11]
 	ldr	r3, [r7]
 	tst	r3, #4096
-	beq	.L4650
-	ldr	r0, .L4721+28
-	mov	r1, r8
+	beq	.L4550
+	mov	r1, r9
+	ldr	r0, .L4617+36
 	bl	printk
-.L4650:
+.L4550:
 	ldr	r3, [r7]
 	tst	r3, #4096
-	beq	.L4651
-	ldr	r0, .L4721+32
+	beq	.L4551
+	ldr	r1, [r4, #2776]
+	ldr	r0, .L4617+40
+	bl	printk
+.L4551:
+	ldr	r3, [r7]
+	tst	r3, #4096
+	beq	.L4552
 	ldr	r1, [r4, #2780]
+	ldr	r0, .L4617+44
 	bl	printk
-.L4651:
+.L4552:
 	ldr	r3, [r7]
 	tst	r3, #4096
-	beq	.L4652
-	ldr	r0, .L4721+36
-	ldr	r1, [r4, #2784]
+	beq	.L4553
+	ldr	r1, [r6, #4]
+	ldr	r0, .L4617+48
 	bl	printk
-.L4652:
+.L4553:
 	ldr	r3, [r7]
 	tst	r3, #4096
-	beq	.L4653
-	ldr	r0, .L4721+40
-	ldr	r1, [r6, #560]
+	beq	.L4554
+	ldrh	r1, [r6, #8]
+	ldr	r0, .L4617+52
 	bl	printk
-.L4653:
+.L4554:
 	ldr	r3, [r7]
 	tst	r3, #4096
-	beq	.L4654
-	ldr	r0, .L4721+44
-	ldrh	r1, [fp]
+	beq	.L4555
+	ldrh	r1, [r6, #-14]
+	ldr	r0, .L4617+56
 	bl	printk
-.L4654:
+.L4555:
 	ldr	r3, [r7]
 	tst	r3, #4096
-	beq	.L4655
-	movw	r3, #542
-	ldr	r0, .L4721+48
-	ldrh	r1, [r6, r3]
+	beq	.L4556
+	ldrh	r1, [r6, #-176]
+	ldr	r0, .L4617+60
 	bl	printk
-.L4655:
+.L4556:
 	ldr	r3, [r7]
 	tst	r3, #4096
-	beq	.L4656
-	ldr	r0, .L4721+52
-	ldrh	r1, [r6, #-152]
+	beq	.L4557
+	ldrh	r1, [r8, #-4]
+	ldr	r0, .L4617+64
 	bl	printk
-.L4656:
+.L4557:
 	ldr	r3, [r7]
 	tst	r3, #4096
-	beq	.L4657
-	ldr	r3, .L4721+56
-	ldr	r0, .L4721+60
-	ldrh	r1, [r3, #-14]
+	beq	.L4558
+	ldrh	r1, [r8, #-2]
+	ldr	r0, .L4617+68
 	bl	printk
-.L4657:
-	ldr	r3, [r7]
-	tst	r3, #4096
-	beq	.L4658
-	ldr	r3, .L4721+56
-	ldr	r0, .L4721+64
-	ldrh	r1, [r3, #-12]
-	bl	printk
-.L4658:
+.L4558:
 	bl	zbuf_init
 	mov	r0, #16384
+	movw	r9, #1080
 	bl	ftl_malloc
-	movw	r9, #1076
-	ldr	r8, .L4721+68
-	str	r0, [r5, #204]
+	str	r0, [r5, #-52]
 	mov	r0, #16384
 	bl	ftl_malloc
-	str	r0, [r5, #212]
+	str	r0, [r5, #-44]
 	mov	r0, #16384
 	bl	ftl_malloc
+	str	r0, [r5, #12]
+	mov	r0, #256
+	bl	ftl_dma32_malloc
+	str	r0, [r5, #-76]
+	mov	r0, #256
+	bl	ftl_dma32_malloc
 	ldrh	r3, [r4, r9]
-	str	r0, [r5, #568]
+	str	r0, [r5, #-40]
 	mov	r0, #6
 	mul	r0, r0, r3
-	bl	ftl_malloc
-	ldrb	r3, [r5, #-3123]	@ zero_extendqisi2
+	bl	ftl_dma32_malloc
+	ldrh	r3, [r8, #-8]
 	str	r0, [r4, #1036]
-	ldrh	r0, [r8, #-8]
-	mul	r0, r3, r0
-	mov	r0, r0, asl #2
-	bl	ftl_malloc
-	ldrb	r3, [r5, #-3123]	@ zero_extendqisi2
+	ldrb	r0, [r5, #-3127]	@ zero_extendqisi2
+	mul	r0, r0, r3
+	lsl	r0, r0, #2
+	bl	ftl_dma32_malloc
 	ldrh	r1, [r8, #-8]
-	ldr	r2, [r5, #212]
-	mul	r1, r3, r1
-	str	r2, [r5, #-2548]
-	add	r3, r2, r1, asl #3
-	str	r3, [r4, #1088]
-	str	r0, [r5, #-2544]
-	ldrh	r5, [r4, r9]
+	str	r0, [r5, #-2552]
+	ldrb	r0, [r5, #-3127]	@ zero_extendqisi2
+	ldr	r2, [r5, #-44]
+	ldrh	ip, [r4, r9]
+	mul	r0, r0, r1
+	str	r2, [r5, #-2556]
+	lsl	r1, r0, #1
+	add	r3, r2, r0, lsl #3
 	ldr	r0, [r7]
-	mov	r5, r5, lsr #1
+	add	r1, r1, ip, lsr #1
+	str	r3, [r4, #1092]
+	add	r1, r2, r1, lsl #2
 	tst	r0, #4096
-	add	r1, r5, r1, asl #1
-	add	r1, r2, r1, asl #2
-	str	r1, [r4, #1092]
-	beq	.L4659
-	ldr	r0, .L4721+72
+	str	r1, [r4, #1096]
+	beq	.L4559
+	ldr	r0, .L4617+72
 	bl	printk
-.L4659:
-	movw	r3, #1076
-	ldrh	r5, [r8, #-8]
-	ldrh	r2, [r4, r3]
-	ldrb	r3, [r6, #-3123]	@ zero_extendqisi2
-	ldrh	fp, [fp]
-	mul	r5, r3, r5
+.L4559:
+	ldrh	r2, [r8, #-8]
+	movw	r3, #1080
+	ldrb	r5, [r6, #-3127]	@ zero_extendqisi2
+	ldrh	r3, [r4, r3]
+	mul	r5, r5, r2
+	ldrh	r2, [r6, #8]
+	lsl	r8, r3, #2
+	add	r5, r3, r5, lsl #2
 	ldr	r3, [r7]
-	mov	fp, fp, asl #2
+	add	r8, r8, r2, lsl #2
+	lsl	r5, r5, #1
 	tst	r3, #4096
-	add	fp, fp, r2, asl #2
-	add	fp, fp, #704
-	add	r5, r2, r5, asl #2
-	mov	r5, r5, asl #1
 	add	r5, r5, #632
-	beq	.L4660
-	ldr	ip, .L4721
-	movw	r3, #542
-	ldr	r0, .L4721+76
+	add	r8, r8, #704
+	beq	.L4560
+	ldrh	r3, [r6, #-14]
+	mov	r2, r8
 	mov	r1, r5
-	mov	r2, fp
-	ldrh	r3, [ip, r3]
+	ldr	r0, .L4617+76
 	bl	printk
-.L4660:
-	movw	r3, #542
-	ldrh	r3, [r6, r3]
-	cmp	fp, r3
-	cmpls	r5, r3
-	movhi	fp, #1
-	movls	fp, #0
-	bls	.L4661
-.L4717:
-	b	.L4717
-.L4661:
+.L4560:
+	ldrh	r1, [r6, #-14]
+	cmp	r8, r1
+	cmpls	r5, r1
+	movhi	r5, #1
+	movls	r5, #0
+	bls	.L4561
+.L4615:
+	b	.L4615
+.L4539:
+	lsl	r1, r1, #1
+	b	.L4538
+.L4541:
+	lsl	r0, r0, #1
+	b	.L4540
+.L4544:
+	ldrb	r1, [r4, #1158]	@ zero_extendqisi2
+	cmp	r1, #0
+	movne	r1, #1200
+	strhne	r0, [r2, #-12]	@ movhi
+	strhne	r1, [r2, #-10]	@ movhi
+	strhne	r0, [r6, #-178]	@ movhi
+	b	.L4547
+.L4561:
 	bl	sblk_init
 	bl	gc_init
 	bl	ftl_info_blk_init
 	cmn	r0, #1
-	beq	.L4663
+	beq	.L4537
 	bl	ftl_ext_info_init
 	mov	r0, #1
 	bl	pm_init
 	bl	lpa_rebuild_hash
-	ldr	r0, [r4, #1092]
-	mov	r1, fp
+	ldr	r0, [r4, #1096]
+	mov	r1, r5
 	add	r0, r0, #16
 	bl	ftl_open_sblk_recovery
-	ldr	r1, [r4, #1092]
-	add	r0, r1, #48
-	add	r1, r1, #16
+	ldr	r0, [r4, #1096]
+	add	r1, r0, #16
+	add	r0, r0, #48
 	bl	ftl_open_sblk_recovery
-	ldr	r2, [r4, #2804]
-	ldr	r0, [r4, #1092]
+	ldr	r2, [r4, #2800]
+	ldr	r0, [r4, #1096]
 	ldr	r3, [r2, #8]
 	add	r0, r0, #16
 	add	r3, r3, #16
 	str	r3, [r2, #8]
 	bl	ftl_info_data_recovery
-	ldr	r0, [r4, #1092]
+	ldr	r0, [r4, #1096]
 	add	r0, r0, #48
 	bl	ftl_info_data_recovery
-	ldr	r0, [r4, #1092]
+	ldr	r0, [r4, #1096]
 	add	r0, r0, #80
 	bl	ftl_info_data_recovery
 	bl	gc_recovery
 	bl	pm_flush
 	mov	r0, #1
 	bl	ftl_total_vpn_update
-	ldr	r3, .L4721
-	ldrb	r3, [r3, #209]	@ zero_extendqisi2
+	ldrb	r3, [r6, #-47]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldrne	r3, .L4721+4
-	ldrne	r2, [r3, #2804]
+	ldrne	r2, [r4, #2800]
 	ldrne	r3, [r2, #68]
 	addne	r3, r3, #1
 	strne	r3, [r2, #68]
@@ -28434,63 +28649,64 @@
 	mov	r0, #0
 	bl	ftl_info_flush
 	bl	print_ftl_debug_info
-	ldr	r3, [r4, #1092]
-	ldr	r2, .L4721+4
+	ldr	r3, [r4, #1096]
 	ldrh	r3, [r3, #124]
 	cmp	r3, #0
-	bne	.L4669
-	movw	r3, #2788
-	movw	r1, #2792
-	ldrh	r3, [r2, r3]
-	ldrh	r2, [r2, r1]
+	bne	.L4571
+	ldr	r3, .L4617+80
+	movw	r2, #2788
+	ldrh	r2, [r4, r2]
+	ldrh	r3, [r3]
 	add	r3, r3, r2
 	cmp	r3, #7
-	ble	.L4669
-.L4667:
+	ble	.L4571
+.L4567:
 	mov	r0, #0
-	b	.L4663
-.L4669:
-	ldr	r6, .L4721+80
+.L4537:
+	add	sp, sp, #28
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4571:
+	ldr	r6, .L4617+80
 	mov	r5, #16384
-.L4700:
+.L4568:
 	mov	r1, #1
 	mov	r0, #0
 	bl	zftl_do_gc
-	mov	r0, #1
-	mov	r1, r0
+	mov	r1, #1
+	mov	r0, r1
 	bl	zftl_do_gc
-	ldr	r3, [r4, #1092]
+	ldr	r3, [r4, #1096]
 	ldrh	r2, [r3, #124]
 	cmp	r2, #0
-	bne	.L4666
+	bne	.L4566
 	ldrh	r2, [r3, #80]
 	movw	r3, #65535
 	cmp	r2, r3
-	bne	.L4666
-	ldr	r2, .L4721+84
+	bne	.L4566
+	ldr	r2, .L4617+84
 	ldrh	r3, [r6]
 	ldrh	r2, [r2]
 	add	r3, r3, r2
 	cmp	r3, #7
-	bgt	.L4667
-.L4666:
+	bgt	.L4567
+.L4566:
 	subs	r5, r5, #1
-	bne	.L4700
-	b	.L4667
-.L4663:
-	add	sp, sp, #28
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4722:
+	bne	.L4568
+	b	.L4567
+.L4618:
 	.align	2
-.L4721:
+.L4617:
 	.word	.LANCHOR3
 	.word	.LANCHOR0
-	.word	.LC2
-	.word	.LC1
 	.word	.LANCHOR2
-	.word	.LANCHOR3-3120
+	.word	.LC1
+	.word	.LC2
+	.word	.LANCHOR3-3136
 	.word	1892352
+	.word	.LANCHOR3-2528
+	.word	.LANCHOR0+1088
+	.word	.LC302
 	.word	.LC303
 	.word	.LC304
 	.word	.LC305
@@ -28498,202 +28714,205 @@
 	.word	.LC307
 	.word	.LC308
 	.word	.LC309
-	.word	.LANCHOR3-3072
 	.word	.LC310
 	.word	.LC311
-	.word	.LANCHOR3-3088
 	.word	.LC312
-	.word	.LC313
+	.word	.LANCHOR0+2784
 	.word	.LANCHOR0+2788
-	.word	.LANCHOR0+2792
 	.fnend
 	.size	zftl_init, .-zftl_init
 	.align	2
 	.global	rk_ftl_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_init, %function
 rk_ftl_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	.save {r3, r4, r5, r6, r7, lr}
+	ldr	r3, .L4634
 	mov	r0, #68
-	ldr	r3, .L4739
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
 	mov	r5, #0
-	ldr	r4, .L4739+4
+	ldr	r4, .L4634+4
 	ldr	r3, [r3]
-	str	r5, [r4, #-140]
-	strb	r5, [r4, #572]
-	str	r3, [r4, #-144]
-	bl	ftl_malloc
+	str	r5, [r4, #-164]
+	strb	r5, [r4, #16]
+	str	r3, [r4, #-168]
+	str	r5, [r4, #-152]
+	bl	ftl_dma32_malloc
 	cmp	r0, r5
-	str	r0, [r4, #-136]
-	bne	.L4724
-.L4726:
-	mvn	r0, #0
-	ldmfd	sp!, {r3, r4, r5, r6, r7, pc}
-.L4724:
+	str	r0, [r4, #-160]
+	bne	.L4620
+.L4622:
+	mvn	r5, #0
+.L4619:
+	mov	r0, r5
+	pop	{r4, r5, r6, r7, r8, pc}
+.L4620:
 	mov	r0, #2048
-	bl	ftl_malloc
-	add	r1, r4, #580
-	str	r5, [r4, #-132]
-	str	r5, [r4, #580]
-	str	r0, [r4, #576]
-	sub	r0, r4, #132
+	bl	ftl_dma32_malloc
+	mov	r1, r4
+	str	r0, [r4, #20]
+	str	r5, [r1, #24]!
+	sub	r0, r4, #156
+	str	r5, [r4, #-156]
 	bl	rknand_get_reg_addr
-	ldr	r3, [r4, #-132]
+	ldr	r3, [r4, #-156]
 	cmp	r3, #0
-	beq	.L4726
+	beq	.L4622
 	bl	rk_nandc_irq_init
-	mov	r1, r5
-	mov	r2, r5
 	mov	r3, #2048
-	ldr	r0, [r4, #576]
+	mov	r2, r5
+	mov	r1, r5
+	ldr	r0, [r4, #20]
 	bl	flash_sram_load_store
 	bl	rknand_flash_cs_init
-	ldr	r3, [r4, #-136]
-	ldr	r2, .L4739+8
-	ldr	r0, [r4, #-132]
+	ldr	r3, [r4, #-160]
+	ldr	r2, .L4634+8
+	ldr	r0, [r4, #-156]
 	str	r2, [r3, #40]
-	ldr	r2, .L4739+12
+	ldr	r2, .L4634+12
 	str	r2, [r3, #32]
-	ldr	r2, .L4739+16
+	ldr	r2, .L4634+16
 	str	r2, [r3, #44]
-	ldr	r2, .L4739+20
+	ldr	r2, .L4634+20
 	str	r2, [r3, #48]
-	ldr	r2, .L4739+24
+	ldr	r2, .L4634+24
 	str	r2, [r3, #36]
-	ldr	r2, .L4739+28
+	ldr	r2, .L4634+28
 	str	r2, [r3, #56]
-	ldr	r2, .L4739+32
+	ldr	r2, .L4634+32
 	str	r2, [r3, #20]
-	ldr	r2, .L4739+36
+	ldr	r2, .L4634+36
 	str	r2, [r3, #24]
-	ldr	r2, .L4739+40
+	ldr	r2, .L4634+40
 	str	r2, [r3, #12]
-	ldr	r2, .L4739+44
+	ldr	r2, .L4634+44
 	str	r2, [r3, #16]
-	ldr	r2, .L4739+48
+	ldr	r2, .L4634+48
 	str	r2, [r3, #4]
-	ldr	r2, .L4739+52
+	ldr	r2, .L4634+52
 	str	r2, [r3, #8]
-	ldr	r2, .L4739+56
+	ldr	r2, .L4634+56
 	str	r2, [r3, #60]
-	ldr	r2, .L4739+60
+	ldr	r2, .L4634+60
 	str	r2, [r3, #64]
-	ldr	r2, .L4739+64
+	ldr	r2, .L4634+64
 	str	r2, [r3, #52]
-	ldr	r2, .L4739+68
+	ldr	r2, .L4634+68
 	str	r2, [r3, #28]
 	bl	nand_flash_init
 	subs	r7, r0, #0
-	bne	.L4727
+	bne	.L4623
 	bl	zftl_init
 	mov	r5, r0
 	bl	zftl_proc_debug_init
 	mov	r3, #1
-	strb	r3, [r4, #572]
-	b	.L4728
-.L4727:
-	ldr	r3, [r4, #-136]
+	strb	r3, [r4, #16]
+.L4624:
+	mov	r1, r5
+	ldr	r0, .L4634+72
+	bl	printk
+	b	.L4619
+.L4623:
+	ldr	r3, [r4, #-160]
 	mov	r6, r4
-	ldr	r2, .L4739+72
-	ldr	r0, [r4, #-132]
-	ldr	r4, .L4739+76
+	ldr	r2, .L4634+76
+	ldr	r0, [r4, #-156]
+	ldr	r4, .L4634+80
 	str	r2, [r3, #40]
-	ldr	r2, .L4739+80
+	ldr	r2, .L4634+84
 	str	r2, [r3, #32]
-	ldr	r2, .L4739+84
+	ldr	r2, .L4634+88
 	str	r2, [r3, #44]
-	ldr	r2, .L4739+88
+	ldr	r2, .L4634+92
 	str	r2, [r3, #48]
-	ldr	r2, .L4739+92
+	ldr	r2, .L4634+96
 	str	r2, [r3, #36]
-	ldr	r2, .L4739+96
+	ldr	r2, .L4634+100
 	str	r2, [r3, #56]
-	ldr	r2, .L4739+100
+	ldr	r2, .L4634+104
 	str	r2, [r3, #20]
-	ldr	r2, .L4739+104
+	ldr	r2, .L4634+108
 	str	r2, [r3, #24]
-	ldr	r2, .L4739+108
+	ldr	r2, .L4634+112
 	str	r2, [r3, #12]
-	ldr	r2, .L4739+112
+	ldr	r2, .L4634+116
 	str	r2, [r3, #16]
-	ldr	r2, .L4739+116
+	ldr	r2, .L4634+120
 	str	r2, [r3, #4]
-	ldr	r2, .L4739+120
+	ldr	r2, .L4634+124
 	str	r2, [r3, #8]
-	ldr	r2, .L4739+124
+	ldr	r2, .L4634+128
 	str	r2, [r3, #60]
-	ldr	r2, .L4739+128
+	ldr	r2, .L4634+132
 	str	r2, [r3, #64]
-	ldr	r2, .L4739+132
+	ldr	r2, .L4634+136
 	str	r2, [r3, #52]
-	ldr	r2, .L4739+136
+	ldr	r2, .L4634+140
 	str	r2, [r3, #28]
 	bl	FlashInit
 	cmn	r7, #2
 	mov	r5, r0
-	bne	.L4729
-	ldr	r1, .L4739+140
+	bne	.L4625
 	mov	r2, #32
+	ldr	r1, .L4634+144
 	add	r0, r4, #4
 	bl	ftl_memcpy
 	ldrb	r0, [r4, #22]	@ zero_extendqisi2
 	bl	flash_lsb_page_tbl_build
 	ldrh	r3, [r4, #14]
 	strh	r3, [r4, #30]	@ movhi
-.L4729:
-	ldr	r3, .L4739+144
+.L4625:
+	ldr	r3, .L4634+148
 	ldr	r2, [r3]
-	ldr	r3, .L4739+148
+	ldr	r3, .L4634+152
 	cmp	r2, r3
-	ldr	r2, .L4739+152
-	bne	.L4730
-	ldr	r3, .L4739+156
+	ldr	r2, .L4634+156
+	bne	.L4626
+	ldr	r3, .L4634+160
 	ldrb	r3, [r3]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L4731
-.L4730:
+	bne	.L4627
+.L4626:
 	mov	r3, #0
-	strb	r3, [r2, #1102]
+	strb	r3, [r2, #1110]
 	strb	r3, [r2]
-.L4731:
-	ldr	r1, .L4739+160
+.L4627:
+	ldr	r1, .L4634+164
 	mov	r0, #1
 	ldrh	ip, [r4, #14]
 	mov	r3, #0
-	str	r3, [r6, #-108]
+	str	r3, [r6, #-100]
 	ldrb	r1, [r1]	@ zero_extendqisi2
-	strb	r1, [r2, #1100]
-	ldr	r1, .L4739+164
+	strb	r1, [r2, #1108]
+	ldr	r1, .L4634+168
 	ldrb	r1, [r1]	@ zero_extendqisi2
-	strb	r1, [r2, #1172]
-.L4732:
-	cmp	r0, ip
+	strb	r1, [r2, #1193]
+.L4628:
+	cmp	ip, r0
 	uxth	r1, r3
 	add	r3, r3, #1
-	movls	r0, r0, asl #1
-	bls	.L4732
-.L4738:
-	ldr	r3, .L4739+168
-	sub	r1, r1, #1
-	strh	r1, [r3, #-12]	@ movhi
+	bcs	.L4629
+	sub	r3, r1, #1
+	ldr	r1, .L4634+172
+	strh	r3, [r1, #-2]	@ movhi
 	mov	r3, #0
 	cmp	r5, r3
-	strb	r3, [r2, #1135]
-	bne	.L4728
+	strb	r3, [r2, #1143]
+	bne	.L4624
 	bl	FtlInit
 	mov	r5, r0
-.L4728:
-	mov	r1, r5
-	ldr	r0, .L4739+172
-	bl	printk
-	mov	r0, r5
-	ldmfd	sp!, {r3, r4, r5, r6, r7, pc}
-.L4740:
+	b	.L4624
+.L4629:
+	lsl	r0, r0, #1
+	b	.L4628
+.L4635:
 	.align	2
-.L4739:
+.L4634:
 	.word	jiffies
 	.word	.LANCHOR3
 	.word	zftl_deinit
@@ -28712,6 +28931,7 @@
 	.word	zftl_proc_ftl_read
 	.word	zftl_do_gc
 	.word	zftl_discard
+	.word	.LC313
 	.word	ftl_deinit
 	.word	.LANCHOR2
 	.word	ftl_cache_flush
@@ -28736,1196 +28956,1378 @@
 	.word	gFlashSlcMode
 	.word	gNandFlashIDBEccBits
 	.word	gNandFlashEccBits
-	.word	.LANCHOR3-3120
-	.word	.LC314
+	.word	.LANCHOR3-3136
 	.fnend
 	.size	rk_ftl_init, .-rk_ftl_init
 	.align	2
 	.global	zftl_write
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_write, %function
 zftl_write:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 16
+	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r9, r3
-	ldr	r3, .L4776
-	.pad #28
-	sub	sp, sp, #28
-	mov	r5, r0
-	mov	r4, r1
-	mov	r6, r2
+	mov	r10, r3
+	ldr	r3, .L4666
+	.pad #36
+	sub	sp, sp, #36
+	mov	r4, r0
+	mov	r6, r1
+	mov	r5, r2
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L4742
-	ldr	r3, [r9]
-	mov	r1, r5
-	ldr	r0, .L4776+4
-	mov	r2, r4
+	beq	.L4637
+	ldr	r3, [r10]
 	str	r3, [sp]
-	mov	r3, r6
+	mov	r3, r2
+	mov	r2, r1
+	mov	r1, r0
+	ldr	r0, .L4666+4
 	bl	printk
-.L4742:
-	cmp	r5, #0
-	ldreq	r3, .L4776+8
-	moveq	r5, #24576
-	ldreq	r3, [r3, #1032]
-	beq	.L4744
-.L4743:
-	cmp	r5, #3
-	bhi	.L4762
-	mov	r5, r5, asl #13
-	mov	r3, #8192
-.L4744:
-	cmp	r6, r3
-	cmpls	r4, r3
-	movcs	fp, #1
-	movcc	fp, #0
-	bcs	.L4762
-	add	r1, r4, r6
-	cmp	r1, r3
-	bhi	.L4762
-	add	r4, r5, r4
-	ldr	r5, .L4776+8
+.L4637:
+	cmp	r4, #0
+	bne	.L4638
+	ldr	r3, .L4666+8
+	mov	r4, #24576
+	ldr	r2, [r3, #1032]
+.L4639:
+	cmp	r2, r5
+	cmpcs	r2, r6
+	movls	fp, #1
+	movhi	fp, #0
+	bls	.L4657
+	add	r1, r6, r5
+	cmp	r2, r1
+	bcc	.L4657
+	ldr	r8, .L4666+12
+	add	r4, r4, r6
 	mov	r0, r4
-	ldrb	r7, [r5, #2772]	@ zero_extendqisi2
-	mov	r1, r7
+	ldrb	r6, [r8, #-2546]	@ zero_extendqisi2
+	mov	r1, r6
 	bl	__aeabi_uidiv
-	mov	r1, r7
-	mov	r10, r0
-	sub	r0, r6, #1
+	mov	r9, r0
+	sub	r0, r5, #1
+	mov	r1, r6
 	add	r0, r0, r4
-	mov	r8, r10
 	bl	__aeabi_uidiv
-	add	r3, r4, r6
-	rsb	r7, r10, r0
-	str	r0, [sp, #8]
+	str	r8, [sp, #16]
+	sub	r7, r0, r9
+	ldr	r8, .L4666+8
 	add	r7, r7, #1
-	str	fp, [sp, #12]
-	str	r3, [sp, #16]
-.L4746:
+	mov	r6, r9
+	add	r3, r4, r5
+	str	r0, [sp, #12]
+	str	fp, [sp, #20]
+	str	r3, [sp, #24]
+.L4641:
 	cmp	r7, #0
-	beq	.L4774
-	ldrb	r3, [r5, #2800]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L4747
-	ldr	r3, .L4776+8
-	ldrb	r3, [r3, #2774]	@ zero_extendqisi2
-	cmp	r3, #2
-	bhi	.L4747
+	bne	.L4650
 	bl	ftl_write_commit
-.L4747:
+	mov	r1, #1
+	mov	r0, r7
+	bl	zftl_do_gc
+	ldr	r3, [r8, #1096]
+	ldr	r4, .L4666+16
+	ldrh	r3, [r3, #124]
+	cmp	r3, #0
+	bne	.L4651
+	movw	r2, #2788
+	ldrh	r3, [r4]
+	ldrh	r2, [r8, r2]
+	add	r3, r3, r2
+	cmp	r3, #11
+	bgt	.L4652
+.L4651:
+	mov	r1, #1
+	mov	r0, #0
+	bl	zftl_do_gc
+.L4652:
+	ldr	r5, .L4666+20
+.L4653:
+	ldrh	r3, [r4]
+	ldrh	r2, [r5]
+	add	r3, r3, r2
+	cmp	r3, #7
+	ble	.L4654
+	bl	timer_get_time
+	ldr	r3, [sp, #16]
+	str	r0, [r3, #-4]
+	mov	r0, #0
+.L4636:
+	add	sp, sp, #36
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4638:
+	cmp	r4, #3
+	bhi	.L4657
+	lsl	r4, r4, #13
+	mov	r2, #8192
+	b	.L4639
+.L4650:
+	ldrb	r3, [r8, #2796]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L4642
+	ldrb	r3, [r8, #2769]	@ zero_extendqisi2
+	cmp	r3, #2
+	bhi	.L4642
+	bl	ftl_write_commit
+.L4642:
 	mov	r0, #0
 	bl	buf_alloc
 	subs	fp, r0, #0
-	bne	.L4748
+	bne	.L4643
 	bl	ftl_write_commit
-	b	.L4746
-.L4748:
-	ldrb	r3, [sp, #12]	@ zero_extendqisi2
-	rsb	r0, r10, r8
-	clz	r0, r0
-	ldrb	r2, [r5, #2772]	@ zero_extendqisi2
+	b	.L4641
+.L4643:
+	ldrb	r3, [sp, #20]	@ zero_extendqisi2
 	strb	r3, [fp, #41]
-	mov	r0, r0, lsr #5
-	ldr	r3, [sp, #8]
+	ldr	r3, [sp, #16]
+	ldrb	r2, [r3, #-2546]	@ zero_extendqisi2
+	ldr	r3, [sp, #12]
 	strb	r2, [fp, #40]
-	rsb	r1, r3, r8
-	clz	r1, r1
-	mov	r1, r1, lsr #5
-	orrs	r3, r1, r0
-	beq	.L4751
-	cmp	r0, #0
-	beq	.L4752
+	cmp	r6, r3
+	cmpne	r6, r9
+	bne	.L4646
+	cmp	r6, r9
+	smulbbne	r2, r6, r2
+	ldrne	r3, [sp, #24]
+	subne	r2, r3, r2
+	bne	.L4665
 	mov	r1, r2
 	mov	r0, r4
-	str	r2, [sp, #20]
+	str	r2, [sp, #28]
 	bl	__aeabi_uidivmod
-	ldr	r2, [sp, #20]
+	ldr	r2, [sp, #28]
 	uxtb	r1, r1
 	strb	r1, [fp, #41]
-	rsb	r2, r1, r2
+	sub	r2, r2, r1
 	uxtb	r2, r2
-	cmp	r2, r6
-	strhib	r6, [fp, #40]
-	bhi	.L4751
-	b	.L4773
-.L4752:
-	cmp	r1, #0
-	beq	.L4751
-	smulbb	r2, r8, r2
-	ldr	r3, [sp, #16]
-	rsb	r2, r2, r3
-.L4773:
+	cmp	r5, r2
+	strbcc	r5, [fp, #40]
+	bcc	.L4646
+.L4665:
 	strb	r2, [fp, #40]
-.L4751:
-	ldrb	r0, [fp, #41]	@ zero_extendqisi2
-	sub	r7, r7, #1
+.L4646:
+	ldrb	ip, [fp, #41]	@ zero_extendqisi2
+	mov	r1, r10
 	ldrb	r2, [fp, #40]	@ zero_extendqisi2
-	ldr	r1, [fp, #4]
-	mov	r2, r2, asl #9
-	add	r0, r1, r0, asl #9
-	mov	r1, r9
+	sub	r7, r7, #1
+	ldr	r0, [fp, #4]
+	lsl	r2, r2, #9
+	add	r0, r0, ip, lsl #9
 	bl	ftl_memcpy
-	ldr	r1, [r5, #2804]
-	str	r8, [fp, #20]
-	add	r8, r8, #1
+	ldr	r1, [r8, #2800]
+	str	r6, [fp, #20]
+	add	r6, r6, #1
 	ldr	r2, [r1, #8]
 	add	r0, r2, #1
 	str	r0, [r1, #8]
-	str	r2, [fp, #16]
 	mov	r0, fp
+	str	r2, [fp, #16]
 	bl	ftl_write_buf
 	ldrb	r3, [fp, #40]	@ zero_extendqisi2
-	add	r9, r9, r3, asl #9
-	b	.L4746
-.L4774:
-	bl	ftl_write_commit
-	mov	r0, r7
-	mov	r1, #1
-	bl	zftl_do_gc
-	ldr	r3, [r5, #1092]
-	ldr	r2, .L4776+8
-	ldrh	r3, [r3, #124]
-	cmp	r3, #0
-	bne	.L4756
-	movw	r3, #2788
-	movw	r1, #2792
-	ldrh	r3, [r2, r3]
-	ldrh	r2, [r2, r1]
-	add	r3, r3, r2
-	cmp	r3, #11
-	bgt	.L4757
-.L4756:
-	mov	r0, #0
-	mov	r1, #1
-	bl	zftl_do_gc
-.L4757:
-	ldr	r4, .L4776+12
-.L4758:
-	ldr	r2, .L4776+16
-	ldrh	r3, [r4]
-	ldrh	r2, [r2]
-	add	r3, r3, r2
-	cmp	r3, #7
-	bgt	.L4775
+	add	r10, r10, r3, lsl #9
+	b	.L4641
+.L4654:
 	mov	r1, #1
 	mov	r0, #0
 	bl	zftl_do_gc
-	mov	r0, #1
-	mov	r1, r0
+	mov	r1, #1
+	mov	r0, r1
 	bl	zftl_do_gc
-	b	.L4758
-.L4775:
-	bl	timer_get_time
-	ldr	r3, .L4776+20
-	str	r0, [r3, #552]
-	mov	r0, #0
-	b	.L4745
-.L4762:
+	b	.L4653
+.L4657:
 	mvn	r0, #0
-.L4745:
-	add	sp, sp, #28
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4777:
+	b	.L4636
+.L4667:
 	.align	2
-.L4776:
+.L4666:
 	.word	.LANCHOR2
-	.word	.LC315
+	.word	.LC314
 	.word	.LANCHOR0
-	.word	.LANCHOR0+2788
-	.word	.LANCHOR0+2792
 	.word	.LANCHOR3
+	.word	.LANCHOR0+2784
+	.word	.LANCHOR0+2788
 	.fnend
 	.size	zftl_write, .-zftl_write
 	.align	2
 	.global	zftl_vendor_write
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_vendor_write, %function
 zftl_vendor_write:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
 	@ link register save eliminated.
-	mov	ip, r1
 	mov	r3, r2
+	mov	r2, r1
 	add	r1, r0, #512
-	mov	r2, ip
 	mov	r0, #2
 	b	zftl_write
 	.fnend
 	.size	zftl_vendor_write, .-zftl_vendor_write
 	.align	2
 	.global	zftl_sys_write
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_sys_write, %function
 zftl_sys_write:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	str	lr, [sp, #-4]!
-	.save {lr}
-	mov	ip, r1
-	mov	lr, r0
+	@ link register save eliminated.
 	mov	r3, r2
-	mov	r1, lr
+	mov	r2, r1
+	mov	r1, r0
 	mov	r0, #2
-	mov	r2, ip
-	ldr	lr, [sp], #4
 	b	zftl_write
 	.fnend
 	.size	zftl_sys_write, .-zftl_sys_write
 	.align	2
 	.global	zftl_discard
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	zftl_discard, %function
 zftl_discard:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r4, r1
-	ldr	r6, .L4832
 	.pad #36
 	sub	sp, sp, #36
-	ldr	r5, [r6, #1032]
-	cmp	r1, r5
-	cmpls	r0, r5
+	ldr	r7, .L4720
+	ldr	r3, [r7, #1032]
+	cmp	r1, r3
+	cmpls	r0, r3
 	movcs	r2, #1
 	movcc	r2, #0
-	bcs	.L4803
-	add	r3, r0, r1
-	cmp	r3, r5
-	bhi	.L4803
-	ldr	r3, .L4832+4
-	add	r7, r0, #24576
-	ldr	fp, .L4832+8
+	bcs	.L4692
+	mov	r4, r1
+	add	r1, r0, r1
+	cmp	r3, r1
+	bcc	.L4692
+	ldr	r3, .L4720+4
+	add	r8, r0, #24576
+	ldr	r6, .L4720+8
 	ldr	r0, [r3]
-	ldr	r5, [fp, #584]
-	mov	r9, fp
-	tst	r0, #4096
+	ldr	r1, [r6, #28]
 	str	r3, [sp, #16]
-	add	r1, r1, r5
-	str	r1, [fp, #584]
-	beq	.L4783
+	tst	r0, #4096
+	add	r1, r4, r1
+	str	r1, [r6, #28]
+	beq	.L4672
 	str	r2, [sp]
 	mov	r3, r4
-	ldr	r0, .L4832+12
-	mov	r2, r7
+	mov	r2, r8
+	ldr	r0, .L4720+12
 	bl	printk
-.L4783:
-	ldr	r3, [r6, #2804]
+.L4672:
+	ldr	r3, [r7, #2800]
 	ldr	r10, [r3, #8]
 	add	r2, r10, #1
 	str	r2, [r3, #8]
 	bl	ftl_write_commit
 	bl	ftl_flush
-	ldrb	r8, [r6, #2772]	@ zero_extendqisi2
-	mov	r0, r7
-	mov	r1, r8
+	ldrb	r9, [r6, #-2546]	@ zero_extendqisi2
+	mov	r0, r8
+	mov	r1, r9
 	bl	__aeabi_uidiv
-	mls	fp, r8, r0, r7
+	mov	r1, r9
 	mov	r5, r0
-	cmp	fp, #0
-	beq	.L4784
-	rsb	r8, fp, r8
-	cmp	r8, r4
-	movcs	r8, r4
+	mov	r0, r8
+	bl	__aeabi_uidivmod
+	subs	fp, r1, #0
+	beq	.L4673
+	sub	r9, r9, fp
+	mov	r0, r5
+	cmp	r9, r4
+	movcs	r9, r4
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
 	str	r0, [sp, #24]
-	bne	.L4785
-	mov	r0, r5
-	add	r1, sp, #24
+	bne	.L4674
 	mov	r2, #0
+	add	r1, sp, #24
+	mov	r0, r5
 	bl	pm_log2phys
-.L4785:
+.L4674:
 	ldr	r3, [sp, #24]
 	cmn	r3, #1
-	uxth	r3, r8
+	uxth	r3, r9
 	str	r3, [sp, #12]
-	beq	.L4787
+	beq	.L4676
 	mov	r0, #0
 	bl	buf_alloc
 	subs	r3, r0, #0
-	beq	.L4787
+	beq	.L4676
 	ldr	r0, [r3, #4]
 	mov	r1, #0
 	str	r5, [r3, #20]
 	strb	fp, [r3, #41]
-	add	r0, r0, fp, asl #9
-	strb	r8, [r3, #40]
+	strb	r9, [r3, #40]
 	str	r10, [r3, #16]
+	add	r0, r0, fp, lsl #9
 	str	r3, [sp, #20]
 	ldr	r3, [sp, #12]
-	mov	r2, r3, asl #9
+	lsl	r2, r3, #9
 	bl	ftl_memset
 	ldr	r3, [sp, #20]
 	mov	r0, r3
 	bl	ftl_write_buf
 	bl	ftl_write_commit
-	ldr	r2, [r6, #2804]
+	ldr	r2, [r7, #2800]
 	ldr	r3, [r2, #76]
 	add	r3, r3, #1
 	str	r3, [r2, #76]
-.L4787:
+.L4676:
 	ldr	r3, [sp, #12]
 	add	r5, r5, #1
-	rsb	r4, r3, r4
-.L4784:
+	sub	r4, r4, r3
+.L4673:
 	cmp	r4, #0
-	beq	.L4789
+	beq	.L4678
 	bl	ftl_flush
-.L4789:
-	ldr	r8, .L4832
+.L4678:
+	mov	r9, #0
 	mvn	r3, #0
-	ldr	fp, .L4832+16
 	str	r3, [sp, #28]
-.L4790:
-	ldrb	r3, [r6, #2772]	@ zero_extendqisi2
+.L4679:
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
 	cmp	r4, r3
-	bcc	.L4831
-	mov	r0, r5
-	bl	lpa_hash_get_ppa
-	cmn	r0, #1
-	str	r0, [sp, #24]
-	beq	.L4791
-	mov	r0, #0
-	bl	buf_alloc
-	subs	r3, r0, #0
-	beq	.L4793
-	ldrb	r2, [r8, #2772]	@ zero_extendqisi2
-	mov	r1, #0
-	str	r5, [r3, #20]
-	strb	r1, [r3, #41]
-	strb	r2, [r3, #40]
-	mov	r2, r2, asl #9
-	str	r10, [r3, #16]
-	ldr	r0, [r3, #4]
-	str	r3, [sp, #12]
-	bl	ftl_memset
-	ldr	r3, [sp, #12]
-	mov	r0, r3
-	bl	ftl_write_buf
-	bl	ftl_write_commit
-	b	.L4830
-.L4791:
-	mov	r0, r5
-	add	r1, sp, #24
-	mov	r2, #0
-	bl	pm_log2phys
-	ldr	r3, [sp, #24]
-	cmn	r3, #1
-	beq	.L4793
-	add	r1, sp, #28
-	mov	r2, #1
-	mov	r0, r5
-	bl	pm_log2phys
-	ldrb	r3, [r8, #1189]	@ zero_extendqisi2
-	ldrh	r0, [fp]
-	rsb	r3, r3, #24
-	ldrb	r1, [r9, #-3130]	@ zero_extendqisi2
-	rsb	r3, r0, r3
-	ldr	r2, [sp, #24]
-	mov	r2, r2, lsr r0
-	mvn	r0, #0
-	bic	r0, r2, r0, asl r3
-	bl	__aeabi_uidiv
-	uxth	r0, r0
-	bl	ftl_vpn_decrement
-.L4830:
-	ldr	r2, [r8, #2804]
-	ldr	r3, [r2, #76]
-	add	r3, r3, #1
-	str	r3, [r2, #76]
-.L4793:
-	ldrb	r3, [r6, #2772]	@ zero_extendqisi2
-	add	r5, r5, #1
-	rsb	r4, r3, r4
-	b	.L4790
-.L4831:
+	bcs	.L4684
 	cmp	r4, #0
-	beq	.L4797
+	beq	.L4686
 	mov	r0, r5
 	bl	lpa_hash_get_ppa
 	cmn	r0, #1
 	str	r0, [sp, #24]
-	bne	.L4798
-	mov	r0, r5
-	add	r1, sp, #24
+	bne	.L4687
 	mov	r2, #0
+	add	r1, sp, #24
+	mov	r0, r5
 	bl	pm_log2phys
-.L4798:
+.L4687:
 	ldr	r3, [sp, #24]
 	cmn	r3, #1
-	beq	.L4797
+	beq	.L4686
 	mov	r0, #0
 	bl	buf_alloc
-	subs	r8, r0, #0
-	beq	.L4797
+	subs	r9, r0, #0
+	beq	.L4686
 	mov	r3, #0
-	strb	r3, [r8, #41]
-	ldrb	r3, [r6, #2772]	@ zero_extendqisi2
-	str	r5, [r8, #20]
+	str	r5, [r9, #20]
+	strb	r3, [r9, #41]
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	strb	r4, [r9, #40]
+	str	r10, [r9, #16]
 	cmp	r4, r3
-	strb	r4, [r8, #40]
-	str	r10, [r8, #16]
-	bcc	.L4800
-	ldr	r1, .L4832+20
-	movw	r2, #1495
-	ldr	r0, .L4832+24
+	bcc	.L4689
+	movw	r2, #1496
+	ldr	r1, .L4720+16
+	ldr	r0, .L4720+20
 	bl	printk
 	bl	dump_stack
-.L4800:
-	mov	r2, r4, asl #9
+.L4689:
+	lsl	r2, r4, #9
 	mov	r1, #0
-	ldr	r0, [r8, #4]
+	ldr	r0, [r9, #4]
 	bl	ftl_memset
-	mov	r0, r8
+	mov	r0, r9
 	bl	ftl_write_buf
 	bl	ftl_write_commit
-	ldr	r2, [r6, #2804]
+	ldr	r2, [r7, #2800]
 	ldr	r3, [r2, #76]
 	add	r3, r3, #1
 	str	r3, [r2, #76]
-.L4797:
-	ldr	r1, [r9, #584]
+.L4686:
+	ldr	r1, [r6, #28]
 	cmp	r1, #8192
-	bls	.L4804
+	bls	.L4693
 	ldr	r3, [sp, #16]
 	ldr	r3, [r3]
 	tst	r3, #4096
-	beq	.L4801
+	beq	.L4690
 	mov	r3, #0
-	ldr	r0, .L4832+12
+	mov	r2, r8
 	str	r3, [sp]
-	mov	r2, r7
 	mov	r3, r4
+	ldr	r0, .L4720+12
 	bl	printk
-.L4801:
+.L4690:
 	mov	r4, #0
-	str	r4, [r9, #584]
+	str	r4, [r6, #28]
 	bl	flt_sys_flush
 	mov	r3, #1
-	str	r3, [r6, #2820]
-	b	.L4804
-.L4803:
-	mvn	r0, #0
-	b	.L4782
-.L4804:
+	str	r3, [r7, #2812]
+.L4693:
 	mov	r0, #0
-.L4782:
+	b	.L4670
+.L4684:
+	mov	r0, r5
+	bl	lpa_hash_get_ppa
+	cmn	r0, #1
+	str	r0, [sp, #24]
+	beq	.L4680
+	mov	r0, #0
+	bl	buf_alloc
+	subs	fp, r0, #0
+	beq	.L4682
+	ldrb	r2, [r6, #-2546]	@ zero_extendqisi2
+	mov	r1, #0
+	str	r5, [fp, #20]
+	strb	r9, [fp, #41]
+	strb	r2, [fp, #40]
+	str	r10, [fp, #16]
+	lsl	r2, r2, #9
+	ldr	r0, [fp, #4]
+	bl	ftl_memset
+	mov	r0, fp
+	bl	ftl_write_buf
+	bl	ftl_write_commit
+.L4719:
+	ldr	r2, [r7, #2800]
+	ldr	r3, [r2, #76]
+	add	r3, r3, #1
+	str	r3, [r2, #76]
+.L4682:
+	ldrb	r3, [r6, #-2546]	@ zero_extendqisi2
+	add	r5, r5, #1
+	sub	r4, r4, r3
+	b	.L4679
+.L4680:
+	mov	r2, #0
+	add	r1, sp, #24
+	mov	r0, r5
+	bl	pm_log2phys
+	ldr	r3, [sp, #24]
+	cmn	r3, #1
+	beq	.L4682
+	mov	r2, #1
+	add	r1, sp, #28
+	mov	r0, r5
+	bl	pm_log2phys
+	ldr	r3, .L4720+24
+	ldr	r2, [sp, #24]
+	ldrb	r1, [r6, #-3136]	@ zero_extendqisi2
+	ldrh	r0, [r3]
+	ldrb	r3, [r7, #1153]	@ zero_extendqisi2
+	lsr	r2, r2, r0
+	rsb	r3, r3, #24
+	sub	r3, r3, r0
+	mvn	r0, #0
+	bic	r0, r2, r0, lsl r3
+	bl	__aeabi_uidiv
+	uxth	r0, r0
+	bl	ftl_vpn_decrement
+	b	.L4719
+.L4692:
+	mvn	r0, #0
+.L4670:
 	add	sp, sp, #36
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4833:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4721:
 	.align	2
-.L4832:
+.L4720:
 	.word	.LANCHOR0
 	.word	.LANCHOR2
 	.word	.LANCHOR3
-	.word	.LC316
-	.word	.LANCHOR3-3132
-	.word	.LANCHOR1+2764
+	.word	.LC315
+	.word	.LANCHOR1+2536
 	.word	.LC0
+	.word	.LANCHOR3-3138
 	.fnend
 	.size	zftl_discard, .-zftl_discard
 	.align	2
 	.global	dump_pm_blk
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	dump_pm_blk, %function
 dump_pm_blk:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, r6, r7, lr}
-	.save {r3, r4, r5, r6, r7, lr}
-	movw	ip, #698
-	ldr	r4, .L4840
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	movw	r3, #698
+	ldr	r4, .L4727
 	mov	r2, #4
-	ldr	r0, .L4840+4
-	mov	r6, #0
-	ldr	r5, .L4840+8
+	mov	r5, #0
 	movw	r7, #65535
-	ldr	r3, [r4, #2804]
-	add	r1, r3, #704
-	ldrh	r3, [r3, ip]
+	ldr	r0, .L4727+4
+	ldr	r1, [r4, #2800]
+	ldr	r6, .L4727+8
+	ldrh	r3, [r1, r3]
+	add	r1, r1, #704
 	bl	rknand_print_hex
-	ldr	r1, [r4, #2804]
-	ldr	r0, .L4840+12
+	ldr	r1, [r4, #2800]
 	mov	r2, #2
+	ldrh	r3, [r6, #-176]
+	ldr	r0, .L4727+12
 	add	r1, r1, #416
-	ldrh	r3, [r5, #-152]
 	bl	rknand_print_hex
-.L4835:
-	ldrh	r2, [r5, #-152]
-	uxth	r3, r6
+.L4723:
+	ldrh	r2, [r6, #-176]
+	uxth	r3, r5
 	cmp	r2, r3
-	bls	.L4839
+	bhi	.L4725
+	pop	{r4, r5, r6, r7, r8, pc}
+.L4725:
+	uxth	r3, r5
+	ldr	r2, [r4, #2800]
 	add	r3, r3, #208
-	ldr	r2, [r4, #2804]
-	mov	r3, r3, asl #1
+	lsl	r3, r3, #1
 	ldrh	r0, [r2, r3]
 	cmp	r0, r7
-	beq	.L4836
+	beq	.L4724
 	mov	r1, #0
 	bl	ftl_sblk_dump
-.L4836:
-	add	r6, r6, #1
-	b	.L4835
-.L4839:
-	ldmfd	sp!, {r3, r4, r5, r6, r7, pc}
-.L4841:
+.L4724:
+	add	r5, r5, #1
+	b	.L4723
+.L4728:
 	.align	2
-.L4840:
+.L4727:
 	.word	.LANCHOR0
-	.word	.LC268
+	.word	.LC267
 	.word	.LANCHOR3
-	.word	.LC269
+	.word	.LC268
 	.fnend
 	.size	dump_pm_blk, .-dump_pm_blk
 	.align	2
 	.global	id_block_prog_msb_ff_data
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	id_block_prog_msb_ff_data, %function
 id_block_prog_msb_ff_data:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 8
+	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	.pad #12
+	ldr	r5, .L4736
+	ldrb	r3, [r5, #1110]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L4729
+	ldr	r3, [r5, #1104]
 	mov	r4, r2
-	ldr	r5, .L4849
-	.pad #20
-	sub	sp, sp, #20
-	ldrb	r2, [r5, #1102]	@ zero_extendqisi2
-	ldr	r3, [r5, #1096]
-	cmp	r2, #0
+	mov	r10, r0
+	mov	fp, r1
 	ldrb	r3, [r3, #19]	@ zero_extendqisi2
-	bne	.L4842
 	sub	r2, r3, #5
-	mov	r8, r0
 	cmp	r3, #68
 	cmpne	r2, #2
-	mov	r9, r1
-	bls	.L4844
+	bls	.L4731
 	sub	r3, r3, #19
 	tst	r3, #239
-	bne	.L4842
-.L4844:
-	ldr	fp, .L4849
-	ldr	r6, .L4849+4
-	ldr	r7, .L4849+8
-.L4846:
-	ldr	r3, [r5, #1096]
+	bne	.L4729
+.L4731:
+	ldr	r6, .L4736+4
+	sub	r7, r6, #2272
+.L4733:
+	ldr	r3, [r5, #1104]
 	ldrh	r3, [r3, #10]
 	cmp	r3, r4
-	bls	.L4842
-	mov	ip, r4, asl #1
-	add	r10, r4, r9
-	ldr	r0, .L4849+12
+	bhi	.L4734
+.L4729:
+	add	sp, sp, #12
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4734:
+	lsl	r9, r4, #1
+	add	r8, r4, fp
+	mov	r2, r8
+	ldr	r0, .L4736+8
+	ldrh	r3, [r7, r9]
 	mov	r1, r4
-	ldrh	r3, [r7, ip]
-	mov	r2, r10
-	str	ip, [sp, #12]
 	bl	printk
+	ldrh	r2, [r7, r9]
 	movw	r3, #65535
-	ldr	ip, [sp, #12]
-	ldrh	r2, [r7, ip]
 	cmp	r2, r3
-	bne	.L4842
-	mov	r1, #255
+	bne	.L4729
 	mov	r2, #16384
-	ldr	r0, [r6, #-128]
+	mov	r1, #255
+	ldr	r0, [r6, #-120]
 	add	r4, r4, #1
 	bl	ftl_memset
-	ldr	r3, [fp, #1096]
-	ldr	r2, [r6, #-128]
-	mov	r0, r8
-	mov	r1, r10
+	ldr	r3, [r5, #1104]
+	mov	r1, r8
+	mov	r0, r10
 	uxth	r4, r4
 	ldrb	r3, [r3, #9]	@ zero_extendqisi2
 	str	r3, [sp]
-	mov	r3, r2
+	ldr	r3, [r6, #-120]
+	mov	r2, r3
 	bl	flash_prog_page
-	b	.L4846
-.L4842:
-	add	sp, sp, #20
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4850:
+	b	.L4733
+.L4737:
 	.align	2
-.L4849:
+.L4736:
 	.word	.LANCHOR0
 	.word	.LANCHOR3
-	.word	.LANCHOR3-2268
-	.word	.LC317
+	.word	.LC316
 	.fnend
 	.size	id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data
 	.align	2
 	.global	write_idblock
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	write_idblock, %function
 write_idblock:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 136
+	@ args = 0, pretend = 0, frame = 160
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	ip, .L4930
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	ldr	r3, .L4848
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	.pad #156
-	sub	sp, sp, #156
-	ldr	r3, [ip, #1096]
-	ldr	r5, [r1]
-	ldr	r8, .L4930+4
-	ldrb	r4, [r3, #9]	@ zero_extendqisi2
-	ldrh	r9, [r3, #10]
-	ldr	r3, .L4930+8
-	ldr	fp, .L4930+12
-	ldr	r10, .L4930+16
-	ldrh	r6, [r3, #30]
-	cmp	r5, r8
-	cmpne	r5, fp
-	ldrb	r3, [ip]	@ zero_extendqisi2
-	movne	r7, #1
-	moveq	r7, #0
-	cmp	r5, r10
-	moveq	r5, #0
-	andne	r5, r7, #1
-	str	r3, [sp, #60]
-	cmp	r5, #0
-	ldrh	r3, [sp, #60]
-	str	r3, [sp, #44]
-	ldrb	r3, [ip, #1102]	@ zero_extendqisi2
-	str	r3, [sp, #68]
-	bne	.L4928
+	.pad #180
+	sub	sp, sp, #180
+	ldr	lr, [r1]
+	ldrb	ip, [r3]	@ zero_extendqisi2
+	ldr	r4, .L4848+4
+	ldr	r10, .L4848+8
+	str	ip, [sp, #76]
+	ldrh	ip, [sp, #76]
+	ldr	r9, .L4848+12
+	cmp	lr, r4
+	cmpne	lr, r10
+	str	ip, [sp, #40]
+	movne	ip, #1
+	moveq	ip, #0
+	cmp	lr, r9
+	moveq	ip, #0
+	andne	ip, ip, #1
+	cmp	ip, #0
+	beq	.L4739
+.L4847:
+	mvn	r0, #0
+.L4738:
+	add	sp, sp, #180
+	@ sp needed
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4739:
 	cmp	r0, #15
-	bls	.L4928
-	mov	r7, r0
-	mov	r0, #256000
-	str	ip, [sp, #20]
+	bls	.L4847
 	mov	r5, r2
-	str	r1, [sp, #36]
+	ldr	r2, [r3, #1104]
+	mov	fp, r0
+	mov	r0, #256000
+	str	r3, [sp, #16]
+	ldrb	r6, [r2, #9]	@ zero_extendqisi2
+	ldrh	r8, [r2, #10]
+	ldr	r2, .L4848+16
+	str	r1, [sp, #32]
+	ldrh	r7, [r2, #30]
+	ldrb	r2, [r3, #1110]	@ zero_extendqisi2
+	str	r2, [sp, #96]
 	bl	ftl_malloc
 	subs	r3, r0, #0
-	str	r3, [sp, #24]
-	beq	.L4928
-	ldr	r3, .L4930+20
-	ldr	ip, [sp, #20]
-	ldrb	r3, [r3, #572]	@ zero_extendqisi2
-	cmp	r3, #0
-	beq	.L4927
-	ldrb	r3, [ip]	@ zero_extendqisi2
-	cmp	r3, #0
-	ldrb	r3, [ip, #1102]	@ zero_extendqisi2
+	str	r3, [sp, #20]
+	beq	.L4847
+	ldr	r2, .L4848+20
+	ldrb	r2, [r2, #16]	@ zero_extendqisi2
+	cmp	r2, #0
+	streq	r2, [sp, #16]
+	beq	.L4742
+	ldr	r3, [sp, #16]
+	ldrb	r2, [r3]	@ zero_extendqisi2
+	ldrb	r3, [r3, #1110]	@ zero_extendqisi2
+	cmp	r2, #0
 	clzne	r3, r3
-	movne	r3, r3, lsr #5
-	bne	.L4927
+	lsrne	r3, r3, #5
+	bne	.L4844
 	cmp	r3, #3
-	streq	r3, [sp, #44]
+	streq	r3, [sp, #40]
 	moveq	r3, #2
-	beq	.L4927
+	beq	.L4844
 	cmp	r3, #2
-	ldr	r3, [sp, #44]
+	ldr	r3, [sp, #40]
 	moveq	r3, #2
-	str	r3, [sp, #44]
+	str	r3, [sp, #40]
 	movne	r3, #0
 	moveq	r3, #3
-.L4927:
-	str	r3, [sp, #20]
-	ldr	r3, [sp, #36]
+.L4844:
+	str	r3, [sp, #16]
+.L4742:
+	add	fp, fp, #508
+	add	fp, fp, #3
+	lsr	fp, fp, #9
+	cmp	fp, #8
+	bls	.L4798
+	cmp	fp, #500
+	bhi	.L4745
+.L4744:
+	ldr	r3, [sp, #32]
 	ldr	r3, [r3]
-	cmp	r3, r8
-	cmpne	r3, fp
-	movne	fp, #1
-	moveq	fp, #0
-	cmp	r3, r10
-	moveq	r10, #0
-	andne	r10, fp, #1
-	cmp	r10, #0
-	beq	.L4858
-	ldr	r0, [sp, #24]
+	cmp	r3, r4
+	cmpne	r3, r10
+	movne	r4, #1
+	moveq	r4, #0
+	cmp	r3, r9
+	moveq	r9, #0
+	andne	r9, r4, #1
+	cmp	r9, #0
+	beq	.L4746
+.L4745:
+	ldr	r0, [sp, #20]
 	bl	ftl_free
-.L4928:
-	mvn	r0, #0
-	b	.L4853
-.L4858:
-	mov	r0, r10
-	add	r7, r7, #508
+	b	.L4847
+.L4798:
+	mov	fp, #8
+	b	.L4744
+.L4746:
+	mov	r0, r9
+	mul	r8, r6, r8
 	bl	zftl_flash_exit_slc_mode
-	ldr	r3, .L4930
-	mul	r9, r9, r4
-	add	r7, r7, #3
-	ldrb	r2, [r3, #1102]	@ zero_extendqisi2
-	sub	r0, r9, #1
-	strb	r2, [r3]
-	mov	r3, r7, lsr #9
-	cmp	r3, #8
-	mov	r1, r9
-	movcs	fp, r3
-	movcc	fp, #8
+	ldr	r3, .L4848
+	sub	r0, r8, #1
+	mov	r1, r8
 	add	r0, r0, fp
+	ldrb	r2, [r3, #1110]	@ zero_extendqisi2
+	strb	r2, [r3]
 	bl	__aeabi_uidiv
-	ldr	ip, .L4930+24
+	ldr	r3, [sp, #32]
 	movw	r2, #63871
-	ldr	r3, [sp, #36]
-	str	r0, [sp, #72]
+	ldr	ip, .L4848+24
+	str	r0, [sp, #100]
 	movw	r0, #4094
 	add	r3, r3, #254976
 	add	r3, r3, #512
-.L4864:
+.L4752:
 	ldr	r1, [r3, #-4]!
 	cmp	r1, #0
-	bne	.L4859
-	cmp	r10, #0
-	streq	ip, [r3, #512]
+	bne	.L4747
+	cmp	r9, #0
 	sub	r2, r2, #1
-	ldrne	r1, [sp, #36]
-	ldrne	r1, [r1, r10, asl #2]
-	add	r10, r10, #1
+	ldrne	r1, [sp, #32]
+	streq	ip, [r3, #512]
+	ldrne	r1, [r1, r9, lsl #2]
+	add	r9, r9, #1
 	strne	r1, [r3, #512]
-	cmp	r10, r0
-	movhi	r10, #0
+	cmp	r9, r0
+	movhi	r9, #0
 	cmp	r2, #4096
-	bne	.L4864
-	b	.L4863
-.L4859:
-	ldr	r0, .L4930+28
-	bl	printk
-.L4863:
-	mul	r3, r6, r4
-	ldr	r0, .L4930+32
-	mov	r1, r5
+	bne	.L4752
+.L4751:
+	mul	r3, r6, r7
 	mov	r2, #4
-	ldr	r4, .L4930
-	str	r3, [sp, #56]
+	mov	r1, r5
+	ldr	r0, .L4848+28
+	str	r3, [sp, #72]
 	mov	r3, #5
 	bl	rknand_print_hex
-	ldr	r0, .L4930+36
-	mov	r1, fp
 	mov	r2, fp
+	mov	r1, fp
+	ldr	r0, .L4848+32
 	bl	printk
 	sub	r3, r5, #4
 	str	r3, [sp, #48]
 	mov	r3, #0
-	str	r3, [sp, #40]
-	str	r3, [sp, #28]
-.L4889:
-	ldr	r3, .L4930+20
-	ldrb	r3, [r3, #572]	@ zero_extendqisi2
+	str	r3, [sp, #36]
+	str	r3, [sp, #24]
+.L4792:
+	ldr	r3, .L4848+20
+	ldrb	r3, [r3, #16]	@ zero_extendqisi2
 	cmp	r3, #0
-	bne	.L4865
+	bne	.L4753
 	ldr	r3, [sp, #48]
-	ldr	r1, [sp, #72]
+	ldr	r1, [sp, #24]
 	ldr	r2, [r3, #4]
-	ldr	r3, [sp, #56]
-	mul	r6, r3, r2
-	ldr	r3, [sp, #28]
-	cmp	r3, #0
-	cmpne	r1, #1
-	bls	.L4866
+	ldr	r3, [sp, #72]
+	mul	r10, r2, r3
+	ldr	r3, [sp, #100]
+	cmp	r1, #0
+	cmpne	r3, #1
+	bls	.L4754
 	ldr	r3, [sp, #48]
 	ldr	r3, [r3]
 	add	r3, r3, #1
 	cmp	r2, r3
-	bne	.L4866
-	b	.L4867
-.L4865:
-	ldr	r3, [r4, #1176]
-	ldr	r2, [sp, #28]
-	add	r3, r3, r2
-	ldrb	r6, [r3, #32]	@ zero_extendqisi2
-	cmp	r6, #255
-	beq	.L4867
-	ldr	r3, [sp, #56]
-	mul	r6, r3, r6
-	ldr	r3, [sp, #20]
-	cmp	r3, #0
-	beq	.L4866
-	ldr	r3, [sp, #20]
-	and	r5, r2, #1
-	cmp	r3, #3
-	orreq	r5, r5, #1
-	cmp	r5, #0
-	ldrneb	r3, [sp, #44]	@ zero_extendqisi2
-	strneb	r3, [r4]
-	strneb	r3, [r4, #1102]
-	bne	.L4866
-	mov	r0, r5
+	bne	.L4754
+.L4755:
+	ldr	r3, [sp, #24]
+	add	r3, r3, #1
+	str	r3, [sp, #24]
+	ldr	r3, [sp, #48]
+	add	r3, r3, #4
+	str	r3, [sp, #48]
+	ldr	r3, [sp, #24]
+	cmp	r3, #4
+	bne	.L4792
+.L4794:
+	mov	r0, #0
 	bl	zftl_flash_exit_slc_mode
-	strb	r5, [r4]
-	strb	r5, [r4, #1102]
-.L4866:
+	ldr	r3, .L4848
+	mov	r0, #0
+	ldrb	r2, [sp, #76]	@ zero_extendqisi2
+	strb	r2, [r3]
+	ldr	r2, [sp, #16]
+	cmp	r2, #0
+	ldrbne	r2, [sp, #96]	@ zero_extendqisi2
+	strbne	r2, [r3, #1110]
+	mov	r2, #2
+	strb	r2, [r3, #1154]
+	bl	zftl_flash_enter_slc_mode
+	ldr	r0, [sp, #20]
+	bl	ftl_free
+	ldr	r3, [sp, #36]
+	clz	r0, r3
+	lsr	r0, r0, #5
+	rsb	r0, r0, #0
+	b	.L4738
+.L4747:
+	ldr	r0, .L4848+36
+	bl	printk
+	b	.L4751
+.L4753:
+	ldr	r5, .L4848
+	ldr	r2, [sp, #24]
+	ldr	r3, [r5, #1040]
+	add	r3, r3, r2
+	ldrb	r3, [r3, #32]	@ zero_extendqisi2
+	cmp	r3, #255
+	beq	.L4755
+	ldr	r2, [sp, #72]
+	mul	r10, r2, r3
+	ldr	r3, [sp, #16]
+	cmp	r3, #0
+	beq	.L4754
+	ldr	r3, [sp, #24]
+	and	r4, r3, #1
+	ldr	r3, [sp, #16]
+	cmp	r3, #3
+	orreq	r4, r4, #1
+	cmp	r4, #0
+	ldrbne	r3, [sp, #40]	@ zero_extendqisi2
+	strbne	r3, [r5]
+	strbne	r3, [r5, #1110]
+	bne	.L4754
+	mov	r0, r4
+	bl	zftl_flash_exit_slc_mode
+	strb	r4, [r5]
+	strb	r4, [r5, #1110]
+.L4754:
+	ldr	r5, .L4848
 	mov	r2, #512
 	mov	r1, #0
-	ldr	r0, [sp, #24]
-	mov	r7, #0
+	ldr	r0, [sp, #20]
 	bl	ftl_memset
-	ldr	r3, [r4, #1096]
-	mov	r0, r6
-	ldrb	r10, [r3, #9]	@ zero_extendqisi2
-	ldrh	r8, [r3, #10]
-	ldr	r3, .L4930+8
-	mov	r1, r10
-	mul	r8, r8, r10
-	ldrh	r5, [r3, #30]
-	ldrb	r3, [r4, #1168]	@ zero_extendqisi2
-	strb	r7, [r4, #1168]
-	mul	r5, r5, r10
-	str	r3, [sp, #76]
+	ldr	r3, [r5, #1104]
+	mov	r6, #0
+	mov	r0, r10
+	ldrb	r8, [r3, #9]	@ zero_extendqisi2
+	ldrh	r7, [r3, #10]
+	ldr	r3, .L4848+16
+	mov	r1, r8
+	ldrh	r4, [r3, #30]
+	mul	r7, r8, r7
+	ldrb	r3, [r5, #1196]	@ zero_extendqisi2
+	strb	r6, [r5, #1196]
+	str	r3, [sp, #104]
+	mul	r4, r8, r4
 	bl	__aeabi_uidiv
 	mov	r1, r0
-	mov	r0, r7
+	mov	r0, r6
 	bl	flash_erase_block
-	cmp	fp, r8
-	movls	r0, #1
-	bls	.L4869
-	mov	r0, r7
-	add	r1, r6, r5
+	cmp	r7, fp
+	movcs	r0, #1
+	bcs	.L4757
+	add	r1, r10, r4
+	mov	r0, r6
 	bl	flash_erase_block
 	mov	r0, #2
-.L4869:
-	ldr	r3, .L4930
-	ldr	r2, [r3, #1096]
+.L4757:
+	ldr	r2, [r5, #1104]
 	ldrh	r3, [r2, #10]
 	ldrb	r1, [r2, #12]	@ zero_extendqisi2
-	mov	r3, r3, asl #2
+	lsl	r3, r3, #2
 	mul	r0, r0, r3
 	bl	__aeabi_idiv
-	mov	r1, r5
-	str	r0, [sp, #80]
-	mov	r0, r6
+	mov	r1, r4
+	str	r0, [sp, #64]
+	mov	r0, r10
 	bl	__aeabi_uidivmod
-	rsb	r3, r1, r6
-	str	r1, [sp, #64]
-	cmp	r6, r3
-	str	r3, [sp, #52]
-	bne	.L4896
-	ldrb	r3, [r4, #1028]	@ zero_extendqisi2
+	sub	r3, r10, r1
+	str	r1, [sp, #56]
+	cmp	r10, r3
+	str	r3, [sp, #44]
+	bne	.L4801
+	ldrb	r3, [r5, #1028]	@ zero_extendqisi2
 	cmp	r3, #9
-	bne	.L4896
-	ldr	r3, .L4930+20
-	mov	r1, #0
+	bne	.L4801
+	ldr	r3, .L4848+20
 	mov	r2, #1024
-	ldr	r5, [r3, #-104]
-	mov	r0, r5
+	mov	r1, #0
+	ldr	r4, [r3, #-92]
+	mov	r0, r4
 	bl	ftl_memset
-	ldr	r2, .L4930+40
+	ldr	r2, .L4848+40
 	mov	r3, #12
-	stmia	r5, {r2, r3}
+	stm	r4, {r2, r3}
 	mov	r3, #0
-	strb	r3, [r5, #16]
-	str	r3, [r5, #12]
-	ldrb	r3, [r4, #1102]	@ zero_extendqisi2
+	strb	r3, [r4, #16]
+	str	r3, [r4, #12]
+	ldrb	r3, [r5, #1110]	@ zero_extendqisi2
 	cmp	r3, #0
-	ldrne	r3, [r4, #1096]
-	ldrneb	r3, [r3, #29]	@ zero_extendqisi2
-	strneb	r3, [r5, #16]
+	ldrne	r3, [r5, #1104]
+	ldrbne	r3, [r3, #29]	@ zero_extendqisi2
+	strbne	r3, [r4, #16]
 	mov	r3, #4
-	strb	r3, [r5, #17]
-	ldr	r3, [r4, #1096]
+	strb	r3, [r4, #17]
+	ldr	r3, .L4848
+	ldr	r3, [r3, #1104]
 	ldrb	r1, [r3, #12]	@ zero_extendqisi2
 	ldrh	r0, [r3, #10]
 	bl	__aeabi_idiv
-	cmp	r10, #8
+	cmp	r8, #8
 	mov	r3, #0
-	mov	r1, #12
-	strb	r3, [r5, #20]
 	movhi	r2, #70
 	movls	r2, #16
-	strh	r3, [r5, #22]	@ movhi
-	strh	r0, [r5, #18]	@ movhi
-	add	r0, r5, #12
-	strb	r2, [r5, #21]
+	mov	r1, #12
+	strh	r0, [r4, #18]	@ movhi
+	strb	r3, [r4, #20]
+	add	r0, r4, r1
+	strh	r3, [r4, #22]	@ movhi
+	strb	r2, [r4, #21]
 	bl	js_hash
 	sub	r3, fp, #4
-	str	r0, [r5, #8]
-	str	r3, [sp, #32]
-	b	.L4870
-.L4896:
-	mov	r5, #0
-	str	fp, [sp, #32]
-.L4870:
-	ldr	r8, [sp, #36]
-	mov	r9, #0
-.L4873:
-	ldr	r3, [sp, #80]
-	cmp	r9, r3
-	bcs	.L4929
+	str	r0, [r4, #8]
+	str	r3, [sp, #28]
+.L4758:
+	ldr	r9, [sp, #32]
+	mov	r6, #0
+	ldr	r7, .L4848
+.L4761:
 	ldr	r3, [sp, #64]
-	ldrb	r2, [r4, #1102]	@ zero_extendqisi2
-	add	r7, r9, r3
-	ubfx	r7, r7, #2, #16
-	cmp	r2, #0
-	add	r0, r7, #1
-	mov	r1, r0, asl #1
-	add	r3, r4, r1
-	ldrh	r3, [r3, #4]
-	beq	.L4875
-	ldrb	ip, [r4, #1]	@ zero_extendqisi2
-	cmp	ip, #0
-	moveq	r3, r0
-	movne	r3, r1
-.L4875:
-	ldrb	r1, [r4, #1028]	@ zero_extendqisi2
-	ldr	r0, .L4930
-	cmp	r1, #9
-	movw	r1, #61424
-	str	r1, [sp, #92]
-	mov	r1, r7, asl #1
-	add	r0, r0, r1
-	subne	r3, r3, #1
-	ldrh	r0, [r0, #4]
-	movne	r3, r3, asl #2
-	cmp	r2, #0
-	str	r3, [sp, #88]
-	moveq	r7, r0
-	beq	.L4879
-	ldrb	r2, [r4, #1]	@ zero_extendqisi2
-	cmp	r2, #0
-	movne	r7, r1
-.L4879:
-	cmp	r5, #0
-	mul	r0, r10, r7
-	bne	.L4880
-	ldr	r2, [sp, #52]
-	str	r8, [sp]
-	add	ip, r0, r2
-	ldr	r2, [r8]
-	ldr	r0, .L4930+44
-	mov	r1, ip
-	str	ip, [sp, #84]
-	stmib	sp, {r2, r3}
-	movw	r3, #61424
-	mov	r2, r9
-	str	r3, [sp, #12]
-	mov	r3, fp
-	bl	printk
-	mov	r1, r8
-	ldr	ip, [sp, #84]
-	add	r2, sp, #88
-	mov	r0, ip
-	bl	fw_flash_page_prog.constprop.30
-	ldrb	r3, [r4, #1102]	@ zero_extendqisi2
+	cmp	r3, r6
+	bhi	.L4772
+	ldr	r3, .L4848+16
+	mov	r4, #0
+	strb	r4, [r7, #1196]
+	mov	r0, r10
+	ldr	r5, .L4848
+	mov	r8, #4
+	ldrb	r2, [r3, #13]	@ zero_extendqisi2
+	ldrh	r1, [r3, #30]
+	str	r2, [sp, #80]
+	mul	r1, r2, r1
+	bl	__aeabi_uidivmod
+	sub	r3, r10, r1
+	ldr	r6, [sp, #20]
+	str	r3, [sp, #84]
+	and	r3, r1, #3
+	str	r3, [sp, #56]
+	ldr	r3, [sp, #28]
+	str	r1, [sp, #52]
+	str	r4, [sp, #64]
+	str	r3, [sp, #68]
+.L4773:
+	ldr	r3, [sp, #68]
+	cmp	r4, r3
+	bcc	.L4787
+	ldrb	r3, [sp, #104]	@ zero_extendqisi2
+	ldr	r4, .L4848
+	strb	r3, [r4, #1196]
+	ldr	r3, [sp, #16]
 	cmp	r3, #0
-	bne	.L4881
-	mov	r1, r10
-	ldr	r0, [sp, #52]
-	bl	__aeabi_uidiv
-	add	r2, r7, #1
-	uxth	r2, r2
-	mov	r1, r0
-	mov	r0, r5
-	bl	id_block_prog_msb_ff_data
-.L4881:
-	ldr	r3, [sp, #32]
-	add	r8, r8, #2048
-	add	r3, r3, #16
-	cmp	r9, r3
-	bcc	.L4882
-	ldr	r3, [sp, #32]
-	add	r3, r3, #20
-	cmp	r9, r3
-	ldrcc	r3, [sp, #36]
-	addcc	r8, r3, #2048
-	b	.L4882
-.L4880:
-	ldr	r3, [sp, #52]
-	mov	r1, r5
-	add	r2, sp, #88
-	add	r0, r0, r3
-	bl	fw_flash_page_prog.constprop.30
-.L4882:
-	add	r9, r9, #4
-	mov	r5, #0
-	uxth	r9, r9
-	b	.L4873
-.L4929:
-	ldr	r3, .L4930
-	mov	r0, r6
-	ldrb	r2, [sp, #76]	@ zero_extendqisi2
-	ldr	r1, [sp, #32]
-	strb	r2, [r3, #1168]
-	ldr	r2, [sp, #24]
-	bl	id_block_read_data.constprop.31
-	ldr	r3, [sp, #20]
-	cmp	r3, #0
-	beq	.L4884
+	beq	.L4788
 	mov	r0, #0
 	bl	zftl_flash_exit_slc_mode
 	mov	r3, #0
 	strb	r3, [r4]
-	strb	r3, [r4, #1102]
-.L4884:
-	ldr	r3, [sp, #32]
-	mov	r5, #0
-	mov	r8, r3, asl #7
-.L4887:
-	ldr	r3, [sp, #24]
-	ldr	r2, [r3, r5, asl #2]
-	ldr	r3, [sp, #36]
-	ldr	r3, [r3, r5, asl #2]
-	cmp	r2, r3
-	beq	.L4885
-	mov	r1, #0
+	strb	r3, [r4, #1110]
+.L4788:
+	ldr	r3, [sp, #28]
+	mov	r2, #0
+	lsl	r3, r3, #7
+.L4790:
+	ldr	r1, [sp, #20]
+	ldr	r0, [r1, r2, lsl #2]
+	ldr	r1, [sp, #32]
+	ldr	r1, [r1, r2, lsl #2]
+	cmp	r0, r1
+	beq	.L4789
 	mov	r2, #512
-	ldr	r0, [sp, #24]
+	mov	r1, #0
+	ldr	r0, [sp, #20]
 	bl	ftl_memset
+	mov	r1, r10
 	mov	r0, #0
-	mov	r1, r6
 	bl	flash_erase_block
-	cmp	r5, r8
-	bcs	.L4886
-	b	.L4867
-.L4885:
-	add	r5, r5, #1
-	cmp	r5, r8
-	bne	.L4887
-.L4886:
-	ldr	r3, [sp, #40]
-	add	r3, r3, #1
-	str	r3, [sp, #40]
-	cmp	r3, #5
-	bhi	.L4888
-.L4867:
-	ldr	r3, [sp, #28]
-	add	r3, r3, #1
-	str	r3, [sp, #28]
-	ldr	r3, [sp, #48]
-	add	r3, r3, #4
-	str	r3, [sp, #48]
-	ldr	r3, [sp, #28]
-	cmp	r3, #4
-	bne	.L4889
-.L4888:
-	mov	r0, #0
-	bl	zftl_flash_exit_slc_mode
-	ldr	r3, .L4930
-	mov	r0, #0
-	ldrb	r2, [sp, #60]	@ zero_extendqisi2
-	strb	r2, [r3]
-	ldr	r2, [sp, #20]
+	b	.L4755
+.L4801:
+	str	fp, [sp, #28]
+	mov	r4, #0
+	b	.L4758
+.L4772:
+	ldr	r3, [sp, #56]
+	ldrb	r2, [r7, #1110]	@ zero_extendqisi2
+	add	r5, r3, r6
+	ubfx	r5, r5, #2, #16
 	cmp	r2, #0
-	ldrneb	r2, [sp, #68]	@ zero_extendqisi2
-	strneb	r2, [r3, #1102]
-	mov	r2, #2
-	strb	r2, [r3, #1192]
-	bl	zftl_flash_enter_slc_mode
-	ldr	r0, [sp, #24]
-	bl	ftl_free
-	ldr	r3, [sp, #40]
-	clz	r0, r3
-	mov	r0, r0, lsr #5
-	rsb	r0, r0, #0
-.L4853:
-	add	sp, sp, #156
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4931:
+	add	r0, r5, #1
+	lsl	r1, r0, #1
+	add	r3, r7, r1
+	ldrh	r3, [r3, #4]
+	beq	.L4763
+	ldrb	r3, [r7, #1]	@ zero_extendqisi2
+	cmp	r3, #0
+	moveq	r3, r0
+	movne	r3, r1
+.L4763:
+	ldrb	r1, [r7, #1028]	@ zero_extendqisi2
+	cmp	r1, #9
+	subne	r3, r3, #1
+	lslne	r3, r3, #2
+	cmp	r2, #0
+	str	r3, [sp, #112]
+	movw	r3, #61424
+	str	r3, [sp, #116]
+	lsl	r3, r5, #1
+	add	r1, r7, r3
+	ldrh	r1, [r1, #4]
+	moveq	r5, r1
+	beq	.L4768
+	ldrb	r2, [r7, #1]	@ zero_extendqisi2
+	cmp	r2, #0
+	movne	r5, r3
+.L4768:
+	cmp	r4, #0
+	mul	r0, r5, r8
+	bne	.L4769
+	ldr	r3, [sp, #44]
+	add	r3, r0, r3
+	ldr	r0, .L4848+44
+	str	r3, [sp, #60]
+	movw	r3, #61424
+	str	r3, [sp, #12]
+	add	r3, sp, #176
+	mov	r2, r3
+	ldr	r1, [sp, #60]
+	ldr	r3, [r2, #-64]!
+	str	r3, [sp, #8]
+	ldr	r3, [r9]
+	str	r2, [sp, #52]
+	mov	r2, r6
+	str	r9, [sp]
+	str	r3, [sp, #4]
+	mov	r3, fp
+	bl	printk
+	mov	r1, r9
+	ldr	r2, [sp, #52]
+	ldr	r0, [sp, #60]
+	bl	fw_flash_page_prog.constprop.29
+	ldrb	r3, [r7, #1110]	@ zero_extendqisi2
+	cmp	r3, #0
+	bne	.L4770
+	add	r5, r5, #1
+	mov	r1, r8
+	uxth	r5, r5
+	ldr	r0, [sp, #44]
+	bl	__aeabi_uidiv
+	mov	r2, r5
+	mov	r1, r0
+	mov	r0, r4
+	bl	id_block_prog_msb_ff_data
+.L4770:
+	ldr	r3, [sp, #28]
+	add	r9, r9, #2048
+	add	r3, r3, #16
+	cmp	r6, r3
+	bcc	.L4771
+	ldr	r3, [sp, #28]
+	add	r3, r3, #20
+	cmp	r6, r3
+	ldrcc	r3, [sp, #32]
+	addcc	r9, r3, #2048
+.L4771:
+	add	r6, r6, #4
+	mov	r4, #0
+	uxth	r6, r6
+	b	.L4761
+.L4769:
+	ldr	r3, [sp, #44]
+	add	r2, sp, #112
+	mov	r1, r4
+	add	r0, r0, r3
+	bl	fw_flash_page_prog.constprop.29
+	b	.L4771
+.L4787:
+	ldr	r3, [sp, #56]
+	mov	r1, r8
+	sub	r3, r8, r3
+	uxth	r3, r3
+	str	r3, [sp, #60]
+	ldr	r3, [sp, #52]
+	add	r0, r3, r4
+	bl	__aeabi_uidiv
+	uxth	r0, r0
+	ldrb	r1, [r5, #1110]	@ zero_extendqisi2
+	lsl	r3, r0, #1
+	cmp	r1, #0
+	add	r2, r5, r3
+	ldrh	r2, [r2, #4]
+	moveq	r0, r2
+	beq	.L4775
+	ldrb	r2, [r5, #1]	@ zero_extendqisi2
+	cmp	r2, #0
+	movne	r0, r3
+.L4775:
+	ldr	r2, [sp, #84]
+	ldr	r3, [sp, #80]
+	ldrb	r9, [r5, #1108]	@ zero_extendqisi2
+	mla	r3, r0, r3, r2
+	str	r3, [sp, #88]
+	ldr	r3, [r5, #1104]
+	ldr	r2, [sp, #88]
+	ldrb	r1, [r3, #9]	@ zero_extendqisi2
+	ldr	r3, [sp, #56]
+	add	r0, r3, r2
+	bl	__aeabi_uidiv
+	ldrb	r3, [r5, #1193]	@ zero_extendqisi2
+	str	r0, [sp, #44]
+	mov	r0, r9
+	str	r3, [sp, #108]
+	bl	nandc_bch_sel
+.L4776:
+	str	r8, [sp]
+	add	r3, sp, #112
+	mov	r2, r6
+	ldr	r1, [sp, #44]
+	mov	r0, #0
+	bl	flash_read_page
+	cmn	r0, #1
+	mov	r7, r0
+	bne	.L4777
+	ldrb	r3, [r5, #1196]	@ zero_extendqisi2
+	cmp	r3, #0
+	str	r3, [sp, #92]
+	bne	.L4778
+.L4781:
+	ldr	r3, .L4848+20
+	ldr	r3, [r3, #-100]
+	subs	ip, r3, #0
+	bne	.L4779
+.L4780:
+	ldrb	r3, [r5, #1143]	@ zero_extendqisi2
+	cmp	r3, #0
+	beq	.L4777
+	str	r8, [sp]
+	add	r3, sp, #112
+	mov	r2, r6
+	ldr	r1, [sp, #44]
+	mov	r0, #0
+	bl	flash_ddr_tuning_read
+	b	.L4846
+.L4778:
+	mov	r0, #0
+	add	r3, sp, #112
+	strb	r0, [r5, #1196]
+	mov	r2, r6
+	str	r8, [sp]
+	ldr	r1, [sp, #44]
+	bl	flash_read_page
+	ldrb	r3, [sp, #92]	@ zero_extendqisi2
+	cmn	r0, #1
+	strb	r3, [r5, #1196]
+	beq	.L4781
+.L4846:
+	mov	r7, r0
+.L4777:
+	cmn	r7, #1
+	movne	r7, #0
+	moveq	r7, #1
+	cmp	r9, #16
+	moveq	r9, #0
+	andne	r9, r7, #1
+	cmp	r9, #0
+	beq	.L4783
+	mov	r0, #16
+	mov	r9, #16
+	bl	nandc_bch_sel
+	b	.L4776
+.L4779:
+	str	r8, [sp]
+	add	r3, sp, #112
+	mov	r2, r6
+	ldr	r1, [sp, #44]
+	mov	r0, #0
+	blx	ip
+	cmn	r0, #1
+	beq	.L4780
+	b	.L4846
+.L4783:
+	ldr	r0, [sp, #108]
+	bl	nandc_bch_sel
+	ldr	r3, [sp, #64]
+	cmp	r7, #0
+	mvnne	r3, #0
+	str	r3, [sp, #64]
+	ldr	r3, [sp, #84]
+	ldr	r2, [sp, #64]
+	cmp	r10, r3
+	cmpeq	r4, #0
+	moveq	r3, #1
+	movne	r3, #0
+	cmp	r2, #0
+	movne	r3, #0
+	andeq	r3, r3, #1
+	cmp	r3, #0
+	beq	.L4785
+	ldr	r3, [r6]
+	ldr	r2, .L4848+40
+	cmp	r3, r2
+	bne	.L4785
+	ldr	r3, [sp, #68]
+	ldr	r2, [sp, #60]
+	ldrb	r8, [r6, #17]	@ zero_extendqisi2
+	add	r3, r3, r2
+	str	r3, [sp, #68]
+.L4786:
+	ldr	r3, [sp, #60]
+	add	r4, r3, r4
+	uxth	r4, r4
+	b	.L4773
+.L4785:
+	ldr	r3, [sp, #60]
+	mov	r2, r4
+	ldr	r1, [sp, #88]
+	ldr	r0, .L4848+48
+	add	r6, r6, r3, lsl #9
+	ldr	r3, [sp, #116]
+	str	r3, [sp]
+	ldr	r3, [sp, #112]
+	bl	printk
+	mov	r3, #0
+	str	r3, [sp, #56]
+	b	.L4786
+.L4789:
+	add	r2, r2, #1
+	cmp	r3, r2
+	bne	.L4790
+	ldr	r3, [sp, #36]
+	add	r3, r3, #1
+	cmp	r3, #5
+	str	r3, [sp, #36]
+	bls	.L4755
+	b	.L4794
+.L4849:
 	.align	2
-.L4930:
+.L4848:
 	.word	.LANCHOR0
-	.word	1397640018
-	.word	.LANCHOR2
 	.word	-52655045
+	.word	1397640018
 	.word	1397967698
+	.word	.LANCHOR2
 	.word	.LANCHOR3
 	.word	1314014539
 	.word	.LC318
 	.word	.LC319
-	.word	.LC320
+	.word	.LC317
 	.word	1179535694
+	.word	.LC320
 	.word	.LC321
 	.fnend
 	.size	write_idblock, .-write_idblock
 	.align	2
 	.global	write_loader_lba
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	write_loader_lba, %function
 write_loader_lba:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 40
 	@ frame_needed = 0, uses_anonymous_args = 0
 	cmp	r0, #64
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, lr}
-	.save {r4, r5, r6, r7, r8, r9, lr}
-	mov	r4, r0
-	.pad #52
-	sub	sp, sp, #52
+	push	{r4, r5, r6, r7, r8, lr}
+	.save {r4, r5, r6, r7, r8, lr}
+	mov	r5, r0
+	.pad #48
+	sub	sp, sp, #48
 	mov	r6, r1
 	mov	r8, r2
-	ldr	r5, .L4958
-	bne	.L4933
-	ldr	r3, [r2]
-	ldr	r1, .L4958+4
-	ldr	r2, .L4958+8
-	cmp	r3, r1
-	cmpne	r3, r2
-	ldr	r1, .L4958+12
-	moveq	r2, #1
-	movne	r2, #0
-	cmp	r3, r1
-	movne	r3, r2
-	orreq	r3, r2, #1
+	ldr	r4, .L4877
+	bne	.L4851
+	ldr	r3, .L4877+4
+	ldr	r2, [r2]
+	ldr	r1, .L4877+8
+	cmp	r2, r1
+	cmpne	r2, r3
+	add	r1, r1, #327680
+	moveq	r3, #1
+	movne	r3, #0
+	cmp	r2, r1
+	orreq	r3, r3, #1
 	cmp	r3, #0
-	beq	.L4933
-	mov	r0, #256000
+	beq	.L4851
 	mov	r3, #1
-	strb	r3, [r5, #588]
+	mov	r0, #256000
+	strb	r3, [r4, #32]
 	bl	ftl_malloc
-	mov	r1, #0
 	mov	r2, #256000
-	str	r0, [r5, #592]
+	mov	r1, #0
+	str	r0, [r4, #36]
 	bl	ftl_memset
-	str	r4, [r5, #596]
-.L4933:
+	str	r5, [r4, #40]
+.L4851:
 	str	r6, [sp]
-	mov	r3, r4
-	ldr	r0, .L4958+16
-	ldr	r1, [r5, #592]
+	mov	r3, r5
 	ldr	r2, [r8]
+	ldr	r1, [r4, #36]
+	ldr	r0, .L4877+12
 	bl	printk
-	ldrb	r3, [r5, #588]	@ zero_extendqisi2
-	ldr	r9, .L4958
+	ldrb	r3, [r4, #32]	@ zero_extendqisi2
 	cmp	r3, #0
-	beq	.L4932
-	ldr	r7, [r9, #592]
+	beq	.L4850
+	ldr	r7, [r4, #36]
 	cmp	r7, #0
-	beq	.L4932
-	sub	r0, r4, #64
+	beq	.L4850
+	sub	r0, r5, #64
 	cmp	r0, #500
-	bcs	.L4935
-	rsb	r2, r4, #564
-	add	r0, r7, r0, asl #9
-	cmp	r2, r6
+	bcs	.L4853
+	rsb	r2, r5, #564
 	mov	r1, r8
-	movcs	r2, r6
-	mov	r2, r2, asl #9
+	cmp	r6, r2
+	add	r0, r7, r0, lsl #9
+	movcc	r2, r6
+	lsl	r2, r2, #9
 	bl	ftl_memcpy
-	b	.L4936
-.L4935:
-	cmp	r4, #564
-	bcs	.L4944
-.L4936:
-	ldr	r3, [r5, #596]
-	ldr	r8, .L4958
-	cmp	r3, r4
-	beq	.L4942
+.L4854:
+	ldr	r3, [r4, #40]
+	cmp	r5, r3
+	beq	.L4863
+	mov	r8, #0
 	mov	r0, r7
-	mov	r9, #0
-	strb	r9, [r8, #588]
+	strb	r8, [r4, #32]
 	bl	ftl_free
-	str	r9, [r8, #592]
-.L4942:
-	add	r4, r4, r6
-	str	r4, [r5, #596]
-	b	.L4932
-.L4944:
-	ldr	r3, .L4958+20
-	ldr	r0, [r9, #596]
-	ldr	r3, [r3, #1096]
+	str	r8, [r4, #36]
+	b	.L4863
+.L4853:
+	cmp	r5, #564
+	bcc	.L4854
+	ldr	r3, .L4877+16
+	ldr	r0, [r4, #40]
+	ldr	r3, [r3, #1104]
 	sub	r0, r0, #64
 	cmp	r0, #500
 	ldrb	r3, [r3, #9]	@ zero_extendqisi2
 	movcs	r0, #500
 	cmp	r3, #4
-	beq	.L4945
+	beq	.L4855
 	mov	r3, #2
 	str	r3, [sp, #8]
 	mov	r3, #3
@@ -29936,650 +30338,164 @@
 	str	r3, [sp, #20]
 	mov	r3, #6
 	str	r3, [sp, #24]
-	b	.L4938
-.L4945:
-	mov	r3, #0
-.L4937:
-	cmp	r0, #256
-	add	r1, sp, #8
-	mov	r2, r3, asl #1
-	movls	r2, r3
-	str	r2, [r1, r3, asl #2]
-	add	r3, r3, #1
-	cmp	r3, #5
-	bne	.L4937
-.L4938:
+.L4856:
 	mov	r3, #61952
-.L4941:
-	ldr	r2, [r7, r3, asl #2]
+.L4862:
+	ldr	r2, [r7, r3, lsl #2]
 	cmp	r2, #0
-	addne	r3, r3, #2048
-	movne	r0, r3, asl #2
-	bne	.L4940
-.L4939:
-	sub	r3, r3, #1
-	cmp	r3, #4096
-	bne	.L4941
-	mov	r0, r0, asl #9
-.L4940:
+	beq	.L4860
+	add	r3, r3, #2048
+	lsl	r0, r3, #2
+.L4861:
 	mov	r1, r7
 	add	r2, sp, #8
-	bl	write_idblock
-	ldr	r0, [r5, #592]
 	mov	r7, #0
-	strb	r7, [r5, #588]
+	bl	write_idblock
+	ldr	r0, [r4, #36]
+	strb	r7, [r4, #32]
 	bl	ftl_free
-	str	r7, [r5, #592]
-	b	.L4942
-.L4932:
-	add	sp, sp, #52
+	str	r7, [r4, #36]
+.L4863:
+	add	r5, r5, r6
+	str	r5, [r4, #40]
+.L4850:
+	add	sp, sp, #48
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, pc}
-.L4959:
+	pop	{r4, r5, r6, r7, r8, pc}
+.L4855:
+	mov	r2, #0
+	add	r3, sp, #8
+.L4859:
+	cmp	r0, #256
+	lslhi	r1, r2, #1
+	strls	r2, [r3, r2, lsl #2]
+	strhi	r1, [r3, r2, lsl #2]
+	add	r2, r2, #1
+	cmp	r2, #5
+	bne	.L4859
+	b	.L4856
+.L4860:
+	sub	r3, r3, #1
+	cmp	r3, #4096
+	bne	.L4862
+	lsl	r0, r0, #9
+	b	.L4861
+.L4878:
 	.align	2
-.L4958:
+.L4877:
 	.word	.LANCHOR3
 	.word	-52655045
 	.word	1397640018
-	.word	1397967698
 	.word	.LC322
 	.word	.LANCHOR0
 	.fnend
 	.size	write_loader_lba, .-write_loader_lba
 	.align	2
 	.global	FtlWrite
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	FtlWrite, %function
 FtlWrite:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	push	{r4, r5, r6, r7, r8, lr}
 	.save {r4, r5, r6, r7, r8, lr}
 	mov	r6, r2
 	sub	r2, r1, #64
 	mov	r4, r1
 	cmp	r2, #1984
-	mov	r5, r3
-	mov	r7, r0
+	mov	r7, r3
 	movcs	r2, #0
 	movcc	r2, #1
 	cmp	r0, #0
+	mov	r5, r0
 	movne	r2, #0
 	cmp	r2, #0
-	beq	.L4961
-	mov	r0, r1
+	beq	.L4880
 	mov	r2, r3
 	mov	r1, r6
+	mov	r0, r4
 	bl	write_loader_lba
-.L4961:
-	ldr	r3, .L4966
-	mov	r0, r7
-	mov	r1, r4
+.L4880:
+	ldr	r3, .L4885
 	mov	r2, r6
-	ldr	r3, [r3, #-136]
-	ldr	ip, [r3, #24]
-	mov	r3, r5
-	ldmfd	sp!, {r4, r5, r6, r7, r8, lr}
+	mov	r1, r4
+	mov	r0, r5
+	ldr	r3, [r3, #-160]
+	ldr	lr, [r3, #24]
+	mov	r3, r7
+	mov	ip, lr
+	pop	{r4, r5, r6, r7, r8, lr}
 	bx	ip
-.L4967:
+.L4886:
 	.align	2
-.L4966:
+.L4885:
 	.word	.LANCHOR3
 	.fnend
 	.size	FtlWrite, .-FtlWrite
 	.align	2
 	.global	rknand_sys_storage_ioctl
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rknand_sys_storage_ioctl, %function
 rknand_sys_storage_ioctl:
 	.fnstart
-	@ args = 0, pretend = 0, frame = 520
+	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	ldr	r3, .L5025
-	stmfd	sp!, {r4, r5, r6, r7, lr}
-	.save {r4, r5, r6, r7, lr}
+	ldr	r3, .L4896
 	cmp	r1, r3
-	.pad #524
-	sub	sp, sp, #524
-	mov	r4, r1
-	mov	r5, r2
-	beq	.L4970
-	bhi	.L4971
-	sub	r3, r3, #2080
-	sub	r3, r3, #6
-	cmp	r1, r3
-	beq	.L4972
-	bhi	.L4973
-	sub	r3, r3, #238
-	cmp	r1, r3
-	beq	.L4974
-	add	r3, r3, #237
-	cmp	r1, r3
-	beq	.L4975
-	b	.L5005
-.L4973:
-	ldr	r3, .L5025+4
-	cmp	r1, r3
-	beq	.L4976
-	add	r3, r3, #1
-	cmp	r1, r3
-	beq	.L4977
-	sub	r3, r3, #124
-	cmp	r1, r3
-	bne	.L5005
-	b	.L5023
-.L4971:
-	ldr	r3, .L5025+8
-	cmp	r1, r3
-	mov	r6, r3
-	beq	.L4979
-	bhi	.L4980
-	sub	r3, r3, #2512
-	sub	r3, r3, #14
-	cmp	r1, r3
-	beq	.L4970
-	add	r3, r3, #10
-	cmp	r1, r3
-	beq	.L4970
-	b	.L5005
-.L4980:
-	ldr	r3, .L5025+12
-	cmp	r1, r3
-	beq	.L4979
-	bcc	.L4981
-	add	r3, r3, #1
-	cmp	r1, r3
-	beq	.L4981
-	b	.L5005
-.L4975:
-	ldr	r0, .L5025+16
-	bl	printk
-	mov	r1, r5
-	mov	r2, #520
-	mov	r0, sp
-	bl	rk_copy_from_user
-	cmp	r0, #0
-	beq	.L4982
-.L4988:
-	ldr	r0, .L5025+20
-	bl	printk
-	b	.L5020
-.L4982:
-	ldr	r2, [sp]
-	ldr	r3, .L5025+24
-	cmp	r2, r3
-	beq	.L4983
-.L4985:
-	mvn	r4, #0
-	b	.L4984
-.L4983:
-	ldr	r3, [sp, #4]
-	cmp	r3, #512
-	bhi	.L4985
-	ldr	r4, .L5025+28
-	mov	r2, #512
-	mov	r0, sp
-	ldr	r1, [r4, #600]
-	bl	memcpy
-	ldr	r2, [r4, #604]
-	ldr	r3, .L5025+32
-	cmp	r2, r3
-	beq	.L4986
-	mov	r1, #0
-	add	r0, sp, #64
-	mov	r2, #128
-	str	r1, [sp, #8]
-	str	r1, [sp, #12]
-	bl	memset
-.L4986:
-	mov	r1, #0
-	add	r0, sp, #256
-	mov	r2, #256
-	str	r1, [sp, #16]
-	bl	memset
-.L5015:
-	mov	r0, r5
-	mov	r1, sp
-	mov	r2, #520
-	bl	rk_copy_to_user
-	cmp	r0, #0
-	bne	.L5020
-	b	.L5019
-.L4972:
-	ldr	r0, .L5025+36
-	bl	printk
-	mov	r1, r5
-	mov	r2, #520
-	mov	r0, sp
-	bl	rk_copy_from_user
-	cmp	r0, #0
-	bne	.L4988
-	ldr	r2, [sp]
-	ldr	r3, .L5025+24
-	cmp	r2, r3
-	bne	.L4985
-	ldr	r3, [sp, #4]
-	cmp	r3, #512
-	bhi	.L4985
-	ldr	r2, .L5025+28
-	ldr	r3, .L5025+32
-	ldr	r1, [r2, #604]
-	cmp	r1, r3
-	mvnne	r0, #1
-	bne	.L4969
-	ldr	r3, [sp, #12]
-	sub	r1, r3, #1
-	cmp	r1, #127
-	mvnhi	r0, #2
-	bhi	.L4969
-	ldr	r4, [r2, #600]
-	add	r1, sp, #64
-	add	r0, r4, #64
-	str	r3, [r4, #12]
-	ldr	r2, [sp, #12]
-	bl	memcpy
-	mov	r0, #1
-	mov	r1, r4
-	b	.L5018
-.L4977:
-	ldr	r0, .L5025+40
-	bl	printk
-	mov	r1, r5
-	mov	r2, #520
-	mov	r0, sp
-	bl	rk_copy_from_user
-	cmp	r0, #0
-	bne	.L4988
-	ldr	r2, [sp]
-	ldr	r3, .L5025+44
-	cmp	r2, r3
-	bne	.L4985
-	ldr	r3, [sp, #4]
-	cmp	r3, #512
-	bhi	.L4985
-	ldr	r5, .L5025+28
-	ldr	r3, [r5, #608]
-	cmp	r3, #0
-	bne	.L4989
-.L4992:
-	mov	r0, #0
-	b	.L4969
-.L4989:
-	ldr	r3, [r5, #612]
-	ldr	r2, .L5025+48
-	ldr	r1, [r3]
-	cmp	r1, r2
-	beq	.L4990
-	str	r2, [r3]
-	mov	r2, #504
-	ldr	r3, .L5025+28
-	ldr	r3, [r3, #612]
-	str	r2, [r3, #4]
-	mov	r2, #0
-	str	r2, [r3, #8]
-	str	r2, [r3, #12]
-.L4990:
-	ldr	r1, [r5, #612]
-	mov	r4, #0
-	mov	r0, r4
-	str	r4, [r1, #16]
-	bl	StorageSysDataStore
-	ldr	r3, [r5, #600]
-	ldr	r2, .L5025+24
-	ldr	r1, [r3]
-	cmp	r1, r2
-	strne	r2, [r3]
-	ldr	r6, [r5, #600]
-	ldrne	r3, .L5025+28
-	movne	r2, #504
-	add	r0, r6, #64
-	ldrne	r3, [r3, #600]
-	stmneib	r3, {r2, r4}
-	mov	r4, #0
-	mov	r1, r4
-	mov	r2, #128
-	str	r4, [r6, #12]
-	bl	memset
-	mov	r0, #1
-	mov	r1, r6
-	bl	StorageSysDataStore
-	str	r4, [r5, #608]
-	str	r4, [r5, #604]
-	b	.L4984
-.L4976:
-	ldr	r0, .L5025+52
-	bl	printk
-	mov	r1, r5
-	mov	r2, #520
-	mov	r0, sp
-	bl	rk_copy_from_user
-	cmp	r0, #0
-	bne	.L4988
-	ldr	r2, [sp]
-	ldr	r3, .L5025+56
-	cmp	r2, r3
-	bne	.L4985
-	ldr	r3, [sp, #4]
-	cmp	r3, #512
-	bhi	.L4985
-	ldr	r5, .L5025+28
-	ldr	r3, [r5, #608]
-	cmp	r3, #1
-	beq	.L4992
-	ldr	r2, [r5, #612]
-	ldr	r3, .L5025+48
-	ldr	r1, [r2]
-	cmp	r1, r3
-	beq	.L4993
-	str	r3, [r2]
-	mov	r2, #504
-	ldr	r3, [r5, #612]
-	str	r2, [r3, #4]
-	mov	r2, #0
-	str	r2, [r3, #8]
-	str	r2, [r3, #12]
-.L4993:
-	ldr	r1, [r5, #612]
-	mov	r3, #1
-	mov	r0, #0
-	mov	r4, #0
-	str	r3, [r1, #16]
-	bl	StorageSysDataStore
-	ldr	r3, [r5, #600]
-	ldr	r2, .L5025+24
-	ldr	r1, [r3]
-	cmp	r1, r2
-	strne	r2, [r3]
-	ldr	r6, [r5, #600]
-	ldrne	r3, .L5025+28
-	movne	r1, #504
-	movne	r2, #0
-	add	r0, r6, #64
-	ldrne	r3, [r3, #600]
-	stmneib	r3, {r1, r2}
-	mov	r1, r4
-	mov	r2, #128
-	str	r4, [r6, #12]
-	bl	memset
-	mov	r0, #1
-	mov	r1, r6
-	bl	StorageSysDataStore
-	mov	r3, #1
-	str	r3, [r5, #608]
-	b	.L4984
-.L5023:
-	ldr	r0, .L5025+60
-	bl	printk
-	mov	r1, r5
-	mov	r2, #520
-	mov	r0, sp
-	bl	rk_copy_from_user
-	cmp	r0, #0
-	bne	.L4988
-	ldr	r2, [sp]
-	ldr	r3, .L5025+64
-	cmp	r2, r3
-	bne	.L4985
-	ldr	r2, [sp, #4]
-	cmp	r2, #512
-	addls	r0, sp, #8
-	ldrls	r1, .L5025+68
-	bls	.L5021
-	b	.L4985
-.L4970:
-	ldr	r0, .L5025+72
-	cmp	r4, r0
-	mov	r7, r0
-	ldreq	r0, .L5025+76
-	beq	.L5017
-	ldr	r3, .L5025+80
-	cmp	r4, r3
-	ldreq	r0, .L5025+84
-	ldrne	r0, .L5025+88
-.L5017:
-	bl	printk
-	mov	r1, r5
-	mov	r2, #520
-	mov	r0, sp
-	bl	rk_copy_from_user
-	cmp	r0, #0
-	bne	.L4988
-	ldr	r2, [sp]
-	ldr	r3, .L5025+92
-	cmp	r2, r3
-	bne	.L5020
-	ldr	r3, .L5025+80
-	ldr	r6, .L5025+28
-	cmp	r4, r3
-	bne	.L4999
-	ldr	r3, [r6, #600]
-	mov	r0, r5
-	mov	r1, sp
-	mov	r2, #16
-	ldr	r3, [r3, #20]
-	str	r3, [sp, #4]
-	strb	r3, [sp, #8]
-	bl	rk_copy_to_user
-	cmp	r0, #0
-	beq	.L4969
-	b	.L5020
-.L4999:
-	ldr	r3, [r6, #1128]
-	cmp	r3, #10
-	bhi	.L5020
-	ldr	r1, [r6, #600]
-	ldr	r2, [sp, #4]
-	ldr	r3, [r1, #24]
-	cmp	r3, r2
-	cmpne	r3, #0
-	movne	r3, #1
-	moveq	r3, #0
-	beq	.L5000
-	ldr	r0, .L5025+96
-	mov	r1, r2
-	bl	printk
-	ldr	r3, [r6, #1128]
-	add	r3, r3, #1
-	str	r3, [r6, #1128]
-.L5020:
-	mvn	r0, #13
-	b	.L4969
-.L5000:
-	cmp	r4, r7
-	str	r3, [r6, #1128]
-	mov	r0, #1
-	moveq	r2, r3
-	movne	r3, #1
-	moveq	r3, r2
-	str	r2, [r1, #24]
-	str	r3, [r1, #20]
-	bl	StorageSysDataStore
-	cmn	r0, #1
-	bne	.L5019
-	b	.L5024
-.L4979:
-	ldr	r0, .L5025+100
-	bl	printk
-	mov	r1, r5
-	mov	r2, #520
-	mov	r0, sp
-	bl	rk_copy_from_user
-	cmp	r0, #0
-	bne	.L4988
-	ldr	r2, [sp]
-	ldr	r3, .L5025+104
-	cmp	r2, r3
-	bne	.L4985
-	ldr	r2, [sp, #4]
-	cmp	r2, #504
-	bhi	.L4985
-	ldr	r3, .L5025+28
-	cmp	r4, r6
-	add	r0, sp, #8
-	ldreq	r1, [r3, #1132]
-	ldrne	r1, [r3, #1136]
-	add	r1, r1, #8
-.L5021:
-	bl	memcpy
-	b	.L5015
-.L4981:
-	ldr	r0, .L5025+108
-	bl	printk
-	mov	r1, r5
-	mov	r2, #520
-	mov	r0, sp
-	bl	rk_copy_from_user
-	cmp	r0, #0
-	bne	.L4988
-	ldr	r2, [sp]
-	ldr	r3, .L5025+104
-	cmp	r2, r3
-	bne	.L4985
-	ldr	r2, [sp, #4]
-	cmp	r2, #504
-	bhi	.L4985
-	ldr	r3, .L5025+112
-	add	r2, r2, #8
-	cmp	r4, r3
-	ldr	r4, .L5025+28
-	bne	.L5004
-	mov	r1, sp
-	ldr	r0, [r4, #1132]
-	bl	memcpy
-	mov	r0, #2
-	ldr	r1, [r4, #1132]
-	b	.L5018
-.L5004:
-	mov	r1, sp
-	ldr	r0, [r4, #1136]
-	bl	memcpy
-	ldr	r1, [r4, #1136]
-	mov	r0, #3
-.L5018:
-	bl	StorageSysDataStore
-	mov	r4, r0
-	b	.L4984
-.L4974:
+	bne	.L4891
+	push	{r4, lr}
+	.save {r4, lr}
 	bl	rknand_dev_flush
-.L5019:
-	mov	r4, #0
-	b	.L4984
-.L5024:
-	mvn	r4, #1
-.L4984:
-	ldr	r0, .L5025+116
-	mov	r1, r4
+	mov	r1, #0
+	ldr	r0, .L4896+4
 	bl	printk
-	mov	r0, r4
-	b	.L4969
-.L5005:
+	mov	r0, #0
+	pop	{r4, pc}
+.L4891:
 	mvn	r0, #21
-.L4969:
-	add	sp, sp, #524
-	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, pc}
-.L5026:
+	bx	lr
+.L4897:
 	.align	2
-.L5025:
-	.word	1074031656
-	.word	1074029694
-	.word	1074034192
-	.word	1074034194
+.L4896:
+	.word	1074029332
 	.word	.LC323
-	.word	.LC324
-	.word	1263358532
-	.word	.LANCHOR3
-	.word	-1067903959
-	.word	.LC325
-	.word	.LC326
-	.word	1112753220
-	.word	1146313043
-	.word	.LC327
-	.word	1112755781
-	.word	.LC328
-	.word	1094995539
-	.word	.LANCHOR3+616
-	.word	1074031666
-	.word	.LC329
-	.word	1074031676
-	.word	.LC330
-	.word	.LC331
-	.word	1280262987
-	.word	.LC332
-	.word	.LC333
-	.word	1145980246
-	.word	.LC334
-	.word	1074034193
-	.word	.LC335
 	.fnend
 	.size	rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl
 	.align	2
 	.global	rk_ftl_storage_sys_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_storage_sys_init, %function
 rk_ftl_storage_sys_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
-	.save {r4, r5, r6, lr}
-	mvn	r3, #0
-	ldr	r4, .L5036
-	mov	r2, #512
-	mov	r5, #0
-	add	r0, r4, #616
-	ldr	r1, [r4, #576]
-	str	r3, [r4, #596]
-	add	r3, r1, #512
-	str	r3, [r4, #600]
-	str	r1, [r4, #612]
-	add	r3, r1, #1024
-	add	r1, r1, #1536
-	str	r3, [r4, #1132]
-	strb	r5, [r4, #588]
-	str	r5, [r4, #592]
-	str	r5, [r4, #1140]
-	str	r1, [r4, #1136]
-	bl	ftl_memcpy
-	ldr	r0, [r4, #612]
-	str	r5, [r4, #604]
-	str	r5, [r4, #1128]
-	ldr	r6, [r0, #508]
-	ldr	r3, [r0, #16]
-	cmp	r6, r5
-	str	r3, [r4, #608]
-	beq	.L5029
-	mov	r1, #508
-	bl	js_hash
-	cmp	r6, r0
-	beq	.L5029
-	ldr	r3, [r4, #612]
-	ldr	r0, .L5036+4
-	str	r5, [r4, #608]
-	str	r5, [r3, #16]
-	bl	printk
-.L5029:
-	ldr	r3, [r4, #608]
-	mov	r0, #2
-	ldr	r1, [r4, #1132]
-	cmp	r3, #0
-	ldrne	r2, .L5036+8
-	ldrne	r3, .L5036
-	strne	r2, [r3, #604]
-	bl	StorageSysDataLoad
-	ldr	r1, [r4, #1136]
-	mov	r0, #3
-	bl	StorageSysDataLoad
-	ldmfd	sp!, {r4, r5, r6, lr}
+	@ link register save eliminated.
+	ldr	r3, .L4899
+	mov	r2, #0
+	mvn	r1, #0
+	strb	r2, [r3, #32]
+	str	r1, [r3, #40]
+	str	r2, [r3, #36]
+	str	r2, [r3, #44]
 	b	rknand_sys_storage_init
-.L5037:
+.L4900:
 	.align	2
-.L5036:
+.L4899:
 	.word	.LANCHOR3
-	.word	.LC336
-	.word	-1067903959
 	.fnend
 	.size	rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
 	.align	2
 	.global	StorageSysDataDeInit
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	StorageSysDataDeInit, %function
 StorageSysDataDeInit:
 	.fnstart
@@ -30592,269 +30508,271 @@
 	.size	StorageSysDataDeInit, .-StorageSysDataDeInit
 	.align	2
 	.global	rk_ftl_vendor_storage_init
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_vendor_storage_init, %function
 rk_ftl_vendor_storage_init:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, lr}
+	ldr	r6, .L4913
+	ldr	r3, [r6, #48]
+	cmp	r3, #0
+	bne	.L4903
 	mov	r0, #65536
 	bl	ftl_malloc
-	ldr	r6, .L5050
-	cmp	r0, #0
-	str	r0, [r6, #1144]
-	beq	.L5045
-	ldr	r9, .L5050+4
-	mov	r8, #0
-	mov	r4, r8
-	mov	r7, r8
-	mov	r10, r6
-.L5043:
-	mov	r0, r7, asl #7
+	str	r0, [r6, #48]
+.L4903:
+	ldr	r3, [r6, #48]
+	cmp	r3, #0
+	beq	.L4908
+	ldr	r10, .L4913+4
+	mov	r7, #0
+	ldr	r9, .L4913+8
+	mov	r4, r7
+	mov	r8, r7
+.L4906:
+	ldr	r2, [r6, #48]
 	mov	r1, #128
-	ldr	r2, [r6, #1144]
+	lsl	r0, r8, #7
 	bl	FlashBootVendorRead
 	cmp	r0, #0
-	bne	.L5041
-	ldr	r3, [r10, #1144]
-	ldr	r0, .L5050+8
-	add	r2, r3, #61440
-	ldr	r1, [r3]
+	bne	.L4909
+	ldr	r1, [r6, #48]
+	mov	r0, r10
+	add	r2, r1, #61440
+	ldr	r3, [r1, #4]
 	ldr	r2, [r2, #4092]
-	ldr	r3, [r3, #4]
+	ldr	r1, [r1]
 	bl	printk
-	ldr	r5, [r10, #1144]
+	ldr	r5, [r6, #48]
 	ldr	r3, [r5]
 	cmp	r3, r9
-	bne	.L5042
+	bne	.L4905
 	add	r2, r5, #61440
 	ldr	r3, [r5, #4]
-	ldr	r1, [r2, #4092]
-	cmp	r4, r3
-	movcs	r2, #0
-	movcc	r2, #1
-	cmp	r1, r3
-	movne	r2, #0
+	ldr	r2, [r2, #4092]
+	cmp	r3, r4
+	sub	r2, r2, r3
+	clz	r2, r2
+	lsr	r2, r2, #5
+	movls	r2, #0
 	cmp	r2, #0
-	movne	r8, r7
+	movne	r7, r8
 	movne	r4, r3
-.L5042:
-	cmp	r7, #1
-	movne	r7, #1
-	bne	.L5043
-.L5049:
+.L4905:
+	add	r8, r8, #1
+	cmp	r8, #2
+	bne	.L4906
 	cmp	r4, #0
-	beq	.L5044
-	mov	r0, r8, asl #7
-	mov	r1, #128
+	beq	.L4907
 	mov	r2, r5
+	mov	r1, #128
+	lsl	r0, r7, #7
 	bl	FlashBootVendorRead
-	cmp	r0, #0
-	bne	.L5041
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L5044:
-	mov	r0, r5
-	mov	r1, r4
+	adds	r0, r0, #0
+	movne	r0, #1
+	rsb	r0, r0, #0
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L4907:
 	mov	r2, #65536
+	mov	r1, r4
+	mov	r0, r5
 	bl	memset
-	ldr	r3, .L5050+4
-	str	r7, [r5, #4]
+	mov	r3, #1
+	add	r2, r5, #61440
+	str	r3, [r5, #4]
 	mov	r0, r4
-	str	r3, [r5]
-	add	r3, r5, #61440
-	str	r7, [r3, #4092]
-	ldr	r3, .L5050+12
+	str	r9, [r5]
+	str	r3, [r2, #4092]
+	ldr	r3, .L4913+12
 	strh	r4, [r5, #12]	@ movhi
 	strh	r3, [r5, #14]	@ movhi
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L5041:
-	ldr	r0, [r6, #1144]
-	bl	kfree
-	mov	r3, #0
-	mvn	r0, #0
-	str	r3, [r6, #1144]
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L5045:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L4908:
 	mvn	r0, #11
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
-.L5051:
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L4909:
+	mvn	r0, #0
+	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
+.L4914:
 	.align	2
-.L5050:
+.L4913:
 	.word	.LANCHOR3
+	.word	.LC324
 	.word	1380668996
-	.word	.LC337
 	.word	-1032
 	.fnend
 	.size	rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init
 	.align	2
 	.global	rk_ftl_vendor_read
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_vendor_read, %function
 rk_ftl_vendor_read:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r3, r4, r5, lr}
-	.save {r3, r4, r5, lr}
-	ldr	r3, .L5059
-	ldr	ip, [r3, #1144]
+	ldr	r3, .L4925
+	ldr	ip, [r3, #48]
 	cmp	ip, #0
-	ldrneh	r4, [ip, #10]
-	movne	r3, #0
-	beq	.L5057
-.L5054:
+	beq	.L4920
+	push	{r4, r5, r6, lr}
+	.save {r4, r5, r6, lr}
+	mov	r3, #0
+	ldrh	r4, [ip, #10]
+.L4917:
 	cmp	r3, r4
-	bcs	.L5057
-	add	lr, ip, r3, asl #3
+	bcc	.L4919
+	mvn	r0, #0
+	pop	{r4, r5, r6, pc}
+.L4919:
+	add	lr, ip, r3, lsl #3
 	ldrh	r5, [lr, #16]
 	cmp	r5, r0
-	bne	.L5055
-	ldrh	r3, [lr, #20]
+	bne	.L4918
+	ldrh	r4, [lr, #20]
 	mov	r0, r1
 	ldrh	r1, [lr, #18]
-	mov	r4, r2
-	cmp	r2, r3
+	cmp	r4, r2
+	movcs	r4, r2
 	add	r1, r1, #1024
-	movcs	r4, r3
-	add	r1, ip, r1
 	mov	r2, r4
+	add	r1, ip, r1
 	bl	memcpy
 	mov	r0, r4
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L5055:
+	pop	{r4, r5, r6, pc}
+.L4918:
 	add	r3, r3, #1
-	b	.L5054
-.L5057:
+	b	.L4917
+.L4920:
 	mvn	r0, #0
-	ldmfd	sp!, {r3, r4, r5, pc}
-.L5060:
+	bx	lr
+.L4926:
 	.align	2
-.L5059:
+.L4925:
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_ftl_vendor_read, .-rk_ftl_vendor_read
 	.align	2
 	.global	rk_ftl_vendor_write
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_vendor_write, %function
 rk_ftl_vendor_write:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 24
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+	ldr	r3, .L4948
+	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
 	.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
-	mov	r9, r2
-	ldr	r2, .L5084
 	.pad #28
 	sub	sp, sp, #28
-	ldr	r4, [r2, #1144]
+	ldr	r4, [r3, #48]
 	cmp	r4, #0
-	beq	.L5076
-	mov	r3, r1
-	add	r7, r9, #63
-	ldrh	r1, [r4, #8]
-	bic	r7, r7, #63
+	beq	.L4942
+	mov	r8, r2
 	ldrh	r2, [r4, #10]
-	mov	ip, r0
-	mov	r6, #0
-	str	r1, [sp, #4]
-.L5063:
-	cmp	r6, r2
-	bcs	.L5082
-	add	r5, r4, r6, asl #3
-	ldrh	r1, [r5, #16]
-	cmp	r1, ip
-	bne	.L5064
-	ldrh	r1, [r5, #20]
-	add	fp, r4, #1024
-	add	r1, r1, #63
-	bic	r1, r1, #63
-	str	r1, [sp, #8]
-	cmp	r9, r1
-	bls	.L5065
+	add	r6, r8, #63
+	ldrh	r3, [r4, #8]
+	mov	fp, r1
+	bic	r6, r6, #63
+	mov	r7, #0
+	str	r3, [sp, #4]
+.L4929:
+	cmp	r7, r2
+	bcc	.L4937
 	ldrh	r1, [r4, #14]
-	cmp	r1, r7
-	subcs	r2, r2, #1
-	strcs	r2, [sp, #12]
-	ldrcsh	r8, [r5, #18]
-	bcc	.L5076
-.L5066:
-	ldr	r2, [sp, #12]
-	add	r5, r5, #8
-	cmp	r6, r2
-	bcs	.L5083
-	ldrh	r10, [r5, #20]
-	add	r0, fp, r8
-	ldrh	r2, [r5, #16]
-	add	r6, r6, #1
-	ldrh	r1, [r5, #18]
-	strh	r10, [r5, #12]	@ movhi
-	add	r10, r10, #63
-	bic	r10, r10, #63
-	strh	r2, [r5, #8]	@ movhi
-	strh	r8, [r5, #10]	@ movhi
-	add	r1, fp, r1
-	mov	r2, r10
-	str	r3, [sp, #20]
-	str	ip, [sp, #16]
-	bl	memcpy
-	add	r8, r8, r10
-	ldr	r3, [sp, #20]
-	ldr	ip, [sp, #16]
-	b	.L5066
-.L5083:
-	add	r6, r4, r6, asl #3
-	uxth	r8, r8
-	add	r0, fp, r8
-	mov	r1, r3
-	strh	r8, [r6, #18]	@ movhi
-	mov	r2, r9
-	strh	ip, [r6, #16]	@ movhi
-	uxth	r7, r7
-	strh	r9, [r6, #20]	@ movhi
-	add	r8, r8, r7
-	bl	memcpy
-	ldrh	r5, [r4, #14]
-	strh	r8, [r4, #12]	@ movhi
-	ldr	r3, [sp, #8]
-	add	r5, r3, r5
-	rsb	r7, r7, r5
-	strh	r7, [r4, #14]	@ movhi
-	b	.L5081
-.L5065:
-	ldrh	r0, [r5, #18]
-	mov	r1, r3
-	mov	r2, r9
-	add	r0, fp, r0
-	bl	memcpy
-	strh	r9, [r5, #20]	@ movhi
-	b	.L5081
-.L5064:
-	add	r6, r6, #1
-	b	.L5063
-.L5082:
-	ldrh	r1, [r4, #14]
-	cmp	r1, r7
-	bcc	.L5076
-	add	r2, r4, r2, asl #3
-	uxth	r7, r7
-	rsb	r1, r7, r1
-	strh	ip, [r2, #16]	@ movhi
-	ldrh	r0, [r4, #12]
-	strh	r9, [r2, #20]	@ movhi
-	strh	r0, [r2, #18]	@ movhi
-	add	r0, r7, r0
-	strh	r1, [r4, #14]	@ movhi
-	mov	r1, r3
-	strh	r0, [r4, #12]	@ movhi
-	ldrh	r0, [r2, #18]
-	mov	r2, r9
+	cmp	r6, r1
+	bhi	.L4942
+	add	r3, r4, r2, lsl #3
+	uxth	r6, r6
+	strh	r0, [r3, #16]	@ movhi
+	ldrh	r2, [r4, #12]
+	strh	r8, [r3, #20]	@ movhi
+	strh	r2, [r3, #18]	@ movhi
+	add	r2, r2, r6
+	sub	r6, r1, r6
+	strh	r2, [r4, #12]	@ movhi
+	strh	r6, [r4, #14]	@ movhi
+	mov	r2, r8
+	ldrh	r0, [r3, #18]
+	mov	r1, fp
 	add	r0, r0, #1024
 	add	r0, r4, r0
 	bl	memcpy
 	ldrh	r3, [r4, #10]
 	add	r3, r3, #1
 	strh	r3, [r4, #10]	@ movhi
-.L5081:
+	b	.L4947
+.L4937:
+	add	r5, r4, r7, lsl #3
+	ldrh	r3, [r5, #16]
+	cmp	r3, r0
+	str	r3, [sp, #8]
+	bne	.L4930
+	ldrh	r1, [r5, #20]
+	add	r3, r4, #1024
+	add	r1, r1, #63
+	bic	r1, r1, #63
+	cmp	r8, r1
+	str	r1, [sp, #12]
+	bls	.L4931
+	ldrh	r1, [r4, #14]
+	cmp	r6, r1
+	subls	r2, r2, #1
+	ldrhls	r10, [r5, #18]
+	strls	r2, [sp, #16]
+	bls	.L4932
+.L4942:
+	mvn	r0, #0
+	b	.L4927
+.L4933:
+	ldrh	r9, [r5, #20]
+	add	r0, r3, r10
+	ldrh	r2, [r5, #16]
+	add	r7, r7, #1
+	ldrh	r1, [r5, #18]
+	strh	r9, [r5, #12]	@ movhi
+	add	r9, r9, #63
+	bic	r9, r9, #63
+	strh	r2, [r5, #8]	@ movhi
+	strh	r10, [r5, #10]	@ movhi
+	add	r1, r3, r1
+	mov	r2, r9
+	str	r3, [sp, #20]
+	bl	memcpy
+	ldr	r3, [sp, #20]
+	add	r10, r10, r9
+.L4932:
+	ldr	r2, [sp, #16]
+	add	r5, r5, #8
+	cmp	r7, r2
+	bcc	.L4933
+	ldrh	r2, [sp, #8]
+	add	r7, r4, r7, lsl #3
+	uxth	r5, r10
+	uxtah	r0, r3, r10
+	strh	r8, [r7, #20]	@ movhi
+	strh	r2, [r7, #16]	@ movhi
+	mov	r1, fp
+	strh	r5, [r7, #18]	@ movhi
+	mov	r2, r8
+	bl	memcpy
+	uxth	r3, r6
+	ldrh	r6, [r4, #14]
+	add	r5, r5, r3
+	sub	r6, r6, r3
+	ldr	r3, [sp, #12]
+	strh	r5, [r4, #12]	@ movhi
+	add	r6, r6, r3
+	strh	r6, [r4, #14]	@ movhi
+.L4947:
 	ldr	r3, [r4, #4]
 	add	r2, r4, #61440
 	mov	r1, #128
@@ -30869,112 +30787,121 @@
 	movhi	r3, #0
 	strh	r3, [r4, #8]	@ movhi
 	ldr	r3, [sp, #4]
-	mov	r0, r3, asl #7
+	lsl	r0, r3, #7
 	bl	FlashBootVendorWrite
 	mov	r0, #0
-	b	.L5062
-.L5076:
-	mvn	r0, #0
-.L5062:
+.L4927:
 	add	sp, sp, #28
 	@ sp needed
-	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L5085:
+	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L4931:
+	ldrh	r0, [r5, #18]
+	mov	r2, r8
+	mov	r1, fp
+	add	r0, r3, r0
+	bl	memcpy
+	strh	r8, [r5, #20]	@ movhi
+	b	.L4947
+.L4930:
+	add	r7, r7, #1
+	b	.L4929
+.L4949:
 	.align	2
-.L5084:
+.L4948:
 	.word	.LANCHOR3
 	.fnend
 	.size	rk_ftl_vendor_write, .-rk_ftl_vendor_write
 	.align	2
 	.global	rk_ftl_vendor_storage_ioctl
+	.syntax unified
+	.arm
+	.fpu softvfp
 	.type	rk_ftl_vendor_storage_ioctl, %function
 rk_ftl_vendor_storage_ioctl:
 	.fnstart
 	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 0, uses_anonymous_args = 0
-	stmfd	sp!, {r4, r5, r6, lr}
+	push	{r4, r5, r6, lr}
 	.save {r4, r5, r6, lr}
-	mov	r0, #4096
+	mov	r0, #9216
 	mov	r5, r2
 	mov	r6, r1
 	bl	ftl_malloc
 	subs	r4, r0, #0
 	mvneq	r5, #0
-	beq	.L5087
-	ldr	r3, .L5103
+	beq	.L4950
+	ldr	r3, .L4966
 	cmp	r6, r3
-	beq	.L5089
+	beq	.L4953
 	add	r3, r3, #1
 	cmp	r6, r3
-	beq	.L5090
-	b	.L5101
-.L5089:
-	mov	r1, r5
+	beq	.L4954
+.L4964:
+	mvn	r5, #13
+	b	.L4952
+.L4953:
 	mov	r2, #8
+	mov	r1, r5
 	bl	rk_copy_from_user
 	cmp	r0, #0
-	bne	.L5101
+	bne	.L4964
 	ldr	r2, [r4]
-	ldr	r3, .L5103+4
+	ldr	r3, .L4966+4
 	cmp	r2, r3
-	beq	.L5092
-.L5093:
+	beq	.L4956
+.L4957:
 	mvn	r5, #0
-	b	.L5088
-.L5092:
-	ldrh	r0, [r4, #4]
-	add	r1, r4, #8
+.L4952:
+	mov	r0, r4
+	bl	kfree
+.L4950:
+	mov	r0, r5
+	pop	{r4, r5, r6, pc}
+.L4956:
 	ldrh	r2, [r4, #6]
+	add	r1, r4, #8
+	ldrh	r0, [r4, #4]
 	bl	rk_ftl_vendor_read
 	cmn	r0, #1
-	beq	.L5093
+	beq	.L4957
 	uxth	r2, r0
 	strh	r0, [r4, #6]	@ movhi
 	mov	r1, r4
 	mov	r0, r5
 	add	r2, r2, #8
 	bl	rk_copy_to_user
-	cmp	r0, #0
-	moveq	r5, #0
-	mvnne	r5, #13
-	b	.L5088
-.L5090:
-	mov	r1, r5
+	subs	r5, r0, #0
+	beq	.L4952
+	b	.L4964
+.L4954:
 	mov	r2, #8
+	mov	r1, r5
 	bl	rk_copy_from_user
 	cmp	r0, #0
-	bne	.L5101
+	bne	.L4964
 	ldr	r2, [r4]
-	ldr	r3, .L5103+4
+	ldr	r3, .L4966+4
 	cmp	r2, r3
-	bne	.L5093
+	bne	.L4957
 	ldrh	r2, [r4, #6]
 	movw	r3, #4087
 	cmp	r2, r3
-	bhi	.L5093
-	mov	r0, r4
-	mov	r1, r5
+	bhi	.L4957
 	add	r2, r2, #8
+	mov	r1, r5
+	mov	r0, r4
 	bl	rk_copy_from_user
 	cmp	r0, #0
-	bne	.L5101
-	ldrh	r0, [r4, #4]
-	add	r1, r4, #8
+	bne	.L4964
 	ldrh	r2, [r4, #6]
+	add	r1, r4, #8
+	ldrh	r0, [r4, #4]
 	bl	rk_ftl_vendor_write
 	mov	r5, r0
-	b	.L5088
-.L5101:
-	mvn	r5, #13
-.L5088:
-	mov	r0, r4
-	bl	kfree
-.L5087:
-	mov	r0, r5
-	ldmfd	sp!, {r4, r5, r6, pc}
-.L5104:
+	b	.L4952
+.L4967:
 	.align	2
-.L5103:
+.L4966:
 	.word	1074034177
 	.word	1448232273
 	.fnend
@@ -30988,6 +30915,8 @@
 	.global	gSnSectorData
 	.global	gpDrmKeyInfo
 	.global	gpBootConfig
+	.global	ftl_dma32_buffer_size
+	.global	ftl_dma32_buffer
 	.global	gLoaderBootInfo
 	.global	RK29_NANDC1_REG_BASE
 	.global	RK29_NANDC_REG_BASE
@@ -31158,28 +31087,16 @@
 	.global	g_flash_spare_buffer
 	.global	g_flash_page_buffer
 	.section	.rodata
-	.align	3
-.LANCHOR1 = . + 0
-	.type	__func__.39677, %object
-	.size	__func__.39677, 18
-__func__.39677:
+	.align	2
+	.set	.LANCHOR1,. + 0
+	.type	__func__.42945, %object
+	.size	__func__.42945, 18
+__func__.42945:
 	.ascii	"_list_remove_node\000"
-	.space	2
-	.type	__func__.39702, %object
-	.size	__func__.39702, 23
-__func__.39702:
+	.type	__func__.42970, %object
+	.size	__func__.42970, 23
+__func__.42970:
 	.ascii	"_list_update_data_list\000"
-	.space	1
-	.type	__func__.20210, %object
-	.size	__func__.20210, 22
-__func__.20210:
-	.ascii	"nand_flash_print_info\000"
-	.space	2
-	.type	__func__.20296, %object
-	.size	__func__.20296, 11
-__func__.20296:
-	.ascii	"nandc_init\000"
-	.space	1
 	.type	toshiba_A19ref_value, %object
 	.size	toshiba_A19ref_value, 45
 toshiba_A19ref_value:
@@ -31228,7 +31145,6 @@
 	.byte	126
 	.byte	124
 	.byte	0
-	.space	3
 	.type	toshiba_15ref_value, %object
 	.size	toshiba_15ref_value, 95
 toshiba_15ref_value:
@@ -31327,7 +31243,6 @@
 	.byte	116
 	.byte	114
 	.byte	0
-	.space	1
 	.type	toshiba_ref_value, %object
 	.size	toshiba_ref_value, 8
 toshiba_ref_value:
@@ -31339,15 +31254,18 @@
 	.byte	8
 	.byte	12
 	.byte	112
-	.type	__func__.19683, %object
-	.size	__func__.19683, 28
-__func__.19683:
+	.type	__func__.23463, %object
+	.size	__func__.23463, 22
+__func__.23463:
+	.ascii	"nand_flash_print_info\000"
+	.type	__func__.22936, %object
+	.size	__func__.22936, 28
+__func__.22936:
 	.ascii	"flash_wait_device_ready_raw\000"
-	.type	__func__.19747, %object
-	.size	__func__.19747, 22
-__func__.19747:
+	.type	__func__.23000, %object
+	.size	__func__.23000, 22
+__func__.23000:
 	.ascii	"flash_start_page_read\000"
-	.space	2
 	.type	toshiba_3D_tlc_value, %object
 	.size	toshiba_3D_tlc_value, 399
 toshiba_3D_tlc_value:
@@ -31750,7 +31668,6 @@
 	.byte	12
 	.byte	12
 	.byte	14
-	.space	1
 	.type	toshiba_3D_slc_value, %object
 	.size	toshiba_3D_slc_value, 11
 toshiba_3D_slc_value:
@@ -31765,7 +31682,6 @@
 	.byte	40
 	.byte	-56
 	.byte	56
-	.space	1
 	.type	ymtc_3D_tlc_value, %object
 	.size	ymtc_3D_tlc_value, 357
 ymtc_3D_tlc_value:
@@ -32126,7 +32042,6 @@
 	.byte	12
 	.byte	12
 	.byte	14
-	.space	3
 	.type	ymtc_3D_slc_value, %object
 	.size	ymtc_3D_slc_value, 10
 ymtc_3D_slc_value:
@@ -32140,22 +32055,18 @@
 	.byte	40
 	.byte	-12
 	.byte	56
-	.space	2
-	.type	__func__.19772, %object
-	.size	__func__.19772, 23
-__func__.19772:
+	.type	__func__.23025, %object
+	.size	__func__.23025, 23
+__func__.23025:
 	.ascii	"flash_start_plane_read\000"
-	.space	1
-	.type	__func__.19658, %object
-	.size	__func__.19658, 26
-__func__.19658:
+	.type	__func__.22911, %object
+	.size	__func__.22911, 26
+__func__.22911:
 	.ascii	"flash_erase_duplane_block\000"
-	.space	2
-	.type	__func__.19669, %object
-	.size	__func__.19669, 21
-__func__.19669:
+	.type	__func__.22922, %object
+	.size	__func__.22922, 21
+__func__.22922:
 	.ascii	"flash_erase_block_en\000"
-	.space	3
 	.type	random_seed, %object
 	.size	random_seed, 256
 random_seed:
@@ -32287,109 +32198,98 @@
 	.short	28406
 	.short	17598
 	.short	28087
-	.type	__func__.20475, %object
-	.size	__func__.20475, 13
-__func__.20475:
+	.type	__func__.23728, %object
+	.size	__func__.23728, 13
+__func__.23728:
 	.ascii	"buf_add_tail\000"
-	.space	3
-	.type	__func__.20488, %object
-	.size	__func__.20488, 10
-__func__.20488:
+	.type	__func__.23741, %object
+	.size	__func__.23741, 10
+__func__.23741:
 	.ascii	"buf_alloc\000"
-	.space	2
-	.type	__func__.20502, %object
-	.size	__func__.20502, 16
-__func__.20502:
+	.type	__func__.23755, %object
+	.size	__func__.23755, 16
+__func__.23755:
 	.ascii	"buf_remove_free\000"
-	.space	4
+	.space	1
 	.type	zftl_debug_proc_fops, %object
-	.size	zftl_debug_proc_fops, 160
+	.size	zftl_debug_proc_fops, 44
 zftl_debug_proc_fops:
-	.word	0
-	.word	seq_lseek
-	.word	seq_read
-	.word	zftl_debug_proc_write
-	.space	36
-	.word	zftl_debug_proc_open
 	.space	4
+	.word	zftl_debug_proc_open
+	.word	seq_read
+	.space	4
+	.word	zftl_debug_proc_write
+	.word	seq_lseek
 	.word	single_release
-	.space	96
-	.type	__func__.39210, %object
-	.size	__func__.39210, 12
-__func__.39210:
+	.space	16
+	.type	__func__.42478, %object
+	.size	__func__.42478, 12
+__func__.42478:
 	.ascii	"gc_add_sblk\000"
-	.type	__func__.39302, %object
-	.size	__func__.39302, 19
-__func__.39302:
+	.type	__func__.42570, %object
+	.size	__func__.42570, 19
+__func__.42570:
 	.ascii	"gc_write_completed\000"
-	.space	1
-	.type	__func__.39908, %object
-	.size	__func__.39908, 18
-__func__.39908:
+	.type	__func__.43176, %object
+	.size	__func__.43176, 18
+__func__.43176:
 	.ascii	"ftl_alloc_sys_blk\000"
-	.space	2
-	.type	__func__.39918, %object
-	.size	__func__.39918, 17
-__func__.39918:
+	.type	__func__.43186, %object
+	.size	__func__.43186, 17
+__func__.43186:
 	.ascii	"ftl_free_sys_blk\000"
-	.space	3
-	.type	__func__.40039, %object
-	.size	__func__.40039, 23
-__func__.40039:
+	.type	__func__.43307, %object
+	.size	__func__.43307, 23
+__func__.43307:
 	.ascii	"ftl_get_ppa_from_index\000"
-	.space	1
-	.type	__func__.40079, %object
-	.size	__func__.40079, 22
-__func__.40079:
+	.type	__func__.43347, %object
+	.size	__func__.43347, 22
+__func__.43347:
 	.ascii	"ftl_get_new_free_page\000"
-	.space	2
-	.type	__func__.40090, %object
-	.size	__func__.40090, 22
-__func__.40090:
+	.type	__func__.43358, %object
+	.size	__func__.43358, 22
+__func__.43358:
 	.ascii	"ftl_ext_alloc_new_blk\000"
-	.space	2
-	.type	__func__.39359, %object
-	.size	__func__.39359, 16
-__func__.39359:
+	.type	__func__.42627, %object
+	.size	__func__.42627, 16
+__func__.42627:
 	.ascii	"gc_free_src_blk\000"
-	.type	__func__.38953, %object
-	.size	__func__.38953, 14
-__func__.38953:
+	.type	__func__.42221, %object
+	.size	__func__.42221, 14
+__func__.42221:
 	.ascii	"ftl_write_buf\000"
-	.space	2
-	.type	__func__.38998, %object
-	.size	__func__.38998, 18
-__func__.38998:
+	.type	__func__.42266, %object
+	.size	__func__.42266, 18
+__func__.42266:
 	.ascii	"zftl_add_read_buf\000"
-	.space	2
-	.type	__func__.40512, %object
-	.size	__func__.40512, 21
-__func__.40512:
+	.type	__func__.43780, %object
+	.size	__func__.43780, 21
+__func__.43780:
 	.ascii	"pm_select_ram_region\000"
-	.space	3
-	.type	__func__.20200, %object
-	.size	__func__.20200, 20
-__func__.20200:
+	.type	__func__.23453, %object
+	.size	__func__.23453, 20
+__func__.23453:
 	.ascii	"flash_die_info_init\000"
-	.type	__func__.38885, %object
-	.size	__func__.38885, 17
-__func__.38885:
+	.type	__func__.42153, %object
+	.size	__func__.42153, 17
+__func__.42153:
 	.ascii	"lpa_rebuild_hash\000"
-	.space	3
-	.type	__func__.39777, %object
-	.size	__func__.39777, 20
-__func__.39777:
+	.type	__func__.43045, %object
+	.size	__func__.43045, 20
+__func__.43045:
 	.ascii	"zftl_sblk_list_init\000"
-	.type	__func__.40444, %object
-	.size	__func__.40444, 13
-__func__.40444:
+	.type	__func__.43712, %object
+	.size	__func__.43712, 13
+__func__.43712:
 	.ascii	"pm_free_sblk\000"
-	.space	3
-	.type	__func__.20538, %object
-	.size	__func__.20538, 21
-__func__.20538:
+	.type	__func__.23791, %object
+	.size	__func__.23791, 21
+__func__.23791:
 	.ascii	"flash_info_data_init\000"
-	.space	3
+	.type	__func__.23549, %object
+	.size	__func__.23549, 11
+__func__.23549:
+	.ascii	"nandc_init\000"
 	.type	samsung_14nm_slc_rr, %object
 	.size	samsung_14nm_slc_rr, 26
 samsung_14nm_slc_rr:
@@ -32419,7 +32319,6 @@
 	.byte	-125
 	.byte	-115
 	.byte	100
-	.space	2
 	.type	samsung_14nm_mlc_rr, %object
 	.size	samsung_14nm_mlc_rr, 104
 samsung_14nm_mlc_rr:
@@ -32527,897 +32426,157 @@
 	.byte	18
 	.byte	9
 	.byte	8
-	.type	__func__.19581, %object
-	.size	__func__.19581, 19
-__func__.19581:
+	.type	__func__.22834, %object
+	.size	__func__.22834, 19
+__func__.22834:
 	.ascii	"flash_read_page_en\000"
-	.space	1
-	.type	__func__.19707, %object
-	.size	__func__.19707, 26
-__func__.19707:
+	.type	__func__.22960, %object
+	.size	__func__.22960, 26
+__func__.22960:
 	.ascii	"flash_start_tlc_page_prog\000"
-	.space	2
-	.type	__func__.19718, %object
-	.size	__func__.19718, 29
-__func__.19718:
+	.type	__func__.22971, %object
+	.size	__func__.22971, 29
+__func__.22971:
 	.ascii	"flash_start_3d_mlc_page_prog\000"
-	.space	3
-	.type	__func__.19736, %object
-	.size	__func__.19736, 22
-__func__.19736:
+	.type	__func__.22989, %object
+	.size	__func__.22989, 22
+__func__.22989:
 	.ascii	"flash_start_page_prog\000"
-	.space	2
-	.type	__func__.19760, %object
-	.size	__func__.19760, 31
-__func__.19760:
+	.type	__func__.23013, %object
+	.size	__func__.23013, 31
+__func__.23013:
 	.ascii	"flash_complete_plane_page_read\000"
-	.space	1
-	.type	__func__.19785, %object
-	.size	__func__.19785, 25
-__func__.19785:
+	.type	__func__.23038, %object
+	.size	__func__.23038, 25
+__func__.23038:
 	.ascii	"flash_complete_page_read\000"
-	.space	3
-	.type	__func__.40277, %object
-	.size	__func__.40277, 31
-__func__.40277:
+	.type	__func__.43545, %object
+	.size	__func__.43545, 31
+__func__.43545:
 	.ascii	"queue_wait_first_req_completed\000"
-	.space	1
-	.type	__func__.40331, %object
-	.size	__func__.40331, 15
-__func__.40331:
+	.type	__func__.43599, %object
+	.size	__func__.43599, 15
+__func__.43599:
 	.ascii	"sblk_prog_page\000"
-	.space	1
-	.type	__func__.40358, %object
-	.size	__func__.40358, 15
-__func__.40358:
+	.type	__func__.43626, %object
+	.size	__func__.43626, 15
+__func__.43626:
 	.ascii	"sblk_read_page\000"
-	.space	1
-	.type	__func__.39257, %object
-	.size	__func__.39257, 21
-__func__.39257:
+	.type	__func__.42525, %object
+	.size	__func__.42525, 21
+__func__.42525:
 	.ascii	"gc_check_data_one_wl\000"
-	.space	3
-	.type	__func__.19642, %object
-	.size	__func__.19642, 19
-__func__.19642:
+	.type	__func__.22895, %object
+	.size	__func__.22895, 19
+__func__.22895:
 	.ascii	"flash_prog_page_en\000"
-	.space	1
-	.type	__func__.40154, %object
-	.size	__func__.40154, 14
-__func__.40154:
+	.type	__func__.43422, %object
+	.size	__func__.43422, 14
+__func__.43422:
 	.ascii	"ftl_prog_page\000"
-	.space	2
-	.type	__func__.39811, %object
-	.size	__func__.39811, 15
-__func__.39811:
+	.type	__func__.43079, %object
+	.size	__func__.43079, 15
+__func__.43079:
 	.ascii	"ftl_info_flush\000"
-	.space	1
-	.type	__func__.40116, %object
-	.size	__func__.40116, 19
-__func__.40116:
+	.type	__func__.43384, %object
+	.size	__func__.43384, 19
+__func__.43384:
 	.ascii	"ftl_ext_info_flush\000"
-	.space	1
-	.type	__func__.40128, %object
-	.size	__func__.40128, 18
-__func__.40128:
+	.type	__func__.43396, %object
+	.size	__func__.43396, 18
+__func__.43396:
 	.ascii	"ftl_ext_info_init\000"
-	.space	2
-	.type	__func__.39866, %object
-	.size	__func__.39866, 15
-__func__.39866:
+	.type	__func__.43134, %object
+	.size	__func__.43134, 15
+__func__.43134:
 	.ascii	"ftl_alloc_sblk\000"
-	.space	1
-	.type	__func__.40484, %object
-	.size	__func__.40484, 17
-__func__.40484:
+	.type	__func__.43752, %object
+	.size	__func__.43752, 17
+__func__.43752:
 	.ascii	"pm_alloc_new_blk\000"
-	.space	3
-	.type	__func__.40494, %object
-	.size	__func__.40494, 14
-__func__.40494:
+	.type	__func__.43762, %object
+	.size	__func__.43762, 14
+__func__.43762:
 	.ascii	"pm_write_page\000"
-	.space	2
-	.type	__func__.20560, %object
-	.size	__func__.20560, 17
-__func__.20560:
+	.type	__func__.23813, %object
+	.size	__func__.23813, 17
+__func__.23813:
 	.ascii	"flash_info_flush\000"
-	.space	3
-	.type	__func__.20523, %object
-	.size	__func__.20523, 20
-__func__.20523:
+	.type	__func__.23776, %object
+	.size	__func__.23776, 20
+__func__.23776:
 	.ascii	"flash_info_blk_init\000"
-	.type	__func__.20255, %object
-	.size	__func__.20255, 16
-__func__.20255:
+	.type	__func__.23508, %object
+	.size	__func__.23508, 16
+__func__.23508:
 	.ascii	"nand_flash_init\000"
-	.type	__func__.39981, %object
-	.size	__func__.39981, 16
-__func__.39981:
+	.type	__func__.43249, %object
+	.size	__func__.43249, 16
+__func__.43249:
 	.ascii	"ftl_sysblk_dump\000"
-	.type	__func__.40006, %object
-	.size	__func__.40006, 23
-__func__.40006:
+	.type	__func__.43274, %object
+	.size	__func__.43274, 23
+__func__.43274:
 	.ascii	"ftl_open_sblk_recovery\000"
-	.space	1
-	.type	__func__.40428, %object
-	.size	__func__.40428, 16
-__func__.40428:
+	.type	__func__.43696, %object
+	.size	__func__.43696, 16
+__func__.43696:
 	.ascii	"load_l2p_region\000"
-	.type	__func__.40468, %object
-	.size	__func__.40468, 6
-__func__.40468:
+	.type	__func__.43736, %object
+	.size	__func__.43736, 6
+__func__.43736:
 	.ascii	"pm_gc\000"
-	.space	2
-	.type	__func__.39200, %object
-	.size	__func__.39200, 12
-__func__.39200:
+	.type	__func__.42468, %object
+	.size	__func__.42468, 12
+__func__.42468:
 	.ascii	"gc_recovery\000"
-	.type	__func__.39289, %object
-	.size	__func__.39289, 22
-__func__.39289:
+	.type	__func__.42557, %object
+	.size	__func__.42557, 22
+__func__.42557:
 	.ascii	"gc_update_l2p_map_new\000"
-	.space	2
-	.type	__func__.39403, %object
-	.size	__func__.39403, 16
-__func__.39403:
+	.type	__func__.42671, %object
+	.size	__func__.42671, 16
+__func__.42671:
 	.ascii	"gc_scan_src_blk\000"
-	.type	__func__.39464, %object
-	.size	__func__.39464, 20
-__func__.39464:
+	.type	__func__.42732, %object
+	.size	__func__.42732, 20
+__func__.42732:
 	.ascii	"gc_scan_static_data\000"
-	.type	__func__.39527, %object
-	.size	__func__.39527, 18
-__func__.39527:
+	.type	__func__.42795, %object
+	.size	__func__.42795, 18
+__func__.42795:
 	.ascii	"gc_block_vpn_scan\000"
-	.space	2
-	.type	__func__.39957, %object
-	.size	__func__.39957, 14
-__func__.39957:
+	.type	__func__.43225, %object
+	.size	__func__.43225, 14
+__func__.43225:
 	.ascii	"ftl_sblk_dump\000"
-	.space	2
-	.type	__func__.39031, %object
-	.size	__func__.39031, 10
-__func__.39031:
+	.type	__func__.42299, %object
+	.size	__func__.42299, 10
+__func__.42299:
 	.ascii	"zftl_read\000"
-	.space	2
-	.type	__func__.40060, %object
-	.size	__func__.40060, 19
-__func__.40060:
+	.type	__func__.43328, %object
+	.size	__func__.43328, 19
+__func__.43328:
 	.ascii	"ftl_update_l2p_map\000"
-	.space	1
-	.type	__func__.38935, %object
-	.size	__func__.38935, 17
-__func__.38935:
+	.type	__func__.42203, %object
+	.size	__func__.42203, 17
+__func__.42203:
 	.ascii	"ftl_write_commit\000"
-	.space	3
-	.type	__func__.39332, %object
-	.size	__func__.39332, 16
-__func__.39332:
+	.type	__func__.42600, %object
+	.size	__func__.42600, 16
+__func__.42600:
 	.ascii	"gc_do_copy_back\000"
-	.type	__func__.39582, %object
-	.size	__func__.39582, 11
-__func__.39582:
+	.type	__func__.42850, %object
+	.size	__func__.42850, 11
+__func__.42850:
 	.ascii	"zftl_do_gc\000"
-	.space	1
-	.type	__func__.39063, %object
-	.size	__func__.39063, 13
-__func__.39063:
+	.type	__func__.42331, %object
+	.size	__func__.42331, 13
+__func__.42331:
 	.ascii	"_ftl_discard\000"
-	.section	.rodata.str1.1,"aMS",%progbits,1
-.LC0:
-	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
-.LC1:
-	.ascii	"%s\012\000"
-.LC2:
-	.ascii	"FTL version: 6.0.24 20210315\000"
-.LC3:
-	.ascii	"zftl_debug:0x%x\012\000"
-.LC4:
-	.ascii	"...%s enter...\012\000"
-.LC5:
-	.ascii	"No.0 FLASH ID: %x %x %x %x %x %x\012\000"
-.LC6:
-	.ascii	"DiePerChip: %x\012\000"
-.LC7:
-	.ascii	"SectPerPage: %x\012\000"
-.LC8:
-	.ascii	"PagePerBlk: %x\012\000"
-.LC9:
-	.ascii	"Cell: %x\012\000"
-.LC10:
-	.ascii	"PlanePerDie: %x\012\000"
-.LC11:
-	.ascii	"BlkPerPlane: %x\012\000"
-.LC12:
-	.ascii	"die gap: %x\012\000"
-.LC13:
-	.ascii	"lsbMode: %x\012\000"
-.LC14:
-	.ascii	"ReadRetryMode: %x\012\000"
-.LC15:
-	.ascii	"ecc: %x\012\000"
-.LC16:
-	.ascii	"idb ecc: %x\012\000"
-.LC17:
-	.ascii	"OptMode: %x\012\000"
-.LC18:
-	.ascii	"g_nand_max_die: %x\012\000"
-.LC19:
-	.ascii	"Cache read enable: %x\012\000"
-.LC20:
-	.ascii	"Cache random read enable: %x\012\000"
-.LC21:
-	.ascii	"Cache prog enable: %x\012\000"
-.LC22:
-	.ascii	"multi read enable: %x\012\000"
-.LC23:
-	.ascii	"multi prog enable: %x\012\000"
-.LC24:
-	.ascii	"interleave enable: %x\012\000"
-.LC25:
-	.ascii	"read retry enable: %x\012\000"
-.LC26:
-	.ascii	"randomizer enable: %x\012\000"
-.LC27:
-	.ascii	"SDR enable: %x\012\000"
-.LC28:
-	.ascii	"ONFI enable: %x\012\000"
-.LC29:
-	.ascii	"TOGGLE enable: %x\012\000"
-.LC30:
-	.ascii	"g_flash_slc_mode: %x %x\012\000"
-.LC31:
-	.ascii	"MultiPlaneProgCmd: %x %x\012\000"
-.LC32:
-	.ascii	"MultiPlaneReadCmd: %x %x\012\000"
-.LC33:
-	.ascii	"g_flash_toggle_mode_en: %x\012\000"
-.LC34:
-	.ascii	"...%s enter... %p\012\000"
-.LC35:
-	.ascii	"0:%x %x %x %x %x\012\000"
-.LC36:
-	.ascii	"g_nandc_ver...%d\012\000"
-.LC37:
-	.ascii	"nand sdr mode %x\012\000"
-.LC38:
-	.ascii	"nand ddr mode %x\012\000"
-.LC39:
-	.ascii	"No.%d FLASH ID:%x %x %x %x %x %x\012\000"
-.LC40:
-	.ascii	"otp:%x %x %x %x\012\000"
-.LC41:
-	.ascii	"bad block test:%x %x\012\000"
-.LC42:
-	.ascii	"flash_erase_duplane_block %x %x %x\012\000"
-.LC43:
-	.ascii	"flash_erase_duplane_block pageadd = %x status = %x\012"
-	.ascii	"\000"
-.LC44:
-	.ascii	"flash_erase_block %x %x %x\012\000"
-.LC45:
-	.ascii	"flash_erase_block %d block = %x status = %x\012\000"
-.LC46:
-	.ascii	"erase done: %x\012\000"
-.LC47:
-	.ascii	"sblk_queue_head = %d\012\000"
-.LC48:
-	.ascii	"sblk_read_completed_queue_head = %d\012\000"
-.LC49:
-	.ascii	"sblk_gc_write_completed_queue_head = %d\012\000"
-.LC50:
-	.ascii	"sblk_write_completed_queue_head = %d\012\000"
-.LC51:
-	.ascii	"p_free_buf_head = %d\012\000"
-.LC52:
-	.ascii	"free_buf_count = %d\012\000"
-.LC53:
-	.ascii	"buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_st"
-	.ascii	"ate=%d, op_status = %d lpa=%x, ppa=%x\012\000"
-.LC54:
-	.ascii	"flash_mask_bad_block %d %d\012\000"
-.LC55:
-	.ascii	"zftl_debug\000"
-.LC56:
-	.ascii	"FLASH ID: %x %x %x %x %x %x\012\000"
-.LC57:
-	.ascii	"density: %d MB\012\000"
-.LC58:
-	.ascii	"device density: %d MB\012\000"
-.LC59:
-	.ascii	"FTL INFO:\012\000"
-.LC60:
-	.ascii	"max_lpn = 0x%x\012\000"
-.LC61:
-	.ascii	"density = 0x%x\012\000"
-.LC62:
-	.ascii	"slc vpn = 0x%x\012\000"
-.LC63:
-	.ascii	"xlc vpn = 0x%x\012\000"
-.LC64:
-	.ascii	"free slc blk = 0x%x\012\000"
-.LC65:
-	.ascii	"free xlc blk = 0x%x\012\000"
-.LC66:
-	.ascii	"free mix blk = 0x%x\012\000"
-.LC67:
-	.ascii	"slc data blk = 0x%x\012\000"
-.LC68:
-	.ascii	"slc cache blk = 0x%x\012\000"
-.LC69:
-	.ascii	"xlc data blk = 0x%x\012\000"
-.LC70:
-	.ascii	"free buf = %d, %d, %d\012\000"
-.LC71:
-	.ascii	"bad blk = %d %d\012\000"
-.LC72:
-	.ascii	"TBW = %d MB\012\000"
-.LC73:
-	.ascii	"TBR = %d MB\012\000"
-.LC74:
-	.ascii	"POC = %d\012\000"
-.LC75:
-	.ascii	"PLC = %d\012\000"
-.LC76:
-	.ascii	"sys run time = %d S\012\000"
-.LC77:
-	.ascii	"slc mode = %x %x %x\012\000"
-.LC78:
-	.ascii	"prog err = %d\012\000"
-.LC79:
-	.ascii	"read err = %d\012\000"
-.LC80:
-	.ascii	"GC XLC page = %d\012\000"
-.LC81:
-	.ascii	"GC SLC page = %d\012\000"
-.LC82:
-	.ascii	"discard page = 0x%x\012\000"
-.LC83:
-	.ascii	"version = %d\012\000"
-.LC84:
-	.ascii	"acblk = 0x%x %d %d\012\000"
-.LC85:
-	.ascii	"tmblk = 0x%x %d %d\012\000"
-.LC86:
-	.ascii	"gcblk = 0x%x %d %d\012\000"
-.LC87:
-	.ascii	"slc ec = %d, %d, %d, %d, %d\012\000"
-.LC88:
-	.ascii	"xlc ec = %d, %d, %d, %d, %d\012\000"
-.LC89:
-	.ascii	"gc free blk th = %d\012\000"
-.LC90:
-	.ascii	"gc vpn th = %d %d %d %d %d\012\000"
-.LC91:
-	.ascii	"swl blk = %x %x %x %x\012\000"
-.LC92:
-	.ascii	"rf info = %x %x %x %x %x\012\000"
-.LC93:
-	.ascii	"gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000"
-.LC94:
-	.ascii	"gc_add_sblk = %d, %d, %d\012\000"
-.LC95:
-	.ascii	"gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000"
-.LC96:
-	.ascii	"gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000"
-.LC97:
-	.ascii	"gc_mark_bad_ppa %d %x %x\012\000"
-.LC98:
-	.ascii	"status: %x, ppa: %x\012\000"
-.LC99:
-	.ascii	"%d gc_free_temp_buf buf id= %x\012\000"
-.LC100:
-	.ascii	"gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\012"
-	.ascii	"\000"
-.LC101:
-	.ascii	"zftl_get_gc_node cache = %x index = %d vpn = %x\012"
-	.ascii	"\000"
-.LC102:
-	.ascii	"gc_search_src_blk mode = %x, src mode = %x, count= "
-	.ascii	"%d %d\012\000"
-.LC103:
-	.ascii	"swl_tlc_free_mini_ec_blk alloc sblk %x\012\000"
-.LC104:
-	.ascii	"zftl_get_free_sblk %x %d, %p %d %d\012\000"
-.LC105:
-	.ascii	"zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000"
-.LC106:
-	.ascii	"swl_slc_free_mini_ec_blk alloc sblk %x\012\000"
-.LC107:
-	.ascii	"list count:%p %d\012\000"
-.LC108:
-	.ascii	"%d: node:%x %x %x %x, %d %d %d %d %d\012\000"
-.LC109:
-	.ascii	"ftl_vpn_decrement %x = %d, %d\012\000"
-.LC110:
-	.ascii	"mask bad block:cs %x %x block: %x %x\012\000"
-.LC111:
-	.ascii	"gc_free_bad_sblk 0x%x\012\000"
-.LC112:
-	.ascii	"swl_slc_free_mini_ec_blk sblk %x\012\000"
-.LC113:
-	.ascii	"gc_free_src_blk = %x, vpn = %d\012\000"
-.LC114:
-	.ascii	"gc_free_src_blk %x, %d\012\000"
-.LC115:
-	.ascii	"bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk"
-	.ascii	":s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\012\000"
-.LC116:
-	.ascii	"totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\012\000"
-.LC117:
-	.ascii	"gc xlc page: %d,gc slc page: %d, tmp w: %d MB\012\000"
-.LC118:
-	.ascii	"slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\012\000"
-.LC119:
-	.ascii	"gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:"
-	.ascii	"%d free_th: %d\012\000"
-.LC120:
-	.ascii	"swl : %x %x %x %x %x %x\012\000"
-.LC121:
-	.ascii	"ftl prog error =%x, lpa = %x, ppa= %x\012\000"
-.LC122:
-	.ascii	"ftl re prog: lpa = %x, ppa= %x\012\000"
-.LC123:
-	.ascii	"dump_sblk_queue: %d\012\000"
-.LC124:
-	.ascii	"buf id= %d state = %d ppa = %x\012\000"
-.LC125:
-	.ascii	"%s %d %d\012\000"
-.LC126:
-	.ascii	"gc_static_wearleveling: min blk: %x,sec=%d,xec = %d"
-	.ascii	" ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
-.LC127:
-	.ascii	"gc_static_wearleveling: min slc blk: %x,sec=%d,xec "
-	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
-.LC128:
-	.ascii	"gc_static_wearleveling: min tlc blk: %x,sec=%d,xec "
-	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
-.LC129:
-	.ascii	"gc_static_wearleveling: max slc blk: %x,sec=%d,xec "
-	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
-.LC130:
-	.ascii	"gc_static_wearleveling: max xlc blk: %x,sec=%d,xec "
-	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
-.LC131:
-	.ascii	"gc_static_wearleveling: slc blk: %x, tlc blk: %d av"
-	.ascii	"g slc ec: %d, avg tlc ec: %d \012\000"
-.LC132:
-	.ascii	"gc_static_wearleveling: min slc ec: %x, min tlc ec:"
-	.ascii	" %d max slc ec: %d, max tlc ec: %d; %d %d\012\000"
-.LC133:
-	.ascii	"swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000"
-.LC134:
-	.ascii	"swl add slc gc  = %x, %d, %d, %d, %d, %d\012\000"
-.LC135:
-	.ascii	"free blk vpn error: %x %x\012\000"
-.LC136:
-	.ascii	"GC PM block %x %x %x %d\012\000"
-.LC137:
-	.ascii	"ftl_free_no_use_map_blk %x %x %x %d\012\000"
-.LC138:
-	.ascii	"...%d @ %s\012\000"
-.LC139:
-	.ascii	"rk_ftl_de_init %x\012\000"
-.LC140:
-	.ascii	"\0013\000"
-.LC141:
-	.ascii	"otp error! %d\000"
-.LC142:
-	.ascii	"rr\000"
-.LC143:
-	.ascii	"flash_abort_clear = %d\012\000"
-.LC144:
-	.ascii	"%d mtrans_cnt = %d page_num = %d\012\000"
-.LC145:
-	.ascii	"%d flReg.d32=%x %x\012\000"
-.LC146:
-	.ascii	"nandc:\000"
-.LC147:
-	.ascii	"nandc_xfer_done read error %x\012\000"
-.LC148:
-	.ascii	"dqs data abort %x\012\000"
-.LC149:
-	.ascii	"dqs data timeout %x\012\000"
-.LC150:
-	.ascii	"xfer error %x\012\000"
-.LC151:
-	.ascii	"MT %d row=%x,last status %d,status = %d\012\000"
-.LC152:
-	.ascii	"MT RR %d row=%x,count %d,status=%d\012\000"
-.LC153:
-	.ascii	"toshiba SRR %d row=%x, status=%d\012\000"
-.LC154:
-	.ascii	"toshiba TRR %d row=%x, status=%d\012\000"
-.LC155:
-	.ascii	"toshiba RR %d row=%x,count %d,status=%d\012\000"
-.LC156:
-	.ascii	"YMTC RR %d row=%x,count %d,status=%d\012\000"
-.LC157:
-	.ascii	"samsung SRR %d row=%x, status=%d\012\000"
-.LC158:
-	.ascii	"samsung TRR %d row=%x, status=%d\012\000"
-.LC159:
-	.ascii	"samsung RR %d row=%x,count %d,status=%d\012\000"
-.LC160:
-	.ascii	"hynix RR %d row=%x, count %d, status=%d\012\000"
-.LC161:
-	.ascii	"%d flash_ddr_tuning_read %x ecc=%d\012\000"
-.LC162:
-	.ascii	"sync para %d\012\000"
-.LC163:
-	.ascii	"DDR mode Read error %x %x\012\000"
-.LC164:
-	.ascii	"SDR mode Read %x %x ecc:%x\012\000"
-.LC165:
-	.ascii	"flash_read_page_en %x %x %x %x\012\000"
-.LC166:
-	.ascii	"flash_read_page_en %x %x error_ecc %d %d\012\000"
-.LC167:
-	.ascii	"flash_get_last_written_page: %x %x %x\012\000"
-.LC168:
-	.ascii	"read page: %x %x %x %x\012\000"
-.LC169:
-	.ascii	"flash_prog_page page_addr = %x status = %x\012\000"
-.LC170:
-	.ascii	"flash_prog_page %x %x %x\012\000"
-.LC171:
-	.ascii	"ymtc_flash_tlc_page_prog page_addr = %x status = %x"
-	.ascii	"\012\000"
-.LC172:
-	.ascii	"sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012"
-	.ascii	"\000"
-.LC173:
-	.ascii	"flash_complete_page_read %x %x error_ecc %d %d\012\000"
-.LC174:
-	.ascii	"read: %x %x %x %x\012\000"
-.LC175:
-	.ascii	"0set buf %d,status = %x, ppa = %x lun state = %d\012"
-	.ascii	"\000"
-.LC176:
-	.ascii	"prog end %x %x error_ecc %d %d\012\000"
-.LC177:
-	.ascii	"1set buf %d,status = %x, ppa = %x lun state = %d\012"
-	.ascii	"\000"
-.LC178:
-	.ascii	"dp prog end %x %x error_ecc %d %d\012\000"
-.LC179:
-	.ascii	"sblk_prog_page ppa = %x, count = %d\012\000"
-.LC180:
-	.ascii	"err: ppa = %x, status = %x, %x %x spare: %x %x %x %"
-	.ascii	"x\012\000"
-.LC181:
-	.ascii	"flash_prog_page_en:%x %x %x\012\000"
-.LC182:
-	.ascii	"w d:\000"
-.LC183:
-	.ascii	"w s:\000"
-.LC184:
-	.ascii	"spare\000"
-.LC185:
-	.ascii	"data\000"
-.LC186:
-	.ascii	"write error: %x\012\000"
-.LC187:
-	.ascii	"g_ftl_info_blk blk = %x, page = %x version = %d\012"
-	.ascii	"\000"
-.LC188:
-	.ascii	"%d %x @%d %x\012\000"
-.LC189:
-	.ascii	"ftl_info_blk_init %d %d %x\012\000"
-.LC190:
-	.ascii	"ftl info hash %x error\012\000"
-.LC191:
-	.ascii	"ink flag: %x\012\000"
-.LC192:
-	.ascii	"%s %d %d %x %x\012\000"
-.LC193:
-	.ascii	"ext info hash %x error\012\000"
-.LC194:
-	.ascii	"%s %x %x %x\012\000"
-.LC195:
-	.ascii	"ftl_sblk_dump_write = %x %d %d %d %d\012\000"
-.LC196:
-	.ascii	"blk= %x, page=%x, ppa = %x, status = %x, data:%x %x"
-	.ascii	" %x %x, spare: %x %x %x %x\012\000"
-.LC197:
-	.ascii	"ftl_sblk_dump_write2 = %x %d %d %d\012\000"
-.LC198:
-	.ascii	"ftl_sblk_dump_write = %x %x\012\000"
-.LC199:
-	.ascii	"ftl_sblk_dump_write done = %x\012\000"
-.LC200:
-	.ascii	"%x: ink_scaned_blk_num %x\012\000"
-.LC201:
-	.ascii	"ftl_ink_check_sblk = %x %d %d\012\000"
-.LC202:
-	.ascii	"ftl_ink_check_sblk = %x %d %d end\012\000"
-.LC203:
-	.ascii	"alloc sblk %x %d\012\000"
-.LC204:
-	.ascii	"blk %x is bad block\012\000"
-.LC205:
-	.ascii	"pm_alloc_new_blk: %x %x %x %x\012\000"
-.LC206:
-	.ascii	"pm_write_page write error: %x\012\000"
-.LC207:
-	.ascii	"finfo:\000"
-.LC208:
-	.ascii	"flash_info_flush id = %x, page = %x\012\000"
-.LC209:
-	.ascii	"sys_info_flush error:%x\012\000"
-.LC210:
-	.ascii	"...%d @ %s %d %p\012\000"
-.LC211:
-	.ascii	"no sys info %x\012\000"
-.LC212:
-	.ascii	"l2p:\000"
-.LC213:
-	.ascii	"saved_active_page  = %x\012\000"
-.LC214:
-	.ascii	"saved_active_plane = %x\012\000"
-.LC215:
-	.ascii	"sblk = %x\012\000"
-.LC216:
-	.ascii	"phy_blk = %x %x\012\000"
-.LC217:
-	.ascii	"num_planes = %x\012\000"
-.LC218:
-	.ascii	"recovery blk=%x, page=%x, ppa = %x, status = %x, ha"
-	.ascii	"sh:%x\012\000"
-.LC219:
-	.ascii	"data:\000"
-.LC220:
-	.ascii	"sblk = %x, vpn0 = %d, vpn1 = %d\012\000"
-.LC221:
-	.ascii	"dump_write_lpa = %x %x %x %x\012\000"
-.LC222:
-	.ascii	"dump write new ppa = %x, last ppa = %x lpa = %x\012"
-	.ascii	"\000"
-.LC223:
-	.ascii	"dump write = %x %x %x\012\000"
-.LC224:
-	.ascii	"dump write hash update = %x %x %x\012\000"
-.LC225:
-	.ascii	"free_buf_count: %d\012\000"
-.LC226:
-	.ascii	"g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\012\000"
-.LC227:
-	.ascii	"ftl_ext_info_blk blk:0x%x, page:0x%x\012\000"
-.LC228:
-	.ascii	"ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
-	.ascii	"_index:0x%x\012\000"
-.LC229:
-	.ascii	"tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, pag"
-	.ascii	"e_index:0x%x\012\000"
-.LC230:
-	.ascii	"gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
-	.ascii	"_index:0x%x\012\000"
-.LC231:
-	.ascii	"lpa:\000"
-.LC232:
-	.ascii	"vpn:\000"
-.LC233:
-	.ascii	"sblk:\000"
-.LC234:
-	.ascii	"lpa_hash:\000"
-.LC235:
-	.ascii	"lpa_hash_index:\000"
-.LC236:
-	.ascii	"%s w error lpn = %x, max ppa = %d\012\000"
-.LC237:
-	.ascii	"region_id = %d, pm_max_region = %d\012\000"
-.LC238:
-	.ascii	"load_l2p_region no ppa = %x , %x, all setting 0xff."
-	.ascii	"...\012\000"
-.LC239:
-	.ascii	"load_l2p_region = %x,%x,%x, %x\012\000"
-.LC240:
-	.ascii	"pm_ppa:\000"
-.LC241:
-	.ascii	"spare:\000"
-.LC242:
-	.ascii	"pm_init posr %x %x %x\012\000"
-.LC243:
-	.ascii	"pm_init recovery %x %x %x\012\000"
-.LC244:
-	.ascii	"pm_init hash %x error\012\000"
-.LC245:
-	.ascii	"pm_log2phys  lpn = %d, max lpn = %d\012\000"
-.LC246:
-	.ascii	"ppa = %x, status = %x, data:%x %x %x %x, spare: %x "
-	.ascii	"%x %x %x\012\000"
-.LC247:
-	.ascii	"ppa = %x, status = %x, %x %x spare: %x %x %x %x\012"
-	.ascii	"\000"
-.LC248:
-	.ascii	"gc_recovery: %x vpn = %x\012\000"
-.LC249:
-	.ascii	"gc_update_l2p_map_new sblk %x\012\000"
-.LC250:
-	.ascii	"gc_update_l2p_map_new: %x %x %x\012\000"
-.LC251:
-	.ascii	"lpa: %x %x %x\012\000"
-.LC252:
-	.ascii	"gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\012"
-	.ascii	"\000"
-.LC253:
-	.ascii	"gc_scan_src_blk = %x, vpn = %d\012\000"
-.LC254:
-	.ascii	"js hash error:%x %x %x\012\000"
-.LC255:
-	.ascii	"gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000"
-.LC256:
-	.ascii	"gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:"
-	.ascii	"%d\012\000"
-.LC257:
-	.ascii	"ftl_sblk_dump = %x %d %d %d %d\012\000"
-.LC258:
-	.ascii	"ftl_sblk_dump = %x %x %x %x\012\000"
-.LC259:
-	.ascii	"page_addr = %x, lpa=%x vpn = %d\012\000"
-.LC260:
-	.ascii	"index= %x, lpa=%x\012\000"
-.LC261:
-	.ascii	"block = %x, vpn=%x check vpn = %x\012\000"
-.LC262:
-	.ascii	"ftl_read %x %x %x\012\000"
-.LC263:
-	.ascii	"ftl_read refresh =%x, lpa = %x, ppa= %x\012\000"
-.LC264:
-	.ascii	"id=%d, status = %x, lpa = %x, ppa = %x spare = %x %"
-	.ascii	"x %x %x\012\000"
-.LC265:
-	.ascii	"zftl debug cmd: %s\012\000"
-.LC266:
-	.ascii	"cmd:\000"
-.LC267:
-	.ascii	"dumpl2p\000"
-.LC268:
-	.ascii	"pm l2p:\000"
-.LC269:
-	.ascii	"pm blk:\000"
-.LC270:
-	.ascii	"dumppm:\000"
-.LC271:
-	.ascii	"p_cmd: %s\012\000"
-.LC272:
-	.ascii	"pm ram = %x, %x\012\000"
-.LC273:
-	.ascii	"ram:\000"
-.LC274:
-	.ascii	"pm:\000"
-.LC275:
-	.ascii	"dumpsys\000"
-.LC276:
-	.ascii	"dumplist:\000"
-.LC277:
-	.ascii	"vpncheck\000"
-.LC278:
-	.ascii	"dumpppa:\000"
-.LC279:
-	.ascii	"dumpblk:\000"
-.LC280:
-	.ascii	"setzdebug:\000"
-.LC281:
-	.ascii	"lpa2ppa:\000"
-.LC282:
-	.ascii	"lpa: %x--> ppa: %x\012\000"
-.LC283:
-	.ascii	"help:\012\000"
-.LC284:
-	.ascii	"1. echo dumpl2p > /proc/zftl_debug\012\000"
-.LC285:
-	.ascii	"2. echo dumppm:x > /proc/zftl_debug\012\000"
-.LC286:
-	.ascii	"3. echo dumpsys > /proc/zftl_debug\012\000"
-.LC287:
-	.ascii	"4. echo dumpppa:x > /proc/zftl_debug\012\000"
-.LC288:
-	.ascii	"5. echo vpncheck > /proc/zftl_debug\012\000"
-.LC289:
-	.ascii	"6. echo setzdebug:x > /proc/zftl_debug\012\000"
-.LC290:
-	.ascii	"7. echo dumplist:x > /proc/zftl_debug\012\000"
-.LC291:
-	.ascii	"8. echo lpa2ppa:x> /proc/zftl_debug\012\000"
-.LC292:
-	.ascii	"ftl_update_l2p_map: %x %x %x\012\000"
-.LC293:
-	.ascii	"ftl_update_l2p_map\000"
-.LC294:
-	.ascii	"lpa_tbl:\000"
-.LC295:
-	.ascii	"sblk %x vpn: %d %d\012\000"
-.LC296:
-	.ascii	"error gc_add_sblk: %x\012\000"
-.LC297:
-	.ascii	"%d read error: ppa:%x, lpa:%x, status:%x\012\000"
-.LC298:
-	.ascii	"gc page in buf: lpa %x ppa = %x pageindex= %x\012\000"
-.LC299:
-	.ascii	"gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x "
-	.ascii	"page_index= %d\012\000"
-.LC300:
-	.ascii	"gc %d: %d %d %d %d %d %d %d\012\000"
-.LC301:
-	.ascii	"GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\012"
-	.ascii	"\000"
-.LC302:
-	.ascii	"gc free %x, %d\012\000"
-.LC303:
-	.ascii	"_c_user_data_density := %d\012\000"
-.LC304:
-	.ascii	"_c_totle_phy_density := %d\012\000"
-.LC305:
-	.ascii	"_c_totle_log_page := %d\012\000"
-.LC306:
-	.ascii	"_c_totle_data_density := %d\012\000"
-.LC307:
-	.ascii	"_c_ftl_pm_page_num := %d\012\000"
-.LC308:
-	.ascii	"_c_ftl_byte_pre_page := %d\012\000"
-.LC309:
-	.ascii	"_c_max_pm_sblk := %d\012\000"
-.LC310:
-	.ascii	"_min_slc_super_block := %d\012\000"
-.LC311:
-	.ascii	"_max_xlc_super_block := %d\012\000"
-.LC312:
-	.ascii	"gp_ftl_ext_info %p %p %p\012\000"
-.LC313:
-	.ascii	"flash info size: %d %d %d\012\000"
-.LC314:
-	.ascii	"ftl_init %x\012\000"
-.LC315:
-	.ascii	"ftlwrite %x %x %x %x\012\000"
-.LC316:
-	.ascii	"ftl_discard:(%x, %x, %x, %x)\012\000"
-.LC317:
-	.ascii	"id_block_prog_msb_ff_data slc page = %d pageadd=%x "
-	.ascii	"%x\012\000"
-.LC318:
-	.ascii	"write_idblock fix data %x %x\012\000"
-.LC319:
-	.ascii	"idblk:\000"
-.LC320:
-	.ascii	"write_idblock totle_sec %x %x\012\000"
-.LC321:
-	.ascii	"prog page: %x %x %x, %p %x %x %x\012\000"
-.LC322:
-	.ascii	"wl_lba %p %x %x %x\012\000"
-.LC323:
-	.ascii	"RKNAND_GET_DRM_KEY\012\000"
-.LC324:
-	.ascii	"rk_copy_from_user error\012\000"
-.LC325:
-	.ascii	"RKNAND_STORE_DRM_KEY\012\000"
-.LC326:
-	.ascii	"RKNAND_DIASBLE_SECURE_BOOT\012\000"
-.LC327:
-	.ascii	"RKNAND_ENASBLE_SECURE_BOOT\012\000"
-.LC328:
-	.ascii	"RKNAND_GET_SN_SECTOR\012\000"
-.LC329:
-	.ascii	"RKNAND_LOADER_UNLOCK\012\000"
-.LC330:
-	.ascii	"RKNAND_LOADER_STATUS\012\000"
-.LC331:
-	.ascii	"RKNAND_LOADER_LOCK\012\000"
-.LC332:
-	.ascii	"LockKey not match %d\012\000"
-.LC333:
-	.ascii	"RKNAND_GET_VENDOR_SECTOR\012\000"
-.LC334:
-	.ascii	"RKNAND_STORE_VENDOR_SECTOR\012\000"
-.LC335:
-	.ascii	"return ret = %lx\012\000"
-.LC336:
-	.ascii	"secureBootEn check error\012\000"
-.LC337:
-	.ascii	"\0013vendor storage %x,%x,%x\012\000"
 	.data
 	.align	2
-.LANCHOR2 = . + 0
+	.set	.LANCHOR2,. + 0
 	.type	zftl_debug, %object
 	.size	zftl_debug, 4
 zftl_debug:
@@ -33785,7 +32944,6 @@
 	.byte	0
 	.byte	-32
 	.byte	0
-	.space	3
 	.type	sd15_slc_rr, %object
 	.size	sd15_slc_rr, 25
 sd15_slc_rr:
@@ -33814,7 +32972,6 @@
 	.byte	96
 	.byte	104
 	.byte	112
-	.space	3
 	.type	hy_f26_ref_value, %object
 	.size	hy_f26_ref_value, 28
 hy_f26_ref_value:
@@ -36460,8 +35617,8 @@
 	.short	1019
 	.bss
 	.align	6
-.LANCHOR0 = . + 0
-.LANCHOR3 = . + 8184
+	.set	.LANCHOR0,. + 0
+	.set	.LANCHOR3,. + 8184
 	.type	g_flash_slc_mode, %object
 	.size	g_flash_slc_mode, 1
 g_flash_slc_mode:
@@ -36490,6 +35647,10 @@
 	.type	gp_sblk_list_tbl, %object
 	.size	gp_sblk_list_tbl, 4
 gp_sblk_list_tbl:
+	.space	4
+	.type	gp_flash_info, %object
+	.size	gp_flash_info, 4
+gp_flash_info:
 	.space	4
 	.type	gp_nandc, %object
 	.size	gp_nandc, 4
@@ -36549,6 +35710,15 @@
 	.size	gp_ftl_ext_info, 4
 gp_ftl_ext_info:
 	.space	4
+	.type	g_retryMode, %object
+	.size	g_retryMode, 1
+g_retryMode:
+	.space	1
+	.type	g_maxRegNum, %object
+	.size	g_maxRegNum, 1
+g_maxRegNum:
+	.space	1
+	.space	2
 	.type	gp_nand_para_info, %object
 	.size	gp_nand_para_info, 4
 gp_nand_para_info:
@@ -36573,41 +35743,6 @@
 	.size	g_flash_toggle_mode_en, 1
 g_flash_toggle_mode_en:
 	.space	1
-	.type	nandc_hw_seed, %object
-	.size	nandc_hw_seed, 1
-nandc_hw_seed:
-	.space	1
-	.space	3
-	.type	g_nandc_v6_master_info, %object
-	.size	g_nandc_v6_master_info, 28
-g_nandc_v6_master_info:
-	.space	28
-	.type	nandc_randomizer_en, %object
-	.size	nandc_randomizer_en, 1
-nandc_randomizer_en:
-	.space	1
-	.space	1
-	.type	fill_spare_size, %object
-	.size	fill_spare_size, 2
-fill_spare_size:
-	.space	2
-	.type	g_nandc_ecc_bits, %object
-	.size	g_nandc_ecc_bits, 1
-g_nandc_ecc_bits:
-	.space	1
-	.type	g_retryMode, %object
-	.size	g_retryMode, 1
-g_retryMode:
-	.space	1
-	.type	g_maxRegNum, %object
-	.size	g_maxRegNum, 1
-g_maxRegNum:
-	.space	1
-	.space	1
-	.type	gp_flash_info, %object
-	.size	gp_flash_info, 4
-gp_flash_info:
-	.space	4
 	.type	g_die_cs_idx, %object
 	.size	g_die_cs_idx, 8
 g_die_cs_idx:
@@ -36620,7 +35755,6 @@
 	.size	_c_ftl_cs_bits, 1
 _c_ftl_cs_bits:
 	.space	1
-	.space	2
 	.type	g_flash_cur_mode, %object
 	.size	g_flash_cur_mode, 4
 g_flash_cur_mode:
@@ -36633,7 +35767,6 @@
 	.size	g_flash_ymtc_3d_tlc_flag, 1
 g_flash_ymtc_3d_tlc_flag:
 	.space	1
-	.space	2
 	.type	IDByte, %object
 	.size	IDByte, 32
 IDByte:
@@ -36642,19 +35775,36 @@
 	.size	g_flash_interface_mode, 1
 g_flash_interface_mode:
 	.space	1
+	.type	g_nandc_ecc_bits, %object
+	.size	g_nandc_ecc_bits, 1
+g_nandc_ecc_bits:
+	.space	1
 	.type	g_flash_multi_page_prog_en, %object
 	.size	g_flash_multi_page_prog_en, 1
 g_flash_multi_page_prog_en:
 	.space	1
+	.type	nandc_hw_seed, %object
+	.size	nandc_hw_seed, 1
+nandc_hw_seed:
+	.space	1
+	.type	nandc_randomizer_en, %object
+	.size	nandc_randomizer_en, 1
+nandc_randomizer_en:
+	.space	1
+	.space	3
+	.type	g_nandc_v6_master_info, %object
+	.size	g_nandc_v6_master_info, 28
+g_nandc_v6_master_info:
+	.space	28
+	.type	fill_spare_size, %object
+	.size	fill_spare_size, 2
+fill_spare_size:
+	.space	2
 	.space	2
 	.type	g_buf, %object
 	.size	g_buf, 1536
 g_buf:
 	.space	1536
-	.type	_c_ftl_sec_per_page, %object
-	.size	_c_ftl_sec_per_page, 1
-_c_ftl_sec_per_page:
-	.space	1
 	.type	p_free_buf_head, %object
 	.size	p_free_buf_head, 1
 p_free_buf_head:
@@ -36679,7 +35829,7 @@
 	.size	sblk_write_completed_queue_head, 1
 sblk_write_completed_queue_head:
 	.space	1
-	.space	1
+	.space	2
 	.type	_c_totle_phy_density, %object
 	.size	_c_totle_phy_density, 4
 _c_totle_phy_density:
@@ -36729,27 +35879,27 @@
 	.size	gc_free_slc_sblk_th, 2
 gc_free_slc_sblk_th:
 	.space	2
-	.type	gc_tlc_mode_tlc_vpn_th, %object
-	.size	gc_tlc_mode_tlc_vpn_th, 2
-gc_tlc_mode_tlc_vpn_th:
-	.space	2
 	.type	gc_tlc_mode_slc_vpn_th, %object
 	.size	gc_tlc_mode_slc_vpn_th, 2
 gc_tlc_mode_slc_vpn_th:
 	.space	2
-	.type	gc_slc_mode_vpn_th, %object
-	.size	gc_slc_mode_vpn_th, 2
-gc_slc_mode_vpn_th:
-	.space	2
-	.type	gc_slc_mode_tlc_vpn_th, %object
-	.size	gc_slc_mode_tlc_vpn_th, 2
-gc_slc_mode_tlc_vpn_th:
+	.type	gc_tlc_mode_tlc_vpn_th, %object
+	.size	gc_tlc_mode_tlc_vpn_th, 2
+gc_tlc_mode_tlc_vpn_th:
 	.space	2
 	.space	2
 	.type	_gc_after_discard_en, %object
 	.size	_gc_after_discard_en, 4
 _gc_after_discard_en:
 	.space	4
+	.type	gc_slc_mode_tlc_vpn_th, %object
+	.size	gc_slc_mode_tlc_vpn_th, 2
+gc_slc_mode_tlc_vpn_th:
+	.space	2
+	.type	gc_slc_mode_vpn_th, %object
+	.size	gc_slc_mode_vpn_th, 2
+gc_slc_mode_vpn_th:
+	.space	2
 	.type	write_buf_head, %object
 	.size	write_buf_head, 1
 write_buf_head:
@@ -36763,7 +35913,6 @@
 	.size	ftl_sblk_vpn_update_id, 2
 ftl_sblk_vpn_update_id:
 	.space	2
-	.space	2
 	.type	ftl_sblk_update_list, %object
 	.size	ftl_sblk_update_list, 16
 ftl_sblk_update_list:
@@ -36776,7 +35925,7 @@
 	.size	_c_ftl_planes_per_die, 1
 _c_ftl_planes_per_die:
 	.space	1
-	.space	1
+	.space	3
 	.type	gc_valid_page_ppa, %object
 	.size	gc_valid_page_ppa, 4
 gc_valid_page_ppa:
@@ -36813,6 +35962,10 @@
 	.size	_c_ftl_page_pre_blk, 2
 _c_ftl_page_pre_blk:
 	.space	2
+	.type	gp_data_slc_data_head, %object
+	.size	gp_data_slc_data_head, 4
+gp_data_slc_data_head:
+	.space	4
 	.type	gc_slc_data_index, %object
 	.size	gc_slc_data_index, 2
 gc_slc_data_index:
@@ -36838,11 +35991,6 @@
 	.size	_c_ftl_page_pre_slc_blk, 2
 _c_ftl_page_pre_slc_blk:
 	.space	2
-	.space	2
-	.type	gp_data_slc_data_head, %object
-	.size	gp_data_slc_data_head, 4
-gp_data_slc_data_head:
-	.space	4
 	.type	gc_xlc_search_index, %object
 	.size	gc_xlc_search_index, 2
 gc_xlc_search_index:
@@ -36854,7 +36002,6 @@
 	.type	_max_xlc_super_block, %object
 	.size	_max_xlc_super_block, 2
 _max_xlc_super_block:
-	.space	2
 	.space	2
 	.type	gp_free_slc_head, %object
 	.size	gp_free_slc_head, 4
@@ -36880,11 +36027,12 @@
 	.size	_c_ftl_nand_die_num, 1
 _c_ftl_nand_die_num:
 	.space	1
-	.space	3
+	.space	1
 	.type	lpa_hash, %object
 	.size	lpa_hash, 512
 lpa_hash:
 	.space	512
+	.space	2
 	.type	ftl_sblk_lpa_tbl, %object
 	.size	ftl_sblk_lpa_tbl, 4
 ftl_sblk_lpa_tbl:
@@ -36897,6 +36045,11 @@
 	.size	ftl_vpn_update_count, 2
 ftl_vpn_update_count:
 	.space	2
+	.type	_c_ftl_sec_per_page, %object
+	.size	_c_ftl_sec_per_page, 1
+_c_ftl_sec_per_page:
+	.space	1
+	.space	1
 	.type	ftl_sblk_update_list_offset, %object
 	.size	ftl_sblk_update_list_offset, 2
 ftl_sblk_update_list_offset:
@@ -36922,6 +36075,7 @@
 	.size	read_buf_count, 1
 read_buf_count:
 	.space	1
+	.space	2
 	.type	pm_ram_info, %object
 	.size	pm_ram_info, 256
 pm_ram_info:
@@ -36948,32 +36102,7 @@
 	.size	g_totle_phy_block, 2
 g_totle_phy_block:
 	.space	2
-	.type	gc_state, %object
-	.size	gc_state, 1
-gc_state:
-	.space	1
-	.space	1
-	.type	gc_search_count, %object
-	.size	gc_search_count, 4
-gc_search_count:
-	.space	4
-	.type	gc_slc_mode_slc_vpn_th, %object
-	.size	gc_slc_mode_slc_vpn_th, 2
-gc_slc_mode_slc_vpn_th:
 	.space	2
-	.space	2
-	.type	gc_lpa_tbl, %object
-	.size	gc_lpa_tbl, 4
-gc_lpa_tbl:
-	.space	4
-	.type	gc_pre_ppa_tbl, %object
-	.size	gc_pre_ppa_tbl, 4
-gc_pre_ppa_tbl:
-	.space	4
-	.type	gc_des_ppa_tbl, %object
-	.size	gc_des_ppa_tbl, 4
-gc_des_ppa_tbl:
-	.space	4
 	.type	pm_force_gc, %object
 	.size	pm_force_gc, 4
 pm_force_gc:
@@ -37003,6 +36132,40 @@
 	.size	RK29_NANDC_REG_BASE, 4
 RK29_NANDC_REG_BASE:
 	.space	4
+	.type	ftl_dma32_buffer_size, %object
+	.size	ftl_dma32_buffer_size, 4
+ftl_dma32_buffer_size:
+	.space	4
+	.type	ftl_dma32_buffer, %object
+	.size	ftl_dma32_buffer, 4
+ftl_dma32_buffer:
+	.space	4
+	.type	gc_state, %object
+	.size	gc_state, 1
+gc_state:
+	.space	1
+	.space	3
+	.type	gc_search_count, %object
+	.size	gc_search_count, 4
+gc_search_count:
+	.space	4
+	.type	gc_slc_mode_slc_vpn_th, %object
+	.size	gc_slc_mode_slc_vpn_th, 2
+gc_slc_mode_slc_vpn_th:
+	.space	2
+	.space	2
+	.type	gc_lpa_tbl, %object
+	.size	gc_lpa_tbl, 4
+gc_lpa_tbl:
+	.space	4
+	.type	gc_pre_ppa_tbl, %object
+	.size	gc_pre_ppa_tbl, 4
+gc_pre_ppa_tbl:
+	.space	4
+	.type	gc_des_ppa_tbl, %object
+	.size	gc_des_ppa_tbl, 4
+gc_des_ppa_tbl:
+	.space	4
 	.type	g_flash_tmp_page_buffer, %object
 	.size	g_flash_tmp_page_buffer, 4
 g_flash_tmp_page_buffer:
@@ -37029,13 +36192,13 @@
 	.size	flash_read_retry, 4
 flash_read_retry:
 	.space	4
-	.type	g_flash_page_buffer, %object
-	.size	g_flash_page_buffer, 4
-g_flash_page_buffer:
-	.space	4
 	.type	g_flash_spare_buffer, %object
 	.size	g_flash_spare_buffer, 4
 g_flash_spare_buffer:
+	.space	4
+	.type	g_flash_page_buffer, %object
+	.size	g_flash_page_buffer, 4
+g_flash_page_buffer:
 	.space	4
 	.type	write_commit_head, %object
 	.size	write_commit_head, 1
@@ -37050,11 +36213,12 @@
 	.size	g_flash_multi_page_read_en, 1
 g_flash_multi_page_read_en:
 	.space	1
-	.space	31
+	.space	3
 	.type	ftl_info_spare, %object
-	.size	ftl_info_spare, 256
+	.size	ftl_info_spare, 4
 ftl_info_spare:
-	.space	256
+	.space	4
+	.space	16
 	.type	g_ftl_info_blk, %object
 	.size	g_ftl_info_blk, 4
 g_ftl_info_blk:
@@ -37080,11 +36244,10 @@
 	.size	ftl_ext_info_data_buffer, 4
 ftl_ext_info_data_buffer:
 	.space	4
-	.space	48
 	.type	ftl_tmp_spare, %object
-	.size	ftl_tmp_spare, 256
+	.size	ftl_tmp_spare, 4
 ftl_tmp_spare:
-	.space	256
+	.space	4
 	.type	pm_gc_enable, %object
 	.size	pm_gc_enable, 4
 pm_gc_enable:
@@ -37182,9 +36345,17 @@
 	.size	idb_last_lba, 4
 idb_last_lba:
 	.space	4
-	.type	gpDrmKeyInfo, %object
-	.size	gpDrmKeyInfo, 4
-gpDrmKeyInfo:
+	.type	g_idb_buffer, %object
+	.size	g_idb_buffer, 4
+g_idb_buffer:
+	.space	4
+	.type	g_vendor, %object
+	.size	g_vendor, 4
+g_vendor:
+	.space	4
+	.type	SecureBootUnlockTryCount, %object
+	.size	SecureBootUnlockTryCount, 4
+SecureBootUnlockTryCount:
 	.space	4
 	.type	SecureBootCheckOK, %object
 	.size	SecureBootCheckOK, 4
@@ -37194,33 +36365,25 @@
 	.size	SecureBootEn, 4
 SecureBootEn:
 	.space	4
-	.type	gpBootConfig, %object
-	.size	gpBootConfig, 4
-gpBootConfig:
-	.space	4
-	.type	gSnSectorData, %object
-	.size	gSnSectorData, 512
-gSnSectorData:
-	.space	512
-	.type	SecureBootUnlockTryCount, %object
-	.size	SecureBootUnlockTryCount, 4
-SecureBootUnlockTryCount:
+	.type	gpVendor1Info, %object
+	.size	gpVendor1Info, 4
+gpVendor1Info:
 	.space	4
 	.type	gpVendor0Info, %object
 	.size	gpVendor0Info, 4
 gpVendor0Info:
 	.space	4
-	.type	gpVendor1Info, %object
-	.size	gpVendor1Info, 4
-gpVendor1Info:
+	.type	gSnSectorData, %object
+	.size	gSnSectorData, 512
+gSnSectorData:
+	.space	512
+	.type	gpDrmKeyInfo, %object
+	.size	gpDrmKeyInfo, 4
+gpDrmKeyInfo:
 	.space	4
-	.type	g_idb_buffer, %object
-	.size	g_idb_buffer, 4
-g_idb_buffer:
-	.space	4
-	.type	g_vendor, %object
-	.size	g_vendor, 4
-g_vendor:
+	.type	gpBootConfig, %object
+	.size	gpBootConfig, 4
+gpBootConfig:
 	.space	4
 	.type	ftl_low_format_cur_blk, %object
 	.size	ftl_low_format_cur_blk, 2
@@ -37235,7 +36398,6 @@
 	.size	_c_ftl_nand_blks_per_die, 2
 _c_ftl_nand_blks_per_die:
 	.space	2
-	.space	2
 	.type	nandc_ecc_sts, %object
 	.size	nandc_ecc_sts, 16
 nandc_ecc_sts:
@@ -37244,3 +36406,689 @@
 	.size	g_slc_mode_enable, 1
 g_slc_mode_enable:
 	.space	1
+	.section	.rodata.str1.1,"aMS",%progbits,1
+.LC0:
+	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
+.LC1:
+	.ascii	"FTL version: 6.0.24 20210716\000"
+.LC2:
+	.ascii	"%s\012\000"
+.LC3:
+	.ascii	"zftl_debug:0x%x\012\000"
+.LC4:
+	.ascii	"...%s enter...\012\000"
+.LC5:
+	.ascii	"No.0 FLASH ID: %x %x %x %x %x %x\012\000"
+.LC6:
+	.ascii	"DiePerChip: %x\012\000"
+.LC7:
+	.ascii	"SectPerPage: %x\012\000"
+.LC8:
+	.ascii	"PagePerBlk: %x\012\000"
+.LC9:
+	.ascii	"Cell: %x\012\000"
+.LC10:
+	.ascii	"PlanePerDie: %x\012\000"
+.LC11:
+	.ascii	"BlkPerPlane: %x\012\000"
+.LC12:
+	.ascii	"die gap: %x\012\000"
+.LC13:
+	.ascii	"lsbMode: %x\012\000"
+.LC14:
+	.ascii	"ReadRetryMode: %x\012\000"
+.LC15:
+	.ascii	"ecc: %x\012\000"
+.LC16:
+	.ascii	"idb ecc: %x\012\000"
+.LC17:
+	.ascii	"OptMode: %x\012\000"
+.LC18:
+	.ascii	"g_nand_max_die: %x\012\000"
+.LC19:
+	.ascii	"Cache read enable: %x\012\000"
+.LC20:
+	.ascii	"Cache random read enable: %x\012\000"
+.LC21:
+	.ascii	"Cache prog enable: %x\012\000"
+.LC22:
+	.ascii	"multi read enable: %x\012\000"
+.LC23:
+	.ascii	"multi prog enable: %x\012\000"
+.LC24:
+	.ascii	"interleave enable: %x\012\000"
+.LC25:
+	.ascii	"read retry enable: %x\012\000"
+.LC26:
+	.ascii	"randomizer enable: %x\012\000"
+.LC27:
+	.ascii	"SDR enable: %x\012\000"
+.LC28:
+	.ascii	"ONFI enable: %x\012\000"
+.LC29:
+	.ascii	"TOGGLE enable: %x\012\000"
+.LC30:
+	.ascii	"g_flash_slc_mode: %x %x\012\000"
+.LC31:
+	.ascii	"MultiPlaneProgCmd: %x %x\012\000"
+.LC32:
+	.ascii	"MultiPlaneReadCmd: %x %x\012\000"
+.LC33:
+	.ascii	"g_flash_toggle_mode_en: %x\012\000"
+.LC34:
+	.ascii	"nand sdr mode %x\012\000"
+.LC35:
+	.ascii	"nand ddr mode %x\012\000"
+.LC36:
+	.ascii	"No.%d FLASH ID:%x %x %x %x %x %x\012\000"
+.LC37:
+	.ascii	"otp:%x %x %x %x\012\000"
+.LC38:
+	.ascii	"bad block test:%x %x\012\000"
+.LC39:
+	.ascii	"flash_erase_duplane_block %x %x %x\012\000"
+.LC40:
+	.ascii	"flash_erase_duplane_block pageadd = %x status = %x\012"
+	.ascii	"\000"
+.LC41:
+	.ascii	"flash_erase_block %x %x %x\012\000"
+.LC42:
+	.ascii	"flash_erase_block %d block = %x status = %x\012\000"
+.LC43:
+	.ascii	"erase done: %x\012\000"
+.LC44:
+	.ascii	"sblk_queue_head = %d\012\000"
+.LC45:
+	.ascii	"sblk_read_completed_queue_head = %d\012\000"
+.LC46:
+	.ascii	"sblk_gc_write_completed_queue_head = %d\012\000"
+.LC47:
+	.ascii	"sblk_write_completed_queue_head = %d\012\000"
+.LC48:
+	.ascii	"p_free_buf_head = %d\012\000"
+.LC49:
+	.ascii	"free_buf_count = %d\012\000"
+.LC50:
+	.ascii	"buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_st"
+	.ascii	"ate=%d, op_status = %d lpa=%x, ppa=%x\012\000"
+.LC51:
+	.ascii	"flash_mask_bad_block %d %d\012\000"
+.LC52:
+	.ascii	"zftl_debug\000"
+.LC53:
+	.ascii	"FLASH ID: %x %x %x %x %x %x\012\000"
+.LC54:
+	.ascii	"density: %d MB\012\000"
+.LC55:
+	.ascii	"device density: %d MB\012\000"
+.LC56:
+	.ascii	"FTL INFO:\012\000"
+.LC57:
+	.ascii	"max_lpn = 0x%x\012\000"
+.LC58:
+	.ascii	"density = 0x%x\012\000"
+.LC59:
+	.ascii	"slc vpn = 0x%x\012\000"
+.LC60:
+	.ascii	"xlc vpn = 0x%x\012\000"
+.LC61:
+	.ascii	"free slc blk = 0x%x\012\000"
+.LC62:
+	.ascii	"free xlc blk = 0x%x\012\000"
+.LC63:
+	.ascii	"free mix blk = 0x%x\012\000"
+.LC64:
+	.ascii	"slc data blk = 0x%x\012\000"
+.LC65:
+	.ascii	"slc cache blk = 0x%x\012\000"
+.LC66:
+	.ascii	"xlc data blk = 0x%x\012\000"
+.LC67:
+	.ascii	"free buf = %d, %d, %d\012\000"
+.LC68:
+	.ascii	"bad blk = %d %d\012\000"
+.LC69:
+	.ascii	"TBW = %d MB\012\000"
+.LC70:
+	.ascii	"TBR = %d MB\012\000"
+.LC71:
+	.ascii	"POC = %d\012\000"
+.LC72:
+	.ascii	"PLC = %d\012\000"
+.LC73:
+	.ascii	"sys run time = %d S\012\000"
+.LC74:
+	.ascii	"slc mode = %x %x %x\012\000"
+.LC75:
+	.ascii	"prog err = %d\012\000"
+.LC76:
+	.ascii	"read err = %d\012\000"
+.LC77:
+	.ascii	"GC XLC page = %d\012\000"
+.LC78:
+	.ascii	"GC SLC page = %d\012\000"
+.LC79:
+	.ascii	"discard page = 0x%x\012\000"
+.LC80:
+	.ascii	"version = %d\012\000"
+.LC81:
+	.ascii	"acblk = 0x%x %d %d\012\000"
+.LC82:
+	.ascii	"tmblk = 0x%x %d %d\012\000"
+.LC83:
+	.ascii	"gcblk = 0x%x %d %d\012\000"
+.LC84:
+	.ascii	"slc ec = %d, %d, %d, %d, %d\012\000"
+.LC85:
+	.ascii	"xlc ec = %d, %d, %d, %d, %d\012\000"
+.LC86:
+	.ascii	"gc free blk th = %d\012\000"
+.LC87:
+	.ascii	"gc vpn th = %d %d %d %d %d\012\000"
+.LC88:
+	.ascii	"swl blk = %x %x %x %x\012\000"
+.LC89:
+	.ascii	"rf info = %x %x %x %x %x\012\000"
+.LC90:
+	.ascii	"gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000"
+.LC91:
+	.ascii	"gc_add_sblk = %d, %d, %d\012\000"
+.LC92:
+	.ascii	"gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000"
+.LC93:
+	.ascii	"gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000"
+.LC94:
+	.ascii	"gc_mark_bad_ppa %d %x %x\012\000"
+.LC95:
+	.ascii	"status: %x, ppa: %x\012\000"
+.LC96:
+	.ascii	"%d gc_free_temp_buf buf id= %x\012\000"
+.LC97:
+	.ascii	"gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\012"
+	.ascii	"\000"
+.LC98:
+	.ascii	"zftl_get_gc_node cache = %x index = %d vpn = %x\012"
+	.ascii	"\000"
+.LC99:
+	.ascii	"gc_search_src_blk mode = %x, src mode = %x, count= "
+	.ascii	"%d %d\012\000"
+.LC100:
+	.ascii	"swl_tlc_free_mini_ec_blk alloc sblk %x\012\000"
+.LC101:
+	.ascii	"zftl_get_free_sblk %x %d, %p %d %d\012\000"
+.LC102:
+	.ascii	"zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000"
+.LC103:
+	.ascii	"swl_slc_free_mini_ec_blk alloc sblk %x\012\000"
+.LC104:
+	.ascii	"list count:%p %d\012\000"
+.LC105:
+	.ascii	"%d: node:%x %x %x %x, %d %d %d %d %d\012\000"
+.LC106:
+	.ascii	"ftl_vpn_decrement %x = %d, %d\012\000"
+.LC107:
+	.ascii	"mask bad block:cs %x %x block: %x %x\012\000"
+.LC108:
+	.ascii	"gc_free_bad_sblk 0x%x\012\000"
+.LC109:
+	.ascii	"swl_slc_free_mini_ec_blk sblk %x\012\000"
+.LC110:
+	.ascii	"gc_free_src_blk = %x, vpn = %d\012\000"
+.LC111:
+	.ascii	"gc_free_src_blk %x, %d\012\000"
+.LC112:
+	.ascii	"bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk"
+	.ascii	":s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\012\000"
+.LC113:
+	.ascii	"totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\012\000"
+.LC114:
+	.ascii	"gc xlc page: %d,gc slc page: %d, tmp w: %d MB\012\000"
+.LC115:
+	.ascii	"slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\012\000"
+.LC116:
+	.ascii	"gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:"
+	.ascii	"%d free_th: %d\012\000"
+.LC117:
+	.ascii	"swl : %x %x %x %x %x %x\012\000"
+.LC118:
+	.ascii	"ftl prog error =%x, lpa = %x, ppa= %x\012\000"
+.LC119:
+	.ascii	"ftl re prog: lpa = %x, ppa= %x\012\000"
+.LC120:
+	.ascii	"dump_sblk_queue: %d\012\000"
+.LC121:
+	.ascii	"buf id= %d state = %d ppa = %x\012\000"
+.LC122:
+	.ascii	"%s %d %d\012\000"
+.LC123:
+	.ascii	"gc_static_wearleveling: min blk: %x,sec=%d,xec = %d"
+	.ascii	" ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
+.LC124:
+	.ascii	"gc_static_wearleveling: min slc blk: %x,sec=%d,xec "
+	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
+.LC125:
+	.ascii	"gc_static_wearleveling: min tlc blk: %x,sec=%d,xec "
+	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
+.LC126:
+	.ascii	"gc_static_wearleveling: max slc blk: %x,sec=%d,xec "
+	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
+.LC127:
+	.ascii	"gc_static_wearleveling: max xlc blk: %x,sec=%d,xec "
+	.ascii	"= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
+.LC128:
+	.ascii	"gc_static_wearleveling: slc blk: %x, tlc blk: %d av"
+	.ascii	"g slc ec: %d, avg tlc ec: %d \012\000"
+.LC129:
+	.ascii	"gc_static_wearleveling: min slc ec: %x, min tlc ec:"
+	.ascii	" %d max slc ec: %d, max tlc ec: %d; %d %d\012\000"
+.LC130:
+	.ascii	"swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000"
+.LC131:
+	.ascii	"swl add slc gc  = %x, %d, %d, %d, %d, %d\012\000"
+.LC132:
+	.ascii	"free blk vpn error: %x %x\012\000"
+.LC133:
+	.ascii	"GC PM block %x %x %x %d\012\000"
+.LC134:
+	.ascii	"ftl_free_no_use_map_blk %x %x %x %d\012\000"
+.LC135:
+	.ascii	"...%d @ %s\012\000"
+.LC136:
+	.ascii	"...%s enter... %p\012\000"
+.LC137:
+	.ascii	"0:%x %x %x %x %x\012\000"
+.LC138:
+	.ascii	"g_nandc_ver...%d\012\000"
+.LC139:
+	.ascii	"rk_ftl_de_init %x\012\000"
+.LC140:
+	.ascii	"\0013\000"
+.LC141:
+	.ascii	"otp error! %d\000"
+.LC142:
+	.ascii	"rr\000"
+.LC143:
+	.ascii	"flash_abort_clear = %d\012\000"
+.LC144:
+	.ascii	"%d mtrans_cnt = %d page_num = %d\012\000"
+.LC145:
+	.ascii	"%d flReg.d32=%x %x\012\000"
+.LC146:
+	.ascii	"nandc:\000"
+.LC147:
+	.ascii	"nandc_xfer_done read error %x\012\000"
+.LC148:
+	.ascii	"dqs data abort %x\012\000"
+.LC149:
+	.ascii	"dqs data timeout %x\012\000"
+.LC150:
+	.ascii	"xfer error %x\012\000"
+.LC151:
+	.ascii	"MT %d row=%x,last status %d,status = %d\012\000"
+.LC152:
+	.ascii	"MT RR %d row=%x,count %d,status=%d\012\000"
+.LC153:
+	.ascii	"toshiba SRR %d row=%x, status=%d\012\000"
+.LC154:
+	.ascii	"toshiba TRR %d row=%x, status=%d\012\000"
+.LC155:
+	.ascii	"toshiba RR %d row=%x,count %d,status=%d\012\000"
+.LC156:
+	.ascii	"YMTC RR %d row=%x,count %d,status=%d\012\000"
+.LC157:
+	.ascii	"samsung SRR %d row=%x, status=%d\012\000"
+.LC158:
+	.ascii	"samsung TRR %d row=%x, status=%d\012\000"
+.LC159:
+	.ascii	"samsung RR %d row=%x,count %d,status=%d\012\000"
+.LC160:
+	.ascii	"hynix RR %d row=%x, count %d, status=%d\012\000"
+.LC161:
+	.ascii	"%d flash_ddr_tuning_read %x ecc=%d\012\000"
+.LC162:
+	.ascii	"sync para %d\012\000"
+.LC163:
+	.ascii	"DDR mode Read error %x %x\012\000"
+.LC164:
+	.ascii	"SDR mode Read %x %x ecc:%x\012\000"
+.LC165:
+	.ascii	"flash_read_page_en %x %x %x %x\012\000"
+.LC166:
+	.ascii	"flash_read_page_en %x %x error_ecc %d %d\012\000"
+.LC167:
+	.ascii	"flash_get_last_written_page: %x %x %x\012\000"
+.LC168:
+	.ascii	"flash_prog_page page_addr = %x status = %x\012\000"
+.LC169:
+	.ascii	"flash_prog_page %x %x %x\012\000"
+.LC170:
+	.ascii	"ymtc_flash_tlc_page_prog page_addr = %x status = %x"
+	.ascii	"\012\000"
+.LC171:
+	.ascii	"sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012"
+	.ascii	"\000"
+.LC172:
+	.ascii	"flash_complete_page_read %x %x error_ecc %d %d\012\000"
+.LC173:
+	.ascii	"read: %x %x %x %x\012\000"
+.LC174:
+	.ascii	"0set buf %d,status = %x, ppa = %x lun state = %d\012"
+	.ascii	"\000"
+.LC175:
+	.ascii	"prog end %x %x error_ecc %d %d\012\000"
+.LC176:
+	.ascii	"1set buf %d,status = %x, ppa = %x lun state = %d\012"
+	.ascii	"\000"
+.LC177:
+	.ascii	"dp prog end %x %x error_ecc %d %d\012\000"
+.LC178:
+	.ascii	"sblk_prog_page ppa = %x, count = %d\012\000"
+.LC179:
+	.ascii	"err: ppa = %x, status = %x, %x %x spare: %x %x %x %"
+	.ascii	"x\012\000"
+.LC180:
+	.ascii	"flash_prog_page_en:%x %x %x\012\000"
+.LC181:
+	.ascii	"w d:\000"
+.LC182:
+	.ascii	"w s:\000"
+.LC183:
+	.ascii	"spare\000"
+.LC184:
+	.ascii	"data\000"
+.LC185:
+	.ascii	"write error: %x\012\000"
+.LC186:
+	.ascii	"g_ftl_info_blk blk = %x, page = %x version = %d\012"
+	.ascii	"\000"
+.LC187:
+	.ascii	"%d %x @%d %x\012\000"
+.LC188:
+	.ascii	"ftl_info_blk_init %d %d %x\012\000"
+.LC189:
+	.ascii	"ftl info hash %x error\012\000"
+.LC190:
+	.ascii	"ink flag: %x\012\000"
+.LC191:
+	.ascii	"%s %d %d %x %x\012\000"
+.LC192:
+	.ascii	"ext info hash %x error\012\000"
+.LC193:
+	.ascii	"%s %x %x %x\012\000"
+.LC194:
+	.ascii	"ftl_sblk_dump_write = %x %d %d %d %d\012\000"
+.LC195:
+	.ascii	"blk= %x, page=%x, ppa = %x, status = %x, data:%x %x"
+	.ascii	" %x %x, spare: %x %x %x %x\012\000"
+.LC196:
+	.ascii	"ftl_sblk_dump_write2 = %x %d %d %d\012\000"
+.LC197:
+	.ascii	"ftl_sblk_dump_write = %x %x\012\000"
+.LC198:
+	.ascii	"ftl_sblk_dump_write done = %x\012\000"
+.LC199:
+	.ascii	"%x: ink_scaned_blk_num %x\012\000"
+.LC200:
+	.ascii	"ftl_ink_check_sblk = %x %d %d\012\000"
+.LC201:
+	.ascii	"ftl_ink_check_sblk = %x %d %d end\012\000"
+.LC202:
+	.ascii	"alloc sblk %x %d\012\000"
+.LC203:
+	.ascii	"blk %x is bad block\012\000"
+.LC204:
+	.ascii	"pm_alloc_new_blk: %x %x %x %x\012\000"
+.LC205:
+	.ascii	"pm_write_page write error: %x\012\000"
+.LC206:
+	.ascii	"finfo:\000"
+.LC207:
+	.ascii	"flash_info_flush id = %x, page = %x\012\000"
+.LC208:
+	.ascii	"sys_info_flush error:%x\012\000"
+.LC209:
+	.ascii	"...%d @ %s %d %p\012\000"
+.LC210:
+	.ascii	"no sys info %x\012\000"
+.LC211:
+	.ascii	"l2p:\000"
+.LC212:
+	.ascii	"saved_active_page  = %x\012\000"
+.LC213:
+	.ascii	"saved_active_plane = %x\012\000"
+.LC214:
+	.ascii	"sblk = %x\012\000"
+.LC215:
+	.ascii	"phy_blk = %x %x\012\000"
+.LC216:
+	.ascii	"num_planes = %x\012\000"
+.LC217:
+	.ascii	"recovery blk=%x, page=%x, ppa = %x, status = %x, ha"
+	.ascii	"sh:%x\012\000"
+.LC218:
+	.ascii	"data:\000"
+.LC219:
+	.ascii	"sblk = %x, vpn0 = %d, vpn1 = %d\012\000"
+.LC220:
+	.ascii	"dump_write_lpa = %x %x %x %x\012\000"
+.LC221:
+	.ascii	"dump write new ppa = %x, last ppa = %x lpa = %x\012"
+	.ascii	"\000"
+.LC222:
+	.ascii	"dump write = %x %x %x\012\000"
+.LC223:
+	.ascii	"dump write hash update = %x %x %x\012\000"
+.LC224:
+	.ascii	"free_buf_count: %d\012\000"
+.LC225:
+	.ascii	"g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\012\000"
+.LC226:
+	.ascii	"ftl_ext_info_blk blk:0x%x, page:0x%x\012\000"
+.LC227:
+	.ascii	"ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
+	.ascii	"_index:0x%x\012\000"
+.LC228:
+	.ascii	"tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, pag"
+	.ascii	"e_index:0x%x\012\000"
+.LC229:
+	.ascii	"gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
+	.ascii	"_index:0x%x\012\000"
+.LC230:
+	.ascii	"lpa:\000"
+.LC231:
+	.ascii	"vpn:\000"
+.LC232:
+	.ascii	"sblk:\000"
+.LC233:
+	.ascii	"lpa_hash:\000"
+.LC234:
+	.ascii	"lpa_hash_index:\000"
+.LC235:
+	.ascii	"%s w error lpn = %x, max ppa = %d\012\000"
+.LC236:
+	.ascii	"region_id = %d, pm_max_region = %d\012\000"
+.LC237:
+	.ascii	"load_l2p_region no ppa = %x , %x, all setting 0xff."
+	.ascii	"...\012\000"
+.LC238:
+	.ascii	"load_l2p_region = %x,%x,%x, %x\012\000"
+.LC239:
+	.ascii	"pm_ppa:\000"
+.LC240:
+	.ascii	"spare:\000"
+.LC241:
+	.ascii	"pm_init posr %x %x %x\012\000"
+.LC242:
+	.ascii	"pm_init recovery %x %x %x\012\000"
+.LC243:
+	.ascii	"pm_init hash %x error\012\000"
+.LC244:
+	.ascii	"pm_log2phys  lpn = %d, max lpn = %d\012\000"
+.LC245:
+	.ascii	"ppa = %x, status = %x, data:%x %x %x %x, spare: %x "
+	.ascii	"%x %x %x\012\000"
+.LC246:
+	.ascii	"ppa = %x, status = %x, %x %x spare: %x %x %x %x\012"
+	.ascii	"\000"
+.LC247:
+	.ascii	"gc_recovery: %x vpn = %x\012\000"
+.LC248:
+	.ascii	"gc_update_l2p_map_new sblk %x\012\000"
+.LC249:
+	.ascii	"gc_update_l2p_map_new: %x %x %x\012\000"
+.LC250:
+	.ascii	"lpa: %x %x %x\012\000"
+.LC251:
+	.ascii	"gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\012"
+	.ascii	"\000"
+.LC252:
+	.ascii	"gc_scan_src_blk = %x, vpn = %d\012\000"
+.LC253:
+	.ascii	"js hash error:%x %x %x\012\000"
+.LC254:
+	.ascii	"gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000"
+.LC255:
+	.ascii	"gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:"
+	.ascii	"%d\012\000"
+.LC256:
+	.ascii	"ftl_sblk_dump = %x %d %d %d %d\012\000"
+.LC257:
+	.ascii	"ftl_sblk_dump = %x %x %x %x\012\000"
+.LC258:
+	.ascii	"page_addr = %x, lpa=%x vpn = %d\012\000"
+.LC259:
+	.ascii	"index= %x, lpa=%x\012\000"
+.LC260:
+	.ascii	"block = %x, vpn=%x check vpn = %x\012\000"
+.LC261:
+	.ascii	"ftl_read %x %x %x\012\000"
+.LC262:
+	.ascii	"ftl_read refresh =%x, lpa = %x, ppa= %x\012\000"
+.LC263:
+	.ascii	"id=%d, status = %x, lpa = %x, ppa = %x spare = %x %"
+	.ascii	"x %x %x\012\000"
+.LC264:
+	.ascii	"zftl debug cmd: %s\012\000"
+.LC265:
+	.ascii	"cmd:\000"
+.LC266:
+	.ascii	"dumpl2p\000"
+.LC267:
+	.ascii	"pm l2p:\000"
+.LC268:
+	.ascii	"pm blk:\000"
+.LC269:
+	.ascii	"dumppm:\000"
+.LC270:
+	.ascii	"p_cmd: %s\012\000"
+.LC271:
+	.ascii	"pm ram = %x, %x\012\000"
+.LC272:
+	.ascii	"ram:\000"
+.LC273:
+	.ascii	"pm:\000"
+.LC274:
+	.ascii	"dumpsys\000"
+.LC275:
+	.ascii	"dumplist:\000"
+.LC276:
+	.ascii	"vpncheck\000"
+.LC277:
+	.ascii	"dumpppa:\000"
+.LC278:
+	.ascii	"dumpblk:\000"
+.LC279:
+	.ascii	"setzdebug:\000"
+.LC280:
+	.ascii	"lpa2ppa:\000"
+.LC281:
+	.ascii	"lpa: %x--> ppa: %x\012\000"
+.LC282:
+	.ascii	"help:\012\000"
+.LC283:
+	.ascii	"1. echo dumpl2p > /proc/zftl_debug\012\000"
+.LC284:
+	.ascii	"2. echo dumppm:x > /proc/zftl_debug\012\000"
+.LC285:
+	.ascii	"3. echo dumpsys > /proc/zftl_debug\012\000"
+.LC286:
+	.ascii	"4. echo dumpppa:x > /proc/zftl_debug\012\000"
+.LC287:
+	.ascii	"5. echo vpncheck > /proc/zftl_debug\012\000"
+.LC288:
+	.ascii	"6. echo setzdebug:x > /proc/zftl_debug\012\000"
+.LC289:
+	.ascii	"7. echo dumplist:x > /proc/zftl_debug\012\000"
+.LC290:
+	.ascii	"8. echo lpa2ppa:x> /proc/zftl_debug\012\000"
+.LC291:
+	.ascii	"ftl_update_l2p_map: %x %x %x\012\000"
+.LC292:
+	.ascii	"ftl_update_l2p_map\000"
+.LC293:
+	.ascii	"lpa_tbl:\000"
+.LC294:
+	.ascii	"sblk %x vpn: %d %d\012\000"
+.LC295:
+	.ascii	"error gc_add_sblk: %x\012\000"
+.LC296:
+	.ascii	"%d read error: ppa:%x, lpa:%x, status:%x\012\000"
+.LC297:
+	.ascii	"gc page in buf: lpa %x ppa = %x pageindex= %x\012\000"
+.LC298:
+	.ascii	"gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x "
+	.ascii	"page_index= %d\012\000"
+.LC299:
+	.ascii	"gc %d: %d %d %d %d %d %d %d\012\000"
+.LC300:
+	.ascii	"GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\012"
+	.ascii	"\000"
+.LC301:
+	.ascii	"gc free %x, %d\012\000"
+.LC302:
+	.ascii	"_c_user_data_density := %d\012\000"
+.LC303:
+	.ascii	"_c_totle_phy_density := %d\012\000"
+.LC304:
+	.ascii	"_c_totle_log_page := %d\012\000"
+.LC305:
+	.ascii	"_c_totle_data_density := %d\012\000"
+.LC306:
+	.ascii	"_c_ftl_pm_page_num := %d\012\000"
+.LC307:
+	.ascii	"_c_ftl_byte_pre_page := %d\012\000"
+.LC308:
+	.ascii	"_c_max_pm_sblk := %d\012\000"
+.LC309:
+	.ascii	"_min_slc_super_block := %d\012\000"
+.LC310:
+	.ascii	"_max_xlc_super_block := %d\012\000"
+.LC311:
+	.ascii	"gp_ftl_ext_info %p %p %p\012\000"
+.LC312:
+	.ascii	"flash info size: %d %d %d\012\000"
+.LC313:
+	.ascii	"ftl_init %x\012\000"
+.LC314:
+	.ascii	"ftlwrite %x %x %x %x\012\000"
+.LC315:
+	.ascii	"ftl_discard:(%x, %x, %x, %x)\012\000"
+.LC316:
+	.ascii	"id_block_prog_msb_ff_data slc page = %d pageadd=%x "
+	.ascii	"%x\012\000"
+.LC317:
+	.ascii	"write_idblock fix data %x %x\012\000"
+.LC318:
+	.ascii	"idblk:\000"
+.LC319:
+	.ascii	"write_idblock totle_sec %x %x\012\000"
+.LC320:
+	.ascii	"prog page: %x %x %x, %p %x %x %x\012\000"
+.LC321:
+	.ascii	"read page: %x %x %x %x\012\000"
+.LC322:
+	.ascii	"wl_lba %p %x %x %x\012\000"
+.LC323:
+	.ascii	"return ret = %lx\012\000"
+.LC324:
+	.ascii	"\0013vendor storage %x,%x,%x\012\000"

--
Gitblit v1.6.2