Browse Source

fill-in README and add brom files

Signed-off-by: Michel-FK <michel.stempin@funkey-project.com>
Michel-FK 3 years ago
parent
commit
b04d5f9e18
3 changed files with 7140 additions and 1 deletions
  1. 42 1
      README.md
  2. BIN
      brom
  3. 7098 0
      brom.s

+ 42 - 1
README.md

@@ -1,2 +1,43 @@
 # Allwinner-V3s-BROM
-Allwinner V3s Boot ROM Reverse Engineering
+
+This repository contains the Allwinner V3s Boot ROM Reverse Engineering work.
+
+The Allwinner V3s SoC starts by executing a piece of code stored in masked ROM known as "BROM" (for Boot ROM).
+
+It is located at address 0xffff0000 and its size is 32KB (0x8000).
+
+## Get the Tools
+
+### Dump tool
+
+In order to dump its contents, you need first to clone the sunxi-tools repository using:
+
+```git clone https://github.com/linux-sunxi/sunxi-tools.git```
+
+Then follow the [building instructions](https://github.com/linux-sunxi/sunxi-tools.git), basically:
+
+	cd sunxi-tools
+	make
+
+(We don't need to target tools).
+
+### Disassembly tool
+
+In order to turn the dump into something readable, you will need linux machine and download an ARM cross-toolchain, such as the one contained in the FunKey SDK from:
+
+https://github.com/FunKey-Project/FunKey-OS/releases/download/FunKey-OS-2.0.0/FunKey-sdk-2.0.0.tar.gz
+
+In order to install it, type:
+
+	sudo tar zxvf FunKey-sdk-2.0.0.tar.gz -C /opt
+
+## Dump the ROM
+In order to dump the ROM, type:
+
+	sudo ./sunxi-fel read 0xffff0000 0x8000 path_to_your/brom
+
+## Disassemble the ROM
+In order to disassemble the ROM into readable ARM instructions, type:
+
+	/opt/FunKey-sdk-2.0.0/bin/arm-funkey-linux-musleabihf-objdump -D -bbinary -marm --adjust-vma=0xffff0000 path_to_your/brom >path_to_your/brom.s
+

BIN
brom


+ 7098 - 0
brom.s

@@ -0,0 +1,7098 @@
+	;; Vector table
+ffff0000:	ea000008 	b	reset	      ; reset
+ffff0004:	ea000006 	b	unimplemented ; _undefined_instruction
+ffff0008:	ea000005 	b	unimplemented ; _software_interrupt
+ffff000c:	ea000004 	b	unimplemented ; _prefetch_abort
+ffff0010:	ea000003 	b	unimplemented ; _data_abort
+ffff0014:	ea000002 	b	unimplemented ; _not_used
+ffff0018:	ea000011 	b	irq	      ; _irq
+ffff001c:	ea000000 	b	unimplemented ; _fiq
+ffff0020:	ea000013 	b	fel_setup     ; FEL
+
+unimplemented:
+ffff0024:	eafffffe 	b	unimplemented ; loop forever
+
+	;;  Entry point, clear all register and jump to BROM
+reset:
+ffff0028:	e3a00001 	mov	r0, #1
+ffff002c:	e3a01000 	mov	r1, #0
+ffff0030:	e3a02000 	mov	r2, #0
+ffff0034:	e3a03000 	mov	r3, #0
+ffff0038:	e3a04000 	mov	r4, #0
+ffff003c:	e3a05000 	mov	r5, #0
+ffff0040:	e3a06000 	mov	r6, #0
+ffff0044:	e3a07000 	mov	r7, #0
+ffff0048:	e3a08000 	mov	r8, #0
+ffff004c:	e3a09000 	mov	r9, #0
+ffff0050:	e3a0a000 	mov	sl, #0
+ffff0054:	e3a0b000 	mov	fp, #0
+ffff0058:	e3a0c000 	mov	ip, #0
+ffff005c:	e3a0d000 	mov	sp, #0
+ffff0060:	e59ff100 	ldr	pc, [pc, #256]	; 0xffff0168 =0xffff2c00 jump to BROM
+
+	;; First-level interrrupt handler
+irq:
+ffff0064:	e24ee004 	sub	lr, lr, #4
+ffff0068:	e92d5fff 	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+ffff006c:	eb000709 	bl	interrupt_handler
+ffff0070:	e8fd9fff 	ldm	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}^
+
+	;; FEL entry point
+fel_setup:
+ffff0074:	e3a020d2 	mov	r2, #210	; 0xd2
+ffff0078:	e121f002 	msr	CPSR_c, r2
+ffff007c:	e59fd0e8 	ldr	sp, [pc, #232]	; 0xffff016c =0x00002000
+ffff0080:	e10f0000 	mrs	r0, CPSR
+ffff0084:	e3c0001f 	bic	r0, r0, #31
+ffff0088:	e38000d3 	orr	r0, r0, #211	; 0xd3
+ffff008c:	e121f000 	msr	CPSR_c, r0
+ffff0090:	e59fd0d8 	ldr	sp, [pc, #216]	; 0xffff0170 =0x00007000
+ffff0094:	ee110f30 	mrc	15, 0, r0, cr1, cr0, {1}
+ffff0098:	e3c00002 	bic	r0, r0, #2
+ffff009c:	ee010f30 	mcr	15, 0, r0, cr1, cr0, {1}
+ffff00a0:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff00a4:	e3c00001 	bic	r0, r0, #1
+ffff00a8:	e3c00b02 	bic	r0, r0, #2048	; 0x800
+ffff00ac:	e3c00a01 	bic	r0, r0, #4096	; 0x1000
+ffff00b0:	e3c00004 	bic	r0, r0, #4
+ffff00b4:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff00b8:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff00bc:	e3800a02 	orr	r0, r0, #8192	; 0x2000
+ffff00c0:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff00c4:	e59f10a8 	ldr	r1, [pc, #168]	; 0xffff0174 =0x01c20000 CCU_BASE
+ffff00c8:	e3a02000 	mov	r2, #0
+ffff00cc:	e5913050 	ldr	r3, [r1, #80]	; 0x50
+ffff00d0:	e3c33a01 	bic	r3, r3, #4096	; 0x1000
+ffff00d4:	e1834002 	orr	r4, r3, r2
+ffff00d8:	e5814050 	str	r4, [r1, #80]	; 0x50
+ffff00dc:	e3a02000 	mov	r2, #0
+ffff00e0:	e5913050 	ldr	r3, [r1, #80]	; 0x50
+ffff00e4:	e3c33003 	bic	r3, r3, #3
+ffff00e8:	e1834002 	orr	r4, r3, r2
+ffff00ec:	e5814050 	str	r4, [r1, #80]	; 0x50
+ffff00f0:	e3012110 	movw	r2, #4368	; 0x1110
+ffff00f4:	e5913054 	ldr	r3, [r1, #84]	; 0x54
+ffff00f8:	e3c330f0 	bic	r3, r3, #240	; 0xf0
+ffff00fc:	e3c33c33 	bic	r3, r3, #13056	; 0x3300
+ffff0100:	e1834002 	orr	r4, r3, r2
+ffff0104:	e5814054 	str	r4, [r1, #84]	; 0x54
+ffff0108:	e3a02c01 	mov	r2, #256	; 0x100
+ffff010c:	e59130cc 	ldr	r3, [r1, #204]	; 0xcc
+ffff0110:	e3c33c01 	bic	r3, r3, #256	; 0x100
+ffff0114:	e1834002 	orr	r4, r3, r2
+ffff0118:	e58140cc 	str	r4, [r1, #204]	; 0xcc
+ffff011c:	e3020710 	movw	r0, #10000	; 0x2710
+
+ffff0120:	e2500001 	subs	r0, r0, #1
+ffff0124:	1afffffd 	bne	0xffff0120
+
+ffff0128:	e3a02401 	mov	r2, #16777216	; 0x1000000
+ffff012c:	e5913060 	ldr	r3, [r1, #96]	; 0x60
+ffff0130:	e3c33401 	bic	r3, r3, #16777216	; 0x1000000
+ffff0134:	e1834002 	orr	r4, r3, r2
+ffff0138:	e5814060 	str	r4, [r1, #96]	; 0x60
+ffff013c:	e3a02401 	mov	r2, #16777216	; 0x1000000
+ffff0140:	e59132c0 	ldr	r3, [r1, #704]	; 0x2c0
+ffff0144:	e3c33401 	bic	r3, r3, #16777216	; 0x1000000
+ffff0148:	e1834002 	orr	r4, r3, r2
+ffff014c:	e58142c0 	str	r4, [r1, #704]	; 0x2c0
+ffff0150:	e3a02001 	mov	r2, #1
+ffff0154:	e59130cc 	ldr	r3, [r1, #204]	; 0xcc
+ffff0158:	e3c33001 	bic	r3, r3, #1
+ffff015c:	e1834002 	orr	r4, r3, r2
+ffff0160:	e58140cc 	str	r4, [r1, #204]	; 0xcc
+ffff0164:	eb00085f 	bl	0xffff22e8
+
+	;; Global Offset Table
+ffff0168:	ffff2c00
+ffff016c:	00002000 	andeq	r2, r0, r0
+ffff0170:	00007000 	andeq	r7, r0, r0
+ffff0174:	01c20000 	biceq	r0, r2, r0 	; CCU_BASE
+
+ffff0178:	e12fff1e 	bx	lr
+
+ffff017c:	e12fff1e 	bx	lr
+
+ffff0180:	e3a01000 	mov	r1, #0
+ffff0184:	ea000000 	b	0xffff018c
+
+ffff0188:	e2811001 	add	r1, r1, #1
+
+ffff018c:	e5d02018 	ldrb	r2, [r0, #24]
+ffff0190:	e3520001 	cmp	r2, #1
+ffff0194:	0afffffb 	beq	0xffff0188
+
+ffff0198:	e12fff1e 	bx	lr
+
+ffff019c:	e92d4010 	push	{r4, lr}
+ffff01a0:	e1a04000 	mov	r4, r0
+ffff01a4:	e3a02022 	mov	r2, #34	; 0x22
+ffff01a8:	e3a01000 	mov	r1, #0
+ffff01ac:	e1a00004 	mov	r0, r4
+ffff01b0:	eb0001c9 	bl	0xffff08dc
+ffff01b4:	e3a00000 	mov	r0, #0
+ffff01b8:	e5c40020 	strb	r0, [r4, #32]
+ffff01bc:	e5c40021 	strb	r0, [r4, #33]	; 0x21
+ffff01c0:	e8bd8010 	pop	{r4, pc}
+
+ffff01c4:	e5801000 	str	r1, [r0]
+ffff01c8:	e5802004 	str	r2, [r0, #4]
+ffff01cc:	e3a03000 	mov	r3, #0
+ffff01d0:	e5c03008 	strb	r3, [r0, #8]
+ffff01d4:	e5803010 	str	r3, [r0, #16]
+ffff01d8:	e3a03001 	mov	r3, #1
+ffff01dc:	e5c03018 	strb	r3, [r0, #24]
+ffff01e0:	e12fff1e 	bx	lr
+
+ffff01e4:	e92d4070 	push	{r4, r5, r6, lr}
+ffff01e8:	e24dd020 	sub	sp, sp, #32
+ffff01ec:	e1a06000 	mov	r6, r0
+ffff01f0:	e1a04001 	mov	r4, r1
+ffff01f4:	e3a05000 	mov	r5, #0
+ffff01f8:	e5965034 	ldr	r5, [r6, #52]	; 0x34
+ffff01fc:	e1a00005 	mov	r0, r5
+ffff0200:	ebffffde 	bl	0xffff0180
+ffff0204:	e3a02020 	mov	r2, #32
+ffff0208:	e3a01000 	mov	r1, #0
+ffff020c:	e1a0000d 	mov	r0, sp
+ffff0210:	eb0001b1 	bl	0xffff08dc
+ffff0214:	e1a00006 	mov	r0, r6
+ffff0218:	eb000324 	bl	0xffff0eb0
+ffff021c:	e3a02020 	mov	r2, #32
+ffff0220:	e1a0100d 	mov	r1, sp
+ffff0224:	e1a00005 	mov	r0, r5
+ffff0228:	ebffffe5 	bl	0xffff01c4
+ffff022c:	e3a00001 	mov	r0, #1
+ffff0230:	e5c40020 	strb	r0, [r4, #32]
+ffff0234:	e3a02000 	mov	r2, #0
+ffff0238:	e1a01005 	mov	r1, r5
+ffff023c:	e1a00006 	mov	r0, r6
+ffff0240:	eb00039c 	bl	0xffff10b8
+ffff0244:	e1a00005 	mov	r0, r5
+ffff0248:	ebffffcc 	bl	0xffff0180
+ffff024c:	e3a02022 	mov	r2, #34	; 0x22
+ffff0250:	e1a00004 	mov	r0, r4
+ffff0254:	e5951000 	ldr	r1, [r5]
+ffff0258:	eb000195 	bl	0xffff08b4
+ffff025c:	e28dd020 	add	sp, sp, #32
+ffff0260:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff0264:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff0268:	e1a06000 	mov	r6, r0
+ffff026c:	e1a04001 	mov	r4, r1
+ffff0270:	e1a07002 	mov	r7, r2
+ffff0274:	e1a05003 	mov	r5, r3
+ffff0278:	e3a08000 	mov	r8, #0
+ffff027c:	e3560000 	cmp	r6, #0
+ffff0280:	1a000001 	bne	0xffff028c
+
+ffff0284:	e5948034 	ldr	r8, [r4, #52]	; 0x34
+ffff0288:	ea000000 	b	0xffff0290
+
+ffff028c:	e5948030 	ldr	r8, [r4, #48]	; 0x30
+
+ffff0290:	e1a00008 	mov	r0, r8
+ffff0294:	ebffffb9 	bl	0xffff0180
+ffff0298:	e3a00002 	mov	r0, #2
+ffff029c:	e5c70020 	strb	r0, [r7, #32]
+ffff02a0:	e1a00004 	mov	r0, r4
+ffff02a4:	eb000301 	bl	0xffff0eb0
+ffff02a8:	e1a00008 	mov	r0, r8
+ffff02ac:	e8950006 	ldm	r5, {r1, r2}
+ffff02b0:	ebffffc3 	bl	0xffff01c4
+ffff02b4:	e3a02000 	mov	r2, #0
+ffff02b8:	e1a01008 	mov	r1, r8
+ffff02bc:	e1a00004 	mov	r0, r4
+ffff02c0:	eb00037c 	bl	0xffff10b8
+ffff02c4:	e1a00008 	mov	r0, r8
+ffff02c8:	ebffffac 	bl	0xffff0180
+ffff02cc:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff02d0:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff02d4:	e1a05000 	mov	r5, r0
+ffff02d8:	e1a04001 	mov	r4, r1
+ffff02dc:	e1a06002 	mov	r6, r2
+ffff02e0:	e5d47010 	ldrb	r7, [r4, #16]
+ffff02e4:	e3570011 	cmp	r7, #17
+ffff02e8:	0a000002 	beq	0xffff02f8
+
+ffff02ec:	e3570012 	cmp	r7, #18
+ffff02f0:	1a00000e 	bne	0xffff0330
+
+ffff02f4:	ea000006 	b	0xffff0314
+
+ffff02f8:	e320f000 	nop	{0}
+ffff02fc:	e1a03006 	mov	r3, r6
+ffff0300:	e1a02004 	mov	r2, r4
+ffff0304:	e1a01005 	mov	r1, r5
+ffff0308:	e3a00001 	mov	r0, #1
+ffff030c:	ebffffd4 	bl	0xffff0264
+ffff0310:	ea000008 	b	0xffff0338
+
+ffff0314:	e320f000 	nop	{0}
+ffff0318:	e1a03006 	mov	r3, r6
+ffff031c:	e1a02004 	mov	r2, r4
+ffff0320:	e1a01005 	mov	r1, r5
+ffff0324:	e3a00000 	mov	r0, #0
+ffff0328:	ebffffcd 	bl	0xffff0264
+ffff032c:	ea000001 	b	0xffff0338
+
+ffff0330:	e320f000 	nop	{0}
+ffff0334:	e320f000 	nop	{0}
+
+ffff0338:	e320f000 	nop	{0}
+ffff033c:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff0340:	e92d41ff 	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+ffff0344:	e1a05000 	mov	r5, r0
+ffff0348:	e1a04001 	mov	r4, r1
+ffff034c:	e1a07002 	mov	r7, r2
+ffff0350:	e3a06000 	mov	r6, #0
+ffff0354:	e5956030 	ldr	r6, [r5, #48]	; 0x30
+ffff0358:	e3a00003 	mov	r0, #3
+ffff035c:	e5c40020 	strb	r0, [r4, #32]
+ffff0360:	e59f02f0 	ldr	r0, [pc, #752]	; 0xffff0658 ="AWUS"
+ffff0364:	e58d0000 	str	r0, [sp]
+ffff0368:	e5940004 	ldr	r0, [r4, #4]
+ffff036c:	e58d0004 	str	r0, [sp, #4]
+ffff0370:	e3a00000 	mov	r0, #0
+ffff0374:	e58d0008 	str	r0, [sp, #8]
+ffff0378:	e5cd000c 	strb	r0, [sp, #12]
+ffff037c:	e1a00005 	mov	r0, r5
+ffff0380:	eb0002ca 	bl	0xffff0eb0
+ffff0384:	e3a0200d 	mov	r2, #13
+ffff0388:	e1a0100d 	mov	r1, sp
+ffff038c:	e1a00006 	mov	r0, r6
+ffff0390:	ebffff8b 	bl	0xffff01c4
+ffff0394:	e3a02000 	mov	r2, #0
+ffff0398:	e1a01006 	mov	r1, r6
+ffff039c:	e1a00005 	mov	r0, r5
+ffff03a0:	eb000344 	bl	0xffff10b8
+ffff03a4:	e1a00006 	mov	r0, r6
+ffff03a8:	ebffff74 	bl	0xffff0180
+ffff03ac:	e8bd81ff 	pop	{r0, r1, r2, r3, r4, r5, r6, r7, r8, pc}
+
+ffff03b0:	e92d4030 	push	{r4, r5, lr}
+ffff03b4:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff03b8:	e1a05000 	mov	r5, r0
+ffff03bc:	e1a04001 	mov	r4, r1
+ffff03c0:	e1a0000d 	mov	r0, sp
+ffff03c4:	ebffff74 	bl	0xffff019c
+ffff03c8:	e1a0100d 	mov	r1, sp
+ffff03cc:	e1a00005 	mov	r0, r5
+ffff03d0:	ebffff83 	bl	0xffff01e4
+ffff03d4:	e1a02004 	mov	r2, r4
+ffff03d8:	e1a0100d 	mov	r1, sp
+ffff03dc:	e1a00005 	mov	r0, r5
+ffff03e0:	ebffffba 	bl	0xffff02d0
+ffff03e4:	e1a02004 	mov	r2, r4
+ffff03e8:	e1a0100d 	mov	r1, sp
+ffff03ec:	e1a00005 	mov	r0, r5
+ffff03f0:	ebffffd2 	bl	0xffff0340
+ffff03f4:	e3a00000 	mov	r0, #0
+ffff03f8:	e5c40008 	strb	r0, [r4, #8]
+ffff03fc:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff0400:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff0404:	e92d4070 	push	{r4, r5, r6, lr}
+ffff0408:	e1a04000 	mov	r4, r0
+ffff040c:	e1a05001 	mov	r5, r1
+ffff0410:	e1a01005 	mov	r1, r5
+ffff0414:	e1a00004 	mov	r0, r4
+ffff0418:	ebffffe4 	bl	0xffff03b0
+ffff041c:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff0420:	e92d4070 	push	{r4, r5, r6, lr}
+ffff0424:	e1a04000 	mov	r4, r0
+ffff0428:	e1a05001 	mov	r5, r1
+ffff042c:	e3a0200c 	mov	r2, #12
+ffff0430:	e3a01000 	mov	r1, #0
+ffff0434:	e59f0220 	ldr	r0, [pc, #544]	; 0xffff065c = 0x00007d04
+ffff0438:	eb000127 	bl	0xffff08dc
+ffff043c:	e59f0218 	ldr	r0, [pc, #536]	; 0xffff065c =0x00007d04
+ffff0440:	e5804000 	str	r4, [r0]
+ffff0444:	e5805004 	str	r5, [r0, #4]
+ffff0448:	e3a00002 	mov	r0, #2
+ffff044c:	e59f1208 	ldr	r1, [pc, #520]	; 0xffff065c =0x00007d04
+ffff0450:	e5c10008 	strb	r0, [r1, #8]
+ffff0454:	e2810000 	add	r0, r1, #0
+ffff0458:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff045c:	e92d4030 	push	{r4, r5, lr}
+ffff0460:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff0464:	e1a04000 	mov	r4, r0
+ffff0468:	e3a05000 	mov	r5, #0
+ffff046c:	e3a02020 	mov	r2, #32
+ffff0470:	e3a01000 	mov	r1, #0
+ffff0474:	e28d0004 	add	r0, sp, #4
+ffff0478:	eb000117 	bl	0xffff08dc
+ffff047c:	e3a02008 	mov	r2, #8
+ffff0480:	e28f1f76 	add	r1, pc, #472	; 0x1d8
+ffff0484:	e28d0004 	add	r0, sp, #4
+ffff0488:	eb000109 	bl	0xffff08b4
+ffff048c:	e59f01d8 	ldr	r0, [pc, #472]	; 0xffff066c =0x00168100
+ffff0490:	e58d000c 	str	r0, [sp, #12]
+ffff0494:	e3a00001 	mov	r0, #1
+ffff0498:	e58d0010 	str	r0, [sp, #16]
+ffff049c:	e1cd01b4 	strh	r0, [sp, #20]
+ffff04a0:	e3a00044 	mov	r0, #68	; 0x44
+ffff04a4:	e5cd0016 	strb	r0, [sp, #22]
+ffff04a8:	e3a00008 	mov	r0, #8
+ffff04ac:	e5cd0017 	strb	r0, [sp, #23]
+ffff04b0:	e3070e00 	movw	r0, #32256	; 0x7e00
+ffff04b4:	e58d0018 	str	r0, [sp, #24]
+ffff04b8:	e3a01020 	mov	r1, #32
+ffff04bc:	e28d0004 	add	r0, sp, #4
+ffff04c0:	ebffffd6 	bl	0xffff0420
+ffff04c4:	e1a05000 	mov	r5, r0
+ffff04c8:	e1a01005 	mov	r1, r5
+ffff04cc:	e1a00004 	mov	r0, r4
+ffff04d0:	ebffffb6 	bl	0xffff03b0
+ffff04d4:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff04d8:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff04dc:	e92d407f 	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ffff04e0:	e1a04000 	mov	r4, r0
+ffff04e4:	e3a05000 	mov	r5, #0
+ffff04e8:	e3a02010 	mov	r2, #16
+ffff04ec:	e3a01000 	mov	r1, #0
+ffff04f0:	e1a0000d 	mov	r0, sp
+ffff04f4:	eb0000f8 	bl	0xffff08dc
+ffff04f8:	e3a00001 	mov	r0, #1
+ffff04fc:	e1cd00b0 	strh	r0, [sp]
+ffff0500:	e3a00000 	mov	r0, #0
+ffff0504:	e1cd00b2 	strh	r0, [sp, #2]
+ffff0508:	e3a01010 	mov	r1, #16
+ffff050c:	e1a0000d 	mov	r0, sp
+ffff0510:	ebffffc2 	bl	0xffff0420
+ffff0514:	e1a05000 	mov	r5, r0
+ffff0518:	e1a01005 	mov	r1, r5
+ffff051c:	e1a00004 	mov	r0, r4
+ffff0520:	ebffffa2 	bl	0xffff03b0
+ffff0524:	e8bd807f 	pop	{r0, r1, r2, r3, r4, r5, r6, pc}
+
+ffff0528:	e92d407f 	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ffff052c:	e1a04000 	mov	r4, r0
+ffff0530:	e3a05000 	mov	r5, #0
+ffff0534:	e3a02010 	mov	r2, #16
+ffff0538:	e3a01000 	mov	r1, #0
+ffff053c:	e1a0000d 	mov	r0, sp
+ffff0540:	eb0000e5 	bl	0xffff08dc
+ffff0544:	e30001f4 	movw	r0, #500	; 0x1f4
+ffff0548:	e1cd00b2 	strh	r0, [sp, #2]
+ffff054c:	e3a00002 	mov	r0, #2
+ffff0550:	e1cd00b0 	strh	r0, [sp]
+ffff0554:	e3a01010 	mov	r1, #16
+ffff0558:	e1a0000d 	mov	r0, sp
+ffff055c:	ebffffaf 	bl	0xffff0420
+ffff0560:	e1a05000 	mov	r5, r0
+ffff0564:	e1a01005 	mov	r1, r5
+ffff0568:	e1a00004 	mov	r0, r4
+ffff056c:	ebffff8f 	bl	0xffff03b0
+ffff0570:	e8bd807f 	pop	{r0, r1, r2, r3, r4, r5, r6, pc}
+
+ffff0574:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff0578:	e1a06000 	mov	r6, r0
+ffff057c:	e1a04001 	mov	r4, r1
+ffff0580:	e3a05000 	mov	r5, #0
+ffff0584:	e3a07000 	mov	r7, #0
+ffff0588:	e3540000 	cmp	r4, #0
+ffff058c:	1a000001 	bne	0xffff0598
+
+ffff0590:	e3a00001 	mov	r0, #1
+
+ffff0594:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff0598:	e1a05004 	mov	r5, r4
+ffff059c:	e5950008 	ldr	r0, [r5, #8]
+ffff05a0:	e3500000 	cmp	r0, #0
+ffff05a4:	1a000001 	bne	0xffff05b0
+
+ffff05a8:	e3a00001 	mov	r0, #1
+ffff05ac:	eafffff8 	b	0xffff0594
+
+ffff05b0:	e5951008 	ldr	r1, [r5, #8]
+ffff05b4:	e5950004 	ldr	r0, [r5, #4]
+ffff05b8:	ebffff98 	bl	0xffff0420
+ffff05bc:	e1a07000 	mov	r7, r0
+ffff05c0:	e1a01007 	mov	r1, r7
+ffff05c4:	e1a00006 	mov	r0, r6
+ffff05c8:	ebffff78 	bl	0xffff03b0
+ffff05cc:	e3a00000 	mov	r0, #0
+ffff05d0:	eaffffef 	b	0xffff0594
+
+ffff05d4:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff05d8:	e1a06000 	mov	r6, r0
+ffff05dc:	e1a04001 	mov	r4, r1
+ffff05e0:	e3a05000 	mov	r5, #0
+ffff05e4:	e3a07000 	mov	r7, #0
+ffff05e8:	e3540000 	cmp	r4, #0
+ffff05ec:	1a000001 	bne	0xffff05f8
+
+ffff05f0:	e3a00001 	mov	r0, #1
+
+ffff05f4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff05f8:	e1a05004 	mov	r5, r4
+ffff05fc:	e5950008 	ldr	r0, [r5, #8]
+ffff0600:	e3500000 	cmp	r0, #0
+ffff0604:	1a000001 	bne	0xffff0610
+
+ffff0608:	e3a00001 	mov	r0, #1
+ffff060c:	eafffff8 	b	0xffff05f4
+
+ffff0610:	e5951008 	ldr	r1, [r5, #8]
+ffff0614:	e5950004 	ldr	r0, [r5, #4]
+ffff0618:	ebffff80 	bl	0xffff0420
+ffff061c:	e1a07000 	mov	r7, r0
+ffff0620:	e1a01007 	mov	r1, r7
+ffff0624:	e1a00006 	mov	r0, r6
+ffff0628:	ebffff60 	bl	0xffff03b0
+ffff062c:	e3a00000 	mov	r0, #0
+ffff0630:	eaffffef 	b	0xffff05f4
+
+ffff0634:	e1a03000 	mov	r3, r0
+ffff0638:	e3a02000 	mov	r2, #0
+ffff063c:	e3510000 	cmp	r1, #0
+ffff0640:	1a000001 	bne	0xffff064c
+
+ffff0644:	e3e00000 	mvn	r0, #0
+
+ffff0648:	e12fff1e 	bx	lr
+
+ffff064c:	e1a02001 	mov	r2, r1
+ffff0650:	e5920004 	ldr	r0, [r2, #4]
+ffff0654:	eafffffb 	b	0xffff0648
+
+	;; Global Offset Table
+ffff0658:	53555741	.ascii	"AWUS"
+ffff065c:	00007d04
+ffff0660:	53555741	.ascii	"AWUS"
+ffff0664:	58454642	.ascii	"BFEX"
+ffff0668:	00000000
+ffff066c:	00168100
+
+ffff0670:	e92d41fc 	push	{r2, r3, r4, r5, r6, r7, r8, lr}
+ffff0674:	e1a06000 	mov	r6, r0
+ffff0678:	e1a04001 	mov	r4, r1
+ffff067c:	e1a05002 	mov	r5, r2
+ffff0680:	e3a07000 	mov	r7, #0
+ffff0684:	e3a02008 	mov	r2, #8
+ffff0688:	e3a01000 	mov	r1, #0
+ffff068c:	e1a0000d 	mov	r0, sp
+ffff0690:	eb000091 	bl	0xffff08dc
+ffff0694:	e30f0fff 	movw	r0, #65535	; 0xffff
+ffff0698:	e1cd00b0 	strh	r0, [sp]
+ffff069c:	e1cd40b2 	strh	r4, [sp, #2]
+ffff06a0:	e5cd5004 	strb	r5, [sp, #4]
+ffff06a4:	e3a01008 	mov	r1, #8
+ffff06a8:	e1a0000d 	mov	r0, sp
+ffff06ac:	ebffff5b 	bl	0xffff0420
+ffff06b0:	e1a07000 	mov	r7, r0
+ffff06b4:	e1a01007 	mov	r1, r7
+ffff06b8:	e1a00006 	mov	r0, r6
+ffff06bc:	ebffff3b 	bl	0xffff03b0
+ffff06c0:	e8bd81fc 	pop	{r2, r3, r4, r5, r6, r7, r8, pc}
+
+ffff06c4:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff06c8:	e1a06000 	mov	r6, r0
+ffff06cc:	e1a04001 	mov	r4, r1
+ffff06d0:	e1a05002 	mov	r5, r2
+ffff06d4:	e3a07000 	mov	r7, #0
+ffff06d8:	e1a02005 	mov	r2, r5
+ffff06dc:	e3a01000 	mov	r1, #0
+ffff06e0:	e1a00004 	mov	r0, r4
+ffff06e4:	eb00007c 	bl	0xffff08dc
+ffff06e8:	e1a01005 	mov	r1, r5
+ffff06ec:	e1a00004 	mov	r0, r4
+ffff06f0:	ebffff4a 	bl	0xffff0420
+ffff06f4:	e1a07000 	mov	r7, r0
+ffff06f8:	e1a01007 	mov	r1, r7
+ffff06fc:	e1a00006 	mov	r0, r6
+ffff0700:	ebffff3f 	bl	0xffff0404
+ffff0704:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff0708:	e92d47ff 	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ffff070c:	e1a06000 	mov	r6, r0
+ffff0710:	e3a04000 	mov	r4, #0
+ffff0714:	e3a07000 	mov	r7, #0
+ffff0718:	e3a08000 	mov	r8, #0
+ffff071c:	e3a0a001 	mov	sl, #1
+ffff0720:	e3a02010 	mov	r2, #16
+ffff0724:	e1a0100d 	mov	r1, sp
+ffff0728:	e1a00006 	mov	r0, r6
+ffff072c:	ebffffe4 	bl	0xffff06c4
+ffff0730:	e1a0400d 	mov	r4, sp
+ffff0734:	e1d470b0 	ldrh	r7, [r4]
+ffff0738:	e1d480b2 	ldrh	r8, [r4, #2]
+ffff073c:	e3570010 	cmp	r7, #16
+ffff0740:	0a000022 	beq	0xffff07d0
+
+ffff0744:	ca000008 	bgt	0xffff076c
+
+ffff0748:	e3570001 	cmp	r7, #1
+ffff074c:	0a00000e 	beq	0xffff078c
+
+ffff0750:	e3570002 	cmp	r7, #2
+ffff0754:	0a000011 	beq	0xffff07a0
+
+ffff0758:	e3570003 	cmp	r7, #3
+ffff075c:	0a000011 	beq	0xffff07a8
+
+ffff0760:	e3570004 	cmp	r7, #4
+ffff0764:	1a000037 	bne	0xffff0848
+
+ffff0768:	ea000013 	b	0xffff07bc
+
+ffff076c:	e3e00c01 	mvn	r0, #256	; 0x100
+ffff0770:	e0900007 	adds	r0, r0, r7
+ffff0774:	0a000017 	beq	0xffff07d8
+
+ffff0778:	e3500001 	cmp	r0, #1
+ffff077c:	0a000021 	beq	0xffff0808
+
+ffff0780:	e3500002 	cmp	r0, #2
+ffff0784:	1a00002f 	bne	0xffff0848
+
+ffff0788:	ea000018 	b	0xffff07f0
+
+ffff078c:	e320f000 	nop	{0}
+ffff0790:	e1a00006 	mov	r0, r6
+ffff0794:	ebffff30 	bl	0xffff045c
+ffff0798:	e3a0a000 	mov	sl, #0
+ffff079c:	ea00002c 	b	0xffff0854
+
+ffff07a0:	e320f000 	nop	{0}
+ffff07a4:	ea00002a 	b	0xffff0854
+
+ffff07a8:	e320f000 	nop	{0}
+ffff07ac:	e1a00006 	mov	r0, r6
+ffff07b0:	ebffff5c 	bl	0xffff0528
+ffff07b4:	e3a0a000 	mov	sl, #0
+ffff07b8:	ea000025 	b	0xffff0854
+
+ffff07bc:	e320f000 	nop	{0}
+ffff07c0:	e1a00006 	mov	r0, r6
+ffff07c4:	ebffff44 	bl	0xffff04dc
+ffff07c8:	e3a0a000 	mov	sl, #0
+ffff07cc:	ea000020 	b	0xffff0854
+
+ffff07d0:	e320f000 	nop	{0}
+ffff07d4:	ea00001e 	b	0xffff0854
+
+ffff07d8:	e320f000 	nop	{0}
+ffff07dc:	e1a0100d 	mov	r1, sp
+ffff07e0:	e1a00006 	mov	r0, r6
+ffff07e4:	ebffff62 	bl	0xffff0574
+ffff07e8:	e1a0a000 	mov	sl, r0
+ffff07ec:	ea000018 	b	0xffff0854
+ffff07f0:	e320f000 	nop	{0}
+ffff07f4:	e1a0100d 	mov	r1, sp
+ffff07f8:	e1a00006 	mov	r0, r6
+ffff07fc:	ebffff74 	bl	0xffff05d4
+ffff0800:	e1a0a000 	mov	sl, r0
+ffff0804:	ea000012 	b	0xffff0854
+
+ffff0808:	e320f000 	nop	{0}
+ffff080c:	e3a05000 	mov	r5, #0
+ffff0810:	e1a0100d 	mov	r1, sp
+ffff0814:	e1a00006 	mov	r0, r6
+ffff0818:	ebffff85 	bl	0xffff0634
+ffff081c:	e1a05000 	mov	r5, r0
+ffff0820:	e3a0a000 	mov	sl, #0
+ffff0824:	e1a0200a 	mov	r2, sl
+ffff0828:	e1a01008 	mov	r1, r8
+ffff082c:	e1a00006 	mov	r0, r6
+ffff0830:	ebffff8e 	bl	0xffff0670
+ffff0834:	e1a00006 	mov	r0, r6
+ffff0838:	eb00073b 	bl	0xffff252c
+ffff083c:	e1a09005 	mov	r9, r5
+ffff0840:	e12fff39 	blx	r9
+ffff0844:	e8bd87ff 	pop	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff0848:	e320f000 	nop	{0}
+ffff084c:	e3a0a001 	mov	sl, #1
+ffff0850:	e320f000 	nop	{0}
+ffff0854:	e320f000 	nop	{0}
+ffff0858:	e1a0200a 	mov	r2, sl
+ffff085c:	e1a01008 	mov	r1, r8
+ffff0860:	e1a00006 	mov	r0, r6
+ffff0864:	ebffff81 	bl	0xffff0670
+ffff0868:	e320f000 	nop	{0}
+ffff086c:	eafffff4 	b	0xffff0844
+ffff0870:	e1a05000 	mov	r5, r0
+ffff0874:	e3a04000 	mov	r4, #0
+ffff0878:	ea000003 	b	0xffff088c
+ffff087c:	ebfffe3d 	bl	0xffff0178
+ffff0880:	e1a00005 	mov	r0, r5
+ffff0884:	ebffff9f 	bl	0xffff0708
+ffff0888:	e2844001 	add	r4, r4, #1
+ffff088c:	eafffffa 	b	0xffff087c
+ffff0890:	e3a01000 	mov	r1, #0
+ffff0894:	e5c01018 	strb	r1, [r0, #24]
+ffff0898:	e12fff1e 	bx	lr
+ffff089c:	e3a01000 	mov	r1, #0
+ffff08a0:	e5c01018 	strb	r1, [r0, #24]
+ffff08a4:	e12fff1e 	bx	lr
+ffff08a8:	e3a01000 	mov	r1, #0
+ffff08ac:	e5c01018 	strb	r1, [r0, #24]
+ffff08b0:	e12fff1e 	bx	lr
+
+ffff08b4:	e92d4030 	push	{r4, r5, lr}
+ffff08b8:	e1a03000 	mov	r3, r0
+ffff08bc:	e1a0c001 	mov	ip, r1
+ffff08c0:	ea000001 	b	0xffff08cc
+
+ffff08c4:	e4dc4001 	ldrb	r4, [ip], #1
+ffff08c8:	e4c34001 	strb	r4, [r3], #1
+
+ffff08cc:	e1b04002 	movs	r4, r2
+ffff08d0:	e2422001 	sub	r2, r2, #1
+ffff08d4:	1afffffa 	bne	0xffff08c4
+
+ffff08d8:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff08dc:	e92d4030 	push	{r4, r5, lr}
+ffff08e0:	e1a03000 	mov	r3, r0
+ffff08e4:	ea000000 	b	0xffff08ec
+
+ffff08e8:	e4c31001 	strb	r1, [r3], #1
+ffff08ec:	e1b04002 	movs	r4, r2
+ffff08f0:	e2422001 	sub	r2, r2, #1
+ffff08f4:	1afffffb 	bne	0xffff08e8
+
+ffff08f8:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff08fc:	e92d4070 	push	{r4, r5, r6, lr}
+ffff0900:	e3a05001 	mov	r5, #1
+ffff0904:	e1a05215 	lsl	r5, r5, r2
+ffff0908:	e245c001 	sub	ip, r5, #1
+ffff090c:	e5905000 	ldr	r5, [r0]
+ffff0910:	e1c5411c 	bic	r4, r5, ip, lsl r1
+ffff0914:	e1844113 	orr	r4, r4, r3, lsl r1
+ffff0918:	e5804000 	str	r4, [r0]
+ffff091c:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff0920:	e12fff1e 	bx	lr
+
+ffff0924:	e92d4070 	push	{r4, r5, r6, lr}
+ffff0928:	e1a06000 	mov	r6, r0
+ffff092c:	e1a04001 	mov	r4, r1
+ffff0930:	e1a05002 	mov	r5, r2
+ffff0934:	e6af0075 	sxtb	r0, r5
+ffff0938:	e5c40018 	strb	r0, [r4, #24]
+ffff093c:	e594100c 	ldr	r1, [r4, #12]
+ffff0940:	e1a00004 	mov	r0, r4
+ffff0944:	e12fff31 	blx	r1
+ffff0948:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff094c:	e1a03000 	mov	r3, r0
+ffff0950:	e5d30005 	ldrb	r0, [r3, #5]
+ffff0954:	e200007f 	and	r0, r0, #127	; 0x7f
+ffff0958:	e3500004 	cmp	r0, #4
+ffff095c:	da000001 	ble	0xffff0968
+
+ffff0960:	e3e00000 	mvn	r0, #0
+ffff0964:	e12fff1e 	bx	lr
+
+ffff0968:	e5d30005 	ldrb	r0, [r3, #5]
+ffff096c:	e200007f 	and	r0, r0, #127	; 0x7f
+ffff0970:	e3500005 	cmp	r0, #5
+ffff0974:	308ff100 	addcc	pc, pc, r0, lsl #2
+ffff0978:	ea000004 	b	0xffff0990
+ffff097c:	ea000005 	b	0xffff0998
+ffff0980:	ea000009 	b	0xffff09ac
+ffff0984:	ea00000e 	b	0xffff09c4
+ffff0988:	ea000013 	b	0xffff09dc
+ffff098c:	ea000018 	b	0xffff09f4
+
+ffff0990:	e320f000 	nop	{0}
+ffff0994:	e320f000 	nop	{0}
+
+ffff0998:	e3a00000 	mov	r0, #0
+ffff099c:	e5810000 	str	r0, [r1]
+ffff09a0:	e59f0f24 	ldr	r0, [pc, #3876]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff09a4:	e5820000 	str	r0, [r2]
+ffff09a8:	ea000017 	b	0xffff0a0c
+
+ffff09ac:	e320f000 	nop	{0}
+ffff09b0:	e3a00001 	mov	r0, #1
+ffff09b4:	e5810000 	str	r0, [r1]
+ffff09b8:	e59f0f10 	ldr	r0, [pc, #3856]	; 0xffff18d0 =01c19004 E_HCSPARAMS
+ffff09bc:	e5820000 	str	r0, [r2]
+ffff09c0:	ea000011 	b	0xffff0a0c
+
+ffff09c4:	e320f000 	nop	{0}
+ffff09c8:	e3a00002 	mov	r0, #2
+ffff09cc:	e5810000 	str	r0, [r1]
+ffff09d0:	e59f0efc 	ldr	r0, [pc, #3836]	; 0xffff18d4 =01c19008 E_HCCPARAMS
+ffff09d4:	e5820000 	str	r0, [r2]
+ffff09d8:	ea00000b 	b	0xffff0a0c
+
+ffff09dc:	e320f000 	nop	{0}
+ffff09e0:	e3a00003 	mov	r0, #3
+ffff09e4:	e5810000 	str	r0, [r1]
+ffff09e8:	e59f0ee8 	ldr	r0, [pc, #3816]	; 0xffff18d8 =01c1900c E_HCSPORTROUTE
+ffff09ec:	e5820000 	str	r0, [r2]
+ffff09f0:	ea000005 	b	0xffff0a0c
+
+ffff09f4:	e320f000 	nop	{0}
+ffff09f8:	e3a00004 	mov	r0, #4
+ffff09fc:	e5810000 	str	r0, [r1]
+ffff0a00:	e59f0ed4 	ldr	r0, [pc, #3796]	; 0xffff18dc =01c19010 E_USBCMD
+ffff0a04:	e5820000 	str	r0, [r2]
+ffff0a08:	e320f000 	nop	{0}
+
+ffff0a0c:	e320f000 	nop	{0}
+ffff0a10:	e3a00000 	mov	r0, #0
+ffff0a14:	eaffffd2 	b	0xffff0964
+
+ffff0a18:	e92d4ffe 	push	{r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff0a1c:	e1a09000 	mov	r9, r0
+ffff0a20:	e1a06001 	mov	r6, r1
+ffff0a24:	e1a04002 	mov	r4, r2
+ffff0a28:	e3a00001 	mov	r0, #1
+ffff0a2c:	e58d0008 	str	r0, [sp, #8]
+ffff0a30:	e3a08000 	mov	r8, #0
+ffff0a34:	e1a0200d 	mov	r2, sp
+ffff0a38:	e28d1004 	add	r1, sp, #4
+ffff0a3c:	e1a00006 	mov	r0, r6
+ffff0a40:	ebffffc1 	bl	0xffff094c
+ffff0a44:	e3500000 	cmp	r0, #0
+ffff0a48:	0a000001 	beq	0xffff0a54
+ffff0a4c:	e3e00000 	mvn	r0, #0
+ffff0a50:	e8bd8ffe 	pop	{r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff0a54:	e5940000 	ldr	r0, [r4]
+ffff0a58:	e5941010 	ldr	r1, [r4, #16]
+ffff0a5c:	e080b001 	add	fp, r0, r1
+ffff0a60:	e5940004 	ldr	r0, [r4, #4]
+ffff0a64:	e5941010 	ldr	r1, [r4, #16]
+ffff0a68:	e040a001 	sub	sl, r0, r1
+ffff0a6c:	e35a0000 	cmp	sl, #0
+ffff0a70:	1a000001 	bne	0xffff0a7c
+
+ffff0a74:	e3e00000 	mvn	r0, #0
+ffff0a78:	eafffff4 	b	0xffff0a50
+
+ffff0a7c:	e59d0004 	ldr	r0, [sp, #4]
+ffff0a80:	e59f1e44 	ldr	r1, [pc, #3652]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0a84:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0a88:	e1a00001 	mov	r0, r1
+ffff0a8c:	e5908088 	ldr	r8, [r0, #136]	; 0x88
+ffff0a90:	e5960008 	ldr	r0, [r6, #8]
+ffff0a94:	e1500008 	cmp	r0, r8
+ffff0a98:	2a000001 	bcs	0xffff0aa4
+ffff0a9c:	e5967008 	ldr	r7, [r6, #8]
+ffff0aa0:	ea000000 	b	0xffff0aa8
+ffff0aa4:	e1a07008 	mov	r7, r8
+ffff0aa8:	e1a03007 	mov	r3, r7
+ffff0aac:	e1a02004 	mov	r2, r4
+ffff0ab0:	e1a0100b 	mov	r1, fp
+ffff0ab4:	e59d0000 	ldr	r0, [sp]
+ffff0ab8:	eb0006b0 	bl	0xffff2580
+ffff0abc:	e1a08000 	mov	r8, r0
+ffff0ac0:	e5960008 	ldr	r0, [r6, #8]
+ffff0ac4:	e1500008 	cmp	r0, r8
+ffff0ac8:	9a000006 	bls	0xffff0ae8
+ffff0acc:	e3a00001 	mov	r0, #1
+ffff0ad0:	e58d0008 	str	r0, [sp, #8]
+ffff0ad4:	e1580007 	cmp	r8, r7
+ffff0ad8:	0a00000b 	beq	0xffff0b0c
+ffff0adc:	e3a000ff 	mov	r0, #255	; 0xff
+ffff0ae0:	e5c40018 	strb	r0, [r4, #24]
+ffff0ae4:	ea000008 	b	0xffff0b0c
+ffff0ae8:	e5940004 	ldr	r0, [r4, #4]
+ffff0aec:	e5941010 	ldr	r1, [r4, #16]
+ffff0af0:	e1500001 	cmp	r0, r1
+ffff0af4:	1a000002 	bne	0xffff0b04
+
+ffff0af8:	e3a00001 	mov	r0, #1
+ffff0afc:	e58d0008 	str	r0, [sp, #8]
+ffff0b00:	ea000001 	b	0xffff0b0c
+ffff0b04:	e3a00000 	mov	r0, #0
+ffff0b08:	e58d0008 	str	r0, [sp, #8]
+ffff0b0c:	e59d0004 	ldr	r0, [sp, #4]
+ffff0b10:	e59f1db4 	ldr	r1, [pc, #3508]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0b14:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0b18:	e1a00001 	mov	r0, r1
+ffff0b1c:	e5908088 	ldr	r8, [r0, #136]	; 0x88
+ffff0b20:	e59d0008 	ldr	r0, [sp, #8]
+ffff0b24:	e3500000 	cmp	r0, #0
+ffff0b28:	0a000018 	beq	0xffff0b90
+ffff0b2c:	e59d0004 	ldr	r0, [sp, #4]
+ffff0b30:	e3500000 	cmp	r0, #0
+ffff0b34:	1a000007 	bne	0xffff0b58
+
+ffff0b38:	e59d0004 	ldr	r0, [sp, #4]
+ffff0b3c:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0b40:	e3a00048 	mov	r0, #72	; 0x48
+ffff0b44:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff0b48:	e3a00000 	mov	r0, #0
+ffff0b4c:	e5991024 	ldr	r1, [r9, #36]	; 0x24
+ffff0b50:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff0b54:	ea000006 	b	0xffff0b74
+ffff0b58:	e59d0004 	ldr	r0, [sp, #4]
+ffff0b5c:	e59f1d68 	ldr	r1, [pc, #3432]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0b60:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0b64:	e1a00001 	mov	r0, r1
+ffff0b68:	e1d058b6 	ldrh	r5, [r0, #134]	; 0x86
+ffff0b6c:	e3c55001 	bic	r5, r5, #1
+ffff0b70:	e1c058b6 	strh	r5, [r0, #134]	; 0x86
+ffff0b74:	e3a02000 	mov	r2, #0
+ffff0b78:	e1a01004 	mov	r1, r4
+ffff0b7c:	e1a00006 	mov	r0, r6
+ffff0b80:	ebffff67 	bl	0xffff0924
+ffff0b84:	e3a00001 	mov	r0, #1
+ffff0b88:	e58d0008 	str	r0, [sp, #8]
+ffff0b8c:	ea00000f 	b	0xffff0bd0
+ffff0b90:	e59d0004 	ldr	r0, [sp, #4]
+ffff0b94:	e3500000 	cmp	r0, #0
+ffff0b98:	1a000005 	bne	0xffff0bb4
+
+ffff0b9c:	e59d0004 	ldr	r0, [sp, #4]
+ffff0ba0:	e59f1d24 	ldr	r1, [pc, #3364]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0ba4:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0ba8:	e3a00040 	mov	r0, #64	; 0x40
+ffff0bac:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff0bb0:	ea000006 	b	0xffff0bd0
+ffff0bb4:	e59d0004 	ldr	r0, [sp, #4]
+ffff0bb8:	e59f1d0c 	ldr	r1, [pc, #3340]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0bbc:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0bc0:	e1a00001 	mov	r0, r1
+ffff0bc4:	e1d058b6 	ldrh	r5, [r0, #134]	; 0x86
+ffff0bc8:	e3c55001 	bic	r5, r5, #1
+ffff0bcc:	e1c058b6 	strh	r5, [r0, #134]	; 0x86
+ffff0bd0:	e59d0008 	ldr	r0, [sp, #8]
+ffff0bd4:	eaffff9d 	b	0xffff0a50
+
+ffff0bd8:	e92d47fc 	push	{r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ffff0bdc:	e1a07000 	mov	r7, r0
+ffff0be0:	e1a06001 	mov	r6, r1
+ffff0be4:	e1a05002 	mov	r5, r2
+ffff0be8:	e3a09000 	mov	r9, #0
+ffff0bec:	e1a0200d 	mov	r2, sp
+ffff0bf0:	e28d1004 	add	r1, sp, #4
+ffff0bf4:	e1a00006 	mov	r0, r6
+ffff0bf8:	ebffff53 	bl	0xffff094c
+ffff0bfc:	e3500000 	cmp	r0, #0
+ffff0c00:	0a000001 	beq	0xffff0c0c
+ffff0c04:	e3e00000 	mvn	r0, #0
+ffff0c08:	e8bd87fc 	pop	{r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff0c0c:	e5968008 	ldr	r8, [r6, #8]
+ffff0c10:	e1a02008 	mov	r2, r8
+ffff0c14:	e1a01005 	mov	r1, r5
+ffff0c18:	e59d0000 	ldr	r0, [sp]
+ffff0c1c:	eb000694 	bl	0xffff2674
+ffff0c20:	e1a08000 	mov	r8, r0
+ffff0c24:	e5960008 	ldr	r0, [r6, #8]
+ffff0c28:	e1500008 	cmp	r0, r8
+ffff0c2c:	0a000001 	beq	0xffff0c38
+ffff0c30:	e3a04001 	mov	r4, #1
+ffff0c34:	ea000009 	b	0xffff0c60
+ffff0c38:	e5950004 	ldr	r0, [r5, #4]
+ffff0c3c:	e5951010 	ldr	r1, [r5, #16]
+ffff0c40:	e1500001 	cmp	r0, r1
+ffff0c44:	1a000004 	bne	0xffff0c5c
+
+ffff0c48:	e5d50008 	ldrb	r0, [r5, #8]
+ffff0c4c:	e3500000 	cmp	r0, #0
+ffff0c50:	1a000001 	bne	0xffff0c5c
+
+ffff0c54:	e3a04002 	mov	r4, #2
+ffff0c58:	ea000000 	b	0xffff0c60
+ffff0c5c:	e3a04000 	mov	r4, #0
+ffff0c60:	e3540000 	cmp	r4, #0
+ffff0c64:	0a000027 	beq	0xffff0d08
+ffff0c68:	e59d0004 	ldr	r0, [sp, #4]
+ffff0c6c:	e3500000 	cmp	r0, #0
+ffff0c70:	1a000017 	bne	0xffff0cd4
+
+ffff0c74:	e1a00007 	mov	r0, r7
+ffff0c78:	eb000674 	bl	0xffff2650
+ffff0c7c:	e3100004 	tst	r0, #4
+ffff0c80:	1a000019 	bne	0xffff0cec
+
+ffff0c84:	e3540001 	cmp	r4, #1
+ffff0c88:	1a000009 	bne	0xffff0cb4
+
+ffff0c8c:	e59d0004 	ldr	r0, [sp, #4]
+ffff0c90:	e59f1c34 	ldr	r1, [pc, #3124]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0c94:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0c98:	e3a0000a 	mov	r0, #10
+ffff0c9c:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff0ca0:	e3a00000 	mov	r0, #0
+ffff0ca4:	e5971024 	ldr	r1, [r7, #36]	; 0x24
+ffff0ca8:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff0cac:	e3a09001 	mov	r9, #1
+ffff0cb0:	ea00000d 	b	0xffff0cec
+ffff0cb4:	e3540002 	cmp	r4, #2
+ffff0cb8:	1a00000b 	bne	0xffff0cec
+
+ffff0cbc:	e59d0004 	ldr	r0, [sp, #4]
+ffff0cc0:	e59f1c04 	ldr	r1, [pc, #3076]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0cc4:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0cc8:	e3a00002 	mov	r0, #2
+ffff0ccc:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff0cd0:	ea000005 	b	0xffff0cec
+ffff0cd4:	e59d0004 	ldr	r0, [sp, #4]
+ffff0cd8:	e59f1bec 	ldr	r1, [pc, #3052]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0cdc:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0ce0:	e3020001 	movw	r0, #8193	; 0x2001
+ffff0ce4:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff0ce8:	e3a09001 	mov	r9, #1
+ffff0cec:	e3590001 	cmp	r9, #1
+ffff0cf0:	1a000016 	bne	0xffff0d50
+
+ffff0cf4:	e3a02000 	mov	r2, #0
+ffff0cf8:	e1a01005 	mov	r1, r5
+ffff0cfc:	e1a00006 	mov	r0, r6
+ffff0d00:	ebffff07 	bl	0xffff0924
+ffff0d04:	ea000011 	b	0xffff0d50
+ffff0d08:	e59d0004 	ldr	r0, [sp, #4]
+ffff0d0c:	e3500000 	cmp	r0, #0
+ffff0d10:	1a000009 	bne	0xffff0d3c
+
+ffff0d14:	e1a00007 	mov	r0, r7
+ffff0d18:	eb00064c 	bl	0xffff2650
+ffff0d1c:	e3100004 	tst	r0, #4
+ffff0d20:	1a00000a 	bne	0xffff0d50
+
+ffff0d24:	e59d0004 	ldr	r0, [sp, #4]
+ffff0d28:	e59f1b9c 	ldr	r1, [pc, #2972]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0d2c:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0d30:	e3a00002 	mov	r0, #2
+ffff0d34:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff0d38:	ea000004 	b	0xffff0d50
+ffff0d3c:	e59d0004 	ldr	r0, [sp, #4]
+ffff0d40:	e59f1b84 	ldr	r1, [pc, #2948]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0d44:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0d48:	e3020001 	movw	r0, #8193	; 0x2001
+ffff0d4c:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff0d50:	e1a00009 	mov	r0, r9
+ffff0d54:	eaffffab 	b	0xffff0c08
+ffff0d58:	e59f1b6c 	ldr	r1, [pc, #2924]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0d5c:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0d60:	e12fff1e 	bx	lr
+
+ffff0d64:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}
+ffff0d68:	e1a09000 	mov	r9, r0
+ffff0d6c:	e1a08001 	mov	r8, r1
+ffff0d70:	e3a05000 	mov	r5, #0
+ffff0d74:	e3a06000 	mov	r6, #0
+ffff0d78:	e3a0a000 	mov	sl, #0
+ffff0d7c:	e3580000 	cmp	r8, #0
+ffff0d80:	1a000000 	bne	0xffff0d88
+
+ffff0d84:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}
+ffff0d88:	e5990024 	ldr	r0, [r9, #36]	; 0x24
+ffff0d8c:	e0806208 	add	r6, r0, r8, lsl #4
+ffff0d90:	e596500c 	ldr	r5, [r6, #12]
+ffff0d94:	e5d60005 	ldrb	r0, [r6, #5]
+ffff0d98:	e200a080 	and	sl, r0, #128	; 0x80
+ffff0d9c:	e5d60005 	ldrb	r0, [r6, #5]
+ffff0da0:	e200707f 	and	r7, r0, #127	; 0x7f
+ffff0da4:	e5d50018 	ldrb	r0, [r5, #24]
+ffff0da8:	e3500001 	cmp	r0, #1
+ffff0dac:	0a000000 	beq	0xffff0db4
+ffff0db0:	eafffff3 	b	0xffff0d84
+ffff0db4:	e35a0000 	cmp	sl, #0
+ffff0db8:	0a000013 	beq	0xffff0e0c
+ffff0dbc:	e5d60004 	ldrb	r0, [r6, #4]
+ffff0dc0:	ebffffe4 	bl	0xffff0d58
+ffff0dc4:	e59f0b00 	ldr	r0, [pc, #2816]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0dc8:	e1d048b2 	ldrh	r4, [r0, #130]	; 0x82
+ffff0dcc:	e3140020 	tst	r4, #32
+ffff0dd0:	0a000004 	beq	0xffff0de8
+ffff0dd4:	e59f1af0 	ldr	r1, [pc, #2800]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0dd8:	e1c174b2 	strh	r7, [r1, #66]	; 0x42
+ffff0ddc:	e3a00000 	mov	r0, #0
+ffff0de0:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff0de4:	eaffffe6 	b	0xffff0d84
+ffff0de8:	e3140001 	tst	r4, #1
+ffff0dec:	1a000025 	bne	0xffff0e88
+
+ffff0df0:	e3550000 	cmp	r5, #0
+ffff0df4:	0a000023 	beq	0xffff0e88
+ffff0df8:	e1a02005 	mov	r2, r5
+ffff0dfc:	e1a01006 	mov	r1, r6
+ffff0e00:	e1a00009 	mov	r0, r9
+ffff0e04:	ebffff73 	bl	0xffff0bd8
+ffff0e08:	ea00001e 	b	0xffff0e88
+ffff0e0c:	e59f1ab8 	ldr	r1, [pc, #2744]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0e10:	e5c17042 	strb	r7, [r1, #66]	; 0x42
+ffff0e14:	e1a00001 	mov	r0, r1
+ffff0e18:	e1d048b6 	ldrh	r4, [r0, #134]	; 0x86
+ffff0e1c:	e3140040 	tst	r4, #64	; 0x40
+ffff0e20:	0a000003 	beq	0xffff0e34
+ffff0e24:	e1c174b2 	strh	r7, [r1, #66]	; 0x42
+ffff0e28:	e3a00000 	mov	r0, #0
+ffff0e2c:	e1c108b6 	strh	r0, [r1, #134]	; 0x86
+ffff0e30:	eaffffd3 	b	0xffff0d84
+ffff0e34:	e320f000 	nop	{0}
+ffff0e38:	e3140001 	tst	r4, #1
+ffff0e3c:	0a000011 	beq	0xffff0e88
+ffff0e40:	e3550000 	cmp	r5, #0
+ffff0e44:	0a00000f 	beq	0xffff0e88
+ffff0e48:	e1a02005 	mov	r2, r5
+ffff0e4c:	e1a01006 	mov	r1, r6
+ffff0e50:	e1a00009 	mov	r0, r9
+ffff0e54:	ebfffeef 	bl	0xffff0a18
+ffff0e58:	e5d50018 	ldrb	r0, [r5, #24]
+ffff0e5c:	e3500000 	cmp	r0, #0
+ffff0e60:	0a000008 	beq	0xffff0e88
+ffff0e64:	e59f1a60 	ldr	r1, [pc, #2656]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0e68:	e5c17042 	strb	r7, [r1, #66]	; 0x42
+ffff0e6c:	e1a00001 	mov	r0, r1
+ffff0e70:	e1d048b6 	ldrh	r4, [r0, #134]	; 0x86
+ffff0e74:	e3140001 	tst	r4, #1
+ffff0e78:	0a000002 	beq	0xffff0e88
+ffff0e7c:	e3550000 	cmp	r5, #0
+ffff0e80:	0a000000 	beq	0xffff0e88
+ffff0e84:	eaffffeb 	b	0xffff0e38
+ffff0e88:	e320f000 	nop	{0}
+ffff0e8c:	eaffffbc 	b	0xffff0d84
+ffff0e90:	e59f0a34 	ldr	r0, [pc, #2612]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0e94:	e5d00042 	ldrb	r0, [r0, #66]	; 0x42
+ffff0e98:	e12fff1e 	bx	lr
+ffff0e9c:	e1a02000 	mov	r2, r0
+ffff0ea0:	e10f1000 	mrs	r1, CPSR
+ffff0ea4:	e3c11080 	bic	r1, r1, #128	; 0x80
+ffff0ea8:	e121f001 	msr	CPSR_c, r1
+ffff0eac:	e12fff1e 	bx	lr
+ffff0eb0:	e1a02000 	mov	r2, r0
+ffff0eb4:	e10f1000 	mrs	r1, CPSR
+ffff0eb8:	e3811080 	orr	r1, r1, #128	; 0x80
+ffff0ebc:	e121f001 	msr	CPSR_c, r1
+ffff0ec0:	e12fff1e 	bx	lr
+
+ffff0ec4:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}
+ffff0ec8:	e1a06000 	mov	r6, r0
+ffff0ecc:	e1a05001 	mov	r5, r1
+ffff0ed0:	e1a07002 	mov	r7, r2
+ffff0ed4:	e3a04000 	mov	r4, #0
+ffff0ed8:	e3a08000 	mov	r8, #0
+ffff0edc:	e3a09000 	mov	r9, #0
+ffff0ee0:	e5950014 	ldr	r0, [r5, #20]
+ffff0ee4:	e3d00003 	bics	r0, r0, #3
+ffff0ee8:	0a000001 	beq	0xffff0ef4
+ffff0eec:	e3e00000 	mvn	r0, #0
+ffff0ef0:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff0ef4:	e3570000 	cmp	r7, #0
+ffff0ef8:	1a000001 	bne	0xffff0f04
+
+ffff0efc:	e1a00006 	mov	r0, r6
+ffff0f00:	ebffffea 	bl	0xffff0eb0
+ffff0f04:	e5960024 	ldr	r0, [r6, #36]	; 0x24
+ffff0f08:	e5951014 	ldr	r1, [r5, #20]
+ffff0f0c:	e0804201 	add	r4, r0, r1, lsl #4
+ffff0f10:	e3a00000 	mov	r0, #0
+ffff0f14:	e5850010 	str	r0, [r5, #16]
+ffff0f18:	e5d40005 	ldrb	r0, [r4, #5]
+ffff0f1c:	e3500000 	cmp	r0, #0
+ffff0f20:	0a00000c 	beq	0xffff0f58
+ffff0f24:	e5d40005 	ldrb	r0, [r4, #5]
+ffff0f28:	e200007f 	and	r0, r0, #127	; 0x7f
+ffff0f2c:	e59f1998 	ldr	r1, [pc, #2456]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0f30:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff0f34:	e5d40005 	ldrb	r0, [r4, #5]
+ffff0f38:	e3100080 	tst	r0, #128	; 0x80
+ffff0f3c:	0a000001 	beq	0xffff0f48
+ffff0f40:	e2810082 	add	r0, r1, #130	; 0x82
+ffff0f44:	ea000000 	b	0xffff0f4c
+ffff0f48:	e59f0990 	ldr	r0, [pc, #2448]	; 0xffff18e0
+ffff0f4c:	e1d080b0 	ldrh	r8, [r0]
+ffff0f50:	e59f0974 	ldr	r0, [pc, #2420]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff0f54:	e1d098b8 	ldrh	r9, [r0, #136]	; 0x88
+ffff0f58:	e5d40005 	ldrb	r0, [r4, #5]
+ffff0f5c:	e3500000 	cmp	r0, #0
+ffff0f60:	1a00001c 	bne	0xffff0fd8
+
+ffff0f64:	e5960024 	ldr	r0, [r6, #36]	; 0x24
+ffff0f68:	e5900030 	ldr	r0, [r0, #48]	; 0x30
+ffff0f6c:	e3500001 	cmp	r0, #1
+ffff0f70:	0a000002 	beq	0xffff0f80
+ffff0f74:	e3500002 	cmp	r0, #2
+ffff0f78:	1a00000e 	bne	0xffff0fb8
+
+ffff0f7c:	ea000008 	b	0xffff0fa4
+ffff0f80:	e320f000 	nop	{0}
+ffff0f84:	e1a02005 	mov	r2, r5
+ffff0f88:	e1a01004 	mov	r1, r4
+ffff0f8c:	e1a00006 	mov	r0, r6
+ffff0f90:	ebffff10 	bl	0xffff0bd8
+ffff0f94:	e3500000 	cmp	r0, #0
+ffff0f98:	0a000000 	beq	0xffff0fa0
+ffff0f9c:	e3a05000 	mov	r5, #0
+ffff0fa0:	ea00000b 	b	0xffff0fd4
+ffff0fa4:	e320f000 	nop	{0}
+ffff0fa8:	e3a00000 	mov	r0, #0
+ffff0fac:	e5961024 	ldr	r1, [r6, #36]	; 0x24
+ffff0fb0:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff0fb4:	ea000006 	b	0xffff0fd4
+ffff0fb8:	e320f000 	nop	{0}
+ffff0fbc:	e3570000 	cmp	r7, #0
+ffff0fc0:	1a000001 	bne	0xffff0fcc
+
+ffff0fc4:	e1a00006 	mov	r0, r6
+ffff0fc8:	ebffffb3 	bl	0xffff0e9c
+ffff0fcc:	e3e00000 	mvn	r0, #0
+ffff0fd0:	eaffffc6 	b	0xffff0ef0
+ffff0fd4:	ea000031 	b	0xffff10a0
+ffff0fd8:	e5d40005 	ldrb	r0, [r4, #5]
+ffff0fdc:	e3100080 	tst	r0, #128	; 0x80
+ffff0fe0:	0a000009 	beq	0xffff100c
+ffff0fe4:	e3180001 	tst	r8, #1
+ffff0fe8:	1a000007 	bne	0xffff100c
+
+ffff0fec:	e1a02005 	mov	r2, r5
+ffff0ff0:	e1a01004 	mov	r1, r4
+ffff0ff4:	e1a00006 	mov	r0, r6
+ffff0ff8:	ebfffef6 	bl	0xffff0bd8
+ffff0ffc:	e3500000 	cmp	r0, #0
+ffff1000:	0a000001 	beq	0xffff100c
+ffff1004:	e3a05000 	mov	r5, #0
+ffff1008:	ea000024 	b	0xffff10a0
+ffff100c:	e5d40005 	ldrb	r0, [r4, #5]
+ffff1010:	e3100080 	tst	r0, #128	; 0x80
+ffff1014:	1a000021 	bne	0xffff10a0
+
+ffff1018:	e3180001 	tst	r8, #1
+ffff101c:	0a00001f 	beq	0xffff10a0
+ffff1020:	e59f08a4 	ldr	r0, [pc, #2212]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1024:	e1d008b8 	ldrh	r0, [r0, #136]	; 0x88
+ffff1028:	e1b09000 	movs	r9, r0
+ffff102c:	0a00001b 	beq	0xffff10a0
+ffff1030:	e320f000 	nop	{0}
+ffff1034:	e1a02005 	mov	r2, r5
+ffff1038:	e1a01004 	mov	r1, r4
+ffff103c:	e1a00006 	mov	r0, r6
+ffff1040:	ebfffe74 	bl	0xffff0a18
+ffff1044:	e5d40005 	ldrb	r0, [r4, #5]
+ffff1048:	e200007f 	and	r0, r0, #127	; 0x7f
+ffff104c:	e59f1878 	ldr	r1, [pc, #2168]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1050:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff1054:	e5d40005 	ldrb	r0, [r4, #5]
+ffff1058:	e3100080 	tst	r0, #128	; 0x80
+ffff105c:	0a000001 	beq	0xffff1068
+ffff1060:	e2810082 	add	r0, r1, #130	; 0x82
+ffff1064:	ea000000 	b	0xffff106c
+ffff1068:	e59f0870 	ldr	r0, [pc, #2160]	; 0xffff18e0
+ffff106c:	e1d080b0 	ldrh	r8, [r0]
+ffff1070:	e59f0854 	ldr	r0, [pc, #2132]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1074:	e1d098b8 	ldrh	r9, [r0, #136]	; 0x88
+ffff1078:	e5d50018 	ldrb	r0, [r5, #24]
+ffff107c:	e3500000 	cmp	r0, #0
+ffff1080:	1a000000 	bne	0xffff1088
+
+ffff1084:	ea000003 	b	0xffff1098
+ffff1088:	e3180001 	tst	r8, #1
+ffff108c:	0a000001 	beq	0xffff1098
+ffff1090:	e3590000 	cmp	r9, #0
+ffff1094:	1affffe6 	bne	0xffff1034
+
+ffff1098:	e320f000 	nop	{0}
+ffff109c:	e3a05000 	mov	r5, #0
+ffff10a0:	e3570000 	cmp	r7, #0
+ffff10a4:	1a000001 	bne	0xffff10b0
+
+ffff10a8:	e1a00006 	mov	r0, r6
+ffff10ac:	ebffff7a 	bl	0xffff0e9c
+ffff10b0:	e3a00000 	mov	r0, #0
+ffff10b4:	eaffff8d 	b	0xffff0ef0
+
+ffff10b8:	e92d4070 	push	{r4, r5, r6, lr}
+ffff10bc:	e1a04000 	mov	r4, r0
+ffff10c0:	e1a05001 	mov	r5, r1
+ffff10c4:	e1a06002 	mov	r6, r2
+ffff10c8:	e1a02006 	mov	r2, r6
+ffff10cc:	e1a01005 	mov	r1, r5
+ffff10d0:	e1a00004 	mov	r0, r4
+ffff10d4:	ebffff7a 	bl	0xffff0ec4
+ffff10d8:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff10dc:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}
+ffff10e0:	e1a06000 	mov	r6, r0
+ffff10e4:	e1a04001 	mov	r4, r1
+ffff10e8:	e1a0a002 	mov	sl, r2
+ffff10ec:	e1a09003 	mov	r9, r3
+ffff10f0:	e1a05004 	mov	r5, r4
+ffff10f4:	e3590000 	cmp	r9, #0
+ffff10f8:	0a000001 	beq	0xffff1104
+ffff10fc:	e3e00000 	mvn	r0, #0
+ffff1100:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff1104:	e5968014 	ldr	r8, [r6, #20]
+ffff1108:	e3a07000 	mov	r7, #0
+ffff110c:	e3a02009 	mov	r2, #9
+ffff1110:	e1a00004 	mov	r0, r4
+ffff1114:	e5961004 	ldr	r1, [r6, #4]
+ffff1118:	ebfffde5 	bl	0xffff08b4
+ffff111c:	e2844009 	add	r4, r4, #9
+ffff1120:	e3a02009 	mov	r2, #9
+ffff1124:	e1a00004 	mov	r0, r4
+ffff1128:	e5961008 	ldr	r1, [r6, #8]
+ffff112c:	ebfffde0 	bl	0xffff08b4
+ffff1130:	e2844009 	add	r4, r4, #9
+ffff1134:	e3a02007 	mov	r2, #7
+ffff1138:	e1a00004 	mov	r0, r4
+ffff113c:	e5981000 	ldr	r1, [r8]
+ffff1140:	ebfffddb 	bl	0xffff08b4
+ffff1144:	e2844007 	add	r4, r4, #7
+ffff1148:	e3a02007 	mov	r2, #7
+ffff114c:	e1a00004 	mov	r0, r4
+ffff1150:	e5981004 	ldr	r1, [r8, #4]
+ffff1154:	ebfffdd6 	bl	0xffff08b4
+ffff1158:	e2844007 	add	r4, r4, #7
+ffff115c:	e3a07020 	mov	r7, #32
+ffff1160:	e3a00009 	mov	r0, #9
+ffff1164:	e5c50000 	strb	r0, [r5]
+ffff1168:	e3a00002 	mov	r0, #2
+ffff116c:	e5c50001 	strb	r0, [r5, #1]
+ffff1170:	e1c570b2 	strh	r7, [r5, #2]
+ffff1174:	e5d50007 	ldrb	r0, [r5, #7]
+ffff1178:	e3800080 	orr	r0, r0, #128	; 0x80
+ffff117c:	e5c50007 	strb	r0, [r5, #7]
+ffff1180:	e1a00007 	mov	r0, r7
+ffff1184:	eaffffdd 	b	0xffff1100
+
+ffff1188:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}
+ffff118c:	e1a08000 	mov	r8, r0
+ffff1190:	e1a05001 	mov	r5, r1
+ffff1194:	e3a04000 	mov	r4, #0
+ffff1198:	e3a09000 	mov	r9, #0
+ffff119c:	e1d560b2 	ldrh	r6, [r5, #2]
+ffff11a0:	e3a07000 	mov	r7, #0
+ffff11a4:	e5989024 	ldr	r9, [r8, #36]	; 0x24
+ffff11a8:	e599400c 	ldr	r4, [r9, #12]
+ffff11ac:	e5d50001 	ldrb	r0, [r5, #1]
+ffff11b0:	e3500006 	cmp	r0, #6
+ffff11b4:	0a000002 	beq	0xffff11c4
+ffff11b8:	e35000fe 	cmp	r0, #254	; 0xfe
+ffff11bc:	1a000046 	bne	0xffff12dc
+
+ffff11c0:	ea00003e 	b	0xffff12c0
+ffff11c4:	e320f000 	nop	{0}
+ffff11c8:	e5d50000 	ldrb	r0, [r5]
+ffff11cc:	e3500080 	cmp	r0, #128	; 0x80
+ffff11d0:	0a000000 	beq	0xffff11d8
+ffff11d4:	ea000042 	b	0xffff12e4
+ffff11d8:	e1a00446 	asr	r0, r6, #8
+ffff11dc:	e3500001 	cmp	r0, #1
+ffff11e0:	0a000004 	beq	0xffff11f8
+ffff11e4:	e3500002 	cmp	r0, #2
+ffff11e8:	0a000011 	beq	0xffff1234
+ffff11ec:	e3500003 	cmp	r0, #3
+ffff11f0:	1a000030 	bne	0xffff12b8
+
+ffff11f4:	ea00001f 	b	0xffff1278
+ffff11f8:	e320f000 	nop	{0}
+ffff11fc:	e1d500b6 	ldrh	r0, [r5, #6]
+ffff1200:	e3500012 	cmp	r0, #18
+ffff1204:	9a000001 	bls	0xffff1210
+ffff1208:	e3a07012 	mov	r7, #18
+ffff120c:	ea000000 	b	0xffff1214
+ffff1210:	e1d570b6 	ldrh	r7, [r5, #6]
+ffff1214:	e5981000 	ldr	r1, [r8]
+ffff1218:	e1a02007 	mov	r2, r7
+ffff121c:	e5940000 	ldr	r0, [r4]
+ffff1220:	ebfffda3 	bl	0xffff08b4
+ffff1224:	e5847004 	str	r7, [r4, #4]
+ffff1228:	e3a00000 	mov	r0, #0
+ffff122c:	e5c40008 	strb	r0, [r4, #8]
+ffff1230:	ea000020 	b	0xffff12b8
+ffff1234:	e320f000 	nop	{0}
+ffff1238:	e20630ff 	and	r3, r6, #255	; 0xff
+ffff123c:	e1a02446 	asr	r2, r6, #8
+ffff1240:	e1a00008 	mov	r0, r8
+ffff1244:	e5941000 	ldr	r1, [r4]
+ffff1248:	ebffffa3 	bl	0xffff10dc
+ffff124c:	e1a07000 	mov	r7, r0
+ffff1250:	e1d500b6 	ldrh	r0, [r5, #6]
+ffff1254:	e1500007 	cmp	r0, r7
+ffff1258:	ba000001 	blt	0xffff1264
+ffff125c:	e5847004 	str	r7, [r4, #4]
+ffff1260:	ea000001 	b	0xffff126c
+ffff1264:	e1d500b6 	ldrh	r0, [r5, #6]
+ffff1268:	e5840004 	str	r0, [r4, #4]
+ffff126c:	e3a00000 	mov	r0, #0
+ffff1270:	e5c40008 	strb	r0, [r4, #8]
+ffff1274:	ea00000f 	b	0xffff12b8
+ffff1278:	e320f000 	nop	{0}
+ffff127c:	e20610ff 	and	r1, r6, #255	; 0xff
+ffff1280:	e3510000 	cmp	r1, #0
+ffff1284:	1a000009 	bne	0xffff12b0
+
+ffff1288:	e5940000 	ldr	r0, [r4]
+ffff128c:	e3a02004 	mov	r2, #4
+ffff1290:	e5c02000 	strb	r2, [r0]
+ffff1294:	e3a02003 	mov	r2, #3
+ffff1298:	e5c02001 	strb	r2, [r0, #1]
+ffff129c:	e3a02009 	mov	r2, #9
+ffff12a0:	e5c02002 	strb	r2, [r0, #2]
+ffff12a4:	e3a02004 	mov	r2, #4
+ffff12a8:	e5c02003 	strb	r2, [r0, #3]
+ffff12ac:	ea000001 	b	0xffff12b8
+ffff12b0:	e320f000 	nop	{0}
+ffff12b4:	e320f000 	nop	{0}
+ffff12b8:	e320f000 	nop	{0}
+ffff12bc:	ea000008 	b	0xffff12e4
+ffff12c0:	e320f000 	nop	{0}
+ffff12c4:	e5940000 	ldr	r0, [r4]
+ffff12c8:	e3a01001 	mov	r1, #1
+ffff12cc:	e5841004 	str	r1, [r4, #4]
+ffff12d0:	e3a01000 	mov	r1, #0
+ffff12d4:	e5c01000 	strb	r1, [r0]
+ffff12d8:	ea000001 	b	0xffff12e4
+ffff12dc:	e320f000 	nop	{0}
+ffff12e0:	e320f000 	nop	{0}
+ffff12e4:	e320f000 	nop	{0}
+ffff12e8:	e3a02001 	mov	r2, #1
+ffff12ec:	e1a01004 	mov	r1, r4
+ffff12f0:	e1a00008 	mov	r0, r8
+ffff12f4:	ebffff6f 	bl	0xffff10b8
+ffff12f8:	e3a00000 	mov	r0, #0
+ffff12fc:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff1300:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff1304:	e1a06000 	mov	r6, r0
+ffff1308:	e3a08000 	mov	r8, #0
+ffff130c:	e3a04000 	mov	r4, #0
+ffff1310:	e1a07006 	mov	r7, r6
+ffff1314:	e3a00000 	mov	r0, #0
+ffff1318:	ebfffe8e 	bl	0xffff0d58
+ffff131c:	e59f05a8 	ldr	r0, [pc, #1448]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1320:	e1d048b8 	ldrh	r4, [r0, #136]	; 0x88
+ffff1324:	e3540008 	cmp	r4, #8
+ffff1328:	0a000008 	beq	0xffff1350
+ffff132c:	e3a05000 	mov	r5, #0
+ffff1330:	ea000002 	b	0xffff1340
+ffff1334:	e59f0590 	ldr	r0, [pc, #1424]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1338:	e1d048b8 	ldrh	r4, [r0, #136]	; 0x88
+ffff133c:	e2855001 	add	r5, r5, #1
+ffff1340:	e3550010 	cmp	r5, #16
+ffff1344:	aa000001 	bge	0xffff1350
+ffff1348:	e3540008 	cmp	r4, #8
+ffff134c:	1afffff8 	bne	0xffff1334
+
+ffff1350:	ea000004 	b	0xffff1368
+ffff1354:	e59f0570 	ldr	r0, [pc, #1392]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1358:	e5d00000 	ldrb	r0, [r0]
+ffff135c:	e5c70000 	strb	r0, [r7]
+ffff1360:	e2877001 	add	r7, r7, #1
+ffff1364:	e2888001 	add	r8, r8, #1
+ffff1368:	e1b00004 	movs	r0, r4
+ffff136c:	e2444001 	sub	r4, r4, #1
+ffff1370:	1afffff7 	bne	0xffff1354
+
+ffff1374:	e1a00008 	mov	r0, r8
+ffff1378:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff137c:	e92d47fc 	push	{r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ffff1380:	e1a04000 	mov	r4, r0
+ffff1384:	e3a06000 	mov	r6, #0
+ffff1388:	e3a09000 	mov	r9, #0
+ffff138c:	e5946024 	ldr	r6, [r4, #36]	; 0x24
+ffff1390:	e596900c 	ldr	r9, [r6, #12]
+ffff1394:	e5d60004 	ldrb	r0, [r6, #4]
+ffff1398:	ebfffe6e 	bl	0xffff0d58
+ffff139c:	e59f0528 	ldr	r0, [pc, #1320]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff13a0:	e1d058b2 	ldrh	r5, [r0, #130]	; 0x82
+ffff13a4:	e3150004 	tst	r5, #4
+ffff13a8:	0a000005 	beq	0xffff13c4
+ffff13ac:	e3a00000 	mov	r0, #0
+ffff13b0:	e59f1514 	ldr	r1, [pc, #1300]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff13b4:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff13b8:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff13bc:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff13c0:	e8bd87fc 	pop	{r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff13c4:	e3150010 	tst	r5, #16
+ffff13c8:	0a000007 	beq	0xffff13ec
+ffff13cc:	e59f04f8 	ldr	r0, [pc, #1272]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff13d0:	e1d008b2 	ldrh	r0, [r0, #130]	; 0x82
+ffff13d4:	e3c00010 	bic	r0, r0, #16
+ffff13d8:	e59f14ec 	ldr	r1, [pc, #1260]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff13dc:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff13e0:	e3a00000 	mov	r0, #0
+ffff13e4:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff13e8:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff13ec:	e5940024 	ldr	r0, [r4, #36]	; 0x24
+ffff13f0:	e5900030 	ldr	r0, [r0, #48]	; 0x30
+ffff13f4:	e3500005 	cmp	r0, #5
+ffff13f8:	308ff100 	addcc	pc, pc, r0, lsl #2
+ffff13fc:	ea00009c 	b	0xffff1674
+ffff1400:	ea000003 	b	0xffff1414
+ffff1404:	ea000066 	b	0xffff15a4
+ffff1408:	ea00006f 	b	0xffff15cc
+ffff140c:	ea000078 	b	0xffff15f4
+ffff1410:	ea000092 	b	0xffff1660
+ffff1414:	e320f000 	nop	{0}
+ffff1418:	e3150001 	tst	r5, #1
+ffff141c:	0a00005f 	beq	0xffff15a0
+ffff1420:	e1a0000d 	mov	r0, sp
+ffff1424:	ebffffb5 	bl	0xffff1300
+ffff1428:	e1a0a000 	mov	sl, r0
+ffff142c:	e35a0008 	cmp	sl, #8
+ffff1430:	0a000003 	beq	0xffff1444
+ffff1434:	e3a00060 	mov	r0, #96	; 0x60
+ffff1438:	e59f148c 	ldr	r1, [pc, #1164]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff143c:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff1440:	eaffffde 	b	0xffff13c0
+ffff1444:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1448:	e281003e 	add	r0, r1, #62	; 0x3e
+ffff144c:	e3a02008 	mov	r2, #8
+ffff1450:	e1a0100d 	mov	r1, sp
+ffff1454:	ebfffd16 	bl	0xffff08b4
+ffff1458:	e3a00001 	mov	r0, #1
+ffff145c:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1460:	e5c1003d 	strb	r0, [r1, #61]	; 0x3d
+ffff1464:	e5dd0001 	ldrb	r0, [sp, #1]
+ffff1468:	e3500005 	cmp	r0, #5
+ffff146c:	0a000014 	beq	0xffff14c4
+ffff1470:	e3500009 	cmp	r0, #9
+ffff1474:	0a000002 	beq	0xffff1484
+ffff1478:	e350000b 	cmp	r0, #11
+ffff147c:	1a000020 	bne	0xffff1504
+
+ffff1480:	ea000009 	b	0xffff14ac
+ffff1484:	e320f000 	nop	{0}
+ffff1488:	e5dd0000 	ldrb	r0, [sp]
+ffff148c:	e3500000 	cmp	r0, #0
+ffff1490:	1a000004 	bne	0xffff14a8
+
+ffff1494:	e320f000 	nop	{0}
+ffff1498:	e3a00048 	mov	r0, #72	; 0x48
+ffff149c:	e59f1428 	ldr	r1, [pc, #1064]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff14a0:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff14a4:	eaffffc5 	b	0xffff13c0
+ffff14a8:	ea00001a 	b	0xffff1518
+ffff14ac:	e320f000 	nop	{0}
+ffff14b0:	e5dd0000 	ldrb	r0, [sp]
+ffff14b4:	e3500001 	cmp	r0, #1
+ffff14b8:	1a000000 	bne	0xffff14c0
+
+ffff14bc:	eafffff5 	b	0xffff1498
+ffff14c0:	ea000014 	b	0xffff1518
+ffff14c4:	e320f000 	nop	{0}
+ffff14c8:	e5dd0000 	ldrb	r0, [sp]
+ffff14cc:	e3500000 	cmp	r0, #0
+ffff14d0:	1a00000a 	bne	0xffff1500
+
+ffff14d4:	e1dd00b2 	ldrh	r0, [sp, #2]
+ffff14d8:	e200707f 	and	r7, r0, #127	; 0x7f
+ffff14dc:	e5940024 	ldr	r0, [r4, #36]	; 0x24
+ffff14e0:	e5c0703c 	strb	r7, [r0, #60]	; 0x3c
+ffff14e4:	e3a0004a 	mov	r0, #74	; 0x4a
+ffff14e8:	e59f13dc 	ldr	r1, [pc, #988]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff14ec:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff14f0:	e3a00003 	mov	r0, #3
+ffff14f4:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff14f8:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff14fc:	eaffffaf 	b	0xffff13c0
+ffff1500:	ea000004 	b	0xffff1518
+ffff1504:	e320f000 	nop	{0}
+ffff1508:	e3a00040 	mov	r0, #64	; 0x40
+ffff150c:	e59f13b8 	ldr	r1, [pc, #952]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1510:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff1514:	e320f000 	nop	{0}
+ffff1518:	e320f000 	nop	{0}
+ffff151c:	e5dd0000 	ldrb	r0, [sp]
+ffff1520:	e3100080 	tst	r0, #128	; 0x80
+ffff1524:	0a000003 	beq	0xffff1538
+ffff1528:	e3a00001 	mov	r0, #1
+ffff152c:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1530:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff1534:	ea000002 	b	0xffff1544
+ffff1538:	e3a00002 	mov	r0, #2
+ffff153c:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1540:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff1544:	e1a0100d 	mov	r1, sp
+ffff1548:	e1a00004 	mov	r0, r4
+ffff154c:	ebffff0d 	bl	0xffff1188
+ffff1550:	e1a08000 	mov	r8, r0
+ffff1554:	e3580000 	cmp	r8, #0
+ffff1558:	aa000008 	bge	0xffff1580
+ffff155c:	e3a00060 	mov	r0, #96	; 0x60
+ffff1560:	e59f1364 	ldr	r1, [pc, #868]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1564:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff1568:	e3a00048 	mov	r0, #72	; 0x48
+ffff156c:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff1570:	e3a00000 	mov	r0, #0
+ffff1574:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1578:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff157c:	ea000006 	b	0xffff159c
+ffff1580:	e5940024 	ldr	r0, [r4, #36]	; 0x24
+ffff1584:	e5d0003d 	ldrb	r0, [r0, #61]	; 0x3d
+ffff1588:	e3500000 	cmp	r0, #0
+ffff158c:	0a000002 	beq	0xffff159c
+ffff1590:	e3a00000 	mov	r0, #0
+ffff1594:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1598:	e5c1003d 	strb	r0, [r1, #61]	; 0x3d
+ffff159c:	e320f000 	nop	{0}
+ffff15a0:	ea000035 	b	0xffff167c
+ffff15a4:	e320f000 	nop	{0}
+ffff15a8:	e3150002 	tst	r5, #2
+ffff15ac:	1a000005 	bne	0xffff15c8
+
+ffff15b0:	e3590000 	cmp	r9, #0
+ffff15b4:	0a000003 	beq	0xffff15c8
+ffff15b8:	e1a02009 	mov	r2, r9
+ffff15bc:	e1a01006 	mov	r1, r6
+ffff15c0:	e1a00004 	mov	r0, r4
+ffff15c4:	ebfffd83 	bl	0xffff0bd8
+ffff15c8:	ea00002b 	b	0xffff167c
+ffff15cc:	e320f000 	nop	{0}
+ffff15d0:	e3150001 	tst	r5, #1
+ffff15d4:	0a000005 	beq	0xffff15f0
+ffff15d8:	e3590000 	cmp	r9, #0
+ffff15dc:	0a000003 	beq	0xffff15f0
+ffff15e0:	e1a02009 	mov	r2, r9
+ffff15e4:	e1a01006 	mov	r1, r6
+ffff15e8:	e1a00004 	mov	r0, r4
+ffff15ec:	ebfffd09 	bl	0xffff0a18
+ffff15f0:	ea000021 	b	0xffff167c
+ffff15f4:	e320f000 	nop	{0}
+ffff15f8:	e5940024 	ldr	r0, [r4, #36]	; 0x24
+ffff15fc:	e5d0003f 	ldrb	r0, [r0, #63]	; 0x3f
+ffff1600:	e3500005 	cmp	r0, #5
+ffff1604:	1a00000e 	bne	0xffff1644
+
+ffff1608:	e3a000c0 	mov	r0, #192	; 0xc0
+ffff160c:	e59f12b8 	ldr	r1, [pc, #696]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1610:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff1614:	e3a07000 	mov	r7, #0
+ffff1618:	ebfffe1c 	bl	0xffff0e90
+ffff161c:	e1a07000 	mov	r7, r0
+ffff1620:	e3a00000 	mov	r0, #0
+ffff1624:	ebfffdcb 	bl	0xffff0d58
+ffff1628:	e5940024 	ldr	r0, [r4, #36]	; 0x24
+ffff162c:	e5d0003c 	ldrb	r0, [r0, #60]	; 0x3c
+ffff1630:	e59f1294 	ldr	r1, [pc, #660]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1634:	e5c10098 	strb	r0, [r1, #152]	; 0x98
+ffff1638:	e1a00007 	mov	r0, r7
+ffff163c:	ebfffdc5 	bl	0xffff0d58
+ffff1640:	ea000001 	b	0xffff164c
+ffff1644:	e320f000 	nop	{0}
+ffff1648:	e320f000 	nop	{0}
+ffff164c:	e320f000 	nop	{0}
+ffff1650:	e3a00000 	mov	r0, #0
+ffff1654:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1658:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff165c:	ea000006 	b	0xffff167c
+ffff1660:	e320f000 	nop	{0}
+ffff1664:	e3a00000 	mov	r0, #0
+ffff1668:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff166c:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff1670:	ea000001 	b	0xffff167c
+ffff1674:	e320f000 	nop	{0}
+ffff1678:	e320f000 	nop	{0}
+ffff167c:	e320f000 	nop	{0}
+ffff1680:	e320f000 	nop	{0}
+ffff1684:	eaffff4d 	b	0xffff13c0
+
+ffff1688:	e92d4070 	push	{r4, r5, r6, lr}
+ffff168c:	e1a04000 	mov	r4, r0
+ffff1690:	e3a05000 	mov	r5, #0
+ffff1694:	e5d40004 	ldrb	r0, [r4, #4]
+ffff1698:	ebfffdae 	bl	0xffff0d58
+ffff169c:	e5d40005 	ldrb	r0, [r4, #5]
+ffff16a0:	e3100080 	tst	r0, #128	; 0x80
+ffff16a4:	0a00000d 	beq	0xffff16e0
+ffff16a8:	e3a00048 	mov	r0, #72	; 0x48
+ffff16ac:	e59f1218 	ldr	r1, [pc, #536]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff16b0:	e1c108b2 	strh	r0, [r1, #130]	; 0x82
+ffff16b4:	e5940008 	ldr	r0, [r4, #8]
+ffff16b8:	e7df059f 	bfc	r0, #11, #21
+ffff16bc:	e5810080 	str	r0, [r1, #128]	; 0x80
+ffff16c0:	e1a00001 	mov	r0, r1
+ffff16c4:	e5d05048 	ldrb	r5, [r0, #72]	; 0x48
+ffff16c8:	e5d40004 	ldrb	r0, [r4, #4]
+ffff16cc:	e3a01001 	mov	r1, #1
+ffff16d0:	e1850011 	orr	r0, r5, r1, lsl r0
+ffff16d4:	e59f11f0 	ldr	r1, [pc, #496]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff16d8:	e5c10048 	strb	r0, [r1, #72]	; 0x48
+ffff16dc:	ea00000c 	b	0xffff1714
+ffff16e0:	e3a00090 	mov	r0, #144	; 0x90
+ffff16e4:	e59f11e0 	ldr	r1, [pc, #480]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff16e8:	e1c108b6 	strh	r0, [r1, #134]	; 0x86
+ffff16ec:	e5940008 	ldr	r0, [r4, #8]
+ffff16f0:	e7df059f 	bfc	r0, #11, #21
+ffff16f4:	e1c108b4 	strh	r0, [r1, #132]	; 0x84
+ffff16f8:	e1a00001 	mov	r0, r1
+ffff16fc:	e5d0504a 	ldrb	r5, [r0, #74]	; 0x4a
+ffff1700:	e5d40004 	ldrb	r0, [r4, #4]
+ffff1704:	e3a01001 	mov	r1, #1
+ffff1708:	e1850011 	orr	r0, r5, r1, lsl r0
+ffff170c:	e59f11b8 	ldr	r1, [pc, #440]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1710:	e5c1004a 	strb	r0, [r1, #74]	; 0x4a
+ffff1714:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff1718:	e92d4010 	push	{r4, lr}
+ffff171c:	e1a04000 	mov	r4, r0
+ffff1720:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1724:	e2810020 	add	r0, r1, #32
+ffff1728:	ebffffd6 	bl	0xffff1688
+ffff172c:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff1730:	e2810010 	add	r0, r1, #16
+ffff1734:	ebffffd3 	bl	0xffff1688
+ffff1738:	e8bd8010 	pop	{r4, pc}
+
+ffff173c:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}
+ffff1740:	e3a08000 	mov	r8, #0
+ffff1744:	e3a04000 	mov	r4, #0
+ffff1748:	e3a06000 	mov	r6, #0
+ffff174c:	e3a09000 	mov	r9, #0
+ffff1750:	e3a0a000 	mov	sl, #0
+ffff1754:	ebfffdcd 	bl	0xffff0e90
+ffff1758:	e1a08000 	mov	r8, r0
+ffff175c:	e59f0180 	ldr	r0, [pc, #384]	; 0xffff18e4 =0x00007d00
+ffff1760:	e5900000 	ldr	r0, [r0]
+ffff1764:	eb0003b9 	bl	0xffff2650
+ffff1768:	e1a06000 	mov	r6, r0
+ffff176c:	e59f1170 	ldr	r1, [pc, #368]	; 0xffff18e4 =0x00007d00
+ffff1770:	e5910000 	ldr	r0, [r1]
+ffff1774:	e5901038 	ldr	r1, [r0, #56]	; 0x38
+ffff1778:	e3510000 	cmp	r1, #0
+ffff177c:	1a000002 	bne	0xffff178c
+
+ffff1780:	e59f1144 	ldr	r1, [pc, #324]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1784:	e5d11044 	ldrb	r1, [r1, #68]	; 0x44
+ffff1788:	e5801038 	str	r1, [r0, #56]	; 0x38
+ffff178c:	e320f000 	nop	{0}
+ffff1790:	e5901038 	ldr	r1, [r0, #56]	; 0x38
+ffff1794:	e1a09001 	mov	r9, r1
+ffff1798:	e59f1144 	ldr	r1, [pc, #324]	; 0xffff18e4 =0x00007d00
+ffff179c:	e5910000 	ldr	r0, [r1]
+ffff17a0:	e590103c 	ldr	r1, [r0, #60]	; 0x3c
+ffff17a4:	e3510000 	cmp	r1, #0
+ffff17a8:	1a000002 	bne	0xffff17b8
+
+ffff17ac:	e59f1118 	ldr	r1, [pc, #280]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff17b0:	e5d11046 	ldrb	r1, [r1, #70]	; 0x46
+ffff17b4:	e580103c 	str	r1, [r0, #60]	; 0x3c
+ffff17b8:	e320f000 	nop	{0}
+ffff17bc:	e590103c 	ldr	r1, [r0, #60]	; 0x3c
+ffff17c0:	e1a0a001 	mov	sl, r1
+ffff17c4:	e3160004 	tst	r6, #4
+ffff17c8:	0a000023 	beq	0xffff185c
+ffff17cc:	e3a00002 	mov	r0, #2
+ffff17d0:	e59f110c 	ldr	r1, [pc, #268]	; 0xffff18e4 =0x00007d00
+ffff17d4:	e5911000 	ldr	r1, [r1]
+ffff17d8:	e5911024 	ldr	r1, [r1, #36]	; 0x24
+ffff17dc:	e5c10034 	strb	r0, [r1, #52]	; 0x34
+ffff17e0:	e3a00000 	mov	r0, #0
+ffff17e4:	e59f10f8 	ldr	r1, [pc, #248]	; 0xffff18e4 =0x00007d00
+ffff17e8:	e5911000 	ldr	r1, [r1]
+ffff17ec:	e5911024 	ldr	r1, [r1, #36]	; 0x24
+ffff17f0:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff17f4:	e3a01004 	mov	r1, #4
+ffff17f8:	e59f00e4 	ldr	r0, [pc, #228]	; 0xffff18e4 =0x00007d00
+ffff17fc:	e5900000 	ldr	r0, [r0]
+ffff1800:	eb0003bf 	bl	0xffff2704
+
+ffff1804:	e59f10c0 	ldr	r1, [pc, #192]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1808:	e5c18042 	strb	r8, [r1, #66]	; 0x42
+ffff180c:	ebfffc43 	bl	0xffff0920
+ffff1810:	e59f00b4 	ldr	r0, [pc, #180]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1814:	e5d00048 	ldrb	r0, [r0, #72]	; 0x48
+ffff1818:	e3800001 	orr	r0, r0, #1
+ffff181c:	e59f10a8 	ldr	r1, [pc, #168]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1820:	e5c10048 	strb	r0, [r1, #72]	; 0x48
+ffff1824:	e59f00b8 	ldr	r0, [pc, #184]	; 0xffff18e4 =0x00007d00
+ffff1828:	e5900000 	ldr	r0, [r0]
+ffff182c:	ebffffb9 	bl	0xffff1718
+ffff1830:	e3a05000 	mov	r5, #0
+ffff1834:	ebfffd95 	bl	0xffff0e90
+ffff1838:	e1a05000 	mov	r5, r0
+ffff183c:	e3a00000 	mov	r0, #0
+ffff1840:	ebfffd44 	bl	0xffff0d58
+ffff1844:	e3a00000 	mov	r0, #0
+ffff1848:	e59f107c 	ldr	r1, [pc, #124]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff184c:	e5c10098 	strb	r0, [r1, #152]	; 0x98
+ffff1850:	e1a00005 	mov	r0, r5
+ffff1854:	ebfffd3f 	bl	0xffff0d58
+
+ffff1858:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff185c:	e3160002 	tst	r6, #2
+ffff1860:	0a000003 	beq	0xffff1874
+
+ffff1864:	e3a01002 	mov	r1, #2
+ffff1868:	e59f0074 	ldr	r0, [pc, #116]	; 0xffff18e4 =0x00007d00
+ffff186c:	e5900000 	ldr	r0, [r0]
+ffff1870:	eb0003a3 	bl	0xffff2704
+
+ffff1874:	e3160001 	tst	r6, #1
+ffff1878:	0a000008 	beq	0xffff18a0
+ffff187c:	e3a01001 	mov	r1, #1
+ffff1880:	e59f005c 	ldr	r0, [pc, #92]	; 0xffff18e4 =0x00007d00
+ffff1884:	e5900000 	ldr	r0, [r0]
+ffff1888:	eb00039d 	bl	0xffff2704
+ffff188c:	e3a00000 	mov	r0, #0
+ffff1890:	e59f104c 	ldr	r1, [pc, #76]	; 0xffff18e4 =0x00007d00
+ffff1894:	e5911000 	ldr	r1, [r1]
+ffff1898:	e5911024 	ldr	r1, [r1, #36]	; 0x24
+ffff189c:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff18a0:	e3190001 	tst	r9, #1
+ffff18a4:	0a000006 	beq	0xffff18c4
+
+ffff18a8:	e3a01001 	mov	r1, #1
+ffff18ac:	e59f0030 	ldr	r0, [pc, #48]	; 0xffff18e4 =0x00007d00
+ffff18b0:	e5900000 	ldr	r0, [r0]
+ffff18b4:	eb00038a 	bl	0xffff26e4
+ffff18b8:	e59f0024 	ldr	r0, [pc, #36]	; 0xffff18e4 =0x00007d00
+ffff18bc:	e5900000 	ldr	r0, [r0]
+ffff18c0:	ebfffead 	bl	0xffff137c
+
+ffff18c4:	e3a04001 	mov	r4, #1
+ffff18c8:	ea000022 	b	0xffff1958
+
+	;; Global Offset Table
+ffff18cc:	01c19000			 	; USB_OTG_BASE
+ffff18d0:	01c19004				; E_HCSPARAMS
+ffff18d4:	01c19008				; E_HCCPARAMS
+ffff18d8:	01c1900c				; E_HCSPORTROUTE
+ffff18dc:	01c19010				; E_USBCMD
+ffff18e0:	01c19086
+ffff18e4:	00007d00
+
+ffff18e8:	e3a00001 	mov	r0, #1
+ffff18ec:	e1a07410 	lsl	r7, r0, r4
+ffff18f0:	e1190007 	tst	r9, r7
+ffff18f4:	0a000016 	beq	0xffff1954
+
+ffff18f8:	e3a05000 	mov	r5, #0
+ffff18fc:	e20710ff 	and	r1, r7, #255	; 0xff
+ffff1900:	e51f0024 	ldr	r0, [pc, #-36]	; 0xffff18e4 =0x00007d00
+ffff1904:	e5900000 	ldr	r0, [r0]
+ffff1908:	eb000375 	bl	0xffff26e4
+ffff190c:	e3a05001 	mov	r5, #1
+ffff1910:	ea00000c 	b	0xffff1948
+
+ffff1914:	e51f0038 	ldr	r0, [pc, #-56]	; 0xffff18e4 =0x00007d00
+ffff1918:	e5900000 	ldr	r0, [r0]
+ffff191c:	e5900024 	ldr	r0, [r0, #36]	; 0x24
+ffff1920:	e0800205 	add	r0, r0, r5, lsl #4
+ffff1924:	e5d00005 	ldrb	r0, [r0, #5]
+ffff1928:	e2000080 	and	r0, r0, #128	; 0x80
+ffff192c:	e3500080 	cmp	r0, #128	; 0x80
+ffff1930:	1a000003 	bne	0xffff1944
+
+ffff1934:	e1a01005 	mov	r1, r5
+ffff1938:	e51f005c 	ldr	r0, [pc, #-92]	; 0xffff18e4 =0x00007d00
+ffff193c:	e5900000 	ldr	r0, [r0]
+ffff1940:	ebfffd07 	bl	0xffff0d64
+
+ffff1944:	e2855001 	add	r5, r5, #1
+
+ffff1948:	e3550003 	cmp	r5, #3
+ffff194c:	bafffff0 	blt	0xffff1914
+
+ffff1950:	e320f000 	nop	{0}
+
+ffff1954:	e2844001 	add	r4, r4, #1
+ffff1958:	e3540005 	cmp	r4, #5
+ffff195c:	daffffe1 	ble	0xffff18e8
+
+ffff1960:	e3a04001 	mov	r4, #1
+ffff1964:	ea000020 	b	0xffff19ec
+
+ffff1968:	e3a00001 	mov	r0, #1
+ffff196c:	e1a07410 	lsl	r7, r0, r4
+ffff1970:	e11a0007 	tst	sl, r7
+ffff1974:	0a00001b 	beq	0xffff19e8
+
+ffff1978:	e3a00000 	mov	r0, #0
+ffff197c:	e1a05000 	mov	r5, r0
+ffff1980:	e51f20a4 	ldr	r2, [pc, #-164]	; 0xffff18e4 =0x00007d00
+ffff1984:	e20710ff 	and	r1, r7, #255	; 0xff
+ffff1988:	e5920000 	ldr	r0, [r2]
+ffff198c:	e590203c 	ldr	r2, [r0, #60]	; 0x3c
+ffff1990:	e1c22001 	bic	r2, r2, r1
+ffff1994:	e580203c 	str	r2, [r0, #60]	; 0x3c
+ffff1998:	e51f20d4 	ldr	r2, [pc, #-212]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff199c:	e5c21046 	strb	r1, [r2, #70]	; 0x46
+ffff19a0:	e320f000 	nop	{0}
+ffff19a4:	e3a05001 	mov	r5, #1
+ffff19a8:	ea00000b 	b	0xffff19dc
+
+ffff19ac:	e51f00d0 	ldr	r0, [pc, #-208]	; 0xffff18e4 =0x00007d00
+ffff19b0:	e5900000 	ldr	r0, [r0]
+ffff19b4:	e5900024 	ldr	r0, [r0, #36]	; 0x24
+ffff19b8:	e0800205 	add	r0, r0, r5, lsl #4
+ffff19bc:	e5d00005 	ldrb	r0, [r0, #5]
+ffff19c0:	e3100080 	tst	r0, #128	; 0x80
+ffff19c4:	1a000003 	bne	0xffff19d8
+
+ffff19c8:	e1a01005 	mov	r1, r5
+ffff19cc:	e51f00f0 	ldr	r0, [pc, #-240]	; 0xffff18e4 =0x00007d00
+ffff19d0:	e5900000 	ldr	r0, [r0]
+ffff19d4:	ebfffce2 	bl	0xffff0d64
+
+ffff19d8:	e2855001 	add	r5, r5, #1
+
+ffff19dc:	e3550003 	cmp	r5, #3
+ffff19e0:	bafffff1 	blt	0xffff19ac
+ffff19e4:	e320f000 	nop	{0}
+
+ffff19e8:	e2844001 	add	r4, r4, #1
+
+ffff19ec:	e3540005 	cmp	r4, #5
+ffff19f0:	daffffdc 	ble	0xffff1968
+ffff19f4:	ebfffbc9 	bl	0xffff0920
+ffff19f8:	e51f1134 	ldr	r1, [pc, #-308]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff19fc:	e5c18042 	strb	r8, [r1, #66]	; 0x42
+ffff1a00:	e51f1124 	ldr	r1, [pc, #-292]	; 0xffff18e4 =0x00007d00
+ffff1a04:	e5910000 	ldr	r0, [r1]
+ffff1a08:	e3a01000 	mov	r1, #0
+ffff1a0c:	e5801040 	str	r1, [r0, #64]	; 0x40
+ffff1a10:	e5801038 	str	r1, [r0, #56]	; 0x38
+ffff1a14:	e580103c 	str	r1, [r0, #60]	; 0x3c
+ffff1a18:	e320f000 	nop	{0}
+ffff1a1c:	e320f000 	nop	{0}
+ffff1a20:	eaffff8c 	b	0xffff1858
+
+ffff1a24:	e92d4010 	push	{r4, lr}
+ffff1a28:	e1a04000 	mov	r4, r0
+ffff1a2c:	ebffff42 	bl	0xffff173c
+ffff1a30:	e8bd8010 	pop	{r4, pc}
+
+ffff1a34:	e92d4010 	push	{r4, lr}
+ffff1a38:	e1a022a0 	lsr	r2, r0, #5
+ffff1a3c:	e1a04102 	lsl	r4, r2, #2
+ffff1a40:	e2841772 	add	r1, r4, #29884416	; 0x1c80000 GIC_DIST
+ffff1a44:	e2811d4a 	add	r1, r1, #4736	; 0x1280
+ffff1a48:	e200301f 	and	r3, r0, #31
+ffff1a4c:	e3a04001 	mov	r4, #1
+ffff1a50:	e1a04314 	lsl	r4, r4, r3
+ffff1a54:	e5814000 	str	r4, [r1]
+ffff1a58:	e8bd8010 	pop	{r4, pc}
+
+ffff1a5c:	e92d4070 	push	{r4, r5, r6, lr}
+ffff1a60:	e59f2cbc 	ldr	r2, [pc, #3260]	; 0xffff2724 =0x01010101
+ffff1a64:	e3a03000 	mov	r3, #0
+ffff1a68:	e59f4cb8 	ldr	r4, [pc, #3256]	; 0xffff2728 =01c81000 GIC_DIST
+ffff1a6c:	e5843000 	str	r3, [r4]
+ffff1a70:	e1c431c2 	bic	r3, r4, r2, asr #3
+ffff1a74:	e5933004 	ldr	r3, [r3, #4]
+ffff1a78:	e203301f 	and	r3, r3, #31
+ffff1a7c:	e2833001 	add	r3, r3, #1
+ffff1a80:	e1a01283 	lsl	r1, r3, #5
+ffff1a84:	e3510fff 	cmp	r1, #1020	; 0x3fc
+ffff1a88:	9a000001 	bls	0xffff1a94
+ffff1a8c:	e30013fc 	movw	r1, #1020	; 0x3fc
+ffff1a90:	ea000002 	b	0xffff1aa0
+ffff1a94:	e351008c 	cmp	r1, #140	; 0x8c
+ffff1a98:	2a000000 	bcs	0xffff1aa0
+ffff1a9c:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff1aa0:	e3a00020 	mov	r0, #32
+ffff1aa4:	ea000006 	b	0xffff1ac4
+ffff1aa8:	e3a03000 	mov	r3, #0
+ffff1aac:	e1a04220 	lsr	r4, r0, #4
+ffff1ab0:	e1a04104 	lsl	r4, r4, #2
+ffff1ab4:	e2844772 	add	r4, r4, #29884416	; 0x1c80000 GIC_DIST
+ffff1ab8:	e2844b07 	add	r4, r4, #7168	; 0x1c00
+ffff1abc:	e5843000 	str	r3, [r4]
+ffff1ac0:	e2800010 	add	r0, r0, #16
+ffff1ac4:	e350008c 	cmp	r0, #140	; 0x8c
+ffff1ac8:	3afffff6 	bcc	0xffff1aa8
+ffff1acc:	e3a00020 	mov	r0, #32
+ffff1ad0:	ea000007 	b	0xffff1af4
+ffff1ad4:	e59f3c50 	ldr	r3, [pc, #3152]	; 0xffff272c =0xa0a0a0a0
+0ffff1ad8:	e2404020 	sub	r4, r0, #32
+ffff1adc:	e1a04124 	lsr	r4, r4, #2
+ffff1ae0:	e59f5c48 	ldr	r5, [pc, #3144]	; 0xffff2730 =0x01c81420
+ffff1ae4:	e3a06004 	mov	r6, #4
+ffff1ae8:	e0245496 	mla	r4, r6, r4, r5
+ffff1aec:	e5843000 	str	r3, [r4]
+ffff1af0:	e2800004 	add	r0, r0, #4
+ffff1af4:	e350008c 	cmp	r0, #140	; 0x8c
+ffff1af8:	3afffff5 	bcc	0xffff1ad4
+ffff1afc:	e3a00020 	mov	r0, #32
+ffff1b00:	ea000006 	b	0xffff1b20
+ffff1b04:	e2403020 	sub	r3, r0, #32
+ffff1b08:	e1a03123 	lsr	r3, r3, #2
+ffff1b0c:	e59f4c20 	ldr	r4, [pc, #3104]	; 0xffff2734 =0x01c81820
+ffff1b10:	e3a05004 	mov	r5, #4
+ffff1b14:	e0234395 	mla	r3, r5, r3, r4
+ffff1b18:	e5832000 	str	r2, [r3]
+ffff1b1c:	e2800004 	add	r0, r0, #4
+ffff1b20:	e350008c 	cmp	r0, #140	; 0x8c
+ffff1b24:	3afffff6 	bcc	0xffff1b04
+ffff1b28:	e3a00020 	mov	r0, #32
+ffff1b2c:	ea000006 	b	0xffff1b4c
+ffff1b30:	e3e03000 	mvn	r3, #0
+ffff1b34:	e1a042a0 	lsr	r4, r0, #5
+ffff1b38:	e1a04104 	lsl	r4, r4, #2
+ffff1b3c:	e2844507 	add	r4, r4, #29360128	; 0x1c00000
+ffff1b40:	e2844a81 	add	r4, r4, #528384	; 0x81000
+ffff1b44:	e5843180 	str	r3, [r4, #384]	; 0x180
+ffff1b48:	e2800020 	add	r0, r0, #32
+ffff1b4c:	e350008c 	cmp	r0, #140	; 0x8c
+ffff1b50:	3afffff6 	bcc	0xffff1b30
+ffff1b54:	e3a00020 	mov	r0, #32
+ffff1b58:	ea000006 	b	0xffff1b78
+ffff1b5c:	e3e03000 	mvn	r3, #0
+ffff1b60:	e1a042a0 	lsr	r4, r0, #5
+ffff1b64:	e1a04104 	lsl	r4, r4, #2
+ffff1b68:	e2844507 	add	r4, r4, #29360128	; 0x1c00000
+ffff1b6c:	e2844a81 	add	r4, r4, #528384	; 0x81000
+ffff1b70:	e5843380 	str	r3, [r4, #896]	; 0x380
+ffff1b74:	e2800020 	add	r0, r0, #32
+ffff1b78:	e350008c 	cmp	r0, #140	; 0x8c
+ffff1b7c:	3afffff6 	bcc	0xffff1b5c
+ffff1b80:	e3a03001 	mov	r3, #1
+ffff1b84:	e59f4b9c 	ldr	r4, [pc, #2972]	; 0xffff2728 =01c81000 GIC_DIST
+ffff1b88:	e5843000 	str	r3, [r4]
+ffff1b8c:	e320f000 	nop	{0}
+ffff1b90:	eaffffc1 	b	0xffff1a9c
+
+ffff1b94:	e92d4010 	push	{r4, lr}
+ffff1b98:	e3a01000 	mov	r1, #0
+ffff1b9c:	e59f2b94 	ldr	r2, [pc, #2964]	; 0xffff2738 =0x01c82000 GIC_CPUIF
+ffff1ba0:	e5821000 	str	r1, [r2]
+ffff1ba4:	e2411801 	sub	r1, r1, #65536	; 0x10000
+ffff1ba8:	e0822241 	add	r2, r2, r1, asr #4
+ffff1bac:	e5821180 	str	r1, [r2, #384]	; 0x180
+ffff1bb0:	e30f1fff 	movw	r1, #65535	; 0xffff
+ffff1bb4:	e5821100 	str	r1, [r2, #256]	; 0x100
+ffff1bb8:	e3a00000 	mov	r0, #0
+ffff1bbc:	ea000006 	b	0xffff1bdc
+ffff1bc0:	e59f1b64 	ldr	r1, [pc, #2916]	; 0xffff272c =0xa0a0a0a0
+ffff1bc4:	e1a02120 	lsr	r2, r0, #2
+ffff1bc8:	e1a02102 	lsl	r2, r2, #2
+ffff1bcc:	e2822772 	add	r2, r2, #29884416	; 0x1c80000 GIC_DIST
+ffff1bd0:	e2822b05 	add	r2, r2, #5120	; 0x1400
+ffff1bd4:	e5821000 	str	r1, [r2]
+ffff1bd8:	e2800004 	add	r0, r0, #4
+ffff1bdc:	e3500010 	cmp	r0, #16
+ffff1be0:	3afffff6 	bcc	0xffff1bc0
+ffff1be4:	e3a00010 	mov	r0, #16
+ffff1be8:	ea000007 	b	0xffff1c0c
+ffff1bec:	e59f1b38 	ldr	r1, [pc, #2872]	; 0xffff272c =0xa0a0a0a0
+ffff1bf0:	e2402010 	sub	r2, r0, #16
+ffff1bf4:	e1a02122 	lsr	r2, r2, #2
+ffff1bf8:	e59f3b3c 	ldr	r3, [pc, #2876]	; 0xffff273c =0x01c81410
+ffff1bfc:	e3a04004 	mov	r4, #4
+ffff1c00:	e0223294 	mla	r2, r4, r2, r3
+ffff1c04:	e5821000 	str	r1, [r2]
+ffff1c08:	e2800004 	add	r0, r0, #4
+ffff1c0c:	e3500020 	cmp	r0, #32
+ffff1c10:	3afffff5 	bcc	0xffff1bec
+ffff1c14:	e3a010f0 	mov	r1, #240	; 0xf0
+ffff1c18:	e59f2b18 	ldr	r2, [pc, #2840]	; 0xffff2738 =0x01c82000 GIC_CPUIF
+ffff1c1c:	e5821004 	str	r1, [r2, #4]
+ffff1c20:	e3a01001 	mov	r1, #1
+ffff1c24:	e5821000 	str	r1, [r2]
+ffff1c28:	e8bd8010 	pop	{r4, pc}
+
+ffff1c2c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff1c30:	e1a04000 	mov	r4, r0
+ffff1c34:	e1a062a4 	lsr	r6, r4, #5
+ffff1c38:	e1a00106 	lsl	r0, r6, #2
+ffff1c3c:	e2805772 	add	r5, r0, #29884416	; 0x1c80000 GIC_DIST
+ffff1c40:	e2855c11 	add	r5, r5, #4352	; 0x1100
+ffff1c44:	e204701f 	and	r7, r4, #31
+ffff1c48:	e3a03001 	mov	r3, #1
+ffff1c4c:	e1a02003 	mov	r2, r3
+ffff1c50:	e1a01007 	mov	r1, r7
+ffff1c54:	e1a00005 	mov	r0, r5
+ffff1c58:	ebfffb27 	bl	0xffff08fc
+ffff1c5c:	e3a00000 	mov	r0, #0
+ffff1c60:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff1c64:	e3a00000 	mov	r0, #0
+ffff1c68:	e3e01000 	mvn	r1, #0
+ffff1c6c:	e59f2ab4 	ldr	r2, [pc, #2740]	; 0xffff2728 =01c81000 GIC_DIST
+ffff1c70:	e5821180 	str	r1, [r2, #384]	; 0x180
+ffff1c74:	e5821184 	str	r1, [r2, #388]	; 0x184
+ffff1c78:	e5821188 	str	r1, [r2, #392]	; 0x188
+ffff1c7c:	e582118c 	str	r1, [r2, #396]	; 0x18c
+ffff1c80:	e5821190 	str	r1, [r2, #400]	; 0x190
+ffff1c84:	e12fff1e 	bx	lr
+
+ffff1c88:	e92d4010 	push	{r4, lr}
+ffff1c8c:	e3a00067 	mov	r0, #103	; 0x67
+ffff1c90:	ebffffe5 	bl	0xffff1c2c
+ffff1c94:	e8bd8010 	pop	{r4, pc}
+
+interrupt_handler:
+ffff1c98:	e92d4010 	push	{r4, lr}
+ffff1c9c:	e59f0a94 	ldr	r0, [pc, #2708]	; 0xffff2738 =0x01c82000 GIC_CPUIF
+ffff1ca0:	e590400c 	ldr	r4, [r0, #12]
+ffff1ca4:	e1a00004 	mov	r0, r4
+ffff1ca8:	e7df051f 	bfc	r0, #10, #22
+ffff1cac:	e1a04000 	mov	r4, r0
+ffff1cb0:	e3540067 	cmp	r4, #103	; 0x67
+ffff1cb4:	1a000001 	bne	0xffff1cc0
+
+ffff1cb8:	e1a00004 	mov	r0, r4
+ffff1cbc:	ebffff58 	bl	0xffff1a24
+ffff1cc0:	e59f0a70 	ldr	r0, [pc, #2672]	; 0xffff2738 =0x01c82000 GIC_CPUIF
+ffff1cc4:	e5804010 	str	r4, [r0, #16]
+ffff1cc8:	e2800a01 	add	r0, r0, #4096	; 0x1000
+ffff1ccc:	e5804000 	str	r4, [r0]
+ffff1cd0:	e1a00004 	mov	r0, r4
+ffff1cd4:	ebffff56 	bl	0xffff1a34
+ffff1cd8:	e8bd8010 	pop	{r4, pc}
+
+ffff1cdc:	e92d4010 	push	{r4, lr}
+ffff1ce0:	ebffffdf 	bl	0xffff1c64
+ffff1ce4:	ebffff5c 	bl	0xffff1a5c
+ffff1ce8:	ebffffa9 	bl	0xffff1b94
+ffff1cec:	e8bd8010 	pop	{r4, pc}
+
+ffff1cf0:	e92d4010 	push	{r4, lr}
+ffff1cf4:	ebffffe3 	bl	0xffff1c88
+ffff1cf8:	e8bd8010 	pop	{r4, pc}
+
+ffff1cfc:	e3a01012 	mov	r1, #18
+ffff1d00:	e5c01000 	strb	r1, [r0]
+ffff1d04:	e3a01001 	mov	r1, #1
+ffff1d08:	e5c01001 	strb	r1, [r0, #1]
+ffff1d0c:	e3001110 	movw	r1, #272	; 0x110
+ffff1d10:	e1c010b2 	strh	r1, [r0, #2]
+ffff1d14:	e3a01000 	mov	r1, #0
+ffff1d18:	e5c01004 	strb	r1, [r0, #4]
+ffff1d1c:	e5c01005 	strb	r1, [r0, #5]
+ffff1d20:	e5c01006 	strb	r1, [r0, #6]
+ffff1d24:	e3a01040 	mov	r1, #64	; 0x40
+ffff1d28:	e5c01007 	strb	r1, [r0, #7]
+ffff1d2c:	e3011f3a 	movw	r1, #7994	; 0x1f3a
+ffff1d30:	e1c010b8 	strh	r1, [r0, #8]
+ffff1d34:	e30e1fe8 	movw	r1, #61416	; 0xefe8
+ffff1d38:	e1c010ba 	strh	r1, [r0, #10]
+ffff1d3c:	e30012b3 	movw	r1, #691	; 0x2b3
+ffff1d40:	e1c010bc 	strh	r1, [r0, #12]
+ffff1d44:	e3a01000 	mov	r1, #0
+ffff1d48:	e5c0100e 	strb	r1, [r0, #14]
+ffff1d4c:	e5c0100f 	strb	r1, [r0, #15]
+ffff1d50:	e5c01010 	strb	r1, [r0, #16]
+ffff1d54:	e3a01001 	mov	r1, #1
+ffff1d58:	e5c01011 	strb	r1, [r0, #17]
+ffff1d5c:	e12fff1e 	bx	lr
+ffff1d60:	e3a0100a 	mov	r1, #10
+ffff1d64:	e5c01000 	strb	r1, [r0]
+ffff1d68:	e3a01002 	mov	r1, #2
+ffff1d6c:	e5c01001 	strb	r1, [r0, #1]
+ffff1d70:	e3a01020 	mov	r1, #32
+ffff1d74:	e1c010b2 	strh	r1, [r0, #2]
+ffff1d78:	e3a01001 	mov	r1, #1
+ffff1d7c:	e5c01004 	strb	r1, [r0, #4]
+ffff1d80:	e5c01005 	strb	r1, [r0, #5]
+ffff1d84:	e3a01000 	mov	r1, #0
+ffff1d88:	e5c01006 	strb	r1, [r0, #6]
+ffff1d8c:	e3a01080 	mov	r1, #128	; 0x80
+ffff1d90:	e5c01007 	strb	r1, [r0, #7]
+ffff1d94:	e3a01096 	mov	r1, #150	; 0x96
+ffff1d98:	e5c01008 	strb	r1, [r0, #8]
+ffff1d9c:	e12fff1e 	bx	lr
+ffff1da0:	e3a01009 	mov	r1, #9
+ffff1da4:	e5c01000 	strb	r1, [r0]
+ffff1da8:	e3a01004 	mov	r1, #4
+ffff1dac:	e5c01001 	strb	r1, [r0, #1]
+ffff1db0:	e3a01000 	mov	r1, #0
+ffff1db4:	e5c01002 	strb	r1, [r0, #2]
+ffff1db8:	e5c01003 	strb	r1, [r0, #3]
+ffff1dbc:	e3a01002 	mov	r1, #2
+ffff1dc0:	e5c01004 	strb	r1, [r0, #4]
+ffff1dc4:	e3a010ff 	mov	r1, #255	; 0xff
+ffff1dc8:	e5c01005 	strb	r1, [r0, #5]
+ffff1dcc:	e5c01006 	strb	r1, [r0, #6]
+ffff1dd0:	e5c01007 	strb	r1, [r0, #7]
+ffff1dd4:	e3a01000 	mov	r1, #0
+ffff1dd8:	e5c01008 	strb	r1, [r0, #8]
+ffff1ddc:	e12fff1e 	bx	lr
+ffff1de0:	e3a01007 	mov	r1, #7
+ffff1de4:	e5c01000 	strb	r1, [r0]
+ffff1de8:	e3a01005 	mov	r1, #5
+ffff1dec:	e5c01001 	strb	r1, [r0, #1]
+ffff1df0:	e3a01040 	mov	r1, #64	; 0x40
+ffff1df4:	e1c010b4 	strh	r1, [r0, #4]
+ffff1df8:	e3a01001 	mov	r1, #1
+ffff1dfc:	e5c01002 	strb	r1, [r0, #2]
+ffff1e00:	e3a01002 	mov	r1, #2
+ffff1e04:	e5c01003 	strb	r1, [r0, #3]
+ffff1e08:	e3a01000 	mov	r1, #0
+ffff1e0c:	e5c01006 	strb	r1, [r0, #6]
+ffff1e10:	e12fff1e 	bx	lr
+ffff1e14:	e3a01007 	mov	r1, #7
+ffff1e18:	e5c01000 	strb	r1, [r0]
+ffff1e1c:	e3a01005 	mov	r1, #5
+ffff1e20:	e5c01001 	strb	r1, [r0, #1]
+ffff1e24:	e3a01040 	mov	r1, #64	; 0x40
+ffff1e28:	e1c010b4 	strh	r1, [r0, #4]
+ffff1e2c:	e3a01082 	mov	r1, #130	; 0x82
+ffff1e30:	e5c01002 	strb	r1, [r0, #2]
+ffff1e34:	e3a01002 	mov	r1, #2
+ffff1e38:	e5c01003 	strb	r1, [r0, #3]
+ffff1e3c:	e3a01000 	mov	r1, #0
+ffff1e40:	e5c01006 	strb	r1, [r0, #6]
+ffff1e44:	e12fff1e 	bx	lr
+ffff1e48:	e5802000 	str	r2, [r0]
+ffff1e4c:	e5801004 	str	r1, [r0, #4]
+ffff1e50:	e12fff1e 	bx	lr
+ffff1e54:	e12fff1e 	bx	lr
+ffff1e58:	e12fff1e 	bx	lr
+ffff1e5c:	e12fff1e 	bx	lr
+
+ffff1e60:	e92d4010 	push	{r4, lr}
+ffff1e64:	e3a03000 	mov	r3, #0
+ffff1e68:	e5c03005 	strb	r3, [r0, #5]
+ffff1e6c:	e5c03006 	strb	r3, [r0, #6]
+ffff1e70:	e5803000 	str	r3, [r0]
+ffff1e74:	e5c03004 	strb	r3, [r0, #4]
+ffff1e78:	e3a03040 	mov	r3, #64	; 0x40
+ffff1e7c:	e5803008 	str	r3, [r0, #8]
+ffff1e80:	e3a03000 	mov	r3, #0
+ffff1e84:	e580300c 	str	r3, [r0, #12]
+ffff1e88:	e5d13002 	ldrb	r3, [r1, #2]
+ffff1e8c:	e5c03015 	strb	r3, [r0, #21]
+ffff1e90:	e5d13003 	ldrb	r3, [r1, #3]
+ffff1e94:	e5c03016 	strb	r3, [r0, #22]
+ffff1e98:	e5801010 	str	r1, [r0, #16]
+ffff1e9c:	e3a03001 	mov	r3, #1
+ffff1ea0:	e5c03014 	strb	r3, [r0, #20]
+ffff1ea4:	e1d130b4 	ldrh	r3, [r1, #4]
+ffff1ea8:	e5803018 	str	r3, [r0, #24]
+ffff1eac:	e3a03000 	mov	r3, #0
+ffff1eb0:	e580301c 	str	r3, [r0, #28]
+ffff1eb4:	e5d23002 	ldrb	r3, [r2, #2]
+ffff1eb8:	e5c03025 	strb	r3, [r0, #37]	; 0x25
+ffff1ebc:	e5d23003 	ldrb	r3, [r2, #3]
+ffff1ec0:	e5c03026 	strb	r3, [r0, #38]	; 0x26
+ffff1ec4:	e5802020 	str	r2, [r0, #32]
+ffff1ec8:	e3a03002 	mov	r3, #2
+ffff1ecc:	e5c03024 	strb	r3, [r0, #36]	; 0x24
+ffff1ed0:	e1d230b4 	ldrh	r3, [r2, #4]
+ffff1ed4:	e5803028 	str	r3, [r0, #40]	; 0x28
+ffff1ed8:	e3a03000 	mov	r3, #0
+ffff1edc:	e580302c 	str	r3, [r0, #44]	; 0x2c
+ffff1ee0:	e5803030 	str	r3, [r0, #48]	; 0x30
+ffff1ee4:	e5c03034 	strb	r3, [r0, #52]	; 0x34
+ffff1ee8:	e5803038 	str	r3, [r0, #56]	; 0x38
+ffff1eec:	e5c0303c 	strb	r3, [r0, #60]	; 0x3c
+ffff1ef0:	e5c0303d 	strb	r3, [r0, #61]	; 0x3d
+ffff1ef4:	e8bd8010 	pop	{r4, pc}
+
+ffff1ef8:	e92d4010 	push	{r4, lr}
+ffff1efc:	e5801000 	str	r1, [r0]
+ffff1f00:	e3a04000 	mov	r4, #0
+ffff1f04:	e5c04004 	strb	r4, [r0, #4]
+ffff1f08:	e5804008 	str	r4, [r0, #8]
+ffff1f0c:	e5802014 	str	r2, [r0, #20]
+ffff1f10:	e5804018 	str	r4, [r0, #24]
+ffff1f14:	e580300c 	str	r3, [r0, #12]
+ffff1f18:	e5804010 	str	r4, [r0, #16]
+ffff1f1c:	e8bd8010 	pop	{r4, pc}
+
+ffff1f20:	e5801000 	str	r1, [r0]
+ffff1f24:	e3a02000 	mov	r2, #0
+ffff1f28:	e5802004 	str	r2, [r0, #4]
+ffff1f2c:	e59f280c 	ldr	r2, [pc, #2060]	; 0xffff2740 =0xffff0890
+ffff1f30:	e580200c 	str	r2, [r0, #12]
+ffff1f34:	e3a02000 	mov	r2, #0
+ffff1f38:	e5802010 	str	r2, [r0, #16]
+ffff1f3c:	e5c02008 	strb	r2, [r0, #8]
+ffff1f40:	e5c02018 	strb	r2, [r0, #24]
+ffff1f44:	e5802014 	str	r2, [r0, #20]
+ffff1f48:	e12fff1e 	bx	lr
+ffff1f4c:	e5801000 	str	r1, [r0]
+ffff1f50:	e3a02000 	mov	r2, #0
+ffff1f54:	e5802004 	str	r2, [r0, #4]
+ffff1f58:	e59f27e4 	ldr	r2, [pc, #2020]	; 0xffff2744 =0xffff08a8
+ffff1f5c:	e580200c 	str	r2, [r0, #12]
+ffff1f60:	e3a02000 	mov	r2, #0
+ffff1f64:	e5802010 	str	r2, [r0, #16]
+ffff1f68:	e5c02008 	strb	r2, [r0, #8]
+ffff1f6c:	e5c02018 	strb	r2, [r0, #24]
+ffff1f70:	e3a02001 	mov	r2, #1
+ffff1f74:	e5802014 	str	r2, [r0, #20]
+ffff1f78:	e12fff1e 	bx	lr
+ffff1f7c:	e5801000 	str	r1, [r0]
+ffff1f80:	e3a02000 	mov	r2, #0
+ffff1f84:	e5802004 	str	r2, [r0, #4]
+ffff1f88:	e59f27b8 	ldr	r2, [pc, #1976]	; 0xffff2748 =0xffff089c
+ffff1f8c:	e580200c 	str	r2, [r0, #12]
+ffff1f90:	e3a02000 	mov	r2, #0
+ffff1f94:	e5802010 	str	r2, [r0, #16]
+ffff1f98:	e5c02008 	strb	r2, [r0, #8]
+ffff1f9c:	e5c02018 	strb	r2, [r0, #24]
+ffff1fa0:	e3a02002 	mov	r2, #2
+ffff1fa4:	e5802014 	str	r2, [r0, #20]
+ffff1fa8:	e12fff1e 	bx	lr
+
+ffff1fac:	e92d4010 	push	{r4, lr}
+ffff1fb0:	e580100c 	str	r1, [r0, #12]
+ffff1fb4:	e580201c 	str	r2, [r0, #28]
+ffff1fb8:	e580302c 	str	r3, [r0, #44]	; 0x2c
+ffff1fbc:	e8bd8010 	pop	{r4, pc}
+
+ffff1fc0:	e3a00000 	mov	r0, #0
+ffff1fc4:	e51f1700 	ldr	r1, [pc, #-1792]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff1fc8:	e5d10040 	ldrb	r0, [r1, #64]	; 0x40
+ffff1fcc:	e3c00020 	bic	r0, r0, #32
+ffff1fd0:	e5c10040 	strb	r0, [r1, #64]	; 0x40
+ffff1fd4:	e5d10040 	ldrb	r0, [r1, #64]	; 0x40
+ffff1fd8:	e12fff1e 	bx	lr
+ffff1fdc:	e3a01000 	mov	r1, #0
+ffff1fe0:	e3a02000 	mov	r2, #0
+ffff1fe4:	e59f0760 	ldr	r0, [pc, #1888]	; 0xffff274c =0x01c20000 CCU_BASE
+ffff1fe8:	e5901000 	ldr	r1, [r0]
+ffff1fec:	e59f075c 	ldr	r0, [pc, #1884]	; 0xffff2750 =0x7ffce0ff
+ffff1ff0:	e0011000 	and	r1, r1, r0
+ffff1ff4:	e3811102 	orr	r1, r1, #-2147483648	; 0x80000000
+ffff1ff8:	e3811a01 	orr	r1, r1, #4096	; 0x1000
+ffff1ffc:	e59f0748 	ldr	r0, [pc, #1864]	; 0xffff274c =0x01c20000 CCU_BASE
+ffff2000:	e5801000 	str	r1, [r0]
+ffff2004:	e5901028 	ldr	r1, [r0, #40]	; 0x28
+ffff2008:	e3811102 	orr	r1, r1, #-2147483648	; 0x80000000
+ffff200c:	e5801028 	str	r1, [r0, #40]	; 0x28
+ffff2010:	e30c2350 	movw	r2, #50000	; 0xc350
+ffff2014:	e320f000 	nop	{0}
+ffff2018:	e1b00002 	movs	r0, r2
+ffff201c:	e2422001 	sub	r2, r2, #1
+ffff2020:	1afffffc 	bne	0xffff2018
+
+ffff2024:	e59f0720 	ldr	r0, [pc, #1824]	; 0xffff274c =0x01c20000 CCU_BASE
+ffff2028:	e5901050 	ldr	r1, [r0, #80]	; 0x50
+ffff202c:	e3c11003 	bic	r1, r1, #3
+ffff2030:	e3811001 	orr	r1, r1, #1
+ffff2034:	e5801050 	str	r1, [r0, #80]	; 0x50
+ffff2038:	e30021f4 	movw	r2, #500	; 0x1f4
+ffff203c:	e320f000 	nop	{0}
+ffff2040:	e1b00002 	movs	r0, r2
+ffff2044:	e2422001 	sub	r2, r2, #1
+ffff2048:	1afffffc 	bne	0xffff2040
+
+ffff204c:	e59f06f8 	ldr	r0, [pc, #1784]	; 0xffff274c =0x01c20000 CCU_BASE
+ffff2050:	e5901050 	ldr	r1, [r0, #80]	; 0x50
+ffff2054:	e3c11803 	bic	r1, r1, #196608	; 0x30000
+ffff2058:	e3811803 	orr	r1, r1, #196608	; 0x30000
+ffff205c:	e5801050 	str	r1, [r0, #80]	; 0x50
+ffff2060:	e5901054 	ldr	r1, [r0, #84]	; 0x54
+ffff2064:	e3c11e3f 	bic	r1, r1, #1008	; 0x3f0
+ffff2068:	e3811e19 	orr	r1, r1, #400	; 0x190
+ffff206c:	e5801054 	str	r1, [r0, #84]	; 0x54
+ffff2070:	e30021f4 	movw	r2, #500	; 0x1f4
+ffff2074:	e320f000 	nop	{0}
+ffff2078:	e1b00002 	movs	r0, r2
+ffff207c:	e2422001 	sub	r2, r2, #1
+ffff2080:	1afffffc 	bne	0xffff2078
+
+ffff2084:	e59f06c0 	ldr	r0, [pc, #1728]	; 0xffff274c =0x01c20000 CCU_BASE
+ffff2088:	e5901054 	ldr	r1, [r0, #84]	; 0x54
+ffff208c:	e3c11a03 	bic	r1, r1, #12288	; 0x3000
+ffff2090:	e3811a03 	orr	r1, r1, #12288	; 0x3000
+ffff2094:	e5801054 	str	r1, [r0, #84]	; 0x54
+ffff2098:	e12fff1e 	bx	lr
+ffff209c:	e3a00000 	mov	r0, #0
+ffff20a0:	e59f16ac 	ldr	r1, [pc, #1708]	; 0xffff2754 =0x01c19400 O_HcRevision
+ffff20a4:	e5910000 	ldr	r0, [r1]
+ffff20a8:	e3800903 	orr	r0, r0, #49152	; 0xc000
+ffff20ac:	e5810000 	str	r0, [r1]
+ffff20b0:	e12fff1e 	bx	lr
+ffff20b4:	e3a00000 	mov	r0, #0
+ffff20b8:	e3a01000 	mov	r1, #0
+ffff20bc:	e59f2690 	ldr	r2, [pc, #1680]	; 0xffff2754 =0x01c19400 O_HcRevision
+ffff20c0:	e5920000 	ldr	r0, [r2]
+ffff20c4:	e3800801 	orr	r0, r0, #65536	; 0x10000
+ffff20c8:	e5820000 	str	r0, [r2]
+ffff20cc:	e30017d0 	movw	r1, #2000	; 0x7d0
+ffff20d0:	e320f000 	nop	{0}
+ffff20d4:	e1b02001 	movs	r2, r1
+ffff20d8:	e2411001 	sub	r1, r1, #1
+ffff20dc:	1afffffc 	bne	0xffff20d4
+
+ffff20e0:	e3800b03 	orr	r0, r0, #3072	; 0xc00
+ffff20e4:	e59f2668 	ldr	r2, [pc, #1640]	; 0xffff2754 =0x01c19400 O_HcRevision
+ffff20e8:	e5820000 	str	r0, [r2]
+ffff20ec:	e12fff1e 	bx	lr
+ffff20f0:	e3a01000 	mov	r1, #0
+ffff20f4:	e59f0658 	ldr	r0, [pc, #1624]	; 0xffff2754 =0x01c19400 O_HcRevision
+ffff20f8:	e5900000 	ldr	r0, [r0]
+ffff20fc:	e20020ff 	and	r2, r0, #255	; 0xff
+ffff2100:	e3120303 	tst	r2, #201326592	; 0xc000000
+ffff2104:	1a00000a 	bne	0xffff2134
+
+ffff2108:	e51f0844 	ldr	r0, [pc, #-2116]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff210c:	e5d00041 	ldrb	r0, [r0, #65]	; 0x41
+ffff2110:	e2000018 	and	r0, r0, #24
+ffff2114:	e3500018 	cmp	r0, #24
+ffff2118:	0a000003 	beq	0xffff212c
+ffff211c:	e59f0630 	ldr	r0, [pc, #1584]	; 0xffff2754 =0x01c19400 O_HcRevision
+ffff2120:	e5901000 	ldr	r1, [r0]
+ffff2124:	e3811a03 	orr	r1, r1, #12288	; 0x3000
+ffff2128:	e5801000 	str	r1, [r0]
+ffff212c:	e3a00001 	mov	r0, #1
+ffff2130:	e12fff1e 	bx	lr
+ffff2134:	e3a00000 	mov	r0, #0
+ffff2138:	eafffffc 	b	0xffff2130
+ffff213c:	e3a00000 	mov	r0, #0
+ffff2140:	e59f160c 	ldr	r1, [pc, #1548]	; 0xffff2754 =0x01c19400 O_HcRevision
+ffff2144:	e5910000 	ldr	r0, [r1]
+ffff2148:	e3c00801 	bic	r0, r0, #65536	; 0x10000
+ffff214c:	e5810000 	str	r0, [r1]
+ffff2150:	e12fff1e 	bx	lr
+ffff2154:	e51f0890 	ldr	r0, [pc, #-2192]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff2158:	e5d01041 	ldrb	r1, [r0, #65]	; 0x41
+ffff215c:	e2010080 	and	r0, r1, #128	; 0x80
+ffff2160:	e3500080 	cmp	r0, #128	; 0x80
+ffff2164:	1a000007 	bne	0xffff2188
+
+ffff2168:	e51f08a4 	ldr	r0, [pc, #-2212]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff216c:	e5d02041 	ldrb	r2, [r0, #65]	; 0x41
+ffff2170:	e2020018 	and	r0, r2, #24
+ffff2174:	e3500018 	cmp	r0, #24
+ffff2178:	1a000001 	bne	0xffff2184
+
+ffff217c:	e3a00001 	mov	r0, #1
+ffff2180:	e12fff1e 	bx	lr
+ffff2184:	e320f000 	nop	{0}
+ffff2188:	e3a00000 	mov	r0, #0
+ffff218c:	eafffffb 	b	0xffff2180
+
+ffff2190:	e92d4010 	push	{r4, lr}
+ffff2194:	ebffffc0 	bl	0xffff209c
+ffff2198:	ebffffc5 	bl	0xffff20b4
+ffff219c:	ea000009 	b	0xffff21c8
+ffff21a0:	ebffffeb 	bl	0xffff2154
+ffff21a4:	e1a03000 	mov	r3, r0
+ffff21a8:	ebffffd0 	bl	0xffff20f0
+ffff21ac:	e1a04000 	mov	r4, r0
+ffff21b0:	e3530000 	cmp	r3, #0
+ffff21b4:	1a000001 	bne	0xffff21c0
+
+ffff21b8:	e3540000 	cmp	r4, #0
+ffff21bc:	0a000000 	beq	0xffff21c4
+ffff21c0:	ea000001 	b	0xffff21cc
+ffff21c4:	e320f000 	nop	{0}
+ffff21c8:	eafffff4 	b	0xffff21a0
+ffff21cc:	e320f000 	nop	{0}
+ffff21d0:	ebffffd9 	bl	0xffff213c
+ffff21d4:	ebffff80 	bl	0xffff1fdc
+ffff21d8:	e8bd8010 	pop	{r4, pc}
+
+ffff21dc:	e92d4070 	push	{r4, r5, r6, lr}
+ffff21e0:	e1a04000 	mov	r4, r0
+ffff21e4:	e3a05000 	mov	r5, #0
+ffff21e8:	e3a06000 	mov	r6, #0
+ffff21ec:	ebffff73 	bl	0xffff1fc0
+ffff21f0:	e59f0560 	ldr	r0, [pc, #1376]	; 0xffff2758 =0x01c19410 O_HcInterruptEnable
+ffff21f4:	e3a01000 	mov	r1, #0
+ffff21f8:	e5901000 	ldr	r1, [r0]
+ffff21fc:	e3c11002 	bic	r1, r1, #2
+ffff2200:	e5801000 	str	r1, [r0]
+ffff2204:	e3a00001 	mov	r0, #1
+ffff2208:	e51f1944 	ldr	r1, [pc, #-2372]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff220c:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff2210:	e3a00007 	mov	r0, #7
+ffff2214:	e5c10094 	strb	r0, [r1, #148]	; 0x94
+ffff2218:	e3a00080 	mov	r0, #128	; 0x80
+ffff221c:	e1c109b6 	strh	r0, [r1, #150]	; 0x96
+ffff2220:	e3a00002 	mov	r0, #2
+ffff2224:	e5c10042 	strb	r0, [r1, #66]	; 0x42
+ffff2228:	e3a00007 	mov	r0, #7
+ffff222c:	e5c10090 	strb	r0, [r1, #144]	; 0x90
+ffff2230:	e3000100 	movw	r0, #256	; 0x100
+ffff2234:	e1c109b2 	strh	r0, [r1, #146]	; 0x92
+ffff2238:	e3a00007 	mov	r0, #7
+ffff223c:	e5c10050 	strb	r0, [r1, #80]	; 0x50
+ffff2240:	e1c10000 	bic	r0, r1, r0
+ffff2244:	e5d00048 	ldrb	r0, [r0, #72]	; 0x48
+ffff2248:	e3800001 	orr	r0, r0, #1
+ffff224c:	e5c10048 	strb	r0, [r1, #72]	; 0x48
+ffff2250:	e51f0974 	ldr	r0, [pc, #-2420]	; 0xffff18e4 =0x00007d00
+ffff2254:	e5900000 	ldr	r0, [r0]
+ffff2258:	ebfffd2e 	bl	0xffff1718
+ffff225c:	e3a00002 	mov	r0, #2
+ffff2260:	e5941024 	ldr	r1, [r4, #36]	; 0x24
+ffff2264:	e5c10034 	strb	r0, [r1, #52]	; 0x34
+ffff2268:	ebffffc8 	bl	0xffff2190
+ffff226c:	e51f09a8 	ldr	r0, [pc, #-2472]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff2270:	e5d00040 	ldrb	r0, [r0, #64]	; 0x40
+ffff2274:	e3800040 	orr	r0, r0, #64	; 0x40
+ffff2278:	e51f19b4 	ldr	r1, [pc, #-2484]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff227c:	e5c10040 	strb	r0, [r1, #64]	; 0x40
+ffff2280:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff2284:	e92d4010 	push	{r4, lr}
+ffff2288:	e1a04000 	mov	r4, r0
+ffff228c:	e51f09c8 	ldr	r0, [pc, #-2504]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff2290:	e5d00043 	ldrb	r0, [r0, #67]	; 0x43
+ffff2294:	e20000fe 	and	r0, r0, #254	; 0xfe
+ffff2298:	e51f19d4 	ldr	r1, [pc, #-2516]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff229c:	e5c10043 	strb	r0, [r1, #67]	; 0x43
+ffff22a0:	e1a00004 	mov	r0, r4
+ffff22a4:	ebffffcc 	bl	0xffff21dc
+ffff22a8:	ebfffe90 	bl	0xffff1cf0
+ffff22ac:	e1a00004 	mov	r0, r4
+ffff22b0:	ebfffaf9 	bl	0xffff0e9c
+ffff22b4:	ebfff7b0 	bl	0xffff017c
+ffff22b8:	e8bd8010 	pop	{r4, pc}
+
+ffff22bc:	e3a01000 	mov	r1, #0
+ffff22c0:	e5801008 	str	r1, [r0, #8]
+ffff22c4:	e5801004 	str	r1, [r0, #4]
+ffff22c8:	e5801000 	str	r1, [r0]
+ffff22cc:	e12fff1e 	bx	lr
+
+ffff22d0:	e92d4010 	push	{r4, lr}
+ffff22d4:	e3002100 	movw	r2, #256	; 0x100
+ffff22d8:	e3a010cc 	mov	r1, #204	; 0xcc
+ffff22dc:	e3070e00 	movw	r0, #32256	; 0x7e00
+ffff22e0:	ebfff97d 	bl	0xffff08dc
+ffff22e4:	e8bd8010 	pop	{r4, pc}
+
+ffff22e8:	e92d4010 	push	{r4, lr}
+ffff22ec:	e24ddd47 	sub	sp, sp, #4544	; 0x11c0
+ffff22f0:	ebfffff6 	bl	0xffff22d0
+ffff22f4:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff22f8:	e2800f5f 	add	r0, r0, #380	; 0x17c
+ffff22fc:	e51f1a20 	ldr	r1, [pc, #-2592]	; 0xffff18e4 =0x00007d00
+ffff2300:	e5810000 	str	r0, [r1]
+ffff2304:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2308:	e2811f5a 	add	r1, r1, #360	; 0x168
+ffff230c:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2310:	e580117c 	str	r1, [r0, #380]	; 0x17c
+ffff2314:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2318:	e2811f57 	add	r1, r1, #348	; 0x15c
+ffff231c:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2320:	e5801180 	str	r1, [r0, #384]	; 0x180
+ffff2324:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2328:	e2811e15 	add	r1, r1, #336	; 0x150
+ffff232c:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2330:	e5801184 	str	r1, [r0, #388]	; 0x184
+ffff2334:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2338:	e2811f52 	add	r1, r1, #328	; 0x148
+ffff233c:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2340:	e5801188 	str	r1, [r0, #392]	; 0x188
+ffff2344:	e28d1d45 	add	r1, sp, #4416	; 0x1140
+ffff2348:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff234c:	e580118c 	str	r1, [r0, #396]	; 0x18c
+ffff2350:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2354:	e2811f4e 	add	r1, r1, #312	; 0x138
+ffff2358:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff235c:	e5801190 	str	r1, [r0, #400]	; 0x190
+ffff2360:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2364:	e2811e13 	add	r1, r1, #304	; 0x130
+ffff2368:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff236c:	e5801194 	str	r1, [r0, #404]	; 0x194
+ffff2370:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2374:	e2811f4a 	add	r1, r1, #296	; 0x128
+ffff2378:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff237c:	e5801198 	str	r1, [r0, #408]	; 0x198
+ffff2380:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2384:	e2811e12 	add	r1, r1, #288	; 0x120
+ffff2388:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff238c:	e580119c 	str	r1, [r0, #412]	; 0x19c
+ffff2390:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2394:	e28110d8 	add	r1, r1, #216	; 0xd8
+ffff2398:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff239c:	e58011a0 	str	r1, [r0, #416]	; 0x1a0
+ffff23a0:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff23a4:	e28110bc 	add	r1, r1, #188	; 0xbc
+ffff23a8:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff23ac:	e58011a4 	str	r1, [r0, #420]	; 0x1a4
+ffff23b0:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff23b4:	e28110a0 	add	r1, r1, #160	; 0xa0
+ffff23b8:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff23bc:	e58011a8 	str	r1, [r0, #424]	; 0x1a8
+ffff23c0:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff23c4:	e2811084 	add	r1, r1, #132	; 0x84
+ffff23c8:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff23cc:	e58011ac 	str	r1, [r0, #428]	; 0x1ac
+ffff23d0:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff23d4:	e2811068 	add	r1, r1, #104	; 0x68
+ffff23d8:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff23dc:	e58011b0 	str	r1, [r0, #432]	; 0x1b0
+ffff23e0:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff23e4:	e2800f6d 	add	r0, r0, #436	; 0x1b4
+ffff23e8:	ebffffb3 	bl	0xffff22bc
+ffff23ec:	ebfffe3a 	bl	0xffff1cdc
+ffff23f0:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff23f4:	e2800f5a 	add	r0, r0, #360	; 0x168
+ffff23f8:	ebfffe3f 	bl	0xffff1cfc
+ffff23fc:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2400:	e2800f57 	add	r0, r0, #348	; 0x15c
+ffff2404:	ebfffe55 	bl	0xffff1d60
+ffff2408:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff240c:	e2800e15 	add	r0, r0, #336	; 0x150
+ffff2410:	ebfffe62 	bl	0xffff1da0
+ffff2414:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2418:	e2800f52 	add	r0, r0, #328	; 0x148
+ffff241c:	ebfffe6f 	bl	0xffff1de0
+ffff2420:	e28d0d45 	add	r0, sp, #4416	; 0x1140
+ffff2424:	ebfffe7a 	bl	0xffff1e14
+ffff2428:	e28d2a01 	add	r2, sp, #4096	; 0x1000
+ffff242c:	e2822f52 	add	r2, r2, #328	; 0x148
+ffff2430:	e28d1d45 	add	r1, sp, #4416	; 0x1140
+ffff2434:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2438:	e2800f4e 	add	r0, r0, #312	; 0x138
+ffff243c:	ebfffe81 	bl	0xffff1e48
+ffff2440:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2444:	e2800e13 	add	r0, r0, #304	; 0x130
+ffff2448:	ebfffe81 	bl	0xffff1e54
+ffff244c:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2450:	e2800f4a 	add	r0, r0, #296	; 0x128
+ffff2454:	ebfffe7f 	bl	0xffff1e58
+ffff2458:	e28d2a01 	add	r2, sp, #4096	; 0x1000
+ffff245c:	e2822e13 	add	r2, r2, #304	; 0x130
+ffff2460:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff2464:	e2811f4a 	add	r1, r1, #296	; 0x128
+ffff2468:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff246c:	e2800e12 	add	r0, r0, #288	; 0x120
+ffff2470:	ebfffe79 	bl	0xffff1e5c
+ffff2474:	e28d2d45 	add	r2, sp, #4416	; 0x1140
+ffff2478:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff247c:	e2811f52 	add	r1, r1, #328	; 0x148
+ffff2480:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2484:	e28000d8 	add	r0, r0, #216	; 0xd8
+ffff2488:	ebfffe74 	bl	0xffff1e60
+ffff248c:	e28d3a01 	add	r3, sp, #4096	; 0x1000
+ffff2490:	e2833084 	add	r3, r3, #132	; 0x84
+ffff2494:	e28d2a01 	add	r2, sp, #4096	; 0x1000
+ffff2498:	e2822068 	add	r2, r2, #104	; 0x68
+ffff249c:	e28d1068 	add	r1, sp, #104	; 0x68
+ffff24a0:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff24a4:	e28000bc 	add	r0, r0, #188	; 0xbc
+ffff24a8:	ebfffe92 	bl	0xffff1ef8
+ffff24ac:	e28d1024 	add	r1, sp, #36	; 0x24
+ffff24b0:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff24b4:	e28000a0 	add	r0, r0, #160	; 0xa0
+ffff24b8:	ebfffe98 	bl	0xffff1f20
+ffff24bc:	e28d1068 	add	r1, sp, #104	; 0x68
+ffff24c0:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff24c4:	e2800084 	add	r0, r0, #132	; 0x84
+ffff24c8:	ebfffeab 	bl	0xffff1f7c
+ffff24cc:	e28d1068 	add	r1, sp, #104	; 0x68
+ffff24d0:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff24d4:	e2800068 	add	r0, r0, #104	; 0x68
+ffff24d8:	ebfffe9b 	bl	0xffff1f4c
+ffff24dc:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff24e0:	e28d3a01 	add	r3, sp, #4096	; 0x1000
+ffff24e4:	e2833084 	add	r3, r3, #132	; 0x84
+ffff24e8:	e28d2a01 	add	r2, sp, #4096	; 0x1000
+ffff24ec:	e2822068 	add	r2, r2, #104	; 0x68
+ffff24f0:	e59101a0 	ldr	r0, [r1, #416]	; 0x1a0
+ffff24f4:	e28d1a01 	add	r1, sp, #4096	; 0x1000
+ffff24f8:	e28110a0 	add	r1, r1, #160	; 0xa0
+ffff24fc:	ebfffeaa 	bl	0xffff1fac
+ffff2500:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2504:	e2800f5f 	add	r0, r0, #380	; 0x17c
+ffff2508:	ebfffa68 	bl	0xffff0eb0
+ffff250c:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff2510:	e2800f5f 	add	r0, r0, #380	; 0x17c
+ffff2514:	ebffff5a 	bl	0xffff2284
+ffff2518:	e28d0a01 	add	r0, sp, #4096	; 0x1000
+ffff251c:	e2800f5f 	add	r0, r0, #380	; 0x17c
+ffff2520:	ebfff8d2 	bl	0xffff0870
+ffff2524:	e28ddd47 	add	sp, sp, #4544	; 0x11c0
+ffff2528:	e8bd8010 	pop	{r4, pc}
+
+ffff252c:	e92d4070 	push	{r4, r5, r6, lr}
+ffff2530:	e1a04000 	mov	r4, r0
+ffff2534:	e3a06000 	mov	r6, #0
+ffff2538:	e3045e20 	movw	r5, #20000	; 0x4e20
+ffff253c:	e5940024 	ldr	r0, [r4, #36]	; 0x24
+ffff2540:	e2806020 	add	r6, r0, #32
+ffff2544:	e5d60004 	ldrb	r0, [r6, #4]
+ffff2548:	ebfffa02 	bl	0xffff0d58
+ffff254c:	ea00000a 	b	0xffff257c
+ffff2550:	e51f0c8c 	ldr	r0, [pc, #-3212]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff2554:	e1d008b2 	ldrh	r0, [r0, #130]	; 0x82
+ffff2558:	e3100001 	tst	r0, #1
+ffff255c:	1a000001 	bne	0xffff2568
+
+ffff2560:	e3a00001 	mov	r0, #1
+ffff2564:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff2568:	e3550000 	cmp	r5, #0
+ffff256c:	1a000001 	bne	0xffff2578
+
+ffff2570:	e3a00002 	mov	r0, #2
+ffff2574:	eafffffa 	b	0xffff2564
+ffff2578:	e2455001 	sub	r5, r5, #1
+ffff257c:	eafffff3 	b	0xffff2550
+
+ffff2580:	e92d40f0 	push	{r4, r5, r6, r7, lr}
+ffff2584:	e1a04000 	mov	r4, r0
+ffff2588:	e3a05000 	mov	r5, #0
+ffff258c:	e5926004 	ldr	r6, [r2, #4]
+ffff2590:	e5927010 	ldr	r7, [r2, #16]
+ffff2594:	e0466007 	sub	r6, r6, r7
+ffff2598:	e1560003 	cmp	r6, r3
+ffff259c:	2a000003 	bcs	0xffff25b0
+ffff25a0:	e5926004 	ldr	r6, [r2, #4]
+ffff25a4:	e5927010 	ldr	r7, [r2, #16]
+ffff25a8:	e0466007 	sub	r6, r6, r7
+ffff25ac:	ea000000 	b	0xffff25b4
+ffff25b0:	e1a06003 	mov	r6, r3
+ffff25b4:	e1a00006 	mov	r0, r6
+ffff25b8:	e5926010 	ldr	r6, [r2, #16]
+ffff25bc:	e0866000 	add	r6, r6, r0
+ffff25c0:	e5826010 	str	r6, [r2, #16]
+ffff25c4:	e1a03000 	mov	r3, r0
+ffff25c8:	e3530004 	cmp	r3, #4
+ffff25cc:	9a00000a 	bls	0xffff25fc
+ffff25d0:	ea000005 	b	0xffff25ec
+ffff25d4:	e5d46000 	ldrb	r6, [r4]
+ffff25d8:	e5c16000 	strb	r6, [r1]
+ffff25dc:	e3550008 	cmp	r5, #8
+ffff25e0:	2a000000 	bcs	0xffff25e8
+ffff25e4:	e2855001 	add	r5, r5, #1
+ffff25e8:	e2811001 	add	r1, r1, #1
+ffff25ec:	e1b06003 	movs	r6, r3
+ffff25f0:	e2433001 	sub	r3, r3, #1
+ffff25f4:	1afffff6 	bne	0xffff25d4
+
+ffff25f8:	ea000013 	b	0xffff264c
+ffff25fc:	e1a06001 	mov	r6, r1
+ffff2600:	e1a0c001 	mov	ip, r1
+ffff2604:	e3530004 	cmp	r3, #4
+ffff2608:	1a000002 	bne	0xffff2618
+
+ffff260c:	e5947000 	ldr	r7, [r4]
+ffff2610:	e5867000 	str	r7, [r6]
+ffff2614:	ea00000b 	b	0xffff2648
+ffff2618:	e3530002 	cmp	r3, #2
+ffff261c:	1a000002 	bne	0xffff262c
+
+ffff2620:	e1d470b0 	ldrh	r7, [r4]
+ffff2624:	e1cc70b0 	strh	r7, [ip]
+ffff2628:	ea000006 	b	0xffff2648
+ffff262c:	ea000002 	b	0xffff263c
+ffff2630:	e5d47000 	ldrb	r7, [r4]
+ffff2634:	e5c17000 	strb	r7, [r1]
+ffff2638:	e2811001 	add	r1, r1, #1
+ffff263c:	e1b07003 	movs	r7, r3
+ffff2640:	e2433001 	sub	r3, r3, #1
+ffff2644:	1afffff9 	bne	0xffff2630
+
+ffff2648:	e320f000 	nop	{0}
+ffff264c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}
+
+ffff2650:	e1a01000 	mov	r1, r0
+ffff2654:	e5910040 	ldr	r0, [r1, #64]	; 0x40
+ffff2658:	e3500000 	cmp	r0, #0
+ffff265c:	1a000002 	bne	0xffff266c
+
+ffff2660:	e51f0d9c 	ldr	r0, [pc, #-3484]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff2664:	e5d0004c 	ldrb	r0, [r0, #76]	; 0x4c
+ffff2668:	e5810040 	str	r0, [r1, #64]	; 0x40
+ffff266c:	e5910040 	ldr	r0, [r1, #64]	; 0x40
+ffff2670:	e12fff1e 	bx	lr
+
+ffff2674:	e92d4070 	push	{r4, r5, r6, lr}
+ffff2678:	e1a03000 	mov	r3, r0
+ffff267c:	e3a00000 	mov	r0, #0
+ffff2680:	e5915000 	ldr	r5, [r1]
+ffff2684:	e5916010 	ldr	r6, [r1, #16]
+ffff2688:	e0854006 	add	r4, r5, r6
+ffff268c:	e5915004 	ldr	r5, [r1, #4]
+ffff2690:	e5916010 	ldr	r6, [r1, #16]
+ffff2694:	e0455006 	sub	r5, r5, r6
+ffff2698:	e1550002 	cmp	r5, r2
+ffff269c:	2a000003 	bcs	0xffff26b0
+ffff26a0:	e5915004 	ldr	r5, [r1, #4]
+ffff26a4:	e5916010 	ldr	r6, [r1, #16]
+ffff26a8:	e045c006 	sub	ip, r5, r6
+ffff26ac:	ea000000 	b	0xffff26b4
+ffff26b0:	e1a0c002 	mov	ip, r2
+ffff26b4:	e1a0000c 	mov	r0, ip
+ffff26b8:	e5915010 	ldr	r5, [r1, #16]
+ffff26bc:	e0855000 	add	r5, r5, r0
+ffff26c0:	e5815010 	str	r5, [r1, #16]
+ffff26c4:	e1a02000 	mov	r2, r0
+ffff26c8:	ea000001 	b	0xffff26d4
+ffff26cc:	e4d45001 	ldrb	r5, [r4], #1
+ffff26d0:	e5c35000 	strb	r5, [r3]
+ffff26d4:	e1b05002 	movs	r5, r2
+ffff26d8:	e2422001 	sub	r2, r2, #1
+ffff26dc:	1afffffa 	bne	0xffff26cc
+
+ffff26e0:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff26e4:	e1a02000 	mov	r2, r0
+ffff26e8:	e5920038 	ldr	r0, [r2, #56]	; 0x38
+ffff26ec:	e1c00001 	bic	r0, r0, r1
+ffff26f0:	e5820038 	str	r0, [r2, #56]	; 0x38
+ffff26f4:	e51f0e30 	ldr	r0, [pc, #-3632]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff26f8:	e5c01044 	strb	r1, [r0, #68]	; 0x44
+ffff26fc:	e3a00000 	mov	r0, #0
+ffff2700:	e12fff1e 	bx	lr
+
+ffff2704:	e1a02000 	mov	r2, r0
+ffff2708:	e5920040 	ldr	r0, [r2, #64]	; 0x40
+ffff270c:	e1c00001 	bic	r0, r0, r1
+ffff2710:	e5820040 	str	r0, [r2, #64]	; 0x40
+ffff2714:	e51f0e50 	ldr	r0, [pc, #-3664]	; 0xffff18cc =0x01c19000 USB_OTG_BASE
+ffff2718:	e5c0104c 	strb	r1, [r0, #76]	; 0x4c
+ffff271c:	e3a00000 	mov	r0, #0
+ffff2720:	e12fff1e 	bx	lr
+
+	;; Global Offset Table
+ffff2724:	01010101
+ffff2728:	01c81000					; GIC_DIST
+ffff272c:	a0a0a0a0
+ffff2730:	01c81420
+ffff2734:	01c81820
+ffff2738:	01c82000
+ffff273c:	01c81410
+ffff2740:	ffff0890
+ffff2744:	ffff08a8
+ffff2748:	ffff089c
+ffff274c:	01c20000					; CCU_BASE
+ffff2750:	7ffce0ff
+ffff2754:	01c19400					; O_HcRevision
+ffff2758:	01c19410					; O_HcInterruptEnable
+
+ffff275c:	e92d4001 	push	{r0, lr}
+ffff2760:	ebffffff 	bl	0xffff2764
+ffff2764:	ebffffff 	bl	0xffff2768
+ffff2768:	ebffffff 	bl	0xffff276c
+ffff276c:	ebffffff 	bl	0xffff2770
+ffff2770:	ebffffff 	bl	0xffff2774
+ffff2774:	ebffffff 	bl	0xffff2778
+ffff2778:	ebffffff 	bl	0xffff277c
+ffff277c:	ebffffff 	bl	0xffff2780
+ffff2780:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff2784:	e3800b02 	orr	r0, r0, #2048	; 0x800
+ffff2788:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff278c:	e8bd4001 	pop	{r0, lr}
+
+ffff2790:	e1a0f00e 	mov	pc, lr
+
+ffff2794:	e92d4001 	push	{r0, lr}
+ffff2798:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff279c:	e3800a01 	orr	r0, r0, #4096	; 0x1000
+ffff27a0:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff27a4:	e8bd4001 	pop	{r0, lr}
+
+ffff27a8:	e1a0f00e 	mov	pc, lr
+
+ffff27ac:	e92d4001 	push	{r0, lr}
+ffff27b0:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff27b4:	e3800004 	orr	r0, r0, #4
+ffff27b8:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff27bc:	e8bd4001 	pop	{r0, lr}
+
+ffff27c0:	e1a0f00e 	mov	pc, lr
+
+ffff27c4:	e92d4001 	push	{r0, lr}
+ffff27c8:	ee110f30 	mrc	15, 0, r0, cr1, cr0, {1}
+ffff27cc:	e3800002 	orr	r0, r0, #2
+ffff27d0:	ee010f30 	mcr	15, 0, r0, cr1, cr0, {1}
+ffff27d4:	e8bd4001 	pop	{r0, lr}
+
+ffff27d8:	e1a0f00e 	mov	pc, lr
+
+ffff27dc:	e92d4001 	push	{r0, lr}
+ffff27e0:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff27e4:	e3800001 	orr	r0, r0, #1
+ffff27e8:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff27ec:	e8bd4001 	pop	{r0, lr}
+
+ffff27f0:	e1a0f00e 	mov	pc, lr
+
+ffff27f4:	e92d4001 	push	{r0, lr}
+ffff27f8:	ee110f30 	mrc	15, 0, r0, cr1, cr0, {1}
+ffff27fc:	e3c00002 	bic	r0, r0, #2
+ffff2800:	ee010f30 	mcr	15, 0, r0, cr1, cr0, {1}
+ffff2804:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff2808:	e3c00001 	bic	r0, r0, #1
+ffff280c:	e3c00b02 	bic	r0, r0, #2048	; 0x800
+ffff2810:	e3c00a01 	bic	r0, r0, #4096	; 0x1000
+ffff2814:	e3c00004 	bic	r0, r0, #4
+ffff2818:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff281c:	e8bd4001 	pop	{r0, lr}
+
+ffff2820:	e1a0f00e 	mov	pc, lr
+
+ffff2824:	e92d5fff 	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+ffff2828:	ee300f30 	mrc	15, 1, r0, cr0, cr0, {1}
+ffff282c:	e2103407 	ands	r3, r0, #117440512	; 0x7000000
+ffff2830:	e1a03ba3 	lsr	r3, r3, #23
+ffff2834:	0a00001a 	beq	0xffff28a4
+ffff2838:	e3a0a000 	mov	sl, #0
+ffff283c:	e08a20aa 	add	r2, sl, sl, lsr #1
+ffff2840:	e1a01230 	lsr	r1, r0, r2
+ffff2844:	e2011007 	and	r1, r1, #7
+ffff2848:	e3510002 	cmp	r1, #2
+ffff284c:	ba000011 	blt	0xffff2898
+ffff2850:	ee40af10 	mcr	15, 2, sl, cr0, cr0, {0}
+ffff2854:	f57ff06f 	isb	sy
+ffff2858:	ee301f10 	mrc	15, 1, r1, cr0, cr0, {0}
+ffff285c:	e2012007 	and	r2, r1, #7
+ffff2860:	e2822004 	add	r2, r2, #4
+ffff2864:	e30043ff 	movw	r4, #1023	; 0x3ff
+ffff2868:	e01441a1 	ands	r4, r4, r1, lsr #3
+ffff286c:	e16f5f14 	clz	r5, r4
+ffff2870:	e3077fff 	movw	r7, #32767	; 0x7fff
+ffff2874:	e01776a1 	ands	r7, r7, r1, lsr #13
+ffff2878:	e1a09004 	mov	r9, r4
+ffff287c:	e18ab519 	orr	fp, sl, r9, lsl r5
+ffff2880:	e18bb217 	orr	fp, fp, r7, lsl r2
+ffff2884:	ee07bf5e 	mcr	15, 0, fp, cr7, cr14, {2}
+ffff2888:	e2599001 	subs	r9, r9, #1
+ffff288c:	aafffffa 	bge	0xffff287c
+ffff2890:	e2577001 	subs	r7, r7, #1
+ffff2894:	aafffff7 	bge	0xffff2878
+ffff2898:	e28aa002 	add	sl, sl, #2
+ffff289c:	e153000a 	cmp	r3, sl
+ffff28a0:	caffffe5 	bgt	0xffff283c
+ffff28a4:	e3a0a000 	mov	sl, #0
+ffff28a8:	ee40af10 	mcr	15, 2, sl, cr0, cr0, {0}
+ffff28ac:	f57ff06f 	isb	sy
+ffff28b0:	e8bd5fff 	pop	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+
+ffff28b4:	e1a0f00e 	mov	pc, lr
+
+ffff28b8:	e92d0003 	push	{r0, r1}
+ffff28bc:	e3a00000 	mov	r0, #0
+ffff28c0:	ee070f15 	mcr	15, 0, r0, cr7, cr5, {0}
+ffff28c4:	e8bd0003 	pop	{r0, r1}
+
+ffff28c8:	e1a0f00e 	mov	pc, lr
+
+ffff28cc:	e92d4001 	push	{r0, lr}
+ffff28d0:	ebfffff8 	bl	0xffff28b8
+ffff28d4:	ebffffd2 	bl	0xffff2824
+ffff28d8:	e8bd4001 	pop	{r0, lr}
+
+ffff28dc:	e1a0f00e 	mov	pc, lr
+
+ffff28e0:	e92d5fff 	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+ffff28e4:	e3a02040 	mov	r2, #64	; 0x40
+ffff28e8:	e2423001 	sub	r3, r2, #1
+ffff28ec:	e1c00003 	bic	r0, r0, r3
+ffff28f0:	ee070f3b 	mcr	15, 0, r0, cr7, cr11, {1}
+ffff28f4:	f57ff04f 	dsb	sy
+ffff28f8:	ee070f35 	mcr	15, 0, r0, cr7, cr5, {1}
+ffff28fc:	e0800002 	add	r0, r0, r2
+ffff2900:	e1500001 	cmp	r0, r1
+ffff2904:	3afffff9 	bcc	0xffff28f0
+ffff2908:	e3a00000 	mov	r0, #0
+ffff290c:	ee070fd5 	mcr	15, 0, r0, cr7, cr5, {6}
+ffff2910:	f57ff04f 	dsb	sy
+ffff2914:	f57ff06f 	isb	sy
+ffff2918:	e8bd5fff 	pop	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+
+ffff291c:	e1a0f00e 	mov	pc, lr
+
+ffff2920:	e92d5fff 	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+ffff2924:	e3a02040 	mov	r2, #64	; 0x40
+ffff2928:	e2423001 	sub	r3, r2, #1
+ffff292c:	e1c00003 	bic	r0, r0, r3
+ffff2930:	ee070f3e 	mcr	15, 0, r0, cr7, cr14, {1}
+ffff2934:	e0800002 	add	r0, r0, r2
+ffff2938:	e1500001 	cmp	r0, r1
+ffff293c:	3afffffb 	bcc	0xffff2930
+ffff2940:	f57ff04f 	dsb	sy
+ffff2944:	e8bd5fff 	pop	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+
+ffff2948:	e1a0f00e 	mov	pc, lr
+
+ffff294c:	e92d5fff 	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+ffff2950:	e3a02040 	mov	r2, #64	; 0x40
+ffff2954:	e2423001 	sub	r3, r2, #1
+ffff2958:	e1c00003 	bic	r0, r0, r3
+ffff295c:	ee070f3a 	mcr	15, 0, r0, cr7, cr10, {1}
+ffff2960:	e0800002 	add	r0, r0, r2
+ffff2964:	e1500001 	cmp	r0, r1
+ffff2968:	3afffffb 	bcc	0xffff295c
+ffff296c:	f57ff04f 	dsb	sy
+ffff2970:	e8bd5fff 	pop	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+
+ffff2974:	e1a0f00e 	mov	pc, lr
+
+ffff2978:	e92d5fff 	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+ffff297c:	e3a02040 	mov	r2, #64	; 0x40
+ffff2980:	e2423001 	sub	r3, r2, #1
+ffff2984:	e1100003 	tst	r0, r3
+ffff2988:	e1c00003 	bic	r0, r0, r3
+ffff298c:	1e070f3e 	mcrne	15, 0, r0, cr7, cr14, {1}
+ffff2990:	e1110003 	tst	r1, r3
+ffff2994:	e1c11003 	bic	r1, r1, r3
+ffff2998:	1e071f3e 	mcrne	15, 0, r1, cr7, cr14, {1}
+ffff299c:	ee070f36 	mcr	15, 0, r0, cr7, cr6, {1}
+ffff29a0:	e0800002 	add	r0, r0, r2
+ffff29a4:	e1500001 	cmp	r0, r1
+ffff29a8:	3afffffb 	bcc	0xffff299c
+ffff29ac:	f57ff04f 	dsb	sy
+ffff29b0:	e8bd5fff 	pop	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
+
+ffff29b4:	e1a0f00e 	mov	pc, lr
+
+ffff29b8:	e92d4001 	push	{r0, lr}
+ffff29bc:	e3a00000 	mov	r0, #0
+ffff29c0:	ee080f15 	mcr	15, 0, r0, cr8, cr5, {0}
+ffff29c4:	ee080f16 	mcr	15, 0, r0, cr8, cr6, {0}
+ffff29c8:	e8bd4001 	pop	{r0, lr}
+
+ffff29cc:	e1a0f00e 	mov	pc, lr
+
+ffff29d0:	e92d4001 	push	{r0, lr}
+ffff29d4:	e10f0000 	mrs	r0, CPSR
+ffff29d8:	e3c01080 	bic	r1, r0, #128	; 0x80
+ffff29dc:	e121f001 	msr	CPSR_c, r1
+ffff29e0:	e8bd4001 	pop	{r0, lr}
+
+ffff29e4:	e1a0f00e 	mov	pc, lr
+
+ffff29e8:	e92d4001 	push	{r0, lr}
+ffff29ec:	e10f0000 	mrs	r0, CPSR
+ffff29f0:	e3801080 	orr	r1, r0, #128	; 0x80
+ffff29f4:	e121f001 	msr	CPSR_c, r1
+ffff29f8:	e8bd4001 	pop	{r0, lr}
+
+ffff29fc:	e1a0f00e 	mov	pc, lr
+
+ffff2a00:	e92d4001 	push	{r0, lr}
+ffff2a04:	e10f0000 	mrs	r0, CPSR
+ffff2a08:	e3c01040 	bic	r1, r0, #64	; 0x40
+ffff2a0c:	e121f001 	msr	CPSR_c, r1
+ffff2a10:	e8bd4001 	pop	{r0, lr}
+
+ffff2a14:	e1a0f00e 	mov	pc, lr
+
+ffff2a18:	e92d4001 	push	{r0, lr}
+ffff2a1c:	e10f0000 	mrs	r0, CPSR
+ffff2a20:	e3801040 	orr	r1, r0, #64	; 0x40
+ffff2a24:	e121f001 	msr	CPSR_c, r1
+ffff2a28:	e8bd4001 	pop	{r0, lr}
+
+ffff2a2c:	e1a0f00e 	mov	pc, lr
+
+ffff2a30:	e92d4001 	push	{r0, lr}
+ffff2a34:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff2a38:	e3800a02 	orr	r0, r0, #8192	; 0x2000
+ffff2a3c:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff2a40:	e8bd4001 	pop	{r0, lr}
+
+ffff2a44:	e1a0f00e 	mov	pc, lr
+
+ffff2a48:	e92d4001 	push	{r0, lr}
+ffff2a4c:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}
+ffff2a50:	e3c00a02 	bic	r0, r0, #8192	; 0x2000
+ffff2a54:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}
+ffff2a58:	e8bd4001 	pop	{r0, lr}
+
+ffff2a5c:	e1a0f00e 	mov	pc, lr
+	...
+
+BROM:
+
+	;; BROM header
+ffff2c00:	ea000006 	b	start  		; jump instruction, see below
+ffff2c04:	4e4f4765	.ascii	"eGON" 		; magic
+ffff2c08:	4d52422e	.ascii	".BRM"
+ffff2c0c:	00000020	.word	32 		; header length
+ffff2c10:	30303131	.ascii	"1100"		; boot version (1.1.00)
+ffff2c14:	30303131	.ascii	"1100"		; eGon version (1.1.00)
+ffff2c18:	31383631	.ascii	"1681"		; platform information (V3s)
+ffff2c1c:	00000000	.word	0
+
+;;;*****************************************************************************
+;;;
+;;;                  About the jump_instruction field in Boot_file_head
+;;;
+;;; The jump_instruction field stores a branch instruction: ( B  after_header ),
+;;; this jumps after the transfer instruction is executed, the program will jump
+;;; to the first instruction after the header.
+;;;
+;;;  The encoding of the B instruction in ARM assembler is as follows:
+;;;          +--------+---------+------------------------------+
+;;;          | 31--28 | 27--24  |            23--0             |
+;;;          +--------+---------+------------------------------+
+;;;          |  cond  | 1 0 1 0 |        signed_immed_24       |
+;;;          +--------+---------+------------------------------+
+;;;
+;;;  "ARM Architecture Reference Manual" explains this instruction as follows:
+;;;  Syntax :
+;;;  B{<cond>}  <target_address>
+;;;    <cond>    Is the condition under which the instruction is executed. If the
+;;;              <cond> is ommitted, the AL(always,its code is 0b1110 )is used.
+;;;    <target_address>
+;;;              Specified the address to branch to. The branch target address is
+;;;              calculated by:
+;;;              1.  Sign-extending the 24-bit signed (two's complement) immediate
+;;;                  to 32 bits.
+;;;              2.  Shifting the result left two bits.
+;;;              3.  Adding to the contents of the PC, which contains the address
+;;;                  of the branch instruction plus 8.
+;;;
+;;;*****************************************************************************
+
+	;; BROM entry point
+	;; Unknown sequence of pulsing, is this related to multi-CPU?
+start:
+ffff2c20:	e59f11bc 	ldr	r1, [pc, #444]	; 0xffff2de4 =0x01c000a4
+ffff2c24:	e5912000 	ldr	r2, [r1]
+ffff2c28:	e3a03001 	mov	r3, #1
+ffff2c2c:	e1822003 	orr	r2, r2, r3
+ffff2c30:	e5812000 	str	r2, [r1] 	; set bit 1 of undocumented register
+
+ffff2c34:	e59f11a8 	ldr	r1, [pc, #424]	; 0xffff2de4 =0x01c000a4
+ffff2c38:	e5912000 	ldr	r2, [r1]
+ffff2c3c:	e3a03002 	mov	r3, #2
+ffff2c40:	e1822003 	orr	r2, r2, r3
+ffff2c44:	e5812000 	str	r2, [r1]	; set bit 2 of undocumented register
+
+ffff2c48:	e3a00014 	mov	r0, #20		; delay loop 20 times
+
+.delay0:
+ffff2c4c:	e2500001 	subs	r0, r0, #1
+ffff2c50:	1afffffd 	bne	.delay0
+
+ffff2c54:	e5912000 	ldr	r2, [r1]
+ffff2c58:	e1c22003 	bic	r2, r2, r3
+ffff2c5c:	e5812000 	str	r2, [r1]	; clear bit 2 of undocumented register
+
+ffff2c60:	e3a0001e 	mov	r0, #30		; delay loop 30 times
+
+.delay1:
+ffff2c64:	e2500001 	subs	r0, r0, #1
+ffff2c68:	1afffffd 	bne	.delay1
+
+ffff2c6c:	e5912000 	ldr	r2, [r1]
+ffff2c70:	e1822003 	orr	r2, r2, r3
+ffff2c74:	e5812000 	str	r2, [r1]	; set bit 2 of undocumented register
+
+ffff2c78:	e3a00014 	mov	r0, #20 	; delay loop 20 times
+
+.delay2:
+ffff2c7c:	e2500001 	subs	r0, r0, #1
+ffff2c80:	1afffffd 	bne	.delay2
+
+ffff2c84:	e5912000 	ldr	r2, [r1]
+ffff2c88:	e1c22003 	bic	r2, r2, r3
+ffff2c8c:	e5812000 	str	r2, [r1]	; clear bit 2 of undocumented register
+
+ffff2c90:	e3a0001e 	mov	r0, #30		; delay loop 30 times
+
+.delay3:
+ffff2c94:	e2500001 	subs	r0, r0, #1
+ffff2c98:	1afffffd 	bne	.delay3
+
+ffff2c9c:	e5912000 	ldr	r2, [r1]
+ffff2ca0:	e1822003 	orr	r2, r2, r3
+ffff2ca4:	e5812000 	str	r2, [r1]	; set bit 2 of undocumented register
+
+ffff2ca8:	e3a00014 	mov	r0, #20		; delay loop 20 times
+
+.delay4:
+ffff2cac:	e2500001 	subs	r0, r0, #1
+ffff2cb0:	1afffffd 	bne	.delay4
+
+ffff2cb4:	e59f1128 	ldr	r1, [pc, #296]	; 0xffff2de4 =0x01c000a4
+ffff2cb8:	e5912000 	ldr	r2, [r1]
+ffff2cbc:	e3a03001 	mov	r3, #1
+ffff2cc0:	e1c22003 	bic	r2, r2, r3
+ffff2cc4:	e5812000 	str	r2, [r1]	; clear bit 1 of undocumented register
+
+ffff2cc8:	e3a00050 	mov	r0, #80		; delay loop 80 times
+
+.delay5:
+ffff2ccc:	e2500001 	subs	r0, r0, #1
+ffff2cd0:	1afffffd 	bne	.delay5
+
+ffff2cd4:	ea000001 	b	.check_multi_cpu
+
+	;; Start a CPU other than #0, which is unlikely as the V3s only features a single core
+.start_non_zero:
+ffff2cd8:	e59f0108 	ldr	r0, [pc, #264]	; 0xffff2de8 =0x01f01da4 (PRIVATE0) cpu0+ (or cpu0 hotplug) entry address register?
+ffff2cdc:	e590f000 	ldr	pc, [r0]
+
+	;; Check for multi-CPU, which is unlikely as the V3s only features a single core
+	;; For system CoProcessor instructions, see https://developer.arm.com/documentation/ddi0344/k/system-control-coprocessor/system-control-coprocessor-registers/register-allocation
+.check_multi_cpu:
+ffff2ce0:	ee100fb0 	mrc	15, 0, r0, cr0, cr0, {5}; read the MPIDR (Multiprocessor ID Register) from system CoProcessor
+ffff2ce4:	e2000003 	and	r0, r0, #3
+ffff2ce8:	e3500000 	cmp	r0, #0	        ; 2 LSB bits are processor #
+ffff2cec:	1afffff9 	bne	.start_non_zero ; start non-zero core
+ffff2cf0:	eaffffff 	b	.start_zero	; start core 0
+
+	;; Start Core #0
+.start_zero:
+ffff2cf4:	e10f0000 	mrs	r0, CPSR	; read current program status register
+ffff2cf8:	e3c0001f 	bic	r0, r0, #31	; load System (ARMv4+) R0-R14, CPSR, PC as MASK
+ffff2cfc:	e3800013 	orr	r0, r0, #19	; set SVC mode (supervisor) R0-R12, R13_svc R14_svc CPSR, SPSR_IRQ, PC
+ffff2d00:	e38000c0 	orr	r0, r0, #192	; 0xc0e: enable FIQ + IRQ interrupts
+ffff2d04:	e3c00c02 	bic	r0, r0, #512	; set little endianess
+ffff2d08:	e121f000 	msr	CPSR_c, r0	; write to program status regsiter
+
+	;; Disable MMU, I and D cache and program flow prediction
+ffff2d0c:	ee110f10 	mrc	15, 0, r0, cr1, cr0, {0}; read CR (Control Register) from CoProcessor
+ffff2d10:	e3c00005 	bic	r0, r0, #5	; disable MMU and data caching
+ffff2d14:	e3c00b06 	bic	r0, r0, #6144	; 0x1800: disable program flow prediction and instruction caching
+ffff2d18:	ee010f10 	mcr	15, 0, r0, cr1, cr0, {0}; write to CoProcessor CR
+
+	;; Disable watchdog
+ffff2d1c:	e59f10c8 	ldr	r1, [pc, #200]	; 0xffff2dec =0x01c20cb8 load WDT_MODE (watchdog timer) address
+ffff2d20:	e5912000 	ldr	r2, [r1]	; load WDT_MODE value
+ffff2d24:	e3c22001 	bic	r2, r2, #1	; disable watchdog reset
+ffff2d28:	e5812000 	str	r2, [r1]	; store WDT_MODE register
+
+	;; Configure APB1 and AHB1 clocks, APB1 clock is /4
+ffff2d2c:	e59f10bc 	ldr	r1, [pc, #188]	; 0xffff2df0 =0x01c20000 load CCU base address
+ffff2d30:	e5912054 	ldr	r2, [r1, #84]	; load AHB1_APB1_CFG_REG
+ffff2d34:	e3a03e33 	mov	r3, #816	; 0x330: APB1_CLK_RATIO = 0x11, AHB1_PRE_DIV = 0x11, AHB1_CLK_DIV_RATIO = 0x11 MASK
+ffff2d38:	e1c22003 	bic	r2, r2, r3	;        APB1_CLK_RATIO = 0x00, AHB1_PRE_DIV = 0x00, AHB1_CLK_DIV_RATIO = 0x00
+ffff2d3c:	e3a03c01 	mov	r3, #256	; 0x100: APB1_CLK_RATIO = 0x10 (/4)
+ffff2d40:	e1822003 	orr	r2, r2, r3
+ffff2d44:	e5812054 	str	r2, [r1, #84]	; store AHB1_APB1_CFG_REG
+
+	;; Enable DMA and PIO clock gating, reset DMA
+ffff2d48:	e5912060 	ldr	r2, [r1, #96]	; load BUS_CLK_GATING_REG0
+ffff2d4c:	e3a03040 	mov	r3, #64		; DMA_GATING = 0x1
+ffff2d50:	e1822003 	orr	r2, r2, r3
+ffff2d54:	e5812060 	str	r2, [r1, #96]	; store BUS_CLK_GATING_REG0
+
+ffff2d58:	e5912068 	ldr	r2, [r1, #104]	; load BUS_CLK_GATING_REG2
+ffff2d5c:	e3a03020 	mov	r3, #32		; PIO_GATING = 0x1
+ffff2d60:	e1822003 	orr	r2, r2, r3
+ffff2d64:	e5812068 	str	r2, [r1, #104]	; store BUS_CLK_GATING_REG2
+
+ffff2d68:	e59122c0 	ldr	r2, [r1, #704]	; load BUS_SOFT_RST_REG0
+ffff2d6c:	e3a03040 	mov	r3, #64		; DMA_RST = 1
+ffff2d70:	e1822003 	orr	r2, r2, r3
+ffff2d74:	e58122c0 	str	r2, [r1, #704]	; store BUS_SOFT_RST_REG0
+
+	;; Setup (IRQ?) stack pointer to end of SRAM A1 (16KB)
+ffff2d78:	e59fd074 	ldr	sp, [pc, #116]	; 0xffff2df4 =0x00003ffc setup stack pointer to end of SRAM A1 (16KB)
+
+ffff2d7c:	e59f3074 	ldr	r3, [pc, #116]	; 0xffff2df8 =0x01f01da0 (PRIVATE0) standby flag register?
+ffff2d80:	e5932000 	ldr	r2, [r3]
+ffff2d84:	e30f1fff 	movw	r1, #65535	; 0xffff
+ffff2d88:	e0010002 	and	r0, r1, r2
+ffff2d8c:	e30e1fe8 	movw	r1, #61416	; 0xefe8
+ffff2d90:	e1500001 	cmp	r0, r1
+ffff2d94:	0a000058 	beq	resume_from_standby
+
+	;; Clear undocument register in System Control block
+	;; Is this to enable SRAM A1 and C, and CPU I + D + L2 caches?
+	;; Or is this to exit from initial IRQ context?
+ffff2d98:	e3a01507 	mov	r1, #29360128	; 0x1c00000: undocumented register in System Control block
+ffff2d9c:	e3a02000 	mov	r2, #0
+ffff2da0:	e5812000 	str	r2, [r1]
+
+	;; Gate the Video Engine clock and reset it: why is it done here?
+	;; Is it related to SRAM C being connected to the Video Engine?
+ffff2da4:	e59f1050 	ldr	r1, [pc, #80]	; 0xffff2dfc =0x01c20064 load BUS_CLK_GATING_REG1
+ffff2da8:	e5912000 	ldr	r2, [r1]
+ffff2dac:	e3a03001 	mov	r3, #1 		; VE_GATING = 0x1
+ffff2db0:	e1822003 	orr	r2, r2, r3
+ffff2db4:	e5812000 	str	r2, [r1] 	; store BUS_CLK_GTING_REG1
+ffff2db8:	e59f1040 	ldr	r1, [pc, #64]	; 0xffff2e00 =0x01c202c4 load BUS_SOFT_RST_REG1
+ffff2dbc:	e5912000 	ldr	r2, [r1]
+ffff2dc0:	e3a03001 	mov	r3, #1 		; VE_RST = 0x1
+ffff2dc4:	e1822003 	orr	r2, r2, r3
+ffff2dc8:	e5812000 	str	r2, [r1]  	; store BUS_SOFT_RST_REG1
+ffff2dcc:	e3a00e7d 	mov	r0, #2000	; 0x7d0
+
+.delay_6:
+ffff2dd0:	e2500001 	subs	r0, r0, #1
+ffff2dd4:	1afffffd 	bne	.delay_6
+
+	;; Setup (application?) stack pointer to 4k below end of SRAM C (44KB)
+ffff2dd8:	e59fd024 	ldr	sp, [pc, #36]	; 0xffff2e04 = 0x0000dffc setup stack pointer to 4k below end of SRAM C (44KB)
+ffff2ddc:	eb000014 	bl	boot		; jump to boot
+ffff2de0:	eafffffe 	b	0xffff2de0	; loop forever
+
+	;; Global Offset table
+ffff2de4:	01c000a4
+ffff2de8:	01f01da4				; cpu0+ (or cpu hotplug) entry address register?
+ffff2dec:	01c20cb8				; WDOG_MODE_REG
+ffff2df0:	01c20000				; CCU_BASE
+ffff2df4:	00003ffc
+ffff2df8:	01f01da0				; standby flag register?
+ffff2dfc:	01c20064				; BUS_CLK_GATING_REG1
+ffff2e00:	01c202c4
+ffff2e04:	0000dffc
+
+	;; Fetch the content of 0x2000 + r0 * 256 into r2, for unknow purpose
+ffff2e08:	e3a02000 	mov	r2, #0
+ffff2e0c:	e3a01000 	mov	r1, #0
+ffff2e10:	e3a03802 	mov	r3, #131072	; 0x20000
+ffff2e14:	e0831400 	add	r1, r3, r0, lsl #8
+ffff2e18:	e5912000 	ldr	r2, [r1]
+ffff2e1c:	e12fff1e 	bx	lr
+
+jump_spl:
+ffff2e20:	e1a04000 	mov	r4, r0
+ffff2e24:	e1a00004 	mov	r0, r4
+ffff2e28:	eb000ce6 	bl	jump_to
+ffff2e2c:	e320f000 	nop	{0}
+ffff2e30:	eafffffe 	b	0xffff2e30	; loop forever
+
+	;; Boot sequence check
+	;; Check first uboot button, it does not like it is accessible on any of the V3s pins (please let me know!)
+boot:
+ffff2e34:	eb000cce 	bl	check_uboot	; check if uboot button is pressed, return value in r0
+ffff2e38:	e1a04000 	mov	r4, r0		; r4 = check_uboot();
+ffff2e3c:	e3540000 	cmp	r4, #0		; see if check_uboot returned 0
+ffff2e40:	0a000000 	beq	.try_boot_MMC0	; if check_uboot was 0, try to boot from MMC0
+ffff2e44:	ea000026 	b	.boot_fel	; else boot FEL mode
+
+.try_boot_MMC0:
+ffff2e48:	e3a00000 	mov	r0, #0
+ffff2e4c:	ebffffed 	bl	0xffff2e08
+ffff2e50:	e3a00000 	mov	r0, #0		; r0 = 0x0; (which card_no to boot, 0 = mmc0)
+ffff2e54:	eb000190 	bl	load_boot1_from_mmc ; load SPL from mmc0
+ffff2e58:	e1a04000 	mov	r4, r0		; r4 = load_from_mmc();
+ffff2e5c:	e3540000 	cmp	r4, #0		; see if load_from_mmc returned 0
+ffff2e60:	1a000000 	bne	.try_boot_NAND	; if load_from_mmc returned 0 try to boot from NAND-flash
+ffff2e64:	ea000021 	b	.boot_spl	; else skip to .boot_spl
+
+.try_boot_NAND:
+ffff2e68:	e3a00001 	mov	r0, #1
+ffff2e6c:	ebffffe5 	bl	0xffff2e08
+ffff2e70:	e3a00002 	mov	r0, #2
+ffff2e74:	eb0001b0 	bl	0xffff353c	; load SPL from NAND
+ffff2e78:	e1a04000 	mov	r4, r0		; r4 = load_from_nand();
+ffff2e7c:	e3540000 	cmp	r4, #0		; see if load_from_nand returned 0
+ffff2e80:	1a000000 	bne	.try_boot_MMC2	; if load_from_nand returned 0 try to boot from MMC2
+ffff2e84:	ea000019 	b	.boot_spl	; else skip to .boot_spl
+
+.try_boot_MMC2:
+ffff2e88:	e3a00002 	mov	r0, #2		; r0 = 0x2; (which card_no to boot, 2 = mmc2)
+ffff2e8c:	eb000182 	bl	load_boot1_from_mmc ; load SPL from mmc2
+ffff2e90:	e1a04000 	mov	r4, r0		; r4 = load_from_mmc();
+ffff2e94:	e3540000 	cmp	r4, #0		; see if load_from_mmc returned 0
+ffff2e98:	1a000000 	bne	.try_boot_SPINOR; if load_from_mmc returned 0 try to boot from SPI NOR-flash
+ffff2e9c:	ea000013 	b	.boot_spl
+
+.try_boot_SPINOR:
+ffff2ea0:	e3a00002 	mov	r0, #2
+ffff2ea4:	ebffffd7 	bl	0xffff2e08
+ffff2ea8:	eb000c2b 	bl	0xffff5f5c	; load SPL from SPI NOR-flash
+ffff2eac:	e1a04000 	mov	r4, r0		; r4 = load_from_spinor();
+ffff2eb0:	e3540000 	cmp	r4, #0		; see if load_from_spinor returned 0
+ffff2eb4:	1a000000 	bne	0xffff2ebc	; if load_from_spinor returned 0 boot from FEL mode (via .none_found)
+ffff2eb8:	ea00000c 	b	.boot_spl	; else skip to .boot_spl
+
+ffff2ebc:	e3a00003 	mov	r0, #3
+ffff2ec0:	ebffffd0 	bl	0xffff2e08
+ffff2ec4:	eb0000d7 	bl	0xffff3228
+ffff2ec8:	e1a04000 	mov	r4, r0
+ffff2ecc:	e3540000 	cmp	r4, #0
+ffff2ed0:	1a000000 	bne	.none_found
+ffff2ed4:	ea000005 	b	.boot_spl
+
+.none_found:
+ffff2ed8:	e3a00004 	mov	r0, #4
+ffff2edc:	ebffffc9 	bl	0xffff2e08
+
+ffff2ee0:	e320f000 	nop	{0}
+
+.boot_fel:
+ffff2ee4:	e59f006c 	ldr	r0, [pc, #108]	; 0xffff2f58 =0x0xffff0020 load interrupt vector 'fel_setup' into r0
+ffff2ee8:	eb000cb6 	bl	jump_to		; execute 'fel_setup' (via jump_to)
+ffff2eec:	e320f000 	nop	{0}
+
+.boot_spl:
+ffff2ef0:	e3a010fc 	mov	r1, #252	; 0xfc
+ffff2ef4:	e3a00000 	mov	r0, #0
+ffff2ef8:	ebffffc8 	bl	jump_spl
+
+resume_from_standby:
+ffff2efc:	e59f4058 	ldr	r4, [pc, #88]	; 0xffff2f5c =0x01f01da8 standby resume entry address register?
+ffff2f00:	e3a06000 	mov	r6, #0
+ffff2f04:	e3a05000 	mov	r5, #0
+ffff2f08:	e5946000 	ldr	r6, [r4]
+ffff2f0c:	e5965010 	ldr	r5, [r6, #16]
+ffff2f10:	e28f1048 	add	r1, pc, #72	; 0x48 =0xffff2f60 "eGON.BT0"
+ffff2f14:	e5940000 	ldr	r0, [r4]
+ffff2f18:	eb000c45 	bl	check_magic 	; check magic
+
+ffff2f1c:	e3500000 	cmp	r0, #0
+ffff2f20:	1a00000b 	bne	resume_fail
+
+ffff2f24:	e1a00005 	mov	r0, r5 		; value pointed by standby resume entry address register + 16
+ffff2f28:	e7df051f 	bfc	r0, #10, #22	; check if 10 MSB bits are 0 (valid address)
+ffff2f2c:	e3500000 	cmp	r0, #0
+ffff2f30:	1a000007 	bne	resume_fail
+
+ffff2f34:	e1a01005 	mov	r1, r5		; value pointed by standby resume entry address register + 16
+ffff2f38:	e5940000 	ldr	r0, [r4]
+ffff2f3c:	eb000c4e 	bl	check_sum
+ffff2f40:	e3500000 	cmp	r0, #0
+ffff2f44:	1a000002 	bne	resume_fail
+
+ffff2f48:	e3a010fc 	mov	r1, #252	; 0xfc
+ffff2f4c:	e5940000 	ldr	r0, [r4]
+ffff2f50:	ebffffb2 	bl	jump_spl
+
+resume_fail:
+ffff2f54:	ebffffb6 	bl	boot
+
+	;; Global Offset Table
+ffff2f58:	ffff0020
+ffff2f5c:	01f01da8				; standby resume entry address register?
+ffff2f60:	4e4f4765	.ascii	"eGON"
+ffff2f64:	3054422e	.asci	".BT0"
+ffff2f68:	00000000
+
+ffff2f6c:	e92d4070 	push	{r4, r5, r6, lr}
+ffff2f70:	e1a03000 	mov	r3, r0
+ffff2f74:	e3520000 	cmp	r2, #0
+ffff2f78:	1a00000b 	bne	0xffff2fac
+
+ffff2f7c:	e3510002 	cmp	r1, #2
+ffff2f80:	2a000007 	bcs	0xffff2fa4
+
+ffff2f84:	e59f0058 	ldr	r0, [pc, #88]	; 0xffff2fe4 =0xffff61cc
+ffff2f88:	e7b04201 	ldr	r4, [r0, r1, lsl #4]!
+ffff2f8c:	e9900060 	ldmib	r0, {r5, r6}
+ffff2f90:	e590000c 	ldr	r0, [r0, #12]
+ffff2f94:	e583000c 	str	r0, [r3, #12]
+ffff2f98:	e8830070 	stm	r3, {r4, r5, r6}
+ffff2f9c:	e3a00000 	mov	r0, #0
+
+ffff2fa0:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff2fa4:	e3e00000 	mvn	r0, #0
+ffff2fa8:	eafffffc 	b	0xffff2fa0
+ffff2fac:	e3520001 	cmp	r2, #1
+ffff2fb0:	1a000009 	bne	0xffff2fdc
+
+ffff2fb4:	e3510004 	cmp	r1, #4
+ffff2fb8:	2a000005 	bcs	0xffff2fd4
+
+ffff2fbc:	e59f0024 	ldr	r0, [pc, #36]	; 0xffff2fe8 =0xffff61ec
+ffff2fc0:	e0806201 	add	r6, r0, r1, lsl #4
+ffff2fc4:	e8960071 	ldm	r6, {r0, r4, r5, r6}
+ffff2fc8:	e8830071 	stm	r3, {r0, r4, r5, r6}
+ffff2fcc:	e3a00000 	mov	r0, #0
+ffff2fd0:	eafffff2 	b	0xffff2fa0
+
+ffff2fd4:	e3e00000 	mvn	r0, #0
+ffff2fd8:	eafffff0 	b	0xffff2fa0
+
+ffff2fdc:	e3e00000 	mvn	r0, #0
+ffff2fe0:	eaffffee 	b	0xffff2fa0
+
+	;; Global Offset Table
+ffff2fe4:	ffff61cc
+ffff2fe8:	ffff61ec
+
+ffff2fec:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff2ff0:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff2ff4:	eb000a1f 	bl	0xffff5878
+ffff2ff8:	eb000b4d 	bl	0xffff5d34
+ffff2ffc:	e3a06000 	mov	r6, #0
+ffff3000:	ea00003f 	b	0xffff3104
+
+ffff3004:	e3a0a020 	mov	sl, #32
+ffff3008:	ea00003a 	b	0xffff30f8
+
+ffff300c:	e3a02001 	mov	r2, #1
+ffff3010:	e1a01006 	mov	r1, r6
+ffff3014:	e28d000c 	add	r0, sp, #12
+ffff3018:	ebffffd3 	bl	0xffff2f6c
+ffff301c:	e1a09000 	mov	r9, r0
+ffff3020:	e3790001 	cmn	r9, #1
+ffff3024:	1a000000 	bne	0xffff302c
+
+ffff3028:	ea000031 	b	0xffff30f4
+
+ffff302c:	e59d000c 	ldr	r0, [sp, #12]
+ffff3030:	e58d0020 	str	r0, [sp, #32]
+ffff3034:	e59d4010 	ldr	r4, [sp, #16]
+ffff3038:	e59d7018 	ldr	r7, [sp, #24]
+ffff303c:	e59d8014 	ldr	r8, [sp, #20]
+ffff3040:	e88d0110 	stm	sp, {r4, r8}
+ffff3044:	e58d7008 	str	r7, [sp, #8]
+ffff3048:	e3a02001 	mov	r2, #1
+ffff304c:	e3a01000 	mov	r1, #0
+ffff3050:	e1a0000a 	mov	r0, sl
+ffff3054:	e59d3020 	ldr	r3, [sp, #32]
+ffff3058:	eb000b46 	bl	0xffff5d78
+ffff305c:	e3500002 	cmp	r0, #2
+ffff3060:	1a000000 	bne	0xffff3068
+
+ffff3064:	ea000022 	b	0xffff30f4
+
+ffff3068:	e28f1f7b 	add	r1, pc, #492	; 0x1ec =0xffff325c "eGON.BT0"
+ffff306c:	e3a00000 	mov	r0, #0
+ffff3070:	eb000bef 	bl	check_magic
+ffff3074:	e3500000 	cmp	r0, #0
+ffff3078:	0a000000 	beq	0xffff3080
+
+ffff307c:	ea00001c 	b	0xffff30f4
+
+ffff3080:	e3a0b000 	mov	fp, #0
+ffff3084:	e59b5010 	ldr	r5, [fp, #16]
+ffff3088:	e2440001 	sub	r0, r4, #1
+ffff308c:	e1100005 	tst	r0, r5
+ffff3090:	0a000000 	beq	0xffff3098
+
+ffff3094:	ea000016 	b	0xffff30f4
+
+ffff3098:	e730f415 	udiv	r0, r5, r4
+ffff309c:	e58d001c 	str	r0, [sp, #28]
+ffff30a0:	e88d0110 	stm	sp, {r4, r8}
+ffff30a4:	e58d7008 	str	r7, [sp, #8]
+ffff30a8:	e3a01000 	mov	r1, #0
+ffff30ac:	e1a0000a 	mov	r0, sl
+ffff30b0:	e1cd21dc 	ldrd	r2, [sp, #28]
+ffff30b4:	eb000b2f 	bl	0xffff5d78
+ffff30b8:	e3500002 	cmp	r0, #2
+ffff30bc:	1a000000 	bne	0xffff30c4
+
+ffff30c0:	ea00000b 	b	0xffff30f4
+
+ffff30c4:	e1a01005 	mov	r1, r5
+ffff30c8:	e3a00000 	mov	r0, #0
+ffff30cc:	eb000bea 	bl	check_sum
+ffff30d0:	e3500000 	cmp	r0, #0
+ffff30d4:	1a000005 	bne	0xffff30f0
+
+ffff30d8:	e3a00003 	mov	r0, #3
+ffff30dc:	e5cb0028 	strb	r0, [fp, #40]	; 0x28
+ffff30e0:	eb000a08 	bl	0xffff5908
+ffff30e4:	e3a00000 	mov	r0, #0
+
+ffff30e8:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff30ec:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff30f0:	e320f000 	nop	{0}
+
+ffff30f4:	e28aa020 	add	sl, sl, #32
+
+ffff30f8:	e35a0c01 	cmp	sl, #256	; 0x100
+ffff30fc:	3affffc2 	bcc	0xffff300c
+
+ffff3100:	e2866001 	add	r6, r6, #1
+ffff3104:	e3560004 	cmp	r6, #4
+ffff3108:	3affffbd 	bcc	0xffff3004
+
+ffff310c:	eb0009fd 	bl	0xffff5908
+ffff3110:	e3e00000 	mvn	r0, #0
+ffff3114:	eafffff3 	b	0xffff30e8
+
+ffff3118:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff311c:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff3120:	eb0009d4 	bl	0xffff5878
+ffff3124:	eb000b02 	bl	0xffff5d34
+ffff3128:	e3a06000 	mov	r6, #0
+ffff312c:	ea000038 	b	0xffff3214
+
+ffff3130:	e3a02000 	mov	r2, #0
+ffff3134:	e1a01006 	mov	r1, r6
+ffff3138:	e28d0010 	add	r0, sp, #16
+ffff313c:	ebffff8a 	bl	0xffff2f6c
+ffff3140:	e1a09000 	mov	r9, r0
+ffff3144:	e3790001 	cmn	r9, #1
+ffff3148:	1a000000 	bne	0xffff3150
+
+ffff314c:	ea00002f 	b	0xffff3210
+
+ffff3150:	e59db010 	ldr	fp, [sp, #16]
+ffff3154:	e59d4014 	ldr	r4, [sp, #20]
+ffff3158:	e59d801c 	ldr	r8, [sp, #28]
+ffff315c:	e59d7018 	ldr	r7, [sp, #24]
+ffff3160:	e1a0300b 	mov	r3, fp
+ffff3164:	e3a02001 	mov	r2, #1
+ffff3168:	e3a01000 	mov	r1, #0
+ffff316c:	e1a00001 	mov	r0, r1
+ffff3170:	e88d0190 	stm	sp, {r4, r7, r8}
+ffff3174:	eb000aff 	bl	0xffff5d78
+ffff3178:	e3500002 	cmp	r0, #2
+ffff317c:	1a000000 	bne	0xffff3184
+
+ffff3180:	ea000022 	b	0xffff3210
+
+ffff3184:	e28f10d0 	add	r1, pc, #208	; 0xd0 =0xffff325c "eGON.BT0"
+ffff3188:	e3a00000 	mov	r0, #0
+ffff318c:	eb000ba8 	bl	check_magic
+ffff3190:	e3500000 	cmp	r0, #0
+ffff3194:	0a000000 	beq	0xffff319c
+
+ffff3198:	ea00001c 	b	0xffff3210
+
+ffff319c:	e3a0a000 	mov	sl, #0
+ffff31a0:	e59a5010 	ldr	r5, [sl, #16]
+ffff31a4:	e2440001 	sub	r0, r4, #1
+ffff31a8:	e1100005 	tst	r0, r5
+ffff31ac:	0a000000 	beq	0xffff31b4
+
+ffff31b0:	ea000016 	b	0xffff3210
+
+ffff31b4:	e730f415 	udiv	r0, r5, r4
+ffff31b8:	e58d0020 	str	r0, [sp, #32]
+ffff31bc:	e1a0300b 	mov	r3, fp
+ffff31c0:	e88d0190 	stm	sp, {r4, r7, r8}
+ffff31c4:	e3a01000 	mov	r1, #0
+ffff31c8:	e1a00001 	mov	r0, r1
+ffff31cc:	e59d2020 	ldr	r2, [sp, #32]
+ffff31d0:	eb000ae8 	bl	0xffff5d78
+ffff31d4:	e3500002 	cmp	r0, #2
+ffff31d8:	1a000000 	bne	0xffff31e0
+
+ffff31dc:	ea00000b 	b	0xffff3210
+
+ffff31e0:	e1a01005 	mov	r1, r5
+ffff31e4:	e3a00000 	mov	r0, #0
+ffff31e8:	eb000ba3 	bl	check_sum
+ffff31ec:	e3500000 	cmp	r0, #0
+ffff31f0:	1a000005 	bne	0xffff320c
+
+ffff31f4:	e3a00003 	mov	r0, #3
+ffff31f8:	e5ca0028 	strb	r0, [sl, #40]	; 0x28
+ffff31fc:	eb0009c1 	bl	0xffff5908
+ffff3200:	e3a00000 	mov	r0, #0
+
+ffff3204:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff3208:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff320c:	e320f000 	nop	{0}
+
+ffff3210:	e2866001 	add	r6, r6, #1
+
+ffff3214:	e3560002 	cmp	r6, #2
+ffff3218:	3affffc4 	bcc	0xffff3130
+
+ffff321c:	eb0009b9 	bl	0xffff5908
+ffff3220:	e3e00000 	mvn	r0, #0
+ffff3224:	eafffff6 	b	0xffff3204
+
+ffff3228:	e92d4010 	push	{r4, lr}
+ffff322c:	ebffffb9 	bl	0xffff3118
+
+ffff3230:	e3500000 	cmp	r0, #0
+ffff3234:	1a000001 	bne	0xffff3240
+
+ffff3238:	e3a00000 	mov	r0, #0
+
+ffff323c:	e8bd8010 	pop	{r4, pc}
+
+ffff3240:	ebffff69 	bl	0xffff2fec
+
+ffff3244:	e3500000 	cmp	r0, #0
+ffff3248:	1a000001 	bne	0xffff3254
+
+ffff324c:	e3a00000 	mov	r0, #0
+ffff3250:	eafffff9 	b	0xffff323c
+
+ffff3254:	e3e00000 	mvn	r0, #0
+ffff3258:	eafffff7 	b	0xffff323c
+
+ffff325c:	4e4f4765 	.ascii	"eGON"
+ffff3260:	3054422e 	.ascii	".BT0"
+ffff3264:	00000000 	.word	0
+
+;;;*****************************************************************************
+memcpy:
+ffff3268:	e92d4030 	push	{r4, r5, lr}
+ffff326c:	e1a03000 	mov	r3, r0
+ffff3270:	e3a00000 	mov	r0, #0
+ffff3274:	e1a04003 	mov	r4, r3
+ffff3278:	e1a0c001 	mov	ip, r1
+ffff327c:	e320f000 	nop	{0}
+ffff3280:	ea000002 	b	0xffff3290
+
+ffff3284:	e7dc5000 	ldrb	r5, [ip, r0]
+ffff3288:	e7c45000 	strb	r5, [r4, r0]
+ffff328c:	e2800001 	add	r0, r0, #1
+
+ffff3290:	e1500002 	cmp	r0, r2
+ffff3294:	3afffffa 	bcc	0xffff3284
+ffff3298:	e8bd8030 	pop	{r4, r5, pc}
+
+;;;*****************************************************************************
+memset:							; r0 = dest, r1 = value, r2 = size
+ffff329c:	e92d4010 	push	{r4, lr}
+ffff32a0:	e1a03000 	mov	r3, r0
+ffff32a4:	e3a00000 	mov	r0, #0
+ffff32a8:	e1a0c003 	mov	ip, r3
+ffff32ac:	e320f000 	nop	{0}
+ffff32b0:	ea000001 	b	0xffff32bc
+
+ffff32b4:	e7cc1000 	strb	r1, [ip, r0]
+ffff32b8:	e2800001 	add	r0, r0, #1
+
+ffff32bc:	e1500002 	cmp	r0, r2
+ffff32c0:	3afffffb 	bcc	0xffff32b4
+ffff32c4:	e8bd8010 	pop	{r4, pc}
+
+;;;*****************************************************************************
+memcmp:							; r0 = src, r1 = dest, r2 = size
+ffff32c8:	e92d4010 	push	{r4, lr}
+ffff32cc:	e1a03000 	mov	r3, r0
+ffff32d0:	e1a0c001 	mov	ip, r1
+ffff32d4:	e3a01000 	mov	r1, #0
+ffff32d8:	e320f000 	nop	{0}
+ffff32dc:	ea000006 	b	0xffff32fc
+
+ffff32e0:	e7d30001 	ldrb	r0, [r3, r1]
+ffff32e4:	e7dc4001 	ldrb	r4, [ip, r1]
+ffff32e8:	e1500004 	cmp	r0, r4
+ffff32ec:	0a000001 	beq	0xffff32f8
+
+ffff32f0:	e3e00000 	mvn	r0, #0
+
+ffff32f4:	e8bd8010 	pop	{r4, pc}
+
+ffff32f8:	e2811001 	add	r1, r1, #1
+
+ffff32fc:	e1510002 	cmp	r1, r2
+ffff3300:	3afffff6 	bcc	0xffff32e0
+
+ffff3304:	e3a00000 	mov	r0, #0
+ffff3308:	eafffff9 	b	0xffff32f4
+;;;*****************************************************************************
+
+ffff330c:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}
+ffff3310:	e1a07000 	mov	r7, r0
+ffff3314:	e1a06001 	mov	r6, r1
+ffff3318:	e1a08002 	mov	r8, r2
+ffff331c:	e3e09000 	mvn	r9, #0
+ffff3320:	e3a04000 	mov	r4, #0
+ffff3324:	e3a05000 	mov	r5, #0
+ffff3328:	e3a0a000 	mov	sl, #0
+ffff332c:	e3560000 	cmp	r6, #0
+ffff3330:	1a000001 	bne	0xffff333c
+
+ffff3334:	e3a0a010 	mov	sl, #16
+ffff3338:	ea000006 	b	0xffff3358
+
+ffff333c:	e3560001 	cmp	r6, #1
+ffff3340:	1a000001 	bne	0xffff334c
+
+ffff3344:	e300a100 	movw	sl, #256	; 0x100
+ffff3348:	ea000002 	b	0xffff3358
+
+ffff334c:	e3e09000 	mvn	r9, #0
+ffff3350:	e1a00009 	mov	r0, r9
+
+ffff3354:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff3358:	e3a03000 	mov	r3, #0
+ffff335c:	e3a02001 	mov	r2, #1
+ffff3360:	e1a0100a 	mov	r1, sl
+ffff3364:	e1a00008 	mov	r0, r8
+ffff3368:	eb00085c 	bl	0xffff54e0
+ffff336c:	e3500001 	cmp	r0, #1
+ffff3370:	0a00000c 	beq	0xffff33a8
+
+ffff3374:	e59f12fc 	ldr	r1, [pc, #764]	; 0xffff3678 =0x005b8d80
+ffff3378:	e1a00008 	mov	r0, r8
+ffff337c:	eb00067e 	bl	0xffff4d7c
+ffff3380:	e3a03000 	mov	r3, #0
+ffff3384:	e3a02001 	mov	r2, #1
+ffff3388:	e1a0100a 	mov	r1, sl
+ffff338c:	e1a00008 	mov	r0, r8
+ffff3390:	eb000852 	bl	0xffff54e0
+ffff3394:	e3500001 	cmp	r0, #1
+ffff3398:	0a000002 	beq	0xffff33a8
+
+ffff339c:	e3e09000 	mvn	r9, #0
+ffff33a0:	e1a00009 	mov	r0, r9
+ffff33a4:	eaffffea 	b	0xffff3354
+
+ffff33a8:	e28f1fb3 	add	r1, pc, #716	; 0x2cc = 0xffff367c "eGON.BT0"
+ffff33ac:	e3a00000 	mov	r0, #0
+ffff33b0:	eb000b1f 	bl	check_magic
+ffff33b4:	e3500000 	cmp	r0, #0
+ffff33b8:	0a000002 	beq	0xffff33c8
+
+ffff33bc:	e3e09000 	mvn	r9, #0
+ffff33c0:	e1a00009 	mov	r0, r9
+ffff33c4:	eaffffe2 	b	0xffff3354
+
+ffff33c8:	e3a05000 	mov	r5, #0
+ffff33cc:	e5954010 	ldr	r4, [r5, #16]
+ffff33d0:	e3540902 	cmp	r4, #32768	; 0x8000
+ffff33d4:	8a000003 	bhi	0xffff33e8
+ffff33d8:	e1a00004 	mov	r0, r4
+ffff33dc:	e7df049f 	bfc	r0, #9, #23
+ffff33e0:	e3500000 	cmp	r0, #0
+ffff33e4:	0a000002 	beq	0xffff33f4
+
+ffff33e8:	e3e09000 	mvn	r9, #0
+ffff33ec:	e1a00009 	mov	r0, r9
+ffff33f0:	eaffffd7 	b	0xffff3354
+
+ffff33f4:	e1a024a4 	lsr	r2, r4, #9
+ffff33f8:	e3a03000 	mov	r3, #0
+ffff33fc:	e1a0100a 	mov	r1, sl
+ffff3400:	e1a00008 	mov	r0, r8
+ffff3404:	eb000835 	bl	0xffff54e0
+ffff3408:	e15004a4 	cmp	r0, r4, lsr #9
+ffff340c:	0a00000c 	beq	0xffff3444
+
+ffff3410:	e59f1260 	ldr	r1, [pc, #608]	; 0xffff3678 =0x005b8d80
+ffff3414:	e1a00008 	mov	r0, r8
+ffff3418:	eb000657 	bl	0xffff4d7c
+ffff341c:	e1a024a4 	lsr	r2, r4, #9
+ffff3420:	e3a03000 	mov	r3, #0
+ffff3424:	e1a0100a 	mov	r1, sl
+ffff3428:	e1a00008 	mov	r0, r8
+ffff342c:	eb00082b 	bl	0xffff54e0
+ffff3430:	e15004a4 	cmp	r0, r4, lsr #9
+ffff3434:	0a000002 	beq	0xffff3444
+
+ffff3438:	e3e09000 	mvn	r9, #0
+ffff343c:	e1a00009 	mov	r0, r9
+ffff3440:	eaffffc3 	b	0xffff3354
+
+ffff3444:	e1a01004 	mov	r1, r4
+ffff3448:	e3a00000 	mov	r0, #0
+ffff344c:	eb000b0a 	bl	check_sum
+ffff3450:	e3500000 	cmp	r0, #0
+ffff3454:	1a00000d 	bne	0xffff3490
+
+ffff3458:	e3570000 	cmp	r7, #0
+ffff345c:	1a000002 	bne	0xffff346c
+ffff3460:	e3a00000 	mov	r0, #0
+ffff3464:	e5c50028 	strb	r0, [r5, #40]	; 0x28
+ffff3468:	ea000003 	b	0xffff347c
+
+ffff346c:	e3570002 	cmp	r7, #2
+ffff3470:	1a000001 	bne	0xffff347c
+
+ffff3474:	e3a00002 	mov	r0, #2
+ffff3478:	e5c50028 	strb	r0, [r5, #40]	; 0x28
+
+ffff347c:	e5d50028 	ldrb	r0, [r5, #40]	; 0x28
+ffff3480:	e1800206 	orr	r0, r0, r6, lsl #4
+ffff3484:	e5c50028 	strb	r0, [r5, #40]	; 0x28
+ffff3488:	e3a09000 	mov	r9, #0
+ffff348c:	ea000000 	b	0xffff3494
+
+ffff3490:	e3e09000 	mvn	r9, #0
+
+ffff3494:	e1a00009 	mov	r0, r9
+ffff3498:	eaffffad 	b	0xffff3354
+
+;;;*****************************************************************************
+load_boot1_from_mmc:					; r0 = card_no
+ffff349c:	e92d4030 	push	{r4, r5, lr}
+ffff34a0:	e24dd064 	sub	sp, sp, #100	; allocate local variables
+
+ffff34a4:	e1a05000 	mov	r5, r0 		; save card_no in r5
+ffff34a8:	e3e04000 	mvn	r4, #0		; -1
+ffff34ac:	e3a0204c 	mov	r2, #76		; length
+ffff34b0:	e3a01000 	mov	r1, #0		; value
+ffff34b4:	e28d0018 	add	r0, sp, #24	; dest
+ffff34b8:	ebffff77 	bl	memset
+
+ffff34bc:	e3a02018 	mov	r2, #24		; length
+ffff34c0:	e3a01000 	mov	r1, #0		; value
+ffff34c4:	e1a0000d 	mov	r0, sp		; dest
+ffff34c8:	ebffff73 	bl	memset
+
+ffff34cc:	e58dd018 	str	sp, [sp, #24]
+ffff34d0:	e28d1018 	add	r1, sp, #24
+ffff34d4:	e1a00005 	mov	r0, r5 		; r0 = card_no, r1 = structure
+ffff34d8:	eb00088e 	bl	0xffff5718
+
+ffff34dc:	e1a04000 	mov	r4, r0
+ffff34e0:	e3540000 	cmp	r4, #0
+ffff34e4:	0a000001 	beq	0xffff34f0
+
+ffff34e8:	e3e04000 	mvn	r4, #0
+ffff34ec:	ea00000c 	b	0xffff3524
+
+ffff34f0:	e28d2018 	add	r2, sp, #24
+ffff34f4:	e3a01000 	mov	r1, #0
+ffff34f8:	e1a00005 	mov	r0, r5
+ffff34fc:	ebffff82 	bl	0xffff330c
+
+ffff3500:	e1a04000 	mov	r4, r0
+ffff3504:	e3540000 	cmp	r4, #0
+ffff3508:	0a000004 	beq	0xffff3520
+
+ffff350c:	e28d2018 	add	r2, sp, #24
+ffff3510:	e3a01001 	mov	r1, #1
+ffff3514:	e1a00005 	mov	r0, r5
+ffff3518:	ebffff7b 	bl	0xffff330c
+ffff351c:	e1a04000 	mov	r4, r0
+
+ffff3520:	e320f000 	nop	{0}
+
+ffff3524:	e28d1018 	add	r1, sp, #24
+ffff3528:	e1a00005 	mov	r0, r5
+ffff352c:	eb0008b9 	bl	0xffff5818
+ffff3530:	e1a00004 	mov	r0, r4
+ffff3534:	e28dd064 	add	sp, sp, #100	; 0x64
+ffff3538:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff353c:	e92d40f0 	push	{r4, r5, r6, r7, lr}
+ffff3540:	e24dd064 	sub	sp, sp, #100	; 0x64
+ffff3544:	e1a06000 	mov	r6, r0
+ffff3548:	e3e07000 	mvn	r7, #0
+ffff354c:	e3a0204c 	mov	r2, #76	; 0x4c
+ffff3550:	e3a01000 	mov	r1, #0
+ffff3554:	e28d0018 	add	r0, sp, #24
+ffff3558:	ebffff4f 	bl	memset
+
+ffff355c:	e3a02018 	mov	r2, #24
+ffff3560:	e3a01000 	mov	r1, #0
+ffff3564:	e1a0000d 	mov	r0, sp
+ffff3568:	ebffff4b 	bl	memset
+
+ffff356c:	e58dd018 	str	sp, [sp, #24]
+ffff3570:	e28d1018 	add	r1, sp, #24
+ffff3574:	e1a00006 	mov	r0, r6
+ffff3578:	eb000884 	bl	0xffff5790
+ffff357c:	e3500000 	cmp	r0, #0
+ffff3580:	0a000001 	beq	0xffff358c
+
+ffff3584:	e320f000 	nop	{0}
+ffff3588:	ea000034 	b	0xffff3660
+
+ffff358c:	e3a03000 	mov	r3, #0
+ffff3590:	e3a02001 	mov	r2, #1
+ffff3594:	e1a01003 	mov	r1, r3
+ffff3598:	e28d0018 	add	r0, sp, #24
+ffff359c:	eb0007f2 	bl	0xffff556c
+ffff35a0:	e3500001 	cmp	r0, #1
+ffff35a4:	0a000001 	beq	0xffff35b0
+
+ffff35a8:	e3e07000 	mvn	r7, #0
+ffff35ac:	ea00002b 	b	0xffff3660
+
+ffff35b0:	e28f10c4 	add	r1, pc, #196	; 0xc4 =0xffff367c "eGON.BT0"
+ffff35b4:	e3a00000 	mov	r0, #0
+ffff35b8:	eb000a9d 	bl	check_magic
+ffff35bc:	e3500000 	cmp	r0, #0
+ffff35c0:	0a000001 	beq	0xffff35cc
+
+ffff35c4:	e3e07000 	mvn	r7, #0
+ffff35c8:	ea000024 	b	0xffff3660
+
+ffff35cc:	e3a05000 	mov	r5, #0
+ffff35d0:	e5954010 	ldr	r4, [r5, #16]
+ffff35d4:	e3540902 	cmp	r4, #32768	; 0x8000
+ffff35d8:	8a000003 	bhi	0xffff35ec
+
+ffff35dc:	e1a00004 	mov	r0, r4
+ffff35e0:	e7df049f 	bfc	r0, #9, #23
+ffff35e4:	e3500000 	cmp	r0, #0
+ffff35e8:	0a000001 	beq	0xffff35f4
+
+ffff35ec:	e3e07000 	mvn	r7, #0
+ffff35f0:	ea00001a 	b	0xffff3660
+
+ffff35f4:	e1a024a4 	lsr	r2, r4, #9
+ffff35f8:	e3a03000 	mov	r3, #0
+ffff35fc:	e1a01003 	mov	r1, r3
+ffff3600:	e28d0018 	add	r0, sp, #24
+ffff3604:	eb0007d8 	bl	0xffff556c
+ffff3608:	e15004a4 	cmp	r0, r4, lsr #9
+ffff360c:	0a000001 	beq	0xffff3618
+
+ffff3610:	e3e07000 	mvn	r7, #0
+ffff3614:	ea000011 	b	0xffff3660
+
+ffff3618:	e1a01004 	mov	r1, r4
+ffff361c:	e3a00000 	mov	r0, #0
+ffff3620:	eb000a95 	bl	check_sum
+ffff3624:	e3500000 	cmp	r0, #0
+ffff3628:	1a00000a 	bne	0xffff3658
+
+ffff362c:	e3560000 	cmp	r6, #0
+ffff3630:	1a000002 	bne	0xffff3640
+ffff3634:	e3a00000 	mov	r0, #0
+ffff3638:	e5c50028 	strb	r0, [r5, #40]	; 0x28
+ffff363c:	ea000003 	b	0xffff3650
+ffff3640:	e3560002 	cmp	r6, #2
+ffff3644:	1a000001 	bne	0xffff3650
+ffff3648:	e3a00002 	mov	r0, #2
+ffff364c:	e5c50028 	strb	r0, [r5, #40]	; 0x28
+ffff3650:	e3a07000 	mov	r7, #0
+ffff3654:	ea000000 	b	0xffff365c
+
+ffff3658:	e3e07000 	mvn	r7, #0
+ffff365c:	e320f000 	nop	{0}
+
+ffff3660:	e28d1018 	add	r1, sp, #24
+ffff3664:	e1a00006 	mov	r0, r6
+ffff3668:	eb00086a 	bl	0xffff5818
+ffff366c:	e1a00007 	mov	r0, r7
+ffff3670:	e28dd064 	add	sp, sp, #100	; 0x64
+ffff3674:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}
+
+	;; Global Offset Table
+ffff3678:	005b8d80
+ffff367c:	4e4f4765	.ascii	"eGON"
+ffff3680:	3054422e	.ascii	".BT0"
+ffff3684:	00000000
+
+ffff3688:	e3a00001 	mov	r0, #1
+ffff368c:	e59f1e64 	ldr	r1, [pc, #3684]	; 0xffff44f8 =0x01c20cd0 CNT64_TEST_REG
+ffff3690:	e5810000 	str	r0, [r1]
+ffff3694:	e12fff1e 	bx	lr
+
+;;;*****************************************************************************
+get_counter:
+ffff3698:	e92d4030 	push	{r4, r5, lr}
+ffff369c:	e320f000 	nop	{0}
+ffff36a0:	e3a00002 	mov	r0, #2
+ffff36a4:	e59f1e4c 	ldr	r1, [pc, #3660]	; 0xffff44f8 =0x01c20cd0 CNT64_TEST_REG
+ffff36a8:	e5810000 	str	r0, [r1]	; CNT64_RL_EN = 0x1
+ffff36ac:	e1810100 	orr	r0, r1, r0, lsl #2 ; r0 = 0x01c20cd8 CNT64_HIGH_REG
+ffff36b0:	e5902000 	ldr	r2, [r0]	; load CNT64_HIGH_REG
+ffff36b4:	e1a03002 	mov	r3, r2
+ffff36b8:	e3a02000 	mov	r2, #0
+ffff36bc:	e2400004 	sub	r0, r0, #4 	; r0 = 0x01c20cd4 CNT64_LOW_REG
+ffff36c0:	e5900000 	ldr	r0, [r0]	; load CNT64_LOW_REG
+ffff36c4:	e1822000 	orr	r2, r2, r0
+ffff36c8:	e1a00002 	mov	r0, r2
+ffff36cc:	e1a01003 	mov	r1, r3
+ffff36d0:	e8bd8030 	pop	{r4, r5, pc} 	; r0 = CNT64_LOW, r1 = CNT64_HIGH
+;;;*****************************************************************************
+
+ffff36d4:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff36d8:	e1a04000 	mov	r4, r0
+ffff36dc:	e1a05001 	mov	r5, r1
+ffff36e0:	e1a01185 	lsl	r1, r5, #3
+ffff36e4:	e1810ea4 	orr	r0, r1, r4, lsr #29
+ffff36e8:	e1a01184 	lsl	r1, r4, #3
+ffff36ec:	e1a03205 	lsl	r3, r5, #4
+ffff36f0:	e1832e24 	orr	r2, r3, r4, lsr #28
+ffff36f4:	e1a03204 	lsl	r3, r4, #4
+ffff36f8:	e091a003 	adds	sl, r1, r3
+ffff36fc:	e0a0b002 	adc	fp, r0, r2
+ffff3700:	ebffffe4 	bl	get_counter
+ffff3704:	e1a08000 	mov	r8, r0
+ffff3708:	e1a09001 	mov	r9, r1
+ffff370c:	e320f000 	nop	{0}
+ffff3710:	ebffffe0 	bl	get_counter
+ffff3714:	e0506008 	subs	r6, r0, r8
+ffff3718:	e0c17009 	sbc	r7, r1, r9
+ffff371c:	e056000a 	subs	r0, r6, sl
+ffff3720:	e0d7000b 	sbcs	r0, r7, fp
+ffff3724:	3afffff9 	bcc	0xffff3710
+ffff3728:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff372c:	e92d4030 	push	{r4, r5, lr}
+ffff3730:	e1a04000 	mov	r4, r0
+ffff3734:	e1a05001 	mov	r5, r1
+ffff3738:	ea000002 	b	0xffff3748
+
+ffff373c:	e3000320 	movw	r0, #800	; 0x320
+ffff3740:	e3a01000 	mov	r1, #0
+ffff3744:	ebffffe2 	bl	0xffff36d4
+
+ffff3748:	e1a01004 	mov	r1, r4
+ffff374c:	e1a00005 	mov	r0, r5
+ffff3750:	e2544001 	subs	r4, r4, #1
+ffff3754:	e2c55000 	sbc	r5, r5, #0
+ffff3758:	e3a03000 	mov	r3, #0
+ffff375c:	e0211003 	eor	r1, r1, r3
+ffff3760:	e0200003 	eor	r0, r0, r3
+ffff3764:	e1900001 	orrs	r0, r0, r1
+ffff3768:	1afffff3 	bne	0xffff373c
+
+ffff376c:	e8bd8030 	pop	{r4, r5, pc}
+
+;;;*****************************************************************************
+init_SDC:
+ffff3770:	e3500002 	cmp	r0, #2 		;  r0 = card_no, r1 = structure
+ffff3774:	1a00001d 	bne	.init_SDC0	; SDC0
+
+.init_SDC2:
+ffff3778:	e59f2d7c 	ldr	r2, [pc, #3452]	; 0xffff44fc =0b01 01 01 01 01 01 01 01 01 01 01
+ffff377c:	e59f3d7c 	ldr	r3, [pc, #3452]	; 0xffff4500 =0x01c20864 PC_PUL0
+ffff3780:	e5832000 	str	r2, [r3]	; enable pull-up on PC0-10
+ffff3784:	e59f2d78 	ldr	r2, [pc, #3448]	; 0xffff4504 =0b10 10 10 10 10 10 10 10
+ffff3788:	e243301c 	sub	r3, r3, #28	; PC_CFG0_REG
+ffff378c:	e5832000 	str	r2, [r3]	; configure PC as SDC2 function
+ffff3790:	e3002222 	movw	r2, #546	; 0x222
+ffff3794:	e18331c2 	orr	r3, r3, r2, asr #3 ; PC_CFG1_REG
+ffff3798:	e5832000 	str	r2, [r3]	; configure PC as SDC2 function
+ffff379c:	e59f2d64 	ldr	r2, [pc, #3428]	; 0xffff4508 =0x01c20000 CCU_BASE
+ffff37a0:	e59222c0 	ldr	r2, [r2, #704]	; 0x2c0 0x01c202c0
+ffff37a4:	e3822b01 	orr	r2, r2, #1024	; 0x400
+ffff37a8:	e59f3d58 	ldr	r3, [pc, #3416]	; 0xffff4508 =0x01c20000 CCU_BASE
+ffff37ac:	e58322c0 	str	r2, [r3, #704]	; 0x2c0 0x01c202c0
+ffff37b0:	e1a02003 	mov	r2, r3
+ffff37b4:	e5922060 	ldr	r2, [r2, #96]	; 0x60
+ffff37b8:	e3822b01 	orr	r2, r2, #1024	; 0x400
+ffff37bc:	e5832060 	str	r2, [r3, #96]	; 0x60
+ffff37c0:	e3a02102 	mov	r2, #-2147483648	; 0x80000000
+ffff37c4:	e5832090 	str	r2, [r3, #144]	; 0x90
+ffff37c8:	e2432a0f 	sub	r2, r3, #61440	; 0xf000
+ffff37cc:	e5812000 	str	r2, [r1]
+ffff37d0:	e5912000 	ldr	r2, [r1]
+ffff37d4:	e2822c02 	add	r2, r2, #512	; 0x200
+ffff37d8:	e5812010 	str	r2, [r1, #16]
+ffff37dc:	e2832090 	add	r2, r3, #144	; 0x90
+ffff37e0:	e5812008 	str	r2, [r1, #8]
+ffff37e4:	e59f2d20 	ldr	r2, [pc, #3360]	; 0xffff450c =0x016e3600
+ffff37e8:	e581200c 	str	r2, [r1, #12]
+ffff37ec:	ea000019 	b	0xffff3858
+
+.init_SDC0:
+ffff37f0:	e3002565 	movw	r2, #1381	; 0x565 =0b00 01 01 01 10 01 01
+ffff37f4:	e59f3d14 	ldr	r3, [pc, #3348]	; 0xffff4510 =0x01c208d0 PF_PUL0
+ffff37f8:	e5832000 	str	r2, [r3]	; enable pull-down on PF2, enable pull-up on PF0-1/PF3-5, disable pull-up/down on PF6
+ffff37fc:	e59f2d10 	ldr	r2, [pc, #3344]	; 0xffff4514 =0b111 0 010 0 010 0 010 0 010 0 010 0 010
+ffff3800:	e0433b42 	sub	r3, r3, r2, asr #22 ; PF_CFG0_REG
+ffff3804:	e5832000 	str	r2, [r3]	; configure PF as SDC0 function except for PF6
+ffff3808:	e59f2cf8 	ldr	r2, [pc, #3320]	; 0xffff4508 =0x01c20000 CCU_BASE
+ffff380c:	e59222c0 	ldr	r2, [r2, #704]	; 0x2c0
+ffff3810:	e3822c01 	orr	r2, r2, #256	; 0x100
+ffff3814:	e59f3cec 	ldr	r3, [pc, #3308]	; 0xffff4508 =0x01c20000 CCU_BASE
+ffff3818:	e58322c0 	str	r2, [r3, #704]	; 0x2c0
+ffff381c:	e1a02003 	mov	r2, r3
+ffff3820:	e5922060 	ldr	r2, [r2, #96]	; 0x60
+ffff3824:	e3822c01 	orr	r2, r2, #256	; 0x100
+ffff3828:	e5832060 	str	r2, [r3, #96]	; 0x60
+ffff382c:	e3a02102 	mov	r2, #-2147483648	; 0x80000000
+ffff3830:	e5832088 	str	r2, [r3, #136]	; 0x88
+ffff3834:	e2432a11 	sub	r2, r3, #69632	; 0x11000
+ffff3838:	e5812000 	str	r2, [r1]
+ffff383c:	e5912000 	ldr	r2, [r1]
+ffff3840:	e2822c02 	add	r2, r2, #512	; 0x200
+ffff3844:	e5812010 	str	r2, [r1, #16]
+ffff3848:	e2832088 	add	r2, r3, #136	; 0x88
+ffff384c:	e5812008 	str	r2, [r1, #8]
+ffff3850:	e59f2cb4 	ldr	r2, [pc, #3252]	; 0xffff450c =0x016e3600
+ffff3854:	e581200c 	str	r2, [r1, #12]
+
+ffff3858:	e3a02000 	mov	r2, #0
+ffff385c:	e5812004 	str	r2, [r1, #4]
+ffff3860:	e12fff1e 	bx	lr
+;;;*****************************************************************************
+
+ffff3864:	e3500002 	cmp	r0, #2
+ffff3868:	1a000019 	bne	0xffff38d4
+
+ffff386c:	e59f2ca4 	ldr	r2, [pc, #3236]	; 0xffff4518 =0x77777777
+ffff3870:	e59f3ca4 	ldr	r3, [pc, #3236]	; 0xffff451c =0x01c20848 PC_CFG0
+ffff3874:	e5832000 	str	r2, [r3]
+ffff3878:	e2833004 	add	r3, r3, #4
+ffff387c:	e5832000 	str	r2, [r3]
+ffff3880:	e3002777 	movw	r2, #1911	; 0x777
+ffff3884:	e2833004 	add	r3, r3, #4
+ffff3888:	e5832000 	str	r2, [r3]
+ffff388c:	e3052140 	movw	r2, #20800	; 0x5140
+ffff3890:	e0833542 	add	r3, r3, r2, asr #10
+ffff3894:	e5832000 	str	r2, [r3]
+ffff3898:	e3a02014 	mov	r2, #20
+ffff389c:	e2833004 	add	r3, r3, #4
+ffff38a0:	e5832000 	str	r2, [r3]
+ffff38a4:	e3a02000 	mov	r2, #0
+ffff38a8:	e59f3c58 	ldr	r3, [pc, #3160]	; 0xffff4508 =0x01c20000 CCU_BASE
+ffff38ac:	e5832090 	str	r2, [r3, #144]	; 0x90
+ffff38b0:	e1c32002 	bic	r2, r3, r2
+ffff38b4:	e5922060 	ldr	r2, [r2, #96]	; 0x60
+ffff38b8:	e3c22b01 	bic	r2, r2, #1024	; 0x400
+ffff38bc:	e5832060 	str	r2, [r3, #96]	; 0x60
+ffff38c0:	e1a02003 	mov	r2, r3
+ffff38c4:	e59222c0 	ldr	r2, [r2, #704]	; 0x2c0
+ffff38c8:	e3c22b01 	bic	r2, r2, #1024	; 0x400
+ffff38cc:	e58322c0 	str	r2, [r3, #704]	; 0x2c0
+ffff38d0:	ea00000f 	b	0xffff3914
+
+ffff38d4:	e59f2c44 	ldr	r2, [pc, #3140]	; 0xffff4520 =0x07373733
+ffff38d8:	e59f3c44 	ldr	r3, [pc, #3140]	; 0xffff4524 =0x01c208b4 PF_CFG0
+ffff38dc:	e5832000 	str	r2, [r3]
+ffff38e0:	e3a02000 	mov	r2, #0
+ffff38e4:	e283301c 	add	r3, r3, #28
+ffff38e8:	e5832000 	str	r2, [r3]
+ffff38ec:	e2433e8d 	sub	r3, r3, #2256	; 0x8d0
+ffff38f0:	e5832088 	str	r2, [r3, #136]	; 0x88
+ffff38f4:	e1c32002 	bic	r2, r3, r2
+ffff38f8:	e5922060 	ldr	r2, [r2, #96]	; 0x60
+ffff38fc:	e3c22c01 	bic	r2, r2, #256	; 0x100
+ffff3900:	e5832060 	str	r2, [r3, #96]	; 0x60
+ffff3904:	e1a02003 	mov	r2, r3
+ffff3908:	e59222c0 	ldr	r2, [r2, #704]	; 0x2c0
+ffff390c:	e3c22c01 	bic	r2, r2, #256	; 0x100
+ffff3910:	e58322c0 	str	r2, [r3, #704]	; 0x2c0
+ffff3914:	e12fff1e 	bx	lr
+
+ffff3918:	e92d4070 	push	{r4, r5, r6, lr}
+ffff391c:	e1a02000 	mov	r2, r0
+ffff3920:	e5924000 	ldr	r4, [r2]
+ffff3924:	e5941000 	ldr	r1, [r4]
+ffff3928:	e3003190 	movw	r3, #400	; 0x190
+ffff392c:	e59f5bf4 	ldr	r5, [pc, #3060]	; 0xffff4528 =0x80202000
+ffff3930:	e5815018 	str	r5, [r1, #24]
+ffff3934:	e320f000 	nop	{0}
+
+ffff3938:	e5910018 	ldr	r0, [r1, #24]
+ffff393c:	e3100102 	tst	r0, #-2147483648	; 0x80000000
+ffff3940:	0a000002 	beq	0xffff3950
+ffff3944:	e1b00003 	movs	r0, r3
+ffff3948:	e2433001 	sub	r3, r3, #1
+ffff394c:	1afffff9 	bne	0xffff3938
+
+ffff3950:	e3530000 	cmp	r3, #0
+ffff3954:	ca000001 	bgt	0xffff3960
+
+ffff3958:	e3e00000 	mvn	r0, #0
+
+ffff395c:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff3960:	e3e00000 	mvn	r0, #0
+ffff3964:	e5810038 	str	r0, [r1, #56]	; 0x38
+ffff3968:	e3a00000 	mov	r0, #0
+ffff396c:	eafffffa 	b	0xffff395c
+
+ffff3970:	e92d4ffe 	push	{r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff3974:	e1a0a000 	mov	sl, r0
+ffff3978:	e59a0000 	ldr	r0, [sl]
+ffff397c:	e58d0008 	str	r0, [sp, #8]
+ffff3980:	e59d0008 	ldr	r0, [sp, #8]
+ffff3984:	e5900000 	ldr	r0, [r0]
+ffff3988:	e58d0004 	str	r0, [sp, #4]
+ffff398c:	e3a00000 	mov	r0, #0
+ffff3990:	e58d0000 	str	r0, [sp]
+ffff3994:	e3a0b000 	mov	fp, #0
+ffff3998:	e320f000 	nop	{0}
+ffff399c:	e320f000 	nop	{0}
+ffff39a0:	e320f000 	nop	{0}
+ffff39a4:	ebffff3b 	bl	get_counter
+ffff39a8:	e1a08000 	mov	r8, r0
+ffff39ac:	e1a09001 	mov	r9, r1
+ffff39b0:	e30f6fff 	movw	r6, #65535	; 0xffff
+ffff39b4:	e3a07000 	mov	r7, #0
+ffff39b8:	e320f000 	nop	{0}
+
+ffff39bc:	ebffff35 	bl	get_counter
+ffff39c0:	e0504008 	subs	r4, r0, r8
+ffff39c4:	e0c15009 	sbc	r5, r1, r9
+ffff39c8:	e59d0004 	ldr	r0, [sp, #4]
+ffff39cc:	e590b000 	ldr	fp, [r0]
+ffff39d0:	e31b0007 	tst	fp, #7
+ffff39d4:	1a000001 	bne	0xffff39e0
+
+ffff39d8:	e3a00000 	mov	r0, #0
+
+ffff39dc:	e8bd8ffe 	pop	{r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff39e0:	e0540006 	subs	r0, r4, r6
+ffff39e4:	e0d50007 	sbcs	r0, r5, r7
+ffff39e8:	3afffff3 	bcc	0xffff39bc
+
+ffff39ec:	e0540006 	subs	r0, r4, r6
+ffff39f0:	e0d50007 	sbcs	r0, r5, r7
+ffff39f4:	3a000005 	bcc	0xffff3a10
+
+ffff39f8:	e31b0007 	tst	fp, #7
+ffff39fc:	0a000003 	beq	0xffff3a10
+
+ffff3a00:	e3e00006 	mvn	r0, #6
+ffff3a04:	e58d0000 	str	r0, [sp]
+ffff3a08:	e59d0000 	ldr	r0, [sp]
+ffff3a0c:	eafffff2 	b	0xffff39dc
+
+ffff3a10:	e3a00000 	mov	r0, #0
+ffff3a14:	eafffff0 	b	0xffff39dc
+
+ffff3a18:	e92d43f0 	push	{r4, r5, r6, r7, r8, r9, lr}
+ffff3a1c:	e1a07000 	mov	r7, r0
+ffff3a20:	e1a05001 	mov	r5, r1
+ffff3a24:	e5974000 	ldr	r4, [r7]
+ffff3a28:	e5948000 	ldr	r8, [r4]
+ffff3a2c:	e3a09000 	mov	r9, #0
+ffff3a30:	e3a06010 	mov	r6, #16
+ffff3a34:	e320f000 	nop	{0}
+ffff3a38:	e5889004 	str	r9, [r8, #4]
+ffff3a3c:	e1a00007 	mov	r0, r7
+ffff3a40:	ebffffb4 	bl	0xffff3918
+ffff3a44:	e3500000 	cmp	r0, #0
+ffff3a48:	0a000001 	beq	0xffff3a54
+
+ffff3a4c:	e3e00000 	mvn	r0, #0
+
+ffff3a50:	e8bd83f0 	pop	{r4, r5, r6, r7, r8, r9, pc}
+
+ffff3a54:	e3a00000 	mov	r0, #0
+ffff3a58:	e5941008 	ldr	r1, [r4, #8]
+ffff3a5c:	e5810000 	str	r0, [r1]
+ffff3a60:	e3a06010 	mov	r6, #16
+ffff3a64:	e320f000 	nop	{0}
+
+ffff3a68:	e1b00006 	movs	r0, r6
+ffff3a6c:	e2466001 	sub	r6, r6, #1
+ffff3a70:	1afffffc 	bne	0xffff3a68
+
+ffff3a74:	e59f0ab0 	ldr	r0, [pc, #2736]	; 0xffff452c
+ffff3a78:	e1550000 	cmp	r5, r0
+ffff3a7c:	8a000003 	bhi	0xffff3a90
+
+ffff3a80:	e59f0aa8 	ldr	r0, [pc, #2728]	; 0xffff4530
+ffff3a84:	e5941008 	ldr	r1, [r4, #8]
+ffff3a88:	e5810000 	str	r0, [r1]
+ffff3a8c:	ea000009 	b	0xffff3ab8
+
+ffff3a90:	e59f0a9c 	ldr	r0, [pc, #2716]	; 0xffff4534
+ffff3a94:	e1550000 	cmp	r5, r0
+ffff3a98:	8a000003 	bhi	0xffff3aac
+
+ffff3a9c:	e3a00802 	mov	r0, #131072	; 0x20000
+ffff3aa0:	e5941008 	ldr	r1, [r4, #8]
+ffff3aa4:	e5810000 	str	r0, [r1]
+ffff3aa8:	ea000002 	b	0xffff3ab8
+
+ffff3aac:	e3a00801 	mov	r0, #65536	; 0x10000
+ffff3ab0:	e5941008 	ldr	r1, [r4, #8]
+ffff3ab4:	e5810000 	str	r0, [r1]
+
+ffff3ab8:	e3a06010 	mov	r6, #16
+ffff3abc:	e320f000 	nop	{0}
+
+ffff3ac0:	e1b00006 	movs	r0, r6
+ffff3ac4:	e2466001 	sub	r6, r6, #1
+ffff3ac8:	1afffffc 	bne	0xffff3ac0
+
+ffff3acc:	e5940008 	ldr	r0, [r4, #8]
+ffff3ad0:	e5900000 	ldr	r0, [r0]
+ffff3ad4:	e3800102 	orr	r0, r0, #-2147483648	; 0x80000000
+ffff3ad8:	e5941008 	ldr	r1, [r4, #8]
+ffff3adc:	e5810000 	str	r0, [r1]
+ffff3ae0:	e3a06010 	mov	r6, #16
+ffff3ae4:	e320f000 	nop	{0}
+
+ffff3ae8:	e1b00006 	movs	r0, r6
+ffff3aec:	e2466001 	sub	r6, r6, #1
+ffff3af0:	1afffffc 	bne	0xffff3ae8
+
+ffff3af4:	e3a09801 	mov	r9, #65536	; 0x10000
+ffff3af8:	e5889004 	str	r9, [r8, #4]
+ffff3afc:	e1a00007 	mov	r0, r7
+ffff3b00:	ebffff84 	bl	0xffff3918
+ffff3b04:	e3500000 	cmp	r0, #0
+ffff3b08:	0a000001 	beq	0xffff3b14
+
+ffff3b0c:	e3e00000 	mvn	r0, #0
+ffff3b10:	eaffffce 	b	0xffff3a50
+
+ffff3b14:	e3a00000 	mov	r0, #0
+ffff3b18:	eaffffcc 	b	0xffff3a50
+
+ffff3b1c:	e92d4070 	push	{r4, r5, r6, lr}
+ffff3b20:	e1a04000 	mov	r4, r0
+ffff3b24:	e5946000 	ldr	r6, [r4]
+ffff3b28:	e5965000 	ldr	r5, [r6]
+ffff3b2c:	e3a00000 	mov	r0, #0
+ffff3b30:	e5850078 	str	r0, [r5, #120]	; 0x78
+ffff3b34:	e3a0001e 	mov	r0, #30
+ffff3b38:	e3a01000 	mov	r1, #0
+ffff3b3c:	ebfffee4 	bl	0xffff36d4
+ffff3b40:	e3a00001 	mov	r0, #1
+ffff3b44:	e5850078 	str	r0, [r5, #120]	; 0x78
+ffff3b48:	e300012c 	movw	r0, #300	; 0x12c
+ffff3b4c:	e3a01000 	mov	r1, #0
+ffff3b50:	ebfffedf 	bl	0xffff36d4
+ffff3b54:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff3b58:	e92d4070 	push	{r4, r5, r6, lr}
+ffff3b5c:	e1a04000 	mov	r4, r0
+ffff3b60:	e5946000 	ldr	r6, [r4]
+ffff3b64:	e5965000 	ldr	r5, [r6]
+ffff3b68:	e594001c 	ldr	r0, [r4, #28]
+ffff3b6c:	e3500000 	cmp	r0, #0
+ffff3b70:	0a000007 	beq	0xffff3b94
+
+ffff3b74:	e594101c 	ldr	r1, [r4, #28]
+ffff3b78:	e1a00004 	mov	r0, r4
+ffff3b7c:	ebffffa5 	bl	0xffff3a18
+ffff3b80:	e3500000 	cmp	r0, #0
+ffff3b84:	0a000002 	beq	0xffff3b94
+
+ffff3b88:	e3a00001 	mov	r0, #1
+ffff3b8c:	e5860014 	str	r0, [r6, #20]
+
+ffff3b90:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff3b94:	e5940018 	ldr	r0, [r4, #24]
+ffff3b98:	e3500004 	cmp	r0, #4
+ffff3b9c:	1a000002 	bne	0xffff3bac
+
+ffff3ba0:	e3a00001 	mov	r0, #1
+ffff3ba4:	e585000c 	str	r0, [r5, #12]
+ffff3ba8:	ea000007 	b	0xffff3bcc
+
+ffff3bac:	e5940018 	ldr	r0, [r4, #24]
+ffff3bb0:	e3500008 	cmp	r0, #8
+ffff3bb4:	1a000002 	bne	0xffff3bc4
+ffff3bb8:	e3a00002 	mov	r0, #2
+ffff3bbc:	e585000c 	str	r0, [r5, #12]
+ffff3bc0:	ea000001 	b	0xffff3bcc
+ffff3bc4:	e3a00000 	mov	r0, #0
+ffff3bc8:	e585000c 	str	r0, [r5, #12]
+
+ffff3bcc:	e320f000 	nop	{0}
+ffff3bd0:	eaffffee 	b	0xffff3b90
+
+ffff3bd4:	e92d40f0 	push	{r4, r5, r6, r7, lr}
+ffff3bd8:	e1a05000 	mov	r5, r0
+ffff3bdc:	e5957000 	ldr	r7, [r5]
+ffff3be0:	e5974000 	ldr	r4, [r7]
+ffff3be4:	e3a00007 	mov	r0, #7
+ffff3be8:	e5840000 	str	r0, [r4]
+ffff3bec:	e1a00005 	mov	r0, r5
+ffff3bf0:	ebffff5e 	bl	0xffff3970
+ffff3bf4:	e1a06000 	mov	r6, r0
+ffff3bf8:	e3560000 	cmp	r6, #0
+ffff3bfc:	0a000001 	beq	0xffff3c08
+
+ffff3c00:	e1a00006 	mov	r0, r6
+
+ffff3c04:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}
+
+ffff3c08:	e59f0928 	ldr	r0, [pc, #2344]	; 0xffff4538
+ffff3c0c:	e5840040 	str	r0, [r4, #64]	; 0x40
+ffff3c10:	e3a00000 	mov	r0, #0
+ffff3c14:	e5840030 	str	r0, [r4, #48]	; 0x30
+ffff3c18:	e3e00000 	mvn	r0, #0
+ffff3c1c:	e5840038 	str	r0, [r4, #56]	; 0x38
+ffff3c20:	e30003ff 	movw	r0, #1023	; 0x3ff
+ffff3c24:	e5840088 	str	r0, [r4, #136]	; 0x88
+ffff3c28:	e3000deb 	movw	r0, #3563	; 0xdeb
+ffff3c2c:	e5840050 	str	r0, [r4, #80]	; 0x50
+ffff3c30:	e3e00000 	mvn	r0, #0
+ffff3c34:	e5840008 	str	r0, [r4, #8]
+ffff3c38:	e3a00000 	mov	r0, #0
+ffff3c3c:	eafffff0 	b	0xffff3c04
+
+ffff3c40:	e92d43f0 	push	{r4, r5, r6, r7, r8, r9, lr}
+ffff3c44:	e1a07000 	mov	r7, r0
+ffff3c48:	e5974000 	ldr	r4, [r7]
+ffff3c4c:	e5945000 	ldr	r5, [r4]
+ffff3c50:	e3a02000 	mov	r2, #0
+ffff3c54:	e591000c 	ldr	r0, [r1, #12]
+ffff3c58:	e5918008 	ldr	r8, [r1, #8]
+ffff3c5c:	e00c0890 	mul	ip, r0, r8
+ffff3c60:	e59f68d4 	ldr	r6, [pc, #2260]	; 0xffff453c
+ffff3c64:	e3a0e000 	mov	lr, #0
+ffff3c68:	e5910004 	ldr	r0, [r1, #4]
+ffff3c6c:	e3100001 	tst	r0, #1
+ffff3c70:	0a00001c 	beq	0xffff3ce8
+
+ffff3c74:	e5913000 	ldr	r3, [r1]
+ffff3c78:	e320f000 	nop	{0}
+ffff3c7c:	ea000016 	b	0xffff3cdc
+
+ffff3c80:	e595003c 	ldr	r0, [r5, #60]	; 0x3c
+ffff3c84:	e3100004 	tst	r0, #4
+ffff3c88:	1a00000e 	bne	0xffff3cc8
+ffff3c8c:	e595003c 	ldr	r0, [r5, #60]	; 0x3c
+ffff3c90:	e7e4e8d0 	ubfx	lr, r0, #17, #5
+ffff3c94:	e35e0000 	cmp	lr, #0
+ffff3c98:	1a000000 	bne	0xffff3ca0
+
+ffff3c9c:	e3a0e020 	mov	lr, #32
+
+ffff3ca0:	ea000005 	b	0xffff3cbc
+
+ffff3ca4:	e5940010 	ldr	r0, [r4, #16]
+ffff3ca8:	e5908000 	ldr	r8, [r0]
+ffff3cac:	e1a00002 	mov	r0, r2
+ffff3cb0:	e2822001 	add	r2, r2, #1
+ffff3cb4:	e7838100 	str	r8, [r3, r0, lsl #2]
+ffff3cb8:	e59f687c 	ldr	r6, [pc, #2172]	; 0xffff453c
+ffff3cbc:	e1b0000e 	movs	r0, lr
+ffff3cc0:	e24ee001 	sub	lr, lr, #1
+ffff3cc4:	1afffff6 	bne	0xffff3ca4
+
+ffff3cc8:	e1b00006 	movs	r0, r6
+ffff3ccc:	e2466001 	sub	r6, r6, #1
+ffff3cd0:	1a000001 	bne	0xffff3cdc
+
+ffff3cd4:	e3e00000 	mvn	r0, #0
+
+ffff3cd8:	e8bd83f0 	pop	{r4, r5, r6, r7, r8, r9, pc}
+
+ffff3cdc:	e152012c 	cmp	r2, ip, lsr #2
+ffff3ce0:	3affffe6 	bcc	0xffff3c80
+
+ffff3ce4:	ea000014 	b	0xffff3d3c
+
+ffff3ce8:	e5913000 	ldr	r3, [r1]
+ffff3cec:	e3a02000 	mov	r2, #0
+ffff3cf0:	ea00000f 	b	0xffff3d34
+
+ffff3cf4:	e320f000 	nop	{0}
+
+ffff3cf8:	e2460001 	sub	r0, r6, #1
+ffff3cfc:	e1b06000 	movs	r6, r0
+ffff3d00:	0a000002 	beq	0xffff3d10
+
+ffff3d04:	e595003c 	ldr	r0, [r5, #60]	; 0x3c
+ffff3d08:	e3100008 	tst	r0, #8
+ffff3d0c:	1afffff9 	bne	0xffff3cf8
+
+ffff3d10:	e3560000 	cmp	r6, #0
+ffff3d14:	ca000001 	bgt	0xffff3d20
+
+ffff3d18:	e3e00000 	mvn	r0, #0
+ffff3d1c:	eaffffed 	b	0xffff3cd8
+
+ffff3d20:	e7930102 	ldr	r0, [r3, r2, lsl #2]
+ffff3d24:	e5948010 	ldr	r8, [r4, #16]
+ffff3d28:	e5880000 	str	r0, [r8]
+ffff3d2c:	e59f680c 	ldr	r6, [pc, #2060]	; 0xffff4540
+ffff3d30:	e2822001 	add	r2, r2, #1
+ffff3d34:	e152012c 	cmp	r2, ip, lsr #2
+ffff3d38:	3affffed 	bcc	0xffff3cf4
+
+ffff3d3c:	e3a00000 	mov	r0, #0
+ffff3d40:	eaffffe4 	b	0xffff3cd8
+
+ffff3d44:	e92d4ff3 	push	{r0, r1, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff3d48:	e24dd014 	sub	sp, sp, #20
+ffff3d4c:	e1a07001 	mov	r7, r1
+ffff3d50:	e59d0014 	ldr	r0, [sp, #20]
+ffff3d54:	e5900000 	ldr	r0, [r0]
+ffff3d58:	e58d0010 	str	r0, [sp, #16]
+ffff3d5c:	e59d0010 	ldr	r0, [sp, #16]
+ffff3d60:	e5906000 	ldr	r6, [r0]
+ffff3d64:	e59d0010 	ldr	r0, [sp, #16]
+ffff3d68:	e5904004 	ldr	r4, [r0, #4]
+ffff3d6c:	e597000c 	ldr	r0, [r7, #12]
+ffff3d70:	e5971008 	ldr	r1, [r7, #8]
+ffff3d74:	e0000190 	mul	r0, r0, r1
+ffff3d78:	e58d000c 	str	r0, [sp, #12]
+ffff3d7c:	e3a000ff 	mov	r0, #255	; 0xff
+ffff3d80:	e58d0008 	str	r0, [sp, #8]
+ffff3d84:	e3a05000 	mov	r5, #0
+ffff3d88:	e3a0a000 	mov	sl, #0
+ffff3d8c:	e3a00000 	mov	r0, #0
+ffff3d90:	e58d0000 	str	r0, [sp]
+ffff3d94:	e3a08000 	mov	r8, #0
+ffff3d98:	e5970004 	ldr	r0, [r7, #4]
+ffff3d9c:	e3100001 	tst	r0, #1
+ffff3da0:	0a000001 	beq	0xffff3dac
+
+ffff3da4:	e5970000 	ldr	r0, [r7]
+ffff3da8:	ea000000 	b	0xffff3db0
+
+ffff3dac:	e5970000 	ldr	r0, [r7]
+
+ffff3db0:	e58d0004 	str	r0, [sp, #4]
+ffff3db4:	e59d000c 	ldr	r0, [sp, #12]
+ffff3db8:	e1a0a7a0 	lsr	sl, r0, #15
+ffff3dbc:	e59d000c 	ldr	r0, [sp, #12]
+ffff3dc0:	e7df079f 	bfc	r0, #15, #17
+ffff3dc4:	e58d0000 	str	r0, [sp]
+ffff3dc8:	e59d0000 	ldr	r0, [sp]
+ffff3dcc:	e3500000 	cmp	r0, #0
+ffff3dd0:	0a000001 	beq	0xffff3ddc
+
+ffff3dd4:	e28aa001 	add	sl, sl, #1
+ffff3dd8:	ea000001 	b	0xffff3de4
+
+ffff3ddc:	e3080000 	movw	r0, #32768	; 0x8000
+ffff3de0:	e58d0000 	str	r0, [sp]
+
+ffff3de4:	e3a08000 	mov	r8, #0
+ffff3de8:	ea000045 	b	0xffff3f04
+
+ffff3dec:	e0840205 	add	r0, r4, r5, lsl #4
+ffff3df0:	e3a01000 	mov	r1, #0
+ffff3df4:	e5801000 	str	r1, [r0]
+ffff3df8:	e5801004 	str	r1, [r0, #4]
+ffff3dfc:	e5801008 	str	r1, [r0, #8]
+ffff3e00:	e580100c 	str	r1, [r0, #12]
+ffff3e04:	e7940205 	ldr	r0, [r4, r5, lsl #4]
+ffff3e08:	e3c00010 	bic	r0, r0, #16
+ffff3e0c:	e2800010 	add	r0, r0, #16
+ffff3e10:	e7840205 	str	r0, [r4, r5, lsl #4]
+ffff3e14:	e7940205 	ldr	r0, [r4, r5, lsl #4]
+ffff3e18:	e3c00102 	bic	r0, r0, #-2147483648	; 0x80000000
+ffff3e1c:	e2800102 	add	r0, r0, #-2147483648	; 0x80000000
+ffff3e20:	e7840205 	str	r0, [r4, r5, lsl #4]
+ffff3e24:	e7940205 	ldr	r0, [r4, r5, lsl #4]
+ffff3e28:	e3c00002 	bic	r0, r0, #2
+ffff3e2c:	e2800002 	add	r0, r0, #2
+ffff3e30:	e7840205 	str	r0, [r4, r5, lsl #4]
+ffff3e34:	e35a0001 	cmp	sl, #1
+ffff3e38:	9a000009 	bls	0xffff3e64
+
+ffff3e3c:	e24a0001 	sub	r0, sl, #1
+ffff3e40:	e1500008 	cmp	r0, r8
+ffff3e44:	0a000006 	beq	0xffff3e64
+
+ffff3e48:	e3080000 	movw	r0, #32768	; 0x8000
+ffff3e4c:	e0841205 	add	r1, r4, r5, lsl #4
+ffff3e50:	e5911004 	ldr	r1, [r1, #4]
+ffff3e54:	e7cf1010 	bfi	r1, r0, #0, #16
+ffff3e58:	e0840205 	add	r0, r4, r5, lsl #4
+ffff3e5c:	e5801004 	str	r1, [r0, #4]
+ffff3e60:	ea000005 	b	0xffff3e7c
+
+ffff3e64:	e0841205 	add	r1, r4, r5, lsl #4
+ffff3e68:	e59d0000 	ldr	r0, [sp]
+ffff3e6c:	e5911004 	ldr	r1, [r1, #4]
+ffff3e70:	e7cf1010 	bfi	r1, r0, #0, #16
+ffff3e74:	e0840205 	add	r0, r4, r5, lsl #4
+ffff3e78:	e5801004 	str	r1, [r0, #4]
+
+ffff3e7c:	e59d0004 	ldr	r0, [sp, #4]
+ffff3e80:	e0800788 	add	r0, r0, r8, lsl #15
+ffff3e84:	e0841205 	add	r1, r4, r5, lsl #4
+ffff3e88:	e5810008 	str	r0, [r1, #8]
+ffff3e8c:	e3580000 	cmp	r8, #0
+ffff3e90:	1a000003 	bne	0xffff3ea4
+
+ffff3e94:	e7940205 	ldr	r0, [r4, r5, lsl #4]
+ffff3e98:	e3c00008 	bic	r0, r0, #8
+ffff3e9c:	e2800008 	add	r0, r0, #8
+ffff3ea0:	e7840205 	str	r0, [r4, r5, lsl #4]
+
+ffff3ea4:	e24a0001 	sub	r0, sl, #1
+ffff3ea8:	e1500008 	cmp	r0, r8
+ffff3eac:	1a00000e 	bne	0xffff3eec
+
+ffff3eb0:	e7940205 	ldr	r0, [r4, r5, lsl #4]
+ffff3eb4:	e3c00002 	bic	r0, r0, #2
+ffff3eb8:	e7840205 	str	r0, [r4, r5, lsl #4]
+ffff3ebc:	e7940205 	ldr	r0, [r4, r5, lsl #4]
+ffff3ec0:	e3c00004 	bic	r0, r0, #4
+ffff3ec4:	e2800004 	add	r0, r0, #4
+ffff3ec8:	e7840205 	str	r0, [r4, r5, lsl #4]
+ffff3ecc:	e7940205 	ldr	r0, [r4, r5, lsl #4]
+ffff3ed0:	e3c00020 	bic	r0, r0, #32
+ffff3ed4:	e2800020 	add	r0, r0, #32
+ffff3ed8:	e7840205 	str	r0, [r4, r5, lsl #4]
+ffff3edc:	e3a00000 	mov	r0, #0
+ffff3ee0:	e0841205 	add	r1, r4, r5, lsl #4
+ffff3ee4:	e581000c 	str	r0, [r1, #12]
+ffff3ee8:	ea000003 	b	0xffff3efc
+
+ffff3eec:	e2850001 	add	r0, r5, #1
+ffff3ef0:	e0840200 	add	r0, r4, r0, lsl #4
+ffff3ef4:	e0841205 	add	r1, r4, r5, lsl #4
+ffff3ef8:	e581000c 	str	r0, [r1, #12]
+
+ffff3efc:	e2888001 	add	r8, r8, #1
+ffff3f00:	e2855001 	add	r5, r5, #1
+
+ffff3f04:	e158000a 	cmp	r8, sl
+ffff3f08:	3affffb7 	bcc	0xffff3dec
+
+ffff3f0c:	e5969000 	ldr	r9, [r6]
+ffff3f10:	e3890024 	orr	r0, r9, #36	; 0x24
+ffff3f14:	e5860000 	str	r0, [r6]
+ffff3f18:	e59d0014 	ldr	r0, [sp, #20]
+ffff3f1c:	ebfffe93 	bl	0xffff3970
+ffff3f20:	e1a0b000 	mov	fp, r0
+ffff3f24:	e35b0000 	cmp	fp, #0
+ffff3f28:	0a000002 	beq	0xffff3f38
+
+ffff3f2c:	e1a0000b 	mov	r0, fp
+
+ffff3f30:	e28dd01c 	add	sp, sp, #28
+ffff3f34:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff3f38:	e3a00001 	mov	r0, #1
+ffff3f3c:	e5860080 	str	r0, [r6, #128]	; 0x80
+ffff3f40:	e320f000 	nop	{0}
+
+ffff3f44:	e5960080 	ldr	r0, [r6, #128]	; 0x80
+ffff3f48:	e3100001 	tst	r0, #1
+ffff3f4c:	1a000000 	bne	0xffff3f54
+
+ffff3f50:	ea000005 	b	0xffff3f6c
+
+ffff3f54:	e59d0008 	ldr	r0, [sp, #8]
+ffff3f58:	e2400001 	sub	r0, r0, #1
+ffff3f5c:	e58d0008 	str	r0, [sp, #8]
+ffff3f60:	e59d0008 	ldr	r0, [sp, #8]
+ffff3f64:	e3500000 	cmp	r0, #0
+ffff3f68:	cafffff5 	bgt	0xffff3f44
+
+ffff3f6c:	e320f000 	nop	{0}
+ffff3f70:	e59d0008 	ldr	r0, [sp, #8]
+ffff3f74:	e3500000 	cmp	r0, #0
+ffff3f78:	1a000001 	bne	0xffff3f84
+
+ffff3f7c:	e3e00006 	mvn	r0, #6
+ffff3f80:	eaffffea 	b	0xffff3f30
+
+ffff3f84:	e3a00082 	mov	r0, #130	; 0x82
+ffff3f88:	e5860080 	str	r0, [r6, #128]	; 0x80
+ffff3f8c:	e596008c 	ldr	r0, [r6, #140]	; 0x8c
+ffff3f90:	e3c09003 	bic	r9, r0, #3
+ffff3f94:	e5970004 	ldr	r0, [r7, #4]
+ffff3f98:	e3100002 	tst	r0, #2
+ffff3f9c:	0a000001 	beq	0xffff3fa8
+
+ffff3fa0:	e3899001 	orr	r9, r9, #1
+ffff3fa4:	ea000000 	b	0xffff3fac
+
+ffff3fa8:	e3899002 	orr	r9, r9, #2
+
+ffff3fac:	e586908c 	str	r9, [r6, #140]	; 0x8c
+ffff3fb0:	e5864084 	str	r4, [r6, #132]	; 0x84
+ffff3fb4:	e59f0588 	ldr	r0, [pc, #1416]	; 0xffff4544
+ffff3fb8:	e5860040 	str	r0, [r6, #64]	; 0x40
+ffff3fbc:	e3a00000 	mov	r0, #0
+ffff3fc0:	eaffffda 	b	0xffff3f30
+
+ffff3fc4:	e92d4ff7 	push	{r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff3fc8:	e24dd020 	sub	sp, sp, #32
+ffff3fcc:	e1a0b001 	mov	fp, r1
+ffff3fd0:	e59d0020 	ldr	r0, [sp, #32]
+ffff3fd4:	e5900000 	ldr	r0, [r0]
+ffff3fd8:	e58d001c 	str	r0, [sp, #28]
+ffff3fdc:	e59d001c 	ldr	r0, [sp, #28]
+ffff3fe0:	e590a000 	ldr	sl, [r0]
+ffff3fe4:	e3a00102 	mov	r0, #-2147483648	; 0x80000000
+ffff3fe8:	e58d0018 	str	r0, [sp, #24]
+ffff3fec:	e3a00000 	mov	r0, #0
+ffff3ff0:	e58d0014 	str	r0, [sp, #20]
+ffff3ff4:	e58d0010 	str	r0, [sp, #16]
+ffff3ff8:	e58d000c 	str	r0, [sp, #12]
+ffff3ffc:	e58d0008 	str	r0, [sp, #8]
+ffff4000:	e320f000 	nop	{0}
+ffff4004:	e320f000 	nop	{0}
+ffff4008:	e320f000 	nop	{0}
+ffff400c:	e59d001c 	ldr	r0, [sp, #28]
+ffff4010:	e5900014 	ldr	r0, [r0, #20]
+ffff4014:	e3500000 	cmp	r0, #0
+ffff4018:	0a000002 	beq	0xffff4028
+
+ffff401c:	e3e00000 	mvn	r0, #0
+
+ffff4020:	e28dd02c 	add	sp, sp, #44	; 0x2c
+ffff4024:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff4028:	e59b0000 	ldr	r0, [fp]
+ffff402c:	e3500000 	cmp	r0, #0
+ffff4030:	1a000002 	bne	0xffff4040
+
+ffff4034:	e59d0018 	ldr	r0, [sp, #24]
+ffff4038:	e3800902 	orr	r0, r0, #32768	; 0x8000
+ffff403c:	e58d0018 	str	r0, [sp, #24]
+
+ffff4040:	e59b0004 	ldr	r0, [fp, #4]
+ffff4044:	e3100001 	tst	r0, #1
+ffff4048:	0a000002 	beq	0xffff4058
+
+ffff404c:	e59d0018 	ldr	r0, [sp, #24]
+ffff4050:	e3800040 	orr	r0, r0, #64	; 0x40
+ffff4054:	e58d0018 	str	r0, [sp, #24]
+
+ffff4058:	e59b0004 	ldr	r0, [fp, #4]
+ffff405c:	e3100002 	tst	r0, #2
+ffff4060:	0a000002 	beq	0xffff4070
+
+ffff4064:	e59d0018 	ldr	r0, [sp, #24]
+ffff4068:	e3800080 	orr	r0, r0, #128	; 0x80
+ffff406c:	e58d0018 	str	r0, [sp, #24]
+
+ffff4070:	e59b0004 	ldr	r0, [fp, #4]
+ffff4074:	e3100004 	tst	r0, #4
+ffff4078:	0a000002 	beq	0xffff4088
+
+ffff407c:	e59d0018 	ldr	r0, [sp, #24]
+ffff4080:	e3800c01 	orr	r0, r0, #256	; 0x100
+ffff4084:	e58d0018 	str	r0, [sp, #24]
+
+ffff4088:	e59b001c 	ldr	r0, [fp, #28]
+ffff408c:	e3100001 	tst	r0, #1
+ffff4090:	0a000002 	beq	0xffff40a0
+
+ffff4094:	e59d0018 	ldr	r0, [sp, #24]
+ffff4098:	e3800405 	orr	r0, r0, #83886080	; 0x5000000
+ffff409c:	e58d0018 	str	r0, [sp, #24]
+
+ffff40a0:	e59b0008 	ldr	r0, [fp, #8]
+ffff40a4:	e58a001c 	str	r0, [sl, #28]
+ffff40a8:	e59d0028 	ldr	r0, [sp, #40]	; 0x28
+ffff40ac:	e3500000 	cmp	r0, #0
+ffff40b0:	1a000004 	bne	0xffff40c8
+
+ffff40b4:	e59b0000 	ldr	r0, [fp]
+ffff40b8:	e59d1018 	ldr	r1, [sp, #24]
+ffff40bc:	e1800001 	orr	r0, r0, r1
+ffff40c0:	e58a0018 	str	r0, [sl, #24]
+ffff40c4:	ea000032 	b	0xffff4194
+
+ffff40c8:	e59d0028 	ldr	r0, [sp, #40]	; 0x28
+ffff40cc:	e5900000 	ldr	r0, [r0]
+ffff40d0:	e3100003 	tst	r0, #3
+ffff40d4:	0a000002 	beq	0xffff40e4
+
+ffff40d8:	e3e00003 	mvn	r0, #3
+ffff40dc:	e58d0014 	str	r0, [sp, #20]
+ffff40e0:	ea0000e1 	b	0xffff446c
+
+ffff40e4:	e59d0018 	ldr	r0, [sp, #24]
+ffff40e8:	e3800c22 	orr	r0, r0, #8704	; 0x2200
+ffff40ec:	e58d0018 	str	r0, [sp, #24]
+ffff40f0:	e59d0028 	ldr	r0, [sp, #40]	; 0x28
+ffff40f4:	e5900004 	ldr	r0, [r0, #4]
+ffff40f8:	e3100002 	tst	r0, #2
+ffff40fc:	0a000002 	beq	0xffff410c
+
+ffff4100:	e59d0018 	ldr	r0, [sp, #24]
+ffff4104:	e3800b01 	orr	r0, r0, #1024	; 0x400
+ffff4108:	e58d0018 	str	r0, [sp, #24]
+
+ffff410c:	e59d0028 	ldr	r0, [sp, #40]	; 0x28
+ffff4110:	e5900008 	ldr	r0, [r0, #8]
+ffff4114:	e59d1028 	ldr	r1, [sp, #40]	; 0x28
+ffff4118:	e591100c 	ldr	r1, [r1, #12]
+ffff411c:	e0000190 	mul	r0, r0, r1
+ffff4120:	e58d0008 	str	r0, [sp, #8]
+ffff4124:	e59d0028 	ldr	r0, [sp, #40]	; 0x28
+ffff4128:	e590000c 	ldr	r0, [r0, #12]
+ffff412c:	e58a0010 	str	r0, [sl, #16]
+ffff4130:	e59d0008 	ldr	r0, [sp, #8]
+ffff4134:	e58a0014 	str	r0, [sl, #20]
+ffff4138:	e59a0000 	ldr	r0, [sl]
+ffff413c:	e3800102 	orr	r0, r0, #-2147483648	; 0x80000000
+ffff4140:	e58a0000 	str	r0, [sl]
+ffff4144:	e59b0000 	ldr	r0, [fp]
+ffff4148:	e59d1018 	ldr	r1, [sp, #24]
+ffff414c:	e1800001 	orr	r0, r0, r1
+ffff4150:	e58a0018 	str	r0, [sl, #24]
+ffff4154:	e59b001c 	ldr	r0, [fp, #28]
+ffff4158:	e3100001 	tst	r0, #1
+ffff415c:	0a000002 	beq	0xffff416c
+
+ffff4160:	e3a00000 	mov	r0, #0
+ffff4164:	e58d0014 	str	r0, [sp, #20]
+ffff4168:	ea000003 	b	0xffff417c
+
+ffff416c:	e59d0020 	ldr	r0, [sp, #32]
+ffff4170:	e59d1028 	ldr	r1, [sp, #40]	; 0x28
+ffff4174:	ebfffeb1 	bl	0xffff3c40
+ffff4178:	e58d0014 	str	r0, [sp, #20]
+
+ffff417c:	e59d0014 	ldr	r0, [sp, #20]
+ffff4180:	e3500000 	cmp	r0, #0
+ffff4184:	0a000002 	beq	0xffff4194
+
+ffff4188:	e3e00002 	mvn	r0, #2
+ffff418c:	e58d0014 	str	r0, [sp, #20]
+ffff4190:	ea0000b5 	b	0xffff446c
+
+ffff4194:	e59b001c 	ldr	r0, [fp, #28]
+ffff4198:	e3100001 	tst	r0, #1
+ffff419c:	0a000043 	beq	0xffff42b0
+
+ffff41a0:	ebfffd3c 	bl	get_counter
+ffff41a4:	e1a08000 	mov	r8, r0
+ffff41a8:	e1a09001 	mov	r9, r1
+ffff41ac:	e59f6394 	ldr	r6, [pc, #916]	; 0xffff4548
+ffff41b0:	e3a07000 	mov	r7, #0
+ffff41b4:	e320f000 	nop	{0}
+
+ffff41b8:	ebfffd36 	bl	get_counter
+ffff41bc:	e0504008 	subs	r4, r0, r8
+ffff41c0:	e0c15009 	sbc	r5, r1, r9
+ffff41c4:	e59a0038 	ldr	r0, [sl, #56]	; 0x38
+ffff41c8:	e30b19c2 	movw	r1, #47554	; 0xb9c2
+ffff41cc:	e1100001 	tst	r0, r1
+ffff41d0:	0a000000 	beq	0xffff41d8
+
+ffff41d4:	ea000002 	b	0xffff41e4
+
+ffff41d8:	e0540006 	subs	r0, r4, r6
+ffff41dc:	e0d50007 	sbcs	r0, r5, r7
+ffff41e0:	3afffff4 	bcc	0xffff41b8
+
+ffff41e4:	e320f000 	nop	{0}
+ffff41e8:	e0540006 	subs	r0, r4, r6
+ffff41ec:	e0d50007 	sbcs	r0, r5, r7
+ffff41f0:	2a000003 	bcs	0xffff4204
+
+ffff41f4:	e59a0038 	ldr	r0, [sl, #56]	; 0x38
+ffff41f8:	e30b18c2 	movw	r1, #47298	; 0xb8c2
+ffff41fc:	e1100001 	tst	r0, r1
+ffff4200:	0a000004 	beq	0xffff4218
+
+ffff4204:	e3e00004 	mvn	r0, #4
+ffff4208:	e58d0014 	str	r0, [sp, #20]
+ffff420c:	e3a00322 	mov	r0, #-2013265920	; 0x88000000
+ffff4210:	e58a0018 	str	r0, [sl, #24]
+ffff4214:	ea000094 	b	0xffff446c
+
+ffff4218:	e3000100 	movw	r0, #256	; 0x100
+ffff421c:	e58a0038 	str	r0, [sl, #56]	; 0x38
+ffff4220:	ebfffd1c 	bl	get_counter
+ffff4224:	e1a08000 	mov	r8, r0
+ffff4228:	e1a09001 	mov	r9, r1
+ffff422c:	e59f6318 	ldr	r6, [pc, #792]	; 0xffff454c
+ffff4230:	e3a07000 	mov	r7, #0
+ffff4234:	e320f000 	nop	{0}
+ffff4238:	ebfffd16 	bl	get_counter
+ffff423c:	e0504008 	subs	r4, r0, r8
+ffff4240:	e0c15009 	sbc	r5, r1, r9
+ffff4244:	e59a0038 	ldr	r0, [sl, #56]	; 0x38
+ffff4248:	e30b1ac2 	movw	r1, #47810	; 0xbac2
+ffff424c:	e1100001 	tst	r0, r1
+ffff4250:	0a000000 	beq	0xffff4258
+
+ffff4254:	ea000002 	b	0xffff4264
+
+ffff4258:	e0540006 	subs	r0, r4, r6
+ffff425c:	e0d50007 	sbcs	r0, r5, r7
+ffff4260:	3afffff4 	bcc	0xffff4238
+
+ffff4264:	e320f000 	nop	{0}
+ffff4268:	e0540006 	subs	r0, r4, r6
+ffff426c:	e0d50007 	sbcs	r0, r5, r7
+ffff4270:	2a000003 	bcs	0xffff4284
+
+ffff4274:	e59a0038 	ldr	r0, [sl, #56]	; 0x38
+ffff4278:	e30b18c2 	movw	r1, #47298	; 0xb8c2
+ffff427c:	e1100001 	tst	r0, r1
+ffff4280:	0a000004 	beq	0xffff4298
+
+ffff4284:	e3e00005 	mvn	r0, #5
+ffff4288:	e58d0014 	str	r0, [sp, #20]
+ffff428c:	e3a00322 	mov	r0, #-2013265920	; 0x88000000
+ffff4290:	e58a0018 	str	r0, [sl, #24]
+ffff4294:	ea000074 	b	0xffff446c
+
+ffff4298:	e3000200 	movw	r0, #512	; 0x200
+ffff429c:	e58a0038 	str	r0, [sl, #56]	; 0x38
+ffff42a0:	e59d0020 	ldr	r0, [sp, #32]
+ffff42a4:	e59d1028 	ldr	r1, [sp, #40]	; 0x28
+ffff42a8:	ebfffe64 	bl	0xffff3c40
+ffff42ac:	e58d0014 	str	r0, [sp, #20]
+
+ffff42b0:	ebfffcf8 	bl	get_counter
+ffff42b4:	e1a08000 	mov	r8, r0
+ffff42b8:	e1a09001 	mov	r9, r1
+ffff42bc:	e3056dc0 	movw	r6, #24000	; 0x5dc0
+ffff42c0:	e3a07000 	mov	r7, #0
+ffff42c4:	e320f000 	nop	{0}
+
+ffff42c8:	ebfffcf2 	bl	get_counter
+ffff42cc:	e0504008 	subs	r4, r0, r8
+ffff42d0:	e0c15009 	sbc	r5, r1, r9
+ffff42d4:	e59a0038 	ldr	r0, [sl, #56]	; 0x38
+ffff42d8:	e58d0010 	str	r0, [sp, #16]
+ffff42dc:	e30b0bc6 	movw	r0, #48070	; 0xbbc6
+ffff42e0:	e59d1010 	ldr	r1, [sp, #16]
+ffff42e4:	e1100001 	tst	r0, r1
+ffff42e8:	0a000000 	beq	0xffff42f0
+
+ffff42ec:	ea000002 	b	0xffff42fc
+
+ffff42f0:	e0540006 	subs	r0, r4, r6
+ffff42f4:	e0d50007 	sbcs	r0, r5, r7
+ffff42f8:	3afffff2 	bcc	0xffff42c8
+
+ffff42fc:	e320f000 	nop	{0}
+ffff4300:	e0540006 	subs	r0, r4, r6
+ffff4304:	e0d50007 	sbcs	r0, r5, r7
+ffff4308:	2a000003 	bcs	0xffff431c
+
+ffff430c:	e30b0bc2 	movw	r0, #48066	; 0xbbc2
+ffff4310:	e59d1010 	ldr	r1, [sp, #16]
+ffff4314:	e1100001 	tst	r0, r1
+ffff4318:	0a000002 	beq	0xffff4328
+
+ffff431c:	e3e00001 	mvn	r0, #1
+ffff4320:	e58d0014 	str	r0, [sp, #20]
+ffff4324:	ea000050 	b	0xffff446c
+
+ffff4328:	e59d0028 	ldr	r0, [sp, #40]	; 0x28
+ffff432c:	e3500000 	cmp	r0, #0
+ffff4330:	0a000022 	beq	0xffff43c0
+
+ffff4334:	e3a00000 	mov	r0, #0
+ffff4338:	e58d0000 	str	r0, [sp]
+ffff433c:	ebfffcd5 	bl	get_counter
+ffff4340:	e1a08000 	mov	r8, r0
+ffff4344:	e1a09001 	mov	r9, r1
+ffff4348:	e59f6200 	ldr	r6, [pc, #512]	; 0xffff4550
+ffff434c:	e3a07000 	mov	r7, #0
+ffff4350:	e30b0bca 	movw	r0, #48074	; 0xbbca
+ffff4354:	e58d0000 	str	r0, [sp]
+ffff4358:	e320f000 	nop	{0}
+
+ffff435c:	ebfffccd 	bl	get_counter
+ffff4360:	e0504008 	subs	r4, r0, r8
+ffff4364:	e0c15009 	sbc	r5, r1, r9
+ffff4368:	e59a0038 	ldr	r0, [sl, #56]	; 0x38
+ffff436c:	e58d0010 	str	r0, [sp, #16]
+ffff4370:	e59d0000 	ldr	r0, [sp]
+ffff4374:	e59d1010 	ldr	r1, [sp, #16]
+ffff4378:	e1100001 	tst	r0, r1
+ffff437c:	0a000000 	beq	0xffff4384
+
+ffff4380:	ea000002 	b	0xffff4390
+
+ffff4384:	e0540006 	subs	r0, r4, r6
+ffff4388:	e0d50007 	sbcs	r0, r5, r7
+ffff438c:	3afffff2 	bcc	0xffff435c
+
+ffff4390:	e320f000 	nop	{0}
+ffff4394:	e0540006 	subs	r0, r4, r6
+ffff4398:	e0d50007 	sbcs	r0, r5, r7
+ffff439c:	2a000003 	bcs	0xffff43b0
+
+ffff43a0:	e30b0bc2 	movw	r0, #48066	; 0xbbc2
+ffff43a4:	e59d1010 	ldr	r1, [sp, #16]
+ffff43a8:	e1100001 	tst	r0, r1
+ffff43ac:	0a000002 	beq	0xffff43bc
+
+ffff43b0:	e3e00002 	mvn	r0, #2
+ffff43b4:	e58d0014 	str	r0, [sp, #20]
+ffff43b8:	ea00002b 	b	0xffff446c
+
+ffff43bc:	e320f000 	nop	{0}
+
+ffff43c0:	e59b0004 	ldr	r0, [fp, #4]
+ffff43c4:	e3100008 	tst	r0, #8
+ffff43c8:	0a000018 	beq	0xffff4430
+
+ffff43cc:	ebfffcb1 	bl	get_counter
+ffff43d0:	e1a08000 	mov	r8, r0
+ffff43d4:	e1a09001 	mov	r9, r1
+ffff43d8:	e59f6174 	ldr	r6, [pc, #372]	; 0xffff4554
+ffff43dc:	e3a07000 	mov	r7, #0
+ffff43e0:	e320f000 	nop	{0}
+
+ffff43e4:	ebfffcab 	bl	get_counter
+ffff43e8:	e0504008 	subs	r4, r0, r8
+ffff43ec:	e0c15009 	sbc	r5, r1, r9
+ffff43f0:	e59a003c 	ldr	r0, [sl, #60]	; 0x3c
+ffff43f4:	e58d0010 	str	r0, [sp, #16]
+ffff43f8:	e59d0010 	ldr	r0, [sp, #16]
+ffff43fc:	e3100c02 	tst	r0, #512	; 0x200
+ffff4400:	1a000000 	bne	0xffff4408
+
+ffff4404:	ea000002 	b	0xffff4414
+
+ffff4408:	e0540006 	subs	r0, r4, r6
+ffff440c:	e0d50007 	sbcs	r0, r5, r7
+ffff4410:	3afffff3 	bcc	0xffff43e4
+
+ffff4414:	e320f000 	nop	{0}
+ffff4418:	e0540006 	subs	r0, r4, r6
+ffff441c:	e0d50007 	sbcs	r0, r5, r7
+ffff4420:	3a000002 	bcc	0xffff4430
+
+ffff4424:	e3e00002 	mvn	r0, #2
+ffff4428:	e58d0014 	str	r0, [sp, #20]
+ffff442c:	ea00000e 	b	0xffff446c
+
+ffff4430:	e59b0004 	ldr	r0, [fp, #4]
+ffff4434:	e3100002 	tst	r0, #2
+ffff4438:	0a000008 	beq	0xffff4460
+
+ffff443c:	e59a002c 	ldr	r0, [sl, #44]	; 0x2c
+ffff4440:	e58b000c 	str	r0, [fp, #12]
+ffff4444:	e59a0028 	ldr	r0, [sl, #40]	; 0x28
+ffff4448:	e58b0010 	str	r0, [fp, #16]
+ffff444c:	e59a0024 	ldr	r0, [sl, #36]	; 0x24
+ffff4450:	e58b0014 	str	r0, [fp, #20]
+ffff4454:	e59a0020 	ldr	r0, [sl, #32]
+ffff4458:	e58b0018 	str	r0, [fp, #24]
+ffff445c:	ea000001 	b	0xffff4468
+
+ffff4460:	e59a0020 	ldr	r0, [sl, #32]
+ffff4464:	e58b000c 	str	r0, [fp, #12]
+
+ffff4468:	e320f000 	nop	{0}
+
+ffff446c:	e59d0028 	ldr	r0, [sp, #40]	; 0x28
+ffff4470:	e3500000 	cmp	r0, #0
+ffff4474:	0a00000c 	beq	0xffff44ac
+
+ffff4478:	e59d000c 	ldr	r0, [sp, #12]
+ffff447c:	e3500000 	cmp	r0, #0
+ffff4480:	0a000009 	beq	0xffff44ac
+
+ffff4484:	e59a0088 	ldr	r0, [sl, #136]	; 0x88
+ffff4488:	e58d0010 	str	r0, [sp, #16]
+ffff448c:	e59d0010 	ldr	r0, [sp, #16]
+ffff4490:	e58a0088 	str	r0, [sl, #136]	; 0x88
+ffff4494:	e3a00000 	mov	r0, #0
+ffff4498:	e58a008c 	str	r0, [sl, #140]	; 0x8c
+ffff449c:	e58a0080 	str	r0, [sl, #128]	; 0x80
+ffff44a0:	e59a0000 	ldr	r0, [sl]
+ffff44a4:	e3c00020 	bic	r0, r0, #32
+ffff44a8:	e58a0000 	str	r0, [sl]
+
+ffff44ac:	e59d0014 	ldr	r0, [sp, #20]
+ffff44b0:	e3500000 	cmp	r0, #0
+ffff44b4:	0a00000b 	beq	0xffff44e8
+
+ffff44b8:	e3a00007 	mov	r0, #7
+ffff44bc:	e58a0000 	str	r0, [sl]
+ffff44c0:	e59d0020 	ldr	r0, [sp, #32]
+ffff44c4:	ebfffd29 	bl	0xffff3970
+ffff44c8:	e58d0004 	str	r0, [sp, #4]
+ffff44cc:	e59d0004 	ldr	r0, [sp, #4]
+ffff44d0:	e3500000 	cmp	r0, #0
+ffff44d4:	0a000001 	beq	0xffff44e0
+
+ffff44d8:	e59d0004 	ldr	r0, [sp, #4]
+ffff44dc:	eafffecf 	b	0xffff4020
+
+ffff44e0:	e59d0020 	ldr	r0, [sp, #32]
+ffff44e4:	ebfffd0b 	bl	0xffff3918
+
+ffff44e8:	e3e00000 	mvn	r0, #0
+ffff44ec:	e58a0038 	str	r0, [sl, #56]	; 0x38
+ffff44f0:	e59d0014 	ldr	r0, [sp, #20]
+ffff44f4:	eafffec9 	b	0xffff4020
+
+	;; Global Offset Table
+ffff44f8:	01c20cd0				; CNT64_TEST_REG
+ffff44fc:	00155555
+ffff4500:	01c20864				; PC_PUL0
+ffff4504:	22222222
+ffff4508:	01c20000				; CCU_BASE
+ffff450c:	016e3600
+ffff4510:	01c208d0				; PF_PUL0
+ffff4514:	07222222
+ffff4518:	77777777
+ffff451c:	01c20848				; PC_CFG0
+ffff4520:	07373733
+ffff4524:	01c208b4				; PF_CFG0
+ffff4528:	80202000
+ffff452c:	00061a80
+ffff4530:	0002000e
+ffff4534:	005b8d80
+ffff4538:	00070008
+ffff453c:	0007ffff
+ffff4540:	000fffff
+ffff4544:	20070008
+ffff4548:	00249f00
+ffff454c:	015be680
+ffff4550:	00b71b00
+ffff4554:	00493e00
+
+ffff4558:	e92d40f0 	push	{r4, r5, r6, r7, lr}  ; r0 = card_no, r1 = structure
+ffff455c:	e1a07000 	mov	r7, r0
+ffff4560:	e1a04001 	mov	r4, r1
+ffff4564:	e5945000 	ldr	r5, [r4]
+ffff4568:	e1a01005 	mov	r1, r5
+ffff456c:	e1a00007 	mov	r0, r7
+ffff4570:	ebfffc7e 	bl	init_SDC
+ffff4574:	e3a00007 	mov	r0, #7
+ffff4578:	e5951000 	ldr	r1, [r5]
+ffff457c:	e5810000 	str	r0, [r1]
+ffff4580:	e1a00004 	mov	r0, r4
+ffff4584:	ebfffcf9 	bl	0xffff3970
+ffff4588:	e1a06000 	mov	r6, r0
+ffff458c:	e3560000 	cmp	r6, #0
+ffff4590:	0a000001 	beq	0xffff459c
+ffff4594:	e1a00006 	mov	r0, r6
+ffff4598:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}
+
+ffff459c:	e3000911 	movw	r0, #2321	; 0x911
+ffff45a0:	e5840024 	str	r0, [r4, #36]	; 0x24
+ffff45a4:	e3a008fe 	mov	r0, #16646144	; 0xfe0000
+ffff45a8:	e5840004 	str	r0, [r4, #4]
+ffff45ac:	e51f0088 	ldr	r0, [pc, #-136]	; 0xffff452c =0x00061a80
+ffff45b0:	e584000c 	str	r0, [r4, #12]
+ffff45b4:	e59f002c 	ldr	r0, [pc, #44]	; 0xffff45e8 =0x03197500
+ffff45b8:	e5840010 	str	r0, [r4, #16]
+ffff45bc:	e3a00000 	mov	r0, #0
+ffff45c0:	eafffff4 	b	0xffff4598
+
+ffff45c4:	e92d4070 	push	{r4, r5, r6, lr}
+ffff45c8:	e1a05000 	mov	r5, r0
+ffff45cc:	e1a04001 	mov	r4, r1
+ffff45d0:	e5946000 	ldr	r6, [r4]
+ffff45d4:	e1a01006 	mov	r1, r6
+ffff45d8:	e1a00005 	mov	r0, r5
+ffff45dc:	ebfffca0 	bl	0xffff3864
+ffff45e0:	e3a00000 	mov	r0, #0
+ffff45e4:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+	;; Global Offset Table
+ffff45e8:	03197500
+
+ffff45ec:	e92d4070 	push	{r4, r5, r6, lr}
+ffff45f0:	e24dd028 	sub	sp, sp, #40	; 0x28
+ffff45f4:	e1a06000 	mov	r6, r0
+ffff45f8:	e1a04001 	mov	r4, r1
+ffff45fc:	e3a0000d 	mov	r0, #13
+ffff4600:	e58d0004 	str	r0, [sp, #4]
+ffff4604:	e3a00015 	mov	r0, #21
+ffff4608:	e58d0008 	str	r0, [sp, #8]
+ffff460c:	e5960034 	ldr	r0, [r6, #52]	; 0x34
+ffff4610:	e1a00800 	lsl	r0, r0, #16
+ffff4614:	e58d000c 	str	r0, [sp, #12]
+ffff4618:	e3a00000 	mov	r0, #0
+ffff461c:	e58d0020 	str	r0, [sp, #32]
+ffff4620:	e320f000 	nop	{0}
+ffff4624:	e3a02000 	mov	r2, #0
+ffff4628:	e28d1004 	add	r1, sp, #4
+ffff462c:	e1a00006 	mov	r0, r6
+ffff4630:	ebfffe63 	bl	0xffff3fc4
+ffff4634:	e1a05000 	mov	r5, r0
+ffff4638:	e3550000 	cmp	r5, #0
+ffff463c:	0a000002 	beq	0xffff464c
+ffff4640:	e1a00005 	mov	r0, r5
+ffff4644:	e28dd028 	add	sp, sp, #40	; 0x28
+ffff4648:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff464c:	e59d0010 	ldr	r0, [sp, #16]
+ffff4650:	e3100c01 	tst	r0, #256	; 0x100
+ffff4654:	0a000000 	beq	0xffff465c
+ffff4658:	ea00000b 	b	0xffff468c
+ffff465c:	e3a00001 	mov	r0, #1
+ffff4660:	e3a01000 	mov	r1, #0
+ffff4664:	ebfffc30 	bl	0xffff372c
+ffff4668:	e59d0010 	ldr	r0, [sp, #16]
+ffff466c:	e59f1e10 	ldr	r1, [pc, #3600]	; 0xffff5484 = 0xfdf94080
+ffff4670:	e1100001 	tst	r0, r1
+ffff4674:	0a000001 	beq	0xffff4680
+ffff4678:	e3e00011 	mvn	r0, #17
+ffff467c:	eafffff0 	b	0xffff4644
+ffff4680:	e1b00004 	movs	r0, r4
+ffff4684:	e2444001 	sub	r4, r4, #1
+ffff4688:	1affffe5 	bne	0xffff4624
+ffff468c:	e320f000 	nop	{0}
+ffff4690:	e3540000 	cmp	r4, #0
+ffff4694:	ca000001 	bgt	0xffff46a0
+ffff4698:	e3e00012 	mvn	r0, #18
+ffff469c:	eaffffe8 	b	0xffff4644
+ffff46a0:	e3a00000 	mov	r0, #0
+ffff46a4:	eaffffe6 	b	0xffff4644
+
+ffff46a8:	e92d4030 	push	{r4, r5, lr}
+ffff46ac:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff46b0:	e1a04000 	mov	r4, r0
+ffff46b4:	e3a05000 	mov	r5, #0
+ffff46b8:	e3a00000 	mov	r0, #0
+ffff46bc:	e58d0000 	str	r0, [sp]
+ffff46c0:	e58d0008 	str	r0, [sp, #8]
+ffff46c4:	e58d0004 	str	r0, [sp, #4]
+ffff46c8:	e58d001c 	str	r0, [sp, #28]
+ffff46cc:	e3a02000 	mov	r2, #0
+ffff46d0:	e1a0100d 	mov	r1, sp
+ffff46d4:	e1a00004 	mov	r0, r4
+ffff46d8:	ebfffe39 	bl	0xffff3fc4
+ffff46dc:	e1a05000 	mov	r5, r0
+ffff46e0:	e3a00001 	mov	r0, #1
+ffff46e4:	e3a01000 	mov	r1, #0
+ffff46e8:	ebfffc0f 	bl	0xffff372c
+ffff46ec:	e1a00005 	mov	r0, r5
+ffff46f0:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff46f4:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff46f8:	e92d4030 	push	{r4, r5, lr}
+ffff46fc:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff4700:	e1a04000 	mov	r4, r0
+ffff4704:	e3a05000 	mov	r5, #0
+ffff4708:	e3a00000 	mov	r0, #0
+ffff470c:	e58d0000 	str	r0, [sp]
+ffff4710:	e59f0d70 	ldr	r0, [pc, #3440]	; 0xffff5488 =0xf0f0f0f0
+ffff4714:	e58d0008 	str	r0, [sp, #8]
+ffff4718:	e3a00000 	mov	r0, #0
+ffff471c:	e58d0004 	str	r0, [sp, #4]
+ffff4720:	e58d001c 	str	r0, [sp, #28]
+ffff4724:	e3a02000 	mov	r2, #0
+ffff4728:	e1a0100d 	mov	r1, sp
+ffff472c:	e1a00004 	mov	r0, r4
+ffff4730:	ebfffe23 	bl	0xffff3fc4
+ffff4734:	e1a05000 	mov	r5, r0
+ffff4738:	e1a00005 	mov	r0, r5
+ffff473c:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff4740:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff4744:	e92d4030 	push	{r4, r5, lr}
+ffff4748:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff474c:	e1a04000 	mov	r4, r0
+ffff4750:	e3a05000 	mov	r5, #0
+ffff4754:	e3a00000 	mov	r0, #0
+ffff4758:	e58d0000 	str	r0, [sp]
+ffff475c:	e59f0d28 	ldr	r0, [pc, #3368]	; 0xffff548c =0xf0f0f0fa
+ffff4760:	e58d0008 	str	r0, [sp, #8]
+ffff4764:	e3a00000 	mov	r0, #0
+ffff4768:	e58d0004 	str	r0, [sp, #4]
+ffff476c:	e58d001c 	str	r0, [sp, #28]
+ffff4770:	e3a02000 	mov	r2, #0
+ffff4774:	e1a0100d 	mov	r1, sp
+ffff4778:	e1a00004 	mov	r0, r4
+ffff477c:	ebfffe10 	bl	0xffff3fc4
+ffff4780:	e1a05000 	mov	r5, r0
+ffff4784:	e3a00001 	mov	r0, #1
+ffff4788:	e3a01000 	mov	r1, #0
+ffff478c:	ebfffbe6 	bl	0xffff372c
+ffff4790:	e1a00005 	mov	r0, r5
+ffff4794:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff4798:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff479c:	e92d4070 	push	{r4, r5, r6, lr}
+ffff47a0:	e24dd028 	sub	sp, sp, #40	; 0x28
+ffff47a4:	e1a04000 	mov	r4, r0
+ffff47a8:	e30063e8 	movw	r6, #1000	; 0x3e8
+ffff47ac:	e320f000 	nop	{0}
+ffff47b0:	e3a00037 	mov	r0, #55	; 0x37
+ffff47b4:	e58d0004 	str	r0, [sp, #4]
+ffff47b8:	e3a00015 	mov	r0, #21
+ffff47bc:	e58d0008 	str	r0, [sp, #8]
+ffff47c0:	e3a00000 	mov	r0, #0
+ffff47c4:	e58d000c 	str	r0, [sp, #12]
+ffff47c8:	e58d0020 	str	r0, [sp, #32]
+ffff47cc:	e3a02000 	mov	r2, #0
+ffff47d0:	e28d1004 	add	r1, sp, #4
+ffff47d4:	e1a00004 	mov	r0, r4
+ffff47d8:	ebfffdf9 	bl	0xffff3fc4
+ffff47dc:	e1a05000 	mov	r5, r0
+ffff47e0:	e3550000 	cmp	r5, #0
+ffff47e4:	0a000002 	beq	0xffff47f4
+ffff47e8:	e1a00005 	mov	r0, r5
+ffff47ec:	e28dd028 	add	sp, sp, #40	; 0x28
+ffff47f0:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff47f4:	e3a00029 	mov	r0, #41	; 0x29
+ffff47f8:	e58d0004 	str	r0, [sp, #4]
+ffff47fc:	e3a00001 	mov	r0, #1
+ffff4800:	e58d0008 	str	r0, [sp, #8]
+ffff4804:	e5940004 	ldr	r0, [r4, #4]
+ffff4808:	e59f1c80 	ldr	r1, [pc, #3200]	; 0xffff5490 =0x00ff8000
+ffff480c:	e0000001 	and	r0, r0, r1
+ffff4810:	e58d000c 	str	r0, [sp, #12]
+ffff4814:	e5940008 	ldr	r0, [r4, #8]
+ffff4818:	e2401802 	sub	r1, r0, #131072	; 0x20000
+ffff481c:	e2511020 	subs	r1, r1, #32
+ffff4820:	1a000002 	bne	0xffff4830
+ffff4824:	e59d000c 	ldr	r0, [sp, #12]
+ffff4828:	e3800101 	orr	r0, r0, #1073741824	; 0x40000000
+ffff482c:	e58d000c 	str	r0, [sp, #12]
+ffff4830:	e3a02000 	mov	r2, #0
+ffff4834:	e28d1004 	add	r1, sp, #4
+ffff4838:	e1a00004 	mov	r0, r4
+ffff483c:	ebfffde0 	bl	0xffff3fc4
+ffff4840:	e1a05000 	mov	r5, r0
+ffff4844:	e3550000 	cmp	r5, #0
+ffff4848:	0a000001 	beq	0xffff4854
+ffff484c:	e1a00005 	mov	r0, r5
+ffff4850:	eaffffe5 	b	0xffff47ec
+ffff4854:	e3a00001 	mov	r0, #1
+ffff4858:	e3a01000 	mov	r1, #0
+ffff485c:	ebfffbb2 	bl	0xffff372c
+ffff4860:	e59d0010 	ldr	r0, [sp, #16]
+ffff4864:	e3100102 	tst	r0, #-2147483648	; 0x80000000
+ffff4868:	1a000002 	bne	0xffff4878
+ffff486c:	e1b00006 	movs	r0, r6
+ffff4870:	e2466001 	sub	r6, r6, #1
+ffff4874:	1affffcd 	bne	0xffff47b0
+ffff4878:	e3560000 	cmp	r6, #0
+ffff487c:	ca000001 	bgt	0xffff4888
+ffff4880:	e3e00010 	mvn	r0, #16
+ffff4884:	eaffffd8 	b	0xffff47ec
+ffff4888:	e5940008 	ldr	r0, [r4, #8]
+ffff488c:	e2401802 	sub	r1, r0, #131072	; 0x20000
+ffff4890:	e2511020 	subs	r1, r1, #32
+ffff4894:	0a000001 	beq	0xffff48a0
+ffff4898:	e59f0bf4 	ldr	r0, [pc, #3060]	; 0xffff5494 =0x00020010
+ffff489c:	e5840008 	str	r0, [r4, #8]
+ffff48a0:	e59d0010 	ldr	r0, [sp, #16]
+ffff48a4:	e5840028 	str	r0, [r4, #40]	; 0x28
+ffff48a8:	e5940028 	ldr	r0, [r4, #40]	; 0x28
+ffff48ac:	e7e00f50 	ubfx	r0, r0, #30, #1
+ffff48b0:	e5840014 	str	r0, [r4, #20]
+ffff48b4:	e3a00000 	mov	r0, #0
+ffff48b8:	e5840034 	str	r0, [r4, #52]	; 0x34
+ffff48bc:	e320f000 	nop	{0}
+ffff48c0:	eaffffc9 	b	0xffff47ec
+
+ffff48c4:	e92d4070 	push	{r4, r5, r6, lr}
+ffff48c8:	e24dd028 	sub	sp, sp, #40	; 0x28
+ffff48cc:	e1a04000 	mov	r4, r0
+ffff48d0:	e30063e8 	movw	r6, #1000	; 0x3e8
+ffff48d4:	e1a00004 	mov	r0, r4
+ffff48d8:	ebffff72 	bl	0xffff46a8
+ffff48dc:	e3a00001 	mov	r0, #1
+ffff48e0:	e58d0004 	str	r0, [sp, #4]
+ffff48e4:	e58d0008 	str	r0, [sp, #8]
+ffff48e8:	e3a00000 	mov	r0, #0
+ffff48ec:	e58d000c 	str	r0, [sp, #12]
+ffff48f0:	e58d0020 	str	r0, [sp, #32]
+ffff48f4:	e3a02000 	mov	r2, #0
+ffff48f8:	e28d1004 	add	r1, sp, #4
+ffff48fc:	e1a00004 	mov	r0, r4
+ffff4900:	ebfffdaf 	bl	0xffff3fc4
+ffff4904:	e1a05000 	mov	r5, r0
+ffff4908:	e3550000 	cmp	r5, #0
+ffff490c:	0a000002 	beq	0xffff491c
+ffff4910:	e1a00005 	mov	r0, r5
+ffff4914:	e28dd028 	add	sp, sp, #40	; 0x28
+ffff4918:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff491c:	e3a00001 	mov	r0, #1
+ffff4920:	e3a01000 	mov	r1, #0
+ffff4924:	ebfffb80 	bl	0xffff372c
+ffff4928:	e320f000 	nop	{0}
+ffff492c:	e3a00001 	mov	r0, #1
+ffff4930:	e58d0004 	str	r0, [sp, #4]
+ffff4934:	e58d0008 	str	r0, [sp, #8]
+ffff4938:	e5940004 	ldr	r0, [r4, #4]
+ffff493c:	e59d1010 	ldr	r1, [sp, #16]
+ffff4940:	e3c114ff 	bic	r1, r1, #-16777216	; 0xff000000
+ffff4944:	e3c1107f 	bic	r1, r1, #127	; 0x7f
+ffff4948:	e0000001 	and	r0, r0, r1
+ffff494c:	e59d1010 	ldr	r1, [sp, #16]
+ffff4950:	e2011206 	and	r1, r1, #1610612736	; 0x60000000
+ffff4954:	e1800001 	orr	r0, r0, r1
+ffff4958:	e58d000c 	str	r0, [sp, #12]
+ffff495c:	e5940024 	ldr	r0, [r4, #36]	; 0x24
+ffff4960:	e3100b02 	tst	r0, #2048	; 0x800
+ffff4964:	0a000002 	beq	0xffff4974
+ffff4968:	e59d000c 	ldr	r0, [sp, #12]
+ffff496c:	e3800101 	orr	r0, r0, #1073741824	; 0x40000000
+ffff4970:	e58d000c 	str	r0, [sp, #12]
+ffff4974:	e3a00000 	mov	r0, #0
+ffff4978:	e58d0020 	str	r0, [sp, #32]
+ffff497c:	e3a02000 	mov	r2, #0
+ffff4980:	e28d1004 	add	r1, sp, #4
+ffff4984:	e1a00004 	mov	r0, r4
+ffff4988:	ebfffd8d 	bl	0xffff3fc4
+ffff498c:	e1a05000 	mov	r5, r0
+ffff4990:	e3550000 	cmp	r5, #0
+ffff4994:	0a000001 	beq	0xffff49a0
+ffff4998:	e1a00005 	mov	r0, r5
+ffff499c:	eaffffdc 	b	0xffff4914
+ffff49a0:	e3a00001 	mov	r0, #1
+ffff49a4:	e3a01000 	mov	r1, #0
+ffff49a8:	ebfffb5f 	bl	0xffff372c
+ffff49ac:	e59d0010 	ldr	r0, [sp, #16]
+ffff49b0:	e3100102 	tst	r0, #-2147483648	; 0x80000000
+ffff49b4:	1a000002 	bne	0xffff49c4
+ffff49b8:	e1b00006 	movs	r0, r6
+ffff49bc:	e2466001 	sub	r6, r6, #1
+ffff49c0:	1affffd9 	bne	0xffff492c
+ffff49c4:	e3560000 	cmp	r6, #0
+ffff49c8:	ca000001 	bgt	0xffff49d4
+ffff49cc:	e3e00010 	mvn	r0, #16
+ffff49d0:	eaffffcf 	b	0xffff4914
+ffff49d4:	e3a00801 	mov	r0, #65536	; 0x10000
+ffff49d8:	e5840008 	str	r0, [r4, #8]
+ffff49dc:	e59d0010 	ldr	r0, [sp, #16]
+ffff49e0:	e5840028 	str	r0, [r4, #40]	; 0x28
+ffff49e4:	e5940028 	ldr	r0, [r4, #40]	; 0x28
+ffff49e8:	e7e00f50 	ubfx	r0, r0, #30, #1
+ffff49ec:	e5840014 	str	r0, [r4, #20]
+ffff49f0:	e3a00001 	mov	r0, #1
+ffff49f4:	e5840034 	str	r0, [r4, #52]	; 0x34
+ffff49f8:	e3a00000 	mov	r0, #0
+ffff49fc:	eaffffc4 	b	0xffff4914
+
+ffff4a00:	e92d4070 	push	{r4, r5, r6, lr}
+ffff4a04:	e24dd038 	sub	sp, sp, #56	; 0x38
+ffff4a08:	e1a05000 	mov	r5, r0
+ffff4a0c:	e1a04001 	mov	r4, r1
+ffff4a10:	e3a00008 	mov	r0, #8
+ffff4a14:	e58d0014 	str	r0, [sp, #20]
+ffff4a18:	e3a00015 	mov	r0, #21
+ffff4a1c:	e58d0018 	str	r0, [sp, #24]
+ffff4a20:	e3a00000 	mov	r0, #0
+ffff4a24:	e58d001c 	str	r0, [sp, #28]
+ffff4a28:	e58d0030 	str	r0, [sp, #48]	; 0x30
+ffff4a2c:	e58d4004 	str	r4, [sp, #4]
+ffff4a30:	e3a00001 	mov	r0, #1
+ffff4a34:	e58d000c 	str	r0, [sp, #12]
+ffff4a38:	e3000200 	movw	r0, #512	; 0x200
+ffff4a3c:	e58d0010 	str	r0, [sp, #16]
+ffff4a40:	e3a00001 	mov	r0, #1
+ffff4a44:	e58d0008 	str	r0, [sp, #8]
+ffff4a48:	e28d2004 	add	r2, sp, #4
+ffff4a4c:	e28d1014 	add	r1, sp, #20
+ffff4a50:	e1a00005 	mov	r0, r5
+ffff4a54:	ebfffd5a 	bl	0xffff3fc4
+ffff4a58:	e1a06000 	mov	r6, r0
+ffff4a5c:	e1a00006 	mov	r0, r6
+ffff4a60:	e28dd038 	add	sp, sp, #56	; 0x38
+ffff4a64:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff4a68:	e92d43f0 	push	{r4, r5, r6, r7, r8, r9, lr}
+ffff4a6c:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff4a70:	e1a06000 	mov	r6, r0
+ffff4a74:	e1a09001 	mov	r9, r1
+ffff4a78:	e1a04002 	mov	r4, r2
+ffff4a7c:	e1a05003 	mov	r5, r3
+ffff4a80:	e30073e8 	movw	r7, #1000	; 0x3e8
+ffff4a84:	e3a00006 	mov	r0, #6
+ffff4a88:	e58d0000 	str	r0, [sp]
+ffff4a8c:	e3a0001d 	mov	r0, #29
+ffff4a90:	e58d0004 	str	r0, [sp, #4]
+ffff4a94:	e3a00403 	mov	r0, #50331648	; 0x3000000
+ffff4a98:	e1800804 	orr	r0, r0, r4, lsl #16
+ffff4a9c:	e1800405 	orr	r0, r0, r5, lsl #8
+ffff4aa0:	e58d0008 	str	r0, [sp, #8]
+ffff4aa4:	e3a00000 	mov	r0, #0
+ffff4aa8:	e58d001c 	str	r0, [sp, #28]
+ffff4aac:	e3a02000 	mov	r2, #0
+ffff4ab0:	e1a0100d 	mov	r1, sp
+ffff4ab4:	e1a00006 	mov	r0, r6
+ffff4ab8:	ebfffd41 	bl	0xffff3fc4
+ffff4abc:	e1a08000 	mov	r8, r0
+ffff4ac0:	e1a01007 	mov	r1, r7
+ffff4ac4:	e1a00006 	mov	r0, r6
+ffff4ac8:	ebfffec7 	bl	0xffff45ec
+ffff4acc:	e1a00008 	mov	r0, r8
+ffff4ad0:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff4ad4:	e8bd83f0 	pop	{r4, r5, r6, r7, r8, r9, pc}
+
+ffff4ad8:	e1a02000 	mov	r2, r0
+ffff4adc:	e3a00000 	mov	r0, #0
+ffff4ae0:	e5820020 	str	r0, [r2, #32]
+ffff4ae4:	e5920008 	ldr	r0, [r2, #8]
+ffff4ae8:	e59f39a8 	ldr	r3, [pc, #2472]	; 0xffff5498 =0x00010040
+ffff4aec:	e1500003 	cmp	r0, r3
+ffff4af0:	2a000001 	bcs	0xffff4afc
+ffff4af4:	e3a00000 	mov	r0, #0
+ffff4af8:	e12fff1e 	bx	lr
+ffff4afc:	e5920020 	ldr	r0, [r2, #32]
+ffff4b00:	e3800c01 	orr	r0, r0, #256	; 0x100
+ffff4b04:	e5820020 	str	r0, [r2, #32]
+ffff4b08:	e5920020 	ldr	r0, [r2, #32]
+ffff4b0c:	e3800001 	orr	r0, r0, #1
+ffff4b10:	e5820020 	str	r0, [r2, #32]
+ffff4b14:	e3a00000 	mov	r0, #0
+ffff4b18:	eafffff6 	b	0xffff4af8
+
+ffff4b1c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff4b20:	e24dd038 	sub	sp, sp, #56	; 0x38
+ffff4b24:	e1a08000 	mov	r8, r0
+ffff4b28:	e1a05001 	mov	r5, r1
+ffff4b2c:	e1a04002 	mov	r4, r2
+ffff4b30:	e1a06003 	mov	r6, r3
+ffff4b34:	e59d7050 	ldr	r7, [sp, #80]	; 0x50
+ffff4b38:	e3a00006 	mov	r0, #6
+ffff4b3c:	e58d0014 	str	r0, [sp, #20]
+ffff4b40:	e3a00015 	mov	r0, #21
+ffff4b44:	e58d0018 	str	r0, [sp, #24]
+ffff4b48:	e3e004ff 	mvn	r0, #-16777216	; 0xff000000
+ffff4b4c:	e1800f85 	orr	r0, r0, r5, lsl #31
+ffff4b50:	e58d001c 	str	r0, [sp, #28]
+ffff4b54:	e1a01104 	lsl	r1, r4, #2
+ffff4b58:	e3a0200f 	mov	r2, #15
+ffff4b5c:	e59d001c 	ldr	r0, [sp, #28]
+ffff4b60:	e1c00112 	bic	r0, r0, r2, lsl r1
+ffff4b64:	e58d001c 	str	r0, [sp, #28]
+ffff4b68:	e1a01104 	lsl	r1, r4, #2
+ffff4b6c:	e59d001c 	ldr	r0, [sp, #28]
+ffff4b70:	e1800116 	orr	r0, r0, r6, lsl r1
+ffff4b74:	e58d001c 	str	r0, [sp, #28]
+ffff4b78:	e3a00000 	mov	r0, #0
+ffff4b7c:	e58d0030 	str	r0, [sp, #48]	; 0x30
+ffff4b80:	e58d7004 	str	r7, [sp, #4]
+ffff4b84:	e3a00040 	mov	r0, #64	; 0x40
+ffff4b88:	e58d0010 	str	r0, [sp, #16]
+ffff4b8c:	e3a00001 	mov	r0, #1
+ffff4b90:	e58d000c 	str	r0, [sp, #12]
+ffff4b94:	e58d0008 	str	r0, [sp, #8]
+ffff4b98:	e28d2004 	add	r2, sp, #4
+ffff4b9c:	e28d1014 	add	r1, sp, #20
+ffff4ba0:	e1a00008 	mov	r0, r8
+ffff4ba4:	ebfffd06 	bl	0xffff3fc4
+ffff4ba8:	e28dd038 	add	sp, sp, #56	; 0x38
+ffff4bac:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff4bb0:	e92d4070 	push	{r4, r5, r6, lr}
+ffff4bb4:	e24dd040 	sub	sp, sp, #64	; 0x40
+ffff4bb8:	e1a04000 	mov	r4, r0
+ffff4bbc:	e3a00000 	mov	r0, #0
+ffff4bc0:	e5840020 	str	r0, [r4, #32]
+ffff4bc4:	e3a00037 	mov	r0, #55	; 0x37
+ffff4bc8:	e58d001c 	str	r0, [sp, #28]
+ffff4bcc:	e3a00015 	mov	r0, #21
+ffff4bd0:	e58d0020 	str	r0, [sp, #32]
+ffff4bd4:	e5940034 	ldr	r0, [r4, #52]	; 0x34
+ffff4bd8:	e1a00800 	lsl	r0, r0, #16
+ffff4bdc:	e58d0024 	str	r0, [sp, #36]	; 0x24
+ffff4be0:	e3a00000 	mov	r0, #0
+ffff4be4:	e58d0038 	str	r0, [sp, #56]	; 0x38
+ffff4be8:	e3a02000 	mov	r2, #0
+ffff4bec:	e28d101c 	add	r1, sp, #28
+ffff4bf0:	e1a00004 	mov	r0, r4
+ffff4bf4:	ebfffcf2 	bl	0xffff3fc4
+ffff4bf8:	e1a05000 	mov	r5, r0
+ffff4bfc:	e3550000 	cmp	r5, #0
+ffff4c00:	0a000002 	beq	0xffff4c10
+ffff4c04:	e1a00005 	mov	r0, r5
+ffff4c08:	e28dd040 	add	sp, sp, #64	; 0x40
+ffff4c0c:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff4c10:	e3a00033 	mov	r0, #51	; 0x33
+ffff4c14:	e58d001c 	str	r0, [sp, #28]
+ffff4c18:	e3a00015 	mov	r0, #21
+ffff4c1c:	e58d0020 	str	r0, [sp, #32]
+ffff4c20:	e3a00000 	mov	r0, #0
+ffff4c24:	e58d0024 	str	r0, [sp, #36]	; 0x24
+ffff4c28:	e58d0038 	str	r0, [sp, #56]	; 0x38
+ffff4c2c:	e3a06003 	mov	r6, #3
+ffff4c30:	e320f000 	nop	{0}
+ffff4c34:	e28d0014 	add	r0, sp, #20
+ffff4c38:	e58d0004 	str	r0, [sp, #4]
+ffff4c3c:	e3a00008 	mov	r0, #8
+ffff4c40:	e58d0010 	str	r0, [sp, #16]
+ffff4c44:	e3a00001 	mov	r0, #1
+ffff4c48:	e58d000c 	str	r0, [sp, #12]
+ffff4c4c:	e58d0008 	str	r0, [sp, #8]
+ffff4c50:	e28d2004 	add	r2, sp, #4
+ffff4c54:	e28d101c 	add	r1, sp, #28
+ffff4c58:	e1a00004 	mov	r0, r4
+ffff4c5c:	ebfffcd8 	bl	0xffff3fc4
+ffff4c60:	e1a05000 	mov	r5, r0
+ffff4c64:	e3550000 	cmp	r5, #0
+ffff4c68:	0a000005 	beq	0xffff4c84
+ffff4c6c:	e1b00006 	movs	r0, r6
+ffff4c70:	e2466001 	sub	r6, r6, #1
+ffff4c74:	0a000000 	beq	0xffff4c7c
+ffff4c78:	eaffffed 	b	0xffff4c34
+ffff4c7c:	e1a00005 	mov	r0, r5
+ffff4c80:	eaffffe0 	b	0xffff4c08
+ffff4c84:	e30f2f00 	movw	r2, #65280	; 0xff00
+ffff4c88:	e59d1014 	ldr	r1, [sp, #20]
+ffff4c8c:	e0021421 	and	r1, r2, r1, lsr #8
+ffff4c90:	e59d0014 	ldr	r0, [sp, #20]
+ffff4c94:	e1810c20 	orr	r0, r1, r0, lsr #24
+ffff4c98:	e3a028ff 	mov	r2, #16711680	; 0xff0000
+ffff4c9c:	e59d1014 	ldr	r1, [sp, #20]
+ffff4ca0:	e0021401 	and	r1, r2, r1, lsl #8
+ffff4ca4:	e1800001 	orr	r0, r0, r1
+ffff4ca8:	e3a024ff 	mov	r2, #-16777216	; 0xff000000
+ffff4cac:	e59d1014 	ldr	r1, [sp, #20]
+ffff4cb0:	e0021c01 	and	r1, r2, r1, lsl #24
+ffff4cb4:	e1800001 	orr	r0, r0, r1
+ffff4cb8:	e584002c 	str	r0, [r4, #44]	; 0x2c
+ffff4cbc:	e30f2f00 	movw	r2, #65280	; 0xff00
+ffff4cc0:	e59d1018 	ldr	r1, [sp, #24]
+ffff4cc4:	e0021421 	and	r1, r2, r1, lsr #8
+ffff4cc8:	e59d0018 	ldr	r0, [sp, #24]
+ffff4ccc:	e1810c20 	orr	r0, r1, r0, lsr #24
+ffff4cd0:	e3a028ff 	mov	r2, #16711680	; 0xff0000
+ffff4cd4:	e59d1018 	ldr	r1, [sp, #24]
+ffff4cd8:	e0021401 	and	r1, r2, r1, lsl #8
+ffff4cdc:	e1800001 	orr	r0, r0, r1
+ffff4ce0:	e3a024ff 	mov	r2, #-16777216	; 0xff000000
+ffff4ce4:	e59d1018 	ldr	r1, [sp, #24]
+ffff4ce8:	e0021c01 	and	r1, r2, r1, lsl #24
+ffff4cec:	e1800001 	orr	r0, r0, r1
+ffff4cf0:	e5840030 	str	r0, [r4, #48]	; 0x30
+ffff4cf4:	e594002c 	ldr	r0, [r4, #44]	; 0x2c
+ffff4cf8:	e7e30c50 	ubfx	r0, r0, #24, #4
+ffff4cfc:	e3500000 	cmp	r0, #0
+ffff4d00:	0a000004 	beq	0xffff4d18
+ffff4d04:	e3500001 	cmp	r0, #1
+ffff4d08:	0a000006 	beq	0xffff4d28
+ffff4d0c:	e3500002 	cmp	r0, #2
+ffff4d10:	1a00000c 	bne	0xffff4d48
+ffff4d14:	ea000007 	b	0xffff4d38
+ffff4d18:	e320f000 	nop	{0}
+ffff4d1c:	e59f0770 	ldr	r0, [pc, #1904]	; 0xffff5494 =0x00020010
+ffff4d20:	e5840008 	str	r0, [r4, #8]
+ffff4d24:	ea00000b 	b	0xffff4d58
+ffff4d28:	e320f000 	nop	{0}
+ffff4d2c:	e59f0768 	ldr	r0, [pc, #1896]	; 0xffff549c =0x0002001a
+ffff4d30:	e5840008 	str	r0, [r4, #8]
+ffff4d34:	ea000007 	b	0xffff4d58
+ffff4d38:	e320f000 	nop	{0}
+ffff4d3c:	e59f075c 	ldr	r0, [pc, #1884]	; 0xffff54a0 =0x00020020
+ffff4d40:	e5840008 	str	r0, [r4, #8]
+ffff4d44:	ea000003 	b	0xffff4d58
+ffff4d48:	e320f000 	nop	{0}
+ffff4d4c:	e59f0740 	ldr	r0, [pc, #1856]	; 0xffff5494 =0x00020010
+ffff4d50:	e5840008 	str	r0, [r4, #8]
+ffff4d54:	e320f000 	nop	{0}
+ffff4d58:	e320f000 	nop	{0}
+ffff4d5c:	e594002c 	ldr	r0, [r4, #44]	; 0x2c
+ffff4d60:	e3100701 	tst	r0, #262144	; 0x40000
+ffff4d64:	0a000002 	beq	0xffff4d74
+ffff4d68:	e5940020 	ldr	r0, [r4, #32]
+ffff4d6c:	e3800c01 	orr	r0, r0, #256	; 0x100
+ffff4d70:	e5840020 	str	r0, [r4, #32]
+ffff4d74:	e3a00000 	mov	r0, #0
+ffff4d78:	eaffffa2 	b	0xffff4c08
+
+ffff4d7c:	e92d4070 	push	{r4, r5, r6, lr}
+ffff4d80:	e1a04000 	mov	r4, r0
+ffff4d84:	e1a05001 	mov	r5, r1
+ffff4d88:	e5940010 	ldr	r0, [r4, #16]
+ffff4d8c:	e1500005 	cmp	r0, r5
+ffff4d90:	2a000000 	bcs	0xffff4d98
+ffff4d94:	e5945010 	ldr	r5, [r4, #16]
+ffff4d98:	e594000c 	ldr	r0, [r4, #12]
+ffff4d9c:	e1500005 	cmp	r0, r5
+ffff4da0:	9a000000 	bls	0xffff4da8
+ffff4da4:	e594500c 	ldr	r5, [r4, #12]
+ffff4da8:	e584501c 	str	r5, [r4, #28]
+ffff4dac:	e1a00004 	mov	r0, r4
+ffff4db0:	ebfffb68 	bl	0xffff3b58
+ffff4db4:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff4db8:	e92d4070 	push	{r4, r5, r6, lr}
+ffff4dbc:	e1a04000 	mov	r4, r0
+ffff4dc0:	e1a05001 	mov	r5, r1
+ffff4dc4:	e5845018 	str	r5, [r4, #24]
+ffff4dc8:	e1a00004 	mov	r0, r4
+ffff4dcc:	ebfffb61 	bl	0xffff3b58
+ffff4dd0:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff4dd4:	e92d4070 	push	{r4, r5, r6, lr}
+ffff4dd8:	e24ddf8a 	sub	sp, sp, #552	; 0x228
+ffff4ddc:	e1a04000 	mov	r4, r0
+ffff4de0:	e30063e8 	movw	r6, #1000	; 0x3e8
+ffff4de4:	e3a00002 	mov	r0, #2
+ffff4de8:	e58d0204 	str	r0, [sp, #516]	; 0x204
+ffff4dec:	e3a00007 	mov	r0, #7
+ffff4df0:	e58d0208 	str	r0, [sp, #520]	; 0x208
+ffff4df4:	e3a00000 	mov	r0, #0
+ffff4df8:	e58d020c 	str	r0, [sp, #524]	; 0x20c
+ffff4dfc:	e58d0220 	str	r0, [sp, #544]	; 0x220
+ffff4e00:	e3a02000 	mov	r2, #0
+ffff4e04:	e28d1f81 	add	r1, sp, #516	; 0x204
+ffff4e08:	e1a00004 	mov	r0, r4
+ffff4e0c:	ebfffc6c 	bl	0xffff3fc4
+ffff4e10:	e1a05000 	mov	r5, r0
+ffff4e14:	e3550000 	cmp	r5, #0
+ffff4e18:	0a000002 	beq	0xffff4e28
+ffff4e1c:	e1a00005 	mov	r0, r5
+ffff4e20:	e28ddf8a 	add	sp, sp, #552	; 0x228
+ffff4e24:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff4e28:	e3a00003 	mov	r0, #3
+ffff4e2c:	e58d0204 	str	r0, [sp, #516]	; 0x204
+ffff4e30:	e5940034 	ldr	r0, [r4, #52]	; 0x34
+ffff4e34:	e1a00800 	lsl	r0, r0, #16
+ffff4e38:	e58d020c 	str	r0, [sp, #524]	; 0x20c
+ffff4e3c:	e3a00015 	mov	r0, #21
+ffff4e40:	e58d0208 	str	r0, [sp, #520]	; 0x208
+ffff4e44:	e3a00000 	mov	r0, #0
+ffff4e48:	e58d0220 	str	r0, [sp, #544]	; 0x220
+ffff4e4c:	e3a02000 	mov	r2, #0
+ffff4e50:	e28d1f81 	add	r1, sp, #516	; 0x204
+ffff4e54:	e1a00004 	mov	r0, r4
+ffff4e58:	ebfffc59 	bl	0xffff3fc4
+ffff4e5c:	e1a05000 	mov	r5, r0
+ffff4e60:	e3550000 	cmp	r5, #0
+ffff4e64:	0a000001 	beq	0xffff4e70
+ffff4e68:	e1a00005 	mov	r0, r5
+ffff4e6c:	eaffffeb 	b	0xffff4e20
+ffff4e70:	e5940008 	ldr	r0, [r4, #8]
+ffff4e74:	e3100802 	tst	r0, #131072	; 0x20000
+ffff4e78:	0a000003 	beq	0xffff4e8c
+ffff4e7c:	e30f1fff 	movw	r1, #65535	; 0xffff
+ffff4e80:	e59d0210 	ldr	r0, [sp, #528]	; 0x210
+ffff4e84:	e0010820 	and	r0, r1, r0, lsr #16
+ffff4e88:	e5840034 	str	r0, [r4, #52]	; 0x34
+ffff4e8c:	e59f1610 	ldr	r1, [pc, #1552]	; 0xffff54a4
+ffff4e90:	e1a00004 	mov	r0, r4
+ffff4e94:	ebffffb8 	bl	0xffff4d7c
+ffff4e98:	e3a00009 	mov	r0, #9
+ffff4e9c:	e58d0204 	str	r0, [sp, #516]	; 0x204
+ffff4ea0:	e3a00007 	mov	r0, #7
+ffff4ea4:	e58d0208 	str	r0, [sp, #520]	; 0x208
+ffff4ea8:	e5940034 	ldr	r0, [r4, #52]	; 0x34
+ffff4eac:	e1a00800 	lsl	r0, r0, #16
+ffff4eb0:	e58d020c 	str	r0, [sp, #524]	; 0x20c
+ffff4eb4:	e3a00000 	mov	r0, #0
+ffff4eb8:	e58d0220 	str	r0, [sp, #544]	; 0x220
+ffff4ebc:	e3a02000 	mov	r2, #0
+ffff4ec0:	e28d1f81 	add	r1, sp, #516	; 0x204
+ffff4ec4:	e1a00004 	mov	r0, r4
+ffff4ec8:	ebfffc3d 	bl	0xffff3fc4
+ffff4ecc:	e1a05000 	mov	r5, r0
+ffff4ed0:	e3550000 	cmp	r5, #0
+ffff4ed4:	0a000001 	beq	0xffff4ee0
+ffff4ed8:	e1a00005 	mov	r0, r5
+ffff4edc:	eaffffcf 	b	0xffff4e20
+ffff4ee0:	e1a01006 	mov	r1, r6
+ffff4ee4:	e1a00004 	mov	r0, r4
+ffff4ee8:	ebfffdbf 	bl	0xffff45ec
+ffff4eec:	e5940008 	ldr	r0, [r4, #8]
+ffff4ef0:	e3500801 	cmp	r0, #65536	; 0x10000
+ffff4ef4:	1a000023 	bne	0xffff4f88
+ffff4ef8:	e59d1210 	ldr	r1, [sp, #528]	; 0x210
+ffff4efc:	e7e30d51 	ubfx	r0, r1, #26, #4
+ffff4f00:	e3500005 	cmp	r0, #5
+ffff4f04:	308ff100 	addcc	pc, pc, r0, lsl #2
+ffff4f08:	ea000018 	b	0xffff4f70
+ffff4f0c:	ea000003 	b	0xffff4f20
+ffff4f10:	ea000006 	b	0xffff4f30
+ffff4f14:	ea000009 	b	0xffff4f40
+ffff4f18:	ea00000c 	b	0xffff4f50
+ffff4f1c:	ea00000f 	b	0xffff4f60
+ffff4f20:	e320f000 	nop	{0}
+ffff4f24:	e59f157c 	ldr	r1, [pc, #1404]	; 0xffff54a8
+ffff4f28:	e5841008 	str	r1, [r4, #8]
+ffff4f2c:	ea000013 	b	0xffff4f80
+ffff4f30:	e320f000 	nop	{0}
+ffff4f34:	e59f1570 	ldr	r1, [pc, #1392]	; 0xffff54ac
+ffff4f38:	e5841008 	str	r1, [r4, #8]
+ffff4f3c:	ea00000f 	b	0xffff4f80
+ffff4f40:	e320f000 	nop	{0}
+ffff4f44:	e59f1564 	ldr	r1, [pc, #1380]	; 0xffff54b0
+ffff4f48:	e5841008 	str	r1, [r4, #8]
+ffff4f4c:	ea00000b 	b	0xffff4f80
+ffff4f50:	e320f000 	nop	{0}
+ffff4f54:	e59f1558 	ldr	r1, [pc, #1368]	; 0xffff54b4
+ffff4f58:	e5841008 	str	r1, [r4, #8]
+ffff4f5c:	ea000007 	b	0xffff4f80
+ffff4f60:	e320f000 	nop	{0}
+ffff4f64:	e59f152c 	ldr	r1, [pc, #1324]	; 0xffff5498 =0x00010040
+ffff4f68:	e5841008 	str	r1, [r4, #8]
+ffff4f6c:	ea000003 	b	0xffff4f80
+ffff4f70:	e320f000 	nop	{0}
+ffff4f74:	e59f152c 	ldr	r1, [pc, #1324]	; 0xffff54a8
+ffff4f78:	e5841008 	str	r1, [r4, #8]
+ffff4f7c:	e320f000 	nop	{0}
+ffff4f80:	e320f000 	nop	{0}
+ffff4f84:	e320f000 	nop	{0}
+ffff4f88:	e59d0214 	ldr	r0, [sp, #532]	; 0x214
+ffff4f8c:	e7e30850 	ubfx	r0, r0, #16, #4
+ffff4f90:	e3a01001 	mov	r1, #1
+ffff4f94:	e1a00011 	lsl	r0, r1, r0
+ffff4f98:	e5840044 	str	r0, [r4, #68]	; 0x44
+ffff4f9c:	e5940044 	ldr	r0, [r4, #68]	; 0x44
+ffff4fa0:	e3500c02 	cmp	r0, #512	; 0x200
+ffff4fa4:	9a000001 	bls	0xffff4fb0
+ffff4fa8:	e3000200 	movw	r0, #512	; 0x200
+ffff4fac:	e5840044 	str	r0, [r4, #68]	; 0x44
+ffff4fb0:	e3a00007 	mov	r0, #7
+ffff4fb4:	e58d0204 	str	r0, [sp, #516]	; 0x204
+ffff4fb8:	e3a0001d 	mov	r0, #29
+ffff4fbc:	e58d0208 	str	r0, [sp, #520]	; 0x208
+ffff4fc0:	e5940034 	ldr	r0, [r4, #52]	; 0x34
+ffff4fc4:	e1a00800 	lsl	r0, r0, #16
+ffff4fc8:	e58d020c 	str	r0, [sp, #524]	; 0x20c
+ffff4fcc:	e3a00000 	mov	r0, #0
+ffff4fd0:	e58d0220 	str	r0, [sp, #544]	; 0x220
+ffff4fd4:	e3a02000 	mov	r2, #0
+ffff4fd8:	e28d1f81 	add	r1, sp, #516	; 0x204
+ffff4fdc:	e1a00004 	mov	r0, r4
+ffff4fe0:	ebfffbf7 	bl	0xffff3fc4
+ffff4fe4:	e1a05000 	mov	r5, r0
+ffff4fe8:	e3550000 	cmp	r5, #0
+ffff4fec:	0a000001 	beq	0xffff4ff8
+ffff4ff0:	e1a00005 	mov	r0, r5
+ffff4ff4:	eaffff89 	b	0xffff4e20
+ffff4ff8:	e3a000ff 	mov	r0, #255	; 0xff
+ffff4ffc:	e5840038 	str	r0, [r4, #56]	; 0x38
+ffff5000:	e584003c 	str	r0, [r4, #60]	; 0x3c
+ffff5004:	e5940008 	ldr	r0, [r4, #8]
+ffff5008:	e3100802 	tst	r0, #131072	; 0x20000
+ffff500c:	1a000036 	bne	0xffff50ec
+ffff5010:	e5940008 	ldr	r0, [r4, #8]
+ffff5014:	e59f147c 	ldr	r1, [pc, #1148]	; 0xffff5498 =0x00010040
+ffff5018:	e1500001 	cmp	r0, r1
+ffff501c:	3a000032 	bcc	0xffff50ec
+ffff5020:	e28d1004 	add	r1, sp, #4
+ffff5024:	e1a00004 	mov	r0, r4
+ffff5028:	ebfffe74 	bl	0xffff4a00
+ffff502c:	e1a05000 	mov	r5, r0
+ffff5030:	e5dd00c4 	ldrb	r0, [sp, #196]	; 0xc4
+ffff5034:	e3500007 	cmp	r0, #7
+ffff5038:	308ff100 	addcc	pc, pc, r0, lsl #2
+ffff503c:	ea00001e 	b	0xffff50bc
+ffff5040:	ea000005 	b	0xffff505c
+ffff5044:	ea000008 	b	0xffff506c
+ffff5048:	ea00000b 	b	0xffff507c
+ffff504c:	ea00000e 	b	0xffff508c
+ffff5050:	ea000019 	b	0xffff50bc
+ffff5054:	ea000010 	b	0xffff509c
+ffff5058:	ea000013 	b	0xffff50ac
+ffff505c:	e320f000 	nop	{0}
+ffff5060:	e59f0430 	ldr	r0, [pc, #1072]	; 0xffff5498 =0x00010040
+ffff5064:	e5840008 	str	r0, [r4, #8]
+ffff5068:	ea000013 	b	0xffff50bc
+ffff506c:	e320f000 	nop	{0}
+ffff5070:	e59f0440 	ldr	r0, [pc, #1088]	; 0xffff54b8
+ffff5074:	e5840008 	str	r0, [r4, #8]
+ffff5078:	ea00000f 	b	0xffff50bc
+ffff507c:	e320f000 	nop	{0}
+ffff5080:	e59f0434 	ldr	r0, [pc, #1076]	; 0xffff54bc
+ffff5084:	e5840008 	str	r0, [r4, #8]
+ffff5088:	ea00000b 	b	0xffff50bc
+ffff508c:	e320f000 	nop	{0}
+ffff5090:	e59f0428 	ldr	r0, [pc, #1064]	; 0xffff54c0
+ffff5094:	e5840008 	str	r0, [r4, #8]
+ffff5098:	ea000007 	b	0xffff50bc
+ffff509c:	e320f000 	nop	{0}
+ffff50a0:	e59f041c 	ldr	r0, [pc, #1052]	; 0xffff54c4
+ffff50a4:	e5840008 	str	r0, [r4, #8]
+ffff50a8:	ea000003 	b	0xffff50bc
+ffff50ac:	e320f000 	nop	{0}
+ffff50b0:	e59f0410 	ldr	r0, [pc, #1040]	; 0xffff54c8
+ffff50b4:	e5840008 	str	r0, [r4, #8]
+ffff50b8:	e320f000 	nop	{0}
+ffff50bc:	e320f000 	nop	{0}
+ffff50c0:	e5dd00a4 	ldrb	r0, [sp, #164]	; 0xa4
+ffff50c4:	e3100001 	tst	r0, #1
+ffff50c8:	0a000001 	beq	0xffff50d4
+ffff50cc:	e5dd00b7 	ldrb	r0, [sp, #183]	; 0xb7
+ffff50d0:	e5840038 	str	r0, [r4, #56]	; 0x38
+ffff50d4:	e5940008 	ldr	r0, [r4, #8]
+ffff50d8:	e59f13e0 	ldr	r1, [pc, #992]	; 0xffff54c0
+ffff50dc:	e1500001 	cmp	r0, r1
+ffff50e0:	3a000001 	bcc	0xffff50ec
+ffff50e4:	e5dd00b5 	ldrb	r0, [sp, #181]	; 0xb5
+ffff50e8:	e584003c 	str	r0, [r4, #60]	; 0x3c
+ffff50ec:	e5940008 	ldr	r0, [r4, #8]
+ffff50f0:	e3100802 	tst	r0, #131072	; 0x20000
+ffff50f4:	0a000003 	beq	0xffff5108
+ffff50f8:	e1a00004 	mov	r0, r4
+ffff50fc:	ebfffeab 	bl	0xffff4bb0
+ffff5100:	e1a05000 	mov	r5, r0
+ffff5104:	ea000003 	b	0xffff5118
+ffff5108:	e28d1004 	add	r1, sp, #4
+ffff510c:	e1a00004 	mov	r0, r4
+ffff5110:	ebfffe70 	bl	0xffff4ad8
+ffff5114:	e1a05000 	mov	r5, r0
+ffff5118:	e3550000 	cmp	r5, #0
+ffff511c:	0a000001 	beq	0xffff5128
+ffff5120:	e1a00005 	mov	r0, r5
+ffff5124:	eaffff3d 	b	0xffff4e20
+ffff5128:	e1c402d0 	ldrd	r0, [r4, #32]
+ffff512c:	e0000001 	and	r0, r0, r1
+ffff5130:	e5840020 	str	r0, [r4, #32]
+ffff5134:	e5940008 	ldr	r0, [r4, #8]
+ffff5138:	e3100802 	tst	r0, #131072	; 0x20000
+ffff513c:	0a000033 	beq	0xffff5210
+ffff5140:	e5940020 	ldr	r0, [r4, #32]
+ffff5144:	e3100c01 	tst	r0, #256	; 0x100
+ffff5148:	0a000025 	beq	0xffff51e4
+ffff514c:	e3a00037 	mov	r0, #55	; 0x37
+ffff5150:	e58d0204 	str	r0, [sp, #516]	; 0x204
+ffff5154:	e3a00015 	mov	r0, #21
+ffff5158:	e58d0208 	str	r0, [sp, #520]	; 0x208
+ffff515c:	e5940034 	ldr	r0, [r4, #52]	; 0x34
+ffff5160:	e1a00800 	lsl	r0, r0, #16
+ffff5164:	e58d020c 	str	r0, [sp, #524]	; 0x20c
+ffff5168:	e3a00000 	mov	r0, #0
+ffff516c:	e58d0220 	str	r0, [sp, #544]	; 0x220
+ffff5170:	e3a02000 	mov	r2, #0
+ffff5174:	e28d1f81 	add	r1, sp, #516	; 0x204
+ffff5178:	e1a00004 	mov	r0, r4
+ffff517c:	ebfffb90 	bl	0xffff3fc4
+ffff5180:	e1a05000 	mov	r5, r0
+ffff5184:	e3550000 	cmp	r5, #0
+ffff5188:	0a000001 	beq	0xffff5194
+ffff518c:	e1a00005 	mov	r0, r5
+ffff5190:	eaffff22 	b	0xffff4e20
+ffff5194:	e3a00006 	mov	r0, #6
+ffff5198:	e58d0204 	str	r0, [sp, #516]	; 0x204
+ffff519c:	e3a00015 	mov	r0, #21
+ffff51a0:	e58d0208 	str	r0, [sp, #520]	; 0x208
+ffff51a4:	e3a00002 	mov	r0, #2
+ffff51a8:	e58d020c 	str	r0, [sp, #524]	; 0x20c
+ffff51ac:	e3a00000 	mov	r0, #0
+ffff51b0:	e58d0220 	str	r0, [sp, #544]	; 0x220
+ffff51b4:	e3a02000 	mov	r2, #0
+ffff51b8:	e28d1f81 	add	r1, sp, #516	; 0x204
+ffff51bc:	e1a00004 	mov	r0, r4
+ffff51c0:	ebfffb7f 	bl	0xffff3fc4
+ffff51c4:	e1a05000 	mov	r5, r0
+ffff51c8:	e3550000 	cmp	r5, #0
+ffff51cc:	0a000001 	beq	0xffff51d8
+ffff51d0:	e1a00005 	mov	r0, r5
+ffff51d4:	eaffff11 	b	0xffff4e20
+ffff51d8:	e3a01004 	mov	r1, #4
+ffff51dc:	e1a00004 	mov	r0, r4
+ffff51e0:	ebfffef4 	bl	0xffff4db8
+ffff51e4:	e5940020 	ldr	r0, [r4, #32]
+ffff51e8:	e3100001 	tst	r0, #1
+ffff51ec:	0a000003 	beq	0xffff5200
+ffff51f0:	e59f12d4 	ldr	r1, [pc, #724]	; 0xffff54cc
+ffff51f4:	e1a00004 	mov	r0, r4
+ffff51f8:	ebfffedf 	bl	0xffff4d7c
+ffff51fc:	ea000035 	b	0xffff52d8
+ffff5200:	e59f12c8 	ldr	r1, [pc, #712]	; 0xffff54d0
+ffff5204:	e1a00004 	mov	r0, r4
+ffff5208:	ebfffedb 	bl	0xffff4d7c
+ffff520c:	ea000031 	b	0xffff52d8
+ffff5210:	e5940020 	ldr	r0, [r4, #32]
+ffff5214:	e3100c01 	tst	r0, #256	; 0x100
+ffff5218:	0a00000d 	beq	0xffff5254
+ffff521c:	e3a03001 	mov	r3, #1
+ffff5220:	e3a020b7 	mov	r2, #183	; 0xb7
+ffff5224:	e1a01003 	mov	r1, r3
+ffff5228:	e1a00004 	mov	r0, r4
+ffff522c:	ebfffe0d 	bl	0xffff4a68
+ffff5230:	e1a05000 	mov	r5, r0
+ffff5234:	e3550000 	cmp	r5, #0
+ffff5238:	0a000001 	beq	0xffff5244
+ffff523c:	e1a00005 	mov	r0, r5
+ffff5240:	eafffef6 	b	0xffff4e20
+ffff5244:	e3a01004 	mov	r1, #4
+ffff5248:	e1a00004 	mov	r0, r4
+ffff524c:	ebfffed9 	bl	0xffff4db8
+ffff5250:	ea00000f 	b	0xffff5294
+ffff5254:	e5940020 	ldr	r0, [r4, #32]
+ffff5258:	e3100c02 	tst	r0, #512	; 0x200
+ffff525c:	0a00000c 	beq	0xffff5294
+ffff5260:	e3a03002 	mov	r3, #2
+ffff5264:	e3a020b7 	mov	r2, #183	; 0xb7
+ffff5268:	e3a01001 	mov	r1, #1
+ffff526c:	e1a00004 	mov	r0, r4
+ffff5270:	ebfffdfc 	bl	0xffff4a68
+ffff5274:	e1a05000 	mov	r5, r0
+ffff5278:	e3550000 	cmp	r5, #0
+ffff527c:	0a000001 	beq	0xffff5288
+ffff5280:	e1a00005 	mov	r0, r5
+ffff5284:	eafffee5 	b	0xffff4e20
+ffff5288:	e3a01008 	mov	r1, #8
+ffff528c:	e1a00004 	mov	r0, r4
+ffff5290:	ebfffec8 	bl	0xffff4db8
+ffff5294:	e5940020 	ldr	r0, [r4, #32]
+ffff5298:	e3100001 	tst	r0, #1
+ffff529c:	0a00000a 	beq	0xffff52cc
+ffff52a0:	e5940020 	ldr	r0, [r4, #32]
+ffff52a4:	e3100010 	tst	r0, #16
+ffff52a8:	0a000003 	beq	0xffff52bc
+ffff52ac:	e59f1220 	ldr	r1, [pc, #544]	; 0xffff54d4
+ffff52b0:	e1a00004 	mov	r0, r4
+ffff52b4:	ebfffeb0 	bl	0xffff4d7c
+ffff52b8:	ea000006 	b	0xffff52d8
+ffff52bc:	e59f1214 	ldr	r1, [pc, #532]	; 0xffff54d8
+ffff52c0:	e1a00004 	mov	r0, r4
+ffff52c4:	ebfffeac 	bl	0xffff4d7c
+ffff52c8:	ea000002 	b	0xffff52d8
+ffff52cc:	e59f1208 	ldr	r1, [pc, #520]	; 0xffff54dc
+ffff52d0:	e1a00004 	mov	r0, r4
+ffff52d4:	ebfffea8 	bl	0xffff4d7c
+ffff52d8:	e3a00000 	mov	r0, #0
+ffff52dc:	eafffecf 	b	0xffff4e20
+
+ffff52e0:	e92d4030 	push	{r4, r5, lr}
+ffff52e4:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff52e8:	e1a04000 	mov	r4, r0
+ffff52ec:	e3a00008 	mov	r0, #8
+ffff52f0:	e58d0000 	str	r0, [sp]
+ffff52f4:	e5940004 	ldr	r0, [r4, #4]
+ffff52f8:	e59f1190 	ldr	r1, [pc, #400]	; 0xffff5490 =0x00ff8000
+ffff52fc:	e1100001 	tst	r0, r1
+ffff5300:	0a000001 	beq	0xffff530c
+ffff5304:	e3a00001 	mov	r0, #1
+ffff5308:	ea000000 	b	0xffff5310
+ffff530c:	e3a00000 	mov	r0, #0
+ffff5310:	e3a010aa 	mov	r1, #170	; 0xaa
+ffff5314:	e1810400 	orr	r0, r1, r0, lsl #8
+ffff5318:	e58d0008 	str	r0, [sp, #8]
+ffff531c:	e3a00015 	mov	r0, #21
+ffff5320:	e58d0004 	str	r0, [sp, #4]
+ffff5324:	e3a00000 	mov	r0, #0
+ffff5328:	e58d001c 	str	r0, [sp, #28]
+ffff532c:	e3a02000 	mov	r2, #0
+ffff5330:	e1a0100d 	mov	r1, sp
+ffff5334:	e1a00004 	mov	r0, r4
+ffff5338:	ebfffb21 	bl	0xffff3fc4
+ffff533c:	e1a05000 	mov	r5, r0
+ffff5340:	e3550000 	cmp	r5, #0
+ffff5344:	0a000002 	beq	0xffff5354
+ffff5348:	e1a00005 	mov	r0, r5
+ffff534c:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff5350:	e8bd8030 	pop	{r4, r5, pc}
+
+ffff5354:	e59d000c 	ldr	r0, [sp, #12]
+ffff5358:	e20000ff 	and	r0, r0, #255	; 0xff
+ffff535c:	e35000aa 	cmp	r0, #170	; 0xaa
+ffff5360:	0a000001 	beq	0xffff536c
+ffff5364:	e3e00010 	mvn	r0, #16
+ffff5368:	eafffff7 	b	0xffff534c
+ffff536c:	e59f012c 	ldr	r0, [pc, #300]	; 0xffff54a0 =0x00020020
+ffff5370:	e5840008 	str	r0, [r4, #8]
+ffff5374:	e3a00000 	mov	r0, #0
+ffff5378:	eafffff3 	b	0xffff534c
+
+ffff537c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff5380:	e24dd038 	sub	sp, sp, #56	; 0x38
+ffff5384:	e1a04000 	mov	r4, r0
+ffff5388:	e1a08001 	mov	r8, r1
+ffff538c:	e1a06002 	mov	r6, r2
+ffff5390:	e1a05003 	mov	r5, r3
+ffff5394:	e3550000 	cmp	r5, #0
+ffff5398:	0a000004 	beq	0xffff53b0
+
+ffff539c:	e3a00012 	mov	r0, #18
+ffff53a0:	e58d0014 	str	r0, [sp, #20]
+ffff53a4:	e3a00000 	mov	r0, #0
+ffff53a8:	e58d0034 	str	r0, [sp, #52]	; 0x34
+ffff53ac:	ea000002 	b	0xffff53bc
+
+ffff53b0:	e3a00000 	mov	r0, #0
+
+ffff53b4:	e28dd038 	add	sp, sp, #56	; 0x38
+ffff53b8:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff53bc:	e5940014 	ldr	r0, [r4, #20]
+ffff53c0:	e3500000 	cmp	r0, #0
+ffff53c4:	0a000001 	beq	0xffff53d0
+
+ffff53c8:	e58d601c 	str	r6, [sp, #28]
+ffff53cc:	ea000002 	b	0xffff53dc
+
+ffff53d0:	e5940044 	ldr	r0, [r4, #68]	; 0x44
+ffff53d4:	e0000690 	mul	r0, r0, r6
+ffff53d8:	e58d001c 	str	r0, [sp, #28]
+
+ffff53dc:	e3a00015 	mov	r0, #21
+ffff53e0:	e58d0018 	str	r0, [sp, #24]
+ffff53e4:	e3a00000 	mov	r0, #0
+ffff53e8:	e58d0030 	str	r0, [sp, #48]	; 0x30
+ffff53ec:	e58d8004 	str	r8, [sp, #4]
+ffff53f0:	e58d500c 	str	r5, [sp, #12]
+ffff53f4:	e5940044 	ldr	r0, [r4, #68]	; 0x44
+ffff53f8:	e58d0010 	str	r0, [sp, #16]
+ffff53fc:	e3a00001 	mov	r0, #1
+ffff5400:	e58d0008 	str	r0, [sp, #8]
+ffff5404:	e28d2004 	add	r2, sp, #4
+ffff5408:	e28d1014 	add	r1, sp, #20
+ffff540c:	e1a00004 	mov	r0, r4
+ffff5410:	ebfffaeb 	bl	0xffff3fc4
+ffff5414:	e1a07000 	mov	r7, r0
+ffff5418:	e59d0014 	ldr	r0, [sp, #20]
+ffff541c:	e3500012 	cmp	r0, #18
+ffff5420:	1a000011 	bne	0xffff546c
+
+ffff5424:	e59d0034 	ldr	r0, [sp, #52]	; 0x34
+ffff5428:	e3500000 	cmp	r0, #0
+
+ffff542c:	1a00000e 	bne	0xffff546c
+ffff5430:	e3a0000c 	mov	r0, #12
+ffff5434:	e58d0014 	str	r0, [sp, #20]
+ffff5438:	e3a0001d 	mov	r0, #29
+ffff543c:	e58d0018 	str	r0, [sp, #24]
+ffff5440:	e3a00000 	mov	r0, #0
+ffff5444:	e58d001c 	str	r0, [sp, #28]
+ffff5448:	e58d0030 	str	r0, [sp, #48]	; 0x30
+ffff544c:	e3a02000 	mov	r2, #0
+ffff5450:	e28d1014 	add	r1, sp, #20
+ffff5454:	e1a00004 	mov	r0, r4
+ffff5458:	ebfffad9 	bl	0xffff3fc4
+ffff545c:	e3500000 	cmp	r0, #0
+ffff5460:	0a000001 	beq	0xffff546c
+ffff5464:	e3a00000 	mov	r0, #0
+ffff5468:	eaffffd1 	b	0xffff53b4
+ffff546c:	e3570000 	cmp	r7, #0
+ffff5470:	0a000001 	beq	0xffff547c
+
+ffff5474:	e3a00000 	mov	r0, #0
+ffff5478:	eaffffcd 	b	0xffff53b4
+
+ffff547c:	e1a00005 	mov	r0, r5
+ffff5480:	eaffffcb 	b	0xffff53b4
+
+	;; Global Offset Table
+ffff5484:	fdf94080
+ffff5488:	f0f0f0f0
+ffff548c:	f0f0f0fa
+ffff5490:	00ff8000
+ffff5494:	00020010
+ffff5498:	00010040
+ffff549c:	0002001a
+ffff54a0:	00020020
+ffff54a4:	005b8d80
+ffff54a8:	00010012
+ffff54ac:	00010014
+ffff54b0:	00010022
+ffff54b4:	00010030
+ffff54b8:	00010041
+ffff54bc:	00010042
+ffff54c0:	00010043
+ffff54c4:	00010044
+ffff54c8:	00010045
+ffff54cc:	02faf080
+ffff54d0:	017d7840
+ffff54d4:	03197500
+ffff54d8:	018cba80
+ffff54dc:	01312d00
+
+ffff54e0:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}
+ffff54e4:	e1a05000 	mov	r5, r0
+ffff54e8:	e1a08001 	mov	r8, r1
+ffff54ec:	e1a06002 	mov	r6, r2
+ffff54f0:	e1a09003 	mov	r9, r3
+ffff54f4:	e1a07006 	mov	r7, r6
+ffff54f8:	e3560000 	cmp	r6, #0
+ffff54fc:	1a000001 	bne	0xffff5508
+
+ffff5500:	e3a00000 	mov	r0, #0
+
+ffff5504:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff5508:	e320f000 	nop	{0}
+
+ffff550c:	e5950048 	ldr	r0, [r5, #72]	; 0x48
+ffff5510:	e1500007 	cmp	r0, r7
+ffff5514:	2a000001 	bcs	0xffff5520
+
+ffff5518:	e5950048 	ldr	r0, [r5, #72]	; 0x48
+ffff551c:	ea000000 	b	0xffff5524
+
+ffff5520:	e1a00007 	mov	r0, r7
+ffff5524:	e1a04000 	mov	r4, r0
+ffff5528:	e1a03004 	mov	r3, r4
+ffff552c:	e1a02008 	mov	r2, r8
+ffff5530:	e1a01009 	mov	r1, r9
+ffff5534:	e1a00005 	mov	r0, r5
+ffff5538:	ebffff8f 	bl	0xffff537c
+ffff553c:	e1500004 	cmp	r0, r4
+ffff5540:	0a000001 	beq	0xffff554c
+
+ffff5544:	e3a00000 	mov	r0, #0
+ffff5548:	eaffffed 	b	0xffff5504
+
+ffff554c:	e0477004 	sub	r7, r7, r4
+ffff5550:	e0888004 	add	r8, r8, r4
+ffff5554:	e5950044 	ldr	r0, [r5, #68]	; 0x44
+ffff5558:	e0299094 	mla	r9, r4, r0, r9
+ffff555c:	e3570000 	cmp	r7, #0
+ffff5560:	1affffe9 	bne	0xffff550c
+
+ffff5564:	e1a00006 	mov	r0, r6
+ffff5568:	eaffffe5 	b	0xffff5504
+
+ffff556c:	e92d43f0 	push	{r4, r5, r6, r7, r8, r9, lr}
+ffff5570:	e24dd034 	sub	sp, sp, #52	; 0x34
+ffff5574:	e1a05000 	mov	r5, r0
+ffff5578:	e1a09001 	mov	r9, r1
+ffff557c:	e1a06002 	mov	r6, r2
+ffff5580:	e1a07003 	mov	r7, r3
+ffff5584:	e3a04000 	mov	r4, #0
+ffff5588:	e3a08001 	mov	r8, #1
+ffff558c:	e59f02a4 	ldr	r0, [pc, #676]	; 0xffff5838 = 0x00b71b00
+ffff5590:	e585001c 	str	r0, [r5, #28]
+ffff5594:	e320f000 	nop	{0}
+ffff5598:	e1a00005 	mov	r0, r5
+ffff559c:	ebfff95e 	bl	0xffff3b1c
+ffff55a0:	e1a00005 	mov	r0, r5
+ffff55a4:	ebfff96b 	bl	0xffff3b58
+ffff55a8:	e300012c 	movw	r0, #300	; 0x12c
+ffff55ac:	e3a01000 	mov	r1, #0
+ffff55b0:	ebfff847 	bl	0xffff36d4
+ffff55b4:	e1a00005 	mov	r0, r5
+ffff55b8:	ebfffc4e 	bl	0xffff46f8
+ffff55bc:	e3a00000 	mov	r0, #0
+ffff55c0:	e58d0010 	str	r0, [sp, #16]
+ffff55c4:	e58d0018 	str	r0, [sp, #24]
+ffff55c8:	e58d0014 	str	r0, [sp, #20]
+ffff55cc:	e3a00001 	mov	r0, #1
+ffff55d0:	e58d002c 	str	r0, [sp, #44]	; 0x2c
+ffff55d4:	e58d7000 	str	r7, [sp]
+ffff55d8:	e58d6008 	str	r6, [sp, #8]
+ffff55dc:	e3000200 	movw	r0, #512	; 0x200
+ffff55e0:	e58d000c 	str	r0, [sp, #12]
+ffff55e4:	e3a00001 	mov	r0, #1
+ffff55e8:	e58d0004 	str	r0, [sp, #4]
+ffff55ec:	e1a0200d 	mov	r2, sp
+ffff55f0:	e28d1010 	add	r1, sp, #16
+ffff55f4:	e1a00005 	mov	r0, r5
+ffff55f8:	ebfffa71 	bl	0xffff3fc4
+ffff55fc:	e1a04000 	mov	r4, r0
+ffff5600:	e3740005 	cmn	r4, #5
+ffff5604:	0a000001 	beq	0xffff5610
+ffff5608:	e3740006 	cmn	r4, #6
+ffff560c:	1a000002 	bne	0xffff561c
+ffff5610:	e1a00004 	mov	r0, r4
+ffff5614:	e28dd034 	add	sp, sp, #52	; 0x34
+ffff5618:	e8bd83f0 	pop	{r4, r5, r6, r7, r8, r9, pc}
+
+ffff561c:	e3540000 	cmp	r4, #0
+ffff5620:	0a000008 	beq	0xffff5648
+ffff5624:	e3580000 	cmp	r8, #0
+ffff5628:	0a000006 	beq	0xffff5648
+ffff562c:	e3a08000 	mov	r8, #0
+ffff5630:	e51f0194 	ldr	r0, [pc, #-404]	; 0xffff54a4 =0x005b8d80
+ffff5634:	e585001c 	str	r0, [r5, #28]
+ffff5638:	e3a00001 	mov	r0, #1
+ffff563c:	e3a01000 	mov	r1, #0
+ffff5640:	ebfff839 	bl	0xffff372c
+ffff5644:	eaffffd3 	b	0xffff5598
+ffff5648:	e3540000 	cmp	r4, #0
+ffff564c:	0a000001 	beq	0xffff5658
+ffff5650:	e1a00004 	mov	r0, r4
+ffff5654:	eaffffee 	b	0xffff5614
+ffff5658:	e1a00006 	mov	r0, r6
+ffff565c:	eaffffec 	b	0xffff5614
+
+ffff5660:	e92d4070 	push	{r4, r5, r6, lr}
+ffff5664:	e1a05000 	mov	r5, r0
+ffff5668:	e3a04000 	mov	r4, #0
+ffff566c:	e1a00005 	mov	r0, r5
+ffff5670:	ebfff957 	bl	0xffff3bd4
+ffff5674:	e1a04000 	mov	r4, r0
+ffff5678:	e3540000 	cmp	r4, #0
+ffff567c:	0a000001 	beq	0xffff5688
+ffff5680:	e1a00004 	mov	r0, r4
+ffff5684:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff5688:	e1a00005 	mov	r0, r5
+ffff568c:	ebfff922 	bl	0xffff3b1c
+ffff5690:	e59f01a4 	ldr	r0, [pc, #420]	; 0xffff583c =0x00061a80
+ffff5694:	e585001c 	str	r0, [r5, #28]
+ffff5698:	e3a00001 	mov	r0, #1
+ffff569c:	e5850018 	str	r0, [r5, #24]
+ffff56a0:	e1a00005 	mov	r0, r5
+ffff56a4:	ebfff92b 	bl	0xffff3b58
+ffff56a8:	e300012c 	movw	r0, #300	; 0x12c
+ffff56ac:	e3a01000 	mov	r1, #0
+ffff56b0:	ebfff807 	bl	0xffff36d4
+ffff56b4:	e1a00005 	mov	r0, r5
+ffff56b8:	ebfffbfa 	bl	0xffff46a8
+ffff56bc:	e1a04000 	mov	r4, r0
+ffff56c0:	e3540000 	cmp	r4, #0
+ffff56c4:	0a000001 	beq	0xffff56d0
+ffff56c8:	e1a00004 	mov	r0, r4
+ffff56cc:	eaffffec 	b	0xffff5684
+ffff56d0:	e3a00000 	mov	r0, #0
+ffff56d4:	e5850040 	str	r0, [r5, #64]	; 0x40
+ffff56d8:	e1a00005 	mov	r0, r5
+ffff56dc:	ebfffeff 	bl	0xffff52e0
+ffff56e0:	e1a00005 	mov	r0, r5
+ffff56e4:	ebfffc2c 	bl	0xffff479c
+ffff56e8:	e1a04000 	mov	r4, r0
+ffff56ec:	e3540000 	cmp	r4, #0
+ffff56f0:	0a000006 	beq	0xffff5710
+ffff56f4:	e1a00005 	mov	r0, r5
+ffff56f8:	ebfffc71 	bl	0xffff48c4
+ffff56fc:	e1a04000 	mov	r4, r0
+ffff5700:	e3540000 	cmp	r4, #0
+ffff5704:	0a000001 	beq	0xffff5710
+ffff5708:	e3e00010 	mvn	r0, #16
+ffff570c:	eaffffdc 	b	0xffff5684
+ffff5710:	e1a00004 	mov	r0, r4
+ffff5714:	eaffffda 	b	0xffff5684
+
+ffff5718:	e92d4070 	push	{r4, r5, r6, lr} ; r0 = card_no, r1 = structure
+ffff571c:	e1a06000 	mov	r6, r0
+ffff5720:	e1a04001 	mov	r4, r1
+ffff5724:	e3e05000 	mvn	r5, #0
+ffff5728:	e1a01004 	mov	r1, r4
+ffff572c:	e1a00006 	mov	r0, r6
+ffff5730:	ebfffb88 	bl	0xffff4558
+ffff5734:	e1a05000 	mov	r5, r0
+ffff5738:	e3550000 	cmp	r5, #0
+ffff573c:	0a000001 	beq	0xffff5748
+
+ffff5740:	e3e00000 	mvn	r0, #0
+
+ffff5744:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff5748:	e300012c 	movw	r0, #300	; 0x12c
+ffff574c:	e5840048 	str	r0, [r4, #72]	; 0x48
+ffff5750:	e1a00004 	mov	r0, r4
+ffff5754:	ebffffc1 	bl	0xffff5660
+ffff5758:	e1a05000 	mov	r5, r0
+ffff575c:	e3550000 	cmp	r5, #0
+ffff5760:	0a000001 	beq	0xffff576c
+
+ffff5764:	e3e00000 	mvn	r0, #0
+ffff5768:	eafffff5 	b	0xffff5744
+
+ffff576c:	e1a00004 	mov	r0, r4
+ffff5770:	ebfffd97 	bl	0xffff4dd4
+ffff5774:	e1a05000 	mov	r5, r0
+ffff5778:	e3550000 	cmp	r5, #0
+ffff577c:	0a000001 	beq	0xffff5788
+
+ffff5780:	e3e00000 	mvn	r0, #0
+ffff5784:	eaffffee 	b	0xffff5744
+
+ffff5788:	e3a00000 	mov	r0, #0
+ffff578c:	eaffffec 	b	0xffff5744
+
+ffff5790:	e92d4070 	push	{r4, r5, r6, lr}
+ffff5794:	e1a06000 	mov	r6, r0
+ffff5798:	e1a04001 	mov	r4, r1
+ffff579c:	e3e05000 	mvn	r5, #0
+ffff57a0:	e1a01004 	mov	r1, r4
+ffff57a4:	e1a00006 	mov	r0, r6
+ffff57a8:	ebfffb6a 	bl	0xffff4558
+ffff57ac:	e1a05000 	mov	r5, r0
+ffff57b0:	e3550000 	cmp	r5, #0
+ffff57b4:	0a000001 	beq	0xffff57c0
+ffff57b8:	e3e00000 	mvn	r0, #0
+ffff57bc:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff57c0:	e300012c 	movw	r0, #300	; 0x12c
+ffff57c4:	e5840048 	str	r0, [r4, #72]	; 0x48
+ffff57c8:	e1a00004 	mov	r0, r4
+ffff57cc:	ebfff900 	bl	0xffff3bd4
+ffff57d0:	e1a05000 	mov	r5, r0
+ffff57d4:	e3550000 	cmp	r5, #0
+ffff57d8:	0a000001 	beq	0xffff57e4
+ffff57dc:	e1a00005 	mov	r0, r5
+ffff57e0:	eafffff5 	b	0xffff57bc
+ffff57e4:	e1a00004 	mov	r0, r4
+ffff57e8:	ebfff8cb 	bl	0xffff3b1c
+ffff57ec:	e59f0044 	ldr	r0, [pc, #68]	; 0xffff5838 =0x00b71b00
+ffff57f0:	e584001c 	str	r0, [r4, #28]
+ffff57f4:	e3a00004 	mov	r0, #4
+ffff57f8:	e5840018 	str	r0, [r4, #24]
+ffff57fc:	e1a00004 	mov	r0, r4
+ffff5800:	ebfff8d4 	bl	0xffff3b58
+ffff5804:	e300012c 	movw	r0, #300	; 0x12c
+ffff5808:	e3a01000 	mov	r1, #0
+ffff580c:	ebfff7b0 	bl	0xffff36d4
+ffff5810:	e3a00000 	mov	r0, #0
+ffff5814:	eaffffe8 	b	0xffff57bc
+
+ffff5818:	e92d4070 	push	{r4, r5, r6, lr}
+ffff581c:	e1a04000 	mov	r4, r0
+ffff5820:	e1a05001 	mov	r5, r1
+ffff5824:	e1a01005 	mov	r1, r5
+ffff5828:	e1a00004 	mov	r0, r4
+ffff582c:	ebfffb64 	bl	0xffff45c4
+ffff5830:	e3a00000 	mov	r0, #0
+ffff5834:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+	;; Global Offset Table
+ffff5838:	00b71b00
+ffff583c:	00061a80
+
+ffff5840:	e59f06e8 	ldr	r0, [pc, #1768]	; 0xffff5f30 =0x77773333
+ffff5844:	e59f16e8 	ldr	r1, [pc, #1768]	; 0xffff5f34 =0x01c20848
+ffff5848:	e5810000 	str	r0, [r1]
+ffff584c:	e3a00010 	mov	r0, #16
+ffff5850:	e281101c 	add	r1, r1, #28
+ffff5854:	e5810000 	str	r0, [r1]
+ffff5858:	e12fff1e 	bx	lr
+ffff585c:	e59f06d4 	ldr	r0, [pc, #1748]	; 0xffff5f38 =0x77777777
+ffff5860:	e59f16cc 	ldr	r1, [pc, #1740]	; 0xffff5f34 =0x01c20848
+ffff5864:	e5810000 	str	r0, [r1]
+ffff5868:	e3a00000 	mov	r0, #0
+ffff586c:	e281101c 	add	r1, r1, #28
+ffff5870:	e5810000 	str	r0, [r1]
+ffff5874:	e12fff1e 	bx	lr
+
+ffff5878:	e92d4010 	push	{r4, lr}
+ffff587c:	e59f06b8 	ldr	r0, [pc, #1720]	; 0xffff5f3c =0x01c20000 SCU_BASE
+ffff5880:	e59002c0 	ldr	r0, [r0, #704]	; 0x2c0
+ffff5884:	e3800601 	orr	r0, r0, #1048576	; 0x100000
+ffff5888:	e59f16ac 	ldr	r1, [pc, #1708]	; 0xffff5f3c =0x01c20000 SCU_BASE
+ffff588c:	e58102c0 	str	r0, [r1, #704]	; 0x2c0
+ffff5890:	e1a00001 	mov	r0, r1
+ffff5894:	e5900060 	ldr	r0, [r0, #96]	; 0x60
+ffff5898:	e3800601 	orr	r0, r0, #1048576	; 0x100000
+ffff589c:	e5810060 	str	r0, [r1, #96]	; 0x60
+ffff58a0:	e3a00102 	mov	r0, #-2147483648	; 0x80000000
+ffff58a4:	e58100a0 	str	r0, [r1, #160]	; 0xa0
+ffff58a8:	ebffffe4 	bl	0xffff5840
+ffff58ac:	e59f0688 	ldr	r0, [pc, #1672]	; 0xffff5f3c =0x01c20000 SCU_BASE
+ffff58b0:	e59002c0 	ldr	r0, [r0, #704]	; 0x2c0
+ffff58b4:	e3800040 	orr	r0, r0, #64	; 0x40
+ffff58b8:	e59f167c 	ldr	r1, [pc, #1660]	; 0xffff5f3c =0x01c20000 SCU_BASE
+ffff58bc:	e58102c0 	str	r0, [r1, #704]	; 0x2c0
+ffff58c0:	e1a00001 	mov	r0, r1
+ffff58c4:	e5900060 	ldr	r0, [r0, #96]	; 0x60
+ffff58c8:	e3800040 	orr	r0, r0, #64	; 0x40
+ffff58cc:	e5810060 	str	r0, [r1, #96]	; 0x60
+ffff58d0:	e3010001 	movw	r0, #4097	; 0x1001
+ffff58d4:	e2811912 	add	r1, r1, #294912	; 0x48000
+ffff58d8:	e5810024 	str	r0, [r1, #36]	; 0x24
+ffff58dc:	e59f065c 	ldr	r0, [pc, #1628]	; 0xffff5f40 =0x80000083
+ffff58e0:	e5810004 	str	r0, [r1, #4]
+ffff58e4:	e3000184 	movw	r0, #388	; 0x184
+ffff58e8:	e5810008 	str	r0, [r1, #8]
+ffff58ec:	e59f0650 	ldr	r0, [pc, #1616]	; 0xffff5f44 =0x80208020
+ffff58f0:	e5810018 	str	r0, [r1, #24]
+ffff58f4:	e3a00000 	mov	r0, #0
+ffff58f8:	e5810010 	str	r0, [r1, #16]
+ffff58fc:	e3e00000 	mvn	r0, #0
+ffff5900:	e5810014 	str	r0, [r1, #20]
+ffff5904:	e8bd8010 	pop	{r4, pc}
+
+ffff5908:	e92d4010 	push	{r4, lr}
+ffff590c:	e3a00000 	mov	r0, #0
+ffff5910:	e59f1630 	ldr	r1, [pc, #1584]	; 0xffff5f48 = 0x01c68000
+ffff5914:	e5810004 	str	r0, [r1, #4]
+ffff5918:	ebffffcf 	bl	0xffff585c
+ffff591c:	e3a00000 	mov	r0, #0
+ffff5920:	e59f1614 	ldr	r1, [pc, #1556]	; 0xffff5f3c =0x01c20000 SCU_BASE
+ffff5924:	e58100a0 	str	r0, [r1, #160]	; 0xa0
+ffff5928:	e1c10000 	bic	r0, r1, r0
+ffff592c:	e59002c0 	ldr	r0, [r0, #704]	; 0x2c0
+ffff5930:	e3c00601 	bic	r0, r0, #1048576	; 0x100000
+ffff5934:	e58102c0 	str	r0, [r1, #704]	; 0x2c0
+ffff5938:	e1a00001 	mov	r0, r1
+ffff593c:	e5900060 	ldr	r0, [r0, #96]	; 0x60
+ffff5940:	e3c00601 	bic	r0, r0, #1048576	; 0x100000
+ffff5944:	e5810060 	str	r0, [r1, #96]	; 0x60
+ffff5948:	e1a00001 	mov	r0, r1
+ffff594c:	e5900060 	ldr	r0, [r0, #96]	; 0x60
+ffff5950:	e3c00040 	bic	r0, r0, #64	; 0x40
+ffff5954:	e5810060 	str	r0, [r1, #96]	; 0x60
+ffff5958:	e1a00001 	mov	r0, r1
+ffff595c:	e59002c0 	ldr	r0, [r0, #704]	; 0x2c0
+ffff5960:	e3c00040 	bic	r0, r0, #64	; 0x40
+ffff5964:	e58102c0 	str	r0, [r1, #704]	; 0x2c0
+ffff5968:	e8bd8010 	pop	{r4, pc}
+
+ffff596c:	e1a01000 	mov	r1, r0
+ffff5970:	e320f000 	nop	{0}
+ffff5974:	e59f05d0 	ldr	r0, [pc, #1488]	; 0xffff5f4c =0x01c02000 DMA_BASE
+ffff5978:	e5900030 	ldr	r0, [r0, #48]	; 0x30
+ffff597c:	e3100001 	tst	r0, #1
+ffff5980:	1a000001 	bne	0xffff598c
+ffff5984:	e3a00000 	mov	r0, #0
+ffff5988:	e12fff1e 	bx	lr
+ffff598c:	e2410001 	sub	r0, r1, #1
+ffff5990:	e1b01000 	movs	r1, r0
+ffff5994:	1afffff6 	bne	0xffff5974
+ffff5998:	e3a00002 	mov	r0, #2
+ffff599c:	eafffff9 	b	0xffff5988
+ffff59a0:	e1a01000 	mov	r1, r0
+ffff59a4:	e320f000 	nop	{0}
+ffff59a8:	e59f0598 	ldr	r0, [pc, #1432]	; 0xffff5f48 =0x01c68000
+ffff59ac:	e5900014 	ldr	r0, [r0, #20]
+ffff59b0:	e3100a01 	tst	r0, #4096	; 0x1000
+ffff59b4:	0a000001 	beq	0xffff59c0
+ffff59b8:	e3a00000 	mov	r0, #0
+ffff59bc:	e12fff1e 	bx	lr
+ffff59c0:	e2410001 	sub	r0, r1, #1
+ffff59c4:	e1b01000 	movs	r1, r0
+ffff59c8:	1afffff6 	bne	0xffff59a8
+ffff59cc:	e3a00002 	mov	r0, #2
+ffff59d0:	eafffff9 	b	0xffff59bc
+ffff59d4:	e3a00000 	mov	r0, #0
+ffff59d8:	e59f156c 	ldr	r1, [pc, #1388]	; 0xffff5f4c =0x01c02000 DMA_BASE
+ffff59dc:	e5810100 	str	r0, [r1, #256]	; 0x100
+ffff59e0:	e2400b02 	sub	r0, r0, #2048	; 0x800
+ffff59e4:	e5810108 	str	r0, [r1, #264]	; 0x108
+ffff59e8:	e3a0000f 	mov	r0, #15
+ffff59ec:	e5810010 	str	r0, [r1, #16]
+ffff59f0:	e3a00000 	mov	r0, #0
+ffff59f4:	e12fff1e 	bx	lr
+
+ffff59f8:	e92d4070 	push	{r4, r5, r6, lr}
+ffff59fc:	e1a04000 	mov	r4, r0
+ffff5a00:	e1a05001 	mov	r5, r1
+ffff5a04:	e59dc010 	ldr	ip, [sp, #16]
+ffff5a08:	e30e1000 	movw	r1, #57344	; 0xe000
+ffff5a0c:	e5814000 	str	r4, [r1]
+ffff5a10:	e5812004 	str	r2, [r1, #4]
+ffff5a14:	e5813008 	str	r3, [r1, #8]
+ffff5a18:	e581c00c 	str	ip, [r1, #12]
+ffff5a1c:	e5815010 	str	r5, [r1, #16]
+ffff5a20:	e2410b3a 	sub	r0, r1, #59392	; 0xe800
+ffff5a24:	e5810014 	str	r0, [r1, #20]
+ffff5a28:	e3a00000 	mov	r0, #0
+ffff5a2c:	e59f6518 	ldr	r6, [pc, #1304]	; 0xffff5f4c =0x01c02000 DMA_BASE
+ffff5a30:	e5860100 	str	r0, [r6, #256]	; 0x100
+ffff5a34:	e3a0000f 	mov	r0, #15
+ffff5a38:	e5860010 	str	r0, [r6, #16]
+ffff5a3c:	e1c60000 	bic	r0, r6, r0
+ffff5a40:	e5801108 	str	r1, [r0, #264]	; 0x108
+ffff5a44:	e3a00001 	mov	r0, #1
+ffff5a48:	e5860100 	str	r0, [r6, #256]	; 0x100
+ffff5a4c:	e3a00000 	mov	r0, #0
+ffff5a50:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff5a54:	e92d4ffe 	push	{r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff5a58:	e1a04000 	mov	r4, r0
+ffff5a5c:	e1a05001 	mov	r5, r1
+ffff5a60:	e1a07002 	mov	r7, r2
+ffff5a64:	e1a09003 	mov	r9, r3
+ffff5a68:	e301bf07 	movw	fp, #7943	; 0x1f07
+ffff5a6c:	e3a00037 	mov	r0, #55	; 0x37
+ffff5a70:	e58d0008 	str	r0, [sp, #8]
+ffff5a74:	e59f04d4 	ldr	r0, [pc, #1236]	; 0xffff5f50 =0x01c68300 SPI_RXD
+ffff5a78:	e58d0004 	str	r0, [sp, #4]
+ffff5a7c:	e2408c01 	sub	r8, r0, #256	; 0x100
+ffff5a80:	e0840005 	add	r0, r4, r5
+ffff5a84:	e280ae96 	add	sl, r0, #2400	; 0x960
+ffff5a88:	e2480c02 	sub	r0, r8, #512	; 0x200
+ffff5a8c:	e5804034 	str	r4, [r0, #52]	; 0x34
+ffff5a90:	e0840005 	add	r0, r4, r5
+ffff5a94:	e2481c02 	sub	r1, r8, #512	; 0x200
+ffff5a98:	e5810030 	str	r0, [r1, #48]	; 0x30
+ffff5a9c:	e1a00001 	mov	r0, r1
+ffff5aa0:	e5804038 	str	r4, [r0, #56]	; 0x38
+ffff5aa4:	e5900018 	ldr	r0, [r0, #24]
+ffff5aa8:	e3800c01 	orr	r0, r0, #256	; 0x100
+ffff5aac:	e5810018 	str	r0, [r1, #24]
+ffff5ab0:	e1a03009 	mov	r3, r9
+ffff5ab4:	e58d5000 	str	r5, [sp]
+ffff5ab8:	e1a0100b 	mov	r1, fp
+ffff5abc:	e59d0008 	ldr	r0, [sp, #8]
+ffff5ac0:	e59d2004 	ldr	r2, [sp, #4]
+ffff5ac4:	ebffffcb 	bl	0xffff59f8
+ffff5ac8:	e3a06000 	mov	r6, #0
+ffff5acc:	ea000002 	b	0xffff5adc
+ffff5ad0:	e7d70006 	ldrb	r0, [r7, r6]
+ffff5ad4:	e5c80000 	strb	r0, [r8]
+ffff5ad8:	e2866001 	add	r6, r6, #1
+ffff5adc:	e1560004 	cmp	r6, r4
+ffff5ae0:	3afffffa 	bcc	0xffff5ad0
+ffff5ae4:	e59f045c 	ldr	r0, [pc, #1116]	; 0xffff5f48 =0x01c68000
+ffff5ae8:	e5900008 	ldr	r0, [r0, #8]
+ffff5aec:	e3800102 	orr	r0, r0, #-2147483648	; 0x80000000
+ffff5af0:	e59f1450 	ldr	r1, [pc, #1104]	; 0xffff5f48 =0x01c68000
+ffff5af4:	e5810008 	str	r0, [r1, #8]
+ffff5af8:	e1a0000a 	mov	r0, sl
+ffff5afc:	ebffff9a 	bl	0xffff596c
+ffff5b00:	e3500002 	cmp	r0, #2
+ffff5b04:	1a000002 	bne	0xffff5b14
+ffff5b08:	ebffffb1 	bl	0xffff59d4
+ffff5b0c:	e3a00002 	mov	r0, #2
+ffff5b10:	e8bd8ffe 	pop	{r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff5b14:	e1a0000a 	mov	r0, sl
+ffff5b18:	ebffffa0 	bl	0xffff59a0
+ffff5b1c:	e3500002 	cmp	r0, #2
+ffff5b20:	1a000002 	bne	0xffff5b30
+ffff5b24:	ebffffaa 	bl	0xffff59d4
+ffff5b28:	e3a00002 	mov	r0, #2
+ffff5b2c:	eafffff7 	b	0xffff5b10
+ffff5b30:	ebffffa7 	bl	0xffff59d4
+ffff5b34:	e3010000 	movw	r0, #4096	; 0x1000
+ffff5b38:	e59f1408 	ldr	r1, [pc, #1032]	; 0xffff5f48 =0x01c68000
+ffff5b3c:	e5810014 	str	r0, [r1, #20]
+ffff5b40:	e1c10000 	bic	r0, r1, r0
+ffff5b44:	e5900014 	ldr	r0, [r0, #20]
+ffff5b48:	e3100c0f 	tst	r0, #3840	; 0xf00
+ffff5b4c:	0a000001 	beq	0xffff5b58
+ffff5b50:	e3a00002 	mov	r0, #2
+ffff5b54:	eaffffed 	b	0xffff5b10
+ffff5b58:	e3a00000 	mov	r0, #0
+ffff5b5c:	eaffffeb 	b	0xffff5b10
+
+ffff5b60:	e92d4ff8 	push	{r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff5b64:	e1a08000 	mov	r8, r0
+ffff5b68:	e1a09001 	mov	r9, r1
+ffff5b6c:	e1a0a002 	mov	sl, r2
+ffff5b70:	e1a0b009 	mov	fp, r9
+ffff5b74:	e3a04000 	mov	r4, #0
+ffff5b78:	e1a05408 	lsl	r5, r8, #8
+ffff5b7c:	e1a0740a 	lsl	r7, sl, #8
+ffff5b80:	ea000018 	b	0xffff5be8
+
+ffff5b84:	e3a00003 	mov	r0, #3
+ffff5b88:	e5cd0000 	strb	r0, [sp]
+ffff5b8c:	e1a00825 	lsr	r0, r5, #16
+ffff5b90:	e5cd0001 	strb	r0, [sp, #1]
+ffff5b94:	e1a00425 	lsr	r0, r5, #8
+ffff5b98:	e5cd0002 	strb	r0, [sp, #2]
+ffff5b9c:	e5cd5003 	strb	r5, [sp, #3]
+ffff5ba0:	e0470004 	sub	r0, r7, r4
+ffff5ba4:	e3500b02 	cmp	r0, #2048	; 0x800
+ffff5ba8:	9a000001 	bls	0xffff5bb4
+
+ffff5bac:	e3000800 	movw	r0, #2048	; 0x800
+ffff5bb0:	ea000000 	b	0xffff5bb8
+
+ffff5bb4:	e0470004 	sub	r0, r7, r4
+
+ffff5bb8:	e1a06000 	mov	r6, r0
+ffff5bbc:	e08b3004 	add	r3, fp, r4
+ffff5bc0:	e1a0200d 	mov	r2, sp
+ffff5bc4:	e1a01006 	mov	r1, r6
+ffff5bc8:	e3a00004 	mov	r0, #4
+ffff5bcc:	ebffffa0 	bl	0xffff5a54
+ffff5bd0:	e3500002 	cmp	r0, #2
+ffff5bd4:	1a000001 	bne	0xffff5be0
+
+ffff5bd8:	e3a00002 	mov	r0, #2
+
+ffff5bdc:	e8bd8ff8 	pop	{r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+ffff5be0:	e0855006 	add	r5, r5, r6
+ffff5be4:	e0844006 	add	r4, r4, r6
+ffff5be8:	e1540007 	cmp	r4, r7
+ffff5bec:	3affffe4 	bcc	0xffff5b84
+
+ffff5bf0:	e3a00000 	mov	r0, #0
+ffff5bf4:	eafffff8 	b	0xffff5bdc
+
+ffff5bf8:	e92d47fc 	push	{r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ffff5bfc:	e1a05000 	mov	r5, r0
+ffff5c00:	e1a07001 	mov	r7, r1
+ffff5c04:	e1a08002 	mov	r8, r2
+ffff5c08:	e1a0a007 	mov	sl, r7
+ffff5c0c:	e3a00000 	mov	r0, #0
+ffff5c10:	e58d0004 	str	r0, [sp, #4]
+ffff5c14:	e3a06000 	mov	r6, #0
+ffff5c18:	e3a09000 	mov	r9, #0
+ffff5c1c:	e1a04485 	lsl	r4, r5, #9
+ffff5c20:	ea000012 	b	0xffff5c70
+
+ffff5c24:	e3a000e8 	mov	r0, #232	; 0xe8
+ffff5c28:	e5cd0000 	strb	r0, [sp]
+ffff5c2c:	e1a00824 	lsr	r0, r4, #16
+ffff5c30:	e5cd0001 	strb	r0, [sp, #1]
+ffff5c34:	e1a00424 	lsr	r0, r4, #8
+ffff5c38:	e5cd0002 	strb	r0, [sp, #2]
+ffff5c3c:	e5cd4003 	strb	r4, [sp, #3]
+ffff5c40:	e08a3009 	add	r3, sl, r9
+ffff5c44:	e1a0200d 	mov	r2, sp
+ffff5c48:	e3001100 	movw	r1, #256	; 0x100
+ffff5c4c:	e3a00008 	mov	r0, #8
+ffff5c50:	ebffff7f 	bl	0xffff5a54
+ffff5c54:	e3500002 	cmp	r0, #2
+ffff5c58:	1a000001 	bne	0xffff5c64
+
+ffff5c5c:	e3a00002 	mov	r0, #2
+
+ffff5c60:	e8bd87fc 	pop	{r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
+
+ffff5c64:	e2866001 	add	r6, r6, #1
+ffff5c68:	e2899c01 	add	r9, r9, #256	; 0x100
+ffff5c6c:	e2844c02 	add	r4, r4, #512	; 0x200
+ffff5c70:	e1560008 	cmp	r6, r8
+ffff5c74:	3affffea 	bcc	0xffff5c24
+
+ffff5c78:	e3a00000 	mov	r0, #0
+ffff5c7c:	eafffff7 	b	0xffff5c60
+
+ffff5c80:	e92d400c 	push	{r2, r3, lr}
+ffff5c84:	e1a01000 	mov	r1, r0
+ffff5c88:	e59f22c4 	ldr	r2, [pc, #708]	; 0xffff5f54 =0xffff622c
+ffff5c8c:	e8920005 	ldm	r2, {r0, r2}
+ffff5c90:	e88d0005 	stm	sp, {r0, r2}
+ffff5c94:	e79d0101 	ldr	r0, [sp, r1, lsl #2]
+ffff5c98:	e8bd800c 	pop	{r2, r3, pc}
+
+ffff5c9c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff5ca0:	e1a04000 	mov	r4, r0
+ffff5ca4:	e1a06001 	mov	r6, r1
+ffff5ca8:	e59f72a8 	ldr	r7, [pc, #680]	; 0xffff5f58 =0x01c68200 SPI_TXD
+ffff5cac:	e2470c02 	sub	r0, r7, #512	; 0x200
+ffff5cb0:	e5804034 	str	r4, [r0, #52]	; 0x34
+ffff5cb4:	e5804030 	str	r4, [r0, #48]	; 0x30
+ffff5cb8:	e5804038 	str	r4, [r0, #56]	; 0x38
+ffff5cbc:	e2848e96 	add	r8, r4, #2400	; 0x960
+ffff5cc0:	e3a05000 	mov	r5, #0
+ffff5cc4:	ea000002 	b	0xffff5cd4
+
+ffff5cc8:	e7d60005 	ldrb	r0, [r6, r5]
+ffff5ccc:	e5c70000 	strb	r0, [r7]
+ffff5cd0:	e2855001 	add	r5, r5, #1
+
+ffff5cd4:	e1550004 	cmp	r5, r4
+ffff5cd8:	3afffffa 	bcc	0xffff5cc8
+
+ffff5cdc:	e59f0264 	ldr	r0, [pc, #612]	; 0xffff5f48 =0x01c68000
+ffff5ce0:	e5900008 	ldr	r0, [r0, #8]
+ffff5ce4:	e3800102 	orr	r0, r0, #-2147483648	; 0x80000000
+ffff5ce8:	e59f1258 	ldr	r1, [pc, #600]	; 0xffff5f48 =0x01c68000
+ffff5cec:	e5810008 	str	r0, [r1, #8]
+ffff5cf0:	e1a00008 	mov	r0, r8
+ffff5cf4:	ebffff29 	bl	0xffff59a0
+ffff5cf8:	e3500002 	cmp	r0, #2
+ffff5cfc:	1a000001 	bne	0xffff5d08
+
+ffff5d00:	e3a00002 	mov	r0, #2
+
+ffff5d04:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff5d08:	e3010000 	movw	r0, #4096	; 0x1000
+ffff5d0c:	e59f1234 	ldr	r1, [pc, #564]	; 0xffff5f48 =0x01c68000
+ffff5d10:	e5810014 	str	r0, [r1, #20]
+ffff5d14:	e1c10000 	bic	r0, r1, r0
+ffff5d18:	e5900014 	ldr	r0, [r0, #20]
+ffff5d1c:	e3100c0f 	tst	r0, #3840	; 0xf00
+ffff5d20:	0a000001 	beq	0xffff5d2c
+
+ffff5d24:	e3a00002 	mov	r0, #2
+ffff5d28:	eafffff5 	b	0xffff5d04
+
+ffff5d2c:	e3a00000 	mov	r0, #0
+ffff5d30:	eafffff3 	b	0xffff5d04
+
+ffff5d34:	e92d4038 	push	{r3, r4, r5, lr}
+ffff5d38:	e3a000ff 	mov	r0, #255	; 0xff
+ffff5d3c:	e58d0000 	str	r0, [sp]
+ffff5d40:	e3a040f0 	mov	r4, #240	; 0xf0
+ffff5d44:	e1a0100d 	mov	r1, sp
+ffff5d48:	e3a00001 	mov	r0, #1
+ffff5d4c:	ebffffd2 	bl	0xffff5c9c
+ffff5d50:	e3500002 	cmp	r0, #2
+ffff5d54:	1a000001 	bne	0xffff5d60
+
+ffff5d58:	e3a00002 	mov	r0, #2
+
+ffff5d5c:	e8bd8038 	pop	{r3, r4, r5, pc}
+
+ffff5d60:	e320f000 	nop	{0}
+
+ffff5d64:	e2440001 	sub	r0, r4, #1
+ffff5d68:	e1b04000 	movs	r4, r0
+ffff5d6c:	1afffffc 	bne	0xffff5d64
+
+ffff5d70:	e3a00000 	mov	r0, #0
+ffff5d74:	eafffff8 	b	0xffff5d5c
+
+ffff5d78:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ffff5d7c:	e24dd024 	sub	sp, sp, #36	; 0x24
+ffff5d80:	e1a05000 	mov	r5, r0
+ffff5d84:	e1a07001 	mov	r7, r1
+ffff5d88:	e1a08002 	mov	r8, r2
+ffff5d8c:	e1a06003 	mov	r6, r3
+ffff5d90:	e28db048 	add	fp, sp, #72	; 0x48
+ffff5d94:	e89b0e00 	ldm	fp, {r9, sl, fp}
+ffff5d98:	e3a00000 	mov	r0, #0
+ffff5d9c:	e58d0010 	str	r0, [sp, #16]
+ffff5da0:	e58d700c 	str	r7, [sp, #12]
+ffff5da4:	e58d0008 	str	r0, [sp, #8]
+ffff5da8:	e3a00032 	mov	r0, #50	; 0x32
+ffff5dac:	e58d0004 	str	r0, [sp, #4]
+ffff5db0:	e1a04005 	mov	r4, r5
+ffff5db4:	ea000056 	b	0xffff5f14
+
+ffff5db8:	e3a00013 	mov	r0, #19
+ffff5dbc:	e5cd001c 	strb	r0, [sp, #28]
+ffff5dc0:	e1a00824 	lsr	r0, r4, #16
+ffff5dc4:	e5cd001d 	strb	r0, [sp, #29]
+ffff5dc8:	e1a00424 	lsr	r0, r4, #8
+ffff5dcc:	e5cd001e 	strb	r0, [sp, #30]
+ffff5dd0:	e5cd401f 	strb	r4, [sp, #31]
+ffff5dd4:	e28d101c 	add	r1, sp, #28
+ffff5dd8:	e3a00004 	mov	r0, #4
+ffff5ddc:	ebffffae 	bl	0xffff5c9c
+ffff5de0:	e3500002 	cmp	r0, #2
+ffff5de4:	1a000002 	bne	0xffff5df4
+
+ffff5de8:	e3a00002 	mov	r0, #2
+ffff5dec:	e58d0010 	str	r0, [sp, #16]
+ffff5df0:	ea00004b 	b	0xffff5f24
+
+ffff5df4:	e3a0000f 	mov	r0, #15
+ffff5df8:	e5cd0018 	strb	r0, [sp, #24]
+ffff5dfc:	e3a000c0 	mov	r0, #192	; 0xc0
+ffff5e00:	e5cd0019 	strb	r0, [sp, #25]
+ffff5e04:	e3a00032 	mov	r0, #50	; 0x32
+ffff5e08:	e58d0004 	str	r0, [sp, #4]
+ffff5e0c:	e320f000 	nop	{0}
+
+ffff5e10:	e28d3008 	add	r3, sp, #8
+ffff5e14:	e28d2018 	add	r2, sp, #24
+ffff5e18:	e3a01001 	mov	r1, #1
+ffff5e1c:	e3a00002 	mov	r0, #2
+ffff5e20:	ebffff0b 	bl	0xffff5a54
+ffff5e24:	e3500002 	cmp	r0, #2
+ffff5e28:	1a000002 	bne	0xffff5e38
+
+ffff5e2c:	e3a00002 	mov	r0, #2
+ffff5e30:	e58d0010 	str	r0, [sp, #16]
+ffff5e34:	ea00003a 	b	0xffff5f24
+
+ffff5e38:	e5dd0008 	ldrb	r0, [sp, #8]
+ffff5e3c:	e2000001 	and	r0, r0, #1
+ffff5e40:	e58d0008 	str	r0, [sp, #8]
+ffff5e44:	e5dd0008 	ldrb	r0, [sp, #8]
+ffff5e48:	e3500000 	cmp	r0, #0
+ffff5e4c:	1a000000 	bne	0xffff5e54
+
+ffff5e50:	ea000003 	b	0xffff5e64
+
+ffff5e54:	e59d0004 	ldr	r0, [sp, #4]
+ffff5e58:	e2500001 	subs	r0, r0, #1
+ffff5e5c:	e58d0004 	str	r0, [sp, #4]
+ffff5e60:	1affffea 	bne	0xffff5e10
+
+ffff5e64:	e320f000 	nop	{0}
+ffff5e68:	e3a0000b 	mov	r0, #11
+ffff5e6c:	e5cd001c 	strb	r0, [sp, #28]
+ffff5e70:	e3560b02 	cmp	r6, #2048	; 0x800
+ffff5e74:	1a000010 	bne	0xffff5ebc
+
+ffff5e78:	e35a0001 	cmp	sl, #1
+ffff5e7c:	1a000006 	bne	0xffff5e9c
+
+ffff5e80:	e730fb14 	udiv	r0, r4, fp
+ffff5e84:	e2000001 	and	r0, r0, #1
+ffff5e88:	e3500001 	cmp	r0, #1
+ffff5e8c:	1a000002 	bne	0xffff5e9c
+
+ffff5e90:	e3a00010 	mov	r0, #16
+ffff5e94:	e5cd001d 	strb	r0, [sp, #29]
+ffff5e98:	ea000001 	b	0xffff5ea4
+
+ffff5e9c:	e3a00000 	mov	r0, #0
+ffff5ea0:	e5cd001d 	strb	r0, [sp, #29]
+
+ffff5ea4:	e3a00000 	mov	r0, #0
+ffff5ea8:	e5cd001e 	strb	r0, [sp, #30]
+ffff5eac:	e5cd001f 	strb	r0, [sp, #31]
+ffff5eb0:	e3a00004 	mov	r0, #4
+ffff5eb4:	e58d0014 	str	r0, [sp, #20]
+ffff5eb8:	ea000008 	b	0xffff5ee0
+
+ffff5ebc:	e3560a01 	cmp	r6, #4096	; 0x1000
+ffff5ec0:	1a000006 	bne	0xffff5ee0
+ffff5ec4:	e3a00000 	mov	r0, #0
+ffff5ec8:	e5cd001d 	strb	r0, [sp, #29]
+ffff5ecc:	e5cd001e 	strb	r0, [sp, #30]
+ffff5ed0:	e5cd001f 	strb	r0, [sp, #31]
+ffff5ed4:	e5cd0020 	strb	r0, [sp, #32]
+ffff5ed8:	e3a00005 	mov	r0, #5
+ffff5edc:	e58d0014 	str	r0, [sp, #20]
+
+ffff5ee0:	e0441005 	sub	r1, r4, r5
+ffff5ee4:	e59d000c 	ldr	r0, [sp, #12]
+ffff5ee8:	e0230199 	mla	r3, r9, r1, r0
+ffff5eec:	e28d201c 	add	r2, sp, #28
+ffff5ef0:	e1a01009 	mov	r1, r9
+ffff5ef4:	e59d0014 	ldr	r0, [sp, #20]
+ffff5ef8:	ebfffed5 	bl	0xffff5a54
+ffff5efc:	e3500002 	cmp	r0, #2
+ffff5f00:	1a000002 	bne	0xffff5f10
+
+ffff5f04:	e3a00002 	mov	r0, #2
+ffff5f08:	e58d0010 	str	r0, [sp, #16]
+ffff5f0c:	ea000004 	b	0xffff5f24
+
+ffff5f10:	e2844001 	add	r4, r4, #1
+
+ffff5f14:	e0850008 	add	r0, r5, r8
+ffff5f18:	e1500004 	cmp	r0, r4
+ffff5f1c:	8affffa5 	bhi	0xffff5db8
+
+ffff5f20:	e320f000 	nop	{0}
+
+ffff5f24:	e59d0010 	ldr	r0, [sp, #16]
+ffff5f28:	e28dd024 	add	sp, sp, #36	; 0x24
+ffff5f2c:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+	;; Global Offset Table
+ffff5f30:	77773333
+ffff5f34:	01c20848
+ffff5f38:	77777777
+ffff5f3c:	01c20000					; SCU_BASE
+ffff5f40:	80000083
+ffff5f44:	80208020
+ffff5f48:	01c68000					; SPI0_BASE
+ffff5f4c:	01c02000					; DMA_BASE
+ffff5f50:	01c68300					; SPI_RXD
+ffff5f54:	ffff622c
+ffff5f58:	01c68200					; SPI_TXD
+
+ffff5f5c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}
+ffff5f60:	ebfffe44 	bl	0xffff5878
+ffff5f64:	e3a07000 	mov	r7, #0
+ffff5f68:	ea000029 	b	0xffff6014
+
+ffff5f6c:	e1a00007 	mov	r0, r7
+ffff5f70:	ebffff42 	bl	0xffff5c80
+ffff5f74:	e1a05000 	mov	r5, r0
+ffff5f78:	e3a02001 	mov	r2, #1
+ffff5f7c:	e3a01000 	mov	r1, #0
+ffff5f80:	e1a00001 	mov	r0, r1
+ffff5f84:	e12fff35 	blx	r5
+ffff5f88:	e3500002 	cmp	r0, #2
+ffff5f8c:	1a000000 	bne	0xffff5f94
+
+ffff5f90:	ea00001e 	b	0xffff6010
+
+ffff5f94:	e28f108c 	add	r1, pc, #140	; 0x8c =0xffff5028 "eGON.BT0"
+ffff5f98:	e3a00000 	mov	r0, #0
+ffff5f9c:	eb000024 	bl	check_magic
+ffff5fa0:	e3500000 	cmp	r0, #0
+ffff5fa4:	0a000000 	beq	0xffff5fac
+
+ffff5fa8:	ea000018 	b	0xffff6010
+
+ffff5fac:	e3a06000 	mov	r6, #0
+ffff5fb0:	e5964010 	ldr	r4, [r6, #16]
+ffff5fb4:	e1a00004 	mov	r0, r4
+ffff5fb8:	e7df049f 	bfc	r0, #9, #23
+ffff5fbc:	e3500000 	cmp	r0, #0
+ffff5fc0:	0a000000 	beq	0xffff5fc8
+
+ffff5fc4:	ea000011 	b	0xffff6010
+
+ffff5fc8:	e1a02424 	lsr	r2, r4, #8
+ffff5fcc:	e3a01000 	mov	r1, #0
+ffff5fd0:	e1a00001 	mov	r0, r1
+ffff5fd4:	e12fff35 	blx	r5
+ffff5fd8:	e3500002 	cmp	r0, #2
+ffff5fdc:	1a000000 	bne	0xffff5fe4
+
+ffff5fe0:	ea00000a 	b	0xffff6010
+
+ffff5fe4:	e1a01004 	mov	r1, r4
+ffff5fe8:	e3a00000 	mov	r0, #0
+ffff5fec:	eb000022 	bl	check_sum
+ffff5ff0:	e3500000 	cmp	r0, #0
+ffff5ff4:	1a000004 	bne	0xffff600c
+
+ffff5ff8:	e3a00003 	mov	r0, #3
+ffff5ffc:	e5c60028 	strb	r0, [r6, #40]	; 0x28
+ffff6000:	ebfffe40 	bl	0xffff5908
+ffff6004:	e3a00000 	mov	r0, #0
+
+ffff6008:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}
+
+ffff600c:	e320f000 	nop	{0}
+
+ffff6010:	e2877001 	add	r7, r7, #1
+ffff6014:	e3570002 	cmp	r7, #2
+ffff6018:	3affffd3 	bcc	0xffff5f6c
+
+ffff601c:	ebfffe39 	bl	0xffff5908
+ffff6020:	e3e00000 	mvn	r0, #0
+ffff6024:	eafffff7 	b	0xffff6008
+
+ffff6028:	4e4f4765	.ascii	"eGON"
+ffff602c:	3054422e	.ascii	".BT0"
+ffff6030:	00000000
+
+;;;*****************************************************************************
+check_magic:
+ffff6034:	e92d40f0 	push	{r4, r5, r6, r7, lr}
+ffff6038:	e1a02000 	mov	r2, r0
+ffff603c:	e1a0c002 	mov	ip, r2
+ffff6040:	e28c4004 	add	r4, ip, #4
+ffff6044:	e3a03000 	mov	r3, #0 		; counter
+ffff6048:	e3a05008 	mov	r5, #8		; length
+ffff604c:	ea000006 	b	0xffff606c	; while
+
+ffff6050:	e4d40001 	ldrb	r0, [r4], #1 	; load byte from src
+ffff6054:	e4d16001 	ldrb	r6, [r1], #1	; load byte from reference
+ffff6058:	e1500006 	cmp	r0, r6
+ffff605c:	0a000001 	beq	0xffff6068 	; check if bytes are equal
+
+ffff6060:	e3a00001 	mov	r0, #1 		; no match
+
+ffff6064:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}
+
+ffff6068:	e2833001 	add	r3, r3, #1 	; increment counter
+
+ffff606c:	e1530005 	cmp	r3, r5
+ffff6070:	3afffff6 	bcc	0xffff6050 	; end of magic?
+
+ffff6074:	e3a00000 	mov	r0, #0 		; yes, this is a match!
+ffff6078:	eafffff9 	b	0xffff6064
+;;;*****************************************************************************
+
+check_sum:
+ffff607c:	e92d40f0 	push	{r4, r5, r6, r7, lr}
+ffff6080:	e1a03000 	mov	r3, r0
+ffff6084:	e1a05001 	mov	r5, r1
+ffff6088:	e1a04003 	mov	r4, r3
+ffff608c:	e594600c 	ldr	r6, [r4, #12]
+ffff6090:	e59f00bc 	ldr	r0, [pc, #188]	; 0xffff6154 =0x5f0a6c39
+ffff6094:	e584000c 	str	r0, [r4, #12]
+ffff6098:	e1a07125 	lsr	r7, r5, #2
+ffff609c:	e3a02000 	mov	r2, #0
+ffff60a0:	e1a01003 	mov	r1, r3
+ffff60a4:	e320f000 	nop	{0}
+
+ffff60a8:	e4910004 	ldr	r0, [r1], #4
+ffff60ac:	e0822000 	add	r2, r2, r0
+ffff60b0:	e4910004 	ldr	r0, [r1], #4
+ffff60b4:	e0822000 	add	r2, r2, r0
+ffff60b8:	e4910004 	ldr	r0, [r1], #4
+ffff60bc:	e0822000 	add	r2, r2, r0
+ffff60c0:	e4910004 	ldr	r0, [r1], #4
+ffff60c4:	e0822000 	add	r2, r2, r0
+ffff60c8:	e2470004 	sub	r0, r7, #4
+ffff60cc:	e1a07000 	mov	r7, r0
+ffff60d0:	e3500003 	cmp	r0, #3
+ffff60d4:	8afffff3 	bhi	0xffff60a8
+
+ffff60d8:	ea000001 	b	0xffff60e4
+
+ffff60dc:	e4910004 	ldr	r0, [r1], #4
+ffff60e0:	e0822000 	add	r2, r2, r0
+
+ffff60e4:	e1b00007 	movs	r0, r7
+ffff60e8:	e2477001 	sub	r7, r7, #1
+ffff60ec:	1afffffa 	bne	0xffff60dc
+
+ffff60f0:	e584600c 	str	r6, [r4, #12]
+ffff60f4:	e1520006 	cmp	r2, r6
+ffff60f8:	1a000001 	bne	0xffff6104
+
+ffff60fc:	e3a00000 	mov	r0, #0
+ffff6100:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}
+
+ffff6104:	e3a00001 	mov	r0, #1
+ffff6108:	eafffffc 	b	0xffff6100
+
+ffff610c:	e92d4070 	push	{r4, r5, r6, lr}
+ffff6110:	e1a05000 	mov	r5, r0
+ffff6114:	e1a06001 	mov	r6, r1
+ffff6118:	e1a04002 	mov	r4, r2
+ffff611c:	e1a01004 	mov	r1, r4
+ffff6120:	e1a00005 	mov	r0, r5
+ffff6124:	ebffffc2 	bl	check_magic
+ffff6128:	e3500000 	cmp	r0, #0
+ffff612c:	1a000006 	bne	0xffff614c
+
+ffff6130:	e1a01006 	mov	r1, r6
+ffff6134:	e1a00005 	mov	r0, r5
+ffff6138:	ebffffcf 	bl	check_sum
+ffff613c:	e3500000 	cmp	r0, #0
+ffff6140:	1a000001 	bne	0xffff614c
+
+ffff6144:	e3a00000 	mov	r0, #0
+ffff6148:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff614c:	e3a00001 	mov	r0, #1
+ffff6150:	eafffffc 	b	0xffff6148
+
+	;; Global Offset Table
+ffff6154:	5f0a6c39
+
+ffff6158:	e1a01000 	mov	r1, r0
+ffff615c:	e1a00001 	mov	r0, r1
+ffff6160:	ea000000 	b	0xffff6168
+ffff6164:	e2400001 	sub	r0, r0, #1
+ffff6168:	e3500000 	cmp	r0, #0
+ffff616c:	cafffffc 	bgt	0xffff6164
+ffff6170:	e12fff1e 	bx	lr
+
+check_uboot:
+ffff6174:	e92d4070 	push	{r4, r5, r6, lr}
+ffff6178:	e3a05000 	mov	r5, #0
+ffff617c:	e3a0603c 	mov	r6, #60	; 0x3c
+ffff6180:	e3a04004 	mov	r4, #4
+ffff6184:	ea000006 	b	0xffff61a4
+
+ffff6188:	e1a00006 	mov	r0, r6
+ffff618c:	ebfffff1 	bl	0xffff6158
+ffff6190:	e3a00507 	mov	r0, #29360128	; 0x1c00000
+ffff6194:	e5900024 	ldr	r0, [r0, #36]	; 0x24 VER_REG
+ffff6198:	e7e00450 	ubfx	r0, r0, #8, #1 	; UBOOT_SEL_PAD_STA
+ffff619c:	e0855000 	add	r5, r5, r0
+ffff61a0:	e2444001 	sub	r4, r4, #1
+
+ffff61a4:	e3540000 	cmp	r4, #0
+ffff61a8:	cafffff6 	bgt	0xffff6188
+ffff61ac:	e3550000 	cmp	r5, #0
+ffff61b0:	1a000001 	bne	0xffff61bc
+
+ffff61b4:	e3e00000 	mvn	r0, #0
+ffff61b8:	e8bd8070 	pop	{r4, r5, r6, pc}
+
+ffff61bc:	e3a00000 	mov	r0, #0
+ffff61c0:	eafffffc 	b	0xffff61b8
+
+ffff61c4:	00004770 	andeq	r4, r0, r0, ror r7
+
+jump_to:
+ffff61c8:	e1a0f000 	mov	pc, r0
+
+ffff61cc:	00000800
+ffff61d0:	00000400
+ffff61d4:	00000000
+ffff61d8:	00000040
+ffff61dc:	00001000
+ffff61e0:	00000400
+ffff61e4:	00000000
+ffff61e8:	00000040
+ffff61ec:	00000800
+ffff61f0:	00000400
+ffff61f4:	00000000
+ffff61f8:	00000040
+ffff61fc:	00001000
+ffff6200:	00000400
+ffff6204:	00000000
+ffff6208:	00000040
+ffff620c:	00000800
+ffff6210:	00000400
+ffff6214:	00000001
+ffff6218:	00000040
+ffff621c:	00000800
+ffff6220:	00000400
+ffff6224:	00000001
+ffff6228:	00000080
+
+ffff622c:	ffff5b60
+ffff6230:	ffff5bf8
+	...