F1C100S
BROM ffff0000.s
參考資訊:
1. brom
2. wiki
ffff0000.s
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: ea000003 b irq ; _irq ffff001c: ea000000 b unimplemented ; _fiq ffff0020: ea000005 b fel_setup ; FEL unimplemented: ffff0024: eafffffe b unimplemented #define BROM 0xffff4000 reset: ffff0028: e59ff110 ldr pc, =BROM irq: ffff002c: e24ee004 sub lr, lr, #4 ffff0030: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff0034: eb00073c bl interrupt_handler ffff0038: e8fd9fff ldm sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}^ fel_setup: ffff003c: e3a020d2 mov r2, #210 ; 0xd2 ffff0040: e121f002 msr CPSR_c, r2 ffff0044: e3a0da02 ldr sp, =0x2000 ffff0048: e10f0000 mrs r0, CPSR ffff004c: e3c0001f bic r0, r0, #31 ffff0050: e38000d3 orr r0, r0, #211 ; 0xd3 ffff0054: e121f000 msr CPSR_c, r0 ffff0058: e3a0da07 ldr sp, =0x7000 ffff005c: ee110f30 mrc 15, 0, r0, cr1, cr0, {1} ffff0060: e3c00002 bic r0, r0, #2 ffff0064: ee010f30 mcr 15, 0, r0, cr1, cr0, {1} ffff0068: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff006c: e3c00001 bic r0, r0, #1 ffff0070: e3c00b02 bic r0, r0, #2048 ; 0x800 ffff0074: e3c00a01 bic r0, r0, #4096 ; 0x1000 ffff0078: e3c00004 bic r0, r0, #4 ffff007c: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff0080: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff0084: e3800a02 orr r0, r0, #8192 ; 0x2000 ffff0088: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff008c: e59f10b0 ldr r1, =0x01c20000 ffff0090: e3a02801 mov r2, 65536 ; 0x10000 ffff0094: e5913054 ldr r3, [r1, #84] ; 0x54 ffff0098: e3c33803 bic r3, r3, #196608 ; 0x30000 ffff009c: e1834002 orr r4, r3, r2 ; ffff00a0: e5814054 str r4, [r1, #84] ; 0x54 CPU_CLK_SRC_SEL. = OSC24M ffff00a4: e3a02010 mov r2, #16 ffff00a8: e5913054 ldr r3, [r1, #84] ; 0x54 ffff00ac: e3c330ff bic r3, r3, #255 ; 0xff ffff00b0: e3c33c0f bic r3, r3, #3840 ; 0xf00 ffff00b4: e1834002 orr r4, r3, r2 ffff00b8: e5814054 str r4, [r1, #84] ; 0x54 AXI:AHB:APB = 1:1:2 ffff00bc: e3a02c01 mov r2, #256 ; 0x100 ffff00c0: e59130cc ldr r3, [r1, #204] ; 0xcc ffff00c4: e3c33c01 bic r3, r3, #256 ; 0x100 ffff00c8: e1834002 orr r4, r3, r2 ffff00cc: e58140cc str r4, [r1, #204] ; 0xcc USB_CLK = ON ffff00d0: e3020710 movw r0, #10000 ; 0x2710 .loop1: ffff00d4: e2500001 subs r0, r0, #1 ffff00d8: 1afffffd bne .loop1 ; delay 10000 ffff00dc: e3a02001 mov r2, #1 ffff00e0: e5913060 ldr r3, [r1, #96] ; 0x60 ffff00e4: e3c33001 bic r3, r3, #1 ffff00e8: e1834002 orr r4, r3, r2 ffff00ec: e5814060 str r4, [r1, #96] ; 0x60 AHB_USB_GATE = ON ffff00f0: e3a02001 mov r2, #1 ffff00f4: e59130cc ldr r3, [r1, #204] ; 0xcc ffff00f8: e3c33001 bic r3, r3, #1 ffff00fc: e1834002 orr r4, r3, r2 ffff0100: e58140cc str r4, [r1, #204] ; 0xcc USBPHY0_RST = 1 ffff0104: e3a00000 mov r0, #0 ffff0108: ee080f15 mcr 15, 0, r0, cr8, cr5, {0} ffff010c: ee080f16 mcr 15, 0, r0, cr8, cr6, {0} ffff0110: e3a00000 mov r0, #0 ffff0114: ee020f50 mcr 15, 0, r0, cr2, cr0, {2} ffff0118: e3a00802 mov r0, #131072 ; 0x20000 ffff011c: ee020f10 mcr 15, 0, r0, cr2, cr0, {0} ffff0120: eb0008ea bl f_24d0 ffff0124: ee130f10 mrc 15, 0, r0, cr3, cr0, {0} ffff0128: e59f0018 ldr r0, =0x55555555 ffff012c: ee030f10 mcr 15, 0, r0, cr3, cr0, {0} ffff0130: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff0134: e3800001 orr r0, r0, #1 ffff0138: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff013c: eb0007b2 bl fel memcpy: ffff014c: e92d4070 push {r4, r5, r6, lr} ffff0150: e1a03000 mov r3, r0 ffff0154: e1a04001 mov r4, r1 ffff0158: ea000001 b 0xffff0164 ffff015c: e4d45001 ldrb r5, [r4], #1 ffff0160: e4c35001 strb r5, [r3], #1 ffff0164: e1b05002 movs r5, r2 ffff0168: e2422001 sub r2, r2, #1 ffff016c: 1afffffa bne 0xffff015c ffff0170: e8bd8070 pop {r4, r5, r6, pc} void memset(r0 = dest, r1 = value, r2 = size); memset: ffff0174: e92d4030 push {r4, r5, lr} ffff0178: e1a03000 mov r3, r0 ffff017c: ea000000 b 0xffff0184 ffff0180: e4c31001 strb r1, [r3], #1 ffff0184: e1b04002 movs r4, r2 ffff0188: e2422001 sub r2, r2, #1 ffff018c: 1afffffb bne 0xffff0180 ffff0190: e8bd8030 pop {r4, r5, pc} void delay_10000(void); delay_10000: ffff0194: e3a00000 mov r0, #0 ffff0198: e320f000 nop {0} ffff019c: ea000000 b 0xffff01a4 ffff01a0: e2800001 add r0, r0, #1 ffff01a4: e3021710 movw r1, #10000 ; 0x2710 ffff01a8: e1500001 cmp r0, r1 ffff01ac: 3afffffb bcc 0xffff01a0 ffff01b0: e12fff1e bx lr void delay(r0 = N); delay: ffff01b4: e92d4070 push {r4, r5, r6, lr} ffff01b8: e1a05000 mov r5, r0 ffff01bc: e3a04000 mov r4, #0 ffff01c0: e320f000 nop {0} ffff01c4: ea000001 b 0xffff01d0 ffff01c8: ebfffff1 bl delay_10000 ffff01cc: e2844001 add r4, r4, #1 ffff01d0: e1540005 cmp r4, r5 ffff01d4: 3afffffb bcc 0xffff01c8 ffff01d8: e8bd8070 pop {r4, r5, r6, pc} f_NOP1: ffff01dc: e12fff1e bx lr f_NOP2: ffff01e0: e12fff1e bx lr f_01e4: ffff01e4: e3a01000 mov r1, #0 ffff01e8: ea000000 b 0xffff01f0 ffff01ec: e2811001 add r1, r1, #1 ffff01f0: e5d02018 ldrb r2, [r0, #24] ffff01f4: e3520001 cmp r2, #1 ffff01f8: 0afffffb beq 0xffff01ec ffff01fc: e12fff1e bx lr f_0200: ffff0200: e92d4010 push {r4, lr} ffff0204: e1a04000 mov r4, r0 ffff0208: e3a02022 mov r2, #34 ; 0x22 ffff020c: e3a01000 mov r1, #0 ffff0210: e1a00004 mov r0, r4 ffff0214: ebffffd6 bl memset ffff0218: e3a00000 mov r0, #0 ffff021c: e5c40020 strb r0, [r4, #32] ffff0220: e5c40021 strb r0, [r4, #33] ; 0x21 ffff0224: e8bd8010 pop {r4, pc} f_0228: ffff0228: e5801000 str r1, [r0] ffff022c: e5802004 str r2, [r0, #4] ffff0230: e3a03000 mov r3, #0 ffff0234: e5c03008 strb r3, [r0, #8] ffff0238: e5803010 str r3, [r0, #16] ffff023c: e3a03001 mov r3, #1 ffff0240: e5c03018 strb r3, [r0, #24] ffff0244: e12fff1e bx lr f_0248: ffff0248: e92d4070 push {r4, r5, r6, lr} ffff024c: e24dd020 sub sp, sp, #32 ffff0250: e1a04000 mov r4, r0 ffff0254: e1a05001 mov r5, r1 ffff0258: e3a06000 mov r6, #0 ffff025c: e5946034 ldr r6, [r4, #52] ; 0x34 ffff0260: e1a00006 mov r0, r6 ffff0264: ebffffde bl f_01e4 ffff0268: e3a02020 mov r2, #32 ffff026c: e3a01000 mov r1, #0 ffff0270: e1a0000d mov r0, sp ffff0274: ebffffbe bl memset ffff0278: e1a00004 mov r0, r4 ffff027c: eb0001af bl f_0940 ffff0280: e3a02020 mov r2, #32 ffff0284: e1a0100d mov r1, sp ffff0288: e1a00006 mov r0, r6 ffff028c: ebffffe5 bl f_0228 ffff0290: e3a00001 mov r0, #1 ffff0294: e5c50020 strb r0, [r5, #32] ffff0298: e3a02000 mov r2, #0 ffff029c: e1a01006 mov r1, r6 ffff02a0: e1a00004 mov r0, r4 ffff02a4: eb0004d2 bl f_15f4 ffff02a8: e1a00006 mov r0, r6 ffff02ac: ebffffcc bl f_01e4 ffff02b0: e3a02022 mov r2, #34 ; 0x22 ffff02b4: e1a00005 mov r0, r5 ffff02b8: e5961000 ldr r1, [r6] ffff02bc: ebffffa2 bl memcpy ffff02c0: e28dd020 add sp, sp, #32 ffff02c4: e8bd8070 pop {r4, r5, r6, pc} f_02c8: ffff02c8: e92d41f0 push {r4, r5, r6, r7, r8, lr} ffff02cc: e1a05000 mov r5, r0 ffff02d0: e1a06001 mov r6, r1 ffff02d4: e1a07002 mov r7, r2 ffff02d8: e1a04003 mov r4, r3 ffff02dc: e3a08000 mov r8, #0 ffff02e0: e3550000 cmp r5, #0 ffff02e4: 1a000001 bne 0xffff02f0 ffff02e8: e5968034 ldr r8, [r6, #52] ; 0x34 ffff02ec: ea000000 b 0xffff02f4 ffff02f0: e5968030 ldr r8, [r6, #48] ; 0x30 ffff02f4: e1a00008 mov r0, r8 ffff02f8: ebffffb9 bl f_01e4 ffff02fc: e3a00002 mov r0, #2 ffff0300: e5c70020 strb r0, [r7, #32] ffff0304: e1a00006 mov r0, r6 ffff0308: eb00018c bl f_0940 ffff030c: e1a00008 mov r0, r8 ffff0310: e8940006 ldm r4, {r1, r2} ffff0314: ebffffc3 bl f_0228 ffff0318: e3a02000 mov r2, #0 ffff031c: e1a01008 mov r1, r8 ffff0320: e1a00006 mov r0, r6 ffff0324: eb0004b2 bl f_15f4 ffff0328: e1a00008 mov r0, r8 ffff032c: ebffffac bl f_01e4 ffff0330: e8bd81f0 pop {r4, r5, r6, r7, r8, pc} f_0334: ffff0334: e92d41f0 push {r4, r5, r6, r7, r8, lr} ffff0338: e1a04000 mov r4, r0 ffff033c: e1a05001 mov r5, r1 ffff0340: e1a06002 mov r6, r2 ffff0344: e5d57010 ldrb r7, [r5, #16] ffff0348: e3570011 cmp r7, #17 ffff034c: 0a000002 beq 0xffff035c ffff0350: e3570012 cmp r7, #18 ffff0354: 1a00000e bne 0xffff0394 ffff0358: ea000006 b 0xffff0378 ffff035c: e320f000 nop {0} ffff0360: e1a03006 mov r3, r6 ffff0364: e1a02005 mov r2, r5 ffff0368: e1a01004 mov r1, r4 ffff036c: e3a00001 mov r0, #1 ffff0370: ebffffd4 bl f_02c8 ffff0374: ea000008 b 0xffff039c ffff0378: e320f000 nop {0} ffff037c: e1a03006 mov r3, r6 ffff0380: e1a02005 mov r2, r5 ffff0384: e1a01004 mov r1, r4 ffff0388: e3a00000 mov r0, #0 ffff038c: ebffffcd bl f_02c8 ffff0390: ea000001 b 0xffff039c ffff0394: e320f000 nop {0} ffff0398: e320f000 nop {0} ffff039c: e320f000 nop {0} ffff03a0: e8bd81f0 pop {r4, r5, r6, r7, r8, pc} f_03a4: ffff03a4: e92d41ff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} ffff03a8: e1a04000 mov r4, r0 ffff03ac: e1a05001 mov r5, r1 ffff03b0: e1a07002 mov r7, r2 ffff03b4: e3a06000 mov r6, #0 ffff03b8: e5946030 ldr r6, [r4, #48] ; 0x30 ffff03bc: e3a00003 mov r0, #3 ffff03c0: e5c50020 strb r0, [r5, #32] ffff03c4: e59f02fc ldr r0, =AWUS ffff03c8: e58d0000 str r0, [sp] ffff03cc: e5950004 ldr r0, [r5, #4] ffff03d0: e58d0004 str r0, [sp, #4] ffff03d4: e3a00000 mov r0, #0 ffff03d8: e58d0008 str r0, [sp, #8] ffff03dc: e5cd000c strb r0, [sp, #12] ffff03e0: e1a00004 mov r0, r4 ffff03e4: eb000155 bl f_0940 ffff03e8: e3a0200d mov r2, #13 ffff03ec: e1a0100d mov r1, sp ffff03f0: e1a00006 mov r0, r6 ffff03f4: ebffff8b bl f_0228 ffff03f8: e3a02000 mov r2, #0 ffff03fc: e1a01006 mov r1, r6 ffff0400: e1a00004 mov r0, r4 ffff0404: eb00047a bl f_15f4 ffff0408: e1a00006 mov r0, r6 ffff040c: ebffff74 bl f_01e4 ffff0410: e8bd81ff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, pc} f_0414: ffff0414: e92d4030 push {r4, r5, lr} ffff0418: e24dd024 sub sp, sp, #36 ; 0x24 ffff041c: e1a05000 mov r5, r0 ffff0420: e1a04001 mov r4, r1 ffff0424: e1a0000d mov r0, sp ffff0428: ebffff74 bl f_0200 ffff042c: e1a0100d mov r1, sp ffff0430: e1a00005 mov r0, r5 ffff0434: ebffff83 bl f_0248 ffff0438: e1a02004 mov r2, r4 ffff043c: e1a0100d mov r1, sp ffff0440: e1a00005 mov r0, r5 ffff0444: ebffffba bl f_0334 ffff0448: e1a02004 mov r2, r4 ffff044c: e1a0100d mov r1, sp ffff0450: e1a00005 mov r0, r5 ffff0454: ebffffd2 bl f_03a4 ffff0458: e3a00000 mov r0, #0 ffff045c: e5c40008 strb r0, [r4, #8] ffff0460: e28dd024 add sp, sp, #36 ; 0x24 ffff0464: e8bd8030 pop {r4, r5, pc} f_0468: ffff0468: e92d4070 push {r4, r5, r6, lr} ffff046c: e1a04000 mov r4, r0 ffff0470: e1a05001 mov r5, r1 ffff0474: e1a01005 mov r1, r5 ffff0478: e1a00004 mov r0, r4 ffff047c: ebffffe4 bl f_0414 ffff0480: e8bd8070 pop {r4, r5, r6, pc} /* prepare_response(void *data, u32 len) { memset(0x7d04, 0, 12); u32 0x7d04 = data; u32 0x7d08 = len; u8 0x7d0a = 2; return 0x7d04; } */ prepare_response: ffff0484: e92d4070 push {r4, r5, r6, lr} ffff0488: e1a04000 mov r4, r0 ffff048c: e1a05001 mov r5, r1 ffff0490: e3a0200c mov r2, #12 ffff0494: e3a01000 mov r1, #0 ffff0498: e59f022c ldr r0, =0x00007d04 ffff049c: ebffff34 bl memset ffff04a0: e59f0224 ldr r0, =0x00007d04 ffff04a4: e5804000 str r4, [r0] [=0x00007d04] ffff04a8: e5805004 str r5, [r0, #4] [=0x00007d08] ffff04ac: e3a00002 mov r0, #2 ffff04b0: e59f1214 ldr r1, =0x00007d04 ffff04b4: e5c10008 strb r0, [r1, #8] [=0x00007d0c] ffff04b8: e2810000 add r0, r1, #0 ffff04bc: e8bd8070 pop {r4, r5, r6, pc} handle_VERSION: ffff04c0: e92d4030 push {r4, r5, lr} ffff04c4: e24dd024 sub sp, sp, #36 ; 0x24 ffff04c8: e1a04000 mov r4, r0 ffff04cc: e3a05000 mov r5, #0 ffff04d0: e3a02020 mov r2, #32 ffff04d4: e3a01000 mov r1, #0 ffff04d8: e28d0004 add r0, sp, #4 ffff04dc: ebffff24 bl memset ffff04e0: e3a02008 mov r2, #8 ffff04e4: e28f1f79 ldr r1, =AWUSBFEX ffff04e8: e28d0004 add r0, sp, #4 ffff04ec: ebffff16 bl memcpy ffff04f0: e59f01e4 ldr r0, =0x00162300 ffff04f4: e58d000c str r0, [sp, #12] ffff04f8: e3a00001 mov r0, #1 ffff04fc: e58d0010 str r0, [sp, #16] ffff0500: e1cd01b4 strh r0, [sp, #20] ffff0504: e3a00044 mov r0, #68 ; 0x44 ffff0508: e5cd0016 strb r0, [sp, #22] ffff050c: e3a00008 mov r0, #8 ffff0510: e5cd0017 strb r0, [sp, #23] ffff0514: e3a00c7e ldr r0, =0x7e00 ffff0518: e58d0018 str r0, [sp, #24] ffff051c: e3a01020 mov r1, #32 ffff0520: e28d0004 add r0, sp, #4 ffff0524: ebffffd6 bl prepare_response ffff0528: e1a05000 mov r5, r0 ffff052c: e1a01005 mov r1, r5 ffff0530: e1a00004 mov r0, r4 ffff0534: ebffffb6 bl f_0414 ffff0538: e28dd024 add sp, sp, #36 ; 0x24 ffff053c: e8bd8030 pop {r4, r5, pc} f_0540: ffff0540: e92d407f push {r0, r1, r2, r3, r4, r5, r6, lr} ffff0544: e1a04000 mov r4, r0 ffff0548: e3a05000 mov r5, #0 ffff054c: e3a02010 mov r2, #16 ffff0550: e3a01000 mov r1, #0 ffff0554: e1a0000d mov r0, sp ffff0558: ebffff05 bl memset ffff055c: e3a00001 mov r0, #1 ffff0560: e1cd00b0 strh r0, [sp] ffff0564: e3a00000 mov r0, #0 ffff0568: e1cd00b2 strh r0, [sp, #2] ffff056c: e3a01010 mov r1, #16 ffff0570: e1a0000d mov r0, sp ffff0574: ebffffc2 bl prepare_response ffff0578: e1a05000 mov r5, r0 ffff057c: e1a01005 mov r1, r5 ffff0580: e1a00004 mov r0, r4 ffff0584: ebffffa2 bl f_0414 ffff0588: e8bd807f pop {r0, r1, r2, r3, r4, r5, r6, pc} f_058c: ffff058c: e92d407f push {r0, r1, r2, r3, r4, r5, r6, lr} ffff0590: e1a04000 mov r4, r0 ffff0594: e3a05000 mov r5, #0 ffff0598: e3a02010 mov r2, #16 ffff059c: e3a01000 mov r1, #0 ffff05a0: e1a0000d mov r0, sp ffff05a4: ebfffef2 bl memset ffff05a8: e3a00f7d mov r0, #500 ; 0x1f4 ffff05ac: e1cd00b2 strh r0, [sp, #2] ffff05b0: e3a00002 mov r0, #2 ffff05b4: e1cd00b0 strh r0, [sp] ffff05b8: e3a01010 mov r1, #16 ffff05bc: e1a0000d mov r0, sp ffff05c0: ebffffaf bl prepare_response ffff05c4: e1a05000 mov r5, r0 ffff05c8: e1a01005 mov r1, r5 ffff05cc: e1a00004 mov r0, r4 ffff05d0: ebffff8f bl f_0414 ffff05d4: e8bd807f pop {r0, r1, r2, r3, r4, r5, r6, pc} f_05d8: ffff05d8: e92d41f0 push {r4, r5, r6, r7, r8, lr} ffff05dc: e1a06000 mov r6, r0 ffff05e0: e1a04001 mov r4, r1 ffff05e4: e3a05000 mov r5, #0 ffff05e8: e3a07000 mov r7, #0 ffff05ec: e3540000 cmp r4, #0 ffff05f0: 1a000001 bne 0xffff05fc ffff05f4: e3a00001 mov r0, #1 ffff05f8: e8bd81f0 pop {r4, r5, r6, r7, r8, pc} ffff05fc: e1a05004 mov r5, r4 ffff0600: e1a04005 mov r4, r5 ffff0604: e5950008 ldr r0, [r5, #8] ffff0608: e3500000 cmp r0, #0 ffff060c: 1a000001 bne 0xffff0618 ffff0610: e3a00001 mov r0, #1 ffff0614: eafffff7 b 0xffff05f8 ffff0618: e5951008 ldr r1, [r5, #8] ffff061c: e5950004 ldr r0, [r5, #4] ffff0620: ebffff97 bl prepare_response ffff0624: e1a07000 mov r7, r0 ffff0628: e1a01007 mov r1, r7 ffff062c: e1a00006 mov r0, r6 ffff0630: ebffff77 bl f_0414 ffff0634: e3a00000 mov r0, #0 ffff0638: eaffffee b 0xffff05f8 f_063c: ffff063c: e92d41f0 push {r4, r5, r6, r7, r8, lr} ffff0640: e1a06000 mov r6, r0 ffff0644: e1a04001 mov r4, r1 ffff0648: e3a05000 mov r5, #0 ffff064c: e3a07000 mov r7, #0 ffff0650: e3540000 cmp r4, #0 ffff0654: 1a000001 bne 0xffff0660 ffff0658: e3a00001 mov r0, #1 ffff065c: e8bd81f0 pop {r4, r5, r6, r7, r8, pc} ffff0660: e1a05004 mov r5, r4 ffff0664: e1a04005 mov r4, r5 ffff0668: e5950008 ldr r0, [r5, #8] ffff066c: e3500000 cmp r0, #0 ffff0670: 1a000001 bne 0xffff067c ffff0674: e3a00001 mov r0, #1 ffff0678: eafffff7 b 0xffff065c ffff067c: e5951008 ldr r1, [r5, #8] ffff0680: e5950004 ldr r0, [r5, #4] ffff0684: ebffff7e bl prepare_response ffff0688: e1a07000 mov r7, r0 ffff068c: e1a01007 mov r1, r7 ffff0690: e1a00006 mov r0, r6 ffff0694: ebffff5e bl f_0414 ffff0698: e3a00000 mov r0, #0 ffff069c: eaffffee b 0xffff065c f_06a0: ffff06a0: e1a03000 mov r3, r0 ffff06a4: e3a02000 mov r2, #0 ffff06a8: e3510000 cmp r1, #0 ffff06ac: 1a000001 bne 0xffff06b8 ffff06b0: e3e00000 mvn r0, #0 ffff06b4: e12fff1e bx lr ffff06b8: e1a02001 mov r2, r1 ffff06bc: e1a01002 mov r1, r2 ffff06c0: e5920004 ldr r0, [r2, #4] ffff06c4: eafffffa b 0xffff06b4 AWUS: ffff06c8: "AWUS" AWUSBFEX: ffff06d0: "AWUSBFEX",0 f_06e0: ffff06e0: e92d41fc push {r2, r3, r4, r5, r6, r7, r8, lr} ffff06e4: e1a04000 mov r4, r0 ffff06e8: e1a05001 mov r5, r1 ffff06ec: e1a06002 mov r6, r2 ffff06f0: e3a07000 mov r7, #0 ffff06f4: e3a02008 mov r2, #8 ffff06f8: e3a01000 mov r1, #0 ffff06fc: e1a0000d mov r0, sp ffff0700: ebfffe9b bl memset ffff0704: e30f0fff movw r0, #65535 ; 0xffff ffff0708: e1cd00b0 strh r0, [sp] ffff070c: e1cd50b2 strh r5, [sp, #2] ffff0710: e5cd6004 strb r6, [sp, #4] ffff0714: e3a01008 mov r1, #8 ffff0718: e1a0000d mov r0, sp ffff071c: ebffff58 bl prepare_response ffff0720: e1a07000 mov r7, r0 ffff0724: e1a01007 mov r1, r7 ffff0728: e1a00004 mov r0, r4 ffff072c: ebffff38 bl f_0414 ffff0730: e8bd81fc pop {r2, r3, r4, r5, r6, r7, r8, pc} f_0734: ffff0734: e92d41f0 push {r4, r5, r6, r7, r8, lr} ffff0738: e1a04000 mov r4, r0 ffff073c: e1a05001 mov r5, r1 ffff0740: e1a06002 mov r6, r2 ffff0744: e3a07000 mov r7, #0 ffff0748: e1a02006 mov r2, r6 ffff074c: e3a01000 mov r1, #0 ffff0750: e1a00005 mov r0, r5 ffff0754: ebfffe86 bl memset ffff0758: e1a01006 mov r1, r6 ffff075c: e1a00005 mov r0, r5 ffff0760: ebffff47 bl prepare_response ffff0764: e1a07000 mov r7, r0 ffff0768: e1a01007 mov r1, r7 ffff076c: e1a00004 mov r0, r4 ffff0770: ebffff3c bl f_0468 ffff0774: e8bd81f0 pop {r4, r5, r6, r7, r8, pc} f_0778: ffff0778: e92d47ff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} ffff077c: e1a04000 mov r4, r0 ffff0780: e3a05000 mov r5, #0 ffff0784: e3a06000 mov r6, #0 ffff0788: e3a09000 mov r9, #0 ffff078c: e3a0a001 mov sl, #1 ffff0790: e3a02010 mov r2, #16 ffff0794: e1a0100d mov r1, sp ffff0798: e1a00004 mov r0, r4 ffff079c: ebffffe4 bl f_0734 ffff07a0: e1a0500d mov r5, sp ffff07a4: e1d560b0 ldrh r6, [r5] ffff07a8: e1d590b2 ldrh r9, [r5, #2] ffff07ac: e3560010 cmp r6, #16 ffff07b0: 0a000022 beq 0xffff0840 0x0010 ffff07b4: ca000008 bgt 0xffff07dc >0x0010 ffff07b8: e3560001 cmp r6, #1 ffff07bc: 0a00000e beq 0xffff07fc 0x0001 ffff07c0: e3560002 cmp r6, #2 ffff07c4: 0a000011 beq 0xffff0810 0x0002 ffff07c8: e3560003 cmp r6, #3 ffff07cc: 0a000011 beq 0xffff0818 0x0003 ffff07d0: e3560004 cmp r6, #4 ffff07d4: 1a000038 bne 0xffff08bc 0x0004 ffff07d8: ea000013 b 0xffff082c 0x00?? < 0x0010 # >0x0010 ffff07dc: e3e00c01 mvn r0, #256 ; 0x100 ffff07e0: e0900006 adds r0, r0, r6 ffff07e4: 0a000017 beq 0xffff0848 0x0100 ffff07e8: e3500001 cmp r0, #1 ffff07ec: 0a000021 beq 0xffff0878 0x0101 ffff07f0: e3500002 cmp r0, #2 ffff07f4: 1a000030 bne 0xffff08bc 0x0102 ffff07f8: ea000018 b 0xffff0860 0x???? # 0x0001 ffff07fc: e320f000 nop {0} ffff0800: e1a00004 mov r0, r4 ffff0804: ebffff2d bl handle_VERSION ffff0808: e3a0a000 mov sl, #0 ffff080c: ea00002d b 0xffff08c8 # 0x0002: ffff0810: e320f000 nop {0} ffff0814: ea00002b b 0xffff08c8 # 0x0003: ffff0818: e320f000 nop {0} ffff081c: e1a00004 mov r0, r4 ffff0820: ebffff59 bl f_058c ffff0824: e3a0a000 mov sl, #0 ffff0828: ea000026 b 0xffff08c8 # 0x00?? < 0x0010 ffff082c: e320f000 nop {0} ffff0830: e1a00004 mov r0, r4 ffff0834: ebffff41 bl f_0540 ffff0838: e3a0a000 mov sl, #0 ffff083c: ea000021 b 0xffff08c8 # 0x0010 ffff0840: e320f000 nop {0} ffff0844: ea00001f b 0xffff08c8 # 0x0100 ffff0848: e320f000 nop {0} ffff084c: e1a0100d mov r1, sp ffff0850: e1a00004 mov r0, r4 ffff0854: ebffff5f bl f_05d8 ffff0858: e1a0a000 mov sl, r0 ffff085c: ea000019 b 0xffff08c8 # 0x???? ffff0860: e320f000 nop {0} ffff0864: e1a0100d mov r1, sp ffff0868: e1a00004 mov r0, r4 ffff086c: ebffff72 bl f_063c ffff0870: e1a0a000 mov sl, r0 ffff0874: ea000013 b 0xffff08c8 # 0x0101 ffff0878: e320f000 nop {0} ffff087c: e3a07000 mov r7, #0 ffff0880: e1a0100d mov r1, sp ffff0884: e1a00004 mov r0, r4 ffff0888: ebffff84 bl f_06a0 ffff088c: e1a07000 mov r7, r0 ffff0890: e3a0a000 mov sl, #0 ffff0894: e1a0200a mov r2, sl ffff0898: e1a01009 mov r1, r9 ffff089c: e1a00004 mov r0, r4 ffff08a0: ebffff8e bl f_06e0 ffff08a4: e1a00004 mov r0, r4 ffff08a8: eb000667 bl f_224c ffff08ac: e1a08007 mov r8, r7 ffff08b0: e1a07008 mov r7, r8 ffff08b4: e12fff38 blx r8 ffff08b8: e8bd87ff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} # 0x0102 ffff08bc: e320f000 nop {0} ffff08c0: e3a0a001 mov sl, #1 ffff08c4: e320f000 nop {0} ffff08c8: e320f000 nop {0} ffff08cc: e1a0200a mov r2, sl ffff08d0: e1a01009 mov r1, r9 ffff08d4: e1a00004 mov r0, r4 ffff08d8: ebffff80 bl f_06e0 ffff08dc: eafffff5 b 0xffff08b8 fel_main_loop: ffff08e0: e92d4070 push {r4, r5, r6, lr} ffff08e4: e1a05000 mov r5, r0 ffff08e8: e3a04000 mov r4, #0 ffff08ec: ea000003 b .first ffff08f0:.loop ebfffe39 bl f_NOP1 ffff08f4: e1a00005 mov r0, r5 ffff08f8: ebffff9e bl f_0778 ffff08fc: e2844001 add r4, r4, #1 ffff0900:.first eafffffa b .loop f0904: ffff0904: e3a01000 mov r1, #0 ffff0908: e5c01018 strb r1, [r0, #24] ffff090c: e12fff1e bx lr f0910: ffff0910: e3a01000 mov r1, #0 ffff0914: e5c01018 strb r1, [r0, #24] ffff0918: e12fff1e bx lr f091c: ffff091c: e3a01000 mov r1, #0 ffff0920: e5c01018 strb r1, [r0, #24] ffff0924: e12fff1e bx lr f_0928: ffff0928: e3a00000 mov r0, #0 ffff092c: e59f1e20 ldr r1, =0x1c20000 ffff0930: e5910444 ldr r0, [r1, #1092] ; 0x444 = 0x1c20444 = INTC 0x44 ffff0934: e3800040 orr r0, r0, #64 ; 0x40 ffff0938: e5810444 str r0, [r1, #1092] ; 0x444 = 0x1c20444 = INTC 0x44 ffff093c: e12fff1e bx lr f_0940: ffff0940: e1a01000 mov r1, r0 ffff0944: e10f0000 mrs r0, CPSR ffff0948: e3800080 orr r0, r0, #128 ; 0x80 ffff094c: e121f000 msr CPSR_c, r0 ffff0950: e12fff1e bx lr f_0954: ffff0954: e1a01000 mov r1, r0 ffff0958: e10f0000 mrs r0, CPSR ffff095c: e3c00080 bic r0, r0, #128 ; 0x80 ffff0960: e121f000 msr CPSR_c, r0 ffff0964: e12fff1e bx lr /* void set_epind(id) { usb0->epind = id; } */ set_epind: ffff0968: e59f1de8 ldr r1, =USB0_BASE ffff096c: e5c10042 strb r0, [r1, #66] ; 0x42 = USB0_EPIND ffff0970: e12fff1e bx lr /* int get_epind(id) { return usb0->epind; } */ get_epind: ffff0974: e59f0ddc ldr r0, =USB0_BASE ffff0978: e5d00042 ldrb r0, [r0, #66] ; 0x42 ffff097c: e12fff1e bx lr /* [r0] = struct something { u8 x00 = 18; u8 x01 = 1; u16 x02 = 0x110; u8 x04 = 0; u8 x05 = 0; u8 x06 = 0; u8 x07 = 0x40; u16 x08 = 0x1f3a; u16 x0a = 0xefe8; u16 x0c = 0x02b3; u8 x0e = 0; u8 x0f = 0; u8 x10 = 0; u8 x11 = 1; } */ f_0980: ffff0980: e3a01012 mov r1, #18 ffff0984: e5c01000 strb r1, [r0] ffff0988: e3a01001 mov r1, #1 ffff098c: e5c01001 strb r1, [r0, #1] ffff0990: e3a01e11 mov r1, #272 ; 0x110 ffff0994: e1c010b2 strh r1, [r0, #2] ffff0998: e3a01000 mov r1, #0 ffff099c: e5c01004 strb r1, [r0, #4] ffff09a0: e5c01005 strb r1, [r0, #5] ffff09a4: e5c01006 strb r1, [r0, #6] ffff09a8: e3a01040 mov r1, #64 ; 0x40 ffff09ac: e5c01007 strb r1, [r0, #7] ffff09b0: e3011f3a movw r1, #7994 ; 0x1f3a ffff09b4: e1c010b8 strh r1, [r0, #8] ffff09b8: e30e1fe8 movw r1, #61416 ; 0xefe8 ffff09bc: e1c010ba strh r1, [r0, #10] ffff09c0: e30012b3 movw r1, #691 ; 0x2b3 ffff09c4: e1c010bc strh r1, [r0, #12] ffff09c8: e3a01000 mov r1, #0 ffff09cc: e5c0100e strb r1, [r0, #14] ffff09d0: e5c0100f strb r1, [r0, #15] ffff09d4: e5c01010 strb r1, [r0, #16] ffff09d8: e3a01001 mov r1, #1 ffff09dc: e5c01011 strb r1, [r0, #17] ffff09e0: e12fff1e bx lr f_09e4: ffff09e4: e3a0100a mov r1, #10 ffff09e8: e5c01000 strb r1, [r0] ffff09ec: e3a01002 mov r1, #2 ffff09f0: e5c01001 strb r1, [r0, #1] ffff09f4: e3a01020 mov r1, #32 ffff09f8: e1c010b2 strh r1, [r0, #2] ffff09fc: e3a01001 mov r1, #1 ffff0a00: e5c01004 strb r1, [r0, #4] ffff0a04: e5c01005 strb r1, [r0, #5] ffff0a08: e3a01000 mov r1, #0 ffff0a0c: e5c01006 strb r1, [r0, #6] ffff0a10: e3a01080 mov r1, #128 ; 0x80 ffff0a14: e5c01007 strb r1, [r0, #7] ffff0a18: e3a01096 mov r1, #150 ; 0x96 ffff0a1c: e5c01008 strb r1, [r0, #8] ffff0a20: e12fff1e bx lr f_0a24: ffff0a24: e3a01009 mov r1, #9 ffff0a28: e5c01000 strb r1, [r0] ffff0a2c: e3a01004 mov r1, #4 ffff0a30: e5c01001 strb r1, [r0, #1] ffff0a34: e3a01000 mov r1, #0 ffff0a38: e5c01002 strb r1, [r0, #2] ffff0a3c: e5c01003 strb r1, [r0, #3] ffff0a40: e3a01002 mov r1, #2 ffff0a44: e5c01004 strb r1, [r0, #4] ffff0a48: e3a010ff mov r1, #255 ; 0xff ffff0a4c: e5c01005 strb r1, [r0, #5] ffff0a50: e5c01006 strb r1, [r0, #6] ffff0a54: e5c01007 strb r1, [r0, #7] ffff0a58: e3a01000 mov r1, #0 ffff0a5c: e5c01008 strb r1, [r0, #8] ffff0a60: e12fff1e bx lr f_0a64: ffff0a64: e3a01007 mov r1, #7 ffff0a68: e5c01000 strb r1, [r0] ffff0a6c: e3a01005 mov r1, #5 ffff0a70: e5c01001 strb r1, [r0, #1] ffff0a74: e3a01040 mov r1, #64 ; 0x40 ffff0a78: e1c010b4 strh r1, [r0, #4] ffff0a7c: e3a01001 mov r1, #1 ffff0a80: e5c01002 strb r1, [r0, #2] ffff0a84: e3a01002 mov r1, #2 ffff0a88: e5c01003 strb r1, [r0, #3] ffff0a8c: e3a01000 mov r1, #0 ffff0a90: e5c01006 strb r1, [r0, #6] ffff0a94: e12fff1e bx lr f_0a98: ffff0a98: e3a01007 mov r1, #7 ffff0a9c: e5c01000 strb r1, [r0] ffff0aa0: e3a01005 mov r1, #5 ffff0aa4: e5c01001 strb r1, [r0, #1] ffff0aa8: e3a01040 mov r1, #64 ; 0x40 ffff0aac: e1c010b4 strh r1, [r0, #4] ffff0ab0: e3a01082 mov r1, #130 ; 0x82 ffff0ab4: e5c01002 strb r1, [r0, #2] ffff0ab8: e3a01002 mov r1, #2 ffff0abc: e5c01003 strb r1, [r0, #3] ffff0ac0: e3a01000 mov r1, #0 ffff0ac4: e5c01006 strb r1, [r0, #6] ffff0ac8: e12fff1e bx lr f_0acc: ffff0acc: e5802000 str r2, [r0] ffff0ad0: e5801004 str r1, [r0, #4] ffff0ad4: e12fff1e bx lr f_NOP4: ffff0ad8: e12fff1e bx lr f_NOP5: ffff0adc: e12fff1e bx lr f_NOP6: ffff0ae0: e12fff1e bx lr f_0a4e: ffff0ae4: e92d4010 push {r4, lr} ffff0ae8: e3a03000 mov r3, #0 ffff0aec: e5c03005 strb r3, [r0, #5] ffff0af0: e5c03006 strb r3, [r0, #6] ffff0af4: e5803000 str r3, [r0] ffff0af8: e5c03004 strb r3, [r0, #4] ffff0afc: e3a03040 mov r3, #64 ; 0x40 ffff0b00: e5803008 str r3, [r0, #8] ffff0b04: e3a03000 mov r3, #0 ffff0b08: e580300c str r3, [r0, #12] ffff0b0c: e5d13002 ldrb r3, [r1, #2] ffff0b10: e5c03015 strb r3, [r0, #21] ffff0b14: e5d13003 ldrb r3, [r1, #3] ffff0b18: e5c03016 strb r3, [r0, #22] ffff0b1c: e5801010 str r1, [r0, #16] ffff0b20: e3a03001 mov r3, #1 ffff0b24: e5c03014 strb r3, [r0, #20] ffff0b28: e1d130b4 ldrh r3, [r1, #4] ffff0b2c: e5803018 str r3, [r0, #24] ffff0b30: e3a03000 mov r3, #0 ffff0b34: e580301c str r3, [r0, #28] ffff0b38: e5d23002 ldrb r3, [r2, #2] ffff0b3c: e5c03025 strb r3, [r0, #37] ; 0x25 ffff0b40: e5d23003 ldrb r3, [r2, #3] ffff0b44: e5c03026 strb r3, [r0, #38] ; 0x26 ffff0b48: e5802020 str r2, [r0, #32] ffff0b4c: e3a03002 mov r3, #2 ffff0b50: e5c03024 strb r3, [r0, #36] ; 0x24 ffff0b54: e1d230b4 ldrh r3, [r2, #4] ffff0b58: e5803028 str r3, [r0, #40] ; 0x28 ffff0b5c: e3a03000 mov r3, #0 ffff0b60: e580302c str r3, [r0, #44] ; 0x2c ffff0b64: e5803030 str r3, [r0, #48] ; 0x30 ffff0b68: e5c03034 strb r3, [r0, #52] ; 0x34 ffff0b6c: e5803038 str r3, [r0, #56] ; 0x38 ffff0b70: e5c0303c strb r3, [r0, #60] ; 0x3c ffff0b74: e5c0303d strb r3, [r0, #61] ; 0x3d ffff0b78: e8bd8010 pop {r4, pc} f_0b7c: ffff0b7c: e92d4010 push {r4, lr} ffff0b80: e5801000 str r1, [r0] ffff0b84: e3a04000 mov r4, #0 ffff0b88: e5c04004 strb r4, [r0, #4] ffff0b8c: e5804008 str r4, [r0, #8] ffff0b90: e5802014 str r2, [r0, #20] ffff0b94: e5804018 str r4, [r0, #24] ffff0b98: e580300c str r3, [r0, #12] ffff0b9c: e5804010 str r4, [r0, #16] ffff0ba0: e8bd8010 pop {r4, pc} f_0ba4: ffff0ba4: e5801000 str r1, [r0] ffff0ba8: e3a02000 mov r2, #0 ffff0bac: e5802004 str r2, [r0, #4] ffff0bb0: e59f2ba4 ldr r2, =f0904 ffff0bb4: e580200c str r2, [r0, #12] ffff0bb8: e3a02000 mov r2, #0 ffff0bbc: e5802010 str r2, [r0, #16] ffff0bc0: e5c02008 strb r2, [r0, #8] ffff0bc4: e5c02018 strb r2, [r0, #24] ffff0bc8: e5802014 str r2, [r0, #20] ffff0bcc: e12fff1e bx lr f_0bd0: ffff0bd0: e5801000 str r1, [r0] ffff0bd4: e3a02000 mov r2, #0 ffff0bd8: e5802004 str r2, [r0, #4] ffff0bdc: e59f2b7c ldr r2, =f091c ffff0be0: e580200c str r2, [r0, #12] ffff0be4: e3a02000 mov r2, #0 ffff0be8: e5802010 str r2, [r0, #16] ffff0bec: e5c02008 strb r2, [r0, #8] ffff0bf0: e5c02018 strb r2, [r0, #24] ffff0bf4: e3a02001 mov r2, #1 ffff0bf8: e5802014 str r2, [r0, #20] ffff0bfc: e12fff1e bx lr f_0c00: ffff0c00: e5801000 str r1, [r0] ffff0c04: e3a02000 mov r2, #0 ffff0c08: e5802004 str r2, [r0, #4] ffff0c0c: e59f2b50 ldr r2, =f0910 ffff0c10: e580200c str r2, [r0, #12] ffff0c14: e3a02000 mov r2, #0 ffff0c18: e5802010 str r2, [r0, #16] ffff0c1c: e5c02008 strb r2, [r0, #8] ffff0c20: e5c02018 strb r2, [r0, #24] ffff0c24: e3a02002 mov r2, #2 ffff0c28: e5802014 str r2, [r0, #20] ffff0c2c: e12fff1e bx lr f_0c30: ffff0c30: e92d4010 push {r4, lr} ffff0c34: e580100c str r1, [r0, #12] ffff0c38: e580201c str r2, [r0, #28] ffff0c3c: e580302c str r3, [r0, #44] ; 0x2c ffff0c40: e8bd8010 pop {r4, pc} f_0c44: ffff0c44: e3a00000 mov r0, #0 ffff0c48: e59f1b08 ldr r1, =USB0_BASE ffff0c4c: e5d10040 ldrb r0, [r1, #64] ; 0x40 ffff0c50: e3c00020 bic r0, r0, #32 ffff0c54: e5c10040 strb r0, [r1, #64] ; 0x40 ffff0c58: e5d10040 ldrb r0, [r1, #64] ; 0x40 ffff0c5c: e12fff1e bx lr f_0c60: ffff0c60: e3a02000 mov r2, #0 ffff0c64: e3a01000 mov r1, #0 ffff0c68: e59f0ae4 ldr r0, =0x1c20000 ffff0c6c: e5902050 ldr r2, [r0, #80] ; 0x50 ffff0c70: e3822902 orr r2, r2, #32768 ; 0x8000 ffff0c74: e5802050 str r2, [r0, #80] ; 0x50 ffff0c78: e5902000 ldr r2, [r0] ffff0c7c: e59f0ae4 ldr r0, =0x7ffce0cc ffff0c80: e0022000 and r2, r2, r0 ffff0c84: e3822102 orr r2, r2, #-2147483648 ; 0x80000000 ffff0c88: e3822b05 orr r2, r2, #5120 ; 0x1400 ffff0c8c: e59f0ac0 ldr r0, =0x1c20000 ffff0c90: e5802000 str r2, [r0] ffff0c94: e30c1350 movw r1, #50000 ; 0xc350 ffff0c98: e320f000 nop {0} ffff0c9c: e1b00001 movs r0, r1 ffff0ca0: e2411001 sub r1, r1, #1 ffff0ca4: 1afffffc bne 0xffff0c9c ffff0ca8: e59f0aa4 ldr r0, =0x1c20000 ffff0cac: e5902054 ldr r2, [r0, #84] ; 0x54 ffff0cb0: e3000333 movw r0, #819 ; 0x333 ffff0cb4: e1c22000 bic r2, r2, r0 ffff0cb8: e3000113 movw r0, #275 ; 0x113 ffff0cbc: e1822000 orr r2, r2, r0 ffff0cc0: e59f0a8c ldr r0, =0x1c20000 ffff0cc4: e5802054 str r2, [r0, #84] ; 0x54 ffff0cc8: e5902054 ldr r2, [r0, #84] ; 0x54 ffff0ccc: e3c22803 bic r2, r2, #196608 ; 0x30000 ffff0cd0: e3822802 orr r2, r2, #131072 ; 0x20000 ffff0cd4: e5802054 str r2, [r0, #84] ; 0x54 ffff0cd8: e12fff1e bx lr f_0cdc: ffff0cdc: e3a00000 mov r0, #0 ffff0ce0: e59f1a70 ldr r1, =USB0_BASE ffff0ce4: e5910400 ldr r0, [r1, #1024] ; 0x400 ffff0ce8: e3800903 orr r0, r0, #49152 ; 0xc000 ffff0cec: e5810400 str r0, [r1, #1024] ; 0x400 ffff0cf0: e12fff1e bx lr f_0cf4: ffff0cf4: e3a01000 mov r1, #0 ffff0cf8: e3a00000 mov r0, #0 ffff0cfc: e59f2a54 ldr r2, =USB0_BASE ffff0d00: e5921400 ldr r1, [r2, #1024] ; 0x400 ffff0d04: e3811801 orr r1, r1, #65536 ; 0x10000 ffff0d08: e5821400 str r1, [r2, #1024] ; 0x400 ffff0d0c: e3a00e7d mov r0, #2000 ; 0x7d0 ffff0d10: e320f000 nop {0} ffff0d14: e1b02000 movs r2, r0 ffff0d18: e2400001 sub r0, r0, #1 ffff0d1c: 1afffffc bne 0xffff0d14 ffff0d20: e3811b03 orr r1, r1, #3072 ; 0xc00 ffff0d24: e59f2a2c ldr r2, =USB0_BASE ffff0d28: e5821400 str r1, [r2, #1024] ; 0x400 ffff0d2c: e12fff1e bx lr f_0d30: ffff0d30: e3a01000 mov r1, #0 ffff0d34: e59f0a1c ldr r0, =USB0_BASE ffff0d38: e5d02400 ldrb r2, [r0, #1024] ; 0x400 ffff0d3c: e3120303 tst r2, #201326592 ; 0xc000000 ffff0d40: 1a00000a bne 0xffff0d70 ffff0d44: e59f0a0c ldr r0, =USB0_BASE ffff0d48: e5d00041 ldrb r0, [r0, #65] ; 0x41 ffff0d4c: e2000018 and r0, r0, #24 ffff0d50: e3500018 cmp r0, #24 ffff0d54: 0a000003 beq 0xffff0d68 ffff0d58: e59f09f8 ldr r0, =USB0_BASE ffff0d5c: e5901400 ldr r1, [r0, #1024] ; 0x400 ffff0d60: e3811a03 orr r1, r1, #12288 ; 0x3000 ffff0d64: e5801400 str r1, [r0, #1024] ; 0x400 ffff0d68: e3a00001 mov r0, #1 ffff0d6c: e12fff1e bx lr ffff0d70: e3a00000 mov r0, #0 ffff0d74: eafffffc b 0xffff0d6c f_0d78: ffff0d78: e3a00000 mov r0, #0 ffff0d7c: e59f19d4 ldr r1, =USB0_BASE ffff0d80: e5910400 ldr r0, [r1, #1024] ; 0x400 ffff0d84: e3c00801 bic r0, r0, #65536 ; 0x10000 ffff0d88: e5810400 str r0, [r1, #1024] ; 0x400 ffff0d8c: e12fff1e bx lr f_0d90: ffff0d90: e59f09c0 ldr r0, =USB0_BASE ffff0d94: e5d02041 ldrb r2, [r0, #65] ; 0x41 ffff0d98: e2020080 and r0, r2, #128 ; 0x80 ffff0d9c: e3500080 cmp r0, #128 ; 0x80 ffff0da0: 1a000006 bne 0xffff0dc0 ffff0da4: e59f09ac ldr r0, =USB0_BASE ffff0da8: e5d01041 ldrb r1, [r0, #65] ; 0x41 ffff0dac: e3110001 tst r1, #1 ffff0db0: 0a000001 beq 0xffff0dbc ffff0db4: e3a00001 mov r0, #1 ffff0db8: e12fff1e bx lr ffff0dbc: e320f000 nop {0} ffff0dc0: e3a00000 mov r0, #0 ffff0dc4: eafffffb b 0xffff0db8 f_0dc8: ffff0dc8: e92d4010 push {r4, lr} ffff0dcc: e3a00000 mov r0, #0 ffff0dd0: e59f197c ldr r1, =0x1c20000 ffff0dd4: e5810440 str r0, [r1, #1088] ; 0x1c20440 ffff0dd8: e5810444 str r0, [r1, #1092] ; 0x1c20444 ffff0ddc: e5810448 str r0, [r1, #1096] ; 0x1c20448 ffff0de0: ebffffbd bl f_0cdc ffff0de4: ebffffc2 bl f_0cf4 ffff0de8: ea000009 b 0xffff0e14 ffff0dec: ebffffe7 bl f_0d90 ffff0df0: e1a03000 mov r3, r0 ffff0df4: ebffffcd bl f_0d30 ffff0df8: e1a04000 mov r4, r0 ffff0dfc: e3530000 cmp r3, #0 ffff0e00: 1a000001 bne 0xffff0e0c ffff0e04: e3540000 cmp r4, #0 ffff0e08: 0a000000 beq 0xffff0e10 ffff0e0c: ea000001 b 0xffff0e18 ffff0e10: e320f000 nop {0} ffff0e14: eafffff4 b 0xffff0dec ffff0e18: e320f000 nop {0} ffff0e1c: ebffffd5 bl f_0d78 ffff0e20: ebffff8e bl f_0c60 ffff0e24: e8bd8010 pop {r4, pc} f_0e28: ffff0e28: e92d4070 push {r4, r5, r6, lr} ffff0e2c: e1a04000 mov r4, r0 ffff0e30: e3a05000 mov r5, #0 ffff0e34: e5d40004 ldrb r0, [r4, #4] ffff0e38: ebfffeca bl set_epind ffff0e3c: e5d40005 ldrb r0, [r4, #5] ffff0e40: e3100080 tst r0, #128 ; 0x80 ffff0e44: 0a00000d beq 0xffff0e80 ffff0e48: e3a00048 mov r0, #72 ; 0x48 ffff0e4c: e59f1904 ldr r1, =USB0_BASE ffff0e50: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff0e54: e5940008 ldr r0, [r4, #8] ffff0e58: e7df059f bfc r0, #11, #21 ffff0e5c: e5810080 str r0, [r1, #128] ; 0x80 ffff0e60: e1a00001 mov r0, r1 ffff0e64: e5d05048 ldrb r5, [r0, #72] ; 0x48 ffff0e68: e5d40004 ldrb r0, [r4, #4] ffff0e6c: e3a01001 mov r1, #1 ffff0e70: e1850011 orr r0, r5, r1, lsl r0 ffff0e74: e59f18dc ldr r1, =USB0_BASE ffff0e78: e5c10048 strb r0, [r1, #72] ; 0x48 ffff0e7c: ea00000c b 0xffff0eb4 ffff0e80: e3a00090 mov r0, #144 ; 0x90 ffff0e84: e59f18cc ldr r1, =USB0_BASE ffff0e88: e1c108b6 strh r0, [r1, #134] ; 0x86 ffff0e8c: e5940008 ldr r0, [r4, #8] ffff0e90: e7df059f bfc r0, #11, #21 ffff0e94: e1c108b4 strh r0, [r1, #132] ; 0x84 ffff0e98: e1a00001 mov r0, r1 ffff0e9c: e5d0504a ldrb r5, [r0, #74] ; 0x4a ffff0ea0: e5d40004 ldrb r0, [r4, #4] ffff0ea4: e3a01001 mov r1, #1 ffff0ea8: e1850011 orr r0, r5, r1, lsl r0 ffff0eac: e59f18a4 ldr r1, =USB0_BASE ffff0eb0: e5c1004a strb r0, [r1, #74] ; 0x4a ffff0eb4: e8bd8070 pop {r4, r5, r6, pc} f_0eb8: ffff0eb8: e92d4010 push {r4, lr} ffff0ebc: e1a04000 mov r4, r0 ffff0ec0: e5941024 ldr r1, [r4, #36] ; 0x24 ffff0ec4: e2810020 add r0, r1, #32 ffff0ec8: ebffffd6 bl f_0e28 ffff0ecc: e5941024 ldr r1, [r4, #36] ; 0x24 ffff0ed0: e2810010 add r0, r1, #16 ffff0ed4: ebffffd3 bl f_0e28 ffff0ed8: e8bd8010 pop {r4, pc} f_0edc: ffff0edc: e92d4070 push {r4, r5, r6, lr} ffff0ee0: e1a04000 mov r4, r0 ffff0ee4: e3a05000 mov r5, #0 ffff0ee8: e3a00000 mov r0, #0 ffff0eec: e59f1860 ldr r1, =0x1c20000 ffff0ef0: e5810440 str r0, [r1, #1088] ; 0x440 ffff0ef4: e5810444 str r0, [r1, #1092] ; 0x444 ffff0ef8: e5810448 str r0, [r1, #1096] ; 0x448 ffff0efc: ebffff50 bl f_0c44 ffff0f00: e3a00507 mov r0, #29360128 ; 0x1c00000 ffff0f04: e5905004 ldr r5, [r0, #4] ffff0f08: e3855001 orr r5, r5, #1 ffff0f0c: e5805004 str r5, [r0, #4] ffff0f10: e3a00001 mov r0, #1 ffff0f14: e59f183c ldr r1, =USB0_BASE ffff0f18: e5c10042 strb r0, [r1, #66] ; 0x42 ; USB0_EPIND = 1 ffff0f1c: e3a00007 mov r0, #7 ffff0f20: e5c10094 strb r0, [r1, #148] ; 0x94 ; USB0_RXFIFOSZ = 7 ffff0f24: e3a00080 mov r0, #128 ; 0x80 ffff0f28: e1c109b6 strh r0, [r1, #150] ; 0x96 ; USB0_RXFIFOAD = 0x80 ffff0f2c: e3a00002 mov r0, #2 ffff0f30: e5c10042 strb r0, [r1, #66] ; 0x42 ; USB0_EPIND = 2 ffff0f34: e3a00007 mov r0, #7 ffff0f38: e5c10090 strb r0, [r1, #144] ; 0x90 ; USB0_RXFIFOSZ = 7 ffff0f3c: e3a00c01 mov r0, #256 ; 0x100 ffff0f40: e1c109b2 strh r0, [r1, #146] ; 0x92 ; USB0_TXFIFOAD = 0x100 ffff0f44: e3a00007 mov r0, #7 ffff0f48: e5c10050 strb r0, [r1, #80] ; 0x50 ; USB0_INTUSBE = 7 ffff0f4c: e1c10000 bic r0, r1, r0 ffff0f50: e5d00048 ldrb r0, [r0, #72] ; 0x48 ffff0f54: e3800001 orr r0, r0, #1 ffff0f58: e5c10048 strb r0, [r1, #72] ; 0x48 ffff0f5c: e59f0808 ldr r0, =0x7d00 ffff0f60: e5900000 ldr r0, [r0] ffff0f64: ebffffd3 bl f_0eb8 ffff0f68: e3a00002 mov r0, #2 ffff0f6c: e5941024 ldr r1, [r4, #36] ; 0x24 ffff0f70: e5c10034 strb r0, [r1, #52] ; 0x34 ffff0f74: ebffff93 bl f_0dc8 ffff0f78: e59f07d8 ldr r0, =USB0_BASE ffff0f7c: e5d00040 ldrb r0, [r0, #64] ; 0x40 = USB0_PCTL ffff0f80: e3800040 orr r0, r0, #64 ; 0x40 ; USB0_PCTL |= SOFT_CONNECT ffff0f84: e59f17cc ldr r1, =USB0_BASE ffff0f88: e5c10040 strb r0, [r1, #64] ; 0x40 = USB0_PCTL ffff0f8c: e8bd8070 pop {r4, r5, r6, pc} f_0f90: ffff0f90: e92d4010 push {r4, lr} ffff0f94: e1a04000 mov r4, r0 ffff0f98: e59f07b8 ldr r0, =USB0_BASE ffff0f9c: e5d00043 ldrb r0, [r0, #67] ; 0x43 = USB0_VEND0 ffff0fa0: e20000fe and r0, r0, #254 ; 0xfe ffff0fa4: e59f17ac ldr r1, =USB0_BASE ffff0fa8: e5c10043 strb r0, [r1, #67] ; 0x43 = USB0_VEND0 ffff0fac: e1a00004 mov r0, r4 ffff0fb0: ebffffc9 bl f_0edc ffff0fb4: ebfffe5b bl f_0928 ffff0fb8: e1a00004 mov r0, r4 ffff0fbc: ebfffe64 bl f_0954 ffff0fc0: ebfffc86 bl f_NOP2 ffff0fc4: e8bd8010 pop {r4, pc} int usb_get_ep_fifo(struct endpoint *ep, int *epid, u32 **epfifo ) { int id = ep->id & 0x7f; // .b ep+5 if (id <= 4) { switch(id) { case 0: case 1: *epid = 0; *epfifo = USBC_REG_EPFIFO0(USBC0_BASE); break; case 2: *epid = 1; *epfifo = USBC_REG_EPFIFO1(USBC0_BASE); break; case 3: *epid = 2; *epfifo = USBC_REG_EPFIFO2(USBC0_BASE); break; case 4: *epid = 3; *epfifo = USBC_REG_EPFIFO3(USBC0_BASE); break; case 5: // ??? Can not be reached?? *epid = 4; *epfifo = USBC_REG_EPFIFO4(USBC0_BASE); break; } } return 0; // Always 0? No error indication? } f_0fc8: ffff0fc8: e1a03000 mov r3, r0 ffff0fcc: e5d30005 ldrb r0, [r3, #5] ffff0fd0: e200007f and r0, r0, #127 ; 0x7f ffff0fd4: e3500004 cmp r0, #4 ffff0fd8: da000001 ble 0xffff0fe4 ffff0fdc: e3e00000 mvn r0, #0 ffff0fe0: e12fff1e bx lr ffff0fe4: e5d30005 ldrb r0, [r3, #5] ffff0fe8: e200007f and r0, r0, #127 ; 0x7f ffff0fec: e3500005 cmp r0, #5 ffff0ff0: 308ff100 addcc pc, pc, r0, lsl #2 ffff0ff4: ea000004 b 0xffff100c // 0 ffff0ff8: ea000005 b 0xffff1014 // 1 ffff0ffc: ea000009 b 0xffff1028 // 2 ffff1000: ea00000e b 0xffff1040 // 3 ffff1004: ea000013 b 0xffff1058 // 4 ffff1008: ea000018 b 0xffff1070 // 5??? (id <= 4 above) ffff100c: e320f000 nop {0} ffff1010: e320f000 nop {0} ffff1014: e3a00000 mov r0, #0 ffff1018: e5810000 str r0, [r1] ffff101c: e59f0734 ldr r0, =USB0_EPFIFO0 ffff1020: e5820000 str r0, [r2] ffff1024: ea000017 b 0xffff1088 ffff1028: e320f000 nop {0} ffff102c: e3a00001 mov r0, #1 ffff1030: e5810000 str r0, [r1] ffff1034: e59f0734 ldr r0, =USB0_EPFIFO1 ffff1038: e5820000 str r0, [r2] ffff103c: ea000011 b 0xffff1088 ffff1040: e320f000 nop {0} ffff1044: e3a00002 mov r0, #2 ffff1048: e5810000 str r0, [r1] ffff104c: e59f0720 ldr r0, =USB0_EPFIFO2 ffff1050: e5820000 str r0, [r2] ffff1054: ea00000b b 0xffff1088 ffff1058: e320f000 nop {0} ffff105c: e3a00003 mov r0, #3 ffff1060: e5810000 str r0, [r1] ffff1064: e59f070c ldr r0, =USB0_EPFIFO3 ffff1068: e5820000 str r0, [r2] ffff106c: ea000005 b 0xffff1088 ffff1074: e3a00004 mov r0, #4 ffff1078: e5810000 str r0, [r1] ffff107c: e59f06f8 ldr r0, =USB0_EPFIFO4 ffff1080: e5820000 str r0, [r2] ffff1084: e320f000 nop {0} ffff1088: e320f000 nop {0} ffff108c: e3a00000 mov r0, #0 ffff1090: eaffffd2 b 0xffff0fe0 f_NOP3: ffff1094: e12fff1e bx lr f_1098: ffff1098: e92d4070 push {r4, r5, r6, lr} ffff109c: e1a06000 mov r6, r0 ffff10a0: e1a04001 mov r4, r1 ffff10a4: e1a05002 mov r5, r2 ffff10a8: e6af0075 sxtb r0, r5 ffff10ac: e5c40018 strb r0, [r4, #24] ffff10b0: e594100c ldr r1, [r4, #12] ffff10b4: e1a00004 mov r0, r4 ffff10b8: e12fff31 blx r1 ffff10bc: e8bd8070 pop {r4, r5, r6, pc} f_10c0: ffff10c0: e92d47fc push {r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} ffff10c4: e1a04000 mov r4, r0 ffff10c8: e1a05001 mov r5, r1 ffff10cc: e1a06002 mov r6, r2 ffff10d0: e3a09000 mov r9, #0 ffff10d4: e1a0200d mov r2, sp ffff10d8: e28d1004 add r1, sp, #4 ffff10dc: e1a00005 mov r0, r5 ffff10e0: ebffffb8 bl f_0fc8 ffff10e4: e3500000 cmp r0, #0 ffff10e8: 0a000001 beq 0xffff10f4 ffff10ec: e3e00000 mvn r0, #0 ffff10f0: e8bd87fc pop {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} ffff10f4: e5957008 ldr r7, [r5, #8] ffff10f8: e1a02007 mov r2, r7 ffff10fc: e1a01006 mov r1, r6 ffff1100: e59d0000 ldr r0, [sp] ffff1104: eb00047e bl f_2304 ffff1108: e1a07000 mov r7, r0 ffff110c: e5950008 ldr r0, [r5, #8] ffff1110: e1500007 cmp r0, r7 ffff1114: 0a000001 beq 0xffff1120 ffff1118: e3a08001 mov r8, #1 ffff111c: ea000009 b 0xffff1148 ffff1120: e5960004 ldr r0, [r6, #4] ffff1124: e5961010 ldr r1, [r6, #16] ffff1128: e1500001 cmp r0, r1 ffff112c: 1a000004 bne 0xffff1144 ffff1130: e5d60008 ldrb r0, [r6, #8] ffff1134: e3500000 cmp r0, #0 ffff1138: 1a000001 bne 0xffff1144 ffff113c: e3a08002 mov r8, #2 ffff1140: ea000000 b 0xffff1148 ffff1144: e3a08000 mov r8, #0 ffff1148: e3580000 cmp r8, #0 ffff114c: 0a000027 beq 0xffff11f0 ffff1150: e59d0004 ldr r0, [sp, #4] ffff1154: e3500000 cmp r0, #0 ffff1158: 1a000017 bne 0xffff11bc ffff115c: e1a00004 mov r0, r4 ffff1160: eb00044e bl f_22a0 ffff1164: e3100004 tst r0, #4 ffff1168: 1a000019 bne 0xffff11d4 ffff116c: e3580001 cmp r8, #1 ffff1170: 1a000009 bne 0xffff119c ffff1174: e59d0004 ldr r0, [sp, #4] ffff1178: e59f15d8 ldr r1, =USB0_BASE ffff117c: e5c10042 strb r0, [r1, #66] ; 0x42 ffff1180: e3a0000a mov r0, #10 ffff1184: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1188: e3a00000 mov r0, #0 ffff118c: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1190: e5810030 str r0, [r1, #48] ; 0x30 ffff1194: e3a09001 mov r9, #1 ffff1198: ea00000d b 0xffff11d4 ffff119c: e3580002 cmp r8, #2 ffff11a0: 1a00000b bne 0xffff11d4 ffff11a4: e59d0004 ldr r0, [sp, #4] ffff11a8: e59f15a8 ldr r1, =USB0_BASE ffff11ac: e5c10042 strb r0, [r1, #66] ; 0x42 ffff11b0: e3a00002 mov r0, #2 ffff11b4: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff11b8: ea000005 b 0xffff11d4 ffff11bc: e59d0004 ldr r0, [sp, #4] ffff11c0: e59f1590 ldr r1, =USB0_BASE ffff11c4: e5c10042 strb r0, [r1, #66] ; 0x42 ffff11c8: e3020001 movw r0, #8193 ; 0x2001 ffff11cc: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff11d0: e3a09001 mov r9, #1 ffff11d4: e3590001 cmp r9, #1 ffff11d8: 1a000016 bne 0xffff1238 ffff11dc: e3a02000 mov r2, #0 ffff11e0: e1a01006 mov r1, r6 ffff11e4: e1a00005 mov r0, r5 ffff11e8: ebffffaa bl f_1098 ffff11ec: ea000011 b 0xffff1238 ffff11f0: e59d0004 ldr r0, [sp, #4] ffff11f4: e3500000 cmp r0, #0 ffff11f8: 1a000009 bne 0xffff1224 ffff11fc: e1a00004 mov r0, r4 ffff1200: eb000426 bl f_22a0 ffff1204: e3100004 tst r0, #4 ffff1208: 1a00000a bne 0xffff1238 ffff120c: e59d0004 ldr r0, [sp, #4] ffff1210: e59f1540 ldr r1, =USB0_BASE ffff1214: e5c10042 strb r0, [r1, #66] ; 0x42 ffff1218: e3a00002 mov r0, #2 ffff121c: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1220: ea000004 b 0xffff1238 ffff1224: e59d0004 ldr r0, [sp, #4] ffff1228: e59f1528 ldr r1, =USB0_BASE ffff122c: e5c10042 strb r0, [r1, #66] ; 0x42 ffff1230: e3020001 movw r0, #8193 ; 0x2001 ffff1234: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1238: e1a00009 mov r0, r9 ffff123c: eaffffab b 0xffff10f0 f_1240: ffff1240: e92d4ffe push {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} ffff1244: e1a04000 mov r4, r0 ffff1248: e1a05001 mov r5, r1 ffff124c: e1a06002 mov r6, r2 ffff1250: e3a00001 mov r0, #1 ffff1254: e58d0008 str r0, [sp, #8] ffff1258: e3a0b000 mov fp, #0 ffff125c: e1a0200d mov r2, sp ffff1260: e28d1004 add r1, sp, #4 ffff1264: e1a00005 mov r0, r5 ffff1268: ebffff56 bl f_0fc8 ffff126c: e3500000 cmp r0, #0 ffff1270: 0a000001 beq 0xffff127c ffff1274: e3e00000 mvn r0, #0 ffff1278: e8bd8ffe pop {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} ffff127c: e5960000 ldr r0, [r6] ffff1280: e5961010 ldr r1, [r6, #16] ffff1284: e0807001 add r7, r0, r1 ffff1288: e5960004 ldr r0, [r6, #4] ffff128c: e5961010 ldr r1, [r6, #16] ffff1290: e0409001 sub r9, r0, r1 ffff1294: e3590000 cmp r9, #0 ffff1298: 1a000001 bne 0xffff12a4 ffff129c: e3e00000 mvn r0, #0 ffff12a0: eafffff4 b 0xffff1278 ffff12a4: e59d0004 ldr r0, [sp, #4] ffff12a8: e59f14a8 ldr r1, =USB0_BASE ffff12ac: e5c10042 strb r0, [r1, #66] ; 0x42 ffff12b0: e1a00001 mov r0, r1 ffff12b4: e590b088 ldr fp, [r0, #136] ; 0x88 ffff12b8: e5950008 ldr r0, [r5, #8] ffff12bc: e150000b cmp r0, fp ffff12c0: 2a000001 bcs 0xffff12cc ffff12c4: e595a008 ldr sl, [r5, #8] ffff12c8: ea000000 b 0xffff12d0 ffff12cc: e1a0a00b mov sl, fp ffff12d0: e1a0300a mov r3, sl ffff12d4: e1a02006 mov r2, r6 ffff12d8: e1a01007 mov r1, r7 ffff12dc: e59d0000 ldr r0, [sp] ffff12e0: eb000423 bl f_2374 ffff12e4: e1a0b000 mov fp, r0 ffff12e8: e5950008 ldr r0, [r5, #8] ffff12ec: e150000b cmp r0, fp ffff12f0: 9a000006 bls 0xffff1310 ffff12f4: e3a00001 mov r0, #1 ffff12f8: e58d0008 str r0, [sp, #8] ffff12fc: e15b000a cmp fp, sl ffff1300: 0a00000b beq 0xffff1334 ffff1304: e3a000ff mov r0, #255 ; 0xff ffff1308: e5c60018 strb r0, [r6, #24] ffff130c: ea000008 b 0xffff1334 ffff1310: e5960004 ldr r0, [r6, #4] ffff1314: e5961010 ldr r1, [r6, #16] ffff1318: e1500001 cmp r0, r1 ffff131c: 1a000002 bne 0xffff132c ffff1320: e3a00001 mov r0, #1 ffff1324: e58d0008 str r0, [sp, #8] ffff1328: ea000001 b 0xffff1334 ffff132c: e3a00000 mov r0, #0 ffff1330: e58d0008 str r0, [sp, #8] ffff1334: e59d0004 ldr r0, [sp, #4] ffff1338: e59f1418 ldr r1, =USB0_BASE ffff133c: e5c10042 strb r0, [r1, #66] ; 0x42 ffff1340: e1a00001 mov r0, r1 ffff1344: e590b088 ldr fp, [r0, #136] ; 0x88 ffff1348: e59d0008 ldr r0, [sp, #8] ffff134c: e3500000 cmp r0, #0 ffff1350: 0a000018 beq 0xffff13b8 ffff1354: e59d0004 ldr r0, [sp, #4] ffff1358: e3500000 cmp r0, #0 ffff135c: 1a000007 bne 0xffff1380 ffff1360: e59d0004 ldr r0, [sp, #4] ffff1364: e5c10042 strb r0, [r1, #66] ; 0x42 ffff1368: e3a00048 mov r0, #72 ; 0x48 ffff136c: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1370: e3a00000 mov r0, #0 ffff1374: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1378: e5810030 str r0, [r1, #48] ; 0x30 ffff137c: ea000006 b 0xffff139c ffff1380: e59d0004 ldr r0, [sp, #4] ffff1384: e59f13cc ldr r1, =USB0_BASE ffff1388: e5c10042 strb r0, [r1, #66] ; 0x42 ffff138c: e1a00001 mov r0, r1 ffff1390: e1d088b6 ldrh r8, [r0, #134] ; 0x86 ffff1394: e3c88001 bic r8, r8, #1 ffff1398: e1c088b6 strh r8, [r0, #134] ; 0x86 ffff139c: e3a02000 mov r2, #0 ffff13a0: e1a01006 mov r1, r6 ffff13a4: e1a00005 mov r0, r5 ffff13a8: ebffff3a bl f_1098 ffff13ac: e3a00001 mov r0, #1 ffff13b0: e58d0008 str r0, [sp, #8] ffff13b4: ea00000f b 0xffff13f8 ffff13b8: e59d0004 ldr r0, [sp, #4] ffff13bc: e3500000 cmp r0, #0 ffff13c0: 1a000005 bne 0xffff13dc ffff13c4: e59d0004 ldr r0, [sp, #4] ffff13c8: e59f1388 ldr r1, =USB0_BASE ffff13cc: e5c10042 strb r0, [r1, #66] ; 0x42 ffff13d0: e3a00040 mov r0, #64 ; 0x40 ffff13d4: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff13d8: ea000006 b 0xffff13f8 ffff13dc: e59d0004 ldr r0, [sp, #4] ffff13e0: e59f1370 ldr r1, =USB0_BASE ffff13e4: e5c10042 strb r0, [r1, #66] ; 0x42 ffff13e8: e1a00001 mov r0, r1 ffff13ec: e1d088b6 ldrh r8, [r0, #134] ; 0x86 ffff13f0: e3c88001 bic r8, r8, #1 ffff13f4: e1c088b6 strh r8, [r0, #134] ; 0x86 ffff13f8: e59d0008 ldr r0, [sp, #8] ffff13fc: eaffff9d b 0xffff1278 f_1400: ffff1400: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr} ffff1404: e1a04000 mov r4, r0 ffff1408: e1a05001 mov r5, r1 ffff140c: e1a06002 mov r6, r2 ffff1410: e3a07000 mov r7, #0 ffff1414: e3a08000 mov r8, #0 ffff1418: e3a09000 mov r9, #0 ffff141c: e5950014 ldr r0, [r5, #20] ffff1420: e3d00003 bics r0, r0, #3 ffff1424: 0a000001 beq 0xffff1430 ffff1428: e3e00000 mvn r0, #0 ffff142c: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc} ffff1430: e3560000 cmp r6, #0 ffff1434: 1a000001 bne 0xffff1440 ffff1438: e1a00004 mov r0, r4 ffff143c: ebfffd3f bl f_0940 ffff1440: e5940024 ldr r0, [r4, #36] ; 0x24 ffff1444: e5951014 ldr r1, [r5, #20] ffff1448: e0807201 add r7, r0, r1, lsl #4 ffff144c: e3a00000 mov r0, #0 ffff1450: e5850010 str r0, [r5, #16] ffff1454: e5d70005 ldrb r0, [r7, #5] ffff1458: e3500000 cmp r0, #0 ffff145c: 0a00000c beq 0xffff1494 ffff1460: e5d70005 ldrb r0, [r7, #5] ffff1464: e200007f and r0, r0, #127 ; 0x7f ffff1468: e59f12e8 ldr r1, =USB0_BASE ffff146c: e5c10042 strb r0, [r1, #66] ; 0x42 ffff1470: e5d70005 ldrb r0, [r7, #5] ffff1474: e3100080 tst r0, #128 ; 0x80 ffff1478: 0a000001 beq 0xffff1484 ffff147c: e2810082 add r0, r1, #130 ; 0x82 ffff1480: ea000000 b 0xffff1488 ffff1484: e59f02f4 ldr r0, =USB0_RXCSR ffff1488: e1d080b0 ldrh r8, [r0] ffff148c: e59f02c4 ldr r0, =USB0_BASE ffff1490: e1d098b8 ldrh r9, [r0, #136] ; 0x88 ffff1494: e5d70005 ldrb r0, [r7, #5] ffff1498: e3500000 cmp r0, #0 ffff149c: 1a00001c bne 0xffff1514 ffff14a0: e5940024 ldr r0, [r4, #36] ; 0x24 ffff14a4: e5900030 ldr r0, [r0, #48] ; 0x30 ffff14a8: e3500001 cmp r0, #1 ffff14ac: 0a000002 beq 0xffff14bc ffff14b0: e3500002 cmp r0, #2 ffff14b4: 1a00000e bne 0xffff14f4 ffff14b8: ea000008 b 0xffff14e0 ffff14bc: e320f000 nop {0} ffff14c0: e1a02005 mov r2, r5 ffff14c4: e1a01007 mov r1, r7 ffff14c8: e1a00004 mov r0, r4 ffff14cc: ebfffefb bl f_10c0 ffff14d0: e3500000 cmp r0, #0 ffff14d4: 0a000000 beq 0xffff14dc ffff14d8: e3a05000 mov r5, #0 ffff14dc: ea00000b b 0xffff1510 ffff14e0: e320f000 nop {0} ffff14e4: e3a00000 mov r0, #0 ffff14e8: e5941024 ldr r1, [r4, #36] ; 0x24 ffff14ec: e5810030 str r0, [r1, #48] ; 0x30 ffff14f0: ea000006 b 0xffff1510 ffff14f4: e320f000 nop {0} ffff14f8: e3560000 cmp r6, #0 ffff14fc: 1a000001 bne 0xffff1508 ffff1500: e1a00004 mov r0, r4 ffff1504: ebfffd12 bl f_0954 ffff1508: e3e00000 mvn r0, #0 ffff150c: eaffffc6 b 0xffff142c ffff1510: ea000031 b 0xffff15dc ffff1514: e5d70005 ldrb r0, [r7, #5] ffff1518: e3100080 tst r0, #128 ; 0x80 ffff151c: 0a000009 beq 0xffff1548 ffff1520: e3180001 tst r8, #1 ffff1524: 1a000007 bne 0xffff1548 ffff1528: e1a02005 mov r2, r5 ffff152c: e1a01007 mov r1, r7 ffff1530: e1a00004 mov r0, r4 ffff1534: ebfffee1 bl f_10c0 ffff1538: e3500000 cmp r0, #0 ffff153c: 0a000001 beq 0xffff1548 ffff1540: e3a05000 mov r5, #0 ffff1544: ea000024 b 0xffff15dc ffff1548: e5d70005 ldrb r0, [r7, #5] ffff154c: e3100080 tst r0, #128 ; 0x80 ffff1550: 1a000021 bne 0xffff15dc ffff1554: e3180001 tst r8, #1 ffff1558: 0a00001f beq 0xffff15dc ffff155c: e59f01f4 ldr r0, =USB0_BASE ffff1560: e1d008b8 ldrh r0, [r0, #136] ; 0x88 ffff1564: e1b09000 movs r9, r0 ffff1568: 0a00001b beq 0xffff15dc ffff156c: e320f000 nop {0} ffff1570: e1a02005 mov r2, r5 ffff1574: e1a01007 mov r1, r7 ffff1578: e1a00004 mov r0, r4 ffff157c: ebffff2f bl f_1240 ffff1580: e5d70005 ldrb r0, [r7, #5] ffff1584: e200007f and r0, r0, #127 ; 0x7f ffff1588: e59f11c8 ldr r1, =USB0_BASE ffff158c: e5c10042 strb r0, [r1, #66] ; 0x42 ffff1590: e5d70005 ldrb r0, [r7, #5] ffff1594: e3100080 tst r0, #128 ; 0x80 ffff1598: 0a000001 beq 0xffff15a4 ffff159c: e2810082 add r0, r1, #130 ; 0x82 ffff15a0: ea000000 b 0xffff15a8 ffff15a4: e59f01d4 ldr r0, =USB0_RXCSR ffff15a8: e1d080b0 ldrh r8, [r0] ffff15ac: e59f01a4 ldr r0, =USB0_BASE ffff15b0: e1d098b8 ldrh r9, [r0, #136] ; 0x88 ffff15b4: e5d50018 ldrb r0, [r5, #24] ffff15b8: e3500000 cmp r0, #0 ffff15bc: 1a000000 bne 0xffff15c4 ffff15c0: ea000003 b 0xffff15d4 ffff15c4: e3180001 tst r8, #1 ffff15c8: 0a000001 beq 0xffff15d4 ffff15cc: e3590000 cmp r9, #0 ffff15d0: 1affffe6 bne 0xffff1570 ffff15d4: e320f000 nop {0} ffff15d8: e3a05000 mov r5, #0 ffff15dc: e3560000 cmp r6, #0 ffff15e0: 1a000001 bne 0xffff15ec ffff15e4: e1a00004 mov r0, r4 ffff15e8: ebfffcd9 bl f_0954 ffff15ec: e3a00000 mov r0, #0 ffff15f0: eaffff8d b 0xffff142c u32 f_15f4(u32 a,void *b,void *c) { return f_f1400(a,b,c); } f_15f4: ffff15f4: e92d4070 push {r4, r5, r6, lr} ffff15f8: e1a04000 mov r4, r0 ffff15fc: e1a05001 mov r5, r1 ffff1600: e1a06002 mov r6, r2 ffff1604: e1a02006 mov r2, r6 ffff1608: e1a01005 mov r1, r5 ffff160c: e1a00004 mov r0, r4 ffff1610: ebffff7a bl f_1400 ffff1614: e8bd8070 pop {r4, r5, r6, pc} f_1618: ffff1618: e3a01000 mov r1, #0 ffff161c: e5801008 str r1, [r0, #8] ffff1620: e5801004 str r1, [r0, #4] ffff1624: e5801000 str r1, [r0] ffff1628: e12fff1e bx lr f_162c: ffff162c: e92d41f0 push {r4, r5, r6, r7, r8, lr} ffff1630: e1a04000 mov r4, r0 ffff1634: e3a05000 mov r5, #0 ffff1638: e3a06000 mov r6, #0 ffff163c: e1a08004 mov r8, r4 ffff1640: e3a00000 mov r0, #0 ffff1644: ebfffcc7 bl set_epind ffff1648: e59f0108 ldr r0, =USB0_BASE ffff164c: e1d068b8 ldrh r6, [r0, #136] ; 0x88 ffff1650: e3560008 cmp r6, #8 ffff1654: 0a000008 beq 0xffff167c ffff1658: e3a07000 mov r7, #0 ffff165c: ea000002 b 0xffff166c ffff1660: e59f00f0 ldr r0, =USB0_BASE ffff1664: e1d068b8 ldrh r6, [r0, #136] ; 0x88 ffff1668: e2877001 add r7, r7, #1 ffff166c: e3570010 cmp r7, #16 ffff1670: aa000001 bge 0xffff167c ffff1674: e3560008 cmp r6, #8 ffff1678: 1afffff8 bne 0xffff1660 ffff167c: ea000004 b 0xffff1694 ffff1680: e59f00d0 ldr r0, =USB0_BASE ffff1684: e5d00000 ldrb r0, [r0] ffff1688: e5c80000 strb r0, [r8] ffff168c: e2888001 add r8, r8, #1 ffff1690: e2855001 add r5, r5, #1 ffff1694: e1b00006 movs r0, r6 ffff1698: e2466001 sub r6, r6, #1 ffff169c: 1afffff7 bne 0xffff1680 ffff16a0: e1a00005 mov r0, r5 ffff16a4: e8bd81f0 pop {r4, r5, r6, r7, r8, pc} f_16a8: ffff16a8: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr} ffff16ac: e1a04000 mov r4, r0 ffff16b0: e1a05001 mov r5, r1 ffff16b4: e1a0a002 mov sl, r2 ffff16b8: e1a06003 mov r6, r3 ffff16bc: e1a09005 mov r9, r5 ffff16c0: e3560000 cmp r6, #0 ffff16c4: 0a000001 beq 0xffff16d0 ffff16c8: e3e00000 mvn r0, #0 ffff16cc: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc} ffff16d0: e5948014 ldr r8, [r4, #20] ffff16d4: e3a07000 mov r7, #0 ffff16d8: e3a02009 mov r2, #9 ffff16dc: e1a00005 mov r0, r5 ffff16e0: e5941004 ldr r1, [r4, #4] ffff16e4: ebfffa98 bl memcpy ffff16e8: e2855009 add r5, r5, #9 ffff16ec: e3a02009 mov r2, #9 ffff16f0: e1a00005 mov r0, r5 ffff16f4: e5941008 ldr r1, [r4, #8] ffff16f8: ebfffa93 bl memcpy ffff16fc: e2855009 add r5, r5, #9 ffff1700: e3a02007 mov r2, #7 ffff1704: e1a00005 mov r0, r5 ffff1708: e5981000 ldr r1, [r8] ffff170c: ebfffa8e bl memcpy ffff1710: e2855007 add r5, r5, #7 ffff1714: e3a02007 mov r2, #7 ffff1718: e1a00005 mov r0, r5 ffff171c: e5981004 ldr r1, [r8, #4] ffff1720: ebfffa89 bl memcpy ffff1724: e2855007 add r5, r5, #7 ffff1728: e3a07020 mov r7, #32 ffff172c: e3a00009 mov r0, #9 ffff1730: e5c90000 strb r0, [r9] ffff1734: e3a00002 mov r0, #2 ffff1738: e5c90001 strb r0, [r9, #1] ffff173c: e1c970b2 strh r7, [r9, #2] ffff1740: e5d90007 ldrb r0, [r9, #7] ffff1744: e3800080 orr r0, r0, #128 ; 0x80 ffff1748: e5c90007 strb r0, [r9, #7] ffff174c: e1a00007 mov r0, r7 ffff1750: eaffffdd b 0xffff16cc f_1784: ffff1784: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr} ffff1788: e1a04000 mov r4, r0 ffff178c: e1a05001 mov r5, r1 ffff1790: e3a06000 mov r6, #0 ffff1794: e3a07000 mov r7, #0 ffff1798: e1d580b2 ldrh r8, [r5, #2] ffff179c: e3a09000 mov r9, #0 ffff17a0: e5947024 ldr r7, [r4, #36] ; 0x24 ffff17a4: e597600c ldr r6, [r7, #12] ffff17a8: e5d50001 ldrb r0, [r5, #1] ffff17ac: e3500006 cmp r0, #6 ffff17b0: 0a000002 beq 0xffff17c0 ffff17b4: e35000fe cmp r0, #254 ; 0xfe ffff17b8: 1a000046 bne 0xffff18d8 ffff17bc: ea00003e b 0xffff18bc ffff17c0: e320f000 nop {0} ffff17c4: e5d50000 ldrb r0, [r5] ffff17c8: e3500080 cmp r0, #128 ; 0x80 ffff17cc: 0a000000 beq 0xffff17d4 ffff17d0: ea000042 b 0xffff18e0 ffff17d4: e1a00448 asr r0, r8, #8 ffff17d8: e3500001 cmp r0, #1 ffff17dc: 0a000004 beq 0xffff17f4 ffff17e0: e3500002 cmp r0, #2 ffff17e4: 0a000011 beq 0xffff1830 ffff17e8: e3500003 cmp r0, #3 ffff17ec: 1a000030 bne 0xffff18b4 ffff17f0: ea00001f b 0xffff1874 ffff17f4: e320f000 nop {0} ffff17f8: e1d500b6 ldrh r0, [r5, #6] ffff17fc: e3500012 cmp r0, #18 ffff1800: 9a000001 bls 0xffff180c ffff1804: e3a09012 mov r9, #18 ffff1808: ea000000 b 0xffff1810 ffff180c: e1d590b6 ldrh r9, [r5, #6] ffff1810: e5941000 ldr r1, [r4] ffff1814: e1a02009 mov r2, r9 ffff1818: e5960000 ldr r0, [r6] ffff181c: ebfffa4a bl memcpy ffff1820: e5869004 str r9, [r6, #4] ffff1824: e3a00000 mov r0, #0 ffff1828: e5c60008 strb r0, [r6, #8] ffff182c: ea000020 b 0xffff18b4 ffff1830: e320f000 nop {0} ffff1834: e20830ff and r3, r8, #255 ; 0xff ffff1838: e1a02448 asr r2, r8, #8 ffff183c: e1a00004 mov r0, r4 ffff1840: e5961000 ldr r1, [r6] ffff1844: ebffff97 bl f_16a8 ffff1848: e1a09000 mov r9, r0 ffff184c: e1d500b6 ldrh r0, [r5, #6] ffff1850: e1500009 cmp r0, r9 ffff1854: ba000001 blt 0xffff1860 ffff1858: e5869004 str r9, [r6, #4] ffff185c: ea000001 b 0xffff1868 ffff1860: e1d500b6 ldrh r0, [r5, #6] ffff1864: e5860004 str r0, [r6, #4] ffff1868: e3a00000 mov r0, #0 ffff186c: e5c60008 strb r0, [r6, #8] ffff1870: ea00000f b 0xffff18b4 ffff1874: e320f000 nop {0} ffff1878: e20800ff and r0, r8, #255 ; 0xff ffff187c: e3500000 cmp r0, #0 ffff1880: 1a000009 bne 0xffff18ac ffff1884: e5961000 ldr r1, [r6] ffff1888: e3a02004 mov r2, #4 ffff188c: e5c12000 strb r2, [r1] ffff1890: e3a02003 mov r2, #3 ffff1894: e5c12001 strb r2, [r1, #1] ffff1898: e3a02009 mov r2, #9 ffff189c: e5c12002 strb r2, [r1, #2] ffff18a0: e3a02004 mov r2, #4 ffff18a4: e5c12003 strb r2, [r1, #3] ffff18a8: ea000001 b 0xffff18b4 ffff18ac: e320f000 nop {0} ffff18b0: e320f000 nop {0} ffff18b4: e320f000 nop {0} ffff18b8: ea000008 b 0xffff18e0 ffff18bc: e320f000 nop {0} ffff18c0: e5960000 ldr r0, [r6] ffff18c4: e3a01001 mov r1, #1 ffff18c8: e5861004 str r1, [r6, #4] ffff18cc: e3a01000 mov r1, #0 ffff18d0: e5c01000 strb r1, [r0] ffff18d4: ea000001 b 0xffff18e0 ffff18d8: e320f000 nop {0} ffff18dc: e320f000 nop {0} ffff18e0: e320f000 nop {0} ffff18e4: e3a02001 mov r2, #1 ffff18e8: e1a01006 mov r1, r6 ffff18ec: e1a00004 mov r0, r4 ffff18f0: ebffff3f bl f_15f4 ffff18f4: e3a00000 mov r0, #0 ffff18f8: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc} f_18fc: ffff18fc: e92d47fc push {r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} ffff1900: e1a04000 mov r4, r0 ffff1904: e3a06000 mov r6, #0 ffff1908: e3a07000 mov r7, #0 ffff190c: e5946024 ldr r6, [r4, #36] ; 0x24 ffff1910: e596700c ldr r7, [r6, #12] ffff1914: e5d60004 ldrb r0, [r6, #4] ffff1918: ebfffc12 bl set_epind ffff191c: e51f01cc ldr r0, =USB0_BASE ffff1920: e1d058b2 ldrh r5, [r0, #130] ; 0x82 ffff1924: e3150004 tst r5, #4 ffff1928: 0a000005 beq 0xffff1944 ffff192c: e3a00000 mov r0, #0 ffff1930: e51f11e0 ldr r1, =USB0_BASE ffff1934: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1938: e5941024 ldr r1, [r4, #36] ; 0x24 ffff193c: e5810030 str r0, [r1, #48] ; 0x30 ffff1940: e8bd87fc pop {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} ffff1944: e3150010 tst r5, #16 ffff1948: 0a000007 beq 0xffff196c ffff194c: e51f01fc ldr r0, =USB0_BASE ffff1950: e1d008b2 ldrh r0, [r0, #130] ; 0x82 ffff1954: e3c00010 bic r0, r0, #16 ffff1958: e51f1208 ldr r1, =USB0_BASE ffff195c: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1960: e3a00000 mov r0, #0 ffff1964: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1968: e5810030 str r0, [r1, #48] ; 0x30 ffff196c: e5940024 ldr r0, [r4, #36] ; 0x24 ffff1970: e5900030 ldr r0, [r0, #48] ; 0x30 ffff1974: e3500005 cmp r0, #5 ffff1978: 308ff100 addcc pc, pc, r0, lsl #2 ffff197c: ea00009c b 0xffff1bf4 ffff1980: ea000003 b 0xffff1994 ffff1984: ea000066 b 0xffff1b24 ffff1988: ea00006f b 0xffff1b4c ffff198c: ea000078 b 0xffff1b74 ffff1990: ea000092 b 0xffff1be0 ffff1994: e320f000 nop {0} ffff1998: e3150001 tst r5, #1 ffff199c: 0a00005f beq 0xffff1b20 ffff19a0: e1a0000d mov r0, sp ffff19a4: ebffff20 bl f_162c ffff19a8: e1a08000 mov r8, r0 ffff19ac: e3580008 cmp r8, #8 ffff19b0: 0a000003 beq 0xffff19c4 ffff19b4: e3a00060 mov r0, #96 ; 0x60 ffff19b8: e51f1268 ldr r1, =USB0_BASE ffff19bc: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff19c0: eaffffde b 0xffff1940 ffff19c4: e5941024 ldr r1, [r4, #36] ; 0x24 ffff19c8: e281003e add r0, r1, #62 ; 0x3e ffff19cc: e3a02008 mov r2, #8 ffff19d0: e1a0100d mov r1, sp ffff19d4: eb0002c2 bl f_24e4 ffff19d8: e3a00001 mov r0, #1 ffff19dc: e5941024 ldr r1, [r4, #36] ; 0x24 ffff19e0: e5c1003d strb r0, [r1, #61] ; 0x3d ffff19e4: e5dd0001 ldrb r0, [sp, #1] ffff19e8: e3500005 cmp r0, #5 ffff19ec: 0a000014 beq 0xffff1a44 ffff19f0: e3500009 cmp r0, #9 ffff19f4: 0a000002 beq 0xffff1a04 ffff19f8: e350000b cmp r0, #11 ffff19fc: 1a000020 bne 0xffff1a84 ffff1a00: ea000009 b 0xffff1a2c ffff1a04: e320f000 nop {0} ffff1a08: e5dd0000 ldrb r0, [sp] ffff1a0c: e3500000 cmp r0, #0 ffff1a10: 1a000004 bne 0xffff1a28 ffff1a14: e320f000 nop {0} ffff1a18: e3a00048 mov r0, #72 ; 0x48 ffff1a1c: e51f12cc ldr r1, =USB0_BASE ffff1a20: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1a24: eaffffc5 b 0xffff1940 ffff1a28: ea00001a b 0xffff1a98 ffff1a2c: e320f000 nop {0} ffff1a30: e5dd0000 ldrb r0, [sp] ffff1a34: e3500001 cmp r0, #1 ffff1a38: 1a000000 bne 0xffff1a40 ffff1a3c: eafffff5 b 0xffff1a18 ffff1a40: ea000014 b 0xffff1a98 ffff1a44: e320f000 nop {0} ffff1a48: e5dd0000 ldrb r0, [sp] ffff1a4c: e3500000 cmp r0, #0 ffff1a50: 1a00000a bne 0xffff1a80 ffff1a54: e1dd00b2 ldrh r0, [sp, #2] ffff1a58: e200907f and r9, r0, #127 ; 0x7f ffff1a5c: e5940024 ldr r0, [r4, #36] ; 0x24 ffff1a60: e5c0903c strb r9, [r0, #60] ; 0x3c ffff1a64: e3a0004a mov r0, #74 ; 0x4a ffff1a68: e51f1318 ldr r1, =USB0_BASE ffff1a6c: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1a70: e3a00003 mov r0, #3 ffff1a74: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1a78: e5810030 str r0, [r1, #48] ; 0x30 ffff1a7c: eaffffaf b 0xffff1940 ffff1a80: ea000004 b 0xffff1a98 ffff1a84: e320f000 nop {0} ffff1a88: e3a00040 mov r0, #64 ; 0x40 ffff1a8c: e51f133c ldr r1, =USB0_BASE ffff1a90: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1a94: e320f000 nop {0} ffff1a98: e320f000 nop {0} ffff1a9c: e5dd0000 ldrb r0, [sp] ffff1aa0: e3100080 tst r0, #128 ; 0x80 ffff1aa4: 0a000003 beq 0xffff1ab8 ffff1aa8: e3a00001 mov r0, #1 ffff1aac: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1ab0: e5810030 str r0, [r1, #48] ; 0x30 ffff1ab4: ea000002 b 0xffff1ac4 ffff1ab8: e3a00002 mov r0, #2 ffff1abc: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1ac0: e5810030 str r0, [r1, #48] ; 0x30 ffff1ac4: e1a0100d mov r1, sp ffff1ac8: e1a00004 mov r0, r4 ffff1acc: ebffff2c bl f_1784 ffff1ad0: e1a0a000 mov sl, r0 ffff1ad4: e35a0000 cmp sl, #0 ffff1ad8: aa000008 bge 0xffff1b00 ffff1adc: e3a00060 mov r0, #96 ; 0x60 ffff1ae0: e51f1390 ldr r1, =USB0_BASE ffff1ae4: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1ae8: e3a00048 mov r0, #72 ; 0x48 ffff1aec: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1af0: e3a00000 mov r0, #0 ffff1af4: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1af8: e5810030 str r0, [r1, #48] ; 0x30 ffff1afc: ea000006 b 0xffff1b1c ffff1b00: e5940024 ldr r0, [r4, #36] ; 0x24 ffff1b04: e5d0003d ldrb r0, [r0, #61] ; 0x3d ffff1b08: e3500000 cmp r0, #0 ffff1b0c: 0a000002 beq 0xffff1b1c ffff1b10: e3a00000 mov r0, #0 ffff1b14: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1b18: e5c1003d strb r0, [r1, #61] ; 0x3d ffff1b1c: e320f000 nop {0} ffff1b20: ea000035 b 0xffff1bfc ffff1b24: e320f000 nop {0} ffff1b28: e3150002 tst r5, #2 ffff1b2c: 1a000005 bne 0xffff1b48 ffff1b30: e3570000 cmp r7, #0 ffff1b34: 0a000003 beq 0xffff1b48 ffff1b38: e1a02007 mov r2, r7 ffff1b3c: e1a01006 mov r1, r6 ffff1b40: e1a00004 mov r0, r4 ffff1b44: ebfffd5d bl f_10c0 ffff1b48: ea00002b b 0xffff1bfc ffff1b4c: e320f000 nop {0} ffff1b50: e3150001 tst r5, #1 ffff1b54: 0a000005 beq 0xffff1b70 ffff1b58: e3570000 cmp r7, #0 ffff1b5c: 0a000003 beq 0xffff1b70 ffff1b60: e1a02007 mov r2, r7 ffff1b64: e1a01006 mov r1, r6 ffff1b68: e1a00004 mov r0, r4 ffff1b6c: ebfffdb3 bl f_1240 ffff1b70: ea000021 b 0xffff1bfc ffff1b74: e320f000 nop {0} ffff1b78: e5940024 ldr r0, [r4, #36] ; 0x24 ffff1b7c: e5d0003f ldrb r0, [r0, #63] ; 0x3f ffff1b80: e3500005 cmp r0, #5 ffff1b84: 1a00000e bne 0xffff1bc4 ffff1b88: e3a000c0 mov r0, #192 ; 0xc0 ffff1b8c: e51f143c ldr r1, =USB0_BASE ffff1b90: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1b94: e3a08000 mov r8, #0 ffff1b98: ebfffb75 bl get_epind ffff1b9c: e1a08000 mov r8, r0 ffff1ba0: e3a00000 mov r0, #0 ffff1ba4: ebfffb6f bl set_epind ffff1ba8: e5940024 ldr r0, [r4, #36] ; 0x24 ffff1bac: e5d0003c ldrb r0, [r0, #60] ; 0x3c ffff1bb0: e51f1460 ldr r1, =USB0_BASE ffff1bb4: e5c10098 strb r0, [r1, #152] ; 0x98 ffff1bb8: e1a00008 mov r0, r8 ffff1bbc: ebfffb69 bl set_epind ffff1bc0: ea000001 b 0xffff1bcc ffff1bc4: e320f000 nop {0} ffff1bc8: e320f000 nop {0} ffff1bcc: e320f000 nop {0} ffff1bd0: e3a00000 mov r0, #0 ffff1bd4: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1bd8: e5810030 str r0, [r1, #48] ; 0x30 ffff1bdc: ea000006 b 0xffff1bfc ffff1be0: e320f000 nop {0} ffff1be4: e3a00000 mov r0, #0 ffff1be8: e5941024 ldr r1, [r4, #36] ; 0x24 ffff1bec: e5810030 str r0, [r1, #48] ; 0x30 ffff1bf0: ea000001 b 0xffff1bfc ffff1bf4: e320f000 nop {0} ffff1bf8: e320f000 nop {0} ffff1bfc: e320f000 nop {0} ffff1c00: eaffff4e b 0xffff1940 f_1c04: ffff1c04: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr} ffff1c08: e1a04000 mov r4, r0 ffff1c0c: e1a05001 mov r5, r1 ffff1c10: e3a06000 mov r6, #0 ffff1c14: e3a07000 mov r7, #0 ffff1c18: e3a08000 mov r8, #0 ffff1c1c: e3550000 cmp r5, #0 ffff1c20: 1a000000 bne 0xffff1c28 ffff1c24: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc} ffff1c28: e5940024 ldr r0, [r4, #36] ; 0x24 ffff1c2c: e0807205 add r7, r0, r5, lsl #4 ffff1c30: e597600c ldr r6, [r7, #12] ffff1c34: e5d70005 ldrb r0, [r7, #5] ffff1c38: e2008080 and r8, r0, #128 ; 0x80 ffff1c3c: e5d70005 ldrb r0, [r7, #5] ffff1c40: e200a07f and sl, r0, #127 ; 0x7f ffff1c44: e5d60018 ldrb r0, [r6, #24] ffff1c48: e3500001 cmp r0, #1 ffff1c4c: 0a000000 beq 0xffff1c54 ffff1c50: eafffff3 b 0xffff1c24 ffff1c54: e3580000 cmp r8, #0 ffff1c58: 0a000013 beq 0xffff1cac ffff1c5c: e5d70004 ldrb r0, [r7, #4] ffff1c60: ebfffb40 bl set_epind ffff1c64: e51f0514 ldr r0, =USB0_BASE ffff1c68: e1d098b2 ldrh r9, [r0, #130] ; 0x82 ffff1c6c: e3190020 tst r9, #32 ffff1c70: 0a000004 beq 0xffff1c88 ffff1c74: e51f1524 ldr r1, =USB0_BASE ffff1c78: e1c1a4b2 strh sl, [r1, #66] ; 0x42 ffff1c7c: e3a00000 mov r0, #0 ffff1c80: e1c108b2 strh r0, [r1, #130] ; 0x82 ffff1c84: eaffffe6 b 0xffff1c24 ffff1c88: e3190001 tst r9, #1 ffff1c8c: 1a000025 bne 0xffff1d28 ffff1c90: e3560000 cmp r6, #0 ffff1c94: 0a000023 beq 0xffff1d28 ffff1c98: e1a02006 mov r2, r6 ffff1c9c: e1a01007 mov r1, r7 ffff1ca0: e1a00004 mov r0, r4 ffff1ca4: ebfffd05 bl f_10c0 ffff1ca8: ea00001e b 0xffff1d28 ffff1cac: e51f155c ldr r1, =USB0_BASE ffff1cb0: e5c1a042 strb sl, [r1, #66] ; 0x42 ffff1cb4: e1a00001 mov r0, r1 ffff1cb8: e1d098b6 ldrh r9, [r0, #134] ; 0x86 ffff1cbc: e3190040 tst r9, #64 ; 0x40 ffff1cc0: 0a000003 beq 0xffff1cd4 ffff1cc4: e1c1a4b2 strh sl, [r1, #66] ; 0x42 ffff1cc8: e3a00000 mov r0, #0 ffff1ccc: e1c108b6 strh r0, [r1, #134] ; 0x86 ffff1cd0: eaffffd3 b 0xffff1c24 ffff1cd4: e320f000 nop {0} ffff1cd8: e3190001 tst r9, #1 ffff1cdc: 0a000011 beq 0xffff1d28 ffff1ce0: e3560000 cmp r6, #0 ffff1ce4: 0a00000f beq 0xffff1d28 ffff1ce8: e1a02006 mov r2, r6 ffff1cec: e1a01007 mov r1, r7 ffff1cf0: e1a00004 mov r0, r4 ffff1cf4: ebfffd51 bl f_1240 ffff1cf8: e5d60018 ldrb r0, [r6, #24] ffff1cfc: e3500000 cmp r0, #0 ffff1d00: 0a000008 beq 0xffff1d28 ffff1d04: e51f15b4 ldr r1, =USB0_BASE ffff1d08: e5c1a042 strb sl, [r1, #66] ; 0x42 ffff1d0c: e1a00001 mov r0, r1 ffff1d10: e1d098b6 ldrh r9, [r0, #134] ; 0x86 ffff1d14: e3190001 tst r9, #1 ffff1d18: 0a000002 beq 0xffff1d28 ffff1d1c: e3560000 cmp r6, #0 ffff1d20: 0a000000 beq 0xffff1d28 ffff1d24: eaffffeb b 0xffff1cd8 ffff1d28: eaffffbd b 0xffff1c24 interrupt_handler: ffff1d2c: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr} ffff1d30: e3a04000 mov r4, #0 ffff1d34: e3a05000 mov r5, #0 ffff1d38: e3a06000 mov r6, #0 ffff1d3c: e3a07000 mov r7, #0 ffff1d40: e3a08000 mov r8, #0 ffff1d44: ebfffb0a bl get_epind ffff1d48: e1a04000 mov r4, r0 ffff1d4c: e51f05e8 ldr r0, =0x7d00 ffff1d50: e5900000 ldr r0, [r0] ffff1d54: eb000151 bl f_22a0 ffff1d58: e1a06000 mov r6, r0 ffff1d5c: e51f15f8 ldr r1, =0x7d00 ffff1d60: e5910000 ldr r0, [r1] ffff1d64: e5901038 ldr r1, [r0, #56] ; 0x38 ffff1d68: e3510000 cmp r1, #0 ffff1d6c: 1a000002 bne 0xffff1d7c ffff1d70: e51f1620 ldr r1, =USB0_BASE ffff1d74: e5d11044 ldrb r1, [r1, #68] ; 0x44 ffff1d78: e5801038 str r1, [r0, #56] ; 0x38 ffff1d7c: e320f000 nop {0} ffff1d80: e5901038 ldr r1, [r0, #56] ; 0x38 ffff1d84: e1a07001 mov r7, r1 ffff1d88: e51f1624 ldr r1, =0x7d00 ffff1d8c: e5910000 ldr r0, [r1] ffff1d90: e590103c ldr r1, [r0, #60] ; 0x3c ffff1d94: e3510000 cmp r1, #0 ffff1d98: 1a000002 bne 0xffff1da8 ffff1d9c: e51f164c ldr r1, =USB0_BASE ffff1da0: e5d11046 ldrb r1, [r1, #70] ; 0x46 ffff1da4: e580103c str r1, [r0, #60] ; 0x3c ffff1da8: e320f000 nop {0} ffff1dac: e590103c ldr r1, [r0, #60] ; 0x3c ffff1db0: e1a08001 mov r8, r1 ffff1db4: e3160004 tst r6, #4 ffff1db8: 0a000023 beq 0xffff1e4c ffff1dbc: e3a00002 mov r0, #2 ffff1dc0: e51f165c ldr r1, =0x7d00 ffff1dc4: e5911000 ldr r1, [r1] ffff1dc8: e5911024 ldr r1, [r1, #36] ; 0x24 ffff1dcc: e5c10034 strb r0, [r1, #52] ; 0x34 ffff1dd0: e3a00000 mov r0, #0 ffff1dd4: e51f1670 ldr r1, =0x7d00 ffff1dd8: e5911000 ldr r1, [r1] ffff1ddc: e5911024 ldr r1, [r1, #36] ; 0x24 ffff1de0: e5810030 str r0, [r1, #48] ; 0x30 ffff1de4: e3a01004 mov r1, #4 ffff1de8: e51f0684 ldr r0, =0x7d00 ffff1dec: e5900000 ldr r0, [r0] ffff1df0: eb00013b bl f_22e4 ffff1df4: e51f16a4 ldr r1, =USB0_BASE ffff1df8: e5c14042 strb r4, [r1, #66] ; 0x42 ffff1dfc: ebfffca4 bl f_NOP3 ffff1e00: e51f06b0 ldr r0, =USB0_BASE ffff1e04: e5d00048 ldrb r0, [r0, #72] ; 0x48 ffff1e08: e3800001 orr r0, r0, #1 ffff1e0c: e51f16bc ldr r1, =USB0_BASE ffff1e10: e5c10048 strb r0, [r1, #72] ; 0x48 ffff1e14: e51f06b0 ldr r0, =0x7d00 ffff1e18: e5900000 ldr r0, [r0] ffff1e1c: ebfffc25 bl f_0eb8 ffff1e20: e3a09000 mov r9, #0 ffff1e24: ebfffad2 bl get_epind ffff1e28: e1a09000 mov r9, r0 ffff1e2c: e3a00000 mov r0, #0 ffff1e30: ebfffacc bl set_epind ffff1e34: e3a00000 mov r0, #0 ffff1e38: e51f16e8 ldr r1, =USB0_BASE ffff1e3c: e5c10098 strb r0, [r1, #152] ; 0x98 ffff1e40: e1a00009 mov r0, r9 ffff1e44: ebfffac7 bl set_epind ffff1e48: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc} ffff1e4c: e3160002 tst r6, #2 ffff1e50: 0a000003 beq 0xffff1e64 ffff1e54: e3a01002 mov r1, #2 ffff1e58: e51f06f4 ldr r0, =0x7d00 ffff1e5c: e5900000 ldr r0, [r0] ffff1e60: eb00011f bl f_22e4 ffff1e64: e3160001 tst r6, #1 ffff1e68: 0a000008 beq 0xffff1e90 ffff1e6c: e3a01001 mov r1, #1 ffff1e70: e51f070c ldr r0, =0x7d00 ffff1e74: e5900000 ldr r0, [r0] ffff1e78: eb000119 bl f_22e4 ffff1e7c: e3a00000 mov r0, #0 ffff1e80: e51f171c ldr r1, =0x7d00 ffff1e84: e5911000 ldr r1, [r1] ffff1e88: e5911024 ldr r1, [r1, #36] ; 0x24 ffff1e8c: e5810030 str r0, [r1, #48] ; 0x30 ffff1e90: e3170001 tst r7, #1 ffff1e94: 0a000006 beq 0xffff1eb4 ffff1e98: e3a01001 mov r1, #1 ffff1e9c: e51f0738 ldr r0, =0x7d00 ffff1ea0: e5900000 ldr r0, [r0] ffff1ea4: eb000106 bl f_22c4 ffff1ea8: e51f0744 ldr r0, =0x7d00 ffff1eac: e5900000 ldr r0, [r0] ffff1eb0: ebfffe91 bl f_18fc ffff1eb4: e3a05001 mov r5, #1 ffff1eb8: ea00001b b 0xffff1f2c ffff1ebc: e3a00001 mov r0, #1 ffff1ec0: e1a09510 lsl r9, r0, r5 ffff1ec4: e1170009 tst r7, r9 ffff1ec8: 0a000016 beq 0xffff1f28 ffff1ecc: e3a0a000 mov sl, #0 ffff1ed0: e20910ff and r1, r9, #255 ; 0xff ffff1ed4: e51f0770 ldr r0, =0x7d00 ffff1ed8: e5900000 ldr r0, [r0] ffff1edc: eb0000f8 bl f_22c4 ffff1ee0: e3a0a001 mov sl, #1 ffff1ee4: ea00000c b 0xffff1f1c ffff1ee8: e51f0784 ldr r0, =0x7d00 ffff1eec: e5900000 ldr r0, [r0] ffff1ef0: e5900024 ldr r0, [r0, #36] ; 0x24 ffff1ef4: e080020a add r0, r0, sl, lsl #4 ffff1ef8: e5d00005 ldrb r0, [r0, #5] ffff1efc: e2000080 and r0, r0, #128 ; 0x80 ffff1f00: e3500080 cmp r0, #128 ; 0x80 ffff1f04: 1a000003 bne 0xffff1f18 ffff1f08: e1a0100a mov r1, sl ffff1f0c: e51f07a8 ldr r0, =0x7d00 ffff1f10: e5900000 ldr r0, [r0] ffff1f14: ebffff3a bl f_1c04 ffff1f18: e28aa001 add sl, sl, #1 ffff1f1c: e35a0003 cmp sl, #3 ffff1f20: bafffff0 blt 0xffff1ee8 ffff1f24: e320f000 nop {0} ffff1f28: e2855001 add r5, r5, #1 ffff1f2c: e3550005 cmp r5, #5 ffff1f30: daffffe1 ble 0xffff1ebc ffff1f34: e3a05001 mov r5, #1 ffff1f38: ea000020 b 0xffff1fc0 ffff1f3c: e3a00001 mov r0, #1 ffff1f40: e1a09510 lsl r9, r0, r5 ffff1f44: e1180009 tst r8, r9 ffff1f48: 0a00001b beq 0xffff1fbc ffff1f4c: e3a00000 mov r0, #0 ffff1f50: e1a0a000 mov sl, r0 ffff1f54: e51f27f0 ldr r2, =0x7d00 ffff1f58: e20910ff and r1, r9, #255 ; 0xff ffff1f5c: e5920000 ldr r0, [r2] ffff1f60: e590203c ldr r2, [r0, #60] ; 0x3c ffff1f64: e1c22001 bic r2, r2, r1 ffff1f68: e580203c str r2, [r0, #60] ; 0x3c ffff1f6c: e51f281c ldr r2, =USB0_BASE ffff1f70: e5c21046 strb r1, [r2, #70] ; 0x46 ffff1f74: e320f000 nop {0} ffff1f78: e3a0a001 mov sl, #1 ffff1f7c: ea00000b b 0xffff1fb0 ffff1f80: e51f081c ldr r0, =0x7d00 ffff1f84: e5900000 ldr r0, [r0] ffff1f88: e5900024 ldr r0, [r0, #36] ; 0x24 ffff1f8c: e080020a add r0, r0, sl, lsl #4 ffff1f90: e5d00005 ldrb r0, [r0, #5] ffff1f94: e3100080 tst r0, #128 ; 0x80 ffff1f98: 1a000003 bne 0xffff1fac ffff1f9c: e1a0100a mov r1, sl ffff1fa0: e51f083c ldr r0, =0x7d00 ffff1fa4: e5900000 ldr r0, [r0] ffff1fa8: ebffff15 bl f_1c04 ffff1fac: e28aa001 add sl, sl, #1 ffff1fb0: e35a0003 cmp sl, #3 ffff1fb4: bafffff1 blt 0xffff1f80 ffff1fb8: e320f000 nop {0} ffff1fbc: e2855001 add r5, r5, #1 ffff1fc0: e3550005 cmp r5, #5 ffff1fc4: daffffdc ble 0xffff1f3c ffff1fc8: ebfffc31 bl f_NOP3 ffff1fcc: e51f187c ldr r1, =USB0_BASE ffff1fd0: e5c14042 strb r4, [r1, #66] ; 0x42 ffff1fd4: e51f1870 ldr r1, =0x7d00 ffff1fd8: e5910000 ldr r0, [r1] ffff1fdc: e3a01000 mov r1, #0 ffff1fe0: e5801040 str r1, [r0, #64] ; 0x40 ffff1fe4: e5801038 str r1, [r0, #56] ; 0x38 ffff1fe8: e580103c str r1, [r0, #60] ; 0x3c ffff1fec: e320f000 nop {0} ffff1ff0: eaffff94 b 0xffff1e48 fill_scratchpad: ffff1ff4: e92d4010 push {r4, lr} ffff1ff8: e3a02c01 mov r2, #0x100 ffff1ffc: e3a010cc mov r1, #0xcc ffff2000: e3a00c7e ldr r0, =0x7e00 ffff2004: ebfff85a bl memset ffff2008: e8bd8010 pop {r4, pc} fel: ffff200c: e92d4010 push {r4, lr} ffff2010: e24ddd47 sub sp, sp, #4544 ; 0x11c0 ffff2014: ebfffff6 bl fill_scratchpad ffff2018: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff201c: e2800f5f add r0, r0, #380 ; 0x17c ffff2020: e51f18bc ldr r1, =0x7d00 ffff2024: e5810000 str r0, [r1] ffff2028: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff202c: e2800f5a add r0, r0, #360 ; 0x168 ffff2030: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2034: e58c017c str r0, [ip, #380] ; 0x17c ffff2038: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff203c: e2800f57 add r0, r0, #348 ; 0x15c ffff2040: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2044: e58c0180 str r0, [ip, #384] ; 0x180 ffff2048: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff204c: e2800e15 add r0, r0, #336 ; 0x150 ffff2050: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2054: e58c0184 str r0, [ip, #388] ; 0x184 ffff2058: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff205c: e2800f52 add r0, r0, #328 ; 0x148 ffff2060: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2064: e58c0188 str r0, [ip, #392] ; 0x188 ffff2068: e28d0d45 add r0, sp, #4416 ; 0x1140 ffff206c: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2070: e58c018c str r0, [ip, #396] ; 0x18c ffff2074: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2078: e2800f4e add r0, r0, #312 ; 0x138 ffff207c: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2080: e58c0190 str r0, [ip, #400] ; 0x190 ffff2084: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2088: e2800e13 add r0, r0, #304 ; 0x130 ffff208c: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2090: e58c0194 str r0, [ip, #404] ; 0x194 ffff2094: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2098: e2800f4a add r0, r0, #296 ; 0x128 ffff209c: e28dca01 add ip, sp, #4096 ; 0x1000 ffff20a0: e58c0198 str r0, [ip, #408] ; 0x198 ffff20a4: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff20a8: e2800e12 add r0, r0, #288 ; 0x120 ffff20ac: e28dca01 add ip, sp, #4096 ; 0x1000 ffff20b0: e58c019c str r0, [ip, #412] ; 0x19c ffff20b4: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff20b8: e28000d8 add r0, r0, #216 ; 0xd8 ffff20bc: e28dca01 add ip, sp, #4096 ; 0x1000 ffff20c0: e58c01a0 str r0, [ip, #416] ; 0x1a0 ffff20c4: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff20c8: e28000bc add r0, r0, #188 ; 0xbc ffff20cc: e28dca01 add ip, sp, #4096 ; 0x1000 ffff20d0: e58c01a4 str r0, [ip, #420] ; 0x1a4 ffff20d4: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff20d8: e28000a0 add r0, r0, #160 ; 0xa0 ffff20dc: e28dca01 add ip, sp, #4096 ; 0x1000 ffff20e0: e58c01a8 str r0, [ip, #424] ; 0x1a8 ffff20e4: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff20e8: e2800084 add r0, r0, #132 ; 0x84 ffff20ec: e28dca01 add ip, sp, #4096 ; 0x1000 ffff20f0: e58c01ac str r0, [ip, #428] ; 0x1ac ffff20f4: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff20f8: e2800068 add r0, r0, #104 ; 0x68 ffff20fc: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2100: e58c01b0 str r0, [ip, #432] ; 0x1b0 ffff2104: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2108: e2800f6d add r0, r0, #436 ; 0x1b4 ffff210c: ebfffd41 bl f_1618 ffff2110: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2114: e2800f5a add r0, r0, #360 ; 0x168 ffff2118: ebfffa18 bl f_0980 ffff211c: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2120: e2800f57 add r0, r0, #348 ; 0x15c ffff2124: ebfffa2e bl f_09e4 ffff2128: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff212c: e2800e15 add r0, r0, #336 ; 0x150 ffff2130: ebfffa3b bl f_0a24 ffff2134: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2138: e2800f52 add r0, r0, #328 ; 0x148 ffff213c: ebfffa48 bl f_0a64 ffff2140: e28d0d45 add r0, sp, #4416 ; 0x1140 ffff2144: ebfffa53 bl f_0a98 ffff2148: e28d2a01 add r2, sp, #4096 ; 0x1000 ffff214c: e2822f52 add r2, r2, #328 ; 0x148 ffff2150: e28d1d45 add r1, sp, #4416 ; 0x1140 ffff2154: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2158: e2800f4e add r0, r0, #312 ; 0x138 ffff215c: ebfffa5a bl f_0acc ffff2160: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2164: e2800e13 add r0, r0, #304 ; 0x130 ffff2168: ebfffa5a bl f_NOP4 ffff216c: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2170: e2800f4a add r0, r0, #296 ; 0x128 ffff2174: ebfffa58 bl f_NOP5 ffff2178: e28d2a01 add r2, sp, #4096 ; 0x1000 ffff217c: e2822e13 add r2, r2, #304 ; 0x130 ffff2180: e28d1a01 add r1, sp, #4096 ; 0x1000 ffff2184: e2811f4a add r1, r1, #296 ; 0x128 ffff2188: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff218c: e2800e12 add r0, r0, #288 ; 0x120 ffff2190: ebfffa52 bl f_NOP6 ffff2194: e28d2d45 add r2, sp, #4416 ; 0x1140 ffff2198: e28d1a01 add r1, sp, #4096 ; 0x1000 ffff219c: e2811f52 add r1, r1, #328 ; 0x148 ffff21a0: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff21a4: e28000d8 add r0, r0, #216 ; 0xd8 ffff21a8: ebfffa4d bl f_0ae4 ffff21ac: e28d3a01 add r3, sp, #4096 ; 0x1000 ffff21b0: e2833084 add r3, r3, #132 ; 0x84 ffff21b4: e28d2a01 add r2, sp, #4096 ; 0x1000 ffff21b8: e2822068 add r2, r2, #104 ; 0x68 ffff21bc: e28d1068 add r1, sp, #104 ; 0x68 ffff21c0: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff21c4: e28000bc add r0, r0, #188 ; 0xbc ffff21c8: ebfffa6b bl f_0b7c ffff21cc: e28d1024 add r1, sp, #36 ; 0x24 ffff21d0: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff21d4: e28000a0 add r0, r0, #160 ; 0xa0 ffff21d8: ebfffa71 bl f_0ba4 ffff21dc: e28d1068 add r1, sp, #104 ; 0x68 ffff21e0: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff21e4: e2800084 add r0, r0, #132 ; 0x84 ffff21e8: ebfffa84 bl f_0c00 ffff21ec: e28d1068 add r1, sp, #104 ; 0x68 ffff21f0: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff21f4: e2800068 add r0, r0, #104 ; 0x68 ffff21f8: ebfffa74 bl f_0bd0 ffff21fc: e28dca01 add ip, sp, #4096 ; 0x1000 ffff2200: e28d3a01 add r3, sp, #4096 ; 0x1000 ffff2204: e2833084 add r3, r3, #132 ; 0x84 ffff2208: e28d2a01 add r2, sp, #4096 ; 0x1000 ffff220c: e2822068 add r2, r2, #104 ; 0x68 ffff2210: e28d1a01 add r1, sp, #4096 ; 0x1000 ffff2214: e28110a0 add r1, r1, #160 ; 0xa0 ffff2218: e59c01a0 ldr r0, [ip, #416] ; 0x1a0 ffff221c: ebfffa83 bl f_0c30 ffff2220: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2224: e2800f5f add r0, r0, #380 ; 0x17c ffff2228: ebfff9c4 bl f_0940 ffff222c: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff2230: e2800f5f add r0, r0, #380 ; 0x17c ffff2234: ebfffb55 bl f_0f90 ffff2238: e28d0a01 add r0, sp, #4096 ; 0x1000 ffff223c: e2800f5f add r0, r0, #380 ; 0x17c ffff2240: ebfff9a6 bl fel_main_loop ffff2244: e28ddd47 add sp, sp, #4544 ; 0x11c0 ffff2248: e8bd8010 pop {r4, pc} f_224c: ffff224c: e92d4070 push {r4, r5, r6, lr} ffff2250: e1a04000 mov r4, r0 ffff2254: e3a05000 mov r5, #0 ffff2258: e3046e20 movw r6, #20000 ; 0x4e20 ffff225c: e5940024 ldr r0, [r4, #36] ; 0x24 ffff2260: e2805020 add r5, r0, #32 ffff2264: e5d50004 ldrb r0, [r5, #4] ffff2268: ebfff9be bl set_epind ffff226c: ea00000a b 0xffff229c ffff2270: e51f0b20 ldr r0, =USB0_BASE ffff2274: e1d008b2 ldrh r0, [r0, #130] ; 0x82 = USB0_CSR0 ffff2278: e3100001 tst r0, #1 ; RX_PKT_READY ffff227c: 1a000001 bne 0xffff2288 ffff2280: e3a00001 mov r0, #1 ffff2284: e8bd8070 pop {r4, r5, r6, pc} ffff2288: e3560000 cmp r6, #0 ffff228c: 1a000001 bne 0xffff2298 ffff2290: e3a00002 mov r0, #2 ffff2294: eafffffa b 0xffff2284 ffff2298: e2466001 sub r6, r6, #1 ffff229c: eafffff3 b 0xffff2270 f_22a0: ffff22a0: e1a01000 mov r1, r0 ffff22a4: e5910040 ldr r0, [r1, #64] ; 0x40 ffff22a8: e3500000 cmp r0, #0 ffff22ac: 1a000002 bne 0xffff22bc ffff22b0: e51f0b60 ldr r0, =USB0_BASE ffff22b4: e5d0004c ldrb r0, [r0, #76] ; 0x4c ffff22b8: e5810040 str r0, [r1, #64] ; 0x40 ffff22bc: e5910040 ldr r0, [r1, #64] ; 0x40 ffff22c0: e12fff1e bx lr f_22c4: ffff22c4: e1a02000 mov r2, r0 ffff22c8: e5920038 ldr r0, [r2, #56] ; 0x38 ffff22cc: e1c00001 bic r0, r0, r1 ffff22d0: e5820038 str r0, [r2, #56] ; 0x38 ffff22d4: e51f0b84 ldr r0, =USB0_BASE ffff22d8: e5c01044 strb r1, [r0, #68] ; 0x44 ffff22dc: e3a00000 mov r0, #0 ffff22e0: e12fff1e bx lr f_22e4: ffff22e4: e1a02000 mov r2, r0 ffff22e8: e5920040 ldr r0, [r2, #64] ; 0x40 ffff22ec: e1c00001 bic r0, r0, r1 ffff22f0: e5820040 str r0, [r2, #64] ; 0x40 ffff22f4: e51f0ba4 ldr r0, =USB0_BASE ffff22f8: e5c0104c strb r1, [r0, #76] ; 0x4c ffff22fc: e3a00000 mov r0, #0 ffff2300: e12fff1e bx lr f_2304: ffff2304: e92d4070 push {r4, r5, r6, lr} ffff2308: e1a03000 mov r3, r0 ffff230c: e3a00000 mov r0, #0 ffff2310: e5915000 ldr r5, [r1] ffff2314: e5916010 ldr r6, [r1, #16] ffff2318: e0854006 add r4, r5, r6 ffff231c: e5915004 ldr r5, [r1, #4] ffff2320: e5916010 ldr r6, [r1, #16] ffff2324: e0455006 sub r5, r5, r6 ffff2328: e1550002 cmp r5, r2 ffff232c: 2a000003 bcs 0xffff2340 ffff2330: e5915004 ldr r5, [r1, #4] ffff2334: e5916010 ldr r6, [r1, #16] ffff2338: e0455006 sub r5, r5, r6 ffff233c: ea000000 b 0xffff2344 ffff2340: e1a05002 mov r5, r2 ffff2344: e1a00005 mov r0, r5 ffff2348: e5915010 ldr r5, [r1, #16] ffff234c: e0855000 add r5, r5, r0 ffff2350: e5815010 str r5, [r1, #16] ffff2354: e1a02000 mov r2, r0 ffff2358: ea000001 b 0xffff2364 ffff235c: e4d45001 ldrb r5, [r4], #1 ffff2360: e5c35000 strb r5, [r3] ffff2364: e1b05002 movs r5, r2 ffff2368: e2422001 sub r2, r2, #1 ffff236c: 1afffffa bne 0xffff235c ffff2370: e8bd8070 pop {r4, r5, r6, pc} f_2374: ffff2374: e92d40f0 push {r4, r5, r6, r7, lr} ffff2378: e1a04000 mov r4, r0 ffff237c: e3a06000 mov r6, #0 ffff2380: e5925004 ldr r5, [r2, #4] ffff2384: e5927010 ldr r7, [r2, #16] ffff2388: e0455007 sub r5, r5, r7 ffff238c: e1550003 cmp r5, r3 ffff2390: 2a000003 bcs 0xffff23a4 ffff2394: e5925004 ldr r5, [r2, #4] ffff2398: e5927010 ldr r7, [r2, #16] ffff239c: e0455007 sub r5, r5, r7 ffff23a0: ea000000 b 0xffff23a8 ffff23a4: e1a05003 mov r5, r3 ffff23a8: e1a00005 mov r0, r5 ffff23ac: e5925010 ldr r5, [r2, #16] ffff23b0: e0855000 add r5, r5, r0 ffff23b4: e5825010 str r5, [r2, #16] ffff23b8: e1a03000 mov r3, r0 ffff23bc: e1a00003 mov r0, r3 ffff23c0: e3530004 cmp r3, #4 ffff23c4: 9a00000a bls 0xffff23f4 ffff23c8: ea000005 b 0xffff23e4 ffff23cc: e5d45000 ldrb r5, [r4] ffff23d0: e5c15000 strb r5, [r1] ffff23d4: e3560008 cmp r6, #8 ffff23d8: 2a000000 bcs 0xffff23e0 ffff23dc: e2866001 add r6, r6, #1 ffff23e0: e2811001 add r1, r1, #1 ffff23e4: e1b05003 movs r5, r3 ffff23e8: e2433001 sub r3, r3, #1 ffff23ec: 1afffff6 bne 0xffff23cc ffff23f0: ea000013 b 0xffff2444 ffff23f4: e1a05001 mov r5, r1 ffff23f8: e1a07001 mov r7, r1 ffff23fc: e3530004 cmp r3, #4 ffff2400: 1a000002 bne 0xffff2410 ffff2404: e594c000 ldr ip, [r4] ffff2408: e585c000 str ip, [r5] ffff240c: ea00000b b 0xffff2440 ffff2410: e3530002 cmp r3, #2 ffff2414: 1a000002 bne 0xffff2424 ffff2418: e1d4c0b0 ldrh ip, [r4] ffff241c: e1c7c0b0 strh ip, [r7] ffff2420: ea000006 b 0xffff2440 ffff2424: ea000002 b 0xffff2434 ffff2428: e5d4c000 ldrb ip, [r4] ffff242c: e5c1c000 strb ip, [r1] ffff2430: e2811001 add r1, r1, #1 ffff2434: e1b0c003 movs ip, r3 ffff2438: e2433001 sub r3, r3, #1 ffff243c: 1afffff9 bne 0xffff2428 ffff2440: e320f000 nop {0} ffff2444: e8bd80f0 pop {r4, r5, r6, r7, pc} f_2448: ffff2448: e92d4030 push {r4, r5, lr} ffff244c: e3a03000 mov r3, #0 ffff2450: e3a01000 mov r1, #0 ffff2454: e3a02000 mov r2, #0 ffff2458: e1a03a20 lsr r3, r0, #20 ffff245c: e3a05802 mov r5, #131072 ; 0x20000 ffff2460: e0852103 add r2, r5, r3, lsl #2 ffff2464: e5921000 ldr r1, [r2] ffff2468: e307400c movw r4, #28684 ; 0x700c ffff246c: e1c11004 bic r1, r1, r4 ffff2470: e3811a01 orr r1, r1, #4096 ; 0x1000 ffff2474: e5821000 str r1, [r2] ffff2478: e8bd8030 pop {r4, r5, pc} f_247c: ffff247c: e3a00000 mov r0, #0 ffff2480: e3a02802 mov r2, #131072 ; 0x20000 ffff2484: e3a01000 mov r1, #0 ffff2488: e320f000 nop {0} ffff248c: ea000006 b 0xffff24ac ffff2490: e3a01000 mov r1, #0 ffff2494: e1811a00 orr r1, r1, r0, lsl #20 ffff2498: e3003de2 movw r3, #3554 ; 0xde2 ffff249c: e1811003 orr r1, r1, r3 ffff24a0: e5821000 str r1, [r2] ffff24a4: e2822004 add r2, r2, #4 ffff24a8: e2800001 add r0, r0, #1 ffff24ac: e3500a01 cmp r0, #4096 ; 0x1000 ffff24b0: 3afffff6 bcc 0xffff2490 ffff24b4: e12fff1e bx lr f_24b8: ffff24b8: e92d4010 push {r4, lr} ffff24bc: e3a00000 mov r0, #0 ffff24c0: ebffffe0 bl f_2448 ffff24c4: e59f0014 ldr r0, =0xfff00000 ffff24c8: ebffffde bl f_2448 ffff24cc: e8bd8010 pop {r4, pc} f_24d0: ffff24d0: e92d4010 push {r4, lr} ffff24d4: ebffffe8 bl f_247c ffff24d8: ebfffff6 bl f_24b8 ffff24dc: e8bd8010 pop {r4, pc} f_24e4: ffff24e4: e3520003 cmp r2, #3 ffff24e8: 9a000017 bls 0xffff254c ffff24ec: e210c003 ands ip, r0, #3 ffff24f0: 0a000008 beq 0xffff2518 ffff24f4: e4d13001 ldrb r3, [r1], #1 ffff24f8: e35c0002 cmp ip, #2 ffff24fc: e082200c add r2, r2, ip ffff2500: 94d1c001 ldrbls ip, [r1], #1 ffff2504: e4c03001 strb r3, [r0], #1 ffff2508: 34d13001 ldrbcc r3, [r1], #1 ffff250c: 94c0c001 strbls ip, [r0], #1 ffff2510: e2422004 sub r2, r2, #4 ffff2514: 34c03001 strbcc r3, [r0], #1 ffff2518: e2113003 ands r3, r1, #3 ffff251c: 0a000012 beq 0xffff256c ffff2520: e2522008 subs r2, r2, #8 ffff2524: 3a000004 bcc 0xffff253c ffff2528: e4913004 ldr r3, [r1], #4 ffff252c: e491c004 ldr ip, [r1], #4 ffff2530: e4803004 str r3, [r0], #4 ffff2534: e480c004 str ip, [r0], #4 ffff2538: eafffff8 b 0xffff2520 ffff253c: e2922004 adds r2, r2, #4 ffff2540: 54913004 ldrpl r3, [r1], #4 ffff2544: 54803004 strpl r3, [r0], #4 ffff2548: e1a00000 nop ; (mov r0, r0) ffff254c: e1b02f82 lsls r2, r2, #31 ffff2550: 24d13001 ldrbcs r3, [r1], #1 ffff2554: 24d1c001 ldrbcs ip, [r1], #1 ffff2558: 44d12001 ldrbmi r2, [r1], #1 ffff255c: 24c03001 strbcs r3, [r0], #1 ffff2560: 24c0c001 strbcs ip, [r0], #1 ffff2564: 44c02001 strbmi r2, [r0], #1 ffff2568: e12fff1e bx lr ffff256c: e92d41f0 push {r4, r5, r6, r7, r8, lr} ffff2570: e2522020 subs r2, r2, #32 ffff2574: 3a00000d bcc 0xffff25b0 ffff2578: e3520e12 cmp r2, #288 ; 0x120 ffff257c: 3a000007 bcc 0xffff25a0 ffff2580: f5d1f100 pld [r1, #256] ; 0x100 ffff2584: e8b151f8 ldm r1!, {r3, r4, r5, r6, r7, r8, ip, lr} ffff2588: e2422040 sub r2, r2, #64 ; 0x40 ffff258c: e3520e12 cmp r2, #288 ; 0x120 ffff2590: e8a051f8 stmia r0!, {r3, r4, r5, r6, r7, r8, ip, lr} ffff2594: e8b151f8 ldm r1!, {r3, r4, r5, r6, r7, r8, ip, lr} ffff2598: e8a051f8 stmia r0!, {r3, r4, r5, r6, r7, r8, ip, lr} ffff259c: 2afffff7 bcs 0xffff2580 ffff25a0: e8b151f8 ldm r1!, {r3, r4, r5, r6, r7, r8, ip, lr} ffff25a4: e2522020 subs r2, r2, #32 ffff25a8: e8a051f8 stmia r0!, {r3, r4, r5, r6, r7, r8, ip, lr} ffff25ac: 2afffffb bcs 0xffff25a0 ffff25b0: e1b0ce02 lsls ip, r2, #28 ffff25b4: 28b15018 ldmcs r1!, {r3, r4, ip, lr} ffff25b8: 28a05018 stmiacs r0!, {r3, r4, ip, lr} ffff25bc: 48b10018 ldmmi r1!, {r3, r4} ffff25c0: 48a00018 stmiami r0!, {r3, r4} ffff25c4: e8bd41f0 pop {r4, r5, r6, r7, r8, lr} ffff25c8: e1b0cf02 lsls ip, r2, #30 ffff25cc: 24913004 ldrcs r3, [r1], #4 ffff25d0: 24803004 strcs r3, [r0], #4 ffff25d4: 012fff1e bxeq lr ffff25d8: e1b02f82 lsls r2, r2, #31 ffff25dc: 20d130b2 ldrhcs r3, [r1], #2 ffff25e0: 44d12001 ldrbmi r2, [r1], #1 ffff25e4: 20c030b2 strhcs r3, [r0], #2 ffff25e8: 44c02001 strbmi r2, [r0], #1 ffff25ec: e12fff1e bx lr ffff25f0: e92d4001 push {r0, lr} ffff25f4: ebffffff bl f_25f8 f_25f8: ffff25f8: ebffffff bl f_25fc f_25fc: ffff25fc: ebffffff bl f_2600 f_2600: ffff2600: ebffffff bl f_2604 f_2604: ffff2604: ebffffff bl f_2608 f_2608: ffff2608: ebffffff bl f_260c f_260c: ffff260c: ebffffff bl f_2610 f_2610: ffff2610: ebffffff bl f_2614 f_2614: ffff2614: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff2618: e3800b02 orr r0, r0, #2048 ; 0x800 ffff261c: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff2620: e8bd4001 pop {r0, lr} ffff2624: e1a0f00e mov pc, lr ffff2628: e92d4001 push {r0, lr} ffff262c: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff2630: e3800a01 orr r0, r0, #4096 ; 0x1000 ffff2634: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff2638: e8bd4001 pop {r0, lr} ffff263c: e1a0f00e mov pc, lr ffff2640: e92d4001 push {r0, lr} ffff2644: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff2648: e3800004 orr r0, r0, #4 ffff264c: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff2650: e8bd4001 pop {r0, lr} ffff2654: e1a0f00e mov pc, lr ffff2658: e92d4001 push {r0, lr} ffff265c: ee110f30 mrc 15, 0, r0, cr1, cr0, {1} ffff2660: e3800002 orr r0, r0, #2 ffff2664: ee010f30 mcr 15, 0, r0, cr1, cr0, {1} ffff2668: e8bd4001 pop {r0, lr} ffff266c: e1a0f00e mov pc, lr ffff2670: e92d4001 push {r0, lr} ffff2674: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff2678: e3800001 orr r0, r0, #1 ffff267c: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff2680: e8bd4001 pop {r0, lr} ffff2684: e1a0f00e mov pc, lr ffff2688: e92d4001 push {r0, lr} ffff268c: ee110f30 mrc 15, 0, r0, cr1, cr0, {1} ffff2690: e3c00002 bic r0, r0, #2 ffff2694: ee010f30 mcr 15, 0, r0, cr1, cr0, {1} ffff2698: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff269c: e3c00001 bic r0, r0, #1 ffff26a0: e3c00b02 bic r0, r0, #2048 ; 0x800 ffff26a4: e3c00a01 bic r0, r0, #4096 ; 0x1000 ffff26a8: e3c00004 bic r0, r0, #4 ffff26ac: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff26b0: e8bd4001 pop {r0, lr} ffff26b4: e1a0f00e mov pc, lr f_26b8: ffff26b8: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff26bc: ee300f30 mrc 15, 1, r0, cr0, cr0, {1} ffff26c0: e2103407 ands r3, r0, #117440512 ; 0x7000000 ffff26c4: e1a03ba3 lsr r3, r3, #23 ffff26c8: 0a00001a beq 0xffff2738 ffff26cc: e3a0a000 mov sl, #0 ffff26d0: e08a20aa add r2, sl, sl, lsr #1 ffff26d4: e1a01230 lsr r1, r0, r2 ffff26d8: e2011007 and r1, r1, #7 ffff26dc: e3510002 cmp r1, #2 ffff26e0: ba000011 blt 0xffff272c ffff26e4: ee40af10 mcr 15, 2, sl, cr0, cr0, {0} ffff26e8: f57ff06f isb sy ffff26ec: ee301f10 mrc 15, 1, r1, cr0, cr0, {0} ffff26f0: e2012007 and r2, r1, #7 ffff26f4: e2822004 add r2, r2, #4 ffff26f8: e30043ff movw r4, #1023 ; 0x3ff ffff26fc: e01441a1 ands r4, r4, r1, lsr #3 ffff2700: e16f5f14 clz r5, r4 ffff2704: e3077fff movw r7, #32767 ; 0x7fff ffff2708: e01776a1 ands r7, r7, r1, lsr #13 ffff270c: e1a09004 mov r9, r4 ffff2710: e18ab519 orr fp, sl, r9, lsl r5 ffff2714: e18bb217 orr fp, fp, r7, lsl r2 ffff2718: ee07bf5e mcr 15, 0, fp, cr7, cr14, {2} ffff271c: e2599001 subs r9, r9, #1 ffff2720: aafffffa bge 0xffff2710 ffff2724: e2577001 subs r7, r7, #1 ffff2728: aafffff7 bge 0xffff270c ffff272c: e28aa002 add sl, sl, #2 ffff2730: e153000a cmp r3, sl ffff2734: caffffe5 bgt 0xffff26d0 ffff2738: e3a0a000 mov sl, #0 ffff273c: ee40af10 mcr 15, 2, sl, cr0, cr0, {0} ffff2740: f57ff06f isb sy ffff2744: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff2748: e1a0f00e mov pc, lr f_274c: ffff274c: e92d0003 push {r0, r1} ffff2750: e3a00000 mov r0, #0 ffff2754: ee070f15 mcr 15, 0, r0, cr7, cr5, {0} ffff2758: e8bd0003 pop {r0, r1} ffff275c: e1a0f00e mov pc, lr ffff2760: e92d4001 push {r0, lr} ffff2764: ebfffff8 bl f_274c ffff2768: ebffffd2 bl f_26b8 ffff276c: e8bd4001 pop {r0, lr} ffff2770: e1a0f00e mov pc, lr ffff2774: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff2778: e3a02040 mov r2, #64 ; 0x40 ffff277c: e2423001 sub r3, r2, #1 ffff2780: e1c00003 bic r0, r0, r3 ffff2784: ee070f3b mcr 15, 0, r0, cr7, cr11, {1} ffff2788: f57ff04f dsb sy ffff278c: ee070f35 mcr 15, 0, r0, cr7, cr5, {1} ffff2790: e0800002 add r0, r0, r2 ffff2794: e1500001 cmp r0, r1 ffff2798: 3afffff9 bcc 0xffff2784 ffff279c: e3a00000 mov r0, #0 ffff27a0: ee070fd5 mcr 15, 0, r0, cr7, cr5, {6} ffff27a4: f57ff04f dsb sy ffff27a8: f57ff06f isb sy ffff27ac: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff27b0: e1a0f00e mov pc, lr ffff27b4: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff27b8: e3a02040 mov r2, #64 ; 0x40 ffff27bc: e2423001 sub r3, r2, #1 ffff27c0: e1c00003 bic r0, r0, r3 ffff27c4: ee070f3e mcr 15, 0, r0, cr7, cr14, {1} ffff27c8: e0800002 add r0, r0, r2 ffff27cc: e1500001 cmp r0, r1 ffff27d0: 3afffffb bcc 0xffff27c4 ffff27d4: f57ff04f dsb sy ffff27d8: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff27dc: e1a0f00e mov pc, lr ffff27e0: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff27e4: e3a02040 mov r2, #64 ; 0x40 ffff27e8: e2423001 sub r3, r2, #1 ffff27ec: e1c00003 bic r0, r0, r3 ffff27f0: ee070f3a mcr 15, 0, r0, cr7, cr10, {1} ffff27f4: e0800002 add r0, r0, r2 ffff27f8: e1500001 cmp r0, r1 ffff27fc: 3afffffb bcc 0xffff27f0 ffff2800: f57ff04f dsb sy ffff2804: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff2808: e1a0f00e mov pc, lr ffff280c: e92d5fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff2810: e3a02040 mov r2, #64 ; 0x40 ffff2814: e2423001 sub r3, r2, #1 ffff2818: e1100003 tst r0, r3 ffff281c: e1c00003 bic r0, r0, r3 ffff2820: 1e070f3e mcrne 15, 0, r0, cr7, cr14, {1} ffff2824: e1110003 tst r1, r3 ffff2828: e1c11003 bic r1, r1, r3 ffff282c: 1e071f3e mcrne 15, 0, r1, cr7, cr14, {1} ffff2830: ee070f36 mcr 15, 0, r0, cr7, cr6, {1} ffff2834: e0800002 add r0, r0, r2 ffff2838: e1500001 cmp r0, r1 ffff283c: 3afffffb bcc 0xffff2830 ffff2840: f57ff04f dsb sy ffff2844: e8bd5fff pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} ffff2848: e1a0f00e mov pc, lr ffff284c: e92d4001 push {r0, lr} ffff2850: e3a00000 mov r0, #0 ffff2854: ee080f15 mcr 15, 0, r0, cr8, cr5, {0} ffff2858: ee080f16 mcr 15, 0, r0, cr8, cr6, {0} ffff285c: e8bd4001 pop {r0, lr} ffff2860: e1a0f00e mov pc, lr ffff2864: e92d4001 push {r0, lr} ffff2868: e10f0000 mrs r0, CPSR ffff286c: e3c01080 bic r1, r0, #128 ; 0x80 ffff2870: e121f001 msr CPSR_c, r1 ffff2874: e8bd4001 pop {r0, lr} ffff2878: e1a0f00e mov pc, lr ffff287c: e92d4001 push {r0, lr} ffff2880: e10f0000 mrs r0, CPSR ffff2884: e3801080 orr r1, r0, #128 ; 0x80 ffff2888: e121f001 msr CPSR_c, r1 ffff288c: e8bd4001 pop {r0, lr} ffff2890: e1a0f00e mov pc, lr ffff2894: e92d4001 push {r0, lr} ffff2898: e10f0000 mrs r0, CPSR ffff289c: e3c01040 bic r1, r0, #64 ; 0x40 ffff28a0: e121f001 msr CPSR_c, r1 ffff28a4: e8bd4001 pop {r0, lr} ffff28a8: e1a0f00e mov pc, lr ffff28ac: e92d4001 push {r0, lr} ffff28b0: e10f0000 mrs r0, CPSR ffff28b4: e3801040 orr r1, r0, #64 ; 0x40 ffff28b8: e121f001 msr CPSR_c, r1 ffff28bc: e8bd4001 pop {r0, lr} ffff28c0: e1a0f00e mov pc, lr ffff28c4: e92d4001 push {r0, lr} ffff28c8: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff28cc: e3800a02 orr r0, r0, #8192 ; 0x2000 ffff28d0: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff28d4: e8bd4001 pop {r0, lr} ffff28d8: e1a0f00e mov pc, lr ffff28dc: e92d4001 push {r0, lr} ffff28e0: ee110f10 mrc 15, 0, r0, cr1, cr0, {0} ffff28e4: e3c00a02 bic r0, r0, #8192 ; 0x2000 ffff28e8: ee010f10 mcr 15, 0, r0, cr1, cr0, {0} ffff28ec: e8bd4001 pop {r0, lr} ffff28f0: e1a0f00e mov pc, lr