view dsample-fw-disasm @ 277:5c47d916255e

compal/c156-boot.disasm: GPIO comments were wrong
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 05 Nov 2018 23:18:42 +0000
parents 8f08645901a0
children b7d93ff628a8
line wrap: on
line source

; The present work is a disassembly analysis of the 20020917 firmware image
; read out of our vintage D-Sample C05 board.

       0:	ea0004e7	b	0x13a4
       4:	ea003ffd	b	0x10000
       8:	ea003ffd	b	0x10004
       c:	ea003ffd	b	0x10008
      10:	ea003ffd	b	0x1000c
      14:	ea003ffd	b	0x10010
      18:	ea003ffd	b	0x10014
      1c:	ea003ffd	b	0x10018

; constant pool before _INT_Bootloader_Start matches TCS211
    1378:	fffffb00
    137c:	02a102a1
    1380:	028302a1
    1384:	00c00281
    1388:	002a0040
    138c:	fffffd00
    1390:	ffff9800
    1394:	fffffb10
    1398:	ffffff08
    139c:	20061081
    13a0:	00000800

_INT_Bootloader_Start:	; code fully matches TCS211
    13a4:	e51f101c	ldr	r1, =0xffff9800	; via 0x1390
    13a8:	e15f21b2	ldrh	r2, =0x2006	; via 0x139e
    13ac:	e1c120b0	strh	r2, [r1]
    13b0:	e5912000	ldr	r2, [r1]
    13b4:	e2022001	and	r2, r2, #1
    13b8:	e3520001	cmp	r2, #1
    13bc:	0afffffb	beq	0x13b0
    13c0:	e51f103c	ldr	r1, =0xfffffd00	; via 0x138c
    13c4:	e15f23b0	ldrh	r2, =0x1081	; via 0x139c
    13c8:	e1c120b0	strh	r2, [r1]
    13cc:	e51f1040	ldr	r1, =0xfffffb10	; via 0x1394
    13d0:	e15f23b8	ldrh	r2, =0x800	; via 0x13a0
    13d4:	e1d100b0	ldrh	r0, [r1]
    13d8:	e1800002	orr	r0, r0, r2
    13dc:	e1c100b0	strh	r0, [r1]
    13e0:	e51f1050	ldr	r1, =0xffffff08	; via 0x1398
    13e4:	e15f24ba	ldrh	r2, =0x0	; via 0x13a2
    13e8:	e1c120b0	strh	r2, [r1]
    13ec:	e51f107c	ldr	r1, =0xfffffb00	; via 0x1378
    13f0:	e15f27bc	ldrh	r2, =0x2a1	; via 0x137c
    13f4:	e1c120b0	strh	r2, [r1]
    13f8:	e15f28b2	ldrh	r2, =0x2a1	; via 0x137e
    13fc:	e1c120b2	strh	r2, [r1, #2]
    1400:	e15f28b8	ldrh	r2, =0x2a1	; via 0x1380
    1404:	e1c120b4	strh	r2, [r1, #4]
    1408:	e15f28be	ldrh	r2, =0x283	; via 0x1382
    140c:	e1c120b6	strh	r2, [r1, #6]
    1410:	e15f29b4	ldrh	r2, =0x281	; via 0x1384
    1414:	e1c120ba	strh	r2, [r1, #10]	; 0xa
    1418:	e15f29ba	ldrh	r2, =0xc0	; via 0x1386
    141c:	e1c120bc	strh	r2, [r1, #12]	; 0xc
    1420:	e15f2ab0	ldrh	r2, =0x40	; via 0x1388
    1424:	e1c120b8	strh	r2, [r1, #8]
    1428:	e15f2ab6	ldrh	r2, =0x2a	; via 0x138a
    142c:	e1c120be	strh	r2, [r1, #14]	; 0xe
    1430:	e59f0020	ldr	r0, =0x107921c	; via 0x1458
    1434:	e3a01b01	mov	r1, #1024	; 0x400
    1438:	e2411004	sub	r1, r1, #4
    143c:	e0802001	add	r2, r0, r1
    1440:	e3c22003	bic	r2, r2, #3
    1444:	e1a0d002	mov	sp, r2
    1448:	e92d100f	stmdb	sp!, {r0, r1, r2, r3, r12}
    144c:	eb000046	bl	0x156c
    1450:	e8bd100f	ldmia	sp!, {r0, r1, r2, r3, r12}
    1454:	ea003afd	b	0x10050
    1458:	0107921c

_sta_select_application:	(ARM->Thumb veneer)
    156c:	e92d4000	stmdb	sp!, {lr}
    1570:	e28fe001	add	lr, pc, #1
    1574:	e12fff1e	bx	lr
    1578:	f7ff fd63	bl	0x1042
    157c:	4778		bx	pc
    157e:	46c0		nop			(mov r8, r8)
    1580:	e8bd8000	ldmia	sp!, {pc}

; branch target addresses differ from TCS211
   10000:	ea0000bf	b	0x10304
   10004:	ea0000c4	b	0x1031c
   10008:	ea0000c9	b	0x10334
   1000c:	ea0000ce	b	0x1034c
   10010:	ea0000d3	b	0x10364
   10014:	ea0000b0	b	0x102dc
   10018:	ea0000b4	b	0x102f0

; Constant pool
; Difference between this version and TCS211: the newer TCS211 version
; includes constants 0xFFFEF006 and 0x00000008 for the 8 MiB
; memory bank setup.  This difference must be responsible for the
; 0x10050 vs. 0x10058 discrepancy.

   1001c:	02a102a1
   10020:	028302a1
   10024:	02c00e85
   10028:	002a0040
   1002c:	fffffb00
   10030:	fffffd00
   10034:	ffff9800
   10038:	fffffb10
   1003c:	ffffff08
   10040:	20021081
   10044:	f7ff0800
   10048:	00000000
   1004c:	0001047c	; .cinit base

_INT_Initialize:
; beginning matches TCS211
   10050:	e51f1024	ldr	r1, =0xffff9800	; via 0x10034
   10054:	e15f21ba	ldrh	r2, =0x2002	; via 0x10042
   10058:	e1c120b0	strh	r2, [r1]
   1005c:	e5912000	ldr	r2, [r1]
   10060:	e2022001	and	r2, r2, #1
   10064:	e3520001	cmp	r2, #1
   10068:	0afffffb	beq	0x1005c
   1006c:	e51f1044	ldr	r1, =0xfffffd00	; via 0x10030
   10070:	e15f23b8	ldrh	r2, =0x1081	; via 0x10040
   10074:	e1c120b0	strh	r2, [r1]
   10078:	e51f1048	ldr	r1, =0xfffffb10	; via 0x10038
   1007c:	e15f23be	ldrh	r2, =0xf7ff	; via 0x10046
   10080:	e1d100b0	ldrh	r0, [r1]
   10084:	e0000002	and	r0, r0, r2
   10088:	e1c100b0	strh	r0, [r1]
   1008c:	e51f1058	ldr	r1, =0xffffff08	; via 0x1003c
   10090:	e15f25b0	ldrh	r2, =0x0	; via 0x10048
   10094:	e1c120b0	strh	r2, [r1]
   10098:	e51f1074	ldr	r1, =0xfffffb00	; via 0x1002c
   1009c:	e15f28b8	ldrh	r2, =0x2a1	; via 0x1001c
   100a0:	e1c120b0	strh	r2, [r1]
   100a4:	e15f28be	ldrh	r2, =0x2a1	; via 0x1001e
   100a8:	e1c120b2	strh	r2, [r1, #2]
   100ac:	e15f29b4	ldrh	r2, =0x2a1	; via 0x10020
   100b0:	e1c120b4	strh	r2, [r1, #4]
   100b4:	e15f29ba	ldrh	r2, =0x283	; via 0x10022
   100b8:	e1c120b6	strh	r2, [r1, #6]
   100bc:	e15f2ab0	ldrh	r2, =0xe85	; via 0x10024
   100c0:	e1c120ba	strh	r2, [r1, #10]	; 0xa
   100c4:	e15f2ab6	ldrh	r2, =0x2c0	; via 0x10026
   100c8:	e1c120bc	strh	r2, [r1, #12]	; 0xc
   100cc:	e15f2abc	ldrh	r2, =0x40	; via 0x10028
   100d0:	e1c120b8	strh	r2, [r1, #8]
   100d4:	e15f2bb2	ldrh	r2, =0x2a	; via 0x1002a
   100d8:	e1c120be	strh	r2, [r1, #14]	; 0xe
; TCS211 version does the 8 MiB memory bank setup at this point
   100dc:	e10f0000	mrs	r0, CPSR
   100e0:	e3c0001f	bic	r0, r0, #31	; 0x1f
   100e4:	e3800013	orr	r0, r0, #19	; 0x13
   100e8:	e38000c0	orr	r0, r0, #192	; 0xc0
   100ec:	e129f000	msr	CPSR_fc, r0
; bss clearing is done inline here, whereas TCS211 version calls _INT_memset
   100f0:	e59f0304	ldr	r0, =0x1000cf4	; via 0x103fc
   100f4:	e3a02000	mov	r2, #0
   100f8:	e59f1300	ldr	r1, =0x107921c	; via 0x10400
   100fc:	e4802004	str	r2, [r0], #4
   10100:	e1500001	cmp	r0, r1
   10104:	1afffffc	bne	0x100fc
   10108:	e59f02f4	ldr	r0, =0x819450	; via 0x10404
   1010c:	e3a02000	mov	r2, #0
   10110:	e59f12f0	ldr	r1, =0x83eda0	; via 0x10408
   10114:	e4802004	str	r2, [r0], #4
   10118:	e1500001	cmp	r0, r1
   1011c:	1afffffc	bne	0x10114
; setting _INT_Loaded_Flag?
; code matches TCS211 0x10150 from this point onward
   10120:	e3a00001	mov	r0, #1
   10124:	e59f12e4	ldr	r1, =0x107916c	; via 0x10410
   10128:	e5810000	str	r0, [r1]
; stack setup matching 0x1015c in TCS211
   1012c:	e59f02d8	ldr	r0, =0x1079308	; via 0x1040c
   10130:	e3a01b01	mov	r1, #1024	; 0x400
   10134:	e2411004	sub	r1, r1, #4
   10138:	e0802001	add	r2, r0, r1
   1013c:	e1a0a000	mov	r10, r0
   10140:	e59f32cc	ldr	r3, =0x83c148	; via 0x10414
   10144:	e583a000	str	r10, [r3]
   10148:	e1a0d002	mov	sp, r2
   1014c:	e59f32c4	ldr	r3, =0x83c26c	; via 0x10418
   10150:	e583d000	str	sp, [r3]
   10154:	e3a01080	mov	r1, #128	; 0x80
   10158:	e0822001	add	r2, r2, r1
   1015c:	e10f0000	mrs	r0, CPSR
   10160:	e3c0001f	bic	r0, r0, #31	; 0x1f
   10164:	e3800012	orr	r0, r0, #18	; 0x12
   10168:	e129f000	msr	CPSR_fc, r0
   1016c:	e1a0d002	mov	sp, r2
   10170:	e3a01c02	mov	r1, #512	; 0x200
   10174:	e0822001	add	r2, r2, r1
   10178:	e10f0000	mrs	r0, CPSR
   1017c:	e3c0001f	bic	r0, r0, #31	; 0x1f
   10180:	e3800011	orr	r0, r0, #17	; 0x11
   10184:	e129f000	msr	CPSR_fc, r0
   10188:	e1a0d002	mov	sp, r2
   1018c:	e10f0000	mrs	r0, CPSR
   10190:	e3c0001f	bic	r0, r0, #31	; 0x1f
   10194:	e3800017	orr	r0, r0, #23	; 0x17
   10198:	e129f000	msr	CPSR_fc, r0
   1019c:	e59fd288	ldr	sp, =0x1079270	; via 0x1042c
   101a0:	e10f0000	mrs	r0, CPSR
   101a4:	e3c0001f	bic	r0, r0, #31	; 0x1f
   101a8:	e380001b	orr	r0, r0, #27	; 0x1b
   101ac:	e129f000	msr	CPSR_fc, r0
   101b0:	e59fd274	ldr	sp, =0x1079270	; via 0x1042c
   101b4:	e10f0000	mrs	r0, CPSR
   101b8:	e3c0001f	bic	r0, r0, #31	; 0x1f
   101bc:	e3800013	orr	r0, r0, #19	; 0x13
   101c0:	e129f000	msr	CPSR_fc, r0
   101c4:	e59f3250	ldr	r3, =0x83c0b0	; via 0x1041c
   101c8:	e2822004	add	r2, r2, #4
   101cc:	e5832000	str	r2, [r3]
   101d0:	e3a01b01	mov	r1, #1024	; 0x400
   101d4:	e3c11003	bic	r1, r1, #3
   101d8:	e0822001	add	r2, r2, r1
   101dc:	e59f323c	ldr	r3, =0x83c134	; via 0x10420
   101e0:	e5831000	str	r1, [r3]
   101e4:	e3a01002	mov	r1, #2
   101e8:	e59f3234	ldr	r3, =0x83c144	; via 0x10424
   101ec:	e5831000	str	r1, [r3]
   101f0:	e1a04002	mov	r4, r2
   101f4:	eb09153c	bl	0x2556ec	; _f_load_int_mem
   101f8:	e1a02004	mov	r2, r4
   101fc:	e59f1210	ldr	r1, =0x83c148	; via 0x10414
   10200:	e5910000	ldr	r0, [r1]
   10204:	e3a030fe	mov	r3, #254	; 0xfe
   10208:	e5c03000	strb	r3, [r0]
   1020c:	e5c03001	strb	r3, [r0, #1]
   10210:	e5c03002	strb	r3, [r0, #2]
   10214:	e5c03003	strb	r3, [r0, #3]
   10218:	e4903004	ldr	r3, [r0], #4
   1021c:	e4803004	str	r3, [r0], #4
   10220:	e1500002	cmp	r0, r2
   10224:	bafffffc	blt	0x1021c
   10228:	e51f01e4	ldr	r0, =0x1047c	; via 0x1004c
   1022c:	e3700001	cmn	r0, #1
   10230:	1b00007f	blne	0x10434		; _auto_init
   10234:	e59f01ec	ldr	r0, =0x1078744	; via 0x10428
   10238:	ea09151f	b	0x2556bc	; _INC_Initialize

; cinit record for synth_900
   11014:	0000002d
   11018:	0083be30
   1101c:	00000000
   11020:	0000007c
   11024:	000003a7
   11028:	00000004
   1102c:	0000037a
   11030:	00000001
   11034:	000003ce
   11038:	000003ff
   1103c:	0000039d
   11040:	00000004
   11044:	00000370
   11048:	c046c001

; cinit record for synth_1800
   1104c:	00000015
   11050:	0083be60
   11054:	000001ff
   11058:	00000375
   1105c:	0000070d
   11060:	00000001
   11064:	000006ae
   11068:	c046c0ff

; cinit record for synth_1900
   1106c:	00000015
   11070:	0083be78
   11074:	000001ff
   11078:	0000032a
   1107c:	0000078a
   11080:	00000001
   11084:	0000073a
   11088:	c046c0ff

; cinit record for synth_850
   1108c:	00000015
   11090:	0083be90
   11094:	0000007f
   11098:	000000fb
   1109c:	00000365
   110a0:	00000004
   110a4:	00000338
   110a8:	c046c001

; cinit record for Tx magic2 table
   110ac:	0000001f
   110b0:	0083bea8
   110b4:	00061a90
   110b8:	00071ced
   110bc:	00071d4c
   110c0:	00071d4c
   110c4:	00071d4c
   110c8:	00071d4c
   110cc:	00071d4c
   110d0:	c007ffff

; cinit record for EGSM band Rx magic2 table
   110d4:	0000001f
   110d8:	0083bec8
   110dc:	00074b00
   110e0:	00074e20
   110e4:	00074e20
   110e8:	00074e20
   110ec:	00074e20
   110f0:	00074e20
   110f4:	00074e20
   110f8:	c007ffff

; cinit record for DCS band Rx magic2 table
   110fc:	0000001f
   11100:	0083bee8
   11104:	000024b8
   11108:	00002710
   1110c:	00002710
   11110:	00002710
   11114:	00002710
   11118:	00002710
   1111c:	00002710
   11120:	c000ffff

; cinit record for GSM850 band Rx magic2 table
   11124:	0000001f
   11128:	0083bf08
   1112c:	00074b00
   11130:	00074e20
   11134:	00074e20
   11138:	00074e20
   1113c:	00074e20
   11140:	00074e20
   11144:	00074e20
   11148:	c007ffff

; cinit record for PCS band Rx magic2 table
   1114c:	0000001f
   11150:	0083bf28
   11154:	000026de
   11158:	00002710
   1115c:	00002710
   11160:	00002710
   11164:	00002710
   11168:	00002710
   1116c:	00002710
   11170:	c000ffff

; cinit record for EGSM band magic1 table
   11174:	00000040
   11178:	0083bf48
   1117c:	0820001a
   11180:	08540023
   11184:	0847002a
   11188:	08610036
   1118c:	0847003c
   11190:	08610045
   11194:	0847004f
   11198:	083a005e
   1119c:	08470069
   111a0:	08540070
   111a4:	082d0075
   111a8:	0847007c
   111ac:	082003dc
   111b0:	083a03f6
   111b4:	082003ff
   111b8:	082003ff

; cinit record for DCS band magic1 table
   111bc:	00000040
   111c0:	0083bf88
   111c4:	0820023b
   111c8:	08470262
   111cc:	083a029f
   111d0:	082d02b0
   111d4:	083a02cf
   111d8:	086102da
   111dc:	083a02f3
   111e0:	0847031a
   111e4:	0820034d
   111e8:	082d0375
   111ec:	082d0375
   111f0:	082d0375
   111f4:	082d0375
   111f8:	082d0375
   111fc:	082d0375
   11200:	082d0375

; cinit record for GSM850 band magic1 table
   11204:	00000040
   11208:	0083bfc8
   1120c:	092400fb
   11210:	092400fb
   11214:	092400fb
   11218:	092400fb
   1121c:	092400fb
   11220:	092400fb
   11224:	092400fb
   11228:	092400fb
   1122c:	092400fb
   11230:	092400fb
   11234:	092400fb
   11238:	092400fb
   1123c:	092400fb
   11240:	092400fb
   11244:	092400fb
   11248:	092400fb

; cinit record for PCS band magic1 table
   1124c:	00000040
   11250:	0083c008
   11254:	08470226
   11258:	082d0267
   1125c:	083a0282
   11260:	082002be
   11264:	08540309
   11268:	0861032a
   1126c:	0861032a
   11270:	0861032a
   11274:	0861032a
   11278:	0861032a
   1127c:	0861032a
   11280:	0861032a
   11284:	0861032a
   11288:	0861032a
   1128c:	0861032a
   11290:	0861032a

; cinit record for the rf_path array
   11294:	00000050
   11298:	0083c048

; EGSM
   1129c:	16162000
   112a0:	00141612
   112a4:	0083be30
   112a8:	0083bf48
   112ac:	0083bec8

; DCS
   112b0:	16166000
   112b4:	00121614
   112b8:	0083be60
   112bc:	0083bf88
   112c0:	0083bee8

; PCS
   112c4:	16064000
   112c8:	00121614
   112cc:	0083be78
   112d0:	0083c008
   112d4:	0083bf28

; GSM850
   112d8:	16162000
   112dc:	00141612
   112e0:	0083be90
   112e4:	0083bfc8
   112e8:	0083bf08

$Init_Target:
  2458f0:	b570		push	{r4, r5, r6, lr}
  2458f2:	b081		sub	sp, #4
; write 0x6000 into FFFE:F008 like TCS211
  2458f4:	4d62		ldr	r5, =0xfffef006	; via 0x245a80
  2458f6:	2003		mov	r0, #3
  2458f8:	0340		lsl	r0, r0, #13
  2458fa:	8068		strh	r0, [r5, #2]
; TM_DisableWatchdog() ?
  2458fc:	f006 fd03	bl	0x24c306
; 8 MiB memory bank setup
  245900:	2008		mov	r0, #8
  245902:	8829		ldrh	r1, [r5, #0]
  245904:	4308		orr	r0, r1
  245906:	8028		strh	r0, [r5, #0]

; CNTL_CLK (FFFF:FD02) register setup
;
; TCS211 does this:
;	CNTL_CLK |= 0x0005;
;	CNTL_CLK &= 0xFF3F;
;	CNTL_CLK |= 0x0080;
;	CNTL_CLK &= 0xFFDF;
;
; The present version does this:
;	CNTL_CLK  = 0x0005;
;	CNTL_CLK &= 0xFF3F;
;	CNTL_CLK &= 0xFFDF;
;
; Difference 1: initial straight write vs. OR: it must be the effect
;		of the change in the definition of the CLKM_INITCNTL()
;		macro seen in the diff between MV100 and Sotovik versions.
;
; Difference 2: VTCXO_DIV2 bit setting for Clara (13 MHz) vs. Rita (26 MHz)

  245908:	485e		ldr	r0, =0xfffffd02	; via 0x245a84
  24590a:	2105		mov	r1, #5
  24590c:	8001		strh	r1, [r0, #0]
  24590e:	495e		ldr	r1, =0xff3f	; via 0x245a88
  245910:	8802		ldrh	r2, [r0, #0]
  245912:	4011		and	r1, r2
  245914:	8001		strh	r1, [r0, #0]
  245916:	495d		ldr	r1, =0xffdf	; via 0x245a8c
  245918:	8802		ldrh	r2, [r0, #0]
  24591a:	4011		and	r1, r2
  24591c:	8001		strh	r1, [r0, #0]

; RHEA_CNTL_REG setup: this version writes 0x7F00, TCS211 writes 0xFF00
  24591e:	4e5c		ldr	r6, =0xfffff900	; via 0x245a90
  245920:	207f		mov	r0, #127	; 0x7f
  245922:	0200		lsl	r0, r0, #8
  245924:	8030		strh	r0, [r6, #0]

; PLL setup: the code structure (sequence of steps) is the same as in TCS211,
; but the PLL multiplier is set to 6 instead of 8.  Thus the DSP runs at
; 78 MHz and the ARM runs at 39 MHz.
  245926:	4c5b		ldr	r4, =0xffff9800	; via 0x245a94
  245928:	485b		ldr	r0, =0xfff3	; via 0x245a98
  24592a:	8821		ldrh	r1, [r4, #0]
  24592c:	4008		and	r0, r1
  24592e:	8020		strh	r0, [r4, #0]
  245930:	8820		ldrh	r0, [r4, #0]
  245932:	8020		strh	r0, [r4, #0]
  245934:	4859		ldr	r0, =0xf01f	; via 0x245a9c
  245936:	8821		ldrh	r1, [r4, #0]
  245938:	4008		and	r0, r1
  24593a:	8020		strh	r0, [r4, #0]
  24593c:	2003		mov	r0, #3
  24593e:	0200		lsl	r0, r0, #8
  245940:	8821		ldrh	r1, [r4, #0]
  245942:	4308		orr	r0, r1
  245944:	8020		strh	r0, [r4, #0]

; ARM clock setup: divide by 2 like in TCS211
  245946:	2000		mov	r0, #0
  245948:	2102		mov	r1, #2
  24594a:	2200		mov	r2, #0
  24594c:	f007 fe00	bl	0x24d550

; Memory timings: definitely peculiar
  245950:	4953		ldr	r1, =0xfffffb00	; via 0x245aa0
  245952:	20a5		mov	r0, #165	; 0xa5
  245954:	8008		strh	r0, [r1, #0]
  245956:	8048		strh	r0, [r1, #2]
  245958:	20a2		mov	r0, #162	; 0xa2
  24595a:	8088		strh	r0, [r1, #4]
  24595c:	2085		mov	r0, #133	; 0x85
  24595e:	80c8		strh	r0, [r1, #6]
  245960:	2080		mov	r0, #128	; 0x80
  245962:	8148		strh	r0, [r1, #10]	; 0xa
  245964:	200b		mov	r0, #11	; 0xb
  245966:	0180		lsl	r0, r0, #6
  245968:	8188		strh	r0, [r1, #12]	; 0xc
  24596a:	2040		mov	r0, #64	; 0x40
  24596c:	8108		strh	r0, [r1, #8]

; FFFF:F902 and FFFF:F904 registers set up exactly the same as in TCS211
  24596e:	2020		mov	r0, #32	; 0x20
  245970:	8070		strh	r0, [r6, #2]
  245972:	2000		mov	r0, #0
  245974:	80b0		strh	r0, [r6, #4]

; PLL turn-on just like in TCS211
  245976:	2010		mov	r0, #16	; 0x10
  245978:	8821		ldrh	r1, [r4, #0]
  24597a:	4308		orr	r0, r1
  24597c:	8020		strh	r0, [r4, #0]

; remaining Init_Target() code not studied yet
  24597e:	4849		ldr	r0, =0xfffffa08	; via 0x245aa4
  245980:	4949		ldr	r1, =0xffff	; via 0x245aa8
  245982:	8001		strh	r1, [r0, #0]
  245984:	241f		mov	r4, #31	; 0x1f
  245986:	8044		strh	r4, [r0, #2]
  245988:	2103		mov	r1, #3
  24598a:	8181		strh	r1, [r0, #12]	; 0xc
  24598c:	f005 fc28	bl	0x24b1e0	; $IQ_SetupInterrupts
  245990:	4846		ldr	r0, =0xfffffc00	; via 0x245aac
  245992:	2124		mov	r1, #36	; 0x24
  245994:	8001		strh	r1, [r0, #0]
  245996:	210d		mov	r1, #13	; 0xd
  245998:	8041		strh	r1, [r0, #2]
  24599a:	2300		mov	r3, #0
  24599c:	4844		ldr	r0, =0xfffe2016	; via 0x245ab0
  24599e:	8003		strh	r3, [r0, #0]
  2459a0:	4844		ldr	r0, =0xfffe2014	; via 0x245ab4
  2459a2:	2102		mov	r1, #2
  2459a4:	8001		strh	r1, [r0, #0]
  2459a6:	4844		ldr	r0, =0xfffe2002	; via 0x245ab8
  2459a8:	2184		mov	r1, #132	; 0x84
  2459aa:	8001		strh	r1, [r0, #0]
  2459ac:	4943		ldr	r1, =0xfffe2000	; via 0x245abc
  2459ae:	4844		ldr	r0, =0x3de0	; via 0x245ac0
  2459b0:	8008		strh	r0, [r1, #0]
  2459b2:	4a44		ldr	r2, =0xfffe2022	; via 0x245ac4
  2459b4:	2009		mov	r0, #9
  2459b6:	8010		strh	r0, [r2, #0]
  2459b8:	4843		ldr	r0, =0xfffe2020	; via 0x245ac8
  2459ba:	4a44		ldr	r2, =0x45a	; via 0x245acc
  2459bc:	8002		strh	r2, [r0, #0]
  2459be:	4844		ldr	r0, =0xfffe201e	; via 0x245ad0
  2459c0:	22b4		mov	r2, #180	; 0xb4
  2459c2:	8002		strh	r2, [r0, #0]
  2459c4:	4843		ldr	r0, =0xfffe201c	; via 0x245ad4
  2459c6:	8004		strh	r4, [r0, #0]
  2459c8:	1c1c		add	r4, r3, #0
  2459ca:	4843		ldr	r0, =0xfffe2024	; via 0x245ad8
  2459cc:	8004		strh	r4, [r0, #0]
  2459ce:	4b43		ldr	r3, =0xfffe2010	; via 0x245adc
  2459d0:	2002		mov	r0, #2
  2459d2:	881a		ldrh	r2, [r3, #0]
  2459d4:	4310		orr	r0, r2
  2459d6:	8018		strh	r0, [r3, #0]
  2459d8:	4840		ldr	r0, =0xfffe2010	; via 0x245adc
  2459da:	2304		mov	r3, #4
  2459dc:	8802		ldrh	r2, [r0, #0]
  2459de:	4313		orr	r3, r2
  2459e0:	8003		strh	r3, [r0, #0]
  2459e2:	2027		mov	r0, #39	; 0x27
  2459e4:	80e8		strh	r0, [r5, #6]
  2459e6:	8a08		ldrh	r0, [r1, #16]	; 0x10
  2459e8:	0840		lsr	r0, r0, #1
  2459ea:	d310		bcc	0x245a0e
  2459ec:	8a08		ldrh	r0, [r1, #16]	; 0x10
  2459ee:	0400		lsl	r0, r0, #16
  2459f0:	0c40		lsr	r0, r0, #17
  2459f2:	0040		lsl	r0, r0, #1
  2459f4:	8208		strh	r0, [r1, #16]	; 0x10
  2459f6:	2001		mov	r0, #1
  2459f8:	9000		str	r0, [sp, #0]
  2459fa:	e002		b	0x245a02
  2459fc:	9800		ldr	r0, [sp, #0]
  2459fe:	3001		add	r0, #1
  245a00:	9000		str	r0, [sp, #0]
  245a02:	9800		ldr	r0, [sp, #0]
  245a04:	2832		cmp	r0, #50	; 0x32
  245a06:	d3f9		bcc	0x2459fc
  245a08:	8a48		ldrh	r0, [r1, #18]	; 0x12
  245a0a:	2800		cmp	r0, #0
  245a0c:	d0fc		beq	0x245a08
  245a0e:	f006 fdbf	bl	0x24c590	; $AI_ClockEnable
  245a12:	f006 fdc3	bl	0x24c59c	; $AI_InitIOConfig
  245a16:	2027		mov	r0, #39	; 0x27
  245a18:	0500		lsl	r0, r0, #20
  245a1a:	8004		strh	r4, [r0, #0]
  245a1c:	2001		mov	r0, #1
  245a1e:	f006 fc80	bl	0x24c322	; $TM_EnableTimer
  245a22:	2002		mov	r0, #2
  245a24:	f006 fc7d	bl	0x24c322	; $TM_EnableTimer
  245a28:	b001		add	sp, #4
  245a2a:	bd70		pop	{r4, r5, r6, pc}

$Init_Drivers:
  245a2c:	b500		push	{lr}
  245a2e:	f7ce f9b0	bl	0x213d92
  245a32:	f7af fb41	bl	0x1f50b8
  245a36:	f7da fd20	bl	0x22047a
  245a3a:	f755 fc4f	bl	0x19b2dc
  245a3e:	bd00		pop	{pc}

$Init_Serial_Flows:
  245a40:	b500		push	{lr}
  245a42:	4827		ldr	r0, =0x10786fc	; via 0x245ae0
  245a44:	f795 f98e	bl	0x1dad64
  245a48:	2000		mov	r0, #0
  245a4a:	2102		mov	r1, #2
  245a4c:	2200		mov	r2, #0
  245a4e:	f795 fbdc	bl	0x1db20a
  245a52:	f795 fc51	bl	0x1db2f8
  245a56:	bd00		pop	{pc}

$Init_Unmask_IT:
  245a58:	b500		push	{lr}
  245a5a:	2004		mov	r0, #4
  245a5c:	f005 fc21	bl	0x24b2a2
  245a60:	2012		mov	r0, #18	; 0x12
  245a62:	f005 fc1e	bl	0x24b2a2
  245a66:	2007		mov	r0, #7
  245a68:	f005 fc1b	bl	0x24b2a2
  245a6c:	2008		mov	r0, #8
  245a6e:	f005 fc18	bl	0x24b2a2
  245a72:	bd00		pop	{pc}

; The following BX LR instructions must be empty functions in the same init
; module as the recognizable functions above, as they lie between the previous
; code and its associated literal pool.
  245a74:	4770		bx	lr
  245a76:	4770		bx	lr
  245a78:	4770		bx	lr
  245a7a:	4770		bx	lr
  245a7c:	4770		bx	lr
  245a7e:	4770		bx	lr

$AI_EnableBit:
  24c4f4:	4a4e		ldr	r2, =0xfffef00a	; via 0x24c630
  24c4f6:	2101		mov	r1, #1
  24c4f8:	4081		lsl	r1, r0
  24c4fa:	8810		ldrh	r0, [r2, #0]
  24c4fc:	4301		orr	r1, r0
  24c4fe:	8011		strh	r1, [r2, #0]
  24c500:	4770		bx	lr

$AI_DisableBit:
  24c502:	4a4b		ldr	r2, =0xfffef00a	; via 0x24c630
  24c504:	2101		mov	r1, #1
  24c506:	4081		lsl	r1, r0
  24c508:	8810		ldrh	r0, [r2, #0]
  24c50a:	4388		bic	r0, r1
  24c50c:	8010		strh	r0, [r2, #0]
  24c50e:	4770		bx	lr

$AI_SetBit:
  24c510:	4a48		ldr	r2, =0xfffe4802	; via 0x24c634
  24c512:	2101		mov	r1, #1
  24c514:	4081		lsl	r1, r0
  24c516:	8810		ldrh	r0, [r2, #0]
  24c518:	4301		orr	r1, r0
  24c51a:	8011		strh	r1, [r2, #0]
  24c51c:	4770		bx	lr

$AI_ResetBit:
  24c51e:	4a45		ldr	r2, =0xfffe4802	; via 0x24c634
  24c520:	2101		mov	r1, #1
  24c522:	4081		lsl	r1, r0
  24c524:	8810		ldrh	r0, [r2, #0]
  24c526:	4388		bic	r0, r1
  24c528:	8010		strh	r0, [r2, #0]
  24c52a:	4770		bx	lr

$AI_ConfigBitAsOutput:
  24c52c:	4a42		ldr	r2, =0xfffe4804	; via 0x24c638
  24c52e:	2101		mov	r1, #1
  24c530:	4081		lsl	r1, r0
  24c532:	8810		ldrh	r0, [r2, #0]
  24c534:	4388		bic	r0, r1
  24c536:	8010		strh	r0, [r2, #0]
  24c538:	4770		bx	lr

$AI_ConfigBitAsInput:
  24c53a:	4a3f		ldr	r2, =0xfffe4804	; via 0x24c638
  24c53c:	2101		mov	r1, #1
  24c53e:	4081		lsl	r1, r0
  24c540:	8810		ldrh	r0, [r2, #0]
  24c542:	4301		orr	r1, r0
  24c544:	8011		strh	r1, [r2, #0]
  24c546:	4770		bx	lr

$AI_ReadBit:
  24c548:	493c		ldr	r1, =0xfffe4800	; via 0x24c63c
  24c54a:	8809		ldrh	r1, [r1, #0]
  24c54c:	4101		asr	r1, r0
  24c54e:	07c8		lsl	r0, r1, #31
  24c550:	0fc0		lsr	r0, r0, #31
  24c552:	0600		lsl	r0, r0, #24
  24c554:	0e00		lsr	r0, r0, #24
  24c556:	4770		bx	lr

$AI_Power:
  24c558:	b500		push	{lr}
  24c55a:	2800		cmp	r0, #0
  24c55c:	d110		bne	0x24c580
  24c55e:	f772 fcbf	bl	0x1beee0
  24c562:	0940		lsr	r0, r0, #5
  24c564:	d2fb		bcs	0x24c55e
  24c566:	f004 fc89	bl	0x250e7c
  24c56a:	4835		ldr	r0, =0xfffe3000	; via 0x24c640
  24c56c:	217c		mov	r1, #124	; 0x7c
  24c56e:	8141		strh	r1, [r0, #10]	; 0xa
  24c570:	2131		mov	r1, #49	; 0x31
  24c572:	8802		ldrh	r2, [r0, #0]
  24c574:	4311		orr	r1, r2
  24c576:	8001		strh	r1, [r0, #0]
  24c578:	2102		mov	r1, #2
  24c57a:	8882		ldrh	r2, [r0, #4]
  24c57c:	4311		orr	r1, r2
  24c57e:	8081		strh	r1, [r0, #4]
  24c580:	bd00		pop	{pc}

$AI_ResetIoConfig:
  24c582:	492d		ldr	r1, =0xfffe4804	; via 0x24c638
  24c584:	482f		ldr	r0, =0xffff	; via 0x24c644
  24c586:	8008		strh	r0, [r1, #0]
  24c588:	4829		ldr	r0, =0xfffef00a	; via 0x24c630
  24c58a:	2100		mov	r1, #0
  24c58c:	8001		strh	r1, [r0, #0]
  24c58e:	4770		bx	lr

$AI_ClockEnable:
  24c590:	492d		ldr	r1, =0xfffe4806	; via 0x24c648
  24c592:	2020		mov	r0, #32	; 0x20
  24c594:	880a		ldrh	r2, [r1, #0]
  24c596:	4310		orr	r0, r2
  24c598:	8008		strh	r0, [r1, #0]
  24c59a:	4770		bx	lr

$AI_InitIOConfig:
  24c59c:	b500		push	{lr}
  24c59e:	f7ff fff0	bl	0x24c582	; $AI_ResetIoConfig
  24c5a2:	2002		mov	r0, #2
  24c5a4:	f7ff ffa6	bl	0x24c4f4	; $AI_EnableBit
  24c5a8:	2004		mov	r0, #4
  24c5aa:	f7ff ffa3	bl	0x24c4f4	; $AI_EnableBit
  24c5ae:	2005		mov	r0, #5
  24c5b0:	f7ff ffa0	bl	0x24c4f4	; $AI_EnableBit
  24c5b4:	2006		mov	r0, #6
  24c5b6:	f7ff ff9d	bl	0x24c4f4	; $AI_EnableBit
  24c5ba:	2007		mov	r0, #7
  24c5bc:	f7ff ff9a	bl	0x24c4f4	; $AI_EnableBit
  24c5c0:	2008		mov	r0, #8
  24c5c2:	f7ff ff97	bl	0x24c4f4	; $AI_EnableBit
  24c5c6:	2009		mov	r0, #9
  24c5c8:	f7ff ff94	bl	0x24c4f4	; $AI_EnableBit
  24c5cc:	4919		ldr	r1, =0xfffe4802	; via 0x24c634
  24c5ce:	481f		ldr	r0, =0x3f02	; via 0x24c64c
  24c5d0:	8008		strh	r0, [r1, #0]
  24c5d2:	2001		mov	r0, #1
  24c5d4:	f7ff ffaa	bl	0x24c52c	; $AI_ConfigBitAsOutput
  24c5d8:	2002		mov	r0, #2
  24c5da:	f7ff ffa7	bl	0x24c52c	; $AI_ConfigBitAsOutput
  24c5de:	2005		mov	r0, #5
  24c5e0:	f7ff ffa4	bl	0x24c52c	; $AI_ConfigBitAsOutput
  24c5e4:	2007		mov	r0, #7
  24c5e6:	f7ff ffa1	bl	0x24c52c	; $AI_ConfigBitAsOutput
  24c5ea:	2009		mov	r0, #9
  24c5ec:	f7ff ff9e	bl	0x24c52c	; $AI_ConfigBitAsOutput
  24c5f0:	200e		mov	r0, #14	; 0xe
  24c5f2:	f7ff ff9b	bl	0x24c52c	; $AI_ConfigBitAsOutput
  24c5f6:	200f		mov	r0, #15	; 0xf
  24c5f8:	f7ff ff98	bl	0x24c52c	; $AI_ConfigBitAsOutput
  24c5fc:	bd00		pop	{pc}

$AI_SelectIOForIT:
  24c5fe:	0109		lsl	r1, r1, #4
  24c600:	1840		add	r0, r0, r1
  24c602:	0040		lsl	r0, r0, #1
  24c604:	3001		add	r0, #1
  24c606:	4912		ldr	r1, =0xfffe4814	; via 0x24c650
  24c608:	8008		strh	r0, [r1, #0]
  24c60a:	4770		bx	lr

$AI_CheckITSource:
  24c60c:	2100		mov	r1, #0
  24c60e:	4a11		ldr	r2, =0xfffe4816	; via 0x24c654
  24c610:	8812		ldrh	r2, [r2, #0]
  24c612:	4210		tst	r0, r2
  24c614:	d000		beq	0x24c618
  24c616:	2101		mov	r1, #1
  24c618:	1c08		add	r0, r1, #0
  24c61a:	4770		bx	lr

$AI_UnmaskIT:
  24c61c:	4a0e		ldr	r2, =0xfffe4818	; via 0x24c658
  24c61e:	8811		ldrh	r1, [r2, #0]
  24c620:	4381		bic	r1, r0
  24c622:	8011		strh	r1, [r2, #0]
  24c624:	4770		bx	lr

$AI_MaskIT:
  24c626:	4a0c		ldr	r2, =0xfffe4818	; via 0x24c658
  24c628:	8811		ldrh	r1, [r2, #0]
  24c62a:	4301		orr	r1, r0
  24c62c:	8011		strh	r1, [r2, #0]
  24c62e:	4770		bx	lr

; Appears to the old Thumb implementation of f_load_int_mem(),
; differs from TCS211 version which is ARM and appears to be assembly
  250408:	b5f0		push	{r4, r5, r6, r7, lr}
  25040a:	4640		mov	r0, r8
  25040c:	4649		mov	r1, r9
  25040e:	4652		mov	r2, r10
  250410:	465b		mov	r3, r11
  250412:	b40f		push	{r0, r1, r2, r3}
  250414:	4f22		ldr	r7, =0x1079168	; via 0x2504a0
  250416:	2000		mov	r0, #0
  250418:	8038		strh	r0, [r7, #0]
  25041a:	4922		ldr	r1, =0x107916a	; via 0x2504a4
  25041c:	4688		mov	r8, r1
  25041e:	8008		strh	r0, [r1, #0]
  250420:	4821		ldr	r0, =0x800000	; via 0x2504a8
  250422:	4922		ldr	r1, =0x81944c	; via 0x2504ac
  250424:	1a09		sub	r1, r1, r0
  250426:	3904		sub	r1, #4
  250428:	468c		mov	r12, r1
  25042a:	2104		mov	r1, #4
  25042c:	180e		add	r6, r1, r0
  25042e:	1c30		add	r0, r6, #0
  250430:	4661		mov	r1, r12
  250432:	f7ff ffe0	bl	0x2503f6
  250436:	4c1e		ldr	r4, =0x83eda4	; via 0x2504b0
  250438:	481e		ldr	r0, =0x83f294	; via 0x2504b4
  25043a:	1b05		sub	r5, r0, r4
  25043c:	1c20		add	r0, r4, #0
  25043e:	1c29		add	r1, r5, #0
  250440:	f7ff ffd9	bl	0x2503f6
  250444:	481c		ldr	r0, =0x20508	; via 0x2504b8
  250446:	4681		mov	r9, r0
  250448:	4661		mov	r1, r12
  25044a:	f7ff ffc7	bl	0x2503dc
  25044e:	4682		mov	r10, r0
  250450:	8038		strh	r0, [r7, #0]
  250452:	481a		ldr	r0, =0x155e8	; via 0x2504bc
  250454:	4683		mov	r11, r0
  250456:	1c29		add	r1, r5, #0
  250458:	f7ff ffc0	bl	0x2503dc
  25045c:	4651		mov	r1, r10
  25045e:	1808		add	r0, r1, r0
  250460:	8038		strh	r0, [r7, #0]
  250462:	4648		mov	r0, r9
  250464:	4661		mov	r1, r12
  250466:	1c32		add	r2, r6, #0
  250468:	f7ff ffae	bl	0x2503c8
  25046c:	4658		mov	r0, r11
  25046e:	1c29		add	r1, r5, #0
  250470:	1c22		add	r2, r4, #0
  250472:	f7ff ffa9	bl	0x2503c8
  250476:	1c30		add	r0, r6, #0
  250478:	4661		mov	r1, r12
  25047a:	f7ff ffaf	bl	0x2503dc
  25047e:	1c06		add	r6, r0, #0
  250480:	4640		mov	r0, r8
  250482:	8006		strh	r6, [r0, #0]
  250484:	1c20		add	r0, r4, #0
  250486:	1c29		add	r1, r5, #0
  250488:	f7ff ffa8	bl	0x2503dc
  25048c:	1830		add	r0, r6, r0
  25048e:	4641		mov	r1, r8
  250490:	8008		strh	r0, [r1, #0]
  250492:	bc0f		pop	{r0, r1, r2, r3}
  250494:	4680		mov	r8, r0
  250496:	4689		mov	r9, r1
  250498:	4692		mov	r10, r2
  25049a:	469b		mov	r11, r3
  25049c:	bdf0		pop	{r4, r5, r6, r7, pc}

IRAM code flash address = 0x20508
IRAM code run start address = 0x800004
IRAM code run end address   = 0x81944c

Run address = load address + 0x7DFAFC

$INC_Initialize:
  254654:	b530		push	{r4, r5, lr}
  254656:	1c05		add	r5, r0, #0
  254658:	4c13		ldr	r4, =0x1079150	; via 0x2546a8
  25465a:	2001		mov	r0, #1
  25465c:	6020		str	r0, [r4, #0]
  25465e:	f001 f9eb	bl	0x255a38
  254662:	f001 f9ed	bl	0x255a40
  254666:	f001 f9ad	bl	0x2559c4
  25466a:	f000 fd45	bl	0x2550f8
  25466e:	f7fb ffa3	bl	0x2505b8
  254672:	f000 ff0d	bl	0x255490
  254676:	f000 fedb	bl	0x255430
  25467a:	f000 fef9	bl	0x255470
  25467e:	f000 fec7	bl	0x255410
  254682:	f000 ff25	bl	0x2554d0
  254686:	f000 fee3	bl	0x255450
  25468a:	f000 ff31	bl	0x2554f0
  25468e:	f7fe faef	bl	0x252c70
  254692:	f000 ff0d	bl	0x2554b0
  254696:	1c28		add	r0, r5, #0
  254698:	f000 fda5	bl	0x2551e6	; app init
  25469c:	2002		mov	r0, #2
  25469e:	6020		str	r0, [r4, #0]
  2546a0:	f001 fefa	bl	0x256498	; $TCT_Schedule veneer
  2546a4:	bd30		pop	{r4, r5, pc}

$Application_Initialize:
  2551e6:	b500		push	{lr}
  2551e8:	f7f0 fb82	bl	0x2458f0	; $Init_Target
  2551ec:	f7f0 fc1e	bl	0x245a2c	; $Init_Drivers
  2551f0:	f001 fa82	bl	0x2566f8	; $Cust_Init_Layer1
  2551f4:	f7f0 fc24	bl	0x245a40	; $Init_Serial_Flows
  2551f8:	f7a0 fba6	bl	0x1f5948	; $StartFrame
  2551fc:	f7f0 fc2c	bl	0x245a58	; $Init_Unmask_IT
  255200:	bd00		pop	{pc}

  2556a4:	e58de004	str	lr, [sp, #4]
  2556a8:	e28fe001	add	lr, pc, #1
  2556ac:	e12fff1e	bx	lr
  2556b0:	f7e8 f8e6	bl	0x23d880
  2556b4:	4778		bx	pc
  2556b6:	46c0		nop			(mov r8, r8)
  2556b8:	e59df004	ldr	pc, [sp, #4]

; _INC_Initialize call veneer
  2556bc:	e92d4000	stmdb	sp!, {lr}
  2556c0:	e28fe001	add	lr, pc, #1
  2556c4:	e12fff1e	bx	lr
  2556c8:	f7fe ffc4	bl	0x254654
  2556cc:	4778		bx	pc
  2556ce:	46c0		nop			(mov r8, r8)
  2556d0:	e8bd8000	ldmia	sp!, {pc}

  2556d4:	e92d4000	stmdb	sp!, {lr}
  2556d8:	e28fe001	add	lr, pc, #1
  2556dc:	e12fff1e	bx	lr
  2556e0:	f7e7 fb27	bl	0x23cd32
  2556e4:	4778		bx	pc
  2556e6:	46c0		nop			(mov r8, r8)
  2556e8:	e8bd8000	ldmia	sp!, {pc}

; _f_load_int_mem call veneer
  2556ec:	e92d4000	stmdb	sp!, {lr}
  2556f0:	e28fe001	add	lr, pc, #1
  2556f4:	e12fff1e	bx	lr
  2556f8:	f7fa fe86	bl	0x250408
  2556fc:	4778		bx	pc
  2556fe:	46c0		nop			(mov r8, r8)
  255700:	e8bd8000	ldmia	sp!, {pc}

  255704:	e92d4000	stmdb	sp!, {lr}
  255708:	e28fe001	add	lr, pc, #1
  25570c:	e12fff1e	bx	lr
  255710:	f7ff fd69	bl	0x2551e6
  255714:	4778		bx	pc
  255716:	46c0		nop			(mov r8, r8)
  255718:	e8bd8000	ldmia	sp!, {pc}

  25571c:	e92d4000	stmdb	sp!, {lr}
  255720:	e28fe001	add	lr, pc, #1
  255724:	e12fff1e	bx	lr
  255728:	f76e f932	bl	0x1c3990
  25572c:	4778		bx	pc
  25572e:	46c0		nop			(mov r8, r8)
  255730:	e8bd8000	ldmia	sp!, {pc}

  255734:	e92d4000	stmdb	sp!, {lr}
  255738:	e28fe001	add	lr, pc, #1
  25573c:	e12fff1e	bx	lr
  255740:	f7a6 fe10	bl	0x1fc364
  255744:	4778		bx	pc
  255746:	46c0		nop			(mov r8, r8)
  255748:	e8bd8000	ldmia	sp!, {pc}

  25574c:	e92d4000	stmdb	sp!, {lr}
  255750:	e28fe001	add	lr, pc, #1
  255754:	e12fff1e	bx	lr
  255758:	f6f4 fa10	bl	0x149b7c
  25575c:	4778		bx	pc
  25575e:	46c0		nop			(mov r8, r8)
  255760:	e8bd8000	ldmia	sp!, {pc}

  255764:	e92d4000	stmdb	sp!, {lr}
  255768:	e28fe001	add	lr, pc, #1
  25576c:	e12fff1e	bx	lr
  255770:	f785 ff3b	bl	0x1db5ea
  255774:	4778		bx	pc
  255776:	46c0		nop			(mov r8, r8)
  255778:	e8bd8000	ldmia	sp!, {pc}

  25577c:	e92d4000	stmdb	sp!, {lr}
  255780:	e28fe001	add	lr, pc, #1
  255784:	e12fff1e	bx	lr
  255788:	f785 ff10	bl	0x1db5ac
  25578c:	4778		bx	pc
  25578e:	46c0		nop			(mov r8, r8)
  255790:	e8bd8000	ldmia	sp!, {pc}

; $Cust_Init_Layer1 call trampoline
  2566f8:	b082		sub	sp, #8
  2566fa:	9400		str	r4, [sp, #0]
  2566fc:	4c01		ldr	r4, =0x803bf8	; via 0x256704
  2566fe:	9401		str	r4, [sp, #4]
  256700:	bd10		pop	{r4, pc}
  256702:	0000

IRAM code:

$Cust_get_pwr_data:
  803b5c:	b5f0		push	{r4, r5, r6, r7, lr}
  803b5e:	4642		mov	r2, r8
  803b60:	b404		push	{r2}
  803b62:	1c0e		add	r6, r1, #0
  803b64:	1c05		add	r5, r0, #0
  803b66:	1c30		add	r0, r6, #0
  803b68:	f7ff ff66	bl	0x803a38	; $Cust_is_band_high
  803b6c:	1c04		add	r4, r0, #0
  803b6e:	1c30		add	r0, r6, #0
  803b70:	f00e fa45	bl	0x811ffe	; $Convert_l1_radio_freq
  803b74:	0400		lsl	r0, r0, #16
  803b76:	0c06		lsr	r6, r0, #16
  803b78:	20dd		mov	r0, #221	; 0xdd
  803b7a:	0080		lsl	r0, r0, #2
  803b7c:	4360		mul	r0, r4
  803b7e:	4680		mov	r8, r0
  803b80:	20dd		mov	r0, #221	; 0xdd
  803b82:	4360		mul	r0, r4
  803b84:	1828		add	r0, r5, r0
  803b86:	0080		lsl	r0, r0, #2
  803b88:	4b9e		ldr	r3, =0x83a2f0	; via 0x803e04
  803b8a:	1819		add	r1, r3, r0
  803b8c:	315c		add	r1, #92	; 0x5c
  803b8e:	8809		ldrh	r1, [r1, #0]
  803b90:	468c		mov	r12, r1
  803b92:	499e		ldr	r1, =0x83a34f	; via 0x803e0c
  803b94:	5c08		ldrb	r0, [r1, r0]
  803b96:	0141		lsl	r1, r0, #5
  803b98:	4640		mov	r0, r8
  803b9a:	1845		add	r5, r0, r1
  803b9c:	2400		mov	r4, #0
  803b9e:	e002		b	0x803ba6
  803ba0:	1c60		add	r0, r4, #1
  803ba2:	0400		lsl	r0, r0, #16
  803ba4:	0c04		lsr	r4, r0, #16
  803ba6:	00a2		lsl	r2, r4, #2
  803ba8:	18a8		add	r0, r5, r2
  803baa:	1819		add	r1, r3, r0
  803bac:	31dc		add	r1, #220	; 0xdc
  803bae:	2702		mov	r7, #2
  803bb0:	1950		add	r0, r2, r5
  803bb2:	181a		add	r2, r3, r0
  803bb4:	20dc		mov	r0, #220	; 0xdc
  803bb6:	5a80		ldrh	r0, [r0, r2]
  803bb8:	4286		cmp	r6, r0
  803bba:	dcf1		bgt	0x803ba0
  803bbc:	5e79		ldrsh	r1, [r7, r1]
  803bbe:	4660		mov	r0, r12
  803bc0:	4341		mul	r1, r0
  803bc2:	09c8		lsr	r0, r1, #7
  803bc4:	0400		lsl	r0, r0, #16
  803bc6:	0c00		lsr	r0, r0, #16
  803bc8:	4684		mov	r12, r0
  803bca:	4640		mov	r0, r8
  803bcc:	18c0		add	r0, r0, r3
  803bce:	21d7		mov	r1, #215	; 0xd7
  803bd0:	0089		lsl	r1, r1, #2
  803bd2:	1808		add	r0, r1, r0
  803bd4:	4a8a		ldr	r2, =0x83a2da	; via 0x803e00
  803bd6:	2100		mov	r1, #0
  803bd8:	5e51		ldrsh	r1, [r2, r1]
  803bda:	e000		b	0x803bde
  803bdc:	3004		add	r0, #4
  803bde:	2200		mov	r2, #0
  803be0:	5e82		ldrsh	r2, [r0, r2]
  803be2:	4291		cmp	r1, r2
  803be4:	dcfa		bgt	0x803bdc
  803be6:	2102		mov	r1, #2
  803be8:	5e09		ldrsh	r1, [r1, r0]
  803bea:	4660		mov	r0, r12
  803bec:	1808		add	r0, r1, r0
  803bee:	0400		lsl	r0, r0, #16
  803bf0:	0c00		lsr	r0, r0, #16
  803bf2:	bc04		pop	{r2}
  803bf4:	4690		mov	r8, r2
  803bf6:	bdf0		pop	{r4, r5, r6, r7, pc}

$Cust_Init_Layer1:
  803bf8:	b500		push	{lr}
  803bfa:	b084		sub	sp, #16	; 0x10
  803bfc:	4669		mov	r1, sp
  803bfe:	2006		mov	r0, #6
  803c00:	7008		strb	r0, [r1, #0]
  803c02:	4668		mov	r0, sp
  803c04:	2101		mov	r1, #1
  803c06:	7101		strb	r1, [r0, #4]
  803c08:	2000		mov	r0, #0
  803c0a:	4669		mov	r1, sp
  803c0c:	70c8		strb	r0, [r1, #3]
  803c0e:	7208		strb	r0, [r1, #8]
  803c10:	487f		ldr	r0, =0x5ff	; via 0x803e10
  803c12:	9003		str	r0, [sp, #12]	; 0xc
  803c14:	2001		mov	r0, #1
  803c16:	80c8		strh	r0, [r1, #6]
  803c18:	4668		mov	r0, sp
  803c1a:	f03b f9bb	bl	0x83ef94	; $l1_initialize
  803c1e:	480b		ldr	r0, =0x839ea8	; via 0x803c4c
  803c20:	21ff		mov	r1, #255	; 0xff
  803c22:	319d		add	r1, #157	; 0x9d
  803c24:	2200		mov	r2, #0
  803c26:	f000 f868	bl	0x803cfa	; $get_cal_from_nvmem
  803c2a:	487a		ldr	r0, =0x83a09c	; via 0x803e14
  803c2c:	2124		mov	r1, #36	; 0x24
  803c2e:	2201		mov	r2, #1
  803c30:	f000 f863	bl	0x803cfa	; $get_cal_from_nvmem
  803c34:	b004		add	sp, #16	; 0x10
  803c36:	bd00		pop	{pc}

_std_config:
  8053f8:	00000000
  8053fc:	00000000
  805400:	00000005
  805404:	00000001
  805408:	00000001
  80540c:	00000001
  805410:	00150003
  805414:	00000200
  805418:	001c0002
  80541c:	00000200
  805420:	001c0205
  805424:	00000001
  805428:	001c0201
  80542c:	00000001
  805430:	00000004
  805434:	00000080
  805438:	00150304
  80543c:	00000001

; apparent beginning of tpudrv10 module

  811df8:	b500		push	{lr}
  811dfa:	b084		sub	sp, #16	; 0x10
  811dfc:	4669		mov	r1, sp
  811dfe:	8008		strh	r0, [r1, #0]
  811e00:	2014		mov	r0, #20	; 0x14
  811e02:	49c6		ldr	r1, =0x83c0a1	; via 0x81211c
  811e04:	7809		ldrb	r1, [r1, #0]
  811e06:	4348		mul	r0, r1
  811e08:	49c3		ldr	r1, =0x83c054	; via 0x812118
  811e0a:	5808		ldr	r0, [r1, r0]
  811e0c:	9003		str	r0, [sp, #12]	; 0xc
  811e0e:	9803		ldr	r0, [sp, #12]	; 0xc
  811e10:	8801		ldrh	r1, [r0, #0]
  811e12:	4668		mov	r0, sp
  811e14:	8800		ldrh	r0, [r0, #0]
  811e16:	4281		cmp	r1, r0
  811e18:	da08		bge	0x811e2c
  811e1a:	9803		ldr	r0, [sp, #12]	; 0xc
  811e1c:	3004		add	r0, #4
  811e1e:	9003		str	r0, [sp, #12]	; 0xc
  811e20:	9803		ldr	r0, [sp, #12]	; 0xc
  811e22:	8800		ldrh	r0, [r0, #0]
  811e24:	4669		mov	r1, sp
  811e26:	8809		ldrh	r1, [r1, #0]
  811e28:	4288		cmp	r0, r1
  811e2a:	dbf6		blt	0x811e1a
  811e2c:	4669		mov	r1, sp
  811e2e:	9803		ldr	r0, [sp, #12]	; 0xc
  811e30:	8840		ldrh	r0, [r0, #2]
  811e32:	0040		lsl	r0, r0, #1
  811e34:	80c8		strh	r0, [r1, #6]
  811e36:	4668		mov	r0, sp
  811e38:	88c0		ldrh	r0, [r0, #6]
  811e3a:	210d		mov	r1, #13	; 0xd
  811e3c:	f002 fd8e	bl	0x81495c
  811e40:	4668		mov	r0, sp
  811e42:	8101		strh	r1, [r0, #8]
  811e44:	8900		ldrh	r0, [r0, #8]
  811e46:	1081		asr	r1, r0, #2
  811e48:	0f49		lsr	r1, r1, #29
  811e4a:	1808		add	r0, r1, r0
  811e4c:	10c1		asr	r1, r0, #3
  811e4e:	4668		mov	r0, sp
  811e50:	8041		strh	r1, [r0, #2]
  811e52:	8901		ldrh	r1, [r0, #8]
  811e54:	8840		ldrh	r0, [r0, #2]
  811e56:	00c0		lsl	r0, r0, #3
  811e58:	1a09		sub	r1, r1, r0
  811e5a:	4668		mov	r0, sp
  811e5c:	8081		strh	r1, [r0, #4]
  811e5e:	8880		ldrh	r0, [r0, #4]
  811e60:	0740		lsl	r0, r0, #29
  811e62:	0f40		lsr	r0, r0, #29
  811e64:	0141		lsl	r1, r0, #5
  811e66:	4668		mov	r0, sp
  811e68:	8840		ldrh	r0, [r0, #2]
  811e6a:	0680		lsl	r0, r0, #26
  811e6c:	0e80		lsr	r0, r0, #26
  811e6e:	0200		lsl	r0, r0, #8
  811e70:	4301		orr	r1, r0
  811e72:	0408		lsl	r0, r1, #16
  811e74:	0c00		lsr	r0, r0, #16
  811e76:	b004		add	sp, #16	; 0x10
  811e78:	bd00		pop	{pc}

$calc_a_b:
  811e7a:	b500		push	{lr}
  811e7c:	b08d		sub	sp, #52	; 0x34
  811e7e:	466a		mov	r2, sp
  811e80:	7091		strb	r1, [r2, #2]
  811e82:	4669		mov	r1, sp
  811e84:	8008		strh	r0, [r1, #0]
  811e86:	2014		mov	r0, #20	; 0x14
  811e88:	49a4		ldr	r1, =0x83c0a1	; via 0x81211c
  811e8a:	7809		ldrb	r1, [r1, #0]
  811e8c:	4348		mul	r0, r1
  811e8e:	49a4		ldr	r1, =0x83c050	; via 0x812120
  811e90:	5808		ldr	r0, [r1, r0]
  811e92:	900c		str	r0, [sp, #48]	; 0x30
  811e94:	980c		ldr	r0, [sp, #48]	; 0x30
  811e96:	8881		ldrh	r1, [r0, #4]
  811e98:	4668		mov	r0, sp
  811e9a:	8800		ldrh	r0, [r0, #0]
  811e9c:	4281		cmp	r1, r0
  811e9e:	da08		bge	0x811eb2
  811ea0:	980c		ldr	r0, [sp, #48]	; 0x30
  811ea2:	3018		add	r0, #24	; 0x18
  811ea4:	900c		str	r0, [sp, #48]	; 0x30
  811ea6:	980c		ldr	r0, [sp, #48]	; 0x30
  811ea8:	8881		ldrh	r1, [r0, #4]
  811eaa:	4668		mov	r0, sp
  811eac:	8800		ldrh	r0, [r0, #0]
  811eae:	4281		cmp	r1, r0
  811eb0:	dbf6		blt	0x811ea0
  811eb2:	2014		mov	r0, #20	; 0x14
  811eb4:	4999		ldr	r1, =0x83c0a1	; via 0x81211c
  811eb6:	7809		ldrb	r1, [r1, #0]
  811eb8:	4348		mul	r0, r1
  811eba:	4997		ldr	r1, =0x83c054	; via 0x812118
  811ebc:	5808		ldr	r0, [r1, r0]
  811ebe:	900a		str	r0, [sp, #40]	; 0x28
  811ec0:	980a		ldr	r0, [sp, #40]	; 0x28
  811ec2:	8801		ldrh	r1, [r0, #0]
  811ec4:	4668		mov	r0, sp
  811ec6:	8800		ldrh	r0, [r0, #0]
  811ec8:	4281		cmp	r1, r0
  811eca:	da08		bge	0x811ede
  811ecc:	980a		ldr	r0, [sp, #40]	; 0x28
  811ece:	3004		add	r0, #4
  811ed0:	900a		str	r0, [sp, #40]	; 0x28
  811ed2:	980a		ldr	r0, [sp, #40]	; 0x28
  811ed4:	8801		ldrh	r1, [r0, #0]
  811ed6:	4668		mov	r0, sp
  811ed8:	8800		ldrh	r0, [r0, #0]
  811eda:	4281		cmp	r1, r0
  811edc:	dbf6		blt	0x811ecc
  811ede:	980a		ldr	r0, [sp, #40]	; 0x28
  811ee0:	8840		ldrh	r0, [r0, #2]
  811ee2:	9009		str	r0, [sp, #36]	; 0x24
  811ee4:	4668		mov	r0, sp
  811ee6:	7880		ldrb	r0, [r0, #2]
  811ee8:	2800		cmp	r0, #0
  811eea:	d026		beq	0x811f3a
  811eec:	488d		ldr	r0, =0x27627	; via 0x812124
  811eee:	990c		ldr	r1, [sp, #48]	; 0x30
  811ef0:	7b09		ldrb	r1, [r1, #12]	; 0xc
  811ef2:	4348		mul	r0, r1
  811ef4:	3008		add	r0, #8
  811ef6:	9008		str	r0, [sp, #32]	; 0x20
  811ef8:	980c		ldr	r0, [sp, #48]	; 0x30
  811efa:	6880		ldr	r0, [r0, #8]
  811efc:	0081		lsl	r1, r0, #2
  811efe:	1841		add	r1, r0, r1
  811f00:	4668		mov	r0, sp
  811f02:	8800		ldrh	r0, [r0, #0]
  811f04:	1841		add	r1, r0, r1
  811f06:	980c		ldr	r0, [sp, #48]	; 0x30
  811f08:	6800		ldr	r0, [r0, #0]
  811f0a:	1a08		sub	r0, r1, r0
  811f0c:	9007		str	r0, [sp, #28]	; 0x1c
  811f0e:	9807		ldr	r0, [sp, #28]	; 0x1c
  811f10:	990c		ldr	r1, [sp, #48]	; 0x30
  811f12:	7b09		ldrb	r1, [r1, #12]	; 0xc
  811f14:	4348		mul	r0, r1
  811f16:	4669		mov	r1, sp
  811f18:	8088		strh	r0, [r1, #4]
  811f1a:	4668		mov	r0, sp
  811f1c:	8880		ldrh	r0, [r0, #4]
  811f1e:	0540		lsl	r0, r0, #21
  811f20:	9006		str	r0, [sp, #24]	; 0x18
  811f22:	9808		ldr	r0, [sp, #32]	; 0x20
  811f24:	9907		ldr	r1, [sp, #28]	; 0x1c
  811f26:	4348		mul	r0, r1
  811f28:	9005		str	r0, [sp, #20]	; 0x14
  811f2a:	2014		mov	r0, #20	; 0x14
  811f2c:	497b		ldr	r1, =0x83c0a1	; via 0x81211c
  811f2e:	7809		ldrb	r1, [r1, #0]
  811f30:	4348		mul	r0, r1
  811f32:	497d		ldr	r1, =0x83c058	; via 0x812128
  811f34:	5808		ldr	r0, [r1, r0]
  811f36:	900b		str	r0, [sp, #44]	; 0x2c
  811f38:	e024		b	0x811f84
  811f3a:	487c		ldr	r0, =0x2762f	; via 0x81212c
  811f3c:	9008		str	r0, [sp, #32]	; 0x20
  811f3e:	980c		ldr	r0, [sp, #48]	; 0x30
  811f40:	6900		ldr	r0, [r0, #16]	; 0x10
  811f42:	0081		lsl	r1, r0, #2
  811f44:	1840		add	r0, r0, r1
  811f46:	4669		mov	r1, sp
  811f48:	8809		ldrh	r1, [r1, #0]
  811f4a:	1809		add	r1, r1, r0
  811f4c:	980c		ldr	r0, [sp, #48]	; 0x30
  811f4e:	6800		ldr	r0, [r0, #0]
  811f50:	1a08		sub	r0, r1, r0
  811f52:	9007		str	r0, [sp, #28]	; 0x1c
  811f54:	2114		mov	r1, #20	; 0x14
  811f56:	980c		ldr	r0, [sp, #48]	; 0x30
  811f58:	5609		ldrsb	r1, [r1, r0]
  811f5a:	9809		ldr	r0, [sp, #36]	; 0x24
  811f5c:	4348		mul	r0, r1
  811f5e:	9907		ldr	r1, [sp, #28]	; 0x1c
  811f60:	1841		add	r1, r0, r1
  811f62:	4668		mov	r0, sp
  811f64:	8081		strh	r1, [r0, #4]
  811f66:	8880		ldrh	r0, [r0, #4]
  811f68:	0540		lsl	r0, r0, #21
  811f6a:	9006		str	r0, [sp, #24]	; 0x18
  811f6c:	2114		mov	r1, #20	; 0x14
  811f6e:	980c		ldr	r0, [sp, #48]	; 0x30
  811f70:	5609		ldrsb	r1, [r1, r0]
  811f72:	9809		ldr	r0, [sp, #36]	; 0x24
  811f74:	4348		mul	r0, r1
  811f76:	9907		ldr	r1, [sp, #28]	; 0x1c
  811f78:	1841		add	r1, r0, r1
  811f7a:	9808		ldr	r0, [sp, #32]	; 0x20
  811f7c:	4348		mul	r0, r1
  811f7e:	9005		str	r0, [sp, #20]	; 0x14
  811f80:	486b		ldr	r0, =0x83bea8	; via 0x812130
  811f82:	900b		str	r0, [sp, #44]	; 0x2c
  811f84:	980b		ldr	r0, [sp, #44]	; 0x2c
  811f86:	8801		ldrh	r1, [r0, #0]
  811f88:	4668		mov	r0, sp
  811f8a:	8880		ldrh	r0, [r0, #4]
  811f8c:	4281		cmp	r1, r0
  811f8e:	da08		bge	0x811fa2
  811f90:	980b		ldr	r0, [sp, #44]	; 0x2c
  811f92:	3004		add	r0, #4
  811f94:	900b		str	r0, [sp, #44]	; 0x2c
  811f96:	980b		ldr	r0, [sp, #44]	; 0x2c
  811f98:	8801		ldrh	r1, [r0, #0]
  811f9a:	4668		mov	r0, sp
  811f9c:	8880		ldrh	r0, [r0, #4]
  811f9e:	4281		cmp	r1, r0
  811fa0:	dbf6		blt	0x811f90
  811fa2:	4964		ldr	r1, =0x83be2c	; via 0x812134
  811fa4:	980b		ldr	r0, [sp, #44]	; 0x2c
  811fa6:	7880		ldrb	r0, [r0, #2]
  811fa8:	0740		lsl	r0, r0, #29
  811faa:	0f40		lsr	r0, r0, #29
  811fac:	0140		lsl	r0, r0, #5
  811fae:	7008		strb	r0, [r1, #0]
  811fb0:	9805		ldr	r0, [sp, #20]	; 0x14
  811fb2:	2110		mov	r1, #16	; 0x10
  811fb4:	f001 fe92	bl	0x813cdc	; U$DIV
  811fb8:	0d48		lsr	r0, r1, #21
  811fba:	9002		str	r0, [sp, #8]
  811fbc:	9905		ldr	r1, [sp, #20]	; 0x14
  811fbe:	9802		ldr	r0, [sp, #8]
  811fc0:	0640		lsl	r0, r0, #25
  811fc2:	1a08		sub	r0, r1, r0
  811fc4:	0d40		lsr	r0, r0, #21
  811fc6:	9003		str	r0, [sp, #12]	; 0xc
  811fc8:	9903		ldr	r1, [sp, #12]	; 0xc
  811fca:	9802		ldr	r0, [sp, #8]
  811fcc:	0100		lsl	r0, r0, #4
  811fce:	1809		add	r1, r1, r0
  811fd0:	200d		mov	r0, #13	; 0xd
  811fd2:	0540		lsl	r0, r0, #21
  811fd4:	4348		mul	r0, r1
  811fd6:	9906		ldr	r1, [sp, #24]	; 0x18
  811fd8:	1a08		sub	r0, r1, r0
  811fda:	0d40		lsr	r0, r0, #21
  811fdc:	9004		str	r0, [sp, #16]	; 0x10
  811fde:	9803		ldr	r0, [sp, #12]	; 0xc
  811fe0:	0700		lsl	r0, r0, #28
  811fe2:	0f00		lsr	r0, r0, #28
  811fe4:	0300		lsl	r0, r0, #12
  811fe6:	9902		ldr	r1, [sp, #8]
  811fe8:	0649		lsl	r1, r1, #25
  811fea:	0e49		lsr	r1, r1, #25
  811fec:	0409		lsl	r1, r1, #16
  811fee:	4308		orr	r0, r1
  811ff0:	9904		ldr	r1, [sp, #16]	; 0x10
  811ff2:	0709		lsl	r1, r1, #28
  811ff4:	0f09		lsr	r1, r1, #28
  811ff6:	0209		lsl	r1, r1, #8
  811ff8:	4308		orr	r0, r1
  811ffa:	b00d		add	sp, #52	; 0x34
  811ffc:	bd00		pop	{pc}

$Convert_l1_radio_freq:
  811ffe:	b081		sub	sp, #4
  812000:	4669		mov	r1, sp
  812002:	8008		strh	r0, [r1, #0]
  812004:	e06c		b	0x8120e0
  812006:	4668		mov	r0, sp
  812008:	8800		ldrh	r0, [r0, #0]
  81200a:	e083		b	0x812114
  81200c:	4668		mov	r0, sp
  81200e:	8801		ldrh	r1, [r0, #0]
  812010:	4849		ldr	r0, =0x83cdc0	; via 0x812138
  812012:	6800		ldr	r0, [r0, #0]
  812014:	4281		cmp	r1, r0
  812016:	d202		bcs	0x81201e
  812018:	4668		mov	r0, sp
  81201a:	8800		ldrh	r0, [r0, #0]
  81201c:	e07a		b	0x812114
  81201e:	4668		mov	r0, sp
  812020:	8800		ldrh	r0, [r0, #0]
  812022:	4945		ldr	r1, =0x83cdc0	; via 0x812138
  812024:	6809		ldr	r1, [r1, #0]
  812026:	1a41		sub	r1, r0, r1
  812028:	2001		mov	r0, #1
  81202a:	0240		lsl	r0, r0, #9
  81202c:	1840		add	r0, r0, r1
  81202e:	0400		lsl	r0, r0, #16
  812030:	0c00		lsr	r0, r0, #16
  812032:	e06f		b	0x812114
  812034:	4668		mov	r0, sp
  812036:	8801		ldrh	r1, [r0, #0]
  812038:	483f		ldr	r0, =0x83cdc0	; via 0x812138
  81203a:	6800		ldr	r0, [r0, #0]
  81203c:	4281		cmp	r1, r0
  81203e:	d213		bcs	0x812068
  812040:	4668		mov	r0, sp
  812042:	8800		ldrh	r0, [r0, #0]
  812044:	287c		cmp	r0, #124	; 0x7c
  812046:	dc02		bgt	0x81204e
  812048:	4668		mov	r0, sp
  81204a:	8800		ldrh	r0, [r0, #0]
  81204c:	e062		b	0x812114
  81204e:	4668		mov	r0, sp
  812050:	8800		ldrh	r0, [r0, #0]
  812052:	28ae		cmp	r0, #174	; 0xae
  812054:	da06		bge	0x812064
  812056:	4939		ldr	r1, =0x352	; via 0x81213c
  812058:	4668		mov	r0, sp
  81205a:	8800		ldrh	r0, [r0, #0]
  81205c:	1808		add	r0, r1, r0
  81205e:	0400		lsl	r0, r0, #16
  812060:	0c00		lsr	r0, r0, #16
  812062:	e057		b	0x812114
  812064:	2000		mov	r0, #0
  812066:	e055		b	0x812114
  812068:	4668		mov	r0, sp
  81206a:	8801		ldrh	r1, [r0, #0]
  81206c:	4832		ldr	r0, =0x83cdc0	; via 0x812138
  81206e:	6800		ldr	r0, [r0, #0]
  812070:	1a09		sub	r1, r1, r0
  812072:	2001		mov	r0, #1
  812074:	0240		lsl	r0, r0, #9
  812076:	1840		add	r0, r0, r1
  812078:	0400		lsl	r0, r0, #16
  81207a:	0c00		lsr	r0, r0, #16
  81207c:	e04a		b	0x812114
  81207e:	4668		mov	r0, sp
  812080:	8800		ldrh	r0, [r0, #0]
  812082:	287c		cmp	r0, #124	; 0x7c
  812084:	dc02		bgt	0x81208c
  812086:	4668		mov	r0, sp
  812088:	8800		ldrh	r0, [r0, #0]
  81208a:	e043		b	0x812114
  81208c:	4668		mov	r0, sp
  81208e:	8800		ldrh	r0, [r0, #0]
  812090:	28ae		cmp	r0, #174	; 0xae
  812092:	da06		bge	0x8120a2
  812094:	4929		ldr	r1, =0x352	; via 0x81213c
  812096:	4668		mov	r0, sp
  812098:	8800		ldrh	r0, [r0, #0]
  81209a:	1808		add	r0, r1, r0
  81209c:	0400		lsl	r0, r0, #16
  81209e:	0c00		lsr	r0, r0, #16
  8120a0:	e038		b	0x812114
  8120a2:	2000		mov	r0, #0
  8120a4:	e036		b	0x812114
  8120a6:	4668		mov	r0, sp
  8120a8:	8800		ldrh	r0, [r0, #0]
  8120aa:	4923		ldr	r1, =0x83cdc0	; via 0x812138
  8120ac:	6809		ldr	r1, [r1, #0]
  8120ae:	4288		cmp	r0, r1
  8120b0:	d208		bcs	0x8120c4
  8120b2:	4668		mov	r0, sp
  8120b4:	8801		ldrh	r1, [r0, #0]
  8120b6:	4822		ldr	r0, =0x83cdbc	; via 0x812140
  8120b8:	6800		ldr	r0, [r0, #0]
  8120ba:	1a08		sub	r0, r1, r0
  8120bc:	3080		add	r0, #128	; 0x80
  8120be:	0400		lsl	r0, r0, #16
  8120c0:	0c00		lsr	r0, r0, #16
  8120c2:	e027		b	0x812114
  8120c4:	4668		mov	r0, sp
  8120c6:	8801		ldrh	r1, [r0, #0]
  8120c8:	481b		ldr	r0, =0x83cdc0	; via 0x812138
  8120ca:	6800		ldr	r0, [r0, #0]
  8120cc:	1a08		sub	r0, r1, r0
  8120ce:	2101		mov	r1, #1
  8120d0:	0249		lsl	r1, r1, #9
  8120d2:	1808		add	r0, r1, r0
  8120d4:	0400		lsl	r0, r0, #16
  8120d6:	0c00		lsr	r0, r0, #16
  8120d8:	e01c		b	0x812114
  8120da:	4668		mov	r0, sp
  8120dc:	8800		ldrh	r0, [r0, #0]
  8120de:	e019		b	0x812114
  8120e0:	4818		ldr	r0, =0x83cdb4	; via 0x812144
  8120e2:	7800		ldrb	r0, [r0, #0]
  8120e4:	1e40		sub	r0, r0, #1
  8120e6:	2807		cmp	r0, #7
  8120e8:	d8f7		bhi	0x8120da
  8120ea:	a102		add	r1, pc, #8
  8120ec:	0080		lsl	r0, r0, #2
  8120ee:	5808		ldr	r0, [r1, r0]
  8120f0:	4687		mov	pc, r0
  8120f2:	46c0		nop			(mov r8, r8)

  8120f4:	00812006
  8120f8:	0081207e
  8120fc:	00812006
  812100:	00812006
  812104:	0081200c
  812108:	00812034
  81210c:	00812006
  812110:	008120a6

  812114:	b001		add	sp, #4
  812116:	4770		bx	lr

$rf_init:
  812148:	b500		push	{lr}
  81214a:	b081		sub	sp, #4
  81214c:	9000		str	r0, [sp, #0]
  81214e:	49fb		ldr	r1, =0x1388	; via 0x81253c
  812150:	9800		ldr	r0, [sp, #0]
  812152:	1808		add	r0, r1, r0
  812154:	f002 fc02	bl	0x81495c
  812158:	2101		mov	r1, #1
  81215a:	034a		lsl	r2, r1, #13
  81215c:	4302		orr	r2, r0
  81215e:	49f8		ldr	r1, =0x83c0a4	; via 0x812540
  812160:	6808		ldr	r0, [r1, #0]
  812162:	1c83		add	r3, r0, #2
  812164:	600b		str	r3, [r1, #0]
  812166:	8002		strh	r2, [r0, #0]
  812168:	48f5		ldr	r0, =0x83c0a4	; via 0x812540
  81216a:	6801		ldr	r1, [r0, #0]
  81216c:	1c8a		add	r2, r1, #2
  81216e:	6002		str	r2, [r0, #0]
  812170:	48f4		ldr	r0, =0x88e0	; via 0x812544
  812172:	8008		strh	r0, [r1, #0]
  812174:	49f2		ldr	r1, =0x83c0a4	; via 0x812540
  812176:	6808		ldr	r0, [r1, #0]
  812178:	1c82		add	r2, r0, #2
  81217a:	600a		str	r2, [r1, #0]
  81217c:	49f2		ldr	r1, =0x8026	; via 0x812548
  81217e:	8001		strh	r1, [r0, #0]
  812180:	49ef		ldr	r1, =0x83c0a4	; via 0x812540
  812182:	6808		ldr	r0, [r1, #0]
  812184:	1c82		add	r2, r0, #2
  812186:	600a		str	r2, [r1, #0]
  812188:	49f0		ldr	r1, =0x8006	; via 0x81254c
  81218a:	8001		strh	r1, [r0, #0]
  81218c:	49ec		ldr	r1, =0x83c0a4	; via 0x812540
  81218e:	6808		ldr	r0, [r1, #0]
  812190:	1c82		add	r2, r0, #2
  812192:	600a		str	r2, [r1, #0]
  812194:	49ec		ldr	r1, =0x8026	; via 0x812548
  812196:	8001		strh	r1, [r0, #0]
  812198:	9800		ldr	r0, [sp, #0]
  81219a:	3008		add	r0, #8
  81219c:	9000		str	r0, [sp, #0]
  81219e:	49e7		ldr	r1, =0x1388	; via 0x81253c
  8121a0:	9800		ldr	r0, [sp, #0]
  8121a2:	1808		add	r0, r1, r0
  8121a4:	f002 fbda	bl	0x81495c
  8121a8:	2101		mov	r1, #1
  8121aa:	034a		lsl	r2, r1, #13
  8121ac:	4302		orr	r2, r0
  8121ae:	49e4		ldr	r1, =0x83c0a4	; via 0x812540
  8121b0:	6808		ldr	r0, [r1, #0]
  8121b2:	1c83		add	r3, r0, #2
  8121b4:	600b		str	r3, [r1, #0]
  8121b6:	8002		strh	r2, [r0, #0]
  8121b8:	49e5		ldr	r1, =0x83c09c	; via 0x812550
  8121ba:	48e6		ldr	r0, =0x8008	; via 0x812554
  8121bc:	6008		str	r0, [r1, #0]
  8121be:	48e0		ldr	r0, =0x83c0a4	; via 0x812540
  8121c0:	6801		ldr	r1, [r0, #0]
  8121c2:	1c8a		add	r2, r1, #2
  8121c4:	6002		str	r2, [r0, #0]
  8121c6:	48e4		ldr	r0, =0x8004	; via 0x812558
  8121c8:	4ae1		ldr	r2, =0x83c09c	; via 0x812550
  8121ca:	6812		ldr	r2, [r2, #0]
  8121cc:	0a12		lsr	r2, r2, #8
  8121ce:	0612		lsl	r2, r2, #24
  8121d0:	0e12		lsr	r2, r2, #24
  8121d2:	0152		lsl	r2, r2, #5
  8121d4:	4310		orr	r0, r2
  8121d6:	8008		strh	r0, [r1, #0]
  8121d8:	48d9		ldr	r0, =0x83c0a4	; via 0x812540
  8121da:	6801		ldr	r1, [r0, #0]
  8121dc:	1c8a		add	r2, r1, #2
  8121de:	6002		str	r2, [r0, #0]
  8121e0:	48de		ldr	r0, =0x8003	; via 0x81255c
  8121e2:	4adb		ldr	r2, =0x83c09c	; via 0x812550
  8121e4:	6812		ldr	r2, [r2, #0]
  8121e6:	0612		lsl	r2, r2, #24
  8121e8:	0e12		lsr	r2, r2, #24
  8121ea:	0152		lsl	r2, r2, #5
  8121ec:	4310		orr	r0, r2
  8121ee:	8008		strh	r0, [r1, #0]
  8121f0:	49d3		ldr	r1, =0x83c0a4	; via 0x812540
  8121f2:	6808		ldr	r0, [r1, #0]
  8121f4:	1c82		add	r2, r0, #2
  8121f6:	600a		str	r2, [r1, #0]
  8121f8:	49d9		ldr	r1, =0x89e0	; via 0x812560
  8121fa:	8001		strh	r1, [r0, #0]
  8121fc:	49d0		ldr	r1, =0x83c0a4	; via 0x812540
  8121fe:	6808		ldr	r0, [r1, #0]
  812200:	1c82		add	r2, r0, #2
  812202:	600a		str	r2, [r1, #0]
  812204:	49d7		ldr	r1, =0x8041	; via 0x812564
  812206:	8001		strh	r1, [r0, #0]
  812208:	48cd		ldr	r0, =0x83c0a4	; via 0x812540
  81220a:	6801		ldr	r1, [r0, #0]
  81220c:	1c8a		add	r2, r1, #2
  81220e:	6002		str	r2, [r0, #0]
  812210:	48d5		ldr	r0, =0x83e6	; via 0x812568
  812212:	8008		strh	r0, [r1, #0]
  812214:	9800		ldr	r0, [sp, #0]
  812216:	3007		add	r0, #7
  812218:	9000		str	r0, [sp, #0]
  81221a:	49c8		ldr	r1, =0x1388	; via 0x81253c
  81221c:	9800		ldr	r0, [sp, #0]
  81221e:	1808		add	r0, r1, r0
  812220:	f002 fb9c	bl	0x81495c
  812224:	2101		mov	r1, #1
  812226:	034a		lsl	r2, r1, #13
  812228:	4302		orr	r2, r0
  81222a:	49c5		ldr	r1, =0x83c0a4	; via 0x812540
  81222c:	6808		ldr	r0, [r1, #0]
  81222e:	1c83		add	r3, r0, #2
  812230:	600b		str	r3, [r1, #0]
  812232:	8002		strh	r2, [r0, #0]
  812234:	49c1		ldr	r1, =0x1388	; via 0x81253c
  812236:	9800		ldr	r0, [sp, #0]
  812238:	1808		add	r0, r1, r0
  81223a:	f002 fb8f	bl	0x81495c
  81223e:	2101		mov	r1, #1
  812240:	034a		lsl	r2, r1, #13
  812242:	4302		orr	r2, r0
  812244:	48be		ldr	r0, =0x83c0a4	; via 0x812540
  812246:	6801		ldr	r1, [r0, #0]
  812248:	1c8b		add	r3, r1, #2
  81224a:	6003		str	r3, [r0, #0]
  81224c:	800a		strh	r2, [r1, #0]
  81224e:	49bb		ldr	r1, =0x1388	; via 0x81253c
  812250:	9800		ldr	r0, [sp, #0]
  812252:	1808		add	r0, r1, r0
  812254:	f002 fb82	bl	0x81495c
  812258:	2101		mov	r1, #1
  81225a:	034a		lsl	r2, r1, #13
  81225c:	4302		orr	r2, r0
  81225e:	48b8		ldr	r0, =0x83c0a4	; via 0x812540
  812260:	6801		ldr	r1, [r0, #0]
  812262:	1c8b		add	r3, r1, #2
  812264:	6003		str	r3, [r0, #0]
  812266:	800a		strh	r2, [r1, #0]
  812268:	49b4		ldr	r1, =0x1388	; via 0x81253c
  81226a:	9800		ldr	r0, [sp, #0]
  81226c:	1808		add	r0, r1, r0
  81226e:	f002 fb75	bl	0x81495c
  812272:	2101		mov	r1, #1
  812274:	034a		lsl	r2, r1, #13
  812276:	4302		orr	r2, r0
  812278:	48b1		ldr	r0, =0x83c0a4	; via 0x812540
  81227a:	6801		ldr	r1, [r0, #0]
  81227c:	1c8b		add	r3, r1, #2
  81227e:	6003		str	r3, [r0, #0]
  812280:	800a		strh	r2, [r1, #0]
  812282:	49ae		ldr	r1, =0x1388	; via 0x81253c
  812284:	9800		ldr	r0, [sp, #0]
  812286:	1808		add	r0, r1, r0
  812288:	f002 fb68	bl	0x81495c
  81228c:	2101		mov	r1, #1
  81228e:	034a		lsl	r2, r1, #13
  812290:	4302		orr	r2, r0
  812292:	48ab		ldr	r0, =0x83c0a4	; via 0x812540
  812294:	6801		ldr	r1, [r0, #0]
  812296:	1c8b		add	r3, r1, #2
  812298:	6003		str	r3, [r0, #0]
  81229a:	800a		strh	r2, [r1, #0]
  81229c:	49a7		ldr	r1, =0x1388	; via 0x81253c
  81229e:	9800		ldr	r0, [sp, #0]
  8122a0:	1808		add	r0, r1, r0
  8122a2:	f002 fb5b	bl	0x81495c
  8122a6:	2101		mov	r1, #1
  8122a8:	034a		lsl	r2, r1, #13
  8122aa:	4302		orr	r2, r0
  8122ac:	48a4		ldr	r0, =0x83c0a4	; via 0x812540
  8122ae:	6801		ldr	r1, [r0, #0]
  8122b0:	1c8b		add	r3, r1, #2
  8122b2:	6003		str	r3, [r0, #0]
  8122b4:	800a		strh	r2, [r1, #0]
  8122b6:	49a2		ldr	r1, =0x83c0a4	; via 0x812540
  8122b8:	6808		ldr	r0, [r1, #0]
  8122ba:	1c82		add	r2, r0, #2
  8122bc:	600a		str	r2, [r1, #0]
  8122be:	49aa		ldr	r1, =0x83e6	; via 0x812568
  8122c0:	8001		strh	r1, [r0, #0]
  8122c2:	489f		ldr	r0, =0x83c0a4	; via 0x812540
  8122c4:	6801		ldr	r1, [r0, #0]
  8122c6:	1c8a		add	r2, r1, #2
  8122c8:	6002		str	r2, [r0, #0]
  8122ca:	48a8		ldr	r0, =0x83c6	; via 0x81256c
  8122cc:	8008		strh	r0, [r1, #0]
  8122ce:	489c		ldr	r0, =0x83c0a4	; via 0x812540
  8122d0:	6801		ldr	r1, [r0, #0]
  8122d2:	1c8a		add	r2, r1, #2
  8122d4:	6002		str	r2, [r0, #0]
  8122d6:	48a4		ldr	r0, =0x83e6	; via 0x812568
  8122d8:	8008		strh	r0, [r1, #0]
  8122da:	499d		ldr	r1, =0x83c09c	; via 0x812550
  8122dc:	48a4		ldr	r0, =0x8018	; via 0x812570
  8122de:	6008		str	r0, [r1, #0]
  8122e0:	4897		ldr	r0, =0x83c0a4	; via 0x812540
  8122e2:	6801		ldr	r1, [r0, #0]
  8122e4:	1c8a		add	r2, r1, #2
  8122e6:	6002		str	r2, [r0, #0]
  8122e8:	489b		ldr	r0, =0x8004	; via 0x812558
  8122ea:	4a99		ldr	r2, =0x83c09c	; via 0x812550
  8122ec:	6812		ldr	r2, [r2, #0]
  8122ee:	0a12		lsr	r2, r2, #8
  8122f0:	0612		lsl	r2, r2, #24
  8122f2:	0e12		lsr	r2, r2, #24
  8122f4:	0152		lsl	r2, r2, #5
  8122f6:	4310		orr	r0, r2
  8122f8:	8008		strh	r0, [r1, #0]
  8122fa:	4891		ldr	r0, =0x83c0a4	; via 0x812540
  8122fc:	6801		ldr	r1, [r0, #0]
  8122fe:	1c8a		add	r2, r1, #2
  812300:	6002		str	r2, [r0, #0]
  812302:	4896		ldr	r0, =0x8003	; via 0x81255c
  812304:	4a92		ldr	r2, =0x83c09c	; via 0x812550
  812306:	6812		ldr	r2, [r2, #0]
  812308:	0612		lsl	r2, r2, #24
  81230a:	0e12		lsr	r2, r2, #24
  81230c:	0152		lsl	r2, r2, #5
  81230e:	4310		orr	r0, r2
  812310:	8008		strh	r0, [r1, #0]
  812312:	498b		ldr	r1, =0x83c0a4	; via 0x812540
  812314:	6808		ldr	r0, [r1, #0]
  812316:	1c82		add	r2, r0, #2
  812318:	600a		str	r2, [r1, #0]
  81231a:	4991		ldr	r1, =0x89e0	; via 0x812560
  81231c:	8001		strh	r1, [r0, #0]
  81231e:	4888		ldr	r0, =0x83c0a4	; via 0x812540
  812320:	6801		ldr	r1, [r0, #0]
  812322:	1c8a		add	r2, r1, #2
  812324:	6002		str	r2, [r0, #0]
  812326:	488f		ldr	r0, =0x8041	; via 0x812564
  812328:	8008		strh	r0, [r1, #0]
  81232a:	9800		ldr	r0, [sp, #0]
  81232c:	3009		add	r0, #9
  81232e:	9000		str	r0, [sp, #0]
  812330:	4982		ldr	r1, =0x1388	; via 0x81253c
  812332:	9800		ldr	r0, [sp, #0]
  812334:	1808		add	r0, r1, r0
  812336:	f002 fb11	bl	0x81495c
  81233a:	2101		mov	r1, #1
  81233c:	034a		lsl	r2, r1, #13
  81233e:	4302		orr	r2, r0
  812340:	497f		ldr	r1, =0x83c0a4	; via 0x812540
  812342:	6808		ldr	r0, [r1, #0]
  812344:	1c83		add	r3, r0, #2
  812346:	600b		str	r3, [r1, #0]
  812348:	8002		strh	r2, [r0, #0]
  81234a:	4981		ldr	r1, =0x83c09c	; via 0x812550
  81234c:	4889		ldr	r0, =0x140753	; via 0x812574
  81234e:	6008		str	r0, [r1, #0]
  812350:	487b		ldr	r0, =0x83c0a4	; via 0x812540
  812352:	6801		ldr	r1, [r0, #0]
  812354:	1c8a		add	r2, r1, #2
  812356:	6002		str	r2, [r0, #0]
  812358:	487f		ldr	r0, =0x8004	; via 0x812558
  81235a:	4a7d		ldr	r2, =0x83c09c	; via 0x812550
  81235c:	6812		ldr	r2, [r2, #0]
  81235e:	0c12		lsr	r2, r2, #16
  812360:	0612		lsl	r2, r2, #24
  812362:	0e12		lsr	r2, r2, #24
  812364:	0152		lsl	r2, r2, #5
  812366:	4310		orr	r0, r2
  812368:	8008		strh	r0, [r1, #0]
  81236a:	4875		ldr	r0, =0x83c0a4	; via 0x812540
  81236c:	6801		ldr	r1, [r0, #0]
  81236e:	1c8a		add	r2, r1, #2
  812370:	6002		str	r2, [r0, #0]
  812372:	487a		ldr	r0, =0x8003	; via 0x81255c
  812374:	4a76		ldr	r2, =0x83c09c	; via 0x812550
  812376:	6812		ldr	r2, [r2, #0]
  812378:	0a12		lsr	r2, r2, #8
  81237a:	0612		lsl	r2, r2, #24
  81237c:	0e12		lsr	r2, r2, #24
  81237e:	0152		lsl	r2, r2, #5
  812380:	4310		orr	r0, r2
  812382:	8008		strh	r0, [r1, #0]
  812384:	486e		ldr	r0, =0x83c0a4	; via 0x812540
  812386:	6801		ldr	r1, [r0, #0]
  812388:	1c8a		add	r2, r1, #2
  81238a:	6002		str	r2, [r0, #0]
  81238c:	48e5		ldr	r0, =0x8002	; via 0x812724
  81238e:	4a70		ldr	r2, =0x83c09c	; via 0x812550
  812390:	6812		ldr	r2, [r2, #0]
  812392:	0612		lsl	r2, r2, #24
  812394:	0e12		lsr	r2, r2, #24
  812396:	0152		lsl	r2, r2, #5
  812398:	4310		orr	r0, r2
  81239a:	8008		strh	r0, [r1, #0]
  81239c:	4968		ldr	r1, =0x83c0a4	; via 0x812540
  81239e:	6808		ldr	r0, [r1, #0]
  8123a0:	1c82		add	r2, r0, #2
  8123a2:	600a		str	r2, [r1, #0]
  8123a4:	49e0		ldr	r1, =0x8ae0	; via 0x812728
  8123a6:	8001		strh	r1, [r0, #0]
  8123a8:	4865		ldr	r0, =0x83c0a4	; via 0x812540
  8123aa:	6801		ldr	r1, [r0, #0]
  8123ac:	1c8a		add	r2, r1, #2
  8123ae:	6002		str	r2, [r0, #0]
  8123b0:	486c		ldr	r0, =0x8041	; via 0x812564
  8123b2:	8008		strh	r0, [r1, #0]
  8123b4:	9800		ldr	r0, [sp, #0]
  8123b6:	3008		add	r0, #8
  8123b8:	9000		str	r0, [sp, #0]
  8123ba:	4960		ldr	r1, =0x1388	; via 0x81253c
  8123bc:	9800		ldr	r0, [sp, #0]
  8123be:	1808		add	r0, r1, r0
  8123c0:	f002 facc	bl	0x81495c
  8123c4:	2101		mov	r1, #1
  8123c6:	034a		lsl	r2, r1, #13
  8123c8:	4302		orr	r2, r0
  8123ca:	495d		ldr	r1, =0x83c0a4	; via 0x812540
  8123cc:	6808		ldr	r0, [r1, #0]
  8123ce:	1c83		add	r3, r0, #2
  8123d0:	600b		str	r3, [r1, #0]
  8123d2:	8002		strh	r2, [r0, #0]
  8123d4:	495e		ldr	r1, =0x83c09c	; via 0x812550
  8123d6:	4868		ldr	r0, =0x2db084	; via 0x812578
  8123d8:	6008		str	r0, [r1, #0]
  8123da:	4859		ldr	r0, =0x83c0a4	; via 0x812540
  8123dc:	6801		ldr	r1, [r0, #0]
  8123de:	1c8a		add	r2, r1, #2
  8123e0:	6002		str	r2, [r0, #0]
  8123e2:	485d		ldr	r0, =0x8004	; via 0x812558
  8123e4:	4a5a		ldr	r2, =0x83c09c	; via 0x812550
  8123e6:	6812		ldr	r2, [r2, #0]
  8123e8:	0c12		lsr	r2, r2, #16
  8123ea:	0612		lsl	r2, r2, #24
  8123ec:	0e12		lsr	r2, r2, #24
  8123ee:	0152		lsl	r2, r2, #5
  8123f0:	4310		orr	r0, r2
  8123f2:	8008		strh	r0, [r1, #0]
  8123f4:	4852		ldr	r0, =0x83c0a4	; via 0x812540
  8123f6:	6801		ldr	r1, [r0, #0]
  8123f8:	1c8a		add	r2, r1, #2
  8123fa:	6002		str	r2, [r0, #0]
  8123fc:	4857		ldr	r0, =0x8003	; via 0x81255c
  8123fe:	4a54		ldr	r2, =0x83c09c	; via 0x812550
  812400:	6812		ldr	r2, [r2, #0]
  812402:	0a12		lsr	r2, r2, #8
  812404:	0612		lsl	r2, r2, #24
  812406:	0e12		lsr	r2, r2, #24
  812408:	0152		lsl	r2, r2, #5
  81240a:	4310		orr	r0, r2
  81240c:	8008		strh	r0, [r1, #0]
  81240e:	484c		ldr	r0, =0x83c0a4	; via 0x812540
  812410:	6801		ldr	r1, [r0, #0]
  812412:	1c8a		add	r2, r1, #2
  812414:	6002		str	r2, [r0, #0]
  812416:	48c3		ldr	r0, =0x8002	; via 0x812724
  812418:	4a4d		ldr	r2, =0x83c09c	; via 0x812550
  81241a:	6812		ldr	r2, [r2, #0]
  81241c:	0612		lsl	r2, r2, #24
  81241e:	0e12		lsr	r2, r2, #24
  812420:	0152		lsl	r2, r2, #5
  812422:	4310		orr	r0, r2
  812424:	8008		strh	r0, [r1, #0]
  812426:	4946		ldr	r1, =0x83c0a4	; via 0x812540
  812428:	6808		ldr	r0, [r1, #0]
  81242a:	1c82		add	r2, r0, #2
  81242c:	600a		str	r2, [r1, #0]
  81242e:	49be		ldr	r1, =0x8ae0	; via 0x812728
  812430:	8001		strh	r1, [r0, #0]
  812432:	4843		ldr	r0, =0x83c0a4	; via 0x812540
  812434:	6801		ldr	r1, [r0, #0]
  812436:	1c8a		add	r2, r1, #2
  812438:	6002		str	r2, [r0, #0]
  81243a:	484a		ldr	r0, =0x8041	; via 0x812564
  81243c:	8008		strh	r0, [r1, #0]
  81243e:	9800		ldr	r0, [sp, #0]
  812440:	3008		add	r0, #8
  812442:	9000		str	r0, [sp, #0]
  812444:	493d		ldr	r1, =0x1388	; via 0x81253c
  812446:	9800		ldr	r0, [sp, #0]
  812448:	1808		add	r0, r1, r0
  81244a:	f002 fa87	bl	0x81495c
  81244e:	2101		mov	r1, #1
  812450:	034a		lsl	r2, r1, #13
  812452:	4302		orr	r2, r0
  812454:	493a		ldr	r1, =0x83c0a4	; via 0x812540
  812456:	6808		ldr	r0, [r1, #0]
  812458:	1c83		add	r3, r0, #2
  81245a:	600b		str	r3, [r1, #0]
  81245c:	8002		strh	r2, [r0, #0]
  81245e:	4838		ldr	r0, =0x83c0a4	; via 0x812540
  812460:	6802		ldr	r2, [r0, #0]
  812462:	1c91		add	r1, r2, #2
  812464:	6001		str	r1, [r0, #0]
  812466:	4846		ldr	r0, =0x83be26	; via 0x812580
  812468:	7800		ldrb	r0, [r0, #0]
  81246a:	0100		lsl	r0, r0, #4
  81246c:	4945		ldr	r1, =0x83be25	; via 0x812584
  81246e:	7809		ldrb	r1, [r1, #0]
  812470:	0149		lsl	r1, r1, #5
  812472:	4308		orr	r0, r1
  812474:	2106		mov	r1, #6
  812476:	4301		orr	r1, r0
  812478:	0608		lsl	r0, r1, #24
  81247a:	0e00		lsr	r0, r0, #24
  81247c:	0141		lsl	r1, r0, #5
  81247e:	483f		ldr	r0, =0x8004	; via 0x81257c
  812480:	4308		orr	r0, r1
  812482:	8010		strh	r0, [r2, #0]
  812484:	482e		ldr	r0, =0x83c0a4	; via 0x812540
  812486:	6801		ldr	r1, [r0, #0]
  812488:	1c8a		add	r2, r1, #2
  81248a:	6002		str	r2, [r0, #0]
  81248c:	482d		ldr	r0, =0x88e0	; via 0x812544
  81248e:	8008		strh	r0, [r1, #0]
  812490:	482b		ldr	r0, =0x83c0a4	; via 0x812540
  812492:	6801		ldr	r1, [r0, #0]
  812494:	1c8a		add	r2, r1, #2
  812496:	6002		str	r2, [r0, #0]
  812498:	4832		ldr	r0, =0x8041	; via 0x812564
  81249a:	8008		strh	r0, [r1, #0]
  81249c:	9800		ldr	r0, [sp, #0]
  81249e:	30ff		add	r0, #255	; 0xff
  8124a0:	3081		add	r0, #129	; 0x81
  8124a2:	9000		str	r0, [sp, #0]
  8124a4:	4925		ldr	r1, =0x1388	; via 0x81253c
  8124a6:	9800		ldr	r0, [sp, #0]
  8124a8:	1808		add	r0, r1, r0
  8124aa:	f002 fa57	bl	0x81495c
  8124ae:	2101		mov	r1, #1
  8124b0:	034a		lsl	r2, r1, #13
  8124b2:	4302		orr	r2, r0
  8124b4:	4922		ldr	r1, =0x83c0a4	; via 0x812540
  8124b6:	6808		ldr	r0, [r1, #0]
  8124b8:	1c83		add	r3, r0, #2
  8124ba:	600b		str	r3, [r1, #0]
  8124bc:	8002		strh	r2, [r0, #0]
  8124be:	2007		mov	r0, #7
  8124c0:	4931		ldr	r1, =0x83be24	; via 0x812588
  8124c2:	7809		ldrb	r1, [r1, #0]
  8124c4:	04c9		lsl	r1, r1, #19
  8124c6:	4308		orr	r0, r1
  8124c8:	4921		ldr	r1, =0x83c09c	; via 0x812550
  8124ca:	6008		str	r0, [r1, #0]
  8124cc:	481c		ldr	r0, =0x83c0a4	; via 0x812540
  8124ce:	6801		ldr	r1, [r0, #0]
  8124d0:	1c8a		add	r2, r1, #2
  8124d2:	6002		str	r2, [r0, #0]
  8124d4:	4820		ldr	r0, =0x8004	; via 0x812558
  8124d6:	4a1e		ldr	r2, =0x83c09c	; via 0x812550
  8124d8:	6812		ldr	r2, [r2, #0]
  8124da:	0c12		lsr	r2, r2, #16
  8124dc:	0612		lsl	r2, r2, #24
  8124de:	0e12		lsr	r2, r2, #24
  8124e0:	0152		lsl	r2, r2, #5
  8124e2:	4310		orr	r0, r2
  8124e4:	8008		strh	r0, [r1, #0]
  8124e6:	4816		ldr	r0, =0x83c0a4	; via 0x812540
  8124e8:	6801		ldr	r1, [r0, #0]
  8124ea:	1c8a		add	r2, r1, #2
  8124ec:	6002		str	r2, [r0, #0]
  8124ee:	481b		ldr	r0, =0x8003	; via 0x81255c
  8124f0:	4a17		ldr	r2, =0x83c09c	; via 0x812550
  8124f2:	6812		ldr	r2, [r2, #0]
  8124f4:	0a12		lsr	r2, r2, #8
  8124f6:	0612		lsl	r2, r2, #24
  8124f8:	0e12		lsr	r2, r2, #24
  8124fa:	0152		lsl	r2, r2, #5
  8124fc:	4310		orr	r0, r2
  8124fe:	8008		strh	r0, [r1, #0]
  812500:	480f		ldr	r0, =0x83c0a4	; via 0x812540
  812502:	6801		ldr	r1, [r0, #0]
  812504:	1c8a		add	r2, r1, #2
  812506:	6002		str	r2, [r0, #0]
  812508:	4886		ldr	r0, =0x8002	; via 0x812724
  81250a:	4a11		ldr	r2, =0x83c09c	; via 0x812550
  81250c:	6812		ldr	r2, [r2, #0]
  81250e:	0612		lsl	r2, r2, #24
  812510:	0e12		lsr	r2, r2, #24
  812512:	0152		lsl	r2, r2, #5
  812514:	4310		orr	r0, r2
  812516:	8008		strh	r0, [r1, #0]
  812518:	4909		ldr	r1, =0x83c0a4	; via 0x812540
  81251a:	680a		ldr	r2, [r1, #0]
  81251c:	1c90		add	r0, r2, #2
  81251e:	6008		str	r0, [r1, #0]
  812520:	4881		ldr	r0, =0x8ae0	; via 0x812728
  812522:	8010		strh	r0, [r2, #0]
  812524:	4906		ldr	r1, =0x83c0a4	; via 0x812540
  812526:	6808		ldr	r0, [r1, #0]
  812528:	1c82		add	r2, r0, #2
  81252a:	600a		str	r2, [r1, #0]
  81252c:	490d		ldr	r1, =0x8041	; via 0x812564
  81252e:	8001		strh	r1, [r0, #0]
  812530:	9800		ldr	r0, [sp, #0]
  812532:	3008		add	r0, #8
  812534:	9000		str	r0, [sp, #0]
  812536:	9800		ldr	r0, [sp, #0]
  812538:	b001		add	sp, #4
  81253a:	bd00		pop	{pc}

$rf_program:
  81258c:	b500		push	{lr}
  81258e:	b088		sub	sp, #32	; 0x20
  812590:	9202		str	r2, [sp, #8]
  812592:	466a		mov	r2, sp
  812594:	8091		strh	r1, [r2, #4]
  812596:	9000		str	r0, [sp, #0]
  812598:	4668		mov	r0, sp
  81259a:	8880		ldrh	r0, [r0, #4]
  81259c:	f7f1 fa4c	bl	0x803a38	; $Cust_is_band_high
  8125a0:	49fa		ldr	r1, =0x83c0a0	; via 0x81298c
  8125a2:	7008		strb	r0, [r1, #0]
  8125a4:	4668		mov	r0, sp
  8125a6:	8880		ldrh	r0, [r0, #4]
  8125a8:	f7ff fd29	bl	0x811ffe	; $Convert_l1_radio_freq
  8125ac:	4669		mov	r1, sp
  8125ae:	8388		strh	r0, [r1, #28]	; 0x1c
  8125b0:	4668		mov	r0, sp
  8125b2:	8b80		ldrh	r0, [r0, #28]	; 0x1c
  8125b4:	f000 fa58	bl	0x812a68	; $arfcn_to_rf_index
  8125b8:	49f2		ldr	r1, =0x83c0a1	; via 0x812984
  8125ba:	7008		strb	r0, [r1, #0]
  8125bc:	9802		ldr	r0, [sp, #8]
  8125be:	2801		cmp	r0, #1
  8125c0:	d000		beq	0x8125c4
  8125c2:	e0b3		b	0x81272c
  8125c4:	4668		mov	r0, sp
  8125c6:	8b80		ldrh	r0, [r0, #28]	; 0x1c
  8125c8:	2101		mov	r1, #1
  8125ca:	f7ff fc56	bl	0x811e7a
  8125ce:	9004		str	r0, [sp, #16]	; 0x10
  8125d0:	9904		ldr	r1, [sp, #16]	; 0x10
  8125d2:	48f2		ldr	r0, =0x83be2c	; via 0x81299c
  8125d4:	7800		ldrb	r0, [r0, #0]
  8125d6:	4301		orr	r1, r0
  8125d8:	2002		mov	r0, #2
  8125da:	4308		orr	r0, r1
  8125dc:	49f1		ldr	r1, =0x83c09c	; via 0x8129a4
  8125de:	6008		str	r0, [r1, #0]
  8125e0:	48ef		ldr	r0, =0x83c0a4	; via 0x8129a0
  8125e2:	6801		ldr	r1, [r0, #0]
  8125e4:	1c8a		add	r2, r1, #2
  8125e6:	6002		str	r2, [r0, #0]
  8125e8:	48f0		ldr	r0, =0x8004	; via 0x8129ac
  8125ea:	4aee		ldr	r2, =0x83c09c	; via 0x8129a4
  8125ec:	6812		ldr	r2, [r2, #0]
  8125ee:	0c12		lsr	r2, r2, #16
  8125f0:	0612		lsl	r2, r2, #24
  8125f2:	0e12		lsr	r2, r2, #24
  8125f4:	0152		lsl	r2, r2, #5
  8125f6:	4310		orr	r0, r2
  8125f8:	8008		strh	r0, [r1, #0]
  8125fa:	48e9		ldr	r0, =0x83c0a4	; via 0x8129a0
  8125fc:	6801		ldr	r1, [r0, #0]
  8125fe:	1c8a		add	r2, r1, #2
  812600:	6002		str	r2, [r0, #0]
  812602:	48eb		ldr	r0, =0x8003	; via 0x8129b0
  812604:	4ae7		ldr	r2, =0x83c09c	; via 0x8129a4
  812606:	6812		ldr	r2, [r2, #0]
  812608:	0a12		lsr	r2, r2, #8
  81260a:	0612		lsl	r2, r2, #24
  81260c:	0e12		lsr	r2, r2, #24
  81260e:	0152		lsl	r2, r2, #5
  812610:	4310		orr	r0, r2
  812612:	8008		strh	r0, [r1, #0]
  812614:	48e2		ldr	r0, =0x83c0a4	; via 0x8129a0
  812616:	6801		ldr	r1, [r0, #0]
  812618:	1c8a		add	r2, r1, #2
  81261a:	6002		str	r2, [r0, #0]
  81261c:	4841		ldr	r0, =0x8002	; via 0x812724
  81261e:	4ae1		ldr	r2, =0x83c09c	; via 0x8129a4
  812620:	6812		ldr	r2, [r2, #0]
  812622:	0612		lsl	r2, r2, #24
  812624:	0e12		lsr	r2, r2, #24
  812626:	0152		lsl	r2, r2, #5
  812628:	4310		orr	r0, r2
  81262a:	8008		strh	r0, [r1, #0]
  81262c:	49dc		ldr	r1, =0x83c0a4	; via 0x8129a0
  81262e:	6808		ldr	r0, [r1, #0]
  812630:	1c82		add	r2, r0, #2
  812632:	600a		str	r2, [r1, #0]
  812634:	493c		ldr	r1, =0x8ae0	; via 0x812728
  812636:	8001		strh	r1, [r0, #0]
  812638:	49d9		ldr	r1, =0x83c0a4	; via 0x8129a0
  81263a:	6808		ldr	r0, [r1, #0]
  81263c:	1c82		add	r2, r0, #2
  81263e:	600a		str	r2, [r1, #0]
  812640:	49d9		ldr	r1, =0x8041	; via 0x8129a8
  812642:	8001		strh	r1, [r0, #0]
  812644:	49d6		ldr	r1, =0x83c0a4	; via 0x8129a0
  812646:	6808		ldr	r0, [r1, #0]
  812648:	1c82		add	r2, r0, #2
  81264a:	600a		str	r2, [r1, #0]
  81264c:	49d0		ldr	r1, =0xa001	; via 0x812990
  81264e:	8001		strh	r1, [r0, #0]
  812650:	2014		mov	r0, #20	; 0x14
  812652:	49cc		ldr	r1, =0x83c0a1	; via 0x812984
  812654:	7809		ldrb	r1, [r1, #0]
  812656:	4348		mul	r0, r1
  812658:	49cf		ldr	r1, =0x83c048	; via 0x812998
  81265a:	5a09		ldrh	r1, [r1, r0]
  81265c:	48cd		ldr	r0, =0x8a18	; via 0x812994
  81265e:	4308		orr	r0, r1
  812660:	49d0		ldr	r1, =0x83c09c	; via 0x8129a4
  812662:	6008		str	r0, [r1, #0]
  812664:	48ce		ldr	r0, =0x83c0a4	; via 0x8129a0
  812666:	6801		ldr	r1, [r0, #0]
  812668:	1c8a		add	r2, r1, #2
  81266a:	6002		str	r2, [r0, #0]
  81266c:	48cf		ldr	r0, =0x8004	; via 0x8129ac
  81266e:	4acd		ldr	r2, =0x83c09c	; via 0x8129a4
  812670:	6812		ldr	r2, [r2, #0]
  812672:	0a12		lsr	r2, r2, #8
  812674:	0612		lsl	r2, r2, #24
  812676:	0e12		lsr	r2, r2, #24
  812678:	0152		lsl	r2, r2, #5
  81267a:	4310		orr	r0, r2
  81267c:	8008		strh	r0, [r1, #0]
  81267e:	48c8		ldr	r0, =0x83c0a4	; via 0x8129a0
  812680:	6801		ldr	r1, [r0, #0]
  812682:	1c8a		add	r2, r1, #2
  812684:	6002		str	r2, [r0, #0]
  812686:	48ca		ldr	r0, =0x8003	; via 0x8129b0
  812688:	4ac6		ldr	r2, =0x83c09c	; via 0x8129a4
  81268a:	6812		ldr	r2, [r2, #0]
  81268c:	0612		lsl	r2, r2, #24
  81268e:	0e12		lsr	r2, r2, #24
  812690:	0152		lsl	r2, r2, #5
  812692:	4310		orr	r0, r2
  812694:	8008		strh	r0, [r1, #0]
  812696:	49c2		ldr	r1, =0x83c0a4	; via 0x8129a0
  812698:	6808		ldr	r0, [r1, #0]
  81269a:	1c82		add	r2, r0, #2
  81269c:	600a		str	r2, [r1, #0]
  81269e:	49f1		ldr	r1, =0x89e0	; via 0x812a64
  8126a0:	8001		strh	r1, [r0, #0]
  8126a2:	49bf		ldr	r1, =0x83c0a4	; via 0x8129a0
  8126a4:	6808		ldr	r0, [r1, #0]
  8126a6:	1c82		add	r2, r0, #2
  8126a8:	600a		str	r2, [r1, #0]
  8126aa:	49bf		ldr	r1, =0x8041	; via 0x8129a8
  8126ac:	8001		strh	r1, [r0, #0]
  8126ae:	9804		ldr	r0, [sp, #16]	; 0x10
  8126b0:	49ba		ldr	r1, =0x83be2c	; via 0x81299c
  8126b2:	7809		ldrb	r1, [r1, #0]
  8126b4:	4308		orr	r0, r1
  8126b6:	2102		mov	r1, #2
  8126b8:	4301		orr	r1, r0
  8126ba:	48ba		ldr	r0, =0x83c09c	; via 0x8129a4
  8126bc:	6001		str	r1, [r0, #0]
  8126be:	48b8		ldr	r0, =0x83c0a4	; via 0x8129a0
  8126c0:	6801		ldr	r1, [r0, #0]
  8126c2:	1c8a		add	r2, r1, #2
  8126c4:	6002		str	r2, [r0, #0]
  8126c6:	48b9		ldr	r0, =0x8004	; via 0x8129ac
  8126c8:	4ab6		ldr	r2, =0x83c09c	; via 0x8129a4
  8126ca:	6812		ldr	r2, [r2, #0]
  8126cc:	0c12		lsr	r2, r2, #16
  8126ce:	0612		lsl	r2, r2, #24
  8126d0:	0e12		lsr	r2, r2, #24
  8126d2:	0152		lsl	r2, r2, #5
  8126d4:	4310		orr	r0, r2
  8126d6:	8008		strh	r0, [r1, #0]
  8126d8:	48b1		ldr	r0, =0x83c0a4	; via 0x8129a0
  8126da:	6801		ldr	r1, [r0, #0]
  8126dc:	1c8a		add	r2, r1, #2
  8126de:	6002		str	r2, [r0, #0]
  8126e0:	48b3		ldr	r0, =0x8003	; via 0x8129b0
  8126e2:	4ab0		ldr	r2, =0x83c09c	; via 0x8129a4
  8126e4:	6812		ldr	r2, [r2, #0]
  8126e6:	0a12		lsr	r2, r2, #8
  8126e8:	0612		lsl	r2, r2, #24
  8126ea:	0e12		lsr	r2, r2, #24
  8126ec:	0152		lsl	r2, r2, #5
  8126ee:	4310		orr	r0, r2
  8126f0:	8008		strh	r0, [r1, #0]
  8126f2:	48ab		ldr	r0, =0x83c0a4	; via 0x8129a0
  8126f4:	6802		ldr	r2, [r0, #0]
  8126f6:	1c91		add	r1, r2, #2
  8126f8:	6001		str	r1, [r0, #0]
  8126fa:	480a		ldr	r0, =0x8002	; via 0x812724
  8126fc:	49a9		ldr	r1, =0x83c09c	; via 0x8129a4
  8126fe:	6809		ldr	r1, [r1, #0]
  812700:	0609		lsl	r1, r1, #24
  812702:	0e09		lsr	r1, r1, #24
  812704:	0149		lsl	r1, r1, #5
  812706:	4308		orr	r0, r1
  812708:	8010		strh	r0, [r2, #0]
  81270a:	49a5		ldr	r1, =0x83c0a4	; via 0x8129a0
  81270c:	6808		ldr	r0, [r1, #0]
  81270e:	1c82		add	r2, r0, #2
  812710:	600a		str	r2, [r1, #0]
  812712:	4905		ldr	r1, =0x8ae0	; via 0x812728
  812714:	8001		strh	r1, [r0, #0]
  812716:	48a2		ldr	r0, =0x83c0a4	; via 0x8129a0
  812718:	6802		ldr	r2, [r0, #0]
  81271a:	1c91		add	r1, r2, #2
  81271c:	6001		str	r1, [r0, #0]
  81271e:	48a2		ldr	r0, =0x8041	; via 0x8129a8
  812720:	8010		strh	r0, [r2, #0]
  812722:	e12c		b	0x81297e
  812724:	8002		strh	r2, [r0, #0]
  812726:	0000		lsl	r0, r0, #0
  812728:	8ae0		ldrh	r0, [r4, #22]	; 0x16
  81272a:	0000		lsl	r0, r0, #0
  81272c:	4668		mov	r0, sp
  81272e:	8b80		ldrh	r0, [r0, #28]	; 0x1c
  812730:	2100		mov	r1, #0
  812732:	f7ff fba2	bl	0x811e7a
  812736:	9004		str	r0, [sp, #16]	; 0x10
  812738:	4668		mov	r0, sp
  81273a:	8b80		ldrh	r0, [r0, #28]	; 0x1c
  81273c:	f7ff fb5c	bl	0x811df8
  812740:	9005		str	r0, [sp, #20]	; 0x14
  812742:	4897		ldr	r0, =0x83c0a4	; via 0x8129a0
  812744:	6801		ldr	r1, [r0, #0]
  812746:	1c8a		add	r2, r1, #2
  812748:	6002		str	r2, [r0, #0]
  81274a:	48fa		ldr	r0, =0x9004	; via 0x812b34
  81274c:	8008		strh	r0, [r1, #0]
  81274e:	4894		ldr	r0, =0x83c0a4	; via 0x8129a0
  812750:	6801		ldr	r1, [r0, #0]
  812752:	1c8a		add	r2, r1, #2
  812754:	6002		str	r2, [r0, #0]
  812756:	48f8		ldr	r0, =0x80c0	; via 0x812b38
  812758:	8008		strh	r0, [r1, #0]
  81275a:	4891		ldr	r0, =0x83c0a4	; via 0x8129a0
  81275c:	6801		ldr	r1, [r0, #0]
  81275e:	1c8a		add	r2, r1, #2
  812760:	6002		str	r2, [r0, #0]
  812762:	4891		ldr	r0, =0x8041	; via 0x8129a8
  812764:	8008		strh	r0, [r1, #0]
  812766:	498e		ldr	r1, =0x83c0a4	; via 0x8129a0
  812768:	6808		ldr	r0, [r1, #0]
  81276a:	1c82		add	r2, r0, #2
  81276c:	600a		str	r2, [r1, #0]
  81276e:	49f3		ldr	r1, =0x82e6	; via 0x812b3c
  812770:	8001		strh	r1, [r0, #0]
  812772:	2014		mov	r0, #20	; 0x14
  812774:	4983		ldr	r1, =0x83c0a1	; via 0x812984
  812776:	7809		ldrb	r1, [r1, #0]
  812778:	4348		mul	r0, r1
  81277a:	4987		ldr	r1, =0x83c048	; via 0x812998
  81277c:	5a09		ldrh	r1, [r1, r0]
  81277e:	20a3		mov	r0, #163	; 0xa3
  812780:	00c0		lsl	r0, r0, #3
  812782:	4308		orr	r0, r1
  812784:	4987		ldr	r1, =0x83c09c	; via 0x8129a4
  812786:	6008		str	r0, [r1, #0]
  812788:	4885		ldr	r0, =0x83c0a4	; via 0x8129a0
  81278a:	6801		ldr	r1, [r0, #0]
  81278c:	1c8a		add	r2, r1, #2
  81278e:	6002		str	r2, [r0, #0]
  812790:	4886		ldr	r0, =0x8004	; via 0x8129ac
  812792:	4a84		ldr	r2, =0x83c09c	; via 0x8129a4
  812794:	6812		ldr	r2, [r2, #0]
  812796:	0a12		lsr	r2, r2, #8
  812798:	0612		lsl	r2, r2, #24
  81279a:	0e12		lsr	r2, r2, #24
  81279c:	0152		lsl	r2, r2, #5
  81279e:	4310		orr	r0, r2
  8127a0:	8008		strh	r0, [r1, #0]
  8127a2:	487f		ldr	r0, =0x83c0a4	; via 0x8129a0
  8127a4:	6801		ldr	r1, [r0, #0]
  8127a6:	1c8a		add	r2, r1, #2
  8127a8:	6002		str	r2, [r0, #0]
  8127aa:	4881		ldr	r0, =0x8003	; via 0x8129b0
  8127ac:	4a7d		ldr	r2, =0x83c09c	; via 0x8129a4
  8127ae:	6812		ldr	r2, [r2, #0]
  8127b0:	0612		lsl	r2, r2, #24
  8127b2:	0e12		lsr	r2, r2, #24
  8127b4:	0152		lsl	r2, r2, #5
  8127b6:	4310		orr	r0, r2
  8127b8:	8008		strh	r0, [r1, #0]
  8127ba:	4979		ldr	r1, =0x83c0a4	; via 0x8129a0
  8127bc:	6808		ldr	r0, [r1, #0]
  8127be:	1c82		add	r2, r0, #2
  8127c0:	600a		str	r2, [r1, #0]
  8127c2:	49a8		ldr	r1, =0x89e0	; via 0x812a64
  8127c4:	8001		strh	r1, [r0, #0]
  8127c6:	4976		ldr	r1, =0x83c0a4	; via 0x8129a0
  8127c8:	680a		ldr	r2, [r1, #0]
  8127ca:	1c90		add	r0, r2, #2
  8127cc:	6008		str	r0, [r1, #0]
  8127ce:	4876		ldr	r0, =0x8041	; via 0x8129a8
  8127d0:	8010		strh	r0, [r2, #0]
  8127d2:	9904		ldr	r1, [sp, #16]	; 0x10
  8127d4:	4871		ldr	r0, =0x83be2c	; via 0x81299c
  8127d6:	7800		ldrb	r0, [r0, #0]
  8127d8:	4301		orr	r1, r0
  8127da:	2002		mov	r0, #2
  8127dc:	4308		orr	r0, r1
  8127de:	4971		ldr	r1, =0x83c09c	; via 0x8129a4
  8127e0:	6008		str	r0, [r1, #0]
  8127e2:	486f		ldr	r0, =0x83c0a4	; via 0x8129a0
  8127e4:	6801		ldr	r1, [r0, #0]
  8127e6:	1c8a		add	r2, r1, #2
  8127e8:	6002		str	r2, [r0, #0]
  8127ea:	4870		ldr	r0, =0x8004	; via 0x8129ac
  8127ec:	4a6d		ldr	r2, =0x83c09c	; via 0x8129a4
  8127ee:	6812		ldr	r2, [r2, #0]
  8127f0:	0c12		lsr	r2, r2, #16
  8127f2:	0612		lsl	r2, r2, #24
  8127f4:	0e12		lsr	r2, r2, #24
  8127f6:	0152		lsl	r2, r2, #5
  8127f8:	4310		orr	r0, r2
  8127fa:	8008		strh	r0, [r1, #0]
  8127fc:	4868		ldr	r0, =0x83c0a4	; via 0x8129a0
  8127fe:	6801		ldr	r1, [r0, #0]
  812800:	1c8a		add	r2, r1, #2
  812802:	6002		str	r2, [r0, #0]
  812804:	486a		ldr	r0, =0x8003	; via 0x8129b0
  812806:	4a67		ldr	r2, =0x83c09c	; via 0x8129a4
  812808:	6812		ldr	r2, [r2, #0]
  81280a:	0a12		lsr	r2, r2, #8
  81280c:	0612		lsl	r2, r2, #24
  81280e:	0e12		lsr	r2, r2, #24
  812810:	0152		lsl	r2, r2, #5
  812812:	4310		orr	r0, r2
  812814:	8008		strh	r0, [r1, #0]
  812816:	4862		ldr	r0, =0x83c0a4	; via 0x8129a0
  812818:	6801		ldr	r1, [r0, #0]
  81281a:	1c8a		add	r2, r1, #2
  81281c:	6002		str	r2, [r0, #0]
  81281e:	48cc		ldr	r0, =0x8002	; via 0x812b50
  812820:	4a60		ldr	r2, =0x83c09c	; via 0x8129a4
  812822:	6812		ldr	r2, [r2, #0]
  812824:	0612		lsl	r2, r2, #24
  812826:	0e12		lsr	r2, r2, #24
  812828:	0152		lsl	r2, r2, #5
  81282a:	4310		orr	r0, r2
  81282c:	8008		strh	r0, [r1, #0]
  81282e:	495c		ldr	r1, =0x83c0a4	; via 0x8129a0
  812830:	6808		ldr	r0, [r1, #0]
  812832:	1c82		add	r2, r0, #2
  812834:	600a		str	r2, [r1, #0]
  812836:	49c7		ldr	r1, =0x8ae0	; via 0x812b54
  812838:	8001		strh	r1, [r0, #0]
  81283a:	4959		ldr	r1, =0x83c0a4	; via 0x8129a0
  81283c:	6808		ldr	r0, [r1, #0]
  81283e:	1c82		add	r2, r0, #2
  812840:	600a		str	r2, [r1, #0]
  812842:	4959		ldr	r1, =0x8041	; via 0x8129a8
  812844:	8001		strh	r1, [r0, #0]
  812846:	4956		ldr	r1, =0x83c0a4	; via 0x8129a0
  812848:	6808		ldr	r0, [r1, #0]
  81284a:	1c82		add	r2, r0, #2
  81284c:	600a		str	r2, [r1, #0]
  81284e:	2165		mov	r1, #101	; 0x65
  812850:	01c9		lsl	r1, r1, #7
  812852:	8001		strh	r1, [r0, #0]
  812854:	4952		ldr	r1, =0x83c0a4	; via 0x8129a0
  812856:	6808		ldr	r0, [r1, #0]
  812858:	1c82		add	r2, r0, #2
  81285a:	600a		str	r2, [r1, #0]
  81285c:	49b8		ldr	r1, =0x9804	; via 0x812b40
  81285e:	8001		strh	r1, [r0, #0]
  812860:	494f		ldr	r1, =0x83c0a4	; via 0x8129a0
  812862:	6808		ldr	r0, [r1, #0]
  812864:	1c82		add	r2, r0, #2
  812866:	600a		str	r2, [r1, #0]
  812868:	49b3		ldr	r1, =0x80c0	; via 0x812b38
  81286a:	8001		strh	r1, [r0, #0]
  81286c:	494c		ldr	r1, =0x83c0a4	; via 0x8129a0
  81286e:	6808		ldr	r0, [r1, #0]
  812870:	1c82		add	r2, r0, #2
  812872:	600a		str	r2, [r1, #0]
  812874:	494c		ldr	r1, =0x8041	; via 0x8129a8
  812876:	8001		strh	r1, [r0, #0]
  812878:	4949		ldr	r1, =0x83c0a4	; via 0x8129a0
  81287a:	6808		ldr	r0, [r1, #0]
  81287c:	1c82		add	r2, r0, #2
  81287e:	600a		str	r2, [r1, #0]
  812880:	49b0		ldr	r1, =0x328b	; via 0x812b44
  812882:	8001		strh	r1, [r0, #0]
  812884:	2005		mov	r0, #5
  812886:	9905		ldr	r1, [sp, #20]	; 0x14
  812888:	4308		orr	r0, r1
  81288a:	4946		ldr	r1, =0x83c09c	; via 0x8129a4
  81288c:	6008		str	r0, [r1, #0]
  81288e:	4844		ldr	r0, =0x83c0a4	; via 0x8129a0
  812890:	6801		ldr	r1, [r0, #0]
  812892:	1c8a		add	r2, r1, #2
  812894:	6002		str	r2, [r0, #0]
  812896:	4845		ldr	r0, =0x8004	; via 0x8129ac
  812898:	4a42		ldr	r2, =0x83c09c	; via 0x8129a4
  81289a:	6812		ldr	r2, [r2, #0]
  81289c:	0a12		lsr	r2, r2, #8
  81289e:	0612		lsl	r2, r2, #24
  8128a0:	0e12		lsr	r2, r2, #24
  8128a2:	0152		lsl	r2, r2, #5
  8128a4:	4310		orr	r0, r2
  8128a6:	8008		strh	r0, [r1, #0]
  8128a8:	483d		ldr	r0, =0x83c0a4	; via 0x8129a0
  8128aa:	6801		ldr	r1, [r0, #0]
  8128ac:	1c8a		add	r2, r1, #2
  8128ae:	6002		str	r2, [r0, #0]
  8128b0:	483f		ldr	r0, =0x8003	; via 0x8129b0
  8128b2:	4a3c		ldr	r2, =0x83c09c	; via 0x8129a4
  8128b4:	6812		ldr	r2, [r2, #0]
  8128b6:	0612		lsl	r2, r2, #24
  8128b8:	0e12		lsr	r2, r2, #24
  8128ba:	0152		lsl	r2, r2, #5
  8128bc:	4310		orr	r0, r2
  8128be:	8008		strh	r0, [r1, #0]
  8128c0:	4937		ldr	r1, =0x83c0a4	; via 0x8129a0
  8128c2:	6808		ldr	r0, [r1, #0]
  8128c4:	1c82		add	r2, r0, #2
  8128c6:	600a		str	r2, [r1, #0]
  8128c8:	4966		ldr	r1, =0x89e0	; via 0x812a64
  8128ca:	8001		strh	r1, [r0, #0]
  8128cc:	4934		ldr	r1, =0x83c0a4	; via 0x8129a0
  8128ce:	6808		ldr	r0, [r1, #0]
  8128d0:	1c82		add	r2, r0, #2
  8128d2:	600a		str	r2, [r1, #0]
  8128d4:	4934		ldr	r1, =0x8041	; via 0x8129a8
  8128d6:	8001		strh	r1, [r0, #0]
  8128d8:	4931		ldr	r1, =0x83c0a4	; via 0x8129a0
  8128da:	6808		ldr	r0, [r1, #0]
  8128dc:	1c82		add	r2, r0, #2
  8128de:	600a		str	r2, [r1, #0]
  8128e0:	4999		ldr	r1, =0x32f7	; via 0x812b48
  8128e2:	8001		strh	r1, [r0, #0]
  8128e4:	492f		ldr	r1, =0x83c09c	; via 0x8129a4
  8128e6:	4899		ldr	r0, =0x140973	; via 0x812b4c
  8128e8:	6008		str	r0, [r1, #0]
  8128ea:	482d		ldr	r0, =0x83c0a4	; via 0x8129a0
  8128ec:	6801		ldr	r1, [r0, #0]
  8128ee:	1c8a		add	r2, r1, #2
  8128f0:	6002		str	r2, [r0, #0]
  8128f2:	482e		ldr	r0, =0x8004	; via 0x8129ac
  8128f4:	4a2b		ldr	r2, =0x83c09c	; via 0x8129a4
  8128f6:	6812		ldr	r2, [r2, #0]
  8128f8:	0c12		lsr	r2, r2, #16
  8128fa:	0612		lsl	r2, r2, #24
  8128fc:	0e12		lsr	r2, r2, #24
  8128fe:	0152		lsl	r2, r2, #5
  812900:	4310		orr	r0, r2
  812902:	8008		strh	r0, [r1, #0]
  812904:	4826		ldr	r0, =0x83c0a4	; via 0x8129a0
  812906:	6802		ldr	r2, [r0, #0]
  812908:	1c91		add	r1, r2, #2
  81290a:	6001		str	r1, [r0, #0]
  81290c:	4828		ldr	r0, =0x8003	; via 0x8129b0
  81290e:	4925		ldr	r1, =0x83c09c	; via 0x8129a4
  812910:	6809		ldr	r1, [r1, #0]
  812912:	0a09		lsr	r1, r1, #8
  812914:	0609		lsl	r1, r1, #24
  812916:	0e09		lsr	r1, r1, #24
  812918:	0149		lsl	r1, r1, #5
  81291a:	4308		orr	r0, r1
  81291c:	8010		strh	r0, [r2, #0]
  81291e:	4820		ldr	r0, =0x83c0a4	; via 0x8129a0
  812920:	6801		ldr	r1, [r0, #0]
  812922:	1c8a		add	r2, r1, #2
  812924:	6002		str	r2, [r0, #0]
  812926:	488a		ldr	r0, =0x8002	; via 0x812b50
  812928:	4a1e		ldr	r2, =0x83c09c	; via 0x8129a4
  81292a:	6812		ldr	r2, [r2, #0]
  81292c:	0612		lsl	r2, r2, #24
  81292e:	0e12		lsr	r2, r2, #24
  812930:	0152		lsl	r2, r2, #5
  812932:	4310		orr	r0, r2
  812934:	8008		strh	r0, [r1, #0]
  812936:	4a1a		ldr	r2, =0x83c0a4	; via 0x8129a0
  812938:	6810		ldr	r0, [r2, #0]
  81293a:	1c81		add	r1, r0, #2
  81293c:	6011		str	r1, [r2, #0]
  81293e:	4985		ldr	r1, =0x8ae0	; via 0x812b54
  812940:	8001		strh	r1, [r0, #0]
  812942:	4917		ldr	r1, =0x83c0a4	; via 0x8129a0
  812944:	6808		ldr	r0, [r1, #0]
  812946:	1c82		add	r2, r0, #2
  812948:	600a		str	r2, [r1, #0]
  81294a:	4917		ldr	r1, =0x8041	; via 0x8129a8
  81294c:	8001		strh	r1, [r0, #0]
  81294e:	4a14		ldr	r2, =0x83c0a4	; via 0x8129a0
  812950:	6810		ldr	r0, [r2, #0]
  812952:	1c81		add	r1, r0, #2
  812954:	6011		str	r1, [r2, #0]
  812956:	49e4		ldr	r1, =0x3305	; via 0x812ce8
  812958:	8001		strh	r1, [r0, #0]
  81295a:	4811		ldr	r0, =0x83c0a4	; via 0x8129a0
  81295c:	6801		ldr	r1, [r0, #0]
  81295e:	1c8a		add	r2, r1, #2
  812960:	6002		str	r2, [r0, #0]
  812962:	4874		ldr	r0, =0x9004	; via 0x812b34
  812964:	8008		strh	r0, [r1, #0]
  812966:	480e		ldr	r0, =0x83c0a4	; via 0x8129a0
  812968:	6801		ldr	r1, [r0, #0]
  81296a:	1c8a		add	r2, r1, #2
  81296c:	6002		str	r2, [r0, #0]
  81296e:	4872		ldr	r0, =0x80c0	; via 0x812b38
  812970:	8008		strh	r0, [r1, #0]
  812972:	4a0b		ldr	r2, =0x83c0a4	; via 0x8129a0
  812974:	6810		ldr	r0, [r2, #0]
  812976:	1c81		add	r1, r0, #2
  812978:	6011		str	r1, [r2, #0]
  81297a:	490b		ldr	r1, =0x8041	; via 0x8129a8
  81297c:	8001		strh	r1, [r0, #0]
  81297e:	9800		ldr	r0, [sp, #0]
  812980:	b008		add	sp, #32	; 0x20
  812982:	bd00		pop	{pc}

$arfcn_to_rf_index:
  812a68:	b081		sub	sp, #4
  812a6a:	4669		mov	r1, sp
  812a6c:	8008		strh	r0, [r1, #0]
  812a6e:	49d9		ldr	r1, =0x8053f8	; via 0x812dd4
  812a70:	48db		ldr	r0, =0x83cdb4	; via 0x812de0
  812a72:	7800		ldrb	r0, [r0, #0]
  812a74:	00c0		lsl	r0, r0, #3
  812a76:	5c09		ldrb	r1, [r1, r0]
  812a78:	4668		mov	r0, sp
  812a7a:	70c1		strb	r1, [r0, #3]
  812a7c:	48d6		ldr	r0, =0x8053f9	; via 0x812dd8
  812a7e:	49d8		ldr	r1, =0x83cdb4	; via 0x812de0
  812a80:	7809		ldrb	r1, [r1, #0]
  812a82:	00c9		lsl	r1, r1, #3
  812a84:	5c40		ldrb	r0, [r0, r1]
  812a86:	2800		cmp	r0, #0
  812a88:	d011		beq	0x812aae
  812a8a:	4668		mov	r0, sp
  812a8c:	8801		ldrh	r1, [r0, #0]
  812a8e:	2001		mov	r0, #1
  812a90:	0240		lsl	r0, r0, #9
  812a92:	4281		cmp	r1, r0
  812a94:	db0b		blt	0x812aae
  812a96:	4668		mov	r0, sp
  812a98:	8800		ldrh	r0, [r0, #0]
  812a9a:	49d0		ldr	r1, =0x375	; via 0x812ddc
  812a9c:	4288		cmp	r0, r1
  812a9e:	dc06		bgt	0x812aae
  812aa0:	49cd		ldr	r1, =0x8053f9	; via 0x812dd8
  812aa2:	48cf		ldr	r0, =0x83cdb4	; via 0x812de0
  812aa4:	7800		ldrb	r0, [r0, #0]
  812aa6:	00c0		lsl	r0, r0, #3
  812aa8:	5c09		ldrb	r1, [r1, r0]
  812aaa:	4668		mov	r0, sp
  812aac:	70c1		strb	r1, [r0, #3]
  812aae:	4668		mov	r0, sp
  812ab0:	78c0		ldrb	r0, [r0, #3]
  812ab2:	3801		sub	r0, #1
  812ab4:	0600		lsl	r0, r0, #24
  812ab6:	0e00		lsr	r0, r0, #24
  812ab8:	b001		add	sp, #4
  812aba:	4770		bx	lr

IRAM data:

0x839ea8	rf structure
0x83a09c	adc_cal structure
0x83be2c	8-bit var I'm calling magic2_byte
0x83be30	synth_900
0x83be60	synth_1800
0x83be78	synth_1900
0x83be90	synth_850
0x83c048	rf_path array of structs
0x83c09c	rf_data 32-bit var?
0x83c0a0	rf_band 8-bit var
0x83c0a1	rf_index 8-bit var
0x83c0a4	TP_Ptr
0x83cdb4	l1_config structure