FreeCalypso > hg > freecalypso-reveng
view dsample-fw-disasm @ 270:41edb6ec565e
dsample-fw-disasm: cinit for magic1 tables
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 19 Jan 2018 08:03:10 +0000 |
parents | d0bb4b083595 |
children | 3858229ddb00 |
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 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 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 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