# HG changeset patch # User Michael Spacefalcon # Date 1365998575 0 # Node ID 4b5e228751817e0f6a36ca7ebbca150b11ba21db # Parent cb736d95338d18e2a66a7ce8d9418287a5572f66 beginning of boot ROM reverse eng diff -r cb736d95338d -r 4b5e22875181 bootrom.bin Binary file bootrom.bin has changed diff -r cb736d95338d -r 4b5e22875181 bootrom.disasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bootrom.disasm Mon Apr 15 04:02:55 2013 +0000 @@ -0,0 +1,1679 @@ +RESET entry and exception vectors: + 0: ea000524 b 0x1498 + 4: ea200004 b 0x80001c + 8: ea200004 b 0x800020 + c: ea200004 b 0x800024 + 10: ea200004 b 0x800028 + 14: ea200004 b 0x80002c + 18: ea200004 b 0x800030 + 1c: ea200004 b 0x800034 + + 20: e24dd004 sub sp, sp, #4 ; 0x4 + 24: e59f20b8 ldr r2, [pc, #184] ; 0xe4 + 28: e1d2c0b0 ldrh r12, [r2] + 2c: e20c10ff and r1, r12, #255 ; 0xff + 30: e20ccb3f and r12, r12, #64512 ; 0xfc00 + 34: e181c00c orr r12, r1, r12 + 38: e1a0c80c mov r12, r12, lsl #16 + 3c: e1a0c82c mov r12, r12, lsr #16 + 40: e3500001 cmp r0, #1 ; 0x1 + 44: 0a000005 beq 0x60 + 48: e3500000 cmp r0, #0 ; 0x0 + 4c: 1a000006 bne 0x6c + 50: e38ccc01 orr r12, r12, #256 ; 0x100 + 54: e1a0c80c mov r12, r12, lsl #16 + 58: e1a0c82c mov r12, r12, lsr #16 + 5c: ea000002 b 0x6c + 60: e38ccc03 orr r12, r12, #768 ; 0x300 + 64: e1a0c80c mov r12, r12, lsl #16 + 68: e1a0c82c mov r12, r12, lsr #16 + 6c: e1c2c0b0 strh r12, [r2] + 70: e3a0cfc3 mov r12, #780 ; 0x30c + 74: e59f006c ldr r0, [pc, #108] ; 0xe8 + 78: e10200bc strh r0, [r2, -r12] + 7c: e3a0c000 mov r12, #0 ; 0x0 + 80: e1cdc0b0 strh r12, [sp] + 84: ea000002 b 0x94 + 88: e1ddc0b0 ldrh r12, [sp] + 8c: e28cc001 add r12, r12, #1 ; 0x1 + 90: e1cdc0b0 strh r12, [sp] + 94: e1dd10b0 ldrh r1, [sp] + 98: e3a0c902 mov r12, #32768 ; 0x8000 + 9c: e24ccead sub r12, r12, #2768 ; 0xad0 + a0: e151000c cmp r1, r12 + a4: bafffff7 blt 0x88 + a8: e3a0cfc3 mov r12, #780 ; 0x30c + ac: e10200bc strh r0, [r2, -r12] + b0: e3a0c000 mov r12, #0 ; 0x0 + b4: e1cdc0b0 strh r12, [sp] + b8: ea000002 b 0xc8 + bc: e1ddc0b0 ldrh r12, [sp] + c0: e28cc001 add r12, r12, #1 ; 0x1 + c4: e1cdc0b0 strh r12, [sp] + c8: e1ddc0b0 ldrh r12, [sp] + cc: e3a00902 mov r0, #32768 ; 0x8000 + d0: e2400ead sub r0, r0, #2768 ; 0xad0 + d4: e15c0000 cmp r12, r0 + d8: bafffff7 blt 0xbc + dc: e28dd004 add sp, sp, #4 ; 0x4 + e0: e12fff1e bx lr + + e4: fffffb10 swinv 0x00fffb10 + e8: 000080f5 streqd r8, [r0], -r5 + + ec: e92d4010 stmdb sp!, {r4, lr} + f0: e59fcd0c ldr r12, [pc, #3340] ; 0xe04 + f4: e59c4014 ldr r4, [r12, #20] + f8: e59f0d08 ldr r0, [pc, #3336] ; 0xe08 + fc: e5dcc008 ldrb r12, [r12, #8] + 100: e790c10c ldr r12, [r0, r12, lsl #2] + 104: e28c0005 add r0, r12, #5 ; 0x5 + 108: e5d0c000 ldrb r12, [r0] + 10c: e31c0040 tst r12, #64 ; 0x40 + 110: 0afffffc beq 0x108 + 114: eb000513 bl 0x1568 + 118: eafffffe b 0x118 + + 11c: e3a0c004 mov r12, #4 ; 0x4 + 120: e5c0c000 strb r12, [r0] + 124: e3a0c000 mov r12, #0 ; 0x0 + 128: e1c0c0be strh r12, [r0, #14] + 12c: e1c0c1b0 strh r12, [r0, #16] + 130: e580c014 str r12, [r0, #20] + 134: e5c0c018 strb r12, [r0, #24] + 138: e12fff1e bx lr + + 13c: e92d4000 stmdb sp!, {lr} + 140: e1a0c000 mov r12, r0 + 144: e59f0cc0 ldr r0, [pc, #3264] ; 0xe0c + 148: e3a0103e mov r1, #62 ; 0x3e + 14c: e5c01000 strb r1, [r0] + 150: e35c0009 cmp r12, #9 ; 0x9 + 154: 88bd8000 ldmhiia sp!, {pc} + 158: e28f1000 add r1, pc, #0 ; 0x0 + 15c: e791f10c ldr pc, [r1, r12, lsl #2] + 160: 000002ac andeq r0, r0, r12, lsr #5 + 164: 00000280 andeq r0, r0, r0, lsl #5 + 168: 00000264 andeq r0, r0, r4, ror #4 + 16c: 00000248 andeq r0, r0, r8, asr #4 + 170: 00000224 andeq r0, r0, r4, lsr #4 + 174: 00000200 andeq r0, r0, r0, lsl #4 + 178: 000001dc ldreqd r0, [r0], -r12 + 17c: 000001c0 andeq r0, r0, r0, asr #3 + 180: 000001a4 andeq r0, r0, r4, lsr #3 + 184: 00000188 andeq r0, r0, r8, lsl #3 + + 188: e3a0c042 mov r12, #66 ; 0x42 + 18c: e5c0c001 strb r12, [r0, #1] + 190: e3a01002 mov r1, #2 ; 0x2 + 194: e59fcc74 ldr r12, [pc, #3188] ; 0xe10 + 198: e5dc2000 ldrb r2, [r12] + 19c: eb000458 bl 0x1304 + 1a0: e8bd8000 ldmia sp!, {pc} + + 1a4: e3a0c062 mov r12, #98 ; 0x62 + 1a8: e5c0c001 strb r12, [r0, #1] + 1ac: e3a01002 mov r1, #2 ; 0x2 + 1b0: e59fcc58 ldr r12, [pc, #3160] ; 0xe10 + 1b4: e5dc2000 ldrb r2, [r12] + 1b8: eb000451 bl 0x1304 + 1bc: e8bd8000 ldmia sp!, {pc} + + 1c0: e3a0c061 mov r12, #97 ; 0x61 + 1c4: e5c0c001 strb r12, [r0, #1] + 1c8: e3a01002 mov r1, #2 ; 0x2 + 1cc: e59fcc3c ldr r12, [pc, #3132] ; 0xe10 + 1d0: e5dc2000 ldrb r2, [r12] + 1d4: eb00044a bl 0x1304 + 1d8: e8bd8000 ldmia sp!, {pc} + + 1dc: e3a0c043 mov r12, #67 ; 0x43 + 1e0: e5c0c001 strb r12, [r0, #1] + 1e4: e59fcc18 ldr r12, [pc, #3096] ; 0xe04 + 1e8: e5dc1010 ldrb r1, [r12, #16] + 1ec: e5c01002 strb r1, [r0, #2] + 1f0: e5dc2008 ldrb r2, [r12, #8] + 1f4: e3a01003 mov r1, #3 ; 0x3 + 1f8: eb000441 bl 0x1304 + 1fc: e8bd8000 ldmia sp!, {pc} + + 200: e3a0c063 mov r12, #99 ; 0x63 + 204: e5c0c001 strb r12, [r0, #1] + 208: e59fcbf4 ldr r12, [pc, #3060] ; 0xe04 + 20c: e5dc1010 ldrb r1, [r12, #16] + 210: e5c01002 strb r1, [r0, #2] + 214: e5dc2008 ldrb r2, [r12, #8] + 218: e3a01003 mov r1, #3 ; 0x3 + 21c: eb000438 bl 0x1304 + 220: e8bd8000 ldmia sp!, {pc} + + 224: e3a0c057 mov r12, #87 ; 0x57 + 228: e5c0c001 strb r12, [r0, #1] + 22c: e59fcbd0 ldr r12, [pc, #3024] ; 0xe04 + 230: e5dc1019 ldrb r1, [r12, #25] + 234: e5c01002 strb r1, [r0, #2] + 238: e5dc2008 ldrb r2, [r12, #8] + 23c: e3a01003 mov r1, #3 ; 0x3 + 240: eb00042f bl 0x1304 + 244: e8bd8000 ldmia sp!, {pc} + + 248: e3a0c077 mov r12, #119 ; 0x77 + 24c: e5c0c001 strb r12, [r0, #1] + 250: e3a01002 mov r1, #2 ; 0x2 + 254: e59fcbb4 ldr r12, [pc, #2996] ; 0xe10 + 258: e5dc2000 ldrb r2, [r12] + 25c: eb000428 bl 0x1304 + 260: e8bd8000 ldmia sp!, {pc} + + 264: e3a0c050 mov r12, #80 ; 0x50 + 268: e5c0c001 strb r12, [r0, #1] + 26c: e3a01002 mov r1, #2 ; 0x2 + 270: e59fcb98 ldr r12, [pc, #2968] ; 0xe10 + 274: e5dc2000 ldrb r2, [r12] + 278: eb000421 bl 0x1304 + 27c: e8bd8000 ldmia sp!, {pc} + + 280: e3a0c070 mov r12, #112 ; 0x70 + 284: e5c0c001 strb r12, [r0, #1] + 288: e3a0c000 mov r12, #0 ; 0x0 + 28c: e5c0c002 strb r12, [r0, #2] + 290: e3a0c004 mov r12, #4 ; 0x4 + 294: e5c0c003 strb r12, [r0, #3] + 298: e3a01004 mov r1, #4 ; 0x4 + 29c: e59fcb6c ldr r12, [pc, #2924] ; 0xe10 + 2a0: e5dc2000 ldrb r2, [r12] + 2a4: eb000416 bl 0x1304 + 2a8: e8bd8000 ldmia sp!, {pc} + + 2ac: e3a0c069 mov r12, #105 ; 0x69 + 2b0: e5c0c001 strb r12, [r0, #1] + 2b4: e3a01002 mov r1, #2 ; 0x2 + 2b8: e59fcb50 ldr r12, [pc, #2896] ; 0xe10 + 2bc: e5dc2000 ldrb r2, [r12] + 2c0: eb00040f bl 0x1304 + 2c4: e8bd8000 ldmia sp!, {pc} + + 2c8: e92d4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + 2cc: e24dd004 sub sp, sp, #4 ; 0x4 + 2d0: e1a0b000 mov r11, r0 + 2d4: e3a05000 mov r5, #0 ; 0x0 + 2d8: e5cb5000 strb r5, [r11] + 2dc: e59f7b30 ldr r7, [pc, #2864] ; 0xe14 + 2e0: e59f4b1c ldr r4, [pc, #2844] ; 0xe04 + 2e4: e5d40008 ldrb r0, [r4, #8] + 2e8: e5971000 ldr r1, [r7] + 2ec: e28d2002 add r2, sp, #2 ; 0x2 + 2f0: eb00044c bl 0x1428 + 2f4: e3500000 cmp r0, #0 ; 0x0 + 2f8: 0a0000fc beq 0x6f0 + 2fc: e5ddc002 ldrb r12, [sp, #2] + 300: e25cc061 subs r12, r12, #97 ; 0x61 + 304: 0a000104 beq 0x71c + 308: e25cc001 subs r12, r12, #1 ; 0x1 + 30c: 0a0000ee beq 0x6cc + 310: e25cc001 subs r12, r12, #1 ; 0x1 + 314: 0a0000e1 beq 0x6a0 + 318: e25cc006 subs r12, r12, #6 ; 0x6 + 31c: 0a0000dc beq 0x694 + 320: e25cc007 subs r12, r12, #7 ; 0x7 + 324: 0a0000b8 beq 0x60c + 328: e25cc007 subs r12, r12, #7 ; 0x7 + 32c: 1a0000fc bne 0x724 + 330: e5c45018 strb r5, [r4, #24] + 334: e3a0a000 mov r10, #0 ; 0x0 + 338: e3a06000 mov r6, #0 ; 0x0 + 33c: ea000015 b 0x398 + 340: e5d40008 ldrb r0, [r4, #8] + 344: e5971000 ldr r1, [r7] + 348: e28d2002 add r2, sp, #2 ; 0x2 + 34c: eb000435 bl 0x1428 + 350: e3500000 cmp r0, #0 ; 0x0 + 354: 0a0000e5 beq 0x6f0 + 358: e5ddc002 ldrb r12, [sp, #2] + 35c: e35c003c cmp r12, #60 ; 0x3c + 360: 0a000001 beq 0x36c + 364: e3a0c001 mov r12, #1 ; 0x1 + 368: e5c4c018 strb r12, [r4, #24] + 36c: e5d40008 ldrb r0, [r4, #8] + 370: e5971000 ldr r1, [r7] + 374: e28d2002 add r2, sp, #2 ; 0x2 + 378: eb00042a bl 0x1428 + 37c: e3500000 cmp r0, #0 ; 0x0 + 380: 0a0000da beq 0x6f0 + 384: e5ddc002 ldrb r12, [sp, #2] + 388: e35c0077 cmp r12, #119 ; 0x77 + 38c: 0a000001 beq 0x398 + 390: e3a0c001 mov r12, #1 ; 0x1 + 394: e5c4c018 strb r12, [r4, #24] + 398: e5d40008 ldrb r0, [r4, #8] + 39c: e5971000 ldr r1, [r7] + 3a0: e1a0200d mov r2, sp + 3a4: eb00041f bl 0x1428 + 3a8: e3500000 cmp r0, #0 ; 0x0 + 3ac: 0a0000cf beq 0x6f0 + 3b0: e5d40008 ldrb r0, [r4, #8] + 3b4: e5971000 ldr r1, [r7] + 3b8: e28d2001 add r2, sp, #1 ; 0x1 + 3bc: eb000419 bl 0x1428 + 3c0: e3500000 cmp r0, #0 ; 0x0 + 3c4: 0a0000c9 beq 0x6f0 + 3c8: e5dd0000 ldrb r0, [sp] + 3cc: e5ddc001 ldrb r12, [sp, #1] + 3d0: e150000c cmp r0, r12 + 3d4: 1a000000 bne 0x3dc + 3d8: e3a0a001 mov r10, #1 ; 0x1 + 3dc: e5dd0000 ldrb r0, [sp] + 3e0: e5ddc001 ldrb r12, [sp, #1] + 3e4: e150000c cmp r0, r12 + 3e8: ca00007c bgt 0x5e0 + 3ec: e5ddc001 ldrb r12, [sp, #1] + 3f0: e35c0000 cmp r12, #0 ; 0x0 + 3f4: 0a000079 beq 0x5e0 + 3f8: e5ddc000 ldrb r12, [sp] + 3fc: e35c0000 cmp r12, #0 ; 0x0 + 400: 0a000076 beq 0x5e0 + 404: e3a08002 mov r8, #2 ; 0x2 + 408: e3a05000 mov r5, #0 ; 0x0 + 40c: e5d40008 ldrb r0, [r4, #8] + 410: e5971000 ldr r1, [r7] + 414: e28d2002 add r2, sp, #2 ; 0x2 + 418: eb000402 bl 0x1428 + 41c: e3500000 cmp r0, #0 ; 0x0 + 420: 0a0000b2 beq 0x6f0 + 424: e5ddc002 ldrb r12, [sp, #2] + 428: e18cc405 orr r12, r12, r5, lsl #8 + 42c: e1a0c80c mov r12, r12, lsl #16 + 430: e1a0582c mov r5, r12, lsr #16 + 434: e2588001 subs r8, r8, #1 ; 0x1 + 438: 1afffff3 bne 0x40c + 43c: e3a09004 mov r9, #4 ; 0x4 + 440: e3a08000 mov r8, #0 ; 0x0 + 444: e5d40008 ldrb r0, [r4, #8] + 448: e5971000 ldr r1, [r7] + 44c: e28d2002 add r2, sp, #2 ; 0x2 + 450: eb0003f4 bl 0x1428 + 454: e3500000 cmp r0, #0 ; 0x0 + 458: 0a0000a4 beq 0x6f0 + 45c: e5ddc002 ldrb r12, [sp, #2] + 460: e18c8408 orr r8, r12, r8, lsl #8 + 464: e2599001 subs r9, r9, #1 ; 0x1 + 468: 1afffff5 bne 0x444 + 46c: e59fc9a4 ldr r12, [pc, #2468] ; 0xe18 + 470: e158000c cmp r8, r12 + 474: 3a00004e bcc 0x5b4 + 478: e59f099c ldr r0, [pc, #2460] ; 0xe1c + 47c: e080c00c add r12, r0, r12 + 480: e158000c cmp r8, r12 + 484: 8a00004a bhi 0x5b4 + 488: e085c006 add r12, r5, r6 + 48c: e35c0ffe cmp r12, #1016 ; 0x3f8 + 490: aa000037 bge 0x574 + 494: e59fc970 ldr r12, [pc, #2416] ; 0xe0c + 498: e5dd0000 ldrb r0, [sp] + 49c: e7c6000c strb r0, [r6, r12] + 4a0: e2860001 add r0, r6, #1 ; 0x1 + 4a4: e1a00800 mov r0, r0, lsl #16 + 4a8: e1a06820 mov r6, r0, lsr #16 + 4ac: e5dd0001 ldrb r0, [sp, #1] + 4b0: e7c6000c strb r0, [r6, r12] + 4b4: e2860001 add r0, r6, #1 ; 0x1 + 4b8: e1a00800 mov r0, r0, lsl #16 + 4bc: e1a06820 mov r6, r0, lsr #16 + 4c0: e1a00425 mov r0, r5, lsr #8 + 4c4: e7c6000c strb r0, [r6, r12] + 4c8: e2860001 add r0, r6, #1 ; 0x1 + 4cc: e1a00800 mov r0, r0, lsl #16 + 4d0: e1a06820 mov r6, r0, lsr #16 + 4d4: e7c6500c strb r5, [r6, r12] + 4d8: e2860001 add r0, r6, #1 ; 0x1 + 4dc: e1a00800 mov r0, r0, lsl #16 + 4e0: e1a06820 mov r6, r0, lsr #16 + 4e4: e1a00c28 mov r0, r8, lsr #24 + 4e8: e7c6000c strb r0, [r6, r12] + 4ec: e2860001 add r0, r6, #1 ; 0x1 + 4f0: e1a00800 mov r0, r0, lsl #16 + 4f4: e1a06820 mov r6, r0, lsr #16 + 4f8: e1a00828 mov r0, r8, lsr #16 + 4fc: e7c6000c strb r0, [r6, r12] + 500: e2860001 add r0, r6, #1 ; 0x1 + 504: e1a00800 mov r0, r0, lsl #16 + 508: e1a06820 mov r6, r0, lsr #16 + 50c: e1a00428 mov r0, r8, lsr #8 + 510: e7c6000c strb r0, [r6, r12] + 514: e2860001 add r0, r6, #1 ; 0x1 + 518: e1a00800 mov r0, r0, lsl #16 + 51c: e1a06820 mov r6, r0, lsr #16 + 520: e086900c add r9, r6, r12 + 524: e5c98000 strb r8, [r9] + 528: e286c001 add r12, r6, #1 ; 0x1 + 52c: e1a0c80c mov r12, r12, lsl #16 + 530: e1a0682c mov r6, r12, lsr #16 + 534: e3550000 cmp r5, #0 ; 0x0 + 538: 0a000018 beq 0x5a0 + 53c: e085c006 add r12, r5, r6 + 540: e1a0c80c mov r12, r12, lsl #16 + 544: e1a0682c mov r6, r12, lsr #16 + 548: e2899001 add r9, r9, #1 ; 0x1 + 54c: e5d40008 ldrb r0, [r4, #8] + 550: e5971000 ldr r1, [r7] + 554: e1a02009 mov r2, r9 + 558: eb0003b2 bl 0x1428 + 55c: e3500000 cmp r0, #0 ; 0x0 + 560: 0a000062 beq 0x6f0 + 564: e2899001 add r9, r9, #1 ; 0x1 + 568: e2555001 subs r5, r5, #1 ; 0x1 + 56c: 1afffff6 bne 0x54c + 570: ea00000a b 0x5a0 + 574: e285c001 add r12, r5, #1 ; 0x1 + 578: e1a0c80c mov r12, r12, lsl #16 + 57c: e1a0582c mov r5, r12, lsr #16 + 580: e5d40008 ldrb r0, [r4, #8] + 584: e5971000 ldr r1, [r7] + 588: e28d2002 add r2, sp, #2 ; 0x2 + 58c: eb0003a5 bl 0x1428 + 590: e3500000 cmp r0, #0 ; 0x0 + 594: 0a000055 beq 0x6f0 + 598: e2555001 subs r5, r5, #1 ; 0x1 + 59c: 1afffff7 bne 0x580 + 5a0: e35a0000 cmp r10, #0 ; 0x0 + 5a4: 0affff65 beq 0x340 + 5a8: e3a0c003 mov r12, #3 ; 0x3 + 5ac: e5cbc000 strb r12, [r11] + 5b0: ea00005b b 0x724 + 5b4: e3a0c001 mov r12, #1 ; 0x1 + 5b8: e5c4c018 strb r12, [r4, #24] + 5bc: e3a0c003 mov r12, #3 ; 0x3 + 5c0: e5cbc000 strb r12, [r11] + 5c4: e5d40008 ldrb r0, [r4, #8] + 5c8: e59f1850 ldr r1, [pc, #2128] ; 0xe20 + 5cc: e28d2002 add r2, sp, #2 ; 0x2 + 5d0: eb000394 bl 0x1428 + 5d4: e3500001 cmp r0, #1 ; 0x1 + 5d8: 0afffff9 beq 0x5c4 + 5dc: ea000050 b 0x724 + 5e0: e3a0c001 mov r12, #1 ; 0x1 + 5e4: e5c4c018 strb r12, [r4, #24] + 5e8: e3a0c003 mov r12, #3 ; 0x3 + 5ec: e5cbc000 strb r12, [r11] + 5f0: e5d40008 ldrb r0, [r4, #8] + 5f4: e59f1824 ldr r1, [pc, #2084] ; 0xe20 + 5f8: e28d2002 add r2, sp, #2 ; 0x2 + 5fc: eb000389 bl 0x1428 + 600: e3500001 cmp r0, #1 ; 0x1 + 604: 0afffff9 beq 0x5f0 + 608: ea000045 b 0x724 + 60c: e59f67f8 ldr r6, [pc, #2040] ; 0xe0c + 610: e3a08009 mov r8, #9 ; 0x9 + 614: e5d40008 ldrb r0, [r4, #8] + 618: e5971000 ldr r1, [r7] + 61c: e1a02006 mov r2, r6 + 620: eb000380 bl 0x1428 + 624: e3500000 cmp r0, #0 ; 0x0 + 628: 0a000030 beq 0x6f0 + 62c: e2866001 add r6, r6, #1 ; 0x1 + 630: e2588001 subs r8, r8, #1 ; 0x1 + 634: 1afffff6 bne 0x614 + 638: e59fc7cc ldr r12, [pc, #1996] ; 0xe0c + 63c: e5dc0000 ldrb r0, [r12] + 640: e5c40000 strb r0, [r4] + 644: e5dc0001 ldrb r0, [r12, #1] + 648: e5c40009 strb r0, [r4, #9] + 64c: e1c450ba strh r5, [r4, #10] + 650: e5dc1003 ldrb r1, [r12, #3] + 654: e5dc0002 ldrb r0, [r12, #2] + 658: e1810400 orr r0, r1, r0, lsl #8 + 65c: e1c400ba strh r0, [r4, #10] + 660: e5dc0004 ldrb r0, [r12, #4] + 664: e5c4000d strb r0, [r4, #13] + 668: e5dc0006 ldrb r0, [r12, #6] + 66c: e5dc1005 ldrb r1, [r12, #5] + 670: e1801401 orr r1, r0, r1, lsl #8 + 674: e5dc0007 ldrb r0, [r12, #7] + 678: e1800401 orr r0, r0, r1, lsl #8 + 67c: e5dcc008 ldrb r12, [r12, #8] + 680: e18cc400 orr r12, r12, r0, lsl #8 + 684: e584c004 str r12, [r4, #4] + 688: e3a0c002 mov r12, #2 ; 0x2 + 68c: e5cbc000 strb r12, [r11] + 690: ea000023 b 0x724 + 694: e3a0c001 mov r12, #1 ; 0x1 + 698: e5cbc000 strb r12, [r11] + 69c: ea000020 b 0x724 + 6a0: e5d40008 ldrb r0, [r4, #8] + 6a4: e5971000 ldr r1, [r7] + 6a8: e28d2002 add r2, sp, #2 ; 0x2 + 6ac: eb00035d bl 0x1428 + 6b0: e3500000 cmp r0, #0 ; 0x0 + 6b4: 0a00000d beq 0x6f0 + 6b8: e5ddc002 ldrb r12, [sp, #2] + 6bc: e1c4c0be strh r12, [r4, #14] + 6c0: e3a0c004 mov r12, #4 ; 0x4 + 6c4: e5cbc000 strb r12, [r11] + 6c8: ea000015 b 0x724 + 6cc: e3a0c000 mov r12, #0 ; 0x0 + 6d0: e584c014 str r12, [r4, #20] + 6d4: e3a05004 mov r5, #4 ; 0x4 + 6d8: e5d40008 ldrb r0, [r4, #8] + 6dc: e5971000 ldr r1, [r7] + 6e0: e28d2002 add r2, sp, #2 ; 0x2 + 6e4: eb00034f bl 0x1428 + 6e8: e3500000 cmp r0, #0 ; 0x0 + 6ec: 1a000001 bne 0x6f8 + 6f0: e3a00000 mov r0, #0 ; 0x0 + 6f4: ea00000b b 0x728 + 6f8: e5dd0002 ldrb r0, [sp, #2] + 6fc: e594c014 ldr r12, [r4, #20] + 700: e180c40c orr r12, r0, r12, lsl #8 + 704: e584c014 str r12, [r4, #20] + 708: e2555001 subs r5, r5, #1 ; 0x1 + 70c: 1afffff1 bne 0x6d8 + 710: e3a0c006 mov r12, #6 ; 0x6 + 714: e5cbc000 strb r12, [r11] + 718: ea000001 b 0x724 + 71c: e3a0c005 mov r12, #5 ; 0x5 + 720: e5cbc000 strb r12, [r11] + 724: e3a00001 mov r0, #1 ; 0x1 + 728: e28dd004 add sp, sp, #4 ; 0x4 + 72c: e8bd8ff0 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + 730: e92d43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + 734: e59f46c8 ldr r4, [pc, #1736] ; 0xe04 + 738: e5d4c018 ldrb r12, [r4, #24] + 73c: e35c0001 cmp r12, #1 ; 0x1 + 740: 0a00004a beq 0x870 + 744: e59f56c0 ldr r5, [pc, #1728] ; 0xe0c + 748: e59f66c8 ldr r6, [pc, #1736] ; 0xe18 + 74c: e3a07000 mov r7, #0 ; 0x0 + 750: e3a00000 mov r0, #0 ; 0x0 + 754: e080c005 add r12, r0, r5 + 758: e28cc001 add r12, r12, #1 ; 0x1 + 75c: e7d02005 ldrb r2, [r0, r5] + 760: e5dc1000 ldrb r1, [r12] + 764: e1520001 cmp r2, r1 + 768: 1a000000 bne 0x770 + 76c: e3a07001 mov r7, #1 ; 0x1 + 770: e5dc2002 ldrb r2, [r12, #2] + 774: e5dc1001 ldrb r1, [r12, #1] + 778: e0821401 add r1, r2, r1, lsl #8 + 77c: e1a01801 mov r1, r1, lsl #16 + 780: e1a01821 mov r1, r1, lsr #16 + 784: e5dc3004 ldrb r3, [r12, #4] + 788: e5dc2003 ldrb r2, [r12, #3] + 78c: e0832402 add r2, r3, r2, lsl #8 + 790: e5dc3005 ldrb r3, [r12, #5] + 794: e0832402 add r2, r3, r2, lsl #8 + 798: e5dcc006 ldrb r12, [r12, #6] + 79c: e08c2402 add r2, r12, r2, lsl #8 + 7a0: e202c0ff and r12, r2, #255 ; 0xff + 7a4: e081300c add r3, r1, r12 + 7a8: e1a0c422 mov r12, r2, lsr #8 + 7ac: e20cc0ff and r12, r12, #255 ; 0xff + 7b0: e08c3003 add r3, r12, r3 + 7b4: e1a0c822 mov r12, r2, lsr #16 + 7b8: e20cc0ff and r12, r12, #255 ; 0xff + 7bc: e08cc003 add r12, r12, r3 + 7c0: e08ccc22 add r12, r12, r2, lsr #24 + 7c4: e28cc005 add r12, r12, #5 ; 0x5 + 7c8: e1a0c80c mov r12, r12, lsl #16 + 7cc: e1a0882c mov r8, r12, lsr #16 + 7d0: e3a03000 mov r3, #0 ; 0x0 + 7d4: e1520006 cmp r2, r6 + 7d8: 3a000003 bcc 0x7ec + 7dc: e59fc638 ldr r12, [pc, #1592] ; 0xe1c + 7e0: e08cc006 add r12, r12, r6 + 7e4: e152000c cmp r2, r12 + 7e8: 9a000001 bls 0x7f4 + 7ec: e383c001 orr r12, r3, #1 ; 0x1 + 7f0: e20c30ff and r3, r12, #255 ; 0xff + 7f4: e3530000 cmp r3, #0 ; 0x0 + 7f8: 1a00001d bne 0x874 + 7fc: e3a09000 mov r9, #0 ; 0x0 + 800: e3510000 cmp r1, #0 ; 0x0 + 804: 0a00000b beq 0x838 + 808: e089c000 add r12, r9, r0 + 80c: e085c00c add r12, r5, r12 + 810: e5dcc008 ldrb r12, [r12, #8] + 814: e4c2c001 strb r12, [r2], #1 + 818: e08cc008 add r12, r12, r8 + 81c: e1a0c80c mov r12, r12, lsl #16 + 820: e1a0882c mov r8, r12, lsr #16 + 824: e289c001 add r12, r9, #1 ; 0x1 + 828: e1a0c80c mov r12, r12, lsl #16 + 82c: e1a0982c mov r9, r12, lsr #16 + 830: e2511001 subs r1, r1, #1 ; 0x1 + 834: 1afffff3 bne 0x808 + 838: e3a0c0ff mov r12, #255 ; 0xff + 83c: e1ccc008 bic r12, r12, r8 + 840: e1a0c80c mov r12, r12, lsl #16 + 844: e1a0882c mov r8, r12, lsr #16 + 848: e1d4c1b0 ldrh r12, [r4, #16] + 84c: e088c00c add r12, r8, r12 + 850: e1c4c1b0 strh r12, [r4, #16] + 854: e080c009 add r12, r0, r9 + 858: e28cc008 add r12, r12, #8 ; 0x8 + 85c: e1a0c80c mov r12, r12, lsl #16 + 860: e1a0082c mov r0, r12, lsr #16 + 864: e3570000 cmp r7, #0 ; 0x0 + 868: 0affffb9 beq 0x754 + 86c: ea000000 b 0x874 + 870: e3a03002 mov r3, #2 ; 0x2 + 874: e5c43019 strb r3, [r4, #25] + 878: e3530000 cmp r3, #0 ; 0x0 + 87c: 0a000008 beq 0x8a4 + 880: e3a00004 mov r0, #4 ; 0x4 + 884: ebfffe2c bl 0x13c + 888: e5d41008 ldrb r1, [r4, #8] + 88c: e3a00004 mov r0, #4 ; 0x4 + 890: eb0002d0 bl 0x13d8 + 894: e1a00004 mov r0, r4 + 898: ebfffe1f bl 0x11c + 89c: e3a00001 mov r0, #1 ; 0x1 + 8a0: e8bd83f0 ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} + + 8a4: e3a00003 mov r0, #3 ; 0x3 + 8a8: ebfffe23 bl 0x13c + 8ac: e3a00000 mov r0, #0 ; 0x0 + 8b0: e8bd83f0 ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} + + 8b4: e92d4070 stmdb sp!, {r4, r5, r6, lr} + 8b8: e24dd008 sub sp, sp, #8 ; 0x8 + 8bc: e59f4560 ldr r4, [pc, #1376] ; 0xe24 + 8c0: e5d4c000 ldrb r12, [r4] + 8c4: e25cc001 subs r12, r12, #1 ; 0x1 + 8c8: 0a000102 beq 0xcd8 + 8cc: e25cc001 subs r12, r12, #1 ; 0x1 + 8d0: 0a00008a beq 0xb00 + 8d4: e25cc001 subs r12, r12, #1 ; 0x1 + 8d8: 0a000047 beq 0x9fc + 8dc: e25cc001 subs r12, r12, #1 ; 0x1 + 8e0: 1a000145 bne 0xdfc + 8e4: e250c001 subs r12, r0, #1 ; 0x1 + 8e8: 0a00003c beq 0x9e0 + 8ec: e25cc002 subs r12, r12, #2 ; 0x2 + 8f0: 0a00002f beq 0x9b4 + 8f4: e25cc001 subs r12, r12, #1 ; 0x1 + 8f8: 0a000022 beq 0x988 + 8fc: e25cc001 subs r12, r12, #1 ; 0x1 + 900: 0a000017 beq 0x964 + 904: e25cc001 subs r12, r12, #1 ; 0x1 + 908: 1a00013b bne 0xdfc + 90c: e59f54f0 ldr r5, [pc, #1264] ; 0xe04 + 910: e59f0500 ldr r0, [pc, #1280] ; 0xe18 + 914: e595c014 ldr r12, [r5, #20] + 918: e15c0000 cmp r12, r0 + 91c: 3a000006 bcc 0x93c + 920: e59f14f4 ldr r1, [pc, #1268] ; 0xe1c + 924: e0810000 add r0, r1, r0 + 928: e15c0000 cmp r12, r0 + 92c: 8a000002 bhi 0x93c + 930: e3a00008 mov r0, #8 ; 0x8 + 934: ebfffe00 bl 0x13c + 938: ebfffdeb bl 0xec + 93c: e3a00009 mov r0, #9 ; 0x9 + 940: ebfffdfd bl 0x13c + 944: e5d51008 ldrb r1, [r5, #8] + 948: e3a00004 mov r0, #4 ; 0x4 + 94c: eb0002a1 bl 0x13d8 + 950: e1a00005 mov r0, r5 + 954: ebfffdf0 bl 0x11c + 958: e3a0c001 mov r12, #1 ; 0x1 + 95c: e5c4c000 strb r12, [r4] + 960: ea000125 b 0xdfc + 964: e59f5498 ldr r5, [pc, #1176] ; 0xe04 + 968: e1a00005 mov r0, r5 + 96c: ebfffdea bl 0x11c + 970: e5d51008 ldrb r1, [r5, #8] + 974: e3a00004 mov r0, #4 ; 0x4 + 978: eb000296 bl 0x13d8 + 97c: e3a0c001 mov r12, #1 ; 0x1 + 980: e5c4c000 strb r12, [r4] + 984: ea00011c b 0xdfc + 988: e3a00006 mov r0, #6 ; 0x6 + 98c: ebfffdea bl 0x13c + 990: e59f546c ldr r5, [pc, #1132] ; 0xe04 + 994: e5d51008 ldrb r1, [r5, #8] + 998: e3a00004 mov r0, #4 ; 0x4 + 99c: eb00028d bl 0x13d8 + 9a0: e1a00005 mov r0, r5 + 9a4: ebfffddc bl 0x11c + 9a8: e3a0c001 mov r12, #1 ; 0x1 + 9ac: e5c4c000 strb r12, [r4] + 9b0: ea000111 b 0xdfc + 9b4: e3a00004 mov r0, #4 ; 0x4 + 9b8: ebfffddf bl 0x13c + 9bc: e59f5440 ldr r5, [pc, #1088] ; 0xe04 + 9c0: e5d51008 ldrb r1, [r5, #8] + 9c4: e3a00004 mov r0, #4 ; 0x4 + 9c8: eb000282 bl 0x13d8 + 9cc: e1a00005 mov r0, r5 + 9d0: ebfffdd1 bl 0x11c + 9d4: e3a0c001 mov r12, #1 ; 0x1 + 9d8: e5c4c000 strb r12, [r4] + 9dc: ea000106 b 0xdfc + 9e0: e59f041c ldr r0, [pc, #1052] ; 0xe04 + 9e4: ebfffdcc bl 0x11c + 9e8: e3a00000 mov r0, #0 ; 0x0 + 9ec: ebfffdd2 bl 0x13c + 9f0: e3a0c004 mov r12, #4 ; 0x4 + 9f4: e5c4c000 strb r12, [r4] + 9f8: ea0000ff b 0xdfc + 9fc: e250c001 subs r12, r0, #1 ; 0x1 + a00: 0a000037 beq 0xae4 + a04: e25cc002 subs r12, r12, #2 ; 0x2 + a08: 0a000031 beq 0xad4 + a0c: e25cc001 subs r12, r12, #1 ; 0x1 + a10: 0a000017 beq 0xa74 + a14: e25cc001 subs r12, r12, #1 ; 0x1 + a18: 0a00000c beq 0xa50 + a1c: e25cc001 subs r12, r12, #1 ; 0x1 + a20: 1a0000f5 bne 0xdfc + a24: e3a00009 mov r0, #9 ; 0x9 + a28: ebfffdc3 bl 0x13c + a2c: e59f53d0 ldr r5, [pc, #976] ; 0xe04 + a30: e5d51008 ldrb r1, [r5, #8] + a34: e3a00004 mov r0, #4 ; 0x4 + a38: eb000266 bl 0x13d8 + a3c: e1a00005 mov r0, r5 + a40: ebfffdb5 bl 0x11c + a44: e3a0c001 mov r12, #1 ; 0x1 + a48: e5c4c000 strb r12, [r4] + a4c: ea0000ea b 0xdfc + a50: e59f53ac ldr r5, [pc, #940] ; 0xe04 + a54: e1a00005 mov r0, r5 + a58: ebfffdaf bl 0x11c + a5c: e5d51008 ldrb r1, [r5, #8] + a60: e3a00004 mov r0, #4 ; 0x4 + a64: eb00025b bl 0x13d8 + a68: e3a0c001 mov r12, #1 ; 0x1 + a6c: e5c4c000 strb r12, [r4] + a70: ea0000e1 b 0xdfc + a74: e59fc388 ldr r12, [pc, #904] ; 0xe04 + a78: e3a010ff mov r1, #255 ; 0xff + a7c: e1dc01b0 ldrh r0, [r12, #16] + a80: e1c10000 bic r0, r1, r0 + a84: e1dcc0be ldrh r12, [r12, #14] + a88: e20cc0ff and r12, r12, #255 ; 0xff + a8c: e150000c cmp r0, r12 + a90: 1a000004 bne 0xaa8 + a94: e3a00005 mov r0, #5 ; 0x5 + a98: ebfffda7 bl 0x13c + a9c: e3a0c004 mov r12, #4 ; 0x4 + aa0: e5c4c000 strb r12, [r4] + aa4: ea0000d4 b 0xdfc + aa8: e3a00006 mov r0, #6 ; 0x6 + aac: ebfffda2 bl 0x13c + ab0: e59f534c ldr r5, [pc, #844] ; 0xe04 + ab4: e1a00005 mov r0, r5 + ab8: ebfffd97 bl 0x11c + abc: e5d51008 ldrb r1, [r5, #8] + ac0: e3a00004 mov r0, #4 ; 0x4 + ac4: eb000243 bl 0x13d8 + ac8: e3a0c001 mov r12, #1 ; 0x1 + acc: e5c4c000 strb r12, [r4] + ad0: ea0000c9 b 0xdfc + ad4: ebffff15 bl 0x730 + ad8: e3500000 cmp r0, #0 ; 0x0 + adc: 0a000038 beq 0xbc4 + ae0: ea00003a b 0xbd0 + ae4: e59f0318 ldr r0, [pc, #792] ; 0xe04 + ae8: ebfffd8b bl 0x11c + aec: e3a00000 mov r0, #0 ; 0x0 + af0: ebfffd91 bl 0x13c + af4: e3a0c003 mov r12, #3 ; 0x3 + af8: e5c4c000 strb r12, [r4] + afc: ea0000be b 0xdfc + b00: e250c001 subs r12, r0, #1 ; 0x1 + b04: 0a00006c beq 0xcbc + b08: e25cc001 subs r12, r12, #1 ; 0x1 + b0c: 0a000032 beq 0xbdc + b10: e25cc001 subs r12, r12, #1 ; 0x1 + b14: 0a000024 beq 0xbac + b18: e25cc001 subs r12, r12, #1 ; 0x1 + b1c: 0a000017 beq 0xb80 + b20: e25cc001 subs r12, r12, #1 ; 0x1 + b24: 0a00000c beq 0xb5c + b28: e25cc001 subs r12, r12, #1 ; 0x1 + b2c: 1a0000b2 bne 0xdfc + b30: e3a00009 mov r0, #9 ; 0x9 + b34: ebfffd80 bl 0x13c + b38: e59f52c4 ldr r5, [pc, #708] ; 0xe04 + b3c: e5d51008 ldrb r1, [r5, #8] + b40: e3a00004 mov r0, #4 ; 0x4 + b44: eb000223 bl 0x13d8 + b48: e1a00005 mov r0, r5 + b4c: ebfffd72 bl 0x11c + b50: e3a0c001 mov r12, #1 ; 0x1 + b54: e5c4c000 strb r12, [r4] + b58: ea0000a7 b 0xdfc + b5c: e59f52a0 ldr r5, [pc, #672] ; 0xe04 + b60: e1a00005 mov r0, r5 + b64: ebfffd6c bl 0x11c + b68: e5d51008 ldrb r1, [r5, #8] + b6c: e3a00004 mov r0, #4 ; 0x4 + b70: eb000218 bl 0x13d8 + b74: e3a0c001 mov r12, #1 ; 0x1 + b78: e5c4c000 strb r12, [r4] + b7c: ea00009e b 0xdfc + b80: e3a00006 mov r0, #6 ; 0x6 + b84: ebfffd6c bl 0x13c + b88: e59f5274 ldr r5, [pc, #628] ; 0xe04 + b8c: e5d51008 ldrb r1, [r5, #8] + b90: e3a00004 mov r0, #4 ; 0x4 + b94: eb00020f bl 0x13d8 + b98: e1a00005 mov r0, r5 + b9c: ebfffd5e bl 0x11c + ba0: e3a0c001 mov r12, #1 ; 0x1 + ba4: e5c4c000 strb r12, [r4] + ba8: ea000093 b 0xdfc + bac: e59f0274 ldr r0, [pc, #628] ; 0xe28 + bb0: e3a0c000 mov r12, #0 ; 0x0 + bb4: e1c0c0b0 strh r12, [r0] + bb8: ebfffedc bl 0x730 + bbc: e3500000 cmp r0, #0 ; 0x0 + bc0: 1a000002 bne 0xbd0 + bc4: e3a0c003 mov r12, #3 ; 0x3 + bc8: e5c4c000 strb r12, [r4] + bcc: ea00008a b 0xdfc + bd0: e3a0c001 mov r12, #1 ; 0x1 + bd4: e5c4c000 strb r12, [r4] + bd8: ea000087 b 0xdfc + bdc: e59f6220 ldr r6, [pc, #544] ; 0xe04 + be0: e5d6c000 ldrb r12, [r6] + be4: e35c0000 cmp r12, #0 ; 0x0 + be8: 0a000011 beq 0xc34 + bec: e35c0001 cmp r12, #1 ; 0x1 + bf0: 0a00000f beq 0xc34 + bf4: e35c0002 cmp r12, #2 ; 0x2 + bf8: 0a00000d beq 0xc34 + bfc: e35c0003 cmp r12, #3 ; 0x3 + c00: 0a00000b beq 0xc34 + c04: e35c0004 cmp r12, #4 ; 0x4 + c08: 0a000009 beq 0xc34 + c0c: e3a00002 mov r0, #2 ; 0x2 + c10: ebfffd49 bl 0x13c + c14: e5d61008 ldrb r1, [r6, #8] + c18: e3a00004 mov r0, #4 ; 0x4 + c1c: eb0001ed bl 0x13d8 + c20: e1a00006 mov r0, r6 + c24: ebfffd3c bl 0x11c + c28: e3a0c001 mov r12, #1 ; 0x1 + c2c: e5c4c000 strb r12, [r4] + c30: ea000071 b 0xdfc + c34: e5d6500d ldrb r5, [r6, #13] + c38: e1d6c0ba ldrh r12, [r6, #10] + c3c: e20c001f and r0, r12, #31 ; 0x1f + c40: e20000ff and r0, r0, #255 ; 0xff + c44: e1a012ac mov r1, r12, lsr #5 + c48: e201101f and r1, r1, #31 ; 0x1f + c4c: e20110ff and r1, r1, #255 ; 0xff + c50: e1a0c52c mov r12, r12, lsr #10 + c54: e20cc01f and r12, r12, #31 ; 0x1f + c58: e20c20ff and r2, r12, #255 ; 0xff + c5c: e205c00f and r12, r5, #15 ; 0xf + c60: e20c30ff and r3, r12, #255 ; 0xff + c64: e1a0c225 mov r12, r5, lsr #4 + c68: e5cdc000 strb r12, [sp] + c6c: eb00006e bl 0xe2c + c70: e5d6c009 ldrb r12, [r6, #9] + c74: e5d6000c ldrb r0, [r6, #12] + c78: e20c1003 and r1, r12, #3 ; 0x3 + c7c: e20110ff and r1, r1, #255 ; 0xff + c80: e1a0c12c mov r12, r12, lsr #2 + c84: e20cc01f and r12, r12, #31 ; 0x1f + c88: e20c20ff and r2, r12, #255 ; 0xff + c8c: eb000098 bl 0xef4 + c90: e3a00001 mov r0, #1 ; 0x1 + c94: ebfffd28 bl 0x13c + c98: e5d60000 ldrb r0, [r6] + c9c: e5d61008 ldrb r1, [r6, #8] + ca0: eb0001cc bl 0x13d8 + ca4: e59fc168 ldr r12, [pc, #360] ; 0xe14 + ca8: e5960004 ldr r0, [r6, #4] + cac: e58c0000 str r0, [r12] + cb0: e3a0c002 mov r12, #2 ; 0x2 + cb4: e5c4c000 strb r12, [r4] + cb8: ea00004f b 0xdfc + cbc: e59f0140 ldr r0, [pc, #320] ; 0xe04 + cc0: ebfffd15 bl 0x11c + cc4: e3a00000 mov r0, #0 ; 0x0 + cc8: ebfffd1b bl 0x13c + ccc: e3a0c002 mov r12, #2 ; 0x2 + cd0: e5c4c000 strb r12, [r4] + cd4: ea000048 b 0xdfc + cd8: e250c001 subs r12, r0, #1 ; 0x1 + cdc: 0a000040 beq 0xde4 + ce0: e25cc001 subs r12, r12, #1 ; 0x1 + ce4: 0a00000b beq 0xd18 + ce8: e24cc001 sub r12, r12, #1 ; 0x1 + cec: e35c0003 cmp r12, #3 ; 0x3 + cf0: 8a000041 bhi 0xdfc + cf4: e59f5108 ldr r5, [pc, #264] ; 0xe04 + cf8: e1a00005 mov r0, r5 + cfc: ebfffd06 bl 0x11c + d00: e5d51008 ldrb r1, [r5, #8] + d04: e3a00004 mov r0, #4 ; 0x4 + d08: eb0001b2 bl 0x13d8 + d0c: e3a0c001 mov r12, #1 ; 0x1 + d10: e5c4c000 strb r12, [r4] + d14: ea000038 b 0xdfc + d18: e59f60e4 ldr r6, [pc, #228] ; 0xe04 + d1c: e5d6c000 ldrb r12, [r6] + d20: e35c0000 cmp r12, #0 ; 0x0 + d24: 0a00000c beq 0xd5c + d28: e35c0001 cmp r12, #1 ; 0x1 + d2c: 0a00000a beq 0xd5c + d30: e35c0002 cmp r12, #2 ; 0x2 + d34: 0a000008 beq 0xd5c + d38: e35c0003 cmp r12, #3 ; 0x3 + d3c: 0a000006 beq 0xd5c + d40: e35c0004 cmp r12, #4 ; 0x4 + d44: 0a000004 beq 0xd5c + d48: e3a00002 mov r0, #2 ; 0x2 + d4c: ebfffcfa bl 0x13c + d50: e3a0c001 mov r12, #1 ; 0x1 + d54: e5c4c000 strb r12, [r4] + d58: ea000027 b 0xdfc + d5c: e5d6500d ldrb r5, [r6, #13] + d60: e1d6c0ba ldrh r12, [r6, #10] + d64: e20c001f and r0, r12, #31 ; 0x1f + d68: e20000ff and r0, r0, #255 ; 0xff + d6c: e1a012ac mov r1, r12, lsr #5 + d70: e201101f and r1, r1, #31 ; 0x1f + d74: e20110ff and r1, r1, #255 ; 0xff + d78: e1a0c52c mov r12, r12, lsr #10 + d7c: e20cc01f and r12, r12, #31 ; 0x1f + d80: e20c20ff and r2, r12, #255 ; 0xff + d84: e205c00f and r12, r5, #15 ; 0xf + d88: e20c30ff and r3, r12, #255 ; 0xff + d8c: e1a0c225 mov r12, r5, lsr #4 + d90: e5cdc000 strb r12, [sp] + d94: eb000024 bl 0xe2c + d98: e5d6c009 ldrb r12, [r6, #9] + d9c: e5d6000c ldrb r0, [r6, #12] + da0: e20c1003 and r1, r12, #3 ; 0x3 + da4: e20110ff and r1, r1, #255 ; 0xff + da8: e1a0c12c mov r12, r12, lsr #2 + dac: e20cc01f and r12, r12, #31 ; 0x1f + db0: e20c20ff and r2, r12, #255 ; 0xff + db4: eb00004e bl 0xef4 + db8: e3a00001 mov r0, #1 ; 0x1 + dbc: ebfffcde bl 0x13c + dc0: e5d60000 ldrb r0, [r6] + dc4: e5d61008 ldrb r1, [r6, #8] + dc8: eb000182 bl 0x13d8 + dcc: e59f0040 ldr r0, [pc, #64] ; 0xe14 + dd0: e596c004 ldr r12, [r6, #4] + dd4: e580c000 str r12, [r0] + dd8: e3a0c002 mov r12, #2 ; 0x2 + ddc: e5c4c000 strb r12, [r4] + de0: ea000005 b 0xdfc + de4: e59f0018 ldr r0, [pc, #24] ; 0xe04 + de8: ebfffccb bl 0x11c + dec: e3a00000 mov r0, #0 ; 0x0 + df0: ebfffcd1 bl 0x13c + df4: e3a0c001 mov r12, #1 ; 0x1 + df8: e5c4c000 strb r12, [r4] + dfc: e28dd008 add sp, sp, #8 ; 0x8 + e00: e8bd8070 ldmia sp!, {r4, r5, r6, pc} + + e04: 00800518 addeq r0, r0, r8, lsl r5 + e08: 00001fcc andeq r1, r0, r12, asr #31 + e0c: 0080010c addeq r0, r0, r12, lsl #2 + e10: 00800520 addeq r0, r0, r0, lsr #10 + e14: 00800104 addeq r0, r0, r4, lsl #2 + e18: 00800750 addeq r0, r0, r0, asr r7 + e1c: 0007f8af andeq pc, r7, pc, lsr #17 + e20: 000fffff streqd pc, [pc], -pc + e24: 00800108 addeq r0, r0, r8, lsl #2 + e28: 00800528 addeq r0, r0, r8, lsr #10 + + e2c: e92d4070 stmdb sp!, {r4, r5, r6, lr} + e30: e5dd5010 ldrb r5, [sp, #16] + e34: e59fc48c ldr r12, [pc, #1164] ; 0x12c8 + e38: e59f4484 ldr r4, [pc, #1156] ; 0x12c4 + e3c: e1c4c0b0 strh r12, [r4] + e40: e59f4484 ldr r4, [pc, #1156] ; 0x12cc + e44: e1c4c0b0 strh r12, [r4] + e48: e59f4480 ldr r4, [pc, #1152] ; 0x12d0 + e4c: e3a0c0f5 mov r12, #245 ; 0xf5 + e50: e1c4c0b0 strh r12, [r4] + e54: e3a0c0a0 mov r12, #160 ; 0xa0 + e58: e1c4c0b0 strh r12, [r4] + e5c: e59f4470 ldr r4, [pc, #1136] ; 0x12d4 + e60: e3a0cc01 mov r12, #256 ; 0x100 + e64: e1c4c0b0 strh r12, [r4] + e68: e59f6468 ldr r6, [pc, #1128] ; 0x12d8 + e6c: e3a04b01 mov r4, #1024 ; 0x400 + e70: e3a0c801 mov r12, #65536 ; 0x10000 + e74: e24cc0de sub r12, r12, #222 ; 0xde + e78: e106c0b4 strh r12, [r6, -r4] + e7c: e59fc45c ldr r12, [pc, #1116] ; 0x12e0 + e80: e59f4454 ldr r4, [pc, #1108] ; 0x12dc + e84: e1c4c0b0 strh r12, [r4] + e88: e1b04f8c movs r4, r12, lsl #31 + e8c: 1afffffd bne 0xe88 + e90: e3a0c083 mov r12, #131 ; 0x83 + e94: e28cca01 add r12, r12, #4096 ; 0x1000 + e98: e1c6c0b0 strh r12, [r6] + e9c: e1d6c0b2 ldrh r12, [r6, #2] + ea0: e20c40bf and r4, r12, #191 ; 0xbf + ea4: e20cccff and r12, r12, #65280 ; 0xff00 + ea8: e184c00c orr r12, r4, r12 + eac: e1c6c0b2 strh r12, [r6, #2] + eb0: e3a0cc02 mov r12, #512 ; 0x200 + eb4: e200001f and r0, r0, #31 ; 0x1f + eb8: e3800e2a orr r0, r0, #672 ; 0x2a0 + ebc: e10600bc strh r0, [r6, -r12] + ec0: e3a0cf7d mov r12, #500 ; 0x1f4 + ec4: e201001f and r0, r1, #31 ; 0x1f + ec8: e38000c0 orr r0, r0, #192 ; 0xc0 + ecc: e10600bc strh r0, [r6, -r12] + ed0: e3a0cf7e mov r12, #504 ; 0x1f8 + ed4: e202001f and r0, r2, #31 ; 0x1f + ed8: e38000c0 orr r0, r0, #192 ; 0xc0 + edc: e10600bc strh r0, [r6, -r12] + ee0: e3a0cb01 mov r12, #1024 ; 0x400 + ee4: e1830205 orr r0, r3, r5, lsl #4 + ee8: e3800cff orr r0, r0, #65280 ; 0xff00 + eec: e10600bc strh r0, [r6, -r12] + ef0: e8bd8070 ldmia sp!, {r4, r5, r6, pc} + + ef4: e92d4070 stmdb sp!, {r4, r5, r6, lr} + ef8: e59fc3e4 ldr r12, [pc, #996] ; 0x12e4 + efc: e1dc40b0 ldrh r4, [r12] + f00: e59f33d0 ldr r3, [pc, #976] ; 0x12d8 + f04: e3a05b01 mov r5, #1024 ; 0x400 + f08: e3a0c801 mov r12, #65536 ; 0x10000 + f0c: e24cc0de sub r12, r12, #222 ; 0xde + f10: e103c0b5 strh r12, [r3, -r5] + f14: e59f63c0 ldr r6, [pc, #960] ; 0x12dc + f18: e59fc3c0 ldr r12, [pc, #960] ; 0x12e0 + f1c: e1c6c0b0 strh r12, [r6] + f20: e1b05f8c movs r5, r12, lsl #31 + f24: 1afffffd bne 0xf20 + f28: e181c102 orr r12, r1, r2, lsl #2 + f2c: e1a0c28c mov r12, r12, lsl #5 + f30: e38cc002 orr r12, r12, #2 ; 0x2 + f34: e38cca02 orr r12, r12, #8192 ; 0x2000 + f38: e1c6c0b0 strh r12, [r6] + f3c: e3500001 cmp r0, #1 ; 0x1 + f40: 0a000009 beq 0xf6c + f44: e3500000 cmp r0, #0 ; 0x0 + f48: 1a000006 bne 0xf68 + f4c: e1d3c0b2 ldrh r12, [r3, #2] + f50: e38cc040 orr r12, r12, #64 ; 0x40 + f54: e1c3c0b2 strh r12, [r3, #2] + f58: e3a0c0a1 mov r12, #161 ; 0xa1 + f5c: e28cca01 add r12, r12, #4096 ; 0x1000 + f60: e1c3c0b0 strh r12, [r3] + f64: ea000008 b 0xf8c + f68: eafffffe b 0xf68 + f6c: e1d3c0b2 ldrh r12, [r3, #2] + f70: e20c00bf and r0, r12, #191 ; 0xbf + f74: e20cccff and r12, r12, #65280 ; 0xff00 + f78: e180c00c orr r12, r0, r12 + f7c: e1c3c0b2 strh r12, [r3, #2] + f80: e3a0c081 mov r12, #129 ; 0x81 + f84: e28cca01 add r12, r12, #4096 ; 0x1000 + f88: e1c3c0b0 strh r12, [r3] + f8c: e1d6c0b0 ldrh r12, [r6] + f90: e38cc010 orr r12, r12, #16 ; 0x10 + f94: e1a0c80c mov r12, r12, lsl #16 + f98: e1a0c82c mov r12, r12, lsr #16 + f9c: e1c6c0b0 strh r12, [r6] + fa0: e1b00f8c movs r0, r12, lsl #31 + fa4: 1afffffd bne 0xfa0 + fa8: e3a0cb01 mov r12, #1024 ; 0x400 + fac: e10340bc strh r4, [r3, -r12] + fb0: e8bd8070 ldmia sp!, {r4, r5, r6, pc} + + fb4: e3a0c0ff mov r12, #255 ; 0xff + fb8: e5c0c000 strb r12, [r0] + fbc: e59fc324 ldr r12, [pc, #804] ; 0x12e8 + fc0: e5dc2805 ldrb r2, [r12, #2053] + fc4: e1b02f82 movs r2, r2, lsl #31 + fc8: 1a000001 bne 0xfd4 + fcc: e3a02000 mov r2, #0 ; 0x0 + fd0: ea000003 b 0xfe4 + fd4: e5dc2800 ldrb r2, [r12, #2048] + fd8: e352003c cmp r2, #60 ; 0x3c + fdc: 0a000024 beq 0x1074 + fe0: e3a02001 mov r2, #1 ; 0x1 + fe4: e5dc3005 ldrb r3, [r12, #5] + fe8: e1b03f83 movs r3, r3, lsl #31 + fec: 1a000002 bne 0xffc + ff0: e3520001 cmp r2, #1 ; 0x1 + ff4: 0a000003 beq 0x1008 + ff8: ea000015 b 0x1054 + ffc: e5dcc000 ldrb r12, [r12] + 1000: e35c003c cmp r12, #60 ; 0x3c + 1004: 0a000017 beq 0x1068 + 1008: e59fc2dc ldr r12, [pc, #732] ; 0x12ec + 100c: e5dc0000 ldrb r0, [r12] + 1010: e3500000 cmp r0, #0 ; 0x0 + 1014: 1a000008 bne 0x103c + 1018: e3a00001 mov r0, #1 ; 0x1 + 101c: e5cc0000 strb r0, [r12] + 1020: e59f02c8 ldr r0, [pc, #712] ; 0x12f0 + 1024: e1d0c0b0 ldrh r12, [r0] + 1028: e20c20bf and r2, r12, #191 ; 0xbf + 102c: e20cccff and r12, r12, #65280 ; 0xff00 + 1030: e182c00c orr r12, r2, r12 + 1034: e1c0c0b0 strh r12, [r0] + 1038: ea000005 b 0x1054 + 103c: e3a00000 mov r0, #0 ; 0x0 + 1040: e5cc0000 strb r0, [r12] + 1044: e59fc2a4 ldr r12, [pc, #676] ; 0x12f0 + 1048: e1dc00b0 ldrh r0, [r12] + 104c: e3800040 orr r0, r0, #64 ; 0x40 + 1050: e1cc00b0 strh r0, [r12] + 1054: e59fc290 ldr r12, [pc, #656] ; 0x12ec + 1058: e5dcc000 ldrb r12, [r12] + 105c: e5c1c000 strb r12, [r1] + 1060: e3a00000 mov r0, #0 ; 0x0 + 1064: e12fff1e bx lr + + 1068: e3a0c001 mov r12, #1 ; 0x1 + 106c: e5c0c000 strb r12, [r0] + 1070: ea000001 b 0x107c + 1074: e3a0c000 mov r12, #0 ; 0x0 + 1078: e5c0c000 strb r12, [r0] + 107c: e59fc268 ldr r12, [pc, #616] ; 0x12ec + 1080: e5dcc000 ldrb r12, [r12] + 1084: e5c1c000 strb r12, [r1] + 1088: e3a00001 mov r0, #1 ; 0x1 + 108c: e12fff1e bx lr + + 1090: e92d4070 stmdb sp!, {r4, r5, r6, lr} + 1094: e24dd00c sub sp, sp, #12 ; 0xc + 1098: e1a05000 mov r5, r0 + 109c: e59f4250 ldr r4, [pc, #592] ; 0x12f4 + 10a0: e2846008 add r6, r4, #8 ; 0x8 + 10a4: e3a0c000 mov r12, #0 ; 0x0 + 10a8: e5cdc008 strb r12, [sp, #8] + 10ac: e3550000 cmp r5, #0 ; 0x0 + 10b0: 1a000009 bne 0x10dc + 10b4: e59f123c ldr r1, [pc, #572] ; 0x12f8 + 10b8: e1a00006 mov r0, r6 + 10bc: ebffffbc bl 0xfb4 + 10c0: e3500001 cmp r0, #1 ; 0x1 + 10c4: 1a000004 bne 0x10dc + 10c8: e5d4000c ldrb r0, [r4, #12] + 10cc: e3a01001 mov r1, #1 ; 0x1 + 10d0: e3a02002 mov r2, #2 ; 0x2 + 10d4: ebffff86 bl 0xef4 + 10d8: ea000001 b 0x10e4 + 10dc: e3550001 cmp r5, #1 ; 0x1 + 10e0: 1afffff1 bne 0x10ac + 10e4: e28d0008 add r0, sp, #8 ; 0x8 + 10e8: ebfffc76 bl 0x2c8 + 10ec: e5ddc008 ldrb r12, [sp, #8] + 10f0: e35c0000 cmp r12, #0 ; 0x0 + 10f4: 0a00000d beq 0x1130 + 10f8: e5dd0008 ldrb r0, [sp, #8] + 10fc: ebfffdec bl 0x8b4 + 1100: ea00000a b 0x1130 + 1104: e5d4000c ldrb r0, [r4, #12] + 1108: e3a01001 mov r1, #1 ; 0x1 + 110c: e3a02002 mov r2, #2 ; 0x2 + 1110: ebffff77 bl 0xef4 + 1114: e3a0c002 mov r12, #2 ; 0x2 + 1118: e5cdc000 strb r12, [sp] + 111c: e3a00004 mov r0, #4 ; 0x4 + 1120: e3a01000 mov r1, #0 ; 0x0 + 1124: e3a02000 mov r2, #0 ; 0x0 + 1128: e3a03002 mov r3, #2 ; 0x2 + 112c: ebffff3e bl 0xe2c + 1130: e5d40008 ldrb r0, [r4, #8] + 1134: e59fc1c0 ldr r12, [pc, #448] ; 0x12fc + 1138: e59c1000 ldr r1, [r12] + 113c: e28d2009 add r2, sp, #9 ; 0x9 + 1140: eb0000b8 bl 0x1428 + 1144: e3500001 cmp r0, #1 ; 0x1 + 1148: 1afffff8 bne 0x1130 + 114c: e5ddc009 ldrb r12, [sp, #9] + 1150: e35c003c cmp r12, #60 ; 0x3c + 1154: 1afffff5 bne 0x1130 + 1158: e28d0008 add r0, sp, #8 ; 0x8 + 115c: ebfffc59 bl 0x2c8 + 1160: e3500001 cmp r0, #1 ; 0x1 + 1164: 1affffe6 bne 0x1104 + 1168: e5ddc008 ldrb r12, [sp, #8] + 116c: e35c0000 cmp r12, #0 ; 0x0 + 1170: 1affffe0 bne 0x10f8 + 1174: eaffffed b 0x1130 + 1178: e3a0ca02 mov r12, #8192 ; 0x2000 + 117c: e59cc000 ldr r12, [r12] + 1180: e35c0000 cmp r12, #0 ; 0x0 + 1184: 0a000011 beq 0x11d0 + 1188: e35c0001 cmp r12, #1 ; 0x1 + 118c: 1a00000d bne 0x11c8 + 1190: e3a0c018 mov r12, #24 ; 0x18 + 1194: e28cc403 add r12, r12, #50331648 ; 0x3000000 + 1198: e59cc000 ldr r12, [r12] + 119c: e20c04ff and r0, r12, #-16777216 ; 0xff000000 + 11a0: e3700416 cmn r0, #369098752 ; 0x16000000 + 11a4: 1a000007 bne 0x11c8 + 11a8: e3a00018 mov r0, #24 ; 0x18 + 11ac: e2800403 add r0, r0, #50331648 ; 0x3000000 + 11b0: e28cc002 add r12, r12, #2 ; 0x2 + 11b4: e1a0c10c mov r12, r12, lsl #2 + 11b8: e3ccc4ff bic r12, r12, #-16777216 ; 0xff000000 + 11bc: e790c00c ldr r12, [r0, r12] + 11c0: e37c0001 cmn r12, #1 ; 0x1 + 11c4: 1a000001 bne 0x11d0 + 11c8: e3a00000 mov r0, #0 ; 0x0 + 11cc: e1a0f00e mov pc, lr + 11d0: e3a00001 mov r0, #1 ; 0x1 + 11d4: e1a0f00e mov pc, lr + + 11d8: e92d4070 stmdb sp!, {r4, r5, r6, lr} + 11dc: e24dd008 sub sp, sp, #8 ; 0x8 + 11e0: e3a0c002 mov r12, #2 ; 0x2 + 11e4: e5cdc000 strb r12, [sp] + 11e8: e3a00004 mov r0, #4 ; 0x4 + 11ec: e3a01000 mov r1, #0 ; 0x0 + 11f0: e3a02000 mov r2, #0 ; 0x0 + 11f4: e3a03002 mov r3, #2 ; 0x2 + 11f8: ebffff0b bl 0xe2c + 11fc: eb00004f bl 0x1340 + 1200: e59f00f4 ldr r0, [pc, #244] ; 0x12fc + 1204: e3a0c802 mov r12, #131072 ; 0x20000 + 1208: e24ccdad sub r12, r12, #11072 ; 0x2b40 + 120c: e580c000 str r12, [r0] + 1210: e59f60d8 ldr r6, [pc, #216] ; 0x12f0 + 1214: e1d6c0b0 ldrh r12, [r6] + 1218: e38cc040 orr r12, r12, #64 ; 0x40 + 121c: e1c6c0b0 strh r12, [r6] + 1220: ebffffd4 bl 0x1178 + 1224: e3500000 cmp r0, #0 ; 0x0 + 1228: 1a000001 bne 0x1234 + 122c: e3a00000 mov r0, #0 ; 0x0 + 1230: ebffff96 bl 0x1090 + 1234: e1d6c0b0 ldrh r12, [r6] + 1238: e38cc040 orr r12, r12, #64 ; 0x40 + 123c: e1c6c0b0 strh r12, [r6] + 1240: e59f10b0 ldr r1, [pc, #176] ; 0x12f8 + 1244: e2415004 sub r5, r1, #4 ; 0x4 + 1248: e59f40b0 ldr r4, [pc, #176] ; 0x1300 + 124c: e1a00005 mov r0, r5 + 1250: ebffff57 bl 0xfb4 + 1254: e3500000 cmp r0, #0 ; 0x0 + 1258: 1a000001 bne 0x1264 + 125c: e2544001 subs r4, r4, #1 ; 0x1 + 1260: 1afffff9 bne 0x124c + 1264: e3500001 cmp r0, #1 ; 0x1 + 1268: 0a00000c beq 0x12a0 + 126c: e1d6c0b0 ldrh r12, [r6] + 1270: e20c00bf and r0, r12, #191 ; 0xbf + 1274: e20cccff and r12, r12, #65280 ; 0xff00 + 1278: e180c00c orr r12, r0, r12 + 127c: e1c6c0b0 strh r12, [r6] + 1280: e3a0ca02 mov r12, #8192 ; 0x2000 + 1284: e59c0000 ldr r0, [r12] + 1288: e1b010a0 movs r1, r0, lsr #1 + 128c: 1a000002 bne 0x129c + 1290: e59c1004 ldr r1, [r12, #4] + 1294: eb0000bc bl 0x158c + 1298: eafffffe b 0x1298 + 129c: eafffffe b 0x129c + 12a0: e59fc050 ldr r12, [pc, #80] ; 0x12f8 + 12a4: e5dc0000 ldrb r0, [r12] + 12a8: e3a01001 mov r1, #1 ; 0x1 + 12ac: e3a02002 mov r2, #2 ; 0x2 + 12b0: ebffff0f bl 0xef4 + 12b4: e3a00001 mov r0, #1 ; 0x1 + 12b8: ebffff74 bl 0x1090 + 12bc: e28dd008 add sp, sp, #8 ; 0x8 + 12c0: e8bd8070 ldmia sp!, {r4, r5, r6, pc} + + 12c4: fffffa08 swinv 0x00fffa08 + 12c8: 0000ffff streqd pc, [r0], -pc + 12cc: fffffa0a swinv 0x00fffa0a + 12d0: fffff804 swinv 0x00fff804 + 12d4: fffffb10 swinv 0x00fffb10 + 12d8: fffffd00 swinv 0x00fffd00 + 12dc: ffff9800 swinv 0x00ff9800 + 12e0: 00002002 andeq r2, r0, r2 + 12e4: fffff900 swinv 0x00fff900 + 12e8: ffff5000 swinv 0x00ff5000 + 12ec: 00800534 addeq r0, r0, r4, lsr r5 + 12f0: fffffd02 swinv 0x00fffd02 + 12f4: 00800518 addeq r0, r0, r8, lsl r5 + 12f8: 00800524 addeq r0, r0, r4, lsr #10 + 12fc: 00800104 addeq r0, r0, r4, lsl #2 + 1300: 0000373c andeq r3, r0, r12, lsr r7 + + 1304: e3510000 cmp r1, #0 ; 0x0 + 1308: 012fff1e bxeq lr + 130c: e59fc178 ldr r12, [pc, #376] ; 0x148c + 1310: e79cc102 ldr r12, [r12, r2, lsl #2] + 1314: e28c3005 add r3, r12, #5 ; 0x5 + 1318: e5d32000 ldrb r2, [r3] + 131c: e3120020 tst r2, #32 ; 0x20 + 1320: 0afffffc beq 0x1318 + 1324: e4d02001 ldrb r2, [r0], #1 + 1328: e5cc2000 strb r2, [r12] + 132c: e2411001 sub r1, r1, #1 ; 0x1 + 1330: e1a01801 mov r1, r1, lsl #16 + 1334: e1b01821 movs r1, r1, lsr #16 + 1338: 1afffff6 bne 0x1318 + 133c: e12fff1e bx lr + + 1340: e92d4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + 1344: e59fc144 ldr r12, [pc, #324] ; 0x1490 + 1348: e5dc0000 ldrb r0, [r12] + 134c: e3800002 orr r0, r0, #2 ; 0x2 + 1350: e5cc0000 strb r0, [r12] + 1354: e5dc0000 ldrb r0, [r12] + 1358: e20000fe and r0, r0, #254 ; 0xfe + 135c: e5cc0000 strb r0, [r12] + 1360: e5dc0000 ldrb r0, [r12] + 1364: e20000fd and r0, r0, #253 ; 0xfd + 1368: e5cc0000 strb r0, [r12] + 136c: e3a0b003 mov r11, #3 ; 0x3 + 1370: e3a05000 mov r5, #0 ; 0x0 + 1374: e3a0a02a mov r10, #42 ; 0x2a + 1378: e3a09080 mov r9, #128 ; 0x80 + 137c: e3a070bf mov r7, #191 ; 0xbf + 1380: e3a04007 mov r4, #7 ; 0x7 + 1384: e3a02002 mov r2, #2 ; 0x2 + 1388: e59f60fc ldr r6, [pc, #252] ; 0x148c + 138c: e496c004 ldr r12, [r6], #4 + 1390: e28c3008 add r3, r12, #8 ; 0x8 + 1394: e5c34000 strb r4, [r3] + 1398: e28c0003 add r0, r12, #3 ; 0x3 + 139c: e5c07000 strb r7, [r0] + 13a0: e28c1002 add r1, r12, #2 ; 0x2 + 13a4: e5d18000 ldrb r8, [r1] + 13a8: e3888010 orr r8, r8, #16 ; 0x10 + 13ac: e5c18000 strb r8, [r1] + 13b0: e5c09000 strb r9, [r0] + 13b4: e5c14000 strb r4, [r1] + 13b8: e5c07000 strb r7, [r0] + 13bc: e5cca000 strb r10, [r12] + 13c0: e5cc5001 strb r5, [r12, #1] + 13c4: e5c0b000 strb r11, [r0] + 13c8: e5c35000 strb r5, [r3] + 13cc: e2522001 subs r2, r2, #1 ; 0x1 + 13d0: 1affffed bne 0x138c + 13d4: e8bd8ff0 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + + 13d8: e59fc0ac ldr r12, [pc, #172] ; 0x148c + 13dc: e79c2101 ldr r2, [r12, r1, lsl #2] + 13e0: e282c005 add r12, r2, #5 ; 0x5 + 13e4: e5dc1000 ldrb r1, [r12] + 13e8: e3110040 tst r1, #64 ; 0x40 + 13ec: 0afffffc beq 0x13e4 + 13f0: e282c003 add r12, r2, #3 ; 0x3 + 13f4: e5dc1000 ldrb r1, [r12] + 13f8: e3811080 orr r1, r1, #128 ; 0x80 + 13fc: e5cc1000 strb r1, [r12] + 1400: e59f108c ldr r1, [pc, #140] ; 0x1494 + 1404: e7d13080 ldrb r3, [r1, r0, lsl #1] + 1408: e5c23001 strb r3, [r2, #1] + 140c: e0810080 add r0, r1, r0, lsl #1 + 1410: e5d00001 ldrb r0, [r0, #1] + 1414: e5c20000 strb r0, [r2] + 1418: e5dc0000 ldrb r0, [r12] + 141c: e200007f and r0, r0, #127 ; 0x7f + 1420: e5cc0000 strb r0, [r12] + 1424: e12fff1e bx lr + + 1428: e3510000 cmp r1, #0 ; 0x0 + 142c: 1a000006 bne 0x144c + 1430: e59fc054 ldr r12, [pc, #84] ; 0x148c + 1434: e79cc100 ldr r12, [r12, r0, lsl #2] + 1438: e28c1005 add r1, r12, #5 ; 0x5 + 143c: e5d10000 ldrb r0, [r1] + 1440: e1b00f80 movs r0, r0, lsl #31 + 1444: 0afffffc beq 0x143c + 1448: ea000009 b 0x1474 + 144c: e59fc038 ldr r12, [pc, #56] ; 0x148c + 1450: e79cc100 ldr r12, [r12, r0, lsl #2] + 1454: e28c3005 add r3, r12, #5 ; 0x5 + 1458: e5d30000 ldrb r0, [r3] + 145c: e1b00f80 movs r0, r0, lsl #31 + 1460: 1a000001 bne 0x146c + 1464: e2511001 subs r1, r1, #1 ; 0x1 + 1468: 1afffffa bne 0x1458 + 146c: e3510000 cmp r1, #0 ; 0x0 + 1470: 0a000003 beq 0x1484 + 1474: e5dcc000 ldrb r12, [r12] + 1478: e5c2c000 strb r12, [r2] + 147c: e3a00001 mov r0, #1 ; 0x1 + 1480: e12fff1e bx lr + 1484: e3a00000 mov r0, #0 ; 0x0 + 1488: e12fff1e bx lr + + 148c: 00001fcc andeq r1, r0, r12, asr #31 + 1490: ffff6000 swinv 0x00ff6000 + 1494: 00001fd4 ldreqd r1, [r0], -r4 + +The RESET entry point branches here: + 1498: e59f003c ldr r0, [pc, #60] ; 0x14dc + 149c: e59f103c ldr r1, [pc, #60] ; 0x14e0 + 14a0: e3a02000 mov r2, #0 ; 0x0 + 14a4: e7903002 ldr r3, [r0, r2] + 14a8: e7813002 str r3, [r1, r2] + 14ac: e2822004 add r2, r2, #4 ; 0x4 + 14b0: e352001c cmp r2, #28 ; 0x1c + 14b4: 1afffffa bne 0x14a4 + 14b8: e59f0014 ldr r0, [pc, #20] ; 0x14d4 + 14bc: e59f1014 ldr r1, [pc, #20] ; 0x14d8 + 14c0: e2411004 sub r1, r1, #4 ; 0x4 + 14c4: e0802001 add r2, r0, r1 + 14c8: e3c22003 bic r2, r2, #3 ; 0x3 + 14cc: e1a0d002 mov sp, r2 + 14d0: ea000003 b 0x14e4 + + 14d4: 008005c0 addeq r0, r0, r0, asr #11 + 14d8: 00000190 muleq r0, r0, r1 + 14dc: 00001fe0 andeq r1, r0, r0, ror #31 + 14e0: 0080001c addeq r0, r0, r12, lsl r0 + + 14e4: e59f0078 ldr r0, [pc, #120] ; 0x1564 + 14e8: e3700001 cmn r0, #1 ; 0x1 + 14ec: 1b000003 blne 0x1500 + 14f0: ebffff38 bl 0x11d8 + 14f4: e3a00001 mov r0, #1 ; 0x1 + 14f8: eb000022 bl 0x1588 + 14fc: eafffffe b 0x14fc + 1500: ea000011 b 0x154c + 1504: e4901004 ldr r1, [r0], #4 + 1508: e3110003 tst r1, #3 ; 0x3 + 150c: 1a000007 bne 0x1530 + 1510: e2522004 subs r2, r2, #4 ; 0x4 + 1514: 4a000003 bmi 0x1528 + 1518: e4903004 ldr r3, [r0], #4 + 151c: e4813004 str r3, [r1], #4 + 1520: e2522004 subs r2, r2, #4 ; 0x4 + 1524: 5afffffb bpl 0x1518 + 1528: e2922004 adds r2, r2, #4 ; 0x4 + 152c: 0a000003 beq 0x1540 + 1530: e4d03001 ldrb r3, [r0], #1 + 1534: e4c13001 strb r3, [r1], #1 + 1538: e2522001 subs r2, r2, #1 ; 0x1 + 153c: 1afffffb bne 0x1530 + 1540: e3100003 tst r0, #3 ; 0x3 + 1544: 13c00003 bicne r0, r0, #3 ; 0x3 + 1548: 12800004 addne r0, r0, #4 ; 0x4 + 154c: e4902004 ldr r2, [r0], #4 + 1550: e3520000 cmp r2, #0 ; 0x0 + 1554: 1affffea bne 0x1504 + 1558: e1a0f00e mov pc, lr + + 155c: 008005c0 addeq r0, r0, r0, asr #11 + 1560: 00000190 muleq r0, r0, r1 + 1564: 00001694 muleq r0, r4, r6 + + 1568: e3140001 tst r4, #1 ; 0x1 + 156c: 1a000000 bne 0x1574 + 1570: e12fff14 bx r4 + 1574: e1a0c004 mov r12, r4 + 1578: e1a0400e mov r4, lr + 157c: e28fe001 add lr, pc, #1 ; 0x1 + 1580: e12fff1c bx r12 + 1584: 46c04720 strmib r4, [r0], r0, lsr #14 + 1588: eafffffe b 0x1588 + 158c: e92d4010 stmdb sp!, {r4, lr} + 1590: e1a04000 mov r4, r0 + 1594: e1b0c0a4 movs r12, r4, lsr #1 + 1598: 0a000001 beq 0x15a4 + 159c: e3a00001 mov r0, #1 ; 0x1 + 15a0: e8bd8010 ldmia sp!, {r4, pc} + 15a4: e59f0054 ldr r0, [pc, #84] ; 0x1600 + 15a8: e1d0c0b0 ldrh r12, [r0] + 15ac: e20c20ff and r2, r12, #255 ; 0xff + 15b0: e20ccb3f and r12, r12, #64512 ; 0xfc00 + 15b4: e182c00c orr r12, r2, r12 + 15b8: e1a0c80c mov r12, r12, lsl #16 + 15bc: e1a0c82c mov r12, r12, lsr #16 + 15c0: e3540000 cmp r4, #0 ; 0x0 + 15c4: 1a000004 bne 0x15dc + 15c8: e38ccc01 orr r12, r12, #256 ; 0x100 + 15cc: e1c0c0b0 strh r12, [r0] + 15d0: e1a04001 mov r4, r1 + 15d4: ebffffe3 bl 0x1568 + 15d8: e8bd8010 ldmia sp!, {r4, pc} + 15dc: e3540001 cmp r4, #1 ; 0x1 + 15e0: 18bd8010 ldmneia sp!, {r4, pc} + 15e4: e3a00020 mov r0, #32 ; 0x20 + 15e8: e3a010cc mov r1, #204 ; 0xcc + 15ec: e59f2010 ldr r2, [pc, #16] ; 0x1604 + 15f0: eb000019 bl 0x165c + 15f4: e1a00004 mov r0, r4 + 15f8: eb1ffa8e bl 0x800038 + 15fc: e8bd8010 ldmia sp!, {r4, pc} + 1600: fffffb10 swinv 0x00fffb10 + 1604: 00800038 addeq r0, r0, r8, lsr r0 + 1608: e92d4000 stmdb sp!, {lr} + 160c: e24dd008 sub sp, sp, #8 ; 0x8 + 1610: e3500001 cmp r0, #1 ; 0x1 + 1614: 1a000006 bne 0x1634 + 1618: e3a0c002 mov r12, #2 ; 0x2 + 161c: e5cdc000 strb r12, [sp] + 1620: e3a00004 mov r0, #4 ; 0x4 + 1624: e3a01000 mov r1, #0 ; 0x0 + 1628: e3a02000 mov r2, #0 ; 0x0 + 162c: e3a03002 mov r3, #2 ; 0x2 + 1630: ebfffdfd bl 0xe2c + 1634: e3a00000 mov r0, #0 ; 0x0 + 1638: e3a0c000 mov r12, #0 ; 0x0 + 163c: e0dc10b2 ldrh r1, [r12], #2 + 1640: e0810000 add r0, r1, r0 + 1644: e1a00800 mov r0, r0, lsl #16 + 1648: e1a00820 mov r0, r0, lsr #16 + 164c: e35c0a02 cmp r12, #8192 ; 0x2000 + 1650: 3afffff9 bcc 0x163c + 1654: e28dd008 add sp, sp, #8 ; 0x8 + 1658: e8bd8000 ldmia sp!, {pc} + 165c: e3510000 cmp r1, #0 ; 0x0 + 1660: 012fff1e bxeq lr + 1664: e490c004 ldr r12, [r0], #4 + 1668: e482c004 str r12, [r2], #4 + 166c: e2511004 subs r1, r1, #4 ; 0x4 + 1670: 1afffffb bne 0x1664 + 1674: e12fff1e bx lr + 1678: eafffffe b 0x1678 + 167c: eafffffe b 0x167c + 1680: eafffffe b 0x1680 + 1684: eafffffe b 0x1684 + 1688: eafffffe b 0x1688 + 168c: eafffffe b 0x168c + 1690: eafffffe b 0x1690 + 1694: 0000001c andeq r0, r0, r12, lsl r0 + 1698: 00800000 addeq r0, r0, r0 + 169c: 00001678 andeq r1, r0, r8, ror r6 + 16a0: 0000167c andeq r1, r0, r12, ror r6 + 16a4: 00001680 andeq r1, r0, r0, lsl #13 + 16a8: 00001684 andeq r1, r0, r4, lsl #13 + 16ac: 00001688 andeq r1, r0, r8, lsl #13 + 16b0: 0000168c andeq r1, r0, r12, lsl #13 + 16b4: 00001690 muleq r0, r0, r6 + 16b8: 00000004 andeq r0, r0, r4 + 16bc: 00800104 addeq r0, r0, r4, lsl #2 + 16c0: 0001d4c0 andeq sp, r1, r0, asr #9 + 16c4: 00000001 andeq r0, r0, r1 + 16c8: 00800108 addeq r0, r0, r8, lsl #2 + 16cc: 00000001 andeq r0, r0, r1 + 16d0: 00000001 andeq r0, r0, r1 + 16d4: 00800534 addeq r0, r0, r4, lsr r5 + +; The word at 0x16D4 appears to be the last word of the actual boot +; code + data. Between here and 0x1FCC we've got what looks like +; filler: + +000016C0: C0 D4 01 00 01 00 00 00 08 01 80 00 01 00 00 00 ................ +000016D0: 01 00 00 00 34 05 80 00 00 00 00 00 00 00 00 00 ....4........... +000016E0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +000016F0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001700: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001710: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001720: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001730: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001740: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001750: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001760: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001770: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001780: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001790: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +000017A0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +000017B0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +000017C0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 FF FE FD ................ +000017D0: FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED ................ +000017E0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +000017F0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001800: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001810: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001820: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001830: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001840: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001850: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001860: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001870: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001880: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001890: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +000018A0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +000018B0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +000018C0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 FF FE FD ................ +000018D0: FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED ................ +000018E0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +000018F0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001900: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001910: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001920: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001930: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001940: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001950: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001960: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001970: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001980: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001990: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +000019A0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +000019B0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +000019C0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 FF FE FD ................ +000019D0: FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED ................ +000019E0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +000019F0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001A00: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001A10: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001A20: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001A30: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001A40: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001A50: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001A60: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001A70: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001A80: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001A90: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +00001AA0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +00001AB0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +00001AC0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 FF FE FD ................ +00001AD0: FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED ................ +00001AE0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +00001AF0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001B00: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001B10: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001B20: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001B30: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001B40: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001B50: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001B60: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001B70: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001B80: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001B90: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +00001BA0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +00001BB0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +00001BC0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 FF FE FD ................ +00001BD0: FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED ................ +00001BE0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +00001BF0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001C00: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001C10: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001C20: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001C30: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001C40: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001C50: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001C60: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001C70: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001C80: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001C90: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +00001CA0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +00001CB0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +00001CC0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 FF FE FD ................ +00001CD0: FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED ................ +00001CE0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +00001CF0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001D00: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001D10: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001D20: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001D30: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001D40: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001D50: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001D60: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001D70: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001D80: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001D90: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +00001DA0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +00001DB0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +00001DC0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 FF FE FD ................ +00001DD0: FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED ................ +00001DE0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +00001DF0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001E00: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001E10: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001E20: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001E30: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001E40: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001E50: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001E60: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001E70: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001E80: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001E90: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +00001EA0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +00001EB0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +00001EC0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 FF FE FD ................ +00001ED0: FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED ................ +00001EE0: EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD ................ +00001EF0: DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD ................ +00001F00: CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD ................ +00001F10: BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD ................ +00001F20: AC AB AA A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D ................ +00001F30: 9C 9B 9A 99 98 97 96 95 94 93 92 91 90 8F 8E 8D ................ +00001F40: 8C 8B 8A 89 88 87 86 85 84 83 82 81 80 7F 7E 7D ..............~} +00001F50: 7C 7B 7A 79 78 77 76 75 74 73 72 71 70 6F 6E 6D |{zyxwvutsrqponm +00001F60: 6C 6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D lkjihgfedcba`_^] +00001F70: 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D \[ZYXWVUTSRQPONM +00001F80: 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D LKJIHGFEDCBA@?>= +00001F90: 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D <;:9876543210/.- +00001FA0: 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D ,+*)('&%$#"! ... +00001FB0: 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D ................ +00001FC0: 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 58 FF FF .............X.. +00001FD0: 00 50 FF FF 00 07 00 0E 00 15 00 1C 00 2A 00 00 .P...........*.. +00001FE0: 24 F0 1F E5 24 F0 1F E5 24 F0 1F E5 24 F0 1F E5 $...$...$...$... +00001FF0: 24 F0 1F E5 24 F0 1F E5 24 F0 1F E5 00 00 00 03 $...$...$....... + +; The filler appears to end at 0x1FCC. Then we've got some data words: + + 1fcc: ffff5800 swinv 0x00ff5800 + 1fd0: ffff5000 swinv 0x00ff5000 + 1fd4: 0e000700 cdpeq 7, 0, cr0, cr0, cr0, {0} + 1fd8: 1c001500 cfstr32ne mvfx1, [r0] + 1fdc: 00002a00 andeq r2, r0, r0, lsl #20 + +; These ldr-jump instructions get copied to the 7 internal RAM words +; starting at 0x80001C. They have the effect of defining the preceding +; 7 words (0x800000-0x800018 inclusive) as address-type vectors for the +; exceptions, such that one can hook an exception either by replacing +; the ldr-jump instruction in the 0x80001C-0x800034 window with a branch +; to the desired handler, or by sticking the absolute address of that +; desired handler into the 0x800000-0x800018 window. + + 1fe0: e51ff024 ldr pc, [pc, #-36] ; 0x1fc4 + 1fe4: e51ff024 ldr pc, [pc, #-36] ; 0x1fc8 + 1fe8: e51ff024 ldr pc, [pc, #-36] ; 0x1fcc + 1fec: e51ff024 ldr pc, [pc, #-36] ; 0x1fd0 + 1ff0: e51ff024 ldr pc, [pc, #-36] ; 0x1fd4 + 1ff4: e51ff024 ldr pc, [pc, #-36] ; 0x1fd8 + 1ff8: e51ff024 ldr pc, [pc, #-36] ; 0x1fdc +; ??? + 1ffc: 03000000 tsteq r0, #0 ; 0x0