diff --git a/README.md b/README.md index f5352c1..5ed661b 100644 --- a/README.md +++ b/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 + diff --git a/brom b/brom new file mode 100644 index 0000000..3d9fc2c Binary files /dev/null and b/brom differ diff --git a/brom.s b/brom.s new file mode 100644 index 0000000..80f3cc2 --- /dev/null +++ b/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{} +;;; Is the condition under which the instruction is executed. If the +;;; is ommitted, the AL(always,its code is 0b1110 )is used. +;;; +;;; 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 + ...