FreeCalypso > hg > freecalypso-reveng
view dsample-fw-disasm @ 285:e5b0164f6060
compal/c156-fw-disasm: first attempt
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 14 Mar 2019 09:06:43 +0000 |
parents | b7d93ff628a8 |
children | 1a8300df2a02 |
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 $l1_dsp_init: 1fbd20: b570 push {r4, r5, r6, lr} 1fbd22: 4ca2 ldr r4, =0x83cda0 ; via 0x1fbfac 1fbd24: 48a2 ldr r0, =0xffd001a8 ; via 0x1fbfb0 1fbd26: 60e0 str r0, [r4, #12] ; 0xc 1fbd28: 48a2 ldr r0, =0xffd00050 ; via 0x1fbfb4 1fbd2a: 6060 str r0, [r4, #4] 1fbd2c: 48a2 ldr r0, =0xffd00000 ; via 0x1fbfb8 1fbd2e: 60a0 str r0, [r4, #8] 1fbd30: 48a2 ldr r0, =0xffd00862 ; via 0x1fbfbc 1fbd32: 6120 str r0, [r4, #16] ; 0x10 1fbd34: 2000 mov r0, #0 1fbd36: 7020 strb r0, [r4, #0] 1fbd38: 7060 strb r0, [r4, #1] 1fbd3a: 70a0 strb r0, [r4, #2] 1fbd3c: 4ea0 ldr r6, =0x83ed90 ; via 0x1fbfc0 1fbd3e: 48a1 ldr r0, =0xffd0035c ; via 0x1fbfc4 1fbd40: 60b0 str r0, [r6, #8] 1fbd42: 48a1 ldr r0, =0xffd000f0 ; via 0x1fbfc8 1fbd44: 6030 str r0, [r6, #0] 1fbd46: 48a1 ldr r0, =0xffd000a0 ; via 0x1fbfcc 1fbd48: 6070 str r0, [r6, #4] 1fbd4a: 48a1 ldr r0, =0xffd00900 ; via 0x1fbfd0 1fbd4c: 60f0 str r0, [r6, #12] ; 0xc 1fbd4e: 48a1 ldr r0, =0x83c72c ; via 0x1fbfd4 1fbd50: 6801 ldr r1, [r0, #0] 1fbd52: 48a1 ldr r0, =0xffef ; via 0x1fbfd8 1fbd54: 880a ldrh r2, [r1, #0] 1fbd56: 4010 and r0, r2 1fbd58: 8008 strh r0, [r1, #0] 1fbd5a: 68e1 ldr r1, [r4, #12] ; 0xc 1fbd5c: 7820 ldrb r0, [r4, #0] 1fbd5e: 8008 strh r0, [r1, #0] 1fbd60: 224a mov r2, #74 ; 0x4a 1fbd62: 68e1 ldr r1, [r4, #12] ; 0xc 1fbd64: 2001 mov r0, #1 1fbd66: 5250 strh r0, [r2, r1] 1fbd68: 2148 mov r1, #72 ; 0x48 1fbd6a: 68e0 ldr r0, [r4, #12] ; 0xc 1fbd6c: 2500 mov r5, #0 1fbd6e: 520d strh r5, [r1, r0] 1fbd70: 20ff mov r0, #255 ; 0xff 1fbd72: 30fd add r0, #253 ; 0xfd 1fbd74: 68e1 ldr r1, [r4, #12] ; 0xc 1fbd76: 2240 mov r2, #64 ; 0x40 1fbd78: 5242 strh r2, [r0, r1] 1fbd7a: 2047 mov r0, #71 ; 0x47 1fbd7c: 00c0 lsl r0, r0, #3 1fbd7e: 68e1 ldr r1, [r4, #12] ; 0xc 1fbd80: 5245 strh r5, [r0, r1] 1fbd82: 208f mov r0, #143 ; 0x8f 1fbd84: 0081 lsl r1, r0, #2 1fbd86: 68e3 ldr r3, [r4, #12] ; 0xc 1fbd88: 4894 ldr r0, =0xffff ; via 0x1fbfdc 1fbd8a: 52c8 strh r0, [r1, r3] 1fbd8c: 21ff mov r1, #255 ; 0xff 1fbd8e: 3109 add r1, #9 1fbd90: 68e3 ldr r3, [r4, #12] ; 0xc 1fbd92: 52cd strh r5, [r1, r3] 1fbd94: 21ff mov r1, #255 ; 0xff 1fbd96: 310d add r1, #13 ; 0xd 1fbd98: 68e3 ldr r3, [r4, #12] ; 0xc 1fbd9a: 52c8 strh r0, [r1, r3] 1fbd9c: 2115 mov r1, #21 ; 0x15 1fbd9e: 0149 lsl r1, r1, #5 1fbda0: 68e3 ldr r3, [r4, #12] ; 0xc 1fbda2: 52cd strh r5, [r1, r3] 1fbda4: 21a9 mov r1, #169 ; 0xa9 1fbda6: 0089 lsl r1, r1, #2 1fbda8: 68e3 ldr r3, [r4, #12] ; 0xc 1fbdaa: 52c8 strh r0, [r1, r3] 1fbdac: 21ff mov r1, #255 ; 0xff 1fbdae: 3135 add r1, #53 ; 0x35 1fbdb0: 68e3 ldr r3, [r4, #12] ; 0xc 1fbdb2: 52cd strh r5, [r1, r3] 1fbdb4: 21ff mov r1, #255 ; 0xff 1fbdb6: 3139 add r1, #57 ; 0x39 1fbdb8: 68e3 ldr r3, [r4, #12] ; 0xc 1fbdba: 52c8 strh r0, [r1, r3] 1fbdbc: 4b88 ldr r3, =0x21a ; via 0x1fbfe0 1fbdbe: 68e1 ldr r1, [r4, #12] ; 0xc 1fbdc0: 525a strh r2, [r3, r1] 1fbdc2: 4988 ldr r1, =0x21e ; via 0x1fbfe4 1fbdc4: 68e2 ldr r2, [r4, #12] ; 0xc 1fbdc6: 5288 strh r0, [r1, r2] 1fbdc8: 20ff mov r0, #255 ; 0xff 1fbdca: 30cf add r0, #207 ; 0xcf 1fbdcc: 68e1 ldr r1, [r4, #12] ; 0xc 1fbdce: 5245 strh r5, [r0, r1] 1fbdd0: 68e0 ldr r0, [r4, #12] ; 0xc 1fbdd2: 2101 mov r1, #1 1fbdd4: 02c9 lsl r1, r1, #11 1fbdd6: 80c1 strh r1, [r0, #6] 1fbdd8: 68e1 ldr r1, [r4, #12] ; 0xc 1fbdda: 4883 ldr r0, =0x83ce48 ; via 0x1fbfe8 1fbddc: 7800 ldrb r0, [r0, #0] 1fbdde: 01c0 lsl r0, r0, #7 1fbde0: 2201 mov r2, #1 1fbde2: 0252 lsl r2, r2, #9 1fbde4: 1a80 sub r0, r0, r2 1fbde6: 0540 lsl r0, r0, #21 1fbde8: 0f00 lsr r0, r0, #28 1fbdea: 01c0 lsl r0, r0, #7 1fbdec: 88ca ldrh r2, [r1, #6] 1fbdee: 4310 orr r0, r2 1fbdf0: 80c8 strh r0, [r1, #6] 1fbdf2: 2254 mov r2, #84 ; 0x54 1fbdf4: 68e1 ldr r1, [r4, #12] ; 0xc 1fbdf6: 20ff mov r0, #255 ; 0xff 1fbdf8: 3001 add r0, #1 1fbdfa: 5250 strh r0, [r2, r1] 1fbdfc: f034 f9fa bl 0x2301f4 ; $l1audio_dsp_init 1fbe00: 487a ldr r0, =0x2d6 ; via 0x1fbfec 1fbe02: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe04: 5245 strh r5, [r0, r1] 1fbe06: 205b mov r0, #91 ; 0x5b 1fbe08: 00c0 lsl r0, r0, #3 1fbe0a: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe0c: 5245 strh r5, [r0, r1] 1fbe0e: 4878 ldr r0, =0x2da ; via 0x1fbff0 1fbe10: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe12: 5245 strh r5, [r0, r1] 1fbe14: 20b7 mov r0, #183 ; 0xb7 1fbe16: 0080 lsl r0, r0, #2 1fbe18: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe1a: 5245 strh r5, [r0, r1] 1fbe1c: 4875 ldr r0, =0x2de ; via 0x1fbff4 1fbe1e: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe20: 5245 strh r5, [r0, r1] 1fbe22: 2017 mov r0, #23 ; 0x17 1fbe24: 0141 lsl r1, r0, #5 1fbe26: 68e0 ldr r0, [r4, #12] ; 0xc 1fbe28: 520d strh r5, [r1, r0] 1fbe2a: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe2c: 20ff mov r0, #255 ; 0xff 1fbe2e: 307a add r0, #122 ; 0x7a 1fbe30: 8088 strh r0, [r1, #4] 1fbe32: 20ff mov r0, #255 ; 0xff 1fbe34: 3061 add r0, #97 ; 0x61 1fbe36: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe38: 5245 strh r5, [r0, r1] 1fbe3a: 20ff mov r0, #255 ; 0xff 1fbe3c: 3063 add r0, #99 ; 0x63 1fbe3e: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe40: 5245 strh r5, [r0, r1] 1fbe42: 20ff mov r0, #255 ; 0xff 1fbe44: 3065 add r0, #101 ; 0x65 1fbe46: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe48: 5245 strh r5, [r0, r1] 1fbe4a: 20ff mov r0, #255 ; 0xff 1fbe4c: 3067 add r0, #103 ; 0x67 1fbe4e: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe50: 5245 strh r5, [r0, r1] 1fbe52: 20ff mov r0, #255 ; 0xff 1fbe54: 3069 add r0, #105 ; 0x69 1fbe56: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe58: 5245 strh r5, [r0, r1] 1fbe5a: 20ff mov r0, #255 ; 0xff 1fbe5c: 306b add r0, #107 ; 0x6b 1fbe5e: 68e1 ldr r1, [r4, #12] ; 0xc 1fbe60: 5245 strh r5, [r0, r1] 1fbe62: 68b0 ldr r0, [r6, #8] 1fbe64: 8005 strh r5, [r0, #0] 1fbe66: 68b0 ldr r0, [r6, #8] 1fbe68: 2102 mov r1, #2 1fbe6a: 8381 strh r1, [r0, #28] ; 0x1c 1fbe6c: 20ff mov r0, #255 ; 0xff 1fbe6e: 3085 add r0, #133 ; 0x85 1fbe70: 68b1 ldr r1, [r6, #8] 1fbe72: 5245 strh r5, [r0, r1] 1fbe74: 4850 ldr r0, =0xffd00000 ; via 0x1fbfb8 1fbe76: f05a f877 bl 0x255f68 1fbe7a: 485f ldr r0, =0xffd00028 ; via 0x1fbff8 1fbe7c: f05a f874 bl 0x255f68 1fbe80: 484c ldr r0, =0xffd00050 ; via 0x1fbfb4 1fbe82: f05a f879 bl 0x255f78 1fbe86: 485d ldr r0, =0xffd00078 ; via 0x1fbffc 1fbe88: f05a f876 bl 0x255f78 1fbe8c: bd70 pop {r4, r5, r6, pc} $l1_tpu_init: 1fbe8e: b500 push {lr} 1fbe90: f05a f972 bl 0x256178 ; $l1dmacro_init_hw 1fbe94: 494f ldr r1, =0x83c72c ; via 0x1fbfd4 1fbe96: 485a ldr r0, =0xffff1000 ; via 0x1fc000 1fbe98: 6008 str r0, [r1, #0] 1fbe9a: bd00 pop {pc} $l1_tpu_init_light: 1fbe9c: b500 push {lr} 1fbe9e: f05a f963 bl 0x256168 ; $l1dmacro_init_hw_light 1fbea2: 494c ldr r1, =0x83c72c ; via 0x1fbfd4 1fbea4: 4856 ldr r0, =0xffff1000 ; via 0x1fc000 1fbea6: 6008 str r0, [r1, #0] 1fbea8: bd00 pop {pc} $l1_abb_power_on: 1fbeaa: b530 push {r4, r5, lr} 1fbeac: b08a sub sp, #40 ; 0x28 1fbeae: 2000 mov r0, #0 1fbeb0: 9003 str r0, [sp, #12] ; 0xc 1fbeb2: 213c mov r1, #60 ; 0x3c 1fbeb4: 9104 str r1, [sp, #16] ; 0x10 1fbeb6: 466a mov r2, sp 1fbeb8: 2105 mov r1, #5 1fbeba: 8291 strh r1, [r2, #20] ; 0x14 1fbebc: 9006 str r0, [sp, #24] ; 0x18 1fbebe: 2101 mov r1, #1 1fbec0: 9107 str r1, [sp, #28] ; 0x1c 1fbec2: 9008 str r0, [sp, #32] ; 0x20 1fbec4: 9009 str r0, [sp, #36] ; 0x24 1fbec6: a803 add r0, sp, #12 ; 0xc 1fbec8: f7c2 f98b bl 0x1be1e2 1fbecc: f7c2 fc23 bl 0x1be716 1fbed0: f7c3 f806 bl 0x1beee0 1fbed4: 2000 mov r0, #0 1fbed6: 2136 mov r1, #54 ; 0x36 1fbed8: f7c2 fa70 bl 0x1be3bc 1fbedc: 2005 mov r0, #5 1fbede: 0340 lsl r0, r0, #13 1fbee0: f7c2 fe98 bl 0x1bec14 1fbee4: 20ff mov r0, #255 ; 0xff 1fbee6: 2100 mov r1, #0 1fbee8: f7c2 fbbc bl 0x1be664 1fbeec: 4d45 ldr r5, =0x10734cc ; via 0x1fc004 1fbeee: 2058 mov r0, #88 ; 0x58 1fbef0: 1944 add r4, r0, r5 1fbef2: 1c20 add r0, r4, #0 1fbef4: 21fe mov r1, #254 ; 0xfe 1fbef6: 2201 mov r2, #1 1fbef8: 0252 lsl r2, r2, #9 1fbefa: f059 ffd5 bl 0x255ea8 1fbefe: 9400 str r4, [sp, #0] 1fbf00: 2001 mov r0, #1 1fbf02: 0240 lsl r0, r0, #9 1fbf04: 9001 str r0, [sp, #4] 1fbf06: 1c28 add r0, r5, #0 1fbf08: a125 add r1, pc, #148 ; 0x94 1fbf0a: 4a3f ldr r2, =0x22d8a7 ; via 0x1fc008 1fbf0c: 2302 mov r3, #2 1fbf0e: f05a fb3b bl 0x256588 1fbf12: 4c27 ldr r4, =0xffd001a8 ; via 0x1fbfb0 1fbf14: 483d ldr r0, =0x83cdf1 ; via 0x1fc00c 1fbf16: 7800 ldrb r0, [r0, #0] 1fbf18: 2800 cmp r0, #0 1fbf1a: d108 bne 0x1fbf2e 1fbf1c: 20ff mov r0, #255 ; 0xff 1fbf1e: 30dd add r0, #221 ; 0xdd 1fbf20: 1900 add r0, r0, r4 1fbf22: 2100 mov r1, #0 1fbf24: 2200 mov r2, #0 1fbf26: 2301 mov r3, #1 1fbf28: f05a fbb6 bl 0x256698 1fbf2c: e007 b 0x1fbf3e 1fbf2e: 20ff mov r0, #255 ; 0xff 1fbf30: 30dd add r0, #221 ; 0xdd 1fbf32: 1900 add r0, r0, r4 1fbf34: 2105 mov r1, #5 1fbf36: 2205 mov r2, #5 1fbf38: 2301 mov r3, #1 1fbf3a: f05a fbad bl 0x256698 1fbf3e: 48f6 ldr r0, =0x83cdb4 ; via 0x1fc318 1fbf40: 2196 mov r1, #150 ; 0x96 1fbf42: 5a09 ldrh r1, [r1, r0] 1fbf44: 8121 strh r1, [r4, #8] 1fbf46: 2198 mov r1, #152 ; 0x98 1fbf48: 5a09 ldrh r1, [r1, r0] 1fbf4a: 8661 strh r1, [r4, #50] ; 0x32 1fbf4c: 219a mov r1, #154 ; 0x9a 1fbf4e: 5a09 ldrh r1, [r1, r0] 1fbf50: 86a1 strh r1, [r4, #52] ; 0x34 1fbf52: 219c mov r1, #156 ; 0x9c 1fbf54: 5a09 ldrh r1, [r1, r0] 1fbf56: 86e1 strh r1, [r4, #54] ; 0x36 1fbf58: 4a2d ldr r2, =0xffd001e8 ; via 0x1fc010 1fbf5a: 219e mov r1, #158 ; 0x9e 1fbf5c: 5a09 ldrh r1, [r1, r0] 1fbf5e: 80d1 strh r1, [r2, #6] 1fbf60: 21a0 mov r1, #160 ; 0xa0 1fbf62: 5a09 ldrh r1, [r1, r0] 1fbf64: 8621 strh r1, [r4, #48] ; 0x30 1fbf66: 21a2 mov r1, #162 ; 0xa2 1fbf68: 5a09 ldrh r1, [r1, r0] 1fbf6a: 8761 strh r1, [r4, #58] ; 0x3a 1fbf6c: 21a4 mov r1, #164 ; 0xa4 1fbf6e: 5a09 ldrh r1, [r1, r0] 1fbf70: 87a1 strh r1, [r4, #60] ; 0x3c 1fbf72: 21a6 mov r1, #166 ; 0xa6 1fbf74: 5a09 ldrh r1, [r1, r0] 1fbf76: 87e1 strh r1, [r4, #62] ; 0x3e 1fbf78: 21a8 mov r1, #168 ; 0xa8 1fbf7a: 5a09 ldrh r1, [r1, r0] 1fbf7c: 8011 strh r1, [r2, #0] 1fbf7e: 21aa mov r1, #170 ; 0xaa 1fbf80: 5a09 ldrh r1, [r1, r0] 1fbf82: 8051 strh r1, [r2, #2] 1fbf84: 21ac mov r1, #172 ; 0xac 1fbf86: 5a09 ldrh r1, [r1, r0] 1fbf88: 8091 strh r1, [r2, #4] 1fbf8a: 21ae mov r1, #174 ; 0xae 1fbf8c: 5a09 ldrh r1, [r1, r0] 1fbf8e: 85e1 strh r1, [r4, #46] ; 0x2e 1fbf90: 21b0 mov r1, #176 ; 0xb0 1fbf92: 5a09 ldrh r1, [r1, r0] 1fbf94: 8721 strh r1, [r4, #56] ; 0x38 1fbf96: 21b2 mov r1, #178 ; 0xb2 1fbf98: 5a08 ldrh r0, [r1, r0] 1fbf9a: 85a0 strh r0, [r4, #44] ; 0x2c 1fbf9c: b00a add sp, #40 ; 0x28 1fbf9e: bd30 pop {r4, r5, pc} $l1_initialize_var: 1fc014: b5f0 push {r4, r5, r6, r7, lr} 1fc016: 4640 mov r0, r8 1fc018: b401 push {r0} 1fc01a: 2700 mov r7, #0 1fc01c: 0638 lsl r0, r7, #24 1fc01e: 0e00 lsr r0, r0, #24 1fc020: 4cf6 ldr r4, =0x83c738 ; via 0x1fc3fc 1fc022: 215e mov r1, #94 ; 0x5e 1fc024: 5508 strb r0, [r1, r4] 1fc026: 215f mov r1, #95 ; 0x5f 1fc028: 5508 strb r0, [r1, r4] 1fc02a: 6627 str r7, [r4, #96] ; 0x60 1fc02c: 2164 mov r1, #100 ; 0x64 1fc02e: 5508 strb r0, [r1, r4] 1fc030: 66a7 str r7, [r4, #104] ; 0x68 1fc032: 215d mov r1, #93 ; 0x5d 1fc034: 5508 strb r0, [r1, r4] 1fc036: 7260 strb r0, [r4, #9] 1fc038: 205c mov r0, #92 ; 0x5c 1fc03a: 5507 strb r7, [r0, r4] 1fc03c: 2002 mov r0, #2 1fc03e: 4680 mov r8, r0 1fc040: 7220 strb r0, [r4, #8] 1fc042: 48fb ldr r0, =0x83ce6c ; via 0x1fc430 1fc044: c803 ldmia r0!, {r0, r1} 1fc046: a2ee add r2, pc, #952 ; 0x3b8 1fc048: ca0c ldmia r2!, {r2, r3} 1fc04a: f055 fced bl 0x251a28 1fc04e: 1c05 add r5, r0, #0 1fc050: 1c0e add r6, r1, #0 1fc052: a2ed add r2, pc, #948 ; 0x3b4 1fc054: ca0c ldmia r2!, {r2, r3} 1fc056: f053 ffb9 bl 0x24ffcc 1fc05a: f058 fd3f bl 0x254adc 1fc05e: 66e0 str r0, [r4, #108] ; 0x6c 1fc060: f059 f922 bl 0x2552a8 1fc064: a2e8 add r2, pc, #928 ; 0x3a0 1fc066: ca0c ldmia r2!, {r2, r3} 1fc068: f055 fcde bl 0x251a28 1fc06c: 1c02 add r2, r0, #0 1fc06e: 1c0b add r3, r1, #0 1fc070: 1c28 add r0, r5, #0 1fc072: 1c31 add r1, r6, #0 1fc074: f051 fe3a bl 0x24dcec 1fc078: a2e5 add r2, pc, #916 ; 0x394 1fc07a: ca0c ldmia r2!, {r2, r3} 1fc07c: f055 fcd4 bl 0x251a28 1fc080: f058 fd2c bl 0x254adc 1fc084: f059 f910 bl 0x2552a8 1fc088: a2df add r2, pc, #892 ; 0x37c 1fc08a: ca0c ldmia r2!, {r2, r3} 1fc08c: f053 ff9e bl 0x24ffcc 1fc090: f058 fd24 bl 0x254adc 1fc094: 6720 str r0, [r4, #112] ; 0x70 1fc096: 1c28 add r0, r5, #0 1fc098: 1c31 add r1, r6, #0 1fc09a: a2df add r2, pc, #892 ; 0x37c 1fc09c: ca0c ldmia r2!, {r2, r3} 1fc09e: f053 ff95 bl 0x24ffcc 1fc0a2: f058 fd1b bl 0x254adc 1fc0a6: 6760 str r0, [r4, #116] ; 0x74 1fc0a8: f059 f8fe bl 0x2552a8 1fc0ac: a2da add r2, pc, #872 ; 0x368 1fc0ae: ca0c ldmia r2!, {r2, r3} 1fc0b0: f055 fcba bl 0x251a28 1fc0b4: 1c02 add r2, r0, #0 1fc0b6: 1c0b add r3, r1, #0 1fc0b8: 1c28 add r0, r5, #0 1fc0ba: 1c31 add r1, r6, #0 1fc0bc: f051 fe16 bl 0x24dcec 1fc0c0: a2d3 add r2, pc, #844 ; 0x34c 1fc0c2: ca0c ldmia r2!, {r2, r3} 1fc0c4: f055 fcb0 bl 0x251a28 1fc0c8: f058 fd08 bl 0x254adc 1fc0cc: f059 f8ec bl 0x2552a8 1fc0d0: a2d1 add r2, pc, #836 ; 0x344 1fc0d2: ca0c ldmia r2!, {r2, r3} 1fc0d4: f053 ff7a bl 0x24ffcc 1fc0d8: f058 fd00 bl 0x254adc 1fc0dc: 67a0 str r0, [r4, #120] ; 0x78 1fc0de: 1c28 add r0, r5, #0 1fc0e0: 1c31 add r1, r6, #0 1fc0e2: a2cf add r2, pc, #828 ; 0x33c 1fc0e4: ca0c ldmia r2!, {r2, r3} 1fc0e6: f055 fc9f bl 0x251a28 1fc0ea: f058 fcf7 bl 0x254adc 1fc0ee: 67e0 str r0, [r4, #124] ; 0x7c 1fc0f0: 1c28 add r0, r5, #0 1fc0f2: 1c31 add r1, r6, #0 1fc0f4: a2cc add r2, pc, #816 ; 0x330 1fc0f6: ca0c ldmia r2!, {r2, r3} 1fc0f8: f055 fc96 bl 0x251a28 1fc0fc: f058 fcee bl 0x254adc 1fc100: 2180 mov r1, #128 ; 0x80 1fc102: 5108 str r0, [r1, r4] 1fc104: 2084 mov r0, #132 ; 0x84 1fc106: 5107 str r7, [r0, r4] 1fc108: 2200 mov r2, #0 1fc10a: 00d0 lsl r0, r2, #3 1fc10c: 1820 add r0, r4, r0 1fc10e: 3088 add r0, #136 ; 0x88 1fc110: 7007 strb r7, [r0, #0] 1fc112: 4641 mov r1, r8 1fc114: 7041 strb r1, [r0, #1] 1fc116: 1c50 add r0, r2, #1 1fc118: 0600 lsl r0, r0, #24 1fc11a: 0e02 lsr r2, r0, #24 1fc11c: 2a2e cmp r2, #46 ; 0x2e 1fc11e: dbf4 blt 0x1fc10a 1fc120: 20ff mov r0, #255 ; 0xff 1fc122: 30f9 add r0, #249 ; 0xf9 1fc124: 5507 strb r7, [r0, r4] 1fc126: 20ff mov r0, #255 ; 0xff 1fc128: 30fa add r0, #250 ; 0xfa 1fc12a: 5507 strb r7, [r0, r4] 1fc12c: 20ff mov r0, #255 ; 0xff 1fc12e: 30fb add r0, #251 ; 0xfb 1fc130: 5507 strb r7, [r0, r4] 1fc132: 20ff mov r0, #255 ; 0xff 1fc134: 30fd add r0, #253 ; 0xfd 1fc136: 1900 add r0, r0, r4 1fc138: f059 ff36 bl 0x255fa8 1fc13c: 4d76 ldr r5, =0x83cdb4 ; via 0x1fc318 1fc13e: 2029 mov r0, #41 ; 0x29 1fc140: 0141 lsl r1, r0, #5 1fc142: 2074 mov r0, #116 ; 0x74 1fc144: 5f40 ldrsh r0, [r0, r5] 1fc146: 10c0 asr r0, r0, #3 1fc148: 5308 strh r0, [r1, r4] 1fc14a: 48ba ldr r0, =0x51c ; via 0x1fc434 1fc14c: 5107 str r7, [r0, r4] 1fc14e: 48ba ldr r0, =0x522 ; via 0x1fc438 1fc150: 2180 mov r1, #128 ; 0x80 1fc152: 5301 strh r1, [r0, r4] 1fc154: 48b9 ldr r0, =0x524 ; via 0x1fc43c 1fc156: 5507 strb r7, [r0, r4] 1fc158: 48b9 ldr r0, =0x526 ; via 0x1fc440 1fc15a: 5307 strh r7, [r0, r4] 1fc15c: 20a5 mov r0, #165 ; 0xa5 1fc15e: 00c0 lsl r0, r0, #3 1fc160: 5507 strb r7, [r0, r4] 1fc162: 48b8 ldr r0, =0x52a ; via 0x1fc444 1fc164: 5307 strh r7, [r0, r4] 1fc166: 48b8 ldr r0, =0x52c ; via 0x1fc448 1fc168: 5307 strh r7, [r0, r4] 1fc16a: 20a7 mov r0, #167 ; 0xa7 1fc16c: 00c0 lsl r0, r0, #3 1fc16e: 5507 strb r7, [r0, r4] 1fc170: 2053 mov r0, #83 ; 0x53 1fc172: 0100 lsl r0, r0, #4 1fc174: 5107 str r7, [r0, r4] 1fc176: 48b5 ldr r0, =0x534 ; via 0x1fc44c 1fc178: 5307 strh r7, [r0, r4] 1fc17a: 48b5 ldr r0, =0x536 ; via 0x1fc450 1fc17c: 5507 strb r7, [r0, r4] 1fc17e: 48b5 ldr r0, =0x537 ; via 0x1fc454 1fc180: 5507 strb r7, [r0, r4] 1fc182: 48b5 ldr r0, =0x539 ; via 0x1fc458 1fc184: 5507 strb r7, [r0, r4] 1fc186: 48b5 ldr r0, =0x53c ; via 0x1fc45c 1fc188: 5107 str r7, [r0, r4] 1fc18a: 2055 mov r0, #85 ; 0x55 1fc18c: 0100 lsl r0, r0, #4 1fc18e: 5507 strb r7, [r0, r4] 1fc190: 20a9 mov r0, #169 ; 0xa9 1fc192: 00c0 lsl r0, r0, #3 1fc194: 5107 str r7, [r0, r4] 1fc196: 48b2 ldr r0, =0x54c ; via 0x1fc460 1fc198: 5307 strh r7, [r0, r4] 1fc19a: 48b2 ldr r0, =0x54e ; via 0x1fc464 1fc19c: 5507 strb r7, [r0, r4] 1fc19e: 48b2 ldr r0, =0x54f ; via 0x1fc468 1fc1a0: 5507 strb r7, [r0, r4] 1fc1a2: 48b2 ldr r0, =0x551 ; via 0x1fc46c 1fc1a4: 5507 strb r7, [r0, r4] 1fc1a6: 48b2 ldr r0, =0x554 ; via 0x1fc470 1fc1a8: 5107 str r7, [r0, r4] 1fc1aa: 48b2 ldr r0, =0x544 ; via 0x1fc474 1fc1ac: 5107 str r7, [r0, r4] 1fc1ae: 48b2 ldr r0, =0x55c ; via 0x1fc478 1fc1b0: 5107 str r7, [r0, r4] 1fc1b2: 202b mov r0, #43 ; 0x2b 1fc1b4: 0140 lsl r0, r0, #5 1fc1b6: 1900 add r0, r0, r4 1fc1b8: 21a9 mov r1, #169 ; 0xa9 1fc1ba: 00c9 lsl r1, r1, #3 1fc1bc: 1909 add r1, r1, r4 1fc1be: 2218 mov r2, #24 ; 0x18 1fc1c0: f059 fc72 bl 0x255aa8 1fc1c4: 202b mov r0, #43 ; 0x2b 1fc1c6: 0140 lsl r0, r0, #5 1fc1c8: 1900 add r0, r0, r4 1fc1ca: 2101 mov r1, #1 1fc1cc: f059 fedc bl 0x255f88 1fc1d0: 48aa ldr r0, =0x665 ; via 0x1fc47c 1fc1d2: 5507 strb r7, [r0, r4] 1fc1d4: 20af mov r0, #175 ; 0xaf 1fc1d6: 00c0 lsl r0, r0, #3 1fc1d8: 5507 strb r7, [r0, r4] 1fc1da: 48a9 ldr r0, =0x579 ; via 0x1fc480 1fc1dc: 5507 strb r7, [r0, r4] 1fc1de: 48a9 ldr r0, =0x57a ; via 0x1fc484 1fc1e0: 5507 strb r7, [r0, r4] 1fc1e2: 48a9 ldr r0, =0x57c ; via 0x1fc488 1fc1e4: 5107 str r7, [r0, r4] 1fc1e6: 200b mov r0, #11 ; 0xb 1fc1e8: 01c0 lsl r0, r0, #7 1fc1ea: 5307 strh r7, [r0, r4] 1fc1ec: 48a7 ldr r0, =0x664 ; via 0x1fc48c 1fc1ee: 21ff mov r1, #255 ; 0xff 1fc1f0: 5501 strb r1, [r0, r4] 1fc1f2: 48a7 ldr r0, =0x584 ; via 0x1fc490 1fc1f4: 5307 strh r7, [r0, r4] 1fc1f6: 48a7 ldr r0, =0x586 ; via 0x1fc494 1fc1f8: 5307 strh r7, [r0, r4] 1fc1fa: 20b1 mov r0, #177 ; 0xb1 1fc1fc: 00c0 lsl r0, r0, #3 1fc1fe: 5307 strh r7, [r0, r4] 1fc200: 49a5 ldr r1, =0x58a ; via 0x1fc498 1fc202: 48a6 ldr r0, =0x1379 ; via 0x1fc49c 1fc204: 5308 strh r0, [r1, r4] 1fc206: 49a6 ldr r1, =0x58c ; via 0x1fc4a0 1fc208: 20ff mov r0, #255 ; 0xff 1fc20a: 3021 add r0, #33 ; 0x21 1fc20c: 5308 strh r0, [r1, r4] 1fc20e: 49a5 ldr r1, =0x58e ; via 0x1fc4a4 1fc210: 48a5 ldr r0, =0x404 ; via 0x1fc4a8 1fc212: 5308 strh r0, [r1, r4] 1fc214: 49a5 ldr r1, =0x1075f74 ; via 0x1fc4ac 1fc216: 2229 mov r2, #41 ; 0x29 1fc218: 1c08 add r0, r1, #0 1fc21a: 62c7 str r7, [r0, #44] ; 0x2c 1fc21c: 700f strb r7, [r1, #0] 1fc21e: 3004 add r0, #4 1fc220: 3101 add r1, #1 1fc222: 3a01 sub r2, #1 1fc224: 2a00 cmp r2, #0 1fc226: d1f8 bne 0x1fc21a 1fc228: 48a0 ldr r0, =0x1075f74 ; via 0x1fc4ac 1fc22a: 21d0 mov r1, #208 ; 0xd0 1fc22c: 540f strb r7, [r1, r0] 1fc22e: 4ca0 ldr r4, =0x83cef0 ; via 0x1fc4b0 1fc230: 49a0 ldr r1, =0xc48 ; via 0x1fc4b4 1fc232: 2001 mov r0, #1 1fc234: 5508 strb r0, [r1, r4] 1fc236: 48a0 ldr r0, =0xc44 ; via 0x1fc4b8 1fc238: 5107 str r7, [r0, r4] 1fc23a: 1c20 add r0, r4, #0 1fc23c: f010 febe bl 0x20cfbc 1fc240: 6367 str r7, [r4, #52] ; 0x34 1fc242: 63a7 str r7, [r4, #56] ; 0x38 1fc244: 63e7 str r7, [r4, #60] ; 0x3c 1fc246: 6427 str r7, [r4, #64] ; 0x40 1fc248: 6467 str r7, [r4, #68] ; 0x44 1fc24a: 64a7 str r7, [r4, #72] ; 0x48 1fc24c: 204c mov r0, #76 ; 0x4c 1fc24e: 5507 strb r7, [r0, r4] 1fc250: 2155 mov r1, #85 ; 0x55 1fc252: 2070 mov r0, #112 ; 0x70 1fc254: 5d40 ldrb r0, [r0, r5] 1fc256: 5508 strb r0, [r1, r4] 1fc258: 2059 mov r0, #89 ; 0x59 1fc25a: 2170 mov r1, #112 ; 0x70 1fc25c: 5d49 ldrb r1, [r1, r5] 1fc25e: 5501 strb r1, [r0, r4] 1fc260: 205d mov r0, #93 ; 0x5d 1fc262: 2170 mov r1, #112 ; 0x70 1fc264: 5d49 ldrb r1, [r1, r5] 1fc266: 5501 strb r1, [r0, r4] 1fc268: 2054 mov r0, #84 ; 0x54 1fc26a: 5507 strb r7, [r0, r4] 1fc26c: 2058 mov r0, #88 ; 0x58 1fc26e: 5507 strb r7, [r0, r4] 1fc270: 205c mov r0, #92 ; 0x5c 1fc272: 5507 strb r7, [r0, r4] 1fc274: 20b8 mov r0, #184 ; 0xb8 1fc276: 5507 strb r7, [r0, r4] 1fc278: 20b9 mov r0, #185 ; 0xb9 1fc27a: 5507 strb r7, [r0, r4] 1fc27c: 21ba mov r1, #186 ; 0xba 1fc27e: 4640 mov r0, r8 1fc280: 5508 strb r0, [r1, r4] 1fc282: 2060 mov r0, #96 ; 0x60 1fc284: 5507 strb r7, [r0, r4] 1fc286: 208c mov r0, #140 ; 0x8c 1fc288: 5507 strb r7, [r0, r4] 1fc28a: 20d7 mov r0, #215 ; 0xd7 1fc28c: 00c0 lsl r0, r0, #3 1fc28e: 5507 strb r7, [r0, r4] 1fc290: 488a ldr r0, =0x737 ; via 0x1fc4bc 1fc292: 5507 strb r7, [r0, r4] 1fc294: 498a ldr r1, =0x83d628 ; via 0x1fc4c0 1fc296: 488b ldr r0, =0x83d5ac ; via 0x1fc4c4 1fc298: 2206 mov r2, #6 1fc29a: 7007 strb r7, [r0, #0] 1fc29c: 700f strb r7, [r1, #0] 1fc29e: 3014 add r0, #20 ; 0x14 1fc2a0: 3114 add r1, #20 ; 0x14 1fc2a2: 3a01 sub r2, #1 1fc2a4: 2a00 cmp r2, #0 1fc2a6: d1f8 bne 0x1fc29a 1fc2a8: 4c81 ldr r4, =0x83cef0 ; via 0x1fc4b0 1fc2aa: 2033 mov r0, #51 ; 0x33 1fc2ac: 0100 lsl r0, r0, #4 1fc2ae: 5307 strh r7, [r0, r4] 1fc2b0: 4885 ldr r0, =0x335 ; via 0x1fc4c8 1fc2b2: 5507 strb r7, [r0, r4] 1fc2b4: 4885 ldr r0, =0x336 ; via 0x1fc4cc 1fc2b6: 5507 strb r7, [r0, r4] 1fc2b8: 2067 mov r0, #103 ; 0x67 1fc2ba: 00c1 lsl r1, r0, #3 1fc2bc: 2000 mov r0, #0 1fc2be: 5108 str r0, [r1, r4] 1fc2c0: 21cf mov r1, #207 ; 0xcf 1fc2c2: 0089 lsl r1, r1, #2 1fc2c4: 5108 str r0, [r1, r4] 1fc2c6: 4882 ldr r0, =0x6a4 ; via 0x1fc4d0 1fc2c8: 5107 str r7, [r0, r4] 1fc2ca: 20d5 mov r0, #213 ; 0xd5 1fc2cc: 00c0 lsl r0, r0, #3 1fc2ce: 5507 strb r7, [r0, r4] 1fc2d0: 4880 ldr r0, =0x6a9 ; via 0x1fc4d4 1fc2d2: 5507 strb r7, [r0, r4] 1fc2d4: 4880 ldr r0, =0x6aa ; via 0x1fc4d8 1fc2d6: 5307 strh r7, [r0, r4] 1fc2d8: 4880 ldr r0, =0x6ac ; via 0x1fc4dc 1fc2da: 5307 strh r7, [r0, r4] 1fc2dc: 4880 ldr r0, =0x6ae ; via 0x1fc4e0 1fc2de: 5307 strh r7, [r0, r4] 1fc2e0: 206b mov r0, #107 ; 0x6b 1fc2e2: 0100 lsl r0, r0, #4 1fc2e4: 5507 strb r7, [r0, r4] 1fc2e6: 487f ldr r0, =0x6b1 ; via 0x1fc4e4 1fc2e8: 5507 strb r7, [r0, r4] 1fc2ea: 487f ldr r0, =0x6b2 ; via 0x1fc4e8 1fc2ec: 5507 strb r7, [r0, r4] 1fc2ee: f010 fd42 bl 0x20cd76 1fc2f2: f010 fd11 bl 0x20cd18 1fc2f6: 487d ldr r0, =0x958 ; via 0x1fc4ec 1fc2f8: 5507 strb r7, [r0, r4] 1fc2fa: f044 faca bl 0x240892 1fc2fe: 487c ldr r0, =0xc16 ; via 0x1fc4f0 1fc300: 1900 add r0, r0, r4 1fc302: 497c ldr r1, =0xbe8 ; via 0x1fc4f4 1fc304: 190a add r2, r1, r4 1fc306: 212e mov r1, #46 ; 0x2e 1fc308: 7017 strb r7, [r2, #0] 1fc30a: 7007 strb r7, [r0, #0] 1fc30c: 3201 add r2, #1 1fc30e: 3001 add r0, #1 1fc310: 3901 sub r1, #1 1fc312: 2900 cmp r1, #0 1fc314: d1f8 bne 0x1fc308 1fc316: e001 b 0x1fc31c 1fc318: 0083cdb4 1fc31c: 4876 ldr r0, =0xc4c ; via 0x1fc4f8 1fc31e: 5107 str r7, [r0, r4] 1fc320: 20c5 mov r0, #197 ; 0xc5 1fc322: 0100 lsl r0, r0, #4 1fc324: 5107 str r7, [r0, r4] 1fc326: 4975 ldr r1, =0xc54 ; via 0x1fc4fc 1fc328: 2001 mov r0, #1 1fc32a: 5108 str r0, [r1, r4] 1fc32c: 4874 ldr r0, =0xc58 ; via 0x1fc500 1fc32e: 5107 str r7, [r0, r4] 1fc330: 4874 ldr r0, =0xc5c ; via 0x1fc504 1fc332: 5507 strb r7, [r0, r4] 1fc334: 2063 mov r0, #99 ; 0x63 1fc336: 0140 lsl r0, r0, #5 1fc338: 1903 add r3, r0, r4 1fc33a: 4873 ldr r0, =0xc61 ; via 0x1fc508 1fc33c: 1900 add r0, r0, r4 1fc33e: 4973 ldr r1, =0x83cdb4 ; via 0x1fc50c 1fc340: 2270 mov r2, #112 ; 0x70 1fc342: 5c52 ldrb r2, [r2, r1] 1fc344: 6949 ldr r1, [r1, #20] ; 0x14 1fc346: 1c49 add r1, r1, #1 1fc348: 7002 strb r2, [r0, #0] 1fc34a: 701f strb r7, [r3, #0] 1fc34c: 3004 add r0, #4 1fc34e: 3304 add r3, #4 1fc350: 3901 sub r1, #1 1fc352: 2900 cmp r1, #0 1fc354: d1f8 bne 0x1fc348 1fc356: f034 f843 bl 0x2303e0 1fc35a: f6cb faba bl 0xc78d2 1fc35e: bc01 pop {r0} 1fc360: 4680 mov r8, r0 1fc362: bdf0 pop {r4, r5, r6, r7, pc} $l1_initialize: 1fc364: b570 push {r4, r5, r6, lr} 1fc366: 1c05 add r5, r0, #0 1fc368: f051 f908 bl 0x24d57c 1fc36c: 4c67 ldr r4, =0x83cdb4 ; via 0x1fc50c 1fc36e: 7828 ldrb r0, [r5, #0] 1fc370: 7020 strb r0, [r4, #0] 1fc372: 213d mov r1, #61 ; 0x3d 1fc374: 7928 ldrb r0, [r5, #4] 1fc376: 5508 strb r0, [r1, r4] 1fc378: 88e8 ldrh r0, [r5, #6] 1fc37a: 87e0 strh r0, [r4, #62] ; 0x3e 1fc37c: 20c0 mov r0, #192 ; 0xc0 1fc37e: 2100 mov r1, #0 1fc380: 5501 strb r1, [r0, r4] 1fc382: 21c1 mov r1, #193 ; 0xc1 1fc384: 2001 mov r0, #1 1fc386: 5508 strb r0, [r1, r4] 1fc388: 21c2 mov r1, #194 ; 0xc2 1fc38a: 5508 strb r0, [r1, r4] 1fc38c: 21c3 mov r1, #195 ; 0xc3 1fc38e: 5508 strb r0, [r1, r4] 1fc390: 481a ldr r0, =0x83c738 ; via 0x1fc3fc 1fc392: 7a29 ldrb r1, [r5, #8] 1fc394: 7001 strb r1, [r0, #0] 1fc396: 68e9 ldr r1, [r5, #12] ; 0xc 1fc398: 6041 str r1, [r0, #4] 1fc39a: 203c mov r0, #60 ; 0x3c 1fc39c: 78e9 ldrb r1, [r5, #3] 1fc39e: 5501 strb r1, [r0, r4] 1fc3a0: f05a f96a bl 0x256678 ; $Cust_init_std ? 1fc3a4: f05a f970 bl 0x256688 ; $Cust_init_params ? ; inline code corresponding to l1_dpll_init_var() 1fc3a8: 4859 ldr r0, =0xffff9800 ; via 0x1fc510 1fc3aa: 8801 ldrh r1, [r0, #0] 1fc3ac: 0949 lsr r1, r1, #5 1fc3ae: 0789 lsl r1, r1, #30 1fc3b0: 0f89 lsr r1, r1, #30 1fc3b2: 0409 lsl r1, r1, #16 1fc3b4: 0c0a lsr r2, r1, #16 1fc3b6: 8800 ldrh r0, [r0, #0] 1fc3b8: 09c0 lsr r0, r0, #7 1fc3ba: 06c0 lsl r0, r0, #27 1fc3bc: 0ec0 lsr r0, r0, #27 1fc3be: 0400 lsl r0, r0, #16 1fc3c0: 0c00 lsr r0, r0, #16 1fc3c2: f058 ff71 bl 0x2552a8 1fc3c6: 1c06 add r6, r0, #0 1fc3c8: 1c0d add r5, r1, #0 1fc3ca: 1c50 add r0, r2, #1 1fc3cc: f058 fec2 bl 0x255154 1fc3d0: 1c02 add r2, r0, #0 1fc3d2: 1c0b add r3, r1, #0 1fc3d4: 1c30 add r0, r6, #0 1fc3d6: 1c29 add r1, r5, #0 1fc3d8: f053 fdf8 bl 0x24ffcc 1fc3dc: 34b8 add r4, #184 ; 0xb8 1fc3de: c403 stmia r4!, {r0, r1} 1fc3e0: f059 ffd2 bl 0x256388 ; $dsp_power_on ? 1fc3e4: f7ff fd61 bl 0x1fbeaa ; $l1_abb_power_on 1fc3e8: f7ff fd51 bl 0x1fbe8e ; $l1_tpu_init 1fc3ec: f7ff fc98 bl 0x1fbd20 ; $l1_dsp_init 1fc3f0: f7ff fe10 bl 0x1fc014 ; $l1_initialize_var 1fc3f4: f059 ffa8 bl 0x256348 ; $initialize_l1pvar ? 1fc3f8: bd70 pop {r4, r5, r6, pc} $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 IRAM trampolines flash address = 0x155E8 IRAM trampolines run start address = 0x83EDA4 IRAM trampolines run end address = 0x83F294 Run address = load address + 0x8297BC $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} ; $l1dmacro_init_hw_light call trampoline 256168: b082 sub sp, #8 25616a: 9400 str r4, [sp, #0] 25616c: 4c01 ldr r4, =0x813800 ; via 0x256174 25616e: 9401 str r4, [sp, #4] 256170: bd10 pop {r4, pc} 256172: 0000 ; $l1dmacro_init_hw call trampoline 256178: b082 sub sp, #8 25617a: 9400 str r4, [sp, #0] 25617c: 4c01 ldr r4, =0x81375c ; via 0x256184 25617e: 9401 str r4, [sp, #4] 256180: bd10 pop {r4, pc} 256182: 0000 ; $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 $l1dmacro_init_hw: 81375c: b500 push {lr} 81375e: b081 sub sp, #4 813760: 2064 mov r0, #100 ; 0x64 813762: 9000 str r0, [sp, #0] 813764: 2001 mov r0, #1 813766: f000 f941 bl 0x8139ec 81376a: 2001 mov r0, #1 81376c: f000 f8f0 bl 0x813950 813770: 2000 mov r0, #0 813772: f000 f93b bl 0x8139ec 813776: 493f ldr r1, =0x83c0a4 ; via 0x813874 813778: 4845 ldr r0, =0xffff9000 ; via 0x813890 81377a: 6008 str r0, [r1, #0] 81377c: f000 f95e bl 0x813a3c 813780: 4947 ldr r1, =0x1388 ; via 0x8138a0 813782: 9800 ldr r0, [sp, #0] 813784: 1808 add r0, r1, r0 813786: f001 f8e9 bl 0x81495c 81378a: 2101 mov r1, #1 81378c: 0349 lsl r1, r1, #13 81378e: 4301 orr r1, r0 813790: 4838 ldr r0, =0x83c0a4 ; via 0x813874 813792: 6802 ldr r2, [r0, #0] 813794: 1c93 add r3, r2, #2 813796: 6003 str r3, [r0, #0] 813798: 8011 strh r1, [r2, #0] 81379a: 4836 ldr r0, =0x83c0a4 ; via 0x813874 81379c: 6801 ldr r1, [r0, #0] 81379e: 1c8a add r2, r1, #2 8137a0: 6002 str r2, [r0, #0] 8137a2: 2003 mov r0, #3 8137a4: 0340 lsl r0, r0, #13 8137a6: 8008 strh r0, [r1, #0] 8137a8: 4832 ldr r0, =0x83c0a4 ; via 0x813874 8137aa: 6801 ldr r1, [r0, #0] 8137ac: 1c8a add r2, r1, #2 8137ae: 6002 str r2, [r0, #0] 8137b0: 4838 ldr r0, =0x8409 ; via 0x813894 8137b2: 8008 strh r0, [r1, #0] 8137b4: 482f ldr r0, =0x83c0a4 ; via 0x813874 8137b6: 6801 ldr r1, [r0, #0] 8137b8: 1c8a add r2, r1, #2 8137ba: 6002 str r2, [r0, #0] 8137bc: 4836 ldr r0, =0x80ca ; via 0x813898 8137be: 8008 strh r0, [r1, #0] 8137c0: 492c ldr r1, =0x83c0a4 ; via 0x813874 8137c2: 680a ldr r2, [r1, #0] 8137c4: 1c90 add r0, r2, #2 8137c6: 6008 str r0, [r1, #0] 8137c8: 4834 ldr r0, =0x800b ; via 0x81389c 8137ca: 8010 strh r0, [r2, #0] 8137cc: 207d mov r0, #125 ; 0x7d 8137ce: 00c0 lsl r0, r0, #3 8137d0: 9000 str r0, [sp, #0] 8137d2: 9800 ldr r0, [sp, #0] 8137d4: f7fe fcb8 bl 0x812148 ; $rf_init 8137d8: 9000 str r0, [sp, #0] 8137da: 4931 ldr r1, =0x1388 ; via 0x8138a0 8137dc: 9800 ldr r0, [sp, #0] 8137de: 1808 add r0, r1, r0 8137e0: f001 f8bc bl 0x81495c 8137e4: 2101 mov r1, #1 8137e6: 034a lsl r2, r1, #13 8137e8: 4302 orr r2, r0 8137ea: 4922 ldr r1, =0x83c0a4 ; via 0x813874 8137ec: 6808 ldr r0, [r1, #0] 8137ee: 1c83 add r3, r0, #2 8137f0: 600b str r3, [r1, #0] 8137f2: 8002 strh r2, [r0, #0] 8137f4: f000 f922 bl 0x813a3c 8137f8: b001 add sp, #4 8137fa: bd00 pop {pc} 8137fc: 00008008 $l1dmacro_init_hw_light: 813800: b500 push {lr} 813802: b081 sub sp, #4 813804: 2064 mov r0, #100 ; 0x64 813806: 9000 str r0, [sp, #0] 813808: 491a ldr r1, =0x83c0a4 ; via 0x813874 81380a: 4821 ldr r0, =0xffff9000 ; via 0x813890 81380c: 6008 str r0, [r1, #0] 81380e: 4825 ldr r0, =0x1388 ; via 0x8138a4 813810: 9900 ldr r1, [sp, #0] 813812: 1840 add r0, r0, r1 813814: 4923 ldr r1, =0x1388 ; via 0x8138a4 813816: f000 fa61 bl 0x813cdc 81381a: 2101 mov r1, #1 81381c: 0349 lsl r1, r1, #13 81381e: 4301 orr r1, r0 813820: 4814 ldr r0, =0x83c0a4 ; via 0x813874 813822: 6802 ldr r2, [r0, #0] 813824: 1c93 add r3, r2, #2 813826: 6003 str r3, [r0, #0] 813828: 8011 strh r1, [r2, #0] 81382a: 207d mov r0, #125 ; 0x7d 81382c: 00c0 lsl r0, r0, #3 81382e: 9000 str r0, [sp, #0] 813830: 9800 ldr r0, [sp, #0] 813832: f7fe fc89 bl 0x812148 813836: 9000 str r0, [sp, #0] 813838: 491a ldr r1, =0x1388 ; via 0x8138a4 81383a: 9800 ldr r0, [sp, #0] 81383c: 1808 add r0, r1, r0 81383e: f000 fa4d bl 0x813cdc 813842: 2101 mov r1, #1 813844: 034a lsl r2, r1, #13 813846: 4302 orr r2, r0 813848: 490a ldr r1, =0x83c0a4 ; via 0x813874 81384a: 6808 ldr r0, [r1, #0] 81384c: 1c83 add r3, r0, #2 81384e: 600b str r3, [r1, #0] 813850: 8002 strh r2, [r0, #0] 813852: f000 f8f3 bl 0x813a3c 813856: b001 add sp, #4 813858: bd00 pop {pc} 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 0x83c724 l1s_tpu_com structure 0x83cda0 l1s_dsp_com structure 0x83cdb4 l1_config structure ; $l1_initialize call trampoline 83ef94: b082 sub sp, #8 83ef96: 9400 str r4, [sp, #0] 83ef98: 4c01 ldr r4, =0x1fc364 ; via 0x83efa0 83ef9a: 9401 str r4, [sp, #4] 83ef9c: bd10 pop {r4, pc}