changeset 230:f5ad21985e20

pirelli/fw-disasm: beginning of proper static RE
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 21 Dec 2017 21:54:39 +0000
parents 84a4f6ef2d28
children 27c269e408af
files pirelli/fw-disasm
diffstat 1 files changed, 487 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pirelli/fw-disasm	Thu Dec 21 21:54:39 2017 +0000
@@ -0,0 +1,487 @@
+.inttext exception vectors:
+
+   40000:	ea0000d0	b	0x40348
+   40004:	ea0000d2	b	0x40354
+   40008:	ea0000d4	b	0x40360
+   4000c:	ea0000d6	b	0x4036c
+   40010:	ea0000d8	b	0x40378
+   40014:	ea0000bc	b	0x4030c
+   40018:	ea0000c5	b	0x40334
+
+_c_int00:
+   4001c:	02a102a1
+   40020:	028302a1
+   40024:	02c00e85
+   40028:	002a0040
+   4002c:	fffffb00
+   40030:	fffef006
+   40034:	00000008
+   40038:	fffffd00
+   4003c:	ffff9800
+   40040:	fffffb10
+   40044:	ffffff08
+   40048:	20021081
+   4004c:	f7ff0800
+   40050:	00000000
+   40054:	00536e48	; cinit
+
+_INT_Initialize:
+   40058:	e51f1024	ldr	r1, =0xffff9800	; via 0x4003c
+   4005c:	e15f21ba	ldrh	r2, =0x2002	; via 0x4004a
+   40060:	e1c120b0	strh	r2, [r1]
+   40064:	e5912000	ldr	r2, [r1]
+   40068:	e2022001	and	r2, r2, #1
+   4006c:	e3520001	cmp	r2, #1
+   40070:	0afffffb	beq	0x40064
+   40074:	e51f1044	ldr	r1, =0xfffffd00	; via 0x40038
+   40078:	e15f23b8	ldrh	r2, =0x1081	; via 0x40048
+   4007c:	e1c120b0	strh	r2, [r1]
+   40080:	e51f1048	ldr	r1, =0xfffffb10	; via 0x40040
+   40084:	e15f23be	ldrh	r2, =0xf7ff	; via 0x4004e
+   40088:	e1d100b0	ldrh	r0, [r1]
+   4008c:	e0000002	and	r0, r0, r2
+   40090:	e1c100b0	strh	r0, [r1]
+   40094:	e51f1058	ldr	r1, =0xffffff08	; via 0x40044
+   40098:	e15f25b0	ldrh	r2, =0x0	; via 0x40050
+   4009c:	e1c120b0	strh	r2, [r1]
+   400a0:	e51f107c	ldr	r1, =0xfffffb00	; via 0x4002c
+   400a4:	e15f29b0	ldrh	r2, =0x2a1	; via 0x4001c
+   400a8:	e1c120b0	strh	r2, [r1]
+   400ac:	e15f29b6	ldrh	r2, =0x2a1	; via 0x4001e
+   400b0:	e1c120b2	strh	r2, [r1, #2]
+   400b4:	e15f29bc	ldrh	r2, =0x2a1	; via 0x40020
+   400b8:	e1c120b4	strh	r2, [r1, #4]
+   400bc:	e15f2ab2	ldrh	r2, =0x283	; via 0x40022
+   400c0:	e1c120b6	strh	r2, [r1, #6]
+   400c4:	e15f2ab8	ldrh	r2, =0xe85	; via 0x40024
+   400c8:	e1c120ba	strh	r2, [r1, #10]	; 0xa
+   400cc:	e15f2abe	ldrh	r2, =0x2c0	; via 0x40026
+   400d0:	e1c120bc	strh	r2, [r1, #12]	; 0xc
+   400d4:	e15f2bb4	ldrh	r2, =0x40	; via 0x40028
+   400d8:	e1c120b8	strh	r2, [r1, #8]
+   400dc:	e15f2bba	ldrh	r2, =0x2a	; via 0x4002a
+   400e0:	e1c120be	strh	r2, [r1, #14]	; 0xe
+   400e4:	e51f10bc	ldr	r1, =0xfffef006	; via 0x40030
+   400e8:	e1d120b0	ldrh	r2, [r1]
+   400ec:	e51f00c0	ldr	r0, =0x8	; via 0x40034
+   400f0:	e1800002	orr	r0, r0, r2
+   400f4:	e1c100b0	strh	r0, [r1]
+   400f8:	e10f0000	mrs	r0, CPSR
+   400fc:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   40100:	e3800013	orr	r0, r0, #19	; 0x13
+   40104:	e38000c0	orr	r0, r0, #192	; 0xc0
+   40108:	e129f000	msr	CPSR_fc, r0
+   4010c:	e59f0340	ldr	r0, =0x10000e8	; via 0x40454
+   40110:	e3a01e46	mov	r1, #1120	; 0x460
+   40114:	e2411004	sub	r1, r1, #4
+   40118:	e0802001	add	r2, r0, r1
+   4011c:	e1a0d002	mov	sp, r2
+   40120:	e92d000f	stmdb	sp!, {r0, r1, r2, r3}
+   40124:	e59f0318	ldr	r0, =0x1000be8	; via 0x40444
+   40128:	e59f2318	ldr	r2, =0x17751ec	; via 0x40448
+   4012c:	e0422000	sub	r2, r2, r0
+   40130:	e3a01000	mov	r1, #0
+   40134:	eb0000e1	bl	0x404c0
+   40138:	e59f030c	ldr	r0, =0x800000	; via 0x4044c
+   4013c:	e59f230c	ldr	r2, =0x82d1ec	; via 0x40450
+   40140:	e0422000	sub	r2, r2, r0
+   40144:	e3a01000	mov	r1, #0
+   40148:	eb0000dc	bl	0x404c0
+   4014c:	e8bd000f	ldmia	sp!, {r0, r1, r2, r3}
+   40150:	e3a00001	mov	r0, #1
+   40154:	e59f12fc	ldr	r1, =0x1775074	; via 0x40458
+   40158:	e5810000	str	r0, [r1]
+   4015c:	e59f02f0	ldr	r0, =0x10000e8	; via 0x40454
+   40160:	e3a01e46	mov	r1, #1120	; 0x460
+   40164:	e2411004	sub	r1, r1, #4
+   40168:	e0802001	add	r2, r0, r1
+   4016c:	e1a0a000	mov	r10, r0
+   40170:	e59f32e4	ldr	r3, =0x1775044	; via 0x4045c
+   40174:	e583a000	str	r10, [r3]
+   40178:	e1a0d002	mov	sp, r2
+   4017c:	e59f32dc	ldr	r3, =0x175635c	; via 0x40460
+   40180:	e583d000	str	sp, [r3]
+   40184:	e3a01080	mov	r1, #128	; 0x80
+   40188:	e0822001	add	r2, r2, r1
+   4018c:	e10f0000	mrs	r0, CPSR
+   40190:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   40194:	e3800012	orr	r0, r0, #18	; 0x12
+   40198:	e129f000	msr	CPSR_fc, r0
+   4019c:	e1a0d002	mov	sp, r2
+   401a0:	e3a01c02	mov	r1, #512	; 0x200
+   401a4:	e0822001	add	r2, r2, r1
+   401a8:	e10f0000	mrs	r0, CPSR
+   401ac:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   401b0:	e3800011	orr	r0, r0, #17	; 0x11
+   401b4:	e129f000	msr	CPSR_fc, r0
+   401b8:	e1a0d002	mov	sp, r2
+   401bc:	e10f0000	mrs	r0, CPSR
+   401c0:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   401c4:	e3800017	orr	r0, r0, #23	; 0x17
+   401c8:	e129f000	msr	CPSR_fc, r0
+   401cc:	e59fd29c	ldr	sp, =0x1000050	; via 0x40470
+   401d0:	e10f0000	mrs	r0, CPSR
+   401d4:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   401d8:	e380001b	orr	r0, r0, #27	; 0x1b
+   401dc:	e129f000	msr	CPSR_fc, r0
+   401e0:	e59fd288	ldr	sp, =0x1000050	; via 0x40470
+   401e4:	e10f0000	mrs	r0, CPSR
+   401e8:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   401ec:	e3800013	orr	r0, r0, #19	; 0x13
+   401f0:	e129f000	msr	CPSR_fc, r0
+   401f4:	e59f3268	ldr	r3, =0x176f458	; via 0x40464
+   401f8:	e2822004	add	r2, r2, #4
+   401fc:	e5832000	str	r2, [r3]
+   40200:	e3a01b01	mov	r1, #1024	; 0x400
+   40204:	e3c11003	bic	r1, r1, #3
+   40208:	e0822001	add	r2, r2, r1
+   4020c:	e59f3254	ldr	r3, =0x176f4dc	; via 0x40468
+   40210:	e5831000	str	r1, [r3]
+   40214:	e3a01002	mov	r1, #2
+   40218:	e59f324c	ldr	r3, =0x176f4ec	; via 0x4046c
+   4021c:	e5831000	str	r1, [r3]
+   40220:	e1a04002	mov	r4, r2
+   40224:	eb0e99e4	bl	0x3e69bc	; _f_load_int_mem
+   40228:	e1a02004	mov	r2, r4
+   4022c:	e59f1228	ldr	r1, =0x1775044	; via 0x4045c
+   40230:	e5910000	ldr	r0, [r1]
+   40234:	e3a030fe	mov	r3, #254	; 0xfe
+   40238:	e5c03000	strb	r3, [r0]
+   4023c:	e5c03001	strb	r3, [r0, #1]
+   40240:	e5c03002	strb	r3, [r0, #2]
+   40244:	e5c03003	strb	r3, [r0, #3]
+   40248:	e4903004	ldr	r3, [r0], #4
+   4024c:	e4803004	str	r3, [r0], #4
+   40250:	e1500002	cmp	r0, r2
+   40254:	bafffffc	blt	0x4024c
+   40258:	e51f020c	ldr	r0, =0x536e48	; via 0x40054
+   4025c:	e3700001	cmn	r0, #1
+   40260:	1b000084	blne	0x40478
+   40264:	e1a00002	mov	r0, r2
+   40268:	ea0eda34	b	0x3f6b40	; _INC_Initialize
+
+$INT_Vectors_Loaded:
+   4026c:	4778		bx	pc
+   4026e:	46c0		nop			(mov r8, r8)
+   40270:	eaffffff	b	0x40274
+_INT_Vectors_Loaded:
+   40274:	e3a00001	mov	r0, #1
+   40278:	e12fff1e	bx	lr
+
+$INT_Setup_Vector:
+   4027c:	4778		bx	pc
+   4027e:	46c0		nop			(mov r8, r8)
+   40280:	eaffffff	b	0x40284
+_INT_Setup_Vector:
+   40284:	e3a00000	mov	r0, #0
+   40288:	e12fff1e	bx	lr
+
+$INT_EnableIRQ:
+   4028c:	4778		bx	pc
+   4028e:	46c0		nop			(mov r8, r8)
+   40290:	e10f0000	mrs	r0, CPSR
+   40294:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   40298:	e3800012	orr	r0, r0, #18	; 0x12
+   4029c:	e129f000	msr	CPSR_fc, r0
+   402a0:	e10f0000	mrs	r0, CPSR
+   402a4:	e3c000c0	bic	r0, r0, #192	; 0xc0
+   402a8:	e129f000	msr	CPSR_fc, r0
+   402ac:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   402b0:	e3800013	orr	r0, r0, #19	; 0x13
+   402b4:	e129f000	msr	CPSR_fc, r0
+   402b8:	e28f0001	add	r0, pc, #1
+   402bc:	e12fff10	bx	r0
+   402c0:	4770		bx	lr
+
+$INT_DisableIRQ:
+   402c2:	4778		bx	pc
+   402c4:	46c0		nop			(mov r8, r8)
+   402c6:	46c0		nop			(mov r8, r8)
+   402c8:	e10f0000	mrs	r0, CPSR
+   402cc:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   402d0:	e3800012	orr	r0, r0, #18	; 0x12
+   402d4:	e129f000	msr	CPSR_fc, r0
+   402d8:	e10f0000	mrs	r0, CPSR
+   402dc:	e38000c0	orr	r0, r0, #192	; 0xc0
+   402e0:	e129f000	msr	CPSR_fc, r0
+   402e4:	e3c0001f	bic	r0, r0, #31	; 0x1f
+   402e8:	e3800013	orr	r0, r0, #19	; 0x13
+   402ec:	e129f000	msr	CPSR_fc, r0
+   402f0:	e28f0001	add	r0, pc, #1
+   402f4:	e12fff10	bx	r0
+   402f8:	4770		bx	lr
+
+$INT_Retrieve_Shell:
+   402fa:	4778		bx	pc
+   402fc:	46c0		nop			(mov r8, r8)
+   402fe:	46c0		nop			(mov r8, r8)
+   40300:	eaffffff	b	0x40304
+_INT_Retrieve_Shell:
+   40304:	e3a00000	mov	r0, #0
+   40308:	e12fff1e	bx	lr
+
+INT_IRQ:
+   4030c:	e92d000f	stmdb	sp!, {r0, r1, r2, r3}
+   40310:	e14f0000	mrs	r0, SPSR
+   40314:	e3100080	tst	r0, #128	; 0x80
+   40318:	1a000003	bne	0x4032c
+   4031c:	e24e3004	sub	r3, lr, #4
+   40320:	eb1ff729	bl	0x83dfcc	; _TCT_Interrupt_Context_Save
+   40324:	eb0e3915	bl	0x3ce780	; _IQ_IRQ_isr
+   40328:	ea1ff76e	b	0x83e0e8	; _TCT_Interrupt_Context_Restore
+   4032c:	e8bd000f	ldmia	sp!, {r0, r1, r2, r3}
+   40330:	e25ef004	subs	pc, lr, #4
+
+INT_FIQ:
+   40334:	e92d000f	stmdb	sp!, {r0, r1, r2, r3}
+   40338:	e24e3004	sub	r3, lr, #4
+   4033c:	eb1ff722	bl	0x83dfcc	; _TCT_Interrupt_Context_Save
+   40340:	eb0e3919	bl	0x3ce7ac	; _IQ_FIQ_isr
+   40344:	ea1ff767	b	0x83e0e8	; _TCT_Interrupt_Context_Restore
+
+; exception handlers
+   40348:	e92d1800	stmdb	sp!, {r11, r12}
+   4034c:	e3a0b001	mov	r11, #1
+   40350:	ea00000c	b	0x40388
+   40354:	e92d1800	stmdb	sp!, {r11, r12}
+   40358:	e3a0b002	mov	r11, #2
+   4035c:	ea000009	b	0x40388
+   40360:	e92d1800	stmdb	sp!, {r11, r12}
+   40364:	e3a0b003	mov	r11, #3
+   40368:	ea000006	b	0x40388
+   4036c:	e92d1800	stmdb	sp!, {r11, r12}
+   40370:	e3a0b004	mov	r11, #4
+   40374:	ea000003	b	0x40388
+   40378:	e59fd0f0	ldr	sp, =0x1000050	; via 0x40470
+   4037c:	e92d1800	stmdb	sp!, {r11, r12}
+   40380:	e3a0b005	mov	r11, #5
+   40384:	eaffffff	b	0x40388
+   40388:	e59fc0e4	ldr	r12, =0x1000050	; via 0x40474
+   4038c:	e58ce03c	str	lr, [r12, #60]	; 0x3c
+   40390:	e88c07ff	stmia	r12, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10}
+   40394:	e8bd0003	ldmia	sp!, {r0, r1}
+   40398:	e58c002c	str	r0, [r12, #44]	; 0x2c
+   4039c:	e58c1030	str	r1, [r12, #48]	; 0x30
+   403a0:	e14f0000	mrs	r0, SPSR
+   403a4:	e58c0040	str	r0, [r12, #64]	; 0x40
+   403a8:	e10f1000	mrs	r1, CPSR
+   403ac:	e3c1201f	bic	r2, r1, #31	; 0x1f
+   403b0:	e200001f	and	r0, r0, #31	; 0x1f
+   403b4:	e0800002	add	r0, r0, r2
+   403b8:	e129f000	msr	CPSR_fc, r0
+   403bc:	e58cd034	str	sp, [r12, #52]	; 0x34
+   403c0:	e58ce038	str	lr, [r12, #56]	; 0x38
+   403c4:	e129f001	msr	CPSR_fc, r1
+   403c8:	e38ba4de	orr	r10, r11, #3724541952	; 0xde000000
+   403cc:	e38aa8ad	orr	r10, r10, #11337728	; 0xad0000
+   403d0:	e58ca044	str	r10, [r12, #68]	; 0x44
+   403d4:	e1a0000b	mov	r0, r11
+   403d8:	ea0eda7a	b	0x3f6dc8	; _dar_exception
+
+$exception:
+   403dc:	a000		add	r0, pc, #0
+   403de:	4700		bx	r0
+
+_exception:
+   403e0:	e59fc08c	ldr	r12, =0x1000050	; via 0x40474
+   403e4:	e59cb034	ldr	r11, [r12, #52]	; 0x34
+   403e8:	e28cc048	add	r12, r12, #72	; 0x48
+   403ec:	e35b0502	cmp	r11, #8388608	; 0x800000
+   403f0:	ba00000d	blt	0x4042c
+   403f4:	e3a00722	mov	r0, #8912896	; 0x880000
+   403f8:	e2400014	sub	r0, r0, #20	; 0x14
+   403fc:	e15b0000	cmp	r11, r0
+   40400:	ba000005	blt	0x4041c
+   40404:	e35b0401	cmp	r11, #16777216	; 0x1000000
+   40408:	ba000007	blt	0x4042c
+   4040c:	e3a00612	mov	r0, #18874368	; 0x1200000
+   40410:	e2400014	sub	r0, r0, #20	; 0x14
+   40414:	e15b0000	cmp	r11, r0
+   40418:	aa000003	bge	0x4042c
+   4041c:	e8bb03ff	ldmia	r11!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9}
+   40420:	e8ac03ff	stmia	r12!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9}
+   40424:	e8bb03ff	ldmia	r11!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9}
+   40428:	e8ac03ff	stmia	r12!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9}
+   4042c:	e59f0020	ldr	r0, =0x10000e8	; via 0x40454
+   40430:	e3a01eae	mov	r1, #2784	; 0xae0
+   40434:	e2811080	add	r1, r1, #128	; 0x80
+   40438:	e0802001	add	r2, r0, r1
+   4043c:	e1a0d002	mov	sp, r2
+   40440:	ea0eda66	b	0x3f6de0	; _dar_reset
+
+   40444:	01000be8	.bss
+   40448:	017751ec	end
+   4044c:	00800000	_S_D_Mem
+   40450:	0082d1ec	_E_D_Mem
+   40454:	010000e8	stack_segment
+   40458:	01775074	_INT_Loaded_Flag
+   4045c:	01775044	_TCT_System_Limit
+   40460:	0175635c	_TCD_System_Stack
+   40464:	0176f458	_TMD_HISR_Stack_Ptr
+   40468:	0176f4dc	_TMD_HISR_Stack_Size
+   4046c:	0176f4ec	_TMD_HISR_Priority
+   40470:	01000050	exception_stack
+   40474:	01000050	_xdump_buffer
+
+_auto_init:
+   40478:	ea00000c	b	0x404b0
+   4047c:	e4901004	ldr	r1, [r0], #4
+   40480:	e3530003	cmp	r3, #3
+   40484:	84904004	ldrhi	r4, [r0], #4
+   40488:	84814004	strhi	r4, [r1], #4
+   4048c:	82433004	subhi	r3, r3, #4
+   40490:	94d04001	ldrlsb	r4, [r0], #1
+   40494:	94c14001	strlsb	r4, [r1], #1
+   40498:	92433001	subls	r3, r3, #1
+   4049c:	e3530000	cmp	r3, #0
+   404a0:	1afffff6	bne	0x40480
+   404a4:	e2103003	ands	r3, r0, #3
+   404a8:	12633004	rsbne	r3, r3, #4
+   404ac:	10800003	addne	r0, r0, r3
+   404b0:	e4903004	ldr	r3, [r0], #4
+   404b4:	e3530000	cmp	r3, #0
+   404b8:	1affffef	bne	0x4047c
+   404bc:	e1a0f00e	mov	pc, lr
+
+_INT_memset:
+   404c0:	e92d4001	stmdb	sp!, {r0, lr}
+   404c4:	e3100003	tst	r0, #3
+   404c8:	0a000006	beq	0x404e8
+   404cc:	e3520000	cmp	r2, #0
+   404d0:	84c01001	strhib	r1, [r0], #1
+   404d4:	82522001	subhis	r2, r2, #1
+   404d8:	83100003	tsthi	r0, #3
+   404dc:	1afffffb	bne	0x404d0
+   404e0:	e3520000	cmp	r2, #0
+   404e4:	08bd8001	ldmeqia	sp!, {r0, pc}
+   404e8:	e20110ff	and	r1, r1, #255	; 0xff
+   404ec:	e1811401	orr	r1, r1, r1, lsl #8
+   404f0:	e3520004	cmp	r2, #4
+   404f4:	3a000012	bcc	0x40544
+   404f8:	e1811801	orr	r1, r1, r1, lsl #16
+   404fc:	e3520008	cmp	r2, #8
+   40500:	3a00000d	bcc	0x4053c
+   40504:	e1a0e001	mov	lr, r1
+   40508:	e3520010	cmp	r2, #16	; 0x10
+   4050c:	3a000008	bcc	0x40534
+   40510:	e92d0010	stmdb	sp!, {r4}
+   40514:	e1a04001	mov	r4, r1
+   40518:	e1a0c001	mov	r12, r1
+   4051c:	e242300f	sub	r3, r2, #15	; 0xf
+   40520:	e202200f	and	r2, r2, #15	; 0xf
+   40524:	e8a05012	stmia	r0!, {r1, r4, r12, lr}
+   40528:	e2533010	subs	r3, r3, #16	; 0x10
+   4052c:	8afffffc	bhi	0x40524
+   40530:	e8bd0010	ldmia	sp!, {r4}
+   40534:	e3120008	tst	r2, #8
+   40538:	18a04002	stmneia	r0!, {r1, lr}
+   4053c:	e3120004	tst	r2, #4
+   40540:	14801004	strne	r1, [r0], #4
+   40544:	e3120002	tst	r2, #2
+   40548:	10c010b2	strneh	r1, [r0], #2
+   4054c:	e3120001	tst	r2, #1
+   40550:	15c01000	strneb	r1, [r0]
+   40554:	e8bd8001	ldmia	sp!, {r0, pc}
+
+_INT_memcpy:
+   40558:	e3520000	cmp	r2, #0
+   4055c:	012fff1e	bxeq	lr
+   40560:	e92d4001	stmdb	sp!, {r0, lr}
+   40564:	e3110003	tst	r1, #3
+   40568:	1a00002b	bne	0x4061c
+   4056c:	e3100003	tst	r0, #3
+   40570:	1a00002f	bne	0x40634
+   40574:	e3520010	cmp	r2, #16	; 0x10
+   40578:	3a000008	bcc	0x405a0
+   4057c:	e92d0010	stmdb	sp!, {r4}
+   40580:	e2422010	sub	r2, r2, #16	; 0x10
+   40584:	e8b15018	ldmia	r1!, {r3, r4, r12, lr}
+   40588:	e8a05018	stmia	r0!, {r3, r4, r12, lr}
+   4058c:	e2522010	subs	r2, r2, #16	; 0x10
+   40590:	2afffffb	bcs	0x40584
+   40594:	e8bd0010	ldmia	sp!, {r4}
+   40598:	e2922010	adds	r2, r2, #16	; 0x10
+   4059c:	08bd8001	ldmeqia	sp!, {r0, pc}
+   405a0:	e212300c	ands	r3, r2, #12	; 0xc
+   405a4:	0a00000d	beq	0x405e0
+   405a8:	e3d2200c	bics	r2, r2, #12	; 0xc
+   405ac:	e24fc010	sub	r12, pc, #16	; 0x10
+   405b0:	e08cf103	add	pc, r12, r3, lsl #2
+   405b4:	e4913004	ldr	r3, [r1], #4
+   405b8:	e4803004	str	r3, [r0], #4
+   405bc:	08bd8001	ldmeqia	sp!, {r0, pc}
+   405c0:	ea000006	b	0x405e0
+   405c4:	e8b11008	ldmia	r1!, {r3, r12}
+   405c8:	e8a01008	stmia	r0!, {r3, r12}
+   405cc:	08bd8001	ldmeqia	sp!, {r0, pc}
+   405d0:	ea000002	b	0x405e0
+   405d4:	e8b15008	ldmia	r1!, {r3, r12, lr}
+   405d8:	e8a05008	stmia	r0!, {r3, r12, lr}
+   405dc:	08bd8001	ldmeqia	sp!, {r0, pc}
+   405e0:	e2522001	subs	r2, r2, #1
+   405e4:	124f3004	subne	r3, pc, #4
+   405e8:	1083f202	addne	pc, r3, r2, lsl #4
+   405ec:	e4d13001	ldrb	r3, [r1], #1
+   405f0:	e4c03001	strb	r3, [r0], #1
+   405f4:	e8bd8001	ldmia	sp!, {r0, pc}
+   405f8:	e0d130b2	ldrh	r3, [r1], #2
+   405fc:	e0c030b2	strh	r3, [r0], #2
+   40600:	e8bd8001	ldmia	sp!, {r0, pc}
+   40604:	e1a00000	mov	r0, r0
+   40608:	e0d130b2	ldrh	r3, [r1], #2
+   4060c:	e0c030b2	strh	r3, [r0], #2
+   40610:	e4d13001	ldrb	r3, [r1], #1
+   40614:	e4c03001	strb	r3, [r0], #1
+   40618:	e8bd8001	ldmia	sp!, {r0, pc}
+   4061c:	e4d13001	ldrb	r3, [r1], #1
+   40620:	e4c03001	strb	r3, [r0], #1
+   40624:	e2522001	subs	r2, r2, #1
+   40628:	08bd8001	ldmeqia	sp!, {r0, pc}
+   4062c:	e3110003	tst	r1, #3
+   40630:	1afffff9	bne	0x4061c
+   40634:	e3100001	tst	r0, #1
+   40638:	1a000013	bne	0x4068c
+   4063c:	e3100002	tst	r0, #2
+   40640:	0affffcb	beq	0x40574
+   40644:	e2522004	subs	r2, r2, #4
+   40648:	3a000007	bcc	0x4066c
+   4064c:	e4913004	ldr	r3, [r1], #4
+   40650:	e0c030b4	strh	r3, [r0], #4
+   40654:	e1a03823	mov	r3, r3, lsr #16
+   40658:	e14030b2	strh	r3, [r0, #-2]
+   4065c:	e2522004	subs	r2, r2, #4
+   40660:	2afffff9	bcs	0x4064c
+   40664:	e3720004	cmn	r2, #4
+   40668:	08bd8001	ldmeqia	sp!, {r0, pc}
+   4066c:	e2922002	adds	r2, r2, #2
+   40670:	20d130b2	ldrcsh	r3, [r1], #2
+   40674:	20c030b2	strcsh	r3, [r0], #2
+   40678:	22422002	subcs	r2, r2, #2
+   4067c:	e2922001	adds	r2, r2, #1
+   40680:	24d13001	ldrcsb	r3, [r1], #1
+   40684:	24c03001	strcsb	r3, [r0], #1
+   40688:	e8bd8001	ldmia	sp!, {r0, pc}
+   4068c:	e2522004	subs	r2, r2, #4
+   40690:	3a000009	bcc	0x406bc
+   40694:	e4913004	ldr	r3, [r1], #4
+   40698:	e4c03004	strb	r3, [r0], #4
+   4069c:	e1a03423	mov	r3, r3, lsr #8
+   406a0:	e5403003	strb	r3, [r0, #-3]
+   406a4:	e1a03423	mov	r3, r3, lsr #8
+   406a8:	e5403002	strb	r3, [r0, #-2]
+   406ac:	e1a03423	mov	r3, r3, lsr #8
+   406b0:	e5403001	strb	r3, [r0, #-1]
+   406b4:	e2522004	subs	r2, r2, #4
+   406b8:	2afffff5	bcs	0x40694
+   406bc:	e2922004	adds	r2, r2, #4
+   406c0:	08bd8001	ldmeqia	sp!, {r0, pc}
+   406c4:	e4d13001	ldrb	r3, [r1], #1
+   406c8:	e4c03001	strb	r3, [r0], #1
+   406cc:	e2522001	subs	r2, r2, #1
+   406d0:	1afffffb	bne	0x406c4
+   406d4:	e8bd8001	ldmia	sp!, {r0, pc}
+
+003F81AC $madc_hex_2_physical call trampoline
+0052FB70 _RVM_SWE_GET_INFO_ARRAY
+
+0083CAB0 $madc_hex_2_physical function body expected here